Modbus protocol是一个开放標準的通信プロトコル,最初设计用于连接可プログラミング逻辑コントローラーは(PLC)和其他自動化デバイス。它的简单性和可靠性使得 Modbus 成为工业领域中最受欢迎的通信プロトコル之一,被广泛用于モニタリング、控制和データの収集。
什么是 Modbus
Modbus 是工业界常用的一种通信プロトコル,可以理解为是一种通讯的约定。
Modbus protocol包括 RTU、ASCII、TCP,among them Modbus-RTU most common,比较简单,在单片机上很容易実装。Modbus RTU 协议定义了一个与下层通信层无关的简单协议データユニット(PDU),串行链路上的 Modbus RTU フレーム形式如下图所示。

among them,アドレス字段只含有スレーブアドレス;機能コード指示指令要执行何种操作;機能コード的后续データ是リクエスト或応答データ字段;差错检验字段是“报文内容”データ进行“循环冗余チェック”計算所得结果,采用 CRC16 循环冗余チェック算法。
Modbus 和 OPC UA、MQTT 等通信プロトコル本质上是一样的,都是为了実装多个デバイス相互通信的アプリケーション層プロトコル。
Modbus 的起源与发展
Modbus protocol于 1979 年由 Modicon company(现被 Schneider 公司收购)设计开发,一经面世因其简单开放的通信の形態逐渐成为工业系统中流行的標準,是全球第一个真正用于工业现场的バス协议。
后来,为了更好地普及和推动 Modbus 基于イーサネット(イーサネット)(TCP/IP)的分布式应用,シュナイダー公司将 Modbus protocol的すべての权移交给 IDA(Interface for Distributed Automation,分布式自動化接口)组织,并成立了 Modbu-IDA 国际组织,负责推广 Modbus 標準以及对 Modbus 产品进行认证。
现在,我们可以从 Modbus 官网 www.modbus.org 找到相关プロトコルのドキュメント、Modbus 产品和厂商等信息。
Modbus 通信プロトコル特点
Modbus protocol定义了一个コントローラーは能够认识使用的メッセージ構造,而不管它们是经过何种网络进行通信的。因此,底层通信の形態可以使用 RS232,RS485 等串行链路,也可以使用 TCP/IP イーサネット(イーサネット)链路。当在 Modbus 网络上通信时,コントローラーは必须要知道该网络中其他从デバイス的アドレス,才能识别按アドレス发来的メッセージ,并作出相应行为。
简单来说,Modbus 通信プロトコル具有以下几个特点:
- Modbus protocol standard开放、公开发布且无版税要求,用户可以無料取得并使用 Modbus protocol,必要なし。缴纳ライセンスは费;
- Modbus 最开始使用 RS232,RS485 等串行链路作为底层通信の形態,串行バス的接口芯片成本低,而且布线也简单方便;
- Modbus protocolサポート多种电气接口,如 RS232、RS485、TCP/IP 等,还可以在各种介质上传输,如ツイストペア、光纤、Infrared、无线等;
- Modbus 是简单地アプリケーション層プロトコル,其协议メッセージフレーム形式简单、紧凑、通俗易懂,便于用户理解和使用、厂商开发和集成,方便形成工业控制网络。
なぜか。要学习 Modbus
虽然 Modbus 已经发展到了极为成熟的阶段,但由于其协议的简单性以及便于在多种通信媒介上实施的应用特点,Modbus 仍然是当前工业電子デバイス之间常用的连接方式之一。在某种程度上来说,Modbus 通信プロトコル就是工业领域通信プロトコル的业界標準。在IoT蓬勃发展的当下,了解并掌握广泛应用的 Modbus 通信プロトコル意义重大。
下图表示了 Modbus RTU 网络的デバイス连接。

专业术语
在 Modbus 开发中的常见专业术语如下:
- Master :主(站)device
- Slave :从(站)device
- Client :クライアント側は,对应 Master device
- Server :サーバー側。,对应 Slave device
- ADU :应用データユニット(Application Data Unit)
- PDU :协议データユニット(Protocol Data Unit)
- MSB :最高有效位(Most Significant Bit)
- LSB :最低有效位(Least Significant Bit)
- MBAP :Modbus 应用协议(Modbus Application Protocol)
- PLC :可プログラミング逻辑コントローラーは(Programmable Logic Controller)
- RTU :远程终端ユニット(Remote Terminal Unit)
- SCADA :监督控制和データの収集(Supervisory Control And Data Acquisition)
Leave a Reply