FP_FTP_SET_MODE

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.

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.

  • Serveraddresse (erforderlicher Parameter)

    Schlüsselwort: SV

    Syntax: 'SVx'

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

  • Datenübertragungsziel- und verfahren (erforderlicher Parameter)

    Parameterzeichenfolge

    Sollwert

    Übertragungsart

    PUTFILE

    Datei

    Senden an Server (Überschreibverfahren)

    PUTFILE-OVW

    Senden an Server (Überschreibverfahren)

    PUTFILE-REN

    Senden an Server (Umbenennungsverfahren)

    GETFILE

    Erhalten von Servern

    PUTDATA

    Speicherbereich

    Senden an Server (Überschreibverfahren)

    PUTDATA-OVW

    Senden an Server (Überschreibverfahren)

    PUTDATA-REN

    Senden an Server (Umbenennungsverfahren)

    GETDATA

    Erhalten von Servern

  • Dateihandhabung nach Datenübertragung (erforderlicher Parameter)

    • DEL: die Datei löschen

    • NON: die Datei nicht löschen

Beispiele:
  1. Datei an den FPT-Server 1 unter Verwendung des Überschreibverfahrens senden, Datei nach der Datenübertragung nicht löschen: 'SV1,PUTFILE-OVW,NON'

  2. Datei an den FTP-Server 0 unter Verwendung des Umbenennungsverfahrens senden, Datei nach der Datenübertragung löschen: 'SV0,PUTFILE-REN,DEL'

  3. Datei vom FTP-Server 2 abrufen, Datei nach der Datenübertragung löschen: 'SV2,GETFILE,DEL'

sPLCFullFileNameOrDataFormat (STRING)

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.

sFTPServerFullFileName (STRING)

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:

      1. Übertragen der Daten zu der Zieldatei "PutData1.bin“, die sich in dem Verzeichnis befindet "\FTP", keinen Zeitstempel hinzufügen: '\FTP\PutData1.bin'

      2. Ü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'

      3. Ü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

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 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.

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 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.

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 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.

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
		bSetModeFileError: BOOL:=FALSE;
		bSetModeFileOK: BOOL:=FALSE;
		iID10: INT:=10;
		bSetModeFile: BOOL:=FALSE;
		wErrorCode: WORD:=0;
	END_VAR

POE-Rumpf

Wenn bSetModeFile 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 := 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

ST-Rumpf

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;

Letzte Änderung: 2024-07-11Feedback zu dieser SeitePanasonic Hotline