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

freefree技术Resources

这篇内容可直接阅读,适合用于基础学习和Search引流。

8路智能控制器使用说明书缩略图
🌐 This page is not yet available in English. Showing the Chinese version. Back to Chinese page.
本文目录
  1. 1. 一、产品简介
  2. 2. 二、核心Function与特点
  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. 指令format
  14. 14. 上位机function code示例
  15. 15. 下位机返回function code示例
  16. 16. 总结
  17. 17. 进阶玩法
  18. 18. 上位机配置软件
  19. 19. 出厂固件Download
  20. 20. 内核与Function模块使用说明
  21. 21. 程序示例文件
  22. 22. 六、Precautions
  23. 23. 七、Technical Support
8路智能控制器使用说明书插图

版本:V1.1

一、产品简介

W816是一款超小型智能可编程控制器,专为Smart Home、商业照明、农业自动化设计。无需网关,支持8路大功率继电器(每路16A),兼容手机APP、语音控制、定时任务,是家庭和商业Scene的“全能管家”。

购买产品:https://www.modbus.cn/product/30890.html

二、核心Function与特点

1. 硬件优势

  • 超小体积:仅占4个空开位,轻松装入家庭电箱。
  • 大功率负载:每路支持16A阻性负载(如灯具、插座),8A感性负载(如电机)。
  • 工业级设计:-20℃~80℃宽温工作,适应复杂环境。

2. 灵活扩展

  • 免线拼接:同层导轨安装,多个模块直接拼接扩展。
  • 全协议兼容:支持Modbus、TCP/IP、MQTT等协议,对接Smart Home平台无压力。
  • 无线转有线:支持WiFi/433M/315M转485总线,老旧设备秒变智能。

3. 小白友好

  • 拨码设address:无需软件,拨动switch即可设置设备ID(1~32)。
  • 一键恢复:误Operation可恢复出厂设置,Operation零门槛。

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

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

三、技术参数

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

四、快速上手指南

1. 安装与接线

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

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

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

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

Wiring topology图

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与1connect触发第一路继电器)

7、RUN=运行指示灯(Not connectedtcp为绿色 connecttcp为冰蓝色)

五、协议指令详解

私有协议


通讯协议说明

协议基本信息

  • Baud rate:9600
  • 默认address1A CA 27 87 00(出厂测试默认address)
  • 通用addressAA AA AA AA AA(用于特殊Operation)

协议format

协议data帧由以下部分组成:

  1. address:5 个byte,标识模块address。
  2. 指令区:根据Operation不同,Length和内容各异。
  3. checksum:固定为 0F

FunctionOperation说明

1. 查询模块address
  • 指令format5个byteaddress + 56 56 56 0F
  • Function:查询模块的当前address。
  • 示例
  1A CA 27 87 00 56 56 56 0F
2. 修改address
  • 说明:前 4 个byte固定,第 5 个byte通过拨码switch更改。
  • 示例
  1A CA 27 87 XX (XX 为拨码设置的新address)
3. 查询模块状态
  • 指令format5个byteaddress + 86 86 86 0F
  • 返回format5个byteaddress + 00 00 00 00 00 00 00 00 0F(8 个switch状态,00 表示Close,01 表示打开)
  • 示例
  查询指令:1A CA 27 87 00 86 86 86 0F
  返回示例:1A CA 27 87 00 00 01 00 01 00 01 00 0F (假设switch状态为:关-开-关-开-关-开-关-开)
4. 恢复出厂设置
  • 指令format5个byteaddress + 96 96 96 0F
  • Function:擦除 K1-K8 存储区,恢复默认设置。
  • 示例
  1A CA 27 87 00 96 96 96 0F
5. 强制设置 K1-K8 为点动模式
  • 指令format5个byteaddress + A6 A6 A6 0F
  • 说明
  • 默认为长按 5 秒自动Switch为翻转模式。
  • 设置前需先恢复出厂设置。
  • 示例
  1A CA 27 87 00 A6 A6 A6 0F

6. Open/Close K1-K8 Input data存储Function
  • Open
  • 指令format5个byteaddress + 56 56 56 0F
  • LED 表示:闪烁 1 次后保持常亮。
  • Close
  • 指令format5个byteaddress + 46 46 46 0F
  • LED 表示:闪烁 2 次后保持熄灭。
  • 示例
  Open:1A CA 27 87 00 56 56 56 0F
  Close:1A CA 27 87 00 46 46 46 0F

