Partieller Variablenzugriff
Der Ausdruck ist konform zur Norm IEC 61131-3.
Bei IEC-Variablen vom Datentyp BYTE
, WORD
, DWORD
oder LWORD
(Datentyp ANY, ANY_<Typ> ) ist ein partieller Variablenzugriff möglich.
Syntax:
<Variablenname> . % <Partieller Typ> <Partieller Index>
Nach dem Punktoperator .
ist ein Leerzeichen erlaubt. Nach dem Prozentzeichen %
und nach dem partiellen Typ sind keine Leerzeichen erlaubt.
<Variablenname> | Name der |
<Partieller Typ> |
Der Zugriff auf Der Zugriff auf |
<Partieller Index> | Von 0 bis zum Indexmaximum |
Für weitere Informationen siehe:
Verwendung
Der partielle Zugriff kann nur für nicht-temporäre Variablen verwendet werden (benutzerdefinierte Variablen, Felder, Array-Zugriffe oder Dereferenzierungen). Für temporäre Ergebnisse oder Literale ist dies nicht erlaubt.
Der Ausdruck selbst ist nicht temporär und kann als Ausdruck in REFERENCE TO
oder als ADR
-Operator verwendet werden.
// Implementation PartialVarB := GVL.Variable.%B0; PartialVarX := array[idx].%X0; PartialVarW := tempVariable.%W2; PartialVarD := ptr^.%D2; PartialVarB := variable.%W1.%B1
Bei Funktionsaufrufen, Indexausdrücken, Literalen oder Propertys ist ein partieller Zugriff nicht möglich.
Negativbeispiel:
FunctionCall().%B0 (1+index).%B0 (DWORD#16#12345678).%B0 Property.%B0
Indexmaximum der partiellen Typen
Der partielle Zugriff ist nur möglich, wenn der aufgerufene Ausdruck einen konformen Typ hat und der Teilindex kleiner oder gleich dem maximalen Teilindex ist. Ansonsten wird ein Compilerfehler ausgegeben.
Partieller Typ | Zugriffstyp | Maximum des partiellen Index |
---|---|---|
| ||
| 7 | |
| 15 | |
| 31 | |
| 63 | |
| ||
| 0 | |
| 1 | |
| 3 | |
| 7 | |
| ||
| Nicht unterstützt | |
| 0 | |
| 1 | |
| 3 | |
| ||
| Nicht unterstützt | |
| Nicht unterstützt | |
| 0 | |
| 1 | |
| ||
| Nicht unterstützt | |
| Nicht unterstützt | |
| Nicht unterstützt | |
| 0 |
Ausdruck mit partiellem Zugriff
Der Typ eines partiellen Zugriffsausdrucks hängt nur von <Partieller Typ> ab und muss anhand der folgenden Tabelle ausgewählt werden.
Partieller Typ | Typ des Ausdrucks |
---|---|
|
|
|
|
|
|
|
|
|
|
Adressen
Es ist erlaubt, die Adresse von einem partiellen Zugriffsausdrucks des partiellen Typs B
, W
, D
und L
zu bilden.
Es ist nicht erlaubt, die Adresse von einem partiellen Zugriffsausdrucks des partiellen Typs X
zu bilden.
Es ist nicht erlaubt, einen partiellen Zugriffsausdruck vom Typ BIT
einer VAR_INOUT
-Variablen zuzuweisen.
ADR(var%.B0) referenceVariable REF= var.%W1
Negativbeispiel:
ADR(var.%X0) ref REF= var.%X0