AT
声明
<variable name> AT <address> : <data type>;
<address> : %<memory area prefix> ( <size prefix> )? <memory position
有效地址必须在关键字 AT
的后面。有关更多信息,请参阅地址说明。如果是字节寻址模式,请考虑可能的重叠。
通过该声明,可以为地址分配一个有意义的名称。与传入或传出信号有关的任何更改都只能在单个位置中完成(例如,在声明中)。
选择要为地址分配的变量时,请考虑下列几点:
无法通过写入来访问需要输入的变量。编译器会拦截这种错误检测。
AT
声明只能与本地或全局变量配合使用。AT 声明不能与 POU 的输入和输出变量配合使用。
持久变量列表中不允许使用 AT
声明。
如果 AT
声明与结构或功能块成员配合使用,那么所有实例都将访问该结构/功能块的同一内存位置。这对应于经典编程语言(如 C)中的静态变量。
结构的存储器布局还取决于目标。
如果为 BYTE、WORD 或 DWORD 地址分配了布尔变量,则布尔变量以 TRUE 或 FALSE 占据一个字节,而不仅仅是占据偏移后的第一个位。
输入、输出和存储数据的存储大小(即,用 AT %I
、%Q
和 %M
实现的声明)由目标设备预定义,并且在 PacDrive 控制器(PacDrive LMC Eco、PacDrive LMC Pro/Pro2)的应用程序对象的属性中可被覆盖。