资料说明
这份手册是炬邦通用型冷库机组手操器的 Modbus RTU 通讯协议 V1.6。一台手操器可以管多台冷库空调:其中必须有一台定义成主机,其余的按分机算。下面尽量说得直白,照着抄就能用。
一、先对上这 7 个参数(对不上就通不了)
| 参数 | 值 | 大白话 |
|---|---|---|
| 链路 | RS-485 | 两根线(A/B)手拉手串起来,首尾各并一个 120Ω 电阻 |
| 协议 | Modbus RTU | 标准帧,末尾两字节 CRC 校验 |
| 波特率 | 19200 | 串口软件里填 19200,填错一个都连不上 |
| 数据位 / 校验 / 停止位 | 8 / 无 / 1(8N1) | 无校验 |
| 从机地址 | 95(0x5F) | 手操器在总线上的”门牌号”,发帧时永远填在最前面那一个字节 |
| 功能码 | 0x03 读 / 0x10 写 | 03 是问、10 是下命令 |
| 应答延迟 | 收到命令后等 100ms 才回 | 每次问完要等够 100ms 再问下一句 |
| 数值倍率 | 放大 10 倍 | 读上来的温度/电流要 ÷10 才是真值,比如读回 285 实际是 28.5℃ |
二、接线(别想复杂)
手操器背后 RS-485 的 A、B 两个端子,A 接 A、B 接 B,一路串到你的转换器。总线最头和最尾各并一个 120Ω 终端电阻。屏蔽线单端接地,别两头都接。
三、主机和分机的关系(搞清楚这个再调试)
一个系统里,必须有一台手操器定义成主机,剩下的都是分机。主机和分机挂在同一条 RS-485 总线上,从机地址都是 95(或你自己改的),区别在于寄存器地址怎么填:
| 访问对象 | 寄存器地址怎么算 | 举例(读库温,原寄存器号 42) |
|---|---|---|
| 主机(第 1 台,必须定义) | 直接用裸地址,不加偏移 | 寄存器地址 = 42(0x002A) |
| 分机 N 号(N=1~9) | N × 208 + 原寄存器地址 | 1 号分机 = 1×208+42 = 250(0x00FA) |
手册第 4.3 节原文:“读第 N(1-9)台从机参数:地址=N×208+主机地址”。这里的”主机地址”指的是寄存器原地址(比如环境温度是 41),不是从机地址 95。手册原例:读 1 号分机的环境温度 → 1×208+41 = 249;读 1 号分机的故障信息 → 1×208+202 = 410。
四、寄存器地址对照表(十进制 / 十六进制 / 主机 / 分机1号)
下面把全部 53 个寄存器列出来,包含十进制、十六进制、主机用的裸地址、以及 1 号分机偏移后的地址(N×208+原址)。
| 原址(十进制) | 原址(十六进制) | 是什么 | 读写 | 主机地址 | 1号分机地址 | 备注 |
|---|---|---|---|---|---|---|
| 25 | 0x0019 | 指令 | 写 | 25 | 233(0xE9) | 40开机 41关机 42更新设置 |
| 41 | 0x0029 | 环境温度(风冷)/出水温度(水冷) | 读 | 41 | 249(0xF9) | ÷10 |
| 42 | 0x002A | 库温 | 读 | 42 | 250(0xFA) | ÷10 |
| 43 | 0x002B | 1#排气温度 | 读 | 43 | 251(0xFB) | ÷10 |
| 44 | 0x002C | 1#回气温度 | 读 | 44 | 252(0xFC) | ÷10 |
| 45 | 0x002D | 2#排气温度 | 读 | 45 | 253(0xFD) | ÷10 |
| 46 | 0x002E | 2#回气温度 | 读 | 46 | 254(0xFE) | ÷10 |
| 47 | 0x002F | 出液温度 | 读 | 47 | 255(0xFF) | ÷10 |
| 48 | 0x0030 | 库温2(校正) | 读 | 48 | 256(0x100) | ÷10 |
| 49 | 0x0031 | 1#蒸发温度 | 读 | 49 | 257(0x101) | ÷10 |
| 50 | 0x0032 | 1#冷凝温度 | 读 | 50 | 258(0x102) | ÷10 |
| 51 | 0x0033 | 2#蒸发温度 | 读 | 51 | 259(0x103) | ÷10 |
| 52 | 0x0034 | 2#冷凝温度 | 读 | 52 | 260(0x104) | ÷10 |
| 53 | 0x0035 | 1#压缩机电流 | 读 | 53 | 261(0x105) | ÷10 |
| 54 | 0x0036 | 2#压缩机电流 | 读 | 54 | 262(0x106) | ÷10 |
| 55 | 0x0037 | 保留 | 读 | 55 | 263(0x107) | – |
| 56 | 0x0038 | 保留 | 读 | 56 | 264(0x108) | – |
| 57 | 0x0039 | 保留 | 读 | 57 | 265(0x109) | – |
| 58 | 0x003A | 1#低压 | 读 | 58 | 266(0x10A) | ÷10 |
| 59 | 0x003B | 1#高压 | 读 | 59 | 267(0x10B) | ÷10 |
| 60 | 0x003C | 保留 | 读 | 60 | 268(0x10C) | – |
| 61 | 0x003D | 保留 | 读 | 61 | 269(0x10D) | – |
| 62 | 0x003E | 2#低压 | 读 | 62 | 270(0x10E) | ÷10 |
| 63 | 0x003F | 2#高压 | 读 | 63 | 271(0x10F) | ÷10 |
| 64 | 0x0040 | 保留 | 读 | 64 | 272(0x110) | – |
| 65 | 0x0041 | 保留 | 读 | 65 | 273(0x111) | – |
| 66 | 0x0042 | 风机档位 | 读 | 66 | 274(0x112) | 高8位=2#风机 低8位=1#风机 |
| 67 | 0x0043 | 保留 | 读 | 67 | 275(0x113) | – |
| 68 | 0x0044 | 保留 | 读 | 68 | 276(0x114) | – |
| 69 | 0x0045 | 1#电子膨胀阀步数 | 读 | 69 | 277(0x115) | – |
| 70 | 0x0046 | 2#电子膨胀阀步数 | 读 | 70 | 278(0x116) | – |
| 71 | 0x0047 | 温度设定值 | 读 | 71 | 279(0x117) | ÷10 |
| 72 | 0x0048 | 保留 | 读 | 72 | 280(0x118) | – |
| 73 | 0x0049 | 制冷制热信息 | 读 | 73 | 281(0x119) | 1=制冷 2=制热 |
| 74 | 0x004A | 开门次数 | 读 | 74 | 282(0x11A) | – |
| 75 | 0x004B | 开门时间 | 读 | 75 | 283(0x11B) | ×0.1=分钟 |
| 76 | 0x004C | 按位故障记录(表1) | 读 | 76 | 284(0x11C) | bit0-15 见故障表1 |
| 77 | 0x004D | 按位故障记录(表2) | 读 | 77 | 285(0x11D) | bit0-15 见故障表2 |
| 78 | 0x004E | 保留 | 读 | 78 | 286(0x11E) | – |
| 79 | 0x004F | 控制方式 | 读 | 79 | 287(0x11F) | 0=模块 1=集中 |
| 80 | 0x0050 | 平均温度 | 读 | 80 | 288(0x120) | ÷10 |
| 89 | 0x0059 | 设定温度 | 写/读 | 89 | 297(0x129) | ÷10,写后须再写25=42 |
| 90 | 0x005A | 设定温差 | 写/读 | 90 | 298(0x12A) | ÷10 |
| 201 | 0x00C9 | 保留 | 读 | 201 | 409(0x199) | – |
| 202 | 0x00CA | 故障信息(表3) | 读 | 202 | 410(0x19A) | 序号41-74 见故障表3 |
| 203 | 0x00CB | 1#系统运行时间(天) | 读 | 203 | 411(0x19B) | 最大65530天 |
| 204 | 0x00CC | 1#系统运行时间(时分) | 读 | 204 | 412(0x19C) | 高8位=小时 低8位=分钟 |
| 205 | 0x00CD | 2#系统运行时间(天) | 读 | 205 | 413(0x19D) | 最大65530天 |
| 206 | 0x00CE | 2#系统运行时间(时分) | 读 | 206 | 414(0x19E) | 高8位=小时 低8位=分钟 |
| 207 | 0x00CF | 1#系统除霜间隔时间 | 读 | 207 | 415(0x19F) | – |
| 208 | 0x00D0 | 2#系统除霜间隔时间 | 读 | 208 | 416(0x1A0) | – |
| 209 | 0x00D1 | 保留 | 读 | 209 | 417(0x1A1) | – |
| 210 | 0x00D2 | 运行状态 | 读 | 210 | 418(0x1A2) | 0/2=关机 1/6=开机 5=除霜 |
想算其他分机号的地址,套公式:N×208+原址。比如 5 号分机的库温 = 5×208+42 = 1082(0x043A);9 号分机的运行状态 = 9×208+210 = 2082(0x0822)。
五、可以直接抄的报文 —— 主机(裸地址,从机地址 95)
访问主机时,寄存器起始地址直接填裸地址(25/41/42…),不偏移。下面帧已算好 CRC,复制就能发。
读(功能码 03)
| 想干啥 | 完整帧(含 CRC) |
|---|---|
| 读主机库温 42 | 5F 03 00 2A 00 01 A8 BC |
| 读主机环境温度 41 | 5F 03 00 29 00 01 58 BC |
| 读主机故障记录 76(表1) | 5F 03 00 4C 00 01 48 A3 |
| 读主机故障记录 77(表2) | 5F 03 00 4D 00 01 19 63 |
| 读主机故障信息 202(表3) | 5F 03 00 CA 00 01 A9 4A |
| 读主机运行状态 210 | 5F 03 00 D2 00 01 29 4D |
写(功能码 10)
| 想干啥 | 完整帧(含 CRC) | 说明 |
|---|---|---|
| 主机开机(写 25=40) | 5F 10 00 19 00 01 02 00 28 14 24 |
0x0028=40 |
| 主机关机(写 25=41) | 5F 10 00 19 00 01 02 00 29 D5 E4 |
0x0029=41 |
| 主机设温 5.0℃(写 89=50) | 5F 10 00 59 00 01 02 00 32 9B 2F |
0x0032=50 ÷10=5.0℃ |
| 主机更新设置(写 25=42) | 5F 10 00 19 00 01 02 00 2A 95 E5 |
改完设定温度必须补这帧 |
六、可以直接抄的报文 —— 分机 1~9 号(N×208+原址)
访问分机时,寄存器起始地址 = N×208+原址,帧首从机地址还是 95。下面给 1~9 号分机各一台的「读库温」「写开机」现成帧:
| 分机号 | 库温地址(十/十六) | 读库温的完整帧 | 写开机的完整帧 |
|---|---|---|---|
| 1 | 250 / 0x00FA | 5F 03 00 FA 00 01 A9 45 |
5F 10 00 E9 00 01 02 00 28 00 D4 |
| 2 | 458 / 0x01CA | 5F 03 01 CA 00 01 A8 B6 |
5F 10 01 B9 00 01 02 00 28 1C 44 |
| 3 | 666 / 0x029A | 5F 03 02 9A 00 01 A8 E3 |
5F 10 02 89 00 01 02 00 28 2A B4 |
| 4 | 874 / 0x036A | 5F 03 03 6A 00 01 A9 2C |
5F 10 03 59 00 01 02 00 28 29 E4 |
| 5 | 1082 / 0x043A | 5F 03 04 3A 00 01 A8 49 |
5F 10 04 29 00 01 02 00 28 54 14 |
| 6 | 1290 / 0x050A | 5F 03 05 0A 00 01 A9 BA |
5F 10 04 F9 00 01 02 00 28 47 84 |
| 7 | 1498 / 0x05DA | 5F 03 05 DA 00 01 A8 43 |
5F 10 05 C9 00 01 02 00 28 52 B4 |
| 8 | 1706 / 0x06AA | 5F 03 06 AA 00 01 A9 DC |
5F 10 06 99 00 01 02 00 28 6D E4 |
| 9 | 1914 / 0x077A | 5F 03 07 7A 00 01 A9 D9 |
5F 10 07 69 00 01 02 00 28 69 D4 |
想读分机的其他参数,套公式即可。比如读 3 号分机的故障信息(原 202)→ 3×208+202 = 826(0x033A),帧 = 5F 03 03 3A 00 01 A9 3D。读 5 号分机的运行状态(原 210)→ 5×208+210 = 1250(0x04E2),帧 = 5F 03 04 E2 00 01 28 72。
七、最容易踩的两个坑
坑 1:设了温度不生效。不是写完就完事。流程是:先写 89(设定温度),再写 25 = 42(更新设置),手操器才把新温度载入运行。只写 89 不写 42,面板显示不变、机器照旧跑。分机也一样:先写分机的 89(N×208+89),再写分机的 25=42(N×208+25)。
坑 2:寄存器 25 是指令口,三种写法别混。40 开机、41 关机、42 更新设置,全是写 25 但内容不同。而且手册说了”不可以连续发同一指令数据”,成功发一次就行。
八、故障码 —— 表1(寄存器 76,按位)
寄存器 76 的 16 个 bit,每个 bit 对应一个故障。bit=0 没故障,bit=1 有故障。故障清除后该位仍保持 1,断电才清零。
| 位 | 故障内容 | 位 | 故障内容 |
|---|---|---|---|
| bit0 | 环境温度传感器故障 | bit8 | 低压1传感器故障 |
| bit1 | 库温温度传感器故障 | bit9 | 高压1传感器故障 |
| bit2 | 排气1传感器故障 | bit10 | 低压2传感器故障 |
| bit3 | 回气1传感器故障 | bit11 | 高压2传感器故障 |
| bit4 | 排气2传感器故障 | bit12 | 压缩机1内保护 |
| bit5 | 回气2传感器故障 | bit13 | 压缩机2内保护 |
| bit6 | 出液温度传感器故障 | bit14 | 电机1内保护 |
| bit7 | 库温2(校正)传感器故障 | bit15 | 电机2内保护 |
九、故障码 —— 表2(寄存器 77,按位)
寄存器 77 的 16 个 bit,规则同表1:bit=1 有故障,断电清零。
| 位 | 故障内容 | 位 | 故障内容 |
|---|---|---|---|
| bit0 | 水泵过载保护 | bit8 | 1#高压报警 |
| bit1 | 低水位 | bit9 | 2#低压报警 |
| bit2 | 相序故障 | bit10 | 2#高压报警 |
| bit3 | 水流1报警或运行模式设置错误 | bit11 | 1#排气温度报警 |
| bit4 | 水流2报警 | bit12 | 2#排气温度报警 |
| bit5 | 电流1报警 | bit13 | 防冻温度报警 |
| bit6 | 电流2报警 | bit14 | 低水温报警 |
| bit7 | 1#低压报警 | bit15 | 高水温报警 |
十、故障码 —— 表3(寄存器 202,按序号)
寄存器 202 返回的值就是故障序号本身(41~74)。读回来是 42 就表示”库温温度传感器故障”,是 66 就表示”1#低压报警”。同时只有一个故障,如果多个故障同时存在,读回来的是优先级最高的那个序号。
| 序号 | 故障内容 | 序号 | 故障内容 |
|---|---|---|---|
| 41 | 环境温度传感器故障 | 58 | 运行模式错误 |
| 42 | 库温温度传感器故障 | 59 | 电流1过小报警 |
| 43 | 排气1传感器故障 | 60 | 低水位 |
| 44 | 回气1传感器故障 | 61 | 相序故障 |
| 45 | 排气2传感器故障 | 62 | 水流1报警 |
| 46 | 回气2传感器故障 | 63 | 水流2报警 |
| 47 | 出液温度传感器故障 | 64 | 电流1过大报警 |
| 48 | 库温2(校正)传感器故障 | 65 | 电流2报警 |
| 49 | 低压1传感器故障 | 66 | 1#低压报警 |
| 50 | 高压1传感器故障 | 67 | 1#高压报警 |
| 51 | 低压2传感器故障 | 68 | 2#低压报警 |
| 52 | 高压2传感器故障 | 69 | 2#高压报警 |
| 53 | 压缩机1内保护 | 70 | 1#排气温度报警 |
| 54 | 压缩机2内保护 | 71 | 2#排气温度报警 |
| 55 | 电机1内保护 | 72 | 防冻温度报警 |
| 56 | 电机2内保护 | 73 | 低水温报警 |
| 57 | 水泵过载保护 | 74 | 高水温报警 |
做上位机告警时,建议同时读 76/77(快速位判断,一次知道哪几类有故障)和 202(具体故障序号),互相印证。
十一、运行状态(寄存器 210)
| 读回来的值 | 含义 |
|---|---|
| 0 | 关机 |
| 1 | 开机 |
| 2 | 关机 |
| 5 | 除霜 |
| 6 | 开机 |
十二、调试检查清单
- 串口参数:19200 / 8N1,别填成 9600 或有校验。
- 从机地址:帧首字节固定 95(0x5F)。
- 主机用裸地址:直接填 25/41/42…,不加偏移。
- 分机用偏移地址:N×208+原址(N=1~9),帧首字节还是 95。
- 轮询间隔 > 100ms:它收完命令要等 100ms 才回。
- 数值 ÷10:温度电流压力读上来都是放大 10 倍的。
- CRC 低字节先发:标准 Modbus RTU 算法。
- 设温双帧:写 89 之后务必补写 25=42,否则不生效。分机也一样,先写 N×208+89,再写 N×208+25=42。
点位表 / 寄存器表
按地址、功能码、数据类型和倍率整理,适合调试、归档和项目交付。
| 地址 | 功能码 | 名称 | 数据类型 | 单位 | 读写 | 倍率 | 说明 |
|---|---|---|---|---|---|---|---|
| 25 | 10 | 指令(写) | UINT16 | - | W | 1 | 40=开机 41=关机 42=更新设置 |
| 41 | 03 | 环境温度(风冷机)/出水温度(水冷机) | INT16 | ℃ | R | 0.1 | 读值÷10 |
| 42 | 03 | 库温 | INT16 | ℃ | R | 0.1 | 读值÷10 |
| 43 | 03 | 1#排气温度 | INT16 | ℃ | R | 0.1 | |
| 44 | 03 | 1#回气温度 | INT16 | ℃ | R | 0.1 | |
| 45 | 03 | 2#排气温度 | INT16 | ℃ | R | 0.1 | |
| 46 | 03 | 2#回气温度 | INT16 | ℃ | R | 0.1 | |
| 47 | 03 | 出液温度 | INT16 | ℃ | R | 0.1 |
解锁后查看全部点位、下载 Excel/PDF 和配套源码。