1. 项目背景与核心价值
在工业自动化领域,PLC(可编程逻辑控制器)与上位机软件的联机控制一直是产线自动化改造的关键环节。这个项目以全自动洗衣机为研究对象,通过组态王(Kingview)与三菱PLC的联机控制,实现了从虚拟仿真到实体控制的完整闭环。
为什么选择洗衣机作为研究对象?家电产线是PLC应用的典型场景,洗衣机控制逻辑包含了电机正反转、水位检测、温度控制、定时操作等工业常见控制需求。通过这个案例,我们可以掌握80%以上的工业控制基础技术点。
组态王作为国内主流的组态软件,在中小型自动化项目中应用广泛。而三菱FX系列PLC以其高性价比和稳定性,在制造业中占据重要市场份额。两者的联机调试经验具有很高的可复用性。
2. 系统架构设计
2.1 硬件组成解析
系统采用典型的工业控制架构:
- 上位机:安装组态王6.55开发版
- 控制器:三菱FX3U-48MR/ES-A
- 通讯模块:FX3U-485ADP-MB
- 执行机构:模拟洗衣机电机、进水阀、排水阀
- 传感器:水位开关、温度传感器
关键提示:FX3U-485ADP-MB模块必须设置终端电阻为110Ω,通讯距离超过50米时需要增加中继器。
2.2 软件环境配置
开发环境需要特别注意版本兼容性:
- 组态王6.55 SP2(必须安装此补丁包)
- GX Works2 1.91L(对应FX3U系列)
- MX Component 4.16S(三菱通讯组件)
安装顺序有严格要求:
- 先安装GX Works2
- 再安装MX Component
- 最后安装组态王
否则会出现驱动识别异常。
3. 通讯协议实现
3.1 三菱专用协议配置
采用三菱MC协议(Melsec Communication Protocol)实现通讯,具体参数设置:
| 参数项 | 配置值 | 备注 |
|---|---|---|
| 通讯端口 | COM3 | 需与硬件连接一致 |
| 波特率 | 9600bps | FX系列标准速率 |
| 数据位 | 7位 | 三菱默认设置 |
| 停止位 | 1位 | |
| 校验方式 | 偶校验 | 必须与PLC设置一致 |
| 站号 | 0 | 单台PLC默认站号 |
在GX Works2中需要同步配置:
plaintext复制[PLC参数]->[PLC系统设置]->[通讯设置]
协议格式:MC协议
通讯模式:RS485
3.2 组态王设备连接
组态王中建立设备连接的实操步骤:
- 新建"三菱FX系列(串口)"设备
- 设置逻辑名称:WashingMachine_PLC
- 选择串口号(需与PLC实际连接一致)
- 填写设备地址:0(对应PLC站号)
- 超时时间设为3000ms
- 数据采集周期:500ms
常见连接问题排查:
- 错误代码0x0003:检查COM端口占用情况
- 错误代码0x001A:确认MX Component服务已启动
- 通讯超时:检查RS485接线极性(DA/DB不可接反)
4. 控制逻辑设计与仿真
4.1 洗衣机工作流程编程
典型洗衣流程的PLC梯形图设计:
code复制[启动按钮 X0]--[水位开关 X1]--[M0(启动标志)]
[M0]--[T0 K300](进水30秒)
[T0]--[Y0](启动电机正转)
--[T1 K600](洗涤6分钟)
[T1]--[Y1](排水阀打开)
--[X2](水位低检测)
[X2]--[T2 K120](脱水2分钟)
[T2]--[M1](流程结束)
组态王中需要建立对应的变量表:
| 变量名 | 寄存器地址 | 类型 | 备注 |
|---|---|---|---|
| StartBtn | X0000 | 布尔型 | 启动按钮 |
| WaterLevel | X0001 | 布尔型 | 水位开关 |
| Motor_FW | Y0000 | 布尔型 | 电机正转 |
| Motor_REV | Y0001 | 布尔型 | 电机反转 |
| InletValve | Y0002 | 布尔型 | 进水阀 |
| DrainValve | Y0003 | 布尔型 | 排水阀 |
| WashTimer | T0 | 整型 | 洗涤计时器 |
4.2 组态画面开发技巧
- 动态效果实现:
- 水位动画:通过"填充"属性绑定WaterLevel变量
- 电机旋转:使用位图旋转功能,角度绑定计数器变量
- 气泡效果:定时器控制PNG图片的显隐交替
- 操作面板设计:
plaintext复制[启动按钮] - 属性设置:
正常颜色:绿色
按下颜色:红色
操作方式:瞬时型
变量连接:StartBtn
安全区:操作员权限
- 报警记录配置:
- 电机过载报警:监控Y0000持续时间>10分钟
- 水位异常:进水30秒后未触发X0001
- 温度异常:通过模拟量输入监控
5. 联机调试实战经验
5.1 通讯干扰处理方案
在工业现场环境中,RS485通讯易受干扰,我们通过以下措施保证稳定性:
- 使用双绞屏蔽电缆(型号:BELDEN 9841)
- 通讯线与动力线保持30cm以上距离
- 在PLC端和上位机端均加装磁环
- 组态王中设置通讯重试机制:
- 失败重试次数:3次
- 重试间隔:200ms
- 通讯超时:1500ms
5.2 仿真与实机切换技巧
开发阶段可通过仿真模式测试逻辑:
- GX Works2仿真器使用步骤:
- 工具->调试->模拟开始/停止
- 强制ON/OFF测试输入信号
- 组态王离线测试模式:
- 工程->切换到离线模式
- 手动修改变量值测试画面响应
切换到实机时的注意事项:
- 先关闭所有仿真软件
- 重启PLC清除仿真残留数据
- 组态王重新初始化通讯驱动
6. 性能优化与扩展
6.1 数据采集优化方案
当监控点超过100个时,需优化采集效率:
- 采用分组采集策略:
- 将变量按功能分为:电机组、阀门组、传感器组
- 设置不同采集周期(关键设备200ms,普通参数1000ms)
- 使用块读取功能:
plaintext复制Device.ReadBlock(StartAddr, Length, Buffer)
一次性读取连续寄存器,减少通讯次数
6.2 系统扩展接口
- 预留Modbus TCP接口:
- FX3U-ENET模块扩展以太网功能
- 组态王添加Modbus TCP设备
- 数据库连接:
- 通过组态王SQL函数实现:
sql复制
SQLConnect(ConnID, "DSN=Historian;UID=sa;PWD=123456") SQLInsert(ConnID, "INSERT INTO Log VALUES(...)") - 手机监控实现:
- 组态王Web发布功能
- 端口映射配置(需注意网络安全)
通过这个项目,我们不仅实现了基础的控制功能,更重要的是建立了一套完整的工业控制系统开发方法论。从硬件选型到软件调试,从通讯协议到界面设计,每个环节都有其技术要点和实操技巧。