7. K1-K8 开/关存储指令
  • 指令format
  • Open某路:address + XX XX XX XX XX ... XX(XX 为特定值)
  • Close某路:address + XX XX XX XX XX ... XX(XX 为特定值)
  • 具体指令: Operation Open指令值 Close指令值 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 Open:1A CA 27 87 00 00 XX XX XX XX XX 0F
  K1 Close:1A CA 27 87 00 10 XX XX XX XX XX 0F

8. 单路控制
  • 指令format
  • 翻转:address + 00 00 XX 02 0F(XX 为路数 – 1)
  • 只开:address + 00 00 XX 01 0F(XX 为路数 – 1)
  • 只关:address + 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. 全路控制
  • 指令format
  • 1-8 路fully open:address + 01 01 77 88 0F
  • 1-8 路Close all:address + 01 02 77 88 0F
  • 示例
  1-8 路fully open:1A CA 27 87 00 01 01 77 88 0F
  1-8 路Close all:1A CA 27 87 00 01 02 77 88 0F

10. 通用fully open/Close all
  • 指令format
  • 通用fully open:通用address + 30 77 88 0F
  • 通用Close all:通用address + 30 77 88 0F
  • 示例
  通用fully open:AA AA AA AA AA 30 77 88 0F
  通用Close all:AA AA AA AA AA 30 77 88 0F

内部协议

1. 指令format

所有指令均为8byte,format如下:

[0x55][address][function code][data1][data2][data3][data4][checksum]  
  • checksum = 前7byte相加,取最后两位(如55+01+32+00+00+00+01=89)。

Baud rate 9600,8 个data bit,1 个stop bit,无check digit。

上位机senddata帧format:

data头addressfunction codedata areachecksum
1 byte0x55 1 byte 1 byte 1 byte 2 byte 3 byte 4 byte1 byte,将前面的 7 个byte相加,取后 8 位得到

上位机senddata帧说明:

function code说明data area内容(4 个byte)
0x10读取状态0x00,0x00,0x00,0x00
0x11断开某路第 4 个byte代表断开第几路继电器,前 3 个byte为 0。
0x12吸合某路第 4 个byte代表吸合第几路继电器,其他为 0。
 0x13 命令执行data area域共 4 个byte,每个byte 8 位,共 32 位。最多可代表 32 路switch量的状态。最后一个byte的第 0 位代表第 1 路,第 1 个byte的最高位代表最后一路。
 0x14 组断开data area域共 4 个byte,每个byte 8 位,共 32 位。最多代表对 32路的Operation,1 代表断开 0 代表保持原来状态。最后 1 个byte的第0 位(BIT0)代表第 1 路,依次类推。
 0x15 组吸合data area域共 4 个byte,每个byte 8 位,共 32 位。最多代表对 32路的Operation,1 代表吸合 0 代表保持原来状态。最后 1 个byte的第0 位(BIT0)代表第 1 路,依次类推。
 0x16 组翻转data area域共 4 个byte,每个byte 8 位,共 32 位。最多代表对 32路的Operation,1 代表翻转 0 代表保持原来状态。最后 1 个byte的第0 位(BIT0)代表第 1 路,依次类推。
0x20翻转某路data中的第 4 个byte代表翻转第几路继电器,其他为 0。
 0x21 点动闭合data的第 1、2、3 byte代表time(高位byte在前,单位 ms), 第 4 bytes代表第几路
 0x22 点动断开data的第 1、2、3 byte代表time(高位byte在前,单位 ms),第 4 bytes代表第几路
0x30翻转某路参考function code 0x20,但是下位机不返回data,指令可以连续send。
0x31断开某路参考function code 0x11,但是下位机不返回data,指令可以连续send。
0x32吸合某路参考function code 0x12,但是下位机不返回data,指令可以连续send。
0x33命令执行参考function code 0x13,但是下位机不返回data,指令可以连续send。
0x34组断开参考function code 0x14,但是下位机不返回data,指令可以连续send。
0x35组吸合参考function code 0x15,但是下位机不返回data,指令可以连续send。
0x36组翻转参考function code 0x16,但是下位机不返回data,指令可以连续send。
0x37点动闭合参考function code 0x21,但是下位机不返回data,指令可以连续send。
0x38点动断开参考function code 0x22,但是下位机不返回data,指令可以连续send。
 0x40 读address0x00,0x00,0x00,0x00Precautions,使用广播address 245 来读取模块address。
 0x41 写addressdata中的第 4 个byte代表模块的新address。Precautions:上电 10 秒钟之内允许写address,如果有拨码switch,需要将拨码switch拨到 0 的位置。
