西门子PLC状态字解释



西门子STL语句表编程中的状态字

状态字又称状态字寄存器,是一个16位的寄存器,只用了其中的9位,它属于S7-300/400PLC的存储区中除基本存储区外的存储区的一种。用于存储CPU执行指令后的状态,以二进制位的形式保存指令的执行结果与中间状态。
状态字的位如下:
15-9  8  7   6   5  4  3  2   1   0 
保留 BR CC1 CC0 OS OV OR STA RLO FC
其含义分别为:二进制结果位(BR)、组合状态位(CC1CC0)、溢出状态保持位(OS)、溢出位(OV)、域值位(OR)、状态位(STA)、逻辑操作结果位(RLO)、首位检测位(FC
简单解释如下:
首位检测位(FC):CPU对逻辑串第一条指令的检测为首位检测,如果该位的状态为0,表明一个逻辑串的第一指令;
逻辑操作结果位(RLO):存储位逻辑指令的或比较指令的结果;
状态位(STA):存储一个位地址的值,当执行位逻辑指令时,STA总是与该位的取值相一致;
域值位(OR):在先逻辑,后逻辑的逻辑运算中,OR位暂存逻辑的操作结果,以便进行后面的逻辑运算。其他指令将OR位复位;
溢出位(OV):如果算术运算或浮点数比较指令执行时出现错误(如溢出、非法操作和不规范的格式),溢出位被置1
溢出状态保持位(OS):溢出位OV被置1时,OS位也被置1OV被清零时,OS位保持1,它保存了OV位的状态;
组合状态位(CC1CC0):这两位结合起来用于表示在累加器1中产生的算术运算或逻辑运算的结果与0的大小关系;
二进制结果位(BR):它将字处理程序与位处理联系起来,在一段既有位操作又有字操作的程序中,用于表示字操作结果是否正确。
下面简单举个例子说明:在用户编写的FBFC语句表程序中,必须对BR位进行管理,当功能块正确执行后,使BR位为1,否则为0。使用SAVE指令可将RLO存入BR中,从而达到管理BR位的目的。当FBFC执行无错误时,RLO1,并存入BR;否则在BR中存入0。编程示例:
A I0.0 //
读取I0.0 的信号状态
AI0.1 //
读取I0.1 的信号状态
0 I0.2 //
读取I0.2 的信号状态
SAVE  //
I0.0 IO.1的信号状态都为1,或者I0.2 的信号状态为1时(运算在运算之前进行),逻辑操作结果位RLO被存储到BR位(二进制结果位)
一般在退出逻辑块之前使用SAVE指令,使能输出ENO(即BR位)被设置为RLO的值,用于对块中的错误进行检查

猜你喜欢

转载自blog.csdn.net/t15032286291/article/details/79979162