新闻中心

Information Centre

Modbus 通讯协议是什么?(Modbus RTU和Modbus TCP的区别)

时间:2022-11-01 14:08:33 

 
Modbus 通讯协议是什么?
 
Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。为更好地普及和推动Modbus在基于以太网上的分布式应用,目前施耐德公司已将Modbus协议的所有权移交给IDA(Interface for Distributed Automation,分布式自动化接口)组织,并成立了Modbus-IDA组织,为Modbus今后的发展奠定了基础。
 
MODBUS是一种国际标准的通讯协议,用于不同厂商之间的设备交换数据(一般是工业用途);
 
Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。
 
它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。Modbus是一种单主站的主/从通信模式。一条Modbus网络上同时只能有一台主站,从站可以有若干个。
 
Modbus具有以下几个特点:
 
1.标准、开放,用户可以免费、放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权。目前,支持Modbus的厂家超过400家,支持Modbus的产品超过600种。
 
2.Modbus可以支持多种电气接口,如RS-232、RS-485等,还可以在各种介质上传送,如双绞线、光纤、无线等。
 
3.Modbus的帧格式简单、紧凑,通俗易懂。用户使用容易,厂商开发简单。
 
一般情况下,两台设备通过MODBUS协议传输数据:最早是用RS232作为硬件接口,(也就是普通电脑上的串行通讯口(串口));也有用RS422的,也有常用的RS485,这种接口传输距离远,在一般工业现场用的比较多。
 
MODBUS协议著名的又分MODBUS RTU,MODBUS ASCII和后来发展的MODBUS TCP三种模式。
 
Modbus RTU和Modbus TCP的区别
 
Modbus RTU和Modbus TCP是Modbus通信中比较好用的两个协议,两者协议很相似。

在工业现场一般都是采用Modbus RTU协议,一般而言,大家说的基于串口通信的Modbus通信协议都是指Modbus RTU通信协议。与Modbus RTU协议相比较,Modbus TCP协议则是在RTU协议上加一个MBAP报文头,并且由于TCP是基于可靠连接的服务,RTU协议中的CRC校验码就不再需要,所以在Modbus TCP协议中是没有CRC校验码的,所以就常用一句比较通俗的话来说:Modbus TCP协议就是Modbus RTU协议在前面加上五个0以及一个6,然后去掉两个CRC校验码字节就OK。虽然这句话说得不是特别准确,但是也基本上把RTU与TCP之间的区别说得比较清楚了。
Modbus的功能码有:
功能码
含义
功能码
含义
0x01
读线圈
0x04
读输入寄存器
0x05
写单个线圈
0x03
读保持寄存器
0x0F
写多个线圈
0x06
写单个保持寄存器
0x02
读离散量输入
0x10
写多个保持寄存器
 
一、Modbus RTU
  RTU协议中的指令由地址码(一个字节),功能码(一个字节),起始地址(两个字节),数据(N个字节),校验码(两个字节)五个部分组成。
数据由数据长度(两个字节,表示的是寄存器个数,假定为M)和数据正文(M乘以2个字节)组成。
发:01 03 01 8E 00 04 25 DE //读(0x03),从寄存器地址01 8E 开始读,读4个寄存器00 04
回:01 03 08 00 01 00 01 00 01 00 01 28 D7 // 08表示数据长度 ,00 01 00 01 00 01 00 01读到的数据
 
发:00 10 00 20 00 01 02 00 00 AC A0 // 写(0x10),从寄存器地址 00 20开始写,写一个寄存器 00 01,写入值 00 00
回:00 10 00 20 00 01 01 D2
 
二、Modbus TCP
  Modbus TCP协议是在RTU协议前面添加MBAP报文头,由于TCP是基于可靠连接的服务,RTU协议中的CRC校验码就不再需要,所以在Modbus TCP协议中是没有CRC校验码。
MBAP报文头:
事务处理标识
协议标识
长度
单元标识符
2字节
2字节
2字节
1字节
 
 
事务处理标识
可以理解为报文的序列号,一般每次通信之后就要加1以区别不同的通信数据报文
协议标识符
00 00表示ModbusTCP协议
长度
表示接下来的数据长度,单位为字节
单元标识符
可以理解为设备地址
 
发:00 00 00 00 00 06 00 03 00 20 00 01
回:00 00 00 00 00 05 00 03 02 00 00
发:00 00 00 00 00 06 00 04 00 30 00 01
回:00 00 00 00 00 05 00 04 02 00 08
 
发:00 00 00 00 00 09 00 10 00 20 00 01 02 00 00
回:00 00 00 00 00 06 00 10 00 20 00 01
 
三、总结(注:16进制发送)
1、读指令对比(0x04)
 
MBAP报文头
地址码
功能码
寄存器地址
寄存器数量
CRC校验
Modbus RTU
无
01
04
00 00
00 16
71 C4
Modbus TCP
00 00 00 00 00 06 01
 
04
00 00
00 16
无
 
 
 
2、写指令对比(0x10)
 
MBAP报文头
地址码
功能码
寄存器地址
寄存器数量
数据长度
正文
CRC校验
Modbus RTU
无
00
10
00 20
00 01
02
00 00
AC A0
Modbus TCP
00 00 00 00 00 09 00
 
10
00 20
00 01
02
00 00
无

免责声明:本网站部分文章、图片等信息来源于网络,版权归原作者平台所有,仅用于学术分享,如不慎侵犯了你的权益,请联系我们,我们将做删除处理!

相关推荐
相关产品
工业智能网关
物通博联·WG系列工业智能网关是一款支持采集各种PLC,仪器仪表,水环保,电力设备,CNC等各种工业设备数据,具有协议解析,边缘计算的高可靠性工业智能网关,是构...
工业数采终端
物通博联·WD系列工业数采终端,主要实现对现场工业设备的数字量DI、DO,模拟量AI,AO的采集和控制,实现LORA本地组网和4G数据上云的功能,从而实现对现场...
工业无线路由
物通博联工业网络通信产品聚焦工业场景的稳定互联需求,核心涵盖WR 系列工业无线路由器与WS 系列工业交换机两大品类。依托工业级硬件设计与智能化功能配置,可构建有...
设备数据平台
物通博联·工业设备数据平台是一款高并发的工业设备远程管理和工业设备数据可视化的云平台,广泛应用于智能工厂数采中台、远程设备运营管理平台、各行业的物联网数据云平台...
设备维护平台
物通博联·设备远程维护系统是一套实现对分散式设备远程维护和运营的软硬件系统,为工程师搭建一条通往远端设备现场的安全数据通道,实现对现场设备(PLC)的远程配置、...
设备接入平台
物通博联·设备远程接入云平台是一款针对分布式设备数据实时监测的快速接入平台,采用SAAS云服务方式为工业现场的各种工业设备的数据互通互联建立实时在线的数据通道。
整体解决方案
物通博联专注于为设备制造商、智能工厂及行业项目等领域提供工业智能网关、工业数采终端、设备远程维护管理系统及工业设备数据云平台等产品及方案,协助客户实现数字化运营管理和工业互联网新价值挖掘。

物通博联,助您开启工业数字化和智能化之路

申请样机
在线
咨询
免费
试用