
버전:V1.1
一、产品简介
W816은(는)超小型智能可编程제어기,专为스마트 홈、商业照明、农业自动化设计。无需게이트웨이,支持8路大功率릴레이(每路16A),兼容手机APP、语音控制、定时任务,是家庭和商业시나리오的“全能管家”。
购买产品:https://www.modbus.cn/product/30890.html
二、核心功能与特点
1. 硬件优势
- 超小体积:仅占4个空开位,轻松装入家庭电箱。
- 大功率负载:每路支持16A阻性负载(如灯具、插座),8A感性负载(如모터)。
- 산업용设计:-20℃~80℃宽温工作,适应复杂환경。
2. 灵活扩展
- 免线拼接:同层导轨安装,多个模块直接拼接扩展。
- 全프로토콜兼容:支持Modbus、TCP/IP、MQTT等프로토콜,对接스마트 홈平台无压力。
- 无线转有线:支持WiFi/433M/315M转485总线,老旧设备秒变智能。
3. 小白友好
- DIP 스위치设주소:无需软件,拨动开关即可设置设备ID(1~32)。
- 一键恢复:误操作可恢复出厂设置,操作零门槛。
本模块上有4位侧拨开关,出厂주소默认为0,可设置주소为0-15,设置如下图

三、기술매개변수
| 项目 | 사양 |
|---|---|
| 工作电压 | DC 12V(可定制12-24V) |
| 负载能力 | 阻性负载≤16A,感性负载≤8A |
| 通讯방식 | 485总线(标配)、RJ45网口、WiFi、433M、GPRS |
| 입력路数 | 8路光电隔离입력(兼容干接点) |
| 환경온도 | -20℃~80℃ |
| 크기 | 92.5mm × 76.2mm × 60.5mm |
四、快速上手指南
1. 安装与배선
- 固定模块:卡入표준DN35导轨,确保电源닫기。
- 연결负载:将灯具、커튼모터等接入릴레이출력端子(OUT1~OUT8)。
- 接入电源:使用12V适配器전원 공급(正负极勿接反)。
- 联网설정:
- 有线:
Run指示灯状态:上电绿灯闪烁后常亮,与服务器연결成功后冰蓝色。
Rj45指示灯状态:与네트워크연결成功后绿灯常亮,橙色灯闪烁。

배선拓扑图

