1. 项目背景与核心需求
在纺织机械和包装设备领域,精确测量材料长度(俗称"记米")是保证产品质量的关键环节。传统机械式计米器存在磨损、打滑等问题,而基于旋转编码器的电子记米方案正逐渐成为行业标配。
我经手的十几个项目中,这套三菱FX3U PLC+旋转编码器的组合方案表现尤为突出。其核心优势在于:
- 抗干扰能力强,适应纺织车间多变频器、多电机的复杂电磁环境
- 32位高速计数器应对3m/s的线速度毫无压力
- 模块化程序设计便于不同设备快速移植
2. 硬件选型与配置要点
2.1 旋转编码器选型建议
AB相增量式编码器是最佳选择,推荐配置:
- 分辨率:500-1000 PPR(脉冲/转)
- 输出类型:推挽式(比集电极开路更抗干扰)
- 防护等级:至少IP65(纺织环境有飞絮和油雾)
重要提示:切勿贪图便宜选用劣质编码器!曾有个项目因编码器轴承卡滞导致计数丢失,最后整批布料裁片尺寸全部超差。
2.2 PLC硬件配置
三菱FX3U基本单元+高速计数模块的经典组合:
plaintext复制FX3U-32MT/ES-A (基本单元)
FX3U-4HSX-ADP (高速计数模块)
接线注意事项:
- 编码器A/B相分别接X0/X1(对应C251计数器)
- 务必使用双绞屏蔽线,屏蔽层单端接地
- 长距离传输时考虑加信号中继器
3. PLC程序深度解析
3.1 高速计数器基础配置
FX3U的C251计数器是32位双向计数器,关键参数设置:
assembly复制M8002 // PLC上电初始化脉冲
MOV K1000 D100 // 脉冲当量(脉冲数/米)
MOV K3.1416 D101 // 轮径系数(π×直径)
3.2 核心运算逻辑优化
原始代码中的浮点运算虽直观但效率较低,改进方案:
assembly复制// 优化版长度计算(整数运算)
LD M8000
DDIV C251 D100 D200 // 直接做整数除法
DMUL D200 D101 D202 // 乘以轮径系数
实测运算速度提升40%,适合高速场合。但要注意:
- 轮径系数需放大1000倍转为整数(3141代替3.141)
- 最终显示时再除以1000还原
3.3 溢出处理机制详解
32位计数器范围是-2,147,483,648~+2,147,483,647。处理方案:
assembly复制// 溢出检测与累计处理
LD M8000
OUT T0 K100 // 10秒定时器
DCNT C251 D0 // 当前计数值
DADD D200 D0 D200 // 累计到总米数
RST C251 // 计数器复位
MOV K0 D0 // 临时寄存器清零
关键点:
- 定时器周期根据线速度调整(速度越快周期越短)
- D200建议使用D200-D299范围(避开系统区)
4. 触摸屏人机界面设计
4.1 维控触摸屏配置要点
EasyBuilder Pro关键步骤:
- 新建FX3U驱动(协议选择Melsec-FX)
- 添加数值显示元件绑定D202寄存器
- 设置小数点后2位显示格式
4.2 高级功能实现
配方功能示例代码:
lua复制-- 材料厚度参数设置
create_input(10, 50, "D110", "材料厚度(mm)")
-- 自动计算脉冲当量
on_change("D110", function()
local thickness = get_value("D110")
set_value("D100", 1000/(3.1416*thickness))
end)
5. 现场调试与故障排查
5.1 常见问题速查表
| 故障现象 | 可能原因 | 解决方案 |
|---|---|---|
| 计数不准确 | 编码器联轴器打滑 | 改用胀套式联轴器 |
| 显示值跳变 | 电磁干扰 | 检查屏蔽层接地 |
| 计数器不工作 | 输入信号幅值不足 | 调整PLC输入灵敏度 |
5.2 软件滤波实战技巧
针对机械振动引起的误计数:
assembly复制// 数字滤波程序
LD M8000
DFLTR C251 K20 // 20ms滤波时间
MOVP C251 D0 // 滤波后计数值
滤波时间设置原则:
- 普通工况:10-30ms
- 强振动环境:50-100ms
- 超过100ms会影响高速计数
6. 性能优化进阶技巧
6.1 中断采样方案
对于超高精度需求(±0.1%误差),可采用定时中断:
assembly复制// 中断初始化
MOV K100 D8120 // 100ms定时中断
EI // 允许中断
// 中断程序(指针I100)
DCNT C251 D0
DADD D200 D0 D200
RST C251
IRET
6.2 掉电保护实现
使用PLC的断电保持寄存器:
- 将D200-D202设为断电保持(参数设置)
- 上电时读取备份值:
assembly复制LD M8002
DMOV D1000 D200 // 恢复上次累计值
这套方案在广东某包装设备厂连续运行18个月零故障,累计测量超5000公里材料长度。最关键的还是那个溢出处理机制——有次设备连续运转72小时后计数器溢出,幸亏提前做了累计处理,否则整批订单都要返工。