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
AT
declaraciones solo para variables locales y globales, no para variables de entrada y salida de las POU.No debes usar
AT
declaraciones en listas de variables persistentes.Si usas
AT
declaraciones 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.