Regeln
Ein Bezeichner darf keine Leerzeichen oder Sonderzeichen enthalten.
Der Unterstrich wird erkannt.
Beispielsweise werden
A_BCD
undAB_CD
als zwei verschiedene Bezeichner behandelt.Mehrfach aufeinander folgende Unterstriche sind nicht erlaubt.
Groß-/Kleinschreibung wird nicht unterschieden.
Beispielsweise bezeichnen
VAR1
undvar1
dieselbe Variable.Die Länge eines Bezeichners ist unbegrenzt.
Zusätzlich zu den Punkten, die Sie speziell bei der Variablendeklaration beachten müssen, wird empfohlen die Empfehlungen anzuwenden. Damit erreichen Sie eine möglichst weitgehende Vereinheitlichung bei der Namensvergabe.
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.
Beispiel: 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 normerweiternde 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 *)
Backtick-Bezeichner
Durch die Verwendung von Backticks können in Bezeichnern auch Zeichen verwendet werden, die überlicherweise in Bezeichner nicht erlaubt sind, beispielsweise Sonderzeichen. Für Backticks wird folgendes Zeichen verwendet: ´ (Unicode: U+02CA)
Die Verwendung von Backticks wird empfohlen, um in CODESYS die gleichen Bezeichner wie in anderen Programmiersprachen oder von Dokumenten, beispielsweise Schaltplänen, verwenden zu können.
Zwischen zwei Backticks darf jedes Zeichen verwendet werden, außer Zeilenumbrüche und andere Backticks. Auch Schlüsselwörter sind zwischen Backticks als Bezeichner erlaubt.
Beispiele:
´Variable+9´
´INT´
Die Backticks sind Teil des jeweiligen Bezeichners und somit sind var1
und ´var1´
zwei unterschiedliche Bezeichner.
PROGRAM PLC_PRG VAR var1 : INT; ´var1´: INT; END_VAR var1 := var1 + 1; ´var1´ := 12;