![微课学三菱FX3U/Q系列PLC编程](https://wfqqreader-1252317822.image.myqcloud.com/cover/775/43806775/b_43806775.jpg)
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指令含义
![](https://epubservercos.yuewen.com/79F31A/23083819301905706/epubprivate/OEBPS/Images/84_01.jpg?sign=1738960925-MRPzMc7ZTDYeLJiugimBYHsCxqtnSU4J-0-9da991094423076a78d91c801d1625dd)
![](https://epubservercos.yuewen.com/79F31A/23083819301905706/epubprivate/OEBPS/Images/84_02.jpg?sign=1738960925-Nssq06AT5qKEPNeWAcPjn4VZPFMVuCBq-0-826eb0b77f2b30bd3b58cba19462d40a)
![](https://epubservercos.yuewen.com/79F31A/23083819301905706/epubprivate/OEBPS/Images/84_03.jpg?sign=1738960925-pyovecOKYwuL2mtLElFBV8gNWVQ7Fayz-0-82b63128d5b263eeba3eb653a353d36a)
【例2-3】CMP指令控制交通灯
任务要求:与例2-1类似,某交通灯控制要绿灯亮25s、黄灯亮3s、红灯亮20s,请用CMP指令进行编程。
实施步骤:
步骤1:参考例2-1进行交通灯软元件分配(见表2-6)。
表2-6 CMP指令控制交通灯软元件分配
![](https://epubservercos.yuewen.com/79F31A/23083819301905706/epubprivate/OEBPS/Images/84_04.jpg?sign=1738960925-YS9n8BOcJGbQZ1IFQGoDIeMmgYKnRcM2-0-3996e04ab4a95d8e4aeca92d45188243)
步骤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与该符号在梯形图的位置有关。
![](https://epubservercos.yuewen.com/79F31A/23083819301905706/epubprivate/OEBPS/Images/85_01.jpg?sign=1738960925-Cx5aZqgY5OEReoMtbAZ5tqSuYkjjCdtU-0-1d27bf70eafd3eac1c8795d0cfa86d05)
图2-46 CMP指令的程序举例
![](https://epubservercos.yuewen.com/79F31A/23083819301905706/epubprivate/OEBPS/Images/85_02.jpg?sign=1738960925-TWSRtyS9al0DN4FrJh7T9em09ik20y5f-0-d8c6be468e2c58bb52f2836225daebfc)
图2-47 CMP指令控制交通灯仿真
![](https://epubservercos.yuewen.com/79F31A/23083819301905706/epubprivate/OEBPS/Images/85_03.jpg?sign=1738960925-CdlIvOr4OqW8qxYDZobqTn8xZJK8JKiz-0-892914e067a428060a0ce0af7beab1dd)
![](https://epubservercos.yuewen.com/79F31A/23083819301905706/epubprivate/OEBPS/Images/85_04.jpg?sign=1738960925-3SK5nJTS4bfmQ5bUxWvnwl4EF4fEb37i-0-bf8e316215f061d4c137f504bb72220c)
【例2-4】用符号比较来实现交通灯控制
任务要求:某交通灯控制要求,绿灯亮14s后闪3s灭;黄灯闪3s灭;红灯亮12s后闪3s灭;接下来是下一个周期开始,绿灯亮……
实施步骤:
步骤1:I/O分配见表2-7。
表2-7 用符号比较来实现交通灯控制软元件分配
![](https://epubservercos.yuewen.com/79F31A/23083819301905706/epubprivate/OEBPS/Images/86_01.jpg?sign=1738960925-mul2OmEcG1EoBYNIoEMdPla9DkSLoKs2-0-a1421e145db284a07c617302b281d118)
步骤2:编制程序如图2-48所示。定时器的值是整数,可以通过采用符号比较指令来实现交通灯的时序。
![](https://epubservercos.yuewen.com/79F31A/23083819301905706/epubprivate/OEBPS/Images/86_02.jpg?sign=1738960925-pnuDFaiC6vHY7IxYgDuGX9JccF5L79jB-0-e3ee3081e2ad62b1662d5e288fbf8bde)
图2-48 交通灯控制梯形图
触摸屏画面与变量等均与例2-3相同,此处不再赘述。