引言
比较指令(CMP)前世今生:在微型计算机的汇编语言中,CMP(compare)是其中一条指令,叫做比较指令。cmp的功能相当于减法指令,只是对操作数之间运算比较,不保存结果。cmp指令执行后,将对标志寄存器产生影响。其他相关指令通过识别这些被影响的标志寄存器位来得知比较结果。

比较指令:用于比较数据的大小,按照所比较的数据类型不同可分为整数比较、双精度整数比较、实数比较三种类型,将IN1和IN2的数据进行比较,比较时必须保证两个数的数据类型相同,数据类型可以是整数、长整数和实数。

比较比较指令的主要类型:
〈1〉字节比较(B);(无符号整数)
〈2〉整数比较(I);(有符号整数)
〈3〉双字整数比较(D);(有符号整数)
〈4〉实数比较(R)。(有符号双字浮点数)

2.1CMP==:等于CMP:不等于
“等于”指令判断第一个比较值(操作数1)是否等于第二个比较值(操作数2)。
如果满足比较条件,则该指令返回逻辑运算结果(RLO)“1”。如果不满足比较条件,则该指令返回RLO“0”。该指令的RLO通过以下方式与整个程序段中的RLO进行逻辑运算:
串联比较指令时,将进行“与”运算。
并联比较指令时,将进行“或”运算。

2.2CMP=:大于或等于CMP=:小于或等于
“小于或等于”指令判断第一个比较值(操作数1)是否小于或等于第二个比较值(操作数2)。要比较的两个值必须为相同的数据类型。
“大于或等于”指令判断第一个比较值(操作数1)是否大于或等于第二个比较值(操作数2)。要比较的两个值必须为相同的数据类型。
如果满足比较条件,则该指令返回逻辑运算结果(RLO)“1”。如果不满足比较条件,则该指令返回RLO“0”。该指令的RLO通过以下方式与整个程序段中的RLO进行逻辑运算:
串联比较指令时,将进行“与”运算。
并联比较指令时,将进行“或”运算。
2.3CMP:大于CMP:小于
“小于”指令判断第一个比较值(操作数1)是否小于第二个比较值(操作数2)。要比较的两个值必须为相同的数据类型。
“大于”指令确定第一个比较值(操作数1)是否大于第二个比较值(操作数2)。要比较的两个值必须为相同的数据类型。
如果满足比较条件,则该指令返回逻辑运算结果(RLO)“1”。如果不满足比较条件,则该指令返回RLO“0”。该指令的RLO通过以下方式与整个程序段中的RLO进行逻辑运算:
串联比较指令时,将进行“与”运算。
并联比较指令时,将进行“或”运算。

2.4IN_RANGE:值在范围内OUT_RANGE:值超出范围
IN_RANGE指令:使用输入MIN和MAX可以指定取值范围的限值。“值在范围内”指令将输入VAL的值与输入MIN和MAX的值进行比较,并将结果发送到功能框输出中。如果输入VAL的值满足MIN=VAL或VAL=MAX的比较条件,则功能框输出的信号状态为“1”。如果不满足比较条件,则功能框输出的信号状态为“0”。
OUT_RANGE指令:使用输入MIN和MAX可以指定取值范围的限值。“值超出范围”指令将输入VAL的值与输入MIN和MAX的值进行比较,并将结果发送到功能框输出中。如果输入VAL的值满足MINVAL或VALMAX的比较条件,则功能框输出的信号状态为“1”。如果指定的REAL数据类型的操作数具有无效值,则功能框输出的信号状态也为“1”。

3.1CMP==:等于CMP:不等于案例


3.2CMP=:大于或等于CMP=:小于或等于

3.3IN_RANGE:值在范围内OUT_RANGE:值超出范围
四、总结比较指令是常用的基本指令之一,广泛应用于PLC工艺编程时候逻辑判断和条件分析当中,比较指令通常和传送指令以及赋值指令相结合使用实现复杂工艺控制。
注意事项:
1.比较浮点数
如果要比较数据类型REAL或LREAL,使用指令“IN_RANGE:范围内的值”,而不是指令“CMP==:等于”。
声明:本作品纯属个人娱乐学习交流,严禁使用其作为商业用途,图片均来至于西门子仿真软件及选型手册、网络,如有版权纠纷请及时告知,谢谢!





