首页 理论教育 实训十四:状态字仿真实验优化

实训十四:状态字仿真实验优化

时间:2023-06-20 理论教育 版权反馈
【摘要】:I0.7和I0.5为0状态,它们对应的指令执行完后,STA位为0状态。用实训十三所述的方法,隐藏累加器1,增加对状态字的监控。7)改变I0.4或I0.7的状态,观察B点的RLO与OR位的关系。请注意状态字的第4、第5位。由图3-61可知,该指令使状态字的FC位为1,OR、STA和RLO位受该指令执行的影响,其他位不受影响。

实训十四:状态字仿真实验优化

1.与逻辑运算有关的状态位

状态字是一个16位的寄存器,只使用了其中的9位(见图3-56),它用于储存CPU执行指令后的状态。

978-7-111-31641-1-Chapter03-77.jpg

图3-56 状态字的结构

(1)首次检测位

状态字的第0位(最低位)称为首次检测位(FC)。若该位的状态为0,表示一个梯形逻辑程序段的开始,或指令为逻辑串的第一条指令。在逻辑串指令执行过程中该位为1,输出指令或与逻辑运算有关的跳转指令将该位清零。该位只是用于监控。

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

状态字的第1位称为逻辑运算结果(Result of Logic Operation,RLO,见图3-56),它用来存储执行位逻辑指令或比较指令的结果。在梯形图中,RLO为1表示有能流流过指令对应的触点或输出元件,反之则表示没有能流流过。执行完图3-58中的第一条指令后,RLO为1,梯形图中的A点有能流流过(见图3-57)。执行完第2条指令后,RLO为0,梯形图中的B点没有能流流过。

(3)状态位(STA)

状态字的第2位STA称为状态位,执行位逻辑指令时,STA位与指令中的位变量的值一致。由图3-57可知,I0.4、I0.6和Q4.2为1状态,它们对应的指令执行完后,STA位为1状态。I0.7和I0.5为0状态,它们对应的指令执行完后,STA位为0状态。

(4)或位(OR)

状态字的第3位称为或位,在先逻辑“与”后逻辑“或”的逻辑运算中,OR位用来暂存逻辑“与”的操作结果。编程时并不直接使用OR位。图3-57中B点的“与”运算的RLO被保存在OR位,用来与下面的串联电路的“与”运算的结果作“或”逻辑运算。

2.与逻辑运算有关的状态位的仿真实验

实验步骤如下:

1)生成一个新的项目,将图3-57中的梯形图程序输入OB1。梯形图对应的逻辑代数表达式为I0.4*I0.7+I0.6*I0.5=Q4.2,其中的“*”号表示逻辑与,“+”号表示逻辑或,I0.5上面的水平线表示“非”运算,等号表示将逻辑运算结果赋值给Q4.2。

2)执行菜单命令“视图”→“STL”,切换到语句表方式。图3-58的左边是图3-57中的梯形图对应的语句表指令。语句中的A和AN分别表示串联的常开触点和常闭触点,O表示两条串联电路的并联,等号表示赋值。

978-7-111-31641-1-Chapter03-78.jpg

图3-57 梯形图

978-7-111-31641-1-Chapter03-79.jpg

图3-58 语句表程序状态监控

3)打开PLCSIM,将OB1下载到仿真PLC,将仿真PLC切换到RUN-P模式。

4)单击工具栏上的978-7-111-31641-1-Chapter03-80.jpg按钮,起动程序状态监控功能。用实训十三所述的方法,隐藏累加器1(STANDARD),增加对状态字(STATUS WORD)的监控。

5)用PLCSIM的视图对象IB0改变I0.4的状态,观察第一条指令的STA位是否随之而变。用同样的方法观察其他A指令和AN指令的STA位与指令中的输入点状态的关系。

6)改变I0.4~I0.7的状态,观察对RLO的影响,RLO是否反映了程序中的逻辑运算结果?

