S7-300 PLC的CPU运算结果会随时在状态字寄存器中显示出来。状态字寄存器为16位,但仅使用了第0位到第8位共9位,第9~15位未使用,如图6-6所示。
图6-6 S7-300 PLC的状态字结构
1.首位检测位
状态字的第0位为首位检测位。CPU对逻辑串的第一条指令的检测称为首位检测。若该位状态为0,则表明一个梯形网络的开始或者指令为逻辑串的第一条指令。该位在逻辑串开始时总为0,在逻辑串执行过程中该位为1。输出指令或与逻辑运算有关的转移指令(表示一个逻辑串结束)将该位清零。
2.逻辑操作结果位(RLO)
状态字的第1位为逻辑操作结果位(RLO)。该位用来存储逻辑指令或比较指令的结果。在梯形图程序中,RLO为1表示有能流流到运算点处;RLO为0表示无能流流过运算点。还可以用RLO触发跳转指令。
3.状态位(STA)
状态字的第2位为状态位。该位不能用指令来检测,只能在程序调试中被CPU解释并使用。对位逻辑指令读写存储器位时,STA位的值总与该位一致。非位逻辑指令执行时,STA总为1。
4.或位(OR)
状态字的第3位为或位(OR)。在先逻辑“与”后逻辑“或”的逻辑串中,OR位暂存逻辑“与”的操作结果,以便进行后面逻辑“或”运算。其他指令OR位清零。
5.溢出位(OV)
状态字的第4位为溢出位(OV)。当算术运算或浮点数比较指令执行时出现错误(如溢出、非法操作或不规范格式),OV位被置1,后面同类指令执行正常,该位被清零。(www.xing528.com)
6.溢出状态保持位(OS)
状态字的第5位为溢出状态保持位(OS)。它保存了OV位的状态,可用于指明在先前的一些指令执行过程中产生过错误。OV位置1时,OS位也置1;OV位清零时,OS位仍保持1。使OS位复位的指令有:JOS指令(OS=1时跳转)、块调用指令、块结束指令。
7.条件码0(CC0)和条件码1(CC1)
状态字的第6位和第7位分别称为条件码0(CC0)和条件码1(CC1)。这两位结合起来用于表示:
(1)累加器1产生的算术运算结果与0的大小关系,如表6-1所示。
表6-1 算术运算后的CC1和CC0
(2)比较指令的结果、字移位指令的移出位状态、逻辑指令运算结果与0的关系。如表6-2所示。
表6-2 比较、移位、字逻辑运算后的CC1和CC0
8.二进制结果位(BR)
状态字的第8位为二进制结果位(BR)。它将字处理程序与位处理联系起来,在一段既有位操作又有字操作的程序中,用于表示字操作结果是否正确。将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。在梯形图的方框图指令中,BR位与ENO有对应关系,用于表明方框指令是否被正确执行。如果执行出现错误,BR位为0,ENO也为0;如果执行正确,BR位为1,ENO也为1。
在用户编写的FB或FC程序中,必须对BR位进行管理。当功能块正确执行后,应使BR位为1,否则使其为0。使用SAVE指令可以将RLO存入BR位中,从而达到管理BR位的目的。当FB或FC执行无错误时,使RLO位为1,并存入BR位;否则,在BR位存入0。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。