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 (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:

ADSLOGDINT 2:

Die resultierende Message- Box

ADSLOGDINT 3:

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