회원 전용

贝克斯消防控制板 Modbus RTU 통신 프로토콜 V1.0.10

贝克斯消防控制板 Modbus RTU 프로토콜 V1.0.10:RS-485/9600/8N1、单路控制(0x06写레지스터0)和群控(0x10写130바이트)两种写法、控制值=百分比+100(查询值直接是百分比)、含现场实测命令与完整프레임예제。会员解锁后看전체콘텐츠与PDF。

프로토콜RTU 버전V1.0 更新2026-07-26

자료설명

🌐 이 페이지는 아직 한국어로 제공되지 않아 중국어 버전을 표시합니다. 중국어 페이지로 돌아가기.

这是贝克斯消防控制板的开窗器 Modbus 통신 프로토콜,버전 V1.0.10。一块主板能带最多 128 个开窗器,主板当슬레이브,你的 PLC 或上位机当主机去轮询和控制。

这个프로토콜本身不复杂,但手册写得比较绕——查询返回的数值和控制的数值是两套体系,而且 PDF 只写了最复杂的”群控”写法(0x10 写 130 바이트),现场实际更常用的是”单路开出”写法(0x06 写 1 个레지스터)。下面我按”你怎么用”的顺序来讲,两种写法都给出,你按需选简单的。

先搞清楚:这是个什么系统

一个消防控制主板,下面挂最多 128 个电动开窗器。主板通过 RS-485 总线跟你的上位机통신。你可以做三件事:

① 查:问主板”你现在什么状态?下面 128 个窗都什么位置?”——一次全读回来。

② 控:让主板自己开合,或者让下面某个窗开合。可以一次只控一个,也可以一次控一片。

③ 配:改主板的슬레이브 주소或통신 속도——偶尔用一次。

就这三件事。下面一个一个说。

배선和对매개변수

RS-485 两根线,A 接 A、B 接 B,首尾各并一个 120Ω 电阻。시리얼 포트 열기软件填:

매개변수 值
통신 속도 9600(默认,也支持 2400)
데이터 비트 8
패리티 无
정지 비트 1
슬레이브 주소 1(默认,可改 1~200)

填错통신 속도或패리티一个都连不上,这是最基本的。

第一步:先查一下,确认通不通

拿 1 号主板试,发这条:

01 03 00 00 00 45 84 39

拆开看:01(슬레이브 주소 1) 03(기능 코드=读) 00 00(从레지스터 0 开始) 00 45(读 69 个레지스터) 84 39(CRC 검증)。

如果主板正常,它会回一长串데이터,143 个바이트。别慌,拆开看就清楚了:

位置 是什么 怎么读
第 1 바이트 슬레이브 주소 应该跟你问的一致,比如 01
第 2 바이트 기능 코드 03
第 3~4 바이트 主板주소 当前슬레이브 주소
第 5~6 바이트 통신 속도 0 = 2400,1 = 9600
第 7~8 바이트 主板工作状态 0=正常,1=消防触发,2=雨感触发,3=设备故障
第 9~10 바이트 主板모터状态 0=初始,1=开启中,2=닫기中
第 11~12 바이트 主板모터位置 0~100,直接就是百分比(0 모두 끄기,100 모두 켜기)
第 13~140 바이트 1~128 号窗户状态 每窗 1 바이트,见下面
最后 2 바이트 CRC 검증 –

这里有个绕的地方要先说清楚:你读的是 69 个레지스터,표준 Modbus 每个레지스터 2 바이트,所以데이터区一共 138 바이트。前 5 个레지스터(10 바이트)是主板自己的信息,后面 64 个레지스터(128 바이트)对应 128 个窗户——每窗占 1 바이트,不是 2 바이트。这是这个프로토콜最容易搞混的地方,记住就好。

窗户那 128 个바이트,每个바이트的值含义:

值 意思
0 모두 끄기(0%)
1~99 开了 1%~99%
100 모두 켜기(100%)
200 这个窗离线了(没接或者线断了)
201 这个窗故障

所以你拿到返回帧后,第 13 个바이트就是 1 号窗的位置,第 14 个바이트是 2 号窗,依此类推。读到 200 설명那一路没接窗,读到 201 설명窗有문제。

第二步:控制窗户开合

控制有两种写法。现场实际最常用的是单路控制,只发 8 个바이트;PDF 上写的是群控,要发 137 个바이트。先讲简单的。

写法 A:单路控制(推荐,最常用)

