信科电子modbus控制模块通讯协议与寄存器地址说明V1.2

word格式下载,更直观

广播地址245(0xF5)

如果不知道板的当前地址,可以使用广播地址通讯,但是总线上的每一块板都会做出响应。

 

功能码1 读取多线圈

通讯寄存器地址:0-63,对应1-64路继电器的状态

以模块通讯地址1举例:

发送
01
01
00 00
00 05
FC 09
模块地址
功能码
寄存器地址
继电器数量
CRC校验
返回
01
01
05
00
53 48
模块地址
功能码
寄存器地址
状态一个字节
CRC校验

功能:读取第1到第5路继电器的状态(此例为全部断开状态)

 

发送
01
01
00 00
00 40
3D FA
模块地址
功能码
寄存器地址
继电器数量
CRC校验
返回
01
01
64
FF FF FF FF FF FF FF FF
23 9A
模块地址
功能码
寄存器地址
状态8个字节
CRC校验

功能:读取第1到第64路继电器的状态(此例为全部吸合状态)

 

功能码3 读取多寄存器

寄存器地址0:读取当前地址 单独读取

寄存器地址1:读取当前电路板软件版本号 单独读取

寄存器地址2:用户自定义数据,掉电非易失 单独读取

寄存器地址1000-1003:十六进制03E8,读取继电器的状态,四个寄存器含有八个字节,代表64路继电器的状态。

每个寄存器两个字节,一共四个寄存器,八个字节,代表64路继电器的最新状态。

以寄存器地址1000-1003,模块通讯地址1举例:

发送
01
03
03 E8
00 04
C4 79
模块地址
功能码
寄存器地址
寄存器数量
CRC校验
返回
01
03
08
FF FF FF FF FF FF FF FF
D4 53
模块地址
功能码
数字字节数量
数据(继电器状态8个字节)
CRC校验

功能:读取第1到第64路继电器的状态(此例为全部吸合状态)

 

功能码5 强制单线圈

通讯寄存器地址:0-63 ,对应1-64路继电器的状态

以模块通讯地址1举例:

发送
01
05
00 08
00 00
4C 08
模块地址
功能码
继电器编号
新的状态
CRC校验
返回
01
05
00 08
00 00
4C 08
模块地址
功能码
继电器编号
状态
CRC校验

功能:关闭第9路继电器的状态,因为是从0开始编号,所以数据8代表第九个继电器

 

发送
01
05
00 03
FF 00
7C 3A
模块地址
功能码
继电器编号
新的状态
CRC校验
返回
01
05
00 03
FF 07
7C 3A
模块地址
功能码
继电器编号
状态
CRC校验

功能:打开第四路继电器,因为是从0开始编号,所以数据3代表第四个继电器

 

功能码6 强制单寄存器

寄存器地址0功能:强制写入新的通讯地址,以广播地址245(0xF5)举例。

发送
F5
06
00 00
00 03
CRCH CRCL
模块地址
功能码
寄存器地址
寄存器值
CRC校验
返回
F5
06
00 00
00 03
CRCH CRCL
模块地址
功能码
寄存器地址
寄存器值
CRC校验

功能:使用广播地址,将目标板的通讯地址设置为3

 

寄存器地址1功能:写入无效。

寄存器地址2功能:写入用户自定义数据,以模块通讯地址1为例

发送
01
06
00 02
12 A5
4E D1
模块地址
功能码
寄存器地址
寄存器值
CRC校验
返回
01
06
00 02
12 A5
4E D1
模块地址
功能码
寄存器地址
寄存器值
CRC校验

功能:将用户自定义数据设置为0x12A5,掉电不丢失。

 

寄存器地址3功能 :关闭某一路通讯地址,向这个地址写入几,第几路的继电器就会关闭。

发送
01
06
00 03
00 03
39 CB
模块地址
功能码
寄存器地址
寄存器值
CRC校验
返回
01
06
00 03
00 03
39 CB
模块地址
功能码
寄存器地址
寄存器值
CRC校验

功能:关闭第三路继电器。

 

寄存器地址4功能 :打开某一路通讯地址,向这个地址写入几,第几路的继电器就会打开。

