Help us understand the problem. What is going on with this article?

Raspberry PiからMindSphereへ (2)Assetを作る

More than 1 year has passed since last update.

本稿のゴール

最終ゴールとして、Raspberry Piから得た気温データを、MindSphere Assetに保存します。その後アプリケーションを通じてデータの取り出しなどもしてみます。
筆者も初心者のため、何か間違いなどありましたらご指摘していただけると助かります。

前章はこちら

今回はアセットを作ります。

Assetとは?

アセットとは、1つまたは複数の自動化ユニット(PLCなど)や、工場サイトなどを論理的に表したものです。アセットは、アセットタイプを使用して定義します。
(MindConnectLib AssetManager FleetManagerより)

自分の理解では、シーメンスのイメージとしては「アセットとはデジタル化された工場設備」のようにニュアンスで使っているように思えます。
ただアセットとは、要するにデータ集積所のことという理解で問題ないと思います。

Assetを作る

計画を立てる

今回、取得して保存したいデータは、「気温」だけです。
時系列データでは「時間」のデータはあらかじめ用意されてるいのでこちらで用意する必要はなく、今回は「気温」という変数を設定すればいいだけです。
また気温は「27.34℃」のような形式で保存したいので、浮動小数点数で登録しなければいけません。ということは変数の型はdouble辺りがいいとなります。

もしも湿度や照度も記録した場合も、単位やデータ型をちゃんと計画しておいたほうがいいでしょう。というのも、一度設定をしてしまうと、後から新たに再設定しなおすというのは基本的に難しいからです(不可能ではありませんが、とても面倒)。
INTでデータ型を登録してしまい、あとで実はもっと大きな数字が使いたいというとき、面倒なことになりかねません。

Aspectを作る。

ランチパッドからAsset Managerを開いてください。
まずAspectを作るので、左のサイドバーからAspectsをクリックし、AspectsのペインからCreate aspectをクリックします
Nameは今回はrasPiDataとします。

Choose categoryは「Dynamic」。
元からそう設定されているとは思いますが、Dynamicに設定しないと時系列データは取得できないので、ほぼ常にこちらを選びます。

次にAdd Variableで変数を登録します。
このとき、自分がデータとして登録したい変数を登録します。
今回は気温で「27.45℃」のようなデータを登録したいので、
Nameはtemperature。
Data type(データ型)はDouble、
Unit(単位)は「℃」を意味する「deg C」と設定します。

Asset Manager.png

今回はわかりやすさのため、変数は一つだけですが、複数の変数を入れたいときはここで変数を追加すればいいでしょう。

Typeを作る

次にTypeを作ります。サイドバーからTypesを選択。Typesペインから「BasicAgent」を見つけて、その右についている「>」をクリック。
そこでCreate typeをクリックします。

NameはrasType。
Aspects欄のBrowse aspectsをクリックして開いたモーダルからrasPiDataのチェックボックスをチェックし、add。

設定はこれだけでOKです。Saveを押しましょう。

Asset Manager (1).png

ここでは、「BasicAgentタイプの派生タイプとして、新しくrasTypeというタイプを作る」……という意味の作業をしています。
今回はラズパイでAPIを使ってAssetを利用するため、BasicAgentという基本的なエージェントのタイプを選びました。

一方ラズパイではなく、たとえば産業用IoTゲートウェイであるMind Connect Nanoを使う場合は、Nano用のタイプを使いますし、MindConnect IoT2040を使いたい場合は、それ専用のタイプを使います。
またラズパイには他にMindConnect Libを利用する方法もあり、いろいろなデバイスごとにタイプを使い分けることができます。

Assetを作る

ようやくAssetを作ります。
サイドバーからAssetsを選択、Create assetを押下。
Select typeペインから先程作ったrasTypeを選択。

Nameに「RasAsset」と記入し、Saveします。

結局この作業はなに?

一つのAssetを作るためにAspect、Typeを作ってようやく作ることができました。
煩雑な作業と思う所ですが、おそらくは使い回しなどができたり、異なるデバイスを使用するときに必要になるのではないかと思います。

たとえば気温を複数の地点で測りたいとしましょう。「板橋気温アセット」と「新宿気温アセット」を作りたいとき、アスペクトだけは同じものを使いまわすことができます。
産業用の場合、同じ機種の機械Aと機械Bでそれぞれアセットを作りたい、ということがあるでしょうからアスペクトの使い回しは利点があるのではないかと思います。

またタイプについては、複数の異なるデバイスを使用したいとき、たとえば板橋の気温はMind Connect Nanoを使うけど、新宿と名古屋の気温はラズパイでアップロードしたい……というときに、タイプごとに分けて使い回しできるというメリットがあるのではないでしょうか。

更にタイプには複数のアスペクトを設定することもでき、ある場所では気温だけ測りたいけど、別のグループには気温+湿度を測りたいというとき、気温アスペクトに追加して、湿度アスペクトを追加すればいいことになります。
気温と湿度だけなら手作業でどうにかなるかもしれませんが、産業用機械から取得する大量のデータの場合は、使い回しが可能なほうが便利なのではないかと思います。

(少数の変数を扱うときは、あまりメリットが感じられないでしょうが)

まとめ

今回はアセットの設定だけまとめました。ややっこしいですが、慣れればそれほど難しくありません。

次回からはAPIの使用法に進みます。

IMdev
主にIoT関連、Web系のエンジニア。JavaScript、Vueなど。 最近はTypeScriptに興味があります。 Mind Sphere/IoT/Raspberry Pi/PHP/Python/IoT
ferix
R&Dを中心に主に受託開発でソフトウェアを開発するエンジニア集団
https://www.ferix.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away