Skip to main content

reComputer R1000とNode-REDおよびModbus TCP

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

はじめに

Modbusは、産業環境で広く使用されている通信プロトコルで、そのシンプルさと堅牢性で知られています。Modbus RTU (Remote Terminal Unit)は、RS-232またはRS-485物理層上で動作するシリアル通信プロトコルです。データをコンパクトでバイナリ形式で表現するため、長距離やノイズの多い環境での伝送に効率的です。一方、Modbus TCPはプロトコルをイーサネットネットワークに拡張し、ModbusフレームをTCP/IPパケット内にカプセル化します。これにより、通信速度が向上し、Modbusを現代のITインフラストラクチャと統合することが可能になります。両バージョンはその信頼性、実装の容易さ、およびPLC、センサー、SCADAシステムなどの多様なデバイスやシステム間の通信を促進する能力から、産業環境で好まれています。

始める前に

このプロジェクトを開始する前に、以下に記載されているように、ハードウェアとソフトウェアを事前に準備する必要があります。

ハードウェアの準備

reComputer R1000

Modbus対応デバイス

reComputer R1000は、PLC、VFD、HMI、エネルギーメーター、BMSシステムなど、さまざまなデバイスとのModbus通信をサポートしています。このケースでは、Modbus TCP/IPプロトコルをサポートするSiemens LOGO PLCを使用します。

ソフトウェアの準備

reComputer R1000は、事前にRaspberry Pi OSがインストールされた状態で提供されます。このデバイスを初めて起動する場合は、Getting Started Wikiを参照してください。 また、Node-REDの始め方ガイドを準備しています。このガイドを事前に確認することをお勧めします。

Modbus TCP/IPのためのイーサネット設定の構成

PLC/デバイスのIPドメインが無線設定と異なるため、IP構成を手動で変更する必要がある場合があります。そのためには、

  • ステップ01: Bullseyeを実行している場合、以下のコマンドを実行します:
sudo nano /etc/dhcpcd.conf
  • ステップ02: 次に、PLC/デバイスのネットワークドメインに従ってイーサネットポート設定を構成し、metricコマンドを使用して優先順位を設定します。最も低いメトリック値が最も高い優先順位を持ちます。
  • ステップ01: Bookworm OSを実行している場合、GUIを使用してネットワークアイコンをクリックします。詳細オプションの下で「接続を編集」を選択します。
  • ステップ02: 「Wired Connection 2」(ETH 1)を選択し、IPv4設定の下でアドレス、ネットマスク、ゲートウェイを追加します。

Modbusノードのインストール

Modbusノードをインストールするには、以下の手順に従ってください:

ステップ1. 右上隅にある三本線アイコンで示される設定ボタンをクリックし、パレットの管理を選択します。

ステップ2. パレットタブで、インストールタブに移動します。

ステップ3. ノード検索バーを使用して、目的のModbusノードを検索します。

ステップ4. ノードの横にあるインストールボタンをクリックします。

ステップ5. プロンプトが表示された場合は、警告ウィンドウのドロップダウンからインストールボタンをクリックしてインストールを確認します。

ステップ6. インストールプロセスが完了するのを待ちます。完了すると、インストールボタンがインストール済みに変わります。

Modbusアドレスの特定

正しいModbusアドレスを特定することは重要なステップです。入力、出力、および保持レジスタを含むModbusアドレスに関する詳細情報については、PLCまたはデバイスメーカーのデータシートを参照することをお勧めします

この情報に基づいて、タグ設定でModbusアドレスを調整できます。たとえば、データシートで出力コイルQ1が8193としてリストされている場合、Node-REDではアドレスを8192に設定する必要があります(元のアドレスから1減算)。同様に、ネットワーク入力が1としてリストされており、それがコイルタイプの場合、Node-REDではアドレスを0に設定する必要があります。

Modbus-Writeノードの設定

ステップ1. Modbus-Writeノードをドラッグ&ドロップしてワークスペースに配置し、ノードをダブルクリックして設定を開きます。

ステップ2. サーバータブで、以下の詳細を入力してデバイスを追加します:

  • 名前: サーバー名
  • タイプ: TCP
  • ホスト: ModbusサーバーのIPアドレス
  • ポート: Modbusサーバーのポートアドレス(通常は502)
  • ユニットID: 255(ユニットIDは、Modbusネットワーク内で複数のデバイスが同じ通信ラインを共有する場合に個々のデバイスを識別するために使用されます)

ステップ3. ノードに適切な名前を付けます。たとえば、「Network IP 1」とします。このデモでは、PLCプログラム内のネットワーク入力を制御します。

ステップ4. FCオプションFC 5: Force Single Coilに設定します。

ステップ5. アドレスを0に設定します(入力0をアドレス指定しています)。

ステップ6. Injectノードを使用して、ブール値を注入できます。この目的のためにいくつかのInjectノードを使用します。

全体の手順は以下のように示されます:

Modbus-Read ノードの設定

ステップ 1. ドラッグ&ドロップで Modbus-Read ノードをフローに追加します。このノードはパレットの Modbus タブにあります。

ステップ 2. ダブルクリックして Modbus-Read ノードの設定を開きます。

ステップ 3. 以下の設定を構成します:

  • 名前: 適切な名前を付けます。例: "ReadOutputs"。
  • FC 値: FC 値を FC 5: Read Coil Status に変更します。
  • アドレス: メーカーのデータシートに基づき、アドレスを 8192 に設定します。
  • 数量: 数量を 4 に設定します。この場合、4 つのデジタル出力があります。
  • ポールレート: アプリケーションのニーズに適したポールレートに変更します。
  • サーバー: サーバーを "MyPLC" に設定します(前の例で設定済み)。

Modbus-Response ノードの設定

Modbus-Response ノードは、Modbus Read/Write ノードのレスポンスを表示するために使用されます。

ステップ 1. ドラッグ&ドロップで Modbus-Response ノードをフローに追加します。

ステップ 2. Modbus Read ノードと接続します。レスポンスは Modbus-Response ノードの下に数値の配列として表示されます。これらの数値は各デジタル出力のカウントを表します。

ステップ 3. デバッグノードをドラッグ&ドロップして検査目的で使用します。その後、Modbus Read ノードと接続します。

これらの手順を実行することで、Modbus TCP デバイスからレジスタやコイルの値を効果的に読み取り、表示することができます。

全体の手順は以下のように示されます。

技術サポートと製品ディスカッション

弊社製品をお選びいただきありがとうございます!製品の使用体験がスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルを用意しています。

Loading Comments...