Modbusが単一および複数のレジスタを読み取る方法

無料無料技术资料

这篇内容可直接阅读,适合用于基础学习和検索引流。

Modbusが単一および複数のレジスタを読み取る方法
Modbusが単一および複数のレジスタを読み取る方法插图

産業オートメーション、センサー、デバイス間の通信に関しては、Modbusプロトコルがツールボックスに含まれています。Modbusは、機器のデータを読み取り、制御するための通信プロトコルであり、産業用制御システムで広く使用されています。では、Modbusが保持レジスタのデータをどのように読み取るかを、単一レジスタと複数レジスタの読み取りの両方で説明しましょう。

Modbusとは?

Modbusは、さまざまな産業機器、センサー、コントローラを接続するための通信プロトコルです。これらのデバイス間でデータを交換して、監視、制御、データ収集を可能にします。Modbus RTU、Modbus ASCII、Modbus TCP/IPなど、Modbusプロトコルには様々なバリエーションがありますが、これらはすべて同じ原理に従っています。

保持レジスタとは何ですか?

Modbus通信では、データは通常、デバイス内の保持レジスタに格納されます。これらのレジスタには、温度、湿度、電流などのさまざまな情報が含まれます。このデータを読み取るには、これらの保持レジスタとの通信方法を理解する必要があります。

シングルホールドレジスタの読み取り

Modbusプロトコルを使用してModbusスレーブ(デバイス)から個々の保持レジスタを読み取る場合、スレーブアドレス、関数コード、および保持レジスタのアドレスを指定する必要があります。以下は、スレーブアドレスと完全なModbus RTUプロトコルフレームを含む単一のホールドレジスタを読み取る方法を示す例です。

例:例:

スレーブアドレス1のModbusデバイスからアドレス00 02のホールドレジスタの値を読み出すとします。具体的な手順は:

  1. まず、以下を含むModbus RTUプロトコルフレームを構築する必要があります。
  • ホームアドレス:1
  • 機能コード:03(リードホールドレジスタ)
  • 開始レジスタアドレス:00 02
  • 読み出したレジスタ数:00 01
  • CRCチェック(巡回冗長検査)構築が完了すると、プロトコルフレームは次のようになります。
アドレス:0 1
   機能コード:0 3
   登録番号:0 0 2
   登録番号:0 0 1
   CRCチェック: [前のデータから計算]
  1. 次に、このプロトコルフレームをModbusスレーブに送信します。スレーブはリクエストを受信すると処理を行います。
  2. スレーブはリクエストに応答し、保持レジスタの値を返します。回答は以下の通り。
  • 機能コード:0 3
  • データバイト数:0 2(2バイト)
  • レジスタ値ハイバイトは02、ローバイトは50
  • CRCチェック応答パケットは次の通りです。
機能コード:0 3
   データバイト数:0 2
   レジスタ値:0 2 50
   CRCチェック: [前のデータから計算]

この例では、スレーブアドレスが1のModbusデバイスの保持レジスタ0002の値を読み取ることができ、値は0250です。Modbus RTUプロトコルの完全なフレームは、Modbus通信の重要な部分であるスレーブアドレス、ファンクションコード、レジスタアドレス、データバイト数、CRCチェックをカバーしています。CRCチェックは、通信の整合性を保証するために使用されます。

この例では、Modbusプロトコルを使用してModbusスレーブから単一のホールドレジスタの値を読み取る方法を理解し、完全なプロトコルフレーム構造を含みます。お役に立てれば幸いです。

複数の保持レジスタの読み出し

Modbusプロトコルを使用してModbusスレーブ(デバイス)から複数の保持レジスタを読み込む場合、スレーブアドレス、ファンクションコード、開始レジスタアドレス、および読み込むレジスタ数を指定する必要があります。以下は、スレーブアドレスと完全なModbus RTUプロトコルフレームを含む複数のホールドレジスタを読み取る方法を示す例です。

例:例:

スレーブアドレスが1のModbusデバイスから、アドレス0002から始まる3つの連続保持レジスタの値を読み出すとします。具体的な手順は:

  1. まず、以下を含むModbus RTUプロトコルフレームを構築する必要があります。
  • ホームアドレス:1
  • 機能コード:03(リードホールドレジスタ)
  • 開始レジスタアドレス:00 020 0 2からスタート
  • 読み出したレジスタ数:00 033つの数字を読む
  • CRCチェック(巡回冗長検査)構築が完了すると、プロトコルフレームは次のようになります。
アドレス:0 1
   機能コード:0 3
   開始レジスタアドレス:0 0 0 2
   登録番号:0 0 3
   CRCチェック: [前のデータから計算]
  1. 次に、このプロトコルフレームをModbusスレーブに送信します。スレーブはリクエストを受信すると処理を行います。
  2. スレーブは要求に応答し、要求された複数の保持レジスタの値を返します。回答は以下の通り。
  • 機能コード:0 3
  • データバイト数:0 6(6バイト)
  • レジスタ値:各レジスタは2バイト
  • CRCチェック応答パケットは次の通りです。
機能コード:0 3
   データバイト数:0 6
   レジスタ値: [High Byte Low Byte,High Byte Low Byte,High Byte Low Byte]
   CRCチェック: [前のデータから計算]

たとえば、最初のレジスタの値は0 x 0250、2番目のレジスタの値は0 x 0 3 E 8、3番目のレジスタの値は0 x 000Aです。

この例では、スレーブアドレス1のModbusデバイスのレジスタ0002から始まる3つの連続保持レジスタの値を読み取ることに成功しました。完全なModbus RTUプロトコルフレームは、Modbus通信の重要な部分であるスレーブアドレス、ファンクションコード、開始レジスタアドレス、データバイト数、CRCチェックをカバーしています。Modbusプロトコルを使用してModbusスレーブから複数の連続したホールドレジスタの値を読み取る方法を学びながら、これがお役に立てれば幸いです。

概要まとめ

これらの例は、Modbusプロトコルを使用して単一および複数の保持レジスタのデータを読み取る方法を理解するのに役立ちます。実際のModbus通信では、より詳細や設定が必要になるかもしれませんが、この簡単な説明は初心者がModbusの基本を理解するのに役立ちます。

要約すると、Modbusは産業オートメーションとデバイス制御のための強力な通信プロトコルです。さまざまなデバイスが相互に通信し、データ収集と制御操作を可能にします。この小さな説明が、Modbusプロトコルの読み取り操作をよりよく理解するのに役立つことを願っています。

この資料を実際のプロジェクトに活用しませんか?

ツールセンターで電文解析、CRCチェック、デバイスデバッグを行うか、要件を送信して選定と接続のアドバイスを受けましょう。

エンジニア会員

この記事を実行可能なデバッグ資料に

登録すると、高度な電文解析、資料パックのダウンロード、コード例、エンジニアリングケース、優先技術サポートが利用可能に。実際のプロジェクト納品に最適です。

高度なツール無制限
資料パックとコードパック
完全なエンジニアリングケースライブラリ
優先技術サポート窓口

发表回复

あなたのメールアドレスアドレス不会被公开。 必須項目已用 * 标注