可以选择包含所声明变量的特定地址区域。可以访问宽为 1 位、8 位、16 位或 32 位的区域。将存储器区域(如,BYTE 或 WORD)拆分为一个较小的存储器区域(如 BOOL),又称为“分段”。
无法使用片段访问对覆盖 AT 的结构、常量和变量进行寻址。
语法
下列语法用于寻址:
.X
.B
.W
.D
该语法包含以下部分:
访问的变量。该变量的数据类型必须为“Bit string”或“Integer”。 在 SCL 中,如果禁用 IEC 检查,则只能对数据类型为“Integer”的变量进行片段访问。 | |
X B W D | 访问宽度为“位(1 位)”的 ID 访问宽度为“字节(8 位)”的 ID 访问宽度为“字(16 位)”的 ID 访问宽度为“双字(32 位)”的 ID |
待访问 内的位号。编号 0 表示访问低有效位。 | |
待访问 内的字节号。 编号 0 表示访问低有效字节。 | |
访问的 内的字号。 编号 0 表示访问低有效字。 | |
访问的 内的双字号。 编号 0 表示访问低有效双字。 |
片段访问示例
以下示例说明了位、字节、字和双字模式下片段的寻址方式:
"Engine".Motor.X0 "Engine".Motor.X7 | "Motor" 为全局数据块 "Engine". 中数据类型为 BYTE、WORD、DWORD 或 LWORD 的变量 X0 将寻址位地址 0,X7 则寻址 "Motor" 中的位地址 7。 |
"Engine".Speed.B0 "Engine".Speed.B1 | "Speed" 为全局数据块 "Engine". 中数据类型为 WORD、DWORD 或 LWORD 的变量 B0 将寻址字节地址 0,B1 则寻址 "Speed" 中的字节地址 1。 |
"Engine".Fuel.W0 "Engine".Fuel.W1 | "FUEL" 为全局数据块 "Engine". 中数据类型为 DWORD 或 LWORD 的变量 W0 将寻址字地址 0,W1 则寻址 "Fuel" 中的字地址 1。 |
"Engine".Data.D0 "Engine".Data.D1 | "Data" 为全局数据块 "Engine". 中数据类型为 LWORD 的变量 D0 将寻址双字地址 0,D1 则寻址 "Data" 中的双字地址 1。 |