RS485 および Modbus 通信プロトコル

Aug 29, 2025 ご伝言

RS485 インターフェースの概要

 

RS485 は、高速、長距離伝送、耐干渉性、マルチデバイス共有機能で知られるシリアル通信インターフェース規格です。-産業オートメーション、スマートホーム、セキュリティシステム、その他の分野で広範囲に応用されています。この記事では、RS485 インターフェイスの原理、回路設計、通信プロトコル、および一般的な問題の解決策の詳細な概要を説明します。


RS485の原理

 

RS485 インターフェイスは差動伝送を採用しており、2 本の信号線 (A と B) を利用して電圧レベル信号を伝送します。信号の大きさは、これら 2 つのライン間の電圧差によって決まります。 RS485 インターフェイスでは、A 信号線と B 信号線の両方が送信機または受信機として機能します。この差動伝送方式により、RS485 インターフェイスは外部ノイズや干渉に効果的に抵抗し、伝送品質を確保できます。


RS485 応用分野


RS485 インターフェースは、産業オートメーション、スマート ホーム、セキュリティ システムなど、長距離、高速、安定したデータ伝送を必要とするシナリオで広く使用されています。-{2}} RS485は伝送距離に関しては最大1200メートルをサポートし、伝送速度に関しては最大10Mbpsをサポートします。これにより、RS485 インターフェイスは、データ収集、規制、監視、制御に関わるシナリオに広く適用できるようになります。

 

 

 

info-638-230

RS485回路設計


RS485 インターフェイスの回路設計では、伝送距離、通信速度、雷保護、絶縁などの複数の要素を考慮する必要があります。以下では、RS485 インターフェイスの回路設計をそれぞれの側面から紹介します。

 

伝送距離


RS485 インターフェイスは差動伝送により、より長い伝送距離をサポートします。ただし、実際のアプリケーションでは、伝送線路のインピーダンス、クロストーク、信号品質などの要因により、伝送範囲に制限が課せられます。信号損失と歪みを最小限に抑えるために、RS485 インターフェイス回路を設計する場合は、伝送距離を 1.2 km 以内に制限することを一般的にお勧めします。


通信速度

 

RS485インターフェースは最大10Mbpsの通信速度を実現します。実際のアプリケーションでは、特定の条件に基づいて適切な通信速度を選択するのが一般的です。通信速度が速くなると、伝送効率が向上しますが、インターフェース回路の複雑さと技術的要求も高まります。


雷保護


複雑な産業環境を考慮すると、RS485 インターフェイスは落雷、静電気、サージなどのさまざまな障害に頻繁に遭遇します。 RS485 インターフェイス回路を保護するには、雷保護対策が不可欠です。調整可能な過電圧保護装置や金属酸化物バリスタ (MOV) などのコンポーネントを使用して、落雷保護を実現できます。


分離

 

特定のシナリオでは、RS485 インターフェイスと他の回路の間の絶縁が必要です。これは、信号を絶縁するフォトカプラや磁気カプラなどのコンポーネントを使用して実現できます。これにより、潜在的なグランド ループやノイズ干渉が効果的に防止され、インターフェイス回路の信頼性と安定性が向上します。


RS485通信プロトコル


実際のアプリケーションでは、RS485 インターフェイスにはプロトコル仕様とデータ形式も必要です。一般的な RS485 通信プロトコルには、Modbus、Profibus、CANopen などがあります。各プロトコルには明確な特性と適用可能なシナリオがあり、特定の要件に基づいて選択できます。以下では主に、RS485 インターフェイスに基づくプロジェクトで最も広く使用されている伝送プロトコルである Modbus RTU プロトコルを紹介します。


Modbus RTU の概要

 

Modbus RTU は、広く採用されている産業用通信プロトコルであり、Modbus フレームワークに基づくシリアル通信プロトコルの 1 つです。このプロトコルは主に PLC コントローラー、センサー、アクチュエーターなどのデバイス間のシリアル通信に使用され、データ交換を容易にします。この記事では、Modbus RTU プロトコル内の各レジスタの具体的な意味を詳しく説明し、各機能コードのデータ送受信の例を示し、重要な CRC チェックサムに焦点を当てます。


Modbus RTU プロトコルのデータ形式


Modbus RTU プロトコルは、データ送信にシリアル通信を利用します。


具体的には:


[アドレス] フィールドは、通信中のスレーブ デバイスのアドレスを識別します。これは、0 ~ 247 の任意の値にすることができます。


ファンクション コードは、データ型と読み取り/書き込み方向を指定します。通常は 1 ~ 127 の整数です。


データ フィールドには実際のデータ コンテンツが含まれます。
チェックサム (CRC) はデータ パケットの整合性を検証します。
Modbus RTU プロトコルの機能コード
Modbus RTU プロトコルでは、異なる機能コードが異なるデータ タイプと読み取り/書き込み方向を表します。以下は、一般的に使用される機能コードとその意味です。


