看别人的程序,有点不明白,FB1的数据块为DB1,在程序中用#OPEN对应DB1.DBX0.0,在另一FB块FB2(数据块为DB2),#OPEN指向DB2.DBX3.0,为什么两个功能块能共用一个符号#OPEN的数据呢?监视发现DB1.DBX0.0的数据就是DB2.DBX3.0,功能块的变量声明不是局部只在功能块用有效吗?
最佳答案
1、符号#OPEN是本地符号,不同的FB中可以有相同的本地(局部)符号名,两者没有关系。本地(局部)符号名只在本功能块中有效。
注意:
共享符号通过引号("...") 被识别,而本地符号通过前面标识符(#)识别。识别由STEP 7自动实现。但是,如果一个符号既作为共享符号,又作为局部符号存在,那么必须明确指明它的标识以避免混淆。此外,使用包含空格的共享符号时也需要该标识。
2、监视发现DB1.DBX0.0的数据就是DB2.DBX3.0.....?
两者应该没有关系,本地(局部)符号名只在本功能块中有效。可能是程序的其他问题所致。
提问者对于答案的评价:
发现是程序中其他语句调用,导到两个#变量一致
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc235821.html