Comments
Description
Transcript
IEEE1888を活用した クラウド連携型 センサ・ネットワークの実力
技術講演 3Gシールド・カンファレンス IEEE1888を活用した クラウド連携型 センサ・ネットワークの実力 東京大学 大規模集積システム設計教育研究センター 助教 落合秀也 Ph.D. 2013年9月7日 通信 + 計測・制御 = ? • 通信 – 遠隔地との情報のやり取りを可能にする – 2000年代 は TCP/IP (インターネット) が主流 (3G も その一つ) • 計測・制御 – センサ: 物理量、状態を読み取る – アクチュエータ: 物理量、状態に働きかける • 通信 + 計測・制御 = ? – 通信+計測 = リモート・センシング – 通信+計測・制御 = リモート・コントロール 現代の技術(TCP/IP/組込み通信/センサ技術)で実現される ものを、 Machine-to-Machine(M2M)システムと呼ぶ 2 M2Mの世界には 時系列データがあふれている 電流センサの値(A) エアコンのON/OFF状態 通信により、センサやアクチュエータにはアクセスできるようになった。 時系列データのやり取りには別の仕組みが必要 IEEE1888規格 3 IEEE1888の適用先の例 • ビルの設備・エネルギー管理 – 空調設備、照明設備、生活環境 – 電力の使用状況 • 環境データの収集・管理 – 温度・湿度・気圧・降雨・風向・風速 – CO2、NOx、SOx • 植物工場の設備・環境管理 – 温度・湿度・CO2管理 – 水量調整、ヒートポンプ制御 4 講演内容 • • • • • IEEE1888プロトコルの技術 IEEE1888対応装置/ソフト/サービスのイメージ IEEE1888でシステムを組むと IEEE1888 + 3G を Arduinoに実装 お知らせなど 5 講演内容 • • • • • IEEE1888プロトコルの技術 IEEE1888対応装置/ソフト/サービスのイメージ IEEE1888でシステムを組むと IEEE1888 + 3G を Arduinoに実装 お知らせなど 6 IEEE1888 システム・アーキテクチャ *アプリケーション ユーザ・インタフェース データ分析 帳票出力 コマンド発行など *レジストリ GW, Storage, APPの登録・検索 ポイントの登録・検索 *ストレージ データの蓄積 (長期間・大容量など) IEEE1888通信網(HTTP) TCP/IP Network *ゲートウェイ アクセス方式 の統一化 Proprietary Circuits CSV Files, … 既存技術に基づく設備・機器 フィールドバス センサ・アクチュエータ 計測ネットワーク 7 IEEE1888プロトコルの設計要件 • 通信インタフェースは下記のように設計されること – – – – GWにアクセスする方法と同じ方法で、Storage(やAPP)にもアクセスできること GWやStorageやAPPからデータを取り出せること GWやStorageやAPPにデータを書き込めること GWやStorageやAPPで発生したデータ更新を通知できること • センサやアクチュエータは、GWによってカプセル化され、 抽象化されたものとして扱う • センサやアクチュエータを表現する “ポイント” は、世界で 唯一の識別子を持ち、TCP/IPネットワークの上で、流通で きる • GWやStorageやAPPをダイナミックに結合できる 8 IEEE1888の設計 要件外(Out-of-Scope)とすること • データのセマンティクスは外部定義されたものを使用する – ポイントの記述方法 • E.g., 場所, 単位, 所有者 – 値のフォーマット(スキーマ) • E.g., HVAC_HEAT, LIGHT_ON – 他のセンサ(やアクチュエータ)との関係性 • E.g., センサ A と センサ B は、同じビルに設置されている • セキュリティについては考えない IEEE1888.3で規定する、という方針 • プロトコルの軽量性 • リアルタイム性 9 IEEE1888 コンポーネント • GW, Storage, APPは総称してIEEE1888 コン ポーネントと呼ばれ、すべて同じインタフェー スを持つ。 – queryメソッド • クエリ(取得要求)を投げ込むためのメソッド – dataメソッド query これらメソッドの組合せで WRITE, FETCH, TRAPの data 通信手順が定義されている。 IEEE1888 • データ本体を投げ込むためのメソッド IEEE1888 コンポーネント GW, Storage, App はすべてこ のモデルに従う 10 GW, Storage, APPは、IEEE1888プロトコルの実装 IEEE1888 Data or IEEE1888 FETCH APP WRITE Component User Interface IEEE1888 Data or IEEE1888 FETCH Storage WRITE Component Massive Storage (e.g., HDD) Component IEEE1888 Data or IEEE1888 FETCH GW Actuator WRITE 同じ通信方式 (= これがIEEE1888) 「どのようにデータが処理されるか」 が違う 11 IEEE1888は HTTP/XMLによる 遠隔手続き呼出し (Remote Procedure Call) をベースにする サーバ サーバ transport transport header header body 要求メッセージの送信 body network ネットワーク クエリ, 処理の成否結果 transport transport header header body body 応答メッセージの送信 応答メッセージ 要求メッセージ クライアント クライアント 12 データ や フィールドバス上のエラー data IEEE1888の通信手順 • コンポーネント間通信 – WRITE手順 • データを相手側に送信する手順 – FETCH手順 • 相手側にデータを取りに行く手順 – TRAP手順 • 相手側で将来発生するデータを、発生時に送り付けて もらうよう仕掛ける手順 • レジストリ通信 – REGISTRATION 手順 – LOOKUP 手順 13 WRITE Procedure Requester Target 14 FETCH Procedure Provider Requester If the size of dataset is large, it splits into sub-datasets. 15 TRAP Procedure Requester Provider By setting a trap query, The provider asynchronously transmits query-matching upcoming data. Callback query Valid until TTL expires New Data New Data 16 IEEE1888のメッセージ構造 transport header HEADER – 通信の制御 - Query - OK Notification - Error Information body BODY – 運ぶデータ - Point - Value 要求および応答メッセージ 17 IEEE1888のメッセージ構造 XMLでの表現 transport header body 要求および応答メッセージ <transport> <header> … </header> <body> …. </body> </transport> HTTPでやり取りされる時の様子18 Body要素内部のデータ構造 body point (id=A) point (id=B) value (time=“12:00:00”) value (time=“12:00:00”) 25.5 1013 value (time=“13:00:00”) value (time=“13:00:00”) 25.7 1012 value (time=“14:00:00”) value (time=“14:00:00”) 25.8 1010 Body要素は Point要素を複数持つ Point要素は Value要素を複数持つ 19 point (id=A) point (id=B) value (time=“12:00:00”) value (time=“12:00:00”) 25.5 1013 value (time=“13:00:00”) value (time=“13:00:00”) 25.7 1012 value (time=“14:00:00”) value (time=“14:00:00”) 25.8 1010 XMLによる表現 <point id=“A”> <value time=“2013-06-19T12:00:00+09:00”>25.5</value> <value time=“2013-06-19T13:00:00+09:00”>25.7</value> <value time=“2013-06-19T14:00:00+09:00”>25.8</value> </point> <point id=“B”> <value time=“2013-06-19T12:00:00+09:00”>1013</value> <value time=“2013-06-19T13:00:00+09:00”>1012</value> <value time=“2013-06-19T14:00:00+09:00”>1010</value> </point> 20 POST /axis2/services/FIAPStorage HTTP/1.1 Content-Type: text/xml; charset=UTF-8 SOAPAction: "http://soap.fiap.org/data" User-Agent: Axis2 Host: 192.168.10.198 IEEE1888 通信のキャプチャ WRITE(要求)の例 <?xml version='1.0' encoding='UTF-8'?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <ns2:dataRQ xmlns:ns2="http://soap.fiap.org/"> ※ このURIはポイントIDと呼ばれる <transport xmlns="http://gutp.jp/fiap/2009/11/"> (ここにアクセスしてもデータが得られるわけではない) <body> <pointSet id="http://jo2lxq.hongo.wide.ad.jp/test/"> <point id="http://jo2lxq.hongo.wide.ad.jp/test/Temperature"> <value time="2011-09-03T21:20:00.000+09:00">25.4</value> 温度センサのデータ <value time="2011-09-03T21:21:00.000+09:00">25.5</value> </point> <point id="http://jo2lxq.hongo.wide.ad.jp/test/CO2"> <value time="2011-09-03T21:20:00.000+09:00">541</value> CO2センサのデータ <value time="2011-09-03T21:21:00.000+09:00">542</value> </point> <point id="http://jo2lxq.hongo.wide.ad.jp/test/Power"> <value time="2011-09-03T21:20:00.000+09:00">6583.5</value> <value time="2011-09-03T21:21:00.000+09:00">6583.3</value> 電力センサのデータ </point> </pointSet> </body> </transport> IEEE1888サーバアドレス(SOAP通信端点) </ns2:dataRQ> http://192.168.10.198/axis2/services/FIAPStorage </soapenv:Body> 21 </soapenv:Envelope> に送信されている (HTTPヘッダ部を参照) IEEE1888 のクエリ・モデル query id=A gteq=11:00 lteq=13:00 id=B gteq=11:00 lteq=13:00 データセット point (id=A) point (id=B) point (id=C) クエリ (= サブセットの指定) value value value value value 10:00 11:00 12:00 13:00 14:00 value value value value value 10:00 11:00 12:00 13:00 14:00 value value value value value 10:00 11:00 12:00 13:00 14:00 Time Time Time 23 クエリのデータ構造 header query key (id=“A”) key (id=“B”) Query要素は 複数のkey要素を持つ key key 属性 属性 id=A gteq=11:00:00 lteq=13:00:00 id=B gteq=11:00:00 lteq=13:00:00 <query …> <key id=“A” gteq=“2013-06-19T11:00:00+09:00” lteq=“2013-06-19T13:00:00+09:00”/> <key id=“B” gteq=“2013-06-19T11:00:00+09:00” lteq=“2013-06-19T13:00:00+09:00”/> </query> Key要素によってデータの時刻の範囲が与えられる 24 WRITE, FETCH, TRAP 手順の適用例 WRITE 手順 GWからStorageへの データ送信 APPによる Storageからのデータ読出し FETCH 手順 APPによる GWからのデータ読出し APPによるGWへのTRAP 設定 およびGWからAPPへの通知 APPによるGWへの データ送信 TRAP 手順 WRITE 手順 25 sensor Component (GW) IEEE1888 A WRITE point (id=A) IEEE1888 WRITE手順によるデータの配送 Component (Storage) point (id=A) HDD value (time=“12:00”) 25.5 value (time=“13:00”) 25.7 value (time=“12:00”) WRITE value (time=“14:00”) value (time=“14:00”) 25.8 25.9 25.8 WRITE point (id=A) 26.1 25.9 26.0 26.0 Time value (time=“15:00”) value (time=“16:00”) value (time=“16:00”) value (time=“17:00”) value (time=“13:00”) 25.7 point (id=A) value (time=“15:00”) 25.5 WRITE value (time=“17:00”) 26.1 26 (Storage) IEEE1888 Component FETCH HDD point (id=A) value (time=“13:00”) Req. 25.7 value (time=“14:00”) 26.0 value (time=“17:00”) 26.1 Key (id=A) attributes gteq=14:00 lteq=16:00 value (time=“14:00”) value (time=“15:00”) value (time=“16:00”) (APP) point (id=A) 25.8 25.9 Component User Interface value (time=“12:00”) 25.5 IEEE1888 FETCH手順によるデータの配送 Res. 25.8 value (time=“15:00”) 25.9 value (time=“16:00”) 26.0 27 講演内容 • • • • • IEEE1888プロトコルの技術 IEEE1888対応装置/ソフト/サービスのイメージ IEEE1888でシステムを組むと IEEE1888 + 3G を Arduinoに実装 お知らせなど 28 IEEE1888 参照機器モデル • GW編 – – – – – – LonTalk-to-1888変換GW BACnet-to-1888変換GW ZigBee-to-1888変換GW SNMP-to-1888変換GW CSV-to-1888変換GW IEEE1888汎用観測GW 大容量ハイパフォーマンスStorage ハイレベル分析機能搭載Storage 小規模オフィス環境向けStorage IEEE1888 Storageサービス IEEE1888 Storage製品 IEEE1888通信 http://gutp.jp/fiap/model.html • Storage編 – – – – IEEE1888 App製品 (帳票出力など) Lonworks インターネット IEEE1888通信 LonTalk-to-1888 変換GW 環境センサ・電力メータ 空調機器・照明など • アプリ編 – – – – – 簡易監視(SCADA)アプリケーション データ加工分析アプリケーション ヘルスチェック・アプリケーション MS Excel 連携アプリケーション 電力デマンド制御アプリケーション 29 IEEE1888 Modbus ゲートウェイの例 計測器からModbus通信方式で読み出したデータを IEEE1888通信規格でオンライン化する 30 IEEE1888 Modbus ゲートウェイ ※本体写真 ※応用例 IEEE1888 App製品 (帳票出力など) IEEE1888通信 ※技術仕様 ネット接続 10BASE-T / 100BASE-TX IPアドレス設定: DHCP or 手動 Modbus Modbus/RTU (RS232C/RS485) ・Read Multiple Register ・Set Single Register IEEE1888 WRITEクライアント,サーバ FETCHクライアント,サーバ 最大ポイント数: 500 再送機能: あり 電源 DC 9V ~ 48V (PoE対応) 消費電力 1.2W サイズ 45×79×26.5 [mm] RS232C RS485変換器は除く 動作温度 0℃~60℃ IEEE1888 Storage製品 インターネット Modbus/RTU IEEE1888通信 1888-to-Modbus ゲートウェイ 環境センサ・電力メータなど 31 IEEE1888 大容量ハイパフォーマンス Storageの例 センサなどから大量に発生する計測データを取り込み,保管する 32 IEEE1888 大容量ハイパフォーマンス Storage ※イメージ写真 ※応用例 IEEE1888 App製品 (帳票出力など) 大容量ハイパ フォーマンス Storage IEEE1888通信 ※デバイス仕様 ネット接続 1000BASE-T IPアドレス設定: DHCP or 手動 HTTPプロキシ: 設定可能 IEEE1888 データ収集: WRITEサーバ, FETCHクライアント データ提供: FETCHサーバ, WRITEクライアント 最大ポイント数: 4000 蓄積データ容量: 10億個 最大同時読出しセッション数: 100 最大データ登録速度: 1000個/秒 最大データ読出速度: 2000個/秒 電源 AC100V – 240V (50Hz/60Hz) 消費電力 100W サイズ W431 x H42.6 x D393.7 [mm] 動作温度 15℃~25℃ 質量 約2kg インターネット 空 調 ・ 照 明 ・ 電 力 な ど IEEE1888通信 IEEE1888通信 IEEE1888 GW製品 IEEE1888 GW製品 IEEE1888 GW製品 IEEE1888 GW製品 施設A 空 調 ・ 照 明 ・ 電 力 な ど IEEE1888 GW製品 IEEE1888 GW製品 施設B 33 簡易監視APP の例 データを理解しやすい形で表示し,設備や エネルギーの管理運用効率を向上させる 34 簡易監視APP ※イメージ画面2 ※イメージ画面1 設備ステータスの一覧表示 トレンド表示 簡易監視 (簡易SCADA) アプリケーション データ加工分析 アプリケーション IEEE1888通信 ヘルスチェック アプリケーション IEEE1888通信 IEEE1888 Storage製品 IEEE1888通信 インターネット IEEE1888通信 IEEE1888 GW製品 IEEE1888 GW製品 IEEE1888 GW製品 ※応用例 35 講演内容 • • • • • IEEE1888プロトコルの技術 IEEE1888対応装置/ソフト/サービスのイメージ IEEE1888でシステムを組むと IEEE1888 + 3G を Arduinoに実装 お知らせなど 39 IEEE1888のシステム実現の考え方 GW GW GW GW Storage APP APP GW Storage APP APP GW APP IEEE1888部品 たくさんの種類の GW, Storage, APPが入手できる 機能要件に照らし合わせて必要なものを選定&購入 それぞれの機器・ソフトを設定して連携させる Storage GW APP GW APP GW APP IEEE1888 システム の実現 GW IEEE1888 システム 導入現場 40 東京工業大学 の事例 環境エネルギーイノベーション棟 4570枚の太陽光パネル(650kW)でビルが囲まれている! PVのモニタリング、設備の制御をIEEE1888で行っている Cite: http://www.nttdatacs.co.jp/news/20121204.html 41 東京工業大学 環境エネルギーイノベーション棟 システム構成 Modbus, BACnet/IP などをIEEE1888で統合 Cite: http://www.nttdatacs.co.jp/news/20121204.html 42 IEEE1888 商用システムの実例 http://www.nttdatacs.co.jp/product_html/service/system/remoteone/index.html 43 東大の事例 (5キャンパスの統合管理) 見える化など データ蓄積 App App App CIMX Storage 東大 江崎研究室 CIMX CIMX IEEE1888 IEEE1888 The Internet IEEE1888 IEEE1888 GW IEEE1888 IEEE1888 GW IEEE1888 IEEE1888 GW IEEE1888 IEEE1888 GW IEEE1888 GW 東芝 明電舎 特高受電 特高受電 柏キャンパス 白金キャンパス エービル 日立 三菱電機 近計システム パナソニック 高岳製作所 特高受電 集中検針 本郷キャンパス 受電設備 駒場Ⅰキャンパス 特高受電 駒場Ⅱキャンパス 合計で 5万kWを超える電力が,管理対象(=監視制御対象) となっている グラフ化や地図へのマッピング,警報発令などがIEEE1888によるITシステムで実現さ 46 れている http://ep-monitor.adm.u-tokyo.ac.jp/campus/denryoku 講演内容 • • • • • IEEE1888プロトコルの技術 IEEE1888対応装置/ソフト/サービスのイメージ IEEE1888でシステムを組むと IEEE1888 + 3G を Arduinoに実装 お知らせなど 50 3Gシールド + IEEE1888プロトコル 2012年10月 アプリケーション・シールド (用途に応じたものを装着) 3Gシールド 温度センサ Arduino ボード 照度センサ IEEE1888 Storage 見グ えラ るフ 化化 ) IEEE1888/3G 通信 ( デ ー タ 蓄 積 IEEE1888 APP クラウドサービス (IIJ GIO) 54mm 24mm 75mm IEEE1888通信 3G通信 温度・照度センサ シールド 広域インターネット 3G通信 電力センサ(パルス計) シールド 電力メータ 1 2 3 4 5 IEEE1888対応 IEEE1888対応 組込み3G通信モジュール 組込み3G通信モジュール (温度・照度計測の場合) (電力計測の場合) http://www.u-tokyo.ac.jp/public/public01_241001_j.html http://www.iij.ad.jp/news/pressrelease/2012/1001-2.html 51 3Gシールドを搭載した電力センサ 2012年1月 IEEE1888 多回路エネルギー診断メータ 3G対応版 株式会社フタバ企画より製造販売 「見える化サービスが付属した スタータキット有」 52 3Gシールドを搭載した IEEE1888対応の環境センサ 2013年8月 環境センサ ・温度 ・湿度 ・気圧 ・降雨 ・風向 ・風速 Live E!プロジェクトなどで利用 http://www.live-e.org/ 3Gシールド 第二試作準備中 53 IEEE1888+3G通信 のプログラム 3Gシールドを利用するIEEE1888のライブラリ -------------------------------------------------------------- IEEE1888によるデータ送信 54 講演内容 • • • • • IEEE1888プロトコルの技術 IEEE1888対応装置/ソフト/サービスのイメージ IEEE1888でシステムを組むと IEEE1888 + 3G を Arduinoに実装 お知らせなど 55 IEEE1888相互接続試験を開催します • 日時:2013年11月19日 – 20日 • 場所: 東京大学 工2号館 10階 電気系会議室5 • 目的 – 各社の機器同士の接続を確認し、接続実績を作る • 個別実装上の課題、検査仕様上の課題の洗い出しを含む – 各社機器 と 開発中のテスター との間で通信させ • テスターの利用に関する検証 – 使いやすいか、結果表は改善に役立つか • 検査仕様書の内容の検証 – 検査内容が妥当か、検査を通過したもの同士であれば通信が可能か を行う 開催案内: 9月9日以降に http://gutp.jp/ に掲載予定 56 IEEE1888開発ボード・学習キット USB (Command Line, Programming, etc) + 温度、照度センサ + DIP、TGLスイッチ + IEEE1888ソフトウェア + LAN, USB, ACアダプタ インターネット DC power supply (6V~9V) IEEE1888通信ボード(Arduino UNO互換機) ボード単体: 6,900円 学習キット: 13,900円 http://www.futaba-kikaku.jp/ 57 学習キット(組み立て後の様子) 開発者向け情報 http://gutp.jp/fiap/kit.html – ソフトウェア開発キット(SDK) – 参照コード (Java, C) – IEEE1888 Storageソフトウェア – Arduino向けライブラリ(3Gシールド対応版含) IEEE1888 SDK IEEE1888通信ボード (Arduino UNO互換機) 58