基本逻辑类指令指主要针对二进制数(bit、位)逻辑操作的指令,是PLC最基本的指令。所有的PLC都有这类指令。这类指令可分为读(输入类,运用触点)与写(输出类,运用线圈)两种。PLC的继电器功能主要就是靠它实现。
读指令指的是读操作数的逻辑值,并与在这之前已有的结果值进行相应的逻辑运算,进而修改结果值。目的是确定要写的逻辑值,或为其它指令的执行建立相应的逻辑条件。
写指令指的是把上述结果值按输出指令要求写给操作数。
这个结果值就是下面将要讨论的R寄存器的值,有的称为RLO—Result of Logic Operation,即逻辑运算结果。西门子的S7-200称之为逻辑栈顶(The Top of the Logic Stack,TOS)。
表1-5列出4个PLC厂商用指令表语言表达的有关这类的指令。以下将对这类指令进行讨论。
表1-5 PLC主要的基本逻辑指令
1.装载指令
装载指令的作用是把操作数的内容(0或1)送入结果寄存器R,并把结果寄存器的原有内容送入堆栈P(有的为第二个RLO,不是堆栈)。
指令的语句表符号格式:指令地址“装载”操作位地址梯形图符号如图1-16所示。
它调用常开触点,一般总是把这触点与梯形图的母线相连。其功能如图1-17所示。
图1-16 装载指令
图1-17 装载指令功能
这里a为操作数的地址,括号代表a的状态;R为结果寄存器;P为堆栈。堆栈为先进后出的存储单元,一般长度为8个位(bit),与PLC型别有关,如欧姆龙CJ1机为16位。8位时,可存储8个二进制数,再续存时,最先存储的掉失。堆栈主要在逻辑块操作,或需多个输入条件时用到它。
取反装载指令,是操作位的内容先取反(代表常闭触点),再送结果寄存器。在梯形图上,一般是表示此常闭触点和左母线相连。其符号是在两短平行线的基础上,再加一小斜线。有的PLC,装载及取反装载指令还可加感叹号(!)及上或下箭头(↑↓),其含义与使用的触点类型有关。
这里感叹号(!)代表执行此指令时先进行输入刷新,以读入此点的最新状态,然后才把这最新状态写入结果寄存器。这么做当然有利于提高对这个输入信号的响应速度。
上下箭头代表跳变(微分)。若为向上箭头,则操作位的状态从0变为1时,ON一个扫描周期;若为向下箭头,则从1变为0时ON一个扫描周期。其它周期均为0。
加了这个感叹号、向上及向下箭头,使指令的功能大为增强,一个指令可起到多个指令的作用。
S7-200逻辑栈,除了栈顶,还有8位栈体,也可暂存8个位(bit)。它的栈体相当于这里的栈,而栈顶则相当于这里的结果寄存器。
2.与指令
与指令为“与”操作指令。它的作用是把操作位的内容与R中的内容相与,然后再送入R中。这时,堆栈的内容无变化。
其语句表的符号:指令地址与操作位地址梯形图符号如图1-18所示。
它也为常开触点,在梯形图上,它表示与其左边的触点相串联。其功能如图1-19所示。
图1-18 与指令
图1-19 与指令功能
这里a为操作数的地址,括号代表a的内容;R为结果寄存器;P为堆栈,执行AND指令时,它的内容不变。
取反与指令,是先取反(代表常闭触点),然后再和结果寄存器的内容做与运算。在梯形图上,表示串联上此常闭触点。
有的PLC这个指令也可加感叹号、上下箭头。含义同装载指令。
3.或指令
或指令为或操作指令。它的作用是把操作位的内容与R中的内容相或,然后再存入R中。这时,堆栈的内容无变化。梯形图符号和与指令相同(见图1-18)。
或指令的语句表符号:指令地址或操作位地址
它也为常开触点,在梯形图上,它表示与其上一行的触点相并联。其功能如图1-20所示。
图 1-20
取反或指令,是先取反(代表常闭触点),然后再和结果寄存器的内容作或运算。在梯形图上,表示并联上此常闭触点。
有的PLC这个指令也可加感叹号,上下箭头,含义同装载指令。
4.块与、块或指令
无操作数。其作用是把结果寄存器的内容与堆栈的内容作逻辑与,或逻辑或,然后再送结果寄存器。
语句表符号:指令地址块与或指令地址块或,和利时PLC则用AND或OR加括号。
它在梯形图上代表两组触点的串联或并联。块与指令功能如图1-21所示。
块或指令功能为如图1-22所示。
图1-21 块与指令功能
图1-22 块或指令功能
这两个指令用于触点组间的串联或并联,是很有用的指令。如图1-23所示,其对应的助记符指令也已列出。
图1-23 触点组间的串联或并联
5.输出指令
输出指令为写指令。输出指令要用到线圈,一般多用正常线圈。语句表的符号为指令地址输出操作位地址。(www.xing528.com)
图1-24 输出指令
梯形图符号为输出正常线圈,可用圆圈或括号表示。欧姆龙、三菱PLC的助记符用OUT,西门子PLC用等号,和利时用ST,如图1-24所示。
其功能如图1-25所示。这里a为操作数。执行输出指令后堆栈内容不变,R的内容也不变,只是把R的内容传给a。
有的也可使用反向线圈。如欧姆龙PLC取反输出指令,如图1-26所示,其含义是把R先取反,然后再传给a。表示符号为在OUT的符号基础上加一斜线。
图1-25 输出指令功能
图1-26 欧姆龙输出取反指令
有的PLC这个指令也可加感叹号(!)。感叹号代表执行此指令后,立即进行输出刷新,把这时输出的状态送输出锁存器,直接产生输出。
图1-27 西门子加感叹号指令
图1-27为西门子PLC加感叹号使用例子。它立即刷新后,把I0.0读入。写Q0.0后,立即刷新。用语句表列写指令时,在LD之后,加I,即LDI 0.0及=(此符号相当于欧姆龙的OUT)后,再加I,即=I Q0.0。显然,这样处理,可加快Q0.0对I0.0的响应速度。
有了以上介绍的输入、输出指令,普通的串、并联电路的逻辑就完全可用这些指令处理了。
提示:西门子、三菱PLC无取反输出,但有取反指令。它的先取反,后输出,与这里的OUTNOT效果相同。反之,如果欧姆龙PLC用OUTNOT后,输出给一个暂存器TR,然后再装载此TR,也就相当于执行取反指令(NOT、INV)。取反指令(NOT、INV)的格式如图1-28所示。
图1-28 取反指令
但如果一组逻辑条件,有分支输出,该怎么处理?不同的PLC有不同的办法。
欧姆龙PLC用输出暂存器(TR),然后,再装载暂存器解决;三菱、西门子PLC都用进栈、读栈及出栈指令解决。只是这里的栈与前面介绍的栈不是一回事,前面的栈用于装载、与、或及输出等多种处理,即使用助记符编程,也不必编写任何指令,而这里的栈是用于上述分支处理,用助记符编程时,则需编写相应指令。
图1-29所示为3种PLC解决此问题的梯形图及助记符程序。
从图1-29a知,欧姆龙用暂存器TR(有8个,性能高的机型有16个)存(用OUT指令)分支处的数据。而当使用时,再用LD指令调出。
从图1-29b知,西门子用IPS(进栈)指令,把分支处的数据压进栈。而当使用时,再用IPD(读栈)指令调出。这里最后用的IPP指令,是既读栈,而又清栈。因为,在其后的程序已不需这样处理了。
从图1-29c知,三菱基本与西门子相同。只是它进栈指令叫MPS,而不是叫IPS;读栈指令叫MRD,而不叫IPD;读栈、清栈指令叫MPP,而不叫IPP。
提示:如使用梯形图编程,画出梯形图程序就可以了。把梯形图程序转换成助记符程序时,这里暂存器使用或进栈、出栈处理都是自动实现的。
图1-29 分支输出解决方案
6.置位、复位指令
其操作数为位地址,也是一种输出指令。
它与使用设置(锁存)线圈、复位(取消锁存)线圈对应。当结果寄存器R的内容(逻辑条件)为1,则执行本指令。否则不执行,其操作数(即为位)内容不变。执行置位指令,其操作数变为1;执行复位指令,其操作数变为0。这两个指令的梯形图及助记符符号如图1-30所示。
图1-30 置位、复位指令
从图1-30知,欧姆龙、三菱及和利时PLC仅对一个点置位、复位,而西门子PLC置位、复位的点数可设定,图中S、R下设为1,故仅对Q0.0置位、复位。如设为2,则除了Q0.0还有Q0.1,如设为其它,则类推。
欧姆龙还把这两者复合在一起,成为KEEP指令,类似于数字电路的RS触发器。有两个输入端,一为R端,另一为S,分别对操作数置0(复位)与置1(置位)。
虽同样可实现置位、复位,但置位、复位指令可分开置于程序的不同位置,用起来较灵活。而KEEP指令则要依此执行这两个指令,先S后R。
西门子PLC也有类似KEEP那样的指令,RS或SR,其符号如图1-31所示。
RS完全同KEEP,复位优先,R、S端均为1,复位。而SR为置位优先,R、S端均为1,置位。
置位,复位指令前各分别赋一次值;KEEP、RS(R优先)、SR(S优先)指令之前则要连续赋两次值(要两次使用装载指令)。在梯形图上的表示为方块。置位,复位指令各仅有一个入端,而KEEP、RS、SR要有两个入端。如图1-32所示。
图1-31 西门子PLC RS、SR指令
图1-32 KEEP、SR指令使用
提示1:图1-32a与图1-32b两个程序,表面上功能是相同的。但实际是有区别的。如图1-32a、1-32b,若用10.00代替0.01,当00.00ON时,图1-32b)程序可使10.00ON、OFF按扫描周期交替出现,而图1-32a程序10.00永远不可能ON。
提示2:图1-32c与图1-32d两个程序道理上是一样的,但对S7-200只允许用图1-32d画法,图1-32c是错误的,编译通不过。而欧姆龙PLC则允许图1-32c这种画法。说明在梯形图表达上各家PLC还是稍有差别的。
7.微分指令
微分指令有上沿微分及下沿微分。
它与使用正转换感应线圈、负转换感应线圈对应,操作数也是位地址。当执行上沿微分指令时,R的内容从OFF(0)变为ON(1),则操作数的内容为1(ON)一个扫描周期;当执行下沿微分指令时,情况相反。R从ON变到OFF,操作数ON一个扫描周期。
有的PLC的微分指令不作为输出指令,而作为中间指令。它可加在一组输入指令之后,加上它,然后再送给输出指令,用起来也很方便。
图1-33 西门子PLC(#)等指令使用
8.其它位处理指令
如西门子PLC有(#)指令,执行它可把此时的RLO内容写入它的操作数中,并还可在它之后进行相应操作。图1-33示出了使用这指令后的操作数的逻辑值。
其它PLC厂商的这类指令与这里介绍的大同小异,就不多介绍了。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。