- 印刷する
Edge IOとNode-REDで4-20 mAセンサを接続する
Edge IOで4-20 mAのNode-REDフローを使用する方法について説明します。
この記事では、2線式の4-20 mAセンサーをEdge IOに接続し、Node-REDライブラリフローを介してTulipにデータを送信するワークフローを扱います。
この記事の終わりには、センサーからTulip内のマシンに電流データを送信するためのNode-RED内の以下のフローが完成しています。
以下のステップを完了します。
- ハードウェアのセットアップエッジIOの配線
- Machineのセットアップ。TulipでMachineを作成する
- Node-REDのセットアップ。TulipライブラリからNode-REDフローをインポート、編集、デプロイする
必要なものは
- Tulipアカウントに登録されたEdge IO
- 4-20mA電流ループセンサー。2線式構成、24V電源と互換性あり
- 500オームの抵抗
- 3.5mmマイナスドライバー
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.マシンのセットアップ - チューリップでマシンを作成する
4-20 mAセンサーからTulipにデータを送信するために、まずTulip APIをデータソースとして使用するマシンをセットアップしましょう。詳細な概要については、Setting up a new MachineセクションHow to Use the Machine Attributes APIの記事を参照してください。
この例では、溶接機電流と呼ばれる単一のフロート属性で溶接機を表現するマシンを作成しました。
Node-RED フローに渡すattributeId と
machineId
値を記録しておきます。
また、電流センサーを使用してマシンの状態などを変更したり、センサー出力に基づくカウントを実行する予定であれば、マシンに割り当てるマシン・タイプをセットアップすることができます。この点については、「マシンタイプのセットアップ方法」を参照してください。
3.Node-REDのセットアップ
4-20mA センサーを接続した Edge IO で Edge Device Portal を開きます。以下の認証情報を使用して Node-RED Editor を起動します。
- ユーザー名:admin
- パスワード:Edge IO のパスワード
Edge IO で Node-RED を使い始めるには、こちらの情報を参照してください。
3a.ライブラリフローのインポート
ライブラリフローをインポートするには、「Tulip Node-RED Flowsのインポート」のドキュメントに記載されている手順に従います。インポートするフローは4_to_20_mA_sensor.jsonで、インポートするとエディタに4-20mA Sensor Applicationタブが作成されます。
3b.フローの概要
Node-REDのフローは、5つの機能ノードで構成されています。フローに従うと、以下のようになります。
SAR ADC サンプル
- 目的: 0-10V SAR ADCを100サンプル/秒でサンプリングする。
- 平均値の計算
- 目的: SAR ADC Samplesノードからの100サンプルの平均値を1秒間に1回取得します。
- ADCを電流ループセンサ値にスケーリングする
- 目的: ADCの平均値を実際のループセンサー値にスケーリングします。
- チューリップマシン属性に送信
- 目的: 現在のループセンサー値をTulipイベントAPIに送信し、マシンに送信する。
- レスポンス
- 目的: 現在のループセンサー値をTulipイベントAPIに送信し、マシンに送信する。TulipイベントAPIコールの適切なHTTPステータスコードを返す。
3c.フローを編集する
このフローのセットアップを完了するには、Send to Tulip Machine Attributenノード用のデバイス情報を、先にセットアップしたマシンからの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ファイルとともにインポートされたノードとそのデフォルト設定パラメータの詳細な概要です。
SAR ADCサンプル
目的:0-10V SAR ADCを100サンプル/秒でサンプリングします。
ノードの種類高速アナログ
デフォルトのプロパティ
アナログ設定 -
SAR ADC: RMS @ 100Hz
- 構成するADCを選択 -
SAR ADC
- 有効な出力 -
RMS
- バッファサイズ -
100
- サンプリング周波数(Hz) -
100
+ データタイプ -RMS
+ 出力モード -連続
+ リフレッシュレート(秒) -1
- 平均値の計算
- 構成するADCを選択 -
目的: 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
- チューリップ・マシン属性に送信
- 入力プロパティ -
目的: 現在のループセンサー値をチューリップイベントAPIに送信し、マシンに送信する。
ノードタイプ。マシン属性
デフォルトのプロパティ
- デバイス情報 -
{"attributeId":", "machineId":" }
. - レスポンス
- デバイス情報 -
目的TulipイベントAPIコールのうち、適切なHTTPステータスコードを返す。
ノードの種類デバッグ
デフォルトのプロパティ。
- Output -
完全なmsgオブジェクト
- 宛先 -
デバッグウィンドウ
- Output -
その他の情報
お探しのものは見つかりましたか?
また、community.tulip.coに質問を投稿したり、他の人が同じような質問に直面していないかどうかを確認することができます。