MENU
    Edge IOとNode-REDによる4-20 mAセンサの接続
    • 04 Nov 2023
    • 1 読む分
    • 寄稿者

    Edge IOとNode-REDによる4-20 mAセンサの接続


    記事の要約

    Edge IOとNode-REDによる4-20 mAセンサの接続

    Edge IOで4-20 mA Node-REDフローを使用する方法を学ぶ

    この記事では、2線式4-20mAセンサをEdge IOに接続し、Node-REDライブラリフローを介してTulipにデータを送信するワークフローを説明します。

    この記事の終わりには、センサーからTulip内のマシンに電流データを送信するための以下のフローがNode-RED内に用意されています。

    以下のステップを完了します:

    1. ハードウェアのセットアップ:エッジIOの配線
    2. マシンのセットアップ:Tulipでマシンを作成
    3. Node-REDのセットアップ:TulipライブラリからのNode-REDフローのインポート、編集、デプロイ

    必要なもの

    1.ハードウェアのセットアップ - Edge IOの配線

    このワークフローでは、選択したアプリケーション用の 4-20mA センサと、センサ出力電流を ADC の電圧に変換するための外部 500 オーム抵抗を選択したと仮定します。

    センサと抵抗を以下のように Edge IO に配線します:

    • 4-20mA センサー

      • SAR ADC [+24V] 端子に配線された電源端子
      • 出力端子を SAR ADC [in] 端子に配線
      • 500Ω抵抗
      • 一端を SAR ADC [in] 端子に接続
      • 一端をSAR ADC [gnd]端子に接続

    さらに、デバイスに電源が供給され、WAN ポートにイーサネット・ケーブルを接続することで、デバイスがネットワークに接続されていることを確認します。

    2.マシンのセットアップ - Tulipでマシンを作成する

    4-20mAセンサーからTulipにデータを送信するために、まずTulip APIをデータソースとして使用するマシンをセットアップしましょう。詳細な概要については、「新しいマシンのセットアップ」セクションの「マシン属性APIの使用方法」の記事を参照してください。

    この例では、溶接機電流と呼ばれる単一のフロート属性を持つ溶接機を表すマシンを作成しました。

    Node-RED フローに渡すattributeId と machineId値をメモしておきます。

    電流センサーを使用して、マシンの状態などの側面を変更したり、センサー出力に基 づくカウントを実行する予定であれば、マシンに割り当てるマシン・タイプをセット アップすることもできます。興味のある方は、マシンタイプの設定方法を参照してください。

    3.Node-RED セットアップ

    4-20 mA センサに接続された Edge IO で、Edge Device Portal を開きます。以下の認証情報を使用して Node-RED エディタを起動します:

    • ユーザー名:admin
    • パスワード: Edge IO のパスワード

    Edge IO で Node-RED を使い始めるには、こちらを参照してください。

    3a.ライブラリフローのインポート

    ライブラリフローをインポートするには、「Importing Tulip Node-RED Flows」の手順に従ってください。インポートするフローは4_to_20_mA_sensor.jsonで、インポートするとエディタに4-20mA Sensor Applicationタブが作成されます。

    3b.フローの概要

    Node-REDフローは5つの機能ノードで構成されています。フローに従います:

    1. SAR ADC サンプル

      • 目的: 100 サンプル/秒のレートで 0-10V SAR ADC をサンプリングする。
      • 平均値の計算
      • 目的: SAR ADC Samples ノードからの 100 サンプルの平均を毎秒 1 回取ります。
      • ADCを電流ループ・センサ値にスケールする
      • 目的:ADCの平均値を実際のループ・センサ値にスケーリングします。
      • チューリップ・マシン属性に送信
      • 目的:マシンに送信するために、現在のループセンサー値をTulipイベントAPIに送信します。
      • レスポンス
      • 目的:Tulip イベント API 呼び出しの適切な HTTP ステータスコードを返します。

    3c.フローの編集

    このフローの設定を完了するには、Send to Tulip Machine Attributenodeのデバイス情報に、先に設定したマシンのattributeId フィールドとmachineIdfフィールドを含める必要があります。

    また、現在のセンサの製造元の仕様に基づいて、Scale ADC to Current Loop Sensor Valueノード内のプロパティを編集する必要があります。

    例えば、センサ入力レンジが 0-100 アンペアを測定し、4-20mA を出力し、500 オームの外部抵抗を使用する場合、以下のパラメータを設定します:

    • 抵抗値(オーム) - 500
    • 最小入力 - 0
    • 最大入力 - 100
    • 最小出力(mA) - 4
    • 最大出力(mA) - 20

    3d.フローのデプロイ

    Node-REDフローが構築され、必要なパラメータが追加されたら、右上からフローをデプロイし、4-20mAセンサからTulipに出力されるデータを確認することができます。

    Node-RED Editorの右側にあるDebug messageオプションを選択すると、Tulip APIからのレスポンスと対応するステータスコードが表示されます。

    Node-REDフローの技術的詳細

    以下は、4_to_20_mA_sensor.jsonファイルでインポートされたノードとそのデフォルト設定パラメータの詳細です。

    1. SAR ADCサンプル

      • 目的:100サンプル/秒のレートで0-10V SAR ADCをサンプリングする。

      • ノードタイプ高速アナログ

      • デフォルト・プロパティ

        • アナログ構成 -SAR ADC: RMS @ 100Hz

          • 構成するADCを選択 -SAR ADC
          • 有効出力 -RMS
          • バッファサイズ -100
          • サンプリング周波数(Hz) -100+ データ・タイプ -RMS+ 出力モード -連続+ リフレッシュ・レート(秒) -1
          • 平均値の計算
      • 目的: SAR ADC Samplesノードからの100サンプルの平均を1秒に1回取る。

      • ノードの種類関数

      • デフォルトのプロパティ

        • 関数:1 const average = (array) => array.reduce((a, b) => a + b) / array.length; 2 msg.payload = average(msg.data); 3 return msg;3.ADC を現在のループ・センサ値にスケーリングする
      • 目的: ADC の平均値を実際のループ・センサ電流値にスケーリングする。

      • ノード・タイプ:サブフロー

      • デフォルト・プロパティ:

        • 入力プロパティ -ペイロード
        • 抵抗値(オーム) -500
        • 最小入力 -0
        • 最大入力 -800
        • 最小出力(mA) -4
        • 最大出力(mA) -20
        • チューリップ・マシン属性への送信
      • 目的:マシンに送信するために、現在のループセンサー値を Tulip イベント API に送信する。

      • ノードタイプ:マシン属性

      • デフォルトのプロパティ:

        • デバイス情報 -{"attributeId":"", "machineId":""}.
        • レスポンス
      • 目的TulipイベントAPIコールの適切なHTTPステータスコードを返す。

      • ノードタイプ:デバッグ

      • デフォルトのプロパティ:

        • 出力 -完全なmsgオブジェクト
        • 宛先 -デバッグウィンドウ

    さらに読む


    お探しのものは見つかりましたか?

    community.tulip.coで質問を投稿したり、他の人が同じような質問に直面していないか確認することもできます!


    この記事は役に立ちましたか?