Beschreibung, Kommentar, JSON-String oder Typ für Variablen oder Datentypen angeben

Syntax
VAR | VAR_INPUT | VAR_OUTPUT | VAR_IN_OUT | VAR_GLOBAL | VAR_EXTERNAL | VAR_TEMP
   name_1, name_2, ..., name_n : data-type := initial-value {
      description := "string";
      comment := "string";
      customDataJson := 'Json-String';
      concreteType := data-type; (* nur für Vendor-Bausteine mit 'ANY'-Eingängen relevant, die in anderen Vendor-Bausteinen verwendet werden. *)
      };
   ...
END_VAR 
 
TYPE
   name_A : <Datentyp-Deklaration> := initial-value {
      description := "string";
      comment := "string";
      customDataJson := 'Json-String';
      };
   ...
   name_B: STRUCT
      name_e1 : type := initial-value {
        description := "string";
        comment := "string";
        customDataJson := 'Json-String';
        };
      ...
   END_STRUCT; 
END_TYPE
Bedeutung

Angabe dieser zusätzlichen Daten (= Daten-Elemente) bei einer →Variable, einem →Datentyp oder einem Strukturelement (= Sprach-Element):

  • eine Beschreibung (auch als Langname bekannt) = Daten-Element description
  • einen Kommentar = Daten-Element comment
  • einen →JSON-String = Daten-Element customDataJson
  • einen konkreten Datentypen = Daten-Element concreteType 

Implementierungsabhängige Realisierung

Laut der →IEC-Norm sind diese Daten-Elemente eine implementierungsabhängige Realisierung eines →Pragmas.

Die Angabe der Daten-Elemente ist vor dem abschließenden Zeichen ; des Sprach-Elements erforderlich, aber nach allen optionalen Angaben (z.B. dem →Initialisierungswert). Die Angabe beginnt mit dem Zeichen { und endet mit dem Zeichen }, jedes Daten-Element endet mit dem Zeichen ; . Sie können eines, 2 oder alle Daten-Elemente pro Sprach-Element angeben. Bei mehr als einem Daten-Element halten Sie die Reihenfolge laut der Syntax ein.

Der Text für die Beschreibung, den Kommentar und den JSON-String muss ein Zeichenfolge-Literal in einem →Pragma sein.

Zeichenfolge-Literale in Pragmas bestehen aus keinem oder mehreren Zeichen, die entweder mit dem einfachen Anführungszeichen ' oder dem doppelten Anführungszeichen " eingeschlossen werden.

BeschreibungBeispiele
Literal mit einfachem Anführungszeichen'' (leeres Literal), 'OK', 'ABCDEF', 'B', ' ' (nur ein Leerzeichen im Literal)
Literal mit doppeltem Anführungszeichen"" (leeres Literal), "OK", "ABCDEF", "B", " " (nur ein Leerzeichen im Literal)

Sonderzeichen, wie z.B. Umlaute oder €, aber mit der Ausnahme von $, können Sie direkt in das Literal sowohl in ' als auch in " eingeben.
Als Alternative können Sie Sonderzeichen als Kombinationen von 3 Zeichen, beginnend mit dem Dollar-Zeichen ($) und gefolgt von 2 Hexadezimal-Ziffern, eingegeben werden. Dies ist analog zur Eingabe in Zeichenfolge-Literalen.

Beispiele:

  • Statt "Änderung" oder 'Änderung' geben Sie "$C4nderung" oder '$C4nderung' ein.
  • Statt "€300" oder '€300' geben Sie "$80300" oder '$80300' ein.

Mehr Beispiele für solche Kombinationen und weiterführende Links finden Sie im Glossar-Artikel "→Zeichenfolge-Literal".

Zusätzlich sind die folgenden Angaben für die Zeichenfolge-Literale in Pragmas möglich:

