通讯协议解读

此文章转处丢失
Modbus通信协议
Modbus协议是一种单主/多从的通信协议,其特点是在同一时间,总线上只能有一个主设备,但可以有一个或者多个(最多247个 ip地址1-247)从设备。每一个从设备一个ip地址
在请求的报文中请求的地址为0则为广播模式,248-255保留
小知识:一般请求方为主设备,应答方为从设备;从设备之间是不能直接通信的,原因是协议不支持
主设备通过两种方式向从设备发送请求报文,即单播模式和广播模式;
单播模式:主设备仅仅寻址单个从设备,从设备返回一个响应报文。
广播模式:主设备向所有的从设备发送请求指令,从设备收到指令后,各自处理,不要求返回应答;这种模式下,请求指令必须是Modbus标准功能中的写指令;比如 0x06 指令 (写单个保持寄存器)
Modbus的消息帧有多种方式,这里主要说一下Modbus Tcp消息帧;
主/从设备 - 转变为客户端和服务器;
其实就是通过TCP/IP协议在502端口上接收报文
ADU:应用数据单元
PDU:协议数据单元
下图是Modbus基本报文格式:

而Modbus TCP/IP协议在这个基础上添加一个MBAP(Modbus应用协议)

Modbus TCP/IP 消息例子
请求报文:
00 00 00 00 00 06 09 03 00 04 00 01
根据上面的协议格式从左到右:
00 00 为传输标识符; 00 00 协议标识符(这里是modbus协议); 00 06 报文后边的字节数;
09 单元标识符 (比如IP地址:10.128.99.9这个地址的从设备);03 功能码(读保持寄存器的值);00 04 Modbus起始地址;00 01 读取寄存器的个数 (这里读取一个寄存器 一个寄存器2个字节);
响应报文:
00 00 00 00 00 05 09 03 02 00 05
从左到右:
00 00 为传输标识符(与请求报文一致);00 00 协议标识符;00 05 报文后边的字节数;09 单元标识符;03 功能码; 02 后边的字节数;00 05 具体数据 (这里是一个寄存器)## 标题

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值