1.指令功用
比较两个值的大小,将其结果(大、一致、小)输出给位软元件中(共3点)。
2.表现形式
如图8-77所示的程序中的第一行为CMP指令的表现形式,其作用是将源[S1·]和[S2·]中的数据进行比较,结果送到目标[D·]中。指令中源数据按代数式进行比较(如-10<2),且所有源数据均按二进制数值处理。
图8-77中M10、M11、M12根据比较的结果动作,且M10、M11、M12动作是唯一的。当M10、M11、M12当中任一个接通时,指令执行输入条件X0断开时,比较结果会保持。
当不需要比较结果时可用RST或ZRST指令进行复位,如图8-78所示。
图8-77 比较指令示例
图8-78 比较复位示例
3.指令使用说明
1)指令执行数据的长度可以是16位,也可是32位。
2)指令执行有连续和脉冲两种形式。
3)有关指令中操作数使用说明如下:
①源[S1·]和[S2·]是作为比较值的数据或软元件的编号,可用的操作数为:KnM、KnS、KnX、KnY、T、C、D、V、Z、K、H、E(实数)。
②目标[D·]是输出比较结果的起始位软元件编号,可用的操作数是Y、M、S。(www.xing528.com)
③一条CMP指令用到3个操作数,如果只指定了1或2个操作数,就会出错(出错码6503),妨碍PLC运行。
④操作数的软元件超出范围时程序就会出错(出错码:6705)。例如X、D、T或C被指定作目标时就会出错。
⑤如果被指定为操作数(元件)的元件号超出允许范围时出错(出错码:6706)。用变址修改参数时可能会出现这种情况。
4.应用示例
【例8-11】密码锁控制
用比较器构成密码锁系统。密码锁有12个按钮,分别接入X000~X013,其中X000~X003代表第一个十六进制数;X004~X007代表第二个十六进制数;X010~X013代表第三个十六进制数。根据设计,每次同时按四个键,分别代表三个十六进制数,共按4次,如与密码锁设定值都相符合,3s后,密码锁可以开启。且10s后,重新锁定。
密码锁的密码由程序设定。假定为H2A4、H01E、H151、H18A,从K3X000上送入的数据应分别和它们相等,就可以用比较指令实现判断,梯形图如图8-79所示。
图8-79 密码锁的梯形图及说明
【例8-12】外置数计数器
可编程序控制器中有许多计数器。但是PIC内计数器的设定值是由程序设定的,在一些工业控制场合,希望计数器能在程序外由普通操作人员根据工艺要求临时设定,这就需要一种外置数计数器,图8-80就是这样一种计数器的梯形图程序。
在图中,二位拨码开关接于X000~X007,通过它可以自由设定数值在0~99的整数计数值;X010为计数器件;X011为起停开关。
图8-80 外置数计数器的梯形图及说明
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。