FP_HTTP_GET_DATA_FORMAT

Datenformatzeichenfolge für HTTP-Protokoll erzeugen

Dieser FP-Befehl erzeugt eine Zeichenfolge, die das Datenformat (FP-Adresse und Länge) angibt. Er schreibt die Zeichenfolge in die Ausgangsvariable sDataFormat, die für den Eingang sPLCDataFormat des Befehls FP_HTTP_SET_MODE geeignet ist.

Parameter

Eingang

Var (STRING)

Zeichenfolge, die ASCII-Daten enthält

nNumberOfCharacters (WORD, INT, UINT)

Größe von Daten in Worten oder für Zeichenfolgen in Byte-Einheiten.

Ausgang

sDataFormat (STRING)

Zeichenfolge, die das Datenformat für den Eingang sPLCDataFormat von FP_HTTP_SET_MODE angibt

Anmerkungen

  • Bevor Sie den Befehl ausführen, müssen Sie die Datenübertragungseinstellungen mit FP_HTTP_SET_MODE oder dem Einstellungsdialog des HTTP-Clients angeben.

  • Bevor Sie den Befehl ausführen, stellen Sie sicher, dass sys_bIsEthernetInitializing FALSE ist. sys_bIsEthernetInitializing wird auf TRUE gesetzt, wenn der Befehl ausgeführt wird. Wenn Sie den Befehl ausführen, während sys_bIsEthernetInitializing TRUE ist, tritt ein Fehler auf.

  • Der Befehl kann nur ausgeführt werden, wenn der Datenübertragungsmerker für die angegebene Datenübertragungseinstellung "FALSE: Kein Datenübertragungsauftrag“ ist. Wenn der Datenübertragungsmerker "TRUE: Datenübertragung beauftragt“ ist, tritt ein Operationsfehler auf.

  • Wenn dieser Befehl erfolgreich ausgeführt wurde, werden die Systemvariablen sys_bIsCarry und sys_iEthernetConnectionErrorCode zurückgesetzt.

  • Dieser Befehl überschreibt die in der SPS gespeicherten Ethernet-Konfigurationsdaten nicht permanent. Nach dem Aus- und Wiedereinschalten der SPS werden die in der SPS gespeicherten Ethernet-Konfigurationsdaten wieder verwendet.

  • Nachdem die Datenübertragungseinstellungen des HTTP-Clients konfiguriert sind, werden Daten aktuell gesendet oder erfasst, wenn der Befehl FP_HTTP_TRANSFER_REQUEST ausgeführt wird.

  • Wenn ein Fehler auftritt, prüfen Sie die Systemvariable sys_iEthernetConnectionErrorCode auf die Fehlercodenummer.

Fehleralarmmerker

sys_bIsOperationErrorHold (wird auf TRUE gesetzt und bleibt TRUE)
  • wenn eine Zeitüberschreitung der Verbindung überschritten wird,

  • Wenn eine IP-Addresse ungültig ist

sys_bIsOperationErrorNonHold (wird für einen Zyklus auf TRUE gesetzt)
  • wenn eine Zeitüberschreitung der Verbindung überschritten wird,

  • Wenn eine IP-Addresse ungültig ist

sys_bIsCarry (wird für einen Zyklus auf TRUE gesetzt)
  • wenn der Befehl während der Initialisierung des Ethernets ausgeführt wird, wird sys_iEthernetConnectionErrorCode auf "11: Ethernet wird initialisiert“ gesetzt.

Beispiel

POE-Kopf

Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.

	VAR
		sStringData: STRING[31767]:='';
		iID5: INT:=5;
		bSetModeStringData: BOOL:=FALSE;
		bErrorModeStringData: BOOL:=FALSE;
	END_VAR

POE-Rumpf

Wenn bSetModeStringData von FALSE auf TRUE gesetzt wird und sys_bIsEthernetInitializing FALSE ist, wird der Befehl ausgeführt.

KOP-Rumpf

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 7 ;
        NETWORK_BODY
B(B_VARIN,,iID5,39,2,41,4,);
B(B_VARIN,,'SV0~UPLOAD;POST',39,3,41,5,);
B(B_CONTACT,,bSetModeStringData,5,1,7,3,R);
B(B_VARIN,,'/PLC?ment',39,5,41,7,);
B(B_VAROUT,,bErrorModeStringData,52,2,54,4,);
B(B_VARIN,,sStringData,8,4,10,6,);
B(B_CONTACT,,sys_bIsEthernetInitializing,16,1,18,3,N);
B(B_F,LEN!,,11,4,16,7,,?DIN?C);
B(B_F,FP_HTTP_GET_DATA_FORMAT!,,16,3,31,7,,?D@'Var'?DnNumberOfCharacters?CsDataFormat);
B(B_F,FP_HTTP_SET_MODE!,,41,0,52,7,,?DEN?DnTransferID?DsOperation?DsPLCDataFormat?DsHTTPServerURL?AENO?CbError);
L(1,2,5,2);
L(7,2,16,2);
L(11,5,11,6);
L(18,2,41,2);
L(10,5,16,5);
L(31,5,41,5);
L(1,0,1,7);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

If DF(bSetModeStringData) AND not sys_bIsEthernetInitializing Then
    FP_HTTP_SET_MODE(nTransferID := iID5,
                     sOperation := 'SV0,UPLOAD;POST',
                     sPLCDataFormat := FP_HTTP_GET_DATA_FORMAT(sStringData,
                                                               LEN(sStringData)), 
                     sHTTPServerURL := '/PLC?ment',
                     bError => bErrorModeStringData);
End_if;

Letzte Änderung am: 2022-04-19Feedback zu dieser SeitePanasonic Hotline