Variablen

 

Gemäß IEC 61131-3 wird in EcoStruxure Machine Expert - Safety die Sicherheitslogik mit Variablen entwickelt, anstelle der direkten Adress­ierung von Eingängen, Ausgängen oder der Verwendung von Merkern.

Variablen müssen in Variablen-Arbeitsblättern deklariert werden. Dies kann entweder beim Einfügen der Variablen in den Code über den Dialog 'Variable' erfolgen (vereinfachte Vorgehensweise, da Einfügen und Deklarieren in einem Schritt erfolgen) oder durch manuelles Eintragen der Deklarationen in das jeweilige Variablenarbeitsblatt bevor diese im Code verwendet werden. Lesen Sie hierzu die Themen "Einfügen und Deklarieren von Variablen in FBS/KOP" und "Einfügen und Deklarieren von Variablen in ST".

Diese Variablen-Arbeitsblätter sind als spezielle tabellenorientierte Editoren realisiert. Weitere Informationen hierzu finden Sie im Thema "Variablen-Arbeitsblätter".

Bereich: Lokal und global

Der Gültigkeitsbereich einer Variablen bestimmt, in welcher/n POE(s) eine Variable verwendet werden kann. Gemäß IEC 61131 sind die möglichen Bereiche lokal und global. Der Gültigkeitsbereich einer Vari­ablen wird definiert durch den Ort, an dem die Variable deklariert ist (lokales oder globales Variablen-Arbeitsblatt) und durch das für die Deklaration verwendete Schlüsselwort.

EcoStruxure Machine Expert - Safety unterstützt lokale und globale Vari­ablen, wobei für jeden der beiden Bereiche sicherheitsbezogene und Standard-Datentypen verfügbar sind (siehe Abschnitt unten).

Lokale Variablen

Eine Variable, die nur innerhalb einer POE verwendet werden kann, ist eine lokale Variable (ihr Gültigkeitsbereich ist lokal).

Lokale Variablen müssen in dem Variablen-Arbeitsblatt der POE deklar­iert werden, in der die Variable verwendet werden soll. Zur Deklaration einer lokalen Variablen muss eines der Schlüsselwörter VAR, VAR_INPUT oder VAR_OUTPUT verwendet werden.

Da lokale Variablen nicht mit Prozessdaten-Elementen (physikalischen Ein- und Ausgängen) verbunden werden können, nennt man sie symbolische Variablen. Die symbolischen Variablen werden von EcoStruxure Machine Expert - Safety in freien Speicherbereichen der Sicherheitssteuerung abgelegt, deren Adressen dem Anwender nicht bekannt sind. Symbolische Variablen dürfen einen optionalen Anfang­swert haben.

FB-Instanzen werden gleich behandelt wie lokale Variablen. Ihre Instanznamen müssen mit VAR deklariert werden.

Im Debug-Modus können lokale Variablen überschrieben werden.

Globale Variablen

Bei einer Variablen, die in jeder POE des Projekts verwendet werden kann, spricht man von einer globalen Variablen. Variablen mit globalem Gültigkeitsbereich müssen im globalen Variablen-Arbeitsblatt deklariert werden. Dort ist die Spalte 'Verwendung' zum Auswählen des IEC 61131-definierten Deklarations-Schlüsselwortes VAR_GLOBAL nicht enthalten, da dieses Schlüsselwort automatisch für alle globale Vari­ablen gilt.

(Hinweis für erfahrene IEC 61131-Anwender: In EcoStruxure Machine Expert - Safety können globale Variablen ohne zusätzliche lokale VAR_EXTERNAL-Deklaration verwendet werden.)

Bei globalen Variablen wird zwischen zwei Typen unterschieden: Globale symbolische Variablen (ohne zugeordnete physikalische Adresse) und globale I/O-Variablen, die einem Prozessdaten-Element (Eingangs- oder Ausgangssignal) zugeordnet sind. Weitere Informa­tionen finden Sie im Thema "Deklarationsregeln für Vari­ablen/FB-Instanzen".

