Modbus协议基础讲解

一、什么是modbus协议

MODBUS 是一项应用层报文传输协议,用于在通过不同类型的总线或网络连接的设备之间的客户机/服务器通信。
自从 1979 年出现工业串行链路的事实标准以来,MODBUS 使成千上万的自动化设备能够通信。目前,继续增加对简单而雅观的 MODBUS 结构支持。互联网组织能够使 TCP/IP 栈上的保留系统端口502 访问 MODBUS。

MODBUS 是一个请求/应答协议,并且提供功能码规定的服务。MODBUS 功能码是 MODBUS 请求/应答 PDU 的元素。本文件的作用是描述 MODBUS 事务处理框架内使用的功能码。

目前,Modbus已经成为工业领域通信协议的业界标准,并且现在是工业电子设备之间常用的连接方式。Modbus作为目前工业领域应用最广泛的协议。

二、常用的MODBUS通讯方式

基于串口的Modbus-RTU: 数据按照标准串口协议进行编码,是使用最广泛的一种Modbus协议,采用CRC-16_Modbus校验算法。

基于串口的Modbus-ASCII :所有数据都是ASCII格式,一个字节的原始数据需要两个字符来表示,效率低,采用LRC校验算法。

基于网口的Modbus-TCP: Modbus-TCP基于TCP/IP协议,占用502端口,数据帧主要包括两部分:MBAP(报文头)+PDU(帧结构),数据块与串行链路是一致的。

每个设备必须都有相同的传输模式。所有设备都支持RTU模式,ASCII传输模式是选项。

三、协议介绍

当我们提及Modbus协议时,要确定是哪种模式:RTU、ASCII或TCP,3种模式区别还是很大的。

3.1 数据结构

MODBUS 协议定义了一个与基础通信层无关的简单协议数据单元(PDU)。特定总线或网络上的 MODBUS 协议映射能够在应用数据单元(ADU)上引入一些附加域。
在这里插入图片描述
在某种请求中,数据域可以是不存在的(0长度),在此情况下服务器不需要任何附加信息。功能码仅说明操作。

1.ModbusRTU的报文格式:

从站地址(1个字节)+功能码(1个字节)+数据部分(N个字节)+校验、CRC检验(2个字节)

  • RTU 传输模式CRC校验,必须存在!!!!
  • 数据按照标准串口协议进行编码,是使用最广泛的一种Modbus协议,采用CRC校验算法
  • 优点:较高的数据密度,在相同的波特率下比ASCII模式有更高的传输效率。每个报文必须以连续的字符流传送。
  1. ModbusAscii的报文格式:

开始字符(:)+从站地址(2个字节)+功能码(2个字节)+数据部分(N个字节)校验、LRC检验(2个字节)+结束字符(CRLF

  • 在ASCII模式,报文用特殊的字符区分帧起始和帧结束。一个报文必须以一个‘冒号’(:)(ASCII十六进制3A)起始,以‘回车-换行’(CRLF)对(ASCII十六进制0D和0A)结束。设备连续的监视总线上的‘冒号’字符。当收到这个字符后,每个设备解码后续的字符一直到帧结束。报文中字符间的时间间隔可以达一
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值