1. 项目概述与核心需求
在工业自动化控制系统中,多设备协同工作是常见需求。本次项目实现了三菱FX3U PLC通过RS485总线同时控制3台欧姆龙E5CC温控器的完整解决方案。系统架构采用昆仑通态TPC7062KD触摸屏作为人机界面,通过FX3U-485BD通讯模块与温控器建立Modbus RTU协议通讯。
核心控制功能包括:
- 温度设定值远程写入
- 实时温度值读取监控
- 传感器类型配置
- 报警参数设置(上下限、类型)
- 多设备并行控制
2. 硬件系统搭建
2.1 设备选型解析
主控单元:
- 三菱FX3U-32MT/ES-A PLC
- 基本单元:32点I/O(16入/16出)
- 内置RS422编程端口
- 扩展能力:最多可连接8个特殊功能模块
通讯模块:
- FX3U-485BD通讯板
- 通讯协议:支持无协议/Modbus RTU
- 传输距离:最大1200m(波特率≤19200bps时)
- 终端电阻:内置110Ω可切换
温控设备:
- 欧姆龙E5CC-RX2ASM-802
- 输入类型:热电偶/RTD/电压/电流
- 控制输出:继电器/SSR/线性
- 通讯接口:RS485(2线制)
HMI设备:
- 昆仑通态TPC7062KD
- 屏幕尺寸:7英寸TFT
- 通讯接口:RS232/RS485
- 编程软件:MCGS嵌入版
2.2 电气接线规范
2.2.1 通讯网络拓扑
采用总线型拓扑结构:
code复制FX3U-485BD
├── E5CC#1(地址1)
├── E5CC#2(地址2)
└── E5CC#3(地址3)
2.2.2 接线细节说明
-
电源隔离:
- 为每个温控器配置独立电源滤波器
- PLC与温控器电源地线单点接地
-
信号线规范:
- 使用AWG18双绞屏蔽线(特性阻抗120Ω)
- 屏蔽层单端接地(PLC侧)
- 线色定义:
- 红色:SDA(+)
- 蓝色:SDB(-)
- 黄绿:屏蔽层
-
终端电阻配置:
- 总线两端(首尾设备)启用终端电阻
- FX3U-485BD:DIP开关TERM=ON
- 末端E5CC:参数A5-01=1(120Ω终端)
关键提示:实际施工中建议使用手拉手接线方式,避免星型连接导致信号反射。
3. 参数配置详解
3.1 PLC通讯参数设置
通过GX Works2编程软件进行配置:
-
PLC系统参数:
- 通讯协议:无协议(自定义)
- 波特率:9600bps(与温控器一致)
- 数据格式:8位数据位,1位停止位,偶校验
-
特殊寄存器设置:
- D8120(通讯格式):H0086
- 位定义:
- b0-b3:数据长度=8bit
- b4:停止位=1bit
- b5-b7:校验=偶校验
- b8-b11:波特率=9600
- 位定义:
- D8121(站号):0(主站)
- D8120(通讯格式):H0086
-
超时设置:
- D8129(超时时间):K500(500ms)
3.2 温控器参数组
每个E5CC需设置以下关键参数:
| 参数代码 | 功能说明 | 设定值 | 备注 |
|---|---|---|---|
| A5-01 | 通讯终端电阻 | 1 | 仅末端设备启用 |
| A5-02 | 通讯波特率 | 3 | 9600bps |
| A5-03 | 数据格式 | 2 | 8E1 |
| A5-04 | 通讯地址 | 1/2/3 | 设备唯一标识 |
| A5-05 | 通讯超时 | 3.0 | 3秒无响应触发超时 |
操作技巧:长按温控器M键5秒进入高级参数设置模式,使用▲▼键导航至A5组参数。
4. 核心程序实现
4.1 通讯帧结构设计
欧姆龙E5CC采用Modbus RTU变种协议:
读取指令格式:
code复制[地址][功能码][起始地址][数据长度][CRC]
示例:读取PV值(地址0000H)
code复制01 03 00 00 00 01 84 0A
写入指令格式:
code复制[地址][功能码][目标地址][数据值][CRC]
示例:写入SV值(地址0001H)
code复制01 06 00 01 03 E8 48 2B
4.2 PLC程序架构
4.2.1 主程序流程
ladder复制[M8002]--[MOV K0 D100] // 初始化通讯缓冲区
|-[MOV H0086 D8120]
|-[MOV K500 D8129]
|-[CALL P10] // 温度读取任务
|-[CALL P20] // 参数设置任务
4.2.2 温度读取子程序(P10)
ladder复制// 轮询读取3台设备
FOR K1 TO K3
[= K1 D0]--[CALL P11] // 读取PV值
[= K2 D0]--[CALL P11]
[= K3 D0]--[CALL P11]
NEXT
// 单设备读取处理(P11)
[M8000]--[MOV D0 D100] // 设备地址
|-[MOV H0300 D101] // 功能码+起始地址
|-[MOV K0001 D102] // 读取长度
|-[CALL P30] // CRC计算
|-[RS D100 K7 D200 K7] // 发送7字节
|-[TIMER T0 K50] // 等待响应
|-[RS D210 K7 D300 K7] // 接收7字节
|-[MOV D303 D500] // PV值存储
4.2.3 参数设置子程序(P20)
ladder复制// 温度设定值写入
[M10]--[MOV K1 D110] // 目标设备
|-[MOV H0601 D111] // 功能码+目标地址
|-[MOV D10 D112] // 设定值(16bit)
|-[CALL P30] // CRC计算
|-[RS D110 K8 D210 K6]// 发送/接收
4.2.4 CRC计算子程序(P30)
ladder复制// CRC-16/Modbus算法实现
[M8000]--[MOV K65535 D150] // CRC初始值
|-[FOR K0 TO K7] // 对每个数据字节
|-[XOR D(D100+N) D150]
|-[FOR K0 TO K7] // 每bit处理
|-[SHR D150 K1]
|-[AND H0001 D150]
|-[JNE P31]
|-[XOR HA001 D150]
|-[MOV D150 D199] // 存储结果
5. HMI界面设计要点
5.1 昆仑通态画面规划
主监控画面:
- 设备状态区
- 通讯状态指示灯
- 报警汇总显示
- 温度显示区
- 三通道PV/SV同屏显示
- 实时趋势曲线(30s跨度)
- 参数设置区
- 温度设定值输入框
- 报警值设置选项卡
报警历史画面:
- 滚动显示最近20条报警记录
- 按设备分类筛选功能
5.2 变量连接配置
| HMI变量 | PLC地址 | 类型 | 说明 |
|---|---|---|---|
| PV1 | D500 | WORD | 设备1当前温度 |
| SV1 | D10 | WORD | 设备1设定温度 |
| COM_STS | M100 | BIT | 通讯状态标志 |
| ALM1 | D501 | WORD | 设备1报警代码 |
6. 故障排查指南
6.1 常见问题速查表
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| 通讯超时 | 波特率不匹配 | 检查所有设备通讯参数一致性 |
| 数据校验错误 | 线路干扰/终端电阻缺失 | 启用屏蔽层/检查终端电阻 |
| 部分设备无响应 | 地址冲突 | 确认每个温控器地址唯一 |
| 数据跳变 | 电源干扰 | 增加线路滤波器/检查接地 |
6.2 高级诊断方法
-
信号质量检测:
- 使用示波器测量SDA/SDB间电压
- 正常范围:1.5-5V(差分)
- 上升时间应≤1/4比特周期(9600bps时≈26μs)
-
协议分析:
- 通过串口监听工具捕获原始数据
- 推荐工具:Modbus Poll、CAS Modbus Scanner
-
阻抗测试:
- 断电状态下测量总线阻抗
- 正常值:60Ω(两端终端电阻并联值)
7. 系统优化建议
7.1 通讯性能提升
-
轮询策略优化:
- 关键参数(PV值)采用100ms快速轮询
- 次要参数(报警状态)采用1s慢速轮询
- 使用PLC的定时中断(I610)实现多任务调度
-
数据打包读取:
ladder复制// 单次读取多个参数 MOV H0300 D101 // 功能码+起始地址 MOV K0004 D102 // 连续读取4个字可一次性获取PV、SV、报警状态等多个参数
7.2 安全防护措施
-
软件滤波:
- 对PV值进行移动平均滤波(窗口大小=5)
ladder复制// 在PLC中实现滤波算法 MOV D500 D600 // 原始值 ADD D600 D601 D602 // 累加 DIV D602 K5 D603 // 平均值 -
硬件保护:
- 在485总线两端加装TVS二极管(SMBJ6.0CA)
- 通讯线路串接自恢复保险丝(60V/500mA)
实际工程应用中,我们发现在高电磁干扰环境(如变频器附近)下,采用双层屏蔽电缆(内层铝箔+外层铜网)可降低误码率约70%。另外,将温控器的控制周期参数(C5-01)调整为1.0秒以下时,需相应提高通讯速率至19200bps以避免数据更新延迟。