Deklaration von globalen Variablen in Global-Objekt und deren Verwendung in ST
Die Deklaration von →globalen Variablen in einem Global-Objekt ermöglicht es Ihnen, die Deklaration von globalen Variablen in einem oder mehreren zentralen Objekten für das Projekt zu sammeln. Im →Programm, in der →Ressource oder →Konfiguration – also dort, wo Sie die Deklaration benötigen – fügen Sie anschließend nur mehr einen Verweis ein.
Erweiterung zur IEC-Norm
Diese Möglichkeit ist eine Erweiterung zur →IEC-Norm.
Dieser Artikel enthält die folgenden Informationen:
Global-Objekt erstellen
Erstellen Sie ein Global-Objekt, indem Sie den Befehl Global-Objekt verwenden (z.B. im Kontextmenü für ein Projekt, unter Neu).
Siehe "Neue Objekte oder Ordner erstellen" für allgemeine Informationen über das Erstellen von Objekten.
GLOBALS
-Abschnitt in Global-Objekt zur zentralen Deklaration von globalen Variablen
Deklarieren Sie die globalen Variablen innerhalb des GLOBALS
-Abschnitts in einem Global-Objekt, und zwar analog zur Deklaration von globalen Variablen in ST. Pro Global-Objekt ist ein GLOBALS
-Abschnitt möglich.
GLOBALS name VAR_GLOBAL (* optional_begin *) CONSTANT RETAIN {DMA := 'string'} (* optional_end *) name_1, name_2, ..., name_n (* optional_begin *) {'key'} AT %address (* optional_end *) : data-type := initial-value; ... END_VAR VAR_GLOBAL (* optional_begin *) CONSTANT RETAIN {DMA := 'string'} (* optional_end *) name_1, name_2, ..., name_n (* optional_begin *) {'key'} AT %address (* optional_end *) : data-type := initial-value; ... END_VAR ... END_GLOBALS
Bedeutung |
---|
Deklaration des Wie bereits erwähnt, ist die Syntax für
|
logi.CAD 3 bietet außerdem die Möglichkeit, zusätzliche Daten bei der Deklaration anzugeben. Siehe "Beschreibung, Kommentar oder JSON-String für Variablen und Datentypen angeben" für Details.
GLOBALS MyGVs VAR_GLOBAL Setting_1 : INT; Setting_2 : BOOL; END_VAR VAR_GLOBAL CONSTANT Constant_1 : INT; Constant_2 : BOOL; END_VAR END_GLOBALS
Verweis auf den GLOBALS
-Abschnitt in einem Programm, einer Ressource und/oder Konfiguration
Im Programm, in der Ressource oder in der Konfiguration fügen Sie INCLUDE_GLOBALS
-Anweisungen ein, damit die globalen Variablen aus dem entsprechenden GLOBALS
-Abschnitt als Programm-globale, Ressource-globale oder Konfigurations-globale Variablen deklariert werden.
{INCLUDE_GLOBALS name_1} {INCLUDE_GLOBALS name_2} ...
Fügen Sie die INCLUDE_GLOBALS
-Anweisungen immer vor den evtl. vorhandenen Abschnitten VAR_GLOBAL ... END_VAR
ein.
PROGRAM Motor {INCLUDE_GLOBALS MyGVs} (* Diese Programm-globalen Variablen sind deklariert: 'Setting_1', 'Setting_2', 'Constant_1', 'Constant_2' *) VAR_GLOBAL portSetting : INT; Setting_1 : INT; (* Fehler, da die Programm-globale Variable 'Setting_1' mehrmals deklariert ist *) END_VAR ... END_PROGRAM
RESOURCE local ON BuiltInPlc { ON_CHANNEL := LocalChannel } {INCLUDE_GLOBALS MyGVs} (* Diese Ressource-globalen Variablen sind deklariert: 'Setting_1', 'Setting_2', 'Constant_1', 'Constant_2' *) VAR_GLOBAL VALVE_POS AT %QW28 : INT; Constant_1 : INT; (* Fehler, da die Ressource-globale Variable 'Constant_1' mehrmals deklariert ist *) END_VAR TASK DefaultTask(INTERVAL := TIME#500ms, PRIORITY := 38229); ...
CONFIGURATION LocalConfiguration {INCLUDE_GLOBALS MyGVs} (* Diese Konfigurations-globalen Variablen sind deklariert: 'Setting_1', 'Setting_2', 'Constant_1', 'Constant_2' *) VAR_GLOBAL VALVE_POS AT %QW28 : INT; Constant_2 : INT; (* Fehler, da die Konfigurations-globale Variable 'Constant_2' mehrmals deklariert ist *) END_VAR RESOURCE ... ...