1. 项目背景与核心需求
去年帮本地一家洗衣设备厂做产线升级时,他们提出要开发新一代智能洗衣机控制系统。传统继电器控制柜故障率高、功能扩展困难,而市场上通用PLC方案又存在成本过高的问题。最终我们选定西门子S7-1200 PLC搭配博图V15.1开发平台,实现了这个兼具性价比和可靠性的解决方案。
这套系统需要实现以下核心功能:
- 全自动多模式洗涤程序控制(标准/快洗/羊毛等)
- 水位、温度、转速的闭环调节
- 故障自诊断与报警功能
- 能耗统计与运行数据记录
2. 硬件系统搭建
2.1 主要设备选型
- PLC主机:6ES7 214-1AG40-0XB0(CPU1214C DC/DC/DC)
- 选型理由:14点数字量输入/10点输出,2路模拟量输入,满足基础控制需求;RS485接口方便连接HMI;支持PROFINET便于后期扩展
- 扩展模块:SM1223数字量模块(8入/8出)
- HMI:KTP700 Basic触摸屏
- 传感器:
- 水位检测:MPM489压力传感器(0-5V输出)
- 温度检测:PT100+变送器(4-20mA)
- 门状态检测:欧姆龙EE-SX671光电开关
关键提示:洗衣机振动环境强烈,所有接线必须使用带弹簧压接的端子,并做好线缆固定。我们曾因振动导致端子松动,引发过误报警。
2.2 电气柜布局要点
- 强电弱电分区布置(左侧380V动力电路,右侧24V控制电路)
- PLC与扩展模块垂直安装,底部留5cm散热空间
- 变频器单独隔间,加装散热风扇
- 所有IO点预留20%余量(实际用了14入/12出)
3. 软件程序设计
3.1 博图项目创建
- 新建项目时选择"S7-1200"设备族
- 硬件配置中正确设置:
- CPU属性→周期/时钟存储器→启用OB块
- 模拟量输入通道设置为0-10V/4-20mA(根据实际传感器)
- 添加HMI设备时选择"KTP700 Basic",自动建立PLC-HMI连接
3.2 关键程序块设计
洗涤主程序(FC1)流程图:
pascal复制IF 启动信号 AND 门关闭 THEN
进水阀打开;
WHILE 实际水位 < 设定水位 DO
PID调节进水速度;
END_WHILE;
加热器启动;
WHILE 实际温度 < 设定温度 DO
PID调节加热功率;
END_WHILE;
电机正反转循环运行;
排水阀打开;
脱水阶段加速至设定转速;
END_IF;
重点功能实现:
- 多模式选择:通过FB块封装不同洗涤程序,用SWITCH指令根据HMI选择调用
- 安全联锁:
- 门状态检测(I0.0)与电机启停互锁
- 水位超高保护(I1.2)触发紧急排水
- 故障处理:
- 在OB82中编写电机过流、加热超温等异常处理程序
- 故障代码存入DB块供HMI显示
3.3 HMI界面设计技巧
- 主画面包含:
- 模式选择旋钮
- 参数设置区域(水温、转速等)
- 实时监控曲线
- 故障信息弹窗
- 使用"区域指针"实现PLC与HMI数据交互:
- 设置DB1为共享数据块
- HMI变量直接关联DB地址(如DB1.DBW0→水位设定值)
- 添加操作日志功能:
- 用S7-1200的RTC功能记录每次启停时间
- 通过HMI趋势图显示历史数据
4. 调试与优化
4.1 模拟调试步骤
- 使用PLCSIM Advanced进行逻辑测试
- 强制IO点模拟传感器信号
- 监控程序运行状态
- 重点测试边界条件:
- 空载/满载时的水位检测
- 快速切换洗涤模式
- 突发断电恢复测试
4.2 现场调试问题汇总
| 故障现象 | 排查过程 | 解决方案 |
|---|---|---|
| 水位波动大 | 发现水管有气泡 | 加装排气阀,修改PID参数(P=2.5→1.8) |
| 脱水振动异常 | 配重块安装偏移 | 重新校准配重,增加启动加速度限制 |
| HMI偶尔卡顿 | PROFINET电缆靠近变频器 | 改用屏蔽双绞线,增加磁环 |
4.3 性能优化措施
- 程序结构优化:
- 将频繁调用的PID算法移到OB35循环中断
- 使用MOVE指令批量处理数据块
- 通讯优化:
- 设置HMI刷新周期从100ms改为300ms
- 启用PLC的优化块访问
- 安全增强:
- 添加操作密码保护
- 设置参数修改范围限制
5. 项目交付文档
最终提供给客户的完整交付包包含:
- 电气图纸(PDF+DWG格式)
- 博图项目源文件(含注释程序)
- 操作维护手册(含故障代码表)
- 备件清单与采购渠道
- 培训视频(设备操作与日常维护)
这个项目从设计到验收共耗时6周,实际运行9个月来故障率为零。相比原继电器系统,能耗降低18%,功能扩展性大幅提升。最近客户又追加了二期订单,准备加入物联网远程监控功能。