用 0x06 기능 코드写레지스터 0,쓰기值就是目标开度。这种방식一次只控制主板自己接的那个출력,或者控制默认的第一路출력。

帧형식:

[주소] 06 00 00 [开度高바이트] [开度低바이트] [CRC低] [CRC高]

控制值:

你填的值(10진수) 16진수 意思
3 0x0003 정지
100 0x0064 모두 끄기(0%)
130 0x0082 开 30%
150 0x0096 开 50%
200 0x00C8 모두 켜기(100%)

规律:控制值 = 目标百分比 + 100。想开 50% 就填 150(0x0096),想모두 켜기就填 200(0x00C8)。

现场验证过的例子(从用户群聊截图中提取)

슬레이브 주소 17(0x11),控制开到 50%:

11 06 00 00 00 96 0B 34

바이트 值 含义
11 0x11 슬레이브 주소 17
06 0x06 写单个레지스터
00 00 0x0000 레지스터 0
00 96 0x0096 = 150 50%(150 – 100 = 50)
0B 34 – CRC 검증(已验证正确)

同样주소,其他常用值:

动作 전체 프레임(주소 17)
모두 켜기 11 06 00 00 00 C8 8A CC
모두 끄기 11 06 00 00 00 64 8A B1
정지 11 06 00 00 00 03 CB 5B
开 50% 11 06 00 00 00 96 0B 34

如果你的슬레이브 주소不是 17,把第一个바이트换成你的주소,重新算 CRC 就行。

写法 B:群控(PDF 官方写法)

如果你要一次控制主板 + 下面 128 个窗,用 0x10 기능 코드,写 130 바이트데이터。帧长这样:

[주소] 10 00 00 00 41 82 [D0] [D1] [D2] ... [D128] [00] [CRC低] [CRC高]

前面 7 个바이트是帧头(주소 + 기능 코드 + 레지스터시작 + 数量 + 바이트数),中间 130 个바이트是你要下发的控制指令,最后 D129 + CRC 收尾。

130 바이트里,D0 控制主板自己,D1~D128 控制对应的 1~128 号窗,每个바이트填什么值:

你填的值(10진수) 16진수 意思
3 0x03 정지(让正在动的窗立刻停)
100 0x64 모두 끄기(0%)
130 0x82 开 30%
150 0x96 开 50%
200 0xC8 모두 켜기(100%)
255 0xFF 不动作(保持现在的状态不动)

不想动的窗填 255(0xFF),表示”这扇窗我不管,保持原样”。注意 255 跟 3(정지)不是一回事:255 是”不动作”,3 是”停下来”,区别在于 3 会中断正在进行的动作,255 完全不理它。

手册里的群控예제

2 号主板自身开 100%,1 号窗开 30%,2 号窗开 50%,其余不动:

02 10 00 00 00 41 82 C8 82 96 FF FF ... FF FF 00 1A 88

바이트 值 意思
02 0x02 2 号主板
10 0x10 写多个레지스터
00 00 – 레지스터시작주소 = 0
00 41 – 写 65 个레지스터
82 0x82 = 130 데이터바이트数 = 130
D0 = C8 0xC8 = 200 主板 100%(200-100=100%)
D1 = 82 0x82 = 130 1 号窗 30%(130-100=30%)
D2 = 96 0x96 = 150 2 号窗 50%(150-100=50%)
D3~D128 0xFF = 255 3~128 号窗不动作
D129 0x00 保留
1A 88 – CRC 검증

手册在这条예제下面有个笔误:注释写”D1: 0x1E”,但프레임行写的是 0x82。按规则 30% = 130 = 0x82,프레임行是对的,0x1E 是写错了。

常用控制帧速查表

单路控制(0x06,最常用)

假设你的슬레이브 주소是 17(0x11),改주소就换第一个바이트:

动作 전체 프레임(含 CRC)
모두 켜기 11 06 00 00 00 C8 8A CC
모두 끄기 11 06 00 00 00 64 8A B1
정지 11 06 00 00 00 03 CB 5B
开 50% 11 06 00 00 00 96 0B 34

群控(0x10,控主板+128 窗)

... 表示中间没提到的바이트全填 0xFF,最后 D129 填 0x00,再补 CRC:

