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.
![]() | 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.
![]() | Kompatibilität Die C++-Sourcecode-Generierung setzt Visual Studio 2013 oder neuer voraus. |