课程中心
HOME
课程中心
正文内容
plc编程中比较 2分钟学会PLC比较指令的应用
发布时间 : 2025-05-11
作者 : 小编
访问数量 : 23
扫码分享至微信

2分钟学会PLC比较指令的应用

现今物流行业迅猛发展,快递公司和邮局每天会汇集来自全国各地数以亿计的邮件,这些邮件经过识别后会以不同的地域进行分类,再散发到目的地。

邮件的自动分拣一直是决定物流速度的核心技术问题,如何自动识别邮件的编码并自动进行分拣呢?本文通过学习S7-1200的比较指令、拨码卡关的结构来完成一个PLC控制的自动邮件分拣系统。

认识PLC的比较指令

比较指令共分为两大类,包括比较数值大小的指令和比较数值范围的指令。

1 、比较数值大小的指令

比较数值大小指令有等于、不等于、大于或等于、小于或等于、大于、小于这六种判断条件。这类指令均有两个操作数IN1与IN2,可以是位字符串、整数、浮点数、字符串、TIME、DATE、TOD、DTL。以下分别是6中比较指令的应用举例。

如上图所示,指令符号的上下各有一个占位符,分别用来填写操作数1和操作数2,操作数可以是地址或常数,且必须是相同的数据类型。当操作数1与操作数2进行比较,满足比较条件时,输出端为1,反之输出端为0。例如图 中,地址MB20与MB30中的数值如果相等,则输出线圈Q0.0得电。

多个比较指令还可以进行串联和并联,串联比较指令时执行“与”运算,并联

比较指令时执行“或”运算。

2、 比较数值范围的指令

比较数值范围的指令有“值在范围内”和“值超出范围”两种判断条件。

(1) 值在范围内(IN_RANGE)指令

表示符号如下,用来比较输入参数是否在设定的数值范围之内,如果输入参数在设定参数范围内则使能端有能流输出。如气动设备的压力在允许范围内时,绿色指示灯亮,表示设备处于正常工作状态。

在该指令名称下面,单击???会显示数据类型下拉列表,该指令支持的数据类型为整数和浮点数。

VAL、MIN、MAX这三个端口输入的值既可以是地址也可以是常数,需要注意的是在进行比较操作时,MIN、MAX和VAL的值必须与设置的数据类型相匹配,否则在输入指令时会报错。

IN_RANGE指令工作原理:将输入 VAL 的值与输入 MIN 和 MAX 的值进行比较,并将结果发送到功能框输出中。 如果输入 VAL 的值满足 MIN <= VAL 且 VAL <= MAX 的比较条件,则功能框输出的信号状态为“1”。 如果不满足比较条件,则功能框输出的信号状态为“0”。

(2) 值超出范围(OUT_RANGE)指令

表示符号如下,该指令的各端口及所支持的数据类型与IN_RANGE指令相同,用来比较设定的参数是否在设定范围内,如超出范围使能端有能流输出。例如将温度传感器采集的当前温度值存入地址MD40中,如果当前温度值超出了安全的温度范围,报警指示灯亮。

3、 检查有效性的指令

(1)比较是否为实数

指令符号为—|OK|—,可以检查操作数的值是否为有效的浮点数,该操作数必须是一个地址。因为—|OK|—检查有效性只针对实数类型(Real),所以程序上方操作数用长度为32位的地址,如MD40。

如下图程序所示,检查地址MD40中的数值是否为实数,如果操作数的值是有效浮点数且指令的信号状态为“1”,则该指令输出的信号状态为“1”。 在其它任何情况下,“检查有效性”指令输出的信号状态都为“0”。

(2)比较是否为非实数

指令符号为—|NOT OK|—,可使用该指令检查操作数的值是否为无效的浮点数。该指令符号如下:

可以同时使用“检查有效性”指令和 EN 机制。 如果将该指令功能框连接到 EN 使能输入,则仅在值的有效性查询结果为正数时才置位使能输入。 使用该功能,可确保仅在指定操作数的值为有效浮点数时才启用该指令。

话说PLC程序的比较

程序比较是编程软件一个很重要的功能,当我们不知道哪个备份是最新的时候、当我们的程序修改发生问题,需要判断是哪部分修改造成的时候,都需要进行代码对比。对于PLC来说,有在线和离线两种程序,对应的程序比较也有两种:离线-在线、离线-离线。不同的厂家和编程软件提供的比较功能也是不同的,下面就我熟悉的几个产品进行一下简单对比:

一、西门子STEP7

STEP7可以进行在线-离线,离线-离线对比,当代码不同时,可以打开代码进行逐行比较,能快速跳转到不同的地方。

离线对比时,可以进行不同项目的对比,也可以进行本项目内不同程序目录、设备的对比。

二、西门子TIA博图

TIA博图软件功能非常强大,其比较功能也很强大和漂亮。

