Modbus通信协议如何工作,工作原理是什么,设备之间如何工作

在上一个视频中,我们了解了什么是Modbus通信协议以及行业中使用的Modbus通信类型。


今天我们在在本视频中,将学习有关Modbus设备之间Modbus通信协议如何工作以及它们的工作原理是什么?

Modbus通信协议如何工作,工作原理是什么,设备之间如何工作

1.Modbus协议消息结构

-Modbus协议设备

-Modbus协议数据单元(PDU)

-Modbus消息“功能代码字段”

-Modbus消息“数据”字段

2. Modbus消息错误处理

3. Modbus RTU最常用的功能代码

4. Modbus协议模拟器软件


Modbus协议消息结构


-Modbus协议设备

-Modbus协议数据单元(PDU)

-Modbus消息“功能代码字段”

-Modbus消息“数据”字段


Modbus是如何工作的呢?每个Modbus消息具有相同的结构。每个消息中包含四个基本元素。元素的顺序和顺序对于所有消息都是相同的。可以轻松解析Modbus消息的内容。


对话始终由Modbus网络中的主机启动。Modbus主站发送一条消息,然后根据消息的内容,从站读取该消息并做出响应。


消息头中的物理从设备寻址用于定义哪个从设备应响应消息。如果地址字段与它们自己的地址不匹配,则Modbus网络上的所有其他节点将忽略该消息。



Modbus功能对从站的内部存储器寄存器执行读写指令,以配置,监视和控制从站的输入和输出。

Modbus通信协议如何工作,工作原理是什么,设备之间如何工作

Modbus协议设备


Modbus协议设备通常将包括一个寄存器映射,可以写入和读取配置,输入和输出数据。

Modbus数据模型具有简单的结构,描述了四种基本数据类型:

1.离散输入

2.线圈输出

3.输入寄存器(输入数据)

4.保持寄存器(输出数据)


Modbus协议数据单元(PDU)


消息或Modbus协议数据单元或PDU的服务请求区域包括

–功能代码。

–主机请求的多个“数据”字节。


设备的Modbus存储器寄存器围绕四种基本数据引用类型进行组织,并且该数据类型由设备存储器地址中使用的前导数字进一步标识,例如:

–基于零(0)的寄存器,引用一条消息来读取或写入“离散输出或线圈”。

–基于一(1)个寄存器,引用读取“离散输入”。

–基于三(3)个寄存器,引用读取“输入寄存器”。

–基于四(4)个寄存器,引用对“输出或保持寄存器”的读取或写入。


Modbus消息“功能代码字段”


“功能代码字段”指定了它从属设备读取或写入的寄存器数据组。


例如,将功能代码03(读取的保持寄存器40001-40002)寻址为发送到从站的消息的数据地址字段中的数据寄存器0000。


功能代码03适用于从站数据映射中的保持寄存器类型(4xxxx),因为该请求使用保持寄存器数据类型操作进行指定,并且隐含了请求中的4xxxx寻址。


PDU中的字段分为多个字节,并按字段名称分组。


该请求消息包含:

– 01的“从站地址”。

– 03的“功能代码”(从保持寄存器4xxxx读取)。

–指定“起始寄存器”的“起始地址” HI和LO字节(0000)。

–从从站读取的“地址计数”,计数值(0002)的寄存器HI和LO字节,该计数值指定要从从站读取的“寄存器的数量”。


从属设备1请求“读取”“保持寄存器”区域0至1(寄存器40001至40002)中的“前两个寄存器”


从视频中可以看出,保持寄存器40108实际上是PDU消息数据区域中的寄存器107。

许多数据类型都是根据其用途来命名的。例如,单位物理输出称为线圈,单位物理输入称为离散输入或触点。

消息的功能代码字段将包含一个字节,该字节告诉从站采取何种操作。

有效的功能代码范围是1到255,但是并非所有代码都适用于特定的从站。

视频所示的表格突出显示了标准Modbus协议功能的子集。


Modbus消息“数据”字段

此外,主站请求“数据”字段为从站提供了从站所需的任何其他信息,以完成主站请求中“功能代码”所指定的操作。

主人的请求通常包括:

–从机映射寄存器地址。

–请求中提供的寄存器数。

–来自主机的任何写入数据。


Modbus消息错误处理


从站的正常响应只是回显请求的原始功能代码,但是从站的错误响应返回的代码与原始功能代码等效,且最高有效位设置为逻辑1。


例如,“读取保持寄存器”命令(功能代码03)具有1个字节(包含8位)的功能代码是二进制0000 0011(03十六进制)。如果从设备无误地接受了请求,它将在响应中返回相同的代码。


但是,如果发生错误,从站将在“功能代码”字段中返回包含8个二进制位1000 0011(设置为逻辑1的最高有效位)的1个字节,并在“数据”字段中附加一个唯一的代码(异常代码)。响应消息的字段,告诉主设备发生了哪种类型的错误或错误的原因。


Modbus RTU最常用的功能代码


此功能代码01“读取 线圈”代码,用于从1到2000个连续寄存器中读取从设备中线圈的状态。请求PDU指定从属存储寄存器的第一个线圈地址,以及从从属设备读取的线圈数。


功能码02,“读取离散输入”代码,用于读取远程从站中离散输出的1到2000个连续状态。请求PDU指定从属存储寄存器的第一个输入地址,以及要从从属设备读取的输入数量。


功能代码03,“读取保持寄存器”代码,用于读取远程从站中保持寄存器的连续块的内容。请求PDU指定起始寄存器地址和要从从设备读取的寄存器数。


功能代码04,“读取输入寄存器”代码,用于从远程设备中读取1到125个连续的输入寄存器。请求PDU指定了起始寄存器地址和寄存器数。


功能码05,“写入单个线圈”代码,用于将单个输出写入远程从设备中的ON或OFF。


功能代码06,“写入单个寄存器”代码,用于在远程从设备中写入单个保持寄存器。请求PDU指定要写入的从属存储器寄存器地址的地址。


功能代码15“写入多个线圈”代码用于在远程从设备中将一系列线圈中的每个线圈强制为ON或OFF。请求PDU指定要强制打开或关闭的线圈存储地址。


功能码16“写入多个寄存器”用于在远程从设备中写入从1到123个寄存器的连续寄存器块。


这些Modbus功能代码代表最常见的读取和写入功能,助于我们查看Modbus协议规范以便可以获取更多信息。

Modbus通信协议如何工作,工作原理是什么,设备之间如何工作


Modbus协议模拟器软件


可以通过Modbus模拟器软件在您的个人计算机上运行来实现与从属设备或主PLC或计算机的通信。


该连接可以是串行连接,也可以是以太网连接,并且可以是主连接或从连接的形式。该软件将允许您执行所有Modbus协议通信功能代码,以简单地读取或写入现有从站。


我们可以设置一台计算机来运行从属仿真软件,而另一台计算机来运行主仿真软件。


首先,通过设置串行COM端口的通信参数来执行从站连接。


然后,在“设备ID”字段中输入从站的地址,选择功能代码01读取从站的线圈状态在地址0001处声明,并读取100个线圈的长度。

视频加载中...

以上为本次内容全部,希望对您有用,非常感谢您抽出宝贵的时间来这里。欢迎在评论区留言,并持续关注获取更多精彩内容。

Modbus通信协议如何工作,工作原理是什么,设备之间如何工作

展开阅读全文

页面更新:2024-04-16

标签:设备   寄存器   存储器   线圈   字段   字节   数据类型   协议   错误   消息   通信协议   代码   地址   功能   数据

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top