首页 理论教育 位逻辑指令应用:置位、复位、取反及记忆功能

位逻辑指令应用:置位、复位、取反及记忆功能

时间:2023-06-30 理论教育 版权反馈
【摘要】:本节的程序在项目“位逻辑指令应用”的OB1中。图3-1 取反RLO触点表3-1 位逻辑指令3.线圈线圈将输入的逻辑运算结果的信号状态写入指定的地址,线圈通电时写入1,断电时写入0。置位输出指令与复位输出指令最主要的特点是有记忆和保持功能。在图3-4的M4.4的下降沿,从M5.4开始的3个连续的位被复位为0状态并保持该状态不变。其他情况下M6.3均为0状态,M6.4为边沿存储位。在I0.7的上升沿,M6.1的常开触点闭合一个扫描周期,使M6.6置位。

位逻辑指令应用:置位、复位、取反及记忆功能

本章主要介绍梯形图编程语言中的基本指令和部分扩展指令,其他指令将在后面各章中陆续介绍。

本节的程序在项目“位逻辑指令应用”(见随书光盘中的同名例程)的OB1中。

1.常开触点与常闭触点

常开触点(见表3-1)在指定的位为1状态时闭合,为0状态时断开。常闭触点在指定的位为1状态时断开,为0状态时闭合。两个触点串联将进行“与”运算,两个触点并联将进行“或”运算。

2.取反RLO触点

RLO是逻辑运算结果的简称,图3-1中间有“NOT”的触点为取反RLO触点,它用来转换能流输入的逻辑状态。如果有能流流入取反RLO触点,该触点输入端的RLO为1状态,反之为0状态。

如果没有能流流入取反RLO触点,则有能流流出(见图3-1的左图)。如果有能流流入取反RLO触点,则没有能流流出(见图3-1的右图)。

978-7-111-58719-4-Chapter03-1.jpg

图3-1 取反RLO触点

3-1 位逻辑指令

978-7-111-58719-4-Chapter03-2.jpg

3.线圈

线圈将输入的逻辑运算结果(RLO)的信号状态写入指定的地址,线圈通电(RLO的状态为“1”)时写入1,断电时写入0。可以用Q0.4:P的线圈将位数据值写入过程映像输出Q0.4,同时立即直接写给对应的物理输出点(见图3-2的右图)。

取反输出线圈中间有“/”符号,如果有能流流过M4.1的取反线圈(见图3-2的左图),则M4.1为0状态,其常开触点断开(见图3-2的右图),反之M4.1为1状态,其常开触点闭合。

978-7-111-58719-4-Chapter03-3.jpg

图3-2 取反线圈和立即输出

4.置位、复位输出指令

S(Set,置位输出)指令将指定的位操作数置位(变为1状态并保持)。

R(Reset,复位输出)指令将指定的位操作数复位(变为0状态并保持)。

如果同一操作数的S线圈和R线圈同时断电(线圈输入端的RLO为“0”),则指定操作数的信号状态保持不变。

置位输出指令与复位输出指令最主要的特点是有记忆和保持功能。如果图3-3中I0.4的常开触点闭合,Q0.5变为1状态并保持该状态。即使I0.4的常开触点断开,Q0.5也仍然保持1状态(见图3-3中的波形图)。I0.5的常开触点闭合时,Q0.5变为0状态并保持该状态,即使I0.5的常开触点断开,Q0.5也仍然保持为0状态。

在程序状态中,用Q0.5的S和R线圈连续的绿色圆弧和绿色的字母表示Q0.5为1状态,用间断的蓝色圆弧和蓝色的字母表示0状态。图3-3中Q0.5为1状态。

978-7-111-58719-4-Chapter03-4.jpg

图3-3 置位输出与复位输出指令

5.置位位域指令与复位位域指令

“置位位域”指令SET_BF将指定的地址开始的连续的若干个位地址置位(变为1状态并保持)。在图3-4的I0.6的上升沿(从0状态变为1状态),从M5.0开始的4个连续的位被置位为1状态并保持该状态不变。

