跳到主要内容

传送带基础控制

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 工控机13,000主控
汇川AM600-1616END1850DI/DO
台达MS300 0.75 kW 变频2780传送带调速
佳木斯Y2-801-4 0.75 kW2650传送带电机
欧姆龙 (国产替代)E3Z-T81 对射光电390入/中/出传感器
正泰三色指示灯塔1180状态显示
明纬LRS-100-24112024V 电源

6. IO 模块配置

6.1 选择 IO 模块

IDE 项目树 > IO 设备 > 右键 > 添加 IO 设备:

  • 从站 1: 汇川 AM600-1616END — 传感器采集与指示灯输出

两台台达 MS300 变频器通过 Modbus TCP 接入 (非 EtherCAT 从站), 在 通讯 > Modbus TCP 主站 配置从站 IP 与寄存器映射即可。

6.2 IO 地址分配

地址模块信号用途
%IX0.0从站 1SEN_Entry入料光电
%IX0.1从站 1SEN_Mid中间光电 (堵料检测)
%IX0.2从站 1SEN_Exit出料光电
%IX0.3从站 1SB_Start启动按钮
%IX0.4从站 1SB_Stop停止 (常闭)
%IX0.5从站 1SB_EStop急停 (常闭)
%QX0.0从站 1MTR_Conv1传送带 1 启停
%QX0.1从站 1MTR_Conv2传送带 2 启停
%QX0.4从站 1HL_Green绿灯 (正常)
%QX0.5从站 1HL_Yellow黄灯 (空料预警)
%QX0.6从站 1HL_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. 运行与调试

  1. 仿真验证: IDE 仿真 Runtime 强制光电, 观察计数递增与堵料/空料定时器触发
  2. 下载到 Runtime: IDE "部署" → 选 Runtime IP → 下载
  3. 在线监控: 打开 DB_Production 实时观察 nEntryCount / nExitCount
  4. 强制信号: 强制 bSenMid := TRUE 保持 > 10 秒, 验证堵料报警 + 自动停机
  5. 常见排查: 计数偏差 → 检查消抖时间 (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 小时无误计数
  • 扩展方向:
    1. 接入视觉检测工位, 在中间光电处增加不良品剔除机械手
    2. 多段级联 (10 段以上), PLC 实例化 ConveyorCtrl 数组, 无需额外代码
    3. 对接 AGV 接驳点 (出料口切换), 实现无人化物流