step7中调用两次同一个FB,(例如FB1)使用不同的DB(例如DB1、DB2),为什么会出现两个数据块(即DB1和DB2)中的内容相互影响?
例如出现调用FB1和DB2时,却有可能使用的是DB1中的参数和静态变量。 其中(使用LAD编程)两个调用FB1的EN都直接连左母线。
问题补充:
相互影响的是IN和OUT参数,局域变量,不是全局变量。比如我全局给FB1、DB2(龙门吊2程序)一个START2(为1),给FB1、DB1(龙门吊1程序)一个start2(为0)。这时DB2中读入1,DB1中读入为0(这个是正确的)。错误的是运行时子程序中,龙门吊2程序的形参为0(不是DB2中的数据、而是DB1中的数据),龙门吊1程序的形参为(不是DB1中的数据、而是DB2中的数据)。把FB1重命名后错误消失了,但是这样不是很麻烦?程序很乱!我这一个项目要100多个FB了。我就是想知道为什么会出现混乱,难道是编程环境的问题?请各位高手指教。
最佳答案
step7中调用两次同一个FB,(例如FB1)使用不同的DB(例如DB1、DB2),为什么会出现两个数据块(即DB1和DB2)中的内容相互影响?
相互影响的是FB中的全局变量,如是局域变量就没有影响。
另外的方法就是同一个FB程序,可以命名为两个名字不同的FB,这两个FB分别使用不同的DB.
提问者对于答案的评价:
虽然根本问题没解决。。。不过还是告诉我了另外的方法
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc311979.html