别人的在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