传送带基础控制
1. 设备简介
传送带是离散制造业的"血管", 从单段 0.75 kW 小传送到十几段级联输送线均有覆盖, 典型应用于电商物流分拣、食品饮料装箱线、家电总装线、电子厂工位传输、快递称重前置段。本案例以两段级联传送带为对象, 负载能力 ≤ 30 kg, 最大传送速度 30 m/min, 配合三颗光电对射传感器实现入料/中间堵料/出料的全流程监控, 目标产能 1200 件/小时, 节拍要求 ≤ 3 秒/件。功能上完整覆盖光电消抖、入出料双向计数、堵料检测、空料预警、产能统计五项核心能力, 数据可直接通过 OPC UA 上传到上位 MES。
2. 项目模块组成
- 机械部分: 两段级联传送带 + 3 个对射光电 + 三色灯塔 + 防护栏
- 电气部分: 研华工控机 + 汇川 IO + 台达 MS300 变频器 × 2 + 0.75 kW 电机 × 2
- 软件部分: OB1 + FB_ConveyorCtrl + FB_CountStats + FB_AlarmManager + DB_Production
3. 机械装配架构
工件从入料口进入, 经入料光电触发计数后进入传送带 1, 在两段交接处经过中间光电 (用于堵料检测), 进入传送带 2 后最终由出料光电记录离开。整条线长约 4 米, 两段之间留 50 mm 交接间隙, 防止物料卡在交接处。堵料时中间光电持续遮挡超过 10 秒触发停机。
4. 程序架构
OB1 以 10 ms 扫描, FB_CountStats 完成光电消抖 (20 ms) 与上升沿计数, FB_AlarmManager 检测堵料 (10 秒) 与空料 (60 秒), OB35 每 100 ms 通过 Modbus TCP 把速度给定写入两台变频器。产能数据 Retain 持久化到 DB_Production, 班次结束自动归零。
5. 硬件选型 BOM
| 品牌 | 型号 | 数量 | 单价 (¥) | 用途 |
|---|---|---|---|---|
| 研华 | MIO-5272 工控机 | 1 | 3,000 | 主控 |
| 汇川 | AM600-1616END | 1 | 850 | DI/DO |
| 台达 | MS300 0.75 kW 变频 | 2 | 780 | 传送带调速 |
| 佳木斯 | Y2-801-4 0.75 kW | 2 | 650 | 传送带电机 |
| 欧姆龙 (国产替代) | E3Z-T81 对射光电 | 3 | 90 | 入/中/出传感器 |
| 正泰 | 三色指示灯塔 | 1 | 180 | 状态显示 |
| 明纬 | LRS-100-24 | 1 | 120 | 24V 电源 |
6. IO 模块配置
6.1 选择 IO 模块
IDE 项目树 > IO 设备 > 右键 > 添加 IO 设备:
- 从站 1: 汇川 AM600-1616END — 传感器采集与指示灯输出
两台台达 MS300 变频器通过 Modbus TCP 接入 (非 EtherCAT 从站), 在 通讯 > Modbus TCP 主站 配置从站 IP 与寄存器映射即可。
6.2 IO 地址分配
| 地址 | 模块 | 信号 | 用途 |
|---|---|---|---|
| %IX0.0 | 从站 1 | SEN_Entry | 入料光电 |
| %IX0.1 | 从站 1 | SEN_Mid | 中间光电 (堵料检测) |
| %IX0.2 | 从站 1 | SEN_Exit | 出料光电 |
| %IX0.3 | 从站 1 | SB_Start | 启动按钮 |
| %IX0.4 | 从站 1 | SB_Stop | 停止 (常闭) |
| %IX0.5 | 从站 1 | SB_EStop | 急停 (常闭) |
| %QX0.0 | 从站 1 | MTR_Conv1 | 传送带 1 启停 |
| %QX0.1 | 从站 1 | MTR_Conv2 | 传送带 2 启停 |
| %QX0.4 | 从站 1 | HL_Green | 绿灯 (正常) |
| %QX0.5 | 从站 1 | HL_Yellow | 黄灯 (空料预警) |
| %QX0.6 | 从站 1 | HL_Red | 红灯 (堵料/急停) |
6.3 IO 用途分工
- PLC 主控: 全部启停逻辑 + 计数 + 堵料/空料检测, IO 与变频器通讯
- 现场操作: 启停按钮 + 急停走 DI 接入, 失效安全常闭接法
- 上位联动: 产能数据通过 OPC UA 上传 MES; 故障信息通过 Webhook 推送微信群
7. 核心数据结构
TYPE UDT_Conveyor:
STRUCT
bSystemRun : BOOL; // 系统运行中
bJamAlarm : BOOL; // 堵料报警
bEmptyWarn : BOOL; // 空料预警
nEntryCount : DINT; // 累计入料 (Retain)
nExitCount : DINT; // 累计出料 (Retain)
nOnBelt : DINT; // 当前带上数量
rSpeedRPM : REAL; // 变频给定
END_STRUCT
END_TYPE
VAR_GLOBAL RETAIN
gProd_Conv : UDT_Conveyor;
END_VAR
8. 核心程序代码
FB_ConveyorCtrl — 启停与输出:
FUNCTION_BLOCK FB_ConveyorCtrl
VAR_INPUT
bStart, bStop, bEStop : BOOL;
bJamAlarm : BOOL;
END_VAR
IF NOT bEStop THEN
gProd_Conv.bSystemRun := FALSE;
END_IF;
IF bStart AND bEStop AND NOT bJamAlarm THEN
gProd_Conv.bSystemRun := TRUE;
gProd_Conv.bJamAlarm := FALSE;
END_IF;
IF NOT bStop THEN gProd_Conv.bSystemRun := FALSE; END_IF;
MTR_Conv1 := gProd_Conv.bSystemRun AND NOT gProd_Conv.bJamAlarm;
MTR_Conv2 := gProd_Conv.bSystemRun AND NOT gProd_Conv.bJamAlarm;
FB_CountStats — 消抖 + 边沿计数:
FUNCTION_BLOCK FB_CountStats
VAR_INPUT
bSenEntry, bSenExit : BOOL;
END_VAR
VAR
rTrigEntry, rTrigExit : R_TRIG;
tonDebEntry, tonDebExit : TON;
END_VAR
// 20 ms 消抖, 避免边缘抖动误计数
tonDebEntry(IN := bSenEntry, PT := T#20ms);
tonDebExit (IN := bSenExit , PT := T#20ms);
rTrigEntry(CLK := tonDebEntry.Q);
IF rTrigEntry.Q THEN
gProd_Conv.nEntryCount := gProd_Conv.nEntryCount + 1;
END_IF;
rTrigExit(CLK := tonDebExit.Q);
IF rTrigExit.Q THEN
gProd_Conv.nExitCount := gProd_Conv.nExitCount + 1;
END_IF;
gProd_Conv.nOnBelt := gProd_Conv.nEntryCount - gProd_Conv.nExitCount;
FB_AlarmManager — 堵料 / 空料:
FUNCTION_BLOCK FB_AlarmManager
VAR_INPUT
bSenMid, bSenEntry : BOOL;
END_VAR
VAR
tonJam, tonEmpty : TON;
END_VAR
tonJam(IN := bSenMid AND gProd_Conv.bSystemRun, PT := T#10s);
IF tonJam.Q THEN
gProd_Conv.bJamAlarm := TRUE;
gProd_Conv.bSystemRun := FALSE;
END_IF;
tonEmpty(IN := NOT bSenEntry AND gProd_Conv.bSystemRun, PT := T#60s);
gProd_Conv.bEmptyWarn := tonEmpty.Q;
9. 运行与调试
- 仿真验证: IDE 仿真 Runtime 强制光电, 观察计数递增与堵料/空料定时器触发
- 下载到 Runtime: IDE "部署" → 选 Runtime IP → 下载
- 在线监控: 打开 DB_Production 实时观察
nEntryCount/nExitCount - 强制信号: 强制
bSenMid := TRUE保持 > 10 秒, 验证堵料报警 + 自动停机 - 常见排查: 计数偏差 → 检查消抖时间 (20 ms 是否过长); 变频器无响应 → 查 Modbus TCP 链路
10. 用到的 Darra 功能
| 功能模块 | 本案例用到的 | 说明 |
|---|---|---|
| PLC 编程 | SCL + R_TRIG + TON + Retain | 行业标准 |
| HMI | 产能看板 + 实时推送 + 手机看板 | 车间大屏 / 远程 |
| 通讯 | EtherCAT (IO) + Modbus TCP (变频) + OPC UA (MES) | 多协议内置 |
| 数据记录 | 入/出料累计 + 趋势记录 | 产能报表自动生成 |
| 服务 | 终端设备管理 + MES 对接 | 可按产能收服务费 |
11. 项目总结
- 实测指标: 节拍 2.8 秒/件, 产能 1285 件/小时, 连续 48 小时无误计数
- 扩展方向:
- 接入视觉检测工位, 在中间光电处增加不良品剔除机械手
- 多段级联 (10 段以上), PLC 实例化 ConveyorCtrl 数组, 无需额外代码
- 对接 AGV 接驳点 (出料口切换), 实现无人化物流