Variablen/FB-Instanzen: Deklarieren im Variablen-Arbeitsblatt

 

Beim Programmieren in den grafischen IEC 61131-Sprachen FBS oder KOP, werden Variablen und FB-Instanzen deklariert, während Sie diese mit Hilfe des Dialogs 'Variable' in den Code einfügen. Auf diese Weise erfolgen die Deklaration und das Einfügen in einem Schritt. Es ist jedoch auch möglich, Variablen zuerst im Variablen-Arbeitsblatt zu deklarieren und sie anschließend in den FBS/KOP-Code einzufügen.

In ST (Strukturierter Text) müssen Variablen/FB-Instanzen zuerst im Variablen-Arbeitsblatt deklariert werden und können erst dann in den ST-Code eingefügt werden.

Dieses Thema beschreibt die manuelle Deklaration von Variablen und FB-Instanzen im Variablen-Arbeitsblatt.

Beim Editieren einer Deklaration prüft das System automatisch die aktu­elle Tabellenzeile. Enthält eine Deklaration einen Fehler (z.B. weil die Variable bereits existiert oder der Anfangswert einen falschen Datentyp hat), so wird der betreffende Eintrag in der Tabelle rot hervorgehoben.

Weitere Informationen

Weitere Informationen über Arbeitsblätter und Deklarationsre­geln, die beim Deklarieren oder Bearbeiten von Variablen beachtet werden müssen, finden Sie in der unten stehenden Liste der verwandten Themen.

HINWEIS:

Wird ein Standard-Signal mit einem physikalischen Eingang verbunden, so muss der Datentyp der zugehörigen globalen Variablen von sicherheitsbezogen in Standard geändert werden (z.B. von SAFEBOOL nach BOOL), um eine falsche Verwendung des Signals im Code zu verhin­dern. Dasselbe gilt, wenn ein sicherheitsbezogenes Signal im Code nur als Standard-Signal verwendet wird. Die Änderung des Datentyps kann entweder im zugehörigen Variablen-Arbeitsblatt oder mit Hilfe der Funktionen zur Typumwandlung erfolgen.

