1. 项目概述与硬件配置
在工业自动化控制系统中,PLC与温控器的稳定通讯是实现精确温度控制的关键环节。本次项目采用三菱Q系列PLC(Q00CPU)作为主控制器,通过QJ71C24N通讯模块与台达DTA系列温控器建立Modbus-RTU协议通讯,实现温度数据的双向传输。系统架构分为三个主要部分:
- 控制层:三菱Q00PLC负责逻辑运算和数据处理
- 通讯层:QJ71C24N模块实现协议转换(RS232/RS485)
- 终端层:台达DTA温控器执行温度控制,威纶通TK6071ip触摸屏提供人机交互界面
1.1 硬件连接拓扑
系统采用星型拓扑结构,具体接线方式如下:
- PLC本体COM口(RS232)↔ 电脑(编程/监控)
- QJ71C24N通道1(RS232)↔ 威纶通触摸屏
- QJ71C24N通道2(RS485)↔ 台达DTA温控器
关键提示:RS485通讯必须采用屏蔽双绞线,接线时注意A/B线极性一致,终端电阻需根据线路长度决定是否启用
2. 通讯参数配置详解
2.1 三菱QJ71C24N模块设置
模块的通讯参数需要通过GX Works2编程软件进行设定,主要参数包括:
| 参数项 | 通道1(RS232) | 通道2(RS485) |
|---|---|---|
| 波特率 | 9600bps | 9600bps |
| 数据位 | 8位 | 8位 |
| 停止位 | 1位 | 1位 |
| 校验方式 | 无 | 无 |
| 协议类型 | 专用协议 | Modbus RTU |
| 站号设置 | - | 1(主站) |
在PLC程序中需初始化通讯参数,典型代码如下:
melsec复制MOV H0096 D8120 // 通道1参数:9600,8,N,1
MOV H1096 D8121 // 通道2参数:9600,8,N,1(Modbus模式)
MOV K1 D8122 // 设置模块站号为1
2.2 台达温控器参数配置
DTA温控器需通过面板设置以下关键参数:
- 进入参数设置模式(长按SET键3秒)
- 设置通讯参数:
- Sn-01=3(Modbus RTU)
- Sn-02=1(从站地址)
- Sn-03=0(9600bps)
- Sn-04=0(无校验)
- 确认寄存器映射:
- 当前温度:Register 0(只读)
- 目标温度:Register 1(读写)
- 输出功率:Register 2(只读)
- 传感器类型:Register 3(读写)
3. PLC程序设计实战
3.1 Modbus功能码实现
三菱PLC通过RS指令实现Modbus通讯,核心程序结构如下:
melsec复制// 温度读取程序段
LD M8000 // 运行常ON触点
RS D100 K8 D200 K10 // 发送读取指令
// D100-D107:发送缓冲区
// D200-D209:接收缓冲区
// 发送帧构造示例
MOV H0103 D100 // 站号01+功能码03
MOV H0000 D101 // 起始地址高位
MOV H0000 D102 // 起始地址低位
MOV H0000 D103 // 寄存器数量高位
MOV H0001 D104 // 寄存器数量低位
MOV H0000 D105 // CRC低位(需计算)
MOV H0000 D106 // CRC高位(需计算)
3.2 CRC校验计算
Modbus RTU必须进行CRC校验,三菱PLC可通过以下算法实现:
melsec复制// CRC16计算子程序
P100:
MOV K0 D300 // CRC初始值
LD M0
FOR K8 // 对每个字节循环
...
NEXT
MOV D300 D105 // 存储CRC结果
RET
经验分享:实际应用中建议预先计算好常用指令的CRC值,直接写入程序以减少PLC运算负担
4. 触摸屏界面开发要点
4.1 威纶通TK6071ip配置
-
新建工程时选择与QJ71C24N匹配的驱动:
- 设备类型:Mitsubishi FX Series
- 接口类型:RS232
- 波特率:9600
-
关键画面元素设计:
- 温度显示:数值显示元件,地址对应PLC的D200(接收缓冲区)
- 温度设定:数值输入元件,写入PLC的D110(发送缓冲区)
- 通讯状态:指示灯元件,监控M8129(通讯完成标志)
4.2 数据映射技巧
由于触摸屏通过RS232与PLC通讯,而温控数据存储在Modbus通讯区,需要建立中间变量:
code复制PLC内存布局:
D100-D150:Modbus发送缓冲区
D200-D250:Modbus接收缓冲区
D300-D350:HMI交互区
5. 系统调试与故障排查
5.1 常见问题处理表
| 故障现象 | 可能原因 | 解决方案 |
|---|---|---|
| 通讯超时 | 波特率不匹配 | 检查所有设备的通讯参数一致性 |
| CRC校验错误 | 接线干扰或接触不良 | 改用屏蔽线,检查端子压接 |
| 读取数据全零 | 寄存器地址错误 | 核对温控器手册确认地址映射 |
| 触摸屏显示#### | 数据格式不匹配 | 设置正确的数据类型(16/32位) |
| 温控器无响应 | 站号设置错误 | 确认主从站地址配置 |
5.2 调试工具推荐
- Modbus Poll:用于模拟主站测试通讯
- 串口调试助手:监控原始数据帧
- 万用表:测量RS485线路电压(A-B应有2-6V压差)
6. 系统优化建议
-
通讯间隔优化:
- 温度控制通常不需要高速刷新,建议设置500ms-1s的采样周期
- 使用定时中断(如EI指令)触发通讯,避免阻塞主程序
-
错误处理机制:
melsec复制LD M8129 // 通讯完成标志 AND M8130 // 通讯错误标志 OUT Y10 // 报警输出 MOV K0 D8129 // 错误计数器清零 -
数据滤波处理:
melsec复制// 移动平均滤波算法 MOV D200 D400 // 最新值 ADD D400 D401 D401 // 累加 DIV D401 K5 D402 // 5次平均
实际项目中,我们通过这种架构成功实现了±0.5℃的温度控制精度。特别要注意的是,在长距离RS485通讯时(超过50米),建议增加信号中继器或改用光纤转换器来保证信号质量。