发布于 2012-09-03 15:43:13
2楼
首先检查你的缓冲区,问题是什么。
功能块没有执行的原因,可能是程序块BR位的关系,这个主要用于判断程序块是否被正确执行,如果ENO后面没有后续指令,那就没有影响 如果是自编的程序块,可以在程序结束的地方处理BR位
ENO信号主要和BR位相关:
BR位:状态字的第8位称为二进制结果位。它将字处理程序与位处理联系起来,在一段既有位操 作又有字操作的程序中,用于表示字逻辑是否正确。将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。在梯形图的方块指令中,BR位与ENO位有对应关系,用于表明方块指令是否被正确执行:如果执行出现了错误,BR位为0,ENO位也为0;如果功能被正确执行,BR位为1ENO位也为1。在用户编写的FB/FC程序中,应该对BR位进行管理,功能块正确执行后,使BR位为1,否则使其为0。使用SAVE指令将RLO存入BR中,从而达到管理BR位目的。
SET
SAVE
CLR
A BR
这样的语句,则BR位永远为1,因为SET是不管以上任何条件将RLO置为1的,CAVE将当前的RLO保存到BR,CLR清除的只是RLO位,A BR是判断BR位是否是1,所以,如果这段程序被执行,BR位置就永远为1了,只有通过跳转或者之前的程序判断,不执行SET指令的时候,BR位才可能是0.
不忘初心哈