IEEE1888とは!?...– Java、C♯、VB.NET、C、C++、PHP、Ruby、 Python、Perl、Qt –...

20
スマートグリッド通信の注目技術 IEEE1888とは!? ソリューション事業部

Transcript of IEEE1888とは!?...– Java、C♯、VB.NET、C、C++、PHP、Ruby、 Python、Perl、Qt –...

Page 1: IEEE1888とは!?...– Java、C♯、VB.NET、C、C++、PHP、Ruby、 Python、Perl、Qt – アプリケーション側の実装言語に合わせて開発可能

スマートグリッド通信の注目技術

IEEE1888とは!?

ソリューション事業部

Page 2: IEEE1888とは!?...– Java、C♯、VB.NET、C、C++、PHP、Ruby、 Python、Perl、Qt – アプリケーション側の実装言語に合わせて開発可能

Page 2

基礎知識スマートグリッド通信の注目技術 IEEE1888とは!?

Page 3: IEEE1888とは!?...– Java、C♯、VB.NET、C、C++、PHP、Ruby、 Python、Perl、Qt – アプリケーション側の実装言語に合わせて開発可能

Page 3

IEEE1888プロトコルとは何か?

IEEE1888プロトコルは、あらゆるセンサデータ

と制御データに関して、インターネットを用い、自由に交換するためのオープンな通信規格である。

例えばビル管理システム(BEMS)といった次世代

の電力管理や、施設・設備管理などの通信に利用される。

次世代通信網(スマートグリッド)の実現に不可欠な新しいプロトコルのひとつとして注目されている。

Page 4: IEEE1888とは!?...– Java、C♯、VB.NET、C、C++、PHP、Ruby、 Python、Perl、Qt – アプリケーション側の実装言語に合わせて開発可能

Page 4

IEEE1888の導入メリットは?

短納期開発が可能

– 基礎的な技術情報が公開されている。

– いくつものプロジェクトですでに実証されており、サンプルプログラムが公開されている。

システムの柔軟性(拡張性)

– IEEE1888対応のStorage(データ蓄積装置)を使っていれば、過去のデータもそのまま新しいサービスに移行可能

システムの維持管理が容易

– システムの設計手法や実装手法などが公開されている。

– 機器が故障した場合には、互換品を導入できる。

Page 5: IEEE1888とは!?...– Java、C♯、VB.NET、C、C++、PHP、Ruby、 Python、Perl、Qt – アプリケーション側の実装言語に合わせて開発可能

Page 5

IEEE1888の開発に関して

実装が容易

– 最小で200ステップ程度のプログラムでIEEE1888通信機能を実装可能

プログラミング言語は?

– Java、C♯、VB.NET、C、C++、PHP、Ruby、Python、Perl、Qt

– アプリケーション側の実装言語に合わせて開発可能

Page 6: IEEE1888とは!?...– Java、C♯、VB.NET、C、C++、PHP、Ruby、 Python、Perl、Qt – アプリケーション側の実装言語に合わせて開発可能

Page 6

IEEE1888の開発に関して

開発環境

– 東大グリーンICTプロジェクトのWebページにて無償で公開(自由にダウンロード可能)

• IEEE1888のソフトウェア開発キット(SDK)

• 実装参照ソースコード

• プロトコルテスター

Page 7: IEEE1888とは!?...– Java、C♯、VB.NET、C、C++、PHP、Ruby、 Python、Perl、Qt – アプリケーション側の実装言語に合わせて開発可能

Page 7

電力管理システムでの利用例

IEEE1888は、電力の計測・管理・制御通信に適し

電力メーター(スマートメーター)や電力管理サービス、電力負荷設備とGWとの連携により、見える化や節電が可能

電力管理システムとは・・・

オフィスや家庭などが消費する電力をリアルタイムに計測し、その使用量の「見える化」や、無駄な電力やピーク電力の削減を実現するシステムのことである。

東京大学主要5キャンパスの電力消費「見える化」システム 全体構成

異なる各キャンパスの受電設備からの電力情報をIEEE1888で結びデータ蓄積と見える化を行う

参考文献:東京グリーンICTプロジェクト

Page 8: IEEE1888とは!?...– Java、C♯、VB.NET、C、C++、PHP、Ruby、 Python、Perl、Qt – アプリケーション側の実装言語に合わせて開発可能

