假设一个先前编好并运行的FB块,并有背景数据块。现在我要在FB块中的声明变量区IN或OUT或INOUT中再添加一个或两个变量,保存后,然后更新,背景数据块也跟着更新了,这个地方有个问题:因为我别的块(假设FC10)使用了背景数据块的地址,如果我更新了背景数据块,那么FC10中的背景数据块地址岂不是就与更新后的背景数据块地址不一致了?有没有一种方法或则可以避免出现这样的情况?或则也可以把FC10中使用的背景数据块地址一起更新?
另外如果我在FB中的temp加变量或则在静态变量区的最后一行往下加变量,然后更新背景数据块,是不是不会出现上述情况?
问题补充:
就是这个问题避免不了了吗?各位能不能给一个准确的答复。必须要在更新完背景数据块后,将其他块调用的背景数据块的地址再重新按照改完后地址再写一遍。这样对吗?
最佳答案
是的,避免不了!
但是,实际编程的人员,在编程序时候,往往会预留一定的地址空间备用。譬如说,在STAT区里,多建立一些STAT1 SATA2 等,输入接口里,多建立几个。引用时候,不用的可以空着。当需要添加的时候,就把相应的预留的地址,更改为你需要的控制信号,这样就不需要重新更改调用背景数据块的地址,一一更改了。
提问者对于答案的评价:
谢谢!您的答复最明确,且给出了在编程时的避免方法!非常感谢!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc243542.html