Modbus 是工业界常用的一种简单、可靠、开放的通信プロトコル,可以在多种通信媒介上实施,包括常见的 RS232、RS485 和イーサネット(イーサネット)。随着 Modbus-TCP 的广泛应用,国际互联网组织规定并保留了 TCP/IP プロトコルスタック上的系统 502 ポート,专门用于アクセス Modbus device。
下图大致表示了 Modbus protocol栈模型。

Modbus 通信プロトコル目前存在用于串行链路、TCP/IP イーサネット(イーサネット)以及其他サポート互联网协议的网络版本。在实际应用中,経由 RS485 和 TCP/IP 连接的方式最为常见。下面介绍 Modbus protocol的多种变体。
Modbus RTU
Modbus RTU 是 Modbus 最も一般的な的実装方式,它基于串行通信バス(例如 RS232、RS485),并采用紧凑的二进制データ形式进行协议通信。RTU 格式在命令/データ之后带有循环冗余チェック的チェック和作为エラーチェック机制,以确保データ的可靠性。Modbus RTU メッセージ必须连续传输,ない文字间犹豫。Modbus メッセージ由空闲(静默)时段构成(分隔)。

RTU モード每バイト単位。(11位)的格式为:
| フレーム形式 | 説明 |
|---|---|
| 编码系统 | 8位二进制 |
| data bit | 1位 スタート地点。 8位 data bit,首先送信最低有效位 1位 パリティ検査(注:デフォルトの偶数検証是必须的,奇数チェック或検証なし。也可以使用) 1位 stop bit(注:使用検証なし。时要求2个ストップ·ビット) |
| フレーム送信方式 | 每个文字或バイト均由从左到右顺序送信 |
| 检验 | CRC(循环冗余チェック),低位バイト先发 |
| start/End | 报文フレーム由时长至少为 3.5 バイト単位。时间的空闲間隔区分 1 フレームデータ |
Modbus ASCII
Modbus ASCII 和 Modbus RTU 一样都是使用串行链路通信の形態,不同的是,Modbus ASCII 采用一种人类可读的、冗长的表示方式,并使用纵向冗余チェック的チェック和保证データ传输完全に。性。Modbus ASCII メッセージ由前导冒号 (":") 和尾随换行符 (CR/LF) 构成。

ASCII モード每バイト単位。(10位)的格式为:
| フレーム形式 | 説明 |
|---|---|
| 编码系统 | hexadecimal,ASCII characters 0-9,A-F |
| data bit | 1位 スタート地点。 7位 data bit,首先送信最低有效位 1位 パリティ検査(注:デフォルトの偶数検証是必须的,奇数チェック或検証なし。也可以使用) 1位 stop bit(注:使用検証なし。时要求2个ストップ·ビット) |
| フレーム送信方式 | 每个文字或バイト均由从左到右顺序送信 |
| 检验 | LRC(纵向冗余チェック),低位バイト先发 |
| start | 一个‘冒号’(:)start,对应 ASCII 十六进制为 3A |
| End | 以‘回车-换行’(CR,LF)对(ASCII hexadecimal 0D 和 0A)End |
需要注意的是,由于フレーム形式不同,被設定为 RTU モード的节点是不能与設定为 ASCII モード的节点正常通信,反之亦然。
Modbus TCP
Modbus TCP(或称为 Modbus TCP/IP)是一种 Modbus 变体,用于経由 TCP/IP 网络进行通信,経由ポート 502 进行连接。和前面两种不一样,Modbus TCP 必要なし。チェック和計算,因为较低层的 TCP/IP プロトコルスタック已经提供チェック和保护。
もし将チェック和包含在有效载荷中,形成与 Modbus RTU 类似的フレーム,则称为 Modbus RTU/IP。

其他版本
除了上述三种常用的 Modbus protocol,还有如下一些不太常见的 Modbus 扩展版本。
Modbus over UDP
既然有 Modbus over TCP,那么自然也会有人尝试将 Modbus 运行在 UDP 之上,即 Modbus over UDP。 这么做的好处是消除了 TCP 所需的开销。
Modbus Plus
Modbus Plus(Modbus+、MB+ 或 MBP)协议是 Schneider Electric 的专利,与其他变体不同,它サポート多个マスター之间的点对点通信。不过,它需要一个专用的协処理器来処理类似 HDLC 的高速令牌轮换。它使用 1 Mbit/s 的ツイストペア,并在每个节点都有变压器絶縁,这使其成为转换/边沿触发而ではない电压/电平触发。connect Modbus Plus 到計算机需要特殊的硬件,通常是サポート ISA、PCI 或 PCMCIA バス的板卡。
Pemex Modbus
Pemex Modbus 是標準 Modbus 的扩展,サポート历史和トラフィックデータ。它是为 Pemex 石油和天然气公司设计的,用于过程控制,但从未得到广泛采用。
Enron Modbus
Enron Modbus 是 Enron 公司开发的標準 Modbus 的另一个扩展,サポート 32 ビット整数型和浮点变量以及历史和トラフィックデータ。データ型使用標準アドレスマッピング。历史データ用于满足美国石油协会 (API) 業界標準,即如何存储データ。
Precautions
前四种 Modbus protocol(Modbus RTU、Modbus ASCII、Modbus TCP 和 Modbus UDP)在データ模型和功能调用上都是相同的,只是传输报文的封装方式不同。但是,由于フレーム形式不同,因此这些协议变体并ではない可互操作的。
Leave a Reply