就是DB0.DBD0原来有值,然后我调用FC,又往DB0.DBD0中赋值了,数据会不会因为我这次赋值而改变?所说的不带背景数据块数据不能保存是怎么回事?求解答谢谢
能不能给我举个例子在FC中会丢失的内部变量,建立FB的时候是自己需要建立个背景数据块啊还是系统自己就生成了呢?
追答例如: 在Fc1中,变量定义为Int类型,变量名为AAA,输入变量,定义另外一个变量,BBB,为内部变量 在Fc1中程序写为:
L #AAA
T #BBB
在OB1中,调用Fc1,同时调用系统功能SFC时,那么当调用Fc1时,系统为BBB开辟临时空间L0,此时L0的值就是BBB的值,Fc1调用完毕,返回Ob1,接着调用系统功能SFC,SFC也有内部变量需要开辟临时空间,那么,系统从L0开始,此时,L0的数据将不再是BBB了,也就是被改变了。所以Fc中使用变量遵循先赋值,后使用的原则。
对于Fb来说,仅西门子的PLC需要为其分配背景数据块,其他厂牌均由系统分配,不是由用户分配,从某种意义上来说,西门子并非完全遵守IEC61131-3规范。