Modbus概览

Modbus是一种串行通信协议,它通过串行线路或以太网在电子设备之间传输信息。它最初由莫迪康(现为施耐德电气)于1979年发布,用于可编程逻辑控制器(PLC)。自1979年以来,它一直是过程控制和自动化领域工业电子串行数据通信的事实标准。施耐德电气过去一直支持和维护Modbus项目。Modbus是在施耐德电气积极协助下成立的独立开发商和用户社区组织,Modbus组织在工业市场中扮演着重要的战略角色。2004年,施耐德电气将专利转让给Modbus组织,从而使该协议成为可供免费使用的开放标准。

Modbus RTU(远程终端单元)和Modbus ASCII用于串行通信,Modbus TCP用于以太网。Modbus定义并使用主/从通信模式。在一个标准的Modbus网络中,有一个主站和多达247个从站,每个从站都有一个从1到247的唯一从站地址。主站对从站进行单向控制,可以向从站寄存器写入信息,也可以从从站寄存器读取信息。Modbus主站可以寻址单个从站设备,也可以向所有从站发送广播式报文。从站只对向其寻址的查询做出响应,而不会对报文播报做出响应。

Modbus ASCII和Modbus RTU使用RS-485或RS-232串行通信方式传输数据包。Modbus TCP/IP或Modbus TCP是带有TCP接口的Modbus RTU协议,用于运行以太网。由于以太网允许点对点通信,而不是主/从站通信,因此Modbus TCP依赖于以太网的客户端服务器通信。Modbus TCP遵循OSI网络模型,并定义表示层和应用层。

 

Modbus报文发送

Modbus主站通过报文读取从站(数据采集点)的配置以及字段测量值。主站在查询报文中指定数据地址以读取或修改数据。主站引用从站中的4种数据,包括:

  1. 线圈(离散输出)——1位布尔变量,可以读取和修改为开/关(ON/OFF)。它们用于将离散输出的ON/OFF状态强制传送到测量区域。这些离散输出也用于修改从站的模式或状态(读写)。
  2. 输入状态(离散输入)——1位布尔变量,用于来自该字段的离散(布尔型)输入的开/关状态,或读取从站的状态(只读)。
  3. 输入寄存器——16位整数,代表来自字段的模拟输入值或从从站读取的值(只读)。
  4. 保持寄存器——16位整数,用于到该字段的模拟输出的值或设置从站的信息(读写)。

标准Modbus网络通信可使用ASCII或RTU两种传输模式,但所有设备必须使用相同的模式。在ASCII模式下,报文中的每个8位字节作为2个ASCII字符发送,而在RTU模式下,报文中的每个8位字节包含两个4位十六进制数
Modbus报文由16位词语读/写和称为“线圈”的二进制寄存器组成。来自主站的查询报文包含以下字段:

  1. 设备地址
  2. 功能码
  3. 查询数据
  4. 错误检查

从站的响应报文包含以下字段:

  1. 设备地址
  2. 功能码
  3. 响应数据
  4. 错误检查

使用的错误检查算法包括:

  1. ASCII模式下的LRC(纵向冗余校验)
  2. RTU模式下的循环冗余校验

地址字段

有效的从站地址范围为1~247(十进制),0为广播地址。

主站将目标从站的地址放入设备地址字段。因此,当每个从站接收到查询报文时,它们将首先检查地址字段,如果地址与其不对应,则除了被寻址的从站之外的所有从站都会忽略该报文。当从站响应查询时,它会将其设备地址放在响应报文中,以向主站指示该响应来自该特定从站。

功能字段

有效的功能字段代码范围为1–255(十进制)。该字段的功能代码告诉从站要执行什么功能,比如:参考哪个表/寄存器,以及是读还是写。从站在执行了功能代码中指示的动作后,将在功能字段中作出正常响应(原始功能代码指示无错误状态)或指示异常响应(出现错误)。

功能 代码 动作
01 离散输出线圈
05 写单 离散输出线圈
15 写多 离散输出线圈
02 离散输入线圈
04 模拟输入寄存器
03 模拟输出保持寄存器
06 写单 模拟输出保持寄存器
16 写多线圈 模拟输出保持寄存器

 

Modbus的优势

  • 除了作为工业协议,Modbus还可应用于楼宇、基础设施、交通和能源领域。
  • Modbus TCP/IP由于其开放性、简单性、低开发成本和最低硬件要求而变得非常受欢迎。
  • 它为采用TCP/IP协议的以太网应用提供了一种多功能、可扩展和厂商中立的数据表示。
  • 此外,还提供了不同供应商设备之间的互操作性。
  • Modbus TCP/IP协议和Modbus协议可免费下载,无需支付后续许可费。

 

Modbus的应用

Modbus是一种开放的免版税协议,制造商无需支付版税即可在其设备中使用。这已经成为工业电子通信的标准协议。在典型的应用场景中,它被用来将仪表和控制设备(如智能设备和传感器)的信号传输到作为主控制器的数据收集或数据采集系统。Modbus也常用于监控和数据采集系统(SCADA ),以连接远程终端设备和监控计算机。其他应用还包括:

  • 由于Modbus RTU支持无线通信,因此可用于天然气和石油变电站。
  • 由于具有跨设备兼容的报文结构,Modbus工业协议被用于建筑、基础设施、交通和能源应用。
  • 通过RS485 Modbus ADC从多个位置收集数据,可实现单一接口的温度监控。
  • 广泛用于家庭自动化,通过Modbus协议传输来自家庭自动化设备不同传感器的数据。

 

Modbus在工业中的应用

施耐德电气提供各种Modbus产品,包括:

Comtrol Corp.目前提供DeviceMaster UP单端口VDC Modbus。通过实现车间串行、Modbus设备与PLC控制器之间的通信,可以提升工厂车间设备的可视性。

其他主要的Modbus产品包括:

  • VPGate MODBUS/TCP转串行
  • ADAM-4572单端口Modbus网关
  • 带宽温技术(Wide Temperature)的EKI-12211单端口Modbus网关
  • DAM140 – 16  模拟输入Modbus模块
  • Digigate Profibus DP / Modbus RTU网关