FB_SmtpV2
Der Baustein sendet einen Datenstrom zu einem entfernten ADS Gerät via ADS. Der TwinCAT ADS SMTP Service muss auf dem entfernten ADS Gerät laufen, so dass der Datenstrom empfangen und in eine E-Mail verarbeitet werden kann. Sobald der Datenstrom verarbeitet wurde, wird die E-Mail versendet.
VAR_INPUT
VAR_INPUT
sNetId : T_AmsNetID; (* AmsNetID *)
sSmtpServer : T_MaxString; (* Smtp Server addres ( IP or Name) *)
sUsername : T_MaxString; (* Smtp Username *)
sPassword : T_MaxString; (* Smtp Password *)
nAuth : UDINT; (* Smtp Auth Type *)
sFrom : T_MaxString; (* Sender string *)
sTo : T_MaxString; (* To recipient string *)
sCc : T_MaxString; (* Cc recipient string *)
sBcc : T_MaxString; (* Bcc recipient string *)
sSubject : T_MaxString; (* Subject string *)
pMessage : DWORD; (* Pointer to the message *)
cbMessage : UDINT; (* Message lenght in byte to send *)
bExecute : BOOL;
tTimeout : TIME := T#20s;
END_VAR
sNetId: AmsNetID auf dem der TwinCAT SMS-Server läuft.
sSmtpServer: Name oder IP des SMTP Servers.
sUsername: Benutzername des SMTP Servers.
sPassword: Passwort für den SMTP Server.
nAuth: Smtp Auth Type:
0 = AUTH NONE
1 = RESERVED
2 = AUTH LOGIN
3 = AUTH NTLM
4 = AUTH PLAIN
sFrom: Ein String, der die E-Mail-Adresse des Absenders enthält. Der Absender muss festgelegt werden. Der String ist auf 255 Zeichen limitiert.
sTo: Ein String, der die E-Mail-Adresse des Empfängers enthält. Mindestens ein Empfänger muss eingetragen werden. Es ist aber auch möglich mehrere Adressen einzutragen. Diese müssen per Simicolon getrennt werden. Der String ist auf 255 Zeichen limitiert.
sCc: Ein String, der die E-Mail-Adresse von weiteren Empfängern enthält (cc=carbon copy). Es ist möglich mehrere Adressen von Empfängern einzutragen, diese müssen dann durch ein Simicolon getrennt werden. Der String kann aber auch leer bleiben. Dem/den Empfänger(n) wird eine Kopie der eMail zugeschickt. Die E-Mail-Adresse des Empfängers ist für andere Empfänger sichtbar. Der String ist auf 255 Zeichen limitiert.
sBcc: Ein String der die E-Mail-Adressen von weiteren Empfängern enthält (Bcc = blind carbon copy). Es ist möglich mehrere Adressen von Empfängern einzutragen, diese müssen dann durch ein Simicolon getrennt werden. Der String kann aber auch leer bleiben. Dem/den Empfänger(n) wird eine Kopie der eMail zugeschickt. Die E-Mail-Adresse der Empfänger ist für andere Empfänger nicht sichtbar. Der String ist auf 255 Zeichen limitiert.
sSubject: Dieser String enthält den Betreff der E-Mail. Falls die E-Mail ohne Betreff gesendet wird, wird automatisch der Computername des Absenders in die Betreffzeile geschrieben (z.B. "eMail gesendet von: CX_00762C"). Der String der Betreffzeile ist auf 255 Zeichen limitiert.
pMessage: Dieser Parameter gibt die Adresse des Strings, welcher den Nachrichtentext enthält, an. Falls die E-Mail ohne Text gesendet wird, wird automatisch das Datum und die Uhrzeit eingesetzt (z.B. "Mail send at Thu, 23 Mar 2006 02:31:44 -0800"). Die Adresse des Strings kann mit dem ADR Operator festgelegt werden.
cbMessage: Länge des E-Mail-Textes. Die Länge kann durch den LEN Operator festgelegt werden.
bExecute: Der Funktionsbaustein wird durch eine steigende Flanke an dieser Eingangsvariablen aktiviert.
tTimeout: Die maximale, erlaubte Zeit, um einen Befehl auszuführen.
VAR_OUTPUT
VAR_OUTPUT
bBusy : BOOL;
bError : BOOL;
nErrId : UDINT;
END_VAR
bBusy: Die Ausgangsvariable bleibt TRUE, bis der Block einen Befehl ausgeführt hat, allerdings nur bis zum Ablauf von tTimeOut.
bError : Die Ausgangsvariable wird auf TRUE umgeschaltet sobald ein Fehler bei der Ausführung des Befehls auftaucht. Der Befehls-spezifische Fehler ist in iErrorId enthalten.
nErrId: Beinhaltet den befehlsspezifischen Fehler Code des zuletzt ausgeführten Befehls (siehe Tabelle).
|
Voraussetzungen
Entwicklungsumgebung | Zielsystem | Einzubindende SPS Bibliotheken |
---|---|---|
TwinCAT v2.8.0 und höher |
| TcSmtp.lib |
Beispiel in ST:
PROGRAM MAIN
VAR
FB_SmtpV2 : FB_SmtpV2;
bSend : BOOL;
bBusy : BOOL;
bError : BOOL;
nErrID : UDINT;
sServer : STRING := 'smtpmail.mustermann.com';
sMsg : STRING := 'TcSmtpSrv is working properly';
sSubject : STRING := 'TcSmtp Service Test';
sUser : STRING := 'username';
sPassword : STRING := 'password';
sFrom : STRING := 'm.mustermann@mustermann.com';
sTo : STRING := 'm.muster@muster.com';
nAuth : INT := 2;
END_VAR
FB_SmtpV2 ( sNetId := '',
sSmtpServer := sServer,
sUsername := sUser,
sPassword := sPassword,
nAuth := nAuth,
sFrom := sFrom,
sTo := sTo,
sSubject := sSubject,
pMessage := ADR(sMsg) ,
cbMessage := LEN(sMsg)+1,
bExecute := bSend,
tTimeout := t#20s,
bBusy => bBusy,
bError => bError,
nErrId => nErrID);