Skip to main content

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

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

はじめに

FUXAは、ウェブベースのプロセス可視化(SCADA/HMI/Dashboard)ソフトウェアです。FUXAを使用すると、機械の個別デザインとリアルタイムデータ表示を備えた最新のプロセス可視化を作成できます。Modbus RTU/TCP、Siemens S7 Protocol、OPC-UA、BACnet IP、MQTTなどのプロトコルをサポートしています。

この記事では、fuxaを使用してSCADAを実現する方法を主に紹介します。記事内では、fuxaがnode-redOPC UA Simulatorからデータを受信し、chartCircular Gaugeを使用して表示します。同時に、産業プロセスをシミュレートする一連のパターンを描画します。

始める前に

このプロジェクトを開始する前に、以下に記載されているようにハードウェアとソフトウェアを事前に準備する必要があります。

ハードウェアの準備

reComputer R1000

ソフトウェアの準備

  • Python 3.11はfuxaと互換性がない可能性があります。Pythonのバージョンが3.11の場合は、別のバージョンに変更することを検討してください。

  • reComputer R1000でfuxaを使用します。以下の手順に従ってreComputer R1000にfuxaをインストールする方法を参照してください。

      ## 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
    ## 次にnpmからFUXAをインストールします
    sudo npm install -g --unsafe-perm @frangoteam/fuxa
    sudo fuxa
  • fuxaを使用してOPC-UAデータのやり取りを実現する方法については、このwikiを参照してください。

  • fuxaを使用してmqttクライアントとのデータやり取りを実現する方法については、このwikiを参照してください。このwikiとは異なり、node-redで公開するデータはfunctionモジュールで処理され、loopモジュールを使用して継続的に公開されます。functionモジュールのコードは以下の通りです:

    ## 起動時
    global.set('firstTank', '10000');
    global.set('secondTank', '0');
    global.set('thirdTank', '0');
    ## メッセージ受信時
    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 という名前のブールデータをスイッチ状態として選択します。スイッチがオンまたはオフのときの表示状態(色の設定、テキスト表示など)を構成できます。

シェイプ

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

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

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

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

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

パイプ

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

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

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

円形ゲージ

チャート に加えて、Circular Gauge もリアルタイムでデータを表示できます。3種類の Circular Gauge が利用可能です。

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

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

スライダー

スライダーを使用して、流量や圧力などの変数を調整します。そのプロパティは以下の図のようになっています。色や形式を設定できます。使用する際には、Tag をバインドする必要があります。その後、スライダーは Tag の値をリアルタイムで調整できます。ここではカスタム Flow control 1 タグをバインドします。

アラーム

工業プロセスにおいて、特定のパラメータ(例えば圧力)が過剰になると、危険を引き起こす可能性があります。このような場合、スタッフに問題が発生している可能性を知らせるためにアラームが必要です。Fuxaは、特定の値をリアルタイムで監視し、その値が危険な範囲に達したときにアラームをトリガーする機能をサポートしています。
デフォルトでは、Fuxaのインターフェースにはアラームバーが表示されていません。アラームバーを表示するには設定が必要です。

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

SCADA デモ

技術サポートと製品ディスカッション

弊社の製品をお選びいただきありがとうございます!お客様が弊社製品をスムーズにご利用いただけるよう、さまざまなサポートを提供しております。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルをご用意しています。

Loading Comments...