ADSLOGDINT

Die Funktion gibt bei Aufruf eine Message-Box mit einem vorgebbaren Text auf den Bildschirm aus und schreibt einen Eintrag in das Ereignislogbuch des Systems. Da ein SPS-Programm zyklisch abgearbeitet wird, muss z. B. eine Message-Box flankengesteuert ausgegeben werden. Am einfachsten lässt sich dies mit einem vorgeschalteten R_TRIG- oder F_TRIG-Funktionsbaustein erreichen (siehe auch Beispiel im weiteren Verlauf).
Bei der ADSLOGDINT-Funktion kann in den auszugebenden Text ein DINT-Wert (4 Byte vorzeichenbehafteter Integer) an eine von dem Benutzer vorgebbare Stelle eingearbeitet werden. Dazu muss der angelegte Formatstring an der gewünschten Stelle die Zeichenfolge %d enthalten. Der Rückgabeparameter enthält den Funktionsfehlercode oder 0 falls erfolgreich.
FUNCTION ADSLOGDINT : DINT
Eingänge
VAR_INPUT
msgCtrlMask : DWORD;
msgFmtStr : T_MaxString;
dintArg : DINT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
msgCtrlMask | DWORD | Kontrollmaske, die den Typ und die Wirkung der Meldungsausgabe bestimmt (siehe separate Tabelle). |
msgFmtStr | T_MaxString | Enthält die auszugebende Meldung (Typ: T_MaxString). Sie kann das Formatierzeichen %d für die Ausgabe eines DINT-Wertes an beliebiger Stelle enthalten. |
dintArg | DINT | Enthält den in die Meldung einzufügenden numerischen Wert. |
Konstante | Beschreibung |
---|---|
ADSLOG_MSGTYPE_HINT | Meldungstyp ist Hinweis. |
ADSLOG_MSGTYPE_WARN | Meldungstyp ist Warnung. |
ADSLOG_MSGTYPE_ERROR | Meldungstyp ist Fehler. |
ADSLOG_MSGTYPE_LOG | Meldung wird in das Logbuch geschrieben. |
ADSLOG_MSGTYPE_MSGBOX | Meldung wird in einer Messagebox ausgegeben. |
ADSLOG_MSGTYPE_STRING | Meldung ist direkt angegebener String (default). |
Die Kontrollmasken können in der gewünschten Kombination mit ODER verknüpft werden.
Beispiel für den Aufruf der Funktion in FBD:

Die resultierende Message-Box:

Hierbei wird der DINT-Wert 4711 in eine Meldung eingefügt. Die Einfügestelle ist durch das Zeichen %d im Formatstring markiert.
Beispiel für den Aufruf der Funktion in ST:
PROGRAM MAIN
VAR
rtMessageOutput: R_TRIG; (* Declaration *)
bFeedTooHigh: BOOL;
udiAdsLogRes: UDINT;
END_VAR
rtMessageOutput(CLK := bFeedTooHigh);
IF rtMessageOutput.Q THEN
UdiAdsLogRes := ADSLOGDINT( msgCtrlMask := ADSLOG_MSGTYPE_HINT OR ADSLOG_MSGTYPE_MSGBOX,
msgFmtStr := 'PLC Msg: Feed too high! Current feed: %d', dintArg:= 4711);
END_IF
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken (Kategoriegruppe) |
---|---|---|
TwinCAT v3.1.0 | PC oder CX (x86, x64, ARM) | Tc2_System (System) |