在上一章节中我们对CPU程序块结构进行了系统学习,(参见西门子PLC控制器技术之七:CPU程序块结构 http://www.jianshu.com/p/84afc005d8f4 ),知道了PLC中程序块的类型、理解了输入/输出过程映像区的理念以及理解了循环程序执行机制等内容。
通过前面章节的学习,我们已经能够创建自己项目的硬件组态、找到现场设备的I/O点,对CPU属性等参数进行相关设置,编辑项目所需要的符号表以及理解了CPU运行原理机制,本章将和大家学习梯形图编程语言中最基础最重要的一类指令——梯形图位指令。
什么是位指令?
位指令是指梯形图中用来处理位逻辑运算的指令。如下图所示,在LAD/STL/FBD编辑器左边的概览中,Bit logic选项下的所有指令都是位指令。
位指令处理的对象为二进制(0或1)位信号,并根据布尔逻辑进行组合,所产生的结果(1或0)存放于状态字的RLO位中(RLO是逻辑运算结果,状态字的第1位)。
位指令编程时可以直接将相关指令拖拽到右边的编程栏中,如果对某一个指令不熟悉,选中,按下F1,屡试不爽啊!
常见位逻辑
常见的位逻辑有与AND、或OR、非NOT、异或XOR。
与AND逻辑相当于两个变量串联输出,只有当两个变量同时为1时,输出才为1;
或OR逻辑相当于两个变量并联输出,只要至少其中一个变量为1,输出就为1;
非NOT逻辑就是将原变量取反输出;
异或XOR逻辑是当两个变量相异时(一个为0,一个为1),输出为1,如下图所示,当I0.4和I0.5一个为1、一个为0时,输出Q4.0才为1。
异或赋值/置位复位指令
如下图所示,赋值指令将RLO传送到指定地址;用梯形图就是输出线圈,前面逻辑运算的结果存放到RLO,输出线圈指令即将RLO的值传送到目标地址。
置位和复位要看其前RLO值是否为“1”,如果其前面逻辑运算结果为1,则执行后续的置位S或者复位R指令,将目标地址置1或者复0。
赋值_置位_复位指令需要注意的是,置位和复位指令一般是成对出现的,这是因为一个位地址被置位后,会一直保持状态为1,知道该地址被复位为止。
SR和RS触发器
说到和置位复位相关指令,不得不提一下SR和RS触发器。如下图所示,为SR和RS触发器的梯形图、功能框图和语句表程序对比示意图。
RS和SR触发器触发器有两个输入端口,一个置位端S、一个复位端R。当任意一个端口前的逻辑运算结果由0变为1时,执行当前的相关信号输出。但是当两个端口前的逻辑运算结果同时由0变为1时,两个触发器就有了些许差别:
SR触发器是复位优先,RS触发器是置位优先。这需要从程序指令执行的顺序上进行本质理解,因为程序是从上往下扫描执行的,下面的程序后执行,那么最终显示出来的结果是后执行输出的目标地址值会覆盖掉先执行的目标地址值。SR触发器复位R语句在后,所以复位优先;RS触发器置位S语句在后,所以置位优先。
RLO的边沿检测
我们已经知道,一个位信号有两个状态值,要么0要么1。但是在实际应用当中,有个时候需要获取取信号边沿变化的值,这就需要用到边沿检测信号了。
在这里,介绍两个最简便常用的边沿检测指令。如下图所示,-(P)-用来检测其前逻辑运算结果从0到1的跳变情况,即上升沿检测;-(N)-用来检测其前逻辑运算结果从1到0的跳变情况,即下降沿检测。
边沿检测指令在检测到其前的逻辑运算结果有跳变时,就将输出一个扫描周期的高电平。
RLO的边沿检测注意,输出高电平仅仅只维持一个扫描周期!
以上就是本章专题的主要内容,思考以下几个问题,可以帮您巩固所学内容:
-
多个变量异或会是怎样的情况?
-
如何理解SR和RS触发器?
-
用一个常开按钮的上升沿接一个指示灯输出,当按钮按下的时刻,指示灯会亮吗?
网友评论