[西门子] 西门子博途:片段访问

[复制链接]
查看350 | 回复0 | 2024-6-9 21:03:33 | 显示全部楼层 |阅读模式
>
对于 S7-1200/1500 控制器,可以访问 Byte、 Word、 DWord 或 LWord 数据类型变量的存储区。将一个存储区域(如 byte 或 word)划分为一个较小的存储区域(如Bool)也称为片段。下图显示了对操作数的 bit、 byte 和 word 的访问。


• 编程效率高。
• 在变量声明中不需要额外的定义。
• 易于访问(例如控制位)。
• 使用 AT 结构的片段访问,而不是访问操作数中的某些数据区域。

通过片断访问对变量区域进行寻址

可以选择包含所声明变量的特定地址区域。可以访问宽为 1 位、8 位、16 位或 32 位的区域。将存储器区域(如,BYTE 或 WORD)拆分为一个较小的存储器区域(如 BOOL),又称为“分段”。
无法使用片段访问对覆盖 AT 的结构、常量和变量进行寻址。
语法
下列语法用于寻址:
<Tag>.X<Bit number>
<Tag>.B<BYTE number>
<Tag>.W<WORD number>
<Tag>.D<DWORD number>


该语法包含以下部分:




部分
说明
<Tag>
访问的变量。该变量的数据类型必须为“Bit string”或“Integer”。
在 SCL 中,如果禁用 IEC 检查,则只能对数据类型为“Integer”的变量进行片段访问。
X
B
W
D
访问宽度为“位(1 位)”的 ID
访问宽度为“字节(8 位)”的 ID
访问宽度为“字(16 位)”的 ID
访问宽度为“双字(32 位)”的 ID
<BIT number>
待访问 <tag> 内的位号。编号 0 表示访问最低有效位。
<BYTE number>
待访问 <tag> 内的字节号。
编号 0 表示访问最低有效字节。
<WORD number>
访问的 <tag> 内的字号。
编号 0 表示访问最低有效字。
<DWORD number>
访问的 <tag> 内的双字号。
编号 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。











免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则