Page 8

施設・設備システムでの利用例

さまざまな方式で計測されたセンサデータを、集約する管理センタに伝える方法としてIEEE1888を利用

中小規模施設をつなぐIEEE1888のインフラ

参考文献:東京グリーンICTプロジェクト

各計測器のデータを共通のIEEE1888に変換し各アプリに通知する。

各アプリではデータを利用し見える化や分析を行う。

施設・設備管理システムとは・・・

商業施設やオフィスビルなどの照明機器、空調設備、環境、電力、ガスなどの情報を集めて総合的に管理し、定期的に帳票出力したり、与えられたスケジュールに従って、これらの機器を運転させたりするシステムのことである。

Page 9: IEEE1888とは!?...– Java、C♯、VB.NET、C、C++、PHP、Ruby、 Python、Perl、Qt – アプリケーション側の実装言語に合わせて開発可能

Page 9

通信規格スマートグリッド通信の注目技術 IEEE1888とは!?

Page 10: IEEE1888とは!?...– Java、C♯、VB.NET、C、C++、PHP、Ruby、 Python、Perl、Qt – アプリケーション側の実装言語に合わせて開発可能

Page 10

HTTPベース、具体的には実体がSOAP Webサービスである。

識別子がワールドユニークになるようURIとなっている。

ゲートウェイ(GW)、ストレージ(Storage)、アプリケーション(APP)と呼ばれるコンポーネントで

システム構築され、ポイントと呼ばれる単位でデータが扱われる。

データ交換には、WRITE、FETCH、TRAPがある。

システム構築にはレジストリ(Registry)を使用。

通信概要

Page 11: IEEE1888とは!?...– Java、C♯、VB.NET、C、C++、PHP、Ruby、 Python、Perl、Qt – アプリケーション側の実装言語に合わせて開発可能

Page 11

システム構成図

参考文献:IEEE1888プロトコル教科書

Page 12: IEEE1888とは!?...– Java、C♯、VB.NET、C、C++、PHP、Ruby、 Python、Perl、Qt – アプリケーション側の実装言語に合わせて開発可能

Page 12

システム・アーキテクチャの基本

IEEE1888システムは、

下記のコンポーネットに分類①ゲートウェイ(GW)

②ストレージ(Storage)

③アプリケーション(APP)

上記コンポーネントの自動連携を司るための④IEEE1888レジストリ(Registry)

で構成される。

Page 13: IEEE1888とは!?...– Java、C♯、VB.NET、C、C++、PHP、Ruby、 Python、Perl、Qt – アプリケーション側の実装言語に合わせて開発可能

Page 13

コンポーネント説明

①ゲートウェイ(GW)

– GWの配下には、Lonworks、BACnet、Modbus、ZigBee、SNMP、1-Wire、独自回路、CSVファイルなど、センサやアクチュエータへのアクセス網が接続される。GWは、このような様々なアクセス網の規格差異を吸収し、センサデータをIEEE1888の通信方式で、インターネット上で扱えるようにする。

・・・> 実装経験あり

②ストレージ(Strage)

– Storageは、GWを使って、インターネット・オンライン

化されたデータを長期間に渡って蓄積する役割を果たす。これにより後々、他のアプリケーションからIEEE1888の通信手順で参照することが可能。

– データを共有する場としても扱われる。

Page 14: IEEE1888とは!?...– Java、C♯、VB.NET、C、C++、PHP、Ruby、 Python、Perl、Qt – アプリケーション側の実装言語に合わせて開発可能

Page 14

コンポーネント説明

③ アプリケーション(APP)

– APPは、その応用方法によって様々な役割及び実装形態がありえる。

– 見える化アプリケーションの場合、Storageから最新値もしくは特定の履歴データを読み出して表示するなど。

④ レジストリ(Registry)

– Registryは、ネットワークの中の「どこに、どのような

コンポーネントがあるか」を把握しており、検索できるようになる。

Page 15: IEEE1888とは!?...– Java、C♯、VB.NET、C、C++、PHP、Ruby、 Python、Perl、Qt – アプリケーション側の実装言語に合わせて開発可能

Page 15

通信手順

参考文献:IEEE1888プロトコル教科書

Page 16: IEEE1888とは!?...– Java、C♯、VB.NET、C、C++、PHP、Ruby、 Python、Perl、Qt – アプリケーション側の実装言語に合わせて開発可能