0x70读变量前 3 个byte为 0x00 0x00 0x00。第 4 个byte代表变量的Serial number
 0x71 写变量3 个byte代表变量的值,高位byte在前。第 4 个byte代表变量的Serial number

下位机返回data帧format:

data头addressfunction codedata areachecksum
1 byte0x221 byte1 byte1 byte2 byte3 byte4 byte1 byte,将前面的7 个byte相加

下位机返回data帧说明:

function codefunction code说明data area内容(4 个byte)
0x10读取状态 继电器输出板或者输入检测板:data area域 4 个byte,每个byte 8  位,共 32 位。代表 32 路的状态。最后 1 byte的第 0 位代表第 1 路,依次类推。 输入输出板:第 12 个byte代表输入的状态,第 34个byte代表输出的状态。
0x11断开某一路
0x12吸合某一路
0x13命令执行
0x14组断开
0x15组吸合
0x16组翻转
0x40返回模块address
0x70读内部变量3 个byte代表内部变量的值,高位byte在前。4 个byte代表内部变量是Serial numberPrecautions:此function code只适用于支持内核可编程的模块
0x71写内部变量

广播address说明:

个别情况下,需要快速的打开或者Close总线上所有继电器,这个时候使用广播address, 广播address的值为 245,也就是说,向address 245  send的指令,总线上的每一个address都会执行,Close广播address 245 的继电器,也就是Close总线上的所有继电器,同样的道

理,打开广播address 245 的继电器,也就是打开总线上所有的继电器。

0x30-0x38 function code为指令连发function code,因为这些function code没有回码,所以可以连续send,因此可以更快速的send指令。为了让指令更快速的send,引入了data连发指令

很多情况下,用户不需要查询或知道继电器板的当前状态,只需要按照自己的要求来打开或者Close某几路,这个时候使用无回码指令就会很方便。

无回码指令表(以address 1 为例,指令可连续send):

吸合第 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
吸合All 55 01 33 FF FF FF FF 85断开All 55 01 33 00 00 00 00 89

好的,我将为每个function code提供一个具体的Sample data帧,以帮助更好地理解协议的使用。以下是详细的function code示例:


上位机function code示例

0x10 – 读取状态

  • Function描述:读取继电器的状态。
  • data area0x00, 0x00, 0x00, 0x00
  • Sample data帧
  data头:0x55
  address:0x01
  function code:0x10
  data area:0x00, 0x00, 0x00, 0x00
  checksum:0x55 + 0x01 + 0x10 + 0x00 + 0x00 + 0x00 + 0x00 = 0x66

完整data帧55 01 10 00 00 00 00 66


0x11 – 断开某路

  • Function描述:断开指定的继电器路。
  • data area:前 3 byte为 0x00,第 4 bytes为断开的继电器路数(例如,断开第 3 路)。
  • Sample data帧
  data头:0x55
  address:0x01
  function code:0x11
  data area:0x00, 0x00, 0x00, 0x03
  checksum:0x55 + 0x01 + 0x11 + 0x00 + 0x00 + 0x00 + 0x03 = 0x6A

完整data帧55 01 11 00 00 00 03 6A


0x12 – 吸合某路

  • Function描述:吸合指定的继电器路。
  • data area:前 3 byte为 0x00,第 4 bytes为吸合的继电器路数(例如,吸合第 5 路)。
  • Sample data帧
  data头:0x55
  address:0x01
  function code:0x12
  data area:0x00, 0x00, 0x00, 0x05
  checksum:0x55 + 0x01 + 0x12 + 0x00 + 0x00 + 0x00 + 0x05 = 0x6D

完整data帧55 01 12 00 00 00 05 6D


