急求STL写得程序中的问题

别人的在FB的程序块里写
LAR1 P##MASK
TAR2
+AR1
L #POS_Amou
L 2#111111111111
SLW
T B[AR1,P#0.0
其中#MASK是FB中State变量#POS_Amou是输入。不明白的是LAR1里面是#MASK里面的地址内容,TAR2把AR2放到ACCU1里面再加AR1的内容放到AR1里干什么?AR2里是什么,最终的AR1里面又是什么。请尽量帮忙分析清楚点

最佳答案

在FB里AR2是背景数据块的起始地址,如果FB不是被多重背景方式调用,AR2地址是DB0.0
LAR1?P##MASK 就是把变量MASK的地址装载到地址寄存器AR1,这个地址是变量在当前FB背景数据块里的相对地址
如果当前FB是以多重背景方式调用,那么AR2起始地址就不一定是DB0.0了,要得到变量在多重背景数据里的真实地址,就要加上AR2这个起始地址。
所以说最终AR1是变量的真实地址,你可以用PLCSIM进行验证

提问者对于答案的评价:
谢谢,你的答案应该是正确的,我正在验证。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 上午4:34
下一篇 2018年12月1日 上午4:34

相关推荐