02 ModBus TCP

目录

一、ModBus TCP 一帧数据格式

二、0x01 读线圈状态

三、0x03读保持寄存器

四、0x05写单个线圈

 五、0x06 写单个寄存器

六、0x0f写多个线圈 

七、0x10:写多个保持寄存器

八、通信过程

九、不同modbus通信模式的应用场景


一、ModBus TCP 一帧数据格式

其中MBAP报文头有7个字节,分别是:

长度 描述
事物处理标识符 2个字节 用于事务处理配对,他是Modbus的事务处理码,每次通信后就要加一
协议标识符 2个字节 用于系统内的多路复用,当值为0是,表示使用ModBus协议
长度 2个字节 用于说明接下来还有多少字节的数量
单元标识符 1个字节 当ModBus客户端在请求设置这个域是,在响应中服务器必须利用相同的值返回这个域(同设备地址)

二、0x01 读线圈状态

02 ModBus TCP_第1张图片

注意:每次请求事物处理标识都应该不一样,例如每次通信后事物处理标识加1;线圈的单位是位,一个线圈只占一位

起始地址0x0013(0019)读取16个线圈的值

返回的3C 25(0011 1100 0010 0101)分别对应的就是(0019--0034)

三、0x03读保持寄存器

02 ModBus TCP_第2张图片

四、0x05写单个线圈

02 ModBus TCP_第3张图片 

 五、0x06 写单个寄存器

02 ModBus TCP_第4张图片

六、0x0f写多个线圈 

02 ModBus TCP_第5张图片

 

七、0x10:写多个保持寄存器

02 ModBus TCP_第6张图片

modbus tcp发送数据的格式起始和modbus rtu类似

modbus tcp:mbap报文头+功能码+数据

modbus rtu:设备地址+功能码+数据+CRC校验 

八、通信过程

  1. 主站设备主动向从站设备发送请求
  2. 从站设备处理主站的请求后,向主站返回结果
  3. 如果从站设备处理请求出现异常,则向主站设备返回异常功能码

九、不同modbus通信模式的应用场景

02 ModBus TCP_第7张图片

modbus ASCII模式:主要用来调试,故障排查,数据量小(ASCII码字符可以用字母形式显示,可以显示更多的调试信息,更直观)

你可能感兴趣的:(tcp/ip,网络,服务器)