Bezeichner
Beachten Sie auch die TwinCAT-3-Programmmierkonventionen (Abschnitt „TwinCAT-3-Programmierkonventionen“) |
Regeln für die Bezeichnervergabe
Regeln für den Bezeichner einer Variablen
- Ein Bezeichner darf folgende Buchstaben und Zahlen enthalten:
- 0…9
- A…Z
- a…z
- TwinCAT beachtet die Groß-/Kleinschreibung nicht, das heißt: VAR1 und var1 bezeichnen dieselbe Variable.
- Ein Bezeichner darf nicht mit einer Zahl beginnen.
- Ein Bezeichner darf keine Leerzeichen, Sonderzeichen (!, &, ß, ...) oder Bindestriche enthalten.
- Die Verwendung von Unterstrichen ist hingegen erlaubt und TwinCAT erkennt diesen auch. Das bedeutet, dass zum Beispiel A_BCD und AB_CD als zwei verschiedene Bezeichner behandelt werden. In der Regel werden keine Trennzeichen, wie zum Beispiel der Unterstrich, zwischen den Wörtern verwendet.
- Doppelte Unterstriche ('__') dürfen nicht verwendet werden, da sie für interne Variablen genutzt werden.
- Die Länge eines Bezeichners ist unbegrenzt.
Regeln für die Mehrfachverwendung von Bezeichnern (Namensräume)
- Sie dürfen einen Bezeichner lokal nicht doppelt verwenden.
- Ein Bezeichner darf nicht identisch mit einem Schlüsselwort (zum Beispiel Variablentyp) sein.
- Sie dürfen einen Bezeichner global mehrfach verwenden. Wenn eine lokale Variable denselben Namen hat wie eine globale Variable, hat die lokale Variable innerhalb einer POU den Vorrang.
- Eine Variable, die in einer globalen Variablenliste definiert ist, kann denselben Namen haben wie eine Variable, die in einer anderen GVL definiert ist. TwinCAT bietet folgende norm-erweiternden Funktionalitäten bezüglich des Namensraums/Gültigkeitsbereichs von Variablen:
- Globaler Namensraum-Operator: Ein Instanzpfad, der mit einem Punkt beginnt, öffnet immer einen globalen Namensraum. Wenn es eine lokale Variable, zum Beispiel nVar, gibt, die denselben Namen hat wie eine globale Variable, sprechen Sie mit .nVar die globale Variable an.
- Der Name einer globalen Variablenliste kann den Namensraum für die enthaltenen Variablen eindeutig definieren. Somit können Sie Variablen mit demselben Namen in verschiedenen globalen Variablenlisten deklarieren und dennoch durch das Voranstellen des Listennamens eindeutig ansprechen.
Beispiel:GVL1.nVar := GVL2.nVar; (*nVar aus GVL2 wird auf nVar in GVL1 kopiert*)
- Variablen, die in der globalen Variablenliste einer ins Projekt eingebundenen Bibliothek definiert sind, können Sie gemäß der Syntax <Namensraum Bibliothek>.<Name der GVL>.<Variablenname> eindeutig ansprechen.
Beispiel:GVL1.nVar := Lib1.GVL1.nVar (* nVar aus GVL1 in Bibliothek Lib1 wird auf nVar in GVL1 kopiert*)
- Für eine Bibliothek wird beim Einfügen via Bibliotheksverwalter auch ein Namensraum definiert. Somit können Sie einen Bibliotheksbaustein oder eine Bibliotheksvariable über <Namensraum Bibliothek>.<Bausteinname|Variablenname> eindeutig ansprechen. Beachten Sie im Fall von verschachtelten Bibliotheken, dass die Namensräume aller beteiligten Bibliotheken in Folge anzugeben sind.
Beispiel: Wenn Lib1 durch Lib0 referenziert wird, so wird die in Lib1 enthaltene Funktion F_Sample überLib0.Lib1.F_Sample
angesprochen:nVar := Lib0.Lib1.F_Sample(nValue:=4); (*Rückgabewert von F_Sample wird auf Variable nVar im Projekt kopiert*)
Siehe auch: