Edge Box RPi 200とNode RedおよびModbus RS485
はじめに
Modbus RTU(Remote Terminal Unit)は、センサーやコントローラーなどのデバイスをシリアル通信回線で接続するための産業オートメーションで人気のプロトコルです。シンプルさと信頼性で知られ、産業プロセスの監視と制御に広く使用されています。Edge Box RPi 200は、Raspberry Piベースの産業用IoTゲートウェイで、Modbus RTUデバイスを最新のネットワークと統合することを可能にします。フローベースの開発ツールであるNode-REDを使用して、このwikiはEdge Box RPi 200でModbus RTU通信を設定するためのガイドをユーザーに提供します。エネルギー管理、環境監視、プロセス制御などのアプリケーションを紹介しています。このリソースは、さまざまな産業シナリオでModbus RTUを活用するための迅速で実用的なアプローチを提供します。
はじめに
このプロジェクトを開始する前に、ここで説明されているようにハードウェアとソフトウェアを事前に準備する必要があります。
ハードウェアの準備
Edge Box RPi 200 |
---|
![]() |
ソフトウェアの準備
Edge Boxは、Raspberry Pi OSがプリインストールされた状態でお手元に届きます。このデバイスを初めて起動する場合は、Getting Started Wikiをお読みください。Node-REDのGetting Startedガイドも用意しています。このwikiを進める前に、このガイドを確認することをお勧めします。このチュートリアルでは、YABE室温シミュレーターを実行するホストPCと、Edge Box上で動作するNode-REDを接続します。
RS485
Edge Box RPi 200には、1つのRS-485ポートがあります。詳細はこちらで確認できます。Node-REDで作業する前に、デバイスを適切に配線する必要があります。
Modbusノードのインストール
Modbusノードをインストールするには、Edge BoxでNode-REDを起動します。通常、Webブラウザを開いてhttp://<your-edgebox-ip>:1880
にアクセスできます。以下の手順に従ってください:
ステップ1. 右上角にある三本線アイコンで示される設定ボタンをクリックし、Manage paletteを選択します。
ステップ2. パレットタブで、Installタブに移動します。
ステップ3. ノード検索バーを使用して、目的のModbusノードを見つけます。
ステップ4. ノードの横にあるInstallボタンをクリックします。
ステップ5. プロンプトが表示されたら、ドロップダウン警告ウィンドウからInstallボタンをクリックしてインストールを確認します。
ステップ6. インストールプロセスが完了するまで待ちます。完了すると、InstallボタンがInstalledに変わります。

Modbusアドレスの特定
正しいModbusアドレスを特定することは重要なステップです。入力、出力、保持レジスタを含むModbusアドレスの詳細情報については、PLC、デバイス、またはセンサーメーカーのデータシートを参照することをお勧めします。
ここでは、SHT20 RS485温度センサーを使用します。RS485ハードウェアインターface(雷保護設計付き)を使用し、プロトコル層は標準産業用Modbus-Rtuプロトコルと互換性があります。データシートを調べると、温度と湿度データを提供する入力レジスタを見つけることができます。
デバイスからのデータ取得
必要なノード:Modbus Getter
、2つのFunction
ノード、2つのDebug
ノード、Modbus Response
。
これらのノードをドラッグ&ドロップし、以下の方法/順序で接続します。
Modbus Getterノードの設定
- Modbus Getterノードをダブルクリックします。
- Unit IDを
1
に設定します。 - FCを
FC4: Read Input Registers
に設定します。 - Addressを
1
に設定します(シミュレーションデバイスのデータシートで提供されている通り)。 - Quantityを
2
に設定します(2つのブロックを読み取るため)。
Modbusサーバーの設定
- Serverセクションで、鉛筆ボタンをクリックして新しいサーバー設定を作成します。
- サーバーに名前を付けます。
- Typeを
Serial Expert
に設定します。 - Serial Portを
/dev/ttyACM0
に設定します。 - Serial Typeを
RTU
に設定します。 - その他の設定はそのままにしておきます。
Functionブロックの設定
関連する温度と湿度の値を抽出するためにfunctionブロックを使用します。getterノードの出力は整数部と浮動小数点部の両方を含む10進数なので、基本的な数学を使用して調整する必要があります。
温度用
var tempMsg = { payload: msg.payload[0] / 100.0 };
return tempMsg;
湿度について
var humidMsg = { payload: msg.payload[1] / 100.0 };
return humidMsg;
デプロイ
Deploy ボタンを押してください。デバッグウィンドウで湿度と温度の値が表示されます。

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