Dateneinheitstyp (Data Unit Type, DUT)
Zusätzlich zu den Standard-Datentypen können Sie eigene Datentypen definieren. Strukturen, Aufzählungstypen und Referenzen können als Dateneinheitstypen (DUTs) im DUT-Editorerstellt werden.
Eine Beschreibung der einzelnen Standard- und der benutzerdefinierten Datentypen finden Sie unter Datentypen.
Um ein DUT-Objekt zu einer vorhandenen Anwendung hinzuzufügen, wählen Sie in Logikkatalog > Assets > Typen oder in der Anwendungsbaumstruktur den Anwendungsknoten aus, klicken Sie auf die grüne Plus-Schaltfläche und führen Sie den BefehlDUT... aus. Alternativ können Sie mit der rechten Maustaste auf den entsprechenden Knoten klicken und die Befehle Objekt hinzufügen > DUT ausführen. Um ein anwendungsunabhängiges DUT-Objekt zu erstellen, wählen Sie den Knoten Global der Anwendungsbaumstruktur bzw. Assets aus. Geben Sie im Dialogfeld DUT hinzufügen einen Namen für den neuen Dateneinheitstyp ein, und wählen Sie den gewünschten Typ Struktur, Enumeration, Alias oder Union aus.
DUT-Objekten des Typs Enumeration kann eine Textlistenunterstützung hinzugefügt werden. Weitere Informationen finden Sie in der Beschreibung des Befehls Textlistenunterstützung hinzufügen.
Im Falle des Typs Struktur können Sie zwecks Unterstützung der objektorientierten Programmierung das Prinzip der Vererbung verwenden. Optional können Sie festlegen, dass der DUT einen anderen DUT erweitern soll, der bereits im Projekt definiert ist. Das bedeutet, dass die Definitionen des erweiterten DUTs automatisch im aktuellen DUT gültig sind. Die Erweiterung wird über Option Erweitert: aktiviert und der Name des zu erweiternden DUTs angegeben.
Nach Bestätigung der Einstellungen mit Hinzufügen wird das Editorfenster für den neuen DUT geöffnet, und Sie können mit der Bearbeitung beginnen.
Syntax
TYPE <Bezeichner> : <DUT-Komponenten-Deklaration>END_TYPE
Die DUT-Komponenten-Deklaration hängt vom gewählten DUT-Typ ab, z. B. eine Struktur oder eine Aufzählung.
Im folgenden Beispiel sind 2 DUTs enthalten, die die Strukturen struct1 und struct2 definieren. struct2erweitert struct1, was bedeutet, dass struct2.a in Ihrer Implementierung verwendet werden kann, um auf die Variable a zuzugreifen.
TYPE struct1 :
STRUCT
a:INT;
b:BOOL;
END_STRUCT
END_TYPE
TYPE struct2 EXTENDS struct1 :
STRUCT
c:DWORD;
d:STRING;
END_STRUCT
END_TYPE