首页 > 其他分享 >ModBus RTU与ModBus TCP通信协议详解

ModBus RTU与ModBus TCP通信协议详解

时间:2023-02-24 17:59:06浏览次数:49  
标签:RTU 字节 协议 Modbus 通信协议 TCP ModBus

1、Modbus简介

    Modbus通信协议由Modicon公司(现已经为施耐德公司并购,成为其旗下的子品牌)于1979年发明的,是全球最早用于工业现场的总线规约。由于其免费公开发行,该协议免费使用,Modbus通信协议采用的是主从通信模式(Master/Slave)。在控制方面应用广泛,促进Modbus协议在全球得到了很好的发展。

Modbus通信协议

Modbus通信协议具有多个变种,具有支持串口(主要是RS-485总线),以太网多个版本,其中最著名的是Modbus TCP , Modbus ASCII和Modbus RTU三种。其中Modbus RTU与Modbus ASCII均为支持RS-485总线的通信协议。

 

2、Modbus RTU

Modbus RTU由于其采用二进制表现形式以及紧凑数据结构,通信效率较高,应用比较广泛。而ModbusASCII由于采用ASCII码传输,并且利用特殊字符作为其字节的开始与结束标识,其传输效率低于Modbus RTU协议,一般只有在通信数据量较小的情况下才考虑使用Modbus ASCII通信协议。在工业现场一般都是采用Modbus RTU协议,通俗来说,基于串口通信的Modbus通信协议都是指Modbus RTU通信协议。

RTU协议中的指令由功能码(一个字节),起始地址(两个字节),地址码(一个字节),数据(N个字节),校验码(两个字节)五个部分组成,其中数据又由数据长度(两个字节,表示的是寄存器个数,假定内容为M)和数据正文(M乘以2个字节)组成。

   

Modbus RTU

而RTU协议是采用3.5个字节的空闲时间作为指令的起始和结束,一般而言,只有当从机返回数据或者主机写操作的时候,才会有数据正文,而其他时候比如主机读操作指令的时候,没有数据正文,只需要数据长度即可。

3、Modbus TCP

        Modbus TCP协议则是在Modbus RTU协议上加一个MBAP报文头,由于TCP是基于可靠连接的服务,RTU协议中的CRC校验码就不再需要,所以在Modbus TCP协议中是没有CRC校验码,这个MBAP报文头共七个字节长度,除了第五、六个字节外,其余的基本上都是不变。

    

Modbus TCP

表中指令说明:从地址码为01(TCP协议单元标志为00)的模块0x18E(01 8E)寄存器地址开始写(10)一个(00 01)寄存器,具体数据长度为2个字节(02),数据正文内容为00 00(00 00)。

4、结语

通过上述的关于Modbus RTU协议和Modbus TCP协议的说明,很直观的了解到两者的差异,有无校验、报文头差异、以及地址码差异等。简单就了解了相关特点。

 


 

标签:RTU,字节,协议,Modbus,通信协议,TCP,ModBus
From: https://www.cnblogs.com/ebyte/p/17152611.html

相关文章

  • 使用C++实现Modbus CRC16检验相关内容
    使用C++实现ModbusCRC16检验相关内容ModbusCRC-16校验代码以下为ModbusCRC-16校验代码函数:其中参数int*crc_sum为校验返回值,分为两个字节;参数int*data_blk_ptr......
  • Ubuntu20.04中利用VirtualBox安装Windows虚拟机
    一、virtualbox安装sudoapt-getinstallvirtualbox二、虚拟机安装Windows系统过程略过,很简单。注意点:1.在Ubuntu中利用虚拟机安装Windows系统,创建时默认不会让你选......
  • C#websocket及时通信协议的实现方法示例
    传统“长轮询”实现Web端即时通讯的问题WebSocket出现之前,Web端为了实现即时通讯,所用的技术都是Ajax轮询(polling)。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发......
  • 虚方法(virtual)、抽象方法(abstract)
    简单理解抽象方法必须在抽象类里,只负责抽象,不能写具体的功能,子类必须实现;虚方法里可以有功能,子类可以重写,也可以不重写;形象的说就是抽象方法相当于一个设计规范,里面没......
  • RS485 MODBUS转PROFINET网关案例 | 超声波明渠流量计接入到PLC1200 PROFINE
    本案例介绍的是用北京小疆智控(北京)技术有限公司生产的GW-PN5003型RS485转PROFINET网关将超声波明渠流量计接入西门子PLC1200PROFINET网络的使用方法:  1、首先创建新......
  • javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String; spring
    2023-02-2111:44:13.924ERROR27256---[main]o.s.b.d.LoggingFailureAnalysisReporter:***************************APPLICATIONFAILEDTOSTART************......
  • virtual DOM VS shadow DOM
    virtualDOM在JS里头构建当前DOM树结构,然后精准计算需要更新的DOM元素,来提升性能  shadowDOM封装组件,隐藏内部的复杂DOM结构<inputtype="range"/>打开浏览器的......
  • Modbus TCP / BACnet IP 网关BMT-370
    基本说明:BMT-370是BACnetIP从站协议与ModbusTCP主站协议转换的通信网关,可以实现BACnetIP主站与多个ModbusTCP从站之间的数据通信。同时该网关的以太网端支持双以太网......
  • modbus
    modbusslave:模拟从站设备的。用于接受主设备的命令,然后回传数据包;程序:硬件厂家会提供两个寄存器的地址,来供你使用,一个寄存器地址:用来你这边程序读取设备当前的状态(这个寄......
  • javaEE005.03 HTTP通信协议和报文、STS中tomcat目录分析、响应码 200、404、500、302
    系列文章目录文章目录​​系列文章目录​​​​前言​​​​一、tomcat目录分析​​​​二、HTTP协议​​​​1、简介:简介一般就是什么ssHTTP​​​​2.发展历程​​​​3......