Globale Variablen können in ST nicht verarbeitet werden.

Globale Variablen, die mit einem Ausgang verbunden sind, dürfen einen optionalen Anfangswert haben (siehe Abschnitt "Initialisieren von Vari­ablen" unten). Im Debug-Modus können I/O-Variablen geforct werden.

Unterscheidung zwischen sicherheitsbezogenen und Stan­dard-Variablen

Um die Anforderungen der IEC 61508 zu erfüllen und als Erweiterung der IEC 61131, wird in EcoStruxure Machine Expert - Safety sicherheits­bezogener und Standard-Code strikt unterschieden. Deshalb wird auch zwischen sicherheitsbezogenen und Standard-Variablen differenziert, oder genauer gesagt zwischen sicherheitsbezogenen und Stan­dard-Datentypen.

Weitere Informationen

Weitere Informationen finden Sie in den Themen "IEC 61131-Implementierung - Datentypen" und "Deklara­tionsregeln für Variablen/FB-Instanzen".

Namenskonventionen für Variablen

EcoStruxure Machine Expert - Safety erlaubt die Verwendung von DIN-Bezeichnern in IEC 61131-Variablennamen.

Regeln für die Verwendung von DIN-Bezeichnern

Gemäß der Norm IEC 61131 dürfen Variablennamen aus Buchstaben, Ziffern und Unterstrichen zusammengesetzt sein. Der Bezeichner muss mit einem Buchstaben oder einem Unterstrich beginnen. Die Verwendung jedes anderen Zeichens führt zum Kompilerfehler "Unzu­lässiger Bezeichner".

Diese Namenskonvention wurde in EcoStruxure Machine Expert - Safety dahingehend erweitert, dass IEC 61131-Variablennamen auch DIN-Bezeichner enthalten dürfen:

  • Die Zeichen - + < > dürfen an jeder beliebigen Position innerhalb des Namens und als letztes Zeichen vorkommen. Sie dürfen jedoch nicht als erstes Zeichen des Variablennamens verwendet werden.

  • Die DIN-Bezeichner / * # und die Ziffern 0 bis 9 können an jeder beliebigen Stelle verwendet werden.

Regeln für die Verwendung von DIN-Bezeichnern in IEC 61131-Vari­ablennamen

  • Variablennamen müssen mindestens ein alphabetisches Zeichen enthalten.

  • Variablen dürfen nicht den Namen eines IEC 61131-Datentyps haben, wie z.B. BOOL, INT, WORD, REAL, etc.

  • Variablennamen dürfen nicht gleich wie Literale sein. Im Code werden Literale durch Spezifizieren des Literaldatentyps, gefolgt vom Hash-Zeichen ('#') verwendet: <Literalpräfix>#<Wert>. Beispiele für Literale sind SAFEINT#5 und WORD#32767. Eine Variablendeklaration wie safeint#MyVar wäre deshalb ungültig.

    Literalpräfixe unterscheiden nicht zwischen Groß- und Kleinschrei­bung und beinhalten die folgenden Schlüsselwörter:

    BOOL, REAL, LREAL, SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, BYTE, WORD, DWORD, LWORD, TIME, T, DATE, D, TIME_OF_DAY, TOD, DATE_AND_TIME, DT, STRING, TIME­DATE48, WEIGHT, ANALOG, UNIFRACT, BIFRACT200, FIXED, BOOLEAN2, BCD4, ENUM4, SAFEBOOL, SAFEBYTE, SAFED­WORD, SAFEINT, SAFEDINT, SAFETIME, SAFEWORD

Initialisieren von Variablen

Gemäß IEC 61131-3 können Variablen Anfangswerte zugewiesen werden. Bei ihrer ersten Verarbeitung (zur Laufzeit) wird die Variable mit diesem Anfangswert verwendet werden.