发送
01
06
00 04
00 03
88 0A
模块地址
功能码
寄存器地址
寄存器值
CRC校验
返回
01
06
00 04
00 03
88 0A
模块地址
功能码
寄存器地址
寄存器值
CRC校验

功能:打开第三路继电器。

 

寄存器地址5功能 :翻转某一路通讯地址,向这个地址写入几,第几路的继电器就会翻转。

发送
01
06
00 05
00 03
D9 CA
模块地址
功能码
寄存器地址
寄存器值
CRC校验
返回
01
06
00 05
00 03
D9 CA
模块地址
功能码
寄存器地址
寄存器值
CRC校验

功能:翻转第三路继电器。继电器的状态发生翻转

寄存器地址13,14,15 功能与寄存器地址3,4,5的功能相同,只是电路板不会返回任何数据,支持数据连续发送,方便编写主机程序。

 

通讯寄存器地址:1000-1003 ,对应1-64路继电器的状态

以模块通讯地址1举例:

发送
01
06
03 E8
23 78
10 A8
模块地址
功能码
寄存器地址
寄存器值
CRC校验
返回
01
06
03 E8
23 78
10 A8
模块地址
功能码
寄存器地址
寄存器值
CRC校验

功能:将寄存器地址03 E8(十进制1000)的值设置为23 78,对应第1-16路继电器的新状态

 

发送
01
06
03 E9
23 78
41 68
模块地址
功能码
寄存器地址
寄存器值
CRC校验
返回
01
06
03 E9
23 78
41 68
模块地址
功能码
寄存器地址
寄存器值
CRC校验

功能:将寄存器地址03 E9(十进制1001)的值设置为23 78,对应第17-32路继电器的新状态

寄存器通讯地址2000-2003 功能与寄存器通讯地址1000-1003相同,电路板不返回任何指令,方便进行数据连续发送。

 

功能码15 强制多线圈,十六进制0x0F

通讯寄存器地址:0-63 ,对应1-64路继电器的状态

以模块通讯地址1举例:

发送
01
0F
00 00
00 04
01
0F
7E 92
模块地址
功能码
继电器编号
继电器数量
字节数量
状态
CRC校验
返回
01
0F
00 00
00 04
54 08
模块地址
功能码
继电器编号
继电器数量
CRC校验

功能:打开第1-4路继电器

 

发送
01
0F
00 00
00 10
02
5F 08
DA 16
模块地址
功能码
继电器编号
继电器数量
字节数量
状态
CRC校验
返回
01
0F
00 00
00 10
54 08
模块地址
功能码
继电器编号
继电器数量
CRC校验

功能:打开第1-5路,第7路,第12路继电器

 

功能码16 强制多寄存器,十六进制0x10.

通讯寄存器地址:1000-1003 ,对应1-64路继电器的状态

以模块通讯地址1举例:

发送
01
10
03 E8
00 01
02
23 78
9B 6A
模块地址
功能码
寄存器地址
寄存器数量
字节数量
数据
CRC校验
返回
01
10
03 E8
00 01
81 B9
模块地址
功能码
寄存器地址
寄存器数量
CRC校验

功能:将寄存器地址03 E8(十进制1000)的值设置为23 78,对应第1-16路继电器的新状态

 

发送
01
10
03 E8
00 04
08
......
CRCH CRCL
模块地址
功能码
寄存器地址
寄存器数量
字节数量
8字节数据
CRC校验
返回
01
10
03 E8
00 04
CRCH CRCL
模块地址
功能码
寄存器地址
寄存器数量
CRC校验

功能:将寄存器地址03 E8(十进制1000)开始的四个寄存器更新为新的值,也就是寄存器1000,1001,1002,1003,对应1-64路继电器的新的状态

数据举例:

发送
01
10
03 E8
00 04
08
01 02 03 04 05 06 07 08
20 5C
模块地址
功能码
寄存器地址
寄存器数量
字节数量
8字节数据
CRC校验
返回
01
10
00 E8
00 04
41 BA
模块地址
功能码
寄存器地址
寄存器数量
CRC校验

功能:将寄存器地址03 E8(十进制1000)开始到四个寄存器分别设置为十六进制:0x0102 0x 0304 0x 0506 0x 0708。