Skip to main content

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 ANY_BIT variable del tipo BYTE, WORD, DWORD, o LWORD

<tipo parcial>

X para BIT acceso

B para BYTE acceso

W para WORD acceso

D para DWORD acceso

L para LWORD acceso

El acceso a los __XWORD también está permitido y se comporta como un DWORD o LWORD dependiendo del tamaño del puntero.

El acceso a los BOOL no está permitido incluso si el BOOL El tipo de datos es parte del ANY_BIT tipos.

<índice parcial>

De 0 al máximo del índice

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.

ejemplo 200. Ejemplo
// 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

X

BYTE

7

WORD

15

DWORD

31

LWORD

63

B

BYTE

0

WORD

1

DWORD

3

LWORD

7

W

BYTE

No soportado

WORD

0

DWORD

1

LWORD

3

D

BYTE

No soportado

WORD

No soportado

DWORD

0

LWORD

1

L

BYTE

No soportado

WORD

No soportado

DWORD

No soportado

LWORD

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

X

BIT

B

BYTE

W

WORD

D

DWORD

L

LWORD

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.

ejemplo 201. Ejemplos
ADR(var%.B0)
referenceVariable REF= var.%W1

Ejemplo negativo:

ADR(var.%X0)
ref REF= var.%X0