인터페이스설명:
1、V=12V正极입력
2、G=12V负极입력
3、A B=485인터페이스
4、① ② ③ ④ ⑤ ⑥ ⑦ ⑧=8组릴레이출력
5、RJ45/SMA=네트워크通讯
6、G 1 2 3 4 5 6 7 8=干接点입력(例如G与1연결触发第一路릴레이)
7、RUN=运行指示灯(연결되지 않음tcp为绿色 연결tcp为冰蓝色)
五、프로토콜指令详解
私有프로토콜
통신 프로토콜설명
프로토콜基本信息
- 통신 속도:9600
- 默认주소:
1A CA 27 87 00(出厂测试默认주소) - 通用주소:
AA AA AA AA AA(用于特殊操作)
프로토콜형식
프로토콜데이터帧由以下部分组成:
- 주소:5 个바이트,标识模块주소。
- 指令区:根据操作不同,길이和콘텐츠各异。
- 체크섬:固定为
0F
功能操作설명
1. 查询模块주소
- 指令형식:
5个바이트주소 + 56 56 56 0F - 功能:查询模块的当前주소。
- 예제:
1A CA 27 87 00 56 56 56 0F
2. 修改주소
- 설명:前 4 个바이트固定,第 5 个바이트通过DIP 스위치更改。
- 예제:
1A CA 27 87 XX (XX 为DIP 스위치设置的新주소)
3. 查询模块状态
- 指令형식:
5个바이트주소 + 86 86 86 0F - 返回형식:
5个바이트주소 + 00 00 00 00 00 00 00 00 0F(8 个开关状态,00 表示닫기,01 表示열기) - 예제:
查询指令:1A CA 27 87 00 86 86 86 0F
返回예제:1A CA 27 87 00 00 01 00 01 00 01 00 0F (假设开关状态为:关-开-关-开-关-开-关-开)
4. 恢复出厂设置
- 指令형식:
5个바이트주소 + 96 96 96 0F - 功能:擦除 K1-K8 存储区,恢复默认设置。
- 예제:
1A CA 27 87 00 96 96 96 0F
5. 强制设置 K1-K8 为点动모드
- 指令형식:
5个바이트주소 + A6 A6 A6 0F - 설명:
- 默认为长按 5 秒自动전환为翻转모드。
- 设置前需先恢复出厂设置。
- 예제:
1A CA 27 87 00 A6 A6 A6 0F
6. 开启/닫기 K1-K8 입력데이터存储功能
- 开启:
- 指令형식:
5个바이트주소 + 56 56 56 0F - LED 表示:闪烁 1 次后保持常亮。
- 닫기:
- 指令형식:
5个바이트주소 + 46 46 46 0F - LED 表示:闪烁 2 次后保持熄灭。
- 예제:
开启:1A CA 27 87 00 56 56 56 0F
닫기:1A CA 27 87 00 46 46 46 0F
7. K1-K8 开/关存储指令
- 指令형식:
- 开启某路:
주소 + XX XX XX XX XX ... XX(XX 为特定值) - 닫기某路:
주소 + XX XX XX XX XX ... XX(XX 为特定值) - 具体指令: 操作 开启指令值 닫기指令值 K1 开/关
0010K2 开/关2030K3 开/关4050K4 开/关6070K5 开/关8090K6 开/关A0B0K7 开/关C0D0K8 开/关E0F0 - 예제:
K1 开启:1A CA 27 87 00 00 XX XX XX XX XX 0F
K1 닫기:1A CA 27 87 00 10 XX XX XX XX XX 0F
8. 单路控制
- 指令형식:
- 翻转:
주소 + 00 00 XX 02 0F(XX 为路数 - 1) - 只开:
주소 + 00 00 XX 01 0F(XX 为路数 - 1) - 只关:
주소 + 00 00 XX 00 0F(XX 为路数 - 1) - 예제:
第一路翻转:1A CA 27 87 00 00 00 02 0F
第一路只开:1A CA 27 87 00 00 00 01 0F
第一路只关:1A CA 27 87 00 00 00 00 0F
第二路翻转:1A CA 27 87 00 00 01 02 0F
第二路只开:1A CA 27 87 00 00 01 01 0F
第二路只关:1A CA 27 87 00 00 01 00 0F
第三路翻转:1A CA 27 87 00 00 02 02 0F
第三路只开:1A CA 27 87 00 00 02 01 0F
第三路只关:1A CA 27 87 00 00 02 00 0F
第4채널翻转:1A CA 27 87 00 00 03 02 0F
第4채널只开:1A CA 27 87 00 00 03 01 0F
第4채널只关:1A CA 27 87 00 00 03 00 0F
第五路翻转:1A CA 27 87 00 00 04 02 0F
第五路只开:1A CA 27 87 00 00 04 01 0F
第五路只关:1A CA 27 87 00 00 04 00 0F
第六路翻转:1A CA 27 87 00 00 05 02 0F
第六路只开:1A CA 27 87 00 00 05 01 0F
第六路只关:1A CA 27 87 00 00 05 00 0F
第七路翻转:1A CA 27 87 00 00 06 02 0F
第七路只开:1A CA 27 87 00 00 06 01 0F
第七路只关:1A CA 27 87 00 00 06 00 0F
第八路翻转:1A CA 27 87 00 00 07 02 0F
第八路只开:1A CA 27 87 00 00 07 01 0F
第八路只关:1A CA 27 87 00 00 07 00 0F
9. 全路控制
- 指令형식:
- 1-8 路모두 켜기:
주소 + 01 01 77 88 0F - 1-8 路모두 끄기:
주소 + 01 02 77 88 0F - 예제:
1-8 路모두 켜기:1A CA 27 87 00 01 01 77 88 0F
1-8 路모두 끄기:1A CA 27 87 00 01 02 77 88 0F
10. 通用모두 켜기/모두 끄기
- 指令형식:
- 通用모두 켜기:
通用주소 + 30 77 88 0F - 通用모두 끄기:
通用주소 + 30 77 88 0F - 예제:
通用모두 켜기:AA AA AA AA AA 30 77 88 0F
通用모두 끄기:AA AA AA AA AA 30 77 88 0F
内部프로토콜
1. 指令형식
所有指令均为8바이트,형식如下:
[0x55][주소][기능 코드][데이터1][데이터2][데이터3][데이터4][체크섬]
- 체크섬 = 前7바이트相加,取最后两位(如
55+01+32+00+00+00+01=89)。
통신 속도 9600,8 个데이터 비트,1 个정지 비트,无패리티。
上位机보내기데이터帧형식:
| 데이터头 | 주소 | 기능 코드 | 데이터区 | 체크섬 | |||
| 1 바이트0x55 | 1 바이트 | 1 바이트 | 第 1 바이트 | 第 2 바이트 | 第 3 바이트 | 第 4 바이트 | 1 바이트,将前面的 7 个바이트相加,取后 8 位得到 |
上位机보내기데이터帧설명:
| 기능 코드 | 설명 | 데이터区콘텐츠(4 个바이트) |
| 0x10 | 읽기状态 | 0x00,0x00,0x00,0x00 |
| 0x11 | 断开某路 | 第 4 个바이트代表断开第几路릴레이,前 3 个바이트为 0。 |
| 0x12 | 吸合某路 | 第 4 个바이트代表吸合第几路릴레이,其他为 0。 |
| 0x13 | 命令执行 | 데이터区域共 4 个바이트,每个바이트 8 位,共 32 位。最多可代表 32 路开关量的状态。最后一个바이트的第 0 位代表第 1 路,第 1 个바이트的最高位代表最后一路。 |
| 0x14 | 组断开 | 데이터区域共 4 个바이트,每个바이트 8 位,共 32 位。最多代表对 32路的操作,1 代表断开 0 代表保持原来状态。最后 1 个바이트的第0 位(BIT0)代表第 1 路,依次类推。 |
| 0x15 | 组吸合 | 데이터区域共 4 个바이트,每个바이트 8 位,共 32 位。最多代表对 32路的操作,1 代表吸合 0 代表保持原来状态。最后 1 个바이트的第0 位(BIT0)代表第 1 路,依次类推。 |
| 0x16 | 组翻转 | 데이터区域共 4 个바이트,每个바이트 8 位,共 32 位。最多代表对 32路的操作,1 代表翻转 0 代表保持原来状态。最后 1 个바이트的第0 位(BIT0)代表第 1 路,依次类推。 |
| 0x20 | 翻转某路 | 데이터中的第 4 个바이트代表翻转第几路릴레이,其他为 0。 |
| 0x21 | 点动闭合 | 데이터的第 1、2、3 바이트代表时间(高位바이트在前,单位 ms), 第 4 바이트代表第几路 |
| 0x22 | 点动断开 | 데이터的第 1、2、3 바이트代表时间(高位바이트在前,单位 ms),第 4 바이트代表第几路 |
| 0x30 | 翻转某路 | 参考기능 코드 0x20,但是下位机不返回데이터,指令可以连续보내기。 |
| 0x31 | 断开某路 | 参考기능 코드 0x11,但是下位机不返回데이터,指令可以连续보내기。 |
| 0x32 | 吸合某路 | 参考기능 코드 0x12,但是下位机不返回데이터,指令可以连续보내기。 |
| 0x33 | 命令执行 | 参考기능 코드 0x13,但是下位机不返回데이터,指令可以连续보내기。 |
| 0x34 | 组断开 | 参考기능 코드 0x14,但是下位机不返回데이터,指令可以连续보내기。 |
| 0x35 | 组吸合 | 参考기능 코드 0x15,但是下位机不返回데이터,指令可以连续보내기。 |
| 0x36 | 组翻转 | 参考기능 코드 0x16,但是下位机不返回데이터,指令可以连续보내기。 |
| 0x37 | 点动闭合 | 参考기능 코드 0x21,但是下位机不返回데이터,指令可以连续보내기。 |
| 0x38 | 点动断开 | 参考기능 코드 0x22,但是下位机不返回데이터,指令可以连续보내기。 |
| 0x40 | 读주소 | 0x00,0x00,0x00,0x00注意事项,使用广播주소 245 来읽기模块주소。 |
| 0x41 | 写주소 | 데이터中的第 4 个바이트代表模块的新주소。注意事项:上电 10 秒钟之内允许写주소,如果有DIP 스위치,需要将DIP 스위치拨到 0 的位置。 |
| 0x70 | 读변수 | 前 3 个바이트为 0x00 0x00 0x00。第 4 个바이트代表변수的순번 |
| 0x71 | 写변수 | 前 3 个바이트代表변수的值,高位바이트在前。第 4 个바이트代表변수的순번 |
下位机返回데이터帧형식:
| 데이터头 | 주소 | 기능 코드 | 데이터区 | 체크섬 | |||
| 1 바이트0x22 | 1 바이트 | 1 바이트 | 第 1 바이트 | 第 2 바이트 | 第 3 바이트 | 第 4 바이트 | 1 바이트,将前面的7 个바이트相加 |
下位机返回데이터帧설명:
| 기능 코드 | 기능 코드설명 | 데이터区콘텐츠(4 个바이트) |
| 0x10 | 읽기状态 | 릴레이출력板或者입력检测板:데이터区域 4 个바이트,每个바이트 8 位,共 32 位。代表 32 路的状态。最后 1 个바이트的第 0 位代表第 1 路,依次类推。 입력출력板:第 1、2 个바이트代表입력的状态,第 3、4个바이트代表출력的状态。 |
| 0x11 | 断开某一路 | |
| 0x12 | 吸合某一路 | |
| 0x13 | 命令执行 | |
| 0x14 | 组断开 | |
| 0x15 | 组吸合 | |
| 0x16 | 组翻转 | |
| 0x40 | 返回模块주소 | |
| 0x70 | 读内部변수 | 前 3 个바이트代表内部변수的值,高位바이트在前。第 4 个바이트代表内部변수是순번注意事项:此기능 코드只适用于支持内核可编程的模块 |
| 0x71 | 写内部변수 |
广播주소설명:
个别情况下,需要快速的열기或者닫기总线上所有릴레이,这个时候使用广播주소, 广播주소的值为 245,也就是说,向주소 245 보내기的指令,总线上的每一个주소都会执行,닫기广播주소 245 的릴레이,也就是닫기总线上的所有릴레이,同样的道
理,열기广播주소 245 的릴레이,也就是열기总线上所有的릴레이。
0x30-0x38 기능 코드为指令连发기능 코드,因为这些기능 코드没有回码,所以可以连续보내기,因此可以更快速的보내기指令。为了让指令更快速的보내기,引入了데이터连发指令。
很多情况下,用户不需要查询或知道릴레이板的当前状态,只需要按照自己的要求来열기或者닫기某几路,这个时候使用无回码指令就会很方便。
无回码指令表(以주소 1 为例,指令可连续보내기):
| 吸合第 1 路 55 01 32 00 00 00 01 89 | 断开第 1 路 55 01 31 00 00 00 01 88 |
| 吸合第 2 路 55 01 32 00 00 00 02 8A | 断开第 2 路 55 01 31 00 00 00 02 89 |
| 吸合第 3 路 55 01 32 00 00 00 03 8B | 断开第 3 路 55 01 31 00 00 00 03 8A |
| 吸合第 4 路 55 01 32 00 00 00 04 8C | 断开第 4 路 55 01 31 00 00 00 04 8B |
| 吸合第 5 路 55 01 32 00 00 00 05 8D | 断开第 5 路 55 01 31 00 00 00 05 8C |
| 吸合第 6 路 55 01 32 00 00 00 06 8E | 断开第 6 路 55 01 31 00 00 00 06 8D |
| 吸合第 7 路 55 01 32 00 00 00 07 8F | 断开第 7 路 55 01 31 00 00 00 07 8E |
| 吸合第 8 路 55 01 32 00 00 00 08 90 | 断开第 8 路 55 01 31 00 00 00 08 8F |
| 吸合第 9 路 55 01 32 00 00 00 09 91 | 断开第 9 路 55 01 31 00 00 00 09 90 |
| 吸合第 10 路 55 01 32 00 00 00 0A 92 | 断开第 10 路 55 01 31 00 00 00 0A 91 |
| 吸合第 11 路 55 01 32 00 00 00 0B 93 | 断开第 11 路 55 01 31 00 00 00 0B 92 |
| 吸合第 12 路 55 01 32 00 00 00 0C 94 | 断开第 12 路 55 01 31 00 00 00 0C 93 |
| 吸合第 13 路 55 01 32 00 00 00 0D 95 | 断开第 13 路 55 01 31 00 00 00 0D 94 |
| 吸合第 14 路 55 01 32 00 00 00 0E 96 | 断开第 14 路 55 01 31 00 00 00 0E 95 |
| 吸合第 15 路 55 01 32 00 00 00 0F 97 | 断开第 15 路 55 01 31 00 00 00 0F 96 |
| 吸合第 16 路 55 01 32 00 00 00 10 98 | 断开第 16 路 55 01 31 00 00 00 10 97 |
| 吸合第 17 路 55 01 32 00 00 00 11 99 | 断开第 17 路 55 01 31 00 00 00 11 98 |
| 吸合第 18 路 55 01 32 00 00 00 12 9A | 断开第 18 路 55 01 31 00 00 00 12 99 |
| 吸合第 19 路 55 01 32 00 00 00 13 9B | 断开第 19 路 55 01 31 00 00 00 13 9A |
| 吸合第 20 路 55 01 32 00 00 00 14 9C | 断开第 20 路 55 01 31 00 00 00 14 9B |
| 吸合第 21 路 55 01 32 00 00 00 15 9D | 断开第 21 路 55 01 31 00 00 00 15 9C |
| 吸合第 22 路 55 01 32 00 00 00 16 9E | 断开第 22 路 55 01 31 00 00 00 16 9D |
| 吸合第 23 路 55 01 32 00 00 00 17 9F | 断开第 23 路 55 01 31 00 00 00 17 9E |
| 吸合第 24 路 55 01 32 00 00 00 18 A0 | 断开第 24 路 55 01 31 00 00 00 18 9F |
| 吸合第 25 路 55 01 32 00 00 00 19 A1 | 断开第 25 路 55 01 31 00 00 00 19 A0 |
| 吸合第 26 路 55 01 32 00 00 00 1A A2 | 断开第 26 路 55 01 31 00 00 00 1A A1 |
| 吸合第 27 路 55 01 32 00 00 00 1B A3 | 断开第 27 路 55 01 31 00 00 00 1B A2 |
| 吸合第 28 路 55 01 32 00 00 00 1C A4 | 断开第 28 路 55 01 31 00 00 00 1C A3 |
| 吸合第 29 路 55 01 32 00 00 00 1D A5 | 断开第 29 路 55 01 31 00 00 00 1D A4 |
| 吸合第 30 路 55 01 32 00 00 00 1E A6 | 断开第 30 路 55 01 31 00 00 00 1E A5 |
| 吸合第 31 路 55 01 32 00 00 00 1F A7 | 断开第 31 路 55 01 31 00 00 00 1F A6 |
| 吸合第 32 路 55 01 32 00 00 00 20 A8 | 断开第 32 路 55 01 31 00 00 00 20 A7 |
| 吸合전체 55 01 33 FF FF FF FF 85 | 断开전체 55 01 33 00 00 00 00 89 |
好的,我将为每个기능 코드提供一个具体的예제데이터帧,以帮助更好地理解프로토콜的使用。以下是详细的기능 코드예제:
上位机기능 코드예제
0x10 - 읽기状态
- 功能설명:읽기릴레이的状态。
- 데이터区:
0x00, 0x00, 0x00, 0x00 - 예제데이터帧:
데이터头:0x55
주소:0x01
기능 코드:0x10
데이터区:0x00, 0x00, 0x00, 0x00
체크섬:0x55 + 0x01 + 0x10 + 0x00 + 0x00 + 0x00 + 0x00 = 0x66
完整데이터帧:55 01 10 00 00 00 00 66
0x11 - 断开某路
- 功能설명:断开指定的릴레이路。
- 데이터区:前 3 바이트为
0x00,第 4 바이트为断开的릴레이路数(例如,断开第 3 路)。 - 예제데이터帧:
데이터头:0x55
주소:0x01
기능 코드:0x11
데이터区:0x00, 0x00, 0x00, 0x03
체크섬:0x55 + 0x01 + 0x11 + 0x00 + 0x00 + 0x00 + 0x03 = 0x6A
完整데이터帧:55 01 11 00 00 00 03 6A
0x12 - 吸合某路
- 功能설명:吸合指定的릴레이路。
- 데이터区:前 3 바이트为
0x00,第 4 바이트为吸合的릴레이路数(例如,吸合第 5 路)。 - 예제데이터帧:
데이터头:0x55
주소:0x01
기능 코드:0x12
데이터区:0x00, 0x00, 0x00, 0x05
체크섬:0x55 + 0x01 + 0x12 + 0x00 + 0x00 + 0x00 + 0x05 = 0x6D
完整데이터帧:55 01 12 00 00 00 05 6D
0x13 - 命令执行
- 功能설명:控制多路릴레이的状态。
- 데이터区:4 바이트,每바이트 8 位,共 32 位,代表 32 路릴레이的状态(1 表示吸合,0 表示断开)。
- 예제데이터帧:
데이터头:0x55
주소:0x01
기능 코드:0x13
데이터区:0x00, 0x00, 0x00, 0x0F (吸合第 1-4 路)
체크섬:0x55 + 0x01 + 0x13 + 0x00 + 0x00 + 0x00 + 0x0F = 0x73
完整데이터帧:55 01 13 00 00 00 0F 73
0x14 - 组断开
- 功能설명:断开指定的多路릴레이。
- 데이터区:4 바이트,每바이트 8 位,共 32 位,1 表示断开,0 表示保持原状态。
- 예제데이터帧:
데이터头:0x55
주소:0x01
기능 코드:0x14
데이터区:0x00, 0x00, 0x00, 0x01 (断开第 1 路)
체크섬:0x55 + 0x01 + 0x14 + 0x00 + 0x00 + 0x00 + 0x01 = 0x6B
完整데이터帧:55 01 14 00 00 00 01 6B
0x15 - 组吸合
- 功能설명:吸合指定的多路릴레이。
- 데이터区:4 바이트,每바이트 8 位,共 32 位,1 表示吸合,0 表示保持原状态。
- 예제데이터帧:
데이터头:0x55
주소:0x01
기능 코드:0x15
데이터区:0x00, 0x00, 0x00, 0x02 (吸合第 2 路)
체크섬:0x55 + 0x01 + 0x15 + 0x00 + 0x00 + 0x00 + 0x02 = 0x6C
完整데이터帧:55 01 15 00 00 00 02 6C
0x16 - 组翻转
- 功能설명:翻转指定的多路릴레이。
- 데이터区:4 바이트,每바이트 8 位,共 32 位,1 表示翻转,0 表示保持原状态。
- 예제데이터帧:
데이터头:0x55
주소:0x01
기능 코드:0x16
데이터区:0x00, 0x00, 0x00, 0x04 (翻转第 3 路)
체크섬:0x55 + 0x01 + 0x16 + 0x00 + 0x00 + 0x00 + 0x04 = 0x6E
完整데이터帧:55 01 16 00 00 00 04 6E
0x20 - 翻转某路
- 功能설명:翻转指定的릴레이路。
- 데이터区:前 3 바이트为
0x00,第 4 바이트为翻转的릴레이路数(例如,翻转第 7 路)。 - 예제데이터帧:
데이터头:0x55
주소:0x01
기능 코드:0x20
데이터区:0x00, 0x00, 0x00, 0x07
체크섬:0x55 + 0x01 + 0x20 + 0x00 + 0x00 + 0x00 + 0x07 = 0x7D
完整데이터帧:55 01 20 00 00 00 07 7D
0x21 - 点动闭合
- 功能설명:点动闭合指定的릴레이路。
- 데이터区:前 3 바이트为时间(单位 ms,高位在前),第 4 바이트为릴레이路数(例如,闭合第 6 路,时间 1000ms)。
- 예제데이터帧:
데이터头:0x55
주소:0x01
기능 코드:0x21
데이터区:0x00, 0x03, 0xE8, 0x06 (1000ms,第 6 路)
체크섬:0x55 + 0x01 + 0x21 + 0x00 + 0x03 + 0xE8 + 0x06 = 0x88
完整데이터帧:55 01 21 00 03 E8 06 88
0x22 - 点动断开
- 功能설명:点动断开指定的릴레이路。
- 데이터区:前 3 바이트为时间(单位 ms,高位在前),第 4 바이트为릴레이路数(例如,断开第 9 路,时间 500ms)。
- 예제데이터帧:
데이터头:0x55
주소:0x01
기능 코드:0x22
데이터区:0x00, 0x01, 0xF4, 0x09 (500ms,第 9 路)
체크섬:0x55 + 0x01 + 0x22 + 0x00 + 0x01 + 0xF4 + 0x09 = 0x7B
完整데이터帧:55 01 22 00 01 F4 09 7B
0x30 - 翻转某路(连发)
- 功能설명:翻转指定的릴레이路,无返回데이터。
- 데이터区:前 3 바이트为
0x00,第 4 바이트为翻转的릴레이路数(例如,翻转第 12 路)。 - 예제데이터帧:
데이터头:0x55
주소:0x01
기능 코드:0x30
데이터区:0x00, 0x00, 0x00, 0x0C
체크섬:0x55 + 0x01 + 0x30 + 0x00 + 0x00 + 0x00 + 0x0C = 0x8E
完整데이터帧:55 01 30 00 00 00 0C 8E
0x31 - 断开某路(连发)
- 功能설명:断开指定的릴레이路,无返回데이터。
- 데이터区:前 3 바이트为
0x00,第 4 바이트为断开的릴레이路数(例如,断开第 15 路)。 - 예제데이터帧:
데이터头:0x55
주소:0x01
기능 코드:0x31
데이터区:0x00, 0x00, 0x00, 0x0F
체크섬:0x55 + 0x01 + 0x31 + 0x00 + 0x00 + 0x00 + 0x0F = 0x91
完整데이터帧:55 01 31 00 00 00 0F 91
0x32 - 吸合某路(连发)
- 功能설명:吸合指定的릴레이路,无返回데이터。
- 데이터区:前 3 바이트为
0x00,第 4 바이트为吸合的릴레이路数(例如,吸合第 20 路)。 - 예제데이터帧:
데이터头:0x55
주소:0x01
기능 코드:0x32
데이터区:0x00, 0x00, 0x00, 0x14
체크섬:0x55 + 0x01 + 0x32 + 0x00 + 0x00 + 0x00 + 0x14 = 0x9C
完整데이터帧:55 01 32 00 00 00 14 9C
0x33 - 命令执行(连发)
- 功能설명:控制多路릴레이的状态,无返回데이터。
- 데이터区:4 바이트,每바이트 8 位,共 32 位,代表 32 路릴레이的状态(1 表示吸合,0 表示断开)。
- 예제데이터帧:
데이터头:0x55
주소:0x01
기능 코드:0x33
데이터区:0x00, 0x00, 0x00, 0x1F (吸合第 1-5 路)
체크섬:0x55 + 0x01 + 0x33 + 0x00 + 0x00 + 0x00 + 0x1F = 0xA3
完整데이터帧:55 01 33 00 00 00 1F A3
0x34 - 组断开(连发)
- 功能설명:断开指定的多路릴레이,无返回데이터。
- 데이터区:4 바이트,每바이트 8 位,共 32 位,1 表示断开,0 表示保持原状态。
- 예제데이터帧:
데이터头:0x55
주소:0x01
기능 코드:0x34
데이터区:0x00, 0x00, 0x00, 0x08 (断开第 4 路)
체크섬:0x55 + 0x01 + 0x34 + 0x00 + 0x00 + 0x00 + 0x08 = 0x98
完整데이터帧:55 01 34 00 00 00 08 98
0x35 - 组吸合(连发)
- 功能설명:吸合指定的多路릴레이,无返回데이터。
- 데이터区:4 바이트,每바이트 8 位,共 32 位,1 表示吸合,0 表示保持原状态。
- 예제데이터帧:
데이터头:0x55
주소:0x01
기능 코드:0x35
데이터区:0x00, 0x00, 0x00, 0x10 (吸合第 5 路)
체크섬:0x55 + 0x01 + 0x35 + 0x00 + 0x00 + 0x00 + 0x10 = 0x9B
完整데이터帧:55 01 35 00 00 00 10 9B
0x36 - 组翻转(连发)
- 功能설명:翻转指定的多路릴레이,无返回데이터。
- 데이터区:4 바이트,每바이트 8 位,共 32 位,1 表示翻转,0 表示保持原状态。
- 예제데이터帧:
데이터头:0x55
주소:0x01
기능 코드:0x36
데이터区:0x00, 0x00, 0x00, 0x20 (翻转第 6 路)
체크섬:0x55 + 0x01 + 0x36 + 0x00 + 0x0 +0 0x00 + 0x20 = 0xA2
完整데이터帧:55 01 36 00 00 00 20 A2
0x37 - 点动闭合(连发)
- 功能설명:点动闭合指定的릴레이路,无返回데이터。
- 데이터区:前 3 바이트为时间(单位 ms,高位在前),第 4 바이트为릴레이路数(例如,闭合第 8 路,时间 2000ms)。
- 예제데이터帧:
데이터头:0x55
주소:0x01
기능 코드:0x37
데이터区:0x00, 0x07, 0xD0, 0x08 (2000ms,第 8 路)
체크섬:0x55 + 0x01 + 0x37 + 0x00 + 0x07 + 0xD0 + 0x08 = 0xA8
完整데이터帧:55 01 37 00 07 D0 08 A8
0x38 - 点动断开(连发)
- 功能설명:点动断开指定的릴레이路,无返回데이터。
- 데이터区:前 3 바이트为时间(单位 ms,高位在前),第 4 바이트为릴레이路数(例如,断开第 16 路,时间 1500ms)。
- 예제데이터帧:
데이터头:0x55
주소:0x01
기능 코드:0x38
데이터区:0x00, 0x05, 0xDC, 0x10 (1500ms,第 16 路)
체크섬:0x55 + 0x01 + 0x38 + 0x00 + 0x05 + 0xDC + 0x10 = 0xB5
完整데이터帧:55 01 38 00 05 DC 10 B5
0x40 - 读주소
- 功能설명:읽기模块주소。
- 데이터区:
0x00, 0x00, 0x00, 0x00 - 예제데이터帧:
데이터头:0x55
주소:0xF5 (广播주소 245)
기능 코드:0x40
데이터区:0x00, 0x00, 0x00, 0x00
체크섬:0x55 + 0xF5 + 0x40 + 0x00 + 0x00 + 0x00 + 0x00 = 0x8F
完整데이터帧:55 F5 40 00 00 00 00 8F
0x41 - 写주소
- 功能설명:쓰기模块的新주소。
- 데이터区:前 3 바이트为
0x00,第 4 바이트为新주소(例如,新주소为 0x02)。 - 예제데이터帧:
데이터头:0x55
주소:0x01
기능 코드:0x41
데이터区:0x00, 0x00, 0x00, 0x02
체크섬:0x55 + 0x01 + 0x41 + 0x00 + 0x00 + 0x00 + 0x02 = 0x9A
完整데이터帧:55 01 41 00 00 00 02 9A
0x70 - 读변수
- 功能설명:읽기内部변수。
- 데이터区:前 3 바이트为
0x00,第 4 바이트为변수순번(例如,읽기순번为 1 的변수)。 - 예제데이터帧:
데이터头:0x55
주소:0x01
기능 코드:0x70
데이터区:0x00, 0x00, 0x00, 0x01
체크섬:0x55 + 0x01 + 0x70 + 0x00 + 0x00 + 0x00 + 0x01 = 0xC7
完整데이터帧:55 01 70 00 00 00 01 C7
0x71 - 写변수
- 功能설명:쓰기内部변수。
- 데이터区:前 3 바이트为변수值(高位在前),第 4 바이트为변수순번(例如,쓰기순번为 2 的변수,值为 0x123456)。
- 예제데이터帧:
데이터头:0x55
주소:0x01
기능 코드:0x71
데이터区:0x12, 0x34, 0x56, 0x02
체크섬:0x55 + 0x01 + 0x71 + 0x12 + 0x34 + 0x56 + 0x02 = 0xA1
完整데이터帧:55 01 71 12 34 56 02 A1
下位机返回기능 코드예제
0x10 - 읽기状态
- 功能설명:返回릴레이的状态。
- 데이터区:4 바이트,每바이트 8 位,共 32 位,代表 32 路릴레이的状态(1 表示吸合,0 表示断开)。
- 예제데이터帧:
데이터头:0x22
주소:0x01
기능 코드:0x10
데이터区:0x00, 0x00, 0x00, 0x0F (第 1-4 路吸合,其余断开)
체크섬:0x22 + 0x01 + 0x10 + 0x00 + 0x00 + 0x00 + 0x0F = 0x42
完整데이터帧:22 01 10 00 00 00 0F 42
0x40 - 返回模块주소
- 功能설명:返回模块的当前주소。
- 데이터区:4 바이트,返回模块주소(例如,주소为 0x03)。
- 예제데이터帧:
데이터头:0x22
주소:0x03
기능 코드:0x40
데이터区:0x00, 0x00, 0x00, 0x03
체크섬:0x22 + 0x03 + 0x40 + 0x00 + 0x00 + 0x00 + 0x03 = 0x68
完整데이터帧:22 03 40 00 00 00 03 68
0x70 - 读内部변수
- 功能설명:返回内部변수的值。
- 데이터区:前 3 바이트为변수值(高位在前),第 4 바이트为변수순번(例如,순번为 1 的변수值为 0x123456)。
- 예제데이터帧:
데이터头:0x22
주소:0x01
기능 코드:0x70
데이터区:0x12, 0x34, 0x56, 0x01
체크섬:0x22 + 0x01 + 0x70 + 0x12 + 0x34 + 0x56 + 0x01 = 0x8C
完整데이터帧:22 01 70 12 34 56 01 8C
总结
以上是每个기능 코드的예제데이터帧,涵盖了上位机보내기和下位机返回的所有시나리오。每个예제都包含了完整的데이터帧结构和체크섬계산,确保프로토콜的正确性和完整性。如果需要进一步的解释或修改,请随时告诉我!
进阶玩法
内核与功能模块使用설명
一、内核简介
内核是用户操作模块的核心도구,用于实现以下功能:
- 입력与출력的映射关系。
- 收发문자串或其他데이터。
- 使用定时器进行지연或其他定时处理。
- 内部변수的형식转换。
- 其他高级功能。
二、外部입력
外部입력功能允许模块检测外部事件,支持以下触发방식:
- 上升沿触发(断开到闭合)。
- 下降沿触发(闭合到断开)。
- 状态触发(持续条件满足)。
- 单击或双击触发(需设置时间상수,默认500ms)。
三、출력 상태变化
출력 상태变化涉及以下콘텐츠:
- 指令操作面板:출력LED指示灯状态。
- 릴레이模块:控制릴레이的开/关状态。
- MOS출력模块:控制MOS管的开关状态。
- 用户可以控制单路或多路的열기、닫기、翻转,或点动操作。
四、中间릴레이
中间릴레이是虚拟的릴레이,用于:
- 程序控制其开/关状态。
- 检测其上升沿或下降沿。
- 将外部连续事件转化为内部状态变化事件。
五、内部변수
内部변수是有符号변수,用于记录中间데이터,支持以下操作:
- 作为입력:与数字比较(大于、小于、等于),用于条件判断。
- 作为출력:存储定时器、时间、日期、릴레이状态等信息。
- 运算功能:支持加法运算,可作为计数器使用。
六、定时器
- 简介:定时器值为正整数,默认为非0减1定时器。
- 用法:
- 设置定时器初值(如100)。
- 使用定时器值触发其他操作(如定时器等于80时触发)。
- 예제:每隔100ms,第一路출력翻转一次,并通过데이터口1보내기문자串“123”。
七、函数使用설명
- 功能:模块包含100个函数,用于增强程序易读性、节省空间、实现多级判断。
- 调用方法:
- 在출력选项中选择“函数调用”。
- 매개변수1选择“函数调用”,매개변수2选择具体函数。
- 意义:
- 提高主程序的易读性。
- 避免重复代码,节省空间。
八、函数使用方法
- 편집:通过菜单-设置-函数列表启动函数편집器。
- 存储:函数可单独存储为
.hanshu文件,支持导入到主程序或函数界面。 - 调用예제:
- 입력断开到闭合时,函数执行一次。
- 函数每隔一秒钟执行一次。
九、系统简单设置
- 操作联机릴레이데이터口:默认데이터口1。
- 操作联机릴레이返回码:可选择带返回码或不带返回码。
- 擦除存储区:擦除内部변수存储区或数组存储区的ROM。
十、系统特殊设置
- 点动操作时间设置:设置点动릴레이的时间(单位:ms)。
- 临时데이터수신时间间隔:默认10ms,用于区分데이터包。
- 입력连击和长按时间상수:默认500ms,用于判断双击或连击。
- 程序运行间隔:默认10ms,可调整。
十一、临时데이터包处理
- 功能:수신的临时데이터包存储在缓冲区,可进行处理。
- 적용:兼容市面上的485、시리얼 포트或TTL통신 프로토콜,实现프로토콜转发。
十二、数组简单处理
- 操作:
- 加上其他数组:将一个数组추가到另一个数组尾部。
- 赋值为其他数组:替换数组콘텐츠。
- 삭제바이트:삭제指定순번的바이트。
- 추가변수바이트:在数组最前面추가바이트。
十三、内部변수的使用方法
- 功能:
- 将系统변수赋值给内部변수。
- 将内部변수值赋值给其他변수。
- 支持位操作,读写某一位的值。
- 存储:支持将内部변수저장到RAM或非易失性存储区(需硬件支持)。
十四、定时处理
- 功能:通过时钟芯片实现定时任务。
- 예제:
- 每天早上和下午定时열기第一路릴레이。
- 每天8点到12点之间保持第一路闭合。
十五、형식转换
- 内部변수与数组转换:
- 10진수문자串与内部변수相互转换。
- 数组与内部변수相互转换(高位在前,低位在后)。
- 예제:
- 内部변수123转换为数组
0x31 0x32 0x33。 - 数组
0x01 0x02转换为内部변수值33。
十六、实际적용 - 提取临时데이터中的변수
- 功能:수신临时데이터后,提取特定바이트并转换为内部변수。
- 예제:
- 判断데이터包바이트数和前两个바이트值。
- 提取第3到第6바이트的值并转换为内部변수1。
十七、实际적용 - 변수按固定형식보내기
- 功能:将内部변수转换为数组,并추가头尾바이트后보내기。
- 예제:
- 将内部변수1转换为数组,추가
22 01 10头바이트和체크섬바이트后보내기。
十八、实际적용 - 프로토콜 컨버터
- 功能:将不同厂家的프로토콜对接,实现设备间的통신。
- 前提:厂家통신 프로토콜开放。
十九、实际적용 - 电子프로토콜举例
- 功能:수신데이터后,判断바이트和체크섬成功后执行相应操作。
- 예제:
- 判断前两个바이트和체크섬成功后,执行函数1。
- 函数1内部继续判断其他바이트,执行相应操作。
六、注意事项
- 安全警告:
- 严禁带电배선!
- 感性负载(如모터)需额外加装保护电路。
- 네트워크문제:
- 若指示灯不亮,检查电源和网线。
- 勿修改默认네트워크설정,否则需문의기술支持复位。
- 프로토콜디버깅:
- 추천 도구:USB转485模块 + 시리얼 포트디버깅 도우미。
- 指令无效?检查주소和체크섬是否正确!
七、기술支持
- 客服电话:18801054468
답글 작성