Deklaration eines Sprachelements mit partieller Adresse in ST

logi.CAD 3 ermöglicht es, einen noch nicht festgelegten Speicherort (= eine partielle Adresse) bei den folgenden Sprachelementen zu definieren:

Syntax
TYPE
name_1: STRUCT
name_e1 AT %(I|Q|M)* (* optional_begin *) {OFFSET := value} (* optional_end *) : type := initial-value;
name_e2 AT %(I|Q|M)* (* optional_begin *) {OFFSET := value} (* optional_end *) : type := initial-value;
...
END_STRUCT;
END_TYPE
VAR | VAR_INPUT | VAR_OUTPUT | VAR_GLOBAL | VAR_TEMP
name_3, name_4, ..., name_n AT %(I|Q|M)* : type := initial-value;
name_5 AT %(I|Q|M)*, name_6 AT %(I|Q|M)*, ... : type := initial-value;
...
END_VAR

Bedeutung der partiellen Adresse und des Offsets

Mit AT %(I|Q|M)* wird dem Sprachelement eine partielle Adresse zugeordnet. Der Speicherort wird zu einem späteren Zeitpunkt spezifiziert, z.B. in einem Tool zum Adressieren der IOs oder in einem VAR_CONFIG-Abschnitt (für jene Variablen, die mit dem strukturierten Datentyp deklariert sind). Details: Siehe "VAR_CONFIG-Abschnitte im SPS-Objekt deklarieren".

Geben Sie eine partielle Adresse laut diesem Aufbau ein:


Zeichen

Bedeutung

1.

%

leitet die Adresse ein

2.

Präfix für Lage

definiert die Lage


I

Eingang


Q

Ausgang


M

Speicher (Memory)

3.

*

noch nicht festgelegter Speicherort
(ersetzt den Präfix für die Größe und die Zahlen, wie diese bei einer vollständigen physikalischen Adresse definiert werden)


Erweiterung zur IEC-Norm

Als Erweiterung zur →IEC-Norm ist es möglich, mehrere Variablen mit einer partiellen Adressen oder mehrere Variablen mit partiellen Adressen in einer Zeile zu deklarieren.


Mit dem optionalen Attribut OFFSET wird ein relativer Offset nach der Adresse definiert. Dieses Attribut wird nur bei Strukturelementen unterstützt.

Erweiterung zur IEC-Norm

Das Attribut OFFSET ist ebenfalls eine Erweiterung zur IEC-Norm.

Einschränkungen bzw. Erweiterung zur IEC-Norm

  • logi.CAD 3 unterstützt keine Prüfung, ob die Speicherorte vollständig festgelegt sind.

  • logi.CAD 3 prüft den Abschnitt der Variable nur bedingt, bei der das Sprachelement mit partiellen Adressen deklariert ist. So ist es möglich, partielle Adressen in den nachfolgend genannten Variablen-Arten zu verwenden und solche Datentypen sogar für alle in logi.CAD 3 unterstützten Variablen-Arten zu verwenden. Dies steht im Widerspruch zur Forderung der →IEC-Norm (laut Abschnitt "6.5.5.4 Directly represented variables – partly specified using “ * ”"), dass Variablen mit partiellen Adressen nicht als →Eingangsvariablen oder →Ein-/Ausgangsvariablen zu verwenden sind.

  • Die Definition der unvollständigen Speicherorte hat keine Auswirkung auf die Ausführung der Anwendung.

Die Deklaration von partiellen Adressen ist innerhalb dieser Abschnitte möglich:
(Informieren Sie sich in der jeweiligen Beschreibung zum Abschnitt über evtl. zusätzliche Möglichkeiten für die Variable.)

Abschnitt

Die Deklaration des Sprachelements erfolgt als:

VAR ... END_VAR

interne Variable (siehe "Deklaration von internen Variablen")

VAR_INPUT ... END_VAR

Eingangsvariable (siehe "Deklaration von Eingangsvariablen in ST")

VAR_OUTPUT ... END_VAR

Ausgangsvariable (siehe "Deklaration von Ausgangsvariablen in ST")

VAR_GLOBAL ... END_VAR

globale Variable (siehe "Deklaration von externen Variablen in ST")

VAR_TEMP ... END_VAR

temporäre Variable (siehe "Deklaration von temporären Variablen in ST")

TYPE ... END_TYPE(nur bei Strukturelementen)

→strukturierter Datentyp (siehe "Deklaration eines strukturierten Datentyps in ST")

Beispiel
TYPE
MyType1 : STRUCT
Elem1 AT %I* : INT; (* Zuweisung eines noch nicht festgelegten Eingangs, keine Offset *)
Elem2 AT %Q* {OFFSET := 9} : INT; (* Zuweisung eines noch nicht festgelegten Ausgangs, Offset für 'elem2': 9 *)
Elem3 : INT; (* keine Zuweisung einer Adresse *)
END_STRUCT;
END_TYPE