FP_SMTP_GET_DATA_FORMAT

Datenformatzeichenfolge für SMTP-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 sAttachment des Befehls FP_SMTP_SET_MODE geeignet ist.

Wenn Datenregister mit FP_SMTP_SET_MODE übertragen werden sollten, wird eine .csv-Datei mit den gegebenen Datenwerten erzeugt. Bei der Übertragung werden die Daten je nach Datentyp in ASCII umgewandelt. Deshalb benötigt der Eingang sAttachment zusätzliche Informationen, die angeben, welche Daten in welchen ASCII-Typ umgewandelt werden sollen.

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.

Ausgang

sDataFormat (STRING)

Zeichenfolge, die das Datenformat für den Eingang sAttachment von FP_SMTP_SET_MODE angibt

Anmerkungen

  • Bevor Sie den Befehl ausführen, müssen Sie die E-Mail-Übertragungseinstellungen mit FP_SMTP_SET_MODE oder dem Einstellungsdialog des SMTP-Clients angeben.

  • Bevor Sie den Befehl ausführen, müssen Sie die E-Mail-Einstellungen mit FP_SMTP_SET_GROUP oder dem Einstellungsdialog des SMTP-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.

  • 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-Adresse ungültig ist

sys_bIsOperationErrorNonHold (wird für einen Zyklus auf TRUE gesetzt)
  • wenn eine Zeitüberschreitung der Verbindung überschritten wird,

  • wenn eine IP-Adresse 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
		arrayValues_UDINT: ARRAY [0..19] OF UDINT;
		bError: BOOL:=FALSE;
		bSetMode: BOOL:=FALSE;
		iID8: INT:=8;
	END_VAR

POE-Rumpf

Wenn bSetMode 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 := 14 ;
        NETWORK_BODY
B(B_VARIN,,iID8,42,2,44,4,);
B(B_CONTACT,,bSetMode,4,1,6,3,R);
B(B_VAROUT,,bError,57,2,59,4,);
B(B_VARIN,,'GRPNO=0~SUBJECT=Time Notify Mail',42,4,44,6,);
B(B_VARIN,,'Hello~ this is time notify Mail from system. See attachment',42,5,44,7,);
B(B_VARIN,,'INFO=ADD~ATT=DATA;',11,7,13,9,);
B(B_VARIN,,'TRIG=TIME~/day~13:30:00',42,3,44,5,);
B(B_CONTACT,,sys_bIsEthernetInitializing,13,1,15,3,N);
B(B_VARIN,,arrayValues_UDINT,11,9,13,11,);
B(B_F,CONCAT-2!,,37,7,43,10,,?D?D?C);
B(B_F,Size_Of_Var!,,15,10,22,12,,?D?C);
B(B_F,FP_SMTP_GET_DATA_FORMAT!,,22,8,37,12,,?D@'Var'?DnSize?CsDataFormat);
B(B_F,FP_SMTP_SET_MODE!,,44,0,57,8,,?DEN?DnTransferID?DsTrigger?DsGroupNumber_Subject?DsBodyText?DsAttachment?AENO?CbError);
L(1,2,4,2);
L(6,2,13,2);
L(15,2,44,2);
L(37,9,37,10);
L(13,8,37,8);
L(15,10,15,11);
L(13,10,22,10);
L(43,7,43,8);
L(43,7,44,7);
L(1,0,1,14);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

If DF(bSetMode) And not sys_bIsEthernetInitializing then
    FP_SMTP_SET_MODE(nTransferID := iID8,
                     sTrigger := 'TRIG=TIME,/day,13:30:00',
                     sGroupNumber_Subject := 'GRPNO=0,SUBJECT=Time Notify Mail', 
                     sBodyText := 'Hello, this is time notify Mail from system. See attachment',
                     sAttachment := CONCAT('INFO=ADD,ATT=DATA;',
                                           FP_SMTP_GET_DATA_FORMAT(arrayValues_UDINT,
                                           Size_Of_Var(arrayValues_UDINT))),
                     bError => bError);
End_If;

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