当前位置: 主页 > PLC控制

急求STL写得程序中的问题

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

3e7e63c0e1b71e14aFC6a4f5bdf1a91d

最佳答案

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

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

  • 关注微信

猜你喜欢

微信公众号