8路智能控制器使用说明书

8路智能控制器使用说明书缩略图
本文目录
  1. 1. 一、产品简介
  2. 2. 二、核心功能与特点
  3. 3. 1. 硬件优势
  4. 4. 2. 灵活扩展
  5. 5. 3. 小白友好
  6. 6. 三、技术参数
  7. 7. 四、快速上手指南
  8. 8. 1. 安装与接线
  9. 9. 五、协议指令详解
  10. 10. 私有协议
  11. 11. 通讯协议说明
  12. 12. 内部协议
  13. 13. 1. 指令格式
  14. 14. 上位机功能码示例
  15. 15. 下位机返回功能码示例
  16. 16. 总结
  17. 17. 进阶玩法
  18. 18. 上位机配置软件
  19. 19. 出厂固件下载
  20. 20. 内核与功能模块使用说明
  21. 21. 程序示例文件
  22. 22. 六、注意事项
  23. 23. 七、技术支持
8路智能控制器使用说明书插图

版本: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. 小白友好

  • 拨码设地址:无需软件,拨动开关即可设置设备ID(1~32)。
  • 一键恢复:误操作可恢复出厂设置,操作零门槛。

本模块上有4位侧拨开关,出厂地址默认为0,可设置地址为0-15,设置如下图

8路智能控制器使用说明书插图1

三、技术参数

项目规格
工作电压DC 12V(可定制12-24V)
负载能力阻性负载≤16A,感性负载≤8A
通讯方式485总线(标配)、RJ45网口、WiFi、433M、GPRS
输入路数8路光电隔离输入(兼容干接点)
环境温度-20℃~80℃
尺寸92.5mm × 76.2mm × 60.5mm

四、快速上手指南

1. 安装与接线

  1. 固定模块:卡入标准DN35导轨,确保电源关闭。
  2. 连接负载:将灯具、窗帘电机等接入继电器输出端子(OUT1~OUT8)。
  3. 接入电源:使用12V适配器供电(正负极勿接反)。
  4. 联网配置
  • 有线

Run指示灯状态:上电绿灯闪烁后常亮,与服务器连接成功后冰蓝色。

Rj45指示灯状态:与网络连接成功后绿灯常亮,橙色灯闪烁。

8路智能控制器使用说明书插图2

接线拓扑图

8路智能控制器使用说明书插图3

接口说明:

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(用于特殊操作)

协议格式

协议数据帧由以下部分组成:

  1. 地址:5 个字节,标识模块地址。
  2. 指令区:根据操作不同,长度和内容各异。
  3. 校验和:固定为 0F

功能操作说明

1. 查询模块地址
  • 指令格式5个字节地址 + 56 56 56 0F
  • 功能:查询模块的当前地址。
  • 示例
  1A CA 27 87 00 56 56 56 0F
2. 修改地址
  • 说明:前 4 个字节固定,第 5 个字节通过拨码开关更改。
  • 示例
  1A CA 27 87 XX (XX 为拨码设置的新地址)
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 开/关 00 10 K2 开/关 20 30 K3 开/关 40 50 K4 开/关 60 70 K5 开/关 80 90 K6 开/关 A0 B0 K7 开/关 C0 D0 K8 开/关 E0 F0
  • 示例
  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

	第四路翻转:1A CA 27 87 00 00 03 02 0F
	第四路只开:1A CA 27 87 00 00 03 01 0F
	第四路只关: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 秒钟之内允许写地址,如果有拨码开关,需要将拨码开关拨到 0 的位置。
0x70读变量前 3 个字节为 0x00 0x00 0x00。第 4 个字节代表变量的序号
 0x71 写变量3 个字节代表变量的值,高位字节在前。第 4 个字节代表变量的序号

下位机返回数据帧格式:

数据头地址功能码数据区校验和
1 字节0x221 字节1 字节1 字节2 字节3 字节4 字节1 字节,将前面的7 个字节相加

下位机返回数据帧说明:

功能码功能码说明数据区内容(4 个字节)
0x10读取状态 继电器输出板或者输入检测板:数据区域 4 个字节,每个字节 8  位,共 32 位。代表 32 路的状态。最后 1 字节的第 0 位代表第 1 路,依次类推。 输入输出板:第 12 个字节代表输入的状态,第 34个字节代表输出的状态。
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


