基于S7-1200物料不良品检测案例
一、任务目标
该任务是功能指令应用案例,使用功能指令有助于我们理清编程思路。本任务使用了移位指令及递增指令,在实际应用中类似有产品检测这类项目,可以使用移位指令来提高编程效率。本任务要求读者掌握以下几个内容。
1.移位指令的使用
2.不良品检测程序的编写
二、任务描述
如图3-3-1所示在传送带上有“0”,“1”,“2”,“3”,“4”,“5”总共6个工位,不良品检测具体控制要求如下:
(1)机械手把产品放在第“0”个工位,通过光电开关(或视觉)检测。
(2)当机械手每放入一个产品,传送带移动一个工位 。
(3)当传送带每移动一个工位凸轮转一圈(I1.1检测到一个信号)。
(4)当检测到不良品时,到达第“4”个工位气缸推出。
(5)当不良品掉入箱体里,I1.2将检测到一个信号,从而气缸可以缩回。
(6)按下复位按钮(I1.3),整个系统重新复位。
图3-3-1 不良品检测示意图
三、相关知识
本案例需要使用的功能指令有递增指令和移位指令。
1.左移位指令 (SHL)
当左移指令(SHL)的EN位为高电平“1”时,将执行移位指令,将IN端指定的数据左移N端指定的位数,然后写入OUT端指令的目的地址中。相关参数如下表:
LAD |
参数 |
数据类型 |
说明 |
EN |
BOOL |
允许输入 |
|
ENO |
BOOL |
允许输出 |
|
IN |
整数 |
要递增的值 |
|
N |
USInt, UDint |
移动的位数 |
|
OUT |
整数 |
移动操作的结果 |
注意:可以从指令框“<???>”下拉列表中选择该指令的数据类型。
用一个例子来说明左移指令 (SHL)的使用,梯形图如图3-3-2所示
图3-3-2 移位指令
MW12存储器中移位前的数值:
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
MW12存储器中移位后的数值:
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
四、任务实施
本任务的实施步骤主要分为PLC接线、IO地址分配以及程序设计思路:
1.IO地址分配
输入地址 |
说明 |
输出地址 |
说明 |
I1.0(M0.0) |
不良品检测信号 |
Q0.0 |
推出气缸 |
I1.1(M0.2) |
凸轮检测传感器 |
||
I1.2(M0.4) |
废品检测传感器 |
||
I1.3(M0.6) |
复位按钮 |
2.程序设计思路
1).使用递增指令统计不良品的个数,每来一个不良品数值加1。
2).通过凸轮检测传感器判断不良品到达哪个工位上,然后配合移位指令剔除不良品。
3.程序设计
为了在触摸屏上显示操作 把I点写位M点
五、经验与总结
1.在本任务中,主要使用的是移位指令在固定的工位剔除不良品。使用移位指令的好处就是当有多个不良品出现时,仍然可以达到控制要求,不需要增加复杂的逻辑程序段。