FP_HTTP_SET_MODE

HTTP-Datenübertragungsmodus einstellen

Dieser FP-Befehl speichert die HTTP-Client-Datenübertragungseinstellungen von sOperation, sPLCDataFormat und sHTTPServerURL in dem Datenübertragungs-Speicherbereich für Einstellungen, die angegeben sind durch nTransferID.

Parameter

Eingang

nTransferID (WORD, INT, UINT)

Einstellen der Datenübertragungs-Einstellungs-ID.

Werte: 0–15 (Werte müssen in aufsteigender Folge angegeben werden)

sOperation (STRING)

Einstellen der Datenübertragungs-Verfahrensparameter.

  • Serveradresse

    Schlüsselwort: SV

    Werte: SV0–SV3 (Server 0–Server 3)

  • Geben Sie den Speicherbereich und die Art der Übertragung (Senden oder Abrufen von Daten) an.

    • Verwenden Sie das Schlüsselwort UPLOAD zum Senden von Daten.

    • Verwenden Sie das Schlüsselwort DOWNLOAD zum Abrufen von Daten.

    • Verwenden Sie das Schlüsselwort UPDOWN zum Senden und Beziehen von Daten.

    Geben Sie den Befehl an, der für die Datenübertragung verwendet werden soll.

    • Verwenden Sie das Schlüsselwort POST zum Senden von Daten (nur verfügbar für die Übertragungstypen UPLOAD und UPDOWN).

    • Verwenden Sie das Schlüsselwort GET zum Abrufen von Daten.

    Beispiel: Laden von Daten vom Speicher zum HTTP-Server 3: 'SV3,UPDOWN,POST'

sPLCDataFormat (STRING)

Geben Sie die zu übertragenden Daten an. Vewenden Sie alternativ den Befehl FP_HTTP_GET_DATA_FORMAT.

Beispiel: Speicherbereich: DT100000, Anzahl von Bytes: 250 Bytes, maximale Anzahl von Erfassungen: 250 Byte: 'DT100000,250,250'

sHTTPServerURL (STRING)

Geben Sie die Server-URL an.

Beispiel: '\data.csv'

Ausgang

bError (BOOL)

Wird unter den folgenden Bedingungen auf TRUE gesetzt:

  • wenn eine Zeitüberschreitung der Verbindung überschritten wird,

  • wenn eine IP-Adresse ungültig ist

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

Anmerkungen

  • Die Zeichenanzahl für Zeichenfolgen darf 256 nicht überschreiten.

  • Dieser Befehl ist in Interrupt-Programmen nicht verfügbar.

  • Bevor Sie den Befehl ausführen, müssen Sie den HTTP-Server unter Verwendung von FP_HTTP_SET_CONNECTION oder dem Einstellungsdialog des FTP-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.

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

  • Die Anzahl der Bytes, die gleichzeitig übertragen werden können, beträgt 1 MB für alle 16 Übertragungs-IDs.

  • 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 ein für einen Parameter angegebener Wert außerhalb des zulässigen Bereichs liegt.

  • wenn Datenübertragungs-IDs nicht in aufsteigender Folge angegeben werden.

  • wenn der Befehl in einem Interrupt-Programm ausgeführt wird

  • wenn die Zeichenanzahl für Zeichenfolgendaten 256 überschreitet.

  • wenn ein HTTP-Server angegeben ist, der nicht mit dem Befehl FP_HTTP_SET_CONNECTION oder dem Einstellungsdialog des HTTP-Clients konfiguriert wurde.

  • wenn der Merker Datenübertragungsauftrag für die angegebene Datenübertragungseinstellung "TRUE: Datenübertragung angefordert" ist, wenn der Befehl ausgeführt wird.

sys_bIsOperationErrorNonHold (wird für einen Zyklus auf TRUE gesetzt)
  • wenn ein für einen Parameter angegebener Wert außerhalb des zulässigen Bereichs liegt.

  • wenn Datenübertragungs-IDs nicht in aufsteigender Folge angegeben werden.

  • wenn der Befehl in einem Interrupt-Programm ausgeführt wird

  • wenn die Zeichenanzahl für Zeichenfolgendaten 256 überschreitet.

  • wenn ein HTTP-Server angegeben ist, der nicht mit dem Befehl FP_HTTP_SET_CONNECTION oder dem Einstellungsdialog des HTTP-Clients konfiguriert wurde.

  • wenn der Merker Datenübertragungsauftrag für die angegebene Datenübertragungseinstellung "TRUE: Datenübertragung angefordert" ist, wenn der Befehl ausgeführt wird.

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
		sDestURL: STRING[32]:='\data.csv';
		sStringData: STRING[32767]:='';
		iID5: INT:=5;
		bSetModeAsciiDataArea: BOOL:=FALSE;
		bSetModeStringData: BOOL:=FALSE;
		bErrorModeStringData: BOOL:=FALSE;
		bErrorModeAsciiDataArea: BOOL:=FALSE;
	END_VAR