0x13 – 命令执行

  • Function描述:控制多路继电器的状态。
  • data area:4 bytes,每byte 8 位,共 32 位,代表 32 路继电器的状态(1 表示吸合,0 表示断开)。
  • Sample data帧
  data头:0x55
  address:0x01
  function code:0x13
  data area:0x00, 0x00, 0x00, 0x0F (吸合第 1-4 路)
  checksum:0x55 + 0x01 + 0x13 + 0x00 + 0x00 + 0x00 + 0x0F = 0x73

完整data帧55 01 13 00 00 00 0F 73


0x14 – 组断开

  • Function描述:断开指定的多路继电器。
  • data area:4 bytes,每byte 8 位,共 32 位,1 表示断开,0 表示保持原状态。
  • Sample data帧
  data头:0x55
  address:0x01
  function code:0x14
  data area:0x00, 0x00, 0x00, 0x01 (断开第 1 路)
  checksum:0x55 + 0x01 + 0x14 + 0x00 + 0x00 + 0x00 + 0x01 = 0x6B

完整data帧55 01 14 00 00 00 01 6B


0x15 – 组吸合

  • Function描述:吸合指定的多路继电器。
  • data area:4 bytes,每byte 8 位,共 32 位,1 表示吸合,0 表示保持原状态。
  • Sample data帧
  data头:0x55
  address:0x01
  function code:0x15
  data area:0x00, 0x00, 0x00, 0x02 (吸合第 2 路)
  checksum:0x55 + 0x01 + 0x15 + 0x00 + 0x00 + 0x00 + 0x02 = 0x6C

完整data帧55 01 15 00 00 00 02 6C


0x16 – 组翻转

  • Function描述:翻转指定的多路继电器。
  • data area:4 bytes,每byte 8 位,共 32 位,1 表示翻转,0 表示保持原状态。
  • Sample data帧
  data头:0x55
  address:0x01
  function code:0x16
  data area:0x00, 0x00, 0x00, 0x04 (翻转第 3 路)
  checksum:0x55 + 0x01 + 0x16 + 0x00 + 0x00 + 0x00 + 0x04 = 0x6E

完整data帧55 01 16 00 00 00 04 6E


0x20 – 翻转某路

  • Function描述:翻转指定的继电器路。
  • data area:前 3 byte为 0x00,第 4 bytes为翻转的继电器路数(例如,翻转第 7 路)。
  • Sample data帧
  data头:0x55
  address:0x01
  function code:0x20
  data area:0x00, 0x00, 0x00, 0x07
  checksum:0x55 + 0x01 + 0x20 + 0x00 + 0x00 + 0x00 + 0x07 = 0x7D

完整data帧55 01 20 00 00 00 07 7D


0x21 – 点动闭合

  • Function描述:点动闭合指定的继电器路。
  • data area:前 3 byte为time(单位 ms,高位在前),第 4 bytes为继电器路数(例如,闭合第 6 路,time 1000ms)。
  • Sample data帧
  data头:0x55
  address:0x01
  function code:0x21
  data area:0x00, 0x03, 0xE8, 0x06 (1000ms,第 6 路)
  checksum:0x55 + 0x01 + 0x21 + 0x00 + 0x03 + 0xE8 + 0x06 = 0x88

完整data帧55 01 21 00 03 E8 06 88


0x22 – 点动断开

  • Function描述:点动断开指定的继电器路。
  • data area:前 3 byte为time(单位 ms,高位在前),第 4 bytes为继电器路数(例如,断开第 9 路,time 500ms)。
  • Sample data帧
  data头:0x55
  address:0x01
  function code:0x22
  data area:0x00, 0x01, 0xF4, 0x09 (500ms,第 9 路)
  checksum:0x55 + 0x01 + 0x22 + 0x00 + 0x01 + 0xF4 + 0x09 = 0x7B

完整data帧55 01 22 00 01 F4 09 7B


0x30 – 翻转某路(连发)

  • Function描述:翻转指定的继电器路,无返回data。
  • data area:前 3 byte为 0x00,第 4 bytes为翻转的继电器路数(例如,翻转第 12 路)。
  • Sample data帧
  data头:0x55
  address:0x01
  function code:0x30
  data area:0x00, 0x00, 0x00, 0x0C
  checksum:0x55 + 0x01 + 0x30 + 0x00 + 0x00 + 0x00 + 0x0C = 0x8E

