技術共有

通信プロトコル_Modbusプロトコルの紹介

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

コンセプト紹介

  • Modbus プロトコル: プログラマブル ロジック コントローラー (PLC) を使用した通信用に、Modicon Corporation (現 Schneider Electric) が 1979 年に発行したシリアル通信プロトコル。 Modbusは産業分野における通信プロトコルの業界標準(デファクト)となり、現在では産業用電子機器間の接続方式として一般的に使用されています。
  • コミュニケーションの具体的な説明: 人間のコミュニケーションプロセスと同様に、コミュニケーションには次のことが必要です。コミュニケーションの役割(マスター/スレーブ、クライアント/サーバー...)、通信媒体(シリアル、イーサネット、ワイヤレス...)、同意書(modbus、S7、MC...) 3 つの要素。
  • ネットワーク プロトコルの 3 つの要素:文法(データおよび制御情報の構造または形式)、セマンティクス(どのような制御情報を送出するのか)、同期(イベントの実行シーケンスの詳細な説明、マッチング速度など)。

ModbusRTUプロトコルの紹介

文法構造:

  • アドレス コード: スレーブ デバイスを識別するために使用されます。範囲は 0 ~ 247 です。0 はブロードキャスト アドレスで、すべてのスレーブ デバイスはこのアドレスからデータを受信します。
  • ファンクションコード: レジスタ値の読み取り、単一レジスタへの書き込みなど、実行される操作のタイプを示すために使用されます。
  • データ: レジスタアドレス、データ値、その他の情報が含まれます。ファンクションコードに応じて、データの内容と長さが異なります。
  • CRC チェック コード: データ送信中にエラーが発生したかどうかを検出するために使用されます。データフレームの最後に 2 バイトの CRC チェックコードを追加します。受信機はデータを受信した後、CRC チェックコードを再計算し、受信した CRC チェックコードと比較します。異なる場合は、データが存在することを意味します。送信プロセスでエラーが発生しました。

機能コード:

  • ファンクションコード 01: コイルステータスの読み取り (Read Cocks)。リモートデバイスから 1 ~ 2000 個のコイルのステータスを連続的に読み取るために使用されます。
  • 機能コード 02: 入力状態の読み取り (Read Inputs) により、スイッチ入力グループの ON/OFF の現在の状態を取得します。
  • 機能コード 03: 保持レジスタを読み取り (Read Holding Registers)、1 つまたは複数の保持レジスタの現在のバイナリ値を取得します。
  • 機能コード 04: 入力レジスタを読み取り (読み取り入力レジスタ)、1 つまたは複数の入力レジスタの現在のバイナリ値を取得します。
  • ファンクションコード 05: 単一コイルを強制、ロジックコイルのオン/オフ状態を強制します。
  • 機能コード 06: プリセット単一レジスタ。特定のバイナリ値を保持レジスタにロードします。
  • 機能コード 15: 複数コイルの強制、一連の連続ロジック コイルのオンとオフを強制します。
  • 機能コード 16: プリセット複数レジスタ (プリセット複数レジスタ)、特定のバイナリ値を一連の連続保持レジスタにロードします。

例:
スレーブ (01) のカーテン開度を読み取り (03) (2 番目から読み取り: 00 02 1 ビットを読み取り 00 01 CRC チェック 25 CA):
ここに画像の説明を挿入します
ここに画像の説明を挿入します