Verwendung von benutzerdefinierten Datentypen

Anlegen einer EAP Variable

In TwinCAT gibt es zwei gängige Möglichkeiten benutzerdefinierte Datentypen anzulegen. Zum einen kann ein eigener Datentyp über den System Knoten des Projektbaums auf dem Karteireiter Data Types angelegt werden (vgl. übernächste Abbildung). Ein solcher Datentyp steht dann allen Modulen des TwinCAT Projektes zur Verfügung. Es handelt sich also um einen globalen Datentypen.
Zum anderen wird häufig ein eigener Datentyp innerhalb eines PLC Projektes angelegt, indem eine DUT (Data Type Unit) definiert wird. Ein solcher Datentyp steht dann zunächst erst mal nur dem PLC Projekt lokal zur Verfügung. Anderen Modulen, wie z.B. der I/O Konfiguration (und damit auch dem EAP Gerät), bleibt dieser Datentyp verborgen.

In folgender Abbildung ist zu sehen, dass der Datentyp MyType in der PLC definiert worden ist. Dieser Datentyp ist außerdem für eine Output Variable des SPS Programms verwendet worden. Dennoch taucht der benutzerdefinierte Datentyp nicht in der Liste der verfügbaren Datentypen auf, wenn bei der Publisher Box des EAP Gerätes eine Variable von diesem Datentyp angelegt werden soll.

Verwendung von benutzerdefinierten Datentypen 1:

Ein entsprechender Hinweis dafür, dass ein Datentyp nur lokal verwendet wird, lässt sich anhand der Datentypenliste auf dem Karteireiter Data Types über den System Knoten finden. In folgender Abbildung wird der Datentyp mit dem Namen MyType in der Liste aufgeführt. Unter der Eigenschaft Type steht jedoch der Vermerk, dass es sich um einen temporären Datentypen handelt (Tmp). Das bedeutet, dass es sich um einen Datentypen handelt, der nicht global ist.

Verwendung von benutzerdefinierten Datentypen 2:

Wenn nun die Notwendigkeit besteht, einen lokalen Datentypen aus der PLC im globalen Kontext zu verwenden, kann die entsprechende DUT zu einem globalen Datentypen konvertiert werden (vgl. folgende Abbildung).

Verwendung von benutzerdefinierten Datentypen 3:
1. Klicken Sie im Kontextmenü des DUT auf das Kommando [Convert to Global Data Type].
  • Der Knoten des DUT wird automatisch aus dem PLC Projekt entfernt und eine globale Deklaration des Typen wird angelegt (vgl. folgende Abbildung).

Die Beschreibung für ein und denselben Datentype muss in TwinCAT eindeutig sein. Aus diesem Grund wird die Definition des Datentypen (die ursprüngliche DUT) aus der PLC entfernt. Dafür ist nach der Konvertierung die Definition des Datentypen in der XML-basierten TwinCAT Projektdatei wiederzufinden, und der Datentyp steht auf diese Weise dem gesamten TwinCAT Projekt global zur Verfügung.

Ein Datentyp tritt als lokale und globale Variante auf

Nach der Konvertierung eines Datentypen zu einem globalen Datentypen, tritt dieser in der Liste der Datentypen zwei Mal auf. Nämlich sowohl als lokaler als auch als globaler Datentyp. Der lokale Datentyp wird erst dann aus der Liste entfernt, wenn dieser nicht mehr referenziert wird. Dazu ist es in der Regel notwendig, nach der Konvertierung das PLC Projekt erneut zu kompilieren. Dadurch wird die Referenz von dem SPS Programm auf den lokalen Datentypen gelöscht und nur noch der globale Datentyp referenziert. Entsprechend sollte der Datentyp nur noch einmal in der Liste auftauchen wie in der folgenden Abbildung.

Verwendung von benutzerdefinierten Datentypen 4:

Nachdem der benutzerdefinierte Datentyp zu einem globalen Datentypen konvertiert wurde, kann dieser beim Anlegen einer Publisher oder Subscriber Variable beim EAP Gerät aus der Liste der verfügbaren Datentypen ausgewählt werden (vgl. folgende Abbildung).

Verwendung von benutzerdefinierten Datentypen 5:

Ändern eines globalen Datentypen

Sobald ein Datentyp zu einem globalen Datentypen konvertiert worden ist, steht seine Definition nicht mehr unter der Kontrolle des PLC Projektes. Die Definition des Datentypen befindet sich in der XML-basierten TwinCAT Projektdatei. Das Ändern dieses Datentypen muss nun im TwinCAT Projekt über den Karteireiter Data Types des Knoten System vorgenommen werden (vgl. folgende Abbildung).

Verwendung von benutzerdefinierten Datentypen 6:
1. Suchen Sie den Datentypen aus der Liste heraus, den Sie ändern möchten.
2. Klicken Sie auf diesen mit der rechten Maustaste und wählen Sie im Kontextmenü das Kommando [Edit].
  • Es öffnet sich der TMC Editor (TMC = TwinCAT Module Configuration).
Verwendung von benutzerdefinierten Datentypen 7:
1. Mit Hilfe des TMC Editors können Sie den Datentypen beliebig verändern und anschließend speichern.
  • Die Änderung wird im TwinCAT Projekt übernommen, indem nach dem Speichervorgang eine neue Version des Datentypen angelegt wird und die ursprüngliche Version im TwinCAT Projekt als Hidden (dt. versteckt) markiert wird.

Ein PLC Programm, welches den betreffenden Datentypen verwendet, benutzt immer automatisch die aktuellste Version des Datentypen. Damit die Änderung des Datentypen auch im Maschinencode übernommen wird, muss das PLC Projekt nach der Änderung neu kompiliert werden.

Wenn eine PLC Variable von diesem Datentypen existiert und diese mit einer entsprechenden Publisher oder Subscriber Variablen eines EAP Gerätes verknüpft ist, wird auch bei der Publisher/Subscriber Variablen die aktuellste Version des Datentypen verwendet, sobald das PLC Projekt neu kompiliert worden ist.
Existiert keine Verknüpfung von der EAP Variablen zur PLC Variablen, verwendet das EAP Gerät weiterhin die ursprüngliche, alte Version des Datentypen für seine Variable. Wenn stattdessen die neue Version verwendet werden soll, muss die betroffene EAP Variable zunächst gelöscht und eine neue EAP Variable vom gewünschten Datentypen wieder hinzugefügt werden. Die alte Version des Datentypen bleibt im TwinCAT Projekt so lange erhalten, bis keine Referenz mehr zu dieser alten Version existiert.