reComputer R1000でfuxaを使用してSCADAを実現
はじめに
FUXAはWebベースのプロセス可視化(SCADA/HMI/ダッシュボード)ソフトウェアです。FUXAを使用すると、機械用の個別設計による現代的なプロセス可視化とリアルタイムデータ表示を作成できます。Modbus RTU/TCP、Siemens S7プロトコル、OPC-UA、BACnet IP、MQTT、その他のプロトコルをサポートしています。
この記事では主にfuxaを使用してSCADAを実現する方法を紹介します。記事では、fuxaがnode-red
とOPC UA Simulator
からデータを受信し、chart
とCircular Gauge
を使用して表示します。同時に、工業プロセスをシミュレートするための一連のパターンを描画します。
はじめに
このプロジェクトを開始する前に、ここで説明されているようにハードウェアとソフトウェアを事前に準備する必要があります。
ハードウェアの準備
reComputer R1000 |
---|
![]() |
ソフトウェアの準備
-
Python 3.11はfuxaと互換性がない可能性があります。Pythonバージョンが3.11の場合は、別のPythonバージョンへの変更を検討してください。
-
reComputer R1000でfuxaを使用します。reComputer R1000にfuxaをインストールするには、以下の手順を参照してください。
## You need to have installed Node Version 14 || 16 || 18.
wget https://nodejs.org/dist/v18.20.3/node-v18.20.3-linux-arm64.tar.xz
tar -xf node-v18.20.3-linux-arm64.tar.xz
cd node-v18.20.3-linux-arm64
sudo cp -R * /usr/local/
node -v
npm -v
## Next install FUXA from npm
sudo npm install -g --unsafe-perm @frangoteam/fuxa
sudo fuxa -
fuxa を使用して OPC-UA データ相互作用を実装する方法については、この wiki を参照してください。
-
fuxa を使用して mqtt クライアントとのデータ相互作用を実装する方法については、この wiki を参照してください。この wiki とは異なり、
node-red
で公開するデータはfunction
モジュールで処理され、loop
モジュールが継続的な公開に使用されます。function
モジュールのコードは以下の通りです:## On Start
global.set('firstTank', '10000');
global.set('secondTank', '0');
global.set('thirdTank', '0');## On Message
var firstTank = global.get('firstTank');
var secondTank = global.get('secondTank');
var thirdTank = global.get('thirdTank');
if (firstTank <= 0) {
global.set('firstTank', 10000);
global.set('secondTank', 0);
global.set('thirdTank', 0);
firstTank=10000;
secondTank=0;
thirdTank=0;
}
firstTank = firstTank - 3;
secondTank++;
thirdTank++;
thirdTank++;
global.set('firstTank',firstTank);
global.set('secondTank',secondTank);
global.set('thirdTank',thirdTank);
var data = {
"firstTank":firstTank,
"scondTank":secondTank,
"thirdTank":thirdTank,
};
msg.payload = data;
return msg;主な作業は、firstTank、secondTank、thirdTankをjson形式にカプセル化し、mqtt-outモジュールに公開させることです。
-
fuxaの右下角の
+
ボタンをクリックし、Name
、Type
を入力し、Internal
を選択し、最後にOK
をクリックして新しいモジュールを取得します。このモジュールは外部デバイスとの通信機能はありませんが、カスタムタグを追加することができます。これらのタグはboolean
、number
、string
などの3つのデータタイプをサポートし、後続の作業を便利にします。
ハードウェア構成
イーサネットケーブルを使用してW10 PCとreComputer R1000をスイッチに接続し、同じネットワークセグメント上にあることを確認します。

ビジュアル表示とメインコントロールの紹介
チャート
fuxaには曲線チャートとヒストグラムが利用できます。曲線チャートを例に取ると、Chart
のプロパティは図に示すとおりです。Chart
のName
、フォントサイズ
、データ形式
、時間形式
、X軸とY軸のスタイル
などのプロパティを設定できます。最も重要なのはChart to show
で、これは表示したいデータソースと線の形式を決定します。

