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.
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.
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).
- 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. |
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).
Ä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).
- 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).
- 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.