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.
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.
Ausgang
Zeichenfolge, die das Datenformat für den Eingang sAttachment von FP_SMTP_SET_MODE angibt
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.
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.
wenn eine Zeitüberschreitung der Verbindung überschritten wird,
wenn eine IP-Adresse ungültig ist
wenn eine Zeitüberschreitung der Verbindung überschritten wird,
wenn eine IP-Adresse 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
arrayValues_UDINT: ARRAY [0..19] OF UDINT;
bError: BOOL:=FALSE;
bSetMode: BOOL:=FALSE;
iID8: INT:=8;
END_VAR
Wenn bSetMode 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 := 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
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;