So deklarieren Sie eine lokale Variable, eine FB-Instanz oder eine globale symbolische Variable

  1. Welchen Typ von Variable möchten Sie deklarieren?

    • Lokale Variable: Öffnen Sie das lokale Variablen-Arbeitsblatt, indem Sie in der Symbolleiste auf das Symbol 'AB umschalten' klicken, während das zugehörige Code-Arbeitsblatt aktiv ist. Sie können auch im Projektbaum auf das entsprechende Vari­ablen-Arbeitsblattsymbol doppelklicken.

      ico_ToggleVarWS_1.gif
    • Globale Variable: Öffnen Sie das globale Variablen-Arbeitsblatt, indem Sie in der Symbolleiste auf das Symbol 'Globale Var.' klicken.

      iconGlobalDecl.gif
  2. Falls erforderlich, können Sie eine neue Gruppe einfügen.

  3. Rechtsklicken Sie in den Namen der Gruppe, in welche die neue Deklaration eingefügt werden soll. Wählen Sie 'Neue Variable' aus dem Kontextmenü. Dieser Befehl dient zur Deklaration einer Vari­ablen wie auch einer FB-Instanz. Alternativ dazu können Sie auch eine Zeile einer Gruppe auswählen und <EINFG> drücken.

  4. Geben Sie den Variablennamen/Instanznamen ein. Der Name muss innerhalb seines Gültigkeitsbereichs (lokal oder global) eindeutig sein.

  5. Wählen Sie aus der Combobox 'Typ' einen Datentyp für die neue Deklaration.

    Symbole in der Combobox

    In der Combobox 'Datentyp' stehen die elementaren Datentypen sowie alle verfügbaren FB-Typen zur Auswahl.

    VarGrid_IconElementary.gif

    Elementarer (nicht-sicherheitsbezogener) Standard-Datentyp

    VarGrid_IconElementary_SAFE.gif

    Elementarer sicherheitsbezogener Datentyp

    VarGrid_IconFBProject.gif

    Anwenderdefinierter Funktionsbaustein im aktuellen Projekt

    VarGrid_IconStandard.gif

    IEC 61131-definierter Standard-Funktionsbaustein

    VarGrid_IconSafe.gif

    Sicherheitsbezogener Funktionsbaustein

    Beim Deklarieren einer Funktionsbaustein-Instanz muss der Instanz-Typ dem einzufügenden FB-Typ entsprechen.

  6. Definieren Sie den Gültigkeitsbereich in der Combobox 'Verwendung'.

    Symbole in der Combobox

    In der Combobox 'Verwendung' kann das Schlüsselwort zur Vari­ablen-Deklaration ausgewählt werden. Die Liste ist kontextsensitiv, d.h. sie enthält nur Schlüsselwörter, die für den aktuellen POE-Typ verwendet werden dürfen.

    VarGrid_IconVAR.gif

    VAR (lokale Variable)

    VarGrid_IconVAR_IN.gif

    VAR_IN (Eingangsvariable einer Funktionsbaustein-POE)

    VarGrid_IconVAR_OUT.gif

    VAR_OUT (Ausgangsvariable einer Funktionsbaustein-POE)

    HINWEIS:

    Im globalen Variablen-Arbeitsblatt ist die Spalte 'Verwendung' nicht sichtbar, da das Schlüsselwort standard­mäßig VAR_GLOBAL ist.

    Wenn Sie eine Funktionsbaustein-Instanz deklarieren, ist nur das Schlüsselwort VAR verfügbar.

    Wenn Sie im globalen Variablen-Arbeitsblatt eine globale symbolische Variable deklarieren, ist die Spalte 'Verwendung' nicht sichtbar, da das Schlüsselwort standardmäßig VAR_GLOBAL ist.

  7. Durch Markieren der Option 'Rückkopplung' können Sie eine Vari­able deklarieren, mit der Sie in der Sicherheitslogik eine implizite Rückkopplung programmieren können. Der Merker 'Rückkopplung' kann nur in Kombination mit 'Verwendung = VAR' und 'Bereich = Lokal' gesetzt werden.

    Durch implizite Rückkopplungen kann die Sicherheitslogik ein speicherndes Verhalten aufweisen, aus der ein komplexes Zeitver­halten der gesamten Applikation resultieren kann.

    WARNUNG

    UNBEABSICHTIGTER BETRIEBSZUSTAND DES GERÄTS

    • Verifizieren Sie die mögliche Auswirkung programmierter impliziter Rückkopplungen auf die Performance Ihrer Applikation.

    • Stellen Sie sicher, dass geeignete organisatorische Maßnahmen (gemäß zutreffender Sektornormen) getroffen wurden, um Gefähr­dungen im Falle einer ungewollten oder falschen Funktion der Sicherheitslogik zu vermeiden.

    • Betreten Sie den Betriebsbereich nicht, während die Maschine in Betrieb ist.

    • Stellen Sie sicher, dass keine anderen Personen den Betriebsbereich betreten können, während die Maschine in Betrieb ist.

    • Beachten Sie die vorgegebenen Richtlinien in relevanten Sektor­normen, wenn die Maschine in einer anderen Betriebsart als "In Betrieb" läuft.

    • Verwenden Sie geeignete Sicherheitsverriegelungen, wenn eine Gefahr für Personen und/oder Ausrüstung besteht.

    Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Körperverletzungen oder Sachschäden zur Folge haben.

    Weitere Informationen

    Weitere Informationen entnehmen Sie bitte dem Thema "Implizite Rückkopplungen in FBS".

  8. Geben Sie bei Bedarf eine kurze 'Beschreibung' zu der neuen Deklara­tion ein.

    Der hier eingegebene Text ist auch im Tooltip im FBS/KOP-Code zu sehen. Der Tooltip erscheint, wenn Sie den Mauszeiger auf das entspre­chende Objekt setzen, ohne dieses anzuklicken.

  9. Optional: Definieren Sie einen Anfangswert.

    Regeln für die Initialisierung von Variablen

    • 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".

  10. Im Fall einer lokalen Ausgangsvariablen (VAR_OUT) können Sie den 'DIAG'-Merker aktivieren, wenn die Variable für eine implizite Diagnose in den DQ-Puffer geschrieben werden soll.

    Dieser Merker ist ausschließlich für lokale Ausgangsvariablen (Verwendung: VAR_OUT) vom Datentyp WORD verfügbar. Wenn aktiviert, wird eine implizite Diagnose für diese Variable durchge­führt.

    Hintergrund: Sowohl sicherheitsbezogene Firmware-Funktions­bausteine als auch anwenderdefinierte FBs in einem sicherheits­bezogenen Projekt können einen Diagnoseausgang haben, der eine Abfrage der FB-Statusinformationen erlaubt. Diese Diagno­seinformationen können beim Kompilieren in einen reservierten Ausgangspufferbereich (den DQ-Puffer) geschrieben und z.B. mit einem Diagnosetool weiterverarbeitet werden. Um eine lokale Ausgangsvariable (d.h. einen FB-Ausgang) in diesen Puffer einzufügen, muss der Merker 'DIAG' gesetzt sein.

Hier finden Sie verwandte Themen