Acceso parcial a variables
La expresión cumple con la norma IEC 61131-3.
Para variables IEC de tipo de datos BYTE
, WORD
, DWORD
o LWORD
(tipo de datos ANY, ANY_<tipo> ), es posible el acceso parcial a las variables.
Sintaxis:
<nombre de la variable>. % <tipo parcial> <índice parcial>
Se permite un espacio después del operador de punto (.
). No se permiten espacios después del signo de porcentaje (%
) y después del tipo parcial.
<nombre de la variable> | Nombre del |
<tipo parcial> |
El acceso a los El acceso a los |
<índice parcial> | De 0 al máximo del índice |
Para más información, ver:
Uso
El acceso parcial solo se puede utilizar para variables no temporales (variables definidas por el usuario, campos, accesos a matrices o desreferenciación). Esto no está permitido para resultados temporales o literales.
La expresión en sí no es temporal y puede usarse como expresión en REFERENCE TO
o como un ADR
operador.
// Implementation PartialVarB := GVL.Variable.%B0; PartialVarX := array[idx].%X0; PartialVarW := tempVariable.%W2; PartialVarD := ptr^.%D2; PartialVarB := variable.%W1.%B1
El acceso parcial no es posible en el caso de llamadas a funciones, expresiones de índice, literales o propiedades.
Ejemplo negativo:
FunctionCall().%B0 (1+index).%B0 (DWORD#16#12345678).%B0 Property.%B0
Índice máximo de tipos parciales.
El acceso parcial sólo es posible si la expresión llamada tiene un tipo conforme y el índice parcial es menor o igual que el índice parcial máximo. De lo contrario, se informa de un error del compilador.
Tipo parcial | Tipo de acceso | Máximo de índice parcial |
---|---|---|
| ||
| 7 | |
| 15 | |
| 31 | |
| 63 | |
| ||
| 0 | |
| 1 | |
| 3 | |
| 7 | |
| ||
| No soportado | |
| 0 | |
| 1 | |
| 3 | |
| ||
| No soportado | |
| No soportado | |
| 0 | |
| 1 | |
| ||
| No soportado | |
| No soportado | |
| No soportado | |
| 0 |
Expresión con acceso parcial
El tipo de expresión de acceso parcial depende sólo de <tipo parcial> y debe seleccionarse utilizando la siguiente tabla.
Tipo parcial | Tipo de expresión |
---|---|
|
|
|
|
|
|
|
|
|
|
Direcciones
Se permite crear la dirección a partir de una expresión de acceso parcial de tipo parcial B
, W
, D
, y L
.
Es no permitido crear la dirección a partir de una expresión de acceso parcial de tipo parcial X
.
Es no permitido asignar una expresión de acceso parcial de tipo BIT
a un VAR_INOUT
variable.
ADR(var%.B0) referenceVariable REF= var.%W1
Ejemplo negativo:
ADR(var.%X0) ref REF= var.%X0