8路温控模块 Modbus 通信协议开发说明书
1. 硬件接口与通信参数
- 物理接口: RS-485
- 通信协议: Modbus RTU
- 默认从机地址:
20(0x14) - 波特率:
9600 - 数据位:
8 - 校验位: 无校验 (
NONE) - 停止位:
1
2. 寄存器地址映射表
该温控模块包含 8 路独立的温度采集与控制通道,所有数据均可通过标准的 Modbus 功能码进行读写。
2.1 实时温度读取 (只读)
- 寄存器类型: 保持寄存器 (Holding Register)
- 功能码:
03(Read Holding Registers) - 起始地址:
360(十进制) - 数据格式: 32位单精度浮点数 (IEEE 754)
- 字节序: ABCD (大端模式,高字在前,低字在后)
- 通道映射:
- 每路温度占用 2 个连续的 16 位寄存器。
- 通道 1: 地址
360~361 - 通道 2: 地址
362~363 - ...
- 通道 8: 地址
374~375
- 特殊状态值:
- 当传感器未连接或断路时,仪表会返回占位值
32767.00。
- 当传感器未连接或断路时,仪表会返回占位值
2.2 设定温度读取与设置 (读写)
- 寄存器类型: 保持寄存器 (Holding Register)
- 读取功能码:
03(Read Holding Registers) - 写入功能码:
06(Write Single Register) - 起始地址:
42(十进制) - 数据格式: 16位有符号整数 (直接表示温度值,不需要放大10倍)
- 通道映射:
- 每路设定温度占用 1 个 16 位寄存器。
- 通道 1: 地址
42 - 通道 2: 地址
43 - ...
- 通道 8: 地址
49
- 示例: 若要将通道 1 的目标温度设定为 100℃,只需使用功能码 06 向地址 42 写入十进制数值
100。
2.3 断偶状态读取 (只读)
- 寄存器类型: 离散输入/线圈状态 (Coils / Discrete Inputs)
- 读取功能码:
01(Read Coils) 或02(Read Discrete Inputs) - 起始地址:
192(十进制) - 数据格式: 1位布尔值 (Bit)
- 通道映射:
- 每路断偶状态占用 1 个 Bit。
- 通道 1: 地址
192 - 通道 2: 地址
193 - ...
- 通道 8: 地址
199
- 状态解析:
0: 正常连接 (传感器状态良好)1: 断偶告警 (传感器未连接或线路断开)
3. Python 开发参考示例
开发中推荐使用 minimalmodbus 库进行通信。
读取实时温度 (浮点数,ABCD字节序)
读取设定温度 (16位整数)
读取断偶状态 (Bit)
另外加一个功能说明,这8路温度控制在寄存器78开始设置8个模式为1的话就是IO模式,也就是单独控制这个输出的开关,不用温度控制,控制使用02功能码的32寄存器开始,设1是开,0是关