Page 16

あるコンポーネントから別のコンポーネントに対し、能動的にデータを送りつける手順である。

GWからStorageにセンサの測定データを送ったり、APPからGWに対して制御コマンドを送ったりする際に使用。

・・・>実装経験あり

WRITEとは

サンプルパケット(ボディー部のみ)<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><ns2:dataRQ xmlns:ns2="http://soap.fiap.org/"><transport xmlns="http://gutp.jp/fiap/2009/11/"><body><pointSet id="http://point/pset/"><point id="http://point/pset/zone_5"><value time="2014-02-19T14:31:03+09:00">1</value></point></pointSet><point id="http://point/zone_1"><value time="2014/02/18T12:13:05+9:00">0</value></point>

</body></transport></ns2:dataRQ></soapenv:Body></soapenv:Envelope>

Page 17: IEEE1888とは!?...– Java、C♯、VB.NET、C、C++、PHP、Ruby、 Python、Perl、Qt – アプリケーション側の実装言語に合わせて開発可能

Page 17

あるコンポーネントが、別のコンポーネントに存在するデータを取得する手順である。

APPがGWやStorageから、最新値や過去データを取得する際に使用。

・・・>実装経験あり

FETCHとは

サンプルパケット(ボディー部のみ)<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><ns2:queryRQ xmlns:ns2="http://soap.fiap.org/"><transport xmlns="http://gutp.jp/fiap/2009/11/"><header><query acceptableSize="10" id="ad9dd94e-0dcc-4afc-95e2-1c9b3f0659e4" type="storage"><key attrName="time" id=" http://point/zone_1" gt="2014/02/01T00:00:00+9:00"lt="2014/03/01T00:00:00+09:00"/>

</query></header></transport>

</ns2:queryRQ></soapenv:Body></soapenv:Envelope>

Page 18: IEEE1888とは!?...– Java、C♯、VB.NET、C、C++、PHP、Ruby、 Python、Perl、Qt – アプリケーション側の実装言語に合わせて開発可能

Page 18

値やタイムスタンプの変化を、事前にリクエストのあった他のコンポーネントに通知するための手順である。

APPがGWに対してTRAPを仕掛けておくことにより、指定したセンサーの値や時刻がGW上で変化した際に、その変化をAPPに通知するときに使用。

TRAPとは

Page 19: IEEE1888とは!?...– Java、C♯、VB.NET、C、C++、PHP、Ruby、 Python、Perl、Qt – アプリケーション側の実装言語に合わせて開発可能

Page 19

REGISTRATIONは、レジストリのregistration

メソッドを遠隔呼び出しすることによって行われる。通常は呼び出し時に、各コンポーネントが担当するデータの範囲を登録。

・・・>実装経験あり

他にもポイント表の登録も行うことが可能。(例:ポイントPは、部屋番号123に設置された室温計から摂氏で得られるデータ系列)

REGISTRATIONとは

サンプルパケット(ボディー部のみ)<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><ns2:dataRQ xmlns:ns2="http://soap.fiap.org/"><transport xmlns="http://gutp.jp/fiap/2009/11/"><body><component name="GW" priority="100" expires="4000" support="WRITE" uri="http://192.168.19.101"><key stream="in" attrName="time" id="http://point/zone_1"/></component><point s0:mode="status" s0:type="integer" id="htto://point/zone_1" xmlns:s0="htto://aaa.bbb.com"/>

</body></transport></ns2:dataRQ></soapenv:Body></soapenv:Envelope>

Page 20: IEEE1888とは!?...– Java、C♯、VB.NET、C、C++、PHP、Ruby、 Python、Perl、Qt – アプリケーション側の実装言語に合わせて開発可能

Page 20

最後に

IEEE1888とは、異なるアクセス網の規格差異を吸収し、センサデータをインターネット上で扱えるようにする仕組み。

様々な言語で実装することができ、技術情報が開示されている。

HTTPベース、実体がSOAP Webサービス。

最低限WRITE が実装されていればストレージにデータをアップすることが出来る。

弊社では、ライブラリ実装、既存システムへの組込み、GW(カスタムHeMS)などの提供が可能。

開発イメージはこちら:

http://www.co-nss.co.jp/doc/ieee1888/

以上