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 aktuelle 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 Deklarationsregeln, 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 verhindern. 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
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 Variablen-Arbeitsblattsymbol doppelklicken.
Globale Variable: Öffnen Sie das globale Variablen-Arbeitsblatt, indem Sie in der Symbolleiste auf das Symbol 'Globale Var.' klicken.
Falls erforderlich, können Sie eine neue Gruppe einfügen.
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 Variablen wie auch einer FB-Instanz. Alternativ dazu können Sie auch eine Zeile einer Gruppe auswählen und <EINFG> drücken.
Geben Sie den Variablennamen/Instanznamen ein. Der Name muss innerhalb seines Gültigkeitsbereichs (lokal oder global) eindeutig sein.
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.
![]() |
Elementarer (nicht-sicherheitsbezogener) Standard-Datentyp |
![]() |
Elementarer sicherheitsbezogener Datentyp |
![]() |
Anwenderdefinierter Funktionsbaustein im aktuellen Projekt |
![]() |
IEC 61131-definierter Standard-Funktionsbaustein |
![]() |
Sicherheitsbezogener Funktionsbaustein |
Beim Deklarieren einer Funktionsbaustein-Instanz muss der Instanz-Typ dem einzufügenden FB-Typ entsprechen.
Definieren Sie den Gültigkeitsbereich in der Combobox 'Verwendung'.
Symbole in der Combobox
In der Combobox 'Verwendung' kann das Schlüsselwort zur Variablen-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.
![]() |
VAR (lokale Variable) |
![]() |
VAR_IN (Eingangsvariable einer Funktionsbaustein-POE) |
![]() |
VAR_OUT (Ausgangsvariable einer Funktionsbaustein-POE) |
HINWEIS:
Im globalen Variablen-Arbeitsblatt ist die Spalte 'Verwendung' nicht sichtbar, da das Schlüsselwort standardmäß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.
Durch Markieren der Option 'Rückkopplung' können Sie eine Variable 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 Zeitverhalten 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ährdungen 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 Sektornormen, 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".
Geben Sie bei Bedarf eine kurze 'Beschreibung' zu der neuen Deklaration ein.
Der hier eingegebene Text ist auch im Tooltip im FBS/KOP-Code zu sehen. Der Tooltip erscheint, wenn Sie den Mauszeiger auf das entsprechende Objekt setzen, ohne dieses anzuklicken.
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 physikalischen 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, SAFEDWORD#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 SAFEFALSE 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".
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 durchgeführt.
Hintergrund: Sowohl sicherheitsbezogene Firmware-Funktionsbausteine als auch anwenderdefinierte FBs in einem sicherheitsbezogenen Projekt können einen Diagnoseausgang haben, der eine Abfrage der FB-Statusinformationen erlaubt. Diese Diagnoseinformationen 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.