在线后,马上就能看出哪些程序块不一致。然后对于不一致的程序块点击右键,选择快速比较->与在线对象进行比较,就可以马上进行对比,不一致的程序段会醒目标识,非常方便。

如需进行离线-离线比较,在打开主项目后,再打开参考项目,选择对应的欲比较的块,也可以完成比较(首先选择在左侧窗口的块,然后再到另外一个项目里选择欲对比的块即可)。

三、罗克韦尔(AB)的RSLogix

最近处理一起AB PLC5软件故障时,需要知道离线和在线程序的异同,对于20年前的RSLogix5 Pro软件是否有对比功能,很担心,翻了一下菜单,竟然找到了,操作非常简单,结果界面非常漂亮、清晰。同样,可以快速定位到不同点。

遗憾的是,PLC5只能进行离线-离线比较,如果需要在线-离线比较,需要先上传程序,离线保存,再进行比较。

对于RSLogix5000,默认是不带比较功能的(这有点奇葩),需要自己安装RSLogix 5000 Compare Tool(可以集成在RSLogix5000内),也只能进行离线-离线比较(咋几十年没有啥大变化呢?)。

四、ABB的APB软件

ABB的APB编程软件是AC450、AC110、AC80等进行编程的工具。对于小控制器,如果在线与离线不一致,根本就不允许在线,因此,不存在在线-离线比较的可能。对于AC450这种大型控制器,在线与离线是分离的,同样没有在线-离线比较的功能。

同时,APB也不提供离线-离线比较的功能。如果需要进行比较,怎么办?将离线程序转成源文件(source),在线程序进行源程序上载,再转变成源文件,用第三方的比较软件进行文本比较即可(比如ultraCompare)。

曾经发生过最新源程序丢失的事故,我上载后,与老版本进行对比,修改,才逐步恢复了完整的源程序。

小结

当我们拿到一个程序,不知道是否最新版本时,对于西门子软件,可以进行在线,然后自动或者手动对比即可。对于罗克韦尔,如果与在线不一致,则会直接告知用户,并且不允许在线。对于AC450,在线时,也会自动进行用户存储信息(包括注释等)的比对,但是不能说明程序是否一致,要小心对待。总之,程序比较是一个比较重要的功能,可以为工作带来比较大的便利。

2019年12月10日

说明:

1、本文是实践经验,非严格论文,与相关产品和理论可能不完全相符。

2、原创不易,欢迎转发,让更多朋友看到(引用请注明出处!)

相关问答

西门子PLC比较指令?

比较指令就是比较两个数的大小啊,可以是两个整数,实数,双整,比较成立就输出高电平,不成立就是低电平,比如整数大于等于比较指令CMP_I如果IN1的值大于或等...

PLC用哪种编程语言比较好?

PLC(可编程逻辑控制器)可以使用多种编程语言进行编程,包括LadderDiagram(梯形图)、StructuredText(结构化文本)、FunctionBlockDiagram(功能块图...

三菱PLC比较指令?

三菱PLC的比较指令用于比较两个数据的大小。比较指令是PLC中常用的一种指令,用于比较两个数据的大小,并根据比较结果执行相应的逻辑操作。三菱PLC的比较指令包...

PLC三菱好还是西门子好?

plc是西门子的好,但是价格也贵.一般200的cpu用于小型的系统,而300,特别是400的cpu则用于大型的系统中.实际工作中,我个人感觉不计较价格的话.编程方面西门子的...

PLC编程语言有哪三个?

1、PLC有五种标准化编程语言顺序功能图(SFC)、梯形图(LD)、功能模块图(FBD)三种图形化语言和语句表(IL)、结构文本(ST)两种文本语言,最常用的两种编程...1、P...

plc有几种编程语言?

PLC(可编程逻辑控制器)有以下几种编程语言:1.LadderDiagram(梯形图):梯形图是PLC编程中最常用的一种编程语言,它模拟了电气控制电路的逻辑关系,具有易...P...

plc编程谁家的好用?

很高兴回答的问题!就市场占有率来看,西门子最大,其次是三菱、欧姆龙。具体谁家好用,这个不能一概而论,还取决于编程人员对其使用的熟练程度。西门子PLC又...西...

plc程序种类?

1、梯形图语言(LD)梯形图语言是PLC程序设计中最常用的编程语言。它是与继电器线路类似的一种编程语言2、指令表语言(IL)指令表编程语言是与汇编语言类似的一...

plc和python哪个好?

首先人的精力都是有限的,除非你天资聪颖的人中龙凤,第二,PLC和Python学好哪个都可以,首先你要知道学习了这两个技术能够干什么。然后你要选择有一个主要学习...

plc比较器的基本用法?

plc比较数值大小的指令在plc中用于比较数值大小指令,主要有等于、不等于、大于或等于、小于或等于、大于、小于等六种,这类指令均有两个操作数IN1与IN2,可以...

 芸学教育  ocm认证 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部