“复位位域”指令RESET_BF将指定的地址开始的连续的若干个位地址复位(变为0状态并保持)。在图3-4的M4.4的下降沿(从1状态变为0状态),从M5.4开始的3个连续的位被复位为0状态并保持该状态不变。

6.置位/复位触发器与复位/置位触发器

图3-5中的SR方框是置位/复位(复位优先)触发器,其输入/输出关系见表3-2,两种触发器的区别仅在于表的最下面一行。在置位(S)和复位(R1)信号同时为1时,图3-5的SR方框上面的输出位M7.2被复位为0。可选的输出Q反映了M7.2的状态。

RS方框是复位/置位(置位优先)触发器,其功能见表3-2。在置位(S1)和复位(R)信号同时为1时,方框上面的M7.6被置位为1。可选的输出Q反映了M7.6的状态。

7.扫描操作数信号边沿的指令

图3-4中间有P的触点指令的名称为“扫描操作数的信号上升沿”,如果该触点上面的输入信号I0.6由0状态变为1状态(即输入信号I0.6的上升沿),则该触点接通一个扫描周期。边沿检测触点不能放在电路结束处。

978-7-111-58719-4-Chapter03-5.jpg

图3-4 边沿检测触点与置位复位位域指令

978-7-111-58719-4-Chapter03-6.jpg

图3-5 SR触发器与RS触发器

3-2 SRRS触发器的功能

978-7-111-58719-4-Chapter03-7.jpg(www.xing528.com)

P触点下面的M4.3为边沿存储位,用来存储上一次扫描循环时I0.6的状态。通过比较I0.6的当前状态和上一次循环的状态,来检测信号的边沿。边沿存储位的地址只能在程序中使用一次,它的状态不能在其他地方被改写。只能用M、DB和FB的静态局部变量(Static)来作边沿存储位,不能用块的临时局部数据或I/O变量来作边沿存储位。

图3-4中间有N的触点指令的名称为“扫描操作数的信号下降沿”,如果该触点上面的输入信号M4.4由1状态变为0状态(即M4.4的下降沿),RESET_BF的线圈“通电”一个扫描周期。该触点下面的M4.5为边沿存储位。

8.在信号边沿置位操作数的指令

图3-6中间有P的线圈是“在信号上升沿置位操作数”指令,仅在流进该线圈的能流的上升沿(线圈由断电变为通电),该指令的输出位M6.1为1状态。其他情况下M6.1均为0状态,M6.2为保存P线圈输入端的RLO的边沿存储位。

图3-6中间有N的线圈是“在信号下降沿置位操作数”指令,仅在流进该线圈的能流的下降沿(线圈由通电变为断电),该指令的输出位M6.3为1状态。其他情况下M6.3均为0状态,M6.4为边沿存储位。

上述两条线圈格式的指令不会影响逻辑运算结果RLO,它们对能流是畅通无阻的,其输入端的逻辑运算结果被立即送给它的输出端。这两条指令可以放置在程序段的中间或程序段的最右边。

在运行时用外接的小开关使I0.7变为1状态,I0.7的常开触点闭合,能流经P线圈和N线圈流过M6.5的线圈。在I0.7的上升沿,M6.1的常开触点闭合一个扫描周期,使M6.6置位。在I0.7的下降沿,M6.3的常开触点闭合一个扫描周期,使M6.6复位。

9.扫描RLO的信号边沿指令

在流进“扫描RLO的信号上升沿”指令(P_TRIG指令)的CLK输入端(见图3-7)的能流(即RLO)的上升沿(能流刚流进),Q端输出脉冲宽度为一个扫描周期的能流,使M8.1置位。指令方框下面的M8.0是脉冲存储位。

978-7-111-58719-4-Chapter03-8.jpg

图3-6 在RLO边沿置位操作数指令

978-7-111-58719-4-Chapter03-9.jpg

图3-7 扫描RLO的信号边沿指令

在流进“扫描RLO的信号下降沿”指令(N_TRIG指令)的CLK输入端的能流的下降沿(能流刚消失),Q端输出脉冲宽度为一个扫描周期的能流,使Q0.6复位。指令方框下面的M8.2是脉冲存储器位。P_TRIG指令与N_TRIG指令不能放在电路的开始处和结束处。