AngabeBedeutungBeispiele
'$''in ': Literal mit einfachem Anführungszeichen ''This is $'just$' a test.'
'$"'in ': Literal mit doppeltem Anführungszeichen "'This is $"just$" a test.'
'"'in ': Literal mit doppeltem Anführungszeichen "'This is "just" a test.'
"'"in ": Literal mit einfachem Anführungszeichen '"This is 'just' a test."
"""in ": Literal mit doppeltem Anführungszeichen ""This is ""just"" a test."
"$""in ": Literal mit doppeltem Anführungszeichen ""This is $"just$" a test."
"$'"in ": Literal mit einfachem Anführungszeichen '"This is $'just$' a test."

Zusätzlich sind die folgenden Angaben für Zeichenfolge-Literale sowohl in ' als auch in " möglich:

AngabeBedeutung
$$Literal mit Dollarzeichen $
$L oder $lLiteral mit Zeilenvorschub ("Line feed")
$N oder $nLiteral mit neuer Zeile ("Newline")
$P oder $pLiteral mit Seitenvorschub ("Form feed (page)")
$R oder $rLiteral mit Wagenrücklauf ("Carriage return")
$T oder $tLiteral mit Tabulator
$0ALiteral mit Kombinationen von 3 Zeichen, beginnend mit dem Dollar-Zeichen ($) und gefolgt von 2 Hexadezimal-Ziffern (z.B. für Sonderzeichen – wie oben erwähnt)

Wenn Sie das Zeichen " im Text für einen JSON-String benötigen, geben Sie den Text am besten in ' ein (siehe Beispiel unter "Beschreibung, Kommentar, JSON-String oder Typ für Variablen oder Datentypen angeben").

Die Daten-Elemente für Beschreibung, Kommentar und JSON-String werden üblicherweise von einem Systemintegrator ausgewertet. In logi.CAD 3 sind Beschreibung und Kommentar der Variable auch im Schnittstellen-Editor einsehbar.

Das Daten-Element für einen konkreten Datentyp ist nur bei der Deklaration einer →Instanz eines →Vendor-Bausteins nötig, falls dieser Vendor-Baustein einen oder mehrere Eingänge mit einem →allgemeinen Datentyp enthält und die Deklaration der Instanz erfolgt in einem Vendor-Baustein (dadurch wird der Vendor-Baustein mit den ANY-Eingängen in einem anderen Vendor-Baustein verwendet). Durch die zusätzliche Angabe von concreteType und dem Datentyp data-type bei der Instanz sind die nötigen Typisierungsinformation beim Erstellen der Anwendung vorhanden. 

Die Angabe der Daten-Elemente ist innerhalb dieser Abschnitte möglich:

AbschnittDie Angabe ist für dieses Sprach-Element möglich:
VAR ... END_VARinterne Variable (siehe "Deklaration von internen Variablen")
VAR_INPUT ... END_VAREingangsvariable (siehe "Deklaration von Eingangsvariablen in ST")
VAR_OUTPUT ... END_VARAusgangsvariable (siehe "Deklaration von Ausgangsvariablen in ST")
VAR_IN_OUT ... END_VAREin-/Ausgangsvariable (siehe "Deklaration von Ein-/Ausgangsvariablen in ST")
VAR_GLOBAL ... END_VAR
VAR_EXTERNAL ... END_VARexterne Variable (siehe "Deklaration von externen Variablen in ST")
VAR_TEMP ... END_VARtemporäre Variable (siehe "Deklaration von temporären Variablen in ST")
TYPE ... END_TYPE

Datentyp mit benannten Werten (siehe "Deklaration eines Datentyps mit benannten Werten (Enums) in ST"),
ARRAY-Datentyp (siehe "Deklaration eines ARRAY-Datentyps in ST"),
direkt abgeleiteter Datentyp (siehe "Deklaration eines direkt abgeleiteten Datentyps in ST"),
Strukturelement (siehe "Deklaration eines strukturierten Datentyps in ST")

Beispiel: Beschreibung, Kommentar und JSON-String für eine lokale Variable
VAR
  Var1 : INT {description := "This is the long name for the variable.";
    comment := "This is the comment for the variable.";
    customDataJson := '{
    "glossary": {
      "title": "Variable (local)",
      "ID": "Var1"
        }
      }';
    };
END_VAR
Beispiel: Beschreibung und Kommentar für eine Funktionsbaustein-Instanz
VAR
  Inst1 : Control {description := "This is the long name for the function block instance.";
  comment := "This is the comment for the function block instance."; };
END_VAR
Beispiel: Beschreibung oder Kommentar für ein Strukturelement
TYPE
  complex : STRUCT
    re : REAL {description := "This is the long name for the 1st structure element.";};
    im : REAL {comment := "This is the comment for the 2nd structure element.";};
  END_STRUCT;
END_TYPE