ADSLOGDINT

ADSLOGDINT 1:

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

ADSLOGDINT 2: 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.
Achtung: Diese Funktionalität ist nicht für Windows CE verfügbar.

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:

ADSLOGDINT 3:

Die resultierende Message-Box:

ADSLOGDINT 4:

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)