10.检测信号边沿指令

图3-8中的R_TRIG是“检测信号上升沿”指令,图3-9中的F_TRIG是“检测信号下降沿”指令。它们是函数块,在调用时应为它们指定背景数据块。这两条指令将输入CLK的当前状态与背景数据块中的边沿存储位保存的上一个扫描周期的CLK的状态进行比较。如果指令检测到CLK的上升沿或下降沿,将会通过Q端输出一个扫描周期的脉冲,将M2.2置位或复位。

978-7-111-58719-4-Chapter03-10.jpg

图3-8 R_TRIG指令

978-7-111-58719-4-Chapter03-11.jpg

图3-9 F_TRIG指令

在生成CLK输入端的电路时,首先选中左侧的垂直“电源”线,双击收藏夹中的“打开分支”按钮978-7-111-58719-4-Chapter03-12.jpg,生成一个带双箭头的分支。双击收藏夹中的按钮,生成一个常开触点和常闭触点的串联电路。将鼠标的光标放到串联电路右端的双箭头上,按住鼠标左键不放,移动鼠标。光标放到CLK端绿色的小方块上时,出现一根连接双箭头和小方块的浅色折线(见图3-10)。松开鼠标左键,串联电路被连接到CLK端(见图3-8)。

978-7-111-58719-4-Chapter03-13.jpg

图3-10 R_TRIG指令

11.边沿检测指令的比较

以上升沿检测为例,下面比较4种边沿检测指令的功能。

978-7-111-58719-4-Chapter03-14.jpg触点上面的地址的上升沿,该触点接通一个扫描周期。因此P触点用于检测触点上面的地址的上升沿,并且直接输出上升沿脉冲。其他3种指令都是用来检测RLO(流入它们的能流)的上升沿。

在流过978-7-111-58719-4-Chapter03-15.jpg线圈的能流的上升沿,线圈上面的地址在一个扫描周期为1状态。因此P线圈用于检测能流的上升沿,并用线圈上面的地址来输出上升沿脉冲。其他3种指令都是直接输出检测结果。

R_TRIG指令与P_TRIG指令都是用于检测流入它们的CLK端的能流的上升沿,并直接输出检测结果。其区别在于R_TRIG指令用背景数据块保存上一次扫描循环CLK端信号的状态,而P_TRIG指令用边沿存储位来保存它。如果P_TRIG指令与R_TRIG指令的CLK电路只有某地址的常开触点,可以用该地址的978-7-111-58719-4-Chapter03-16.jpg触点来代替它的常开触点和这两条指令之一的串联电路。图3-11中的两个程序段的功能是等效的。

978-7-111-58719-4-Chapter03-17.jpg

图3-11 两个等效的上升沿检测电路

12.故障显示电路

【例3-1】 设计故障信息显示电路,从故障信号I0.0的上升沿开始,Q0.7控制的指示灯以1Hz的频率闪烁。操作人员按复位按钮I0.1后,如果故障已经消失,则指示灯熄灭。如果没有消失,则指示灯转为常亮,直至故障消失。

解:信号波形图和故障信息显示电路如图3-12所示。在设置CPU的属性时,令MB0为时钟存储器字节(见图1-28),其中的M0.5提供周期为1s的时钟脉冲。出现故障时,将I0.0提供的故障信号用M2.1锁存起来,M2.1和M0.5的常开触点组成的串联电路使Q0.7控制的指示灯以1Hz的频率闪烁。按下复位按钮I0.1,故障锁存标志M2.1被复位为0状态。如果这时故障已经消失,则指示灯熄灭。如果没有消失,则M2.1的常闭触点与I0.0的常开触点组成的串联电路使指示灯转为常亮,直至I0.0变为0状态,故障消失,指示灯熄灭。

如果将程序中的978-7-111-58719-4-Chapter03-18.jpg触点改为常开触点,在故障没有消失的时候按复位按钮I0.1,松手后M2.1又会被置位,指示灯不会由闪烁变为常亮,仍然继续闪动。

978-7-111-58719-4-Chapter03-19.jpg

图3-12 故障显示电路波形图与电路

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

我要反馈