一、任务目标
本任务为功能指令应用案例,重点运用移位指令与递增指令,适用于产品检测类项目,可提升编程效率。读者需掌握以下内容:
- 移位指令的使用方法
- 不良品检测程序的编写逻辑
二、任务描述
如图3-3-1所示,传送带设有“0”至“5”共6个工位,不良品检测控制要求如下:
- 机械手将产品置于第“0”工位,通过光电开关或视觉系统进行检测。
- 每放入一个产品,传送带前进一个工位。
- 每移动一个工位,凸轮旋转一圈,由I1.1传感器产生一个脉冲信号。
- 若检测为不良品,当其到达第“4”工位时,气缸动作将其推出。
- 不良品落入箱体后,I1.2传感器检测到信号,气缸自动缩回。
- 按下复位按钮(I1.3),系统整体复位。

三、相关知识
本案例主要涉及递增指令与移位指令。递增指令已在前节介绍,此处重点讲解移位指令。
1. 左移位指令(SHL)
当使能端EN为“1”时,执行左移操作:将输入IN的数据向左移动N位,结果存入OUT指定地址。参数说明如下:
LAD |
参数 |
数据类型 |
说明 |
EN |
BOOL |
允许输入 |
|
ENO |
BOOL |
允许输出 |
|
IN |
整数 |
待移位数值 |
|
N |
USInt, UDint |
移动位数 |
|
OUT |
整数 |
移位结果 |
可通过指令框下拉菜单选择数据类型。
示例梯形图见图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 |
不良品检测信号 |
Q1.0 |
推出气缸 |
I1.1 |
凸轮检测传感器 |
||
I1.2 |
废品检测传感器 |
||
I1.3 |
复位按钮 |
2. 程序设计思路
- 使用递增指令统计不良品数量,每识别一次不良品,计数值加1。
- 通过凸轮传感器信号判断工位位置,结合移位指令实现不良品剔除控制。
3. 程序设计

五、经验与总结
本任务采用移位指令在指定工位剔除不良品。该方法优势在于:面对多个连续不良品时,无需增加复杂逻辑,仍可准确执行剔除动作,显著提升程序简洁性与可靠性。