Es gelten folgende Regeln:

  • Die Initialisierung von Variablen ist optional. Wird kein Anfangswert angegeben, dann wird die Variable mit dem Standard-Anfangswert des jeweiligen Datentyps gemäß IEC 61131-3 initialisiert.

  • Anfangswerte können für lokale (symbolische) Variablen und globale Ausgangsvariablen vergeben werden.

    Globale Eingangsvariablen (globale Variablen, die mit einem physi­kalischen Eingang verbunden sind) können nicht initialisiert werden.

  • Der Anfangswert muss zu dem gewählten Datentyp passen.

  • Für boolesche Variablen ist der Standard-Anfangswert 0 oder FALSE.

  • Anfangswerte für sicherheitsbezogene Variablen müssen unter Angabe des Datentyps in folgendem Format eingegeben werden: SAFEINT#Wert, SAFEBYTE#Wert, SAFEWORD#Wert, SAFED­WORD#Wert oder SAFETIME#Werts.

    (Wert gibt dabei den tatsächlichen Wert an, z.B. SAFEINT#13 oder SAFETIME#1s.)

  • Um eine sicherheitsbezogene boolesche Variable mit FALSE zu initialisieren, geben Sie entweder SAFEBOOL#0 oder SAFE­FALSE ein. Verwenden Sie entsprechend SAFEBOOL#1 oder SAFETRUE, um eine sicherheitsbezogene boolesche Variable mit TRUE zu initialisieren.

  • Globale Variable wirkt wie globale Konstante: Wenn eine globale symbolische Variable einen Anfangswert besitzt, dann kann diese als globale Konstante mit symbolischem Namen betrachtet werden. Die initialisierte globale symbolische Variable ist schreibgeschützt und wird vom Compiler wie eine Konstante behandelt. Infolgedessen kann sie z.B. an den Formalparameter eines Funktionsbausteins angeschlossen werden, der eine Konstante erwartet.

    Lesen Sie hierzu das Thema "Konstanten: Einfügen".

Schlüsselwörter zur Variablen-Deklaration

Gemäß IEC 61131 werden Variablen mit Hilfe von Schlüsselwörtern deklariert. In EcoStruxure Machine Expert - Safety wählen Sie die Schlüsselwörter zur Variablendeklaration in der Spalte 'Verwendung' aus.

Die folgenden IEC 61131-definierten Schlüsselwörter sind in EcoStruxure Machine Expert - Safety relevant:

Schlüsselwort

deklariert...

VAR

  • lokale (symbolische) Variablen im lokalen Vari­ablen-Arbeitsblatt einer POE.

  • FB-Instanzen  im lokalen Variablen-Arbeitsblatt einer POE.

VAR_INPUT

Variablen, die Eingangsparameter von Funktionsbaustein-POEs sind. Eine Eingangsvariable kann nur eine lokale (symbolische) Variable sein.

Eine Eingangsvariable darf vom FB nur gelesen werden. Gemäß IEC 61131-3 ist der Schreibzugriff auf Eingangsvariablen nicht erlaubt. Aus Kompatibilitätsgründen prüft jedoch EcoStruxure Machine Expert - Safety beim Kompilieren des Projekts nicht, ob ein Schreibzugriff erfolgt.

VAR_OUTPUT

Variablen, die Ausgangsparameter von Funktionsbaustein-POEs sind. Eine Ausgangsvariable kann nur eine lokale (symbolische) Variable sein. Sie kann vom FB geschrieben und gelesen werden.

nicht sichtbar in EcoStruxure Machine Expert - Safety

VAR_GLOBAL

Globale Variablen im globalen Variablen-Arbeitsblatt.

Obwohl dieses Schlüsselwort in der IEC 61131-Norm für die Deklaration von globalen Variablen definiert ist, ist es in EcoStruxure Machine Expert - Safety nicht sichtbar.

Hier finden Sie verwandte Themen