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

免费免费技术资料

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

8路智能控制器使用说明书
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


总结

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

进阶玩法

内核与功能模块使用说明

一、内核简介

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

  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内部继续判断其他바이트,执行相应操作。

六、注意事项

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

七、技术支持

  • 客服电话:18801054468
相关标签
把这篇资料用于真实项目?

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

工程师会员

把这篇文章变成可执行的调试资料

开通后可使用高级报文解析、资料包下载、代码示例、工程案例和优先技术支持,适合真实项目交付。

高级工具不限次
资料包与代码包
完整工程案例库
优先技术支持入口

发表回复

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