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的区别

四、通讯专业术语解释
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