想干啥 帧头 + 前 5 바이트데이터
1 号主板自己모두 켜기 01 10 00 00 00 41 82 C8 FF ...
1 号主板自己모두 끄기 01 10 00 00 00 41 82 64 FF ...
1 号主板自己정지 01 10 00 00 00 41 82 03 FF ...
1 号主板自己开 50% 01 10 00 00 00 41 82 96 FF ...
1 号전체窗户모두 켜기 01 10 00 00 00 41 82 C8 C8 ...
1 号전체窗户모두 끄기 01 10 00 00 00 41 82 64 64 ...
1 号전체정지 01 10 00 00 00 41 82 03 03 ...

广播(주소 0)

주소 0 是广播,总线上所有主板都会执行但不回应。消防联动的时候很有用:

想干啥 帧头 + 前 5 바이트데이터
전체모두 켜기 00 10 00 00 00 41 82 C8 C8 ...
전체모두 끄기 00 10 00 00 00 41 82 64 64 ...
전체정지 00 10 00 00 00 41 82 03 03 ...

第三步:改주소和통신 속도(偶尔用)

用 0x06 기능 코드,一次写一个레지스터。改完바로生效,之后你得用新매개변수跟它통신,别改完发现连不上了。

想干啥 전체 프레임 설명
1 号 → 改주소为 8 01 06 01 2C 00 08 48 39 레지스터 300(0x012C) 写 8
1 号 → 改주소为 200 01 06 01 2C 00 C8 48 69 –
2 号 → 改주소为 5 02 06 01 2C 00 05 89 CF –
1 号 → 改 2400 01 06 01 2D 00 00 18 3F 레지스터 301(0x012D) 写 0
1 号 → 改回 9600 01 06 01 2D 00 01 D9 FF 写 1

查询其他主板

把帧首바이트换成对应주소就行:

主板 查询帧
1 号 01 03 00 00 00 45 84 39
2 号 02 03 00 00 00 45 84 0A
3 号 03 03 00 00 00 45 85 DB
200 号 C8 03 00 00 00 45 95 A0

레지스터地图(完整对照)

整个프로토콜就三组레지스터操作:

操作 레지스터주소 기능 코드 설명
查询전체状态 0(0x0000) 0x03 读 69 个레지스터,返回主板+128 窗状态
설정主板주소 300(0x012C) 0x06 写 1~200
설정통신 속도 301(0x012D) 0x06 0=2400,1=9600
单路/群控控制 0(0x0000) 0x06 或 0x10 0x06 控单路,0x10 控主板+128 窗

两套数值对照表(贴在屏幕上)

시나리오 数值范围 含义 换算
查询返回(窗户状态) 0~100 0=모두 끄기,100=모두 켜기 直接就是百分比,不用换算
控制쓰기(开窗指令) 100~200 100=모두 끄기,200=모두 켜기 控制值 = 目标百分比 + 100

特殊值:控制帧里 3 = 정지,255 = 不动作(只用于群控);查询返回里 200 = 离线,201 = 故障。

디버깅检查清单

  • 통신 속도 9600、8N1——出厂默认,改过的话用新值。
  • 슬레이브 주소默认 1,范围 1~200,0 是广播。
  • 控制一扇窗最简单的办法是 0x06 写레지스터 0,不是 0x10 群控。
  • 控制值要加 100:开 30% 填 130,开 100% 填 200。查询值不加,30 就是 30%。
  • 查询返回 143 바이트,시리얼 포트缓冲区要开够,别截断了。
  • 128 个窗每窗 1 바이트,不是 2 바이트。분석返回帧时第 13 바이트开始就是窗户데이터。
  • 改주소/통신 속도后바로生效,马上用新매개변수통신。
  • 主板工作状态 4 种:正常 / 消防触发 / 雨感触发 / 设备故障——消防和雨感是自动触发,不是你控的。

문서勘误

PDF 第 5 节예제 3,프레임行写 D1 = 0x82(= 130 → 30%),但下面注释写 D1: 0x1E(= 30)。按指令定义 100~200 = 0%~100%,30% 应该是 130(0x82)。프레임行正确,注释的 0x1E 是笔误。

포인트 목록 / 레지스터表

按주소、기능 코드、데이터유형和倍率整理,适合디버깅、归档和项目交付。

预览모드
后台还没有录入포인트 목록。可以在편집页粘贴 CSV 后自动生成表格。

交付文件

完整 PDF 手册 适合项目归档、客户交付、打印使用
待上传
点位 Excel 台账 适合批量导入、디버깅记录、二次整理
待上传
PLC / 예제源码包 配套읽기、쓰기、분석예제
待上传