modbus通信协议是什么?
> **首先知道通信驱动**:串口,232,485,can等
> **通信协议**:是纯软件,保证一个合格的数据串,并且响应出一个数据串。**所以modebus通信协议**:是一组数据应该有规定的格式,比如一组数据中有
那几个字节是帧头,几个字节是表命令,几个字节是表示地址,还有crc校验;
标准的modbus——RTU为(modbus其实有三种)
大概如下:帧报文,下地址是软地址,判断数值赋予一个地址,其实还有一个设备地址(没详细看标准协议)
modbus_rtu | |||||
命令 | 地址 | 数据 | CRC16检验码 | ||
byte | byte | byte | byte0 | byte0 | byte0 |
值得注意的是帧与帧之间,应该差出3.5个字符的时间。大概10ms就足够了。没有差出这个时间就判断视为错误的报文。
我用的通信协议(改进的):
读寄储器(主机发送) | |||||||
帧头 | 帧长度 | 命令 | 地址 | 数据长度 | CRC16检验码 |
读寄储器(响应) | |||||||
帧头 | 帧长度 | 命令 | 地址 | 数据 | CRC16检验码 |
源文件
标准协议
(81条消息) 工控-单片机-modbus协议资源-CSDN文库
程序流程图