1. 项目概述
在工业自动化控制系统中,PLC与温控器的通讯是实现精确温度控制的关键环节。台达DVP系列PLC与欧姆龙E5CZ温控器通过RS485通讯的集成方案,是中小型温控系统中性价比极高的解决方案。这个方案最大的优势在于:
- 硬件成本低(相比以太网方案)
- 通讯距离长(最长可达1200米)
- 抗干扰能力强(差分信号传输)
- 支持多设备组网(最多32个节点)
我在多个食品烘干线和注塑机温控项目中都采用过这个方案,实测在工业环境下运行稳定,温度控制精度可达±0.5℃。
2. 硬件配置详解
2.1 器件选型要点
PLC选型建议:
- 推荐使用DVP-14ES2(最新型号为DVP-ES3),内置RS485接口
- 若需要更多IO点,可选用DVP-20EH系列
- 注意确认PLC固件版本(建议V4.0以上)
温控器选型注意:
- E5CZ-R2KJ(继电器输出)
- E5CZ-Q2KJ(晶体管输出)
- 必须带"-C"后缀的型号才支持通讯功能
触摸屏选型对比:
| 型号 | 分辨率 | 通讯口 | 价格区间 | 适用场景 |
|---|---|---|---|---|
| 昆仑通态TPC7062KX | 800×480 | 2×COM | 1500-1800 | 中小项目 |
| 威纶通MT8071iE | 800×480 | 1×COM+1×ETH | 2000-2500 | 复杂系统 |
2.2 接线规范与实操
标准接线图:
code复制PLC(14ES) E5CZ温控器
SDA(+) ---------- (+)
SDB(-) ---------- (-)
GND ---------- FG(屏蔽层接地)
关键提示:必须使用双绞屏蔽线(如BELDEN 9841),屏蔽层单端接地(建议接PLC侧)
常见错误排查:
- 通讯不稳定:检查终端电阻(120Ω)是否在末端设备上启用
- 完全无通讯:用万用表测量SDA-SDB间电压(正常应有2-6V差分电压)
- 数据错误:确认所有设备波特率、校验位设置一致
3. 参数配置实战
3.1 温控器参数设置
通过E5CZ前面板设置以下关键参数:
| 参数代码 | 名称 | 设定值 | 说明 |
|---|---|---|---|
| Ct | 通讯地址 | 1-31 | 建议1号站为温控器 |
| bAud | 波特率 | 3(9600) | 必须与PLC一致 |
| dbit | 数据位 | 0(8bit) | |
| Prty | 校验 | 0(无) | |
| Sbit | 停止位 | 1(1bit) |
快速设置技巧:
- 长按▲键3秒进入参数设置模式
- 按MODE键找到Ct参数
- 使用▲▼键修改数值
- 按SET键确认
3.2 PLC通讯配置
在WPLSoft编程软件中配置:
- 打开"PLC参数"对话框
- 选择"通讯设置"页签
- 设置:
- 通讯协议:MODBUS RTU
- 站号:1(与温控器区分)
- 波特率:9600
- 数据位:8
- 停止位:1
- 校验:NONE
重要寄存器说明:
- D1120:通讯超时设置(建议设K1000=1秒)
- D1121:重试次数(建议K3)
4. 程序开发详解
4.1 通讯指令核心逻辑
ladder复制// 初始化段
LD M8002 // 上电脉冲
MOV K9600 D1120 // 波特率
MOV K8 D1121 // 数据位
MOV K0 D1122 // 校验
MOV K1 D1123 // 停止位
// 温度读取指令
LD M0 // 读取触发
RS D100 K8 D200 K8 // 读取PV值
// 温度设定指令
LD M1 // 设定触发
MOV D300 D110 // 设定值→发送区
RS D110 K8 D210 K8 // 发送SV值
指令参数解析:
- D100:发送缓冲区首地址(包含站号、功能码等)
- K8:发送/接收字节数
- D200:接收缓冲区首地址
4.2 MODBUS地址映射
欧姆龙E5CZ的MODBUS地址对应表:
| 参数 | 地址 | 数据类型 | 读写属性 |
|---|---|---|---|
| PV值 | 0000H | INT16 | 只读 |
| SV值 | 0001H | INT16 | 读写 |
| 报警1值 | 0002H | INT16 | 读写 |
数据格式示例:
读取PV值的MODBUS帧:
code复制01 03 00 00 00 01 84 0A
- 01:站号
- 03:功能码
- 00 00:起始地址
- 00 01:读取长度
- 84 0A:CRC校验
5. 触摸屏开发要点
5.1 昆仑通态屏配置步骤
- 新建工程时选择"台达DVP"驱动
- 添加温控器寄存器:
- 实际温度:4x 1000(对应PLC D200)
- 设定温度:4x 300(对应PLC D300)
- 报警设置界面:
- 使用"数值输入"元件绑定4x 302
- 设置上下限:0-400(对应0.0-400.0℃)
画面优化技巧:
- 添加趋势图显示温度曲线
- 设置报警颜色变化(>50℃变红色)
- 添加操作权限控制(需密码修改参数)
5.2 威纶通屏特殊配置
在EasyBuilder Pro中:
- 添加"MODBUS RTU"设备
- 设置从站地址为PLC站号
- 寄存器映射:
- 温度显示:04x 200
- 设定值:04x 300
高级功能实现:
lua复制-- 温度单位自动切换脚本
if GetData('LW',100)==1 then
SetText(1,"℃")
else
SetText(1,"℉")
end
6. 调试与故障排除
6.1 常见问题速查表
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| 通讯超时 | 波特率不匹配 | 核对所有设备波特率 |
| 数据错误 | 校验设置不一致 | 统一设为无校验 |
| 偶尔丢包 | 线路干扰 | 加磁环/改用屏蔽线 |
| 无法写入 | 寄存器地址错误 | 确认MODBUS映射表 |
6.2 高级诊断方法
-
使用USB转485适配器连接PC,用MODSCAN测试:
bash复制
modscan32.exe /mrtu /b9600 /pnone /c1 /a1 -
PLC在线监控D1126寄存器(通讯错误代码):
- 0x0001:CRC错误
- 0x0002:超时
- 0x0004:帧格式错误
-
用示波器观察信号波形:
- 正常应为差分方波
- 若出现振铃现象需加终端电阻
7. 系统优化建议
-
通讯效率优化:
- 将温度读取和设定分成不同子程序
- 使用M1921(1秒脉冲)定时触发读取
- 仅在设定值变化时触发写入
-
安全防护措施:
ladder复制// 温度设定范围限制 LD M8000 CMP K0 D300 CMP D300 K400 OUT M50 // 超限标志 -
扩展应用:
- 通过PLC的D1040记录温度曲线
- 添加短信报警模块(温度超限通知)
- 与上位机对接(使用MODBUS TCP网关)
在实际项目中,我发现温控器地址设置错误是最常见的调试问题。建议在设备上贴标签明确标注站号,并在程序开头添加站号验证逻辑。另外,使用带指示灯的485转换器可以直观判断通讯状态,大大缩短调试时间。
