上海乔辉工控设备有限公司
2021/6/29 11:29:08状态字又称状态字寄存器,是一个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)、组合状态位(CC1、CC0)、溢出状态保持位(OS)、溢出位(OV)、域值位(OR)、状态位(STA)、逻辑操作结果位(RLO)、*检测位(FC)
简单解释如下:
*检测位(FC):CPU对逻辑串条指令的检测为*检测,如果该位的状态为0,表明一个逻辑串的指令;
逻辑操作结果位(RLO):存储位逻辑指令的或比较指令的结果;
状态位(STA):存储一个位地址的值,当执行位逻辑指令时,STA总是与该位的取值相一致;
域值位(OR):在先逻辑“与”,后逻辑“或”的逻辑运算中,OR位暂存逻辑“与”的操作结果,以便进行后面的逻辑“或”运算。其他指令将OR位复位;
溢出位(OV):如果算术运算或浮点数比较指令执行时出现错误(如溢出、非法操作和不规范的格式),溢出位被置1;
溢出状态保持位(OS):溢出位OV被置1时,OS位也被置1,OV被清零时,OS位保持1,它保存了OV位的状态;
组合状态位(CC1、CC0):这两位结合起来用于表示在累加器1中产生的算术运算或逻辑运算的结果与0的大小关系;
二进制结果位(BR):它将字处理程序与位处理联系起来,在一段既有位操作又有字操作的程序中,用于表示字操作结果是否正确。
下面简单举个例子说明:在用户编写的FB和FC语句表程序中,必须对BR位进行管理,当功能块正确执行后,使BR位为1,否则为0。使用SAVE指令可将RLO存入BR中,从而达到管理BR位的目的。当FB或FC执行无错误时,RLO为1,并存入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的值,用于对块中的错误进行检查
西门子plc编程入门教程
德国西门子(SIEMENS)公司生产的可编程序控制器在我国的应用也相当广泛,在冶金、化工、印刷生产线等领域都有应用。西门子(SIEMENS)公司的PLC产品包括LOGO、S7-200、S7-1200、S7-300、S7-400等。 西门子S7系列PLC体积小、速度快、标准化,具有网络通信能力,功能更强,可靠性高。S7系列PLC产品可分为微型PLC(如S7-200),小规模性能要求的PLC(如S7-300)和中、高性能要求的PLC(如S7-400)等。
当PLC投入运行后,其工作过程一般分为三个阶段,即输入采样、用户程序执行和输出刷新三个阶段。完成上述三个阶段称作一个扫描周期。在整个运行期间,PLC的CPU以一定的扫描速度重复执行上述三个阶段。
输入采样
在输入采样阶段,PLC以扫描方式依次地读入所有输入状态和数据,并将它们存入I/O映象区中的相应得单元内。输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,即使输入状态和数据发生变化,I/O映象区中的相应单元的状态和数据也不会改变。因此,如果输入是脉冲信号,则该脉冲信号的宽度必须大于一个扫描周期,才能保证在任何情况下,该输入均能被读入。
用户程序执行
在用户程序执行阶段,PLC总是按由上而下的顺序依次地扫描用户程序(梯形图)。在扫描每一条梯形图时,又总是先扫描梯形图左边的由各触点构成的控制线路,并按先左后右、先上后下的顺序对由触点构成的控制线路进行逻辑运算,然后根据逻辑运算的结果,刷新该逻辑线圈在系统RAM存储区中对应位的状态;或者刷新该输出线圈在I/O映象区中对应位的状态;或者确定是否要执行该梯形图所规定的特殊功能指令。
即,在用户程序执行过程中,只有输入点在I/O映象区内的状态和数据不会发生变化,而其他输出点和软设备在I/O映象区或系统RAM存储区内的状态和数据都有可能发生变化,而且排在上面的梯形图,其程序执行结果会对排在下面的凡是用到这些线圈或数据的梯形图起作用;相反,排在下面的梯形图,其被刷新的逻辑线圈的状态或数据只能到下一个扫描周期才能对排在其上面的程序起作用。
输出刷新
当扫描用户程序结束后,PLC就进入输出刷新阶段。在此期间,CPU按照I/O映象区内对应的状态和数据刷新所有的输出锁存电路,再经输出电路驱动相应的外设。这时,才是PLC的真正输出。
同样的若干条梯形图,其排列次序不同,执行的结果也不同。另外,采用扫描用户程序的运行结果与继电器控制装置的硬逻辑并行运行的结果有所区别。当然,如果扫描周期所占用的时间对整个运行来说可以忽略,那么二者之间就没有什么区别了。