1,要解析协议,首先要弄清楚报文格式,其中modbustcp协议中的标准格式为:
MBAP报文头(7byte) + 功能码(1byte)+ 数据(n byte)
MBAP报文头包括:
1.事务处理标识符 2字节 (表示当前的操作事务类型,例如:读取温度0x00 0x01, 读取压力0x00 0x02 )
2.协议标识符 2字节 0=Modbus协议
3.长度 2字节 后续字节的数量 (单元标识符,功能码,和数据)
4.单元标识符 1字节(表示从机编号,一个modbus主机可对应多个从机)
2.了解报文之后,接下来需要对功能码进行认识,对于协议来说,功能码有以下几项:
0x01 读线圈(coils)状态,读取单个或多个
0x02 读离散输入(discreteinputs)状态,读取单个或多个
0x03 读保持寄存器(holdingregisters),读取单个或多个
0x04 读输入寄存器(inputregisters),读取单个或多个
0x05 写单个线圈(coils)状态,单个写入
&n