Declaración AT
Uso de un editor de configuración claro para el mapeo de E/S
No recomendamos asignar direcciones de memoria como se describe aquí, ya que esto puede provocar una pérdida de claridad.
We recommend assigning memory addresses to variables in the configuration editor Editar imagen de E/S of the device.
The AT keyword in the variables declaration assigns to a project variable a specific input address, output address, or memory address of the controller which is configured in the device tree.
La declaración AT permite dar a la dirección un nombre significativo. Solo puede realizar los cambios necesarios en la señal entrante o saliente en un lugar, por ejemplo, en la declaración.
Sugerencia
Puede realizar los cambios necesarios en las señales de entrada o salida en una sola ubicación (por ejemplo, en la declaración).
Para obtener más información, consulte:
Syntax
<nombre de variable> AT %<dirección>:<tipo de datos>;
| <nombre de variable> | Necesario | 
| 
 | Required Address in the memory area 
 | 
| <prefijo del área de memoria> | Required 
 | 
| <prefijo de tamaño> | Opcional 
 | 
| <posición de memoria> | <position number>  Ejemplo:  | 
| <número de posición> | Required The numbering depends on the target system and starts at 0. | 
| 
 | Opcional 0.7 para un byte | 
| <tipo de datos> | Opcional El tipo de datos debe coincidir con el prefijo de tamaño. | 
| VAR 
    wInput AT %IW0 : WORD; 
END_VAR | Declaración de variables con especificación de dirección de una palabra de entrada | 
| VAR 
    xActuator AT %QW0 : BOOL; 
END_VAR | Declaración de variable booleana Nota: Se asigna un byte internamente para las variables booleanas si no se especifica una dirección de un solo bit. Un cambio en el valor de  | 
| VAR
    xSensor AT %IX7.5 : BOOL; 
END_VAR | Declaración de variable booleana con especificación explícita de una dirección de un solo bit Al acceder sólo se lee el bit de entrada 7.5. | 
| VAR 
    xSensor AT %IX* : BOOL; 
END_VAR | Al especificar la dirección, se utiliza el marcador de posición en lugar de la posición de almacenamiento  Nota: Esto es posible en bloques de funciones. | 
Consejos útiles
Importante
A menos que especifique explícitamente una dirección de un solo bit, las variables booleanas se asignan byte por byte.
Importante
Las direcciones de bits individuales que se asignan a variables booleanas tienen restricciones. No es posible utilizar estas variables VAR_IN_OUT, REFERENCE TO, o el ADR operador.
Cuando asignas una variable a una dirección, debes considerar lo siguiente:
- No puede escribir en variables que están asignadas a una entrada. Esto conduce a un error del compilador. 
- Puedes hacer - ATdeclaraciones solo para variables locales y globales, no para variables de entrada y salida de las POU.
- No debes usar - ATdeclaraciones en listas de variables persistentes.
- Si usas - ATdeclaraciones para miembros de estructura o variables de bloques de funciones, luego todas las instancias usan la misma memoria. Esto corresponde al uso de «variables estáticas» en los lenguajes de programación clásicos como «C».
- El diseño de la memoria de las estructuras también depende del sistema de destino. 
Ejemplo
PROGRAM PLC_PRG
VAR
    xVar AT %QW0 : BOOL;
END_VAR
xVar := TRUE;Cuando la variable xVar está escrito, el rango de memoria de salida va desde QX0.0 para QX0.7 está afectado.