オムロン社のモドバス通信方式に対応した[オムロン温度調節計 ]ノードと[オムロン温度調節計A&E]ノードを使用した、エッジアプリの作成を学びます。
シュナイダー社のPLC、モディコンの通信方式であるモドバス通信は、上位機器への標準的な通信手段として仕様も公開されており、シュナイダー社以外の様々な計測制御機器にも採用されています。多くのメーカの温度調節計もモドバス通信方式に対応しています。ここでは、ia-cloud・Node-RED関連ノードとして公開されているオムロン製温度調節計ノードを使用して、エッジアプリケーションを作成してみましょう。
[オムロン温度調節計 ]ノードと[オムロン温度調節計A&E]ノードで利用する[モドバス通信]設定ノードは、シリアル通信・TCP/IP通信のいずれの通信方式にも対応していますが、温度調節計はシリアル通信「Modbus/RTU」で使用します。
以下の記述では、温度調節計の基本仕様を理解いただいていることを前提としております。
また安全性を考慮し、今のところデータの書き込み機能は搭載しておりませんので、このノードを使用して温度調節計の内部データを書き換えることはできません。
では、データの取得方法を学んでいきましょう。
ノードの選択
他のセンサ・制御機器のノードと同様、[オムロン温度調節計]ノードと[オムロン温度調節計A&E]ノードも[iaCloud devices]カテゴリーにあります。見つけにくい場合は、ノードを検索ウインドウに「オムロン」などと入力すると簡単に見つかります。下図のフローは、本項で作成するフローです。
[モドバス通信]設定ノード
[オムロン温度調節計 ]ノードと[オムロン温度調節計A&E]ノードをダブルクリックしプロパティ設定ウインドウを開くと、一番上に「通信ノード」とあり、モドバス通信の設定ノードを選択する必要があります。この[モドバス通信ノード]は、接続するモドバス対応機器の通信ポート一つに対して、一つの[モドバス通信ノード]を追加し、それを複数の[オムロン温度調節計 ]ノードと[オムロン温度調節計A&E]ノードで使用できます。既存の[モドバス通信ノード]がある場合は、それを選択します。最初は存在しないので、鉛筆マークボタンから新規作成し、追加します。
[モドバス通信ノード]には基本的なプロパティとして、以下の二つのプロパティがあり、必要なデータアクセスの状況により設定をします。通常はデフォオルトのままとしてください。
共通プロパティ
- 通信周期:[通信ノード]がシーケンサと通信をし、取得すべきデータ全部を更新する周期です。1秒以上で設定ください。デフォルトは5秒です。
- 連続読出数:[通信ノード]は、シーケンサのデバイスを連続読出しで読出しますがその連続数です。デフォルトは64ワードです。
- 連続読出限定:読出しデバイスに設定されていないデバイスにアクセスしないようにすることができます。通常チェックなしです。
通信設定
このモドバス通信設定ノードは、シリアル通信を使用する「Modbus/ASCII」、「Modbus/RTU」と、TCP/IP通信を利用する「Modbus/TCP」に対応しています。オムロン温度調節計はシリアル通信の「Modbus/RTU」を選択してください。
オムロン温度調節計で設定した通信パラメータを、[通信ノード]に設定します。モ設定項目の名称などが異なる可能性があります。ご注意ください
- ModbusRTU
ここでの設定にないパラメータは、、ストップビット: 1、チェックサム: 有効、で固定です。モドバス通信対応機器の設定をこれに合わせてください。- ポート:シリアル通信ポートです。例えばラズパイに、USBシリアル通信ドングルが挿入されていると、選択肢の中にそれが現れます。
- ボーレート:シリアル通信の速度です。オムロン温度調節計側の設定と合わせてください。(通信速度を早くしすぎると通信エラーの原因となります。)
- パリティ:シリアル通信のパリティビット仕様です。オムロン温度調節計側の設定と合わせてください。
[オムロン温度調節計]ノード
以下の説明では、オムロン温度調節計の形 E5□D シリーズをRS485通信を接続し、アプリケーションを作成します。温度調節計形 E5□D シリーズは、調節計の現在値や設定値などの変数を以下のモドバスデバイスに割り当てています。
- 現在値: 0x2402 小数点位置モニタ: 0x2401
- 設定値(目標値): 0x2403 小数点位置モニタ: 0x2401
- 比例帯: 0x2A00
- 積分時間: 0x2A01 積分時間単位:0x3309
- 微分時間: 0x2A02 微分時間単位:0x3309
- ステータス:ランモード 0x2407 ビット8
- ステータス:自動運転 0x2407 ビット10
- ステータス:オートチューニング 0x2407 ビット7
オムロン製の温度調節計は、シリーズが異なっても同じデバイスの割り当てとなっていますので、ほとんどの他のシリーズもこの[オムロン温度調節計]ノードを使用することができますが、オムロンの通信マニュアルで確認ください。
[オムロン温度調節計 ]ノードは、Modbus通信を利用し上記のモドバスデバイスのデータを取得し、温度調節計のデータ項目を小数点位置も含めて算出し、出力メッセージとして出力します。
オブジェクト設定
次の「データの設定」タブで設定したデータをia-cloudオブジェクトにまとめて、メッセージ出力する際のプロパティを設定します。
- 定期収集周期:
データ項目の設定で設定されたデータ一式を定期的にia-cloudオブジェクトとして送出する周期を、秒単位で設定します。これは[通信ノード]で設定した下位の通信周期とは異なり、ia-cloudオブジェクトを送出する周期です。送出する時点での最新値を出力します。 - 非同期収集有り:
収集周期以外に、データに変化があった場合にia-cloudオブジェクトを送出するオプションです。設定されたデータ項目のどれかに変化があった場合、ia-cloudオブジェクト全体を出力します。 - objectキー:ia-cloudオブジェクトにつけるユニークなキー文字列です。
- objectの説明:ia-cloudオブジェクトにの任意の説明です。この説明も都度、ia-cloudオブジェクトに内包されて送出されます。
データ設定
ia-cloudオブジェクトとして送出する、データ項目を設定します。各データ項目は、オムロン温度調節計の以下の変数どれかを選択し、そのデータ名称と単位を設定します。複数のデータ項目を指定できます。
- 設定できる温調計の変数
ia-cloudオブジェクトとして送出する、データ項目を設定します。各データ項目は、オムロン温度調節計の以下の変数どれかを選択し、そのデータ名称と単位を設定します。複数のデータ項目を指定できます。- 現在値
- 設定値(目標値)
- PID:比例帯
- PID:積分時間
- PID:微分時間
- ステータス:ランモード
- ステータス:自動運転
- ステータス:オートチューニング
これらの変数の中から読み出す変数を自由に組み合わせられます。
- データ名称
送出するデータにつけるデータ名称:デフォルトでデータ項目と同じ名称が設定されています。温度調節計が複数台ある場合や計測対象のデータに固有名前をつけたい場合は、自由に書き換えることができます。
- 単位
データの単位を記述できます。無単位なデータでは空欄のままとします。
以下、データ設定の設定画面例です。この例では、現在地と設定値をそれぞれ、展示ブース温度、制御設定値というデータ名称で収集するよう設定しています。
[オムロン温度調節計A&E]ノード
以下の説明では、オムロン温度調節計の形 E5□D シリーズをRS485通信を接続し、警報やイベント情報を取得するアプリケーションを作成します。温度調節計形 E5□D シリーズは、調節計の警報やイベントなどの変数を以下のモドバスデバイスに割り当てています。
- ステータス:ヒータ電流値ホールド 0x2406 ビット1
- ステータス:ADコンバータ異常 0x2406 ビット2
- ステータス:HS警報 0x2406 ビット3
- ステータス:入力異常 0x2406 ビット6
- ステータス:ヒータ断線CT1 0x2406 ビット10
- ステータス:ヒータ断線CT2 0x2406 ビット11
- ステータス:警報1〜3 0x2406 ビット12〜14
- ステータス:イベント1〜4 0x2407 ビット0〜3
オブジェクト設定
次の「データの設定」タブで設定した警報やイベント情報をia-cloudオブジェクトにまとめて、メッセージ出力する際のプロパティを設定します。
- 定期収集周期:
データ項目の設定で設定された警報やイベント情報を定期的にia-cloudオブジェクトとして送出する周期を、秒単位で設定します。これは[通信ノード]で設定した下位の通信周期とは異なり、ia-cloudオブジェクトを送出する周期です。送出する時点での最新値を出力します。 - 非同期収集有り:
収集周期以外に、警報やアラーム状態に変化があった場合にia-cloudオブジェクトを送出するオプションです。通常チェックありで使用します。 - objectキー:ia-cloudオブジェクトにつけるユニークなキー文字列です。
- objectの説明:ia-cloudオブジェクトにの任意の説明です。この説明も都度、ia-cloudオブジェクトに内包されて送出されます。
警報・イベント設定
ia-cloudオブジェクトとして送出する、データ項目を設定します。データ項目は、オムロン温度調節計のステータス情報の主要項目から選択します。
- データ構造型:ia-cloud仕様で規定される、Alarm&Eventデータモデル固定です。
アラーム&イベント設定
- アラーム&イベント対象データ:
対象のステータスビット情報をプルダウンリストから選択します。 - A&Eコード:
警報やイベントを表す番号やコード。(一般に警報番号(数字以外もOK)を設定することを想定しています。) - A&Eの説明
警報やイベントの内容を表す文字列。(一般に警報メッセージを設定することを想定しています。)
以下の設定例では、入力異常とヒータ断線(CT1)を設定しています。アラーム発生時と復帰時に送出する他、60秒毎に状態を送出しています。
ia-cloudへの格納
ノードの選択の項で示したフローでは、[オムロン温度調節計]ノードと[オムロン温度調節計A&E]ノードの出力メッセージをia-cloud接続ノードに接続して、ia-cloudサービスへのデータ格納を実施しています。
ia-cloud接続ノードの設定は、他のデータ収集ノードとの接続と同一です。一度どこかで、ia-cloudサービスの接続URLとID・パスワードを保持する設定ノード[接続先CCS]を作成した場合は、それを流用して設定が可能です。ia-cloudサービスが、どの[ia-cloud接続]ノードからの接続かを認識できるように「データソースのユニークキー」を設定しておきます。
設定完了後[デプロイ]ボタンを押すと、[ia-cloud接続]ノードはia-cloudサービスへの接続を行い成功すると[ia-cloud接続]ノードのステータスが「接続済み」となります。また、定期収集や非同期収集のタイミングで[オムロン温度調節計]ノードと[オムロン温度調節計A&E]ノードからデータが[ia-cloud接続]ノードへ送られると、ia-cloudサービスへのデータ格納を行い、[ia-cloud接続]ノードのステータスが「要求完了」となります。また、[debug]ノードを[ia-cloud接続]ノードに接続しておくと、ia-cloudサービスが応答したメッセージを確認することも可能です。
現在値のグラフ表示
サンプルで示したフローは、オムロン温度調節計のデーにを直接ダッシュボードにグラフ表示をします。
- 展示ブース温度
- 制御設定値
を収集しています。これを[データ抽出]ノードで抽出し、標準ダッシュボードの[guage]ノードと[chart]ノードでグラフ化します。
[gauge][chart]ノードの使用法について、「ダッシュボードアプリの作成入門編」を参照ください。とりあえず、グラフのタイトル設定と、データ凡例の表示の設定をしておきましょう。以上の設定でデプロイし、ダッシュボードを表示すると、10秒毎に温度調節計が計測した、使用する温度センサやアナログ入力の状態に応じた現在値がグラフ表されます。