Edge Box RPi 200 with Node Red and Modbus TCP
はじめに
Modbusは、そのシンプルさと堅牢性で知られる、産業環境で広く使用されている通信プロトコルです。**Modbus RTU(Remote Terminal Unit)**は、RS-232またはRS-485物理層上で動作するシリアル通信プロトコルです。データのコンパクトなバイナリ表現を使用するため、長距離やノイズの多い環境での伝送に効率的です。一方、Modbus TCPは、プロトコルをイーサネットネットワークに拡張し、ModbusフレームをTCP/IPパケット内にカプセル化します。これにより、より高速な通信速度と、Modbusの現代的なITインフラストラクチャとの統合が可能になります。両バージョンとも、信頼性、実装の容易さ、PLC、センサー、SCADAシステムなどの幅広いデバイスやシステム間の通信を促進する能力により、産業環境で好まれています。
はじめに
このプロジェクトを開始する前に、ここで説明するように、ハードウェアとソフトウェアを事前に準備する必要があります。
ハードウェアの準備
Edge Box RPi 200 |
---|
![]() |
Modbus サポートデバイス
EdgeBox RPi 200は、PLC、VFD、HMI、エネルギーメーター、BMSシステムを含む様々なデバイスとのModbus通信をサポートしています。このケースでは、Modbus TCP/IPプロトコルをサポートするSiemens LOGO PLCを使用します。
ソフトウェアの準備
Edge Box-200は、Raspberry Pi OSがプリインストールされた状態でお手元に届きます。このデバイスを初回起動する場合は、Getting Started Wikiをお読みください。 Node-REDの入門ガイドを用意しています。このwikiに進む前に、このガイドを確認することをお勧めします。
Modbus TCP/IP用のイーサネット設定の構成
PLC/デバイスのIPドメインがワイヤレス設定と異なるため、IP設定を手動で変更する必要がある場合があります。そのために、
- ステップ01: 以下のコマンドを実行します:
sudo nano /etc/dhcpcd.conf
- ステップ02: 次に、PLC/デバイスのネットワークドメインに応じてイーサネットポートの設定を構成し、metricコマンドを使用して優先度を設定します。最も低いメトリックが最も高い優先度を持ちます。
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)
- Unit-Id: 255(Unit-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. 以下の設定を行います:
- Name: 「ReadOutputs」など、適切な名前を付けます。
- FC value: FC値をFC 5: Read Coil Statusに変更します。
- Address: アドレスを8192に設定します(メーカーのデータシートに従って)。
- Quantity: 数量を4に設定します。この場合、4つのデジタル出力があります。
- Poll Rate: アプリケーションのニーズに適したポーリングレートに変更します。
- Server: サーバーを「MyPLC」に設定します(前の例で設定済み)。
Modbus-Responseノードの設定
Modbus-Responseノードは、Modbus Read/Writeノードの応答を表示するために使用されます。
ステップ1. Modbus-Responseノードをフローにドラッグアンドドロップします。
ステップ2. Modbus Readノードと接続します。応答はModbus-Responseノードの下に数値の配列を表示します。これらの数値は各デジタル出力のカウントを表します。
ステップ3. 検査目的でDebugノードをドラッグアンドドロップします。次にModbus Readノードと接続します。
これらのステップに従うことで、Modbus TCPデバイスからレジスタ/コイルの値を効果的に読み取り、表示することができます。
全体的なステップは以下のように実演できます。

技術サポート & 製品ディスカッション
私たちの製品をお選びいただき、ありがとうございます!私たちは、お客様の製品体験が可能な限りスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、複数のコミュニケーションチャンネルを提供しています。