1. 项目背景与核心功能解析
这个案例来源于我去年参与的一个食品包装生产线改造项目。客户原有产线使用机械式称重设备,误差大且效率低下,我们采用三菱FX3U-48MT PLC配合梅特勒-托利多称重模块,实现了±0.2%的称重精度和每小时1200包的生产速度。整套程序包含927步逻辑,涵盖了从传感器信号处理到包装机联动的完整控制流程。
称重包装系统最核心的三大技术难点在于:
- 称重传感器的非线性补偿
- 快慢速给料的平滑切换
- 机械振动对采样值的干扰
我们通过PLC的特殊功能模块FX3U-4AD和定制编写的滤波算法,将原始称重信号的处理时间控制在5ms以内。实际测试显示,在振动幅度达到0.5g的环境下,系统仍能保持稳定的测量精度。
2. 硬件架构与信号处理
2.1 称重系统硬件配置
plaintext复制FX3U-48MT PLC
├─ FX3U-4AD 模拟量输入模块 (接称重传感器)
├─ FX3U-2DA 模拟量输出模块 (控制振动给料机)
├─ FX3U-16EYR 输出扩展 (电磁阀/接触器控制)
└─ FX3U-16EX 输入扩展 (急停/光电开关)
称重传感器选用S型拉压式,量程50kg,灵敏度2mV/V。通过6线制接法(EXC+、EXC-、SIG+、SIG-、SEN+、SEN-)有效补偿了线路压降。在PLC端,我们设置FX3U-4AD的以下关键参数:
- 采样速度:500Hz
- 数字滤波常数:5
- 输入范围:±15mV
- A/D转换位数:16bit(实际有效14bit)
关键提示:传感器激励电压必须稳定在10V±0.1%,我们额外增加了稳压电路。实测显示电压波动0.1V会导致约0.05%的称重误差。
2.2 信号处理算法
原始AD值需要经过三级处理:
- 滑动平均滤波(窗口宽度=8)
structured复制MOV D100 D200 // 当前值存入缓存区 MEAN D200 D210 K8 // 8点滑动平均 - 温度补偿(通过PT100测温)
structured复制LD M8002 // 上电初始化 MOV K12345 D300 // 温度补偿系数 MUL D210 D300 D220 // 补偿后值 - 非线性校正(使用查表法)
structured复制MOV D220 D230 // 准备查表 TBL D230 D240 // 查校正表
校正表数据通过实际标定时生成,每5kg一个校准点,共11组数据存储在D500-D521中。
3. 核心控制逻辑详解
3.1 标零与标分度流程
完整的标定过程包含三个状态:
- 空秤标零(Tare)
structured复制LD X001 // 标零按钮 MOV D240 D250 // 当前AD值作为零点 - 标准砝码标定(Span)
structured复制LD X002 // 标定按钮 SUB D241 D250 D260 // 砝码AD值-零点 DIV K50000 D260 D270 // 50kg砝码/AD差值 - 线性度验证(Verification)
使用20kg、30kg、40kg砝码验证,误差超过0.1%时触发M10报警。
实操技巧:标定时要确保给料机完全停止,并关闭周边振动源。我们遇到过因空调气流导致标定误差0.3%的案例。
3.2 快慢速配料控制
采用两段式给料策略:
- 快速给料:达到目标值90%时切换
- 慢速给料:剩余10%采用点动模式
structured复制LD M100 // 运行标志
CMP D240 D280 // 当前重量vs设定值
<= K90 // 90%判断
OUT Y010 // 快给料输出
CMP D240 D280
> K90 // 超过90%
<= K99 // 99%判断
OUT Y011 // 慢给料输出
速度切换的关键参数:
- 快给料速度:50Hz(变频器控制)
- 慢给料速度:15Hz
- 超调补偿值:D290=K20(对应20g提前量)
4. 程序架构与关键功能块
4.1 主程序结构
plaintext复制O0000 主程序
├─ O0001 初始化
├─ O0002 称重处理
├─ O0003 标定流程
├─ O0004 配料控制
├─ O0005 报警处理
└─ O0006 通信处理
4.2 核心功能块示例
数字滤波功能块(FB1)
structured复制LD SM400 // 常ON
MOV D100 D110 // 输入值
MEAN D110 D120 K8 // 滑动平均
MOV D120 D130 // 输出结果
快慢速切换逻辑(FB2)
structured复制LD M0 // 使能标志
CMP D0 D1 // 当前值vs阈值
OUT Y0 // 快速输出
CMP D0 D2
OUT Y1 // 慢速输出
5. 现场调试问题实录
5.1 典型故障排查表
| 现象 | 可能原因 | 排查方法 | 解决方案 |
|---|---|---|---|
| 重量波动大 | 机械振动 | 查看AD值波动范围 | 增加滤波常数 |
| 标定不通过 | 传感器过载 | 测量激励电压 | 更换传感器 |
| 快慢速切换异常 | 参数设置错误 | 监控D280值 | 修正比例参数 |
5.2 接地干扰案例
曾遇到称重值随机跳变500g以上的问题,最终发现:
- 变频器接地线与传感器屏蔽层共接
- 电机启停时产生共模干扰
解决方法:
- 单独敷设传感器屏蔽线
- 在PLC输入端增加信号隔离器
- 将滤波常数从5调整到8
6. 程序优化技巧
6.1 扫描周期优化
通过以下措施将扫描周期从12ms降至8ms:
- 将模拟量处理移到中断程序(I100)
- 使用FEND划分程序块
- 用BMOV替代多个MOV指令
6.2 内存管理
- 将标定参数存储在D900-D999(断电保持区)
- 使用文件寄存器(R)存储历史数据
- 关键参数设置写保护(MOVP指令)
这套系统经过三个月连续运行测试,称重合格率达到99.93%。最关键的体会是:称重程序必须考虑现场机械结构的特性,我们最终加入了振动补偿算法,根据给料机运行状态动态调整滤波参数。