Beschreibung
Mit der Anweisung "Wert aus INT F-Array lesen" lesen Sie ein Element aus dem Array am Eingang ARRAY, auf das der Index am Eingang INDEX verweist, und schreiben dessen Wert an den Ausgang OUT. Kommt es zur Laufzeit beim Zugriff auf das Array zu einem Fehler, wird dies am Ausgang ERROR angezeigt.
Das Array muss in einem F-DB angelegt sein und darf nur eine Dimension enthalten. Die Elemente des Arrays müssen vom Datentyp INT sein. Für die Array-Grenzen gilt abweichend zum Standard:
-
Der untere Grenzwert muss 0 sein.
-
Der obere Grenzwert darf maximal 10000 sein.
Die Beschaltung des Freigabeeingangs "EN" bzw. des Freigabeausgangs "ENO" ist nicht möglich. Somit wird die Anweisung (unabhängig vom Signalzustand am Freigabeeingang "EN") immer ausgeführt.
Parameter
Die folgende Tabelle zeigt die Parameter der Anweisung:
|
Parameter |
Deklaration |
Datentyp |
Beschreibung |
|---|---|---|---|
|
ARRAY |
Input |
VARIANT |
Array, aus dem gelesen wird |
|
INDEX |
Input |
DINT |
Element im Array, das gelesen wird. Die Angabe kann eine Konstante oder eine Variable sein. |
|
OUT |
Output |
INT |
Wert, der gelesen und ausgegeben wird. |
|
ERROR |
Output |
BOOL |
Fehlerinformation: Der Parameter ERROR ist gesetzt, wenn während der Bearbeitung der Anweisung ein Fehler auftritt. |
Parameter ARRAY
Neben der direkten Beschaltung mit einem Array innerhalb eines fehlersicheren Global-DBs, kann dieser Eingang auch mit einem INOUT Parameter vom Datentyp ARRAY[*] of INT verschaltet werden. Dies ermöglicht die Entkoppelung von Daten und Programmlogik, um z. B. eine Bibliotheksfunktion zu erstellen, ohne dass eine Verbindung zu einem dedizierten Datenbaustein besteht.
Parameter ERROR
Die folgende Tabelle zeigt die Bedeutung der Werte des Parameters ERROR:
|
Wert |
Beschreibung |
|
FALSE |
Kein Fehler |
|
TRUE |
Wert am Parameter INDEX befindet sich außerhalb der Grenzwerte des ARRAYs. |
Anweisungsversionen
Für diese Anweisung steht eine Version zur Verfügung:
|
Version |
S7-300/400 |
S7-1200 G1 |
S7-1200 G2 |
S7-1500 |
Funktion |
|---|---|---|---|---|---|
|
1.0 |
— |
— |
x |
x1 |
|
Beim Anlegen einer neuen F-CPU mit STEP 7 Safety ist automatisch die höchste für die angelegte F-CPU verfügbare Version voreingestellt.
Weitere Informationen zur Verwendung von Anweisungsversionen erhalten Sie in der Hilfe zu STEP 7 unter "Anweisungsversionen verwenden".
Verhalten bei Fehlern
Wenn der Wert am Eingang INDEX außerhalb der Array-Grenzen liegt, wird der Ausgang ERROR = 1 gesetzt und am Ausgang OUT wird der Array-Wert des Elements mit Index = 0 ausgegeben, unabhängig vom übergebenen Wert am Eingang INDEX.
Legen Sie deshalb den Wert des Elements mit Index = 0 als fehlersicheren Ersatzwert fest.
Beispiel
Das folgende Beispiel zeigt die Funktionsweise der Anweisung:
Die folgende Tabelle zeigt die Funktionsweise der Anweisung anhand konkreter Operandenwerte:
|
Parameter |
Operand |
Wert |
|
ARRAY |
"Global_DB".Array |
Der Operand "Global_DB".Array ist ein ARRAY vom Datentyp Array[0..10] of INT |
|
INDEX |
#Tag_Index |
2 |
|
OUT |
#TagOut_Value |
Wert des Elements an der Stelle Array[2] |
|
ERROR |
#TagError_Value |
False |
Die Anweisung "Wert aus INT F-Array lesen" wird, unabhängig vom Signalzustand am Freigabeeingang "EN", immer ausgeführt.
Der Inhalt des 2. Elements des Operanden "Global_DB.Array" wird am Ausgang "#TagOut_Value" ausgegeben.