为什么s7-1200数组(word)可以访问数组字位的状态,s7-300的数组却并不可以访问数组(word)位的状态,
怎么说呢,我想用一个数组(word)中的位复制给另外一个位,但是赋值不了,s71200可以,请我问300的plc我改怎么做?
问题补充:
RENHQ师兄你好,首先,我现在需要做的是背景功能块,也就是需要多次调用的,(之前1200和1500支持,数组word中的位寻址(位的偏移量即可),300不支持那种寻址,绝对地址我也是用不了的,因为我需要多次调用此功能块,所以绝对寻址是行不通的)。
师兄说的第二种间接寻址,我试了好想也不可以从数组WORD中的位进行赋值,我需要单个位进行赋值,你可以再说的详细一点或者资料吗?谢谢你了,
师兄说的第三种AT寻址,这个我觉得很实用,师兄可以具体详细的资料给我看一下吗,
你新建的数组,你看我理解的对不对,也就是说,#test[1].%X0=static_1[1].static[1]
图片说明:
产品版区:SIMATIC S7-300(F)/S7-400(F/H/FH)
悬赏西币:10 | 解决时间:2018-03-07 13:39:49 | 提问者: 飄飄然 - 中级工程师  第10级
最佳答案
另外您可以使用AT的方式寻址,如附图,访问第一个字的16位,如果访问更多,按个BOOL的数组在增加就是
补充:
第一个方式我考虑不周,可能不大好实现,先不用考虑
第二个需要用STL,比如你图片里面的test数组,把每个数组的地址送到地址寄存器里面进行寻址,关于STL的间接寻址可以参考:
间接寻址
http://www.ad.siemens.com.cn/productportal/Prods/published/Prog/Prog_2.4/Prog_2.4.html
西门子STL间接寻址常问问题集
https://support.industry.siemens.com/cs/cn/zh/view/76492353
使用间接寻址编写循环程序
https://support.industry.siemens.com/cs/cn/zh/view/19345564
我也推荐你用第三种方式吧,看起来更简单些
资料参考:
SIMATIC STEP 7 Professional V14.0 系统手册
https://support.industry.siemens.com/cs/cn/zh/view/109742272
3634页 使用 AT 覆盖变量
回答者:
RENHQ
-
超级顾问  第15级
2018-03-06 21:57:38
提问者对于答案的评价:
我今天找到了 at 覆盖变量功能,但是我不知道plc300是否支持,我现在电脑上测试不了,晚上在测试。谢谢你了