Node-REDとは

Field Magicの導入レシピ記事や親機コントローラーの設定画面で目にする「Node-RED」について、本記事ではその基本(何であるか、どんな仕組みか、何が得意で何が苦手か)を解説したうえで、Field Magicの中で実際にどう使われているかを紹介します。

Node-REDとは何か

Node-REDは、ノードと呼ばれる部品を線でつなぎ、フロー(データの流れ)としてアプリケーションを組み立てるツールです。ブラウザ上のエディタで動作し、専用のIDEやコンパイラを別途用意する必要はありません。

もとは2013年、IBMの従業員が社内のサイドプロジェクトとして開発しました。その後オープンソースとして公開され、現在はJavaScriptの標準化・普及を担う団体であるOpenJS Foundationのプロジェクトの一つになっています。特定の企業が単独で権利を持つ製品ではなく、誰でも無償で使え、ソースコードも公開されています。

動作の基盤にはNode.js(サーバー上でJavaScriptを実行する環境)を使っています。ブラウザからNode.js上のNode-REDサーバーにアクセスし、フローエディタでアプリケーションを作成、その場でデプロイして動かします。

基本的な仕組み – ノード・フロー・デプロイ

Node-REDの操作は、大きく3つの要素で成り立っています。

ノード
特定の機能を持つ部品です。「一定時間ごとに信号を送る」「受け取った値を加工する」「メールを送信する」など、ノード1つが1つの処理を担当します。画面左のパレットに並び、ドラッグ&ドロップでワークスペースに配置します。

フロー
ノードを線でつないだ、処理の流れ全体です。あるノードの出力を、次のノードの入力につなぐことで、複数の処理を連結した1つのアプリケーションになります。作成したフローはJSON形式のデータとして保存され、他の環境へそのまま持ち込んで共有することもできます。

デプロイ
画面右上のボタン1つで、組み立てたフローを実行状態にします。コードのビルドや、サーバーの再起動といった作業は必要ありません。

標準で用意されている基本ノード(一定間隔で動作するinject、任意のJavaScript処理を書けるfunction、値を画面に表示するdebugなど)に加えて、ノードのパレットはコミュニティが公開する追加ノードで拡張できます。特定の外部サービスと連携するノードや、特定のハードウェアを扱うノードなど、用途に応じたノードが数多く公開されています。

メリットと、向き・不向き

Node-REDが評価されている点は、主に次の2つです。

学習コストの低さ
処理の大部分をノードの配置と接続で組み立てられるため、プログラミング経験が浅くても、フローの全体像を見ながら組み立てられます。

豊富なノードのエコシステム
IoTやAPI連携の分野で使われてきた実績があり、多様な外部サービス・ハードウェアに対応するノードが公開されています。

一方で、向いていない使い方もあります。条件分岐や状態管理が複雑になるフローは、線のつながりが増えて見通しが悪くなりがちです。また、ミリ秒単位の即応性が求められる制御にも向いていません。センサーの検知から機器動作までを遅延なく処理したい場合や、非常停止のように安全性へ直結する即時制御は、現場のPLCや専用回路で完結させる方が確実です。

Field Magic以外での活用例

Node-REDは、製造業・設備管理の分野でも、後付けのセンサーで現場を可視化する用途で使われています。

製造科学技術センター傘下の産業オートメーションフォーラム(IAF)による「ia-cloud」プロジェクトでは、工場設備に後付けしたセンサーとNode-REDを組み合わせ、非IT人材でも扱えるIoT環境を整備しています。積層信号灯(設備の稼働状態を示す表示灯)にセンサーを後付けして可視化し、改善活動に使う例も紹介されています。

電通国際情報サービス(ISID)の事例では、搬送設備(コンベア)に無線加速度センサーを後付けし、Node-REDで振動データを収集して、故障予知の仕組みを構築しています。

Field MagicでのNode-RED

Field Magicでは、制御ロジックの記述にNode-REDを採用しています。親機の中は3つの層に分かれており(詳しくは「親機のソフトウェア構造」を参照)、Node-REDはそのうちの「制御層」を担います。UI層(スケジュールアプリ、マップアプリ、Grafana)からの操作や、子機からのイベントを受け取り、無線コマンドへ変換して実行するのがNode-REDの役割です。

専用の設定ソフトを別途開発するのではなく、汎用のNode-REDをそのまま使っている理由は、制御ロジックが導入後も変わり続けることにあります。運用時刻の変更、制御対象の追加、しきい値の調整といった変更を、お客様自身がフロー画面を開いて直接書き換えられます。ロジックの中身がブラックボックスにならない点も、専用ソフトにはない利点です。

Field Magicの親機には、汎用のNode-REDに加えて専用のノードが用意されています。

アプリ待受・イベント待受
UIアプリからの操作や、子機からのイベントを、フローの起点として受け取るノードです。

BBUSノード(BBUS-R2P2 / BBUS-AD2 / BBUS-RM8)
入出力ユニットへのコマンド(出力ポート制御、アナログ値取得など)を組み立てるノードです。

時系列データ保存
取得した値を時系列データベース(TimescaleDB)に書き込むノードです。

しきい値による自動判定のような、条件分岐を伴うロジックも組み込めます。ハードウェアタイマーやPLCで組んでいたロジックの多くは、この形でNode-REDのフローに置き換えられます。


実際の設定例を見る

Field Magicの導入レシピでは、実際にNode-REDのフローを組む手順を紹介しています。

もっと知る、相談する。

トライアルキットの購入・お見積から、現場への適用相談まで。
お気軽にお問い合わせください。

サポート情報をお探しの方

サービスマニュアル製品仕様書

サポートページを見る

製品カタログ・お問い合わせ

Field Magic の製品カタログ(PDF)をダウンロードいただけます。

目的必須
導入検討時期必須
弊社からの連絡任意

BHの製品カタログをダウンロードいただきありがとうございます。
自動的にダウンロードが始まらない場合、こちらをクリックしてください。

お電話でのお問い合わせ

03-6407-1866

BH株式会社 営業時間:平日10:00〜18:00 )