Regeln für die Bezeichnervergabe
Regeln für den Bezeichner einer Variablen
-
Ein Bezeichner darf keine Leerzeichen oder Sonderzeichen enthalten.
-
Groß-/Kleinschreibung wird nicht beachtet. Beispielsweise bezeichnen
VAR1
undvar1
dieselbe Variable. -
Der Unterstrich wird erkannt. Beispielsweise werden
A_BCD
undAB_CD
als zwei verschiedene Bezeichner behandelt. Mehrfach aufeinander folgende Unterstriche sind nicht erlaubt. -
Die Länge eines Bezeichners ist unbegrenzt.
Regeln für die Mehrfachverwendung von Bezeichnern (Namensräume)
-
Ein Bezeichner darf lokal nicht doppelt deklariert werden.
-
Ein Bezeichner kann global mehrfach verwendet werden. Wenn eine lokale Variable denselben Namen hat wie eine globale Variable, hat die lokale Variable innerhalb einer POU den Vorrang.
-
Ein Bezeichner darf nicht identisch mit einem Schlüsselwort sein, wie beispielsweise dem Gültigkeitsbereich
VAR_Global
. -
Eine Variable, die in einer globalen Variablenliste deklariert ist, kann denselben Namen haben wie eine Variable, die in einer anderen GVL definiert ist. CODESYS bietet folgende norm-erweiternden Funktionalitäten bezüglich des Namensraums oder Gültigkeitsbereichs von Variablen an:
-
Globaler Namensraum-Operator:
Ein Instanzpfad, der mit einem Punkt beginnt, öffnet immer einen globalen Namensraum. Wenn es eine lokale Variable, zum Beispiel
ivar
, gibt, die denselben Namen hat wie eine globale Variable, sprechen Sie mit.ivar
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:
globlist1.ivar := globlist2.ivar; (* ivar aus GVL globlist2 wird auf ivar in GVL globlist1 kopiert *)
-
Variablen, die in der globalen Variablenliste einer ins Projekt eingebundenen Bibliothek definiert sind, können Sie gemäß der folgenden Syntax eindeutig ansprechen:
<name scope library>.< GVL name>.<variable name>
Beispiel:
globlist1.ivar := lib1.globlist1.ivar (* ivar aus GVL globlist1 in Bibliothek lib1 wird auf ivar in GVL globlist1 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
durchLib0
referenziert wird, so wird der inLib1
enthaltene Bausteinfunc
überLib0.Lib1.fun
angesprochen:ivar := Lib0.Lib1.fun(4, 5); (* Rückgabewert von func wird auf Variable ivar im Projekt kopiert *)
Zusätzlich zu den Punkten, die Sie speziell bei der Variablendeklaration beachten müssen, wird empfohlen die folgenden Regeln anzuwenden. Damit erreichen Sie eine möglichst weitgehende Vereinheitlichung bei der Namensvergabe.
Empfehlungen für Variablennamen
Bezeichnen Sie Variablen in Applikationen und Bibliotheken möglichst angelehnt an die ungarische Notation. Finden Sie für jede Variable als Basisnamen eine sinnvolle, möglichst kurze, englische Bezeichnung, die aus mehreren Worten bestehen kann. Schreiben Sie den jeweils ersten Buchstaben eines Worts groß, die übrigen Buchstaben klein. Hängen Sie vor den Basisnamen Präfix(e) in Kleinbuchstaben entsprechend dem Datentyp der Variablen.
Beispiel: iFileSize : INT;
Datentyp |
Präfix |
Beschreibung |
---|---|---|
|
|
Bewusst wird als Präfix für boolesche Variablen |
|
Reserviert |
|
|
|
Bitfolge, nicht für arithmetische Operationen |
|
|
Bitfolge, nicht für arithmetische Operationen |
|
|
Bitfolge, nicht für arithmetische Operationen |
|
|
Bitfolge, nicht für arithmetische Operationen |
|
|
Arithmetischer ganzzahliger Datentyp, 8 Bit |
|
|
Arithmetischer ganzzahliger Datentyp, 8 Bit |
|
|
Arithmetischer ganzzahliger Datentyp, 16 Bit |
|
|
Arithmetischer ganzzahliger Datentyp, 16 Bit |
|
|
Arithmetischer ganzzahliger Datentyp, 32 Bit |
|
|
Arithmetischer ganzzahliger Datentyp, 32 Bit |
|
|
Arithmetischer ganzzahliger Datentyp, 64 Bit |
|
|
Arithmetischer ganzzahliger Datentyp, 64 Bit |
|
|
Arithmetischer Gleitpunktdatentyp, 32 Bit |
|
|
Arithmetischer Gleitpunktdatentyp, 64 Bit |
|
|
Einzelbyte-Zeichenfolge variabler Länge (Standardeinstellung 80 Zeichen) |
|
|
Doppelbyte-Zeichenfolge variabler Länge (Standardeinstellung 80 Zeichen) |
|
|
Zeitdauer, 32 Bit |
|
|
Zeitdauer, 64 Bit |
|
|
Uhrzeit (Tageszeit), 32 Bit |
|
|
Uhrzeit (Tageszeit), 64 Bit |
|
|
Datum und Uhrzeit |
|
|
|
|
|
Kalenderdatum |
|
|
Kalenderdatum |
|
|
|
|
|
|
Enumeration |
|
Beispiel
VAR bySubIndix: BYTE; xFlag: BOOL; udiCounter: UDINT; END_VAR
Bezeichner |
Beschreibung |
Beispiel |
---|---|---|
Verschachtelte Deklaration |
Präfixe werden in der Reihenfolge der Deklaration aneinander gehängt |
|
Funktionsbaustein-Instanz Variable vom benutzerdefinierten Datentyp |
Präfix: Kürzel für den Funktionsbaustein- oder Datentypnamen |
|
Lokale Konstante Lokale konstante Variable |
Präfix: |
|
Globale Variable |
An das Bibliothekspräfix wird ein zusätzliches Präfix angehängt
|
|
Globale Konstante Globale konstante Variable |
An das Bibliothekspräfix wird ein zusätzliches Präfix angehängt
|
|
Empfehlungen für Variablennamen in CODESYS V3.x Bibliotheken
Bezeichner |
Beschreibung |
Beispiel |
---|---|---|
Variable |
Entspricht der obigen Beschreibung für Variablennamen mit der Ausnahme, dass globale Variablen und Konstanten kein Bibliothekspräfix benötigen, da der Namensraum die Funktion ersetzt. |
|
Empfehlungen für Bezeichner für benutzerdefinierte Datentypen (DUT)
Bezeichner für |
Beschreibung |
Beispiel |
---|---|---|
Strukturen |
Bibliothekspräfix, gefolgt von einem Unterstrich und einer kurzen, aussagekräftigen Beschreibung der Struktur. Das zugehörige Präfix für angelegte Variablen dieser Struktur soll als Kommentar direkt nach dem Doppelpunkt folgen. |
|
Enumerationen |
Bibiliothekspräfix, gefolgt von einem Unterstrich und dem Bezeichner in Großbuchstaben. Zu beachten: In vergangenen CODESYS-Versionen haben Enumerationswerte > 16#7FFF zu Fehlern geführt, da sie nicht automatisch
in |
Deklaration:
|
Empfehlungen für Bezeichner für benutzerdefinierte Datentypen (DUT) in CODESYS V3-Bibliotheken
Bezeichner für |
Beschreibung |
Beispiel |
---|---|---|
DUT-Namen in CODESYS V3-Bibliotheken |
Es wird auf das Bibliothekspräfix verzichtet, da die Funktion des Bibliothekspräfixes durch den Namensraum ersetzt wird. Auch die Enumerationswerte werden ohne Bibliothekspräfix definiert. |
Bibliothek mit Namensraum
ᅠ ᅠ ᅠ ᅠ ᅠ ᅠ ᅠ
Deklaration:
Verwendung in der Applikation
|
Empfehlungen für Bezeichner für POUs: Funktionen, Funktionsbausteine, Programme
Bezeichner für |
Beschreibung |
Beispiel |
---|---|---|
POUs: Funktionen, Funktionsbausteine, Programme |
Bibliothekspräfix gefolgt von einem Unterstrich und einem aussagekräftigen, möglichst kurzen Namen der POU. Wie bei den Variablen soll der jeweils erste Buchstabe eines Worts des Basisnamens groß, die übrigen klein geschrieben werden. Es wird empfohlen, den Namen der POU aus einem Verb und einem Substantiv zusammenzusetzen. Bei Funktionsbausteinen soll das zugehörige Präfix für angelegte Instanzen als Kommentar direkt nach dem Namen folgen. |
|
Aktionen |
Nur Aktionen, die der Baustein selbst aufruft, beginnen mit |
Empfehlungen für Bezeichner für POUs in CODESYS V3 Bibliotheken
Bezeichner für |
Beschreibung |
Beispiel |
---|---|---|
POU |
Es wird auf das Bibliothekspräfix verzichtet, da der Namensraum die Funktion des Bibliothekspräfix ersetzt |
|
Methode |
Nur Methoden, die der Baustein selbst aufruft, beginnen mit Ansonsten erhalten Methoden kein Präfix |
|
Interface Schnittstelle |
|
|
Empfehlungen für Bezeichner für Visualisierungen




HINWEIS

Achten Sie darauf, dass eine Visualisierung nicht denselben Namen erhält wie ein anderer Baustein im Projekt, da dies bei Visualisierungswechseln zu Problemen führen würde.