POE-Rumpf

In dem ersten Beispiel wird eine source Zeichenfolge verwendet, die ein Maximum von 32767 Zeichen enthält, in dem zweiten Beispiel wird eine DT-Adresse zum Speichern der source-Zeichenfolge mit mehr als 32767 Zeichen verwendet.

KOP-Rumpf

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_COMMENT,, ^Set mode to transfer HTTP data stored in string variable (strings can only contain max. of 32767 characters),4,1,45,4,);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 7 ;
        NETWORK_BODY
B(B_VARIN,,iID5,40,2,42,4,);
B(B_VARIN,,'SV0~DOWNLOAD,GET',40,3,42,5,);
B(B_CONTACT,,bSetModeStringData,5,1,7,3,R);
B(B_VARIN,,'/data.csv',40,5,42,7,);
B(B_VAROUT,,bErrorModeStringData,53,2,55,4,);
B(B_VARIN,,sStringData,8,4,10,6,);
B(B_CONTACT,,sys_bIsEthernetInitializing,16,1,18,3,N);
B(B_F,MAX_LEN!,,10,5,16,7,,?D?C);
B(B_F,FP_HTTP_GET_DATA_FORMAT!,,16,3,31,7,,?D@'Var'?DnNumberOfCharacters?CsDataFormat);
B(B_F,FP_HTTP_SET_MODE!,,42,0,53,7,,?DEN?DnTransferID?DsOperation?DsPLCDataFormat?DsHTTPServerURL?AENO?CbError);
L(1,2,5,2);
L(7,2,16,2);
L(10,5,10,6);
L(10,5,16,5);
L(31,5,42,5);
L(18,2,42,2);
L(1,0,1,7);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_COMMENT,, ^Set mode to transfer HTTP data stored in memory area > 32767 characters,4,1,34,4,);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_VARIN,,iID5,39,3,41,5,);
B(B_VARIN,,'SV0~UPDOWN,POST',39,4,41,6,);
B(B_VARIN,,'DT100000~102345~12345',39,5,41,7,);
B(B_CONTACT,,bSetModeAsciiDataArea,5,2,7,4,R);
B(B_VARIN,,sDestURL,39,6,41,8,);
B(B_VAROUT,,bErrorModeAsciiDataArea,52,3,54,5,);
B(B_CONTACT,,sys_bIsEthernetInitializing,16,2,18,4,N);
B(B_F,FP_HTTP_SET_MODE!,,41,1,52,8,,?DEN?DnTransferID?DsOperation?DsPLCDataFormat?DsHTTPServerURL?AENO?CbError);
L(1,3,5,3);
L(7,3,16,3);
L(18,3,41,3);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

(* Set mode to transfer HTTP data stored in string variable (strings can only contain max. of 32767 characters) *)
If DF(bSetModeStringData) And not sys_bIsEthernetInitializing then
    FP_HTTP_SET_MODE(nTransferID := iID5,
                     sOperation := 'SV0,DOWNLOAD,GET',
                     sPLCDataFormat := FP_HTTP_GET_DATA_FORMAT(sStringData, LEN(sStringData)), 
                     sHTTPServerURL := '/data.csv',
                     bError => bErrorModeStringData);
End_if;
(* Set mode to transfer HTTP data stored in memory area > 32767 characters  *)
If DF(bSetModeAsciiDataArea) And not sys_bIsEthernetInitializing then
        FP_HTTP_SET_MODE(nTransferID := iID5,
                         sOperation := 'SV0,UPDOWN,POST',
                         sPLCDataFormat := 'DT100000,102345,12345', 
                         sHTTPServerURL := sDestURL,
                         bError => bErrorModeAsciiDataArea);
End_if;

Letzte Änderung: 2024-12-18Feedback zu dieser SeitePanasonic Hotline