Code-Generierung der Ereignisdefinition

Aus der Definition von Ereignisklassen mit Ereignissen wird sowohl in der SPS als auch im C++ Sourcecode generiert.

Bei der Code-Generierung werden die „Namen“ der Ereignisse und Ereignisklassen verwendet. So kann eine Ereignisklasse durch den Namen über unterschiedliche Versionen einer Ereignisklasse hinweg verwendet werden.

Die „Severity“ wird durch die Code-Generierung bereitgestellt. So hat der Programmierer die Möglichkeit, diese individuell beim Anlegen der Events (Create) einzustellen. Die Severity, wie sie im TMC-Editor beschrieben wird, ist damit als Standardverhalten zu betrachten. Im konkreten Verwendungsfall kann die Severity hiervon abweichen.

SPS

In der SPS wird eine GVL TC_EVENTS angelegt, die als Unterelemente die Ereignisklassen hat und nach Änderungen (Speichern/Schließen des TMC Editors) aktualisiert wird. Diese globalen Konstanten haben wiederum die Ereignisse selbst als Unterelemente zusammen mit den einzelnen Elementen EventId, Severity und der UUID der Ereignisklasse, zu der sie gehören.

Diese Elemente können per IntelliSense für die Parameter z. B. bei Create()/CreateEx() verwendet werden.

Code-Generierung der Ereignisdefinition 1:

Eingeloggte SPS

Wenn eine Verbindung mit einer SPS besteht (Login), wird der Code nicht aktualisiert. Die Aktualisierung erfolgt dann nach einem Logout.

Per „OnlineChange“ können die Änderungen an einer Ereignisklasse übernommen werden, wenn die Option „Update boot project“ angewählt wird.

C++

TcCOM-Module müssen die Eventklassen verwenden, d. h. im TMC Editor müssen diese als verwendet eingetragen werden. Eine Code‑Generierung erzeugt dann einen Namespace „TcEvents“ als Teil der <DriverName>Services.h‑Datei, der per IntelliSense für die Parameter der Ereignisklassen/Ereignisse, z. B. bei CreateMessage()/CreateAlarm(), verwendet werden kann.

Code-Generierung der Ereignisdefinition 2:

Kompatibilität

Die C++-Sourcecode-Generierung setzt Visual Studio 2013 oder neuer voraus.