电子说
导读:
我们在项目中编程时,如果单纯的使用逻辑指令编写程序的话有时候难以达到我们的控制要求或者说编程效率比较低。这个时候可以使用功能指令来帮我们理清编程思路。那么接下来,我们一起以任务的形式编写一个项目,让大家掌握功能指令的使用。
一、任务目标
该任务是功能指令应用案例,使用功能指令有助于我们理清编程思路。特别是对一些步序的划分,数据的换算等都可以使用功能指令来帮助我们快速编写程序,本任务要求读者掌握以下几个内容。
1.掌握MOVE指令的使用
2.掌握比较指令的使用
3.掌握比较指令对步序类工艺设备的划分程序编写
二、任务描述
如图所示(3-1-1)为液体混合控制示意图。液体混合控制器上有三个电磁阀(YV1-YV3)和一个搅拌机(M)进行控制。详细控制要求如下所示:
(1)按下启动按钮后,打开阀门A注入A液体,达到低液位感应器后停止注入A液体,稳液位30S后打开阀门B注入B液体。
(2)当到达高液位后关闭阀门B,启动搅拌机自动对混合液体进行2分钟的搅拌,搅拌完成后让混合液体从出料口流出。
(3)等待1分钟后,混合液流尽,出料口关闭。
(4)按下停止按钮后,防止液体凝固,必须完成一个周期后才进行停止。
图3-1-1 液体混合控制
三、相关知识
本案例需要使用的功能指令有MOVE指令和比较指令。案例中其他指令在相关章节中有介绍,在此不再赘述。此处为读者介绍MOVE指令和比较指令相关知识。
1.移动指令 (MOVE)
MOVE 指令用于将单个数据元素从参数 IN 指定的源地址复制到参数 OUT 指定的目标地址,相关参数如下表:
LAD | 参数 | 数据类型 | 说明 |
EN | BOOL | 允许输入 | |
ENO | BOOL | 允许输出 | |
OUT1 | SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte, Word, DWord, Char, WChar, Array, Struct, DTL, Time, Date, TOD, IEC 数据类型,PLC 数据类型 | 目的地地址 | |
IN | 源数据 |
每点击“MOVE”指令中的一次,就增加一个输出端。
用一个例子来说明移动指令 (MOVE)的使用,梯形图如图3-1-2所示
图3-1-2
当I0.0触点闭合,将“3”这个数值传送到目的地地址MW0地址中,结果MW0中的地址值为3,即使I0.0触点断开,MW0地址中的数值也不会改变,直到再次为MW0地址赋值才会有变化。
2.比较指令
比较指令有等于(CMP==)、不等于(CMP<>)、大于(CMP>)、小于(CMP<)、大于或等于(CMP>=)和小于或等于(CMP<=)。比较指令对输入操作数1和输入操作数2进行比较,如果比较结果为真,则逻辑运算结果RLO为“1”,反之则为“0”。“等于”比较指令如下表所示:
LAD | 参数 | 数据类型 | 说明 |
操作数1 | Byte, Word, DWord, SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, String, WString, Char, Char, Time, Date, TOD, DTL, 常数 | 比较的第一个数值 | |
操作数2 | 比较的第二个数值 |
从指令框的“??>”下拉列表中选择该指令的数据类型。
用一个例子来说明“等于”比较指令,其他类型的比较指令请读者自行分析。梯形图如图3-1-3所示。
当MW0地址中的数值等于3时,操作数1和操作数2的数值相等,故Q0.0输出为“1”,反之则为“0”。
图3-1-3
四、任务实施
本任务的实施步骤主要分为PLC接线、IO地址分配以及程序设计思路,PLC接线图在此不描述,值得注意的是急停按钮,外部接是常闭点:
1.IO地址分配
输入地址 | 说明 | 输出地址 | 说明 |
I0.0 | 启动设备 | Q0.0 | 阀门A控制 |
I0.1 | 高液位传感器 | Q0.1 | 阀门B控制 |
I0.2 | 低液位传感器 | Q0.2 | 出料阀控制 |
I0.3 | 停止设备 | ||
I0.4 | 急停 |
2. 程序设计思路:程序中步序的划分
本任务的实施主要使用比较指令划分步序,可以按照以下方法划分相关步序:
寄存器地址 | 步序值 | 说明 |
MB1 | 0 | 设备停止步序 |
1 | 阀门A控制步序 | |
2 | 阀门B控制步序 | |
3 | 搅拌机控制步序 | |
4 | 出料阀控制步序 | |
5 | 循环/停止控制步序 |
3.程序设计
五、结语
1.在这个案例中主要使用的是移动指令去改变步序:执行完一步之后,改变MB1寄存器中的值。
2.使用比较指令判断应该执行哪一个步序,其中相对难理解的是第5步,因为在第5步的时候需要判断是否按下了停止按钮,当按下了停止按钮之后把“0”给到MB1寄存器,需要再次按下启动才能动作。当没有按钮停止按钮,则自动循环。
全部0条评论
快来发表一下你的评论吧 !