En la declaración de variables, el código AT asigna una variable de proyecto a una dirección de entrada, dirección de salida o
dirección de memoria específica del PLC configurado en el árbol de dispositivos. También
puede definir la asignación de variables a una dirección en el cuadro de diálogo «I/O Mapping» del dispositivo en la configuración del PLC.
Sintaxis
<variable name> AT <address> : <data type>; <address> : %<memory area prefix> ( <size prefix> )? <memory position>
La declaración AT permite dar un nombre significativo a la dirección. Puede realizar los cambios necesarios para las señales de entrada o salida en un solo lugar, por ejemplo, en la declaración.
Ejemplos
|
|
Declaración de variable con información de dirección de una palabra de entrada |
|
|
Declaración de variable booleana Nota: Para las variables booleanas, se asigna internamente un byte si no se especifica
una dirección de un solo bit. Un cambio en el valor de |
|
|
Declaración de variable booleana con especificación explícita de una dirección de un solo bit En el acceso, sólo se lee el bit de entrada 7.5. |
|
|
Para la especificación de la dirección, se da el marcador de posición Nota: Esto es posible en los bloques de funciones. |
Si asigna una variable a una dirección, tenga en cuenta lo siguiente:
-
No se puede escribir en variables situadas en entradas. Esto provocará un error de compilación.
-
Puedes realizar declaraciones AT sólo para variables locales y globales, no para variables de entrada/salida de POUs.
-
Además, las declaraciones AT no pueden utilizarse en listas de variables persistentes.
-
Si utiliza declaraciones AT para componentes de estructura o variables de bloque de función, todas las instancias utilizarán la misma memoria. Esto se corresponde con el uso de "variables estáticas" en lenguajes de programación clásicos como "C".
-
La disposición en memoria de las estructuras también depende del sistema de destino.




AVISO

Si no se especifica explícitamente una dirección de un bit, las variables booleanas se asignan byte a byte.
Ejemplo
PROGRAM PLC_PRG
VAR
xVar AT %QW0 : BOOL;
END_VAR
xVar := TRUE;
Cuando se escribe la variable xVar, el rango de memoria de salida de QX0.0 a QX0.7 se ve afectado.