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种类型(块)进行管理。但是需要注意的是,则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

本文来自博客园,作者:河城荷取,未经本人允许不得转载,转载请注明原文链接:https://www.cnblogs.com/Kawashiro-Nitori/p/17613902.html

浙公网安备 33010602011771号