完整data帧55 01 30 00 00 00 0C 8E


0x31 – 断开某路(连发)

  • Function描述:断开指定的继电器路,无返回data。
  • data area:前 3 byte为 0x00,第 4 bytes为断开的继电器路数(例如,断开第 15 路)。
  • Sample data帧
  data头:0x55
  address:0x01
  function code:0x31
  data area:0x00, 0x00, 0x00, 0x0F
  checksum:0x55 + 0x01 + 0x31 + 0x00 + 0x00 + 0x00 + 0x0F = 0x91

完整data帧55 01 31 00 00 00 0F 91


0x32 – 吸合某路(连发)

  • Function描述:吸合指定的继电器路,无返回data。
  • data area:前 3 byte为 0x00,第 4 bytes为吸合的继电器路数(例如,吸合第 20 路)。
  • Sample data帧
  data头:0x55
  address:0x01
  function code:0x32
  data area:0x00, 0x00, 0x00, 0x14
  checksum:0x55 + 0x01 + 0x32 + 0x00 + 0x00 + 0x00 + 0x14 = 0x9C

完整data帧55 01 32 00 00 00 14 9C


0x33 – 命令执行(连发)

  • Function描述:控制多路继电器的状态,无返回data。
  • data area:4 bytes,每byte 8 位,共 32 位,代表 32 路继电器的状态(1 表示吸合,0 表示断开)。
  • Sample data帧
  data头:0x55
  address:0x01
  function code:0x33
  data area:0x00, 0x00, 0x00, 0x1F (吸合第 1-5 路)
  checksum:0x55 + 0x01 + 0x33 + 0x00 + 0x00 + 0x00 + 0x1F = 0xA3

完整data帧55 01 33 00 00 00 1F A3


0x34 – 组断开(连发)

  • Function描述:断开指定的多路继电器,无返回data。
  • data area:4 bytes,每byte 8 位,共 32 位,1 表示断开,0 表示保持原状态。
  • Sample data帧
  data头:0x55
  address:0x01
  function code:0x34
  data area:0x00, 0x00, 0x00, 0x08 (断开第 4 路)
  checksum:0x55 + 0x01 + 0x34 + 0x00 + 0x00 + 0x00 + 0x08 = 0x98

完整data帧55 01 34 00 00 00 08 98


0x35 – 组吸合(连发)

  • Function描述:吸合指定的多路继电器,无返回data。
  • data area:4 bytes,每byte 8 位,共 32 位,1 表示吸合,0 表示保持原状态。
  • Sample data帧
  data头:0x55
  address:0x01
  function code:0x35
  data area:0x00, 0x00, 0x00, 0x10 (吸合第 5 路)
  checksum:0x55 + 0x01 + 0x35 + 0x00 + 0x00 + 0x00 + 0x10 = 0x9B

完整data帧55 01 35 00 00 00 10 9B


0x36 – 组翻转(连发)

  • Function描述:翻转指定的多路继电器,无返回data。
  • data area:4 bytes,每byte 8 位,共 32 位,1 表示翻转,0 表示保持原状态。
  • Sample data帧
  data头:0x55
  address:0x01
  function code:0x36
  data area:0x00, 0x00, 0x00, 0x20 (翻转第 6 路)
  checksum:0x55 + 0x01 + 0x36 + 0x00 + 0x0 +0 0x00 + 0x20 = 0xA2

完整data帧55 01 36 00 00 00 20 A2


0x37 – 点动闭合(连发)

  • Function描述:点动闭合指定的继电器路,无返回data。
  • data area:前 3 byte为time(单位 ms,高位在前),第 4 bytes为继电器路数(例如,闭合第 8 路,time 2000ms)。
  • Sample data帧
  data头:0x55
  address:0x01
  function code:0x37
  data area:0x00, 0x07, 0xD0, 0x08 (2000ms,第 8 路)
  checksum:0x55 + 0x01 + 0x37 + 0x00 + 0x07 + 0xD0 + 0x08 = 0xA8

完整data帧55 01 37 00 07 D0 08 A8


