1. 项目概述与硬件配置
工业自动化领域,PLC与温控器的通讯控制是常见需求。最近完成了一个三菱FX5U PLC通过485通讯控制3台欧姆龙E5CC温控器的项目,实现了温度设定、读取和输出启停控制。这个方案在实际运行中表现稳定,响应迅速,特别适合中小型温控系统。
1.1 硬件选型解析
核心硬件包括:
- 三菱FX5U PLC:作为主控制器,内置485通讯口
- 欧姆龙E5CC-QX2ASM-802温控器:3台,用于温度检测和控制
- 昆仑通态TPC7022NI触摸屏:人机交互界面
- SL5U-2通讯模块:用于FX5U的485通讯扩展
选型考虑因素:
- FX5U的485通讯能力:支持Modbus RTU协议,最大通讯距离1200米(实际建议不超过30米不加中继)
- E5CC温控器的Modbus兼容性:支持标准Modbus RTU协议,寄存器地址明确
- 触摸屏的网络通讯能力:通过以太网与PLC连接,不占用串口资源
1.2 硬件连接要点
485通讯接线需要特别注意:
- 使用双绞屏蔽线(建议AWG22以上)
- FX5U的SL5U-2模块接线:
- SDA/RDA接温控器的A端子
- SDB/RDB接温控器的B端子
- 屏蔽层单端接地(PLC侧)
- 终端电阻配置:
- 通讯距离>30米时,在最后一台温控器加120Ω终端电阻
- 通过温控器内置的终端电阻开关启用
重要提示:所有温控器的站号必须唯一设置(通常设为1、2、3),地址冲突会导致通讯完全失败。
2. 通讯参数配置
2.1 温控器参数设置
每台E5CC温控器需要统一设置以下参数:
- 通讯参数(通过前面板设置):
- 波特率:9600bps
- 数据位:8位
- 停止位:1位
- 校验:无校验
- 协议:Modbus RTU
- 控制模式参数:
- A-MENU → Ctrl:设置为"Comm"(通讯控制模式)
- 否则无法通过通讯控制输出
参数设置步骤:
- 长按温控器"MODE"键3秒进入参数设置模式
- 找到"Comm"相关参数组
- 按上述值逐一设置
- 设置完成后断电重启生效
2.2 PLC通讯参数配置
FX5U的485通讯参数通过程序设置:
ladder复制MOV H8180 D8120 // 通讯格式设置
// 位定义:
// b15-b13: 0(固定)
// b12: 0(无协议)/1(专用协议)
// b11: 0(无校验)/1(偶校验)/2(奇校验)
// b10: 0(1停止位)/1(2停止位)
// b9: 0(无协议时固定0)
// b8-b0: 波特率(9600=8180H)
3. 程序设计实现
3.1 通讯程序架构
采用状态机轮询方式管理3台温控器通讯:
- 定义状态寄存器D100记录当前设备号(1-3)
- 使用RS指令进行串口通讯
- 通过定时器控制轮询间隔
核心程序结构:
ladder复制// 初始化
MOV K1 D100 // 初始设备号为1
MOV K50 D101 // 轮询间隔50ms
// 主循环
LD M8000 // 运行常ON
OUT T191 K50 // 50ms定时器
LD T191
MOV D100 D200 // 当前设备号写入发送缓冲区
CALL P_ConstructMsg // 构造发送报文
RS D200 K8 D500 K6 // 发送8字节,接收6字节
INC D100 // 设备号+1
LD= D100 K4 // 超过3时复位
MOV K1 D100
3.2 温度读取实现
读取温度值(寄存器40001):
ladder复制// 报文构造子程序P_ConstructMsg:
LD M8000
MOV D100 D200 // 站号
MOV H03 D201 // 功能码03(读保持寄存器)
MOV K0 D202 // 起始地址高字节(40001=0000H)
MOV K0 D203 // 起始地址低字节
MOV K0 D204 // 寄存器数量高字节
MOV K1 D205 // 寄存器数量低字节(读1个寄存器)
MOV K4 D206 // CRC计算长度
CALL P_CRC // 计算CRC
温度值处理:
ladder复制// 接收处理程序
LD M8029 // 接收完成标志
MOV D510 D110 // 温度原始值(×10)
DIV D110 K10 D120 // 实际温度值
MOV D120 D0 // 存入触摸屏显示寄存器
3.3 输出控制实现
控制输出(线圈0008H):
ladder复制// 输出控制子程序
LD X0 // 启动按钮
MOV D100 D200 // 站号
MOV H05 D201 // 功能码05(写单个线圈)
MOV K0 D202 // 地址高字节(0008H)
MOV K8 D203 // 地址低字节
MOV KFF D204 // ON值(FF00H)
MOV K0 D205
MOV K4 D206 // CRC计算长度
CALL P_CRC
RS D200 K8 D500 K6
4. 调试技巧与故障排除
4.1 常见问题解决方案
-
通讯无响应:
- 检查接线:A/B线是否接反
- 验证站号设置:各温控器站号必须唯一
- 确认波特率:所有设备必须一致
-
能读取但不能控制:
- 检查温控器A-MENU中的Ctrl参数是否为"Comm"
- 验证输出地址是否为0008H
-
数据不稳定:
- 增加报文间隔时间(建议≥50ms)
- 添加终端电阻(长距离时)
- 检查屏蔽层接地
4.2 调试工具推荐
-
串口监视器:
- 推荐使用Modbus Poll或Simply Modbus工具
- 可实时监视通讯报文
-
PLC调试技巧:
- 使用D寄存器监视窗口观察通讯数据
- 通过M8028(发送中)、M8029(接收完成)标志诊断状态
-
温控器测试模式:
- 短接温控器输入端模拟温度信号
- 通过前面板强制输出测试
5. 系统优化建议
5.1 通讯可靠性增强
- 超时重发机制:
ladder复制LD M8129 // 接收超时标志
OUT T192 K200 // 200ms超时定时器
LD T192
CALL P_Resend // 重发子程序
-
数据校验:
- 在CRC校验基础上增加和校验
- 关键数据读取两次比对
-
心跳检测:
- 定时读取温控器固件版本等固定数据
- 超时报警
5.2 触摸屏界面优化
-
数据显示:
- 温度值显示格式:XX.X℃
- 增加趋势图显示
-
操作界面:
- 单独页面显示各温控器状态
- 设置权限控制
-
报警功能:
- 通讯中断报警
- 温度超限报警
这套系统经过实际验证,在600ms内可完成3台温控器的完整轮询,满足大多数工业场合的实时性要求。关键是要确保参数设置正确,接线可靠,并实施适当的错误处理机制。