1. 项目背景与核心价值
去年夏天接手了一个老式洗衣房改造项目,业主提出要把12台半自动洗衣机升级成全自动控制系统。经过方案比选,最终采用三菱FX3U系列PLC作为主控,搭配组态王6.55开发上位机监控界面。这个组合在中小型工业自动化项目中堪称黄金搭档——三菱PLC稳定如老狗,组态王上手快得像骑共享单车。
自动洗衣机的控制逻辑看似简单,实则暗藏玄机。水位检测、电机正反转、进水阀/排水阀控制这些基础功能之外,还要处理衣物重量感知、泡沫浓度检测等高级功能。更关键的是要确保12台设备能并行运行且互不干扰,这就涉及到复杂的通信调度机制。
2. 硬件系统架构设计
2.1 PLC选型与IO配置
选择FX3U-48MT/ES-A主机主要考虑三点:
- 48点IO配置(24输入/24输出)刚好满足单台洗衣机控制需求
- 内置RS-485接口方便与组态王通信
- 扩展性强,后续可加装模拟量模块
典型输入信号配置:
- X0-X3:启动/停止/暂停/急停按钮
- X4-X7:水位开关(高/中/低/无水)
- X10:门磁开关
- X11:泡沫传感器
- X12-X13:重量传感器(通过AD模块扩展)
输出信号典型配置:
- Y0:进水电磁阀
- Y1:排水电磁阀
- Y2:主电机正转
- Y3:主电机反转
- Y4:洗涤剂投放电机
- Y5:蜂鸣器
2.2 传感器选型要点
水位检测采用常闭型浮球开关,实测比光电式更耐洗涤剂腐蚀。特别要注意安装位置:
- 高水位开关距桶顶15cm
- 中水位距桶顶25cm
- 低水位距桶底10cm
重量传感器选用悬臂梁式称重模块,量程0-10kg,安装时要加装橡胶减震垫防止电机振动干扰。调试时发现个细节:空桶重量需定期校准,因为长期使用后桶内会积存水垢。
3. PLC程序设计精要
3.1 主流程状态机设计
采用SFC顺序功能图编程,将洗衣流程分解为7个状态:
code复制S0:待机
S1:进水
S2:洗涤
S3:排水
S4:脱水
S5:漂洗(可循环)
S6:完成
每个状态转换都有严格的条件判断:
ladder复制LD M8000 // 运行监控
OUT S0 // 初始状态
LD X0 // 启动按钮
AND X10 // 门已关
SET S1 // 进入进水状态
3.2 电机控制安全逻辑
电机正反转必须加入硬件互锁和软件延时:
ladder复制LD S2 // 洗涤状态
OUT Y2 // 正转输出
TON T0 K50 // 正转30秒
LD T0
OUT Y3 // 反转输出
TON T1 K50 // 反转30秒
重要提示:必须在PLC输出端加装机械互锁继电器,防止正反转信号同时接通导致短路。我们吃过亏,烧过一台电机驱动器后才补的这个措施。
3.3 多机通信调度方案
采用Modbus RTU协议实现PLC与组态王通信,关键参数设置:
- 波特率:19200bps
- 数据位:8位
- 停止位:1位
- 校验位:偶校验
每台PLC分配独立站号(1-12),组态王通过轮询方式采集数据。实际测试发现,当所有洗衣机同时进入脱水阶段时,通信响应会变慢。解决方法是在PLC程序中加入通信优先级调度算法,将脱水阶段的查询间隔从200ms调整为500ms。
4. 组态王界面开发技巧
4.1 监控画面布局设计
主界面采用"总-分"结构:
- 左侧:12台设备状态概览(颜色区分运行状态)
- 右侧:选中设备的详细参数
- 底部:报警信息滚动条
特别实用的一个功能是"配方管理":
- 预置棉麻/化纤/羊毛等洗涤程序
- 可自定义水温、洗涤时间等参数
- 支持通过U盘导入导出
4.2 数据记录与报表
利用组态王的历史数据存储功能:
- 每5秒记录一次关键参数
- 自动生成每日用水/用电统计
- 故障记录精确到毫秒级
遇到个坑:最初使用Access数据库,当记录超过10万条时查询明显变慢。后来改用SQLite数据库,性能提升显著。
4.3 报警管理策略
分级报警处理机制:
- 一级报警(如门未关):立即停机并声光报警
- 二级报警(如水位异常):尝试自动恢复3次
- 三级报警(如洗涤剂不足):仅记录不中断运行
报警信息通过GSM模块发送到管理员手机,这个功能救了客户好几次——有次深夜水管爆裂,及时收到报警避免了更大损失。
5. 系统调试避坑指南
5.1 接地干扰排查
初期测试时,偶尔会出现电磁阀误动作。用示波器抓信号发现是接地不良引入的干扰脉冲。解决方案:
- 所有传感器信号线改用屏蔽双绞线
- PLC接地单独引到配电箱接地排
- 在DI输入端并联0.1μF电容
5.2 水位检测优化
原设计使用4个独立水位开关,后发现中水位和高水位经常误判。改进方案:
- 改用投入式压力传感器
- 在PLC中做软件滤波(取10次采样平均值)
- 设置0.5秒的状态保持时间
5.3 通信丢包处理
现场出现随机通信中断,最终发现是485总线终端电阻不匹配。解决方法:
- 在最远端的PLC上拨码启用120Ω终端电阻
- 通信线换用AWG18规格的屏蔽双绞线
- 在组态王中增加通信超时重试机制
6. 系统扩展与升级
后期客户要求增加手机APP监控功能,我们在不改变现有系统的情况下,通过以下方案实现:
- 在工控机部署MQTT服务
- 组态王通过OPC UA将数据转发到MQTT
- 安卓APP订阅MQTT主题
这个项目给我最深的体会是:自动化系统就像洗衣机里的衣服,看起来乱糟糟的各种问题,只要找到正确的"洗涤程序",最终都能变得整整齐齐。特别是调试阶段要有耐心,我们光水位检测就反复测试了二十多遍。现在这套系统已经稳定运行4000多小时,客户说比原厂设备还好用——这就是对我们最好的肯定。