首页 理论教育 常见的位逻辑指令及其应用

常见的位逻辑指令及其应用

时间:2023-06-23 理论教育 版权反馈
【摘要】:位逻辑运算的结果简称为RLO。位逻辑指令是最常用的指令之一,主要有与指令、与非指令、或指令、或非指令、置位指令、复位指令和输出指令等。图4-21 取反触点示例3.电路块的串联和并联与S7-200PLC不同,S7-300/400 PLC的电路块没有专用的指令。图4-31 梯形图6.边沿检测指令边沿检测指令有负跳沿检测指令和正跳沿检测指令。

常见的位逻辑指令及其应用

位逻辑指令用于二进制数的逻辑运算。位逻辑运算的结果简称为RLO。

位逻辑指令是最常用的指令之一,主要有与指令、与非指令、或指令、或非指令、置位指令、复位指令和输出指令等。

1.触点与线圈

A(And):与指令表示串联的常开触点,检测信号1,与And关联。

O(Or):或指令表示并联的常开触点,检测信号1,与Or关联。

AN(AndNot):与非指令表示串联的常闭触点,检测信号0,与AndNot关联。

ON(OrNot):或非指令表示并联的常闭触点,检测信号0,与OrNot关联。

输出指令“=”将操作结果RLO赋值地址位,与线圈相对应。

与、与非及输出指令示例如图4-18所示,图中左侧是梯形图,右侧是与梯形图对应的指令表。当常开触点I0.0和常闭触点I0.2都接通时,输出线圈Q0.0得电(Q0.0=1),Q0.0=1实际上就是运算结果RLO的数值,I0.0和I0.2是串联关系。

978-7-111-58358-5-Chapter04-32.jpg

图4-18 与、与非及输出指令示例

或、或非及输出指令示例如图4-19所示,当常开触点I0.0、常开触点Q0.0和常闭触点M0.0有一个或多个接通时,输出线圈Q0.0得电(Q0.0=1),I0.0、Q0.0和M0.0是并联关系。

978-7-111-58358-5-Chapter04-33.jpg

图4-19 或、或非及输出指令示例

【例4-5】CPU上电运行后,对MB0-MB3清零复位,请设计梯形图。

S7-300/400虽然无上电闭合一个扫描周期的特殊寄存器,但有两个方法解决此问题,方法1如图4-20所示。另一种解法要用到OB100,将在后续章节讲解。

978-7-111-58358-5-Chapter04-34.jpg

图4-20 梯形图

2.对RLO的直接操作指令

这类指令可直接对逻辑操作结果RLO进行操作,改变状态字中RLO的状态。对RLO的直接操作指令见表4-9。

4-9 对RLO的直接操作指令

978-7-111-58358-5-Chapter04-35.jpg

取反触点示例如图4-21所示,当I0.0为1时Q0.0为0,反之当I0.0为0时Q0.0为1。

978-7-111-58358-5-Chapter04-36.jpg

图4-21 取反触点示例

3.电路块的串联和并联

与S7-200PLC不同,S7-300/400 PLC的电路块没有专用的指令。如图4-22所示的并联块,实际就是把两个虚线框当作两个块,再将两个块作或运算。如图4-23所示的串联块,实际就是把两个虚线框当作两个块,再将两个块作与运算。

978-7-111-58358-5-Chapter04-37.jpg

图4-22 并联块示例

978-7-111-58358-5-Chapter04-38.jpg

图4-23 串联块示例

【例4-6】编写程序,实现当压下SB1按钮奇数次时,灯亮;当压下SB1按钮偶数次时,灯灭。即单键起停控制,请设计梯形图。

这个电路是微分电路,但没用到上升沿指令。梯形图如图4-24所示。

4.复位与置位指令

S:置位指令将指定的地址位置位(变为1,并保持)。

R:复位指令将指定的地址位复位(变为0,并保持)。

如图4-25所示为置位/复位指令应用例子,当I0.0为1,Q0.0为1,之后,即使I0.0为0,Q0.0保持为1,直到I0.1为1时,Q0.0变为0。这两条指令非常有用。

【关键点】置位/复位指令不一定要成对使用。

【例4-7】用置位/复位指令编写“正转-停-反转”的梯形图,其中I0.0是正转按钮,I0.1是反转按钮,I0.2是停止按钮(接常闭触头),Q0.0是正转输出,Q0.1是反转输出。