7)改变I0.4或I0.7的状态,观察B点的RLO与OR位的关系。

8)改变I0.4~I0.7的状态,观察最后一条指令执行完后(即开始执行下一个梯形逻辑程序段时),状态字的最低位FC位是否为0。

3.溢出位与溢出保持位的仿真实验

状态字的第5位和第4位分别是溢出位OV和溢出保持位OS。如果执行数学运算指令时出现错误,例如溢出(运算结果超出允许的范围)、非法操作和不规范的格式,溢出位被置1。如果后面影响该位的指令的执行没有出错,该位被清零。

溢出状态保持位OS用来保存OV位,只有JOS(OS=1时跳转)指令、块调用指令和块结束指令才能复位OS位。实际上很少使用OS位。(www.xing528.com)

将图3-59中的语句表程序输入到OB1,指令“*I”是16位整数乘法指令,如果乘积超出允许的范围,执行该指令后,OV位和OS位(状态字的第5位和第4位)均为1。

将OB1下载到仿真PLC,将仿真PLC切换到RUN-P模式。打开OB1,单击工具栏上的978-7-111-31641-1-Chapter03-81.jpg按钮,起动程序状态监控功能。用PLCSIM修改MW10的值。图3-59和图3-60分别是没有溢出和有溢出的监控结果。请注意状态字的第4、第5位。有溢出(运算结果大于32767)时执行JO指令,将跳转到标号OVER处。跳转指令将在实训十五中介绍。

978-7-111-31641-1-Chapter03-82.jpg

图3-59 没有溢出的语句表程序状态监控

978-7-111-31641-1-Chapter03-83.jpg

图3-60 有溢出的语句表程序状态监控

4.用在线帮助获取指令对状态字的影响

选中图3-60中的“A”指令,按计算机的<F1>键,打开该指令的在线帮助,可以看到该指令的执行对状态字各位的影响。由图3-61可知,该指令使状态字的FC位为1,OR、STA和RLO位受该指令执行的影响,其他位不受影响。

978-7-111-31641-1-Chapter03-84.jpg

图3-61 在线帮助中指令执行对状态字的影响

5.条件码

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

指令的在线帮助给出了条件码与上述指令的执行结果的关系。执行完图3-60中的乘法指令“*I”后,CC1和CC0分别为1和0,表示运算结果为正。

6.二进制结果位的仿真实验

状态字的第8位为二进制结果位BR。在梯形图中,用方框表示某些指令、功能(FC)和功能块(FB)。图3-62中I1.0的常开触点接通时,能流流到方框指令DIV_I的数字量输入端EN(Enable,使能输入),该指令才能执行。

如果方框指令的EN端有能流流入,而且执行时无错误,则使能输出ENO(Enable Output)端有能流传递给下一个元件(见图3-62)。如果指令执行出错(除数为零),能流在出现错误的方框指令终止(见图3-63)。ENO可以作为下一个方框的EN输入,即几个方框可以串联,只有前一个方框被正确执行,与它连接的后面的程序才能被执行

978-7-111-31641-1-Chapter03-85.jpg

图3-62 BR位为1

978-7-111-31641-1-Chapter03-86.jpg

图3-63 BR位为0

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

仿真实验步骤如下:

1)将图3-62中的程序输入到OB1。

2)将OB1下载到仿真PLC,将仿真PLC切换到RUN-P模式。

3)打开OB1,单击工具栏上的978-7-111-31641-1-Chapter03-87.jpg按钮,起动程序状态监控功能。

4)用PLCSIM设置MW16中的除数非零,将I1.0置为1状态,能流流入方框指令DIV_I的EN输入端。因为指令执行成功,指令框为绿色,有能流从它的使能输出端ENO流出(见图3-62)。

5)设置除数VW16的值为0,指令执行出错,DIV_I指令框变为虚线,没有能流从它的ENO输出端流出(见图3-63)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