传感器定制

Modbus协议

Modbus通信协议由Modicon公司(后来被施耐德电气Schneider Electric收购)于1979年制定,最初是用于可编程逻辑控制器(PLC)。目前,Modbus已经成为工业领域通信协议的业界标准,是目前工业领域应用最广泛的协议。

Modbus通讯协议支持单个主机,多个从机。根据官方规范,Modbus地址范围从1到247,地址0用于广播地址。

modbus主从结构

Modbus协议是一种请求/应答方式的交互过程,主机主动发起通讯请求,从机响应主机的请求,从机在没有收到主机的请求时,不会主动发送数据,从机之间不会进行通讯。

Modbus在7层OSI参考模型中属于第七层应用层,数据链路层有两种:基于标准串口协议和TCP协议,物理层可使用Uart、RS232、RS485、RS422,或光纤、网线、无线等多种传输介质。

Modbus与ISO

Modbus数据格式

地址码 功能码 数据长度 数据 CRC低字节 CRC高字节
1 byte 1 byte n n bytes 1 byte 1 byte




Modbus常用功能码(十进制)

Modbus功能码

功能码可以分为位操作和字操作两类。

位操作指令包括:01读线圈状态、02读(开关)输入状态、05写单个线圈和15写多个线圈。

字操作(2个字节)指令包括:03读保持寄存器、04读输入寄存器、06写单个保持寄存器和16写多个保护寄存器。

Modbus协议详解

01功能码:读线圈状态

主机发送:

主机发送 发送数据(HEX)
地址码 01
功能码 01
起始线圈地址 高字节 00
低字节 00
线圈数量 高字节 00
低字节 01
CRC校验 低字节 FD
高字节 CA

从机返回:

从机返回 发送数据(HEX)
地址码 01
功能码 01
字节数 01
线圈状态 01
CRC校验码 低字节 90
高字节 48

02功能码:读离散输入状态

主机发送:

主机发送 发送数据(HEX)
地址码 01
功能码 02
起始离散量地址 高字节 00
低字节 00
读取数量 高字节 00
低字节 04
CRC校验 低字节 FD
高字节 CA

从机返回:

从机返回 发送数据(HEX)
地址码 01
功能码 02
字节数 01
离散输入状态 0F
CRC校验码 低字节 E1
高字节 8C

03功能码:读保持寄存器

主机发送:

主机发送 发送数据(HEX)
地址码 01
功能码 03
起始寄存器地址 高字节 00
低字节 05
寄存器数量 高字节 00
低字节 02
CRC校验 低字节 D4
高字节 0A

从机返回:

从机返回 发送数据(HEX)
地址码 01
功能码 03
字节数 04
寄存器数据 低字节 11
高字节 22
寄存器数据 低字节 33
高字节 44
CRC校验码 低字节 4B
高字节 C6

04功能码:读输入寄存器

主机发送:

主机发送 发送数据(HEX)
地址码 01
功能码 04
起始寄存器地址 高字节 00
低字节 02
寄存器数量 高字节 00
低字节 01
CRC校验 低字节 90
高字节 0A

从机返回:

从机返回 发送数据(HEX)
地址码 01
功能码 04
字节数 02
寄存器数据 低字节 44
高字节 33
CRC校验码 低字节 AD
高字节 F3

05功能码:写单个线圈

主机发送:

主机发送 发送数据(HEX)
地址码 01
功能码 05
线圈地址 高字节 00
低字节 00
控制方式 高字节 00(断开)、FF(闭合)
低字节 01
CRC校验 低字节 XX
高字节 XX

从机返回:

主机发送 发送数据(HEX)
地址码 01
功能码 05
线圈地址 高字节 00
低字节 00
控制方式 高字节 00(断开)、FF(闭合)
低字节 01
CRC校验 低字节 XX
高字节 XX

06功能码:写单个保持寄存器

主机发送:

主机发送 发送数据(HEX)
地址码 01
功能码 06
寄存器地址 高字节 00
低字节 50
写入值 高字节 99
低字节 88
CRC校验 低字节 E3
高字节 ED

从机返回:

主机发送 发送数据(HEX)
地址码 01
功能码 06
寄存器地址 高字节 00
低字节 50
写入值 高字节 99
低字节 88
CRC校验 低字节 E3
高字节 ED

15功能码:写多个线圈

主机发送:

主机发送 发送数据(HEX)
地址码 01
功能码 0F
起始线圈地址 高字节 00
低字节 00
线圈数量 高字节 00
低字节 04
写入字节数 01
控制方式 00(全部断开)、0F(全部闭合)
CRC校验 低字节 XX
高字节 XX

从机返回:

主机发送 发送数据(HEX)
地址码 01
功能码 0F
寄存器地址 高字节 00
低字节 00
写入值 高字节 00
低字节 04
CRC校验 低字节 54
高字节 08

16功能码:写多个保持寄存器

主机发送:

主机发送 发送数据(HEX)
地址码 01
功能码 10
起始寄存器地址 高字节 00
低字节 20
寄存器数量 高字节 00
低字节 02
写入字节数 04
寄存器待写入值 低字节 00
高字节 05
寄存器待写入值 低字节 22
高字节 33
CRC校验 低字节 B9
高字节 03

从机返回:

主机发送 发送数据(HEX)
地址码 01
功能码 10
起始寄存器地址 高字节 00
低字节 20
寄存器数量 高字节 00
低字节 02
CRC校验 低字节 40
高字节 02

如果需要给传感器增加无线传输功能,可以通过增加无线物联网控制器实现。
● 内置电池或外接5V电源供电
● 无线传输方式支持4G、NB、WIFI、LORA
● 支持所有传感器接口

9775460cb15acb62aac9043559bac65f.jpg
【单片机-传感器】项目定制开发

dettek

声明:该文观点仅代表作者本人,我们只提供信息存储空间服务。
我来说两句
加载中~