FB_Smtp
Der Funktionsbaustein nutzt das SMTP Protokoll (Simple Mail Transfer Protocol) um E-Mails zu verschicken. Der Funktionsbaustein kann z.B. dazu benutzt werden Fehler, Diagnoseinformationen, Warnungen als E-Mail zu verschicken. Die Empfängeradressen werden als Strings an die sTo-, sCc-, sBcc- und sSubject-Eingangsvariablen übergeben. Die maximale Stringlänge der Empfängeradressen wurde auf 80 Zeichen begrenzt, um die Ressourcen zu schonen. Der String mit dem eigentlichen Mail-Text darf auch länger sein.
VAR_INPUT
VAR_INPUT
bStart : BOOL;
sSmtpServer : STRING(15);
sFrom : STRING;
sTo : STRING;
sCc : STRING;
sBcc : STRING;
sSubject : STRING;
pMail : DWORD;
tTimeOut : TIME;
END_VAR
bStart: Eine steigende Flanke an diesem Eingang aktiviert den Funktionsbaustein.
sSmtpServer: IP-Adresse des SMTP-Servers als String.
sFrom : Ein String mit der E-Mail Adresse des Absenders. Wird ein Leerstring angegeben, dann erzeugt der Bus-Controller eine E-Mail-Adresse aus dem Namen des Bus-Controllers und der MAC ID. Die maximale Stringlänge ist auf 80 Zeichen begrenzt. Es dürfen auch mehrere Empfängeradressen getrennt durch Semikolons angegeben werden.
sTo : Ein String mit der E-Mail Adresse des Empfängers. Es muss eine gültige E-Mail-Adresse angegeben werden. Die maximale Stringlänge ist auf 80 Zeichen begrenzt. Es dürfen auch mehrere Empfängeradressen getrennt durch Semikolons angegeben werden.
sCc : Ein String mit der E-Mail Adresse eines weiteren Empfängers (Cc=Carbon Copy). Es kann auch ein Leerstring angegeben werden. Eine Kopie der E-Mail wird an diesen Empfänger gesendet. Die E-Mail-Adresse dieses Empfängers wird bei anderen Empfängern sichtbar. Die maximale Stringlänge ist auf 80 Zeichen begrenzt. Es dürfen auch mehrere Empfängeradressen getrennt durch Semikolons angegeben werden.
sBcc : Ein String mit der E-Mail Adresse eines weiteren Empfängers (Bcc=Blind Carbon Copy). Es kann auch ein Leerstring angegeben werden. Eine Kopie der E-Mail wird an diesen Empfänger gesendet. Die E-Mail-Adresse dieses Empfängers wird bei anderen Empfängern nicht sichtbar. Die maximale Stringlänge ist auf 80 Zeichen begrenzt. Es dürfen auch mehrere Empfängeradressen getrennt durch Semikolons angegeben werden.
sSubject : Ein String mit der Betreff-Zeile zu der E-Mail. Es kann auch ein Leerstring angegeben werden. Die maximale Stringlänge ist auf 80 Zeichen begrenzt.
pMail : Die Adresse (Pointer) eines nullterminierten Strings mit dem E-Mail Text. Es kann auch ein Leerstring angegeben werden. Die Adresse des Strings kann mit dem ADR-Operator ermittelt werden.
tTimeOut : Maximale Zeit, die bei der Ausführung des Befehls nicht überschritten werden darf.
VAR_OUTPUT
VAR_OUTPUT
bBusy : BOOL;
bError : BOOL;
iErrorId : WORD;
END_VAR
bBusy: Dieser Ausgang bleibt so lange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der, an dem tTimeOut-Eingang angelegten Zeit.
bError: Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in iErrorId enthalten.
iErrorId: Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls (Tabelle).
Fehlercode (hex) | Beschreibung |
---|---|
0x8000 | SMTP server not found. |
0x8001 | Resource error. |
0x8002 | Socket resource error. |
0x8003 | Connection fault. |
0x8004 | Communication fault. |
0x8005 | Rx error. Communication time exceeded. |
0x8006 | Rx error. Communication fault. |
0x8007 | Rx error. Frame error. |
0x8008 | Communication error. Wrong response. |
0x8009 | Tx error. Communication fault. |
0x800A | Communication shutdown error. |
0x800B | Communication timeout. |
0x8010 | Invalid parameter. |
Beispiel für einen Aufruf in FUP:
PROGRAM MAIN
VAR
fbSMTP : FB_Smtp;
bSend : BOOL;
sMsg : STRING(100):='Test';
bBusy : BOOL;
bError : BOOL;
nErrId : UDINT;
END_VAR
Im Beispiel wird bei einer steigenden Flanke am bStart-Eingang eine Mail an 4 Empfänger verschickt.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken |
---|---|---|
TwinCAT v2.7.0 und höher | BC9xxx (165) firmware version >=0xB6 | TcSMTPBC.Lb6 |