0x38 – 点动断开(连发)

  • Function描述:点动断开指定的继电器路,无返回data。
  • data area:前 3 byte为time(单位 ms,高位在前),第 4 bytes为继电器路数(例如,断开第 16 路,time 1500ms)。
  • Sample data帧
  data头:0x55
  address:0x01
  function code:0x38
  data area:0x00, 0x05, 0xDC, 0x10 (1500ms,第 16 路)
  checksum:0x55 + 0x01 + 0x38 + 0x00 + 0x05 + 0xDC + 0x10 = 0xB5

完整data帧55 01 38 00 05 DC 10 B5


0x40 – 读address

  • Function描述:读取模块address。
  • data area0x00, 0x00, 0x00, 0x00
  • Sample data帧
  data头:0x55
  address:0xF5 (广播address 245)
  function code:0x40
  data area:0x00, 0x00, 0x00, 0x00
  checksum:0x55 + 0xF5 + 0x40 + 0x00 + 0x00 + 0x00 + 0x00 = 0x8F

完整data帧55 F5 40 00 00 00 00 8F


0x41 – 写address

  • Function描述:写入模块的新address。
  • data area:前 3 byte为 0x00,第 4 bytes为新address(例如,新address为 0x02)。
  • Sample data帧
  data头:0x55
  address:0x01
  function code:0x41
  data area:0x00, 0x00, 0x00, 0x02
  checksum:0x55 + 0x01 + 0x41 + 0x00 + 0x00 + 0x00 + 0x02 = 0x9A

完整data帧55 01 41 00 00 00 02 9A


0x70 – 读变量

  • Function描述:读取内部变量。
  • data area:前 3 byte为 0x00,第 4 bytes为变量Serial number(例如,读取Serial number为 1 的变量)。
  • Sample data帧
  data头:0x55
  address:0x01
  function code:0x70
  data area:0x00, 0x00, 0x00, 0x01
  checksum:0x55 + 0x01 + 0x70 + 0x00 + 0x00 + 0x00 + 0x01 = 0xC7

完整data帧55 01 70 00 00 00 01 C7


0x71 – 写变量

  • Function描述:写入内部变量。
  • data area:前 3 byte为变量值(高位在前),第 4 bytes为变量Serial number(例如,写入Serial number为 2 的变量,值为 0x123456)。
  • Sample data帧
  data头:0x55
  address:0x01
  function code:0x71
  data area:0x12, 0x34, 0x56, 0x02
  checksum:0x55 + 0x01 + 0x71 + 0x12 + 0x34 + 0x56 + 0x02 = 0xA1

完整data帧55 01 71 12 34 56 02 A1


下位机返回function code示例

0x10 – 读取状态

  • Function描述:返回继电器的状态。
  • data area:4 bytes,每byte 8 位,共 32 位,代表 32 路继电器的状态(1 表示吸合,0 表示断开)。
  • Sample data帧
  data头:0x22
  address:0x01
  function code:0x10
  data area:0x00, 0x00, 0x00, 0x0F (第 1-4 路吸合,其余断开)
  checksum:0x22 + 0x01 + 0x10 + 0x00 + 0x00 + 0x00 + 0x0F = 0x42

完整data帧22 01 10 00 00 00 0F 42


0x40 – 返回模块address

  • Function描述:返回模块的当前address。
  • data area:4 bytes,返回模块address(例如,address为 0x03)。
  • Sample data帧
  data头:0x22
  address:0x03
  function code:0x40
  data area:0x00, 0x00, 0x00, 0x03
  checksum:0x22 + 0x03 + 0x40 + 0x00 + 0x00 + 0x00 + 0x03 = 0x68

完整data帧22 03 40 00 00 00 03 68


0x70 – 读内部变量

  • Function描述:返回内部变量的值。
  • data area:前 3 byte为变量值(高位在前),第 4 bytes为变量Serial number(例如,Serial number为 1 的变量值为 0x123456)。
  • Sample data帧
  data头:0x22
  address:0x01
  function code:0x70
  data area:0x12, 0x34, 0x56, 0x01
  checksum:0x22 + 0x01 + 0x70 + 0x12 + 0x34 + 0x56 + 0x01 = 0x8C

完整data帧22 01 70 12 34 56 01 8C


总结

以上是每个function code的Sample data帧,涵盖了上位机send和下位机返回的所有Scene。每个示例都包含了完整的data帧结构和checksum计算,确保协议的正确性和完整性。如果需要进一步的解释或修改,请随时告诉我!