Chart to show
をクリックし、New Chart
を選択すると、新しいポップアップウィンドウが表示されます。新しいポップアップウィンドウの右上角の+
ボタンをクリックし、Name
を入力し、OK
をクリックすると、新しい線の設定を正常に作成できます。次に、新しく作成した線の設定をクリックし、Add Line
をクリックし、表示したいデータを選択し、最後にOK
をクリックすると、新しい曲線が表示されます。このプロセスを通じて複数の曲線を追加できます。最後にOK
をクリックして設定を完了します。

ここではChart
を使用してProsys OPC UA Simulation Server
からのデータを表示します。データがグラフの形式で正常に表示されていることがわかります。

スイッチ
スイッチの属性は図に示すとおりです。swich_1
という名前のbooleanデータをスイッチ状態として選択します。オンまたはオフ時のswich
の表示状態を設定でき、色の設定、テキスト表示などが含まれます。


シェイプ
Fuxaは、ユーザーが産業用可視化インターフェースを描画するための様々なshape
を提供します。各shape
にはProperty
、Events
、Actions
の3つの属性があります。
その中で、Property
は主にshape
の色を設定するために使用されます。Tag
をバインドすることで、shape
はTag
値の変化に応じて異なる色を表示します。右上角の+
をクリックして異なる色を設定できます。

ここでは倉庫パターンを例に取り、Property
でその色を塗りつぶします。

Events
には主に2つの内容があり、Type
はイベントタイプを表し、Action
はイベントがトリガーされた後のアクションを表します。

Actions
はTag
にバインドする必要があり、異なるTag
値は異なるアクションをトリガーできます。Min
とMax
の値を設定し、Type
オプションで希望するアクションを選択します。Tag
データがMinとMaxの間の区間に達すると、対応するアクションがトリガーされます。

ここでは倉庫パターンを例に取り、Actions
を通じてその回転と停止を制御します。

パイプ
産業プロセスを表示する際、pipe
を使用して産業材料の流れ方向を表すことができます。パイプのプロパティは図に示すとおりです。

Property
部分では、パイプの幅、色などのプロパティを設定できます。Actions
もTag
にバインドする必要があります。異なるタグ値により、パイプラインは異なるアクションを持つことができます。主に4つのアクションがあります:Stop
、Turn clockwise
、Turn anticlockwise
、Hide conten
。この記事ではStop
とTurn clockwise
の2つのアクションを示します。

産業プロセスをシミュレートするために、2つのタンクといくつかのパイプなどのパターンを追加しました。

円形ゲージ
charts
に加えて、Circular Gauge
もリアルタイムでデータを表示できます。3つのCircular Gauge
が利用できます。

使用時には、Tag
をバインドして表示するデータを指定する必要があります。同時に、計器が表示できるデータの最大範囲を指定する必要があります。また、計器パネル上の線などの属性も設定できます。ここでは、表示用に/dev/fromfuxa
トピック内のTank1
のデータを選択します。

その後、Tank2
とTank3
のデータもCircular Gauge
を通じて表示し、各タンクの現在の容量を示します。

Slider
スライダーを使用して、流量、圧力などの変数を調整します。その属性は図に示すとおりです。色と形式を設定できます。使用時にはTag
をバインドする必要があります。そうすると、スライダーはTag
の値をリアルタイムで調整できます。ここでは、カスタムのFlow control 1
タグをバインドします。


Alarm
産業プロセスでは、特定のパラメータ(圧力など)が過度になると危険を引き起こす可能性があります。この時、スタッフにここで何らかの問題が発生している可能性があることを知らせるアラームが必要です。Fuxaは特定の値のリアルタイム監視をサポートし、値が特定の危険範囲に達したときにアラームをトリガーします。 デフォルトでは、fuxaのインターフェースはアラームバーを開いていません。アラームバーを開くには設定が必要です。

アラームバーが開かれた後、アラームを設定できます。左上の設定ボタンをクリックし、次にAlarms
をクリックし、新しいウィンドウで+
をクリックするとアラーム設定ウィンドウが表示されます。この時、Tag
をバインドする必要があり、システムはTag
の値を監視します。Alarms
には4つのレベルがあります:High High
、High
、Low
、Message
。各レベルに対してTag
値の範囲を設定でき、Tag
値がこの範囲に達すると、対応するレベルのアラートがトリガーされます。

SCADA demo

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