1. 首页
  2. 测量

M-bus通讯和Modbus通讯

M-Bus和Modbus是两种不同的工业和自动化通讯协议,广泛用于各种工业设备和传感器之间的通信。以下是对这两种协议的详细讲解,包括它们的区别以及相关的专业术语解释。

一、M-Bus(Meter-Bus)通讯详解

1. 概述

M-Bus,即Meter-Bus,是一种专为远程抄表和能源监测设计的欧洲标准通信协议。M-Bus主要用于传输与测量和计量相关的数据,如水表、电表、气表和热量表的数据。

2. 特点

低功耗:设计初衷是节能,因此设备的功耗较低,适合电池供电设备。

拓扑结构:通常采用主从结构(Master-Slave),支持一台主机与多台从设备通信。

物理层:使用双绞线作为传输介质,支持总线拓扑,可以实现长距离传输。

传输速率:通常较低,一般在300到9600 baud,以满足计量设备的低速通信需求。

数据格式:支持多种类型的数据帧,通常包括地址、控制字段、数据长度和校验字段。

3. 应用场景

M-Bus常用于能源管理系统中,如智能楼宇、公共设施抄表、工厂的水、电、气等能源监测。

二、Modbus通讯详解

1. 概述

Modbus是一种应用广泛的工业通信协议,由Modicon(现属于施耐德电气)在1979年开发。Modbus旨在实现工业电子设备之间的简单而有效的通信。

2. 特点

简单易用:协议结构简单,便于实现和应用,通信负载较低。

开放性:是开源协议,允许任何厂商自由实现和应用。

主从结构:也采用主从结构,可以在RS-485、RS-232、TCP/IP等不同物理层上运行。

数据模型:数据通常以寄存器的形式组织,分为输入寄存器、保持寄存器、离散输入和线圈。

帧结构:Modbus报文包括地址字段、功能码、数据字段和校验字段。

传输模式:支持RTU(Remote Terminal Unit)和ASCII模式,RTU模式使用二进制编码,效率更高。

3. 应用场景

Modbus广泛用于PLC、SCADA系统、仪器仪表和工业自动化设备之间的数据通信。适合需要高可靠性和高实时性的数据传输场合。

三、M-Bus与Modbus的区别

M-bus通讯和Modbus通讯

四、通讯专业术语解释

1. 主从结构(Master-Slave Architecture):

• 通信模式中,一个主设备(如主机或PLC)控制多个从设备(如传感器、计量器等),主设备发起请求,从设备响应。

            • 主设备:发起通信的设备,如计算机或PLC。

     • 从设备:响应主设备请求的设备,如传感器或计量表。

2. 帧结构(Frame Structure):

• 数据传输的基本单位,包含头部、数据字段、校验字段等,用于确保传输的完整性和正确性。

3. 波特率(Baud Rate):

• 每秒钟传输的符号数量(比特),影响数据传输的速度。常用于描述串口通信速率,如9600 baud

4. 寄存器(Register):

定义:寄存器是存储数据的基本单元,用于保存和传输设备的运行数据或控制信息。它们在Modbus协议中尤为常见。

类型

保持寄存器(Holding Register):编号在40001-49999范围内,用于读/写操作,存储设备状态或参数。

输入寄存器(Input Register):编号在30001-39999范围内,只读,通常用于获取设备的测量数据。

离散输入(Discrete Input):编号在10001-19999范围内,只读,用于采集开关状态等二进制数据。

线圈(Coil):编号在00001-09999范围内,用于控制或读取设备的开/关状态,可以进行读/写操作。

5.寄存器地址(Register Address):

定义:寄存器地址是指特定寄存器在设备中的具体位置,用于标识读取或写入数据的目标寄存器。

作用:在Modbus协议中,主设备发送请求时需要指定从设备的寄存器地址,便于从设备解析并返回正确的数据。

地址示例:在Modbus中,寄存器编号40001对应的地址可能为0000(内部表示为偏移量)。用户请求寄存器时,实际读取的是基于偏移的数值(如偏移为1的寄存器对应40002)。

6. RTU和ASCII模式

RTU模式采用二进制编码,数据密集传输,通信效率高。

ASCII模式使用文本编码,易于读取和调试,但数据传输效率较低。

7. 总线拓扑(Bus Topology):

• 多个设备通过一根总线连接,数据在总线上传输。M-Bus和Modbus均支持总线拓扑,但物理连接方式不同。

 8.  功能码(Function Code):

定义:指示主设备请求执行的操作类型,如读取或写入寄存器。

常用功能码

0x01:读取线圈状态(Read Coils)。

0x02:读取离散输入状态(Read Discrete Inputs)。

0x03:读取保持寄存器(Read Holding Registers)。

0x04:读取输入寄存器(Read Input Registers)。

0x05:写单个线圈(Write Single Coil)。

0x06:写单个保持寄存器(Write Single Register)。

0x10:写多个保持寄存器(Write Multiple Registers)。

9.  字(Word)和双字(Double Word)

字(Word):在Modbus中,寄存器通常以16位(2字节)的长度表示。每个寄存器存储一个字的数据。

双字(Double Word):如果需要存储更大的数值,如32位(4字节),需要两个连续的寄存器来保存一个双字的数据。

  10. CRC校验(Cyclic Redundancy Check)

定义:一种用于检测传输错误的校验方法,尤其在Modbus RTU模式中使用。CRC字段确保数据在传输过程中未被篡改或发生错误。

  11. 响应时间和超时

响应时间:从设备接收到请求到返回响应所需的时间。

超时:如果在设定的时间内未收到响应,主设备会判定通信失败,触发重试或报警机制。

总结

M-Bus和Modbus各自适用于不同的场景和应用需求。M-Bus专注于低功耗的能源计量,而Modbus则是工业自动化领域的首选,具有较高的传输速率和开放性。

原创文章,作者:梦南圆,如若转载,请注明出处:https://mnyuan.cn/archives/17330

发表评论

登录后才能评论

联系我们

邮箱:service.mnyuan@gmail.com

工作时间:周一至周五,9:30-17:00,节假日休息

QR code