FP_FTP_GET_DATA_FORMAT

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.

Parameter

Eingang

Var (BOOL, INT, UINT, WORD, DINT, UDINT, DWORD, REAL, DATE, TOD, DT, STRING)

Einfacher Datentyp oder Array von einfachen Datentypen, z.B. BOOL, INT, UINT, STRING, ...

Beschränkung: ARRAY..OF..STRING ist nicht zulässig

nSize (WORD, INT, UINT)

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

nColumns (WORD, INT, UINT)

Anzahl der Posten, nach denen eine neue Zeile in der umgewandelten .csv-Datei hinzugefügt werden sollte

Ausgang

sDataFormat (STRING)

Zeichenfolge, die das Datenformat für den Eingang sPLCFullFileNameOrDataFormat von FP_FTP_SET_MODE angibt

Anmerkungen

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

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
		bSetModePlcData: BOOL:=FALSE;
		bSetModePlcDataError: BOOL:=FALSE;
		arrayValues: ARRAY[0..15] OF REAL:=[16(0.0)];
		iID10: INT:=10;
	END_VAR

POE-Rumpf

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

KOP-Rumpf

Anmerkung
Wenn am Eingang nColumns eine Konstante mit dem Wert 0 anliegt, wird in der formatierten Zielzeichenfolge die Zeilenvorschubposition weggelassen. Das ist nötig, wenn im Anschluss der Befehl FP_FTP_SET_MODE im Modus GETDATA ausgeführt wird.
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

ST-Rumpf

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;

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