多重背景下的静态变量可以做循环吗,

多重背景是好 如果是写十几个也没啥,但是如果要写上百个呢,我想写循环,写好后,看到背景数据块的静态变量 仍然是一个,所以肯定不行了,我也想到将静态变量做个数组,结果定义的时候就不行。
具体些:我想用SFB4作个防抖动的程序,需要做200多个

问题补充:
图片里只是两次FB1的调用,我现在需要做200多次这样的调用,想用循环,不知如何处理。输入输出参数可以看到是数组,所以有做循环的可能
stl
scl都可以,

图片说明:

多重背景下的静态变量可以做循环吗,   

最佳答案

STL编的程序吧。
多重背景的绝对偏移地址和普通的DB块不一样的。
可以用下面的方法处理:
TAR2 (得到多重背景FB在背景DB里的偏移地址)
AD DW#16#00FFFFFF (屏蔽掉存储区ID,可参考32位指针格式)
L P##Variable (得到变量在多重背景FB里的地址)
 +D (多重背景FB的偏移地址与变量在多重背景FB里地址相加,即得到实际绝对偏移量)
LAR1
上述语句就是就得到了变量在背景DB中的绝对偏移量,从而供后续程序处理。 

参考一下文档。
西门子STL间接寻址常问问题集
https://support.industry.siemens.com/cs/cn/zh/view/76492353
问题1.4

提问者对于答案的评价:
虽然不是我想要的答案 但是依然给你吧

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年10月29日 下午11:51
下一篇 2017年10月29日 下午11:52

相关推荐