梯形图和指令表如图4-26所示,可见使用置位/复位指令后,不需要用自锁,程序变得更加简洁。

978-7-111-58358-5-Chapter04-39.jpg

图4-24 梯形图

978-7-111-58358-5-Chapter04-40.jpg

图4-25 置位/复位指令示例

978-7-111-58358-5-Chapter04-41.jpg

图4-26 “正转-停-反转”梯形图和指令表

【例4-8】CPU上电运行后,对M0.0置位,并一直保持为1,请设计梯形图。

S7-300/400虽然无上电运行后一直闭合的特殊寄存器,但设计梯形图如图4-27所示,可替代此特殊寄存器。

978-7-111-58358-5-Chapter04-42.jpg

图4-27 梯形图

5.RS/SR双稳态触发器

RS:置位优先型RS双稳态触发器。如果R输入端的信号状态为“1”,S输入端的信号状态为“0”,则复位RS(置位优先型RS双稳态触发器)。否则,如果R输入端的信号状态为“0”,S输入端的信号状态为“1”,则置位触发器。如果两个输入端的RLO状态均为“1”,则指令的执行顺序是最重要的。RS触发器先在指定地址执行复位指令,然后执行置位指令,以使该地址在执行余下的程序扫描过程中保持置位状态。RS/SR双稳态触发器示例如图4-28所示,这个例子的输入与输出的对应关系见表4-10。

978-7-111-58358-5-Chapter04-43.jpg

图4-28 RS/SR双稳态触发器示例(www.xing528.com)

图4-10 RS/SR双稳态触发器输入与输出的对应关系

978-7-111-58358-5-Chapter04-44.jpg

SR:复位优先型SR双稳态触发器。如果S输入端的信号状态为“1”,R输入端的信号状态为“0”,则置位SR(复位优先型SR双稳态触发器)。否则,如果S输入端的信号状态为“0”,R输入端的信号状态为“1”,则复位触发器。如果两个输入端的RLO状态均为“1”,则指令的执行顺序是最重要的。SR触发器先在指定地址执行置位指令,然后执行复位指令,以使该地址在执行余下的程序扫描过程中保持复位状态。

【例4-9】设计一个单键启停控制(兵乓控制)的程序,实现用一个单按钮控制一盏灯的亮和灭,即奇数次压下按钮时灯亮,偶数次压下按钮时灯灭。

先设计其接线图,如图4-29所示。

梯形图如图4-30所示,可见使用SR双稳态触发器指令后,不需要用自锁,程序变得更加简洁。当第一次压下按钮时,Q0.0线圈得电(灯亮),Q0.0常开触点闭合,当第二次压下按钮时,S和R端子同时高电平,由于复位优先,所以Q0.0线圈断电(灯灭)。

978-7-111-58358-5-Chapter04-45.jpg

图4-29 I/O接线图

978-7-111-58358-5-Chapter04-46.jpg

图4-30 梯形图

这个题目还有另一种解法,就是用RS指令,梯形图如图4-31所示,当第一次压下按钮时,Q0.0线圈得电(灯亮),Q0.0常闭触点断开,当第二次压下按钮时,R端子高电平,所以Q0.0线圈断电(灯灭)。

978-7-111-58358-5-Chapter04-47.jpg

图4-31 梯形图

6.边沿检测指令

边沿检测指令有负跳沿检测指令(下降沿检测)和正跳沿检测(上升沿检测)指令。

负跳沿检测指令FN检测RLO从1调转到0时的下降沿,并保持RLO=1一个扫描周期。每个扫描周期期间,都会将RLO位的信号状态与上一个周期获取的状态比较,以判断是否改变。

下降沿示例的梯形图和指令表如图4-32所示,由如图4-33所示的时序图可知:当按钮I0.0压下后弹起时,产生一个下降沿,输出O0.0得电一个扫描周期,这个时间是很短的,肉眼是分辨不出来的,因此若Q0.0控制的是一盏灯,肉眼是不能分辨出灯已经亮了一个扫描周期。在后面的章节中多处会用到时序图,请读者务必学会这种表达方式

978-7-111-58358-5-Chapter04-48.jpg

图4-32 下降沿示例

