首页 > 其他分享 >Modbus的数据结构

Modbus的数据结构

时间:2023-08-09 09:34:22浏览次数:41  
标签:MODBUS 请求 Modbus 响应 服务器 数据结构 字节

本文是基于modbus协议书英文原版的阅读理解,对其进行了翻译和摘取,如有不当之处,还请指出,望不吝赐教。

一、基本概念明确

在开始之前,首先明确一些基本概念:

位:单位bit,缩写为b,最小的数据单位

字节:单位bytes,缩写为B,一个字节拥有8位

字:字是其用来一次性处理事务的一个固定长度的位组,其长度依据不同的系统而定。在Modbus中,常采用字长为16-bit的字

PS:1KB=1024B,单位换算上是1024进制。

 二、modbus的字节序

modbus采用大端字节序,所谓字节序,就是在传输数据时,决定数据哪位有限发送的排序。大端字节序指的就是优先发送高位,最高有效字节(Most Significant Byte,MSB)在前,最低有效字节(Least Significant Byte,LSB)在后。

英文原版说明书实例下:

大端字节序示例和说明

寄存器中存储了一个十六进制数0x1234,其最高有效字节是0x12,最低有效字节是0x34。在传输时,先发送0x12,然后发送0x34。

三、modbus的数据结构和寻址模型

现在切入正题,想要了解Modbus的功能码,必须先弄清楚Modbus的数据结构和传输方式。

modbus的4种数据类型

中文意译对照表

 原版与个人意译表如上。

modbus将数据分为4种类型(块)进行管理。但是需要注意的是,则4种类型的数据在某些情况下可能会叠加(重合)。打个比方,在普通情况下,设有一个5个数据块的设备A,modbus通过使用功能码对表中四项对应的数据块进行了操作,这时它们是相互独立的,各取所需,互不影响。但对于一个只有一个数据块的设备B,四连一,通过功能码得到的数据则可能都是一样的。

在MODBUS数据模型中,每个数据块中的元素都从1到n进行编号。

MODBUS数据模型必须与设备应用程序(IEC-61131对象或其他应用程序模型)进行绑定。MODBUS数据模型与设备应用程序之间的预映射完全取决于供应商设备的特定要求。

MODBUS寻址模型

MODBUS应用协议也明确定义了PDU(Protocol Data Unit)的寻址规则。每个数据在PDU中都有一个地址,范围从0到65535。

 

在实际使用中,一般不会发生地址溢出问题。PLC 厂商说明书往往提供地址名称和Modbus协议地址。此处的详情可以参考该作者:

https://blog.csdn.net/csdnharrychinese/article/details/130592546

4.Modbus事务 MODBUS事务是指MODBUS客户端和MODBUS服务器之间的通信过程。简单来说就是客户端请求,服务器处理并响应。原图如下: modbus事务处理状态图 服务器从空闲状态开始,等待来自客户端的请求。一旦接收到请求,服务器将转换到“处理请求”状态。随后服务器处理请求并根据请求功能码确定适当的响应。如果请求成功处理,则会给出正向响应(相对于异常响应)。响应功能码设置为与请求功能码相同的值。随后服务器转换到“发送响应”状态,将响应发送回客户端。 然而,如果在处理请求过程中检测到错误,则会构建一个MODBUS异常响应。异常功能码设置为请求功能码加上0x80。此外,提供异常代码以指示错误的原因。然后,服务器转换到“发送异常响应”状态,将异常响应发送给客户端。一旦发送响应或异常响应,服务器将返回到空闲状态,准备接收下一个请求。 总体而言,MODBUS事务涉及服务器处理客户端的请求,并根据处理结果生成适当的响应或异常响应。

标签:MODBUS,请求,Modbus,响应,服务器,数据结构,字节
From: https://www.cnblogs.com/Kawashiro-Nitori/p/17613902.html

相关文章

  • Pandas学习挑战第三关-数据结构DataFrame
    Pandas数据结构-DataFrameDataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共同用一个索引)。DataFrame构造方法如下:pandas.DataFrame(data,index,column......
  • Profibus DP主站转Modbus TCP网关profibus主站和从站的数据交互方式
    捷米JM-DPM-TCP网关。这款产品在Profibus总线侧实现了主站功能,在以太网侧实现了ModbusTcp服务器功能,为我们的工业自动化网络带来了全新的可能。捷米JM-DPM-TCP网关是如何实现这些功能的呢?首先,让我们来看看它的Profibus总线侧的主站功能。通过高效的通信协议和稳定的硬件设计,这款......
  • Modbus TCP转Profibus DP网关modbusTCP就是以太网吗
    捷米JM-DPM-TCP网关。在Profibus总线侧作为主站,在以太网侧作为ModbusTcp服务器功能,下面是介绍捷米JM-DPM-TCP主站网关组态工具的配置方法2,Profibus主站组态工具安装执行资料光盘中的安装文件setup64.exe或setup.exe安装组态工具。安装过程中一直选择Next即可,安装完成后程序......
  • 《VTK图形图像开发进阶》第3章VTK基本数据结构——数据对象和数据集
    3.1可视化数据的基本特点离散性数据具有规则或不规则的结构(结构化与非结构化)数据具有维度3.2数据对象和数据集vtkDataObject下图为vtkDataObject类的继承图vtkDataSetVTK里与数据集对应的类是vtkDataSet,该类从vtkDataObject直接派生。vtkDataSet由两个部分组成,即组织......
  • 数据结构与算法 --- 数据结构绪论
    数据结构起源早期人们都把计算机理解为数值计算工具,就是感觉计算机当然是用来计算的,所以计算机解决问题,应该是先从具体问题中抽象出一个适当的数据模型,设计出一个解此数据模型的算法,然后再编写程序,得到一个实际的软件。可现实中,我们更多的不是解决数值计算的问题,而是需要一些更......
  • 【数据结构】排序1 基本概念
    0.概述:重难点:堆排序,快速排序,归并排序深入掌握各种排序算法,以选择题考察不同算法之间的对比常用排序算法的代码要会写,并且能根据给定序列选择最合适的排序算法1.排序的基本概念(简单了解即可)......
  • [Redis]Redis (2) 扩展数据结构: Bitmap
    redisbitmapjavaspringboot1Redis数据结构之bitmap#设置bitmap字符串指定位置的值|SETBITkeyoffsetvaluesetbitsingleSquare:recommend:userId:39991>>0#查看bitmap字符串的长度|占用字节数:=(max_offset/8)+1strlensingleSquare:recommend:us......
  • 数据结构
    1.基本概念与术语数据、数据元素、数据项三者之间的关系数据>数据元素>数据项。数据元素——组成数据的基本单位,是数据的个体。数据对象——性质相同的数据元素的集合,是数据的子集。逻辑结构与存储结构的关系存储结构是逻辑关系的映像与元素本身的映像。逻辑结构是数据结构的抽象,存......
  • 王道408---区分数据结构和逻辑结构
    如下:https://www.zhihu.com/question/401303485 链表只能用指针实现,故为存储结构栈可以用链式也可以用数组实现,故为逻辑结构 ......
  • Siemens 西门子变频器与PLC的MODBUS通信详细步骤
    01导读MODBUS通信在实际的工业现场应用非常广泛,常用于PLC和PLC、变频器、仪表等第三方设备进行数据的交换和监控等。02示例应用下面通过一个案例充分理解MODBUS的应用,具体控制要求是西门子200SMART和西门子V20变频器通过MODBUS通信功能实现变频器正转,反转,停止和点动,并......