我在STEP7里编了一FB1电机控制功能块,然后在FB2(通过重复调用FB1来控制所有的电机)里调用FB1功能块,同时为FB2新建背景数据块DB1,在FB1中变量的属性S7_M_C设为TRUE,背景数据块DB1的属性已选了“Operator....”但是就是在wincc 属性列表里没有要传送到WINCC里的变量。请高手们问是怎么回事?是不是哪里还要设置?
问题补充:
我的意思可能没说清楚,实际就是怎么把多重背景数据块DB1里的变量传到WINCC。
最佳答案
1、嵌套调用 FB 的话,要分别对 FB 的背景数据块设置 OCM。
2、使用多重背景数据块调用 FB 的话,实践表明,暂不支持子 FB 的变量上传至 WinCC。
《多重背景数据块里面的数据能传到WINCC里吗》
http://www.ad.siemens.com.cn/service/answer/tobe_solution.asp?Q_ID=65081&cid=1029
《S7_m_c in Multiple Instance DB 》
https://www.automation.siemens.com/WW/forum/guests/PostShow.aspx?HTTPS=REDIR&PostID=217721&language=en
补充:
明确回答:多重背景数据块不能上传变量至 WinCC,因为多重背景数据块属于“结构中的结构定义”。
参见下文论述:
《为什么不能通过OS编译将S7结构单元或UDT传送到WinCC?》
在数据块中“OS Compile”功能不支持结构化数据如ARRAY,STRUCT或UDT(用户自定义数据类型)。WinCC不支持任何结构内的结构声明。在WinCC中数据块已经作为结构被创建- 所以不能在数据块中再定义其他结构。
上述也适用于功能块中的结构定义。
提问者对于答案的评价:
谢谢大家的帮助!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc265986.html