为什么在保存块后使用AR2的间接调用被本地静态变量所替换?

描述:
STEP 7 编辑器使用区域内部的直接寻址进行对背景数据的符号访问,也就是访问功能块的所有参数和静态变量。DI寄存器包含背景数据块号而地址寄存器AR2包含多重背景数据块中的背景数据区的地址偏移量。AR2寄存器和DI寄存器作为基本地址寄存器用于功能块中所有参数和静态变量的寻址。

下面给出的样例中(图 01),通过语句“T DIB[AR2,P#2.0]”和“T DID[AR2,P#4.0]”将数据存储于地址2.0和4.0,该地址位于功能块的本地区域或在其本身的背景数据块中。

为什么在保存块后使用AR2的间接调用被本地静态变量所替换?
图 01

图02显示了静态变量的符号地址。保存于LAD/STL/FBD编辑器后,语句“T DIB[AR2,P#2.0]”和“T DID[AR2,P#4.0]”通过符号名称- 此处为Wert_2 and Wert_4 (Value_2 and Value_4)在背景数据块中还原这些变量。

为什么在保存块后使用AR2的间接调用被本地静态变量所替换?
图 02

在保存后,间接调用的完整程序仅能在背景数据块中地址的数据类型与间接寻址的数据类型不匹配时得以保留。

注意事项:
DI寄存器和地址寄存器AR2均用于系统方的功能块和多重背景的调用。如果想要在多重背景兼容功能块(multi-instance-compatible )中使用AR2,就必须预先存储地址寄存器。例程如图 03 所示。

为什么在保存块后使用AR2的间接调用被本地静态变量所替换?

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc337975.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论