こんにちは、三谷です。
今回は、以下のチュートリアルを実際に操作しながらやってみました。
https://developer.thingworx.com/ja/resources/guides/thingworx-foundation-quickstart
気軽に始められますので、皆様も試してみてください!
このチュートリアルを始める前に、ThingWorxの無料ダウンロードが必要になります。
産業系のIoT(IIoT)プラットフォーム「ThingWorx」の無料体験版ダウンロードのご案内
https://fusion360.3dworks.co.jp/2019/02/15/thingworx-freedl/
こちらからダウンロードをしてみてください。
STEP1
このチュートリアルでは、サーモスタットと電気メーターを想定して、それらの情報をThingWorxで一元管理して可視化する住宅用のアプリケーションを作ってみます。
センサーデータは、仮想でシミュレータを作ります。
STEP2 モデルタグを作成する
まず始めに「モデルタグ」というものを設定します。実はこの作業は、必須ではないのですが、これから作るいろいろなThingに対して、「これらは関連するものだよ」という目印になるタグですので、作成してつけておくことは重要です。
あとからまとめてエクスポートしたり、移行したりする際にもモデルタグでまとめることができます。
1 フォルダーアイコンを選択し、「Model Tags」の[ + ]ボタンをクリックします。
2 「Name」 にFoundationQuickstartと入力し、
3 「Vocablary Terms」を選択し、<+Add>を選択します。右側に表示されるNew Term画面の「Term
にHome Applicationと入力し、<✔>で完了、
モデルタグの中に複数のVocablary Termsを登録しておくことで、より細かいタグ管理ができます。
4 モデルタグが使用できるように、ブラウザをリフレッシュしておきます。
STEP3 Thing Shapeを作成する
電気メーターとサーモスタット用の2つのThing Shapesを作成します。Thing Shapeは、そのものの特徴を表した、いわば部品のようなものです。
まずは電気メーターのThing Shapeを作成します。
1 フォルダーアイコンを選択し、「Thing Shapes」の[ + ]ボタンをクリックします。
2 「Name」にMeterShapeと入力し、「Tags」で<+>ボタンを押して「FoundationQuickstart :Home Application」を選択し、
3「Properties and Alarts」を選択し、<+Add>を選択します。右側に表示されるNew Property画面 の「Name 6 にmeterIDと入力し、「Base Type」を
4 同様の操作で、以下のプロパティを追加します。 Basic TypeはSTRING(文字列)か、Number(数値)かを設定します。 PersistantのチェックがONになっていると、システムが再起動された際にプロパティの値が保 持され、OFFになっているとシステムが再起動された際にリセットされます。 LoggedのチェックがONになっていると、すべての値がValue Streamに保存され、OFFになっ ていると値に変更があった場合のみValue Streamに保存されます。
Name | Basic Type | Persistant | Logged |
---|---|---|---|
meterID | STRING | ✔ | |
currentPower | Number | ✔ | |
costPerKWh | Number | ✔ | ✔ |
currentCost | Number |
5 以下のように登録ができたら
6 続いて、サーモスタットのThing Shapeを作成します。 1 フォルダーアイコンを選択し、「Thing Shapes」の[ + ]ボタンをクリックします。
7「Name」にThermostatShapeと入力し、「Tags」で<+>ボタンを押して「FoundationQuickstart :Home Application」を選択し、
8 「Properties and Alarts」を選択し、<+Add>を選択します。先ほどと同様の操作で、以下のプロパティを登録します。
Name | Basic Type | Persistant | Logged |
---|---|---|---|
thermostatID | STRING | ✔ | |
temperature | Number | ✔ | ✔ |
setTemperature | Number | ✔ | ✔ |
message | STRING | ✔ |
9 以下のように登録ができたら
STEP4 テンプレートを作成する
次に、プロパティを定義するThing Templateを作成します。Thing TemplateとしてThing Shapeをま とめておくことで、例えば、同じサーモスタットと電気メーターを使う一般住宅、賃貸住宅、商用ビル など 数の物を作成するために使用できます。
1 フォルダーアイコンを選択し、「Thing Templates」の[ + ]ボタンをクリックします。
2 「Name」にBuildingTemplateと入力し、「Tags」で<+>ボタンを押して「FoundationQuickstart :Home Application」を選択し、「Base Thing Template」で
3 「Properties and Alarts」を選択し、<+Add>を選択します。右側に表示されるNew Property画面 で、先ほどと同様の操作で以下のプロパティを追加します。
Name | Basic Type | Persistant | Logged |
---|---|---|---|
thermostatID | STRING | ✔ | |
watts | LOCATION | ✔ | ✔ |
4 以下のように登録ができたら
STEP5 Thingを作成する
Thingとは、現実世界における一つの「モノ」を表します。Thing Templateで紹介した、同じサーモ スタットと電気メーターを使う一般住宅、賃貸住宅、商用ビル、それぞれの建物に当たるのがThing です。
1 フォルダーアイコンを選択し、「Things」の[ + ]ボタンをクリックします。
2 「Name」にMyHouseと入力し、「Tags」で<+>ボタンを押して「FoundationQuickstart :Home Application」を選択し、「Base Thing Template」で
STEP6 Value Streamの作成
Value Streamは、ThingWorxの中にデータを保存するストレージの役割を持っています。Value Streamを作成し、Thing Templateと繋ぐ作業を行います。
1 フォルダーアイコンを選択し、「Things」の[ + ]ボタンをクリックします。
2 「Value Stream」を選択し、
3 「Name」にFoundation_Quickstart_ValueStreamと入力し、「Tags」で<+>ボタンを押して 「FoundationQuickstart :Home Application」を選択し、
4 BuildingTemplateを編集します。
5 「Value Stream」に「Foundation_Quickstart_ValueStream」を選択し、
STEP7 カスタムServiceを作成する
収集したデータは活用しないと意味がありません。ここでは、電気メーターから収集された生の データと、モデルに保存された電気料金を用いて、1時間あたりの電気料金を計算するカスタム サービスを作成します。
1 フォルダーアイコンを選択し、「Thing Shapes」を選択し、一覧から「MeterShape」を選択します。
2 「Services」を選択し、<+Add>を選択、
3「Name」にcalculateCostと入力します。
4 「Me/Entities」を選択、「Properties」を選択後、「#currentCost」の右側にある「→」を選択します。 JavaScriptのコードが右側のフィールドに挿入されます。
5 続けて他のプロパティを挿入しながら、以下のような数式を記述します。 me.currentCost = me.costPerKWh * me.currentPower;
STEP8 AlertsとSubscriptionsを作成する
Thingによって収集、整理された情報をうまく活用するために、今回はアラートを作成します。ア ラートを定義することで、メーターの値が特定の値を超えた場合や、正常でない挙動を示したときに 注意喚起がなされ、例えば作業者に通知を送ったり、遠隔操作で機械を停止したりなどの行動を 起こすことができます。
1 Alertsを作成します。フォルダーアイコンを選択し、「Thing Shapes」を選択し、一覧から 「ThermostatShape」を選択します。
2 「Properties and Alerts」を選択し、「#temperature」の横の「+」マークを選択します。右側に表示 されるNew Alert画面で、「Name」freezeWarningと入力し、「Alert Type」を「Below」に設定し、「Limit」で「32」を入力します。<✔ >で完了し、
3 続いて、「Building Template」を編集します。「Subscriptions」を選択肢、<+Add>を選択します。
4 「Name」にfreezeWarningSubscriptionを入力します。
5 「Subscription Info」の「Enabled」にチェックをいれます。
6 「Inputs」タブを選択し、「Event」を
7 スクリプトテキストボックスで改行し、「Snippets」タブの検索フィールドで「warn」を入力し、 「Logger」下の「warn」右側にある「→」を選択します。
8 ダブルクォーテーションマークの間に「The freezeWarning subscription was triggered」を入力し、 < Done> ✔ 、
前半はここまでです。 後半は、これらの設定を生かして、実際にデータを見える化する、ダッシュボードを作成していきま す。メーターやグラフ、地図表示などを簡単に行なえますので楽しみにしておいてくださいね!