当前位置: 首页> 新闻> 会展 > 万网域名的优势_福田蒙派克s_免费网络营销推广软件_qq推广软件

万网域名的优势_福田蒙派克s_免费网络营销推广软件_qq推广软件

时间:2025/9/9 12:32:49来源:https://blog.csdn.net/qq_42219004/article/details/147477625 浏览次数:0次
万网域名的优势_福田蒙派克s_免费网络营销推广软件_qq推广软件

Modbus协议,首先从字面理解它包括Mod和Bus两部分,首先它是一种bus,即总线协议。

Modbus支持单主机多个从机,最多支持247个从机设备

Modbus在7层OSI参考模型中属于第七层应用层,数据链路层有两种:基于标准串口协议TCP协议,物理层可使用3线232、2线485、4线422,或光纤、网线、无线等多种传输介质。

Modbus协议是一种请求/应答方式的交互过程,主机主动发起通讯请求,从机响应主机的请求,从机在没有收到主机的请求时,不会主动发送数据,从机之间不会进行通讯。

Modbus通讯协议使用请求-应答机制在主(Master)(客户端Client)和从(Slave)(服务器Server)之间交换信息。Client-Server原理是通信协议的模型,其中一个主设备控制多个从设备。这里需要注意的是:Modbus通讯协议当中的Master对应Client,而Slave对应Server

数据类型【4种】

Modbus协议规定,进行读写操作的数据类型,按照读写属性和类型可分为以下4种:

  • 离散量输入(Discretes Input ):1位,只读
  • 线圈(Coils):1位,读写
  • 输入寄存器(Input Registers ):16位,只读
  • 保持寄存器(Holding Registers):16位,读写

传输模式【3种】

1、基于串口的Modbus-RTU

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

2、基于串口的Modbus-ASCII

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

3、基于网口的Modbus-TCP

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

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

Modbu**s-RTU与****Modbus Tcp的区别:**

Modbus rtu和Modbus tcp两个协议的本质都是MODBUS协议,都是靠MODBUS寄存器地址来交换数据,但所用的硬件接口不一样,Modbus RTU一般采用串口RS232C或RS485/422,而Modbus TCP一般采用以太网口。现在市场上有很多协议转换器,可以轻松的将这些不同的协议相互转换。

Modbus的ASCII、RTU协议规定了消息数据的结构命令就答的方式,数据通讯采用Maser/Slave方式。

Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验。ModbusTCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议

TCP和RTU协议非常类似,只要把RTU协议的两个字节的校验码去掉,然后在RTU协议的开始加上5个0和一个6并通过TCP/IP网络协议发送出去即可。

1.概念不同:MODBUS是一种标准的工业控制数据交换协议,可以通过RTU和ASCII交换协议数据。RTU通过二进制数据直接传输数据,而TCP通过将每个字节的二进制数据转换成固定的二位十六进制字符串,然后依次串联,以TCP代码的形式传输数据。RTU通常使用最多。

2.不同的通信方式:以太网,相应的通信模式是MODBUS TCP。异步串行传输(各种介质,如有线RS-232-/422/485/;光纤、无线等。),相应的通信模式是MODBUS RTU或MODBUSASCII。高速令牌传输网络,相应的通信模式是ModbusPLUS。

功能码【3类】

Modbus功能码,是写在主机请求数据帧中的,决定主机进行读还是写操作是读线圈、离散量还是寄存器,是写单个寄存器还是多个寄存器等等,决定主机请求什么类型的数据。

主要包括3类功能码:公共功能码、用户定义功能码和保留功能码。实际最常用的是公共功能码中的4个功能码:03/04/06/10

  • 0x03:读多个寄存器
  • 0x04:读输入寄存器
  • 0x06:写单个保持寄存器
  • 0x10:写多个保持寄存器

这里需要特别注意的一点是:写保持寄存器,需要区分0x06写单个寄存器和0x10写多个寄存器,而读保持寄存器不区分读单个和读多个,当需要读单个保持寄存器时,也是使用0x03指令,指定读取数量为1。

数据帧格式

无论是3种传输模式中的哪一种,Modbus帧格式都是一样的:

主要包括:

  • 地址域:1字节,即从机设备地址,通常1-247为有效地址,0为广播地址
  • 功能码:1字节,表明主机请求数据的类型
  • 数据:N字节,
  • 差错校验:对数据进行冗余校验的结果,CRC或LRC。

Modbus-RTU

Modbus-RTU数据帧,帧长度最大为256字节,由以下4部分构成:

  1. 子节点地址:1字节,范围0-247
  2. 功能代码:1字节
  3. 数据块:0-252字节
  4. CRC校验值:2字节,低8位在前

Modbus-ASCII

Modbus-TCP数据帧

MBAP报文头PDU组成:

Modbus-TCP基于4种报文类型:

  • MODBUS 请求

是客户机在网络上发送用来启动事务处理的报文

  • MODBUS 证实

是在客户端接收的响应信息

  • MODBUS 指示

是服务端接收的请求报文

  • MODBUS 响应

是服务器发送的响应信息

两种请求模式

Modbus协议中主机可以以两种模式对从机设备发出请求:单播和广播。

单播模式

在单播模式下,从机地址必须唯一,地址范围1-247。主机以特定地址访问指定的某个从机,发出一个请求数据帧,这个数据帧功能可以是读取或写入数据,从机接收到并处理完成后,会回报一个应答数据帧,以表示读取或写入成功。

广播模式

在广播模式下,主机向所有的从机发出请求数据帧,所有的从机都会处理这条命令,对于广播请求,所有的从机无需做出应答操作。一般地址0表示广播地址。

Java的开源库

  • Jamod:Java Modbus实现:Java Modbus库。该库由Dieter Wimberger实施。
  • ModbusPal:ModbusPal是一个正在进行的Java项目,用于创建逼真的Modbus从站模拟器。由于预定义的数学函数和/或Python脚本,寄存器值是动态生成的。ModbusPal依赖于RxTx进行串行通信,而Jython则依赖于脚本支持。
  • Modbus4J:Serotonin Software用Java编写的Modbus协议的高性能且易于使用的实现。支持ASCII,RTU,TCP和UDP传输作为从站或主站,自动请求分区,响应数据类型解析和节点扫描。
  • JLibModbus:JLibModbus是java语言中Modbus协议的一种实现。jSSC和RXTX用于通过串行端口进行通信。该库是一个经过积极测试和改进的项目。

关键字:万网域名的优势_福田蒙派克s_免费网络营销推广软件_qq推广软件

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: