Modbus protocol版本

freeFree Technical Resource

This content is free to read, suitable for basic learning and search traffic.

Modbus protocol版本

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

下图大致表示了 Modbus protocol栈模型。

Modbus protocol版本イラスト

Modbus 通信プロトコル目前存在用于串行链路、TCP/IP イーサネット(イーサネット)以及其他サポート互联网协议的网络版本。在实际应用中,経由 RS485 和 TCP/IP 连接的方式最为常见。下面介绍 Modbus protocol的多种变体。

Modbus RTU

Modbus RTU 是 Modbus 最も一般的な的実装方式,它基于串行通信バス(例如 RS232、RS485),并采用紧凑的二进制データ形式进行协议通信。RTU 格式在命令/データ之后带有循环冗余チェック的チェック和作为エラーチェック机制,以确保データ的可靠性。Modbus RTU メッセージ必须连续传输,ない文字间犹豫。Modbus メッセージ由空闲(静默)时段构成(分隔)。

Modbus protocol版本イラスト1

RTU モード每バイト単位。(11位)的格式为:

フレーム形式説明
编码系统8位二进制
data bit1位 スタート地点。
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) 构成。

Modbus protocol版本イラスト2

ASCII モード每バイト単位。(10位)的格式为:

フレーム形式説明
编码系统hexadecimal,ASCII characters 0-9,A-F
data bit1位 スタート地点。
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版本イラスト3

其他版本

除了上述三种常用的 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)在データ模型和功能调用上都是相同的,只是传输报文的封装方式不同。但是,由于フレーム形式不同,因此这些协议变体并ではない可互操作的。

Put this resource to use in a real project?

Go to the Tool Center for message parsing, CRC verification and device debugging, or submit your requirements for selection and integration advice.

Engineer Membership

Turn this article into actionable debugging resources

After activation, you can use advanced message parsing, resource pack downloads, code examples, engineering cases and priority technical support, suitable for real project delivery.

Unlimited Advanced Tools
Resource & Code Packs
Complete Engineering Case Library
Priority Technical Support

Leave a Reply

Your email address will not be published. Required fields are marked *.