总结

以上是每个功能码的示例数据帧,涵盖了上位机发送和下位机返回的所有场景。每个示例都包含了完整的数据帧结构和校验和计算,确保协议的正确性和完整性。如果需要进一步的解释或修改,请随时告诉我!

进阶玩法

上位机配置软件

8路智能控制器使用说明书插图4星耀会员1
8路智能控制器使用说明书插图5璀璨会员1
曜钻会员免费
资源价格 1积分 销售数量 330 发布时间 2025年2月23日 更新时间 2026年6月25日
已付费?登录刷新

出厂固件下载

8路智能控制器使用说明书插图4星耀会员1
8路智能控制器使用说明书插图5璀璨会员-2
曜钻会员免费
资源价格 1积分 销售数量 330 发布时间 2025年2月23日 更新时间 2026年6月25日
已付费?登录刷新

内核与功能模块使用说明

一、内核简介

内核是用户操作模块的核心工具,用于实现以下功能:

  1. 输入与输出的映射关系。
  2. 收发字符串或其他数据。
  3. 使用定时器进行延迟或其他定时处理。
  4. 内部变量的格式转换。
  5. 其他高级功能。

二、外部输入

外部输入功能允许模块检测外部事件,支持以下触发方式:

  1. 上升沿触发(断开到闭合)。
  2. 下降沿触发(闭合到断开)。
  3. 状态触发(持续条件满足)。
  4. 单击或双击触发(需设置时间常数,默认500ms)。

三、输出状态变化

输出状态变化涉及以下内容:

  1. 指令操作面板:输出LED指示灯状态。
  2. 继电器模块:控制继电器的开/关状态。
  3. MOS输出模块:控制MOS管的开关状态。
  4. 用户可以控制单路或多路的打开、关闭、翻转,或点动操作。

四、中间继电器

中间继电器是虚拟的继电器,用于:

  1. 程序控制其开/关状态。
  2. 检测其上升沿或下降沿。
  3. 将外部连续事件转化为内部状态变化事件。

五、内部变量

内部变量是有符号变量,用于记录中间数据,支持以下操作:

  1. 作为输入:与数字比较(大于、小于、等于),用于条件判断。
  2. 作为输出:存储定时器、时间、日期、继电器状态等信息。
  3. 运算功能:支持加法运算,可作为计数器使用。

六、定时器

  1. 简介:定时器值为正整数,默认为非0减1定时器。
  2. 用法
  • 设置定时器初值(如100)。
  • 使用定时器值触发其他操作(如定时器等于80时触发)。
  1. 示例:每隔100ms,第一路输出翻转一次,并通过数据口1发送字符串“123”。

七、函数使用说明

  1. 功能:模块包含100个函数,用于增强程序易读性、节省空间、实现多级判断。
  2. 调用方法
  • 在输出选项中选择“函数调用”。
  • 参数1选择“函数调用”,参数2选择具体函数。
  1. 意义
  • 提高主程序的易读性。
  • 避免重复代码,节省空间。

八、函数使用方法

  1. 编辑:通过菜单-设置-函数列表启动函数编辑器。
  2. 存储:函数可单独存储为.hanshu文件,支持导入到主程序或函数界面。
  3. 调用示例
  • 输入断开到闭合时,函数执行一次。
  • 函数每隔一秒钟执行一次。

九、系统简单设置

  1. 操作联机继电器数据口:默认数据口1。
  2. 操作联机继电器返回码:可选择带返回码或不带返回码。
  3. 擦除存储区:擦除内部变量存储区或数组存储区的ROM。

十、系统特殊设置

  1. 点动操作时间设置:设置点动继电器的时间(单位:ms)。
  2. 临时数据接收时间间隔:默认10ms,用于区分数据包。
  3. 输入连击和长按时间常数:默认500ms,用于判断双击或连击。
  4. 程序运行间隔:默认10ms,可调整。

十一、临时数据包处理

  1. 功能:接收的临时数据包存储在缓冲区,可进行处理。
  2. 应用:兼容市面上的485、串口或TTL通讯协议,实现协议转发。

