1. 项目背景与核心需求
去年在工业自动化实训课上接了个电机测速系统的活,要求用三菱FX3U系列PLC搭配MCGS触摸屏实现。这组合在中小型工厂里挺常见,但真自己动手搭才发现教科书上的案例和实际调试完全是两码事。系统要实时采集电机转速,通过MODBUS协议传给触摸屏做曲线显示,还得带报警阈值设定功能——听起来简单,光是让PLC的脉冲计数和实际转速对应起来就折腾了三天。
2. 硬件配置与接线要点
2.1 PLC选型与模块配置
FX3U-32MT/ES-A基础单元加FX3U-4AD模拟量模块是性价比之选。注意三点:
- 高速计数器必须用Y0/Y1端子,普通输入点响应速度跟不上2000rpm以上的编码器信号
- 编码器供电最好单独拉24V开关电源,和PLC共用电源时接地不良会导致脉冲丢失
- 模拟量模块的CH1接0-10V调速信号时,记得在GND和COM端间跨接100Ω电阻消除共模干扰
2.2 编码器接线实战技巧
欧姆龙E6B2-CWZ6C 600P/R编码器接法踩过的坑:
- 棕色线接24V正极时中间必须串2KΩ电阻,否则PLC输入灯狂闪但计数器不递增
- 屏蔽层单端接地(接PLC侧COM端),双端接地反而引入工频干扰
- 信号线超过3米时要用双绞线,实测普通导线在变频器附近丢脉冲率高达15%
3. PLC程序关键逻辑实现
3.1 高速计数器配置
ladder复制LD M8002 // 初始化脉冲
MOV K4 D8234 // 设置HSC1为AB相计数模式
MOV K100 D8235 // 1秒定时中断编号
转速计算公式要放在定时中断程序里:
code复制实际转速(rpm) = (当前计数值 - 上次计数值) × 60 / (编码器线数×采样周期)
注意:FX3U的32位计数器必须先读高16位再读低16位,否则会触发数值锁存导致读数错乱
3.2 MODBUS通讯陷阱
MCGS默认用RTU模式,但三菱要额外设置:
- 在D8120里写入H0087(波特率9600/偶校验)
- 用RS指令发送时,数据长度要手动补足到偶数个字节
- 触摸屏读取的4xxxx地址对应PLC的D寄存器要+1(如D100对应400101)
4. MCGS界面设计精髓
4.1 实时曲线优化方案
- 采样周期设置500ms最佳,太快会导致曲线锯齿严重
- Y轴刻度建议用动态调整策略:
vb复制If MaxSpeed > 1500 Then
YMax = 2000
ElseIf MaxSpeed > 800 Then
YMax = 1000
Else
YMax = 500
End If
- 添加移动平均滤波,窗口大小设5可有效消除毛刺
4.2 报警功能避坑指南
- 阈值比较要用"滞后比较"算法,避免临界值频繁跳变
st复制IF CurrentSpeed > (Setpoint + 50) THEN
Alarm = ON
ELSEIF CurrentSpeed < (Setpoint - 30) THEN
Alarm = OFF
ENDIF
- 报警记录务必存到触摸屏的SQLite数据库,掉电不丢失
5. 现场调试血泪史
5.1 干扰排查三板斧
-
用示波器看编码器信号,发现波形畸变时:
- 在信号线对地加100pF电容
- 编码器外壳接独立地桩
- PLC电源输入端加磁环
-
MODBUS通讯中断时:
- 检查终端电阻(120Ω)
- 用USB转485转换器监听数据帧
- 修改通讯超时时间为300ms以上
5.2 参数整定经验值
- 直流电机PID参数初始值:
- Kp=0.5~0.8
- Ti=0.3~0.5s
- Td=0.05~0.1s
- 测速采样周期:
- 普通电机:200-500ms
- 伺服电机:50-100ms
6. 项目文档管理技巧
最后分享下怎么整理这种课设文档:
- 程序注释必须写清修改记录,例如:
ladder复制// 2024-03-15 WangYM
// 修正HSC1读数错乱问题
// 解决方案:增加D8035缓冲寄存器
- 接线图用Visio画,标注线径和颜色代码
- 调试日志按日期命名文件,包含:
- 现象描述
- 测试数据截图
- 最终解决方案
这个项目最深的体会是:工业现场的问题永远比实验室复杂十倍。下次再做类似项目,我会先把编码器信号用示波器抓一遍波形,能省掉80%的调试时间。另外建议在PLC程序里埋几个调试计数器,实时监控脉冲丢失情况——这招是厂里老师傅教的,比查手册管用多了。
