Skip to main content

reComputer R1000でfuxaを使用してSCADAを実現

はじめに

FUXAはWebベースのプロセス可視化(SCADA/HMI/ダッシュボード)ソフトウェアです。FUXAを使用すると、機械用の個別設計による現代的なプロセス可視化とリアルタイムデータ表示を作成できます。Modbus RTU/TCP、Siemens S7プロトコル、OPC-UA、BACnet IP、MQTT、その他のプロトコルをサポートしています。

この記事では主にfuxaを使用してSCADAを実現する方法を紹介します。記事では、fuxaがnode-redOPC UA Simulatorからデータを受信し、chartCircular 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の右下角の+ボタンをクリックし、NameTypeを入力し、Internalを選択し、最後にOKをクリックして新しいモジュールを取得します。このモジュールは外部デバイスとの通信機能はありませんが、カスタムタグを追加することができます。これらのタグはbooleannumberstringなどの3つのデータタイプをサポートし、後続の作業を便利にします。

ハードウェア構成

イーサネットケーブルを使用してW10 PCとreComputer R1000をスイッチに接続し、同じネットワークセグメント上にあることを確認します。

pir

ビジュアル表示とメインコントロールの紹介

チャート

fuxaには曲線チャートとヒストグラムが利用できます。曲線チャートを例に取ると、Chartのプロパティは図に示すとおりです。ChartNameフォントサイズデータ形式時間形式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にはPropertyEventsActionsの3つの属性があります。 その中で、Propertyは主にshapeの色を設定するために使用されます。Tagをバインドすることで、shapeTag値の変化に応じて異なる色を表示します。右上角の+をクリックして異なる色を設定できます。

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

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

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

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

パイプ

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

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

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

円形ゲージ

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

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

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

Slider

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

Alarm

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

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

SCADA demo

Tech Support & Product Discussion

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

Loading Comments...