十二、数组简单处理

  1. 操作
  • 加上其他数组:将一个数组添加到另一个数组尾部。
  • 赋值为其他数组:替换数组内容。
  • 删除字节:删除指定序号的字节。
  • 添加变量字节:在数组最前面添加字节。

十三、内部变量的使用方法

  1. 功能
  • 将系统变量赋值给内部变量。
  • 将内部变量值赋值给其他变量。
  • 支持位操作,读写某一位的值。
  1. 存储:支持将内部变量保存到RAM或非易失性存储区(需硬件支持)。

十四、定时处理

  1. 功能:通过时钟芯片实现定时任务。
  2. 示例
  • 每天早上和下午定时打开第一路继电器。
  • 每天8点到12点之间保持第一路闭合。

十五、格式转换

  1. 内部变量与数组转换
  • 十进制字符串与内部变量相互转换。
  • 数组与内部变量相互转换(高位在前,低位在后)。
  1. 示例
  • 内部变量123转换为数组0x31 0x32 0x33
  • 数组0x01 0x02转换为内部变量值33。

十六、实际应用 – 提取临时数据中的变量

  1. 功能:接收临时数据后,提取特定字节并转换为内部变量。
  2. 示例
  • 判断数据包字节数和前两个字节值。
  • 提取第3到第6字节的值并转换为内部变量1。

十七、实际应用 – 变量按固定格式发送

  1. 功能:将内部变量转换为数组,并添加头尾字节后发送。
  2. 示例
  • 将内部变量1转换为数组,添加22 01 10头字节和校验字节后发送。

十八、实际应用 – 协议转换器

  1. 功能:将不同厂家的协议对接,实现设备间的通信。
  2. 前提:厂家通讯协议开放。

十九、实际应用 – 电子协议举例

  1. 功能:接收数据后,判断字节和校验成功后执行相应操作。
  2. 示例
  • 判断前两个字节和校验成功后,执行函数1。
  • 函数1内部继续判断其他字节,执行相应操作。

程序示例文件

8路智能控制器使用说明书插图4星耀会员1
8路智能控制器使用说明书插图5璀璨会员1
曜钻会员免费
资源价格 1积分 销售数量 328 发布时间 2025年2月23日 更新时间 2026年6月25日
已付费?登录刷新

六、注意事项

  1. 安全警告
  • 严禁带电接线!
  • 感性负载(如电机)需额外加装保护电路。
  1. 网络问题
  • 若指示灯不亮,检查电源和网线。
  • 勿修改默认网络配置,否则需联系技术支持复位。
  1. 协议调试
  • 推荐工具:USB转485模块 + 串口调试助手。
  • 指令无效?检查地址和校验和是否正确!

七、技术支持

  • 客服电话:18801054468
技术术语(共 4 个)—— 点击展开
功能码Modbus功能码指定读/写操作类型,如01读线圈、03读保持寄存器
波特率串行通信每秒传输符号数,Modbus RTU常用9600/19200
网关协议转换设备,如 Modbus RTU ↔ Modbus TCP
串口计算机与外部设备进行串行通信的物理接口
来源/工具信息 —— 点击展开
来源 Modbus中文网(modbus.cn) —— 国内领先的Modbus通信协议技术社区 分类 产品说明书 字数 13450 字 · 阅读约 34 分钟 更新 2026-06-25 永久链接 https://www.modbus.cn/8%e8%b7%af%e6%99%ba%e8%83%bd%e6%8e%a7%e5%88%b6%e5%99%a8%e4%bd%bf%e7%94%a8%e8%af%b4%e6%98%8e%e4%b9%a6/
推荐工具:Modbus调试助手 微信小程序
Modbus中文网官方推出的Modbus调试工具,支持 Modbus RTU/TCP 实时通信调试、寄存器读写、线圈控制、数据监控和报文分析。 无需安装,微信搜索「Modbus调试助手」即可使用。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
相关标签
把这篇资料用于真实项目?

进入工具中心进行报文解析、CRC 校验和设备调试,或提交需求获取选型与接入建议。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注