官能検査データを入力パネルから取得する

1.手入力パネルの設置

いろいろなシステムを構築していると、電気的にセンサデバイスから取得したデータの他に人間の5感で感じ取った評価項目を蓄積したい場合があります。製品の出来栄え、仕上がりなどを検査員の5感で検査することを「官能検査」と言います。
PDHなどのNode-REDが動作している環境で下記のような手入力パネルを用意することで、こういった官能評価項目を取り扱う事ができます。

この事例はサンプルですので項目名は仮の名称ですが、複数の評価項目をレーダーチャートで表示し、検査対象の情報や備考のコメントなどを追加して「送信」ボタンを押すことで、センサモジュールからのデータと同様に手入力したデータをR-CPSのデータとして取り扱うことができます。

PDHが接続しているネットワーク上のコンピュータであればWebブラウザでこの手入力パネルを開くことができますので、機材の設置場所の自由度も高い状態で運用することができます。

2.手入力パネルの作り方

今回作成した手入力パネルの基本的な考え方は以下の通りです。

STEP1 :入力データの一時保管
・入力データ操作部に、例えばダッシュボードのsliderノードを使用します。
・このsliderノードに初期値を設定するため、injectノードを使用して起動時にsliderに初期値を流し込みます。
・入力されたデータは、changeノードを使用してflow.xxxxのコンテキストに一時的に保管します。

STEP2 :入力データの送信
・送信ボタンをクリックすると、functionノードを使用してSTEP1で一時保管したデータを取得し、書式を成型します。
・成形されたデータをwebsocketノードを使用してサーバに転送します。

この基本的な流れに対して複数のスライダーを設け、その設定内容をレーダーチャートで表示したり、生産ロットや備考の入力欄を追加、送信の時に画面上でUI-LEDをチカっと光らせるようにしたものが下記のフローです。

slider ノードの設定内容は次の通りです。このパネルで使用するダッシュボードのタブ、グループは「[仕上がり評価]製造ラインA 」としています。複数の入力パネルを設ける場合はそれぞれに適切な名前でタブとグループを設定してください。
レンジの設定をmin:1 , max:5, step:1 としていますので、項目ごとに5段階評価の入力ができるようになっています。

先ほどのsliderノードに起動時に初期値として「3」を設定する場合、手前に次のようなinjectノードを接続しておきます。
・ペイロードに、数値の「3」をセット
・Node-RED起動の0.1秒後に実行するチェックボックスをONにセット、繰り返しの設定は必要ありませんので「なし」にしておきます。

chartノードを配置して、「Type」でRader chartを選択すると、レーダーチャートが使えるようになります。
各項目は5段階評価ですので、「Y-axis」をmin:1, max:5 にセットしておきます。

各評価項目はレーダーチャートのノードに入ったところで一つにまとめられていますので、この出力を一時保管します。changeノードを使用して、flow.raderchart の中にデータを格納しておきましょう。

他に、ロットの選択や備考がありますが、レーダーチャートと同じようにダッシュボードのノードを配置して、flow.xxxxの中にデータを格納しておきます。

入力部分が出来上がったら、STEP2の送信部分を作成します。
次の3つのノードで、「送信」ボタンが押されたら一時保管していたデータを取得して成形し、日付時刻情報を追加する処理を行います。

functionノードの内部はjavascriptで書かれたコードが実行されます。
以下のように、「flow.get(“xxxx”);」で一時保管していたデータが取得できますので、それぞれの項目のデータを取得します。
次に、今回の事例では「evaluation」の変数の中で出力の際の書式を整形しておきます。
この後段の処理のために、R-MSMの基本ヘッダ情報であるdevice, id, sensorのプロパティをセットしておくと良いでしょう。
ここでは事例として”device”:”R-MSM”, “id”:”room-A”, “sensor”:”manual-input”, をセットしています。

この出力を、更に「Date/Time Formatter」ノードに接続して日付時刻情報を付加します。
他にも、後ろの処理で必要な情報があれば、この段階で追加しておいてください。送信ボタンを押した時の出力は次のようになります。

これで、websocket out ノードなどを接続してサーバに転送することで、手動入力の情報も各種センサのデータと同様にR-CPSの中で取り扱うことができるようになります。

おまけとして、送信ボタンを押したときにランプをチカっと光らせたほうが分かりやすいので、送信ボタンから分岐して次のフローに接続し、入力パネルの画面上のランプを1秒間赤点灯しています。

また、この事例のようにチャートの表示を消去ボタンを設ける際は、目的のchartノードに対して空のJSONを送信します。
クリックしたときに送信する内容を、プルダウンから「JSON」を選択した上で「[]」に設定します。

官能検査の内容は導入する現場によってさまざまな内容があると思います。ダッシュボードのノードやフローを組み合わせて、使いやすい入力パネルを作ってみてください。