欧姆龙 CP1H PLC 与欧姆龙 E5CC 温控表之间的 Modbus RTU 通讯,核心是通过 CP1H 的串口(RS-232/RS-485)作为 Modbus 主站,读取 E5CC 的温度值、设定值,或写入新的温度设定值、控制模式等参数。以下是从硬件配置、参数设置到程序编写的完整实现方案。
一、通讯准备与硬件配置
1. 核心硬件与接线
| 设备 | 关键配置 / 作用 |
|---|---|
| CP1H PLC | 选用带 RS-232(如 CP1H-X40DT-D 的 232 口)或 RS-485 模块(如 CP1W-CIF11)的型号,作为 Modbus 主站 |
| E5CC 温控表 | 确认支持 Modbus RTU(E5CC 默认支持,需配置通讯参数),作为 Modbus 从站 |
| 通讯线 | 若为 RS-485 通讯:使用屏蔽双绞线,CP1H 的 485 口(A/B)对应 E5CC 的 485 口(A/B);若为 RS-232,直接用交叉线连接(较少用,远距离推荐 485) |
| DC24V 电源 | 给通讯模块或温控表供电(若需要) |
关键接线(RS-485 为例):
2. 通讯参数统一(核心前提)
CP1H 和 E5CC 的通讯参数必须完全一致,否则无法建立通讯,推荐参数如下:
| 参数项 | 配置值 |
|---|---|
| 通讯协议 | Modbus RTU |
| 波特率 | 9600bps(可设 19200 等) |
| 数据位 / 校验位 | 8 位 / 偶校验(Even) |
| 停止位 | 1 位 |
| 从站地址 | E5CC 设为 1(可设 1-247,唯一) |
| 超时时间 | CP1H 侧设为 100ms(可调整) |
二、E5CC 温控表的通讯参数设置
需要在 E5CC 面板上手动配置通讯相关参数,步骤如下:
三、CP1H 的串口与 Modbus 参数配置(CX-Programmer)
在 CX-Programmer 软件中配置 CP1H 的串口为 Modbus 主站模式,步骤如下:
四、E5CC 的 Modbus 寄存器地址映射(关键)
E5CC 的常用参数对应固定的 Modbus 保持寄存器(4xxxx),需注意Modbus 地址的偏移(部分软件中 4xxxx 需去掉 4,直接用 xxxx,或减 1),以下是常用寄存器:
| E5CC 参数 | Modbus 保持寄存器地址(4xxxx) | 读写属性 | 数据含义(举例) |
|---|---|---|---|
| 测量值(PV) | 40001 | 只读 | 实际温度,单位 0.1℃(如数值 250=25.0℃) |
| 设定值(SV) | 40002 | 可写 | 目标温度,单位 0.1℃(如写入 300=30.0℃) |
| 控制输出值 | 40003 | 只读 | 输出百分比(0-1000=0-100.0%) |
| 报警 1 状态 | 40004 | 只读 | 0 = 正常,1 = 报警 |
| 手动输出值 | 40005 | 可写 | 手动模式下的输出百分比 |
五、CP1H 的 Modbus 主站程序编写(CX-Programmer)
CP1H 通过MB_MSTR(Modbus 主站指令) 实现与 E5CC 的通讯,包括 ** 读取测量值(PV)和写入设定值(SV)** 两个核心功能,以下是完整的梯形图程序及解释。
1. 程序核心逻辑
2. 完整梯形图程序(附注释)
ladder
// ===================== 初始化(仅首次扫描执行)===================== LD P_First_Cycle // 首次扫描标志 MOV #0000 D100 // 初始化Modbus状态寄存器 SET M0000 // 启动读取PV的触发标志 // ===================== 读取E5CC的测量值(PV):40001寄存器 ===================== // MB_MSTR指令格式:MB_MSTR 从站地址,功能码,起始寄存器地址,寄存器数量,数据存储地址,状态地址,完成标志 // 从站地址1,功能码03(读保持寄存器),起始地址0000(对应40001),读取1个寄存器,存入D200,状态D100,完成标志M0010 LD M0000 // 触发读取指令 ANDNOT M0010 // 未完成时执行 MB_MSTR #0001 #03 #0000 #0001 D200 D100 M0010 // 读取完成后,将D200的数值(PV,0.1℃)转换为实际温度存入D201(如D200=250 → D201=25.0) LD M0010 // 读取完成标志 DIV D200 #000A D201 // D200 ÷ 10 = D201 RST M0010 // 复位完成标志 // ===================== 写入E5CC的设定值(SV):40002寄存器 ===================== // 示例:将D300的数值(如300=30.0℃)写入40002寄存器,触发条件为X000(按钮) // MB_MSTR指令格式:MB_MSTR 从站地址,功能码,寄存器地址,无效(写单个时为0),写入数据地址,状态地址,完成标志 LD X000 // 写入触发按钮 ANDNOT M0020 // 未完成时执行 MB_MSTR #0001 #06 #0001 #0000 D300 D110 M0020 // 写入完成后,复位触发按钮(可选) LD M0020 // 写入完成标志 RST X000 // 复位触发(实际可改用上升沿触发) RST M0020 // 复位完成标志

