您现在的位置是:首页 > PLC技术 > PLC技术

STEP 7CPU中的寄存器

来源:艾特贸易2017-06-05

简介1 .累加器 (ACCUx) 32 位累加器是用于处理字节、字或双字的寄存器,是语句表程序的关键部件。 S7-300 有两个累加器( ACCU1 和 ACCU2 ), S7-400 有 4 个累加器 (ACCUl~ACCU4) 。几乎所有语句表

    1.累加器(ACCUx)

   32位累加器是用于处理字节、字或双字的寄存器,是语句表程序的关键部件。S7-300有两个累加器(ACCU1ACCU2),S7-4004个累加器(ACCUl~ACCU4)。几乎所有语句表的操作都是在累加器中进行的。因此需要把操作数送入累加器,在累加器中进行运算和数据处理后,用指令将ACCU1中的运算结果传送到某个存储区。处理8位或16位数据时,数据存放在累加器的低8位或低16位(右对齐)。

    2.状态字寄存器

    状态字是一个16位的寄存器,用于储存CPU执行指令后的状态(见图3-8)。可以在编程语言参考手册和STEP 7的指令在线帮助中查找到各条指令的执行对状态字的影响。用户程序并不直接使用状态位,但是某些状态位可以决定某些指令是否执行和以什么样的方式执行。

状态字的结构

    3-8    状态字的结构

   (1)首次检测位

    状态字的第0位称为首次检测位(),若该位的状态为0,则表明一个梯形逻辑程序段的开始,或指令为逻辑串的第一条指令。在逻辑串指令执行过程中该位为1,输出指令或与逻辑运算有关的转移指令(表示一个逻辑串结束的指令)将该位清零。

   (2)逻辑运算结果(RLO)

    状态字的第1位称为逻辑运算结果(Result of Logic OperationRLO)。该位用来存储执行位逻辑指令或比较指令的结果。RLO的状态为1,表示有能流流到梯形图中的运算点处;为0则表示无能流流到该点。可以用RLO触发跳转指令。

   (3)状态位(STA)

    状态字的第2位称为状态位,执行位逻辑指令时,STA总是与该位的值一致。可以通过状态位了解位逻辑指令的位状态。

   (4)或位(OR)

    状态字的第3位称为或位(OR),在先逻辑“与”后逻辑“或”的逻辑运算中,OR位暂存逻辑“与”的操作结果,以便进行后面的逻辑“或”运算。输出指令将OR位复位。

   (5)溢出位(OV)

    状态字的第4位称为溢出( Over)位,如果算术运算或浮点数比较指令执行时出现错误(例如溢出、非法操作和不规范的格式),溢出位被置1。如果后面影响该位的指令的执行结果正常,该位被清零。

   (6)溢出状态保持位(OS)

    状态字的第5位称为溢出状态保持位,它用来保存OV位的状态。只有JOSOS =1时跳转)指令、块调用指令和块结束指令才能复位OS位。

   (7)条件码1(CC1)和条件码0(CCO)

    状态字的第7位和第6位称为条件码1和条件码0。这两位综合起来用于表示在累加器l中执行的算术运算或逻辑运算的结果与0的大小关系、比较指令的执行结果或移位指令的移出位状态。用户程序一般不直接使用条件码。

   (8)二进制结果位(BR)

    状态字的第8位称为二进制结果位。在梯形图中,用方框表示某些指令、功能( FC)和功能块( FB),输入信号均在方框的左边,输出信号均在右边。梯形图中有一条提供“能流”的左侧垂直母线,图3-910.0的常开触点接通时,能流流到方框指令DIV_I的数字量输入端ENEnable in,使能输入)。该输入端有能流时,方框指令DIV_I才能执行。

EN与ENO

    3-9    ENENO

    如果方框指令的EN端有能流流入而且执行时无错误,则使能输出(Enable OutputENO)将能流传递给下一个元件。如果执行过程中有错误,能流在出现错误的方框指令终止。ENO可以作为下一个方框的EN输入,即几个方框可以串联,只有前一个方框被正确执行,与它连接的后面的程序才能被执行。ENENO的操作数均为能流,数据类型为BOOL(布尔)型。

    图中的方框指令DIV_I16位整数除法指令。在RUN模式用程序状态监控功能监视程序的运行情况。令除数MW4的值非0,当I0.01状态时,可以看到有能流流入DIV_I指令的EN输入端,指令执行成功,DIV_I指令框为绿色,有能流从它的ENO输出端流出(用绿色实线表示,见图3-9a)。

    令除数VW4的值为0,当I0.01状态时,可以看到有能流流入DIV_I指令的EN输入端,因为除数为0,指令执行失败,DIV_I指令框变为虚线(见图3-9),没有能流从它的ENO输出端流出。

    状态字中的二进制结果位BR对应于方框指令的ENO,如果指令被正确执行,BR位为1ENO端有能流流出。如果执行出现错误,BR位为0ENO端没有能流流出。

    在用户用语句表编写的FB(功能块)和FC(功能)程序中,必须对BR位进行管理。当FBFC执行无错误时,使RLO1,并存人BR;否则在BR中存入0。可以用SAVE指令将RLO存入BR。下面是图3-9I0.0的常开触点和方框指令DIV_I对应的语句表程序:

   A    I    0.0

   INB    -001    //如果I0.0=0,则跳转到标号001

   L    MW  2    //MW2的值装入累加器1的低字

   L    MW  4    //累加器1的值传送到累加器2MW4的值装入累加器1的低字

    /I    //MW2的值除以MW4的值

   T    MW    6    //累加器1低字的内容传送到MW6

   AN    OV    //如果运算没有出错

   SAVE    //RLO保存到BR位(从梯形图中的ENO端输出能流)

   CLR    //RLO置为0

_001    A   BR

    3.数据块寄存器

    数据块寄存器DBDI分别用来保存打开的共享数据块和背景数据块的编号。

    4.诊断缓冲区

    诊断缓冲区是系统状态列表的一部分,包括系统诊断事件和用户定义的诊断事件的信息。这些信息按照它们出现的顺序排列,第一行是最新的事件。

    诊断事件包括模块的故障、读写处理的错误、CPU的系统错误、CPU的操作模式切换错误、用户程序的错误和用户用系统功能SFC 52定义的诊断错误。