2.2.4 比较指令
1.比较指令CMP和区间比较指令ZCP
比较指令CMP和区间比较指令ZCP的格式为[CMP S1.S2.S. D.]和[ZCP S1.S2.S. D.],其含义见表2-5。
以[CMP K45 D0 M0]为例,当K45>D0时,M0接通;当K45=D0时,M1接通;当K45<D0时,M2接通。这里面的M1、M2虽然没有在指令中写出来,但确实是指令执行的结果,分别是M0后面的两个位。
表2-5 CMP和ZCP指令含义
【例2-3】CMP指令控制交通灯
任务要求:与例2-1类似,某交通灯控制要绿灯亮25s、黄灯亮3s、红灯亮20s,请用CMP指令进行编程。
实施步骤:
步骤1:参考例2-1进行交通灯软元件分配(见表2-6)。
表2-6 CMP指令控制交通灯软元件分配
步骤2:梯形图编程,如图2-46所示,其中CMP指令用了2次,分别是定时小于25s的状态、定时小于28s的状态,并将比较后的中间变量M10、M11、M12、M20、M21、M22用于控制交通灯。
步骤3:触摸屏画面组态并仿真。图2-47所示为CMP指令控制交通灯仿真,此时刚好处于T0=283×100ms=28.3s,红灯亮。
2.用符号进行比较
该比较指令与平常的数学运算符号一致,即“>”“>=”“=”“<”“<=”等,其格式如[LD>=D0 K10]表示当D0>=K10时,该指令状态为ON,其余为OFF。需要注意的是,符号前的LD、AND、OR与该符号在梯形图的位置有关。
图2-46 CMP指令的程序举例
图2-47 CMP指令控制交通灯仿真
【例2-4】用符号比较来实现交通灯控制
任务要求:某交通灯控制要求,绿灯亮14s后闪3s灭;黄灯闪3s灭;红灯亮12s后闪3s灭;接下来是下一个周期开始,绿灯亮……
实施步骤:
步骤1:I/O分配见表2-7。
表2-7 用符号比较来实现交通灯控制软元件分配
步骤2:编制程序如图2-48所示。定时器的值是整数,可以通过采用符号比较指令来实现交通灯的时序。
图2-48 交通灯控制梯形图
触摸屏画面与变量等均与例2-3相同,此处不再赘述。