Instructions:
当编译 OS 时,你可能会得到如下的错误消息:
"A structure conflict occurred when creating the structured DM variable XXXX of type YYYY..."。 这里, "XXXX"是变量名称, "YYYY"是创建的 WinCC 结构变量类型。
如果多个控制器的程序编译到同一个 OS 中,并且控制器拥有操作员控制和监视块(FB),这些块且具有相同的符号名和不同的接口,当 OS完全编译时 就会出现这个报警消息并且退出编译。 参考条目ID 26699157 当执行部分编译而不是完全编译时, 如果有一个块冲突,编译过程将不会退出,只会在OS编译的日志文件中产生一条报警。
原因:
当 OS 完全编译时,与每一个 OS 块类型(FB)相关的结构变量就会被创建。这里,将会使用到块类型中(FB)具有参数属性"S7_m_c=true"的输入、输入输出、输出参数。实际的块参数将会作为一个外部 WinCC 变量(结构元素)在结构类型中创建。如果块参数有其它属性(例如:"S7_comment", "S7_shortcut", S7_unit, ...),更多的内部WinCC 变量(结构元素)将会被创建。在PLC中符号名是唯一的。如果你使用多个控制器,同一个符号名在不同的PLC 中可能具有不同的数据结构。在同一个WinCC项目中,结构类型的名字是唯一的。这意味着在WinCC中,同一个名字不允许创建不同的结构类型。不同控制器中的结构类型不同,在OS 中结构冲突就会发生。
如果不同控制器的操作员控制和监视块(FB)的版本不同,上述情况就会发生。
补救措施:
将所有控制器中的编译到同一个OS中的所有功能块类型统一。参考条目 Entry ID 17445181 .
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc336762.html