FTP-Datenübertragungsmodus einstellen
Dieser FP-Befehl speichert die FTP-Client-Datenübertragungseinstellungen von sOperation, sPLCFullFileNameOrDataFormat und sFTPServerFullFileName in dem Datenübertragungs-Speicherbereich für Einstellungen, die angegeben sind durch nTransferID.
Eingang
Einstellen der Datenübertragungs-Einstellungs-ID.
Werte: 0–15 (Werte müssen in aufsteigender Folge angegeben werden)
Einstellen der Datenübertragungs-Verfahrensparameter.
Serveraddresse (erforderlicher Parameter)
Schlüsselwort: SV
Syntax: 'SVx'
Werte: SV0–SV3 (Server 0–Server 3)
Datenübertragungsziel- und verfahren (erforderlicher Parameter)
Parameterzeichenfolge |
Sollwert |
Übertragungsart |
---|---|---|
|
Datei |
Senden an Server (Überschreibverfahren) |
|
Senden an Server (Überschreibverfahren) |
|
|
Senden an Server (Umbenennungsverfahren) |
|
|
Erhalten von Servern |
|
|
Speicherbereich |
Senden an Server (Überschreibverfahren) |
|
Senden an Server (Überschreibverfahren) |
|
|
Senden an Server (Umbenennungsverfahren) |
|
|
Erhalten von Servern |
Dateihandhabung nach Datenübertragung (erforderlicher Parameter)
DEL
: die Datei löschen
NON
: die Datei nicht löschen
Datei an den FPT-Server 1 unter Verwendung des Überschreibverfahrens senden, Datei nach der Datenübertragung nicht löschen: 'SV1,PUTFILE-OVW,NON'
Datei an den FTP-Server 0 unter Verwendung des Umbenennungsverfahrens senden, Datei nach der Datenübertragung löschen: 'SV0,PUTFILE-REN,DEL'
Datei vom FTP-Server 2 abrufen, Datei nach der Datenübertragung löschen: 'SV2,GETFILE,DEL'
Nehmen Sie die Einstellungen entsprechend Ihrem Datenübertragungsziel (Datei oder Daten aus dem Speicherbereich) und dem Datenübertragungsverfahren (PUT oder GET) vor.
Das Übertragen von Daten einer Variablen kann unter Verwendung des Befehls FP_FTP_GET_DATA_FORMAT erfolgen. Der Ausgang dieses Befehls wird mit sPLCFullFileNameOrDataFormat verbunden, um die Zeichenfolge zu lesen, die die Datenformatzeichenfolge der Variablen angibt (Speicherbereich, Größe und Datentyp). Die übertragenen Daten werden je nach Datentyp der Variablen in eine csv-Datei geschrieben oder daraus gelesen.
Datenübertragungsziel: Datei
Legen Sie den Quelldateinamen fest.
Für PUTFILE
: Geben Sie den Dateinamen einer auf einer SD-Karte gespeicherten Datei mit einem relativen Pfad an. Beispiel: '\LOG\MyData.csv'
Für GETFILE
: Geben Sie einen Dateinamen aus dem Home-Verzeichnis eines Benutzers an, der sich auf FTP-Servern mit einem relativen Pfad einloggt. Beispiel: '\LOG\MyData.csv'
Dateiübertragungsziel: Daten vom Speicherbereich
Für PUTDATA
: Die in der mit dem Eingang von FP_FTP_GET_DATA_FORMAT verbundenen Variablen gespeicherten Daten werden in die durch sFTPServerFullFileName angegebene csv-Datei geschrieben. Bei diesem Datenübertragungsverfahren ist es möglich, dem Dateinamen einen Zeitstempel im Format yymmdd_hhmmss zuzufügen. Verwenden Sie die Schlüsselwörter 'TOP'
und 'END'
, um anzugeben, ob der Zeitstempel vor oder nach dem Dateinamen eingefügt werden soll.
Für GETDATA
: Die Daten der durch sFTPServerFullFileName angegebenen csv-Datei werden in die Variable geschrieben, die mit dem Eingang Var von FP_FTP_GET_DATA_FORMAT verbunden ist.
Nehmen Sie die Einstellungen entsprechend Ihrem Datenübertragungsziel (Datei oder Daten aus dem Speicherbereich) und dem Datenübertragungsverfahren (PUT oder GET) vor.
Datenübertragungsziel: Datei
Für PUTFILE
: Geben Sie einen Ordnernamen mit dem relativen Pfad zum Home-Verzeichnis des Benutzers an, der sich auf dem FTP-Server einloggt. Um das Home-Verzeichnis anzugeben, geben Sie nur "/" oder “\" an.
Für GETFILE
: Geben Sie den Namen eines Speicherordners auf einer SD-Karte mit einem relativen Pfad an.
Dateiübertragungsziel: Daten vom Speicherbereich
Für PUTDATA
: Geben Sie den Namen einer csv-Zieldatei an, in die die Daten geschrieben werden sollen. Bei diesem Datenübertragungsverfahren ist es möglich, dem Dateinamen einen Zeitstempel im Format yymmdd_hhmmss zuzufügen. Verwenden Sie die Schlüsselwörter 'TOP'
und 'END'
, um anzugeben, ob der Zeitstempel vor oder nach dem Dateinamen eingefügt werden soll.
Beispiele:
Übertragen der Daten zu der Zieldatei "PutData1.bin“, die sich in dem Verzeichnis befindet "\FTP", keinen Zeitstempel hinzufügen: '\FTP\PutData1.bin'
Übertragen der Daten in die Zieldatei "PutData2.bin", die sich im Verzeichnis "\FTP" befindet, einen Zeitstempel am Anfang des Dateinamens hinzufügen: '\FTP\PutData2.bin,TOP'
Übertragen der Daten in die Zieldatei "PutData3.bin", die sich im Verzeichnis "\FTP" befindet, einen Zeitstempel am Ende des Dateinamens hinzufügen: '\FTP\PutData3.bin,END'
Für GETDATA
: Geben Sie den Namen einer csv-Zieldatei an, in die die Daten geschrieben werden sollen. Geben Sie einen Dateinamen mit dem relativen Pfad zum Home-Verzeichnis des Benutzers an, der sich auf dem FTP-Server einloggt.
Ausgang
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.
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 FTP-Server unter Verwendung von FP_FTP_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 Merker Datenübertragungsauftrag für die angegebene Datenübertragungseinstellung oder die angegebene nLogID Nummer FALSE ist. Wenn der Merker Datenübertragungsauftrag TRUE 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 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 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 FTP-Server angegeben ist, der nicht mit dem Befehl FP_FTP_SET_CONNECTION oder dem Einstellungsdialog des FTP-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.
wenn der Merker Datenübertragungsauftrag für eine angegebene nLogID Nummer TRUE ist, z.B. wenn sys_blsLog0DataRecordingActive TRUE ist.
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 FTP-Server angegeben ist, der nicht mit dem Befehl FP_FTP_SET_CONNECTION oder dem Einstellungsdialog des FTP-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.
wenn der Merker Datenübertragungsauftrag für eine angegebene nLogID Nummer TRUE ist, z.B. wenn sys_blsLog0DataRecordingActive TRUE 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
bSetModeFileError: BOOL:=FALSE;
bSetModeFileOK: BOOL:=FALSE;
iID10: INT:=10;
bSetModeFile: BOOL:=FALSE;
wErrorCode: WORD:=0;
END_VAR
Wenn bSetModeFile 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 := 5 ;
NETWORK_BODY
B(B_COMMENT,, ^Set mode to transfer file located on SD card of FP7 PLC,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 := 7 ;
NETWORK_BODY
B(B_CONTACT,,bSetModeFile,5,1,7,3,R);
B(B_VARIN,,'SV0~PUTDATA-OVW~NON',23,3,25,5,);
B(B_VARIN,,'\CSV_FILES\Data1.csv',23,4,25,6,);
B(B_VAROUT,,bSetModeFileError,43,2,45,4,);
B(B_VARIN,,'\B:\LOG\MyData.csv~END',23,5,25,7,);
B(B_VARIN,,iID10,23,2,25,4,);
B(B_CONTACT,,sys_bIsEthernetInitializing,16,1,18,3,N);
B(B_F,FP_FTP_SET_MODE!,,25,0,41,7,,?DEN?DnTransferID?DsOperation?DsPLCFullFileNameOrDataFormat?DsFTPServerFullFileName?AENO?CbError);
L(1,2,5,2);
L(7,2,16,2);
L(18,2,25,2);
L(1,0,1,7);
L(41,3,43,3);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 4 ;
NETWORK_BODY
B(B_CONTACT,,bSetModeFileError,5,1,7,3,);
B(B_F,E_MOVE!,,25,0,31,4,,?DEN?D?AENO?C);
B(B_VARIN,,sys_iEthernetConnectionErrorCode,23,2,25,4,);
B(B_VAROUT,,wErrorCode,31,2,33,4,);
L(7,2,25,2);
L(1,2,5,2);
L(1,0,1,4);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 3 ;
NETWORK_BODY
B(B_CONTACT,,bSetModeFileError,5,1,7,3,N);
B(B_COIL,,bSetModeFileOK,28,1,30,3,);
L(7,2,28,2);
L(1,2,5,2);
L(1,0,1,3);
END_NETWORK_BODY
END_NET_WORK
END_BODY
If DF(bSetModeFile) AND NOT sys_bIsEthernetInitializing then
FP_FTP_SET_MODE(nTransferID := iID10,
sOperation := 'SV0,PUTDATA-OVW,NON',
sPLCFullFileNameOrDataFormat := FP_FTP_GET_DATA_FORMAT(Var := arrayValues,
nSize := Size_Of_Var(arrayValues),
nColumns := 8),
sFTPServerFullFileName := '\B:\LOG\MyData.csv,END',
bError => bSetModePlcDataError);
End_if;
If (bSetModePlcDataError) then
wErrorCode := sys_iEthernetConnectionErrorCode;
Else
bSetModePlcDataOK := True;
End_If;