西门子PLC编程学习之比较指令(科普篇)
引言
比较指令 (CMP)前世今生:在微型计算机的汇编语言中,CMP(compare)是其中一条指令,叫做比较指令。cmp的功能相当于减法指令,只是对操作数之间运算比较,不保存结果。cmp指令执行后,将对标志寄存器产生影响。其他相关指令通过识别这些被影响的标志寄存器位来得知比较结果。
一、基本概念
比较指令: 用于比较数据的大小,按照所比较的数据类型不同可分为整数比较、双精度整数比较、实数比较三种类型,将IN1和IN2的数据进行比较,比较时必须保证两个数的数据类型相同,数据类型可以是整数、长整数和实数。
比较比较指令的主要类型:
〈1〉字节比较(B);(无符号整数)
〈2〉整数比较(I);(有符号整数)
〈3〉双字整数比较(D);(有符号整数)
〈4〉实数比较(R)。(有符号双字浮点数 )
二、指令格式
2.1 CMP ==: 等于 & CMP <>: 不等于
“等于”指令判断第一个比较值(<操作数 1>)是否等于第二个比较值(<操作数 2>)。
如果满足比较条件,则该指令返回逻辑运算结果 (RLO)“1”。 如果不满足比较条件,则该指令返回 RLO“0”。 该指令的 RLO 通过以下方式与整个程序段中的 RLO 进行逻辑运算:
串联比较指令时,将进行“与”运算。并联比较指令时,将进行“或”运算。2.2CMP >=: 大于或等于 &CMP <=: 小于或等于
“小于或等于” 指令判断第一个比较值(<操作数 1>)是否小于或等于第二个比较值(<操作数 2>)。 要比较的两个值必须为相同的数据类型。
“大于或等于” 指令判断第一个比较值(<操作数 1>)是否大于或等于第二个比较值(<操作数 2>)。 要比较的两个值必须为相同的数据类型。
如果满足比较条件,则该指令返回逻辑运算结果 (RLO)“1”。 如果不满足比较条件,则该指令返回 RLO“0”。 该指令的 RLO 通过以下方式与整个程序段中的 RLO 进行逻辑运算:
串联比较指令时,将进行“与”运算。并联比较指令时,将进行“或”运算。2.3 CMP >: 大于 & CMP <: 小于
“小于” 指令判断第一个比较值(<操作数 1>)是否小于第二个比较值(<操作数 2>)。要比较的两个值必须为相同的数据类型。
“大于” 指令确定第一个比较值(<操作数 1>)是否大于第二个比较值(<操作数 2>)。要比较的两个值必须为相同的数据类型。
如果满足比较条件,则该指令返回逻辑运算结果 (RLO)“1”。如果不满足比较条件,则该指令返回 RLO“0”。该指令的 RLO 通过以下方式与整个程序段中的 RLO 进行逻辑运算:
串联比较指令时,将进行“与”运算。并联比较指令时,将进行“或”运算。2.4 IN_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 的值满足 MIN > VAL 或 VAL > MAX 的比较条件,则功能框输出的信号状态为“1”。 如果指定的 REAL 数据类型的操作数具有无效值,则功能框输出的信号状态也为“1”。
三、编程案例应用
3.1 CMP ==: 等于 & CMP <>: 不等于 案例
3.2 CMP >=: 大于或等于 &CMP <=: 小于或等于
3.3 IN_RANGE: 值在范围内 & OUT_RANGE: 值超出范围
视频加载中...
四、总结
比较指令是常用的基本指令之一,广泛应用于PLC工艺编程时候逻辑判断和条件分析当中,比较指令通常和传送指令以及赋值指令相结合使用实现复杂工艺控制。
注意事项:
1.比较浮点数
如果要比较数据类型 REAL 或 LREAL,使用指令“IN_RANGE: 范围内的值”,而不是指令“CMP ==: 等于”。
声明: 本作品纯属个人娱乐学习交流,严禁使用其作为商业用途,图片均来至于西门子仿真软件及选型手册、网络,如有版权纠纷请及时告知,谢谢!
西门子S7-1200编程实例,比较指令如何使用?
西门子S7-1200中的比较指令包括了值大小比较指令、是否在范围内指令以及有效性无效性检查指令。使用值大小比较指令,可以比较两个数据类型相同的数值的大小。
西门子S7-1200中的值大小比较指令按照比较类型的不同可以分为六种类型:等于、不等于、大于等于、小于等于、大于、小于。
使用S7-1200的比较指令时,可以从比较指令的下拉菜单中选择数据类型,支持的数据类型包括整数、双整数、实数、无符号短整数、无符号整数、无符号长整数、短整数、字符串、字符、时间、DTL和长实数等。
比较指令在程序中只是作为条件来使用,用来比较两个数值IN1与IN2的大小,当IN1和IN2满足关系时能流通过。
在范围内指令确定输入值是否在参数MIN和MAX指定的取值范围内,若输入值在指定范围内,则输出状态为1。在范围外指令确定输入值是否在参数MIN和MAX指定的取值范围外,若输入值大于等于MAX或输入值小于等于MIN时,则输出状态为1。
下面我们通过一个实例来说明比较指令如何使用。当整数MW10大于等于128且在MW20和MW22所存储的数值范围之间时,输出Q0.0接通。
一、编写程序。在项目视图中打开OB1,拖拽比较指令大于等于到程序段1中,双击比较指令的问号选择整数类型,输入第一个操作数地址MW10,输入第二个操作数地址128,拖拽在范围内指令到程序段1中,单击问号处选择整数类型,输入参数最小值MW20,输入值MW10,输入参数最大值MW22,在范围内指令后面插入输出线圈,输入地址Q0.0,这样一个简单的比较指令的应用实例就完成了。
二、下载程序到PLC。单击保存项目按钮保存项目,单击下载按钮将所有块下载到PLC。
三、查看程序运行情况。单击“转到在线”,单击监视按钮观察程序的运行情况,可以看到MW10的值默认为0,小于128,Q0.0不亮。在项目树中单击打开监视表格文件夹,双击添加新监视表格,可以看到项目树中添加了监视表格1,同时在工作区打开了监视表格编辑器。输入地址MW10、MW20、MW22和Q0.0,单击监视按钮,修改MW10的值为150,此时不在MW20和MW22的取值范围内,Q0.0仍然不亮。修改MW20和MW22分别为100和200,则可以看到Q0.0亮。
相关问答
FX2N系列PLC中比较两个数值的大小用什么指令?
比较指令有三种分别是触点比较、比较指令CMP、区间比较指令ZCP触点比较:当D0的数值大于D1时就接通,Y0就输出,当然触点比较有很多中,有等于(=)大于(>)...触点比...
plc大小怎么判断?
1、小型PLC输入、输出点数在128点以下,用户存储器容量在2KB以下。小型PLC适用于开关量控制场合,具有逻辑运算、计算、计时等功能,可以实现条件控制、定时、计...
plc大于或小于符号怎么输入?
1.按下F8即应用指令2.然后写入><或=号或者大于小于加等于号的组合都可以3.再按下空格一次4.输入要比较第一个数值或地址5.空格一次6.输入第二个...
三菱PLC比较指令?
三菱PLC的比较指令用于比较两个数据的大小。比较指令是PLC中常用的一种指令,用于比较两个数据的大小,并根据比较结果执行相应的逻辑操作。三菱PLC的比较指令包...
三菱plc中比较指令的具体用法?
比较指令是用在常开触点的指令,有LD>;LD<;LD>=;LD<=;LD==;LD<>(不等于);有这6条指令,OR和AND也同样有这6条指令,共18条比较指令,...
plc中如何判断非0数的大小?
在PLC中,可以使用数值比较指令来判断非零数的大小。具体步骤如下:1.获取非零数的值,可以通过读取传感器或其他设备的输入信号来获取。2.使用数值比较指令,...
plc比较指令怎么接线?
比较指令用于判断选择相当于if语句,在三菱PLC中,比较指令有=、>、<、<>、<=、>=,用于数据的比较。比较指令不接线,相当于输入的判断,根据判断来选择相应的输...
三菱plc数值d0从外部读到,如何判断数值是在减少还是增加?
三菱plc数值d0从外部读到,如何判断数值是在减少还是增加,从我们的角度去判断一个数值是增加还是减少很简单,只需要与它前一个数值进行比较即可,那么我们也可...
小型PLC的扫描速度是多少啊?
plc一个扫描周期一般小于200毫秒。其中的具体情况如下:据了解,扫描周期(处理器扫描周期)应满足小型可编程逻辑控制器的扫描时间不大于0.5ms/K。另外还有,大...
plc中时间小于10的计时器用什么表示?
K代表常数,K100表示计时10秒,10秒后计时器就接通了。计时器工作原理:电火花打点计时器是利用火花放电使墨粉在纸带上打出墨点而显出点迹的一种计时仪器。给...