MODBUS通信协议学习(三):应答和错误检测

您所在的位置:网站首页 modbustcp报文ack含义 MODBUS通信协议学习(三):应答和错误检测

MODBUS通信协议学习(三):应答和错误检测

2023-07-28 10:19| 来源: 网络整理| 查看: 265

目录 前言MODBUS应用协议应答方式无应答正常应答RTU模式TCP模式 异常应答RTU模式TCP模式

前言

学习了MODBUS通信方式.之后。学习一下MODBUS的应答和错误检测机制。 这篇文章在学习过程中作为记录,如有错误,请多指教。

MODBUS应用协议

MODBUS是一种简单的客户机/服务器应用协议。 通信时客户机(主机)发起请求,服务器(从机)对请求作出应答。请求和应答构成了一次完整的通信。 服务器在应答时间必须在客户机规定的时间之内,否则客户机会采用超时处理,回应的格式也要遵循通信协议的规定。

应答方式

MODBUS有三种应答情况,分别是无应答,正常应答,异常应答(指令有错误的时候)。

无应答

我们知道回应请求要在主机规定的时间内,否则主机会进入超时处理。 无应答一般发生在以下错误的时候:

通信格式不正确,比如波特率不统一。通信双方正常通信,但是帧校验不通过,此时从机不发送消息。通信地址错误,没有从机发起回应。

正常应答和异常应答是在通信成功时的应答

正常应答

主站发来的指令正常,从站用相同的数据格式正常回应,客户机复制原始功能码。 在这里插入图片描述

RTU模式

请求:

起始码地址码功能码数据区校验码停止码至少3.5字符间隔时间01-F7功能码请求数据CRC至少3.5字符间隔时间

响应:

起始码地址码功能码数据区校验码停止码至少3.5字符间隔时间01-F7功能码响应数据CRC至少3.5字符间隔时间

除了数据区和校验码,其他部分都要相同。

TCP模式

请求格式:

事物处理标识符协议标识符长度单元标识符功能码请求数据

回应格式:

事物处理标识符协议标识符长度单元标识符功能码响应数据

响应数据满足功能码的指定的格式。 MBAP报文头中除长度外都应一致。

异常应答

对于请求有错或异常的情况下,从站回应是要将功能码最高位置1,数据区存放错误代码(异常码)用于告诉主站发生的错误。 MODBUS规定了功能码,对应的异常功能码也自然有了规定,但是MODBUS没有规定错误代码(异常码),错误代码(异常码)由用户规定。 在这里插入图片描述

RTU模式

请求:

起始码地址码功能码数据区校验码停止码至少3.5字符间隔时间01-F7功能码请求数据CRC至少3.5字符间隔时间

响应:

起始码地址码功能码数据区校验码停止码至少3.5字符间隔时间01-F7异常功能码(功能码最高位置1)异常码(说明具体错误)CRC至少3.5字符间隔时间

响应帧数据除了标记区域都应与请求帧相同。

TCP模式

请求格式:

事物处理标识符协议标识符长度单元标识符功能码请求数据

回应格式:

事物处理标识符协议标识符长度单元标识符异常功能码(功能码最高位置1)异常码(说明具体错误)

响应帧数据除了标记区域都应与请求帧相同。 MBAP报文头中除长度外都应一致。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3