1.累加器(ACCUx)
32位累加器是用于处理字节、字或双字的寄存器,是语句表程序的关键部件。S7-300有两个累加器(ACCU1和ACCU2),几乎所有语句表的操作都是在累加器中进行的。因此需要把操作数送入累加器,在累加器中进行运算和数据处理后,用指令将ACCU1中的运算结果传送到某个存储区。处理8位或16位数据时,数据存放在累加器的低8位或低16位(右对齐)。
2.状态字寄存器
状态字是一个16位的寄存器,用于储存CPU执行指令后的状态,如图8-26所示。用户程序并不直接使用状态位,但是某些状态位可以决定某些指令是否执行和以什么样的方式执行。
图8-26 状态字的结构
(1)首次检测位(FC)
状态字的第0位称为首次检测位(FC),若该位的状态为0,则表明一个梯形逻辑程序段的开始,或指令为逻辑串的第一条指令。在逻辑串指令执行过程中该位为1,输出指令或逻辑运算有关的转移指令(表示一个逻辑串结束的指令)将该位清零。
(2)逻辑运算结果(RLO)
状态字的第1位称为逻辑运算结果(Result of Logic Operation,RLO)。该位用来存储执行位逻辑指令或比较指令的结果。
(3)状态位(STA)
状态字的第2位称为状态位,执行位逻辑指令时,STA总是与该位一致。
(4)或位(OR)
状态字的第3位称为或位(OR),在先逻辑“与”后逻辑“或”的逻辑运算中,OR位暂存逻辑“与”的操作结果,以便进行后面的逻辑“或”运算。输出指令将OR位复位。
(5)溢出位(OV)(www.xing528.com)
状态字的第4位称为溢出(Over)位,如果算术运算或浮点数比较指令执行时出现错误,溢出位被置1。如果后面影响该位的指令的执行结果正常,该位被清零。
(6)溢出状态保持位(OS)
状态字的第5位称为溢出状态保持位,它用来保存OV位的状态。只有JOS(OS=1时跳转)指令、块调用指令和块结束指令才能复位OS位。
(7)条件码1(CC1)和条件码0(CC0)
状态字的第7位和第6位称为条件码1和条件码0。这两个综合起来用来表示在累加器1中执行的算术运算或逻辑运算的结果与0的大小关系、比较指令的执行结果或移位指令的移出位状态。用户程序一般不直接使用条件码。
(8)二进制结果位(BR)
状态字的第8位称为二进制结果位。对应于方框指令的ENO,如果指令被正确执行,BR位为1,ENO端有能流流出。如果执行出现错误,BR位为0,ENO端没有能流流出。
3.其他寄存器
(1)数据块寄存器
数据块寄存器DB和DI分别用来保存打开共享数据块和背景数据块的编号。
(2)诊断缓冲区
诊断缓冲区是系统状态列表的一部分,包括系统诊断事件和用户定义的诊断事件的信息。这些信息按照它们出现的顺序排列,第一行是最新的事件。
诊断事件包括模块的故障、读写处理的错误、CPU的系统错误、CPU的操作模式切换错误、用户程序的错误和用户用系统功能SFC 52定义的诊断错误。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。