西门子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 ==: 等于”。
声明: 本作品纯属个人娱乐学习交流,严禁使用其作为商业用途,图片均来至于西门子仿真软件及选型手册、网络,如有版权纠纷请及时告知,谢谢!
通过实例玩转三菱PLC之多种工作方式的编程方法
看看较复杂的控制程序如何编程
1、控制要求
在前面文章我们做的用西门子来编写机械手程序,在西门子我们用两种方法来实现梯形图和GRAPH编程。今天来看看三菱PLC怎么编程。
简单回顾下功能说明:
如上图,机械手用来将工件从A运到B,操作面板如右图所示,Y4控制加紧电磁阀,为1时加紧工件,工作方式选择开关有5个位置,操作面板的6按钮是手动按钮,为保证在紧急情况下能可靠的切断PLC的负载电源,设置了交流接触器KM(如下图所示),运行时按下负载电源按钮,使KM线圈得电并自锁,KM的主触点接通,给外部负载提供电源,当紧急情况时,按下紧急停车按钮来断开电源。
工作方式有手动、单周期、单步、连续和回原点5中方式,
2、使用置位复位指令的编程方法
程序如下:
主程序 :
调用子程序
公用程序:
处理各种方式的都要执行的工作,以及不同的工作方式之间的相互切换处理。
左限位X1、上限位X3、夹紧阀打开Y4的常闭点构成原点条件M5。
若M5为0,将初始步M0复位,不能走自动程序。
当工作方式由自动改成手动或回原点,要用区间复位指令ZRST将除了初始步M0的所有步复位,即M20~M27.
在退出原点程序,将自动回原点的自动步复位M10~M15.
在非连续工作方式,将连续标志M7复位。
手动程序:不多说了按操作来执行
自动程序:
重点:这里连续、单周期和单步这3种工作方式采用连续M7和转换允许M6来区分的。
(1)单周期和连续的区分:在连续和单周期工作方式下,当X12的常闭触点接通,并转换允许M6闭合,则允许步与步之间正常转换。
在执行到M27时,若连续标志M7为on,则跳转回M20自动反复进行工作,若连续标志M7为0FF,则跳转M0.
(2)单步工作方式:当单步选择X12为ON,在第86步电路,转换允许M6在一般情况下为OFF,只在按下启动的第一个扫描周期M6为ON,执行到第89步,M20被置位为活动步,使M20带的Y1得电。
只有当再次按启动按钮后才能执行下一步。
回原点程序
重点是分了三种情况:
(1)夹紧装置松开:直接执行上升自动步,之后左行到左极限位。
(2)夹紧装置夹紧状态,并且机械手在右极限:执行B点下降-松开-上升-左行到左极限
(3)夹紧装置夹紧状态,并且不在右极限:先执行上升-右行-下降-松开-上升-左行到左极限。
到此一个多种控制方式的较复杂控制程序就编写完成了,大家是不是对使用置位复位指令来做顺序控制电路是不是有了一些掌握呢。
喜欢本文的朋友别忘记关注,点赞、评论和转发。
相关问答
【PLC中直接寻址举例,比如,MOVDVD100,16#1000结果是怎样...
[最佳回答]你应该是用的西门子的PLC吧,就直接拿一个应用的例子来解释吧。例如,直接寻址是你直接对一个区间的变量赋值或者搬移,例如MOV500,VB100;间接寻址是...
如何实现人机plc控制变频器的频率?
变频器是现在常用的电机控制设备,很多的大型工厂,或者其他行业,都会采用变频器,那么什么是变频器呢,变频器又有什么作用于特点呢?变频器的定义与原理变频...4...
三菱区域置位指令?
你好,三菱区域置位指令是一种PLC指令,用于将指定的区域(例如D寄存器或M寄存器)的某个位设置为1(置位)。其语法通常为:SET指令(区域地址,位地址)。例如...你好...
intouch如果把模拟量数据做判断?
如果要对模拟量数据进行判断,可以采用以下方法:1.阈值判断:设定一个阈值,根据模拟量数据的取值与阈值的关系进行判断。如果数据大于等于阈值则满足条件,否...
问下大侠。PLC写程序的时候有这样一个指令。{MOVK2K2Y0Z0}请问后面的Z0是什么意思?
000movd0z0d2...Z0=1,Y0Z0=Y1,此时Y1点的动状态要看有没有驱动。Z0为寄存器,不存在点不点亮。当输入MOVK1Z0时,即可让Z0等于1,当Z0=2时,Y0Z0=Y2程序:l...
那位有FANUC系统的说明书0系统0IO-M0IMATE系统报警参数说...
三菱PLC-FX系列常用编程指令一程序流程—功能00~0900CJ条件转移01CALL调用子程序02SRET从子程序返回03IRET中断返回04EI开中断05...
plc电柜零线能接在壳体上吗?十万火急!
[回答]plc电柜主开关是起到维修时有个明显短路点的作用,是不带负荷通断的,可按略大于总负荷电流的1.1倍选取。环控plc电柜主要是给地铁车站和区间的通风...
eeprom坏了怎么修复?
EEPROM是电可擦可编程只读存储器的意思,eeprom故障可能是输入输出存储器错误,也可能是输入输出存储器芯片断路、短路或者内部击穿。按照相关协议来看,EEPROM错...
求了解:莞城欧姆龙PLC厂家,欧姆龙PLC保修吗??
[回答]钱了,但是各地有各地的特色,产品也有产品的优缺点,一定要谨...我肯定是帮道和安工控设备公司说好话的,毕竟我和他们合作赚到钱了,但是各地有各地的...
西南交通大学信息科学与技术学院怎么样?设有哪些专业?申请方
[回答]~接下来我为大家简单介绍一下我们西南交通大学的信息科学与技术学院开设的专业以及研究情况专业设置:物联网工程-本科、软件工程-本科、电子科学与...