Page tree

Diese Dokumentation ist nicht aktuell!

Gehen Sie bitte zu: http://help.logicals.com/lco3docu/latest/user-documentation/de.


Skip to end of metadata
Go to start of metadata

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:

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.

Syntax
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 GLOBALS-Abschnitts, wobei name ein →IEC-Bezeichner sein muss.
Im GLOBALS-Abschnitt können mehrere VAR_GLOBAL-Abschnitte erstellt werden, in denen wiederum mehrere globale Variablen deklariert werden können.

Wie bereits erwähnt, ist die Syntax für VAR_GLOBAL ... END_VAR und deren Möglichkeiten analog zur Deklaration von globalen Variablen in ST. Unterschiede:

  • Die USING-Namespace-Anweisung wird im GLOBALS-Abschnitt unterstützt.
  • Das Schlüsselwort NON_RETAIN wird im GLOBALS-Abschnitt nicht unterstützt.
Beispiel
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.

Syntax
{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.

Beispiel für einen Verweis in einem Programm
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
Beispiel für einen Verweis in einer Ressource
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);
... 
Beispiel für einen Verweis in einer Konfiguration
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 ...
... 
  • No labels