当前位置: 主页 > PLC控制

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

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

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

图片说明:

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

最佳答案

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

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

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

  • 关注微信

猜你喜欢

微信公众号