Modbus 什么是通信协议?
Modbus是由Modicon(现为施耐德电气公司的品牌)于1979年发明的,是世界上第一个真正用于工业场所的总线协议。施耐德目前已将Modbus协议的所有权移交给IDA,以便在以太网上更好地推广和推广Modbus的分布式应用。(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报文头,RTU协议中的CRC验证码不再需要,因为TCP是基于可靠连接的服务,所以在Modbus中 TCP协议中没有CRC验证码,所以常用一句比较通俗的话来说:Modbus TCP协议Modbus RTU协议在前面加五个0和一个6,然后删除两个CRC验证码字节。虽然这句话不是特别准确,但基本上说明了RTU和TCP的区别。
Modbus的功能码包括:
功能码
含义
功能码
含义
0x01
读线圈
0x04
读取输入寄存器
0x05
写单个线圈
0x03
阅读保持寄存器
0x0F
写多个线圈
0x06
写一个单独的寄存器
0x02
读离散输入
0x10
写多个保持寄存器
一、Modbus RTU
地址码(一个字节)是RTU协议中的指令,由五个部分组成:功能码(一个字节)、起始地址(两个字节)、数据(N个字节)、校准码(两个字节)。
数据由数据长度(两个字节,表示寄存器数量,假设为M)和数据文本(M乘以两个字节)组成。
发:01 03 01 8E 00 04 25 DE 从寄存器地址01///阅读(0x03) 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
无
免责声明:本网站的部分文章、图片等信息来自网络,版权属于原作者平台,仅用于学术共享。如果您意外侵犯了您的权益,请联系我们,我们将删除它!
广州鲁邦通物联网科技股份有限公司成立于2010年,致力为行业客户提供软硬件结合的5G+工业互联网平台解决方案,通过设备物联、机器人乘梯、设备售后管理系统、电梯物联网等产品和服务,助力电梯及特种设备、医疗设备、机器人、环保设备、环卫设备、电力设备和水务设备等工业客户进行后市场服务的数字化转型,降本增效,开启利润增长的第二曲线。