01: コイルレジスタの読み出し
02: ディスクリート入力レジスタの読み取り
03: リードホールドレジスタ
04: 入力レジスタの読み取り
05: シングルコイルレジスタの書き込み
06: シングルホールドレジスタの書き込み
15: 複数のコイルレジスタを書き込む
16: 複数のホールドレジスタを書き込む


Modbus RTU プロトコル アドレス レジスタ


デバイス アドレスとレジスタ アドレスは、Modbus RTU プロトコルでの通信にとって重要なパラメータです。アドレスレジスタは以下の 4 種類に分類できます。


コイルレジスター (コイルレジスター)

 

コイル レジスタにはブール値 (0 または 1) が格納されます。機能コード 01、05、および 15 は、コイル レジスタでの操作が許可されています。各コイルの状態は、単一のバイナリ ビットで表すことができます。


たとえば、ビット 0x0001 のコイルが 0 に設定されている場合、そのバイナリ値は 00000000 00000001. になります。コイルが 1 に設定されている場合、そのバイナリ値は 00000000 00000010. に変わります。


ディスクリート入力レジスタ


ディスクリート入力レジスタはバイナリ入力スイッチの値を保存し、読み取り専用です。対応する機能コードは 02 です。ディスクリート入力レジスタとコイル レジスタの違いは、スイッチが現在の状態ではなくオン状態であるかどうかを示すことです。-


保有登録簿

 

Holding Register には 32 ビット整数変数が格納されます。ファンクション コード 03、04、06、および 16 は、保持レジスタに対する読み取り/書き込み操作を許可します。保持レジスタ内の値は、デバイス間のデータ転送を容易にしたり、関連する制御パラメータとしてユーザーがカスタマイズしたりできます。


入力レジスタ

 

入力レジスタは 32- ビットの整数変数を格納し、機能コード 04 による読み取り専用操作をサポートします。保持レジスタと同様に、入力レジスタの値はデバイス間で転送できますが、ユーザーが変更することはできません。


Modbus RTU プロトコル CRC チェック

 

Modbus RTU プロトコル通信の信頼性を確保するために、このプロトコルは巡回冗長検査 (CRC) 方式を採用してデータ パケットの整合性を検証します。 CRC チェック コードは、送受信されたデータ パケットに基づいて計算され、送信側と受信側の両方で同時に検証されます。


リードホールドレジスタ(ファンクションコード:03)を例にとると、送信および受信データパケットの CRC チェックサムの 16 進値は、それぞれ 0x39 と 0x3E です。送受信される具体的なデータ パケットは次のとおりです。


送信機-がデータ パケットを送信しました: 01 03 00 00 00 01 C4 0B
このパケットでは、最初の 6 ビット (01 03 00 00 00 01) は Modbus RTU プロトコル形式を表し、最後の 2 ビット (C4 および 0B) は CRC チェックサムを構成します。
受信側で受信したパケット: 01 03 02 00 01 39 3E
このデータ パケットでは、最初の 6 ビット 01 03 02 00 01 39 は受信した保持レジスタ値 (2 バイト) を表し、最後の 2 ビット 3E と 39 は計算された CRC チェックサムです。


Modbus RTUプロトコルの送信例


以下は、デバイスの保持レジスタからデータを読み取るための簡単な Modbus RTU プロトコル送信例です。


送信機は次を送信します: 01 03 00 00 00 02 C5 9A
受信者は次を受け取ります: 01 03 04 00 00 00 66 CB


この例では、機能コード 03 を使用してデバイス 01 のホールド レジスタを読み取り、レジスタ アドレス 0x0000 の 2 バイトにアクセスします。したがって、受信したデータ パケットには値 0x0000 と 0x0000、つまり 0x0000 0000 が含まれており、16 進数では 0x66CB として表されます。


結論


この記事では主に、RS485 インターフェイスの原理、アプリケーション、回路設計、通信プロトコル、およびトラブルシューティング ソリューションについて説明します。 RS485 インターフェイスは、産業オートメーション、スマート ホーム、セキュリティ システム、その他の分野で幅広く使用されています。ただし、インターフェイス回路の信頼性と安定性を確保するには、伝送距離、通信速度、雷保護、絶縁などの要素を考慮する必要があります。データ形式、機能コード、アドレス レジスタ、CRC チェックサムなど、Modbus RTU プロトコルの基本的な知識が紹介されています。実際のアプリケーションでは、Modbus RTU プロトコルは産業オートメーション制御システム内のデバイス間の通信に広く使用されています。データを読み取るときは、デバイスアドレス、レジスタアドレス、およびファンクションコードの選択に特に注意を払う必要があります。

お問い合わせを送る

whatsapp

電話

電子メール

引き合い