Skip to main content

Regeln

  • Ein Bezeichner darf keine Leerzeichen oder Sonderzeichen enthalten.

  • Der Unterstrich wird erkannt.

    Beispielsweise werden A_BCD und AB_CD als zwei verschiedene Bezeichner behandelt.

  • Mehrfach aufeinander folgende Unterstriche sind nicht erlaubt.

  • Groß-/Kleinschreibung wird nicht unterschieden.

    Beispielsweise bezeichnen VAR1 und var1 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 durch Lib0 referenziert wird, so wird der in Lib1 enthaltene Baustein func über Lib0.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.

Beispiel 304. Beispiel
PROGRAM PLC_PRG
VAR
    var1 : INT;
    ´var1´: INT;
END_VAR

var1 := var1 + 1;
´var1´ := 12;