エッジプラットフォームとAWS IoT SiteWiseの連携

# はじめに
Siemens Induistrial Edge向けのアプリケーションAWS IoT SiteWise Edgeの提供が開始されました。このアプリケーションを使用することによりオンプレミスプラットフォームのIndustrial Edge DeviceとクラウドのプラットフォームAWS IoT SiteWiseとの接続設定を簡単に構築できるようになります。
今回、このアプリケーションを使用した検証を実施しましたので紹介します。

# 構成
今回の構成およびデータフローを図1に示します。
二酸化炭素濃度センサーを用いてデータ(二酸化炭素濃度、室温、湿度）をPLCで取得し、PLC上のOPCUAサーバーを動かします。
Industrial Edge Device（以下、IEDと略す。）上にはAWS IoT Greengrassがインストールされ、そのAWS Greengrass上でSiteWise OPCUA Collectorが動作します。SiteWise OPCUA CollectorはPLCのOPCUA Serverからのデータ取得を担います。
そして、AWS SiteWsieとIEDの接続はAWS IoT Greengrassによって行われ、データをクラウドへ転送することになります。
アプリケーションAWS IoT SiteWise EdgeはAWS IoT Greengrass、SiteWise OPCUA CollectorのインストールおよびAWS SiteWsieとの接続設定を自動的に行います。
また、Industrial Edge Deviceの設定・管理はIndustrial Edge Management（以下、IEMと略します。）で行います。
![構成図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/9bd067d6-1516-3619-99c8-fcebb6401ea9.png)
図1. 構成図
# 構築フロー
構築の流れとしては図2の通りです。
![02 構築フロー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/040e771b-32e0-0271-b0ed-a54b560679a0.png)
図2. 構築フロー
# 構築手順
具体的な構築手順を以下に記述します。
#### AWS IoT SiteWiseの設定①
1. AWS Consoleホームから IoT → IoT SiteWiseをクリックします。
![01 AWS Concole Home.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/5a8ea0ae-49fa-0a19-1e32-85d654bdc8ad.png)
図3. AWS Consoleホーム
1. ナビゲーションペインでエッジ→Edgeゲートウェイをクリックします。
![02 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/2afda878-dd12-9196-eab6-e8039a96f1f1.png)
図4. AWS IoT SiteWiseホーム
1. ゲートウェイを作成をクリックします。
![03 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/902d5108-0ba5-340e-ee2a-091d7181eda8.png)
図5. AWS IoT SiteWise Edgeゲートウェイ画面
1. デプロイターゲットはSiemens Industrial Edgeデバイスを選択します。ゲートウェイ名はSiteWiseで表示される名称です。任意の名前を指定します。コアデバイス名はGreengrass Coreで表示されるデバイスの名称になります。こちらも任意の名前を指定します。入力したらゲートウェイを作成をクリックします。
![04 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/d14fc053-54f4-9757-41e7-5d5813f7a6cb.png)
図6. AWS IoT SiteWise Edgeゲートウェイ作成画面
1. 以下の画面が表示されるので、生成してダウンロードをクリックします。
![05 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/2082472f-5999-837e-0c63-6c6bdba53301.png)
図7. AWS IoT SiteWise Edegゲートウェイ設定ファイルダウンロード画面
1. ダウンロードフォルダに保存されます。
![06 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/49ea7ad2-17f3-29b5-75cf-91081f7de908.png)
図8. AWS IoT SiteWise Edgeゲートウェイ画面
1. データの取得元を設定します。データソースを追加をクリックします。
![07 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/a04d463f-eb43-6343-1d6c-b56a10c3eb3d.png)
図9. AWS IoT SiteWise Edgeゲートウェイ画面
1. データソースはPLCのOPCUAサーバーになります。ソースタイプはOPC-UAを選択します。ソース名は任意の名前を指定します。ローカルエンドポイントは以下のフォーマットで指定します。opc.tcp://IEDのIPアドレス:ポート番号(PLCのOPCUA Serverのポート番号は4840になります。)データの送信先をAWS IoTサイトワイズリアルタイムにして保存をクリックします。
![08 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/5547a0c3-a6de-6d3a-5a01-77e5a78bcb4d.png)
図10. AWS IoT SiteWise Edgeゲートウェイデータソース追加画面

AWS SiteWiseの設定①は以上になります。

#### AWS IoT SiteWise Edge設定
1. IEDの設定はIEMから行います。ブラウザのアドレスバーにhttpｓ://IEMのIPアドレス:9443/pp/app/homeと入力します。
![10 IEM access.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/d17d9f0b-cbe4-09cc-8208-95a61d83d944.png)
1. 1. 以下の画面が開きます。右上のSign inをクリックします。
![11 IEM login.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/a42ba2e4-0c77-5b6c-14e8-d64b293c4d04.png)
図11. IEM Managementホーム画面
1. ログイン電子メールアドレスとパスワードを入力しSign inをクリックします。
![12 IEM login.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/eb05b13c-3ea8-441d-9258-b7aaed0f4535.png)
図12. IEM Management Sign in画面
1. アプリケーションAWS IoT SiteWise Edgeの設定に進みます。メニューペインからMy Installed Appsをクリックします。
![13 IEM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/8f0ceb14-d508-46d5-14ac-204f0214fc34.png)
図13. IEM Managementホーム画面
1.  AWS IoT SiteWise Edgeをクリックします。
![14 IEM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/96c1ae92-5ba6-4782-fa6b-3c7aa3b68baa.png)
図14. IEM Management My Installed Apps画面
1. Update Configrationをクリックします。
![15 IEM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/720f1e81-16cf-cf98-39d6-4efed82eaf03.png)
図15. IEM Management My Installed Apps AWS IoT SiteWise Edge画面
1. 右上のConfiguratons追加（＋）をクリックします。
![16 IEM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/285b5f06-ad01-543d-1d30-b5d52de15940.png)
図16. IEM Management My Installed Apps AWS IoT SiteWise Edge Update Configuration画面
1.  AWS IoT SiteWiseの設定①項番6で保存したファイルを選択し、開くをクリックします。
![17 IEM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/36ca3935-9a15-a9dc-ea66-66aec84d66b3.png)
図17. IEM Management My Installed Apps AWS IoT SiteWise Edge Update Configuration ファイル選択画面
1. Update Nowをクリックします。
![18 IEM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/c0a7a73c-9df0-d2f2-fa3e-2f3ce2fa0598.png)
図18. IEM Management My Installed Apps AWS IoT SiteWise Edge Update Configuration画面
1. Job Statusをクリックすると状況が確認できます。
![19 IEM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/0f84e348-6b4d-3682-7b05-0d94770368d8.png)
図19. IEM Management My Installed Apps AWS IoT SiteWise Edge Update Configuration画面
1. 当該JobがPending → Executingへと移行します。
![20 IEM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/75446140-e84f-11e0-eeae-6e5ce4a6be42.png)
図20. IEM Management Job Status画面
1. 正常に終了するとCompletedになります。
![21 IEM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/6731378f-8f8a-b5da-218b-c223c7f8e7a8.png)
図21. IEM Management Job Status画面

AWS IoT SiteWise Edgeの設定は以上になります。

#### AWS SiteWiseの設定②およびデータ確認
1. AWS Consoleホームから IoT → IoT SiteWiseをクリックします。
![22 AWS Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/d3f2d04b-6bbd-a917-c549-079e0146c2a5.png)
図22. AWS Consoleホーム
1. ナビゲーションペインでビルド→モデルをクリックします。
![23 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/1390c55a-ecf1-ffed-7cad-e817a19248c0.png)
図23. AWS IoT SiteWiseホーム
1. アセットモデルを作成をクリックします。
![24 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/19b39b46-5827-a137-e508-1aff9c0d57b9.png)
図24. AWS IoT SiteWise モデル画面
1. モデルの詳細で任意の名前を指定します。定義で測定をチェックし、新しい測定値を追加をクリックします。
![25 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/ee20c7ea-42cd-dc99-f126-e9a5daf8abd2.png)
図25. AWS IoT SiteWise モデル作成画面
1. 測定値を入力します。今回のセンサーは二酸化炭素濃度、温度、湿度を測定可能です。まずは二酸化炭素濃度の設定を行うため、名前をCO2_Concentration、単位をppm、データ型をダブルとしました。
![26 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/0c1064b0-7a9b-b305-c8bc-46225c36dfe3.png)
図26. AWS IoT SiteWise モデル作成画面
1. 同様に、名前をTemperature、Humidity、単位を℃、%、データ型をダブルとし温度、湿度の設定を入力します。入力したらモデルの作成をクリックします。
![27 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/d155cf82-c80d-0277-7b9d-b30fe78413d4.png)
図27. AWS IoT SiteWise モデル作成画面
1.  ナビゲーションペインでビルド→アセットをクリックします。
![28 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/863080cf-ef86-7708-eb38-29af626af189.png)
図28. AWS IoT SiteWiseホーム
1. アセットの作成をクリックします。
![29 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/545ccf20-88e6-e261-139c-d6567cc7bf37.png)
図29. AWS IoT SiteWise アセット画面
1. データの格納場所となるアセットを作成します。モデル情報で先ほど作成した二酸化炭素濃度センサーを選択します。次にアセット情報で任意のアセット名を指定します。今回はNETFC二酸化炭素濃度センサーとしました。指定したら、アセットの作成をクリックします。
![30 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/57302f63-4656-17d0-389c-113627c32e77.png)
図30. AWS IoT SiteWise アセット作成画面
1. 次にアセットとデータのマッピングを進めます。 ナビゲーションペインでビルド→データストリームをクリックします。
![31 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/4ad3cf84-b7bc-71b8-3d1b-2efc608d8ddd.png)
図31. AWS IoT SiteWise アセット画面
1. データソース（OPCUAサーバー）との接続が確立されると自動的にデータストリームエイリアスにデータが登録されます。アセットに紐づけるデータのチェックボックスをチェックします。今回は/PLC1_1/Memmory/Measured CO2 Concentrationと/PLC1_1/Memmory/Measured Tenperatureと/PLC1_1/Memmory/Humidityを選択しました。選択後、データストリームを管理をクリックします。
![32 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/5feed5e2-b5e4-ccb6-f70f-b1f342692d2d.png)
図32. AWS IoT SiteWise アセット画面
1. データストリームエイリアスとアセットを紐づけます。Measured Temperatureの測定値を選択をクリックします。
![33 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/a4cf3dbe-28e0-70c3-5fd4-657203363416.png)
図33. AWS IoT SiteWise データストリーム管理画面
1. アセットはNETFC二酸化炭素濃度センサーとなるので▶をクリックし、測定値のTemperatureをチェックします。チェック後、選択をクリックします。
![34 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/56c03d13-33c7-c4be-27bb-192b7cca0ad5.png)
図34. AWS IoT SiteWise データストリーム管理画面
1. Measured Temperatureに測定値Temperatureがマッピングされました。次にMeasured Humidityの測定値を選択をクリックします。
![35 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/c95dad34-9d0c-d98b-d891-f7e0b9118ade.png)
図35. AWS IoT SiteWise データストリーム管理画面
1. 同様にNETFC二酸化炭素濃度センサーアセットのHumidityをチェックし選択をクリックします。
![36 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/afea3bd7-2104-a608-6493-10a928d25b62.png)
図36. AWS IoT SiteWise データストリーム管理画面
1.  Measured Humidityに測定値Humidityがマッピングされました。次にMeasured Concentrationの測定値を選択をクリックします。
![37 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/dc079702-28ce-3ff4-c967-8f9805c75afe.png)
図37. AWS IoT SiteWise データストリーム管理画面
1. 同様にNETFC二酸化炭素濃度センサーアセットのCO2_Concentrationをチェックし選択をクリックします。
![38 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/5ff45d8b-d1f8-ee2a-2d4c-7ad9cde46c6a.png)
図38. AWS IoT SiteWise データストリーム管理画面
1.  Measured CO2 Concentrationに測定値CO2_Concentrationがマッピングされました。更新をクリックします。
![39 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/942396fd-4dfe-0da3-f785-a324c216e21b.png)
図39. AWS IoT SiteWise データストリーム管理画面
1. データストリームエイリアスにアセットがマッピングされました。AWS SiteWiseの設定②はこれで終了となります。アセットにデータが格納されるのを確認するため、アセットをクリックします。
![40 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/bcb58cdd-9845-e4ef-cae8-2bb0283ebdf8.png)
図40. AWS IoT SiteWise データストリーム画面
1. NETFC二酸化濃度センサーアセットをクリックします。
![41 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/de8ffe53-97af-6442-a8c3-2d9cba682095.png)
図41. AWS IoT SiteWise アセット画面
1. 測定をチェックして、スライドバーを右へずらします。
![42 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/638ce2a9-ca7f-a26f-c816-f835ef7f3174.png)
図42. AWS IoT SiteWise アセットNETFC二酸化濃度センサー画面
1. データが正常に取得できていると、最新の値にデータが表示されます。上から、二酸化炭素濃度、湿度、温度となります。
![43 AWS SiteWise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745875/540e223e-413c-5992-6f76-0fc5d87f1381.png)
図43. AWS IoT SiteWise アセットNETFC二酸化濃度センサー画面

 # おわりに
Siemens Induistrial Edge向けのアプリケーションAWS IoT SiteWise Edgeを利用してAWS SiteWiseにデータをアップロードしました。このアプリケーションを使用することによりSiemensのIEDに簡単にAWS GreengrassとSiteWise OPCUA Collectorを導入し、データをAWSクラウドで利活用することが可能となりました。