FB_Smtp

FB_Smtp 1:
Funktionsbaustein 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 solange 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
FB_Smtp 2:
Funktionsbaustein fbSMTP

Im Beispiel wird bei einer steigenden Flanke am bStart-Eingang eine Mail an 4 Empfänger verschickt.

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken

TwinCAT v2.10.0 und höher

BX9000 (165) firmware version >=1.12

TcBaseBX9000.lbx