Datenformatzeichenfolge für FTP-Protokoll erzeugen
Dieser FP-Befehl erzeugt eine Zeichenfolge, die das Datenformat (FP-Adresse und Länge) entsprechend dem Datentyp am Eingang Var angibt. Er schreibt die Zeichenfolge in die Ausgangsvariable sDataFormat, die für den Eingang sPLCFullFileNameOrDataFormat des Befehls FP_FTP_SET_MODE geeignet ist.
Eingang
Einfacher Datentyp oder Array von einfachen Datentypen, z.B. BOOL, INT, UINT, STRING, ...
Beschränkung: ARRAY..OF..STRING ist nicht zulässig
Größe von Daten in Worten oder für Zeichenfolgen in Byte-Einheiten.
Anzahl der Posten, nach denen eine neue Zeile in der umgewandelten .csv-Datei hinzugefügt werden sollte
Ausgang
Zeichenfolge, die das Datenformat für den Eingang sPLCFullFileNameOrDataFormat von FP_FTP_SET_MODE angibt
Bevor Sie den Befehl ausführen, müssen Sie die Datenübertragungseinstellungen mit FP_FTP_SET_MODE 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.
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übertraungsgseinstellungen des FTP-Clients abgeschlossen sind, werden Daten zu Dateien gesendet oder von Dateien abgerufen, wenn FP_FTP_TRANSFER_REQUEST ausgeführt wird.
Wenn ein Fehler auftritt, prüfen Sie die Systemvariable sys_iEthernetConnectionErrorCode auf die Fehlercodenummer.
wenn eine Zeitüberschreitung der Verbindung überschritten wird,
Wenn eine IP-Addresse ungültig ist
wenn eine Zeitüberschreitung der Verbindung überschritten wird,
Wenn eine IP-Addresse ungültig ist
wenn der Befehl während der Initialisierung des Ethernets ausgeführt wird, wird sys_iEthernetConnectionErrorCode auf "11: Ethernet wird initialisiert“ gesetzt.
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
bSetModePlcData: BOOL:=FALSE;
bSetModePlcDataError: BOOL:=FALSE;
arrayValues: ARRAY[0..15] OF REAL:=[16(0.0)];
iID10: INT:=10;
END_VAR
Wenn bSetModePlcData von FALSE auf TRUE gesetzt wird und sys_bIsEthernetInitializing FALSE ist, wird der Befehl ausgeführt.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 8 ;
NETWORK_BODY
B(B_CONTACT,,bSetModePlcData,5,1,7,3,R);
B(B_VARIN,,'SV0~GETDATA~NON',40,3,42,5,);
B(B_VAROUT,,bSetModePlcDataError,60,2,62,4,);
B(B_VARIN,,'\B:\LOG\MyData.csv~END',40,5,42,7,);
B(B_VARIN,,iID10,40,2,42,4,);
B(B_CONTACT,,sys_bIsEthernetInitializing,16,1,18,3,N);
B(B_VARIN,,arrayValues,6,4,8,6,);
B(B_VARIN,,0,13,6,15,8,);
B(B_F,Size_Of_Var!,,8,5,15,7,,?D?C);
B(B_F,FP_FTP_SET_MODE!,,42,0,58,7,,?DEN?DnTransferID?DsOperation?DsPLCFullFileNameOrDataFormat?DsFTPServerFullFileName?AENO?CbError);
B(B_F,FP_FTP_GET_DATA_FORMAT!,,15,3,29,8,,?D@'Var'?DnSize?DnColumns?CsDataFormat);
L(1,2,5,2);
L(7,2,16,2);
L(8,5,8,6);
L(18,2,42,2);
L(58,3,60,3);
L(8,5,15,5);
L(29,5,42,5);
L(1,0,1,8);
END_NETWORK_BODY
END_NET_WORK
END_BODY
If DF(bSetModePlcData) And not sys_bIsEthernetInitializing then
FP_FTP_SET_MODE(nTransferID := iID10,
sOperation := 'SV0,GETDATA,NON',
sPLCFullFileNameOrDataFormat := FP_FTP_GET_DATA_FORMAT(Var := arrayValues,
nSize := Size_Of_Var(arrayValues),
nColumns := 0),
sFTPServerFullFileName := '\B:\LOG\MyData.csv,END',
bError => bSetModePlcDataError);
End_if;