[工控]Modbus初步学习
像IIC、SPI、UART、蓝牙都是属于通信标准
而Modbus是一种应用层的报文传输协议,具体分成RTU、ASCLL、TCP三种。
学习视频:这节课带你吃透Modbus通信协议_哔哩哔哩_bilibili
Modbus
存储区:
输出线圈(0)、输入线圈(1)、输出寄存器(4)、输入寄存器(3)
线圈是一个bit,像布尔类型。寄存器是16bit。
输入就是接收,存放报文。输出就是发送、发送报文。
储存区范围:
5位标准地址(Y XXXX):第一位表示储存区编号,后四为表示地址。 (0 0001 ~ 9 9999)
6位拓展地址(Y XXXXX): 第一位表示储存区编号,后五为表示地址。 (0 00001 ~ 0 65536)
这一般是说明书内会写出的绝对地址,使用时应该把多余的绝对地址删除,使用相对地址
读写功能:
使用时使用对应的两位数功能码
必备功能:
读输出线圈(01)、读输入线圈(02)、读输出寄存器(03)、读输入寄存器(04)
写输出线圈、写输出寄存器
经典功能:
写单个输出线圈(05)、写单个寄存器(06)
写多个输出线圈(15)、写多个寄存器(16)
ModbusRTU和ModbusAscll报文格式:
规范格式:
从站地址(即设备编号)+ 功能码 + 数据 +CRC校验
HEX内容:1bit+1bit+N bit +2bit
从站地址:
从站地址适用于多设备的情况下,每个设备都有唯一的从站地址
数据:
(读)起始寄存器、寄存器长度、返回字节数、返回数据内容等等
(写)起始地址、写数据内容等
CRC校验:
调库,会用就行