正跳沿检测指令FP检测RLO从0调转到1时的上升沿,并保持RLO=1一个扫描周期。每个扫描周期期间,都会将RLO位的信号状态与上一个周期获取的状态比较,以判断是否改变。

上升沿示例的梯形图和指令表如图4-35所示,由如图4-34所示的时序图可知:当按钮I0.0按下时,产生一个上升沿,输出O0.0得电一个扫描周期,无论按钮闭合多长时间,输出O0.0只得电一个扫描周期。

978-7-111-58358-5-Chapter04-49.jpg

图4-33 下降沿示例时序图

978-7-111-58358-5-Chapter04-50.jpg

图4-34 上升沿示例时序图

978-7-111-58358-5-Chapter04-51.jpg

图4-35 上升沿示例

例4-10】边沿检测指令应用梯形图如图4-36所示,如果按钮I0.0压下闭合1s后弹起,请分析程序运行结果。

时序图如图4-37所示,当I0.0压下时,产生上升沿,触点产生一个扫描周期的时钟脉冲,驱动输出线圈Q0.1通电一个扫描周期,Q0.0也通电,使输出线圈Q0.0置位,并保持。

当按钮I0.0弹起时,产生下降沿,触点产生一个扫描周期的时钟脉冲,驱动输出线圈Q0.2通电一个扫描周期,使输出线圈Q0.0复位,并保持,Q0.0得电共1s。

【例4-11】设计一个程序,实现用一个单按钮控制一盏灯的亮和灭,即按奇数次压下按钮时,灯亮;偶数次压下按钮时,灯灭。

978-7-111-58358-5-Chapter04-52.jpg

图4-36 边沿检测指令示例

978-7-111-58358-5-Chapter04-53.jpg

图4-37 边沿检测指令示例时序图

当I0.0第一次合上时,M0.0接通一个扫描周期,使得Q0.0线圈得电一个扫描周期,当下一次扫描周期到达,Q0.0常开触点闭合自锁,灯亮。

当I0.0第二次合上时,M0.0线图得电一个扫描周期,使得M0.0常闭触点断开,使得灯灭。梯形图如图4-38所示。

7.能流取反触点

能流取反触点的主要作用是把它左边的逻辑运算结果(RLO)取反,如果其左边的运算结果为1,则变为0,如果其左边的运算结果为0,则变为1。NOT的应用例子如图4-39所示,当I0.0闭合时,NOT的左侧运算结果为1,经过NOT触点取反后,RLO变为0,因此Q0.0输出为0;反之,如果当I0.0断开时,NOT的左侧运算结果为0,经过NOT触点取反后,RLO变为1,因此Q0.0输出为1。

8.中间输出

中间输出标有“#”的中间线圈,是一种中间分配单元,用该元件指定的地址来保存它左边电路的逻辑运算结果(RLO),它与其他触点串联,并不影响能流的流向。中间线圈只能放在梯形图的中间,不能放在最左侧,也不能放在最右侧。中间输出的应用如图4-40所示,当I0.0闭合时,中间线圈M2.0左侧的逻辑运算结果RLO为1,因此将运算结果存储在线圈M2.0中,从而使得M2.0常开触点闭合,因此Q0.1线圈也得电。M2.0线圈并不影响其右侧的逻辑运算,其能流流到线圈M2.0右侧和I0.2左侧之间,Q0.0是否得电并不取决于线圈M2.0。

978-7-111-58358-5-Chapter04-54.jpg

图4-38 梯形图

978-7-111-58358-5-Chapter04-55.jpg

图4-39 梯形图

9.SAVE指令

SAVE指令就是将RLO保存到状态字的BR位,在下一段程序中,BR位的状态将参与“与”逻辑运算。在推出逻辑块之前,通过SAVE指令,使BR位对应的使能输出ENO被设置为RLO位的值,可以用于块的错误检查。SAVE指令较为常用,只出现在语句表程序中,但有的梯形图中包含SAVE指令,但不显示出来。

978-7-111-58358-5-Chapter04-56.jpg

图4-40 梯形图

10.SET和CLR指令

SET和CLR指令无条件将RLO(逻辑运算结果)置位和复位,随后将SET和CLR指令后面的赋值指令中的地址变为1状态或者0状态。SET和CLR指令比较常用,如在初始化组织块OB100中,用下列的语句表进行初始化。

978-7-111-58358-5-Chapter04-57.jpg

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

我要反馈