DB块的实际使用
刘玉蓉
发布于2014-11-03 17:17
2
0
标签:
一条皮带在正常运转时不能自动运行,将其控制程序对应的DB块删除,并复制相同的替代,重新下装后正常。请问为什么会出现这样的情况呢?
佳答案
这个删除并被复制的数据块DB应该是相应功能块FB的背景数据块,而FB的参数(IN、OUT和IN_OUT)和静态变量(STAT)安排在它的背景数据块中。
在程序块被调用时,如果不指定FB中形式参数赋值,将自动读取该背景数据块中参数值,而在FB调用结束后,修改后的参数和静态变量结果返回保存到背景数据块中,即参数和静态变量的值会自动写入响应的背景数据块中,从而改变了DB块中的初始值。
一般你在建立FB时会自动产生对应的背景数据块,而块中的数据为默认初始值,运行一段时间后数据会随着FB的调用而改变,所以你删除该DB并复制同样的块,相当于把DB块中所有对应功能FB的形式参数的数据进行了复位。如果一条皮带在正常运转时不能自动运行,进行相应程序块的DB复制并下载工作正常,说明你的FB块的程序结构有问题,缺少相应的循环程序初始化语句,一旦程序被多次调用将发生错误。