Argumente
Die Texte der Ereignisse können durch die Programmierung mit „Argumenten“ individualisiert werden.
Hierfür wird während der Beschreibung der Ereignisse im TMC Editor eine Markierung mit der Notation {n}
verwendet, wobei n
eine aufsteigende Zahl von 0 ausgehend ist.
Dabei können bis zu 128 Argumente mit einer maximalen Größe von 1024 Bytes an einem Event verwendet werden.
In dem TMC Editor wird also beispielsweise ein solcher Display-Text für ein Ereignis verwendet:
Im Quellcode kann dieser dann folgendermaßen verwendet werden.
SPS
In der SPS kann folgenderweise mit den Argumenten umgegangen werden:
fbMsg : FB_TcMessage;
IF NOT fbMsg.EqualsToEventEntryEx(stOther:=TC_EVENTS.CalculationEventClass.DivisionByZero) THEN
hr := fbMsg.CreateEx(TC_EVENTS.CalculationEventClass.DivisionByZero, 0 (*fbSource*) );
END_IF
fbMsg.ipArguments.Clear().AddLReal(fDividend); //set Argument
Die Argumente müssen dabei nach Create()/CreateEx(), aber vor Send() definiert werden.
Mehrere Argumente können verkettet angeben werden.
fbMsg.ipArguments.Clear().AddLReal(fDividend).AddLReal(fDivisor);
Hierbei wird dann fDividend
an die Stelle von {0}
gesetzt, sowie fDivisor
an die Stelle von {1}
.
C++
In der C++ kann folgenderweise mit den Argumenten umgegangen werden:
TcArgs tcArgs(m_spMessage);
tcArgs->Clear();
tcArgs.AddArgument(m_dividend);
Die Argumente müssen dabei nach CreateMessage()/CreateAlarm(), aber vor Send() definiert werden.
Hierfür muss TcEventLoggerTemplate.h
im <ProjectName>Interfaces.h
inkludiert warden.
#include"TcRouterInterfaces.h"
#include"TcEventLoggerTemplates.h"
///<AutoGeneratedContent id="Interfaces">
///</AutoGeneratedContent>
Ausgabe
Die Ausgabe ist entsprechend:
Diese Notation kann auch als Text innerhalb der Übersetzungen verwendet werden.
Formatierung
Die Ausgabe der Argumente kann auch formatiert werden. Hierfür wird im TMC Editor entsprechend die Syntax {n,<Format>}
verwendet:
Folgende Formatierungen stehen bereit:
Typ | Format | Beschreibung |
---|---|---|
Zahlenwert | d / D | Dezimaldarstellung |
| e / E | Exponentialdarstellung |
| x / X | Hexadezimaldarstellung |
| f / F | Fixed-Point |
Beachten Sie, dass z. B. ein REAL nicht als „d“ oder „x“ usw. dargestellt werden kann.
Zusätzlich stehen die Syntax {eventID}
(für die Event ID) sowie {eventclass}
(für die Guid der Ereignisklasse) bereit, um die entsprechenden Informationen als Teil des Textes auszugeben.