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 (4Byte 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
VAR_INPUT
msgCtrlMask : DWORD;
msgFmtStr : T_MaxString;
dintArg : DINT;
END_VAR
msgCtrlMask : Kontrollmaske, die den Typ und die Wirkung der Meldungsausgabe bestimmt (siehe separate Tabelle).
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_RESOURCE | Meldung wird aus einer Ressource-Datei geholt. (wird momentan nicht unterstützt) |
ADSLOG_MSGTYPE_STRING | Meldung ist direkt angegebener String (default). |
Die Kontrollmasken können in der gewünschten Kombination mit ODER verknüpft werden.
msgFmtStr : Enthält die auszugebende Meldung. Sie kann das Formatierzeichen ‚%d' für die Ausgabe eines DINT-Wertes an beliebiger Stelle enthalten.
dintArg : Enthält den in die Meldung einzufügenden numerischen Wert .
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:
rtMessageOutput: R_TRIG; (* Declaration
*)
bFeedTooHigh: BOOL;
udiAdsLogRes: UDINT;
(*--------------------------------------*)
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 |
---|---|---|
TwinCAT v2.7.0 | PC or CX (x86) | PLCSystem.Lib |
TwinCAT v2.8.0 | PC or CX (x86) | TcSystem.Lib |
TwinCAT v2.10.0 Build >= 1301 | CX (ARM) | TcSystem.Lib |