进阶玩法

上位机配置软件

8路智能控制器使用说明书插图4星耀member1
8路智能控制器使用说明书插图5璀璨member1
曜钻memberfree
资源价格 1积分 销售quantity 330 Published 2025年2月23日 更新time 2026年6月25日
已付费?Loginrefresh

出厂固件Download

8路智能控制器使用说明书插图4星耀member1
8路智能控制器使用说明书插图5璀璨member-2
曜钻memberfree
资源价格 1积分 销售quantity 330 Published 2025年2月23日 更新time 2026年6月25日
已付费?Loginrefresh

内核与Function模块使用说明

一、内核简介

内核是用户Operation模块的核心Tools,用于实现以下Function:

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

二、外部输入

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

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

三、输出状态变化

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

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

四、中间继电器

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

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

五、内部变量

内部变量是有符号变量,用于记录中间data,支持以下Operation:

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

六、定时器

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

七、函数使用说明

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

八、函数使用方法

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

九、system简单设置

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

十、system特殊设置

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

十一、临时data包处理

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

十二、数组简单处理

  1. Operation
  • 加上其他数组:将一个数组添加到另一个数组尾部。
  • 赋值为其他数组:替换数组内容。
  • Deletebyte:Delete指定Serial number的byte。
  • 添加变量byte:在数组最前面添加byte。

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

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

十四、定时处理

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

十五、format转换

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

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

  1. Function:receive临时data后,提取特定byte并转换为内部变量。
  2. 示例
  • 判断data包byte count和前两个byte值。
  • 提取第3到第6byte的值并转换为内部变量1。

十七、实际应用 – 变量按固定formatsend

  1. Function:将内部变量转换为数组,并添加头尾byte后send。
  2. 示例
  • 将内部变量1转换为数组,添加22 01 10头byte和校验byte后send。

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

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

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

  1. Function:receivedata后,判断byte和校验成功后执行相应Operation。
  2. 示例
  • 判断前两个byte和校验成功后,执行函数1。
  • 函数1内部继续判断其他byte,执行相应Operation。

程序示例文件

8路智能控制器使用说明书插图4星耀member1
8路智能控制器使用说明书插图5璀璨member1
曜钻memberfree
资源价格 1积分 销售quantity 328 Published 2025年2月23日 更新time 2026年6月25日
已付费?Loginrefresh

六、Precautions

  1. 安全警告
  • 严禁带电接线!
  • 感性负载(如电机)需额外加装保护电路。
  1. 网络问题
  • 若指示灯不亮,检查电源和网线。
  • 勿修改默认网络配置,否则需Contact technical support复位。
  1. 协议debug
  • Recommended Tools:USB转485模块 + Serial Port DebuggingAssistant。
  • 指令Invalid?检查address和checksum是否正确!

七、Technical Support

  • 客服电话:18801054468
技术术语(共 4 个)—— 点击展开
function codeModbusfunction code指定读/写OperationType,如01读线圈、03读保持register
Baud rate串行通信每秒传输符号数,Modbus RTU常用9600/19200
网关协议转换设备,如 Modbus RTU ↔ Modbus TCP
串口计算机与外部设备进行串行通信的物理接口
来源/Tools信息 —— 点击展开
来源 Modbus Chinese Network(modbus.cn) —— China leadingModbus通信协议技术社区 Category 产品说明书 字数 13450 字 · 阅读约 34 分钟 更新 2026-06-25 永久链接 https://www.modbus.cn/29276.html
Recommended Tool: Modbus Debug Assistant WeChat Mini Program
Modbus Chinese Network官方推出的Modbus DebuggingTools,支持 Modbus RTU/TCP 实时通信debug、register读写、线圈控制、data监控和message分析。 无需安装,微信Search「Modbus DebuggingAssistant」即可使用。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
RelatedTags
把这篇Resources用于真实项目?

进入Tools中心进行messageParse、CRC verification和设备debug,或Submit requirements获取选型与接入建议。

工程师member

把这篇文章变成可执行的debugResources

开通后可使用高级messageParse、Resources包Download、Code Example、工程案例和优先Technical Support,适合真实项目交付。

高级Tools不限次
Resources包与代码包
Complete Engineering Case Library
优先Technical Support入口

发表回复

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