Comments
Transcript
i.LON 100 Internet Server プログラマー用 リファレンス
® i.LON 100 Internet Server プログラマー用 リファレンス バージョン 1.0 078-0250-01A Echelon、LON、LonWorks、LonTalk、LonBuilder、LonManager、Neuron、3120、3150、 LONMARK、NodeBuilder、および Echelon のロゴは、米国およびその他の国々での Echelon 社の登録商標です。LonMaker、LNS、および i.LON は、Echelon 社の商標です。 本書の内容の一部または全部を Echelon 社の書面による事前の承諾なしに複製、記 録、送信することは、電子的、機械的、複写、記録、その他のいかなる形式に拘ら ず禁じられています。 Copyright ©2002 by Echelon Corporation. Echelon Corporation 550 Meridian Ave San Jose, CA 95126, USA エシェロン・ジャパン株式会社 〒151-0053 東京都渋谷区代々木 1-58-5 代々木吉野ビル www.echelon.com www.echelon.co.jp ※本書は Echelon Corporation により作成された『i.LON® 100 Internet Server Programmer's Reference』をエシェロン・ジャパン株式会社にて翻訳したものです。 目次 1 1.1 1.2 1.3 はじめに............................................................................................................................... 1-1 本書について ................................................................................................................... 1-1 プログラミングサンプル ................................................................................................. 1-2 はじめに .......................................................................................................................... 1-2 2 SOAP/XML インタフェースを使用したデータポイントの監視と制御 .............................. 2-1 2.1 データポイントの概要..................................................................................................... 2-1 2.2 本章について ................................................................................................................... 2-2 2.2.1 i.LON 100 Data Server の SOAP インタフェース .................................................... 2-2 2.2.2 i.Lon 100 WSDL ファイル ......................................................................................... 2-2 2.2.3 セキュリティ............................................................................................................... 2-2 2.2.4 SOAP メッセージのフォーマット .............................................................................. 2-3 2.3 DataPointWrite .............................................................................................................. 2-6 2.3.1 データポイント値と優先度 ......................................................................................... 2-8 2.4 DataPointRead ............................................................................................................... 2-9 2.5 DataPointResetPriority ............................................................................................... 2-12 2.6 Visual Basic .NET での DataPoint 関数の使用........................................................... 2-13 2.6.1 DataPointWrite........................................................................................................ 2-13 2.6.2 DataPointRead......................................................................................................... 2-13 2.6.3 DataPointResetPriority ........................................................................................... 2-14 2.6.4 プログラミングサンプル........................................................................................... 2-14 3 i.LON 100 のアプリケーションと SOAP/XML インタフェース ........................................ 3-1 3.1 i.LON 100 の XML 構成ファイル ................................................................................... 3-5 3.2 i.LON 100 SOAP インタフェースの概要 ....................................................................... 3-6 3.2.1 i.LON 100 の WSDL ファイル ................................................................................... 3-6 3.2.2 セキュリティ............................................................................................................... 3-7 3.2.3 SOAP メッセージのフォーマット .............................................................................. 3-7 3.3 i.LON 100 のリソースファイル .................................................................................... 3-12 3.3.1 LonMark 標準ネットワーク変数型(SNVT)デバイスのリソースファイル.......... 3-12 3.3.2 標準構成プロパティ型(SCPT)デバイスのリソースファイル .............................. 3-12 3.3.3 ユーザネットワーク変数型(UNVT)デバイスリソースファイル ......................... 3-12 3.3.4 ユーザ構成プロパティ型(UCPT)デバイスのリソースファイル .......................... 3-13 3.4 List、Get、Set、Delete 関数 ....................................................................................... 3-13 3.4.1 List 関数.................................................................................................................... 3-13 3.4.2 Get 関数 .................................................................................................................... 3-14 3.4.3 Set 関数 ..................................................................................................................... 3-14 3.4.4 Delete 関数................................................................................................................ 3-15 3.5 パフォーマンスについて ............................................................................................... 3-15 3.6 作業の前に..................................................................................................................... 3-16 4 Data Server ......................................................................................................................... 4-1 4.1 Data Server の XML ファイル ....................................................................................... 4-3 4.1.1 DP_NVL.XML ............................................................................................................ 4-3 4.1.2 DP_NVC.XML ............................................................................................................ 4-5 4.1.3 DP_NVE.XML ............................................................................................................ 4-6 4.2 Data Server XML ファイルの作成と変更 ...................................................................... 4-7 4.2.1 Data Server の SOAP インタフェース....................................................................... 4-8 5 NVE ドライバ...................................................................................................................... 5-1 5.1 Driver_NVE.XML........................................................................................................... 5-1 5.2 NVE ドライバの構成....................................................................................................... 5-2 5.2.1 NVE SOAP インタフェース ....................................................................................... 5-2 i.Lon 100 Internet Server Programmer’s Reference i 6 データロガー........................................................................................................................ 6-1 6.1 DataLogger.XML............................................................................................................ 6-1 6.2 DataLogger.XML ファイルの作成と変更....................................................................... 6-3 6.2.1 データロガーの SOAP インタフェース ...................................................................... 6-3 7 アラームジェネレータ ......................................................................................................... 7-1 7.1 AlarmGenerator.XML.................................................................................................... 7-1 7.2 AlarmGenerator.XML ファイルの作成と変更............................................................... 7-2 7.2.1 アラームジェネレータの SOAP インタフェース ....................................................... 7-3 8 アラームノーティファイア.................................................................................................. 8-1 8.1 AlarmNotifier.XML........................................................................................................ 8-2 8.2 AlarmNotifier.XML ファイルの作成と変更................................................................... 8-3 8.2.1 アラームノーティファイアの SOAP インタフェース ................................................ 8-4 9 アナログ機能ブロック ......................................................................................................... 9-1 9.1 AnalogFB.XML............................................................................................................... 9-1 9.2 AnalogFB.XML ファイルの作成と変更.......................................................................... 9-2 9.2.1 アナログ機能ブロックの SOAP インタフェース ....................................................... 9-3 10 接続マネージャ .................................................................................................................. 10-1 10.1 ConnectionManager.XML............................................................................................ 10-1 10.2 ConnectionManager.XML ファイルの作成と変更....................................................... 10-2 10.2.1 接続マネージャの SOAP インタフェース ................................................................ 10-2 11 イベントスケジューラ ....................................................................................................... 11-1 11.1 EventScheduler.XML................................................................................................... 11-2 11.2 EventScheduler.XML ファイルの作成と変更.............................................................. 11-3 11.2.1 イベントスケジューラの SOAP インタフェース ..................................................... 11-3 12 イベントカレンダー........................................................................................................... 12-1 12.1 EventCalendar.XML .................................................................................................... 12-1 12.2 EventCalendar.XML ファイルの作成と変更 ............................................................... 12-2 12.2.1 イベントカレンダーの SOAP インタフェース ......................................................... 12-3 13 型変換機能 ......................................................................................................................... 13-1 13.1 TypeTranslator.XML ................................................................................................... 13-1 13.2 TypeTranslator.XML ファイルの作成と変更 .............................................................. 13-3 13.2.1 型変換機能の SOAP インタフェース........................................................................ 13-3 14 型変換ルール...................................................................................................................... 14-1 14.1 型変換ルールの XML ファイル ..................................................................................... 14-1 14.2 型変換ルール用 XML ファイルの作成と変更 ............................................................... 14-2 14.2.1 型変換ルールの SOAP インタフェース .................................................................... 14-3 15 i.LON 100 のフラッシュメモリ ........................................................................................ 15-1 15.1 SystemInfoRead ........................................................................................................... 15-2 16 Web サービスとしての SOAP インタフェースの使用 ...................................................... 16-1 16.1 WSDL ファイルの参照.................................................................................................. 16-1 16.2 プログラミングサンプル ............................................................................................... 16-2 16.2.1 手動による<Data>パラメータの作成....................................................................... 16-2 16.2.2 XMLDocument オブジェクトの使用........................................................................ 16-3 16.2.3 DataSets の使用 ....................................................................................................... 16-6 16.2.4 DataSets のプログラミングサンプル....................................................................... 16-9 17 XML 構成ファイルの手動変更 .......................................................................................... 17-1 17.1 XML ファイルの作成 .................................................................................................... 17-1 17.2 XML ファイルの変更 .................................................................................................... 17-1 17.3 i.LON 100 間での XML ファイルのコピー................................................................... 17-2 ii i.LON 100 Internet Server Programmer’s Reference 1 はじめに i.LON 100 には、高性能マイクロプロセッサと、独自のさまざまなアプリケーションを管理 するリアルタイムのマルチタスクオペレーティングシステムが搭載されています。独自のア プリケーションには、アラーム、スケジュール、およびデータログの処理といった機能があ り、通常は『i.LON 100 Internet Server ユーザガイド』の説明に従って、i.LON 100 構成ソ フトウェアを使用して構成します。『i.LON 100 Internet Server ユーザガイド』では、 i.LON 100 構成ソフトウェアの使用方法に加えて、各種の i.LON 100 アプリケーションに関 する情報やこれらのアプリケーションを構成する際のガイドラインを提供しています。 アプリケーションを構成するもう一つの方法として、i.LON 100 に付属の SOAP(Simple Object Access Protocol)/ XML(Extensible Markup Language)インタフェースを使用す る方法があります。XML は、構造化された文書を使用して Web 上でデータを配信するため の共通フォーマットです。XML によって、開発者はどのようなアプリケーションのデータで も、標準的で一貫した方法で格納することができます。SOAP は各種のアプリケーションや デバイスが、プラットフォームに依存することなく SOAP メッセージを互いに送信すること で、相互に通信するためのインタフェースです。XML は、SOAP のフォーマットとメッ セージの内容を決定します。 各 i.LON 100 アプリケーションの構成は、XML ファイルに格納されます。i.LON 100 は起 動プロセス中に XML ファイルを読み取り、各アプリケーションの XML ファイルに含まれ ている構成データに基づいてアプリケーションの操作パラメータを設定します。 i.LON 100 には各アプリケーションの構成を作成し、管理するためのさまざまな SOAP 関数 が付属しています。これらの関数のいずれかを呼び出すたびに、i.LON 100 に SOAP メッ セージが送信されます。SOAP メッセージの内容は、関数に渡す入力によって変化します。 i.LON 100 はメッセージの内容を読み取り、関連する XML ファイルにコンテンツを書き込 み、アプリケーションの操作パラメータを適切に調整します。これはすべて i.LON 100 の稼 動中に行われます。 本書で説明する XML ファイルには、i.LON 100 アプリケーションの構成が格納されるので あり、アプリケーションが生成したデータが格納されるわけではないことに注意してくださ い。i.LON 100 アプリケーションが生成したデータは i.LON 100 のフラッシュメモリに格納 されます。SOAP/XML インタフェースには、i.LON 100 が使用できるフラッシュメモリの 残量や、フラッシュメモリに書き込みが行われる頻度を判断するための SOAP 関数も備えら れています。 1.1 本書について 本書では、i.LON 100 アプリケーションの構成を格納する XML ファイル、および各ファイ ルを管理する SOAP 関数について説明します。i.LON 100 に付属の SOAP インタフェース は、SOAP 1.1 が提唱している推奨基準に準拠しています。 http://www.w3.org/TR/2000/NOTE-SOAP-20000508 本書では、XML 構成ファイルを手動で作成および変更することで、i.LON 100 アプリケー ションを構成する方法についても説明します。作成した XML ファイルを、FTP を経由して i.LON 100 にダウンロードすることができます。i.LON 100 はダウンロードされたファイル を読み取り、次回の再起動時にその操作パラメータを適切に調整します。 ファイルは任意の XML エディタまたは ASCII テキストエディタで作成または変更できます。 本書は、i.LON 100 の XML 構成ファイルを作成するときに使用できる例や、これらのファ イルを i.LON 100 にダウンロードするときの手順を掲載しています。i.LON 100 アプリケー ションが使用する XML ファイルは XML 1.0 の推奨基準に準拠しています。 http://www.w3.org/TR/2000/REC-xml-20001006 i.Lon 100 Internet Server Programmer’s Reference 1-1 Echelon 社では、SOAP インタフェースを使用して i.LON 100 のアプリケーションを構成す ることを強くお勧めします。i.LON 100 は SOAP メッセージに書き込まれるすべてのデータ のエラーチェックを実行するため、無効なデータが XML ファイルに書き込まれることはあ りません。FTP 経由で i.LON 100 にダウンロードされた XML ファイルはエラーチェックが 実行されないため、手動で XML ファイルを編集すると、起動プロセス中にエラーが発生す る場合があります。また、SOAP メッセージは i.LON 100 の動作中に i.LON 100 に送信す ることができます。これによって i.LON 100 は再起動を必要とせずに、SOAP メッセージに 関連付けられている XML ファイルを更新します。 複数の i.LON 100 を使用していて、同じ構成をすべての i.LON 100 で使用する場合は、 XML ファイルを手動で作成し、管理する方法が役に立ちます。この場合、i.LON 100 を 1 つ構成し、XML ファイルをコピーし、コピーしたファイルを他の i.LON 100 の適切なディ レクトリにダウンロードして、すべての i.LON 100 に同じ構成を適用します。 1.2 プログラミングサンプル 本書では、概念をわかりやすく示すために、Microsoft Visual Basic .NET ®で作成したプロ グラミングサンプルを掲載しています。理解を助けるため、これらのサンプルは簡潔に表示 されています。エラーチェック部分は省略されており、コードの一部分だけがサンプルに含 まれているため、エラーや警告を発生してしまう場合があることに注意してください。 1.3 はじめに 本書で説明している SOAP 関数と XML ファイルは、ほとんどが SOAP/XML インタフェー スを使用して i.LON 100 のアプリケーションを構成するか、i.LON 100 のフラッシュメモリ の使用率を監視することを目的としています。これらの目的に使用できる SOAP 関数や XML ファイルについては、第3章「i.LON 100 のアプリケーションと SOAP/XML インタ フェース」を参照してください。 ただし i.LON 100 の SOAP/XML インタフェースには、制御ネットワーク用に作成したデー タポイントを LONMAKER および i.LON 100 構成ソフトウェアを使用して監視・制御する アプリケーションを作成するための関数も含まれています。このようなアプリケーションは、 LONMAKER および i.LON 100 構成ソフトウェアのみを使用して i.LON 100 のアプリケー ションを構成するユーザはもちろんのこと、すべての i.LON 100 ユーザが利用できます。こ れらの関数の詳細については、第2章「SOAP/XML インタフェースを使用したデータポイン トの監視と制御」を参照してください。 1-2 i.LON 100 Internet Server Programmer’s Reference 2 SOAP/XML インタフェースを使用したデータポイントの監視 と制御 SOAP/XML インタフェースを使用して i.LON 100 のアプリケーションを構成するかどうか にかかわらず、i.LON 100 ユーザは SOAP/XML インタフェースを利用することができます。 SOAP インタフェースには、i.LON 100 に定義されているデータポイントの値を読み書する ための関数が含まれています。これらの関数が i.LON 100 アプリケーションの構成に影響を 及ぼすことはありません。これらの関数を使用すると、i.LON 100 に接続されている制御 ネットワーク内のデータを監視するアプリケーションを作成することができます。 ここでは、データポイント、およびデータポイント値の読み書きを行う関数を簡単に紹介し ます。各関数の構文や、Microsoft Visual Basic .NET で作成したプログラミングサンプルも 掲載しています。 注:ここで説明する関数は、一度に 1 つのデータポイント値の読み取りおよび書き込みしか できません。このような関数を使用して短期間に複数のデータポイントの読み書きを行うと、 不要なネットワークトラフィックが生成されることがあります。Data Server SOAP インタ フェースには、一度に複数のデータポイントの読み取りまたは書き込みができる関数が含ま れています。これらの関数については第4章「Data Server」で説明します。ただし、第4章で 説明する関数を使用する前に、第3章「i.LON 100 のアプリケーションと SOAP/XML インタ フェース」をお読みください。 2.1 データポイントの概要 i.LON 100 はデータポイントという概念を使用して、論理名を i.LON 100 のシステム変数、 i.LON 100 LonTalk インタフェースで定義されるネットワーク変数、および明示的にアドレ ス指定したネットワーク変数にマッピングします。この方法は異なる種類の制御ネットワー クのデータの処理にも応用することができ、使用可能なバスのドライバが増えるにつれて、 利用範囲が拡大します。 データポイントを使用することにより、i.LON 100 アプリケーションおよび Web サーバは、 いかなる種類のネットワークからの情報も通常の方法でオープンに処理することができます。 処理できるデータには、LNS により管理されたネットワークにおけるネットワーク変数の最 新値や、LNS を使わない閉じた LONWORKS システムにセルフインストールされているノー ドのネットワーク変数などがあります。 i.LON 100 には次の 3 種類のデータポイントがあります。 • i.LON 100 のローカルネットワーク変数用の NVL データポイント • 定数値を保持する i.LON 100 システム変数用の NVC データポイント • i.LON 100 のリモートデバイス上のネットワーク変数用の NVE データポイント i.LON 100 Data Server は、さまざまなアプリケーションがリクエストするデータポイント の情報をすべて処理します。この情報には、データポイント値をポーリングする頻度、デー タポイントの既定値、ハートビート、現在のステータス、および最新の値などがあります。 Data Server 層では、ネットワークの種類またはデバイスの種類にかかわらず、データポイ ントはすべて同じプロパティのセットを備えています。これは、データポイント型ごとにド ライバが存在するためです。これらのドライバは i.LON 100 Data Server と、各データポイ ントのローカルネットワーク間の通信をすべて処理します。i.LON 100 上の各ドライバは、 データポイントの型に合わせた標準ネットワーク管理ツールを使用して構成する必要があり ます。 たとえば、i.LON 100 上の NVL ポイントを構成するには、LNS ベースのネットワーク管理 ツールを使用します。ドライバと Data Server 間の抽象化層では、あらゆる型およびあらゆ i.Lon 100 Internet Server Programmer’s Reference 2-1 るデバイスからのデータポイントを同じように使用するための機能をすべての i.LON 100 ア プリケーションに提供します。 データポイントごとに Data Server に格納される最も重要なプロパティの 1 つに <UCPTvalue>プロパティがあります。このプロパティにはデータポイントの最新値が含ま れています。このプロパティは Data Server によってリアルタイムで更新され、本章で説明 する関数を使用して読み取りや書き込みを実行します。 2.2 本章について ここでは、ネットワーク内のデータポイント値を読み書きする各関数の構文について説明し ます。また、これらの関数を使用したアプリケーションの例として、Microsoft Visual Basic .NET で作成したコードサンプルも掲載しています。 データポイントの関数を使用する前に、本節に目を通すことをお勧めします。本節では i.LON 100 WSDL(Web Service Description Language)ファイル、SOAP/XML インタ フェースに付属しているセキュリティの機能、および本章で説明する関数が呼び出されたと きに i.LON 100 に送信される SOAP メッセージのフォーマットについて説明します。 注:データポイント値の読み取りおよび書き込みには Data Point 関数を使用します。これら の関数を使用するには、まずデータポイントを作成し、Data Server に追加する必要がありま す。NVL データポイントを作成するには LONMAKER を使用します。NVE および NVC データ ポイントを作成するには i.LON 100 構成ソフトウェアまたは SOAP インタフェースを使用し ます。 SOAP インタフェースを使用したデータポイントの作成の詳細については、第4章「Data Server」を参照してください。SOAP インタフェースを使用してデータポイントを作成する 際は、まず第3章「i.LON 100 のアプリケーションと SOAP/XML インタフェース」をお読み ください。i.LON 100 の構成ソフトウェアの詳細ついては、『i.LON 100 Internet Server ユーザガイド』を参照してください。 2.2.1 i.LON 100 Data Server の SOAP インタフェース 前項で説明したとおり、i.LON 100 Data Server は、i.LON 100 アプリケーションがリクエ ストするデータポイントの情報をすべて管理します。情報にはデータポイントの最新値が含 まれます。本章で説明する関数を使用すると、複数のプロパティの読み書きを、一度に 1 つ のデータポイントごとに実行することができます。 2.2.2 i.Lon 100 WSDL ファイル 各 i.LON 100 には WSDL(Web Service Description Language)ファイルが含まれていま す。このファイルは i.LON 100 の SOAP インタフェースを定義し、アプリケーションが SOAP インタフェースにアクセスするために必要な情報をすべて含んでいます。SOAP イン タフェースを使用するアプリケーションを作成するときは、WSDL ファイルを参照する必要 があります。WSDL ファイルは Microsoft Visual Studio .NET ®をはじめとする数多くのプ ログラミング開発環境と互換性があります。 WSDL ファイルの詳細については、第16章「Web サービスとしての SOAP インタフェース の使用」を参照してください。第16章には、Microsoft Visual Basic .NET プロジェクトで WSDL ファイルを参照する方法をステップをふんで説明しています。 2.2.3 セキュリティ i.LON 100 Web Server Security and Parameters ユーティリティを使用すると、基本レベル のセキュリティを、i.LON 100 SOAP/XML インタフェースに追加することができます。こ のユーティリティを使用すると、i.LON 100 が配信する Web コンテンツすべてにパスワード 2-2 i.LON 100 Internet Server Programmer’s Reference 保護を追加することができます。i.LON 100 Web サーバが HTTP トランザクション用に使 用するセキュリティは基本アクセス認証です。これについては IETF の RFC 2617 で説明し ています。 http://www.ietf.org/rfc/rfc2617.txt i.LON 100 に送信される SOAP メッセージをすべて認証するには、i.LON 100 Web Server Security and Parameters ユーティリティを使用して、Web サーバの /WSDL/iLON100.WSDL のパスにある i.LON 100 WSDL ファイルをパスワード保護します。 これによって、SOAP メッセージが i.LON 100 に送信されるたびに、ユーザ名とパスワード が要求されます。SOAP はトランスポートに HTTP を使用するため、ユーザ名とパスワード のペアを HTTP セッション全体に使用します。その結果、1 組のユーザ名とパスワードだけ で複数の SOAP メッセージを送受信することができます。正しいユーザ名とパスワードを格 納していない i.LON 100 に SOAP メッセージが送信された場合、そのメッセージは無視さ れます。i.LON Web Server Security and Parameters ユーティリティの使用方法について は、『i.LON 100 Internet Server ユーザガイド』の第 13 章を参照してください。 XML 構成ファイルへの FTP アクセスを保護するために、i.LON 100 では FTP セッションご とにユーザ名とパスワードを要求します。このユーザ名とパスワードは既定では“ilon”になっ ていますが、i.LON 100 Security Web ページで変更可能です。このページの使用方法につい ては、『i.LON 100 Internet Server ユーザガイド』を参照してください。 2.2.4 SOAP メッセージのフォーマット ここでは、Data Point 関数のいずれかを呼び出したときに i.LON 100 に送信される SOAP メッセージのフォーマットについて説明します。また、これらの関数が返す応答 SOAP メッ セージのフォーマットについても説明します。 2.2.4.1 入力メッセージ 次のコード例は、Data Point 関数のいずれかを呼び出したときに i.LON 100 に送信される SOAP メッセージの基本的なフォーマットを表したものです。 <?xml version="1.0" encoding="UTF-8" standalone="no" ?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAPENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <echelon:FunctionName: xmlns:echelon="http://wsdl.echelon.com/web_services_ns/ilon100/v1.0/"> <InputParameter1>Data<InputParameter1> <InputParameter2>Data</InputParameter2> </echelon:FunctionName> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 2.2.4.1.1 入力パラメータ Data Point 関数を呼び出したときに i.LON 100 に送信される SOAP メッセージのボディの 重要な部分に入力データパラメータがあります。上の例では、SOAP ボディ内に <InputParameter1>および<InputParameter2>という 2 つのエレメントが含まれています。 つまり、Data Point 関数を呼び出すときに 2 つの異なるパラメータを入力として渡す必要が あることを表します。 上のサンプルは、2 つの入力データパラメータを示していますが、各 DataPoint 関数を呼び 出すときに渡す必要のあるパラメータはそれぞれ異なります。DataPoint 関数の中には入力 パラメータが 1 つだけ必要なものと、さらに多くのパラメータを必要とするものがあります。 ここでは、DataPointRead、DataPointWrite、および DataPointResetPriority 関数を呼び 出すときに入力として渡す必要のある各パラメータを示し、それについて説明します。 i.Lon 100 Internet Server Programmer’s Reference 2-3 2.2.4.1.2 SOAP ヘッダ 上に示す入力メッセージの残りの部分は、SOAP エンベロープと SOAP ヘッダを表します。 i.LON 100 に送信される SOAP メッセージのヘッダは W3C SOAP 1.1 で提唱されている次 の推奨基準に準拠していなければなりません。 http://www.w3.org/TR/2000/NOTE-SOAP-20000508/ 関数名は SOAP ヘッダの一部として渡され、“Echelon”というプレフィックス文字列が付け られます。i.LON 100 のすべての関数について、バージョン 1.0 のネームスペース URI を関 数名エレメントの属性として送信します。バージョン 1.0 の SOAP インタフェースにおける i.LON 100 ネームスペース URI は次のとおりです。 http://wsdl.echelon.com/web_services_ns/ilon100/v1.0/ バージョン 1.0 の i.LON 100 SOAP インタフェースでは、i.LON 100 はネームスペース URI を無視します。ただし、このネームスペース URI を入力メッセージ内に格納して渡すことで、 バージョンとプラットフォームの互換性情報を送信先のサーバに送信することができます。 i.LON 100 は、応答メッセージ中に必ずこの情報を含めて送信するため、送信先のツールは ネームスペース識別子を使用して SOAP インタフェースのバージョンとプラットフォームを 確認できます。 2.2.4.2 応答メッセージ 次のコードは、Data Point 関数のいずれかを呼び出したときに i.LON 100 が返す SOAP メッセージの基本的なフォーマットを表したものです。 <?xml version="1.0" encoding="UTF-8" standalone="no" ?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <echelon:DataPointReadResponse xmlns:echelon="http://wsdl.echelon.com/web_services_ns/ilon100/v1.0/message/ "> <Result> <UCPTpointName>NVL_nvo03Switch</UCPTpointName> <UCPTlocation>MainBuilding\First Floor\Meetingroom\Light<UCPTlocation> <UCPTpointUpdateTime>2001-0724T01:47:22.000+02:00</UCPTpointUpdateTime> <UCPTvalue>0.0 0</UCPTvalue> <UCPTvalueDef>OffValue</UCPTvalueDef> <UCPTunit&>% of full level,state code</UCPTunit> <UCPTpointStatus>AL_NO_CONDITION</UCPTpointStatus> <UCPTpriority>250</UCPTpriority> <UCPTformatDescription>SNVT_switch<UCPTformatDescription> <UCPTbaseType>BT_STRUCT</UCPTbaseType> </Result> </echelon:DataPointReadResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> i.LON 100 に送信される SOAP メッセージのフォーマットと i.LON 100 が返す SOAP メッ セージのフォーマットの主な違いは、SOAP ボディ内に含まれる<Result>エレメントです。 <Result>エレメントには子エレメントが含まれており、各子エレメントには、関数に関連付 けられているデータポイントのプロパティの最新値が含まれています。 上のサンプルは、DataPointRead 関数が返す<Result>エレメントを表しています。他の Data Point 関数が返す結果文字列のサンプルは、本章で後述します。 2-4 i.LON 100 Internet Server Programmer’s Reference 2.2.4.3 SOAP のエラー応答 次のコード例は、ユーザが関数に渡した入力がエラーを発生した場合に i.LON 100 が返す SOAP メッセージの基本的なフォーマットを表したものです。 <?xml version="1.0" encoding="UTF-8" standalone="no" ?> <SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAPENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <SOAP-ENV:Fault> <SOAP-ENV:faultcode>ErrorCode</SOAP-ENV:faultcode> <SOAP-ENV:faultstring>ErrorMessage</SOAP-ENV:faultstring> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope> このサンプルでは、<SOAP-ENV:faultcode>エレメントに ErrorCode という値が含まれ ています。これは、関数が返すエラーコードを表します。次の<SOAP-ENV:faultstring> エレメントには ErorrMessage という値が含まれています。これは、関数が返すエラー コードの説明を表します。サンプルの残りの部分は、i.LON 100 SOAP インタフェース内の 関数がエラーを返す場合、各エラーメッセージに含まれる SOAP ヘッダを表します。 表 1は、i.LON 100 の SOAP インタフェースが返すエラーコードとメッセージを一覧表示し たものです。 表1 SOAP エラーコード エラー コード エラーメッセージ 0 エラーなし。 1 未知の関数呼び出し。 2 パラメータエラー。たとえば、関数に渡した入力に有効なデータが含まれていな いか、関数にデータが渡されていない場合などです。 3 XML/パーサーエラー。 4 タグが欠けています。 5 インデックスが欠けています。 6 インデックスが見つかりません。 7 無効なインデックスです。 関数に渡したインデックス番号が、アプリケーションに許可されている最大値よ りも大きいか、最小値よりも小さくなっています。i.LON 100 で認められている インデックス番号の範囲は–32,768∼32,767 です。 8 作成できません。このエラーはデータポイントを作成しようとしたときに発生す る場合があります。 9 削除できません。このエラーはデータポイントを削除しようとしたときに発生す る場合があります。 10 設定できません。このエラーは i.LON 100 内の既存の項目の構成を変更しようと したときに発生する場合があります。たとえば、データポイントの構成への書き 込みを実行しようとしたときに発生します。 11 フォーマットエラー。 i.Lon 100 Internet Server Programmer’s Reference 2-5 エラー コード エラーメッセージ 12 コマンドの失敗。 13 関数の呼び出しで参照されているデータポイント名が、指定したインデックス番 号を使用していません。 14 データポイント名が i.LON 100 Data Server 内に見つかりません。 15 データなし。 16 フィールド名が見つかりません。これは、構造体のデータポイントの読み取り、 書き込み、または設定を試みたときに、存在しない構造体フィールドを参照した 場合に発生します。 2.3 DataPointWrite DataPointWrite 関数を使用すると、ネットワーク内の任意のデータポイントに値を書き込 むことができます。変更するデータポイントは、i.LON 100 Data Server でデータポイント に割り当てられている名前(UCPTpointName)を使用して参照し、関数の入力として渡す 必要があります。データポイントの<UCPTpointName>は、データポイントを作成し、 i.LON 100 Data Server に追加するときに設定されます。データポイントを作成するには、 i.LON 100 構成ソフトウェアまたは DataServerSet 関数を使用します。 DataServerSet 関数については、第4章「Data Server」で説明します。ただし、この関数を 使用する前に、第3章「i.LON 100 のアプリケーションと SOAP/XML インタフェース」をお 読みください。i.LON 100 構成ソフトウェアでデータポイントを作成する方法については、 『i.LON 100 Internet Server ユーザガイド』を参照してください。 データポイントが構造体の場合には、関数が値を書き込むフィールド(UCPTfieldName) を指定します。「表 2」では、この関数に入力として渡す必要のある残りのパラメータにつ いて説明しています。 以下のサンプルは、DataPointWrite を呼び出したときに入力パラメータがどのように SOAP メッセージに挿入されるかを示しています。この関数を呼び出し、SOAP メッセージ にデータを挿入する例として、Microsoft Visual Basic .NET で作成したプログラミングサン プルも掲載しています。2-13ページの「Visual Basic .NET での DataPoint 関数の使用」を 参照してください。 注:この関数は、一度に 1 つのデータポイント値しか書き込むことができませんが、 DataServerWrite 関数を使用すると、複数のデータポイントの値を一度に書き込むことがで きます。DataServerWrite 関数については第4章「Data Server」で説明します。ただし、この 関数を使用する前に、第3章「i.LON 100 のアプリケーションと SOAP/XML インタフェー ス」をお読みください。 入力パラメータ <UCPTpointName>NVL_nvo01Switch</UCPTpointName> <UCPTfieldName>value</UCPTfieldName> <UCPTvalueDef>100.0</UCPTvalueDef> <UCPTpriority>25</UCPTpriority> <UCPTpropagate>1</UCPTpropagate> リターンパラメータ <Result> <UCPTpointName>NVL_nvo01Switch</UCPTpointName> <UCPTfieldName>value</UCPTfieldName> </Result> 2-6 i.LON 100 Internet Server Programmer’s Reference 表 2では、DataPointWrite 関数を呼び出すときに入力として渡す必要のあるプロパティにつ いて説明しています。この関数は、書き込み先のデータポイントの名前を返します。 表2 DataPointWrite の入力プロパティ プロパティ <UCPTpointName> 説明 書き込み先のデータポイントの<UCPTpointName>を入力します。 名前は次のプレフィックスで始めます。 • NVL データポイントの場合は NVL_ • NVE データポイントの場合は NVE_ • NVC データポイントの場合は NVC_ 注:NVL データポイントに割り当てられる名前は、NVL_[NAME]の命 名規則に従います。ここで、[NAME]は NV を LONMAKER で作成した ときに割り当てられたプログラミング名を表します。 たとえば、LONMAKER で作成した NV のプログラミング名が nvo01Switch_001 の場合、<UCPTpointName>は NVL_nvo01Switch となります。LONMAKER で作成した NV のプロ グラミング名は、名前を右クリックして Properties を選択すること で確認できます。 <UCPTfieldName> フィールド名。データポイントが構造体でないか、構造体全体に書き 込みが行われる場合には、指定する必要はありません。 注:このプロパティを定義する場合、<UCPTvalueDef>プロパティに は既に定義された値ではなく、データポイントに割り当てられる実際 の値のみを含めます。 <UCPTvalueDef> 値の定義(<UCPTfieldName>プロパティが指定されていない場合) またはデータポイントに割り当てられる実際の値を入力します。入力 する値のフォーマットは、書き込まれるデータポイントのフォーマッ トの種類に一致させる必要があります。 値の定義は、プリセット値を表す文字列です。この値はデータポイン トのフォーマットの種類に一致させる必要があります。データポイン トの値を定義するには i.LON 100 構成ソフトウェアまたは DataServerSet SOAP 関数を使用します。 <UCPTpriority> データポイントに割り当てられている優先度を入力します。優先度は 0(最高優先度)∼255(最低優先度)の範囲の整数で指定します。 アプリケーションがデータポイントの値を更新するには、選択した優 先度が、このデータポイントに最後に書き込みを行ったときの優先度 と同じかそれより高くなければなりません。優先度が定義されていな い場合は、255 の既定値が使用されます。 優先度の詳細については、2-8ページの「データポイント値と優先 度」を参照してください。 i.Lon 100 Internet Server Programmer’s Reference 2-7 プロパティ <UCPTpropagate> 説明 0 または 1 を指定します。既定値の 1 を<UCPTpropagate>プロパ ティに割り当てた場合、データポイント値への変更は、ネットワーク 全体に伝達されます。このプロパティに 0 を割り当てた場合、変更は i.LON 100 Data Server に反映されますが、ネットワーク全体には反 映されません。 これは、DataPointWrite を個別に呼び出して、構造体の各フィール ドに書き込みを行い、すべてのフィールドに書き込みが行われるまで ネットワーク上でこの構造体を更新しないようにする場合に役立ちま す。 2.3.1 データポイント値と優先度 前項で説明したとおり、DataPointWrite 関数ではデータポイントへの書き込みを行う際の 優先度を指定する必要があります。データポイントの値を更新するには、このデータポイン トに最後に書き込みを行ったときの優先度よりも高いレベルを指定します。 たとえば、SOAP アプリケーションが DataPointWrite 関数を使用して NVL_nvoValue とい うデータポイントの値を書き込む場合、NVL_nvoValue の値に書き込みを行った最後のアプ リケーションは、データポイントの更新時に 75 の優先度を使用したと仮定します。その場 合、現在のアプリケーションがこのデータポイントの新しい値を書き込むには、0∼75 の範 囲の優先度を使用する必要があります。 データポイントの優先度を使用すると、複数のアプリケーションが同じデータポイントを更 新しようとしたときに、特定のアプリケーションを優先させることができます。表 3では、 さまざまなアプリケーションが 1 つのデータポイントの値に書き込みを行う一連のイベント を示しています。各イベントごとに、使用した優先度、および更新が正常に行われるかどう かとその理由を示しています。データポイントの優先度をアプリケーションに適用させて、 データポイントを正しく更新する方法を理解してください。 表3 イベント 起動 データポイントの優先度と値 優先度 255 操作結果 データポイントの値が更新されます。 イベントスケジューラによ 240 るデータポイントの更新 イベントスケジューラが使用する優先度は起動中の データポイントに割り当てられている優先度より高い ため、データポイントの値が更新されます。 カスタムアプリケーション 75 による DataPointWrite の 呼び出し DataPointWrite の呼び出しに使用する優先度はイベ ントスケジューラによってデータポイントに割り当て られている優先度より高いため、データポイントの値 が更新されます。 イベントスケジューラによ 240 るデータポイントの更新 イベントスケジューラが使用する優先度はデータポイ ントを更新するために最後のアプリケーションが使用 した優先度よりも低いため、データポイントの値は更 新されません。 2-8 i.LON 100 Internet Server Programmer’s Reference イベント 優先度 カスタムアプリケーション 255 による DataPointResetPriority の 呼び出し 操作結果 カスタムアプリケーションが DataPointResetPriority 関数を呼び出して、データ ポイントに割り当てられている優先度をリセットしま す。これによって、データポイントの値が変更される ことはありませんが、データポイントに割り当てられ ている優先度が最低の優先度である 255 にリセット されます。この時点で、すべてのアプリケーションが このデータポイントに書き込めるようになります。 DataPointResetPriority 関数の詳細については、212ページの「DataPointResetPriority」を参照してく ださい。 イベントスケジューラによ 240 るデータポイントの更新 ここで使用される優先度(240)は DataPointResetPriority 関数によって割り当てられ た優先度より高いため、イベントスケジューラがデー タポイントの値を更新します。 2.4 DataPointRead DataPointRead 関数を使用すると、データポイントに割り当てられている最新の値、および データポイントのプロパティ値を取得できます。この関数は、ネットワーク内の任意のデー タポイントを読み取ることができます。 値を読み取るデータポイントは、以下の例のように、関数に渡す入力内で名前 (UCPTpointName)で参照する必要があります。データポイントが構造体の場合には、オ プションの<UCPTfieldName>プロパティを指定することで、値を取得するフィールドを指 定できます。 以下のサンプルは、DataPointRead の呼び出し時に i.LON 100 に送信される SOAP メッ セージに入力パラメータがどのように挿入されるかを示しています。この関数を呼び出し、 SOAP メッセージに挿入する例として、Microsoft Visual Basic .NET で作成したプログラミ ングサンプルも掲載しています。2-13ページの「Visual Basic .NET での DataPoint 関数の 使用」を参照してください。 注:この関数は一度に 1 つのデータポイント値しか読み取ることができませんが、 DataServerRead 関数を使用すると、一度に複数のデータポイント値を読み取ることができ ます。DataServerRead 関数については、第4章「Data Server」で説明します。ただし、この 関数を使用する前に、第3章「i.LON 100 のアプリケーションと SOAP/XML インタフェー ス」をお読みください。 入力パラメータ <UCPTpointName>NVL_nvo03Switch</UCPTpointName> <UCPTfieldName>state</UCPTfieldName> i.Lon 100 Internet Server Programmer’s Reference 2-9 リターンパラ メータ <Result> <UCPTpointName>NVL_nvo03Switch</UCPTpointName> <UCPTfieldName>state</UCPTfieldName> <UCPTlocation>MainBuilding\First Floor\Meetingroom\Light<UCPTlocation> <UCPTpointUpdateTime>2001-0724T01:47:22.000+03:00</UCPTpointUpdateTime> <UCPTvalue>1</UCPTvalue> <UCPTvalueDef></UCPTvalueDef> <UCPTunit></UCPTunit> <UCPTpointStatus>AL_NO_CONDITION</UCPTpointStatus> <UCPTpriority>250</UCPTpriority> <UCPTformatDescription>SNVT_switch<UCPTformatDescription> <UCPTbaseType>BT_STRUCT</UCPTbaseType> </Result> 表 4では、DataPointRead 関数が<Result>パラメータに返すプロパティについて説明してい ます。<UCPTpointName>プロパティと<UCPTfieldName>プロパティも<Data>パラメー タ内で入力として渡されることに注意してください。 表4 DataPointRead の出力プロパティ プロパティ <UCPTpointName> 説明 値を読み取るデータポイントの<UCPTpointName>を入力し ます。名前は次のプレフィックスで始めます。 • NVL データポイントの場合は NVL_ • NVE データポイントの場合は NVE_ • NVC データポイントの場合は NVC_ 注:NVL データポイントに割り当てられる名前は、 NVL_[NAME]の命名規則に従います。ここで、[NAME]はデー タポイントを LONMAKER で作成したときに NV に割り当てられ たプログラミング名を表します。 たとえば、LONMAKER で作成した NV のプログラミング名が nvo01Switch_001 の場合、<UCPTpointName>は NVL_nvo01Switch になります。LONMAKER で作成した NV のプログラミング名は、名前を右クリックして Properties を 選択することで確認できます。 <UCPTfieldName> 値を読み取るデータポイントフィールドの名前。データポイン トが構造体でない場合、このプロパティを指定する必要はあり ません。定義する場合、<UCPTvalueDef>プロパティは <Result>パラメータには含まれません。 <UCPTlocation> 128 文字までの英数字から成る文字列で、データポイントの場 所を記述します。このユーザ定義プロパティは、データポイン トの作成時に定義されます。これを使用すると、データポイン トを物理的な場所またはデバイスごとに管理できます。 2-10 i.LON 100 Internet Server Programmer’s Reference プロパティ <UCPTpointUpdateTime> 説明 データポイントの値が最後に更新された時刻を示すタイムスタ ンプ。このタイムスタンプはローカル時間で表され、ローカル 時間と協定世界時(UTC)との時差を示す時間帯インジケー タが付加されます。UTCは、以前はグリニッジ標準時 (GMT)と一般的に呼ばれていたものを示す現在の用語で す。0時間のUTCは、ゼロ度の経線上にあるイギリスのグリ ニッジにおける深夜0時を表します。協定世界時は24時間制に 基づいているため、4 pmなどの午後の時間は16:00 UTCと表 されます。タイムスタンプは次のフォーマットを使用します。 [YYYY-MM-DD]T[HH:MM:SS.MSS]+/-[HH:MM] タイムスタンプの最初のセグメント[YYYY-MM-DD]は日付を 表します。2番目のセグメント(T[HH:MM:SS.MSS])はロー カル時間を時、分、秒、ミリ秒で表します。3番目のセグメン ト(+/-[HH:MM])は2番目のセグメントに表示されている ローカル時間とUTCとの時差を表します。このセグメントは+ または-で始まります。+はローカル時間がUTCより進んでい ることを示し、-はローカル時間がUTCより遅れていることを 示します。 例:2002-08-13T10:24:37.111+02:00 このタイムスタンプは、ローカル日時が2002年8月13日の午前 10時24分、37.111秒であることを示しています。3番目のセグ メントは+02:00となっているため、このローカル時間はUTC より2時間進んでいることがわかります。 <UCPTvalue> データポイントに現在割り当てられている値。 <UCPTvalueDef> データポイントが使用する値の定義。データポイントが値の定 義を使用していないか、関数に渡した入力に <UCPTfieldName>プロパティを定義している場合、この フィールドは空白になります。 値の定義は、データポイントのプリセット値を表すユーザ定義 文字列です。たとえば、ON という名前の SNVT_switch デー タポイント値の定義には、“100.0 1”などを割り当てます。 データポイント値の定義を作成するには DataServerSet 関数 または i.LON 100 構成ソフトウェアを使用します。 <UCPTunit> データポイントの単位の種類。このプロパティは、データポイ ントのネットワーク変数型によって決まります。 <UCPTpointStatus> データポイントの現在のステータス。このプロパティは、 Data Server によってリアルタイムで更新され、i.LON 100 で アラームジェネレータやアラームノーティファイアを設定する ときに使用します。アラームジェネレータやアラームノーティ ファイアを作成するには i.LON 100 構成ソフトウェアまたは SOAP インタフェースを使用します。SOAP インタフェースを 使用したアプリケーションの作成の詳細については、第 7 章と 第 8 章を参照してください。 i.Lon 100 Internet Server Programmer’s Reference 2-11 プロパティ 説明 <UCPTpriority> データポイントに割り当てられている優先度。データポイント の優先度を設定するには DataPointWrite 関数または DataPointResetPriority 関数を使用します。優先度の詳細に ついては、2-8ページの「データポイント値と優先度」を参照 してください。 <UCPTformatDescription> データポイントのフォーマットに関する記述。データポイント の値の型やベース型など、データポイントに関する多くのエレ メントを決定します。これには、i.LON 100 のリソースファイ ルに含まれている標準(SNVT)フォーマットタイプを使用す ることも、ユーザ定義(UNVT)のフォーマットタイプを i.LON 100 にアップロードして使用することもできます。 i.LON 100 のリソースファイルの詳細については、3-12ページ の「i.LON 100 のリソースファイル」を参照してください。 i.LON 100 リソースファイルに含まれている SNVT フォー マットタイプの説明は、SNVT Master List で参照することが できます。PDF 版は次の Echelon 社の Web サイトからダウン ロードできます。 http://www.echelon.com/support/documentation/Manuals/ <UCPTbaseType> データポイントの<UCPTformatDescription>に基づいてデー タポイントに自動的に割り当てられる読み取り専用のプロパ ティです。これは、i.LON 100 の BAS_Controller リソース ファイル内の base_type_t 列挙型の定義に従って、データポイ ントのベース型を定義します。 i.LON 100 リソースファイルの詳細については、3-12ページの 「i.LON 100 のリソースファイル」を参照してください。 2.5 DataPointResetPriority DataPointResetPriority 関数を使用すると、データポイントの優先度を最低優先度の 255 に リセットすることができます。これによって、どのアプリケーションでもデータポイントの 値を書き込むことができるようになります。 データポイントの優先度をリセットするには、関数に渡す入力内の<UCPTpointName>で、 リセットしたいデータポイントを参照し、データポイントに現在割り当てられているものと 同じかそれ以上の優先度を指定する必要があります。その場合にのみ、データポイントに割 り当てられている優先度がリセットされます。 たとえば、データポイントに現在割り当てられている優先度が 30 であるとすると、入力に は 0∼30 の範囲の優先度を指定する必要があります。データポイントの優先度の詳細につい ては、2-8ページの「データポイント値と優先度」を参照してください。 以下のサンプルは、DataPointResetPriority を呼び出したときに i.LON 100 に送信される SOAP メッセージに入力パラメータがどのように挿入されるかを示しています。この関数を 呼び出し、以下に示すように SOAP メッセージにデータを挿入する例として、Microsoft Visual Basic .NET で作成したプログラミングサンプルを掲載しています。2-13ページの 「Visual Basic .NET での DataPoint 関数の使用」を参照してください。 注:この関数では、一度に 1 つのデータポイントの優先度しかリセットできませんが、 DataServerResetPriority 関数を使用すると、一度に複数のデータポイントの優先度をリセッ トすることができます。DataServerResetPriority 関数については、第4章「Data Server」で 2-12 i.LON 100 Internet Server Programmer’s Reference 説明します。ただし、この関数を使用する前に第3章「i.LON 100 のアプリケーションと SOAP/XML インタフェース」をお読みください。 入力パラメータ リターンパラメータ <UCPTpointName>NVL_nvo01Switch</UCPTpointName> <UCPTpriority>25</UCPTpriority> <Result>NVL_nvo01Switch<Result> 2.6 Visual Basic .NET での DataPoint 関数の使用 DataPoint 関数は、i.LON 100 WSDL ファイルを参照することで、Microsoft Visual Basic .NET などの開発環境から呼び出すことができます。第16章「Web サービスとしての SOAP インタフェースの使用」では、Microsoft Visual Basic .NET で i.LON 100 WSDL ファイルを参照する方法について説明しています。 ここでは、これらの関数を呼び出すときに使用する構文について説明し、Visual Basic .NET で作成した、各関数を呼び出すコードサンプルを掲載します。 2.6.1 DataPointWrite 構文: 構文:return=ilonWebReference.DataPointWrite(UCPTpointName As String, UCPTfieldName As String, UCPTvalue As String, UCPTpropagate As Integer, UCPTpriority As Integer) エレメント 説明 return DataPointWriteReturnType 変数 ilonWebReference i.LON 100 WSDL ファイル Web サービスのインスタン ス 入力パラメータ 関数に渡す必要のある個別の入力パラメータの説明につ いては、2-6ページの「DataPointWrite」を参照してく ださい。 返り値:この関数は、2 つのプロパティを含むオブジェクトを返します。1 つは書き込まれ 返り値: るデータポイントの名前(UCPTpointName)で、もう 1 つは書き込まれるフィールドの名 前(UCPTfieldName)です。 2.6.2 DataPointRead 構文: 構文:return=ilonWebReference.DataPointRead(UCPTpointName As String, UCPTfieldName As String) エレメント 説明 return DataPointReadReturnType 変数 ilonWebReference i.LON 100 WSDL ファイル Web サービスのインスタン ス 入力パラメータ 関数に渡す必要のある入力パラメータの説明について は、2-9ページの「DataPointRead」を参照してくださ い。 返り値:この関数は、2-10ページの「表 4」で説明している各プロパティを含むオブジェク 返り値: トを返します。各プロパティは、後述するプログラミングサンプルに示すとおり、表 4に一 覧表示されているプロパティ名を参照することで、このオブジェクトから個別に取得できま す。 i.Lon 100 Internet Server Programmer’s Reference 2-13 2.6.3 DataPointResetPriority 構文: 構文:return=ilonWebReference.DataPointResetPriority(UCPTpointName As String, UCPTpriority As Integer) エレメント 説明 return 文字列変数 ilonWebReference i.LON 100 WSDL ファイル Web サービスのインスタン ス 入力パラメータ 関数に渡す必要のある入力パラメータの説明について は、2-12ページの「DataPointResetPriority」を参照し てください。 返り値:この関数は、リセットされるデータポイントの名前を文字列で返します。 2.6.4 プログラミングサンプル 次のプログラミングサンプルは Microsoft Visual Basic .NET で作成されており、3 つの DataPoint 関数をすべて呼び出します。まず、DataPointWrite 関数を使用して NVL_nvo01Switch というデータポイントの値を書き込み、次に DataPointResetPriority を 使用してこのデータポイントに割り当てられている優先度レベルをリセットし、他のアプリ ケーションがこの値に後で書き込みできるようにします。 データポイントが更新されると、DataPointRead 関数が呼び出されます。次に、この関数が 返すオブジェクトに含まれている各プロパティが抽出され、テキストボックスに表示されま す。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e _ As System.EventArgs) Handles Button1.Click 'Create an instance of the i.LON 100 Web service, and return 'objects for the three functions to be called. The WSDL file 'defines a return type for DataPointRead and DataPointWrite. The 'DataPointResetPriority returns a string containing the name of the 'data point reset by the function. Dim Dim Dim Dim ilon As New WebReference1.iLON100() retRead As New WebReference1.DataPointReadReturnType() retWrite As New WebReference1.DataPointWriteReturnType() retPriority As String 'Create variables to store the input for each function. Dim S As String Dim pointName As String Dim fieldName As String Dim value As String Dim propagate As String Dim priority As String 'Specify the IP location of the i.LON 100 by replacing the default ' “localhost” with the IP address of the i.LON 100. S = ilon.Url ilon.Url = S.Replace("localhost", "10.5.0.50") 'Define the data point to be written to, and the value to assign 'it. In this case, the field name is left blank, as the data point 'the program is writing to is not a structure. 2-14 i.LON 100 Internet Server Programmer’s Reference pointName = " NVL_nvo01Switch " fieldName = "" value = "0.0 0" propagate = "1" priority = "50" 'Call DataPointWrite, and then call DataPointResetPriority. Note 'that the priority 'level used in the call to 'DataPointResetPriority is less than that used in the call to 'DataPointWrite. This resets the priority assigned to 'NVL_nvo01Switch to 255, and allows all other applications to write 'to the data point. The propagate value used is in each call is 1, 'so that the change is updated over the network. retWrite = ilon.DataPointWrite(pointName, fieldName, value, _ priority, propagate) priority = "45" ilon.DataPointResetPriority(pointName, priority) 'Call DataPointRead and display the properties contained in the 'object returned by the function in text boxes. Note that the names 'used to extract each property from the return object match the 'property names used in the sample SOAP parameters earlier in this 'chapter. retRead = ilon.DataPointRead(pointName, fieldName) TextBox1.Text = retRead.UCPTbaseType TextBox2.Text = retRead.UCPTfieldName TextBox3.Text = retRead.UCPTformatDescription TextBox4.Text = retRead.UCPTlocation TextBox5.Text = retRead.UCPTpointName TextBox6.Text = retRead.UCPTpointStatus TextBox7.Text = retRead.UCPTpointUpdateTime TextBox8.Text = retRead.UCPTpriority TextBox9.Text = retRead.UCPTunit TextBox10.Text = retRead.UCPTvalue TextBox11.Text = retRead.UCPTvalueDef End Sub i.Lon 100 Internet Server Programmer’s Reference 2-15 3 i.LON 100 のアプリケーションと SOAP/XML インタフェース ここでは、i.LON 100 がサポートしているアプリケーションと、SOAP/XML インタフェー スを使用したこれらのアプリケーションの構成方法および i.LON 100 フラッシュメモリの監 視方法について簡単に説明します。まず、i.LON 100 アプリケーション、およびそのアプリ ケーションの構成を格納する XML ファイルについて説明し、次に SOAP 関数を使用して XML ファイルに書き込みを行う方法について説明します。 SOAP/XML インタフェースを使用してアプリケーションを構成するには、まず i.LON 100 Data Server を構築し、制御ネットワークの管理に必要なデータポイントを作成する必要が あります。本書の第 4 章と第 5 章では、データポイントと i.LON 100 Data Server について 説明しています。Data Server を構築すると、SOAP/XML インタフェースを使用して次の i.LON 100 アプリケーションを構成できるようになります。 • データログ – i.LON 100 を構成し、データロガーを作成することでネットワーク上の データポイントの更新情報を記録できます。各データロガーには独自のログファイルが あり、監視するデータポイントの各更新情報が記録されます。ログファイルは、イン ターネット上で FTP(File Transfer Protocol)を使用してダウンロードして読み取るか、 DataLoggerRead という関数を使用して取得することができます。表 5では、データロ ガーを作成・管理する DataLoggerRead 関数およびその他の関数を示しています。これ らの関数の詳細については、本書の第 6 章を参照してください。 • アラーム – i.LON 100 を構成すると、制御ネットワーク内のデータポイントの値やス テータスに基づいてアラームをトリガすることができます。トリガ後、i.LON 100 は、 LONWORKS ネットワーク内の任意のデータポイントの更新、データログへの状態の記録、 またはアラームおよび何がアラームをトリガしたかを通知する電子メールの送信などを 実行します。アラームは、特定の条件が満たされたときに自動的に停止するか、手動解 除を必要とするかを選択することができます。これらのアラーム機能を監視するには、 アラームジェネレータとアラームノーティファイアを作成します。表 5では、アラーム アプリケーションが使用する関数を示しています。これらの関数の詳細については、本 書の第 7 章と第 8 章を参照してください。 • アナログ機能ブロック – アナログ機能ブロックアプリケーションを使用すると、ネット ワーク内のデータポイントの値に対して統計的な操作を実行できます。表 5では、アナ ログ機能ブロックアプリケーションが使用する関数を示しています。これらの関数の詳 細については、本書の第 9 章を参照してください。 • 接続管理 – 接続マネージャアプリケーションを使用すると、i.LON 100 が使用している モデムを設定し、接続プロファイルを作成することで、i.LON 100 にダイヤルインする デバイスと、i.LON 100 がダイヤルアウトするデバイスを選択することができます。こ こでは、接続マネージャアプリケーションが使用する関数について説明します。これら の関数の詳細については、本書の第 10 章を参照してください。 • スケジューリング – i.LON 100 は、日次および週次のスケジュールに加えて、例外スケ ジュールや優先スケジュールを作成することができます。これらのスケジュールは LONWORKS デバイスにバインドされているデータポイントの入力を使用してデバイスを 駆動します。スケジュールによってタスクを管理するには、イベントスケジューラとイ ベントカレンダーを作成します。表 5では、スケジューリングアプリケーションが使用 する関数を示しています。これらの関数の詳細については、本書の第 11 章と第 12 章を 参照してください。 • 型変換 – 型変換アプリケーションを使用すると、データを 1 つの型から別の型に変換で きます。データを変換するには、型変換機能、およびオプションで型変換ルールを作成 i.Lon 100 Internet Server Programmer’s Reference 3-1 する必要があります。表 5では、型変換に使用する関数を示しています。これらの関数 の詳細については、本書の第 13 章と第 14 章を参照してください。 表 5では、i.LON 100 Data Server を構築し、i.LON 100 のアプリケーションを構成するた めの関数を示しています。これらの関数を使用する前に、必ず本章の残りの部分をお読みく ださい。ここでは、SOAP インタフェースの背景情報について説明しています。 注:各アプリケーションには List 関数、Get 関数、Set 関数、および Delete 関数が含まれて います。これらの関数は対称的なインタフェースを形成しますが、これは SOAP アプリケー ションをプログラミングする際に非常に役立ちます。この詳細については、3-13ページの 「List、Get、Set、Delete 関数」を参照してください。 表5 関数名 DataServerList DataServerGet DataServerSet DataServerDelete DataServerRead DataServerWrite DataServerResetPriority i.LON 100 の SOAP 関数 説明 DataServerList 関数は、i.LON 100 Data Server に追加した 各データポイントのインデックス番号、名前、および場所を返 します。DataServerGet 関数は、任意のデータポイントの構 成を返します。 DataServerSet 関数は、データポイントを i.LON 100 Data Server に追加するか、Data Server に既に追加されている データポイントの構成を更新します。 DataServerRead 関数と DataServerWrite 関数は、ネット ワーク内のデータポイントの最新値の読み取りおよび書き込み を行います。DataPointResetPriority 関数は、データポイン トの優先度をリセットします。DataServerDelete 関数は、 データポイントを削除します。 これらの関数の詳細については、4-1ページの「Data Server」 を参照してください。 NVEList NVEGet NVESet NVEDelete NVEList 関数は、NVE ドライバに追加した各データポイント のインデックス番号、最後の更新時刻、および名前を返しま す。NVEGet 関数を使用すると、任意のデータポイントの構 成を返すことができます。 NVESet 関数は、データポイントをさらに NVE ドライバに追 加するか、Data Server に既に追加されている NVE データポ イントの構成を更新します。NVEDelete 関数は、データポイ ントを削除します。 これらの関数の詳細については、5-1ページの「NVE ドライ バ」を参照してください。 3-2 i.LON 100 Internet Server Programmer’s Reference 関数名 DataloggerList DataloggerGet DataloggerSet DataLoggerRead DataLoggerClear DataloggerDelete 説明 DataLoggerList 関数は、i.LON 100 に追加した各データロ ガーのインデックス番号、最後の更新時刻、説明、および機能 ブロック名を返します。DataLoggerGet 関数を使用すると、 任意のデータロガーの構成を返します。 DataLoggerSet 関数は、新しいデータロガーを i.LON 100 に 追加するか、既存のデータロガーの構成を上書きします。 DataLoggerDelete 関数は、データロガーを i.LON 100 から削 除します。 DataLoggerRead 関数は、データロガーが生成したログファイ ルからデータを読み取ります。DataLoggerClear 関数は、ロ グファイルからデータを削除します。 これらの関数の詳細については、6-1ページの「データロ ガー」を参照してください。 AlarmGeneratorList AlarmGeneratorGet AlarmGeneratorSet AlarmGeneratorDelete AlarmGeneratorList 関数は、i.LON 100 に追加した各アラー ムジェネレータのインデックス番号、最後の更新時刻、説明、 および機能ブロック名を返します。AlarmGeneratorGet 関数 は、任意のアラームジェネレータの構成を返します。 AlarmGeneratorSet 関数は、新しいアラームジェネレータを i.LON 100 に追加するか、既存のアラームジェネレータの構成 を上書きします。AlarmGeneratorDelete 関数は、アラーム ジェネレータを i.LON 100 から削除します。 これらの関数の詳細については、7-1ページの「アラームジェ ネレータ」を参照してください。 AlarmNotifierList AlarmNotifierGet AlarmNotifierSet AlarmNotifierDelete AlarmNotifierRead AlarmNotifierWrite AlarmNotifierClear AlarmNotifierList 関数は、i.LON 100 に追加した各アラーム ノーティファイアのインデックス番号、最後の更新時刻、説 明、および機能ブロック名を返します。AlarmNotifierGet 関 数は、アラームノーティファイアの構成を返します。 AlarmNotifierSet 関数は、新しいアラームノーティファイア を i.LON 100 に追加するか、既存のアラームノーティファイ アの構成を上書きします。AlarmNotifierDelete 関数は、ア ラームノーティファイアを i.LON 100 から削除します。 AlarmNotifierRead 関数は、アラームノーティファイアが生 成したログファイルを読み取ります。AlarmNotifierWrite 関 数は、ログファイル内のエントリにコメントを追加し、確認し ます。Alarm NotifierClear 関数は、ログファイルからエント リを削除します。 これらの関数の詳細については、8-1ページの「アラームノー ティファイア」を参照してください。 i.Lon 100 Internet Server Programmer’s Reference 3-3 関数名 AnalogFBList AnalogFBGet AnalogFBSet AnalogFBDelete 説明 AnalogFBList 関数は、i.LON 100 に追加した各アナログ機能 ブロックのインデックス番号、最後の更新時刻、説明、および 機能ブロック名を返します。AnalogFBGet 関数は、任意のア ナログ機能ブロックの構成を返します。 AnalogFBSet 関数は、新しいアナログ機能ブロックを i.LON 100 に追加するか、既存のアナログ機能ブロックの構成を上書 きします。AnalogFBDelete 関数は、アナログ機能ブロックを i.LON 100 から削除します。 これらの関数の詳細については、9-1ページの「アナログ機能 ブロック」を参照してください。 ConnectionManagerList ConnectionManagerGet ConnectionManagerSet ConnectionManagerDelete ConnectionManagerList 関数は、i.LON 100 の接続マネー ジャの設定、ならびに i.LON 100 に追加した各接続プロファ イルのインデックス番号、最後の更新時刻、説明、および機能 ブロック名を返します。ConnectionManagerGet 関数は、任 意の接続プロファイルの構成を返します。 ConnectionManagerSet 関数は、i.LON 100 の新しい接続プ ロファイルを作成するか、既存の接続プロファイルの構成を上 書きします。ConnectionManagerDelete 関数は、接続プロ ファイルを i.LON 100 から削除します。 これらの関数の詳細については、10-1ページの「接続マネー ジャ」を参照してください。 EventSchedulerList EventSchedulerGet EventSchedulerSet EventSchedulerDelete EventSchedulerList 関数は、i.LON 100 に追加した各イベン トスケジューラのインデックス番号、最後の更新時刻、説明、 および機能ブロック名を返します。EventSchedulerGet 関数 は、任意のイベントスケジューラの構成を返します。 EventSchedulerSet 関数は、新しいイベントスケジューラを i.LON 100 に追加するか、既存のイベントスケジューラの構成 を上書きします。EventSchedulerDelete 関数は、イベントス ケジューラを i.LON 100 から削除します。 これらの関数の詳細については、11-1ページの「イベントスケ ジューラ」を参照してください。 EventCalendarList EventCalendarGet EventCalendarSet EventCalendarDelete EventCalendarList 関数は、i.LON 100 に追加した各イベン トカレンダーのインデックス番号、最後の更新時刻、説明、お よび機能ブロック名を返します。EventCalendarGet 関数は、 任意のイベントカレンダーの構成を返します。 EventCalendarSet 関数は、新しいイベントカレンダーを i.LON 100 に追加するか、既存のイベントカレンダーの構成を 上書きします。EventCalendarDelete 関数は、イベントカレ ンダーを i.LON 100 から削除します。 これらの関数の詳細については、12-1ページの「イベントカレ ンダー」を参照してください。 3-4 i.LON 100 Internet Server Programmer’s Reference 関数名 TypeTranslatorList TypeTranslatorGet TypeTranslatorSet TypeTranslatorDelete 説明 TypeTranslatorList 関数は、i.LON 100 に追加した各型変換 機能のインデックス番号、最後の更新時刻、説明、および機能 ブロック名を返します。TypeTranslatorGet 関数は、任意の 型変換機能の構成を返します。 TypeTranslatorSet 関数は、新しい型変換機能を i.LON 100 に追加するか、既存の型変換機能の構成を上書きします。 TypeTranslatorDelete 関数は、型変換機能を i.LON 100 から 削除します。 これらの関数の詳細については、13-1ページの「型変換機能」 を参照してください。 TypeTranslatorRuleList TypeTranslatorRuleGet TypeTranslatorRuleSet TypeTranslatorRuleDelete TypeTranslatorRuleList 関数は、i.LON 100 に追加した各型 変換ルールのインデックス番号、最後の更新時刻、説明、およ び機能ブロック名を返します。TypeTranslatorRuleGet 関数 は、任意の型変換ルールの構成を返します。 TypeTranslatorRuleSet 関数は、新しい型変換ルールを i.LON 100 に追加するか、既存の型変換ルールの構成を上書き します。TypeTranslatorRuleDelete 関数は、型変換ルールを i.LON 100 から削除します。 これらの関数の詳細については、14-1ページの「型変換ルー ル」を参照してください。 SystemInfoRead SystemInfoRead 関数は、i.LON 100 が使用できるメモリの空 き容量と、i.LON 100 によるフラッシュメモリの書き込み率を 監視します。この関数と i.LON 100 のフラッシュメモリの詳 細については、第15章「i.LON 100 のフラッシュメモリ」を 参照してください。 3.1 i.LON 100 の XML 構成ファイル 第 1 章で説明したとおり、i.LON 100 アプリケーションの構成は XML ファイルに格納され ます。i.LON 100 には次の構成ファイルが含まれています。 /root/config/software/AlarmGenerator.XML /root/config/software/AlarmNotifier.XML /root/config/software/AnalogFB.XML /root/config/software/EventCalendar.XML /root/config/software/EventScheduler.XML /root/config/software/DataLogger.XML /root/config/software/ConnectionManager.XML /root/config/software/TypeTranslator.XML /root/config/software/Driver/Driver_NVE.XML /root/config/software/DataServer/DP_NVL.XML /root/config/software/DataServer/DP_NVC.XML /root/config/software/DataServer/DP_NVE.XML i.Lon 100 Internet Server Programmer’s Reference 3-5 注:/root/config/software ディレクトリには TranslatorRules というフォルダも含まれていま す。このフォルダには、型変換機能を構成するときに使用する XML ファイルが格納されてい ます。また、これには i.LON 100 リモートネットワークインタフェース(RNI)が使用する 構成データを記述した RNI.XML というファイルが含まれています。RNI アプリケーションに は SOAP インタフェースはありません。RNI.XML ファイルは手動で編集しないようにしてく ださい。RNI アプリケーションは i.LON 100 Configuration Web ページを使用して設定しま す。この詳細については、『i.LON 100 Internet Server ユーザガイド』を参照してください。 各アプリケーションには独自の Set 関数が含まれています。Set 関数を使用すると、適用可 能な XML ファイルを作成し、そのファイルに書き込むことができます。i.LON 100 は Set メッセージを受け取るたびに、XML ファイルおよび関連するアプリケーションの操作パラ メータを変更します。 あるいは、ASCII テキストエディタまたは XML エディタを使用してファイルを手動で変更 し、FTP を経由して i.LON 100 にダウンロードすることもできます。ダウンロードしたファ イルを i.LON 100 が読み取るためには i.LON 100 を再起動する必要があり、i.LON 100 で はダウンロードした XML ファイルに対してエラーチェックを実行しないため、Echelon 社 ではこの方法は奨励していません。 本書の第 4∼16 章では、各 i.LON 100 XML 構成ファイルの内容、構成ファイルがサポート しているアプリケーション、およびこれらの詳細情報を管理するための SOAP 関数について 説明します。 第 4∼16 章に進む前に、必ず本章の残りの部分をお読みください。ここでは、SOAP/XML インタフェースを使用するにあたって必要となる背景情報について説明しています。 次項の「i.LON 100 SOAP インタフェースの概要」では、SOAP インタフェースについて簡 単に説明します。 3.2 i.LON 100 SOAP インタフェースの概要 前項で紹介した各 XML ファイルには、i.LON 100 アプリケーションの構成を定義するエレ メントとプロパティ、およびそのアプリケーションに追加された項目またはインスタンスの 設定が含まれています。たとえば、AlarmGenerator.XML ファイルにはアラームジェネレー タアプリケーションに関連付けられるグローバル構成プロパティに加え、ユーザが i.LON 100 に追加した各アラームジェネレータの構成も含まれています。 ここでは、XML ファイルへの書き込みを実行する関数について簡単に説明します。第 4∼16 章では、各関数について詳しく説明します。これらの関数を使用する前に、この項の残りの 部分をお読みください。ここでは、i.LON 100 WSDL ファイル、SOAP/XML インタフェー スに付属しているセキュリティの機能、および SOAP 関数が呼び出されたときに i.LON 100 に送信される SOAP メッセージのフォーマットについて説明しています。 3.2.1 i.LON 100 の WSDL ファイル 各 i.LON 100 には WSDL(Web Service Description Language)ファイルが含まれていま す。このファイルは i.LON 100 の SOAP インタフェースを定義し、アプリケーションが SOAP インタフェースにアクセスするために必要な情報をすべて含んでいます。SOAP イン タフェースを使用するアプリケーションを作成するときは、WSDL ファイルを参照する必要 があります。WSDL ファイルは Microsoft Visual Studio .NET をはじめとする数多くのプロ グラミング開発環境と互換性があります。 WSDL ファイルの詳細については、第16章「Web サービスとしての SOAP インタフェース の使用」を参照してください。第16章では、Microsoft Visual Basic .NET プロジェクトで WSDL ファイルを参照する方法をステップをふんで説明しています。 3-6 i.LON 100 Internet Server Programmer’s Reference 3.2.2 セキュリティ i.LON 100 Web Server Security and Parameters ユーティリティを使用すると、基本レベ ルのセキュリティを i.LON 100 SOAP/XML インタフェースに追加することができます。こ のユーティリティを使用すると、i.LON 100 が配信する Web コンテンツすべてにパスワー ド保護を追加できます。i.LON 100 Web サーバが HTTP トランザクション用に使用するセ キュリティ機能は、基本アクセス認証です。基本アクセス認証については、IETF の RFC 2617 を参照してください。 http://www.ietf.org/rfc/rfc2617.txt i.LON 100 に送信される SOAP メッセージをすべて認証するには、i.LON 100 Web Server Security and Parameters ユーティリティを使用して、Web サーバの /WSDL/iLON100.WSDL のパスにある i.LON 100 WSDL ファイルをパスワード保護します。 これによって、SOAP メッセージが i.LON 100 に送信されるたびに、ユーザ名とパスワード が要求されます。SOAP はトランスポートに HTTP を使用するため、ユーザ名とパスワード のペアを HTTP セッション全体に使用できます。その結果、1 組のユーザ名とパスワードだ けで複数の SOAP メッセージを送受信することができます。正しいユーザ名とパスワードを 格納していない i.LON 100 に SOAP メッセージが送信された場合、そのメッセージは無視 されます。i.LON Web Server Security and Parameters ユーティリティの使用方法につい ては、『i.LON 100 Internet Server ユーザガイド』の第 13 章を参照してください。 XML 構成ファイルへの FTP アクセスを保護するために、i.LON では各 FTP セッションご とにユーザ名とパスワードを要求します。このユーザ名とパスワードは既定では“ilon”になっ ていますが、i.LON 100 Security Web ページで変更可能です。このページの使用方法につい ては、『i.LON 100 Internet Server ユーザガイド』を参照してください。 3.2.3 SOAP メッセージのフォーマット ここでは、SOAP 関数(本書の第 4∼16 章で説明)を呼び出したときに i.LON 100 に送信さ れる SOAP メッセージのフォーマットについて説明します。また、これらの関数が返す応答 SOAP メッセージのフォーマットについても説明します。 3.2.3.1 入力メッセージ 次のコード例は、第 4∼16 章で説明する関数のいずれかを呼び出したときに i.LON 100 に送 信される SOAP メッセージの基本的なフォーマットを表したものです。 <?xml version="1.0" encoding="UTF-8" standalone="no" ?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAPENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <echelon:FunctionName xmlns:echelon="http://wsdl.echelon.com/web_services_ns/ilon100/v1.0/"> <Data>Data</Data> </echelon:FunctionName> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 3.2.3.1.1 <Data>パラメータ i.LON 100 に送信される SOAP メッセージの SOAP ボディのうち重要な部分に<Data>パラ メータがあります。上の例では、<Data>パラメータには Data という値が含まれています。 これは、SOAP 関数を呼び出すときに関数に渡す必要のある入力を表します。この入力は、 オブジェクトの一覧を含むエンコードされた XML 文字列か、あるいは i.LON 100 に関連す る任意の数のプロパティ構成情報を含めます。文字列の内容は関数によって異なります。 i.Lon 100 Internet Server Programmer’s Reference 3-7 <Data>パラメータに含まれているエンコードされた XML の文字列は、SOAP 関数を呼び出 すときに入力として渡す唯一のパラメータとなります。 注:プログラミング環境によっては、各関数に渡す入力に、<Data>親エレメントを含めるよ う要求されることがありますが、Microsoft Visual Studio .NET では必要ありません。<Data> 親エレメントが自動的に挿入されるため、ユーザは入力として<Data>パラメータの内容を渡 すだけで済みます。 各 SOAP 関数を呼び出したときに<Data>パラメータに定義する必要のあるプロパティと属 性については、本書の第 4∼16 章を参照してください。また、i.LON 100 リソースファイル には、i.LON 100 で使用するすべての構成プロパティとネットワーク変数のフォーマット定 義および説明が含まれています。i.LON 100 リソースファイルの詳細については、3-12ペー ジの「i.LON 100 のリソースファイル」を参照してください。 本書では、SOAP インタフェースに付属の各関数に渡すことのできる、<Data>パラメータの サンプル、およびそのサンプル値を掲載しています。理解を助けるため、これらのサンプル は標準の XML フォーマットで示されていますが、実際の<Data>パラメータ内に含まれてい るデータは、すべてエンコードされた XML フォーマットでネットワークを経由して渡す必 要があります。 Microsoft Visual Studio .NET などのプログラミング環境では、標準の XML フォーマット で<Data>パラメータに格納されるデータを受け入れ、SOAP メッセージが i.LON 100 に送 信される前に、エンコードされた XML フォーマットに変換します。この場合には、アプリ ケーションをコーディングするときに標準の XML フォーマットでデータを入力することが できます。 その他のプログラミング環境では、標準の XML からエンコードされた XML へのデータの 変換は自動的に行われません。このため、ユーザはアプリケーションの作成時にエンコード された XML フォーマットで文字列を関数に渡す必要があります。次の各項では、エンコー ドされた XML と標準 XML の違いについて説明します。 注: DataPointRead、DataPointWrite、および DataPointResetPriority 関数に渡す入力には異 なるフォーマットが必要です。詳細については、第2章「SOAP/XML インタフェースを使用 したデータポイントの監視と制御」を参照してください。 3.2.3.1.1.1 エンコードされた XML と標準 XML 次のサンプルは、エンコードされた XML フォーマットの SOAP メッセージを示しています。 ネットワークを経由して i.LON 100 に送信されるメッセージはこのように表示されます。 <Data>パラメータ内の文字列は、前の項で説明したとおり、エンコードされたフォーマット での有効な XML 構造です。これによって、カプセル化された XML データが SOAP メッ セージ内で個別のパラメータとして解釈されることがなくなります。 i.LON 100 の SOAP インタフェースで使用しているエンコーディングは、W3C が “Extensible Markup Language (XML) 1.0”(http://www.w3.org/TR/2000/REC-xml20001006)の中で XML 1.0 に対して定義しているように、&、<、および>の文字にエス ケープ文字を使用します。このエスケープ文字のルールは次のとおりです。 • <の文字は<に置換 • >の文字は>に置換 • &の文字は&に置換 SOAP アプリケーションでは、<Data>と<Result>のパラメータ(次の項を参照)の値を文 字列として取り扱います。この文字列は、XML 解析エンジンが直接デコードし、操作しま す。ネットワークを経由して<Data>パラメータ内で渡す入力文字列は、すべてエンコードさ れた有効な XML であり、<Result>パラメータ内で i.LON 100 が返す文字列は、エンコード された有効な XML としてネットワークを経由して渡されます。 3-8 i.LON 100 Internet Server Programmer’s Reference <?xml version="1.0" encoding="UTF-8" standalone="no" ?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <echelon:FunctionName xmlns:echelon="http://wsdl.echelon.com/web_services_ns/ilon100/v1.0/" > <Data> <iLONApplication> <UCPTindexValue>3</UCPTindexValue> <UCPTpointName>NVL_nvo03Switch</UCPTpointName> </iLONApplication> </Data> </echelon:FunctionName> </SOAP-ENV:Body> </SOAP-ENV:Envelope> このメッセージのフォーマットを読みやすくするため、本書では、上記の例を以下に示すよ うに標準の XML フォーマットで表示します。以下のサンプル、および本書で紹介する Data Server、NVE ドライバ、データロガー、アラームジェネレータ、アラームノーティファイ ア、イベントカレンダー、イベントスケジューラ、型変換機能のアプリケーションのサンプ ルメッセージは、いずれもネットワークを経由して送信されるときに実際に送信されるメッ セージとは異なる表記をしています。 <?xml version="1.0" encoding="UTF-8" standalone="no" ?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <echelon:FunctionName xmlns:echelon="http://wsdl.echelon.com/web_services_ns/ilon100/v1.0/" > <Data> <iLONApplication> <UCPTindex>3</UCPTindex> <UCPTpointName>NVL_nvo03Switch</UCPTpointName> </iLONApplication> </Data> </echelon:FunctionName> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 3.2.3.1.2 SOAP ヘッダ SOAP メッセージの残りの部分は、SOAP エンベロープと SOAP ヘッダを表します。i.LON 100 に送信される SOAP メッセージのヘッダは W3C SOAP 1.1 で提唱されている次の推奨 基準に準拠していなければなりません。 http://www.w3.org/TR/2000/NOTE-SOAP-20000508/ 関数名は SOAP ヘッダの一部として渡され、“Echelon”というプレフィックス文字列が付け られます。i.LON 100 のすべての関数について、バージョン 1.0 のネームスペース URI を関 数名エレメントの属性として送信します。バージョン 1.0 の SOAP インタフェースにおける i.LON 100 ネームスペース URI は次のとおりです。 http://wsdl.echelon.com/web_services_ns/ilon100/v1.0/ i.Lon 100 Internet Server Programmer’s Reference 3-9 バージョン 1.0 の i.LON 100 SOAP インタフェースでは、i.LON 100 はネームスペース URI を無視します。ただし、このネームスペース URI を入力メッセージ内に格納して渡すことで、 バージョンとプラットフォームの互換性情報を送信先のサーバに送信することができます。 i.LON 100 は、応答メッセージ中に必ずこの情報を含めて送信するため、送信先のツールは ネームスペース識別子を使用して、SOAP インタフェースのバージョンとプラットフォーム を確認できます。 3.2.3.2 応答メッセージ 次のコードは、Data Server、NVE ドライバ、データロガー、アラームジェネレータ、ア ラームノーティファイア、イベントカレンダー、イベントスケジューラ、型変換機能、また は型変換ルールのアプリケーションの i.LON 100 SOAP インタフェースに含まれている関数 が返す応答メッセージの基本的なフォーマットを表したものです。 <?xml version="1.0" encoding="UTF-8" standalone="no" ?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <echelon:FunctionName xmlns:echelon="http://wsdl.echelon.com/web_services_ns/ilon100/v1.0/" > <Result>Result</Result> </echelon:FunctionName> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 入力メッセージのフォーマットと応答メッセージのフォーマットの違いは、SOAP ボディに 含まれる<Result>パラメータにあります。このサンプルの<Result>パラメータには Result という値が含まれています。これは、i.LON 100 に定義されている数多くのプロパティや属 性の名前と最新の値を含む、エンコードされた XML の文字列を表します。<Result>パラ メータに含まれているプロパティと属性は、呼び出される関数と、関数の呼び出し時にどの ように<Data>パラメータが定義されていたかによって異なります。 第 4∼16 章では各関数が返す<Result>パラメータについて説明しています。各関数ごとに、 サンプルの<Result>パラメータを掲載しています。理解を助けるため、これらのサンプルは 標準の XML フォーマットで示されていますが、実際の<Result>パラメータに含まれている データは、エンコードされた XML フォーマットで返されます。ただし、使用している開発 環境でデータが標準の XML フォーマットに自動的に変換される場合は別です。 3.2.3.3 SOAP のエラー応答 次のコード例は、i.LON 100 に送信された SOAP メッセージがエラーを発生した場合に、 Data Server、NVE ドライバ、データロガー、アラームジェネレータ、アラームノーティ ファイア、イベントカレンダー、イベントスケジューラ、型変換機能、または型変換ルール のアプリケーションに含まれている SOAP 関数が返す SOAP メッセージの基本的なフォー マットを表したものです。 <?xml version="1.0" encoding="UTF-8" standalone="no" ?> <SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <SOAP-ENV:Fault> <SOAP-ENV:faultcode>ErrorCode</SOAP-ENV:faultcode> <SOAP-ENV:faultstring>ErrorMessage</SOAP-ENV:faultstring> </SOAP-ENV:Fault> </SOAP-ENV:Body> 3-10 i.LON 100 Internet Server Programmer’s Reference </SOAP-ENV:Envelope> このサンプルでは、<SOAP=ENV:faultcode>パラメータに ErrorCode という値が含まれ ています。これは、関数が返すエラーコードを表します。次の<SOAP-ENV:faultstring> パラメータには ErrorMessage という値が含まれています。これは、関数が返すエラー コードの説明を表します。サンプルの残りの部分は、i.LON 100 SOAP インタフェース内の 関数がエラーを返す場合、各エラーメッセージに含まれる SOAP ヘッダを表します。 表 6は、i.LON 100 が返すエラーコードとメッセージを一覧表示したものです。 表6 SOAP エラーコード エラー コード エラーメッセージ 0 エラーなし。 1 未知の関数呼び出し。 2 パラメータエラー。たとえば、関数に渡した入力に有効なデータが含まれていな いか、関数にデータが渡されていない場合などです。 3 XML/パーサーエラー。 4 タグが欠けています。 5 インデックスが欠けています。 6 インデックスが見つかりません。 7 無効なインデックスです。 関数に渡したインデックス番号が、アプリケーションに許可されている最大値よ りも大きいか、最小値よりも小さくなっています。i.LON 100 で認められている インデックス番号の範囲は–32,768∼32,767 です。 8 作成できません。このエラーはデータポイントを作成しようとしたときに発生す る場合があります。 9 削除できません。このエラーはデータポイントを削除しようとしたときに発生す る場合があります。 10 設定できません。このエラーは i.LON 100 内の既存の項目の構成を変更しようと したときに発生する場合があります。たとえば、データポイントの構成への書き 込みを実行しようとしたときに発生します。 11 フォーマットエラー。 12 コマンドの失敗。 13 関数の呼び出しで参照されているデータポイント名が、指定したインデックス番 号を使用していません。 14 データポイント名が i.LON 100 Data Server 内に見つかりません。 15 データなし。 16 フィールド名が見つかりません。これは、構造体のデータポイントの読み取り、 書き込み、または設定を試みたときに、存在しない構造体フィールドを参照した 場合に発生します。 i.Lon 100 Internet Server Programmer’s Reference 3-11 3.3 i.LON 100 のリソースファイル 本書で説明する SOAP 関数を使用して構成できる構成プロパティは数多くあります。本書で は、各プロパティの一般的な説明と、各プロパティを構成する際に必要となるその他の情報 を提供します。その他の情報には、スカラー値のプロパティの最小値と最大値、文字列プロ パティの最大文字列長などがあります。この情報は、i.LON 100 のリソースファイルにも含 まれています。SOAP メッセージを i.LON 100 に送信するには、メッセージ内のデータすべ てが本書およびリソースファイルの説明に従ってフォーマットされている必要があります。 i.LON 100 リソースファイルは i.LON 100 構成ソフトウェアインストールユーティリティに よって LNS リソースファイルカタログに追加されますが、ローカルの i.LON 100 にも存在 します。実際は、i.LON 100 は LNS のようにリソースファイルのカタログを管理し、SOAP メッセージのデータ、ネットワーク変数の更新、および i.LON 100 Web サーバの Web タグ データをフォーマットする際に使用します。 ユーザは、FTP を利用してファイルを/root/lonworks/types ディレクトリにコピーし、 i.LON 100 を再起動することで、新しいリソースファイルを i.LON 100 に追加することも、 既存のファイルを更新することもできます。i.LON 100 は起動中にこのディレクトリ内のリ ソースファイルを読み取り、ローカルカタログを更新します。 3.3.1 LonMark 標準ネットワーク変数型(SNVT)デバイスのリソースファ )デバイスのリソースファ 標準ネットワーク変数型( イル SNVT デバイスのリソースファイルは、LonMark SNVT 内のデータ構造と、SNVT データ の表示に使用するフォーマットについて記述しています。i.LON 100 では、これらのファイ ルは/root/lonworks/types ディレクトリに保存されており、それぞれ STANDARD.ENU、 STANDARD.TYP、STANDARD.FMT、STANDARD.FPT という名前が付いています。 SNVT の既定のフォーマットは SNVT のネイティブフォーマットです(STANDARD.FMT の 記述を参照)。データポイントを i.LON 100 に追加すると、そのデータポイントにフォー マット型が割り当てられます。特定のデータポイントに対して特定の SNVT フォーマットが 必要な場合には、そのデータポイントの<UCPTformatDescription>を割り当てたい SNVT フォーマットの名前に設定する必要があります。たとえば次のようになります。 <UCPTformatDescription>SNVT_temp_f</UCPTformatDescription> <UCPTformatDescription>プロパティについては第4章「Data Server」で詳しく説明して います。SNVT デバイスのリソースファイルはすべてhttp://types.lonmark.orgからオンライ ンで参照できます。 3.3.2 標準構成プロパティ型(SCPT)デバイスのリソースファイル )デバイスのリソースファイル 標準構成プロパティ型( SCPT 内のデータ構造と、SCPT データの表示に使用するフォーマットについて記述してい ます。i.LON 100 では、これらのファイルは/root/lonworks/types ディレクトリに保存 されており、それぞれ STANDARD.ENU、STANDARD.TYP、STANDARD.FMT、 STANDARD.FPT という名前が付いています。 i.LON 100 アプリケーションが使用する構成プロパティは、ほとんどが上記のファイルに定 義されている SCPT に基づいています。i.LON 100 が参照する SCPT に割り当てる値につい ては、本書および SCPT リソースファイルに含まれている説明を参照してください。 SCPT デバイスのリソースファイルはすべてhttp://types.lonmark.orgからオンラインで参照 できます。 3.3.3 ユーザネットワーク変数型(UNVT)デバイスリソースファイル )デバイスリソースファイル ユーザネットワーク変数型( デバイスのメーカーは、UNVT デバイスのリソースファイルを作成し、これによって、標準 ではないそのメーカー固有のネットワーク変数を記述します。これらのファイルは標準のリ 3-12 i.LON 100 Internet Server Programmer’s Reference ソースファイルと同じ方法で、特定のメーカーのデバイスのデータの表示フォーマットを記 述します。i.LON 100 では、デバイスのリソースファイルはすべて /root/lonworks/types ディレクトリに保存されています。 次のように、UNVT には完全修飾フォーマット名を指定する必要があります。 #<progID>[<selector>].<format name> この構文において、“#”、“[“、“]”、および“.”の文字はリテラル文字です。16 進バイトの文 字列(以下で説明する“RAW_HEX_PACKED”フォーマット内)は、プログラム ID を表します。 selector は 1 桁の文字列で、プログラム ID の関連する部分を示すフィルタを表し、次の いずれかになります。 0. 1. 2. 3. 4. 5. 6. 標準 デバイスクラス デバイスクラスと用途 メーカー メーカーとデバイスクラス メーカー、デバイスクラス、およびデバイスサブクラス メーカー、デバイスクラス、デバイスサブクラス、およびデバイスモデル フォーマット名の構文は、SNVT 型の構文と似ていますが、型名は“SNVT”ではなく“UNVT” で始まります。たとえば次のようになります。 FORMAT:#800001128000000[4].UNVT_date_event 3.3.4 ユーザ構成プロパティ型(UCPT)デバイスのリソースファイル )デバイスのリソースファイル ユーザ構成プロパティ型( UCPT 内のデータ構造と、UCPT データの表示に使用するフォーマットについて記述する ファイルのセットです。i.LON 100 では、これらのファイルは/root/lonworks/types ディレクトリに保存されており、それぞれ BAS_Controller.ENU、 BAS_Controller.TYP、BAS_Controller.FMT、BAS_Controller.FPT という名前が 付いています。 Echelon 社では、SCPT 定義を持たない i.LON 100 アプリケーションが使用する構成プロパ ティ用としてこれらの UCPT を提供しています。UCPT リソースファイルは http://types.echelon.comからオンラインで参照できます。 3.4 List、 、Get、 、Set、 、Delete 関数 各 i.LON 100 アプリケーションの SOAP インタフェースには、List 関数、Get 関数、Set 関 数、および Delete 関数が含まれています。これらの関数はともに対称的なインタフェースを 構成しています。たとえば、List コマンドからの応答は、Get コマンドの入力として使用で きます。Get コマンドからの応答は、Set コマンドの入力として使用できます。この項では、 この関数の概要と、SOAP インタフェースを使用する際にこの関数を活用する方法について 説明します。 注:一部のアプリケーションの SOAP インタフェースには、XML ファイルを管理するための 追加の SOAP 関数が含まれています。これらの関数については本章で後述するとともに、第 4∼16 章でさらに詳しく説明します。 3.4.1 List 関数 List 関数は、アプリケーションに対して作成された全項目の一覧を取得します。たとえば AlarmGeneratorList 関数は、カスタム SOAP アプリケーションまたは i.LON 100 構成ソフ トウェアを使用して i.LON 100 に追加された各アラームジェネレータのインデックス番号、 説明、最後の更新時刻、および機能ブロック名を含む一覧を返します。同様に、 DataLoggerList 関数は、i.LON 100 に追加された各データロガーのインデックス番号、最 後の更新時刻、説明、および機能ブロック名などの一覧を返します。 i.Lon 100 Internet Server Programmer’s Reference 3-13 3.4.2 Get 関数 Get 関数は、アプリケーションに追加した項目やインスタンスの構成を取得します。たとえ ば AlarmGeneratorGet 関数を使用すると、アラームジェネレータの構成を取得でき、 DataLoggerGet を使用するとデータロガーの構成を取得できます。構成を取得する項目は、 項目の作成時に割り当てられたインデックス番号を使用します。 次に、i.LON 100 に追加した各アラームジェネレータのインデックス番号を含む一覧を AlarmGeneratorList 関数を使用して取得する例を考えます。取得した一覧は、 AlarmGeneratorGet 関数の入力として使用できます。AlarmGeneratorGet 関数は、一覧に 含まれている項目すべての構成を返します。 Get 関数を使用して、1 つの項目の構成を取得することもできます。これを行うには、項目 の作成時に割り当てられたインデックス番号を入力として渡します。 3.4.3 Set 関数 Set 関数は、前項で説明した各 XML ファイルへの書き込みを行います。アプリケーション に対して Set 関数を初めて呼び出すと、関連する XML ファイルが i.LON 100 の /root/config/software ディレクトリに作成されます(まだ作成されていない場合)。関数に 渡される入力に指定したデータはすべて、XML ファイルに追加されます。その後は Set 関 数を使用して、データを XML ファイルに追加したり、既存のデータを上書きすることがで きます。 たとえば、アプリケーションが AlarmGeneratorSet 関数を初めて呼び出すと、 AlarmGenerator.XML ファイルが i.LON 100 の/root/config/software ディレクトリに作成さ れます(別のアプリケーションによってこれが作成されていない場合)。このファイルには、 関数に渡される入力に指定した各アラームジェネレータのエレメントと、グローバル構成プ ロパティが含まれています。 最初の呼び出し後は AlarmGeneratorSet 関数を使用して、アラームジェネレータアプリ ケーションに設定したグローバルプロパティの値を上書きできます。この関数を使用して、 新しいアラームジェネレータを XML ファイルに追加するか、既存のアラームジェネレータ の構成を上書きすることもできます。 Set メソッドを使用してアラームジェネレータ(あるいは i.LON 100 アプリケーションの項 目またはインスタンス)を作成するたびに、項目にはインデックス番号が割り当てられます。 後でアラームジェネレータの構成に書き込みを行う際や、他の関数からアラームジェネレー タを参照する際は、このインデックス番号を使用してアラームジェネレータを選択します。 Set 関数を使用してアラームジェネレータなどの項目を作成するときは、対応する Get 関数 が返す出力を基にした入力を使用することを考慮してください。アラームジェネレータの関 数を使用した具体例を以下に示します。このアルゴリズムはどの i.LON 100 アプリケーショ ンをプログラミングするときにも使用できます。 1. AlarmGeneratorList 関数を呼び出して、i.LON 100 に追加したアラームジェネレータ の一覧を生成します。この一覧には、各アラームジェネレータのインデックス番号が含 まれています。 2. AlarmGeneratorList 関数が返した一覧を入力として使用して、AlarmGeneratorGet 関 数を呼び出します。この関数は、各アラームジェネレータの構成を一覧形式の出力とし て返します。 3. 手順 2 の出力を確認し、“既定”のアラームジェネレータを選択します。このアラーム ジェネレータの AlarmGeneratorGet 出力を基にして、次のアラームジェネレータを作 成することもできます。AlarmGeneratorGet が返した文字列内の各プロパティ値を変 更し、新しいアラームジェネレータに必要な構成を定義します。この方法は、Set 関数 の入力文字列を最初から作成するよりも効率的です。 3-14 i.LON 100 Internet Server Programmer’s Reference 注:このアルゴリズムを使用する場合は、アラームジェネレータに割り当てられている インデックス番号を増加するか、この手順で作成した文字列からインデックスプロパ ティを削除する必要があります。そうしないと、選択されている既存のアラームジェネ レータの構成が次の手順で上書きされてしまいます。これについては第 4∼16 章でさら に詳しく説明します。 4. 手順 3 で入力として作成した変更済みの文字列を使用して、AlarmGeneratorSet 関数を 呼び出します。アラームジェネレータの構成全体を定義する入力を最初から作成するこ となく新しい項目が作成されるため、フォーマットエラーが発生する危険が最小限に抑 えられます。第 4∼16 章ではこのアルゴリズムの利点について詳しく説明します。 3.4.4 Delete 関数 Delete 関数を使用すると、項目をアプリケーションから削除できます。たとえば、 AlarmGeneratorDelete 関数はアラームジェネレータを削除し、DataServerDelete 関数は データポイントを削除します。 削除する項目は、関数に渡す入力内でインデックス番号で参照する必要があります。 3.5 パフォーマンスについて i.LON 100 には 32 MB の RAM が含まれているため、複雑なアプリケーションの構成や、負 荷の大きいネットワークの利用にも対応できます。ただし、これだけの量のメモリでも、非 常の高いレベルの i.LON 100 へのネットワークトラフィックで、特に SOAP インタフェー スを使用している場合、メモリを消耗してしまうことがあります。メモリ不足になると、 i.LON 100 のネットワークアクセスの遅延、i.LON 100 アプリケーションのパフォーマンス 問題、または最悪の場合には i.LON 100 を再起動しなければならない場合があります。 i.LON 100 にこのような症状が見られる場合には、そのデバイスへのネットワークトラ フィックのレベルを削減してください。以下は、i.LON 100 の SOAP インタフェースを使用 する際に適用されるガイドラインです。これらの数字は絶対的な制限ではなく、パフォーマ ンスを保証するものでもありませんが、i.LON 100 のネットワークトラフィックの負荷の管 理や、パフォーマンス問題のトラブルシューティングを行う際に利用してください。 SOAP アプリケーションをプログラミングする際は、次のガイドラインに従ってください。 • 1 つの Get または Read メッセージで参照しているデータポイントの数を 100 以下に制 限します。詳細については、第4章「Data Server」を参照してください。 • 1 つのメッセージ内で読み取られるアラームログレコードの数を 100 以下に制限します。 アラームログレコードの読み取りの詳細については、8-18ページの 「AlarmNotifierRead」を参照してください。 • 1 つのメッセージ内で読み取られるデータログレコードの数を 150 以下に制限します。 データログレコードの読み取りの詳細については、6-10ページの「DataLoggerRead」 を参照してください。 • 任意のアプリケーションの XML ファイルサイズの合計が 100 KB を超える場合は、1 つ の Get メッセージでそのアプリケーションの構成データをすべて読み取らないようにし ます。これは、すべての機能ブロックを使用しているイベントスケジューラアプリケー ション、あるいはアラームノーティファイアアプリケーションに適用されます。 • 100 KB を超えるリクエストメッセージを送信しないようにします。たとえば、1 つの メッセージで NVE ドライバ内の 100 を超える NVE ポイントを定義したり、1 つのメッ セージで AlarmNotifierSet を使用して 40 以上のアラームノーティファイアに書き込み を行わないようにします。 • 同時に使用する SOAP クライアントの数を、i.LON 100 の WebParams.dat ファイルで 指定されている Web タスクの数以下に制限します。既定値は 5 です。 i.Lon 100 Internet Server Programmer’s Reference 3-15 3.6 作業の前に 本書の第 4∼16 章では、i.LON 100 のさまざまなアプリケーションについて詳しく説明し、 アプリケーションを構成するための SOAP 関数について記述しています。i.LON 100 アプリ ケーションのプログラミングを開始する前に、第 4 章と第 5 章をお読みください。第 4 章と 第 5 章では、ネットワークの制御に使用するデータポイントを管理するための i.LON 100 Data Server について紹介します。また、データポイントの各種類について説明し、これら のデータポイントを作成し、Data Server に追加する方法を詳しく紹介します。 データポイントを作成し、i.LON 100 Data Server を構築すると、i.LON 100 のさまざまな アプリケーションの構成時にデータポイントを参照できるようになります。第 6∼16 章では、 i.LON 100 のアプリケーションと、各アプリケーションを構成するための SOAP 関数につい て説明します。 3-16 i.LON 100 Internet Server Programmer’s Reference 4 Data Server i.LON 100 はデータポイントという概念を使用して、論理名を i.LON 100 のシステム変数、 i.LON 100 LonTalk インタフェースで定義されるネットワーク変数、および明示的にアドレ ス指定したネットワーク変数にマッピングします。この方法は、異なる制御ネットワークの データの処理にも応用することができ、使用可能なバスのドライバが増えるにつれて、利用 範囲が拡大します。 データポイントを使用することにより、i.LON 100 アプリケーションおよび Web サーバは、 いかなる種類のネットワークからの情報も通常の方法でオープンに処理することができます。 処理できるデータには、LNS により管理されたネットワークにおけるネットワーク変数の最 新値や、LNS を使わない閉じた LONWORKS システムにセルフインストールされているノー ドのネットワーク変数などがあります。i.LON 100 には次の 3 種類のデータポイントがあり ます。 • i.LON 100 のローカルネットワーク変数用の NVL データポイント • 定数値を保持する i.LON 100 システム変数用の NVC データポイント • i.LON 100 のリモートデバイス上のネットワーク変数用の NVE データポイント i.LON 100 Data Server は、さまざまなアプリケーションがリクエストする各データポイン トの情報をすべて処理します。この情報には、データポイント値をポーリングする頻度、 データポイントの既定値、ハートビート、現在のステータス、および最新の値などがありま す。 Data Server 層では、データポイントが存在するネットワークの種類またはデバイスの種類 にかかわらず、3 種類のデータポイントはすべて同じプロパティのセットを備えています。 これは、データポイント型ごとにドライバが存在するためです。これらのドライバは i.LON 100 Data Server と、各データポイントのローカルネットワーク間の通信をすべて処理しま す。たとえば NVE ドライバは、Data Server と、i.LON 100 に使用している外部ネット ワークデバイス間の通信を処理します。このドライバには i.LON 100 が外部ネットワークデ バイスと通信するために必要なアドレス情報と、ネットワークデバイスにバインドされてい るネットワーク変数が含まれています。第5章では、NVE ドライバを構成し、外部データポ イントを作成する方法について説明します。 特殊な型のデータポイントには、標準のネットワーク管理ツールを使用して、i.LON 100 で 各ドライバを構成します。たとえば、i.LON 100 上の NVL ポイントを構成するには、LNS ベースのネットワーク管理ツールを使用します。ドライバと Data Server 間の抽象化層では、 あらゆる種類のデータポイントを同じように使用するための機能をすべての i.LON 100 アプ リケーションに提供します。 また Data Server は、i.LON 100 を構成するためのツールが認識する各データポイントの構 成情報、ステータス、および値を互いに同期させ、これらを各データポイントのローカルデ バイス内に格納します。i.LON 100 の構成に使用できるツールには、カスタム SOAP アプリ ケーション、LONMAKER、および i.LON 100 構成ソフトウェアがあります。次の図は、 i.LON 100 Data Server、NVE ドライバ、および i.LON 100 とそのアプリケーションを構成 するための各ツール間の関係を示したものです。 i.Lon 100 Internet Server Programmer’s Reference 4-1 i.LON 100アプリケーション アラームノーティファイア アラームジェネレータ データロガー 接続マネージャ アナログ機能ブロック イベントスケジューラ イベントカレンダー 型トランスレータ i.LON 100のさまざまなアプリケー ションは、i.LON 100構成ソフトウェアと LONMAKER、ならびにSOAP/XML インターフェイスを使用して設定できます。 i .LON 100 SOAP/XML インタフェースを 使用したカスタム アプリケーション i .LON 100 構成ソフトウェア i.LON 100アプリケーションはNVE、 NVC、およびNVLデータポイント値と 情報をポーリングします。 i.LON 100 NVLデータポイント i.LON 100データ サーバ NVEデータポイント LONMAKER NVEドライバ NVEドライバは i .LON 100データサーバおよび i .LON 100が監視するさまざまな外部デバイス 間の通信を管理します。 NVEデータポイント 外部 ネットワーク デバイス データポイントごとに Data Server に格納される最も重要なプロパティに、 <UCPTpointStatus>と<UCPTvalue>の 2 つがあります。<UCPTpointStatus>プロパティ は、データポイントの現在のステータスを表します。<UCPTvalue>プロパティは、データ ポイントの最新の値を表します。Data Server はこれらのプロパティをリアルタイムで更新 します。このプロパティは、さまざまな i.LON 100 アプリケーションで利用することができ ます。 たとえば、データポイントの<UCPTvalue>が特定のレベルに達するたびに、そのデータポ イントの<UCPTpointStatus>をアラーム状態に更新するアラームジェネレータや、データポ イントの<UCPTpointStatus>が設定した状態に更新されるたびに、アラーム通知を送信する アラームノーティファイアが考えられます。これらのアプリケーションについては、本書で 詳しく後述します。 データポイントが作成され、i.LON 100 Data Server に追加されると、データポイントごと にデータポイント一覧が生成されます。いったんデータポイントを Data Server に追加する と、その後はアナログ機能ブロック、イベントスケジューラ、イベントカレンダー、型変換 機能、接続マネージャ、アラームジェネレータ、アラームノーティファイアなどの i.LON 100 アプリケーションを使用するときにこのデータポイントを参照できるようになります。 アプリケーションのいずれかがデータポイントを参照するときには、そのアプリケーション が利用するデータポイントがデータポイント一覧に追加され、データポイントが更新される たびにアプリケーションが通知を受けるようになります。このようにして、各アプリケーシ ョンは使用中のデータポイントに関連するすべての最新のネットワーク情報にアクセスでき ます。 4-2 i.LON 100 Internet Server Programmer’s Reference ここでは、NVL、NVE、および NVC のデータポイントを作成し、これらを Data Server に 追加する方法について説明します。 注:Echelon 社では、どのネットワークにおいてもデータポイントの数を 800 までに制限す ることをお勧めしています。 4.1 Data Server の XML ファイル i.LON 100 の/root/config/software/dataserver ディレクトリには、Data Server における 3 種類のデータポイントの構成を格納する XML ファイルが含まれています。表 7では、これ らの XML ファイルについて説明しています。 表7 Data Server の XML ファイル ファイル名 DP_NVL.XML 説明 LONMAKER を使用して i.LON 100 のローカル NV を作成すると、対応する NVL データポイントが Data Server に自動的に追加されます。その構成は、 SOAP インタフェースまたは i.LON 100 構成ソフトウェアを使用して変更で きるようになり、また i.LON 100 アプリケーションから参照できるようにな ります。 DP_NVL.XML ファイルは Data Server の NVL データポイントの構成を格納 します。このファイルには、動的に作成し Data Server に追加した、静的デー タポイントのエントリが含まれています。 注:NVL データポイントは必ず LONMAKER を使用して作成してください。 DP_NVC.XML このファイルには、Data Server に追加した各 NVC データポイントのエント リが含まれています。NVC データポイントは定数値を保持するネットワーク 変数を表します。 これらのデータポイントを作成するには、後述の DataServerSet 関数か、 i.LON 100 構成ソフトウェアを使用して作成します。 DP_NVE.XML このファイルには、Driver_NVE.XML ファイルにエントリを持つ各リモート ネットワーク変数のエントリが含まれています。これらのデータポイントは、 まず NVE ドライバで作成する必要があります。データポイントを NVE ドラ イバで作成すると、そのエントリが DP_NVE.XML ファイルに追加され、さ らに Data Server にも追加されます。 NVE ドライバへのデータポイントの追加方法、および NVE ドライバの詳細 については、5-1ページの「NVE ドライバ」を参照してください。 次の各項では、各ファイルのサンプルを紹介します。ファイルを手動または SOAP インタ フェースから変更する際のガイドラインと手順については、サンプルを参考にしてください。 4.1.1 DP_NVL.XML DP_NVL.XML ファイルは i.LON 100 が初めて起動するときに自動的に作成されます。この ファイルにはデバイス上の各静的 NV の<NVL>エレメントが含まれており、<NVL>エレメ ント内で定義されているプロパティが、NVL データポイントの構成を決定します。詳細につ いては本章で後述します。LONMAKER を使用して i.LON 100 の動的ネットワーク変数を作 成するたびに、関連するデータポイントの<NVL>エレメントが DP_NVL.XML に追加され ます。 いったんデータポイントを i.LON 100 に追加すれば、データポイントの構成を変更すること ができます。変更するには、この XML ファイルを手動で編集するか、DataServerSet 関数 i.Lon 100 Internet Server Programmer’s Reference 4-3 を使用します。以下に XML ファイルのサンプルを示します。この操作を行うときのガイド ラインと手順については、次項を参照してください。 次のコードは、4 つの NVL データポイントを使用した i.LON 100 用の DP_NVL.XML ファ イルのサンプルです。 <iLONDataServer> <DpNVL> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <UCPTlastUpdate>2002-07-03T10:46:54Z</UCPTlastUpdate> <UCPTlifeTime>0</UCPTlifeTime> </DpNVL> <NVL> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nvoAlarmFlag2</UCPTpointName> <UCPTlocation>iLON</UCPTlocation> <UCPTdescription /> <UCPTformatDescription>SNVT_switch</UCPTformatDescription> <UCPTdpSize>2</UCPTdpSize> <UCPTbaseType>BT_STRUCT</UCPTbaseType> <UCPTunit>% of full level state code</UCPTunit> <SCPTmaxSendTime>0.0</SCPTmaxSendTime> <SCPTminSendTime>0.0</SCPTminSendTime> <SCPTmaxRcvTime>0.0</SCPTmaxRcvTime> <UCPTdefOutput>0.0 -1</UCPTdefOutput> <UCPTsettings>0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</UCPTsettings> <UCPTdirection>DIR_OUT</UCPTdirection> </NVL> <NVL> <UCPTindex>1</UCPTindex> <UCPTpointName>NVL_nviLevAlarm</UCPTpointName> <UCPTlocation>iLON</UCPTlocation> <UCPTdescription /> <UCPTformatDescription>SNVT_alarm</UCPTformatDescription> <UCPTdpSize>29</UCPTdpSize> <UCPTbaseType>BT_STRUCT</UCPTbaseType> <UCPTunit></UCPTunit> <SCPTmaxSendTime>0.0</SCPTmaxSendTime> <SCPTminSendTime>0.0</SCPTminSendTime> <SCPTmaxRcvTime>0.0</SCPTmaxRcvTime> <UCPTdefOutput>0 0 0 0 0 0 0 AL_NO_CONDITION PR_LEVEL_0 0 <0 0 0 0> 0/0/0/0:0:0:0 <0 0 0 0></UCPTdefOutput> <UCPTsettings>0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</UCPTsettings> <UCPTdirection>DIR_IN</UCPTdirection> </NVL> <NVL> <UCPTindex>2</UCPTindex> <UCPTpointName>NVL_nvoDlClear</UCPTpointName> <UCPTlocation>iLON</UCPTlocation> <UCPTdescription /> <UCPTformatDescription>SNVT_switch</UCPTformatDescription> <UCPTdpSize>2</UCPTdpSize> <UCPTbaseType>BT_STRUCT</UCPTbaseType> <UCPTunit>% of full level state code</UCPTunit> <SCPTmaxSendTime>0.0</SCPTmaxSendTime> <SCPTminSendTime>0.0</SCPTminSendTime> <SCPTmaxRcvTime>0.0</SCPTmaxRcvTime> <UCPTdefOutput>0.0 -1</UCPTdefOutput> <UCPTsettings>0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</UCPTsettings> <UCPTdirection>DIR_OUT</UCPTdirection> 4-4 i.LON 100 Internet Server Programmer’s Reference </NVL> <NVL> <UCPTindex>3</UCPTindex> <UCPTpointName>NVL_nviDeviceAlarm</UCPTpointName> <UCPTlocation>iLON</UCPTlocation> <UCPTdescription></UCPTdescription> <UCPTformatDescription>UNVT_alarm_2</UCPTformatDescription> <UCPTdpSize>31</UCPTdpSize> <UCPTbaseType>BT_STRUCT</UCPTbaseType> <UCPTunit /> <SCPTmaxSendTime>0.0</SCPTmaxSendTime> <SCPTminSendTime>0.0</SCPTminSendTime> <SCPTmaxRcvTime>0.0</SCPTmaxRcvTime> <UCPTsettings>0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</UCPTsettings> <UCPTdirection>DIR_IN</UCPTdirection> </NVL> </iLONDataServer> 4.1.2 DP_NVC.XML DP_NVC.XML ファイルには<NVC>エレメントの一覧が含まれており、Data Server に追加 した NVC データポイントごとに、1 つずつエレメントが存在します。NVC データポイント は、定数値を保持する i.LON 100 システム変数を表します。 各エレメントは関連付けられている NVC データポイントの構成を定義します。各<NVC>エ レメント内で定義されているプロパティが、NVC データポイントの構成を決定します。プロ パティの詳細については、本章で後述します。 次のコードは、2 つの NVC データポイントを使用した i.LON 100 の DP_NVC.XML サンプ ルファイルを表したものです。NVC データポイントは、DataServerSet 関数を使用するか、 XML ファイルを手動で編集することで、Data Server に追加できます。XML ファイルのサ ンプルを示します。この操作を行うときのガイドラインと手順については、次項を参照して ください。 <?xml version="1.0" ?> <iLONDataServer> <DpNVC> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <UCPTlastUpdate>2002-05-07T15:25:10Z</UCPTlastUpdate> <UCPTlifeTime>0</UCPTlifeTime> </DpNVC> <NVC> <UCPTindex>0</UCPTindex> <UCPTpointName>NVC_nviConstant</UCPTpointName> <UCPTlocation /> <UCPTdescription>Reference temperature</UCPTdescription> <UCPTformatDescription>SNVT_temp_p</UCPTformatDescription> <UCPTdpSize>2</UCPTdpSize> <UCPTunit>deg C</UCPTunit> <SCPTmaxSendTime>0.0</SCPTmaxSendTime> <SCPTminSendTime>0.0</SCPTminSendTime> <SCPTmaxRcvTime>20.0</SCPTmaxRcvTime> <UCPTdefOutput>0.00</UCPTdefOutput> <UCPTsettings>0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</UCPTsettings> <UCPTdirection>DIR_IN</UCPTdirection> </NVC> <NVC> <UCPTindex>1</UCPTindex> <UCPTpointName>NVC_nviTemp</UCPTpointName> i.Lon 100 Internet Server Programmer’s Reference 4-5 <UCPTlocation /> <UCPTdescription>SNVT_temp_f</UCPTdescription> <UCPTformatDescription>SNVT_temp_f</UCPTformatDescription> <UCPTdpSize>4</UCPTdpSize> <UCPTunit></UCPTunit> <SCPTmaxSendTime>0.0</SCPTmaxSendTime> <SCPTminSendTime>0.0</SCPTminSendTime> <SCPTmaxRcvTime>30.0</SCPTmaxRcvTime> <UCPTdefOutput>0</UCPTdefOutput> <UCPTsettings>0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</UCPTsettings> <UCPTdirection>DIR_IN</UCPTdirection> </NVC> </iLONDataServer> 4.1.3 DP_NVE.XML NVE データポイントは、i.LON 100 のリモートネットワーク変数を表します。 DP_NVE.XML ファイルには<NVE>エレメントの一覧が含まれており、Data Server に追加 した NVE データポイントごとに 1 つずつエレメントが存在します。各エレメントに含まれ ているプロパティが NVE データポイントの構成を決定します。プロパティの詳細ついては、 本章で後述します。 次のコードは、3 つの NVE データポイントを使用した i.LON 100 の DP_NVE.XML サンプ ルファイルを表したものです。NVE データポイントは、NVE ドライバへの追加時に、既定 データポイントは、 ドライバへの追加時に、既定 の構成とともに i.LON 100 Data Server に追加されます。データポイントを NVE ドライ バに追加するには、NVESet 関数を使用します。NVESet の詳細については、第5章「NVE バに追加するには、 関数を使用します。 ドライバ」を参照してください。 <?xml version="1.0" ?> <iLONDataServer> <DpNVE> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <UCPTlastUpdate>2002-06-04T10:19:43Z</UCPTlastUpdate> <UCPTlifeTime>1</UCPTlifeTime> </DpNVE> <NVE> <UCPTindex>0</UCPTindex> <UCPTpointName>NVE_nviEnum</UCPTpointName> <UCPTlocation> Third Floor </UCPTlocation> <UCPTdescription>UNVTenumeration</UCPTdescription> <UCPTformatDescription>#9FFFFF0000000000[3].UNVTenumeration</UCPTform atDescription> <UCPTdpSize>1</UCPTdpSize> <UCPTbaseType>BT_ENUM</UCPTbaseType> <UCPTunit>alarm</UCPTunit> <SCPTmaxSendTime>0.0</SCPTmaxSendTime> <SCPTminSendTime>0.0</SCPTminSendTime> <SCPTmaxRcvTime>0.0</SCPTmaxRcvTime> <UCPTdefOutput>AL_NO_CONDITION</UCPTdefOutput> <UCPTsettings>0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</UCPTsettings> <UCPTdirection>DIR_IN</UCPTdirection> </NVE> <NVE> <UCPTindex>1</UCPTindex> <UCPTpointName>NVE_nviTemp</UCPTpointName> <UCPTlocation /> <UCPTdescription>SNVT_temp_f</UCPTdescription> <UCPTformatDescription>SNVT_temp_f</UCPTformatDescription> <UCPTdpSize>4</UCPTdpSize> <UCPTbaseType>BT_FLOAT</UCPTbaseType> 4-6 i.LON 100 Internet Server Programmer’s Reference <UCPTunit /> <SCPTmaxSendTime>0.0</SCPTmaxSendTime> <SCPTminSendTime>0.0</SCPTminSendTime> <SCPTmaxRcvTime>0.0</SCPTmaxRcvTime> <UCPTdefOutput>0</UCPTdefOutput> <UCPTsettings>0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</UCPTsettings> <UCPTdirection>DIR_IN</UCPTdirection> </NVE> <NVE> <UCPTindex>2</UCPTindex> <UCPTpointName>NVE_nvoEnum</UCPTpointName> <UCPTlocation>fff</UCPTlocation> <UCPTdescription>UNVTenumeration</UCPTdescription> <UCPTformatDescription>#9FFFFF0000000000[3].UNVTenumerated</UCPTforma tDescription> <UCPTdpSize>1</UCPTdpSize> <UCPTbaseType>BT_ENUM</UCPTbaseType> <UCPTunit>alarm</UCPTunit> <SCPTmaxSendTime>0.0</SCPTmaxSendTime> <SCPTminSendTime>0.0</SCPTminSendTime> <SCPTmaxRcvTime>0.0</SCPTmaxRcvTime> <UCPTdefOutput>AL_NO_CONDITION</UCPTdefOutput> <UCPTsettings>0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</UCPTsettings> <UCPTdirection>DIR_OUT</UCPTdirection> </NVE> </iLONDataServer> 4.2 Data Server XML ファイルの作成と変更 i.LON 100 は、最初の起動時に 3 つの Data Server 構成ファイルをすべて生成します。 DP_NVL.XML ファイルは LONMAKER で作成したデバイス上の各静的 NV の<NVL>エレメ ントを含んでいます。LONMAKER でローカル NV を追加すると、新しい NVL データポイン トが DP_NVL.XML ファイルに自動的に追加されます。i.LON 100 が最初に起動したときに は、DP_NVC.XML ファイルと DP_NVE.XML ファイルにはデータポイントのエントリは含 まれていません。 NVE データポイントは、NVE ドライバへの追加時に既定の構成とともに Data Server(お よび DP_NVE.XML ファイル)に追加されます。データポイントを NVE ドライバに追加す るには、NVESet 関数を使用します。その後の変更は、DataServerSet 関数を使用して Data Server 内のデータポイントの構成に書き込むことができます。NVE ドライバの詳細と NVE ドライバへの NVE データポイントの追加方法については、第5章を参照してください。 DataServerSet 関数を使用すると、新しい NVC データポイントを Data Server と DP_NVE.XML ファイルに追加できます。 また、DataServerSet を使用すると、Data Server 内の既存の NVC、NVL、または NVE データポイントの構成を変更できます。次の「Data Server の SOAP インタフェース」では、 DataServerSet、および Data Server に付属のその他の SOAP 関数の使用方法について説明 しています。 Data Server の XML ファイルは、XML テキストエディタを使用して手動で管理し、FTP を 経由して i.LON 100 の/root/config/software ディレクトリにダウンロードすることができま す。ただし、Echelon 社ではこれを奨励していません。ダウンロードしたファイルの構成を 読み取るには i.LON を再起動する必要があるためです。また、i.LON 100 は XML ファイル に書き込みを行う前に、すべての SOAP メッセージのエラーチェックを実行しますが、FTP を経由してダウンロードした XML ファイルのエラーチェックは実行しないため、アプリ ケーションが正しく起動しない可能性があります。 i.Lon 100 Internet Server Programmer’s Reference 4-7 XML ファイルの作成や変更を手動で行う場合には、まず本章の残りの部分をお読みください。 ここでは、各データポイントの構成を定義する Data Server 構成ファイル内のエレメントと プロパティについて説明しています。XML ファイルを手動で作成または変更する方法につい ては、17-1ページの「XML 構成ファイルの手動変更」を参照してください。 4.2.1 Data Server の SOAP インタフェース Data Server アプリケーションの SOAP インタフェースには 7 つの関数が含まれています。 表 8ではこれらの関数を一覧表示し、各関数について説明しています。詳細については、表 8の後に続く各項を参照してください。 表8 関数 Data Server の SOAP 関数 説明 DataServerList Data Server に追加した各データポイントのインデックス番号、 名前、および場所を一覧表示します。詳細については、4-8ペー ジの「DataServerList」を参照してください。 DataServerGet データポイントの構成を返します。詳細については、4-10ペー ジの「DataServerGet」を参照してください。 DataServerSet NVC データポイントを作成し、Data Server に追加するか、既 存の NVL、NVC、または NVE データポイントの構成を変更し ます。詳細については、4-15ページの「DataServerSet」を参照 してください。 DataServerRead Data Server に追加した 1 つまたは複数のデータポイントの最新 値を読み取ります。詳細については、4-16ページの 「DataServerRead」を参照してください。 DataServerWrite 1 つまたは複数のデータポイントの値に書き込みを行います。詳 細については、4-19ページの「DataServerWrite」を参照して ください。 DataServerResetPriority データポイントに割り当てられている優先度をリセットしま す。詳細については、4-20ページの 「DataServerResetPriority」を参照してください。 DataServerDelete データポイントを Data Server から削除します。詳細について は、4-20ページの「DataServerDelete」を参照してください。 4.2.1.1 DataServerList DataServerList 関数を使用すると、i.LON 100 の Data Server に追加したデータポイントの 一覧を取得することができます。DataServerList 関数は<Data>パラメータのコンテンツと して空の文字列を受け入れます。空の文字列を<Data>パラメータとして渡すと、関数は Data Server 内のすべてのデータポイントのエントリを取得し、一覧表示します。 表 9で説明するプロパティを、関数に渡す<Data>パラメータの中で選択すると、一覧に含め るデータポイントの内容を詳しく指定することができます。 表9 パラメータ <UCPTdataPointType> 4-8 DataServerList の入力プロパティ 説明 リターン文字列に一覧表示されるデータポイントの種類(NVE、 NVL、NVC)を入力します。このプロパティを空にすると、すべての データポイントの種類が表示されます。 i.LON 100 Internet Server Programmer’s Reference パラメータ <UCPTsetting> 説明 オプション。コンマで区切られた 16 のブール値で構成される文字列を 入力します。この文字列は、各データポイントに定義されている <UCPTsettings>文字列と比較されます。この文字列内の少なくとも 1 つのビットが、データポイントに定義されている<UCPTsettings>文字 列に一致すると、そのデータポイントは、関数が返す一覧に含められま す。 データポイントの<UCPTsettings>プロパティは、Data Server への追 加時に定義され、DataServerSet 関数を使用して書き込むことができま す。この関数については本章で後述します。 <UCPTstartIndex> リターン文字列に一覧表示される最初のデータポイントのインデックス 番号を入力します。 <UCPTcount> リターン文字列に一覧表示されるデータポイントの最大数を入力しま す。 以下の例では、0 のインデックス番号で始まる最高 50 の NVL データポイントの一覧を返す 関数を示しています。この関数によって、Data Server アプリケーションが使用している ファームウェアのバージョン番号(主および副)、および Data Server に書き込みが行われ た最後の時刻を示すタイムスタンプが<Result>パラメータの先頭に返されます。タイムスタ ンプは ISO 8601 規格に従って UTC 時間で表されます。 次に<Result>パラメータには、関数の入力パラメータに指定した内容に合致する各データポ イントのエレメントが含まれます。次の「DataServerGet」の項では、これらの各エレメン トに含まれているプロパティについて説明します。 この関数が返すデータポイントエレメントの一覧は、DataServerGet 関数の入力として使用 できます。DataServerGet 関数は、一覧に含まれている各データポイントの構成を返します。 <Data>パラメータ <Data> <iLONDataServer> <UCPTdataPointType>NVL</UCPTdataPointType> <UCPTstartIndex>0</UCPTstartIndex> <UCPTcount>50</UCPTcount> </iLONDataServer> </Data> i.Lon 100 Internet Server Programmer’s Reference 4-9 <Result>パラメータ <Result> <iLONDataServer> <DpNVL> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <UCPTlastUpdate>2002-06-24T16:03:58Z</UCPTlastUpdate> <UCPTlifeTime>0</UCPTlifeTime> </DpNVL> <NVL> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nviRequest</UCPTpointName> <UCPTlocation>iLON100</UCPTlocation> </NVL> <NVL> <UCPTindex>1</UCPTindex> <UCPTpointName>NVL_nvoStatus</UCPTpointName> <UCPTlocation>iLON100</UCPTlocation> </NVL> <NVL> <UCPTindex>2</UCPTindex> <UCPTpointName>NVL_nviTimeSet</UCPTpointName> <UCPTlocation>iLON100</UCPTlocation> </NVL> <NVL> <UCPTindex>3</UCPTindex> <UCPTpointName>NVL_nviDateEvent</UCPTpointName> <UCPTlocation>iLON100</UCPTlocation> </NVL> </iLONDataServer> </Result> 4.2.1.2 DataServerGet DataServerGet 関数を使用すると、i.LON 100 の Data Server に追加したデータポイントの 構成を取得できます。構成情報を取得したいデータポイントは、インデックス番号または データポイント名を、関数に渡す<Data>パラメータ内で参照します。 DataServerGet の 1 回の呼び出しで、NVL、NVC、NVE データポイントを自由に組み合わ た構成をリクエストすることができます。次の例では、2 つのデータポイントの構成をリク エストしています。1 つはインデックス番号で参照し、もう 1 つは名前で参照しています。 各データの子エレメントとして<NVL>を指定していることに注目してください。NVE デー タポイントの場合は NVE、NVC データポイントの場合は NVC になります。 注:この関数の 1 回の呼び出しでは、構成を取得するデータポイントの数を 100 以下にして ください。 <Data> パラメー タ <Data> <iLONDataServer> <NVL> <UCPTindex>0</UCPTindex> </NVL> <NVL> <UCPTpointName>NVL_nvoSwitch</UCPTpointName> </NVL> </iLONDataServer> </Data> <Result> パラメー タ <iLONDataServer> <NVL> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nviRequest</UCPTpointName> <UCPTlocation>iLON100</UCPTlocation> <UCPTdescription>Node request message 4-10 i.LON 100 Internet Server Programmer’s Reference input</UCPTdescription> <UCPTformatDescription>SNVT_obj_request</UCPTformatDescripti on> <UCPTdpSize>3</UCPTdpSize> <UCPTbaseType>BT_STRUCT</UCPTbaseType> <UCPTunit></UCPTunit> <SCPTmaxSendTime>0.0</SCPTmaxSendTime> <SCPTminSendTime>0.0</SCPTminSendTime> <SCPTmaxRcvTime>0.0</SCPTmaxRcvTime> <UCPTdefOutput>0,RQ_NORMAL</UCPTdefOutput> <UCPTsettings>0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</UCPTsettings> <UCPTdirection>DIR_IN</UCPTdirection> </NVL> <NVL> <UCPTindex>1</UCPTindex> <UCPTpointName>NVL_nvoSwitch</UCPTpointName> <UCPTlocation>MainBuilding\FirstFloor\Light</UCPTlocation> <UCPTdescription>Light switch</UCPTdescription> <UCPTformatDescription>SNVT_switch</UCPTformatDescription> <UCPTdpSize>6</UCPTdpSize> <UCPTbaseType>BT_STRUCT</UCPTbaseType> <UCPTunit></UCPTunit> <SCPTmaxSendTime>0.0</SCPTmaxSendTime> <SCPTminSendTime>0.0</SCPTminSendTime> <SCPTmaxRcvTime>0.0</SCPTmaxRcvTime> <UCPTdefOutput>100.0 1</UCPTdefOutput> <UCPTsettings>0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</UCPTsettings> <UCPTdirection>DIR_OUT</UCPTdirection> <UCPTvalueDef> <OnValue>100.0 1</OnValue> <OffValue>0.0 0</OffValue> </UCPTvalueDef> </NVL> </iLONDataServer> DataServerGet 関数は、関数に渡した<Data>パラメータで参照したデータポイントのエレ メントを返します。各エレメントに含まれているプロパティは、データポイントが Data Server に追加されるときに最初に定義されます。このプロパティに書き込みを行うには、 DataServerSet 関数を使用します。表 10ではこれらのプロパティについて説明しています。 DataServerSet 関数の詳細については、4-15ページの「DataServerSet」を参照してくださ い。 表 10 DataServerGet の出力プロパティ プロパティ <UCPTindex> 説明 データポイントに割り当てられているインデックス番号は、 -32768∼32767 の範囲に収めます。DataServerSet 関数を使 用すると、新しい NVC データポイントを作成するか、既存の NVL、NVE、NVC データポイントを変更できます。 DataServerSet に渡す<Data>パラメータの中でインデックス 番号を指定しない場合は、使用可能な最初のインデックス番号 で新しいデータポイントが作成されます。 既に使用中のインデックス番号を指定した場合は、そのイン デックス番号を使用しているデータポイントの構成が、 <Data>パラメータに定義されている設定で上書きされます。 i.Lon 100 Internet Server Programmer’s Reference 4-11 プロパティ <UCPTpointName> 説明 データポイントの名前の長さは 31 文字までで、次のプレ フィックスで始めます。 • NVL データポイントの場合は NVL_ • NVE データポイントの場合は NVE_ • NVC データポイントの場合は NVC_ データポイントを Data Server に追加した後で、その <UCPTpointName>を変更することはできません。すべての <UCPTpointName>プロパティは一意である必要があり、ス ペースを含めることはできません。 注:Data Server の NVL データポイントに割り当てられる名前 は、NVL_[NAME]の命名規則に従います。ここで、[NAME]は LONMAKER でデータポイントを作成したときに NV に割り当て られたプログラミング名を表します。ネットワーク変数のプロ グラミング名は、LONMAKER でネットワーク変数名を右クリッ クし、Properties を選択することで確認できます。 <UCPTlocation> データポイントの場所を記述する 128 文字までの英数字から 成る文字列です。これはユーザ定義フィールドで、物理的な場 所またはデバイスごとにデータポイントを管理する際に役立ち ます。 <UCPTdescription> データポイントの説明です。最大長は 228 文字です。 <UCPTformatDescription> データポイントのフォーマットに関する説明です。データポイ ントの値の型や、ベース型など、データポイントに関する多く のエレメントを決定します。これには、i.LON 100 のリソース ファイルに含まれている任意の標準(SNVT)フォーマットを 使用することも、i.LON 100 にアップロードしたリソースファ イルに含まれているユーザ定義(UNVT)フォーマットを使用 することもできます。i.LON 100 のリソースファイルの詳細に ついては、3-12ページの「i.LON 100 のリソースファイル」を 参照してください。 i.LON 100 のリソースファイルに含まれている SNVT フォー マットタイプの説明は、SNVT Master List で参照することが できます。PDF 版は、次の Echelon 社の Web サイトからダウ ンロードできます。 http://www.echelon.com/support/documentation/Manuals/ <UCPTunit> 単位の種類。データポイントが測定される値の単位を記述する 228 文字までの文字列です。これは、データポイントに割り当 てられているネットワーク変数型を基にして指定する必要があ ります。 データポイントに割り当てられているネットワーク変数型の単 位が i.LON 100 のリソースファイルに存在する場合は、既定 値がこのプロパティに割り当てられます。 4-12 i.LON 100 Internet Server Programmer’s Reference プロパティ 説明 <UCPTbaseType> データポイントの<UCPTformatDescription>に基づいて、 データポイントに自動的に割り当てられる読み取り専用のプロ パティです。これは、i.LON 100 の BAS_Controller リソース ファイル内の base_type_t 列挙型の定義に従って、データポイ ントのベース型を定義します。 <UCPTdpSize> 読み取り専用。データポイントのサイズです。これはデータポ イントに割り当てられている<UCPTformatDescription>に よって決まります。 <SCPTmaxSendTime> このプロパティは出力データポイントに適用されます。この値 がゼロ以外の場合は、データポイントをネットワーク上で更新 する前に待機する最大時間を定義します。 たとえば、SNVT_temp のデータポイントが 10 秒ごとに 1℃ 変化し、このプロパティが 2 秒に設定されている場合、i.LON 100 ではデータポイントの値が 10 秒間で 1 回しか変化しなく ても、2 秒ごとにネットワーク上のデータポイント値が更新さ れます。受信側はこの出力をハートビートとして使用できま す。受信側が 2 秒ごとに更新を受信しなかった場合、異常が発 生していることがわかります。 <SCPTminSendTime> このプロパティは出力データポイントに適用されます。この値 がゼロ以外の場合は、データポイントを更新する前に待機する 最大時間を定義します。 たとえば、SNVT_temp のデータポイントが 0.5 秒ごとに 1℃ 変化し、このプロパティが 2 秒に設定されている場合、値がそ れより頻繁に変化しても、データポイント値は 2 秒ごとに最新 値で更新されます。 注:この期間が経過する前にデータポイントの更新が発生した 場合、<SCPTmaxSendTime>プロパティが定義されていない 限り、その更新はネットワーク上で伝達されません。プロパ ティが設定されている場合、更新は<SCPTmaxSendTime>期 間が過ぎた後にネットワーク上で伝達されます。 <SCPTmaxSendTime>が設定されていない場合、更新は失わ れます。このため、<SCPTmaxSendTime>プロパティを設定 することをお勧めします。 <SCPTmaxRcvTime> このプロパティは、バインドされているネットワーク入力の更 新後、別の更新が発生する前に待機する最大時間を制御しま す。更新が行われないままこの期間が経過した場合(またはこ の期間が経過したにもかかわらず、NVE データポイントが ポーリングされていない場合)、データポイントの <UCPTpointStatus>は AL_OFFLINE になります。アラーム ノーティファイアを作成すると、この状態が発生したときにア ラーム通知を送信することができます。アラームノーティファ イアの詳細については、第8章「アラームノーティファイア」 を参照してください。 このプロパティの有効な範囲は、0.0∼6,553.4 秒です。 <SCPTmaxRcvTime>を 0.0 の既定値に設定すると、受信障害 を検知する機能が無効になります。 i.Lon 100 Internet Server Programmer’s Reference 4-13 プロパティ <UCPTdefOutput> 説明 オプション。デバイスの起動後または機能ブロックのオーバー ライド中にこのデータポイントに割り当てられる値です。 スレーブとして動作する外部データポイントやデバイスに対し ては、このプロパティを定義することは奨励できません。ここ で入力する値は起動後に外部デバイスに送信されるためです。 注:DataServerSet を使用すると、Data Server でこの値を変 更できます。ただし、アプリケーションのプログラミングに よって新しい値を適用する必要があります。i.LON 100 ではリ ソースファイルに定義されている既定値を引き続き使用するた めです。 <UCPTminValue> オプション。この値は最初に i.LON 100 のリソースファイル から取り込まれ(選択したデータポイント型の種類に対してこ の値が存在する場合)、更新できるデータポイントの最小値を 表します。 注:DataServerSet を使用すると、Data Server でこの制限を 変更できます。ただし、アプリケーションのプログラミングに よって新しい制限を適用する必要があります。i.LON 100 では リソースファイルに定義されている制限を引き続き使用するた めです。 <UCPTmaxValue> オプション。この値は最初に i.LON 100 のリソースファイル から取り込まれ(選択されているデータポイント型に対してこ の値が存在する場合)、更新できるデータポイントの最大値を 表します。Data Server がこの制限を適用することはありませ ん。制限を適用するには、カスタムアプリケーションをプログ ラミングする必要があります。 注:DataServerSet を使用すると、Data Server でこの制限を 変更できます。ただし、アプリケーションのプログラミングに よって新しい制限を適用する必要があります。i.LON 100 では リソースファイルに定義されている制限を引き続き使用するた めです。 <UCPTinvalidValue> オプション。データポイントの無効値。データポイントが更新 され、この値に等しくなった場合、データポイントの <UCPTpointStatus>が AL_VALUE_INVALID に更新されま す。アラームノーティファイアを作成すると、この状態が発生 したときにアラーム通知を送信することができます。アラーム ノーティファイアの詳細については、第8章「アラームノー ティファイア」を参照してください。 このプロパティの既定値は、選択した <UCPTformatDescription>に基づいて割り当てられます。 注:DataServerSet を使用すると、Data Server でこの値を変 更することができます。ただし、アプリケーションのプログラ ミングによって新しい値を適用する必要があります。i.LON 100 ではリソースファイルに定義されている値を引き続き使用 するためです。 4-14 i.LON 100 Internet Server Programmer’s Reference プロパティ <UCPTsettings> 説明 コンマで区切られた 16 のブール値で構成される文字列です。 これらのフラグはデータポイントへのアクセス権をアプリケー ション内で指定する場合に使用します。 DataServerList 関数を呼び出すときは、オプションで <UCPTsetting>文字列を指定できます。この文字列は、各 データポイントのプロパティと比較されます。いずれかの文字 列のいずれかのビットが一致すると、DataServerList はその データポイントを出力に含めます。ビットが一致しない場合、 データポイントは含められません。この機能は特定のデータポ イントを表示およびアクセスできるユーザを制限する場合に使 用します。 <UCPTvalueDef> データポイントの値の定義を作成する場合に使用します。それ ぞれの値は<UCPTvalueDef>エレメント内のユーザが名付け た属性によって定義されます。これらの値の定義は、イベント スケジューラやアラームノーティファイアなどの他の i.LON 100 アプリケーションが参照するデータポイントのプリセット 値を表します。 この項で紹介している<Data>パラメータのサンプルは、デー タポイントの 2 つのプリセット値である OnValue と OffValue を定義します。 注:ここで入力する値には、データポイントに割り当てられて いるネットワーク変数型によって定義されている有効なフォー マットを使用する必要があります。 4.2.1.3 DataServerSet DataServerSet 関数を使用すると、NVL、NVC、NVE データポイントの構成を上書きする か、NVC データポイントを作成して Data Server に追加することができます。作成または 変更する各データポイントは、<Data>パラメータ内に各々のエレメントを保持しています。 NVL データポイントには<NVL>エレメント、NVC データポイントには<NVC>エレメント、 および NVE データポイントには<NVE>エレメントが存在します。 各データポイントエレメント内に含める必要のあるプロパティは、新しいデータポイントを 作成する場合も、既存のデータポイントを変更する場合も同じです。プロパティの詳細につ いては、前項の「DataServerGet」を参照してください。 注:既存のデータポイントを変更する場合、入力文字列に含まれていない<UCTPminValue>、 <UCPTmaxValue>、<UCPTdefOutput>、<UCPTinvalidValue>などのオプションのプロパ ティは消去されます。古い値は継承されないため、データポイントに書き込みを行うときは、 すべての値を変更しない場合でも、すべてのプロパティを指定する必要があります。 DataServerSet を使用してデータポイントを作成または変更するときは、DataServerGet の 出力を利用して<Data>パラメータを指定することができます。こうすると、文字列全体を最 初から作成する代わりに、新しいデータポイントの構成に一致するように各プロパティの値 を変更するだけで済むようになります。 次の例では、NVL_nvo01Switch というデータポイントの構成の再書き込みを行います。 NVL_nvo01Switch は NVL データポイントであるため、新しい構成は<NVL>エレメント内 に含まれます。 i.Lon 100 Internet Server Programmer’s Reference 4-15 注:DataServerSet の 1 回の呼び出しで、複数のデータポイントの作成や書き込みが可能で す。ただし、この関数の 1 回の呼び出しで、100 を超えるデータポイントの作成や書き込み を行わないようにしてください。また、i.LON 100 が使用できるメモリを最適化するため、 ネットワーク内ではデータポイントの数を常に 800 以下に保つようにしてください。 <Data>パ ラメータ <Data> <iLONDataServer> <NVL> <UCPTindex>200</UCPTindex> <UCPTpointName>NVL_nvo01Switch</UCPTpointName> <UCPTlocation>Light Kitchen</UCPTlocation> <UCPTdescription>Lamp Kitchen 230V; 100W</UCPTdescription> <UCPTformatDescription>SNVT_switch</UCPTformatDescription> <UCPTunit>State, %</UCPTunit> <UCPTbaseType>BT_STRUCT</UCPTbaseType> <UCPTunit>State, %</UCPTunit> <SCPTmaxSendTime>60</SCPTmaxSendTime> <SCPTminSendTime>10</SCPTminSendTime> <SCPTdefOutput>100.0 1</SCPTdefOutput> <UCPTminValue>0.0 0</UCPTminValue> <UCPTmaxValue>100.0 1</UCPTmaxValue> <UCPTinvalidValue>0.0 -1</UCPTinvalidValue> <UCPTsettings>1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1</UCPTsettings> <UCPTvalueDef> <OnValue>100.0 1</OnValue> <OffValue>100.0 0</OffValue> <BypassValue>50.0 1</BypassValue> <StdbyValue>10.0 0</StdbyValue> </UCPTvalueDef> </NVL> </iLONDataServer> </Data> <Result>パ ラメータ <Result> <iLONDataServer> <NVL> <UCPTindex>200</UCPTindex> </NVL> </iLONDataServer> </Result> 4.2.1.4 DataServerRead DataServerRead 関数を使用すると、Data Server に追加したデータポイントの値とステー タスを読み取ることができます。情報を取得したいデータポイントを指定するには、関数に 渡す<Data>パラメータ内でインデックス番号または名前を参照します。指定した入力データ ポイントが構造体の場合は、値を返すフィールドを以下の例のように指定します。 DataServerRead 関数は、関数に渡した<Data>パラメータ内で参照した各データポイントに 対するエレメントの一覧を返します。各エレメントには、データポイントに関連付けられて いるプロパティと属性の最新値が格納されます。これにはデータポイントに現在割り当てら れている値および優先度が含まれます。 次の<Data>パラメータの例では、3 つのデータポイントの情報をリクエストしています。 <Data>パラメータ内の各エレメント名は、その中で参照しているデータポイントの種類 (NVL、NVE、NVC)に一致する必要があります。例の後に続く表 11では、各データポイ ントの関数が返すプロパティについて説明しています。 4-16 i.LON 100 Internet Server Programmer’s Reference 注:この関数の 1 回の呼び出しで読み取るデータポイントの数は、100 以下にしてください。 <Data>パラ メータ <Data> <iLONDataServer> <NVL> <UCPTindex>0</UCPTindex> </NVL> <NVL> <UCPTpointName>NVL_nvo03Switch</UCPTpointName> </NVL> <NVE> <UCPTindex>9</UCPTindex> <UCPTfieldName>state</UCPTfieldName> </NVE> </iLONDataServer> </Data> <Result>パ ラメータ <Result> <iLONDataServer> <NVL> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nvo01Switch</UCPTpointName> <UCPTpointUpdateTime>2001-07-24T01:47:22.000+01:00</UCPTpointUpdateTime> <UCPTvalue>0.0 0</UCPTvalue> <UCPTvalueDef>OffValue</UCPTvalueDef> <UCPTunit>% of full level,state code</UCPTunit> <UCPTpointStatus>AL_NO_CONDITION</UCPTpointStatus> <UCPTpriority>250</UCPTpriority> </NVL> <NVL> <UCPTindex>10</UCPTindex> <UCPTpointName>NVL_nvo03Switch</UCPTpointName> <UCPTpointUpdateTime>2001-07-24T01:47:22.000+01:00</UCPTpointUpdateTime> <UCPTvalue>33.0 0</UCPTvalue> <UCPTunit>% of full level,state code</UCPTunit> <UCPTpointStatus>AL_NO_CONDITION</UCPTpointStatus> <UCPTpriority>250</UCPTpriority> </NVL> <NVE> <UCPTindex>9</UCPTindex> <UCPTpointName>NVL_nvo02Switch</UCPTpointName> <UCPTfieldName>state</UCPTfieldName> <UCPTpointUpdateTime>2001-07-24T01:47:22.000+01:00</UCPTpointUpdateTime> <UCPTvalue>1</UCPTvalue> <UCPTunit>state code</UCPTunit> <UCPTpointStatus>AL_NO_CONDITION</UCPTpointStatus> <UCPTpriority>250</UCPTpriority> </NVE> </iLONDataServer> </Result> DataServerRead 関数は、関数に渡した<Data>パラメータで参照した各データポイントのエ レメントを返します。表 11では、各エレメントに含まれているプロパティについて説明して います。 表 11 DataServerRead の出力プロパティ プロパティ 説明 <UCPTindex> データポイントに割り当てられているインデックス番号。 <UCPTpointName> データポイント名。 i.Lon 100 Internet Server Programmer’s Reference 4-17 プロパティ 説明 <UCPTfieldName> フィールドの値が<Data>パラメータの中でリクエストされてい る場合、このプロパティには指定したフィールド名が含まれま す。 <UCPTpointUpdateTime> データポイントの値が最後に更新された時刻を示すタイムスタン プ。このタイムスタンプはローカル時間で表され、ローカル時間 と協定世界時(UTC)との時差を示す時間帯インジケータが付 加されます。UTCは、以前はグリニッジ標準時(GMT)と一般 的に呼ばれていたものを示す現在の用語です。0時間のUTCは、 ゼロ度の経線上にあるイギリスのグリニッジにおける深夜0時を 表します。協定世界時は24時間制に基づいているため、4 pmな どの午後の時間は16:00 UTCと表されます。タイムスタンプは次 のフォーマットを使用します。 [YYYY-MM-DD]T[HH:MM:SS.MSS]+/-[HH:MM] タイムスタンプの最初のセグメント[YYYY-MM-DD]は、日付を 表します。2番目のセグメント(T[HH:MM:SS.MSS])は、ロー カル時間を時、分、秒、ミリ秒で表します。3番目のセグメント (+/-[HH:MM])は、2番目のセグメントに表示されているロー カル時間とUTCとの時差を表します。このセグメントは+またはで始まります。+はローカル時間がUTCより進んでいることを示 し、-はローカル時間がUTCより遅れていることを示します。 例:2002-08-13T10:24:37.111+02:00 このタイムスタンプは、ローカル日時が 2002 年 8 月 13 日の午 前 10 時 24 分、37.111 秒であることを示しています。3 番目の セグメントは+02:00 となっているため、このローカル時間は UTC より 2 時間進んでいることがわかります。 <UCPTvalue> データポイントに現在割り当てられている値。 <UCPTvalueDef> データポイントが使用する値の定義。データポイントのプリセッ ト値を表します。この定義を作成するには i.LON 100 構成ソフ トウェアまたは DataServerSet 関数を使用します。値の定義を 使用すると、イベントスケジューラやアラームノーティファイア などの他の i.LON 100 アプリケーションが参照しているデータ ポイントの値を更新することができます。 <UCPTunit> 単位の種類。このプロパティはデータポイントのネットワーク変 数型によって決まります。 <UCPTpointStatus> データポイントの現在のステータス。これは、i.LON 100 でア ラームジェネレータまたはアラームノーティファイアを設定する ときに使用します。アプリケーションの詳細については、第7章 「アラームジェネレータ」および第8章「アラームノーティファ イア」を参照してください。 <UCPTpriority> データポイントに割り当てられている優先度(0∼255)。デー タポイントの優先度は、データポイントに書き込みを行うアプリ ケーションの優先度を決定します。このプロパティの値を変更す るには、DataServerWrite または DataServerResetPriority 関 数を使用します。 優先度の詳細については、2-8ページの「データポイント値と優 先度」を参照してください。 4-18 i.LON 100 Internet Server Programmer’s Reference 4.2.1.5 DataServerWrite データポイントの値と優先度は、データポイントを Data Server に追加したときに最初に設 定されます。値はデータポイントの<UCPTdefOutput>プロパティに指定した値に設定され、 既定の優先度は最低の優先度(255)です。 DataServerWrite 関数を使用すると、一度に複数のデータポイントの値と優先度を更新でき ます。書き込みを行うデータポイントは、関数に渡す<Data>パラメータの中でインデックス 番号(UCPTindex)またはポイント名(UCPTpointName)で参照する必要があります。 データポイントが構造体の場合は、<UCPTfieldName>プロパティに値を入力することで、 値を書き込むフィールドを指定できます。この場合、<UCPTpropagate>プロパティにも入 力を行うと便利です。このプロパティに既定値の 1 を割り当てた場合、データポイントへの 変更はネットワークに伝達されます。このプロパティに 0 を割り当てた場合、変更は i.LON 100 Data Server 内で行われますが、LONWORKS ネットワーク全体には伝達されません。こ れは、DataServerWrite への呼び出しで 1 つの構造の異なるフィールドに書き込みを行い、 関数がすべてのフィールドに書き込みを行うまでネットワーク上で構造を更新しないように する場合に便利です。 <Data>パラメータに指定した優先度は、データポイントに最後に書き込みを行ったときの優 先度よりも高いレベルを指定する必要があります。優先度が低い場合、データポイントは更 新されません。優先度の詳細については、2-8ページの「データポイント値と優先度」を参照 してください。 次の<Data>パラメータ例では、3 つのデータポイントに書き込みを行います。<Data>パラ メータ内の各エレメント名は、その中で参照するデータポイントの種類(NVL、NVE、 NVC)に一致させる必要があることに注意してください。 注:データポイント値の書き込みには、値の定義(UCPTvalueDef)または実際の値 (UCPTvalue)を使用することができます。以下の例では、両方のオプションを示していま す。この関数の 1 回の呼び出しで書き込むデータポイントの数は、100 以内にしてください。 <Data>パ ラメータ <Data> <iLONDataServer> <NVL> <UCPTpointName>NVL_nvo01Switch</UCPTpointName> <UCPTvalueDef>OffValue</UCPTvalueDef> <UCPTpriority>25</UCPTpriority> </NVL> <NVL> <UCPTindex>5</UCPTindex> <UCPTfieldName>state</UCPTfieldName> <UCPTvalue>1</UCPTvalue> <UCPTpriority>50</UCPTpriority> <UCPTpropagate>0</UCPTpropagate> </NVL> <NVE> <UCPTindex>9</UCPTindex> <UCPTpointName>NVL_nvo02Switch</UCPTpointName> <UCPTvalue>100.0 0</UCPTvalue> <UCPTpriority>50</UCPTpriority> <UCPTpropagate>1</UCPTpropagate> </NVE> </iLONDataServer> </Data> i.Lon 100 Internet Server Programmer’s Reference 4-19 <Result> パラメー タ <Result> <iLONDataServer> <NVL> <UCPTindex>8</UCPTindex> </NVL> <NVL> <UCPTindex>10</UCPTindex> <UCPTfieldName>state</UCPTfieldName> </NVL> <NVL> <UCPTindex>9</UCPTindex> </NVL> </iLONDataServer> </Result> 4.2.1.6 DataServerResetPriority DataServerResetPriority 関数を使用すると、データポイントの優先度を最低優先度の 255 にリセットできます。データポイントの優先度をリセットするには、関数に渡す<Data>パラ メータ内で、リセットしたいデータポイントのインデックス番号または名前を参照します。 優先度は 0∼255 の範囲で指定できます。0 は最高優先度を表し、255 は最低優先度を表しま す。データポイントに割り当てられている優先度が 255 にリセットされると、どのアプリ ケーションでもそのデータポイント値に書き込みができるようになります。 データポイントをリセットするには、<Data>パラメータで指定した優先度が、データポイン トに現在割り当てられている優先度よりも高くなければなりません。優先度の詳細について は、2-8ページの「データポイント値と優先度」を参照してください。 注:この関数の 1 回の呼び出しでリセットするデータポイントの数は、100 以内にしてくだ さい。 <Data>パラメータ <Data> <iLONDataServer> <NVL> <UCPTindex>9</UCPTindex> <UCPTpriority>215</UCPTpriority> </NVL> <NVL> <UCPTpointName>NVL_nviRequest</UCPTpointName> <UCPTpriority>220</UCPTpriority> </NVL> </iLONDataServer> </Data> <Result>パラメータ <Result> <iLONDataServer> <NVL> <UCPTindex>9</UCPTindex> </NVL> <NVL> <UCPTindex>0</UCPTindex> </NVL> </iLONDataServer> </Result> 4.2.1.7 DataServerDelete DataServerDelete 関数を使用すると、データポイントを Data Server から削除することが できます。データポイントを削除するには、関数に渡す<Data>パラメータの中で削除したい データポイントをインデックス番号で参照します。 4-20 i.LON 100 Internet Server Programmer’s Reference NVL および NVE データポイントの削除は、2 段階の手順で行う必要があります。NVL デー タポイントは、この関数を使用して削除する前に、LONMAKER から削除します。 LONMAKER を使用してローカルの NV を削除すると、Data Server 内の関連する NVL デー タポイントのインデックス値が 5000 増分され、そのステータスが AL_CONSTANT に設定 されます。これによって、データポイントを Data Server から削除する前に、他のアプリ ケーションがそれを参照しようとした結果生じるエラーを避けることができます。 NVE データポイントを削除するときは、NVEDelete 関数を使用して NVE ドライバから削 除する必要もあります。データポイントを Data Server から削除する前に、NVE ドライバ 内の対応するデータポイントのエントリを削除した場合、Data Server 内のデータポイント のインデックスが 5,000 より大きい値に変更されます。これによって、このデータポイント を参照するアプリケーションは、操作中に Data Server から有効なハンドルを受け取ること ができます。ほとんどの場合、この操作によってアプリケーションに影響が及ぶことはあり ません。たとえばデータロガーでは、ドライバエントリのないポイントから更新が送られる ことはないため、削除されたデータポイントに対してデータが記録されることはありません。 注:この関数の 1 回の呼び出しで削除するデータポイントは、100 以内にしてください。 <Data>パラメータ <Data> <iLONDataServer> <NVL> <UCPTindex>0</UCPTindex> </NVL> </iLONDataServer> </Data> <Result>パラメータ <Result> <iLONDataServer> <NVL> <UCPTindex>0</UCPTindex> </NVL> </iLONDataServer> </Result> i.Lon 100 Internet Server Programmer’s Reference 4-21 5 NVE ドライバ NVE ドライバ内のデータポイントエントリは、LONWORKS ネットワーク内の i.LON 100 が 明示的にアドレスを指定しているデバイスのネットワーク変数を表します。ネットワーク変 数をポーリングすることで、ドライバがデバイス内のデータを読み書きします。i.LON 100 とローカルのデバイス間のネットワーク変数はバインドする必要はありません。 ネットワーク上でデータポイントの値をポーリングするには、NVE ドライバの情報に、デー タポイントのローカルデバイスの LONWORKS アドレス指定情報がすべて含まれていなけれ ばなりません。これは、NVE ドライバが i.LON 100 Data Server、および i.LON 100 が制 御している外部ネットワークデバイス間の通信を管理するためです。 NVE ドライバにエントリを追加するたびに、新しい NVE データポイントが i.LON 100 Data Server の既定のパラメータを使用して自動的に作成されます。既定のパラメータでは 要件を満たさない場合には、DataServerSet 関数を使用してパラメータを変更してください。 たとえば、NVE データポイントのフォーマット型は、既定では RAW_HEX に設定されます。 Data Server アプリケーションの詳細については、4-1ページの「Data Server」を参照して ください。 ここでは、NVE SOAP インタフェースを使用してデータポイントのエントリを NVE ドライ バに追加する方法について説明します。 5.1 Driver_NVE.XML Driver_NVE.XML ファイルは NVE ドライバの構成を格納します。NVE ドライバに追加し た各データポイントのエントリは、XML ファイルでは<NVE>エレメントによって表されま す。 これらのエントリを作成するには、NVESet 関数を使用するか、Driver_NVE.xml ファイル を手動で編集し、i.LON 100 を再起動します。以下に XML ファイルのサンプルを示します。 エントリを作成するときのガイドラインと手順については、次項を参照してください。 次のコードは、NVE ドライバに 3 つのエントリを持つ i.LON 100 用の Driver_NVE.XML ファイルのサンプルを表しています。NVE SOAP 関数を使用して NVE データポイントのエ ントリを作成する方法については、次項を参照してください。 <?xml version="1.0" ?> <iLONDriverNVE> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <UCPTlastUpdate>2002-07-04T12:03:23Z</UCPTlastUpdate> <NVE> <UCPTindex>0</UCPTindex> <UCPTpointName>NVE_nviEnum</UCPTpointName> <UCPTnvSelector>3ffd</UCPTnvSelector> <UCPTnvIndex>2</UCPTnvIndex> <UCPTdirection>DIR_IN</UCPTdirection> <UCPTneuronID>0 5 80 51 12 0</UCPTneuronID> <UCPTlogSourceAddress>0 0 0</UCPTlogSourceAddress> <UCPTpollRate>5</UCPTpollRate> <UCPTdevHandle>0</UCPTdevHandle> </NVE> <NVE> <UCPTindex>2</UCPTindex> <UCPTpointName>NVE_nvoEnum</UCPTpointName> <UCPTnvSelector>3ffa</UCPTnvSelector> <UCPTnvIndex>5</UCPTnvIndex> <UCPTdirection>DIR_OUT</UCPTdirection> <UCPTneuronID>0 5 80 51 12 0</UCPTneuronID> i.Lon 100 Internet Server Programmer’s Reference 5-1 <UCPTlogSourceAddress>0 0 0</UCPTlogSourceAddress> <UCPTpollRate>5</UCPTpollRate> <UCPTdevHandle>0</UCPTdevHandle> </NVE> <UCPTindex>1</UCPTindex> <UCPTpointName>NVE_nviTemp</UCPTpointName> <UCPTnvSelector>3ffb</UCPTnvSelector> <UCPTnvIndex>4</UCPTnvIndex> <UCPTdirection>DIR_IN</UCPTdirection> <UCPTneuronID>0 5 80 51 12 0</UCPTneuronID> <UCPTlogSourceAddress>0 0 0</UCPTlogSourceAddress> <UCPTpollRate>2</UCPTpollRate> <UCPTdevHandle>0</UCPTdevHandle> </NVE> </iLONDriverNVE> 5.2 NVE ドライバの構成 Driver_NVE.XML ファイルは NVE ドライバの構成および NVE データポイントを格納しま す。Driver_NVE.XML ファイルは NVESet SOAP 関数を使用して作成し、管理することが できます。次項の「NVE SOAP インタフェース」では、NVESet およびその他の NVE SOAP 関数の使用方法について説明します。 別の方法として、XML テキストエディタを使用して Driver_NVE.XML ファイルを手動で作 成・管理し、FTP を経由して i.LON 100 にダウンロードする方法もあります。Echelon 社で は、この方法は奨励していません。ダウンロードしたファイルの構成を読み取るには、 i.LON 100 を再起動する必要があるためです。また、i.LON 100 は XML ファイルに書き込 みを行う前に、受信した SOAP メッセージすべてのエラーチェックを実行しますが、FTP を 経由してダウンロードした XML ファイルに対してはエラーチェックは行われないため、ア プリケーションが正しく起動しない場合があります。 この XML ファイルを手動で作成または変更する場合には、この章の残りの部分をお読みく ださい。ここでは、各 NVE データポイントの構成を定義する Driver_NVE.XML ファイル 内のエレメントとプロパティについて説明しています。XML ファイルを手動で作成または 変更する方法については、17-1ページの「XML 構成ファイルの手動変更」を参照してくだ さい。 5.2.1 NVE SOAP インタフェース NVE ドライバの SOAP インタフェースには、4 つの関数が含まれています。表 12ではこれ らの関数を一覧表示し、これらについて説明しています。各関数の詳細については、表 12の 後に続く各項を参照してください。 表 12 関数 NVE SOAP の関数 説明 NVEList NVE ドライバに追加したデータポイントエントリの一覧を生成 します。詳細については、5-3ページの「NVEList」を参照して ください。 NVEGet NVE ドライバ内のエントリの構成を返します。詳細について は、5-3ページの「NVEGet」を参照してください。 NVESet NVE ドライバ内のデータポイントエントリを作成するか、既存 の NVE ドライバのエントリの構成を上書きします。詳細につい ては、5-6ページの「NVESet」を参照してください。 NVEDelete NVE ドライバのエントリを削除します。詳細については、5-7 5-2 i.LON 100 Internet Server Programmer’s Reference ページの「NVEDelete」を参照してください。 5.2.1.1 NVEList NVEList 関数を使用すると、NVE ドライバに追加したエントリの一覧を取得することがで きます。NVEList 関数は、空の文字列を<Data>パラメータとして受け入れます。 この関数は、NVE ドライバのバージョンの番号(主および副)と、NVE ドライバの構成が 最後に更新されたときの時刻を表すタイムスタンプを、<Result>パラメータの中で返します。 タイムスタンプは ISO 8601 規格に従って UTC 時間で表されます。 次に<Result>パラメータには、NVE ドライバに追加した各エントリの<NVE>エレメントも 含まれています。各エレメントには、関連する NVE エントリのインデックス番号と名前が 含まれています。この関数が返す<NVE>エレメントの一覧を NVEGet 関数の入力として使 用すると、一覧に含まれている各 NVE エレメントの構成が返されます。 <Data>パラメー タ <Result>パラ メータ Empty String <Result> <iLONDriverNVE> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <UCPTlastUpdate>2002-07-04T11:54:21Z</UCPTlastUpdate> <NVE> <UCPTindex>0</UCPTindex> <UCPTpointName>NVE_nviEnum</UCPTpointName> </NVE> <NVE> <UCPTindex>2</UCPTindex> <UCPTpointName>NVE_nvoEnum</UCPTpointName> </NVE> <NVE> <UCPTindex>3</UCPTindex> <UCPTpointName>NVE_nvoTemp</UCPTpointName> </NVE> <NVE> <UCPTindex>1</UCPTindex> <UCPTpointName>NVE_nviTemp</UCPTpointName> </NVE> </iLONDriverNVE> <Result> 5.2.1.2 NVEGet NVEGet 関数を使用すると、NVE ドライバ内のエントリの構成を取得できます。構成を返 す NVE ドライバのエントリは、関数に渡す<Data>パラメータの中でインデックス番号で参 照します。 <Data>パラメータ <Data> <iLONDriverNVE> <NVE> <UCPTindex>0</UCPTindex> </NVE> </iLONDriverNVE> </Data> i.Lon 100 Internet Server Programmer’s Reference 5-3 <Result>パラメータ <Result> <iLONDriverNVE> <NVE> <UCPTindex>0</UCPTindex> <UCPTpointName>NVE_nviEnum</UCPTpointName> <UCPTnvSelector>3ffd</UCPTnvSelector> <UCPTnvIndex>2</UCPTnvIndex> <UCPTdirection>DIR_IN</UCPTdirection> <UCPTneuronID>0 5 80 51 12 0</UCPTneuronID> <UCPTlogSourceAddress>0 0 0</UCPTlogSourceAddress> <UCPTpollRate>5</UCPTpollRate> <UCPTdevHandle>0</UCPTdevHandle> </NVE> </iLONDriverNVE> </Result> この関数は、渡した<Data>パラメータの中で指定した各 NVE エントリの<NVE>エレメン トを返します。各エレメントに含まれているプロパティは、NVE エントリが NVE ドライバ に追加されるときに最初に定義されます。このプロパティに書き込みを行うには、NVESet 関数を使用します。表 13では、これらのプロパティについて説明しています。 NVESet 関数の詳細については、5-6ページの「NVESet」を参照してください。 表 13 プロパティ <UCPTindex> NVESet の入力プロパティ 説明 NVE データポイントに割り当てられているインデックス番号 は、–32768∼32767 の範囲内に収めます。NVESet 関数を使用 すると、NVE ドライバに新しい NVE データポイントを作成す るか、既存の NVE データポイントを変更できます。NVESet に渡す<Data>パラメータ内でインデックス番号を指定しない場 合、使用可能な最初のインデックス番号で新しい NVE データ ポイントが使用されます。 既に使用中のインデックス番号を指定した場合は、そのイン デックス番号を使用しているデータポイントの構成が、<Data> パラメータに定義されている設定で上書きされます。 <UCPTpointName> NVE ドライバエントリの名前を 31 文字までの文字列で指定し ます。名前は NVE_nviVoltage のように NVE_のプレフィック スで始めます。スペースを含めることはできません。 これは、i.LON 100 Data Server 内の NVE データポイントに 割り当てられる名前になります。この名前を使用して、Data Server 内およびその他すべての i.LON 100 アプリケーション でデータポイントを参照します。 <UCPTnvSelector> ネットワーク変数のローカルデバイスで定義されているネット ワーク変数のセレクタです。DIR_IN が<UCPTdirection>プロ パティとなる場合にのみ使用します。このセレクタは、NV を 更新するために使用します。 注:セレクタは、データポイントがローカルのデバイスにバイ ンドされるときに設定されます。バインドされていないネット ワーク変数の場合、セレクタは 0x3fff – UCPTnvIndex になりま す。 5-4 i.LON 100 Internet Server Programmer’s Reference プロパティ 説明 <UCPTnvIndex> ローカルのデバイスで定義されている外部ネットワーク変数の インデックス番号です。これは 0∼65,535 の範囲内で指定する 必要があります。nvIndex はネットワーク変数(DIR_IN また は DIR_OUT)のポーリングに使用します。 <UCPTdirection> DIR_IN または DIR_OUT のどちらかです。これは、ネット ワーク変数のローカルのデバイスに定義されているネットワー ク変数の方向を表します。 <UCPTneuronID> ネットワーク変数のローカルのデバイスを識別する Neuron ID です。このプロパティは、<UCPTlogSourceAddress>プロパ ティが定義されていないか、<UCPTlogSourceAddress>プロパ ティに有効なネットワークアドレスが含まれていない場合にの み使用します。 <UCPTlogSourceAddress> ネットワーク変数を含むデバイスの LONWORKS ネットワーク アドレスです。このアドレスのフォーマットは次のとおりで す。 [Subnet 0 Node] Subnet と Node はどちらも 10 進数の値で入力します。Subnet と Node の間のゼロは、予約フィールドです。ネットワークア ドレスは、常にこのフォーマットで入力してください。 Subnet がゼロより大きい値の場合は、このプロパティが定義し ているアドレスを使用して、外部デバイスのデータポイントの ポーリングと更新を実行します。Subnet が 0(無効)の場合 は、外部デバイスのアドレス指定に Neuron ID が使用されま す。 <UCPTpollRate> LONWORKS ネットワークでネットワーク変数の値をポーリング するときの既定の間隔。この値は秒単位で入力し、0.0∼ 214,748,364.0 の範囲内で指定します。Data Server は、この間 隔が指定した時間が経過するたびに NVE ドライバをポーリン グし、データポイントの値を取得します。ゼロの値を指定する と、このネットワーク変数のポーリングが無効になります。 他の i.LON 100 アプリケーションによって、Data Server が NVE ドライバをポーリングし、このデータポイントの値を取得 する場合もあります。これらのアプリケーションと Data Server に指定されているポーリングレートは、互いに互換性が なければなりません。たとえば、アラームノーティファイアが 15 秒ごとにデータポイントをポーリングし、データロガーが 10 秒ごとにデータポイントをポーリングしている場合、Data Server は 5 秒ごとにドライバをポーリングし、各アプリケーシ ョンがポーリングによって現在の値を確実に取得するようにし ます。 さまざまなアプリケーションのポーリングレートを設定する際 は、注意が必要です。ネットワークでのポーリングの頻度が多 くなると、効率が悪くなる場合があるためです。たとえば、ア ラームジェネレータがデータポイントを 9 秒ごとにポーリング していて、データロガーがデータポイントを 10 秒ごとにポー リングしている場合、Data Server はデータポイントを毎秒 ポーリングしなければならなくなります。 i.Lon 100 Internet Server Programmer’s Reference 5-5 プロパティ <UCPTdevHandle> 説明 LNS で構成したデバイスに適用されるオプションのプロパティ です。データポイントに関連付けられているデバイスの AppDevice オブジェクトに割り当てられているハンドルプロパ ティ(AppDevice.Handle)を指定します。これは、ネット ワーク変数の構成への変更を調整する場合に使用します。 5.2.1.3 NVESet NVESet 関数を使用すると、新しい NVE データポイントのエントリを作成するか、既存の NVE データポイントエントリの構成を上書きすることができます。作成または変更する NVE エントリは、<Data>パラメータ内の<NVE>エレメントの一覧で指定します。各 <NVE>エレメント内に含める必要のあるプロパティは、新しい NVE エントリを作成する場 合でも、既存の NVE エントリを変更する場合でも同じです。 これらのプロパティの詳細については、前項の「NVEGet」を参照してください。プロパ ティは数多くあるため、割り当てる値を判断するには、デバイスをインストールするときに 使用するネットワーク管理ツールを利用するか、LONWORKS ネットワーク上でデバイスのイ ンタフェースに直接問い合わせる必要があります。 注:既存の NVE エントリを変更する場合、入力文字列に指定されていないオプションのプロ パティは消去されます。古い値は継承されないため、NVE エントリに書き込みを行うときは、 すべての値を変更しない場合でも、すべてのプロパティを指定する必要があります。 i.LON 100 が起動すると、既定の空の Driver_NVE.XML ファイルが i.LON 100 の /root/Config/software/Driver ディレクトリに生成されます(まだ存在しない場合)。 NVESet を使用して NVE を作成または変更するときは、NVEGet の出力を利用して、 <Data>パラメータを指定することができます。こうすると、文字列全体を最初から作成する 代わりに、新しい構成に一致するように各プロパティの値を変更するだけで済みます。 NVE ドライバにエントリを追加するたびに、同じ<UCPTpointName>を持つ対応するエン トリが、Data Server の既定のパラメータを使用して自動的に作成されます。既定のパラ メータでは要件を満たさない場合には、DataServerSet 関数を使用してパラメータを変更し てください。各データポイントに割り当てられている既定のパラメータは DataServerGet 関 数を使用して確認し、DataServerSet 関数を使用して書き込むことができます。これらの関 数の詳細については、第4章「Data Server」を参照してください。 次の例では、NVESet 関数を使用して NVE_nviTemp2 という名前のエントリを NVE ドラ イバに追加しています。 注:i.LON 100 ではこの情報を LonWorks ネットワークから取得するプログラミング手法は 提供していません。ただし、i.LON 100 構成ソフトウェアでは LNS ベースのネットワーク管 理ツールを使用してデータポイントを作成するためのユーザインタフェースを提供していま す。詳細については、『i.LON 100 Internet Server ユーザガイド』を参照してください。 5-6 i.LON 100 Internet Server Programmer’s Reference <Data>パラメータ <Result>パラメータ <Data> <iLONDriverNVE> <NVE> <UCPTindex></UCPTindex> <UCPTpointName>NVE_nviTemp2</UCPTpointName> <UCPTnvSelector>3ffb</UCPTnvSelector> <UCPTnvIndex>4</UCPTnvIndex> <UCPTdirection>DIR_IN</UCPTdirection> <UCPTneuronID>0 5 80 51 12 0</UCPTneuronID> <UCPTlogSourceAddress>0 0 0</UCPTlogSourceAddress> <UCPTpollRate>2</UCPTpollRate> <UCPTdevHandle>0</UCPTdevHandle> </NVE> </iLONDriverNVE> </Data> <Result> <iLONDriverNVE> <NVE> <UCPTindex>11</UCPTindex> </NVE> </iLONDriverNVE> </Result> 5.2.1.4 NVEDelete NVEDelete 関数を使用すると、NVE ドライバからエントリを削除できます。削除するエン トリは、関数に渡す<Data>パラメータの中でインデックス番号で参照します。 対応するデータポイントが Data Server から削除される前に、NVE ドライバ内のエントリ を削除すると、Data Server 内のエントリは削除されなくなります。その代わりに、Data Server 内のデータポイントのインデックスが 5,000 より大きい値に変更されます。これに よって、このデータポイントを参照しているアプリケーションは、操作中に Data Server か ら有効なハンドルを受け取るようになります。ほとんどの場合、これによってアプリケーシ ョンに影響が及ぶことはありません。たとえばデータロガーでは、ドライバのエントリがな いポイントから更新が発生することはないため、削除されているデータポイントのデータは 記録されません。 <Data>パラメータ <Data> <iLONDriverNVE> <NVE> <UCPTindex>11</UCPTindex> </NVE> </iLONDriverNVE> </Data> <Result>パラメータ <Result> <iLONDriverNVE> <NVE> <UCPTindex>11</UCPTindex> </NVE> </iLONDriverNVE> </Result> i.Lon 100 Internet Server Programmer’s Reference 5-7 6 データロガー データロガーを使用すると、ネットワーク上の活動を監視することができます。データロ ガーは、ユーザが指定したデータポイントの更新情報をログファイルに記録します。記録情 報には、データポイントの更新後の値やステータスなどがあります。 各 i.LON 100 は、最高 10 までのデータロガーをサポートします。データロガーのログファ イルは、i.LON 100 の/root/Data ディレクトリに、logX というファイル名で保存されます。 X はデータロガーに割り当てられたインデックス番号を表します。 作成できるデータロガーには、履歴データロガーと循環データロガーの 2 種類があります。 履歴データロガーは、ログファイルが一杯になるとデータポイントの記録を停止します。循 環データロガーは、ログファイルが一杯になった後に新しい更新が発生した場合、古い更新 の記録を削除します。データロガーが保存できるログファイルの種類には ASCII テキスト (.csv のファイル拡張子)とバイナリ(.dat のファイル拡張子)があります。 データロガーが監視している各データポイントには、ログを記録する最小間隔、および必要 な最小変更値を指定します。データポイントへの更新が記録されると、そのデータポイント に指定した最小間隔が経過し、最小変更値を超えて変化があるまで記録されません。最小間 隔と最小変更値条件が満たされる前に入力データポイントのいずれかが更新された場合、値 は破棄されます。データロガーは最小間隔と最小変更値条件が満たされたときにだけ最新の 更新を記録します。これによって、ログへのデータエントリの記録を最小限に留めることが できます。 各データロガーにはしきい値レベルを定義することもできます。しきい値レベルはパーセン トで表します。データロガーのログファイルが割り当てられているメモリ容量のうち、指定 したパーセント率を消費すると、ログをアップロードし、データの一部をクリアする必要が あることを示す通知が送られます。データロガーはアラームデータポイント (NVL_nvoDlAlarm[X]と呼ばれ、X はデータロガーに割り当てられているインデックス番 号を表す)を AL_ALM_CONDITION のステータスに更新することで、この通知を行います。 この機能は、履歴データロガーを使用している場合に役立ちます。アラームノーティファイ アの詳細については、第 8 章を参照してください。 ログファイルのデータにアクセスするには、ログファイルを手動で開くか、 DataLoggerRead SOAP 関数を使用します。データをログからクリアするには、 DataLoggerClear 関数を使用するか、更新を NVL_nviDlClear[X]データポイントに送信し ます。ここで、X は対象のデータロガーのインデックス番号を表します。詳細については本 章で後述します。 6.1 DataLogger.XML DataLogger.XML ファイルは、i.LON 100 に追加したデータロガーの構成を格納します。 データロガーは XML ファイル内の<Log>エレメントで表されます。各<Log>エレメントに 含まれている構成プロパティが、データロガーの構成を定義します。詳細については、本章 で後述します。 新しいデータロガーを作成するには、DataLoggerSet SOAP 関数を使用するか、手動で DataLogger.XML ファイルを編集します。データロガーを作成する際のガイドラインと手順 については、サンプルの後の各項を参考にしてください。 次のコード例は、定義済みの 3 つのデータロガーを使用した、i.LON 100 の DataLogger.XML ファイルを表しています。 <?xml version="1.0" ?> <iLONDataLogger> <SCPTobjMajVer>1</SCPTobjMajVer> i.Lon 100 Internet Server Programmer’s Reference 6-1 <SCPTobjMinVer>0</SCPTobjMinVer> <Log> <UCPTindex>0</UCPTindex> <UCPTlastUpdate>2002-02-12T14:36:51Z</UCPTlastUpdate> <UCPTdescription>Data Logger 0</UCPTdescription> <UCPTlogType>LT_CIRCULAR</UCPTlogType> <UCPTlogSize>100</UCPTlogSize> <UCPTlogFormat>LF_BINARY</UCPTlogFormat> <UCPTlogLevelAlarm>0.0</UCPTlogLevelAlarm> <Point> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nviWHTot1</UCPTpointName> <UCPTlogMinDeltaTime>0.0</UCPTlogMinDeltaTime> <UCPTlogMinDeltaValue>0</UCPTlogMinDeltaValue> <UCPTpollRate>0</UCPTpollRate> </Point> <Point> <UCPTindex>1</UCPTindex> <UCPTpointName>NVL_nviWHTot2</UCPTpointName> <UCPTlogMinDeltaTime>0.0</UCPTlogMinDeltaTime> <UCPTlogMinDeltaValue>0</UCPTlogMinDeltaValue> <UCPTpollRate>0</UCPTpollRate> </Point> </Log> <Log> <UCPTindex>1</UCPTindex> <UCPTlastUpdate>2002-02-12T14:41:15Z</UCPTlastUpdate> <UCPTdescription>Data Logger 1</UCPTdescription> <UCPTlogType>LT_HISTORICAL</UCPTlogType> <UCPTlogSize>10</UCPTlogSize> <UCPTlogFormat>LF_TEXT</UCPTlogFormat> <UCPTlogLevelAlarm>30.0</UCPTlogLevelAlarm> <Point> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nviDLTemp_f</UCPTpointName> <UCPTlogMinDeltaTime>0.0</UCPTlogMinDeltaTime> <UCPTlogMinDeltaValue>0</UCPTlogMinDeltaValue> <UCPTpollRate>0</UCPTpollRate> </Point> </Log> <Log> <UCPTindex>2</UCPTindex> <UCPTlastUpdate>2029-06-18T07:10:12Z</UCPTlastUpdate> <UCPTdescription>Data Logger 2</UCPTdescription> <UCPTlogType>LT_HISTORICAL</UCPTlogType> <UCPTlogSize>100</UCPTlogSize> <UCPTlogFormat>LF_TEXT</UCPTlogFormat> <UCPTlogLevelAlarm>30.0</UCPTlogLevelAlarm> <Point> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_AI_Analog</UCPTpointName> <UCPTlogMinDeltaTime>10.0</UCPTlogMinDeltaTime> <UCPTlogMinDeltaValue>0</UCPTlogMinDeltaValue> <UCPTpollRate>10</UCPTpollRate> </Point> <Point> <UCPTindex>1</UCPTindex> <UCPTpointName>NVL_nviWeekend</UCPTpointName> <UCPTlogMinDeltaTime>10.0</UCPTlogMinDeltaTime> <UCPTlogMinDeltaValue>0</UCPTlogMinDeltaValue> <UCPTpollRate>10</UCPTpollRate> 6-2 i.LON 100 Internet Server Programmer’s Reference </Point> <Point> <UCPTindex>2</UCPTindex> <UCPTpointName>NVL_nvoWeekday</UCPTpointName> <UCPTlogMinDeltaTime>10.0</UCPTlogMinDeltaTime> <UCPTlogMinDeltaValue>0</UCPTlogMinDeltaValue> <UCPTpollRate>10</UCPTpollRate> </Point> </Log> </iLONDataLogger> 6.2 DataLogger.XML ファイルの作成と変更 DataLogger.XML ファイルは、DataLoggerSet SOAP 関数を使用して作成および変更しま す。次の「データロガーの SOAP インタフェース」では、DataLoggerSet、およびデータロ ガーアプリケーションに付属の各種 SOAP 関数について説明します。 DataLogger.XML ファイルを手動で作成および変更し、FTP を経由して i.LON 100 にダウ ンロードすることもできます。ただし、Echelon 社ではこの方法は奨励していません。ダウ ンロードしたファイルの構成を読み取るには、i.LON 100 を再起動する必要があるためです。 また、i.LON 100 は XML ファイルに書き込みを行う前に、すべての SOAP メッセージのエ ラーチェックを実行しますが、FTP を経由してダウンロードされた XML ファイルのエラー チェックは実行しないため、アプリケーションが正しく起動しない場合があります。 DataLogger. XML ファイルの作成や変更を手動で行う場合には、まず本章の残りの部分をお 読みください。ここでは、データロガーの構成を定義する XML ファイル内のエレメントと プロパティについて説明しています。XML ファイルを手動で作成または変更する方法につい ては、17-1ページの「XML 構成ファイルの手動変更」を参照してください。 6.2.1 データロガーの SOAP インタフェース データロガーアプリケーション用の SOAP インタフェースには、6 つの関数が含まれていま す。表 14ではこれらの関数を一覧表示し、各関数について説明しています。詳細については、 表 14の後に続く各項を参照してください。 表 14 データロガーの SOAP 関数 関数 説明 DataloggerList i.LON 100 に追加したデータロガーの一覧を生成します。詳細について は、6-4ページの「DataLoggerList」を参照してください。 DataloggerGet i.LON 100 に追加したデータロガーの構成を取得します。詳細について は、6-5ページの「DataLoggerGet」を参照してください。 DataloggerSet 新しいデータロガーを作成するか、既存のデータロガーの構成を上書き します。詳細については、6-9ページの「DataLoggerSet」を参照して ください。 DataloggerRead データロガーが記録したログエントリの一部または全部を読み取りま す。詳細については、6-10ページの「DataLoggerRead」を参照してく ださい。 DataloggerClear データロガーが記録したログエントリの一部または全部をログファイル から削除します。詳細については、6-13ページの「DataLoggerClear」 を参照してください。 DataloggerDelete データロガーを削除します。詳細については、 6-15ページの「DataLoggerDelete」を参照してください。 i.Lon 100 Internet Server Programmer’s Reference 6-3 6.2.1.1 DataLoggerList DataLoggerList 関数を使用すると、i.LON 100 に追加したデータロガーの一覧を取得する ことができます。DataLoggerList 関数は<Data>パラメータとして空の文字列を受け入れま す。 この関数は、データロガーアプリケーションが使用しているファームウェアのバージョン番 号(主および副)を<Result>パラメータ内に返します。<Result>パラメータには、i.LON 100 に追加した各データロガーの<Log>エレメントも含まれます。次の「DataLoggerGet」 で、<Log>エレメントに含まれるプロパティについて説明します。 この関数が返す<Log>エレメントの一覧は、DataLoggerGet 関数の入力として使用できます。 DataLoggerGet 関数は、<Log>エレメントに含まれている各データロガーの構成を返します。 <Data>パラメータ Empty String <Result>パラメータ <Result> <iLONDataLogger> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <Log> <UCPTindex>0</UCPTindex> <UCPTlastUpdate>2002-1221T12:31:00Z</UCPTlastUpdate> <UCPTdescription>Light first Floor</UCPTdescription> <UCPTfbName>Data Logger- 0</UCPTfbName> </Log> <Log> <UCPTindex>1</UCPTindex> <UCPTlastUpdate>2002-1221T12:31:01Z</UCPTlastUpdate> <UCPTdescription>Energy data</UCPTdescription> <UCPTfbName>Data Logger- 1</UCPTfbName> </Log> <Log> <UCPTindex>2</UCPTindex> <UCPTlastUpdate>2002-1221T12:31:02Z</UCPTlastUpdate> <UCPTdescription>Light second Floor</UCPTdescription> <UCPTfbName>Data Logger- 2</UCPTfbName> </Log> </iLONDataLogger> </Result> 6-4 i.LON 100 Internet Server Programmer’s Reference 6.2.1.2 DataLoggerGet DataLoggerGet 関数を使用すると、i.LON 100 に追加したデータロガーの構成を取得するこ とができます。構成情報を取得したいデータロガーは、関数に渡す<Data>パラメータ内でイ ンデックス番号を指定する必要があります。 <Data>パラメータ <Result>パラメー タ <Data> <iLONDataLogger> <Log> <UCPTindex>0</UCPTindex> </Log> </iLONDataLogger> </Data> <Result> <iLONDataLogger> <Log> <UCPTindex>0</UCPTindex> <UCPTlastUpdate>2002-0212T14:36:51Z</UCPTlastUpdate> <UCPTdescription>Temperature monitor</UCPTdescription> <UCPTfbName>Data Logger- 0</UCPTfbName> <UCPTlogType>LT_CIRCULAR</UCPTlogType> <UCPTlogSize>100</UCPTlogSize> <UCPTlogFormat>LF_BINARY</UCPTlogFormat> <UCPTlogLevelAlarm>0.0</UCPTlogLevelAlarm> <Point> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nviWHTot1</UCPTpointName> <UCPTlogMinDeltaTime>0.0</UCPTlogMinDeltaTime> <UCPTlogMinDeltaValue>0</UCPTlogMinDeltaValue> <UCPTpollRate>0</UCPTpollRate> </Point> <Point> <UCPTindex>1</UCPTindex> <UCPTpointName>NVL_nviWHTot2</UCPTpointName> <UCPTlogMinDeltaTime>0.0</UCPTlogMinDeltaTime> <UCPTlogMinDeltaValue>0</UCPTlogMinDeltaValue> <UCPTpollRate>0</UCPTpollRate> </Point> </Log> </iLONDataLogger> </Result> DataLoggerGet 関数は、関数に渡した<Data>パラメータで参照したデータロガーの<Log> エレメントを返します。<Log>エレメントに含まれているプロパティは、データロガーの作 成時に最初に定義されます。このプロパティに書き込みを行うには、DataLoggerSet 関数を 使用します。表 15ではこれらのプロパティについて説明しています。 DataLoggerSet 関数の詳細については、6-9ページの「DataLoggerSet」を参照してくださ い。 i.Lon 100 Internet Server Programmer’s Reference 6-5 表 15 DataLoggerGet の出力プロパティ プロパティ <UCPTindex> 説明 データロガーに割り当てられるインデックス番号は、 -32,768∼32,767 の範囲に収めます。DataLoggerSet 関数を使用す ると、新しいデータロガーを作成するか、既存のデータロガーを変 更することができます。DataLoggerSet に渡す<Data>パラメータ の中でインデックス番号を指定しない場合は、使用可能な最初のイ ンデックス番号で新しいデータポイントが作成されます。 既に使用中のインデックス番号を指定した場合は、そのインデック ス番号を使用しているデータロガーの構成が、<Data>パラメータ に定義されている設定で上書きされます。 <UCPTlastUpdate> データロガーの構成が最後に更新された時刻を示すタイムスタン プ。このタイムスタンプは次のフォーマットを使用します。 YYYY-MM-DDTHH:MM:SSZ タイムスタンプの最初のセグメント(YYYY-MM-DD)は、データ ロガーの構成が最後に更新された日を表します。2 番目のセグメン ト(THH:MM:SS)は、データロガーの構成が最後に更新された日 の時刻を協定世界時(UTC)で表します。 UTC は、以前はグリニッジ標準時(GMT)と一般的に呼ばれてい たものを示す現在の用語です。0 時間の UTC は、ゼロ度の経線上 にあるイギリスのグリニッジにおける深夜 0 時を表します。協定世 界時は 24 時間制に基づいているため、4 pm などの午後の時間は 16:00 UTC と表されます。タイムスタンプに追加される Z は、そ れが UTC 単位であることを示します。 たとえば 2002-08-15T10:13:13Z は、2002 年 8 月 15 日の午前 10 時 13 分 13 秒の UTC 時間を示します。 <UCPTfbName> LONMAKER でデータロガーに割り当てられた機能ブロック名。こ のプロパティに書き込みを行うことはできますが、i.LON 100 構成 ソフトウェアを使用してデータロガーを表示するたびに、このプロ パティは LONMAKER で定義されている機能ブロック名にリセット されます。 <UCPTdescription> データロガーのユーザ定義の説明。この長さは最大 228 文字です。 <UCPTlogType> LT_HISTORICAL または LT_CIRCULAR のどちらか。これは、 ログが履歴と循環のどちらであるかを示します。履歴データログ は、ログが一杯になったときにデータポイントの更新の記録を停止 します。循環データログは、ログが一杯になった後に新しい更新を 受信すると、古い値を削除します。 6-6 i.LON 100 Internet Server Programmer’s Reference プロパティ <UCPTlogSize> 説明 ログファイルに割り当てられているメモリ量。ここには整数値をキ ロバイト単位で入力します。 i.LON 100 のすべてのデータロガー(およびアラームノーティファ イア)のログファイルの合計サイズは、i.LON 100 に搭載されてい るフラッシュメモリのサイズを超過できないことに注意してくださ い。フラッシュメモリの残りの容量が 256 KB になると、i.LON 100 はログファイルへの書き込みを停止します。 フラッシュメモリの残量は、SystemInfoRead 関数を使用して監視 できます。詳細については、第15章「i.LON 100 のフラッシュメモ リ」を参照してください。 <UCPTlogFormat> LF_TEXT または LF_BINARY のどちらか。このプロパティは、 データロガーが使用するログファイルが ASCII テキストフォー マットの CSV ファイル(LF_TEXT)と独自のバイナリフォーマッ ト(LF_BINARY)のどちらであるかを示します。 <UCPTlogLevelAlarm> 0.0∼100.0 の範囲の値を入力します。既定値は 0.0 です。この値は パーセント率で表します。データロガーの量がこの値に達すると、 データロガーの出力データポイントのステータスが AL_ALM_CONDITION の状態に更新されます。データロガーの出 力データポイントは、NVL_nvoDlLevAlarm[X]と表されます。X はデータロガーに割り当てられているインデックス番号です。たと えば、ここに 30.0 を入力した場合は、ログファイルに割り当てら れている領域の 30%を消費したときに、データポイントが更新され ます。 アラームノーティファイアを作成すると、いずれかのデータロガー がこのレベルに達するたびにアラーム通知を送信できます。詳細に ついては、第8章「アラームノーティファイア」を参照してくださ い。 データロガーの現在のログレベルを確認するには、 DataLoggerRead 関数を使用するか、または DataLoggerRead 関 数を使用して NVL_nviDlStatus[X]データポイントの値フィールド を読み取ります。X はデータロガーに割り当てられているインデッ クス番号です。このデータポイントの値は、ログファイルが何パー セント消費したかを表します。 ログファイルをクリアするには、DataLoggerClear 関数を使用する か、NVL_nviDlClear[X]に割り当てられている値を更新します。X はデータロガーに割り当てられているインデックス番号です。デー タポイントの更新時にデータポイントに割り当てる値フィールド は、合計ログサイズのうちどれだけをクリアするかを表します。た とえば、ログが 100KB のうち 50%消費されており、データポイン トの値を"30.0 1"に更新すると、アプリケーションはログの先頭に アクセスして最初の 30%(この場合には 30K)をクリアします。 このデータポイントの値を更新するには、DataServerWrite または DataPointWrite 関数を使用します。 i.Lon 100 Internet Server Programmer’s Reference 6-7 プロパティ <Point> 説明 データロガーが更新を記録するデータポイントは、<Point>エレメ ントの一覧で定義します。 <Point>エレメントによって定義したデータポイントのいずれかが 更新されると、データロガーはその更新をログファイルに記録しま す。<Point>エレメントには様々なプロパティが用意されており、 データポイントへの更新をどのようにログに記録するかを決定しま す。これらのプロパティの説明については、以下の「表 16」を参 照してください。 データロガーが監視するデータポイントの数に制限はありません。 データロガーが監視するデータポイントは、<Point>エレメントの一覧によって定義します。 表 16では、各<Point>エレメント内で定義すべきプロパティについて説明しています。 表 16 プロパティ DataLoggerGet の<Point>エレメントのプロパティ 説明 <UCPTpointName> データロガーが監視するデータポイント名で、i.LON 100 Data Server で定義されているもの。 <UCPTlogMinDeltaTime> データポイントのログエントリを一度記録してから、次の更新 を記録するまでの最小間隔を秒単位で指定します。この値が 0.0 であるか、定義されていない場合には、すべての更新がロ グに記録されます。 このプロパティの最大値は 214,748,364.0 秒です。既定値は 0.0 秒です。 注:この値が DataLogger の<UCPTpollRate>プロパティの値と は異なっている場合に、i.LON 100 構成ソフトウェアを使用し てデータロガーの表示または変更を行うと、この値は <UCPTpollRate>プロパティの値で上書きされます。 <UCPTlogMinDeltaValue> このプロパティは、スカラーデータポイントのみに適用されま す。ログにエントリを記録するのに必要な値の変化量を指定し ます。たとえば、このプロパティを 30.0 に設定した場合、監視 しているデータポイントの値は更新中に少なくとも 30.0 変化し ないと、データロガーはその変更をログに記録しません。この 値が 0.0 であるか、定義されていない場合には、すべての更新 がログに記録されます。 このプロパティの最小および最大浮動小数点値は+/3.402823466e+038 です。 6-8 i.LON 100 Internet Server Programmer’s Reference プロパティ <UCPTpollRate> 説明 データロガーのポーリングレートは、0∼214,748,364.0 秒の範 囲で指定します。データロガーはこの間隔で、データポイント への更新をチェックします。更新がログに記録できる状態にな る前にデータをポーリングしないようにするには、この値を <UCPTlogMinDeltaTime>プロパティに指定した値以上に設定 することをお勧めします。 0 秒の既定のポーリングレートを使用した場合、データロガー は<UCPTlogMinDeltaTime>プロパティに指定した時間が経過 しており、<UCPTlogMinDeltaValue>プロパティに指定した最 小変更値の条件が満たされているものと見なし、監視している データポイントのすべての更新をログに記録します。 6.2.1.3 DataLoggerSet DataLoggerSet 関数を使用すると、新しいデータロガーを作成するか、既存のデータロガー の構成を上書きすることができます。作成または変更するデータロガーは、<Data>パラメー タ内の<Log>エレメントの一覧で指定します。各<Log>エレメント内に含める必要のあるプ ロパティは、新しいデータロガーを作成する場合でも、既存のデータロガーを変更する場合 でも同じです。これらのプロパティの詳細については、前項の「DataLoggerGet」を参照し てください。 注:既存のデータロガーを変更する場合、入力文字列に指定されていないオプションのプロ パティは消去されます。古い値は継承されないため、データロガーに書き込みを行うときは、 すべての値を変更しない場合でも、すべてのプロパティを指定する必要があります。 DataLoggerSet 関数を初めて呼び出すと、i.LON 100 の/root/Config/Software ディレクトリ に DataLogger.XML ファイルが生成されます(ファイルがまだ存在しない場合)。 DataLoggerSet を使用してデータロガーを作成または変更するときは、DataLoggerGet 関 数の出力を利用して、<Data>パラメータを作成することができます。こうすると、文字列全 体を最初から作成する代わりに、新しい構成に一致するように各プロパティの値を変更する だけで済みます。 次の例では、2 つのデータポイントの更新をすべて記録するデータロガーを作成します。 データポイントの名前は NVL_nviWHTot1 と NVL_nviWHTot2 です。 i.Lon 100 Internet Server Programmer’s Reference 6-9 <Data>パラメー タ <Data> <iLONDataLogger> <Log> <UCPTdescription>Data Logger 1</UCPTdescription> <UCPTfbName></UCPTfbName> <UCPTlogType>LT_CIRCULAR</UCPTlogType> <UCPTlogSize>100</UCPTlogSize> <UCPTlogFormat>LF_BINARY</UCPTlogFormat> <UCPTlogLevelAlarm>0.0</UCPTlogLevelAlarm> <Point> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nviWHTot1</UCPTpointName> <UCPTlogMinDeltaTime>0.0</UCPTlogMinDeltaTime> <UCPTlogMinDeltaValue>0</UCPTlogMinDeltaValue> <UCPTpollRate>0.0</UCPTpollRate> </Point> <Point> <UCPTindex>1</UCPTindex> <UCPTpointName>NVL_nviWHTot2</UCPTpointName> <UCPTlogMinDeltaTime>0.0</UCPTlogMinDeltaTime> <UCPTlogMinDeltaValue>0</UCPTlogMinDeltaValue> <UCPTpollRate>0</UCPTpollRate> </Point> </Log> </iLONDataLogger> </Data> <Result>パラメー タ <Result> <iLONDataLogger> <Log> <UCPTindex>3</UCPTindex> </Log> </iLONDataLogger> </Result> 6.2.1.4 DataLoggerRead DataLoggerRead 関数を使用すると、データロガーが生成したログファイル内のエントリを 取得することができます。関数が返すログエントリを指定するには、関数に渡す<Data>パラ メータの中で、表 17で説明するプロパティを指定します。 表 17 プロパティ DataLoggerRead の入力プロパティ 説明 <UCPTindex> ログエントリを返す対象となるデータロガーのインデックス番号。 <UCPTpointName> ログエントリを返す対象となるデータポイントの名前。このプロパ ティを指定しない場合は、データロガーが監視しているすべてのデー タポイントのログエントリが返されます。 <UCPTcount> 関数が返すエントリの最大数。このプロパティを指定しない場合は、 <UCPTstart>および<UCPTstop>プロパティに指定した間隔内にログ に記録された、すべてのログエントリが返されます。 注:この関数の 1 回の呼び出しで読み取るログエントリの数は、150 までに制限してください。 6-10 i.LON 100 Internet Server Programmer’s Reference <UCPTstart> <UCPTstop> ログエントリが返される間隔。開始時刻と終了時刻を指定すること も、終了時刻だけを指定することもできます。 開始時刻と終了時刻を指定していて、この間隔内にログエントリの数 が指定の最大数を超えてしまった場合は、この間隔内に記録されたロ グエントリの最初の部分が返されます。 終了時刻のみを指定していて、この時刻が経過する前に、ログエント リの数が指定の最大数を超えてしまった場合は、終了時刻前に記録さ れたログエントリの最初の部分が返されます。 開始時刻または終了時刻を入力しなかった場合は、対象となるデータ ポイントのすべてのログエントリが指定の最大数に達するまで返され ます。 <UCPTstart>および<UCPTstop>プロパティは、ローカル時間のタイ ムスタンプとして入力し、ローカル時間と UTC の時差を表す時間帯イ ンジケータを付加する必要があります。このフォーマットの詳細につ いては、6-11ページの「ローカル時間と協定世界時」を参照してくだ さい。 6.2.1.4.1 ローカル時間と協定世界時 <UCPTstart>および<UCPTstop>プロパティのタイムスタンプは、ISO 8601 規格に準じて います。これらはローカル時間で表され、協定世界時(UTC)との関係を示す時間帯インジ ケータが付加されます。 UTC は、以前はグリニッジ標準時(GMT)と一般的に呼ばれていたものを示す現在の用語 です。0 時間の UTC は、ゼロ度の経線上にあるイギリスのグリニッジにおける深夜 0 時を表 します。協定世界時は 24 時間制に基づいているため、4 pm などの午後の時間は 16:00 UTC と表されます。タイムスタンプは次のフォーマットを使用します。 [YYYY-MM-DD]T[HH:MM:SS.MSS]+/-[HH:MM] タイムスタンプの最初のセグメント[YYYY-MM-DD]は、日付を表します。2 番目のセグメン ト(T[HH:MM:SS.MSS])は、ローカル時間を時、分、秒、ミリ秒で表します。 3 番目のセグメント(+/-[HH:MM])は、2 番目のセグメントに表示されているローカル時間 と UTC との時差を表します。このセグメントは+または-で始まります。+はローカル時間が UTC より進んでいることを示し、-はローカル時間が UTC より遅れていることを示します。 例:2002-08-13T10:24:37.111+02:00 このタイムスタンプは、ローカル日時が 2002 年 8 月 13 日の午前 10 時 24 分、37.111 秒で あることを示しています。3 番目のセグメントは+02:00 となっているため、このローカル時 間は UTC より 2 時間進んでいることがわかります。 6.2.1.4.2 SOAP メッセージのサンプル 次のコード例は、インデックス番号 2 のデータロガーが、NVL_nviDlCount2 データポイン トに対して 2002 年 01 月 27 日 2:00 から 2002 年 11 月 28 日 14:30 の間に記録した 3 つまで のログエントリの一覧を返します。 i.Lon 100 Internet Server Programmer’s Reference 6-11 <Data>パラメータ <Data> <iLONDataLogger> <Log> <UCPTindex>2</UCPTindex> <UCPTpointName>NVL_nviDlCount2</UCPTpointName> <UCPTstart>2002-0127T02:00:00.000+01:00</UCPTstart> <UCPTstop>2002-11-28T04:30:00.000+01:00</UCPTstop> <UCPTcount>3</UCPTcount> </Log> </iLONDataLogger> </Data> <Result>パ ラメータ <Result> <iLONDataLogger> <Log> <UCPTindex>2</UCPTindex> <UCPTfileName>/root/data/log2.dat</UCPTfileName> <UCPTstart>2002-08-29T10:30:11.000-07:00</UCPTstart> <UCPTstop>2002-08-29T14:34:20.000-07:00</UCPTstop> <UCPTlogLevel>8.5</UCPTlogLevel> <Element> <UCPTpointName>NVL_nviDlCount2</UCPTpointName> <UCPTlocation>iLON100</UCPTlocation> <UCPTlogSourceAddress>0.0</UCPTlogSourceAddress> <UCPTlogTime>2002-08-29T10:30:11.000-07:00</UCPTlogTime> <UCPTvalue>0</UCPTvalue> <UCPTunit>units (delta)</UCPTunit> <UCPTpointStatus>AL_NO_CONDITION</UCPTpointStatus> </Element> <Element> <UCPTpointName>NVL_nviDlCount2</UCPTpointName> <UCPTlocation>iLON100</UCPTlocation> <UCPTlogSourceAddress>1.3</UCPTlogSourceAddress> <UCPTlogTime>2002-08-29T10:31:00.000-07:00</UCPTlogTime> <UCPTvalue>5</UCPTvalue> <UCPTunit>units (delta)</UCPTunit> <UCPTpointStatus>AL_NO_CONDITION</UCPTpointStatus> </Element> <Element> <UCPTpointName>NVL_nviDlCount2</UCPTpointName> <UCPTlocation>iLON100</UCPTlocation> <UCPTlogSourceAddress>1.3</UCPTlogSourceAddress> <UCPTlogTime>2002-08-29T10:32:00.000-07:00</UCPTlogTime> <UCPTvalue>20</UCPTvalue> <UCPTunit>units (delta)</UCPTunit> <UCPTpointStatus>AL_NO_CONDITION</UCPTpointStatus> </Element> </Log> </iLONDataLogger> </Result> DataLoggerRead 関数の<Result>パラメータの先頭にはグローバルプロパティが格納され、 データロガー、およびエントリを読み取ったログファイルに関する情報を提供します。表 18 ではこれらのプロパティについて説明しています。 表 18 プロパティ DataLoggerRead のグローバル出力プロパティ 説明 <UCPTindex> データロガーに割り当てられているインデックス番号。 <UCPTfileName> データロガーが使用しているログファイルの名前。 6-12 i.LON 100 Internet Server Programmer’s Reference プロパティ 説明 <UCPTstart> ログファイル内の最初と最後のログエントリのログ時間を示すタ イムスタンプ。タイムスタンプはローカル時間で表され、ローカ ル時間と UTC の時差を示す時間帯インジケータが付加されま す。詳細については、6-11ページの「ローカル時間と協定世界 時」を参照してください。 <UCPTstop> ログファイルの使用率をパーセントで示します。たとえば、90.0 はログが 90%消費されたことを示します。 <UCPTlogLevel> DataLoggerRead 関数は、<Data>パラメータに指定した条件を満たす各ログエントリについ て、詳細を記述した<Element>エレメントも返します。表 19では、これらのエレメントに含 まれているプロパティについて説明しています。 表 19 DataLoggerRead の<Element>プロパティ プロパティ 説明 <UCPTpointName> 更新されたデータポイントの名前。 <UCPTlogSourceAddress> データポイントのソースアドレスを次のフォーマットで返しま す。 [Subnet.Node] <UCPTlogTime> ログエントリが記録された時刻を示すタイムスタンプ。このタ イムスタンプはローカル時間で表され、ローカル時間と UTC の時差を示す時間帯インジケータが付加されます。詳細につい ては、6-11ページの「ローカル時間と協定世界時」を参照して ください。 <UCPTvalueDef> データポイントが現在使用している値の定義。値の定義はプリ セット値を表す文字列で、データポイントが Data Server に追 加されるときに作成されます。この機能の詳細については、第 4 章「Data Server」を参照してください。 このプロパティは、更新後にデータポイントが値の定義を使用 していない場合、空のまま返されます。 <UCPTvalue> データポイントの更新後の値。 <UCPTunit> データポイントの単位の種類。 <UCPTpointStatus> データポイントの更新後のステータス。 6.2.1.5 DataLoggerClear DataLoggerClear 関数を使用すると、データロガーのログファイルからログエントリを削除 することができます。対象となるデータロガーと、削除するログエントリを指定するには、 関数に渡す<Data>パラメータの中で、表 20で説明するプロパティを構成します。 注:この関数は、ログエントリのみを削除します。データロガーそのものを削除するには、 DataLoggerDelete 関数を使用してください。 表 20 DataLoggerClear の入力プロパティ パラメータ <UCPTindex> 説明 対象となるデータロガーのインデックス番号。 i.Lon 100 Internet Server Programmer’s Reference 6-13 <UCPTpointName> 削除するログエントリを含むデータポイントの名前。このプロパティ を指定しない場合は、データロガーが監視しているすべてのデータポ イントのログエントリが削除されます。 <UCPTcount> 関数が削除するログエントリの最大数。このプロパティを指定しない 場合は、<UCPTstart>および<UCPTstop>プロパティに定義されてい る間隔内にログに記録された、すべてのログエントリが削除されま す。 <UCPTstart> 削除するログエントリの間隔。開始時刻と終了時刻を指定すること も、終了時刻だけを指定することもできます。 <UCPTstop> 開始時刻と終了時刻を指定していて、この間隔内にログエントリの数 が指定の最大数を超えてしまった場合は、この間隔中に記録されたロ グエントリの最初の部分が削除されます。 終了時刻のみを指定していて、この時刻が経過する前に、ログエント リの数が指定の最大数を超えてしまった場合は、終了時刻前に記録さ れたログエントリの最初の部分が削除されます。 開始時刻または終了時刻を入力しなかった場合は、対象となるデータ ポイントのすべてのログエントリが指定の最大数に達するまで削除さ れます。 <UCPTstart>および<UCPTstop>プロパティは、ローカル時間のタイ ムスタンプとして入力し、ローカル時間と UTC の時差を表す時間帯イ ンジケータを付加する必要があります。このフォーマットの詳細につ いては、6-11ページの「ローカル時間と協定世界時」を参照してくだ さい。 次の DataLoggerClear 関数の例は、NVL_nviDlCount2 データポイントのログエントリを最 高 200 まで削除します。削除されるエントリは、2002 年 1 月 27 日から 2002 年 11 月 28 日 (どちらも UTC との時差は+1 時間)に記録されたものになります。 <Data>パラメータ <Data> <iLONDataLogger> <Log> <UCPTindex>2</UCPTindex> <UCPTpointName>NVL_nviDlCount2</UCPTpointName> <UCPTstart>2002-0127T00:00:00.000+01:00</UCPTstart> <UCPTstop>2002-11-28T00:00:00.000+01:00</UCPTstop> <UCPTcount>3</UCPTcount> </Log> </iLONDataLogger> </Data> 6-14 i.LON 100 Internet Server Programmer’s Reference <Result>パラメータ <Result> <iLONDataLogger> <Log> <UCPTindex>2</UCPTindex> <UCPTfileName>/root/data/log2.dat</UCPTfileName> <UCPTstart>2002-08-29T10:32:00.00007:00</UCPTstart> <UCPTstop>2002-08-29T14:34:20.00007:00</UCPTstop> <UCPTlogLevel>8.5</UCPTlogLevel> </Log> </iLONDataLogger> </Result> DataLoggerClear 関数の<Result>パラメータにはグローバルプロパティが格納され、削除さ れるログエントリを含むデータロガーとログファイルに関する情報を提供します。表 21では これらのプロパティについて説明しています。 表 21 DataLoggerClear のグローバル出力プロパティ プロパティ 説明 <UCPTindex> データロガーに割り当てられているインデックス番号。 <UCPTfileName> データロガーが使用しているログファイルの名前。 <UCPTstart> ログファイル内の最初と最後のログエントリのログ時間を示すタ イムスタンプ。タイムスタンプはローカル時間で表され、ローカ ル時間と UTC の時差を示す時間帯インジケータが付加されま す。詳細については、6-11ページの「ローカル時間と協定世界 時」を参照してください。 <UCPTstop> <UCPTlogLevel> ログファイルの使用率をパーセントで示します。たとえば、90.0 はログが 90%消費されたことを示します。 6.2.1.6 DataLoggerDelete DataLoggerDelete 関数を使用すると、データロガーを削除することができます。データロ ガーを削除するには、関数に渡す<Data>パラメータの中で削除したいデータロガーをイン デックス番号で参照します。 <Data>パラメータ <Data> <iLONDataLogger> <Log> <UCPTindex>0</UCPTindex> </Log> </iLONDataLogger> </Data> <Result>パラメー タ <Result> <iLONDataLogger> <Log> <UCPTindex>0</UCPTindex> </Log> </iLONDataLogger> </Result> i.Lon 100 Internet Server Programmer’s Reference 6-15 7 アラームジェネレータ アラームジェネレータは、ネットワーク内のデータポイントのいずれかの値に基づいてア ラームを生成します。アラームジェネレータを作成する際には、入力データポイントと比較 データポイントを選択します。アラームジェネレータは入力データポイントの値または比較 データポイントの値が更新されるたびに、双方の値を比較します。アラームジェネレータが 比較に使用する関数はユーザーが選択します。比較の結果が真の場合は、アラームが生成さ れ、入力データポイントのステータス(UCPTpointStatus)がアラーム状態に更新されます。 たとえば、Greater Than 比較関数を選択するとします。アラームジェネレータはどちらかの データポイントが更新され、入力データポイントの値が比較データポイントよりも大きいと きにアラームを生成します。アラームジェネレータには、Less Than、Less Than or Equal、 Greater Than or Equal、Equal、Not Equal などの多くの比較関数が含まれています。比較 関数の詳細については、本章で後述します。 アラームジェネレータアプリケーションには Limits という比較関数も含まれています。この 比較関数を選択した場合は、アラームジェネレータに 4 つのオフセット制限値を指定します。 4 つのオフセット制限値を使用すると、入力データポイントの値が比較データポイントの値 よりもどれだけ高いか、または低いかに基づいてアラームを生成できるようになります。ア ラームジェネレータは、どちらかのデータポイントが更新され、これらのデータポイント値 の差がオフセット制限値を超過したときにアラームを生成します。 Limits 比較関数を使用するときには、各アラームオフセット制限のヒステリシスレベルを定 義します。アラームが生成された後、アラームがクリアされ、そのオフセット制限値に基づ いて別のアラームを生成できるようになるには、入力データポイントの値が、オフセット制 限値に定義したヒステリシスレベルに戻る必要があります。その結果入力データポイントが アラーム条件に達してから通常の状態に戻るまでの間、データが更新されるたびにアラーム ジェネレータが追加のアラームを生成することがなくなります。オフセット値、ヒステリシ スレベル、およびアラームデータポイントの関係については、次の各項で詳しく説明します。 比較関数には、アラームの生成を抑制するための追加機能が備えられています。たとえば、 データポイントのアラームの生成間隔(UCPTalarmSetTime)や、通常の状態に戻ってから アラームがクリアされるまでの時間(UCPTalarmClrTime)を指定することができます。こ れらの機能によって、入力データポイントがアラーム状態に達するたびにアラームジェネ レータが複数のアラームをトリガするのを避けることができます。 オプションで、各アラームジェネレータには 2 つまでのアラームデータポイントを選択でき ます。1 つは SNVT_alarm 型で、もう 1 つは UNVT_alarm2 型のデータポイントです。ア ラームデータポイントおよび入力データポイントのステータス<UCPTpointStatus>は、ア ラームジェネレータがアラームを生成するたびにアラーム状態になります。アラームデータ ポイントの詳細については、本章で後述します。 アラームノーティファイアアプリケーションを使用すると、アラームデータポイントと入力 データポイントがアラーム状態になったときに電子メールメッセージを生成することができ ます。この機能の詳細については、第8章「アラームノーティファイア」を参照してください。 7.1 AlarmGenerator.XML AlarmGenerator.XML ファイルは、i.LON 100 に追加したアラームジェネレータの構成を格 納します。各アラームジェネレータは XML ファイル内の<Alarm>エレメントで示されます。 新しいアラームジェネレータを作成するには、AlarmGeneratorSet SOAP 関数を使用するか、 手動で AlarmGenerator.XML ファイルを編集し、i.LON 100 を再起動します。アラーム ジェネレータを作成する際のガイドラインと手順については、サンプルの後の各項を参考に してください。 i.Lon 100 Internet Server Programmer’s Reference 7-1 次のコード例は、アラームジェネレータが 1 つ定義された i.LON 100 の AlarmGenerator.XML ファイルを表しています。 <?xml version="1.0" ?> <iLONAlarmGenerator> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <Alarm> <UCPTindex>0</UCPTindex> <UCPTlastUpdate>2002-06-20T12:37:53Z</UCPTlastUpdate> <UCPTdescription>Heating Control</UCPTdescription> <UCPTfbName>Alarm Generator- 0</UCPTfbName> <SCPTalrmIhbT>0 03:00:00.000</SCPTalrmIhbT> <UCPTalarmPriority>PR_LEVEL_1</UCPTalarmPriority> <UCPTpollOnResetDelay>0.0</UCPTpollOnResetDelay> <UCPTpollRate>0</UCPTpollRate> <UCPTalarm2Description>none</UCPTalarm2Description> <InputDataPoint> <UCPTpointName>NVL_DataValueA1</UCPTpointName> </InputDataPoint> <CompareDataPoint> <UCPTpointName>NVL_CompareValueA1</UCPTpointName> </CompareDataPoint> <AlarmDataPoint> <UCPTpointName>NVL_AlarmGenOut1</UCPTpointName> </AlarmDataPoint> <Alarm2DataPoint> <UCPTpointName>NVL_AlarmGenOut2</UCPTpointName> </Alarm2DataPoint> <UCPTcompFunction>FN_LIMIT</UCPTcompFunction> <UCPTalarmSetTime>0 00:30:00.000</UCPTalarmSetTime> <UCPTalarmClrTime>0 00:45:00.000</UCPTalarmClrTime> <UCPTlowLimit1Offset>5.0</UCPTlowLimit1Offset> <UCPTlowLimit2Offset>5.0</UCPTlowLimit2Offset> <UCPThighLimit1Offset>5.0</UCPThighLimit1Offset> <UCPThighLimit2Offset>5.0</UCPThighLimit2Offset> <SCPThystHigh1>50.00</SCPThystHigh1> <SCPThystHigh2>75.00</SCPThystHigh2> <SCPThystLow1>50.00</SCPThystLow1> <SCPThystLow2>75.00</SCPThystLow2> </Alarm> </iLONAlarmGenerator> 7.2 AlarmGenerator.XML ファイルの作成と変更 AlarmGenerator.XML ファイルは、AlarmGeneratorSet SOAP 関数を使用して作成および 変更します。次の「アラームジェネレータの SOAP インタフェース」では、 AlarmGeneratorSet、およびアラームジェネレータアプリケーションに付属の各種 SOAP 関 数について説明します。 AlarmGenerator.XML ファイルを手動で作成および変更し、FTP を経由して i.LON 100 に ダウンロードすることもできます。ただし、Echelon 社ではこの方法は奨励していません。 ダウンロードしたファイルの構成を読み取るには、i.LON 100 を再起動する必要があるため です。また、i.LON 100 は XML ファイルに書き込みを行う前に、すべての SOAP メッセー ジのエラーチェックを実行しますが、FTP を経由してダウンロードされた XML ファイルの エラーチェックは実行しないため、アプリケーションが正しく起動しない場合があります。 AlarmGenerator.XML ファイルの作成や変更を手動で行う場合には、まず本章の残りの部分 をお読みください。ここでは、アラームジェネレータの構成を定義する XML ファイル内の 7-2 i.LON 100 Internet Server Programmer’s Reference エレメントとプロパティについて説明しています。XML ファイルを手動で作成または変更す る方法については、17-1ページの「XML 構成ファイルの手動変更」を参照してください。 7.2.1 アラームジェネレータの SOAP インタフェース アラームジェネレータアプリケーション用の SOAP インタフェースには、4 つの関数が含ま れています。表 22ではこれらの関数を一覧表示し、各関数について説明しています。詳細に ついては、表 22の後に続く各項を参照してください。 表 22 アラームジェネレータの SOAP 関数 関数 説明 AlarmGeneratorList i.LON 100 に追加したアラームジェネレータの一覧を生成します。詳 細については、7-3ページの「AlarmGeneratorList」を参照してくだ さい。 AlarmGeneratorGet アラームジェネレータの構成を取得します。詳細については、7-4ペー ジの「AlarmGeneratorGet」を参照してください。 AlarmGeneratorSet 新しいアラームジェネレータを作成するか、既存のアラームジェネ レータの構成を上書きします。詳細については、7-14ページの 「AlarmGeneratorSet」を参照してください。 AlarmGeneratorDelete アラームジェネレータを削除します。詳細については、7-15ページの 「AlarmGeneratorDelete」を参照してください。 7.2.1.1 AlarmGeneratorList AlarmGeneratorList 関数を使用すると、i.LON 100 に追加したアラームジェネレータの一 覧を取得することができます。AlarmGeneratorList 関数は<Data>パラメータとして空の文 字列を受け入れます。 この関数は、アラームジェネレータアプリケーションが使用しているファームウェアのバー ジョン番号(主および副)を<Result>パラメータ内に返します。<Result>パラメータには、 i.LON 100 に追加した各アラームジェネレータの<Alarm>エレメントも含まれます。次の 「AlarmGeneratorGet」で、<Alarm>エレメントに含まれるプロパティについて説明します。 この関数が返す<Alarm>エレメントの一覧は、AlarmGeneratorGet 関数の入力として使用 できます。AlarmGeneratorGet 関数は、<Alarm>エレメントに含まれている各アラーム ジェネレータの構成を返します。 <Data>パラ メータ Empty String i.Lon 100 Internet Server Programmer’s Reference 7-3 <Result>パ ラメータ <Result> <iLONAlarmGenerator> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <Alarm> <UCPTindex>0</UCPTindex> <UCPTdescription>Light Control</UCPTdescription> <UCPTfbName>Alarm Generator- 0</UCPTfbName> <UCPTlastUpdate>2002-0620T12:37:05Z</UCPTlastUpdate> </Alarm> <Alarm> <UCPTindex>1</UCPTindex> <UCPTdescription> Heating Control </UCPTdescription> <UCPTfbName> Alarm Generator- 1</UCPTfbName> <UCPTlastUpdate>2002-06-25T18:45:18Z </UCPTlastUpdate> </Alarm> </iLONAlarmGenerator> </Result> 7.2.1.2 AlarmGeneratorGet AlarmGeneratorGet 関数を使用すると、i.LON 100 に追加したアラームジェネレータの構 成を取得することができます。構成情報を取得したいアラームジェネレータは、関数に渡す <Data>パラメータ内でインデックス番号を指定する必要があります。 <Data>パラメー タ <Data> <iLONAlarmGenerator> <Alarm> <UCPTindex>1</UCPTindex> </Alarm> </iLONAlarmGenerator> </Data> <Result>パラ メータ <Result> <iLONAlarmGenerator> <Alarm> <UCPTindex>1</UCPTindex> <UCPTlastUpdate>2004-05-14T19:21:39Z</UCPTlastUpdate> <UCPTdescription>Heating Controller</UCPTdescription> <UCPTfbName>Alarm Generator- 1</UCPTfbName> <SCPTalrmIhbT>0 00:00:00.000</SCPTalrmIhbT> <UCPTalarmPriority>PR_LEVEL_1</UCPTalarmPriority> <UCPTpollOnResetDelay>0.0</UCPTpollOnResetDelay> <UCPTpollRate>0.0</UCPTpollRate> <UCPTalarm2Description>none</UCPTalarm2Description> <InputDataPoint> <UCPTpointName>NVL_nviTemp0</UCPTpointName> </InputDataPoint> <CompareDataPoint> <UCPTpointName>NVL_nviTemp1</UCPTpointName> </CompareDataPoint> <AlarmDataPoint> <UCPTpointName>NVL_nvoAlarm0</UCPTpointName> </AlarmDataPoint> <Alarm2DataPoint> <UCPTpointName>NVL_nvoAlarm2</UCPTpointName> </Alarm2DataPoint> <UCPTcompFunction>FN_LIMIT</UCPTcompFunction> <UCPTalarmSetTime>0 00:00:00.000</UCPTalarmSetTime> <UCPTalarmClrTime>0 00:00:00.000</UCPTalarmClrTime> <UCPTlowLimit1Offset>4.0</UCPTlowLimit1Offset> <UCPTlowLimit2Offset>8.0</UCPTlowLimit2Offset> 7-4 i.LON 100 Internet Server Programmer’s Reference <UCPThighLimit1Offset>4.0</UCPThighLimit1Offset> <UCPThighLimit2Offset>8.0</UCPThighLimit2Offset> <SCPThystHigh1>2.0</SCPThystHigh1> <SCPThystHigh2>2.0</SCPThystHigh2> <SCPThystLow1>2.0</SCPThystLow1> <SCPThystLow2>2.0</SCPThystLow2> </Alarm> </iLONAlarmGenerator> </Result> AlarmGeneratorGet 関数は、関数に渡した<Data>パラメータで参照したアラームジェネ レータの<Alarm>エレメントを返します。<Alarm>エレメントに含まれているプロパティは、 アラームジェネレータの作成時に最初に定義されます。このプロパティに書き込みを行うに は、AlarmGeneratorSet 関数を使用します。表 23では<Alarm>エレメントのプロパティに ついて説明しています。 AlarmGeneratorSet 関数を使用してアラームジェネレータの作成または書き込みを行うとき は、特に記載のない限り、すべてのプロパティを指定する必要があります。 AlarmGeneratorSet 関数の詳細については、7-14ページの「AlarmGeneratorSet」を参照し てください。 表 23 AlarmGeneratorGet の出力プロパティ プロパティ <UCPTindex> 説明 アラームジェネレータに割り当てるインデックス番号は、 –32,768∼32,767 の範囲に収めます。AlarmGeneratorSet 関 数を使用すると、新しいアラームジェネレータを作成するか、 既存のアラームジェネレータを変更することができます。 AlarmGeneratorSet に渡す<Data>パラメータの中でインデッ クス番号を指定しない場合は、使用可能な最初のインデックス 番号で新しいアラームジェネレータが作成されます。 既に使用中のインデックス番号を指定した場合は、そのイン デックス番号を使用しているアラームジェネレータの構成が、 <Data>パラメータに定義されている設定で上書きされます。 <UCPTlastUpdate> オプション。アラームジェネレータの構成が最後に更新された 時刻を示すタイムスタンプ。このタイムスタンプは次のフォー マットを使用します。 YYYY-MM-DDTHH:MM:SSZ タイムスタンプの最初のセグメント(YYYY-MM-DD)は、ア ラームジェネレータの構成が最後に更新された日を表します。 2 番目のセグメント(THH:MM:SS)は、アラームジェネレー タの構成が最後に更新された日の時刻を協定世界時(UTC) で表します。 UTC は、以前はグリニッジ標準時(GMT)と一般的に呼ばれ ていたものを示す現在の用語です。0 時間の UTC は、ゼロ度 の経線上にあるイギリスのグリニッジにおける深夜 0 時を表し ます。協定世界時は 24 時間制に基づいているため、4 pm な どの午後の時間は 16:00 UTC と表されます。タイムスタンプ に追加される Z は、それが UTC 単位であることを示します。 たとえば 2002-08-15T10:13:13Z は、2002 年 8 月 15 日の午前 10 時 13 分 13 秒の UTC 時間を示します。 i.Lon 100 Internet Server Programmer’s Reference 7-5 プロパティ 説明 <UCPTfbName> LONMAKER でアラームジェネレータに割り当てられた機能ブ ロック名。このプロパティに書き込みを行うことはできます が、i.LON 100 構成ソフトウェアを使用してアラームジェネ レータを表示するたびに、このプロパティは LONMAKER で定 義されている機能ブロック名にリセットされます。 <UCPTdescription> オプション。アラームジェネレータのユーザ定義の説明。この 長さは最大 228 文字です。 <SCPTalrmIhbT> アプリケーションが有効になった後に、アラームの生成を抑止 する期間。次のフォーマットを使用します。 DAYS HOURS:MINUTES:SECONDS.MILLISECONDS たとえば 3 13:44:02.155 は、3 日、13 時間、44 分、2.155 秒 の期間を示します。 <UCPTalarmPriority> アラームジェネレータのアラーム優先度。この値はアラーム データポイントの priority_level フィールドに設定されます。 アラーム優先度はアラームの種類とは関係ありません。有効な アラーム優先度の一覧については、7-10ページの「アラーム優 先度」を参照してください。 <UCPTpollOnResetDelay> アプリケーションを有効にするか、起動した後、入力データポ イントの値をポーリングする前に待機する期間。このフィール ドの範囲は 0.0∼6553.0 秒です。 0.0 秒の既定値を使用すると、アラームジェネレータは、リ セットの直後、<UCPTpollRate>プロパティに指定した間隔で 入力データのポーリングを始めます。 <UCPTpollRate> 入力データポイントと比較データポイントの秒単位のポーリン グレート。この値が 0 より大きい場合は、この時間が経過する たびに、アラームジェネレータが入力データポイントと比較 データポイントの値をポーリングします。このフィールドの範 囲は 0∼214,748,364 秒です。 この値が 0 の場合、アラームジェネレータは入力データポイン トと比較データポイントの値をポーリングせず、データポイン トへの更新をイベントとして受け取ったときにのみアラーム状 態をチェックします。 <UCPTalarm2Description> 7-6 オプション。アラームジェネレータが使用する UNVT_alarm2 データポイントの説明フィールドです。この データポイントを選択するには、<Alarm2DataPoint>プロパ ティを定義します。この説明には、増加した値、アラームを発 生させた値、メーカーが定義しているアラームまたはエラー コード、あるいはアラーム制限などを含めることができます。 このフィールドの最大長は 22 文字で、アラームが生成される たびに UNVT_alarm2 データポイントの説明フィールドに挿 入されます。 i.LON 100 Internet Server Programmer’s Reference プロパティ <InputDataPoint> 説明 このアラームジェネレータの入力データポイント。データポイ ントは、<UCPTpointName>で参照する必要があります。 データポイントが更新されるたびに、<UCPTcompFunction> プロパティに指定した比較関数を使用して、データポイントの 値が比較データポイントの値と比較されます。比較結果が真の 場合は、アラームが生成されます。 データポイントの<UCPTpointSatus>は、アラームジェネ レータの<UCPTcompFunction>が FN_LIMIT でない限り、 アラームが生成されたときに AL_ALM_CONDITION のス テータスに更新されます。アラームジェネレータの <UCPTcompFunction>が FN_LIMIT の場合、ステータスは アラームを発生させたオフセット制限に基づいて、4 つのア ラームステータスのいずれかに更新されます。詳細について は、7-12ページの「ヒステリシスレベルとオフセット制限」を 参照してください。 <CompareDataPoint> このアラームジェネレータの比較データポイント。データポイ ントは、Data Server 内でデータポイントに割り当てられてい る<UCPTpointName>を使用して指定し、入力データポイン トと同じフォーマット型を使用する必要があります。比較デー タポイント値あるいは入力データポイントのうち、どちらかの ポイントが更新されるたびに、双方の値が比較されます。 ネットワークから取得した動的な変数値ではなく、ソフトウェ アで構成した定数値に基づいてアラームを生成するようにする には、比較データポイントとして NVC データポイントを使用 します。 i.Lon 100 Internet Server Programmer’s Reference 7-7 プロパティ <AlarmDataPoint> <Alarm2DataPoint> 説明 オプション。アラームジェネレータのアラームデータポイント を定義します。各データポイントは、Data Server 内でデータ ポイントに割り当てられている<UCPTpointName>を使用し て指定します。<AlarmDataPoint>に指定するデータポイント は、SNVT_alarm のフォーマット型を使用する必要がありま す。<Alarm2DataPoint>に指定するデータポイントは、 UNVT_alarm2 のフォーマット型を使用する必要があります。 SNVT_alarm は LonMark 標準型のフォーマットです。ア ラーム処理システムが LonMark 標準型をサポートしている場 合には、SNVT_alarm を使用します。システムが <UCPTalarm2Description>プロパティが提供する追加情報を 必要とする場合は、UNVT_alarm2 データポイントを使用しま す。システムが入力データポイントの<UCPTpointStatus>プ ロパティに直接アクセスできる場合には、アラームデータポイ ントが不要になることもあります。アラームジェネレータは、 アラームを生成するたびに入力データポイントをアラームス テータスに更新するためです。<UCPTpointStatus>プロパ ティは、DataPointRead または DataServerRead 関数を使用 して、データポイントから読み取ることができます。 入力データポイントおよびアラームデータポイントの <UCPTpointSatus>は、<UCPTcompFunction>が FN_LIMIT でない限り、アラームが生成されたときに AL_ALM_CONDITION のステータスに更新されます。 <UCPTcompFunction>が FN_LIMIT の場合、ステータスは アラームを発生させたオフセット制限に基づいて、4 つのア ラームステータスのいずれかに更新されます。詳細について は、7-12ページの「ヒステリシスレベルとオフセット制限」を 参照してください。 これらの出力データポイントをアラームノーティファイアアプ リケーションに登録すると、データポイントがアラームステー タスに更新されるたびにアラーム通知と電子メールメッセージ を生成するよう設定できます。この詳細については、8-1ペー ジの「アラームノーティファイア」を参照してください。 <UCPTcompFunction> アラームジェネレータが入力データポイントと比較データポイ ントの値を比較するために使用する関数を指定します。使用で きる比較関数については、7-10ページの「比較関数」を参照し てください。 <UCPTalarmSetTime> アラームジェネレータが有効なアラームであると見なし、ア ラームを生成するために必要なアラーム状態の継続時間を指定 します。このプロパティには次のフォーマットを使用します。 DAYS HOURS:MINUTES:SECONDS.MILLISECONDS たとえば 0 1:12:12.333 は、1 時間、12 分、12.333 秒の期間を 示します。入力できる最大値は 0 1:59:59.999 です。 既定値は 0 00:00:00.000 です。 7-8 i.LON 100 Internet Server Programmer’s Reference プロパティ <UCPTalarmClrTime> 説明 アラームを発生させた状態が通常のステータスに戻った後、ア ラームがクリアされる前に待機する期間を指定します。このプ ロパティには次のフォーマットを使用します。 DAYS HOURS:MINUTES:SECONDS.MILLISECONDS たとえば 0 6:22:12.333 は、6 時間、22 分、12.333 秒の期間を 示します。入力できる最大値は 0 1:59:59.999 です。 既定値は 0 00:00:00.000 です。 <UCPTlowLimit1Offset> <UCPTlowLimit2Offset> <UCPThighLimit1Offset> <UCPThighLimit2Offset> プロパティのスカラー値を入力します。これらの値は、 <UCPTcompFunction>プロパティが FN_LIMIT のときに、 アラームジェネレータのオフセット制限となります。この場 合、次の条件のいずれかが真の場合にアラームが生成されま す。 • 入力データポイントの値 > 比較データポイントの値 + highLimit1Offset • 入力データポイントの値 > 比較データポイントの値 +highLimit2Offset • 入力データポイントの値 < 比較データポイントの値 – lowLimit1Offset • 入力データポイントの値 < 比較データポイントの値 – lowLimit2Offset <UCPThighLimit2Offset>に入力する値は <UCPThighLimit1Offset>に入力する値よりも大きく、 <UCPTlowLimit2Offset>に入力する値は <UCPTlowLimit1Offset>に入力する値よりも小さくする必要 があります。各プロパティの既定値は 0 です。 各条件によって、入力データポイントとアラームデータポイン トの<UCPTpointStatus>が、異なるステータスに設定されま す。詳細については、7-12ページの「ヒステリシスレベルとオ フセット制限」を参照してください。 i.Lon 100 Internet Server Programmer’s Reference 7-9 プロパティ 説明 <SCPThystHigh1> 上記のオフセット制限のいずれかに基づいてアラームが発生す ると、別のアラームを生成するには、入力データポイント値が そのオフセット制限のヒステリシス値に達する必要がありま す。 <SCPThystHigh2> <SCPThystLow1> <SCPThystLow2> これによって、入力データポイントの値が特定のレベルに達す るたびに、複数回ではなく、1 回だけ、アラームジェネレータ がアラームを発生させることができます(ただし、データポイ ントの値がアラーム発生範囲内に留まっている限り、データポ イントが更新されるたびにアラームが発生します)。 プロパティのスカラー値を入力します。これらの値はアラーム オフセット制限に使用されるヒステリシスレベルとなります。 ヒステリシスフィールドの詳細およびオフセット値との関係に ついては、7-12ページの「ヒステリシスレベルとオフセット制 限」を参照してください。 注:SOAP/XML インタフェースを使用してアラームジェネ レータを作成した後に、i.LON 100 構成ソフトウェアを使用し てその構成を変更すると、4 つのヒステリシスプロパティはす べて、<SCPThystHigh1>に指定した値にリセットされます。 7.2.1.2.1 アラーム優先度 アラームジェネレータの優先度を設定するには、<UCPTalarmPriority>プロパティを指定し ます。優先度を設定する際は、表 24に示した識別子を使用してください。 アラームジェネレータがアラームを生成するたびに、アラームデータポイントの priority_level フィールドが、ここで選択された優先度になります。 表 24 アラームの優先度 識別子 PR_LEVEL_0 備考 最低のアラーム優先度 PR_LEVEL_1 PR_LEVEL_2 PR_LEVEL_3 最高のアラーム優先度 PR_1 人命の安全を図るための火災アラーム PR_2 所有物の安全を図るための火災アラーム PR_3 火災警告アラーム PR_4 火災トラブル/障害(ディスプレイ) PR_6 火災事前アラーム、HVAC 重要機器アラーム PR_8 HVAC アラーム(BACnet 優先度 8) PR_10 HVAC 重要機器 RTN、火災 RTN(ディスプレイ) PR_16 HVAC RTN(最低優先度) PR_NUL 値なし 7.2.1.2.2 7-10 比較関数 i.LON 100 Internet Server Programmer’s Reference 表 25では、入力データポイントと比較データポイントの値を比較する際にアラームジェネ レータが使用する比較関数を一覧表示しています。アラームジェネレータの比較関数を選択 するには、<UCPTcompFunction>プロパティで、表 25に示す識別子の文字列を選択してく ださい。 表 25 比較関数 識別子 説明 FN_GT より大。入力値が比較値よりも大きい場合にアラームが生成されます。 FN_LT より小。入力値が比較値よりも小さい場合にアラームが生成されます。 FN_GE 以上。入力値が比較値以上の場合にアラームが生成されます。 FN_LE 以下。入力値が比較値以下の場合にアラームが生成されます。 FN_EQ 等しい。入力値が比較値と等しい場合にアラームが生成されます。 FN_NE 等しくない。入力値が比較値と等しくない場合にアラームが生成されます。 FN_LIMIT 上限と下限のオフセットフィールドに定義されている制限と比較されます。 これらの制限の使用方法については、7-12ページの「ヒステリシスレベルと オフセット制限」を参照してください。 異なるデータポイント型には、データポイントの<UCPTbaseType>に応じて異なる比較関数 を使用してください。表 26では、各データポイントのベース型と、ベース型ごとに使用でき る比較関数を一覧表示しています。 表 26 ベース型と比較関数 ベース型 有効な<UCPTcompFunction> 有効な BT_UNKNOWN、BT_ENUM, BT_ARRAY、 BT_STRUCT、BT_UNION, BT_BITFIELD FN_EQ、FN_NE BT_SIGNED_CHAR、BT_UNSIGNED_CHAR、 BT_SIGNED_SHORT、BT_UNSIGNED_SHORT、 BT_SIGNED_LONG、BT_UNSIGNED_LONG、 BT_FLOAT、BT_SIGNED_QUAD、 BT_UNSIGNED_QUAD、BT_DOUBLE FN_GT、FN_LT、FN_GE、 FN_LE、FN_EQ、FN_NE、 FN_LIMIT SNVT_switch(BT_STRUCT)データポイント間、または SNVT_lev_disc(BT_ENUM) データポイント間では、不等号比較を実施できます。表 27では、これらの特殊な比較に使用 する<UCPTcompFunction>識別子を一覧表示しています。これらがどのように比較される かについては、表 27の後で説明します。 表 27 SNVT ベース型と比較関数の例外 有効な<UCPTcompFunction> 有効な SNVT_switch FN_GT、FN_LT、FN_GE、FN_LE、FN_EQ、FN_NE SNVT_lev_disc FN_GT、FN_LT、FN_GE、FN_LE、FN_EQ、FN_NE SNVT_switch データポイントを使用して行う比較は、SNVT_switch の value フィールドを 基にした列挙型比較です。value フィールドの値が 0.5∼100.0 の場合、SNVT_switch は ON と見なされ、それを基に比較が行われます。value フィールドの値が 0.0∼0.4 の場合、 SNVT_switch は OFF と見なされます。たとえば、入力データポイントが ON、比較データ i.Lon 100 Internet Server Programmer’s Reference 7-11 ポイントが OFF、選択されている比較関数が FN_GT であった場合、比較結果は真になりま す。これは、ON が OFF よりも大きいものと見なされるためです。 これは、SNVT_lev_disc データポイントの場合も同じです。このデータポイントの列挙値に は OFF、LOW、MEDIUM、HIGH、および ON の 5 つがあります。入力データポイントが LOW、比較データポイントが HIGH、比較関数が FN_GT であった場合、関数は偽を返しま す。LOW は HIGH よりも大きくないためです。 7.2.1.2.3 ヒステリシスレベルとオフセット制限 4 つのオフセット制限プロパティには、それぞれ<UCPTlowLimit1Offset>、 <UCPTlowLimit2Offset>、<UCPThighLimit1Offset>、<UCPThighLimit2Offset>という 名前が付いています。アラームジェネレータはこれらのオフセットを使用して、 <UCPTcompFunction>が FN_LIMIT のときにアラーム状態が存在するかどうかを判断しま す。 表 28では、4 つのオフセット制限と、各制限がアラームを生成するように設定されている条 件を一覧表示しています。また、各オフセット制限に基づいてアラームが生成されるときに、 入力データポイントとアラームデータポイントの<UCPTpointStatus>が更新されるステータ スを、アラームステータス列に示します。 表 28 ヒステリシスレベルとオフセット制限 オフセット制限 アラーム生成条件 アラームステータス <UCPThighLimit1Offset> 入力値 > 比較値 + UCPThighLimit1Offset AL_HIGH_LMT_ALM1 <UCPThighLimit2Offset> 入力値 > 比較値 + UCPThighLimit2Offset AL_HIGH_LMT_ALM2 <UCPTlowLimit1Offset> 入力値 < 比較値 – UCPTlowLimit1Offset AL_LOW_LMT_ALM1 <UCPTlowLimit2Offset> 入力値 < 比較値 – UCPTlowLimit2Offset AL_LOW_LMT_ALM2 これらのオフセット制限に基づいてアラームが生成された後、入力データポイントの値がそ の制限のヒステリシス範囲内の値に戻り、<UCPTclrTime>プロパティに指定した期間が経 過しないと、アラームはクリアされません。アラームがクリアされた後、そのオフセット制 限に基づいて別のアラームを生成できるようになります。 アラームジェネレータのヒステリシスレベルは、各アラーム状態をクリアするために必要な 入力データポイントの値を表します。表 29では、上に示した各オフセット制限に対してヒス テリシスレベルがどのように計算されるかを示しています。 表 29 アラームを発生させる オフセット制限 アラームジェネレータのヒステリシスレベル アラームのクリア条件 <UCPThighLimit1Offset> 入力値 <= 比較値 + UCPThighLimit1Offset – SCPThysHigh1 <UCPThighLimit2Offset> 入力値 <= 比較値 + UCPThighLimit2Offset – SCPThysHigh2 <UCPTlowLimit1Offset> 入力値 >= 比較値 – UCPTlowLimit1Offset + SCPThysLow1 <UCPTlowLimit2Offset> 入力値 >= 比較値 – UCPTlowLimit2Offset + SCPThysLow2 アラームがクリアされると、データポイントは次に低いアラームレベルに更新されます。た とえば、AL_LOW_LMT_ALM_2 アラームがクリアされると、データポイントは AL_LOW_LMT_ALM_1 に更新されます。その状態がクリアされると、データポイントは AL_NO_CONDITION に更新されます。 表 30ではこのプロセスについてさらに詳しく説明しています。 7-12 i.LON 100 Internet Server Programmer’s Reference 表 30 イベント アラームステータス 入力データポイントの ステータス 備考 入力データポイントは標準の 値である。 AL_NO_CONDITION アラーム状態は存在しません。 入力データポイントの値が最 初のレベル (UCPThighLimit1Offset) よりも高くなる。 AL_HIGH_LMT_ALM1 最初のアラーム状態に更新されま す。 入力データポイントの値が 2 番目のレベル (UCPThighLimit2Offset) よりも高くなる。 AL_HIGH_LMT_ALM2 2 番目の、さらに重大なアラーム 状態に更新されます。 入力データポイントの値が 2 番目のアラーム状態のヒステ リシスレベルよりも低くな る。 AL_HIGH_LMT_ALM1 データポイントは最初のアラーム 状態のヒステリシスレベルに達し ていないため、最初のアラーム状 態に戻されます。 入力データポイントの値が最 初のアラーム状態のヒステリ シスレベルよりも低くなる。 AL_NO_CONDITION 標準のステータスに戻されます。 次の図は、4 種類のアラーム状態と、各状態に対して生成されたアラームをクリアするため に必要な、対応するヒステリシスレベルを線グラフで表したものです。 この図では、各アラーム状態をクリアするために入力値が達する必要のあるヒステリシスレ ベルを順番に表しています。たとえば AL_HIGH_LMT_CLR_2 は、 AL_HIGH_LMT_ALM_2 のアラームステータスをクリアするために必要な値を表します。 AL_HIGH_LMT_CLR_1 は、AL_HIGH_LMT_ALM_1 のアラームステータスをクリアする ために必要な値を表します。ネットワーク内のデータポイントは、いつでもこれらのステー タスに更新されるわけではないことに注意してください。 i.Lon 100 Internet Server Programmer’s Reference 7-13 AL_HIGH_LMT_ALM_2 CompValue + UCPThighLimit2Offset= AL_HIGH_LMT_ALM2 CompValue + UCPThighLimit2Offset - SCPThystHigh2 AL_HIGH_LMT_CLR_2 ** AL_HIGH_LMT_ALM_1 CompValue + UCPThighLimit1Offset= AL_HIGH_LMT_ALM1 CompValue + UCPThighLimit1Offset - SCPThystHigh1 AL_NO_CONDITION CompValue AL_HIGH_LMT_CLR_1 ** AL_LOW_LMT_CLR_1 ** Input Value CompValue – UCPTlowLimit1Offset +SCPThystLow1 AL_LOW_LMT_ALM_1 CompValue UCPTlowLimit1Offset= AL_LOW_LMT_ALM1 AL_LOW_LMT_CLR_2 ** CompValue – UCPTlowLimit2Offset +SCPThystLow2 CompValue UCPTLowLimit2Offset= AL_LOW_LMT_ALM2 AL_LOW_LMT_ALM_2 ヒステレシスレベルとオフセット制限 7.2.1.3 AlarmGeneratorSet AlarmGeneratorSet 関数を使用すると、新しいアラームジェネレータを作成するか、既存の アラームジェネレータの構成を上書きすることができます。アラームジェネレータは、1 つ の i.LON 100 あたり 40 まで作成できます。 関数が作成または上書きするアラームジェネレータは、<Data>パラメータ内の<Alarm>エ レメントの一覧で指定します。各<Alarm>エレメント内に定義する必要のあるプロパティは、 新しいアラームジェネレータを作成する場合でも、既存のアラームジェネレータを変更する 場合でも同じです。これらのプロパティの詳細については、前項の「AlarmGeneratorGet」 を参照してください。 注:既存のアラームジェネレータを変更する場合、入力文字列に指定されていない <AlarmDataPoint>や<Alarm2DataPoint>などのオプションのプロパティは消去されます。古 い値は継承されないため、アラームジェネレータに書き込みを行うときは、すべての値を変 更しない場合でも、すべてのプロパティを指定する必要があります。 AlarmGeneratorSet 関数を初めて呼び出すと、i.LON 100 の/root/Config/software ディレク トリに AlarmGenerator.XML ファイルが作成されます(ファイルがまだ存在しない場合)。 AlarmGeneratorSet を使用してアラームジェネレータを作成または変更するときは、 AlarmGeneratorGet の出力を基にして<Data>パラメータを指定すると便利です。こうする と、文字列全体を最初から作成する代わりに、新しい構成に一致するように各プロパティの 値を変更するだけで済みます。 7-14 i.LON 100 Internet Server Programmer’s Reference 次の例では、AlarmGeneratorSet 関数を使用して、NVL_DataValueAG1 というデータポイ ントを入力データポイントに使用するアラームジェネレータを新たに作成します。 <Data>パ ラメータ <Result> パラメータ <Data> <iLONAlarmGenerator> <Alarm> <UCPTindex></UCPTindex> <UCPTdescription>Alarm Generator 1</UCPTdescription> <UCPTfbName></UCPTfbName> <SCPTalrmIhbT>0 00:00:00.000</SCPTalrmIhbT> <UCPTalarmPriority>PR_LEVEL_1</UCPTalarmPriority> <UCPTpollOnResetDelay>0.0</UCPTpollOnResetDelay> <UCPTpollRate>0.0</UCPTpollRate> <UCPTalarm2Description>none</UCPTalarm2Description> <InputDataPoint> <UCPTpointName>NVL_DataValueAG1</UCPTpointName> </InputDataPoint> <CompareDataPoint> <UCPTpointName>NVL_CompareValueAG1</UCPTpointName> </CompareDataPoint> <AlarmDataPoint> <UCPTpointName>NVL_AlarmGenOut1</UCPTpointName> </AlarmDataPoint> <Alarm2DataPoint> <UCPTpointName></UCPTpointName> </Alarm2DataPoint> <UCPTcompFunction>FN_LIMIT</UCPTcompFunction> <UCPTalarmSetTime>0 00:00:00.000</UCPTalarmSetTime> <UCPTalarmClrTime>0 00:00:00.000</UCPTalarmClrTime> <UCPTlowLimit1Offset>5.0</UCPTlowLimit1Offset> <UCPTlowLimit2Offset>5.0</UCPTlowLimit2Offset> <UCPThighLimit1Offset>5.0</UCPThighLimit1Offset> <UCPThighLimit2Offset>5.0</UCPThighLimit2Offset> <SCPThystHigh1>50.00</SCPThystHigh1> <SCPThystHigh2>75.00</SCPThystHigh2> <SCPThystLow1>50.00</SCPThystLow1> <SCPThystLow2>75.00</SCPThystLow2> </Alarm> </iLONAlarmGenerator> </Data> <Result> <iLONAlarmGenerator> <Alarm> <UCPTindex>2</UCPTindex> </Alarm> </iLONAlarmGenerator> </Result> 7.2.1.4 AlarmGeneratorDelete AlarmGeneratorDelete 関数を使用すると、アラームジェネレータを削除することができま す。アラームジェネレータを削除するには、関数に渡す<Data>パラメータの中で削除したい アラームジェネレータをインデックス番号で参照します。 i.Lon 100 Internet Server Programmer’s Reference 7-15 <Data>パラメータ <Data> <iLONAlarmGenerator> <Alarm> <UCPTindex>1</UCPTindex> </Alarm> </iLONAlarmGenerator> </Data> <Result>パラメー タ <Result> <iLONAlarmGenerator> <Alarm> <UCPTindex>1</UCPTindex> </Alarm> </iLONAlarmGenerator> </Result> 7-16 i.LON 100 Internet Server Programmer’s Reference 8 アラームノーティファイア アラームノーティファイアアプリケーションを使用すると、あらかじめアラーム状態を定義 し、そのアラーム状態が発生するたびに状態をログに記録し、電子メールメッセージとデー タポイントの更新を生成することができます。ここでは、アラーム状態の定義方法や、ア ラーム状態に応答するアラームノーティファイアを設定する方法など、さまざまなアラーム ノーティファイアの機能について説明します。 ユーザ定義のアラーム状態 アラームノーティファイアを作成するときは、入力データポイントを指定します。アラーム ノーティファイアは、これらのデータポイントが更新されるたびにデータポイントのステー タスを読み取り、アラーム状態に達しているかどうかを判断します。アラームノーティファ イアがアラーム状態であると見なすステータスは、すべてユーザが定義します。ステータス を定義するには、アラームノーティファイアのアクティブおよび非アクティブのアラーム状 態を作成します。 アラーム状態を作成するときは、アラームタイプ(アクティブまたは非アクティブ)とポイ ントのステータスを選択します。入力データポイントが更新され、データポイントの <UCPTpointStatus>がそのステータスに一致するたびに、アラーム通知が生成されます。ア クティブアラーム状態に割り当てられているステータスに基づいてアラーム通知が生成され る場合、それはアクティブなアラームであると見なされます。非アクティブ状態に割り当て られているステータスに基づいてアラーム通知が生成される場合、それは非アクティブなア ラームであると見なされます。1 つのアラームノーティファイアにはアクティブおよび非ア クティブなアラーム状態をいくつでも作成できます。 アラームノーティファイアにはさまざまな使い途があります。たとえば、アラームジェネ レータが更新したデータポイントのステータスに基づいてアラーム通知を生成するという機 能をアラームノーティファイアに設定します。アラームジェネレータの詳細については、第7 章「アラームジェネレータ」を参照してください。 第 6 章では、データロガーのログファイルによるメモリ使用率を監視するためのデータポイ ントが存在することに触れました。アラームノーティファイアを設定すると、ログファイル が一杯になったときに、アラーム通知を生成することができます。 アラーム通知先 アクティブおよび非アクティブのアラーム通知には、通知先を作成します。通知先は、ア ラームが発生したときにアラームノーティファイアがどのように応答するかを決定します。 通知先には、出力データポイントを指定します。このデータポイントは、指定の通知先にア ラーム通知を送るたびに更新されます。各通知先には電子メールプロファイルを指定するこ ともできます。電子メールプロファイルを指定すると、通知先が使用されるたびに、指定し たアドレスに電子メールが送信されます。次の項では、電子メールプロファイルについてさ らに詳しく説明します。 1 つのアラームノーティファイアにはアクティブおよび非アクティブの通知先をいくつでも 作成できます。非アクティブな通知先は、非アクティブのアラーム通知が発生したときに使 用され、アクティブな通知先は、アクティブなアラーム通知が発生したときに使用されます。 電子メールプロファイル アラームノーティファイアに電子メールプロファイルを作成し、通知先に割り当てることが できます。各電子メールプロファイルには電子メールアドレスが含まれています。通知先に 電子メールプロファイルが割り当てられている場合、そのプロファイルに定義されているア ドレスに電子メールが送信されます。 また、各電子メールに含めるメッセージテキスト、件名、および添付ファイルを指定するこ ともできます。電子メールプロファイルを使用すると、アラームの種類に応じて通知先を変 i.Lon 100 Internet Server Programmer’s Reference 8-1 更することができます。これは、ネットワーク上で発生する可能性のあるさまざまなアラー ム状態に応じて、異なるグループが通知を受信する必要があるときに便利です。 自動生成ログファイル 各アラームノーティファイアは、独自のログファイルを生成します。このログファイルには、 アラーム通知が生成されるたびにエントリが追加されます。自動生成ログファイルは i.LON 100 の/root/AlarmLog ディレクトリに含まれており、histlogX という名前が付いています。 X は、アラームノーティファイアの作成時に割り当てられたインデックス番号を表します。 アラームノーティファイアは、アラーム通知を生成するまでログファイルを生成しません。 また、アラームノーティファイアアプリケーションは、アクティブアラームとして分類され ている、すべてのアラームノーティファイアが行ったログエントリをまとめたサマリログを 生成します。このファイルは sumlog0 と呼ばれ、これも i.LON 100 の/root/AlarmLog ディ レクトリに含まれています。 ログファイルはテキストフォーマット(.csv)またはバイナリフォーマット(.dat)のいずれ かで作成できます。フォーマットは、アラームノーティファイアを作成するときに指定しま す。これらのログファイルを読み取るには、FTP セッションを経由してログファイルを開く か、AlarmNotifierRead 関数を使用します。Alarm NotifierWrite 関数を使用すると、ログ ファイルに格納されているアラーム通知を確認し、コメントを追加することができます。 8.1 AlarmNotifier.XML AlarmNotifier.XML ファイルは、i.LON 100 に追加したアラームノーティファイアの構成を 格納します。1 つの i.LON 100 に最高 40 のアラームノーティファイアを作成できます。各 アラームノーティファイアは、XML ファイル内で<Alarm>エレメントによって示されます。 アラームノーティファイアを作成するには、AlarmNotifierSet SOAP 関数を使用するか、手 動で AlarmNotifier.XML ファイルを編集し、FTP を経由して i.LON 100 にダウンロードし ます。アラームノーティファイアを作成する際のガイドラインと手順については、サンプル の後の各項を参考にしてください。 次のコード例は、アラームノーティファイアを 1 つ定義した、i.LON 100 の AlarmNotifier.XML ファイルを表しています。このアラームノーティファイアは、 NVL_nvoLevelAlarm データポイントのステータスに基づいて、アラーム通知を生成します。 このデータポイントは、データロガーのログレベルを監視します。第 6 章で説明したとおり、 このデータポイントは、データロガーの使用率が事前に定義したログレベルに達したときに、 AL_ALM_CONDITION アラーム状態に設定されます。 以下の例で定義されているアラームノーティファイアは、アラームが発生したときにアラー ム通知をトリガし、NVL_nviDlClear データポイントの値を 100.0 1 に更新します。 NVL_nviDlClear が更新されると、データロガーのログファイルがクリアされます。このた め、以下の XML ファイルで定義されているアラームノーティファイアは、データロガーの ログレベルを監視し、それが一杯になったときに、データロガーのログファイルを空にしま す。 <?xml version="1.0" ?> <iLONAlarmNotifier> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <Alarm> <UCPTindex>11</UCPTindex> <UCPTlastUpdate>2002-07-04T15:08:54Z</UCPTlastUpdate> <UCPTdescription>Monitors the log level of a Data Logger </UCPTdescription> <UCPTfbName>Alarm Notifier- 1</UCPTfbName> <SCPTdelayTime>0.0</SCPTdelayTime> 8-2 i.LON 100 Internet Server Programmer’s Reference <UCPTsumLogSize>100</UCPTsumLogSize> <UCPThistLogSize>100</UCPThistLogSize> <UCPTlogFormat>LF_BINARY</UCPTlogFormat> <UCPTemailAggregTime>10</UCPTemailAggregTime> <Point> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nvoLevelAlarm</UCPTpointName> <UCPTalarmFlags>0 1 0 0 0 0 0</UCPTalarmFlags> <UCPTalarmGroup>1</UCPTalarmGroup> <UCPTpriority>7</UCPTpriority> <UCPTdescription>log level of data logger 1 </UCPTdescription> </Point> <Mail> <UCPTindex>0</UCPTindex> <UCPTemailNickName>Joerg</UCPTemailNickName> <UCPTemailAddress>js@nova</UCPTemailAddress> <UCPTemailFormat>occured %dy/%dm/%dd </UCPTemailFormat> <UCPTemailSubject>Nofifier1: %ad</UCPTemailSubject> <UCPTemailAttachment>/root/Data/log1.csv</UCPTemailAttachment> </Mail> <ActiveAlarm> <UCPTindex>0</UCPTindex> <UCPTlevel>1</UCPTlevel> <UCPTalarmText>Log 30 percent full</UCPTalarmText> <UCPTactAlarmType>AL_ALM_CONDITION</UCPTactAlarmType> </ActiveAlarm> <PassiveAlarm> <UCPTindex>0</UCPTindex> <UCPTlevel>255</UCPTlevel> <UCPTalarmText>Normal Condition</UCPTalarmText> <UCPTpasAlarmType>AL_NO_CONDITION</UCPTpasAlarmType> </PassiveAlarm> <AlarmDest> <UCPTindex>0</UCPTindex> <UCPTdestEnable /> <ActiveDest> <UCPTindex>0</UCPTindex> <UCPTemailNickName>Joerg</UCPTemailNickName> <UCPTpointName>NVL_nvoDlClear</UCPTpointName> <UCPTpointValue>100.0 1</UCPTpointValue> <UCPTminLevel>2</UCPTminLevel> <UCPTmaxLevel>0</UCPTmaxLevel> <UCPTnackDelay>0</UCPTnackDelay> </ActiveDest> <PassiveDest> <UCPTindex>0</UCPTindex> <UCPTemailNickName>Joerg</UCPTemailNickName> <UCPTpointName>NVL_nvoDlClear</UCPTpointName> <UCPTpointValue>0.0 0</UCPTpointValue> </PassiveDest> </AlarmDest> </Alarm> </iLONAlarmNotifier> 8.2 AlarmNotifier.XML ファイルの作成と変更 AlarmNotifier.XML ファイルは、AlarmNotifierSet SOAP 関数を使用して作成および変更 します。次の「アラームノーティファイアの SOAP インタフェース」では、 i.Lon 100 Internet Server Programmer’s Reference 8-3 AlarmNotifierSet、およびアラームノーティファイアアプリケーションに付属の各種 SOAP 関数について説明します。 XML エディタを使用して AlarmNotifier.XML ファイルを手動で作成および変更し、FTP を 経由して i.LON 100 にダウンロードすることもできます。ただし、Echelon 社ではこの方法 は奨励していません。ダウンロードしたファイルの構成を読み取るには、i.LON 100 を再起 動する必要があるためです。また、i.LON 100 は XML ファイルに書き込みを行う前に、受 信したすべての SOAP メッセージのエラーチェックを実行しますが、FTP を経由してダウン ロードされた XML ファイルのエラーチェックは実行しないため、アプリケーションが正し く起動しない場合があります。 AlarmNotifier.XML ファイルを手動で作成する場合は、まずこの章の残りの部分をお読みく ださい。ここでは、アラームノーティファイアの構成を定義する XML ファイル内のエレメ ントとプロパティについて説明しています。XML ファイルを手動で作成または変更する方法 については、17-1ページの「XML 構成ファイルの手動変更」を参照してください。 8.2.1 アラームノーティファイアの SOAP インタフェース アラームノーティファイアアプリケーション用の SOAP インタフェースには、7 つの関数が 含まれています。表 31ではこれらの関数を一覧表示し、各関数について説明しています。詳 細については、表 31の後に続く各項を参照してください。 表 31 関数 Alarm Notifier の SOAP 関数 説明 AlarmNotifierList i.LON 100 に追加したアラームノーティファイアの一覧を生成します。 詳細については、8-5ページの「AlarmNotifierList」を参照してくださ い。 AlarmNotifierGet アラームノーティファイアの構成を取得します。詳細については、8-5 ページの「AlarmNotifierGet」を参照してください。 AlarmNotifierSet アラームノーティファイアを作成するか、既存のアラームノーティファ イアの構成を上書きします。詳細については、8-16ページの 「AlarmNotifierSet」を参照してください。 AlarmNotifierRead アラーム通知を発生させるたびに、アラームノーティファイアはその通 知のログエントリを記録します。この関数を使用すると、アラームノー ティファイアが記録したログエントリの一部または全部を取得できま す。詳細については、8-18ページの「AlarmNotifierRead」を参照して ください。 AlarmNotifierWrite アラームノーティファイアが行ったアラーム通知またはアラームログ通 知を確認します。オプションで、各アラーム通知のログエントリにコメ ントを挿入できます。詳細については、8-22ページの 「AlarmNotifierWrite」を参照してください。 AlarmNotifierClear アラームノーティファイアのログファイルにあるログエントリを削除し ます。詳細については、8-24ページの「AlarmNotifierClear」を参照し てください。 AlarmNotifierDelete アラームノーティファイアを削除します。詳細については、8-26ページ の「AlarmNotifierDelete」を参照してください。 8-4 i.LON 100 Internet Server Programmer’s Reference 8.2.1.1 AlarmNotifierList AlarmNotifierList 関数を使用すると、i.LON 100 に追加したアラームノーティファイアの 一覧を取得することができます。AlarmNotifierList 関数は<Data>パラメータとして空の文 字列を受け入れます。 この関数は、アラームノーティファイアアプリケーションが使用しているファームウェアの バージョン番号(主および副)を<Result>パラメータ内に返します。<Result>パラメータに は、i.LON 100 に追加した各アラームノーティファイアの<Alarm>エレメントも含まれます。 次の「AlarmNotifierGet」で、<Alarm>エレメントに含まれるプロパティについて説明しま す。 この関数が返す<Alarm>エレメントの一覧は、AlarmNotifierGet 関数の入力として使用でき ます。AlarmNotifierGet 関数は、<Alarm>エレメントに含まれている各アラームノーティ ファイアの構成を返します。 <Data>パ ラメータ Empty String <Result>パ ラメータ <Result> <iLONAlarmNotifier> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <Alarm> <UCPTindex>0</UCPTindex> <UCPTlastUpdate>2002-06-20T12:37:07Z</UCPTlastUpdate> <UCPTdescription>Control of the Data Logger</UCPTdescription> <UCPTfbName>Alarm Notifier- 0</UCPTfbName> </Alarm> <Alarm> <UCPTindex>1</UCPTindex> <UCPTlastUpdate>200206-20T12:37:07Z</UCPTlastUpdate> <UCPTdescription>Temperature alarm</UCPTdescription> <UCPTfbName>Alarm Notifier- 1</UCPTfbName> </Alarm> </iLONAlarmNotifier> </Result> 8.2.1.2 AlarmNotifierGet AlarmNotifierGet 関数を使用すると、i.LON 100 に追加したアラームノーティファイアの構 成を取得することができます。構成情報を取得したいアラームノーティファイアは、関数に 渡す<Data>パラメータ内でインデックス番号を指定する必要があります。 <Data> パラメー タ <Data> <iLONAlarmNotifier> <Alarm> <UCPTindex>0</UCPTindex> </Alarm> </iLONAlarmNotifier> </Data> i.Lon 100 Internet Server Programmer’s Reference 8-5 <Result> パラメー タ 8-6 <Result> <iLONAlarmNotifier> <Alarm> <UCPTindex>0</UCPTindex> <UCPTlastUpdate>2002-06-21T07:59:23Z</UCPTlastUpdate> <UCPTdescription>Temperature Sensor Device</UCPTdescription> <UCPTfbName>Alarm Notifier- 0</UCPTfbName> <SCPTdelayTime>0.0</SCPTdelayTime> <UCPTsumLogSize>100</UCPTsumLogSize> <UCPThistLogSize>100</UCPThistLogSize> <UCPTlogFormat>LF_TEXT</UCPTlogFormat> <UCPTemailAggregTime>10</UCPTemailAggregTime> <Point> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_AlarmGenIn1</UCPTpointName> <UCPTalarmFlags>0 1 0 0 0 0 0</UCPTalarmFlags> <UCPTalarmGroup>0</UCPTalarmGroup> <UCPTpriority>1</UCPTpriority> <UCPTdescription></UCPTdescription> </Point> <Mail> <UCPTindex>0</UCPTindex> <UCPTemailNickName>Joerg</UCPTemailNickName> <UCPTemailAddress>js@nova</UCPTemailAddress> <UCPTemailFormat>occured%dy/%dm/%dd</UCPTemailFormat> <UCPTemailSubject>Alarm Nofifier1: %ad</UCPTemailSubject> <UCPTemailAttachment>/root/Data/log1.csv</UCPTemailAttachment> </Mail> <ActiveAlarm> <UCPTindex>0</UCPTindex> <UCPTlevel>1</UCPTlevel> <UCPTalarmText>Alarm (Binary)</UCPTalarmText> <UCPTactAlarmType>AL_ALM_CONDITION</UCPTactAlarmType> </ActiveAlarm> <ActiveAlarm> <UCPTindex>1</UCPTindex> <UCPTlevel>2</UCPTlevel> <UCPTalarmText>Alarm (Binary) offline</UCPTalarmText> <UCPTactAlarmType>AL_OFFLINE</UCPTactAlarmType> </ActiveAlarm> <PassiveAlarm> <UCPTindex>0</UCPTindex> <UCPTlevel>255</UCPTlevel> <UCPTalarmText>Normal Condition</UCPTalarmText> <UCPTpasAlarmType>AL_NO_CONDITION</UCPTpasAlarmType> <UCPTpasAlarmType>AL_NUL</UCPTpasAlarmType> </PassiveAlarm> <AlarmDest> <UCPTindex>0</UCPTindex> <UCPTdestEnable>NVL_nviWeekday</UCPTdestEnable> <ActiveDest> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nvoAlarmFlag1</UCPTpointName> <UCPTpointValue>77.0 1</UCPTpointValue> <UCPTminLevel>1</UCPTminLevel> <UCPTmaxLevel>0</UCPTmaxLevel> <UCPTnackDelay>0</UCPTnackDelay> </ActiveDest> <PassiveDest> <UCPTindex>1</UCPTindex> <UCPTpointName>NVL_nvoAlarmFlag1</UCPTpointName> <UCPTpointValue>MEDIUM</UCPTpointValue> </PassiveDest> </AlarmDest> <AlarmDest> <UCPTindex>1</UCPTindex> <UCPTdestEnable>NVL_nviWeekend</UCPTdestEnable> i.LON 100 Internet Server Programmer’s Reference <ActiveDest> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nvoAlarmFlag1</UCPTpointName> <UCPTemailNickName>Joerg</UCPTemailNickName> <UCPTpointValue>100.0 1</UCPTpointValue> <UCPTminLevel>2</UCPTminLevel> <UCPTmaxLevel>0</UCPTmaxLevel> <UCPTnackDelay>0</UCPTnackDelay> </ActiveDest> <PassiveDest> <UCPTindex>1</UCPTindex> <UCPTpointName>NVL_nvoAlarmFlag1</UCPTpointName> <UCPTpointValue>Off Value</UCPTpointValue> <UCPTminLevel>255</UCPTminLevel> <UCPTmaxLevel>255</UCPTmaxLevel> </PassiveDest> </AlarmDest> </Alarm> </iLONAlarmNotifier> </Result> AlarmNotifierGet 関数は、関数に渡した<Data>パラメータで参照したアラームノーティ ファイアの<Alarm>エレメントを返します。<Alarm>エレメントに含まれているプロパティ は、アラームノーティファイアの作成時に最初に定義されます。このプロパティに書き込み を行うには、AlarmNotifierSet 関数を使用します。表 32では、これらのプロパティについ て説明しています。 AlarmNotifierSet 関数の詳細については、8-16ページの「AlarmNotifierSet」を参照してく ださい。 表 32 AlarmNotifierGet の出力プロパティ プロパティ <UCPTindex> 説明 アラームノーティファイアに割り当てられるインデックス番号 は、–32,768∼32,767 の範囲に収めます。AlarmNotifierSet 関 数を使用すると、新しいアラームノーティファイアを作成する か、既存のアラームノーティファイアを変更することができま す。AlarmNotifierSet に渡す<Data>パラメータの中でインデッ クス番号を指定しない場合は、使用可能な最初のインデックス番 号で新しいアラームノーティファイアが作成されます。 既に使用中のインデックス番号を指定した場合は、そのインデッ クス番号を使用しているアラームノーティファイアの構成が、 <Data>パラメータに定義されている設定で上書きされます。 i.Lon 100 Internet Server Programmer’s Reference 8-7 プロパティ <UCPTlastUpdate> 説明 アラームノーティファイアの構成が最後に更新された時刻を示す タイムスタンプ。このタイムスタンプは、次のフォーマットを使 用します。 YYYY-MM-DDTHH:MM:SSZ タイムスタンプの最初のセグメント(YYYY-MM-DD)は、ア ラームノーティファイアの構成が最後に更新された日を表しま す。2 番目のセグメント(THH:MM:SS)は、アラームノーティ ファイアの構成が最後に更新された日の時刻を協定世界時 (UTC)で表します。 UTC は、以前はグリニッジ標準時(GMT)と一般的に呼ばれて いたものを示す現在の用語です。0 時間の UTC は、ゼロ度の経 線上にあるイギリスのグリニッジにおける深夜 0 時を表します。 協定世界時は 24 時間制に基づいているため、4 pm などの午後の 時間は 16:00 UTC と表されます。タイムスタンプに追加される Z は、それが UTC 単位であることを示します。 たとえば 2002-08-15T10:13:13Z は、2002 年 8 月 15 日の午前 10 時 13 分 13 秒の UTC 時間を示します。 <UCPTdescription> アラームノーティファイアのユーザ定義の説明。この長さは最大 228 文字です。 <UCPTfbName> LONMAKER でアラームノーティファイアに割り当てられた機能 ブロック名。このプロパティに書き込みを行うことはできます が、i.LON 100 構成ソフトウェアを使用してアラームノーティ ファイアを表示するたびに、このプロパティは LONMAKER で定 義されている機能ブロック名にリセットされます。 <SCPTdelayTime> アラームノーティファイアがアラーム通知をログに記録した後、 アラームノーティファイアの電子メールプロファイルを使用する か、このアラームノーティファイアの出力データポイントを更新 できるようになる前に経過しなければならない最小時間(秒 数)。 このプロパティの既定値は 0 です。 <UCPTsumLogSize> サマリアラームログファイルのバイト数。サマリアラームログに は、現在確認済みのアラームと未確認のアラームのレコードがす べて含まれています。 i.LON 100 上のすべてのアラームノーティファイア(およびデー タロガー)のログファイルの合計サイズは、i.LON 100 に搭載さ れているフラッシュメモリのサイズを超過できないことに注意し てください。フラッシュメモリの残りの容量が 256 KB になる と、i.LON 100 はログファイルへの書き込みを停止します。 フラッシュメモリの残量は、SystemInfoRead 関数を使用して監 視できます。詳細については、第15章「i.LON 100 のフラッシ ュメモリ」を参照してください。 <UCPThistLogSize> 8-8 履歴アラームログファイルのバイト数。履歴アラームログには、 確認済みアラームのレコードが含まれています。各レコードに は、アラームに関する説明、確認時刻、およびコメントが含まれ ています。 i.LON 100 Internet Server Programmer’s Reference プロパティ 説明 i.LON 100 上のすべてのアラームノーティファイア(およびデー タロガー)のログファイルの合計サイズは、i.LON 100 に搭載さ れているフラッシュメモリのサイズを超過できないことに注意し てください。フラッシュメモリの残りの容量が 256 KB になる と、i.LON 100 はログファイルへの書き込みを停止します。 フラッシュメモリの残量は、SystemInfoRead 関数を使用して監 視できます。詳細については、第15章「i.LON 100 のフラッシ ュメモリ」を参照してください。 <UCPTlogFormat> <UCPTemailAggregTime> LF_BINARY または LF_TEXT のどちらか。このプロパティ は、生成されるログファイルがバイナリファイルとテキストファ イルのどちらであるかを示します。 アラームノーティファイアの電子メールプロファイルを使用して 電子メールを送信してから、次の電子メール送信するまで待機す る必要のある時間をミリ秒単位で表します。これは、複数の電子 メールが同時に同じアドレスに送信されないようにする場合に便 利です。 このプロパティを定義しない場合の既定値は 0 です。最大値は 65,535 ミリ秒です。 <Point> アラームノーティファイアに定義されている入力データポイント のいずれかが更新され、データポイントの<UCPTpointStatus> が、アラームノーティファイアのアクティブまたは非アクティブ なアラーム条件のいずれかに定義されているステータスに一致す るたびに、アラーム通知が発生します。1 つのアラームノーティ ファイアには、入力データポイントをいくつでも指定できます。 アラームノーティファイアの入力データポイントは、<Data>パ ラメータ内の<Point>エレメントの一覧で定義します。 <Point>内に定義する必要のあるプロパティの説明については、 8-10ページの「入力データポイント」を参照してください。1 つ のアラームノーティファイアには、入力データポイントをいくつ でも指定できます。 <Mail> 電子メールプロファイルには、電子メールアドレス、メッセージ テキスト、件名、および添付ファイルが含まれています。電子 メールプロファイルが使用されるたびに、件名、メッセージテキ スト、および添付ファイルを含む電子メールメッセーが指定のア ドレスに送信されます。 電子メールプロファイルは、アラームノーティファイアのアク ティブおよび非アクティブな通知先を設定するときにユーザが指 定します。各アラームノーティファイアには電子メールプロファ イルを必要な数だけ作成できますが、各アラーム通知先が参照で きる電子メールプロファイルは 1 つだけです。 アラームノーティファイアの電子メールプロファイルは、 <Mail>エレメントの一覧によって示されます。各<Mail>エレメ ント内に定義する必要のあるプロパティの説明については、8-12 ページの「電子メールプロファイル」を参照してください。 i.Lon 100 Internet Server Programmer’s Reference 8-9 プロパティ <ActiveAlarm> 説明 入力データポイントが更新され、アクティブなアラーム状態のい ずれかに一致した場合、それはアクティブなアラームであると見 なされます。この場合、アラームノーティファイアはアクティブ な通知先を使用します。1 つのアラームノーティファイアには、 アクティブなアラーム状態をいくつでも作成できます。 アラームノーティファイアのアクティブなアラーム状態は、 <ActiveAlarm>エレメントの一覧によって示されます。各 <ActiveAlarm>内に定義する必要のあるプロパティの説明につい ては、8-14ページの「アクティブおよび非アクティブなアラーム 状態」を参照してください。 <PassiveAlarm> 入力データポイントが更新され、非アクティブなアラーム状態の いずれかに一致した場合、それは非アクティブなアラームと見な されます。この場合、アラームノーティファイアは非アクティブ な通知先を使用します。1 つのアラームノーティファイアには、 非アクティブなアラーム状態をいくつでも作成できます。 アラームノーティファイアの非アクティブアラーム状態は、 <PassiveAlarm>エレメントの一覧によって示されます。各 <PassiveAlarm>エレメント内に定義する必要のあるプロパティ の説明については、8-14ページの「アクティブおよび非アクティ ブなアラーム状態」を参照してください。 <AlarmDest> <AlarmDest>エレメントは、アラームノーティファイアが使用 するアクティブおよび非アクティブなアラーム通知先を定義しま す。アクティブな通知先は、<AlarmDest>エレメント内の子エ レメント<ActiveDest>によって示されます。非アクティブな通 知先は、<AlarmDest>エレメント内の子エレメント <PassiveDest>によって示されます。 <ActiveDest><PassiveDest>子エレメント内に定義する必要のあ るプロパティの説明については、8-15ページの「アクティブおよ び非アクティブなアラーム通知先」を参照してください。 <AlarmDest>エレメントには、インデックス番号 (UCPTindex)と、イネーブルデータポイント (UCPTdestEnable)という 2 つのグローバルエレメントも含ま れています。<UCPTdestEnable>プロパティはオプションで す。ここでは SNVT_Switch データポイントは名前 (UCPTpointName)で参照できます。データポイントが 100.0 1 に設定されている場合には<AlarmDest>が有効になり、0.0 0 に設定されている場合には無効になります。このデータポイント を設定するには、LONWORKS ネットワーク上のスイッチまたは イベントスケジューラアプリケーションを使用します。 この機能により、状況に応じてアラームノーティファイアの通知 先を有効または無効に切り替えることができます。 8.2.1.2.1 入力データポイント 次の表では、<Point>エレメント内で定義する必要のあるプロパティについて説明します。 <Point>エレメントはアラームノーティファイアの入力データポイントを定義します。入力 データポイントのいずれかが更新されるたびに、アラームノーティファイアは入力データポ イントがアラーム状態に達していないかどうかを確認します。 8-10 i.LON 100 Internet Server Programmer’s Reference 入力データポイントが更新され、アクティブまたは非アクティブなアラーム状態に達すると、 アラーム通知がログに記録され、該当する非アクティブまたはアクティブなアラーム通知先 が使用されます。 表 33 入力データポイントのプロパティ プロパティ 説明 <UCPTindex> このデータポイントに対し、アラームノーティファイアアプリケー ションが使用するインデックス番号。これは、i.LON 100 Data Server のデータポイントに割り当てられているインデックス番号に 一致しなくてもかまいません。 <UCPTpointName> i.LON 100 Data Server に定義されているデータポイント名。 <UCPTalarmFlags> このフィールドには、スペースで区切られたブール値(0,1)が含ま れており、次の各フィールドを定義します。 バイト位置 1: :このバイト(log_enable)が(1)に設定されている ときは、履歴ログ内のアラームのステータスが変化するたびにログ にエントリが作成されます。 バイト位置 2: :このバイト(invisible)が(1)に設定されていると きは、アラームノーティファイアのログエントリはサマリログに表 示されません。 バイト位置 3: :予約済みバイト。これは 0 のままにしておいてくださ い。 バイト位置 4: :このバイトが(0)に設定されていない場合、アラー ムが確認されるか、非アクティブな状態に変化したときに、このア ラームノーティファイアのログエントリがサマリログから自動的に 削除されます。 バイト位置 5: :このバイト(ack_required)が(1)に設定されてい るときは、アラームノーティファイアが発生させたすべてのログエ ントリは、AlarmNotifierClear 関数を使用して手動で確認する必要 があります。このバイトが(0)に設定されていないときは、アラー ムノーティファイアが発生させた各アラームは、自動的に確認され ます。 バイト位置 6: :このバイト(status_enabled)は使用しません。0 の ままにしておいてください。 バイト位置 7: :このバイト(cov_enabled)が(1)に設定されてい るときは、アラームノーティファイアが最後にログに記録したア ラーム通知のみがサマリログに格納されます。 バイト 3 とバイト 6 は 0 のままにしておく必要があります。その他 のバイトは、このプロパティに値を指定することで、ON(1)また は OFF(0)に設定できます。たとえば、バイト 3 とバイト 6 以外 のすべてのフィールドをオンにするには、次の文字列を入力しま す。 <UCPTalarmFlags>1 1 0 1 1 0 1</UCPTalarmFlags> このプロパティの既定値は 0 0 0 0 0 0 0 です。 <UCPTalarmGroup> データポイントが発生させたアラーム通知のグループ番号。グルー プ番号を使用すると、アラームを分類することができます。アラー ムグループには 1∼127 の番号を付けます。 i.Lon 100 Internet Server Programmer’s Reference 8-11 プロパティ <UCPTpriority> 説明 データポイントがアラーム状態に達したときにデータポイントに割 り当てられる優先度。0(最高優先度)∼255(最低優先度)の間の 整数で指定する必要があります。優先度を使用すると、サマリログ ビューまたは i.LON 100 Web ページでアラームを分類することがで きます。 既定値は 0 です。優先度とその使用方法については、2-8ページの 「データポイント値と優先度」を参照してください。 <UCPTdescription> 8.2.1.2.2 データポイントのアラーム状態を示すユーザ定義の説明。最高 201 文字まで指定できます。 電子メールプロファイル 表 34では、<Mail>エレメント内で定義する必要のあるプロパティについて説明しています。 本章で前述したとおり、<Mail>エレメントはアラームノーティファイアの電子メールプロ ファイルを定義します。 アラームノーティファイアにアクティブおよび非アクティブな通知先を作成するときは、電 子メールプロファイルを指定します。通知先のいずれかが使用されるたびに、通知先が電子 メールプロファイルを参照し、プロファイルに指定されているアドレスに、電子メールが送 信されます。アクティブおよび非アクティブなアラーム通知先の詳細については、8-15ペー ジの「アクティブおよび非アクティブなアラーム通知先」を参照してください。 表 34 プロパティ 電子メールプロファイルのプロパティ 説明 <UCPTindex> 電子メールプロファイルのインデックス番号。 <UCPTemailNickName> 電子メールプロファイルの名前。アクティブおよび非アクティブ なアラーム通知先を設定するときは、この名前を使用して電子 メールプロファイルを参照します。最高 31 文字まで指定できま す。 <UCPTemailAddress> 電子メールアドレス。プロファイルが使用されるたびに、このア ドレスに電子メールが送信されます。アドレスは、最高 201 文字 まで指定できます。 <UCPTemailFormat> 送信する電子メールに文字列として含まれるメッセージテキス ト。SOAP インタフェースにはマクロ引数が用意され、アラーム に関する情報をメッセージに自動的に挿入することができます。 以下はマクロ引数の例です。 %al が%dy / %dm/ %dd %pn に発生し、%va のレベルに達しま した。 使用可能なマクロ引数の説明については、表 35を参照してくだ さい。このメッセージは最高 201 文字まで指定できます。 <UCPTemailSubject> 送信する電子メールの件名。最高 201 文字まで指定できます。 <UCPTemailAttachment> 送信する電子メールの添付ファイルのパス。これは i.LON 100 ベースのパスである必要があります。たとえば、 /root/Data/log1.csv のように指定します。 指定できるパスの長さは最高 201 文字です。 8-12 i.LON 100 Internet Server Programmer’s Reference 表 35では、<Mail>エレメント内の<UCPTemail Format>プロパティを指定する場合に使用 するマクロ引数を一覧表示しています。 表 35 マクロ引数 マクロ引数 説明 %al アラームタイプ。アラームを発生させたデータポイントの現在のステータ ス(UCPTpointStatus)です。 %at アラームタイプ番号。データポイントのステータス(UCPTpointStatus) を整数値で表します。 %dm アラームが発生した月。1∼12 の整数で指定します。 %dd アラームが発生した日。1∼31 の整数で指定します。 %dy アラームが発生した年。4 桁の整数で指定します。例:1997 %dt アラームが発生した日付を YYYY-MM-DD のフォーマットで指定します。 例:2002-30-10 %gr アラームグループ番号。アラームを発生させたデータポイントに割り当て られている<UCPTalarmGroup>プロパティの値です。 %lm アラーム制限。入力データポイントがこの制限値を超過すると、アラーム ジェネレータアプリケーションにより現在のアラームステータスに更新さ れます。入力データポイントにアラームジェネレータが使用されていない 場合、0 を返します。 %ls アラーム場所の文字列。アラームを発生させたデータポイントの <UCPTlocation>プロパティに格納されているテキストです。 %ob アラームを発生させたデータポイントに割り当てられている i.LON 100 Data Server 内のインデックス番号。 %pr アラームの優先度。 %ps パーセント記号(“%”)。 %s1 ページング文字列用の 1 秒の遅延。電子メールの作成を 1 秒間遅延させま す。 %si アラームを発生させたデータポイントの SNVT ID。 %t1 アラームが発生した時刻を 12 時間制のフォーマットで表したもの。たとえ ば、アラームが 10:00 AM または 10:00 PM に発生した場合は、10 が返さ れます。 %t2 アラームが発生した時刻を 24 時間制のフォーマットで表したもの。たとえ ば、アラームが 4 PM に発生した場合は、16 が返されます。 %ta 午前に発生したアラームの場合は“A”が返され、午後に発生したアラームの 場合は“P”が返されます。 %tm アラームが発生した時刻の分。 %ts アラームが発生した時刻の秒。 %th アラームが発生した時刻のミリ秒。 %ti アラームが発生した時刻を HH:MM:SS のフォーマットで表したもの。た とえば、08:12:22 は午前 8 時 12 分 22 秒のアラーム時刻を示します。 %va アラームを発生させたデータポイントの最新値。 i.Lon 100 Internet Server Programmer’s Reference 8-13 マクロ引数 説明 %ad アラームの説明。アラームを発生させたデータポイントに対してアラーム ノーティファイアで定義されているアラームの説明(UCPTdescription) から取り込まれます。 %pn アラームを発生させたデータポイントの名前。 %dp アラームを発生させたデータポイントの説明。アラームを発生させたデー タポイントに対して Data Server で定義されているアラームの説明 (UCPTdescription)から取り込まれます。 %ua アラームを発生させたデータポイントの単位の種類。アラームを発生させ た<UCPTunit>プロパティから取り込まれます。ただし、データポイント が SNVT_alarm または UNVT_alarm2 である場合、このマクロは空白の 文字列を返します。 %nl 改行。電子メールに改行を挿入するにはこのマクロを入力します。 8.2.1.2.3 アクティブおよび非アクティブなアラーム状態 表 36では、<ActiveAlarm>および<PassiveAlarm>エレメント内で定義する必要のあるプロ パティについて説明しています。<ActiveAlarm>および<PassiveAlarm>エレメントは、そ れぞれアラームノーティファイアのアクティブおよび非アクティブなアラーム状態を定義し ます。 入力データポイントが更新され、アクティブ状態のいずれかに定義されている状態に達する と、それはアクティブなアラームであると見なされ、アクティブなアラーム通知先がアラー ム通知に使用されます。入力データポイントが更新され、非アクティブ状態のいずれかに定 義されている状態に達すると、それは非アクティブなアラームであると見なされ、非アク ティブなアラーム通知先がアラーム通知に使用されます。 次の「アクティブおよび非アクティブなアラーム通知先」の項では、アラームノーティファ イアのアクティブおよび非アクティブな通知先の定義方法について説明します。 表 36 プロパティ アクティブおよび非アクティブなアラーム状態のプロパティ 説明 <UCPTindex> アラーム状態のインデックス番号。 <UCPTlevel> アラームレベルを 0∼255 の範囲で入力します。アラームが発生したと きは、アラーム状態に割り当てられたレベルに応じてアラーム通知先 が決まります。 作成する各アラーム通知先ごとに、レベルの範囲を指定します。たと えば、アラーム状態の 1 つの通知先にレベル 0∼125 を設定し、別のア ラーム状態にレベル 126∼255 を設定した場合、レベル 0∼125 に割り 当てられているアラーム状態は、最初の通知先を使用し、レベル 126 ∼255 に割り当てられているアラーム状態は 2 番目の通知先を使用し ます。 注:アラームノーティファイアを SOAP/XML インタフェースで作成し た後に、i.LON 100 構成ソフトウェアを使用してアラームノーティ ファイアの構成を変更した場合、<UCPTlevel>プロパティが 1 より大 きい値に設定されていると、<UCPTlevel>プロパティが 0 にリセット されます。 <UCPTalarmText> 8-14 アラームノーティファイアのログファイル内のアラーム状態を記述す る、ユーザ定義のテキストです。最高 201 文字まで指定できます。 i.LON 100 Internet Server Programmer’s Reference プロパティ 説明 <UCPTactAlarmType> for active conditon sets. <UCPTpasAlarmType> for passive conditon sets. アラーム状態に対し、1 つ以上のアラームタイプを指定します。入力 データポイントのステータス(UCPTpointStatus)が更新され、指定 したアラームタイプのいずれかに一致した場合、アラーム状態のタイ プに応じてアラームがアクティブまたは非アクティブなものとして宣 言されます。有効なアラームタイプの識別子は次のとおりです。 AL_VALUE_INVALID、AL_CONSTANT、AL_OFFLINE, AL_NUL、AL_NO_CONDITION、AL_TOT_SVC_ALM_1. AL_TOT_SVC_ALM_2、AL_TOT_SVC_ALM_3、 AL_LOW_LMT_CLR_1、AL_LOW_LMT_CLR_2、 AL_HIGH_LMT_CLR_1、AL_HIGH_LMT_CLR_2、 AL_LOW_LMT_ALM_1、AL_LOW_LMT_ALM_2、 AL_HIGH_LMT_ALM_1、AL_HIGH_LMT_ALM_2、AL_FIR_ALM, AL_FIR_PRE_ALM、AL_FIR_TRBL、AL_FIR_SUPV、 AL_FIR_TEST_ALM、AL_FIR_TEST_PRE_ALM、 AL_FIR_ENVCOMP_MAX、AL_FIR_MONITOR_COND、 AL_FIR_MAINT_ALERT 非アクティブなアラーム状態には、重要度の低い AL_VALUE_INVALID または AL_OFFLINE などを使用し、アク ティブなアラーム状態には、AL_HIGH_LMT_ALM_1 などの重要度の 高いアラームタイプを使用してください。 8.2.1.2.4 アクティブおよび非アクティブなアラーム通知先 1 つのアラームノーティファイアには 1 つ以上の<AlarmDest>エレメントを定義することが できます。<AlarmDest>エレメントはアラームノーティファイアのアクティブおよび非アク ティブな通知先を定義します。 <AlarmDest>エレメントには、オプションで<UCPTdestEnable>プロパティを指定すること ができます。このプロパティで SNVT_Switch データポイントを参照するには、データポイ ントの<UCPTpointName>を指定します。データポイントが 100.0 1 に設定されている場合 には<AlarmDest>が有効になり、0.0 0 に設定されている場合には無効になります。この データポイントを設定するには、LONWORKS スイッチまたはイベントスケジューラアプリ ケーションを使用します。この機能により、通知先を有効または無効に切り替えることがで きます。 <AlarmDest>には 1 つ以上の<ActiveDest>および<PassiveDest>エレメントが含まれていま す。表 37では、<ActiveDest>および<PassiveDest>エレメントに定義する必要のあるプロパ ティについて説明します。<ActiveDest>エレメントはアラームノーティファイアのアクティ ブな通知先を定義します。<PassiveDest>エレメントはアラームノーティファイアの非アク ティブな通知先を定義します。 入力データポイントが更新され、アクティブなアラーム状態のいずれかに定義されている状 態に達すると、アラームノーティファイアのアクティブな通知先が使用されます。入力デー タポイントが更新され、非アクティブなアラーム状態のいずれかに定義されている状態に達 すると、アラームノーティファイアの非アクティブな通知先が使用されます。 表 37 アクティブおよび非アクティブな通知先プロパティ プロパティ <UCPTindex> 説明 アラーム通知先のインデックス番号。 i.Lon 100 Internet Server Programmer’s Reference 8-15 プロパティ <UCPTemailNickName> 説明 アラームノーティファイアに作成する電子メールプロファイルには、 オプションで電子メールのニックネームを含めることができます。ア ラーム通知がこの通知先を使用するたびに、このプロパティが使用さ れます。 注:i.LON 構成ソフトウェアで表示および変更できるのは、1 つのアク ティブアラーム通知先と 1 つの非アクティブアラーム通知先のみで す。表示されるのは、XML ファイルの一覧の先頭に含まれる通知先で す。i.LON 100 構成ソフトウェアを使用してアラームノーティファイ アの構成を変更すると、通知先が異なる電子メールプロファイルを使 用している場合には、最初のアクティブな通知先に対する電子メール プロファイルと同じものを最初の非アクティブな通知先にも使用する ようにアラームノーティファイアが変更されます。 <UCPTpointName> アクティブな通知先を使用し、アラーム通知の電子メールが送信され たときに更新される出力データポイントの名前。 電子メールの送信を待たずにアラーム通知中にデータポイントを自動 的に更新する通知先を作成する場合、<UCPTe-mailNickName>プロ パティは指定しないでください。 <UCPTpointValue> アラームノーティファイアによって電子メールが送信される通知先 の、出力データポイントの更新後の値または値の定義。 値の定義は、実際の値を表すユーザ定義の文字列です。データポイン トに追加するには DataServerSet 関数を使用します。 <UCPTminLevel> この通知先に必要な最小アラームレベル。アラーム通知のアラームレ ベルは、アラームを発生させた状態の<UCPTlevel>プロパティに割り 当てられている値によって変化します。 <UCPTmaxLevel> この通知先に必要な最大アラームレベル。アラーム通知のアラームレ ベルは、アラームを発生させた状態の<UCPTlevel>プロパティに割り 当てられている値によって変化します。 <UCPTnackDelay> 通知先の電子メールプロファイルに電子メールを送信する前にアラー ムが確認されるのを待つまでの遅延時間を、分単位で表します。この 期間が経過してもアラームが確認されない場合は、電子メールが送信 されます。 このプロパティが設定されていない場合の既定値は 0 です。この場合 には、アラームが発生した直後に電子メールが送信されます。最大値 は 65,535 です。 8.2.1.3 AlarmNotifierSet AlarmNotifierSet 関数を使用すると、新しいアラームノーティファイアを作成するか、既存 のアラームノーティファイアの構成を上書きすることができます。 関数が作成または上書きするアラームノーティファイアは、<Data>パラメータ内の <Alarm>エレメントの一覧で指定します。各<Alarm>エレメント内に定義する必要のあるプ ロパティは、新しいアラームノーティファイアを作成する場合も、既存のアラームノーティ ファイアを変更する場合でも同じです。これらのプロパティの詳細については、前項の 「AlarmNotifierGet」を参照してください。 8-16 i.LON 100 Internet Server Programmer’s Reference 注:既存のアラームノーティファイアを変更する場合、入力文字列に指定されていないオプ ションのプロパティは消去されます。古い値は継承されないため、アラームノーティファイ アに書き込みを行うときは、すべての値を変更しない場合にも、すべてのプロパティを指定 する必要があります。 アラームノーティファイアは、1 つの i.LON 100 あたり 40 まで作成できます。 AlarmNotifierSet 関数を初めて呼び出すと、i.LON 100 の/root/config/software/Driver ディ レクトリに AlarmNotifier.XML ファイルが作成されます(ファイルがまだ存在しない場 合)。 AlarmNotifierSet を使用してアラームノーティファイアを作成または変更するときは、 AlarmNotifierGet の出力を基にして<Data>パラメータを指定すると便利です。こうすると、 文字列全体を最初から作成する代わりに、新しい構成に一致するように各プロパティの値を 変更するだけで済みます。 次の例では、入力データポイントとして NVL_nviRequest を使用するアラームノーティファ イアを作成します。このアラームノーティファイアには、アラーム通知が発生するたびに使 用する電子メールプロファイルが含まれています。また、アラーム通知が発生したときに更 新する 2 つの出力データポイントも含まれています。アラームノーティファイアがアラーム をログに記録したときに、どのデータポイントが更新されるかは、さまざまな要因によって 変化します。これらの要因には、入力データポイントの更新後のステータスや、アラーム状 態に割り当てられているアラームレベルなどがあります。 <Data> パラメー タ <Data> <iLONAlarmNotifier> <Alarm> <UCPTindex>9</UCPTindex> <UCPTdescription>Temperature Sensor Device</UCPTdescription> <UCPTfbName>Alarm Notifier- 9</UCPTfbName> <SCPTdelayTime>0.0</SCPTdelayTime> <UCPTsumLogSize>100</UCPTsumLogSize> <UCPThistLogSize>100</UCPThistLogSize> <UCPTlogFormat>LF_BINARY</UCPTlogFormat> <UCPTemailAggregTime>10</UCPTemailAggregTime> <Point> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nviRequest</UCPTpointName> <UCPTalarmFlags>0 1 0 0 0 0 0</UCPTalarmFlags> <UCPTalarmGroup>1</UCPTalarmGroup> <UCPTpriority>7</UCPTpriority> <UCPTdescription></UCPTdescription> </Point> <Mail> <UCPTindex>0</UCPTindex> <UCPTemailNickName>Headquarters</UCPTemailNickName> <UCPTemailAddress>js@nova</UCPTemailAddress> <UCPTemailFormat>%al occured at %dy/%dm/%dd %pn </UCPTemailFormat> <UCPTemailSubject>Alarm Notifier 3: %ad</UCPTemailSubject> <UCPTemailAttachment>/root/Data/log1.csv</UCPTemailAttachment> </Mail> <ActiveAlarm> <UCPTindex>0</UCPTindex> <UCPTlevel>1</UCPTlevel> <UCPTalarmText>Log 30 percent full</UCPTalarmText> <UCPTactAlarmType>AL_ALM_CONDITION</UCPTactAlarmType> </ActiveAlarm> <PassiveAlarm> <UCPTindex>0</UCPTindex> <UCPTlevel>255</UCPTlevel> <UCPTalarmText>Normal Condition</UCPTalarmText> <UCPTpasAlarmType>AL_NUL</UCPTpasAlarmType> i.Lon 100 Internet Server Programmer’s Reference 8-17 </PassiveAlarm> <AlarmDest> <UCPTindex>0</UCPTindex> <UCPTdestEnable>NVL_nviWeekday</UCPTdestEnable> <ActiveDest> <UCPTindex>0</UCPTindex> <UCPTemailNickName>Headquarters</UCPTemailNickName> <UCPTpointName>NVL_nvoDlClear</UCPTpointName> <UCPTpointValue>100.0 1</UCPTpointValue> <UCPTminLevel>2</UCPTminLevel> <UCPTmaxLevel>0</UCPTmaxLevel> <UCPTnackDelay>0</UCPTnackDelay> </ActiveDest> <PassiveDest> <UCPTindex>0</UCPTindex> <UCPTemailNickName>Headquarters</UCPTemailNickName> <UCPTpointName>NVL_nvoDlClear</UCPTpointName> <UCPTpointValue>0.0 0</UCPTpointValue> </PassiveDest> </AlarmDest> </Alarm> </iLONAlarmNotifier> <Data> <Result> パラメー タ <Result> <iLONAlarmNotifier> <Alarm> <UCPTindex>9</UCPTindex> </Alarm> </iLONAlarmNotifier> </Result> 8.2.1.4 AlarmNotifierRead アラームノーティファイアはアラーム通知を発生させるたびに、その通知のエントリをログ ファイルに記録します。AlarmNotifierRead 関数を使用すると、アラームノーティファイア が記録したログエントリの一部または全部を取得できます。ログエントリを返すアラーム ノーティファイアを指定するには、関数に渡す<Data>パラメータの中で、インデックス番号 を指定します。 関数が返すログエントリを指定するには、関数に渡す<Data>パラメータに、表 38で説明す るプロパティを指定します。表 38で説明するパラメータを<Data>パラメータに指定しない 場合、すべてのログのエントリが返されます。ただし、この関数の 1 回の呼び出しで返すロ グエントリの数は、100 以下に制限してください。 注: ログファイルは i.LON 100 の/root/AlarmLog ディレクトリにあります。これらのファイ ルには histlogX という名前が付いており、X は、アラームノーティファイアの作成時に割り 当てられたインデックス番号を表します。アラームノーティファイアは、アラーム通知を生 成するまでログファイルを生成しません。 表 38 プロパティ AlarmNotifierRead の入力プロパティ 説明 <UCPTpointName> ログエントリを返す対象となるデータポイントの名前。アラームノーティ ファイアが監視しているデータポイントすべてのログエントリを表示する には、このプロパティを空白にします。 <UCPTalarmLog> 履歴ログの内容を返す場合には、HISTORICAL と入力します。履歴ログ には、アラームノーティファイアが発生させたアラーム通知のログエント リが含まれています。サマリログの内容を返す場合は、SUMMARY と入 力します。サマリログには、アラームノーティファイアが発生させたアク 8-18 i.LON 100 Internet Server Programmer’s Reference ティブなアラーム通知のエントリが含まれています。アラームノーティ ファイアの作成時に定義した<UCPTflags>プロパティを指定することで、 最新のエントリのみをログに含めることもできます。 <UCPTcount> 関数が返すログエントリの最大数。このプロパティを指定しない場合は、 <UCPTstart>および<UCPTstop>プロパティに指定した期間内にログに記 録された、すべてのログエントリが返されます。 注:この関数の 1 回の呼び出しで読み取るログエントリの数は、100 まで に制限してください。 <UCPTstart> <UCPTstop> 関数が返すログエントリのアラーム時刻の範囲。開始時刻と終了時刻を指 定することも、終了時刻だけを指定することもできます。 開始時刻と終了時刻を指定していて、この期間内にログエントリの数が指 定の最大数を超えてしまった場合は、この期間内に記録されたログエント リの最初の部分が返されます。 終了時刻のみを指定していて、この時刻に達する前にログエントリの数が 指定の最大数を超えてしまった場合は、終了時刻前に記録されたログエン トリの最初の部分が返されます。 開始時刻または終了時刻を入力しなかった場合は、対象となるデータポイ ントのすべてのログエントリが指定の最大数に達するまで返されます。 <UCPTstart>および<UCPTstop>プロパティは、ローカル時間のタイムス タンプとして入力し、ローカル時間と UTC との時差を表す時間帯インジ ケータを付加する必要があります。このフォーマットの詳細については、 6-11ページの「ローカル時間と協定世界時」を参照してください。 次の AlarmNotifierRead 関数の例は、2002 年 1 月 1 日から 2002 年 9 月 4 日までの間に発 生したアラームに対し、インデックス番号 0 を使用しているアラームノーティファイアの NVL_AlarmGenIn1 データポイントに関するログエントリがすべて返されます。この呼び出 しは、最高 200 のログエントリを返します。 <Data>パラメー タ <Data> <iLONAlarmNotifier> <AlarmLog> <UCPTindex>0</UCPTindex> <UCPTpointName> NVL_AlarmGenIn1</UCPTpointName> <UCPTalarmLog>HISTORICAL</UCPTalarmLog> <UCPTstart>2002-0101T00:00:00.000+01:00</UCPTstart> <UCPTstop>2002-0904T23:59:59.000+01:00</UCPTstop> <UCPTcount>5</UCPTcount> </AlarmLog> </iLONAlarmNotifier> </Data> i.Lon 100 Internet Server Programmer’s Reference 8-19 <Result>パラ メータ <Result> <iLONAlarmNotifier> <AlarmLog> <UCPTindex>0</UCPTindex> <UCPTpointName> NVL_AlarmGenIn1</UCPTpointName> <UCPTalarmLog>SUMMARY</UCPTalarmLog> <UCPTfileName>/root/AlarmLog/sumlog0.dat</UCPTfileName> <UCPTstart>2002-0101T00:00:00.000+01:00</UCPTstart> <UCPTstop>2002-0904T23:59:59.000+01:00</UCPTstop> <UCPTlogLevel>20.5</UCPTlogLevel> <Element> <UCPTlogTime>2002-0703T10:47:51.000+01:00</UCPTlogTime> <UCPTalarmTime>2002-0505T1:12:15.000+01:00</UCPTalarmTime> <UCPTpointName>NVL_AlarmGenIn1</UCPTpointName> <UCPTlogSourceAddress>0.0</UCPTlogSourceAddress> <UCPTlocation>iLON</UCPTlocation> <UCPTalarmText>Normal Condition</UCPTalarmText> <UCPTpriority>1</UCPTpriority> <UCPTalarmGroup>0</UCPTalarmGroup> <UCPTalarmFlags>1 0 0 1 1 0 0</UCPTalarmFlags> <UCPTvalue>0.000000</UCPTvalue> <UCPTvalueDef></UCPTvalueDef> <UCPTunit></UCPTunit> <UCPTalarmType>PASSIVE</UCPTalarmType> <UCPTpointStatus>AL_NO_CONDITION</UCPTpointStatus> <UCPTalarmStatus>NACK</UCPTalarmStatus> <UCPTuserName>ilon</UCPTuserName> <UCPTdescription>Alarm Notifier Entry</UCPTdescription> </Element> </AlarmLog> </iLONAlarmNotifier> </Result> <Result>パラメータには、<Data>パラメータの先頭で参照したアラームノーティファイア のさまざまなプロパティが格納され、アラームノーティファイア、およびエントリを読み取 るログファイルに関する情報を提供します。表 39では、これらのプロパティについて説明し ています。 表 39 プロパティ AlarmNotifierRead のグローバルプロパティ 説明 <UCPTindex> アラームノーティファイアに割り当てられているインデックス番 号。 <UCPTalarmLog> リクエストするログの種類(HISTORICAL または SUMMARY)。 <UCPTfileName> アラームノーティファイアが使用しているログファイルの名前。 <UCPTstart> ログファイル内の最初と最後のログエントリのログ時間を示すタ イムスタンプ。タイムスタンプはローカル時間で表され、ローカ ル時間と UTC の時差を示す時間帯インジケータが付加されま す。詳細については、6-11ページの「ローカル時間と協定世界 時」を参照してください。 <UCPTstop> 8-20 i.LON 100 Internet Server Programmer’s Reference プロパティ 説明 <UCPTlogLevel> アラームノーティファイアのログファイルのログレベル。ログ ファイルの使用率をパーセントで示します。たとえば、20.5 はロ グが 20.5%消費されたことを示します。 AlarmNotifierRead 関数は、<Data>パラメータに指定した条件を満たす各ログエントリに ついて、詳細を記述した<Element>エレメントも返します。表 40では、これらのエレメント に含まれているプロパティについて説明しています。 表 40 AlarmNotifierRead の出力プロパティ プロパティ 説明 <UCPTlogTime> ログエントリが記録された時刻を示すタイムスタンプ。このタイム スタンプはローカル時間で表され、ローカル時間と UTC の時差を 示す時間帯インジケータが付加されます。詳細については、6-11 ページの「ローカル時間と協定世界時」を参照してください。 <UCPTalarmTime> アラームが発生した時刻を示すタイムスタンプ。このタイムスタン プはローカル時間で表示され、ローカル時間と UTC との時差を示 す時間帯インジケータが付加されます。詳細については、6-11ペー ジの「ローカル時間と協定世界時」を参照してください。 <UCPTpointName> アラーム通知を発生させたデータポイントの名前。 <UCPTlogSourceAddress> データポイントのローカルデバイスのネットワークアドレスを次の フォーマットで返します。 [Subnet.Node] <UCPTlocation> データポイントの場所。 <UCPTalarmText> アラームのアラームテキスト。AlarmNotifierSet 関数を使用する と、このテキストをアラームノーティファイアに設定することがで きます。 <UCPTpriority> アラームを発生させたデータポイントに割り当てられている優先 度。0(最高優先度)∼255(最低優先度)の間の整数です。この 優先度を使用すると、サマリログビューまたは i.LON 100 Web ページでアラームを分類することができます。 <UCPTalarmGroup> アラーム通知のグループ番号。アラームを分類するときに便利で す。 <UCPTalarmFlags> アラームを発生させたデータポイントに定義されているアラームフ ラグ文字列。このプロパティの詳細については、8-5ページの 「AlarmNotifierGet」を参照してください。 <UCPTvalue> アラーム通知を発生させたデータポイントの値。 <UCPTvalueDef> データポイントが現在使用している値の定義。値の定義はプリセッ ト値を表す文字列で、データポイントが Data Server に追加され るときに作成されます。このプロパティが表示されない場合、デー タポイントは値の定義を現在使用していないことになります。値の 定義の詳細については、第 4 章「Data Server」を参照してくださ い。 <UCPTunit> アラームを発生させたデータポイントに定義されている単位の種 類。 i.Lon 100 Internet Server Programmer’s Reference 8-21 プロパティ 説明 <UCPTalarmType> ACTIVE または PASSIVE。これは、アラームがアクティブまたは 非アクティブのどちらであるかを示します。アラームがアクティブ または非アクティブのどちらであるかを決定する条件は、アラーム ノーティファイアの作成時に定義します。詳細については、8-14 ページの「アクティブおよび非アクティブなアラーム状態」を参照 してください。 <UCPTpointStatus> アラーム通知を発生させたデータポイントのステータス。どのポイ ントのステータスがアラーム通知を発生させたかを判断する方法に ついては、8-14ページの「アクティブおよび非アクティブなアラー ム状態のプロパティ」を参照してください。 <UCPTalarmStatus> アラームのステータス。アクティブアラーム一覧から削除されてい ない確認済みアラームは AUTO_ACK または MANUAL_ACK と なり、確認済みでアクティブアラーム一覧から削除されたアラーム は AUTO_CLEAR または MANUAL_CLEAR となり、まだ確認さ れていないアラームは NACK となります。 アラームを手動でクリアまたは確認するには、 AlarmNotifierWrite関数を使用します。詳細については、8-22 ページの「AlarmNotifierWrite」を参照してください。 アラームノーティファイアの作成時に定義した<UCPTflags>プロ パティを指定することで、アラームを自動的にクリアまたは確認す ることもできます。 <UCPTuserName> アラームを確認したユーザの名前。アラームは AlarmNotifierWrite 関数を使用して確認できます。 <UCPTdescription> ログエントリに入力されたログに関するコメント。コメントをログ に入力するには、AlarmNotifierWrite 関数を使用します。 8.2.1.5 AlarmNotifierWrite AlarmNotifierWrite 関数を使用すると、アラームノーティファイアのログエントリを確認し たり、コメントを付けることができます。表 41では、アラームを確認するために<Data>パ ラメータに定義できる入力プロパティについて説明しています。 表 41 プロパティ AlarmNotifierWrite の入力プロパティ 説明 <UCPTindex> アラーム通知を生成したアラームノーティファイアのインデックス 番号。 <UCPTpointName> アラーム通知を発生させたデータポイントの名前。 <UCPTalarmTime> アラームが発生した時刻を示すタイムスタンプ。このタイムスタン プはローカル時間で入力し、ローカル時間と UTC との時差を示す 時間帯インジケータを付加する必要があります。詳細については、 6-11ページの「ローカル時間と協定世界時」を参照してください。 <UCPTuserName> アラームを確認した人のユーザ名。これはログファイルに記録され ます。長さは最大 31 文字です。 <UCPTdescription> このアラームのログファイルエントリに記録されるコメントを入力 します。長さは最大 228 文字です。 8-22 i.LON 100 Internet Server Programmer’s Reference プロパティ 説明 <UCPTalarmStatus> ログに入力されたアラームステータスを変更するには、次の 4 つの パラメータのうちのいずれかを選択します。 • MANUAL_CLEAR:アラームは確認され、アクティブな一覧か ら削除されます。 • MANUAL_ACK:アラームは確認されますが、アクティブな一 覧からは削除されません。 • NACK:アラームは確認されないか、アクティブな一覧から削 除されません。ただし、<UCPTcomment>プロパティに入力し たコメントはログに入力されます。 • AUTO_ACK:アラームのステータスが AUTO_ACK の場合、 このアラームは、発生時にアラームノーティファイアによって 自動的に確認されたことを示します。アラームノーティファイ アがデータポイントのアラームをすべて自動的に確認するよう に設定するには、AlarmNotifierSet でアラームノーティファイ アを作成するときに、データポイントの<UCPTalarmFlags>プ ロパティのバイト 5 を 1 に設定します。アラームが自動的に確 認された場合でも、この関数を使用するとログファイルにコメ ントを入力できます。<UCPTalarmFlags>プロパティの詳細に ついては、8-10ページの「入力データポイント」を参照してく ださい。 次の例では、NVL_AlarmGenIn1 データポイントが発生させたアラームを確認します。 <Data>パラ メータ <Data> <iLONAlarmNotifier> <AlarmLog> <UCPTindex>0</UCPTindex> <Element> <UCPTpointName>NVL_AlarmGenIn1</UCPTpointName> <UCPTalarmTime>2002-01-01 Z1:05:03.000+01:00</UCPTalarmTime> <UCPTuserName>Ben Ross</UCPTuserName> <UCPTdescription>I’ll fix it this evening</UCPTdescription> <UCPTalarmStatus>MANUAL_ACK</UCPTalarmStatus> </Element> </AlarmLog> </iLONAlarmNotifier> </Data> <Result>パラ メータ <Result> <iLONAlarmNotifier> <AlarmLog> <UCPTindex>0</UCPTindex> <UCPTalarmLog>SUMMARY</UCPTalarmLog> <UCPTfileName>/root/AlarmLog/sumlog0.csv</UCPTfileName> <UCPTstart>2001-01-01Z1:05:03.000+01:00</UCPTstart> <UCPTstop>2003-01-01Z1:05:03.000+01:00</UCPTstop> <UCPTlogLevel>0.5</UCPTlogLevel> </AlarmLog> </iLONAlarmNotifier> </Result> 表 42では、AlarmNotifierWrite 関数が<Result>パラメータに返したプロパティについて説 明しています。 i.Lon 100 Internet Server Programmer’s Reference 8-23 表 42 AlarmNotifierWrite の出力プロパティ プロパティ 説明 <UCPTindex> アラームノーティファイアのインデックス番号。 <UCPTalarmLog> ログファイルの種類で、SUMMARY または HISTORICAL のど ちらか。 <UCPTfileName> ログファイルの名前とパス。 <UCPTstart> <UCPTstart>および<UCPTstop>プロパティは、ログファイルの 最初と最後のエントリのアラーム時刻を示します。これらのタイ ムスタンプはローカル時間で表示され、ローカル時間と UTC と の時差を示す時間帯インジケータが付加されます。このフォー マットの詳細については、6-11ページの「ローカル時間と協定世 界時」を参照してください。 <UCPTstop> <UCPTlogLevel> ログファイルの使用率をパーセントで示します。たとえば、20.5 はログが 20.5%消費されたことを示します。 8.2.1.6 AlarmNotifierClear AlarmNotifierClear 関数を使用すると、アラームノーティファイアログファイルからログエ ントリを削除することができます。この関数は、ログエントリのみを削除します。アラーム ノーティファイアそのものを削除するには、AlarmNotifierDelete 関数を使用してください。 削除するアラームエントリを指定するには、関数に渡す<Data>パラメータの中で、表 43で 説明するプロパティを指定します。パラメータを指定しない場合は、アラームログ全体が削 除されます。 表 43 プロパティ AlarmNotifierClear の入力プロパティ 説明 <UCPTindex> 対象となるアラームノーティファイアのインデックス番号。 <UCPTpointName> 削除するログエントリを含むデータポイントの名前。このプロパティを指 定しない場合は、すべてのデータポイントのログエントリが削除されま す。 <UCPTcount> 関数が削除するログエントリの最大数。このプロパティを指定しない場合 は、該当するアプリケーションデータポイントのログエントリがすべて削 除されます。 8-24 i.LON 100 Internet Server Programmer’s Reference <UCPTstart> <UCPTstop> 削除するログエントリのアラーム時刻の範囲。開始時刻と終了時刻を指定 することも、終了時刻だけを指定することもできます。 開始時刻と終了時刻を指定していて、この期間内にログエントリの数が指 定の最大数を超えてしまった場合は、この期間内に記録されたログエント リの最初の部分が削除されます。 終了時刻のみを指定していて、この時刻に達する前にログエントリの数が 指定の最大数を超えてしまった場合は、終了時刻前に記録されたログエン トリの最初の部分が削除されます。 開始時刻または終了時刻を入力しなかった場合は、対象となるデータポイ ントのすべてのログエントリが指定の最大数に達するまで削除されます。 <UCPTstart>および<UCPTstop>プロパティはローカル時間のタイムスタ ンプとして入力し、ローカル時間と UTC との時差を表す時間帯インジ ケータを付加する必要があります。このフォーマットの詳細については、 6-11ページの「ローカル時間と協定世界時」を参照してください。 次の AlarmNotifierClear 関数の例は、2001 年 1 月 31 日の 14:30 から 2001 年 2 月 28 日の 14:30 の間に発生した、0 のインデックス番号を持つアラームノーティファイアから、 NVL_nviBgtVa データポイントのログエントリがすべて削除されます。最大数は 200 である ため、選択した期間の合計ログエントリが 200 を超えた場合には、最初の 200 のログエント リが削除されます。 <Data>パラ メータ <Data> <iLONAlarmNotifier> <AlarmLog> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nviBgtVa</UCPTpointName> <UCPTstart>2001-0131T14:30:00.000+03:00</UCPTstart> <UCPTstop>2001-02-28T14:30:00.000+03:00</UCPTstop> <UCPTcount>200</UCPTcount> </AlarmLog> </iLONAlarmNotifier> </Data> <Result>パラ メータ <Result> <iLONAlarmNotifier> <AlarmLog> <UCPTindex>0</UCPTindex> <UCPTalarmLog>SUMMARY</UCPTalarmLog> <UCPTfileName>/root/AlarmLog/sumlog0.dat</UCPTfileName> <UCPTstart>2001-0131T14:30:00.000+03:00<UCPTstart> <UCPTstop>2001-02-28T14:29:59.000+03:00<UCPTstop> <UCPTlogLevel>20.5</UCPTlogLevel> </AlarmLog> </iLONAlarmNotifier> </Result> 表 44では、AlarmNotifierClear 関数が<Result>パラメータに返すプロパティについて説明 しています。 i.Lon 100 Internet Server Programmer’s Reference 8-25 表 44 AlarmNotifierClear の出力プロパティ プロパティ 説明 <UCPTindex> アラームノーティファイアのインデックス番号。 <UCPTalarmLog> ログファイルの種類で、SUMMARY または HISTORICAL のど ちらか。 <UCPTfileName> ログファイルの名前とパス。 <UCPTstart> <UCPTstart>および<UCPTstop>プロパティは、ログファイルの 最初と最後のエントリのアラーム時刻を示します。これらのタイ ムスタンプはローカル時間で表示され、ローカル時間と UTC と の時差を示す時間帯インジケータが付加されます。このフォー マットの詳細については、6-11ページの「ローカル時間と協定世 界時」を参照してください。 <UCPTstop> <UCPTlogLevel> ログファイルの使用率をパーセントで示します。たとえば、20.5 はログが 20.5%消費されたことを示します。 8.2.1.7 AlarmNotifierDelete AlarmNotifierDelete 関数を使用すると、アラームノーティファイアを削除することができ ます。アラームノーティファイアを削除するには、関数に渡す<Data>パラメータの中で削除 したいアラームノーティファイアをインデックス番号で参照します。 <Data>パラメータ <Data> <iLONAlarmNotifier> <Alarm> <UCPTindex>9</UCPTindex> </Alarm> </iLONAlarmNotifier> </Data> <Result>パラメー タ <Result> <iLONAlarmNotifier> <Alarm> <UCPTindex>9</UCPTindex> </Alarm> </iLONAlarmNotifier> </Result> 8-26 i.LON 100 Internet Server Programmer’s Reference 9 アナログ機能ブロック アナログ機能ブロックを使用すると、ネットワーク内のデータポイント値に対してさまざま な統計演算を実行したり、各演算結果を出力データポイントに格納することができます。こ れらの演算は、1 つのアナログ機能ブロックあたりいくつの入力データポイントに対しても 実行できます。データポイントに対して実行できる演算には、入力データポイントの平均値、 最大値、最小値、合計値を求める演算などがあります。各演算については、本章で詳しく後 述します。 演算には比較関数を選択することもできます。この場合、アナログ機能ブロックはすべての 入力データポイントの値を、比較データポイントとして選択したデータポイントの値と比較 します。データポイント間でアナログ機能ブロックが実行できる比較関数は、「より大」、 「より小」、「等価」など、さまざまなものがあります。アナログ機能ブロックは比較関数 を使用して、比較データポイントと入力データポイントの値を比較し、その比較結果に基づ いて出力データポイントを True または False の値に更新します。 比較関数を使用していて、アナログ機能ブロックに複数の入力データポイントがある場合に は、パーセント率を指定できます。入力データポイントと比較データポイント間の比較にお いて、True が返される比率がこのパーセント率以上の場合、出力データポイントは True に なります。それ以外の場合は False になります。 たとえば、アナログ機能ブロックに 5 つの入力データポイントがあり、比較関数として「よ り大」を使用している場合を考えます。パーセント率は 50%に設定されているものとします。 入力データポイントの 50%(少なくとも 3 つ)の値が比較データポイントの値よりも大きい 場合、出力データポイントは True になります。それ以外の場合は、False になります。 アナログ機能ブロックは、入力データポイントのいずれかが更新されるか、ユーザが指定し た時間が経過するたびに、この機能ブロックに割り当てられた演算を実行します。算出値は 制御システムの一部として、あるいは複数の入力に基づいたアラーム状態の監視システムと して使用することができます。 注:アナログ機能ブロックは、i.LON 100 構成ソフトウェアではサポートされていないため、 このソフトウェアを使用して構成することはできません。本章で説明する SOAP メッセージ により構成することができます。 9.1 AnalogFB.XML AnalogFB.XML ファイルは、i.LON 100 に追加したアナログ機能ブロックの構成を格納しま す。1 つの i.LON 100 あたり 20 までのアナログ機能ブロックを作成できます。 アナログ機能ブロックは、XML ファイル内の<AnalogFB>エレメントで示されます。アナロ グ機能ブロックを作成するには、AnalogFBSet 関数を使用するか、手動で AnalogFB.XML ファイルを編集し、FTP を経由して i.LON 100 にダウンロードします。アナログ機能ブロッ クを作成する際のガイドラインと手順については、サンプルの後の各項を参考にしてくださ い。 次のコード例は、アナログ機能ブロックが 1 つ定義された i.LON 100 の AnalogFB.XML ファイルを表しています。アナログ機能ブロックは、NVL_nviClaValue_1 と NVL_nviClaValue_2 の 2 つのデータポイント間の最大値を判断し、その値を NVL_nvoClsValue_1 というデータポイントの値フィールドに格納します。 <?xml version="1.0" ?> <iLONAnalogFB> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <AnalogFB> <UCPTindex>0</UCPTindex> i.LON 100 Internet Server Programmer’s Reference 9-1 <UCPTlastUpdate>2002-06-02T09:16:36Z</UCPTlastUpdate> <UCPTdescription>Bielefeld</UCPTdescription> <UCPTfbName>Analog Fn Block- 0</UCPTfbName> <UCPTcompFunction>FN_GT</UCPTcompFunction> <UCPTmajorityValue>100</UCPTmajorityValue> <UCPTtrueThreshold /> <UCPToutputFunction>FN_MAX</UCPToutputFunction> <SCPTminRnge>10.0</SCPTminRnge> <SCPTmaxRnge>80.0</SCPTmaxRnge> <UCPTcalculationInterval>0.0</UCPTcalculationInterval> <SCPTovrBehave>OV_DEFAULT</SCPTovrBehave> <SCPTovrValue>0</SCPTovrValue> <UCPTpollOnResetDelay>0.0</UCPTpollOnResetDelay> <InputDataPoint> <Point> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nviClaValue_1</UCPTpointName> <UCPTfieldName>value</UCPTfieldName> <UCPTpollRate>0</UCPTpollRate> </Point> <Point> <UCPTindex>1</UCPTindex> <UCPTpointName>NVL_nviClaValue_2</UCPTpointName> <UCPTfieldName>value</UCPTfieldName> <UCPTpollRate>0</UCPTpollRate> </Point> </InputDataPoint> <CompareDataPoint> <UCPTpointName>NVL_nvoClsValue_2</UCPTpointName> <UCPTfieldName>value</UCPTfieldName> <UCPTpollRate>0</UCPTpollRate> </CompareDataPoint> <OutputDataPoint> <UCPTpointName>NVL_nvoClsValue_1</UCPTpointName> <UCPTfieldName>value</UCPTfieldName> </OutputDataPoint> </AnalogFB> </iLONAnalogFB> 9.2 AnalogFB.XML ファイルの作成と変更 AnalogFB.XML 構成ファイルは、AnalogFBSet SOAP 関数を使用して作成および変更しま す。次の「アナログ機能ブロックの SOAP インタフェース」では、AnalogFBSet 関数、お よびアナログ機能ブロックアプリケーションに付属の各種 SOAP 関数について説明します。 XML エディタを使用して AnalogFB.XML ファイルを手動で作成および変更し、FTP を経由 して i.LON 100 にダウンロードすることもできます。ただし、Echelon 社では、この方法は 奨励していません。ダウンロードしたファイルの構成を読み取るには、i.LON 100 を再起動 する必要があるためです。また、i.LON 100 は XML ファイルに書き込みを行う前に、受信 したすべての SOAP メッセージのエラーチェックを実行しますが、FTP を経由してダウン ロードされた XML ファイルのエラーチェックは実行しないため、アプリケーションが適切 に起動しない場合があります。 XML ファイルを手動で作成する場合には、まず本章の残りの部分をお読みください。ここ では、アナログ機能ブロックの構成を定義する XML ファイル内のエレメントとプロパティ について説明しています。XML ファイルを手動で作成または変更する方法については、171ページの「XML 構成ファイルの手動変更」を参照してください。 9-2 i.LON 100 Internet Server Programmer’s Reference 9.2.1 アナログ機能ブロックの SOAP インタフェース アナログ機能ブロックアプリケーション用の SOAP インタフェースには、4 つの関数が含ま れています。表 45では、これらの関数を一覧表示し、各関数について説明しています。各関 数の詳細については、表 45の後に続く各項を参照してください。 表 45 アナログ機能ブロック 関数 説明 AnalogFBList i.LON 100 に追加したアナログ機能ブロックの一覧を生成します。詳 細については、9-3ページの「AnalogFBList」を参照してください。 AnalogFBGet アナログ機能ブロックの構成を取得します。詳細については、9-4ペー ジの「AnalogFBGet」を参照してください。 AnalogFBSet アナログ機能ブロックを作成するか、既存のアナログ機能ブロックの 構成を上書きします。詳細については、9-12ページの 「AnalogFBSet」を参照してください。 AnalogFBDelete アナログ機能ブロックを削除します。詳細については、9-14ページの 「AnalogFBDelete」を参照してください。 9.2.1.1 AnalogFBList AnalogFBList 関数を使用すると、i.LON 100 に追加したアナログ機能ブロックの一覧を取 得することができます。AnalogFBList 関数は<Data>パラメータとして空の文字列を受け入 れます。 この関数は、アナログ機能ブロックアプリケーションが使用しているファームウェアのバー ジョン番号(主および副)を<Result>パラメータ内に返します。<Result>パラメータには、 i.LON 100 に追加した各アナログ機能ブロックの<AnalogFB>エレメントも含まれています。 次の「AnalogFBGet」で、<AnalogFB>エレメントに含まれるプロパティについて説明しま す。 この関数が返す<AnalogFB>エレメントの一覧は、AnalogFBGet 関数の入力として使用でき ます。AnalogFBGet 関数は、<AnalogFB>エレメントに含まれている各アナログ機能ブロッ クの構成を返します。 <Data>パラ メータ 文字列なし i.LON 100 Internet Server Programmer’s Reference 9-3 <Result>パラ メータ <Result> <iLONAnalogFB> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <AnalogFB> <UCPTindex>0</UCPTindex> <UCPTlastUpdate>2002-0602T19:16:36Z</UCPTlastUpdate> <UCPTdescription>Maximum Temperature</UCPTdescription> <UCPTfbName>Analog Fn Block- 0</UCPTfbName> </AnalogFB> <AnalogFB> <UCPTindex>1</UCPTindex> <UCPTlastUpdate>2002-0626T10:10:55Z</UCPTlastUpdate> <UCPTdescription>Average Temperature</UCPTdescription> <UCPTfbName>Analog Fn Block - 1</UCPTfbName> </AnalogFB> </iLONAnalogFB> </Result> 9.2.1.2 AnalogFBGet AnalogFBGet 関数を使用すると、i.LON 100 に追加したアナログ機能ブロックの構成を取 得することができます。構成情報を取得したいアナログ機能ブロックは、関数に渡す<Data> パラメータ内でインデックス番号を指定する必要があります。 <Data>パラ メータ <Data> <iLONAnalogFB> <AnalogFB> <UCPTindex>1</UCPTindex> </AnalogFB> </iLONAnalogFB> </Data> <Result>パラ メータ <Result> <iLONAnalogFB> <AnalogFB> <UCPTindex>1</UCPTindex> <UCPTlastUpdate>2002-06-02T09:06:36Z</UCPTlastUpdate> <UCPTdescription>Maximum Temperature</UCPTdescription> <UCPTfbName>Analog Fn Block- 1</UCPTfbName> <UCPTcompFunction>FN_GT</UCPTcompFunction> <UCPTmajorityValue>100</UCPTmajorityValue> <UCPTtrueThreshold></UCPTtrueThreshold> <UCPToutputFunction>FN_MAX</UCPToutputFunction> <SCPTminRnge>10.0</SCPTminRnge> <SCPTmaxRnge>80.0</SCPTmaxRnge> <UCPTcalculationInterval>0.0</UCPTcalculationInterval> <SCPTovrBehave>OV_DEFAULT</SCPTovrBehave> <SCPTovrValue>0</SCPTovrValue> <UCPTpollOnResetDelay>0.0</UCPTpollOnResetDelay> <InputDataPoint> <Point> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nviClaValue_1</UCPTpointName> <UCPTfieldName>value</UCPTfieldName> <UCPTpollRate>0</UCPTpollRate> </Point> <Point> <UCPTindex>1</UCPTindex> <UCPTpointName>NVL_nviClaValue_2</UCPTpointName> <UCPTfieldName>value</UCPTfieldName> 9-4 i.LON 100 Internet Server Programmer’s Reference <UCPTpollRate>0</UCPTpollRate> </Point> </InputDataPoint> <CompareDataPoint> <UCPTpointName>NVL_nvoClsValue_2</UCPTpointName> <UCPTfieldName>value</UCPTfieldName> <UCPTpollRate>0</UCPTpollRate> </CompareDataPoint> <OutputDataPoint> <UCPTpointName>NVL_nvoClsValue_1</UCPTpointName> <UCPTfieldName>value</UCPTfieldName> </OutputDataPoint> </AnalogFB> </iLONAnalogFB> </Result> AnalogFBGet 関数は、関数に渡した<Data>パラメータで参照したアナログ機能ブロックの <AnalogFB>エレメントを返します。<AnalogFB>エレメントに含まれているプロパティは、 アナログ機能ブロックの作成時に最初に定義されます。このプロパティに書き込みを行うに は、AnalogFBSet 関数を使用します。表 46では、<AnalogFB>エレメントのプロパティに ついて説明しています。 AnalogFBSet 関数の詳細については、9-12ページの「AnalogFBSet」を参照してください。 表 46 AnalogFBGet の出力プロパティ プロパティ <UCPTindex> 説明 アナログ機能ブロックに割り当てるインデックス番号は、 –32,768∼32,767 の範囲に収めます。AnalogFBSet 関数を 使用すると、新しいアナログ機能ブロックを作成するか、 既存のアナログ機能ブロックを変更することができます。 AnalogFBSet に渡す<Data>パラメータの中でインデックス 番号を指定しない場合は、最初に使用可能なインデックス 番号を使用して新しいアナログ機能ブロックが作成されま す。 既に使用中のインデックス番号を指定した場合は、そのイ ンデックス番号を使用しているアナログ機能ブロックの構 成が、<Data>パラメータに定義されている設定で上書きさ れます。 i.LON 100 Internet Server Programmer’s Reference 9-5 プロパティ <UCPTlastUpdate> 説明 アナログ機能ブロックの構成が最後に更新された時刻を示 すタイムスタンプ。このタイムスタンプは次のフォーマッ トを使用します。 YYYY-MM-DDTHH:MM:SSZ タイムスタンプの最初のセグメント(YYYY-MM-DD)は、 アナログ機能ブロックの構成が最後に更新された日を表し ます。2 番目のセグメント(THH:MM:SS)は、アナログ機 能ブロックの構成が最後に更新された日の時刻を協定世界 時(UTC)で表します。 UTC は、以前はグリニッジ標準時(GMT)と一般的に呼ば れていたものを示す現在の用語です。0 時間の UTC は、ゼ ロ度の経線上にあるイギリスのグリニッジにおける深夜 0 時を表します。協定世界時は 24 時間制に基づいているた め、4 pm などの午後の時間は 16:00 UTC と表されます。 タイムスタンプに追加される Z は、それが UTC 単位である ことを示します。 たとえば 2002-08-15T10:13:13Z は、2002 年 8 月 15 日の午 前 10 時 13 分 13 秒の UTC 時間を示します。 <UCPTdescription> アナログ機能ブロックの説明。この長さは最大 228 文字で す。 <UCPTfbName> LONMAKER でアナログ機能ブロックに割り当てられた機能 ブロック名。このプロパティに書き込みを行うことはでき ますが、i.LON 100 構成ソフトウェアを使用してアナログ 機能ブロックを表示するたびに、このプロパティは LONMAKER で定義されている機能ブロック名にリセットさ れます。 <UCPTcompFunction> アナログ機能ブロックが比較データポイントと入力データ ポイントの値を比較するために使用する比較関数を指定し ます。この関数は、<UCPToutputFunction>が FN_COMPARE、FN_OR または FN_AND であり、 <UCPTtrueThreshold>プロパティが定義されていない場合 にのみ使用します。これらのプロパティについては、この 表中の説明を参照してください。 この関数を使用すると、比較結果に基づいて出力データポ イントが True または False の値に更新されます。複数の入 力データポイントがアナログ機能ブロックに定義されてい る場合は、<UCPTmajorityValue>プロパティを使用して パーセント率を指定することができます。入力データポイ ントと比較データポイント間の比較において、True が返さ れる比率がこのパーセント率以上の場合、出力データポイ ントは True になります。それ以外の場合は、False になり ます。<UCPTmajorityValue>プロパティについては、この 表中の説明を参照してください。 アナログ機能ブロックに使用できる比較関数の説明につい ては、9-9ページの「比較関数」を参照してください。 9-6 i.LON 100 Internet Server Programmer’s Reference プロパティ <UCPTmajorityValue> 説明 出力データポイントを True に設定するために、比較データ ポイント(または<UCPTtrueThreshold>プロパティが定義 されている場合にはその値)との比較結果が True にならな ければならない入力データポイントのパーセント率。入力 データポイントと比較データポイントの値との間で実行す る比較は、<UCPTcompFunction>で指定します。 たとえば、このフィールドが 30.0 の場合、出力データポイ ントを True に設定するには、入力データポイントの 30%が True を返す必要があります。このフィールドの範囲は 0.0 ∼100.0 です。 <UCPTtrueThreshold> このプロパティは、アナログ機能ブロックに割り当てた比 較関数が FN_OR、FN_AND、または FN_COMPARE のと き、入力データポイントとの比較に使用する比較値を指定 します。このプロパティは、入力データポイントがスカ ラー値または列挙値の場合にのみ使用します。入力データ ポイントのいずれかが SNVT_switch のフォーマット型を使 用する場合には、使用できません。 このプロパティが定義されていない場合、比較演算はすべ て比較データポイントの値を使用します。比較データポイ ントを選択するには、<CompareDataPoint>エレメントを 指定します。このエレメントについてはこの表中の説明を 参照してください。 このプロパティの使用例については、9-9ページの「比較関 数」を参照してください。 <UCPToutputFunction> アナログ機能ブロックの出力関数。アナログ機能ブロック のデータポイントが更新されるたびに実行される演算と、 アナログ機能ブロックの出力データポイントの値がどのよ うに決まるかを指定します。 アナログ機能ブロックに使用できる出力関数については、99ページの「出力関数」を参照してください。 <SCPTminRnge> 出力データポイントに割り当てることのできる最小値。こ の値の初期値は SCPT リソースファイルから取り込まれま す。 <SCPTmaxRnge> 出力データポイントに割り当てることのできる最大値。こ の値の初期値は SCPT リソースファイルから取り込まれま す。 <UCPTcalculationInterval> アナログ機能ブロックの出力データポイントを更新した 後、次の更新を行う前に経過しなければならない遅延秒数 (0.0∼6553.0)。これは、入力データポイントが複数ある 場合に役立ちます。間隔を長く設定すると、アナログ機能 ブロックがすべての入力を受信してから出力データポイン トを更新するためです。0.0 の既定値を使用する場合、アナ ログ機能ブロックは入力データポイントのいずれかが更新 されるたびに出力データポイントを更新します。 i.LON 100 Internet Server Programmer’s Reference 9-7 <SCPTovrBehave> アナログ機能ブロックがオーバーライドリクエストを受信 したときに出力データポイントの動作を定義する値。この プロパティの有効範囲は SNVT_override に定義されている 制限内の値になります。OV_SPECIFIED を入力すると、 オーバーライドリクエストが発生したときに出力データポ イントにオーバーライド値を割り当てることができます。 使用する値は、<SCPTovrValue>プロパティで指定しま す。 このプロパティを指定しない場合、アプリケーションは オーバーライドが発生したときの直近の設定を保持しま す。 訳注:オーバーライドとは、通常の自動制御による出力値 を無視して、あらかじめ設定した固定値を強制的に出力す るように設定する操作を指す。 <SCPTovrValue> 出力データポイントがオーバーライドされ、 <SCPTovrBehave>プロパティが OV_SPECIFIED に設定 されているときに出力データポイントに割り当てられる 値。 <UCPTpollOnResetDelay> アナログ機能ブロックが、リセット後、入力データポイン トの値をポーリングする前に待機する遅延秒数。この値が 0 のとき、アナログ機能ブロックはリセット後に <UCPTpollRate>プロパティに指定されている頻度で入力 データポイントのポーリングを再開します。 このフィールドの範囲は 0.0∼6553.0 です。 <Point> 1 つのアナログ機能ブロックには入力データポイントをいく つでも指定できます。アナログ機能ブロックの入力データ ポイントは、関数に渡す<Data>パラメータ内の<Point>エ レメントの一覧によって定義されます。 各エレメントには、アナログ機能ブロック内で使用される インデックス番号(UCPTindex)、データポイント名 (UCPTpointName)、およびデータポイントの値をポー リングするときに使用する間隔(UCPTpollRate)を指定す る必要があります。ポーリングレートは 0∼6553 の範囲の 整数で指定します。入力データポイントが構造体の場合 は、データポイントとの比較を行うときに使用するフィー ルド名(UCPTfieldName)も指定します。 入力データポイントに選択したフィールドの値は、出力 データポイントの値を生成する際に使用します。出力デー タポイントの値は、アナログ機能ブロックに割り当てた出 力関数(UCPToutputFunction)によって変化します。 9-8 i.LON 100 Internet Server Programmer’s Reference <CompareDataPoint> アナログ機能ブロックが使用する比較データポイントを定 義します。 データポイント名(UCPTpointName)、データポイント が構造体の場合にデータポイントとの比較を行うときに使 用するフィールド名(UCPTfieldName)、およびデータポ イントの値をポーリングする間隔(UCPTpollRate)を指定 する必要があります。 このデータポイントの値は、アナログ機能ブロックに割り 当てた出力関数が FN_COMPARE、FN_AND、または FN_OR のときに、各入力データポイントの値と比較されま す。<UCPTcompFunction>プロパティに指定した関数を使 用して比較を実行し、比較結果は出力データポイントに格 納されます。 <UCPTtrueThreshold>プロパティが定義されている場合、 この値は比較には使用されません。 <OutputDataPoint> 機能ブロックの出力データポイントを定義します。 <OutputDataPoint>内の出力データポイントに割り当てら れている<UCPTpointName>には、データポイント名を指 定します。このデータポイントの値は、アナログ機能ブ ロックが実行する各比較または統計演算の結果が格納され ます。 9.2.1.2.1 出力関数 表 47では、<UCPToutputFunction>プロパティに使用できる出力関数を一覧表示し、各関 数について説明しています。関数は、表内に示した識別子で参照してください。 ここで選択した関数により、アナログ機能ブロックが出力データポイントに割り当てる値が 決まります。 表 47 識別子 出力関数の識別子 出力データポイントに割り当てられる値 出力データポイントに割り当てられる値 FN_MAX すべての入力データポイントの最大値。 FN_MIN すべての入力データポイントの最小値。 FN_SUM すべての入力データポイントの値の合計。 FN_AVERAGE 入力データポイントの値の平均。 FN_COMPARE 入力データポイントと比較データポイント(<UCPTtrueThreshold>プロパティが 定義されている場合にはそれに割り当てられている値)の間で行われた最後の比 較結果。これを選択した場合は、<UCPTcompFunction>プロパティを指定して比 較関数を選択してください。 この関数の使用例については、9-12ページの「FN_COMPARE の例」を参照して ください。 i.LON 100 Internet Server Programmer’s Reference 9-9 識別子 FN_AND 出力データポイントに割り当てられる値 出力データポイントに割り当てられる値 この関数は、すべての入力データポイントが True のときに True を返します。 True の入力の定義はデータポイントの型によって異なります。入力の型が SNVT_switch の場合は、状態と値のフィールドがゼロ以外のときに入力が True になります。入力の型が SNVT_switch 以外の構造体の場合、True/False のしき い値は定義されていないため、FN_AND は使用しないでください。 入力データポイントの型がスカラー値または列挙値の場合、アナログ機能ブロッ クに対して比較関数が行ったすべての比較が True であるときに True が返されま す。FN_AND 出力関数を使用する方法については、9-11ページの「FN_AND の 例」を参照してください。 FN_OR この関数は、入力データポイントのいずれかが True のときに True を返します。 True の入力の定義、データポイントの型によって異なります。入力の型が SNVT_switch の場合は、状態と値のフィールドがゼロ以外のときに入力が True になります。入力の型が SNVT_switch 以外の構造体の場合、True/False のしき い値は定義されていないため、FN_OR は使用しないでください。 入力データポイントの型がスカラー値または列挙値の場合、アナログ機能ブロッ クに対して比較関数が行ったいずれかの比較が True であるときに True が返され ます。FN_OR 関数を使用する方法については、9-11ページの「FN_OR の例」を 参照してください。 FN_NUL 9.2.1.2.2 値の使用不可。 比較関数 表 48では、<UCPTcompFunction>プロパティに使用できる比較関数を一覧表示し、各関数 について説明しています。関数は、表内に示した識別子で参照してください。 表 48 識別子 比較関数の識別子 説明 FN_GT より大。入力データポイントの値が比較データポイントの値 (<UCPTtrueThreshold>プロパティが定義されている場合にはそれに割り 当てられている値)よりも大きい場合に True を返します。 FN_LT より小。入力データポイントの値が比較データポイントの値 (<UCPTtrueThreshold>プロパティが定義されている場合にはそれに割り 当てられている値)よりも小さい場合に True を返します。 FN_GE 以上。入力データポイントの値が比較データポイントの値 (<UCPTtrueThreshold>プロパティが定義されている場合にはそれに割り 当てられている値)よりも大きいか等しい場合に True を返します。 FN_LE 以下。入力データポイントの値が比較データポイントの値 (<UCPTtrueThreshold>プロパティが定義されている場合にはそれに割り 当てられている値)よりも小さいか等しい場合に True を返します。 FN_EQ 等価。入力データポイントの値が比較データポイントの値 (<UCPTtrueThreshold>プロパティが定義されている場合にはそれに割り 当てられている値)と等しい場合に True を返します。 FN_NE 不等価。入力データポイントの値が比較データポイントの値 (<UCPTtrueThreshold>プロパティが定義されている場合にはそれに割り 当てられている値)と等しくない場合に True を返します。 9-10 i.LON 100 Internet Server Programmer’s Reference 識別子 説明 値の使用不可。入力データポイントの値が使用できない場合に True を返し ます。 FN_NUL 9.2.1.2.3 FN_AND の例 <UCPToutputFunction>: <UCPTcompFunction>: FN_AND FN_GT この例では、4 つの入力データポイントと 1 つの比較データポイントが存在し、型はすべて SNVT_count になっています。出力データポイントは SNVT_Switch 型のものが 1 つ存在し ます。 出力関数は FN_AND であるため、出力データポイントを True に設定するには、すべての入 力データポイントとの比較が True を返す必要があります。比較関数は FN_GT であるため、 各入力データポイントの値は、比較データポイントの値、または<UCPTtrueThreshold>プ ロパティが定義されている場合には、その値よりも大きくなければなりません。 <UCPTtrueThreshold>プロパティが定義されている場合、比較データポイントの値は比較 には使用されません。 表 49では、これらの関数が True と評価される場合のケースシナリオを一覧表示しています。 表 49 FN_AND の例 入力 1 入力 2 入力 3 入力 4 比較データポイントの値 UCPTtrue Threshold 出力 9 11 12 13 <UCPTtrueThreshold>が 定義されているため関係な し 10 0.0 0 20 30 40 50 <UCPTtrueThreshold>が 定義されているため関係な し 10 100.0 1 20 30 40 50 35 空 0.0 0 70 80 40 50 35 空 100.0 1 9.2.1.2.4 FN_OR の例 <UCPToutputFunction>: <UCPTcompFunction>: FN_OR FN_LT この例では、4 つの入力データポイントと 1 つの比較データポイントが存在し、型はすべて SNVT_count になっています。出力データポイントは SNVT_Switch 型のものが 1 つ存在し ます。 出力関数は FN_OR で、比較関数は FN_LT であるため、出力データポイントを True に設定 するには、入力データポイントの値のいずれかが、比較データポイントの値、または <UCPTtrueThreshold>プロパティが定義されている場合には、その値よりも小さくなけれ ばなりません。<UCPTtrueThreshold>プロパティが定義されている場合、比較データポイ ントの値は比較には使用されません。 表 50では、2 つの関数が True と評価される場合のケースシナリオを一覧表示しています。 i.LON 100 Internet Server Programmer’s Reference 9-11 表 50 FN_OR の例 入力 1 入力 2 入力 3 入力 4 比較データポイントの値 UCPTtru e Threshol d 出力 9 11 12 13 <UCPTtrueThreshold>が 定義されているため関係な し 10 100.0 1 20 30 40 50 35 空 0.0 0 20 30 40 50 35 空 100.0 1 20 30 40 50 35 空 100.0 1 9.2.1.2.5 FN_COMPARE の例 <UCPToutputFunction>: <UCPTcompFunction>: <UCPTmajorityValue>: FN_COMPARE FN_EQ 100 この例では、4 つの入力データポイントと 1 つの比較データポイントが存在し、型はすべて SNVT_count になっています。出力データポイントは SNVT_Switch 型のものが 1 つ存在し ます。 <UCPTmajorityValue>は 100 に設定されているため、出力データポイントを True に設定 するには、入力データポイントと比較データポイント間で行われる比較がすべて True を返 す必要があります。比較関数は FN_EQ であるため、入力データポイントの値が比較データ ポイントの値、または<UCPTtrueThreshold>プロパティが定義されている場合はその値に 一致しなければなりません。<UCPTtrueThreshold>が定義されている場合、比較データポ イントの値は比較には使用されません。 表 51では、2 つの関数が True と評価される場合のケースシナリオを一覧表示しています。 表 51 FN_COMPARE の例 入力 1 入力 2 入力 3 入力 4 比較データポイントの値 UCPTtrue Threshold 出力 50 30 50 50 <UCPTtrueThreshold>が 定義されているため関係な し 40 0.0 0 40 40 40 40 <UCPTtrueThreshold>が 定義されているため関係な し 40 100.0 1 50 50 50 50 50 空 100.0 1 50 50 50 49 50 空 0.0 0 9.2.1.3 AnalogFBSet AnalogFBSet 関数を使用すると、新しいアナログ機能ブロックを作成するか、既存のアナロ グ機能ブロックの構成を上書きすることができます。関数が作成または上書きするアナログ 機能ブロックは、<Data>パラメータ内の<AnalogFB>エレメントの一覧で指定します。 9-12 i.LON 100 Internet Server Programmer’s Reference <AnalogFB>エレメント内に定義する必要のあるプロパティは、新しいアナログ機能ブロッ クを作成する場合も、既存のアナログ機能ブロックを変更する場合でも同じです。これらの プロパティの詳細については、前項の「AnalogFBGet」を参照してください。 注:既存のアナログ機能ブロックを変更する場合、入力文字列に指定されていないオプショ ンのプロパティは消去されます。古い値は継承されないため、アナログ機能ブロックに書き 込みを行うときは、すべての値を変更しない場合でも、すべてのプロパティを指定する必要 があります。 1 つの i.LON 100 には最高 20 までのアナログ機能ブロックを作成できます。AnalogFBSet 関数は、i.LON 100 の/root/config/software ディレクトリに AnalogFB.XML ファイルを生成 します(ファイルがまだ存在しない場合)。 アナログ機能ブロックを AnalogFBSet で作成または変更するときは、AnalogFBGet の出力 を基にして<Data>パラメータを指定すると便利です。こうすると、文字列全体を最初から作 成する代わりに、新しい構成に一致するように各プロパティの値を変更するだけで済みます。 次の例では、AnalogFBSet 関数を使用して、NVL_nviClaValue1 および NVL_nviClaValue2 の 2 つの入力データポイントの最大値を算出し、結果を NVL_nviClaValue1 に格納するアナログ機能ブロックを作成します。 <Data>パラメー タ <Data> <iLONAnalogFB> <AnalogFB> <UCPTindex></UCPTindex> <UCPTdescription>Bielefeld AFB 1</UCPTdescription> <UCPTfbName></UCPTfbName> <UCPTcompFunction>FN_GT</UCPTcompFunction> <UCPTmajorityValue>100</UCPTmajorityValue> <UCPTtrueThreshold></UCPTtrueThreshold> <UCPToutputFunction>FN_MAX</UCPToutputFunction> <SCPTminRnge>10.0</SCPTminRnge> <SCPTmaxRnge>80.0</SCPTmaxRnge> <UCPTcalculationInterval>0.0</UCPTcalculationInterval> <SCPTovrBehave>OV_DEFAULT</SCPTovrBehave> <SCPTovrValue>0</SCPTovrValue> <UCPTpollOnResetDelay>0.0</UCPTpollOnResetDelay> <InputDataPoint> <Point> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nviClaValue_1</UCPTpointName> <UCPTfieldName>value</UCPTfieldName> <UCPTpollRate>0</UCPTpollRate> </Point> <Point> <UCPTindex>1</UCPTindex> <UCPTpointName>NVL_nviClaValue_2</UCPTpointName> <UCPTfieldName>value</UCPTfieldName> <UCPTpollRate>0</UCPTpollRate> </Point> </InputDataPoint> <CompareDataPoint> <UCPTpointName>NVL_nvoClsValue_2</UCPTpointName> <UCPTfieldName>value</UCPTfieldName> <UCPTpollRate>0</UCPTpollRate> </CompareDataPoint> <OutputDataPoint> <UCPTpointName>NVL_nvoClsValue_1</UCPTpointName> <UCPTfieldName>value</UCPTfieldName> i.LON 100 Internet Server Programmer’s Reference 9-13 </OutputDataPoint> </AnalogFB> </iLONAnalogFB> </Data> <Result>パラ メータ <Result> <iLONAnalogFB> <AnalogFB> <UCPTindex>1</UCPTindex> </AnalogFB> </iLONAnalogFB> </Result> 9.2.1.4 AnalogFBDelete AnalogFBDelete 関数を使用すると、アナログ機能ブロックを削除することができます。ア ナログ機能ブロックを削除するには、関数に渡す<Data>パラメータの中で削除したいアナロ グ機能ブロックをインデックス番号で参照します。 <Data>パラメータ <Data> <iLON100AnalogFB> <AnalogFB> <UCPTindex>1</UCPTindex> </AnalogFB> </iLON100AnalogFB> </Data> <Result>パラメータ <Result> <iLON100AnalogFB> <AnalogFB> <UCPTindex>1</UCPTindex> </AnalogFB> </iLON100AnalogFB> </Result> 9-14 i.LON 100 Internet Server Programmer’s Reference 10 接続マネージャ 接続マネージャアプリケーションを使用すると、i.LON 100 が接続を確立するためのモデム を構成し、i.LON 100 のダイヤルアウト接続先を識別する接続プロファイルを作成できます。 i.LON 100 へは、LNS サーバを搭載している PC など、どのようなデバイスでもダイヤルイ ンできます。i.LON 100 からは、電子メールサーバや ISP(インターネットサービスプロバ イダー)などにもダイヤルアウトできます。 接続プロファイルに定義されている設定には、i.LON 100 に接続するデバイスの IP アドレ スの範囲、モデムの電話番号、ユーザ名、およびパスワードが含まれます。このプロファイ ルを使用して接続すると、i.LON 100 が指定の PPP サーバに接続したときに、接続プロファ イルに割り当てられているユーザ名とパスワードが認証されます。 i.LON 100 にダイヤルインするデバイスには、PPP 接続をサポートするモデムが備えられて いなければなりません。接続マネージャは、ダイヤルイン接続に対してユーザ名とパスワー ドのペアを 1 つしかサポートしていません。ただし、ダイヤルイン接続によって i.LON 100 への FTP セッションを開くことができるため、i.LON 100 の XML ファイルの読み取りや変 更、さらに i.LON 100 への SOAP メッセージの送信が可能です。 ダイヤルインの接続を確立するときの接続手順は次のとおりです。 1. Windows ユーザが i.LON 100 にダイヤルします。 2. i.LON 100 が電話に応答し、着信呼び出しを認証します。 3. 認証が完了すると、i.LON 100 は IP アドレスを呼び出し側に割り当てます。認証 に失敗した場合、呼び出し側はあと 2 回ログインを試行できます。ユーザがログイ ンに 3 回失敗した場合、i.LON 100 はその呼び出しを打ち切ります。 10.1 ConnectionManager.XML ConnectionManager.XML ファイルは、i.LON 100 が使用しているモデムの構成と、ユーザ が i.LON 100 に追加した接続プロファイルの構成を格納します。 ユーザが i.LON 100 に追加した各接続プロファイルは、XML ファイル内で<PPP>エレメン トによって示されます。接続プロファイルを作成するには、ConnectionManagerSet SOAP 関数を使用するか、手動で ConnectionManager.XML ファイルを編集し、FTP を経由して i.LON 100 にダウンロードします。接続プロファイルを作成する際のガイドラインと手順に ついては、サンプルの後の各項を参考にしてください。 次のコード例は、定義済みの 2 つの接続プロファイルを持つ i.LON 100 の ConnectionManager.XML ファイルを表しています。 <?xml version="1.0" ?> <iLONConnectionManager> <GlobalPPP> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <UCPTlastUpdate>2002-06-24T12:43:31Z</UCPTlastUpdate> <UCPTphonePrefix>0</UCPTphonePrefix> <UCPTphonePrefixDelay>1.2</UCPTphonePrefixDelay> <UCPTphoneDialtonewaiting>BOOL_TRUE</UCPTphoneDialtonewaiting> <UCPTphoneDialtype>DT_TONE</UCPTphoneDialtype> <UCPTmodemCountry>MCC_GERMANY</UCPTmodemCountry> <UCPTisdnProtocol>ISDN_NUL</UCPTisdnProtocol> <UCPTisdnEAZ></UCPTisdnEAZ> <UCPTisdnMSN>11</UCPTisdnMSN> <UCPTautoAnswer>BOOL_TRUE</UCPTautoAnswer> i.LON 100 Internet Server Programmer’s Reference 10-1 <UCPTpppIpAddress>192.168.4.2</UCPTpppIpAddress> <UCPTuserName>iLon</UCPTuserName> <UCPTuserPassword>iLon</UCPTuserPassword> <UCPTpppAuthentication>PPP_AUTH_PAP</UCPTpppAuthentication> </GlobalPPP> <PPP> <UCPTindex>0</UCPTindex> <UCPTlastUpdate>2002-06-06T19:26:31Z</UCPTlastUpdate> <UCPTdescription>Connection to xxx</UCPTdescription> <UCPTnetAddress>195.0.0.0</UCPTnetAddress> <UCPTsubnetMask>255.0.0.0</UCPTsubnetMask> <UCPTphoneNumber>0192658</UCPTphoneNumber> <UCPTphoneNumberDelay>23.0</UCPTphoneNumberDelay> <UCPTuserName>abc</UCPTuserName> <UCPTuserPassword>def</UCPTuserPassword> <UCPTidleTimeout>321.0</UCPTidleTimeout> </PPP> <PPP> <UCPTindex>1</UCPTindex> <UCPTlastUpdate>2002-03-05T14:21:17Z</UCPTlastUpdate> <UCPTdescription>Connection to ZZZ</UCPTdescription> <UCPTnetAddress>195.0.0.0</UCPTnetAddress> <UCPTsubnetMask>255.0.0.0</UCPTsubnetMask> <UCPTphoneNumber>0192659</UCPTphoneNumber> <UCPTphoneNumberDelay>25.0</UCPTphoneNumberDelay> <UCPTuserName>abc</UCPTuserName> <UCPTuserPassword>xxx</UCPTuserPassword> <UCPTidleTimeout>300.0</UCPTidleTimeout> </PPP> </iLONConnectionManager> 10.2 ConnectionManager.XML ファイルの作成と変更 ConnectionManager.XML ファイルは、ConnectionManagerSet 関数を使用して作成および 変更します。次の「接続マネージャの SOAP インタフェース」では、 ConnectionManagerSet、および接続マネージャアプリケーションに付属の各種 SOAP 関数 について説明します。 XML エディタを使用して ConnectionManager.XML ファイルを手動で作成および変更し、 FTP を経由して i.LON 100 にダウンロードすることもできます。ただし、Echelon 社では、 この方法は奨励していません。ダウンロードしたファイルの構成を読み取るには、i.LON 100 を再起動する必要があるためです。また、i.LON 100 は XML ファイルに書き込みを行 う前に、受信したすべての SOAP メッセージのエラーチェックを実行しますが、FTP を経由 してダウンロードされた XML ファイルのエラーチェックは実行しないため、アプリケーシ ョンが正しく起動しない場合があります。 XML ファイルを手動で作成する場合は、まず本章の残りの部分をお読みください。ここで は、グローバルな接続マネージャプロパティを定義する XML ファイル内のプロパティとエ レメント、および各接続プロファイルの構成について説明しています。XML ファイルを手 動で作成または変更する方法については、17-1ページの「XML 構成ファイルの手動変更」 を参照してください。 10.2.1 接続マネージャの SOAP インタフェース 接続マネージャアプリケーション用の SOAP インタフェースには、4 つの関数が含まれてい ます。表 52では、これらの関数を一覧表示し、各関数について説明しています。詳細につい ては、表 52の後に続く各項を参照してください。 10-2 i.LON 100 Internet Server Programmer’s Reference 表 52 接続マネージャの関数 関数 説明 ConnectionManagerLis t i.LON 100 が使用しているモデムの構成、および i.LON 100 に追加 した接続プロファイルの一覧を取得します。詳細については、10-3 ページの「ConnectionManagerList」を参照してください。 ConnectionManagerGet i.LON 100 に追加した接続プロファイルの構成を取得します。詳細 については、10-4ページの「ConnectionManagerGet」を参照して ください。 ConnectionManagerSet ConnectionManagerSet 関数を使用して、i.LON 100 接続マネー ジャのグローバル構成パラメータの定義、および i.LON 100 の接続 プロファイルの作成を行います。詳細については、10-9ページの 「ConnectionManagerSet」を参照してください。 ConnectionManagerDel ete 接続プロファイルを削除します。詳細については、10-10ページの 「ConnectionManagerDelete」を参照してください。 10.2.1.1 ConnectionManagerList ConnectionManagerList 関数を使用すると、i.LON 100 に追加した接続プロファイルの一覧 を取得することができます。ConnectionManagerList 関数は<Data>パラメータとして空の 文字列を受け入れます。 この関数は、<Result>パラメータ内に<GlobalPPP>エレメントを返します。このエレメント には、i.LON 100 のモデムとダイヤルインプロパティの構成を定義する構成プロパティが含 まれています。これらのプロパティの値は、ConnectionManagerSet 関数を使用して指定し ます。プロパティの詳細については、以下に示す<Data>と<Result>のサンプルパラメータ の後に続く表 53で説明します。 <Result>パラメータには、i.LON 100 に追加した接続プロファイルの<PPP>エレメントも含 まれます。<PPP>エレメントに含まれるプロパティについては、次の 「ConnectionManagerGet」で説明します。 この関数が返す<PPP>エレメントの一覧は、ConnectionManagerGet 関数の入力として使用 できます。ConnectionManagerGet 関数は、<PPP>エレメントに含まれている各接続プロ ファイルの構成を返します。 <Data>パラ メータ 文字列なし <Result>パラ メータ <Result> <iLONConnectionManager> <GlobalPPP> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <UCPTlastUpdate>2002-06-24T12:43:31Z</UCPTlastUpdate> <UCPTphonePrefix>0</UCPTphonePrefix> <UCPTphonePrefixDelay>1.2</UCPTphonePrefixDelay> <UCPTphoneDialtonewaiting>BOOL_TRUE</UCPTphoneDialtonewaitin g> <UCPTphoneDialtype>DT_TONE</UCPTphoneDialtype> <UCPTmodemCountry>MCC_GERMANY</UCPTmodemCountry> <UCPTisdnProtocol>ISDN_NUL</UCPTisdnProtocol> <UCPTisdnEAZ></UCPTisdnEAZ> <UCPTisdnMSN></UCPTisdnMSN> <UCPTautoAnswer>BOOL_TRUE</UCPTautoAnswer> i.LON 100 Internet Server Programmer’s Reference 10-3 <UCPTpppIpAddress>192.168.4.2</UCPTpppIpAddress> <UCPTuserName>iLon</UCPTuserName> <UCPTuserPassword>iLon</UCPTuserPassword> <UCPTpppAuthentication>PPP_AUTH_PAP</UCPTpppAuthentication> </GlobalPPP> <PPP> <UCPTindex>1</UCPTindex> <UCPTlastUpdate>2002-06-06T19:26:31Z</UCPTlastUpdate> <UCPTdescription>Connection to xxx</UCPTdescription> </PPP> <PPP> <UCPTindex>2</UCPTindex> <UCPTlastUpdate>2002-0606T19:26:31Z</UCPTlastUpdate> <UCPTdescription>Local</UCPTdescription> </PPP> <PPP> <UCPTindex>0</UCPTindex> <UCPTlastUpdate>2002-06-26T10:19:52Z</UCPTlastUpdate> <UCPTdescription>Connection to XXX</UCPTdescription> </PPP> </iLONConnectionManager> </Result> 表 53では、ConnectionManagerList 関数が返す<GlobalPPP>エレメント内の構成プロパ ティについて説明しています。これらのプロパティは、i.LON 100 のダイヤルインプロパ ティ、および i.LON 100 が使用しているモデムの構成を定義します。 表 53 プロパティ 接続マネージャのグローバルプロパティ 説明 <SCPTobjMajVer> 接続マネージャアプリケーションが使用しているファーム ウェアの主バージョン番号。 <SCPTobjMinVer> 接続マネージャアプリケーションが使用しているファーム ウェアの副バージョン番号。 <UCPTlastUpdate> 接続マネージャアプリケーションのグローバル構成プロパ ティが最後に更新された時刻を示すタイムスタンプ。この タイムスタンプは ISO 8601 規格に従って UTC 時間で示 されます。 <UCPTphonePrefix> i.LON 100 のモデムがダイヤルアウト中に呼び出す電話番 号の先頭に挿入するプレフィックス番号。既定では空白に なっているため、電話番号の前にダイヤルされる番号はあ りません。 <UCPTphonePrefixDelay> i.LON 100 のモデムがプレフィックス番号をダイヤルした 後、接続用の電話番号をダイヤルする前に待機する遅延秒 数。 <UCPTphoneDialtonewaiting> BOOL_TRUE または BOOL_FALSE のどちらか。 BOOL_TRUE の場合、i.LON 100 のモデムは電話番号を ダイヤルする前にダイヤルトーンを待機します。 BOOL_FALSE の場合、モデムはプレフィックスの遅延時 間が経過した直後に電話番号をダイヤルします。 <UCPTphoneDialtype> DC_TONE または DC_PULSE のどちらか。i.LON 100 の モデムがトーンを使用する場合は DC_TONE を入力し、 パルスを使用する場合は DC_PULSE を入力します。 10-4 i.LON 100 Internet Server Programmer’s Reference プロパティ <UCPTmodemCountry> 説明 i.LON 100 のモデムがインストールされている国。ここに 一覧表示されているもののいずれかを指定できます。 MCC_AUSTRIA MCC_DENMARK MCC_FRANCE MCC_IRELAND MCC_LUXEMBOURG MCC_NETHERLANDS MCC_NORWAY MCC_SPAIN MCC_SWITZERLAND MCC_UNITED_KINGDOM MCC_GREECE MCC_CHILE MCC_INDONESIA MCC_VIETNAM MCC_INTERNATIONAL MCC_CZECH_REPUBLIC MCC_MEXICO MCC_UNITED_STATES MCC_HUNGARY MCC_RUSSIA MCC_SLOVAC_REPUBLIC MCC_BULGARIA MCC_CHINA MCC_JAPAN MCC_TAIWAN MCC_NEW_ZEALAND MCC_MALAYSIA MCC_SLOVENIA MCC_SOUTH_AFRICA MCC_EURO_N_AMERICA <UCPTisdnProtocol> MCC_BELGIUM MCC_FINLAND MCC_GERMANY MCC_ITALY MCC_PORTUGAL MCC_SWEDEN MCC_ISRAEL MCC_INDIA MCC_TURKEY MCC_CANADA MCC_POLAND MCC_AUSTRALIA MCC_HONG_KONG MCC_KOREA MCC_SINGAPORE MCC_BRAZIL MCC_PHILIPENES MCC_NUL ISDN モデムが使用するプロトコルのバージョン。i.LON 100 が ISDN モデムを使用していない場合、このプロパ ティは ISDN_NUL に設定してください。その他の有効な バージョンには、ISDN_V110_AR、ISDN_V120、 ISDN_X75、ISDN_TRANS、ISDN_T70、 ISDN_V110_9600、ISDN_PPP、ISDN_V110_19200、 ISDN_V120_LLC、ISDN_V120_LLC_2、および ISDN_V110_38400 があります。 訳注:i.lon100 の内蔵モデムはアナログ電話回線用です。 ISDN モデムの設定は将来拡張用です。 <UCPTisdnMSN> ISDN モデムの MSN(Multiple Subscriber Number) で、31 文字から成る ANSI 文字列。この番号は、ローカル の ISDN プロバイダが提供するものです。 <UCPTisdnEAZ> EAZ 値は、ISDN モデムの S-Bus 上の 8 つのデバイスの 選択を可能にします。値の範囲は 0∼9 で、既定値は 0 で す。 i.LON 100 Internet Server Programmer’s Reference 10-5 プロパティ 説明 <UCPTautoAnswer> BOOL_TRUE または BOOL_FALSE のいずれか。i.LON 100 のモデムが着信呼び出しに応答する場合は、このプロ パティを BOOL_TRUE に設定し、それ以外の場合は BOOL_FALSE に設定します。 <UCPTpppIpAddress> i.LON 100 のモデムが着信呼び出しに使用するローカルの IP アドレス。 <UCPTuserName> <UCPTuserPassword> i.LON 100 への接続の認証時に入力するユーザ名とパス ワード。最高 31 文字までで指定する必要があり、既定値 はいずれも“ilon”です。 <UCPTpppAuthentication> i.LON 100 が使用している認証の種類を指定します。認証 を使用していない場合は PPP_AUTH_NONE を入力し、 CHAP 認証には PPP_AUTH_CHAP、PAP 認証には PPP_AUTH_PAP を入力します。 10.2.1.2 ConnectionManagerGet ConnectionManagerGet 関数を使用すると、i.LON 100 に追加した接続プロファイルの構成 を取得することができます。構成情報を取得したい接続プロファイルは、関数に渡す<Data> パラメータ内でインデックス番号を指定する必要があります。1 回の関数の呼び出しで複数 の接続プロファイルを参照することもできます。 <Data>パラメータ 10-6 <Data> <iLONConnectionManager> <PPP> <UCPTindex>0</UCPTindex> </PPP> <PPP> <UCPTindex>1</UCPTindex> </PPP> </iLONConnectionManager> </Data> i.LON 100 Internet Server Programmer’s Reference <Result>パラメー タ <Result> <iLONConnectionManager> <PPP> <UCPTindex>0</UCPTindex> <UCPTlastUpdate>2002-1221T12:31:00Z</UCPTlastUpdate> <UCPTdescription>Connection to MSN</UCPTdescription> <UCPTnetAddress>149.0.0.0</UCPTnetAddress> <UCPTsubnetMask>255.0.0.0</UCPTsubnetMask> <UCPTphoneNumber>0192658</UCPTphoneNumber> <UCPTphoneNumberDelay>60</UCPTphoneNumberDelay> <UCPTuserName>msn</UCPTuserName> <UCPTuserPassword>msn</UCPTuserPassword> <UCPTidleTimeout>300</UCPTidleTimeout> </PPP> <PPP> <UCPTindex>1</UCPTindex> <UCPTlastUpdate>2001-1231T12:30:45Z</UCPTlastUpdate> <UCPTdescription>Connection to xxx</UCPTdescription> <UCPTnetAddress>195.0.0.0</UCPTnetAddress> <UCPTsubnetMask>255.0.0.0</UCPTsubnetMask> <UCPTphoneNumber>0192658</UCPTphoneNumber> <UCPTphoneNumberDelay>60</UCPTphoneNumberDelay> <UCPTuserName>msn</UCPTuserName> <UCPTuserPassword>msn</UCPTuserPassword> <UCPTidleTimeout>300</UCPTidleTimeout> </PPP> </iLONConnectionManager> </Result> ConnectionManagerGet 関数は、関数に渡した<Data>パラメータで参照した接続プロファ イルの<PPP>エレメントを返します。<PPP>エレメントに含まれているプロパティは、接続 プロファイルの作成時に最初に定義されます。このプロパティに書き込みを行うには、 ConnectionManagerSet 関数を使用します。表 54では、これらのプロパティについて説明し ています。 表54 接続プロファイルのプロパティ プロパティ <UCPTindex> 説明 接続プロファイルに割り当てられるインデックス番号は、 –32,768∼32,767 の範囲に収めます。ConnectionManagerSet 関数を使用すると、新しい接続プロファイルを作成するか、既 存の接続プロファイルを変更することができます。 ConnectionManagerSet に渡す<Data>パラメータの中でイン デックス番号を指定しない場合は、使用可能な最初のインデッ クス番号で新しい接続プロファイルが作成されます。 既に使用中のインデックス番号を指定した場合は、そのイン デックス番号を使用している接続プロファイルの構成が、 <Data>パラメータに定義されている設定で上書きされます。 i.LON 100 Internet Server Programmer’s Reference 10-7 プロパティ <UCPTlastUpdate> 説明 接続プロファイルの構成が最後に更新された時刻を示すタイム スタンプ。このタイムスタンプは、次のフォーマットを使用し ます。 YYYY-MM-DDTHH:MM:SSZ タイムスタンプの最初のセグメント(YYYY-MM-DD)は、接 続プロファイルの構成が最後に更新された日を表します。2 番 目のセグメント(THH:MM:SS)は、接続プロファイルの構成 が最後に更新された日の時刻を協定世界時(UTC)で表しま す。 UTC は、以前はグリニッジ標準時(GMT)と一般的に呼ばれ ていたものを示す現在の用語です。0 時間の UTC は、ゼロ度の 経線上にあるイギリスのグリニッジにおける深夜 0 時を表しま す。協定世界時は 24 時間制に基づいているため、4 pm などの 午後の時間は 16:00 UTC と表されます。タイムスタンプに追加 される Z は、それが UTC 単位であることを示します。 たとえば 2002-08-15T10:13:13Z は、2002 年 8 月 15 日の午前 10 時 13 分 13 秒の UTC 時間を示します。 <UCPTdescription> 接続プロファイルの説明。この長さは最大 228 文字です。 <UCPTnetAddress> このプロファイルに指定した電話番号を経由して接続されるデ バイスの IP ネットワークアドレス。このプロパティは、 <UCPTsubnetMask>プロパティと組み合わせることで、IP ア ドレスの範囲を定義します。たとえば、アラームノーティファ イアアプリケーションが送信する電子メールの SMTP サーバが 137.25.26.100 の場合は、次の<UCPTnetAddress>と <UCPTsubnetMask>のいずれかの組み合わせを使用して、モ デムがこのプロファイル内の UCPTphoneNumber を使用して ダイヤルアウトするように設定する必要があります。 UCPTnetAddress: 137.0.0.0 UCPTsubnetMask: 255.0.0.0 UCPTnetAddress: 137.25.26.100 UCPTsubnetMask: 255.255.255.255 UCPTnetAddress: 137.25.0.0 UCPTsubnetMask: 255.0.0.0 この組み合わせは 137.25.26.100 のサーバアドレスには使用で きません。 UCPTnetAddress: 137.0.0.0 UCPTsubnetMask: 255.255.0.0 <UCPTsubnetMask> <UCPTnetAddress>プロパティとともに使用するネットワーク マスクは、指定のサーバへのダイヤルアウトにこのプロファイ ルが使用されるかどうかを決定します。 <UCPTphoneNumber> このプロファイルへの接続が必要なときに呼び出されるモデム の電話番号。 <UCPTphoneNumberDelay> 接続マネージャがダイヤルした後にこのプロファイルへの接続 が確立されるまで待機する期間の秒数。この期間が経過しても 接続が確立されない場合、接続の試行は中止されます。 10-8 i.LON 100 Internet Server Programmer’s Reference プロパティ 説明 <UCPTuserName> <UCPTuserPassword> 接続プロファイルのユーザ名とパスワード。最高 31 文字まで の文字列で、既定値はいずれも“ilon”です。ユーザ名とパスワー ドは、i.LON 100 が認証を使用している場合、このプロファイ ルに接続するたびに必要になります。 <UCPTidleTimeout> 接続プロファイルのタイムアウト期間を示す秒数。この期間が 経過しても接続にトラフィックが存在しない場合、このプロ ファイルへの接続は中止されます。 10.2.1.3 ConnectionManagerSet ConnectionManagerSet 関数を使用すると、i.LON 100 のモデムの構成、新しい接続プロ ファイルの作成、および既存の接続プロファイルの構成の上書きができます。 モデムの構成を定義するプロパティは、<Data>パラメータ内の<GlobalPPP>エレメントで 指定します。作成または変更する接続プロファイルは、<Data>パラメータ内の<PPP>エレ メントの一覧で指定します。<PPP>エレメント内に含める必要のあるプロパティは、新しい プロファイルを作成する場合でも、既存のプロファイルを変更する場合でも同じです。これ らのプロパティの詳細については、前項の「ConnectionManagerList」および 「ConnectionManagerGet」を参照してください。 注:既存の接続マネージャを変更する場合、入力文字列に指定されていないオプションのプ ロパティは消去されます。古い値は継承されないため、接続プロファイルに書き込みを行う ときは、すべての値を変更しない場合でも、すべてのプロパティを指定する必要があります。 これには<GlobalPPP>エレメントに含まれるプロパティも含まれます。 ConnectionManagerSet 関数は、i.LON 100 の/root/config/software ディレクトリに ConnectionManager.XML ファイルを生成します(ファイルがまだ存在しない場合)。 ConnectionManagerSet を使用して接続プロファイルを作成または変更するときは、 ConnectionManagerGet 関数の出力を利用して、<Data>パラメータを指定することができ ます。ConnectionManagerSet を使用して接続マネージャのグローバル構成プロパティの構 成を変更するときは、ConnectionManagerList の出力を利用して、<Data>パラメータを指 定すると便利です。こうすると、文字列全体を最初から作成する代わりに、新しい構成に一 致するように各プロパティの値を変更するだけで済みます。 次の<Data>パラメータの例では、i.LON 100 のグローバル接続マネージャのパラメータを定 義し、i.LON 100 の接続プロファイルを作成します。ConnectionManagerSet 関数の 1 回の 呼び出しで、複数のプロファイルを作成することができます。 i.LON 100 Internet Server Programmer’s Reference 10-9 <Data>パラ メータ <Data> <iLONConnectionManager> <GlobalPPP> <UCPTmodemCountry>MCC_GERMANY</UCPTmodemCountry> <UCPTisdnProtocol>ISDN_NUL</UCPTisdnProtocol> <UCPTisdnEAZ></UCPTisdnEAZ> <UCPTisdnMSN>11</UCPTisdnMSN> <UCPTphonePrefix>0</UCPTphonePrefix> <UCPTphonePrefixDelay>1.2</UCPTphonePrefixDelay> <UCPTphoneDialtonewaiting>BOOL_FALSE</UCPTphoneDialtonewaiting> <UCPTautoAnswer>BOOL_TRUE</UCPTautoAnswer> <UCPTpppIpAddress>192.168.4.2</UCPTpppIpAddress> <UCPTuserName>iLon</UCPTuserName> <UCPTuserPassword>iLon</UCPTuserPassword> <UCPTpppAuthentication>PPP_AUTH_PAP</UCPTpppAuthentication> </GlobalPPP> <PPP> <UCPTindex>0</UCPTindex> <UCPTdescription>Connection to XXX</UCPTdescription> <UCPTnetAddress>149.0.0.0</UCPTnetAddress> <UCPTsubnetMask>255.0.0.0</UCPTsubnetMask> <UCPTphoneNumber>0192658</UCPTphoneNumber> <UCPTphoneNumberDelay>60</UCPTphoneNumberDelay> <UCPTuserName>XXX</UCPTuserName> <UCPTuserPassword>XXX</UCPTuserPassword> <UCPTidleTimeout>300</UCPTidleTimeout> </PPP> </iLONConnectionManager> </Data> <Result>パ ラメータ <Result> <iLONConnectionManager> <GlobalPPP> <UCPTmodemCountry>MCC_GERMANY</UCPTmodemCountry> <UCPTisdnProtocol>ISDN_NUL</UCPTisdnProtocol> <UCPTisdnEAZ></UCPTisdnEAZ> <UCPTisdnMSN>11</UCPTisdnMSN> <UCPTphonePrefix>0</UCPTphonePrefix> <UCPTphonePrefixDelay>1.2</UCPTphonePrefixDelay> <UCPTphoneDialtonewaiting>BOOL_FALSE</UCPTphoneDialtonewaiting <UCPTautoAnswer>BOOL_TRUE</UCPTautoAnswer> <UCPTpppIpAddress>192.168.4.2</UCPTpppIpAddress> <UCPTuserName>iLon</UCPTuserName> <UCPTuserPassword>iLon</UCPTuserPassword> <UCPTpppAuthentication>PPP_AUTH_PAP</UCPTpppAuthentication> </GlobalPPP> <PPP> <UCPTindex>0</UCPTindex> </PPP> </iLONConnectionManager> </Result> 10.2.1.4 ConnectionManagerDelete ConnectionManagerDelete 関数を使用すると、接続プロファイルを削除することができま す。接続プロファイルを削除するには、関数に渡す<Data>パラメータの中で削除したい接続 プロファイルをインデックス番号で参照します。1 回の ConnectionManagerDelete の呼び 出しで、複数の接続プロファイルを削除できます。 10-10 i.LON 100 Internet Server Programmer’s Reference <Data>パラメータ <Data> <iLONConnectionManager> <PPP> <UCPTindex>0</UCPTindex> </PPP> <PPP> <UCPTindex>1</UCPTindex> </PPP> </iLONConnectionManager> </Data> <Result>パラメー タ <Data> <iLONConnectionManager> <PPP> <UCPTindex>0</UCPTindex> </PPP> <PPP> <UCPTindex>1</UCPTindex> </PPP> </iLONConnectionManager> </Data> i.LON 100 Internet Server Programmer’s Reference 10-11 11 イベントスケジューラ イベントスケジューラアプリケーションを使用すると、ネットワーク内のデータポイントへ の定期的な更新をスケジュールすることができます。作成する各イベントスケジューラには、 1 つまたは複数のデータポイントを選択します。これらのデータポイントは、イベントスケ ジューラが有効になる日時に指定の値に更新されます。イベントスケジューラがアクティブ になる日時およびイベントスケジューラがデータポイントを更新する値は、すべてユーザが 定義します。ここでは、イベントスケジューラの機能について説明します。 曜日を基にしたスケジュール イベントスケジュールには、曜日を基にしたスケジュールを最高 7 つまで作成します。曜日 を基にした各スケジュールは、特定の曜日に適用されます。たとえば、月曜日から金曜日に アクティブになる、曜日を基にしたスケジュールを 1 つ作成し、土曜日と日曜日にアクティ ブになるさらに別のスケジュールを作成することができます。または、曜日を基にしたスケ ジュールを各曜日ごとに設定できます。 この曜日を基にしたスケジュールには、日時の値を定義します。つまり、スケジュールがア クティブになる曜日と時刻を、データポイントの値に割り当てます。たとえば、 SNVT_switch データポイントを月曜日から金曜日までの平日の 8:00 にオン(100.0 1)にし、 17:00 にオフ(0.0 0)にし、土曜日と日曜日はデータポイントをオフのままにするといった イベントスケジューラを作成することができます。 日付を基にしたスケジュール さらに、イベントスケジューラには日付を基にした例外を作成することができます。これら の例外を使用することで、休日など、特別なスケジュールが必要な特定の日付を選択し、曜 日を基にしたスケジュールとは異なるスケジュールを割り当てることができます。それぞれ の例外には、日付と時刻の値を設定します。これによって、任意の日付と時刻をデータポイ ントに指定できるようになるため、イベントスケジューラを柔軟に作成できるようになりま す。 日付を基にした例外は、イベントカレンダーアプリケーションで作成する必要があります。 これについては本書の第 12 章で説明します。 データポイント イベントスケジューラアプリケーションを使用すると、イベントスケジューラが更新する任 意の標準またはユーザ定義のネットワーク変数型のデータポイントを動的に選択できるよう になります。選択したデータポイントの出力は、スケジュールされた間隔でアクティブにす る必要のあるネットワークデバイスにバインドします。データポイントは、イベントスケジ ューラアプリケーションで使用する前に、Data Server に作成・追加する必要があります。 詳細については、4-1ページの「Data Server」を参照してください。 例外の更新 前述のとおり、イベントスケジューラに対し、日付を基にしたスケジュールを定義する例外 ポイントを作成するには、イベントカレンダーアプリケーションを使用します。第 12 章で はこの手順について説明しています。作成する例外は、NodeObject 内に例外一覧 (UNVT_date_event フォーマット)として格納されます。NodeObject は例外一覧を管理し、 NVL_nviDateEvent ポイントを経由してこの一覧を受け取ります。 i.LON 100 上のすべてのイベントスケジューラは、ローカルの NodeObject から内部で(バ インドせずに)例外一覧を読み取り、その結果、現在の例外構成のみを使用します。既定で は、NodeObject のデータポイントとローカルカレンダーはループ内で構成されるため、こ の例外一覧はカレンダーの NVL_nvoEcDateEvent の出力と、NodeObject の NVL_nviDateEvent の入力間の内部バインドを経由してローカルのカレンダーオブジェクト から取り込まれます。 i.LON 100 Internet Server Programmer’s Reference 11-1 再起動後、イベントスケジューラは最後のイベントスケジューラの演算を再計算します。ま た、NVL_nvoDateResync データポイントを“100.0 1”に設定し、次に“0.0 0”に設定します。 これによって、i.LON 100 の例外一覧が更新されます。NVL_nvoDateResync の値は DataPointWrite または DataServerWrite 関数を使用していつでも“100.0 1”に設定し、例外 一覧を手動で更新できます。外部バインドが作成されない場合には、イベントカレンダーの NVL_nviEcResync データポイントが内部で NVL_nvoDateResync にバインドされます。た だし、スケジューラは NodeObject の NV を周期的に更新して、NodeObject が常に最新の例 外一覧を持つようにするため、これは必要にはならないはずです。 11.1 EventScheduler.XML EventScheduler.XML ファイルは、i.LON 100 に追加したイベントスケジューラの構成を格 納します。 イベントスケジューラは、XML ファイル内では<Schedule>エレメントで示されます。イベ ントスケジューラを作成するには、EventSchedulerSet 関数を使用するか、手動で XML ファイルを編集し、FTP を経由して i.LON 100 にダウンロードします。イベントスケジュー ラを作成する際のガイドラインと手順については、サンプルの後の各項を参考にしてくださ い。 次のコード例は、定義済みの 1 つのイベントスケジューラを使用した、i.LON 100 の EventScheduler.XML ファイルを表しています。 <?xml version="1.0" ?> <iLONEventScheduler> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <Schedule> <UCPTindex>1</UCPTindex> <UCPTlastUpdate>2002-06-26T11:10:34Z</UCPTlastUpdate> <UCPTdescription>Office Building Control Event Scheduler</UCPTdescription> <UCPTfbName>Scheduler- 1</UCPTfbName> <UCPTscheduleEffectivePeriod>0000-00-00,0000-0000</UCPTscheduleEffectivePeriod> <Point> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nvoWeekday</UCPTpointName> <SCPTdelayTime>0.0</SCPTdelayTime> </Point> <Point> <UCPTindex>1</UCPTindex> <UCPTpointName>NVL_nvoWeekend</UCPTpointName> <SCPTdelayTime>0.0</SCPTdelayTime> </Point> <DayBased> <UCPTindex>0</UCPTindex> <UCPTdescription>Weekday</UCPTdescription> <UCPTpriority>240</UCPTpriority> <UCPTweekdays>0,1,1,1,1,1,0</UCPTweekdays> <DayTimeVal> <UCPTindex>0</UCPTindex> <UCPTscheduleValue>WEEKDAY</UCPTscheduleValue> <UCPTscheduleTime>0:0</UCPTscheduleTime> </DayTimeVal> </DayBased> <DayBased> <UCPTindex>1</UCPTindex> <UCPTdescription>Weekend</UCPTdescription> <UCPTpriority>240</UCPTpriority> 11-2 i.LON 100 Internet Server Programmer’s Reference <UCPTweekdays>1,0,0,0,0,0,1</UCPTweekdays> <DayTimeVal> <UCPTindex>0</UCPTindex> <UCPTscheduleValue>100.0 1</UCPTscheduleValue> <UCPTscheduleTime>12:30</UCPTscheduleTime> </DayTimeVal> <DayTimeVal> <UCPTindex>1</UCPTindex> <UCPTscheduleValue>0.0 0</UCPTscheduleValue> <UCPTscheduleTime>10:30</UCPTscheduleTime> </DayTimeVal> </DayBased> <DateBased> <UCPTindex>0</UCPTindex> <UCPTdescription>Datumbasierend</UCPTdescription> <UCPTpriority>25</UCPTpriority> <DateTimeVal> <UCPTindex>0</UCPTindex> <UCPTscheduleValue>OnValue</UCPTscheduleValue> <UCPTscheduleTime>14:0</UCPTscheduleTime> </DateTimeVal> <DateTimeVal> <UCPTindex>1</UCPTindex> <UCPTscheduleValue>Off</UCPTscheduleValue> <UCPTscheduleTime>15:30</UCPTscheduleTime> </DateTimeVal> <Exception> <UCPTindex>0</UCPTindex> <UCPTexceptionName>Holiday</UCPTexceptionName> </Exception> </DateBased> </Schedule> </iLONEventScheduler> 11.2 EventScheduler.XML ファイルの作成と変更 EventScheduler.XML ファイルは、EventSchedulerSet SOAP 関数を使用して作成および変 更します。次の「イベントスケジューラの SOAP インタフェース」では、 EventSchedulerSet、および各種イベントスケジューラ SOAP 関数について説明します。 XML エディタを使用して EventScheduler.XML ファイルを手動で作成および変更し、FTP を経由して i.LON 100 にダウンロードすることもできます。ただし、Echelon 社ではこの方 法は奨励していません。ダウンロードしたファイルの構成を読み取るには、i.LON 100 を再 起動する必要があるためです。また、i.LON 100 は XML ファイルに書き込みを行う前に、 受信したすべての SOAP メッセージのエラーチェックを実行しますが、FTP を経由してダウ ンロードされた XML ファイルのエラーチェックは実行しないため、アプリケーションが正 しく起動しない場合があります。 XML ファイルを手動で作成する場合は、まず本章の残りの部分をお読みください。ここで は、イベントスケジューラを定義する XML ファイル内のエレメントとプロパティについて 説明しています。XML ファイルを手動で作成または変更する方法については、17-1ページ の「XML 構成ファイルの手動変更」を参照してください。 11.2.1 イベントスケジューラの SOAP インタフェース イベントスケジューラアプリケーション用の SOAP インタフェースには、4 つの関数が含ま れています。表 55ではこれらの関数を一覧表示し、各関数について説明しています。詳細に ついては、表 55の後に続く各項を参照してください。 i.LON 100 Internet Server Programmer’s Reference 11-3 表55 関数 イベントスケジューラの SOAP 関数 説明 EventSchedulerList i.LON 100 に追加したイベントスケジューラの一覧を取得します。 詳細については、11-4ページの「EventSchedulerList」を参照して ください。 EventSchedulerGet イベントスケジューラの構成を取得します。詳細については、11-5 ページの「EventSchedulerGet」を参照してください。 EventSchedulerSet イベントスケジューラを作成するか、既存のイベントスケジューラ の構成を上書きします。詳細については、11-11ページの 「EventSchedulerSet」を参照してください。 EventSchedulerDelete イベントスケジューラを削除します。詳細については、11-14ページ の「EventSchedulerDelete」を参照してください。 11.2.1.1 EventSchedulerList EventSchedulerList 関数を使用すると、i.LON 100 に追加したイベントスケジューラの一覧 を取得することができます。EventSchedulerList 関数は<Data>パラメータとして空の文字 列を受け入れます。 この関数は、イベントスケジューラアプリケーションが使用しているファームウェアのバー ジョン番号(主および副)を<Result>パラメータ内に返します。<Result>パラメータには、 i.LON 100 に追加した各イベントスケジューラの<Schedule>エレメントも含まれます。次の 「EventSchedulerGet」で、<Schedule>エレメントに含まれるプロパティについて説明しま す。 この関数が返す<Schedule>エレメントの一覧は、EventSchedulerGet 関数の入力として使 用できます。EventSchedulerGet 関数は、<Schedule>エレメントに含まれる各イベントス ケジューラの構成を返します。 <Data>パラ メータ <Result>パ ラメータ 11-4 文字列なし <Result> <iLONEventScheduler> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <Schedule> <UCPTindex>0</UCPTindex> <UCPTlastUpdate>2002-06-20T12:37:10Z</UCPTlastUpdate> <UCPTdescription>Office Building</UCPTdescription> <UCPTfbName>Scheduler- 0</UCPTfbName> </Schedule> <Schedule> <UCPTindex>1</UCPTindex> <UCPTlastUpdate>2002-06-26T11:10:34Z</UCPTlastUpdate> <UCPTdescription>Kitchen Schedule</UCPTdescription> <UCPTfbName>Scheduler- 1</UCPTfbName> </Schedule> <Schedule> <UCPTindex>2</UCPTindex> <UCPTlastUpdate>2002-06-20T12:37:11Z</UCPTlastUpdate> <UCPTdescription>Basement Schedule</UCPTdescription> <UCPTfbName>Scheduler- 2</UCPTfbName> </Schedule> </iLONEventScheduler> </Result> i.LON 100 Internet Server Programmer’s Reference 11.2.1.2 EventSchedulerGet EventSchedulerGet 関数を使用すると、i.LON 100 に追加したイベントスケジューラの構成 を取得することができます。構成情報を取得したいイベントスケジューラは、関数に渡す <Data>パラメータの中でインデックス番号を指定する必要があります。 <Data> パラメー タ <Data> <iLONEventScheduler> <Schedule> <UCPTindex>1</UCPTindex> </Schedule> </iLONEventScheduler> </Data> <Result> パラメー タ <Result> <iLONEventScheduler> <Schedule> <UCPTindex>1</UCPTindex> <UCPTlastUpdate>2002-08-26T11:10:34Z</UCPTlastUpdate> <UCPTdescription>Kitchen Schedule</UCPTdescription> <UCPTfbName>Scheduler- 1</UCPTfbName> <UCPTscheduleEffectivePeriod>2002-07-07,2002-0808</UCPTscheduleEffectivePeriod> <Point> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nvoWeekday</UCPTpointName> <SCPTdelayTime>0.0</SCPTdelayTime> </Point> <Point> <UCPTindex>1</UCPTindex> <UCPTpointName>NVL_nvoWeekend</UCPTpointName> <SCPTdelayTime>2.0</SCPTdelayTime> </Point> <DayBased> <UCPTindex>0</UCPTindex> <UCPTdescription>Weekday</UCPTdescription> <UCPTpriority>240</UCPTpriority> <UCPTweekdays>0,1,1,1,1,1,0</UCPTweekdays> <DayTimeVal> <UCPTindex>0</UCPTindex> <UCPTscheduleValue>WEEKDAY</UCPTscheduleValue> <UCPTscheduleTime>0:0</UCPTscheduleTime> </DayTimeVal> </DayBased> <DayBased> <UCPTindex>1</UCPTindex> <UCPTdescription>Weekend</UCPTdescription> <UCPTpriority>240</UCPTpriority> <UCPTweekdays>1,0,0,0,0,0,1</UCPTweekdays> <DayTimeVal> <UCPTindex>0</UCPTindex> <UCPTscheduleValue>100.0 1</UCPTscheduleValue> <UCPTscheduleTime>12:30</UCPTscheduleTime> </DayTimeVal> <DayTimeVal> <UCPTindex>1</UCPTindex> <UCPTscheduleValue>0.0 0</UCPTscheduleValue> <UCPTscheduleTime>10:30</UCPTscheduleTime> </DayTimeVal> </DayBased> <DateBased> <UCPTindex>0</UCPTindex> <UCPTdescription>Datumbasierend</UCPTdescription> <UCPTpriority>25</UCPTpriority> <DateTimeVal> i.LON 100 Internet Server Programmer’s Reference 11-5 <UCPTindex>0</UCPTindex> <UCPTscheduleValue>OnValue</UCPTscheduleValue> <UCPTscheduleTime>14:0</UCPTscheduleTime> </DateTimeVal> <DateTimeVal> <UCPTindex>1</UCPTindex> <UCPTscheduleValue>OffValue</UCPTscheduleValue> <UCPTscheduleTime>15:30</UCPTscheduleTime> </DateTimeVal> <Exception> <UCPTindex>0</UCPTindex> <UCPTexceptionName>Holiday</UCPTexceptionName> </Exception> </DateBased> </Schedule> </iLONEventScheduler> <Result> EventSchedulerGet 関数は、関数に渡した<Data>パラメータで参照したイベントスケジ ューラの<Schedule>エレメントを返します。<Schedule>エレメントに含まれているプロパ ティは、イベントスケジューラの作成時に最初に定義されます。このプロパティに書き込み を行うには、EventCalendarSet 関数を使用します。表 56ではこれらのプロパティについて 説明しています。 表 56 プロパティ <UCPTindex> EventSchedulerGet の出力プロパティ 説明 イベントスケジューラに割り当てられるインデックス 番号は、–32,768∼32,767 の範囲に収めます。 EventSchedulerSet 関数を使用すると、新しいイベン トスケジューラを作成するか、既存のイベントスケジ ューラを変更することができます。 EventSchedulerSet に渡す<Data>パラメータの中でイ ンデックス番号を指定しない場合は、使用可能な最初 のインデックス番号で新しいイベントスケジューラが 作成されます。 既に使用中のインデックス番号を指定した場合は、そ のインデックス番号を使用しているイベントスケジ ューラの構成が、<Data>パラメータに定義されている 設定で上書きされます。 11-6 i.LON 100 Internet Server Programmer’s Reference プロパティ <UCPTlastUpdate> 説明 イベントスケジューラの構成が最後に更新された時刻 を示すタイムスタンプ。このタイムスタンプは次の フォーマットを使用します。 YYYY-MM-DDTHH:MM:SSZ タイムスタンプの最初のセグメント(YYYY-MMDD)は、イベントスケジューラの構成が最後に更新さ れた日を表します。2 番目のセグメント (THH:MM:SS)は、イベントスケジューラの構成が 最後に更新された日の時刻を協定世界時(UTC)で表 します。 UTC は、以前はグリニッジ標準時(GMT)と一般的 に呼ばれていたものを示す現在の用語です。0 時間の UTC は、ゼロ度の経線上にあるイギリスのグリニッジ における深夜 0 時を表します。協定世界時は 24 時間制 に基づいているため、4 pm などの午後の時間は 16:00 UTC と表されます。タイムスタンプに追加される Z は、それが UTC 単位であることを示します。 たとえば 2002-08-15T10:13:13Z は、2002 年 8 月 15 日の午前 10 時 13 分 13 秒の UTC 時間を示します。 <UCPTfbName> LONMAKER でイベントスケジューラに割り当てられた 機能ブロック名。このプロパティに書き込みを行うこ とはできますが、i.LON 100 構成ソフトウェアを使用 してイベントスケジューラを表示するたびに、このプ ロパティは LONMAKER に定義されている機能ブロック 名にリセットされます。 <UCPTdescription> イベントスケジューラのユーザ定義の説明。この長さ は最大 228 文字です。 <UCPTscheduleEffectivePeriod> スケジュールが有効になる期間。この日付の範囲は次 のフォーマットを使用して入力します。 YYYY-MM-DD,YYYY-MM-DD. たとえば、このプロパティに 2002-10-21,2002-10-30 が入力された場合、スケジュールは 2002 年 10 月 21 日∼2002 年 10 月 30 日の期間に有効になります。開始 日と終了日を定義しない場合には、0 を入力します。 0000-00-00,2003-07-02 と入力すると、2003 年 7 月 2 日までのすべての日にアクティブになるイベントスケ ジューラが作成されます。2002-08-01,0000-00-00 と入 力すると、2002 年 8 月 1 日に永久にアクティブになる イベントスケジューラが作成されます。0000-0000,0000-00-00 と入力すると、常にアクティブなイベン トスケジューラが作成されます。 注:SOAP/XML インタフェースを使用してイベントス ケジューラを作成した後に、i.LON 100 構成ソフトウェ アを使用してこのイベントスケジューラの構成を変更 する場合、1/1/1970 より前の入力日付は 1/1/1970 にリ セットされます。12/31/2037 より後の入力日付は i.LON 100 Internet Server Programmer’s Reference 11-7 プロパティ 説明 12/31/2037 にリセットされます。 <Point> イベントスケジューラが更新するデータポイントは、 <Data>パラメータ内の<Point>エレメントの一覧で定 義します。 <Point>エレメントごとに、更新されるデータポイント の名前(UCPTpointName)を入力する必要がありま す。また、データポイントごとに遅延時間 (SCPTdelayTime)プロパティを指定するようにして ください。この整数値は、データポイントが曜日を基 にしたまたは日付を基にしたスケジュールポイントに 基づいて更新される前に待機する期間を秒単位で表し ます。これによって、データポイントの更新を段階的 に行うことができます。イベントスケジューラが複数 のデータポイントを同時に更新する場合には、この方 法を採用することをお勧めします。 注:SNVT_tod_event データポイントを使用する場合 は、その値(next_state の current_state)が変化した 場合にのみこのデータポイントが更新されます。 SNVT_tod_event データポイントにハートビート (UNVTminSendTime)が定義されている場合は、 ハートビートごとに time_to_next_state が削減されて いきます。 <DayBased> イベントスケジューラは、曜日を基にしたスケジュー ルを 7 つまで持つことができます。曜日を基にしたス ケジュールは、曜日に基づいて機能するスケジュール で、平日と週末など、曜日ごとに異なる時間で更新す る必要があるスケジュールを設定する場合に役立ちま す。 <DayBased>エレメントは、イベントスケジューラの 曜日を基にしたスケジュールを定義します。 <DayBased>エレメントの詳しい構成方法について は、11-8ページの「曜日を基にしたスケジュールの作 成」を参照してください。 <DateBased> イベントスケジューラは、日付を基にしたスケジュー ルを 1 つ持つことができます。日付を基にしたスケジ ュールを作成するには、イベントカレンダーアプリ ケーションで作成したスケジュールの例外を参照しま す。 <DateBased>エレメントは日付を基にしたスケジュー ルを定義します。<DateBased>エレメントを定義する プロパティとエレメントの詳しい構成方法について は、11-10ページの「日付を基にしたスケジュールの作 成」を参照してください。 11.2.1.2.1 曜日を基にしたスケジュールの作成 11-8 i.LON 100 Internet Server Programmer’s Reference 表 57では、<DayBased>エレメント内に定義すべきプロパティを一覧表示し、各プロパティ について説明しています。 表57 曜日を基にしたスケジュールのプロパティ プロパティ 説明 <UCPTindex> 曜日を基にしたスケジュールのインデックス番号。 <UCPTdescription> 曜日を基にしたスケジュールに関するユーザ定義の説明。この説 明は、最高 228 文字までで指定します。 <UCPTpriority> スケジュールに割り当てられる優先度で、範囲は 0(最高優先 度)∼255(最低優先度)です。ここで選択する優先度は、イベ ントスケジューラがデータポイントを更新しようとしたときにそ のデータポイントに割り当てられている現在の優先度以上でなけ ればなりません。そうでない場合には、データポイントは更新さ れません。 データポイントの優先度の詳細については、2-8ページの「データ ポイント値と優先度」を参照してください。 <UCPTweekdays> 曜日を基にしたスケジュールがアクティブになる曜日を、コンマ で区切ったブール値(1=有効、0=無効)の一覧として指定しま す。指定は土曜日から始まります。たとえば、月曜日と火曜日に 有効になる、曜日を基にしたスケジュールを作成するには、次の ように入力します。 0,0,1,1,0,0,0 または、日曜日と水曜日に有効になる、曜日を基にしたスケジ ュールを作成するには、次のように入力します。 0,1,0,0,1,0,0 このプロパティの既定値は 0,0,0,0,0,0,0 です。 <DayTimeVal> 曜日を基にした 1 つのスケジュールには、最高 1024 の値の更新 を設定できます。各更新ポイントは、曜日を基にしたスケジュー ルがアクティブになる日に使用されます。更新は、 <DayTimeVal>エレメントの一覧で示されます。 <DayTimeVal>エレメントには、値を入力するか、イベントスケ ジューラが更新するデータポイントに割り当てられている値の定 義を<UCPTscheduleValue>プロパティとして選択する必要があ ります。データポイントの値は DataServerSet 関数を使用して定 義します。詳細については、4-15ページの「DataServerSet」を 参照してください。 また、イベントスケジューラに割り当てられているデータポイン トが、指定した値に更新される時刻を定義するローカル時間 (UCPTscheduleTime)も入力します。この時刻は 24 時間制の フォーマットで入力します。たとえば、15:30 は 3:30 PM を表し ます。 ここで、このセクションの始めにあるサンプルの<Data>パラメータ内の<DayBased>エレメ ントを考えてみてください。この曜日を基にしたスケジュールのセクションは、 <UCPTscheduleEffectivePeriod>プロパティに指定されている日付の範囲内の土曜日と日曜 日に有効になります。つまり毎週土曜日と日曜日の 3:40 AM に、イベントスケジューラに割 り当てられているデータポイントがすべて ON の値に更新されます。6:40 PM には、これら i.LON 100 Internet Server Programmer’s Reference 11-9 のデータポイントが OFF の値に更新されます。ここでは、更新するデータポイントに割り 当てられている優先度が 240∼255 の範囲にあることが前提となっています。 <DayBased> <UCPTindex></UCPTindex> <UCPTdescription>Weekend</UCPTdescription> <UCPTpriority>240</UCPTpriority> <UCPTweekdays>1,0,0,0,0,0,1</UCPTweekdays> <DayTimeVal> <UCPTindex></UCPTindex> <UCPTscheduleValue>ON</UCPTscheduleValue> <UCPTscheduleTime>03:40</UCPTscheduleTime> </DayTimeVal> <DayTimeVal> <UCPTindex></UCPTindex> <UCPTscheduleValue>OFF</UCPTscheduleValue> <UCPTscheduleTime>18:40</UCPTscheduleTime> </DayTimeVal> </DayBased> 11.2.1.2.2 日付を基にしたスケジュールの作成 表 58では、<DateBased>エレメント内に定義すべきプロパティを一覧表示し、各プロパ ティについて説明しています。 表58 プロパティ 日付を基にしたスケジュールのプロパティ 説明 <UCPTindex> 日付を基にしたスケジュールのインデックス番号。 <UCPTdescription> 日付を基にしたスケジュールに関するユーザ定義の説明。この説明は、 最高 228 文字までで指定します。 <UCPTpriority> スケジュールに割り当てられる優先度で、範囲は 0(最高優先度)∼255 (最低優先度)です。ここで選択する優先度は、イベントスケジューラ がデータポイントを更新しようとしたときにそのデータポイントに割り 当てられている優先度以上でなければなりません。そうでない場合に は、データポイントは更新されません。データポイントの優先度の詳細 については、2-8ページの「データポイント値と優先度」を参照してくだ さい。 <Exception> 日付を基にしたスケジュールの例外は、日付を基にしたスケジュールが アクティブになる日を指定します。例外は、<Exception>エレメントの一 覧によって示されます。各例外は、名前(UCPTexceptionName)で参 照する必要があります。 例外の名前と適用する日付は、イベントカレンダーアプリケーションで 例外を作成するときに定義します。この詳細については、12-1 ページの 「イベントカレンダー」を参照してください。 11-10 i.LON 100 Internet Server Programmer’s Reference プロパティ <DateTimeVal> 説明 日付を基にした 1 つのスケジュールには、最高 1024 の値の更新を設定で きます。各更新ポイントは、日付を基にしたスケジュールがアクティブ になる日に使用されます。更新は、<DateTimeVal>エレメントの一覧に よって示されます。 <DateTimeVal>エレメントには、値を入力するか、イベントスケジュー ラが更新するデータポイントの値として<UCPTscheduleValue>プロパ ティに割り当てられている値を選択する必要があります。データポイン トの値は DataServerSet 関数を使用して定義します。詳細については、 4-15ページの「DataServerSet」を参照してください。 また、イベントスケジューラに割り当てられているデータポイントが、 指定した値に更新される時刻を定義するローカル時間 (UCPTscheduleTime)も入力します。この時刻は 24 時間制のフォー マットで入力します。たとえば、15:40 は 3:40 PM を表します。 ここで、このセクションの始めにあるサンプルの<Data>パラメータ内の<DateBased>エレ メントを考えてみてください。この日付を基にしたスケジュールのセクションは、休日およ びクリスマスのカレンダー例外日に有効になります。これらの例外が適用される日の 3:40 AM に、この関数の対象となるデータポイントが BYPASS 値に更新されます。同様に 11:00 PM には、この関数の対象となるデータポイントが OFF 値に更新されます。ここでは、更新 するデータポイントに割り当てられている優先度が 112∼255 の範囲にあることが前提と なっています。 <DateBased0> <UCPTindex></UCPTindex> <UCPTpriority>112</UCPTpriority> <UCPTdescription>Exception</UCPTdescription> <Exception> <UCPTindex></UCPTindex> <UCPTexeptionName>Holiday</UCPTexeptionName> </Exception> <Exception> <UCPTindex></UCPTindex> <UCPTexeptionName>Christmas</UCPTexeptionName> </Exception> <DateTimeVal> <UCPTindex></UCPTindex> <UCPTscheduleValue>BYPASS</UCPTscheduleValue> <UCPTscheduleTime>03:40</UCPTscheduleTime> </DateTimeVal> <DateTimeVal1> <UCPTindex></UCPTindex> <UCPTscheduleValue>OFF</UCPTscheduleValue> <UCPTscheduleTime>23:00</UCPTscheduleTime> </DateTimeVal1> </DateBased> 11.2.1.3 EventSchedulerSet EventSchedulerSet 関数を使用すると、新しいイベントスケジューラを作成するか、既存の イベントスケジューラの構成を上書きすることができます。作成または上書きするイベント スケジューラは、<Data>パラメータ内の<Schedule>エレメントの一覧で指定します。各 <Schedule>エレメント内に含める必要のあるプロパティは、新しいイベントスケジューラを 作成する場合でも、既存のイベントスケジューラを変更する場合でも同じです。これらのプ ロパティの詳細については、前項の「EventSchedulerGet」を参照してください。 i.LON 100 Internet Server Programmer’s Reference 11-11 注:既存のイベントスケジューラを更新する場合、入力文字列に指定されていないオプショ ンのプロパティは消去されます。古い値は継承されないため、イベントスケジューラに書き 込みを行うときは、すべての値を変更しない場合でも、すべてのプロパティを指定する必要 があります。 EventSchedulerSet を使用してイベントスケジューラを作成または変更するときは、 EventSchedulerGet 関数の出力を利用して、<Data>パラメータを作成することができます。 こうすると、文字列全体を最初から作成する代わりに、新しい構成に一致するように各プロ パティの値を変更するだけで済みます。 1 つの i.LON 100 には最高 40 のイベントスケジューラを作成できます。 EventSchedulerSet 関数を呼び出すと、i.LON 100 の/root/config/software ディレクトリ内 に EventScheduler.XML ファイルが生成されます(ファイルがまだ存在しない場合)。 次の例では、NVL_nvoWeekend と NVL_nvoWeekday という 2 つのデータポイントを更新 するイベントスケジューラを作成します。これには曜日を基にしたスケジュールが 2 つ含ま れており、1 つは平日に適用され、もう 1 つは週末に適用されます。また、休日用に作成さ れたスケジュール例外を参照する、日付を基にしたスケジュールも含まれています。 <Data>パ ラメータ 11-12 <Data> <iLONEventScheduler> <Schedule> <UCPTindex>1</UCPTindex> <UCPTdescription>Event Scheduler For Office</UCPTdescription> <UCPTfbName>Scheduler- 1</UCPTfbName> <UCPTscheduleEffectivePeriod>0000-00-00,0000-0000</UCPTscheduleEffectivePeriod> <Point> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nvoWeekday</UCPTpointName> <SCPTdelayTime>0.0</SCPTdelayTime> </Point> <Point> <UCPTindex>1</UCPTindex> <UCPTpointName>NVL_nvoWeekend</UCPTpointName> <SCPTdelayTime>0.0</SCPTdelayTime> </Point> <DayBased> <UCPTindex>0</UCPTindex> <UCPTdescription>Weekday</UCPTdescription> <UCPTpriority>240</UCPTpriority> <UCPTweekdays>0,1,1,1,1,1,0</UCPTweekdays> <DayTimeVal> <UCPTindex>0</UCPTindex> <UCPTscheduleValue>WEEKDAY</UCPTscheduleValue> <UCPTscheduleTime>0:0</UCPTscheduleTime> </DayTimeVal> </DayBased> <DayBased> <UCPTindex>1</UCPTindex> <UCPTdescription>Weekend</UCPTdescription> <UCPTpriority>240</UCPTpriority> <UCPTweekdays>1,0,0,0,0,0,1</UCPTweekdays> <DayTimeVal> <UCPTindex>0</UCPTindex> <UCPTscheduleValue>100.0 1</UCPTscheduleValue> <UCPTscheduleTime>12:30</UCPTscheduleTime> </DayTimeVal> <DayTimeVal> <UCPTindex>1</UCPTindex> <UCPTscheduleValue>0.0 0</UCPTscheduleValue> <UCPTscheduleTime>10:30</UCPTscheduleTime> </DayTimeVal> i.LON 100 Internet Server Programmer’s Reference </DayBased> <DateBased> <UCPTindex>0</UCPTindex> <UCPTdescription>Holiday Exceptions</UCPTdescription> <UCPTpriority>25</UCPTpriority> <DateTimeVal> <UCPTindex>0</UCPTindex> <UCPTscheduleValue>OnValue</UCPTscheduleValue> <UCPTscheduleTime>14:00</UCPTscheduleTime> </DateTimeVal> <DateTimeVal> <UCPTindex>1</UCPTindex> <UCPTscheduleValue>OffValue</UCPTscheduleValue> <UCPTscheduleTime>15:30</UCPTscheduleTime> </DateTimeVal> <Exception> <UCPTindex>0</UCPTindex> <UCPTexceptionName>Holiday</UCPTexceptionName> </Exception> </DateBased> </Schedule> </iLONEventScheduler> <Data> <Result> パラメー タ <Result> <iLONEventScheduler> <Schedule> <UCPTindex>1</UCPTindex> </Schedule> </iLONEventScheduler </Result> i.LON 100 Internet Server Programmer’s Reference 11-13 11.2.1.4 EventSchedulerDelete EventSchedulerDelete 関数を使用すると、イベントスケジューラを削除することができま す。イベントスケジューラを削除するには、関数に渡す<Data>パラメータの中で削除したい イベントスケジューラをインデックス番号で参照します。EventSchedulerDelete の 1 回の 呼び出しで、複数のイベントスケジューラを削除することができます。 次の例では、2 つのイベントスケジューラを削除します。1 つは 0 のインデックス値を使用 し、もう 1 つは 1 のインデックス値を使用しています。 <Data>パラメータ パラメータ <Data> <iLONEventScheduler> <Schedule> <UCPTindex>0</UCPTindex> </Schedule> <Schedule> <UCPTindex>1</UCPTindex> </Schedule> </iLONEventScheduler> </Data> <Result>パラメータ パラメータ <Result> <iLONEventScheduler> <Schedule> <UCPTindex>0</UCPTindex> </Schedule> <Schedule> <UCPTindex>1</UCPTindex> </Schedule> </iLONEventScheduler> </Result> 11-14 i.LON 100 Internet Server Programmer’s Reference 12 イベントカレンダー イベントカレンダーアプリケーションを使用すると、あらかじめ例外ポイントを定義し、イ ベントスケジューラに対して日付を基にしたスケジュールを作成するときに参照することが できます。作成する例外ポイントは、1 つまたは複数の日付を表すことができます。イベン トスケジューラで例外を参照すると、その例外の日付に固有のスケジュールを割り当てるこ とができます。これは、祝日のときには別のスケジュールが必要になったり、季節によって 異なるスケジュールが必要になるイベントスケジューラを作成するときに役立ちます。 本章では、イベントカレンダーアプリケーションを使用して例外を作成する方法について説 明します。第12章「イベントカレンダー」では、イベントスケジューラを作成し、作成した 例外を参照する方法について説明します。 日付を基にした例外は、1 回限りの例外、または毎年繰り返される例外として作成できます。 i.LON 100 は、最高 256 までのスケジュール例外ポイントを含むアクティブなイベントカレ ンダーを 1 つだけサポートします。 イベントスケジューラが例外ポイントを参照すると、イベントカレンダーアプリケーション はNVL_nvoEcDateEventデータポイントを使用して、例外ポイントが参照している日付を ノードオブジェクトに渡します。イベントスケジューラは次に、ローカルのノードオブジェ クトからこの例外一覧を読み取ります。例外一覧の情報には、例外が有効になる時期と、例 外が繰り返される時期が含まれています。 (訳注:ノードオブジェクトとは、LonWorksデバイスが持つ機能ブロックのうち、デバイ ス全体の管理をする機能ブロックです。) 本章で説明する関数を使用して例外を変更すると、イベントカレンダー内の例外がすべて再 計算され、一連の更新としてNVL_nvoEcDateEventデータポイントにコピーされます。既定 では、イベントカレンダーのNVL_nvoEcDateEventデータポイントおよびノードオブジェク トのNVL_nviDateEventデータポイントは内部でバインドされているため、ネットワークト ラフィックは生成されません。したがって、イベントカレンダーからの更新は、ローカルの ノードオブジェクトに渡され、すべてのイベントスケジューラは、更新された例外一覧を ローカルノードオブジェクトから読み取ります。 このようにして、各イベントスケジューラは参照先の例外の定義を常に更新します。すべて の例外が再計算され、NVL_nvoEcDateEventデータポイントにコピーされるように強制する には、NVL_nviEcDateResyncデータポイント(外部バインドが作成されていない場合、こ れはノードオブジェクトのNVL_nvoDateResyncデータポイントに内部でバインドされま す)を"100.0 1"の値で更新します。 12.1 EventCalendar.XML EventCalendar.XML ファイルは、i.LON 100 に追加したイベントカレンダーの構成を格納 します。1 つの i.LON 100 に最高 256 の例外を含む複数のイベントカレンダーを作成できま すが、i.LON 100 は一度に 1 つのアクティブなイベントカレンダーのみサポートしています。 アクティブなイベントカレンダーは、0 のインデックス番号を使用する必要があります。 定義済みの各イベントカレンダーは、XML ファイル内では<Calendar>エレメントで示され ます。イベントカレンダーを作成するには、EventCalendarSet 関数を使用するか、手動で EventCalendar.XML ファイルを編集し、FTP を経由して i.LON 100 にダウンロードします。 イベントカレンダーを作成する際のガイドラインと手順については、サンプルの後の各項を 参照してください。 次のコード例は、Holiday、Easter、および Christmas という名前の 3 つの例外が定義され たイベントカレンダーを持つ i.LON 100 の EventCalendar.XML サンプルファイルを表して います。 i.LON 100 Internet Server Programmer’s Reference 12-1 <?xml version="1.0" ?> <iLONEventCalendar> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <Calendar> <UCPTindex>0</UCPTindex> <UCPTlastUpdate>2002-06-26T10:44:27Z</UCPTlastUpdate> <UCPTdescription>Floor</UCPTdescription> <UCPTfbName>Calendar 1</UCPTfbName> <UCPTscheduleEffectivePeriod>0000-00-00,0000-0000</UCPTscheduleEffectivePeriod> <Exceptions> <UCPTindex>0</UCPTindex> <UCPTexceptionName>Holiday</UCPTexceptionName> <UCPTtemporary>0</UCPTtemporary> <UCPTexceptionSchedule>0000-04-07,0000-0607,MN_NUL,DY_NUL<UCPTexceptionSchedule> </Exceptions> <Exceptions> <UCPTindex>0</UCPTindex> <UCPTexceptionName>Christmas</UCPTexceptionName> <UCPTtemporary>0</UCPTtemporary> <UCPTexceptionSchedule>0000-24-12,0000-2512,MN_NUL,DY_NUL<UCPTexceptionSchedule> </Exceptions> <Exceptions> <UCPTindex>0</UCPTindex> <UCPTexceptionName>Easter</UCPTexceptionName> <UCPTtemporary>0</UCPTtemporary> <UCPTexceptionSchedule>0000-4-11,0000-412,MN_NUL,DY_NUL<UCPTexceptionSchedule> </Exceptions> </Calendar> </iLONEventCalendar> 12.2 EventCalendar.XML ファイルの作成と変更 EventCalendar.XML ファイルは、EventCalendarSet SOAP 関数を使用して作成および変 更します。次の「イベントカレンダーの SOAP インタフェース」では、EventCalendarSet、 およびイベントカレンダーアプリケーションに付属の各種 SOAP 関数について説明します。 XML エディタを使用して EventCalendar.XML ファイルを手動で作成および変更し、FTP を経由して i.LON 100 にダウンロードすることもできます。ただし、Echelon 社ではこの方 法は奨励していません。ダウンロードしたファイルの構成を読み取るには、i.LON 100 を再 起動する必要があるためです。また、i.LON 100 は XML ファイルに書き込みを行う前に、 受信したすべての SOAP メッセージのエラーチェックを実行しますが、FTP を経由してダウ ンロードされた XML ファイルのエラーチェックは実行しないため、アプリケーションが正 しく起動しない場合があります。 EventCalendar.XML ファイルを手動で作成する場合は、まずこの章の残りの部分をお読み ください。ここでは、イベントカレンダーの構成を定義する XML ファイル内のエレメント とプロパティについて説明しています。XML ファイルを手動で作成または変更する方法に ついては、17-1ページの「XML 構成ファイルの手動変更」を参照してください。 12-2 i.LON 100 Internet Server Programmer’s Reference 12.2.1 イベントカレンダーの SOAP インタフェース イベントカレンダーアプリケーションの SOAP インタフェースには、4 つの関数が含まれて います。表 59ではこれらの関数を一覧表示し、各関数について説明しています。これらの関 数の詳細については、表 59の後に続く各項を参照してください。 表 59 イベントカレンダーの SOAP インタフェース 関数 説明 EventCalendarList i.LON 100 に追加したイベントカレンダーの一覧を取得します。詳細 については、12-3ページの「EventCalendarList」を参照してくださ い。 EventCalendarGet i.LON 100 に追加したイベントカレンダーの構成を取得します。詳細 については、12-4ページの「EventCalendarGet」を参照してくださ い。 EventCalendarSet イベントカレンダーを作成するか、既存のイベントカレンダーの構成 を上書きします。詳細については、12-10ページの 「EventCalendarSet」を参照してください。 EventCalendarDelete イベントカレンダーを削除します。詳細については、12-11ページの 「EventCalendarDelete」を参照してください。 12.2.1.1 EventCalendarList EventCalendarList 関数を使用すると、i.LON 100 に追加したイベントカレンダーの一覧を 取得することができます。EventCalendarList 関数は<Data>パラメータとして空の文字列 を受け入れます。 この関数は、イベントカレンダーアプリケーションが使用しているファームウェアのバージ ョン番号(主および副)を<Result>パラメータ内に返します。<Result>パラメータには、 i.LON 100 に追加した各イベントカレンダーの<Calendar>エレメントも含まれます。次の 「EventCalendarGet」で、<Calendar>エレメントに含まれるプロパティについて説明しま す。 この関数が返す<Calendar>エレメントの一覧は、EventCalendarGet 関数の入力として使用 できます。EventCalendarGet 関数は、<Calendar>エレメントに含まれている各イベントカ レンダーの構成を返します。 <Data>パラ メータ 文字列なし <Result>パラ メータ <Result> <iLONEventCalendar> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <Calendar> <UCPTindex>0</UCPTindex> <UCPTlastUpdate>2002-06-26T10:38:48Z</UCPTlastUpdate> <UCPTdescription>Floor</UCPTdescription> <UCPTfbName>Calendar- 1</UCPTfbName> </Calendar> </iLONEventCalendar> </Result> i.LON 100 Internet Server Programmer’s Reference 12-3 12.2.1.2 EventCalendarGet EventCalendarGet 関数を使用すると、i.LON 100 に追加したイベントカレンダーの構成を 取得することができます。構成情報を取得したいイベントカレンダーは、関数に渡す<Data> パラメータ内でインデックス番号を指定する必要があります。 <Data> パラメー タ <Data> <iLONCalendar> <Calendar> <UCPTindex>0</UCPTindex> </Calendar> </iLONCalendar> </Data> <Result> パラメー タ <Result> <iLONEventCalendar> <Calendar> <UCPTindex>0</UCPTindex> <UCPTlastUpdate>2001-06-21T20:53:21Z</UCPTlastUpdate> <UCPTdescription>Floor</UCPTdescription> <UCPTfbName>Calendar 1</UCPTfbName> <UCPTscheduleEffectivePeriod>00-00-00,00-0000</UCPTscheduleEffectivePeriod> <Exceptions> <UCPTindex>0</UCPTindex> <UCPTexceptionName>Easter</UCPTexceptionName> <UCPTtemporary>0</UCPTtemporary> <UCPTexceptionSchedule>00-04-11,00-0412,MN_NUL,DY_NUL</UCPTexceptionSchedule> </Exceptions> </Calendar> </iLONEventCalendar> </Result> EventCalendarGet 関数は、関数に渡した<Data>パラメータで参照したイベントカレンダー の<Calendar>エレメントを返します。<Calendar>エレメントに含まれているプロパティは、 イベントカレンダーの作成時に最初に定義されます。このプロパティに書き込みを行うには、 EventCalendarSet 関数を使用します。表 60では、これらのプロパティについて説明してい ます。 表 60 プロパティ <UCPTindex> EventCalendarGet の出力プロパティ 説明 イベントカレンダーに割り当てられるインデックス番号は、 -32,768∼32,767 の範囲に収めます。EventCalendarSet 関数 を使用すると、新しいイベントカレンダーを作成するか、既存 のイベントカレンダーを変更することができます。 EventCalendarSet に渡す<Data>パラメータの中でインデッ クス番号を指定しない場合は、使用可能な最初のインデックス 番号で新しいイベントカレンダーが作成されます。 既に使用中のインデックス番号を指定した場合は、そのイン デックス番号を使用しているイベントカレンダーの構成が、 <Data>パラメータに定義されている設定で上書きされます。 注:i.LON 100 は、一度に 1 つのアクティブなイベントカレン ダーのみをサポートしています。アクティブなイベントカレン ダーは、0 のインデックス番号を使用する必要があります。 12-4 i.LON 100 Internet Server Programmer’s Reference プロパティ <UCPTlastUpdate> 説明 イベントカレンダーの構成が最後に更新された時刻を示すタイ ムスタンプ。このタイムスタンプは、次のフォーマットを使用 します。 YYYY-MM-DDTHH:MM:SSZ タイムスタンプの最初のセグメント(YYYY-MM-DD)は、イ ベントカレンダーの構成が最後に更新された日を表します。2 番目のセグメント(THH:MM:SS)は、イベントカレンダー の構成が最後に更新された日の時刻を協定世界時(UTC)で 表します。 UTC は、以前はグリニッジ標準時(GMT)と一般的に呼ばれ ていたものを示す現在の用語です。0 時間の UTC は、ゼロ度 の経線上にあるイギリスのグリニッジにおける深夜 0 時を表し ます。協定世界時は 24 時間制に基づいているため、4 pm な どの午後の時間は 16:00 UTC と表されます。タイムスタンプ に追加される Z は、それが UTC 単位であることを示します。 <UCPTdescription> イベントカレンダーの説明。これは、最高 228 文字で指定で きます。 <UCPTfbName> LONMAKER でアラームノーティファイアに割り当てられた機 能ブロック名。このプロパティに書き込みを行うことはできま すが、i.LON 100 構成ソフトウェアを使用してアラームノー ティファイアを表示するたびに、このプロパティは LONMAKER で定義されている機能ブロック名にリセットされ ます。 <UCPTexceptionSchedule> このプロパティは、イベントカレンダーが有効になる日付を定 義します。このプロパティは次のフォーマットを使用して指定 する必要があります。 YYYY-MM-DD,YYYY-MM-DD 最初の日付は開始日を表し、2 番目の日付は終了日を表しま す。開始日が定義されていない場合(0000-00-00)は、終了 日までの任意の日付を意味します。たとえば 0000-00-00,1212-2003 は、2003 年 12 月 12 日までの毎日になります。 終了日が定義されていない場合(0000-00-00)は、開始日以 降の任意の日を意味します。たとえば 12-12-2003,0000-00-00 は、2003 年 12 月 12 日以降の任意の日になります。 既定ではどちらも定義されていません。この場合、イベントカ レンダーは常にアクティブであることを意味します。 0000-00-00,0000-00-00 注:イベントカレンダーを SOAP/XML インタフェースで作成 した後に、i.LON 100 構成ソフトウェアを使用してその構成を 変更した場合、1970 年 1 月 1 日より前の入力日付は 1970 年 1 月 1 日にリセットされます。2037 年 12 月 31 日より後の入力 日付は 2037 年 12 月 31 日にリセットされます。 i.LON 100 Internet Server Programmer’s Reference 12-5 プロパティ 説明 <Exceptions> イベントカレンダーが適用する日付は、例外ポイントを作成す ることで指定できます。イベントカレンダーに作成されている 例外ポイントは、<Exceptions>エレメントのグループで示さ れます。1 つのカレンダーには最高 256 の例外を作成できま す。 各<Exceptions>エレメント内に定義する必要のあるプロパ ティの構成方法については、次の「例外ポイントの作成」の項 を参照してください。 12.2.1.2.1 例外ポイントの作成 イベントカレンダーの例外ポイントは、<Exceptions>エレメントで定義されます。表 61で は、<Exceptions>エレメント内に定義する必要のあるプロパティについて説明しています。 表 61 例外ポイントのプロパティ プロパティ 説明 <UCPTexceptionName> 例外ポイント名。最高 27 文字までで指定できます。これを使 用して、イベントスケジューラアプリケーションから例外ポイ ントを参照します。 <UCPTtemporary> 0 または 1 のどちらか。0 の場合、この例外は毎年繰り返され ます。1 の場合、これは一時的な例外になります。この場合、 例外は最初に参照された後、イベントカレンダーおよび例外を 参照しているすべてのイベントスケジューラから削除されま す。 <UCPTexceptionSchedule> イベントカレンダーがアクティブになる日付を定義し、次の フォーマットを使用します。 YYYY-MM-DD, YYYY-MM-DD, DAY_T, MONTH_T 最初の日付は、例外期間が始まる日付を表します。2 番目の日 付は、例外期間が終了する日付を表します。繰り返しのイベン トを設定するには、これらの期間の年、月、または日を 0 に設 定します。 ここで入力する日付は、UCPTexceptionSchedule プロパティ に定義されているイベントスケジューラの有効期間内である必 要があります。 注:イベントカレンダーを SOAP/XML インタフェースを使用 して作成した後に、i.LON 100 構成ソフトウェアを使用してそ の構成を変更した場合、1970 年 1 月 1 日より前の入力日付は 1970 年 1 月 1 日にリセットされます。2037 年 12 月 31 日よ り後の入力日付は、2037 年 12 月 31 日にリセットされます。 DAY_T は、この期間中に例外が有効になる日を指定するため の識別子です。たとえば、2 日おき、3 日おきなどを指定でき ます。表 62では、DAY_T フィールドに使用できる識別子を一 覧表示し、各識別子について説明しています。 MONTH_T は、この期間中に例外が有効になる月を指定する ための識別子です。表 63では、MONTH_T フィールドに使用 できる識別子を一覧表示し、各識別子について説明していま 12-6 i.LON 100 Internet Server Programmer’s Reference す。これらの表の後には、<UCPTexceptionSchedule>プロパ ティを指定した文字列の例を示します。 表 62では、<UCPTexceptionSchedule>プロパティの DAY_T フィールドを指定するための 識別子を一覧表示し、各識別子について説明しています。例外ポイントは、このプロパティ によって指定された日にアクティブになります。 注:SOAP/XML インタフェースでイベントカレンダーを作成した後に、i.LON 100 構成ソフ トウェアを使用してその構成を変更する場合、イベントカレンダーは DY_LAST_SECOND_DAY 識別子を使用するよう、構成ソフトウェアによって自動的にリ セットされます。 表 62 DAY_T の識別子 識別子 説明 DY_LAST_DAY_OF_MONTH 月の最後の日 DY_LAST_SECOND_DAY 月の最後から 2 番目の日 DY_LAST_THIRD_DAY 月の最後から 3 番目の日 注:DY_LAST_XXX_DAY フォーマットを使用する識別子は他にも多数あります。XXX は、例 外を使用する日を指定した整数を表し、4∼30 の範囲になります。たとえば、 DY_LAST_20_DAY という識別子を入力すると、例外が適用される各月の 20 日から最後の日ま でに例外を発生させることができます。 DY_LAST_30_DAY 月の 30 日から最後の日まで DY_FIRST_SUN 各月の第 1 日曜日 DY_FIRST_MON 各月の第 1 月曜日 DY_FIRST_TUES 各月の第 1 火曜日 DY_FIRST_WED 各月の第 1 水曜日 DY_FIRST_THURS 各月の第 1 木曜日 DY_FIRST_FRI 各月の第 1 金曜日 DY_FIRST_SAT 各月の第 1 土曜日 DY_SECOND_SUN 各月の第 2 日曜日 DY_SECOND_MON 各月の第 2 月曜日 DY_SECOND_TUES 各月の第 2 火曜日 DY_SECOND_WED 各月の第 2 水曜日 DY_SECOND_THURS 各月の第 2 木曜日 DY_SECOND_FRI 各月の第 2 金曜日 DY_SECOND_SAT 各月の第 2 土曜日 DY_THIRD_SUN 各月の第 3 日曜日 DY_THIRD_MON 各月の第 3 月曜日 DY_THIRD_TUES 各月の第 3 火曜日 DY_THIRD_WED 各月の第 3 水曜日 DY_THIRD_THURS 各月の第 3 木曜日 i.LON 100 Internet Server Programmer’s Reference 12-7 識別子 説明 DY_THIRD_FRI 各月の第 3 金曜日 DY_THIRD_SAT 各月の第 3 土曜日 DY_FOURTH_SUN 各月の第 4 日曜日 DY_FOURTH_MON 各月の第 4 月曜日 DY_FOURTH_TUES 各月の第 4 火曜日 DY_FOURTH_WED 各月の第 4 水曜日 DY_FOURTH_THURS 各月の第 4 木曜日 DY_FOURTH_FRI 各月の第 4 金曜日 DY_FOURTH_SAT 各月の第 4 土曜日 DY _FIFTH_SUN 各月の第 5 日曜日 DY_FIFTH_MON 各月の第 5 月曜日 DY_FIFTH_TUES 各月の第 5 火曜日 DY_FIFTH_WED 各月の第 5 水曜日 DY_FIFTH_THURS 各月の第 5 木曜日 DY_FIFTH_FRI 各月の第 5 金曜日 DY_FIFTH_SAT 各月の第 5 土曜日 DY_LAST_SUN 各月の最終日曜日 DY_LAST_MON 各月の最終月曜日 DY_LAST_TUES 各月の最終火曜日 DY_LAST_WED 各月の最終水曜日 DY_LAST_THURS 各月の最終木曜日 DY_LAST_FRI 各月の最終金曜日 DY_LAST_SAT 各月の最終土曜日 DY_EVERY_SUN 日付の期間内の毎日曜日 DY_EVERY_MON 日付の期間内の毎月曜日 DY_EVERY_TUES 日付の期間内の毎火曜日 DY_EVERY_WED 日付の期間内の毎水曜日 DY_EVERY_THURS 日付の期間内の毎木曜日 DY_EVERY_FRI 日付の期間内の毎金曜日 DY_EVERY_SAT 日付の期間内の毎土曜日 DY_EVERY_SECOND_DAY 日付の期間内で 1 日おき DY_EVERY_THIRD_DAY 日付の期間内で 2 日おき DY_EVERY_FOURTH_DAY 日付の期間内で 3 日おき DY_EVERY_FIFTH_DAY 日付の期間内で 4 日おき 12-8 i.LON 100 Internet Server Programmer’s Reference 識別子 説明 DY_EVERY_SIXTH_DAY 日付の期間内で 5 日おき DY_NUL 値使用不可 表 63では、<UCPTexceptionSchedule>プロパティの MONTH_T フィールドを指定するた めの識別子を一覧表示し、各識別子について説明しています。カレンダーは、このプロパ ティに指定されている月の間にアクティブになります。 表 63 MONTH_T の識別子 識別子 説明 MN_JAN 1月 MN_FEB 2月 MN_MAR 3月 MN_APR 4月 MN_MAY 5月 MN_JUN 6月 MN_JUL 7月 MN_AUG 8月 MN_SEP 9月 MN_OCT 10 月 MN_NOV 11 月 MN_DEC 12 月 MN_EVERY_MONTH イベントカレンダーがアクティブになる期間中毎月 MN_EVERY_2_MONTHS イベントカレンダーがアクティブになる期間中 1 か月おき MN_QUARTERLY イベントカレンダーがアクティブになる期間中 2 か月おき MN_EVERY_4_MONTHS イベントカレンダーがアクティブになる期間中 3 か月おき MN_EVERY_5_MONTHS イベントカレンダーがアクティブになる期間中 4 か月おき MN_EVERY_6_MONTHS イベントカレンダーがアクティブになる期間中 5 か月おき MN_EVERY_7_MONTHS イベントカレンダーがアクティブになる期間中 6 か月おき MN_EVERY_8_MONTHS イベントカレンダーがアクティブになる期間中 7 か月おき MN_EVERY_9_MONTHS イベントカレンダーがアクティブになる期間中 8 か月おき MN_EVERY_10_MONTHS イベントカレンダーがアクティブになる期間中 9 か月おき MN_EVERY_11_MONTHS イベントカレンダーがアクティブになる期間中 10 か月おき MN_NUL 値使用不可。これを選択した場合、イベントカレンダーは 毎月使用されます。 次の文字列では、2000 年 2 月 28 日∼2000 年 3 月 5 日までの間に毎日発生する例外が設定 されます。 i.LON 100 Internet Server Programmer’s Reference 12-9 2000-02-28,2000-03-05,DY_NUL,MN_NUL 次の文字列では、2000 年 2 月 28 日∼2000 年 3 月 5 日までの間、1 日おきに発生する例外が 設定されます。 2000-02-28,2000-03-05,DY_EVERY_SECOND,MN_NUL 次の文字列では、2000 年 2 月 26 日∼2002 年 4 月 29 日までの間、毎月最終土曜日に発生す る例外が設定されます。 2000-02-26,2002-04-29,DY_LAST_SAT,MN_NUL 次の文字列では、2000 年 1 月 1 日∼2001 年 12 月 31 日までの間、9 か月おきに有効になる 例外が設定されます。つまり、例外は 2000 年 10 月と 2001 年 8 月に毎日発生します。 2000-01-01,2001-12-31,DY_NUL,MN_EVERY_10_MONTH 12.2.1.3 EventCalendarSet EventCalendarSet 関数を使用すると、新しいイベントカレンダーを作成するか、既存のイ ベントカレンダーの構成を上書きすることができます。 関数が作成または上書きするイベントカレンダーは、<Data>パラメータ内の<Calendar>エ レメントの一覧で指定します。各<Calendar>エレメント内に定義する必要のあるプロパティ は、新しいイベントカレンダーを作成する場合も、既存のイベントカレンダーを変更する場 合でも同じです。これらのプロパティの詳細については、前項の「EventCalendarGet」を 参照してください。 注:既存のイベントカレンダーを変更する場合、入力文字列に指定されていないオプション のプロパティは消去されます。古い値は継承されないため、イベントカレンダーに書き込み を行うときは、すべての値を変更しない場合にも、すべてのプロパティを指定する必要があ ります。 1 つの i.LON 100 には複数のイベントカレンダーを作成できます。ただし、i.LON 100 がサ ポートできるアクティブなイベントカレンダーは一度に 1 つのみです。0 のインデックス番 号が割り当てられているイベントカレンダーが、アクティブなイベントカレンダーになりま す。 EventCalendarSet を使用してイベントカレンダーを作成または変更するときは、 EventCalendarGet 関数の出力を基にして<Data>パラメータを指定すると便利です。こうす ると、文字列全体を再作成する代わりに、新しい構成に一致するように各プロパティの値を 変更するだけで済みます。 EventCalendarSet 関数を呼び出すと、i.LON 100 の/root/config/software ディレクトリに EventCalendar.XML ファイルが生成されます(ファイルがまだ存在しない場合)。 次の EventCalendarSet 関数の呼び出し例では、4 月 11 日と 4 月 12 日の 2 つの繰り返し例 外日を持つイベントカレンダーが作成されます。 12-10 i.LON 100 Internet Server Programmer’s Reference <Data>パ ラメータ <Data> <iLONEventCalendar> <Calendar> <UCPTindex>0</UCPTindex> <UCPTdescription>Floor</UCPTdescription> <UCPTfbName>Calendar 1</UCPTfbName> <Exceptions> <UCPTexceptionName>Easter</UCPTexceptionName> <UCPTtemporary>0</UCPTtemporary> <UCPTexceptionSchedule>0000-04-11,0000-0412,MN_NUL,DY_NUL</UCPTexceptionSchedule> </Exceptions> </Calendar> </iLONEventCalendar> </Data> <Result> パラメー タ <Result> <iLONEventCalendar> <Calendar> <UCPTindex>0</UCPTindex> </Calendar> </iLONEventCalendar> </Result> 12.2.1.4 EventCalendarDelete EventCalendarDelete 関数を使用すると、イベントカレンダーを削除することができます。 イベントカレンダーを削除するには、関数に渡す<Data>パラメータの中で削除したいイベン トカレンダーをインデックス番号で参照します。 <Data>パラメータ <Data> <iLONCalendar> <Calendar> <UCPTindex>0</UCPTindex> </Calendar> </iLONCalendar> </Data> <Result>パラメー タ <Result> <iLONEventCalendar> <Calendar> <UCPTindex>0</UCPTindex> </Calendar> </iLONEventCalendar> </Result> i.LON 100 Internet Server Programmer’s Reference 12-11 13 型変換機能 型変換機能を使用すると、データポイントを 1 つのネットワーク変数型から別の型に変換す ることができます。これは、互いに互換性のない型を使用している複数のベンダのデータポ イントを比較するときに役立ちます。 型変換機能を作成するときは、型変換ルールを選択します。型変換ルールは、型変換機能が 入力として使用するデータポイントのネットワーク変数型と、これらのデータポイントの変 換先のネットワーク変数型を定義します。型変換ルールは、倍率、構造内の列挙値やフィー ルドを扱うためのケース構造、出力データポイントに割り当てる値を決定するためのオフ セットを定義します。 i.LON 100 ソフトウェアには、定義済みの型変換ルールが 9 つ用意されています。各ルール については本章で詳しく後述します。オフセットや倍率を必要としない、1 つのスカラー型 から別の型へのデータの変換や、同じフォーマットの記述を使用している型間の変換の場合、 型変換ルールを使用せずに変換を実行することも可能です。 型変換機能を使用すると、複数の入力データポイントを 1 つの出力データポイント型に変換 することも、1 つの入力データポイントを、異なる型を使用している複数の出力データポイ ントに変換することもできます。 TypeTranslatorRule の SOAP 関数を使用すると、オプションで独自の型変換ルールを作成 したり、i.LON 100 ソフトウェアに付属の型変換ルールを変更することができます。型変換 ルールの作成、または i.LON 100 ソフトウェアに付属の型変換ルールの変更の詳細について は、14-1ページの「型変換ルール」を参照してください。 ユーザは、1 つ以上の入力データポイントと、1 つ以上の出力データポイントを指定します。 各データポイントのネットワーク変数型は、選択した型変換ルールによって異なります。入 力データポイントのいずれかが更新されると、型変換機能によって入力データポイントの値 が読み取られ、読み取った値および選択した型変換ルールに基づいて、新しい値が出力デー タポイントに割り当てられます。 13.1 TypeTranslator.XML TypeTranslator.XML ファイルは、i.LON 100 に追加したすべての型変換機能の構成を格納 します。 定義済みの各型変換機能は、XML ファイル内で<TypeTranslator>エレメントによって示さ れます。型変換機能を追加で作成するには、TypeTranslatorSet 関数を使用するか、手動で XML ファイルを編集し、FTP を経由して i.LON 100 にダウンロードします。型変換機能を 追加で作成する際のガイドラインと手順については、サンプルの後の各項を参考にしてくだ さい。 次のコード例は、3 つの型変換機能が定義されている i.LON 100 の TypeTranslator.XML サ ンプルファイルを表したものです。 i.LON 100 Internet Server Programmer’s Reference 13-1 <?xml version="1.0" ?> <iLONTypeTranslator> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <TypeTranslator> <UCPTindex>1</UCPTindex> <UCPTlastUpdate>2002-05-14T12:42:54Z</UCPTlastUpdate> <UCPTdescription>Translator For SNVT_Lev_Disc</UCPTdescription> <UCPTfbName>Type Translator- 1</UCPTfbName> <UCPTtranslatorRule>SNVT_lev_disc_TO_SNVT_switch</UCPTtranslatorRule> <SCPTdelayTime>0.0</SCPTdelayTime> <InDataPoint> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nviTransLevDisc</UCPTpointName> </InDataPoint> <OutDataPoint> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nvoTransSwitch</UCPTpointName> </OutDataPoint> </TypeTranslator> <TypeTranslator> <UCPTindex>2</UCPTindex> <UCPTlastUpdate>2002-05-29T04:27:43Z</UCPTlastUpdate> <UCPTdescription></UCPTdescription> <UCPTfbName>Type Translator- 2</UCPTfbName> <UCPTtranslatorRule /> <SCPTdelayTime>0.0</SCPTdelayTime> <InDataPoint> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nviTransTemp_f</UCPTpointName> </InDataPoint> <OutDataPoint> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nvoTransTemp_p</UCPTpointName> </OutDataPoint> </TypeTranslator> <TypeTranslator> <UCPTindex>3</UCPTindex> <UCPTlastUpdate>2002-05-14T12:42:54Z</UCPTlastUpdate> <UCPTdescription></UCPTdescription> <UCPTfbName>Type Translator- 3</UCPTfbName> <UCPTtranslatorRule></UCPTtranslatorRule> <SCPTdelayTime>0.0</SCPTdelayTime> <InDataPoint> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nviTransTemp_p</UCPTpointName> </InDataPoint> <OutDataPoint> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nvoTransTemp_f</UCPTpointName> </OutDataPoint> </TypeTranslator> </iLONTypeTranslator> 13-2 i.LON 100 Internet Server Programmer’s Reference 13.2 TypeTranslator.XML ファイルの作成と変更 TypeTranslator.XML ファイルは、TypeTranslatorSet SOAP 関数を使用して作成および変 更します。次の「型変換機能の SOAP インタフェース」では、TypeTranslatorSet、および 型変換アプリケーションに付属の各種 SOAP 関数について説明します。 XML エディタを使用して TypeTranslator.XML ファイルを手動で作成および変更し、FTP を経由して i.LON 100 にダウンロードすることもできます。ただし、Echelon 社ではこの方 法は奨励していません。ダウンロードしたファイルの構成を読み取るには、i.LON 100 を再 起動する必要があるためです。また、i.LON 100 は XML ファイルに書き込みを行う前に、 受信したすべての SOAP メッセージのエラーチェックを実行しますが、FTP を経由してダウ ンロードされた XML ファイルのエラーチェックは実行しないため、アプリケーションが正 しく起動しない場合があります。 TypeTranslator.XML ファイルを手動で作成する場合は、まずこの章の残りの部分をお読み ください。ここでは、型変換機能を定義する XML ファイル内のエレメントとプロパティに ついて説明しています。XML ファイルを手動で作成または変更する方法については、17-1 ページの「XML 構成ファイルの手動変更」を参照してください。 13.2.1 型変換機能の SOAP インタフェース 型変換機能アプリケーション用の SOAP インタフェースには、4 つの関数が含まれています。 表 64では、これらの関数を一覧表示し、各関数について説明しています。詳細については、 表 64の後に続く各項を参照してください。 表 64 型変換機能の SOAP 関数 関数 説明 TypeTranslatorList i.LON 100 に追加した型変換機能の一覧を取得します。詳細につい ては、13-3ページの「TypeTranslatorList」を参照してください。 TypeTranslatorGet i.LON 100 に追加した型変換機能の構成を取得します。詳細につい ては、13-4ページの「TypeTranslatorGet」を参照してください。 TypeTranslatorSet 型変換機能を作成するか、既存の型変換機能を変更します。詳細に ついては、13-11ページの「TypeTranslatorSet」を参照してくださ い。 TypeTranslatorDelete 型変換機能を削除します。詳細については、13-12ページの 「TypeTranslatorDelete」を参照してください。 13.2.1.1 TypeTranslatorList TypeTranslatorList 関数を使用すると、i.LON 100 に追加した型変換機能の一覧を取得する ことができます。TypeTranslatorList 関数は<Data>パラメータとして空の文字列を受け入 れます。 この関数は、型変換アプリケーションが使用しているファームウェアのバージョン番号(主 および副)を<Result>パラメータ内に返します。<Result>パラメータには、i.LON 100 に追 加した各型変換機能の<TypeTranslator>エレメントも含まれます。次の 「TypeTranslatorGet」の項で、<TypeTranslator>エレメントに含まれるプロパティについ て説明します。 この関数が返す<TypeTranslator>エレメントの一覧は、TypeTranslatorGet 関数の入力と して使用できます。TypeTranslatorGet 関数は、<TypeTranslator>エレメントに含まれて いる各型変換機能の構成を返します。 i.LON 100 Internet Server Programmer’s Reference 13-3 <Data>パラ メータ 文字列なし <Result>パ ラメータ <Result> <iLONTypeTranslator> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <TypeTranslator> <UCPTindex>0</UCPTindex> <UCPTlastUpdate>2002-05-15T09:29:20Z</UCPTlastUpdate> <UCPTdescription>Digital</UCPTdescription> <UCPTfbName>Type Translator- 0</UCPTfbName> </TypeTranslator> <TypeTranslator> <UCPTindex>1</UCPTindex> <UCPTlastUpdate>2002-05-14T12:42:54Z</UCPTlastUpdate> <UCPTdescription>Temperature</UCPTdescription> <UCPTfbName>Type Translator- 1</UCPTfbName> </TypeTranslator> <TypeTranslator> <UCPTindex>2</UCPTindex> <UCPTlastUpdate>2002-05-29T04:27:43Z</UCPTlastUpdate> <UCPTdescription>Energy</UCPTdescription> <UCPTfbName>Type Translator- 2</UCPTfbName> </TypeTranslator> <TypeTranslator> <UCPTindex>3</UCPTindex> <UCPTlastUpdate>2002-05-14T12:42:54Z</UCPTlastUpdate> <UCPTdescription>Lighting</UCPTdescription> <UCPTfbName>Type Translator- 3</UCPTfbName> </TypeTranslator> </iLONTypeTranslator> </Result> 13.2.1.2 TypeTranslatorGet TypeTranslatorGet 関数を使用すると、i.LON 100 に追加した型変換機能の構成を取得する ことができます。構成情報を取得したい型変換機能は、関数に渡す<Data>パラメータ内でイ ンデックス番号を指定する必要があります。 <Data>パ ラメータ 13-4 <Data> <iLONTypeTranslator> <TypeTranslator> <UCPTindex>0</UCPTindex> </TypeTranslator> </iLONTypeTranslator> </Data> i.LON 100 Internet Server Programmer’s Reference <Result> パラメー タ <Result> <iLONTypeTranslator> <TypeTranslator> <UCPTindex>0</UCPTindex> <UCPTlastUpdate>2002-05-15T09:29:20Z</UCPTlastUpdate> <UCPTdescription>Translator For Two TimeStamp</UCPTdescription> <UCPTfbName>Type Translator- 0</UCPTfbName> <UCPTtranslatorRule>2xTimeStamp_to_TimeStamp</UCPTtranslatorRul e> <SCPTdelayTime>67.0</SCPTdelayTime> <InDataPoint> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nviSchedTimeSet</UCPTpointName> </InDataPoint> <InDataPoint> <UCPTindex>1</UCPTindex> <UCPTpointName>NVL_nviRtTimeDate</UCPTpointName> </InDataPoint> <OutDataPoint> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nvoTimeSet1</UCPTpointName> </OutDataPoint> </TypeTranslator> </iLONTypeTranslator> </Result> TypeTranslatorGet 関数は、関数に渡した<Data>パラメータで参照した各型変換機能の <TypeTranslator>エレメントを返します。<TypeTranslator>エレメントに含まれているプ ロパティは、型変換機能の作成時に最初に定義されます。このプロパティに書き込みを行う には、TypeTranslatorSet 関数を使用します。表 65では、これらのプロパティについて説明 しています。 表 65 TypeTranslatorGet の出力プロパティ プロパティ <UCPTindex> 説明 型変換機能に割り当てられるインデックス番号は、–32,768∼ 32,767 の範囲に収めます。TypeTranslatorSet 関数を使用する と、新しい型変換機能を作成するか、既存の型変換機能を変更す ることができます。TypeTranslatorSet に渡す<Data>パラメータ の中でインデックス番号を指定しない場合は、使用可能な最初の インデックス番号で新しい型変換機能が作成されます。 既に使用中のインデックス番号を指定した場合は、そのインデッ クス番号を使用している型変換機能の構成が、<Data>パラメータ に定義されている設定で上書きされます。 i.LON 100 Internet Server Programmer’s Reference 13-5 プロパティ <UCPTlastUpdate> 説明 型変換機能の構成が最後に更新された時刻を示すタイムスタン プ。このタイムスタンプは、次のフォーマットを使用します。 YYYY-MM-DDTHH:MM:SSZ タイムスタンプの最初のセグメント(YYYY-MM-DD)は、型変 換機能の構成が最後に更新された日を表します。2 番目のセグメ ント(THH:MM:SS)は、型変換機能の構成が最後に更新された 日の時刻を協定世界時(UTC)で表します。 UTC は、以前はグリニッジ標準時(GMT)と一般的に呼ばれて いたものを示す現在の用語です。0 時間の UTC は、ゼロ度の経線 上にあるイギリスのグリニッジにおける深夜 0 時を表します。協 定世界時は 24 時間制に基づいているため、4 pm などの午後の時 間は 16:00 UTC と表されます。タイムスタンプに追加される Z は、それが UTC 単位であることを示します。 <UCPTdescription> 型変換機能に関するユーザ定義の説明。この長さは最大 228 文字 です。 <UCPTfbName> LONMAKER 内で型変換機能に割り当てられた機能ブロック名。こ のプロパティに書き込みを行うことはできますが、i.LON 100 構 成ソフトウェアを使用して型変換機能を表示するたびに、このプ ロパティは LONMAKER で定義されている機能ブロック名にリ セットされます。 <UCPTTranslatorRule> 型変換機能が使用する型変換ルールの名前。これは、型変換機能 が入力として受け入れるデータポイントのネットワーク変数型 と、変換後のネットワーク変数型を決定します。また、変換後に 出力データポイントに割り当てられる値も決定します。 型変換機能に選択する入力および出力データポイントは、型変換 ルールに従ったネットワーク変数型を使用する必要があります。 この表の後に続く各項では、i.LON 100 ソフトウェアに付属して いる型変換ルール、ルールを参照するための識別子、および使用 可能な入力および出力データポイント型について説明していま す。SOAP インタフェースを使用して、独自の型変換ルールを作 成することもできます。詳細については、第14章「型変換ルー ル」を参照してください。 変換ルールを指定しない場合、入力データポイントは、型変換機 能に指定された出力データポイントのフォーマット型に変換され ます(オフセットまたは定数のないスカラー型からスカラー型へ の変換、または列挙型から列挙型への変換など)。この場合、出 力データポイントの値は、変換が行われるたびに入力データポイ ントの値で更新されます。 <SCPTdelayTime> 型変換機能の入力データポイントのいずれかが更新された後、変 換を実行する前に待機する期間を秒数で指定します。型変換機能 が複数のデータポイントを変換する場合は、これを 0 より大きい 値に設定してください。そうすると、入力データポイントが更新 されてから変換が行われるようになります。変換には、遅延期間 中に発生したその他のデータポイントの更新が反映されます。 このプロパティを 0 に設定すると、入力データポイントのいずれ かが更新されるたびに変換が実行されます。 13-6 i.LON 100 Internet Server Programmer’s Reference プロパティ <InDataPoint> 説明 型変換機能が変換するデータポイントは、<InDataPoint>エレメ ントの一覧で示されます。各<InDataPoint>エレメントには、 <UCPTpointName>および<UCPTindex>という 2 つのプロパ ティが含まれています。 <UCPTpointName>プロパティは、i.LON 100 Data Server に定 義されている入力データポイントの名前を参照するために使用し ます。<UCPTindex>プロパティは、型変換機能が複数の入力デー タポイントを受け入れる場合、型変換機能内でデータポイントに インデックス番号を割り当てるために使用します。 この表の後に続く各項では、i.LON 100 ソフトウェアに用意され ている型変換ルールと、各ルールに従った入力データポイントの フォーマット型について説明しています。 <OutDataPoint> 変換後の入力データポイントの値を保存する出力データポイン ト。これらのデータポイントは、<InDataPoint>エレメントの一 覧で示されます。各<InDataPoint>エレメントには、 <UCPTpointName>と<UCPTindex>の 2 つのプロパティが含ま れています。 <UCPTpointName>プロパティは、i.LON 100 Data Server に定 義されている出力データポイントの名前を参照するために使用し ます。<UCPTindex>プロパティは、型変換機能が複数の出力デー タポイントを生成する場合、型変換機能内でデータポイントにイ ンデックス番号を割り当てるために使用します。 この表の後に続く各項では、i.LON 100 ソフトウェアに用意され ている型変換ルールと、各ルールに従った出力データポイントの フォーマット型について説明しています。 13.2.1.2.1 型変換ルール 次の各項では、型変換機能を作成するときに<UCPTtranslatorRule>プロパティ内で指定で きる識別子を示しています。また、これらの識別子が参照する型変換ルールと、各ルールに 使用する必要のある入力および出力データポイントのネットワーク変数型についても説明し ます。 これらの型変換ルールの構成を保存する XML ファイルは、i.LON 100 の /root/config/Software/TranslatorRules ディレクトリに含まれています。 13.2.1.2.1.1 16xSNVT_switch_TO_SNVT_state SNVT_switch 型の最高 16 の入力データポイントを SNVT_state 型の出力データポイントに 変換します。各 SNVT_switch 入力データポイントの state フィールドの値が、SNVT_state 出力データポイントのフィールドに割り当てられます。 SNVT_state 出力データポイントは、<Data>パラメータ内の<OutDataPoint>エレメントに よって定義されます。このエレメントに<UCPTpointName>を含めることで、型変換機能の 出力を保存する SNVT_state データポイントのを指定します。 変換する 16 の SNVT_switch データポイントは、<InDataPoint>エレメントで指定します。 各エレメントには、<UCPTpointName>と<UCPTindex>の 2 つのプロパティを含める必要 があります。<UCPTpointName>は、SNVT_switch データポイントを識別し、 <UCPTindex>は、0∼15 の範囲にある必要があります。 i.LON 100 Internet Server Programmer’s Reference 13-7 入力データポイントの state フィールドの値が読み取られ、出力データポイントの bitX に保 存されます。ここで、X は入力データポイントに割り当てられた<UCPTindex>を表します。 たとえば、型変換機能で 0 のインデックス番号が割り当てられているデータポイントの state フィールドは、SNVT_state 出力データポイントの Bit0 に保存されます。また、8 の インデックス番号が割り当てられているデータポイントの state フィールドは、SNVT_state 出力データポイントの Bit7 に保存されます。 未使用のインデックス番号がある場合(型変換機能を使用するデータポイントの数が 16 未 満の場合)は、出力データポイント内の対応するフィールドに 0 の値が割り当てられます。 13.2.1.2.1.2 SNVT_lev_disc_TO_SNVT_occupancy SNVT_lev_disc 型の入力データポイントを SNVT_occupancy 型の出力データポイントに変 換します。このルールを使用するときは、変換する SNVT_lev_disc データポイントを、 <InDataPoint>エレメントの<UCPTpointName>で指定します。変換結果を保存する SNVT_occupancy データポイントは、<OutDataPoint>エレメントの<UCPTpointName>で 指定します。 型変換が行われるたびに、型変換機能は SNVT_lev_disc 入力データポイントに割り当てられ ている列挙値に基づいて、SNVT_occupancy 出力データポイントに列挙値を割り当てます。 出力データポイントに割り当てられる列挙値は、表 66に示すルールに従います。 表 66 SNVT_lev_disc_TO_SNVT_occupancy SNVT_lev_disc 入力データポイントの値 SNVT_occupancy 出力データポイントの 値 ST_NUL OC_NUL ST_OFF OC_UNOCCUPIED ST_ON OC_OCCUPIED ST_HIGH OC_BYPASS ST_LOW OC_STANDY ST_MED OC_STANDY 13.2.1.2.1.3 SNVT_lev_disc_TO_SNVT_switch SNVT_lev_disc 型の入力データポイントを SNVT_switch 型の出力データポイントに変換し ます。このルールを使用するときは、変換する SNVT_lev_disc データポイントを <InDataPoint>エレメントの<UCPTpointName>で指定します。変換結果を保存する SNVT_switch データポイントは、<OutDataPoint>エレメントの<UCPTpointName>で指 定します。 変換が行われるたびに、SNVT_lev_disc 入力データポイントに割り当てられている列挙値に 基づいた値が SNVT_switch 出力データポイントに割り当てられます。出力データポイント に割り当てられる値は、表 67に示すルールに従います。 表 67 SNVT_lev_disc_TO_SNVT_switch SNVT_lev_disc 入力データポイントの値 SNVT_switch 出力データポイントの値 ST_NUL 0xff 0 ST_OFF 0.0 0 ST_ON 100.0 1 ST_HIGH 75.0 1 ST_LOW 50.0 1 13-8 i.LON 100 Internet Server Programmer’s Reference SNVT_lev_disc 入力データポイントの値 SNVT_switch 出力データポイントの値 ST_MED 25.0 1 13.2.1.2.1.4 SNVT_occupancy_TO_SNVT_setting SNVT_occupancy 型の入力データポイントを SNVT_setting 型の出力データポイントに変換 します。このルールを使用するときは、変換する SNVT_occupancy データポイントを、 <InDataPoint>エレメントの<UCPTpointName>で指定します。変換結果を保存する SNVT_setting データポイントは、<OutDataPoint>エレメントの<UCPTpointName>で指 定します。 変換が行われるたびに、入力データポイントに割り当てられている列挙値に基づいて、 SNVT_setting データポイントの 3 つのフィールド(function、rotation、setting)に異なる 値が割り当てられます。これらのフィールドに割り当てられる値は、表 68に示すルールに従 います。 表 68 SNVT_occupancy_TO_SNVT_setting SNVT_setting 出力フィールドの値 出力フィールドの値 SNVT_occupancy 入力 データポイントの値 function setting rotation OC_NUL SET_NUL 0 0.0 OC_UNOCCUPIED SET_STATE 60 -80.01 OC_OCCUPIED SET_STATE 100 80.24 OC_BYPASS SET_STATE 100.0 80.24 OC_STANDBY SET_STATE 60.2 -40.0 13.2.1.2.1.5 SNVT_scene_TO_SNVT_setting type SNVT_scene 型の入力データポイントを SNVT_setting 型の出力データポイントに変換 します。このルールを使用するときは、変換する SNVT_scene データポイントを <InDataPoint>エレメントの<UCPTpointName>で指定します。変換結果を保存する SNVT_setting データポイントは、<OutDataPoint>エレメントの<UCPTpointName>で指 定します。 変換が行われるたびに、SNVT_scene データポイントの function および scene_number フィールドの値に基づいて、SNVT_setting 出力データポイントの 3 つのフィールド (function、rotation、setting)に異なる値が割り当てられます。これらのフィールドに割 り当てられる値は、表 69に示すルールに従います。 表 69 SNVT_scene_TO_SNVT_setting SNVT_scene 入力フィールドの値 SNVT_setting 出力フィールドの値 function scene_number function setting rotation SC_RECALL 0 SET_STATE 0 0 SC_RECALL 1 SET_STATE 25 0 SC_RECALL 2 SET_STATE 50 0 SC_RECALL 3 SET_STATE 75 0 SC_RECALL >3 SET_NUL 100 0 SC_NUL N/A SET_NUL 100 0 13.2.1.2.1.6 SNVT_scene_TO_SNVT_switch i.LON 100 Internet Server Programmer’s Reference 13-9 SNVT_scene 型の入力データポイントを SNVT_switch 型の出力データポイントに変換しま す。このルールを使用するときは、変換する SNVT_scene データポイントを、 <InDataPoint>エレメントの<UCPTpointName>で指定します。変換結果を保存する SNVT_switch データポイントは、<OutDataPoint>エレメントの<UCPTpointName>で指 定します。 変換が行われるたびに、SNVT_scene 入力データポイントの function および scene_number フィールドの値に基づいて、SNVT_switch 出力データポイントに値と状態が割り当てられ ます。出力データポイントに割り当てられる値は、表 70に示されるルールに従います。 表 70 SNVT_scene to SNVT_switch SNVT_scene 入力フィールドの値 SNVT_switch 出力データポイントの値 function scene_number SC_NUL N/A* 0.0 0 SC_RECALL 1 25.0 1 SC_RECALL 2 50.0 1 SC_RECALL 3 75.0 1 SC_RECALL >3 100.0 1 SC_RECALL 255 0.0 0 *入力フィールドの function が SC_NUL で scene_number が 0 の場合、出力データポイントの値は変 更されません。 13.2.1.2.1.7 SNVT_setting_TO_SNVT_switch SNVT_setting 型の入力データポイントを SNVT_switch 型の出力データポイントに変換し ます。このルールを使用するときは、変換される SNVT_setting 入力データポイントを <InDataPoint>エレメントの<UCPTpointName>で指定します。変換結果を保存する SNVT_switch データポイントは、<OutDataPoint>エレメントの<UCPTpointName>で指 定します。 変換が行われるたびに、SNVT_setting 入力データポイントの function および setting フィールドに割り当てられている値に基づいて、SNVT_switch 出力データポイントに値が 割り当てられます。出力データポイントに割り当てられる値は、表 71に示されるルールに従 います。 表 71 SNVT_setting_TO_SNVT_switch SNVT_switch 出力データポイントの値 SNVT_setting 入力フィールドの値 function setting SET_STATE >100.0 0xFF 0 SET_STATE <=100.0 (setting の値)0 SET_NUL N/A 0xFF 0 13.2.1.2.1.8 SNVT_state_TO_16xSNVT_switch SNVT_state 型のデータポイントを SNVT_switch 型の複数の出力データポイントに変換し ます。このルールを使用するときは、変換する SNVT_state 入力データポイントを、 <InDataPoint>エレメントの<UCPTpointName>で指定します。 変換結果を保存する 16 の SNVT_switch データポイントは、<Data>パラメータ内の <InDataPoint>エレメントので指定します。各エレメントには、<UCPTpointName>と <UCPTindex>の 2 つのプロパティを含める必要があります。<UCPTpointName>は 13-10 i.LON 100 Internet Server Programmer’s Reference SNVT_switch データポイントを識別し、<UCPTindex>は 0∼15 の範囲にある必要がありま す。 各出力データポイントには、インデックス番号、および入力データポイントの対応する フィールドの値に基づいて、値が割り当てられます。たとえば、型変換機能内で 0 のイン デックス番号を使用している出力データポイントには、入力データポイントの Bit0 に基づく 値が割り当てられます。型変換機能内で 7 のインデックス番号を使用している出力データポ イントには、入力データポイントの Bit6 に基づく値が割り当てられるといった具合になりま す。 BitX フィールドの値が 0 の場合、該当する SNVT_switch データポイントには 0.0 0 の値が 割り当てられます。BitX フィールドの値が 1 の場合、該当する SNVT_switch データポイン トには 100.0 1 の値が割り当てられます。 13.2.1.2.1.9 SNVT_switch_TO_SNVT_lev_disc SNVT_switch 型の入力データポイントを SNVT_lev_disc 型の出力データポイントに変換し ます。このルールを使用するときは、変換する SNVT_switch 入力データポイントを、 <InDataPoint>エレメントの<UCPTpointName>で指定します。変換結果を保存する SNVT_lev_disc データポイントは、<OutDataPoint>エレメントの<UCPTpointName>で指 定します。 変換が行われるたびに、SNVT_switch 入力データポイントの state および value フィールド の値に基づいて、SNVT_lev_disc 出力データポイントに列挙値が割り当てられます。出力 データポイントに割り当てられる値は、表 72に示されるルールに従います。 表 72 SNVT_switch_TO_SNVT_lev_disc SNVT_switch 入力フィールドの値 SNVT_lev_disc 出力データポイントの値 State value 0 N/A ST_OFF 1 0.0 ST_OFF 1 1.0∼25.0 ST_LOW 1 26.0∼50.0 ST_MED 1 51.0∼75.0 ST_HIGH 1 76.0∼100.0 ST_ON 1 >100.0 ST_NUL 13.2.1.3 TypeTranslatorSet TypeTranslatorSet 関数を使用すると、新しい型変換機能を作成するか、既存の型変換機能 の構成を上書きすることができます。 関数が作成または上書きする型変換機能は、<Data>パラメータ内の<TypeTranslator>エレ メントの一覧で指定します。各<TypeTranslator>エレメント内に定義する必要のあるプロパ ティは、新しい型変換機能を作成する場合も、既存の型変換機能を変更する場合でも同じで す。これらのプロパティの詳細については、前項の「TypeTranslatorGet」を参照してくだ さい。 注:既存の型変換機能を変更する場合、入力文字列に指定されていないオプションのプロパ ティは消去されます。古い値は継承されないため、型変換機能に書き込みを行うときは、す べての値を変更しない場合にも、すべてのプロパティを指定する必要があります。 TypeTranslatorSet を使用して型変換機能を作成または変更するときは、 TypeTranslatorGet の出力を基にして<Data>パラメータを指定すると便利です。こうする i.LON 100 Internet Server Programmer’s Reference 13-11 と、文字列全体を最初から作成する代わりに、新しい構成に一致するように各プロパティの 値を変更するだけで済みます。 TypeTranslatorSet 関数を初めて呼び出すと、i.LON 100 の/root/config/software ディレク トリに TypeTranslator.XML ファイルが生成されます(ファイルがまだ存在しない場合)。 次の例では、TypeTranslatorSet 関数を使用して、SNVT_switch_TO_SNVT_lev_disc 型変 換ルールに従う型変換機能を作成し、NVL_nviTTswitch データポイントを変換してその結 果を NVL_nvoLevDisc データポイントに保存します。SNVT_switch_TO_SNVT_lev_disc ルールが使用されているため、NVL_nviTTswitch は SNVT_switch データポイントに、 NVL_nvoLevDisc は SNVT_lev_disc データポイントにする必要があります。i.LON 100 ソ フトウェアに用意されている他の型変換ルールの一覧、およびルールに従った入力および出 力データポイント型については、前項の「TypeTranslatorGet」を参照してください。 <Data> パラメー タ <Data> <iLONTypeTranslator> <TypeTranslator> <UCPTindex></UCPTindex> <UCPTdescription>Translator For SNVT_switch</UCPTdescription> <UCPTfbName></UCPTfbName> <UCPTtranslatorRule>SNVT_switch_TO_SNVT_lev_disc</UCPTtranslatorRu le> <SCPTdelayTime>0.0</SCPTdelayTime> <InDataPoint> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nviTTswitch</UCPTpointName> </InDataPoint> <OutDataPoint> <UCPTindex>0</UCPTindex> <UCPTpointName>NVL_nvoLevDisc</UCPTpointName> </OutDataPoint> </TypeTranslator> </iLONTypeTranslator> </Data> <Result> パラメー タ <Result> <iLONTypeTranslator> <TypeTranslator> <UCPTindex>7</UCPTindex> </TypeTranslator> </iLONTypeTranslator> </Result> 13.2.1.4 TypeTranslatorDelete TypeTranslatorDelete 関数を使用すると、型変換機能を削除することができます。型変換機 能を削除するには、関数に渡す<Data>パラメータの中で削除したい型変換機能をインデック ス番号で参照します。 <Data>パラ メータ 13-12 <Data> <iLONTypeTranslator> <TypeTranslator> <UCPTindex>0</UCPTindex> </TypeTranslator> </iLONTypeTranslator> </Data> i.LON 100 Internet Server Programmer’s Reference <Result> <iLONTypeTranslator> <TypeTranslator> <UCPTindex>0</UCPTindex> </TypeTranslator> </iLONTypeTranslator> </Result> i.LON 100 Internet Server Programmer’s Reference 13-13 14 型変換ルール 型変換ルールの SOAP 関数を使用すると、i.LON 100 に型変換ルールを追加したり、i.LON 100 ソフトウェアに用意されている型変換ルールを変更することができます。型変換ルール は、型変換機能が入力として使用するデータポイントのネットワーク変数型と、データポイ ントの変換先のネットワーク変数型を定義します。また、変換中に出力データポイントに割 り当てられる値を決定するためのエレメントも定義します。これらのエレメントには、構造 体内の列挙値やフィールドを取り扱うための倍率、オフセット、ケース構造体などがありま す。この項では、型変換ルールの使用法を簡単に説明します。 型変換ルールを参照している型変換機能は、そのルールの入力ネットワーク変数型に一致す る入力データポイントと、そのルールの出力ネットワーク変数型に一致する出力データポイ ントを指定します。入力データポイントのいずれかが更新されると、入力データポイントの 値は変換され、出力データポイントに保存されます。 入力データポイントが構造体の場合は、入力データポイントのどのフィールドを変換するか を指定できます。同様に、出力データポイントが構造体の場合は、どのフィールドに変換結 果を保存するかを指定できます。これらの機能を使用すると、型変換ルールを構成し、複数 の入力データポイントを 1 つの出力データポイントに変換したり、1 つの入力データポイン トを複数の出力データポイントに変換することができます。 オプションで、変換のロジックを定義するケース構造体を作成することもできます。たとえ ば、入力データポイントにスカラー値があり、出力データポイントが列挙値である場合は、 ケース構造体を設定し、スカラー値の範囲を出力データポイントの各列挙値にマッピングで きます。または、ケースルールを設定し、入力データポイントの複数の列挙値をスカラー値 にマッピングしたり、出力データポイントの複数の列挙値にマッピングすることもできます。 本章では、型変換ルールの作成方法について説明します。いったん型変換ルールを作成する と、型変換機能から参照できるようになります。型変換アプリケーションの詳細と型変換機 能の作成方法については、第13章「型変換機能」を参照してください。 14.1 型変換ルールの XML ファイル i.LON 100 に定義されている各型変換ルールの構成は、i.LON 100 の /root/config/Software/TranslatorRules ディレクトリにある XML ファイルに保存されます。 このディレクトリ内のファイルはすべて起動中に読み取られ、有効なルールは型変換アプリ ケーションで使用できるようになります。既定では、このディレクトリには型変換機能に使 用できる複数の XML ファイルが含まれています。第 13 章では、XML ファイルによって定 義した型変換ルールを紹介し、これらのルールを型変換機能で使用する方法について説明し ています。 本章では、SOAP インタフェースを使用して新しい型変換ルールを作成したり、既存の型変 換ルールを変更する方法について説明します。 次のサンプルは、2xSwitch_to_Switch という型変換ルールの構成を保存する XML ファイル を示しています。この型変換ルールは 2 つの SNVT_switch 型データポイントを入力として 受け入れ、最初の入力データポイントの state フィールドと、2 番目の入力データポイント の value フィールドを、同じく SNVT_switch 型のデータポイントである出力データポイン トに保存します。 <TypeTranslatorRule> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <UCPTlastUpdate>2002-04-05T11:12:26Z</UCPTlastUpdate> <UCPTdescription>Test</UCPTdescription> <UCPTtranslatorRule>2xSwitch_to_Switch</UCPTtranslatorRule> <InDataPoint> i.LON 100 Internet Server Programmer’s Reference 14-1 <UCPTindex>0</UCPTindex> <UCPTformatDescription>SNVT_switch</UCPTformatDescription> </InDataPoint> <InDataPoint> <UCPTindex>1</UCPTindex> <UCPTformatDescription>SNVT_switch</UCPTformatDescription> </InDataPoint> <OutDataPoint> <UCPTindex>0</UCPTindex> <UCPTformatDescription>SNVT_switch</UCPTformatDescription> </OutDataPoint> <Case> <UCPTindex>0</UCPTindex> <UCPTindexIn>0</UCPTindexIn> <UCPTfieldNameIn><UCPTfieldNameIn> <UCPTcompFct>FN_NUL</UCPTcompFct> <UCPTcompValue>0</UCPTcompValue> <Rule> <UCPTindex>0</UCPTindex> <UCPTindexIn>0</UCPTindexIn> <UCPTfieldNameIn>state</UCPTfieldNameIn> <UCPTcompFct>FN_NUL</UCPTcompFct> <UCPTcompValue>0</UCPTcompValue> <UCPTmultiplier>1</UCPTmultiplier> <UCPTconstant>0</UCPTconstant> <UCPTindexOut>0</UCPTindexOut> <UCPTfieldNameOut>state</UCPTfieldNameOut> </Rule> <Rule> <UCPTindex>1</UCPTindex> <UCPTindexIn>1</UCPTindexIn> <UCPTfieldNameIn>value</UCPTfieldNameIn> <UCPTcompFct>FN_NUL</UCPTcompFct> <UCPTcompValue>0</UCPTcompValue> <UCPTmultiplier>1</UCPTmultiplier> <UCPTconstant>0</UCPTconstant> <UCPTindexOut>0</UCPTindexOut> <UCPTfieldNameOut>value</UCPTfieldNameOut> </Rule> </Case> </TypeTranslatorRule> 14.2 型変換ルール用 XML ファイルの作成と変更 型変換ルール用の XML ファイルは、TypeTranslatorRuleSet 関数を使用して作成および変 更します。次の「型変換ルールの SOAP インタフェース」では、TypeTranslatorRuleSet、 および型変換ルールとともに使用する、付属の各種 SOAP 関数について説明します。 XML エディタを使用して型変換ルール用の XML ファイルを手動で作成し、FTP セッショ ンを経由して i.LON 100 にダウンロードすることもできます。ただし、Echelon 社ではこの 方法は奨励していません。ダウンロードしたファイルの構成を読み取るには、i.LON 100 を 再起動する必要があるためです。また、i.LON 100 は XML ファイルに書き込みを行う前に、 受信したすべての SOAP メッセージのエラーチェックを実行しますが、FTP を経由してダウ ンロードされた XML ファイルのエラーチェックは実行しないため、アプリケーションが正 しく起動しない場合があります。 型変換ルールの XML ファイルを手動で作成および管理する場合は、まずこの章の残りの部 分をお読みください。ここでは、型変換ルールを定義するエレメントとプロパティについて 説明しています。XML ファイルを手動で作成または変更する方法については、17-1ページ の「XML 構成ファイルの手動変更」を参照してください。 14-2 i.LON 100 Internet Server Programmer’s Reference 14.2.1 型変換ルールの SOAP インタフェース 型変換ルールアプリケーションの SOAP インタフェースには、4 つの関数が用意されていま す。表 73では、これらの関数を一覧表示し、各関数について説明しています。これらの関数 の詳細については、表 73の後に続く各項を参照してください。 表 73 型変換ルールの SOAP 関数 関数 説明 TypeTranslatorRuleList i.LON 100 に追加した型変換ルールの一覧を取得します。詳細に ついては、14-3ページの「TypeTranslatorRuleList」を参照し てください。 TypeTranslatorRuleGet i.LON 100 に追加した型変換ルールの構成を取得します。詳細に ついては、14-4ページの「TypeTranslatorRuleGet」を参照して ください。 TypeTranslatorRuleSet 型変換ルールを作成するか、既存の型変換ルールの構成を上書き します。詳細については、14-10ページの 「TypeTranslatorRuleSet」を参照してください。 TypeTranslatorRuleDelete 型変換ルールを削除します。詳細については、14-12ページの 「TypeTranslatorRuleDelete」を参照してください。 14.2.1.1 TypeTranslatorRuleList TypeTranslatorRuleList 関数を使用すると、i.LON 100 に追加した型変換ルールの一覧を取 得することができます。TypeTranslatorRuleList 関数は<Data>パラメータとして空の文字 列を受け入れます。 この関数は、型変換ルールアプリケーションが使用しているファームウェアのバージョン番 号(主および副)を<Result>パラメータ内に返します。<Result>パラメータには、i.LON 100 に追加した各 TypeTranslatorRule の<TypeTranslatorRule>エレメントも含まれます。 次の「TypeTranslatorRuleGet」で、<TypeTranslatorRule>エレメントに含まれているプ ロパティについて説明します。 この関数が返す<TypeTranslatorRule>エレメントの一覧は、TypeTranslatorRuleGet 関数 の入力として使用できます。TypeTranslatorRuleGet 関数は、<TypeTranslatorRule>エレ メントに含まれている各型変換ルールの完全な構成を返します。 <Data> パラメー タ 文字列なし <Result> パラメー タ <Result> <iLONTypeTranslator> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <TypeTranslatorRule> <UCPTindex>7</UCPTindex> <UCPTlastUpdate>2002-01-30T16:32:26Z</UCPTlastUpdate> <UCPTtranslatorRule>SNVT_state_TO_16xswitch</UCPTtranslatorRule> <UCPTdescription>Converts SNVT_state to 16 different SNVT_switch </UCPTdescription> </TypeTranslatorRule> <TypeTranslatorRule> <UCPTindex>8</UCPTindex> <UCPTlastUpdate>2002-01-30T16:32:26Z</UCPTlastUpdate> <UCPTtranslatorRule>SNVT_switch_TO_SNVT_lev_disc</UCPTtranslatorRu i.LON 100 Internet Server Programmer’s Reference 14-3 le> <UCPTdescription>Converts SNVT_switch to SNVT_lev_disc</UCPTdescription> </TypeTranslatorRule> <TypeTranslatorRule> <UCPTindex>9</UCPTindex> <UCPTlastUpdate>2002-05-22T09:33:44Z</UCPTlastUpdate> <UCPTtranslatorRule>2xTimeStamp_to_TimeStamp</UCPTtranslatorRule> <UCPTdescription>Test</UCPTdescription> </TypeTranslatorRule> <TypeTranslatorRule> <UCPTindex>10</UCPTindex> <UCPTlastUpdate>2002-01-30T16:32:26Z</UCPTlastUpdate> <UCPTtranslatorRule>Limit_SNVT_count_f</UCPTtranslatorRule> <UCPTdescription>Sets SNVT_count_f to 0 when 60000 increased</UCPTdescription> </TypeTranslatorRule> </iLONTypeTranslator> </Result> 14.2.1.2 TypeTranslatorRuleGet TypeTranslatorGet 関数を使用すると、i.LON 100 に追加した型変換ルールの構成を取得す ることができます。構成情報を取得したい型変換ルールは、関数に渡す<Data>パラメータ内 でインデックス番号を指定する必要があります。 <Data>パ ラメータ <Data> <iLONTypeTranslator> <TypeTranslatorRule> <UCPTindex>10</UCPTindex> </TypeTranslatorRule> </iLONTypeTranslator> </Data> <Result> パラメー タ <Result> <iLONTypeTranslator> <TypeTranslatorRule> <UCPTindex>10</UCPTindex> <UCPTlastUpdate>2004-05-26T01:10:35Z</UCPTlastUpdate> <UCPTdescription>Adds five degrees to the temperature</UCPTdescription> <UCPTtranslatorRule>temp_add05</UCPTtranslatorRule> <InDataPoint> <UCPTindex>0</UCPTindex> <UCPTformatDescription>SNVT_temp_f</UCPTformatDescription> </InDataPoint> <OutDataPoint> <UCPTindex>0</UCPTindex> <UCPTformatDescription>SNVT_temp_f</UCPTformatDescription> </OutDataPoint> <Case> <UCPTindex>0</UCPTindex> <UCPTfieldNameIn></UCPTfieldNameIn> <UCPTindexIn>0</UCPTindexIn> <UCPTcompFunction>FN_NUL</UCPTcompFunction> <UCPTcompValue>0</UCPTcompValue> <Rule> <UCPTindex>0</UCPTindex> <UCPTindexIn>0</UCPTindexIn> <UCPTfieldNameIn></UCPTfieldNameIn> <UCPTindexOut>0</UCPTindexOut> <UCPTfieldNameOut></UCPTfieldNameOut> 14-4 i.LON 100 Internet Server Programmer’s Reference <UCPTcompFunction>FN_NUL</UCPTcompFunction> <UCPTcompValue>0</UCPTcompValue> <UCPTmultiplier>1</UCPTmultiplier> <UCPTconstant>5.0</UCPTconstant> </Rule> </Case> </TypeTranslatorRule> </iLONTypeTranslator> </Result> TypeTranslatorGet 関数は、関数に渡した<Data>パラメータ内で参照した各型変換ルール に対して 1 つの<Rule>エレメントを返します。<Rule>エレメントに含まれているプロパ ティとエレメントは、型変換ルールの作成時に最初に定義されます。これらに書き込みを行 うには、TypeTranslatorRuleSet 関数を使用します。表 74では、これらのプロパティについ て説明しています。 表 74 TypeTranslatorRuleGet のプロパティ プロパティ <UCPTindex> 説明 型変換ルールに割り当てられているインデックス番号は、–32,768 ∼32,767 の範囲に収めます。TypeTranslatorRuleSet 関数を使用 すると、新しい型変換ルールを作成するか、既存の型変換ルール を変更することができます。TypeTranslatorRuleSet に渡す <Data>パラメータの中でインデックス番号を指定しない場合は、 使用可能な最初のインデックス番号で新しい型変換ルールが作成 されます。 既に使用中のインデックス番号を指定した場合は、そのインデッ クス番号を使用している型変換ルールの構成が、<Data>パラメー タに定義されている設定で上書きされます。 <UCPTlastUpdate> 型変換ルールの構成が最後に更新された時刻を示すタイムスタン プ。このタイムスタンプは、次のフォーマットを使用します。 YYYY-MM-DDTHH:MM:SSZ タイムスタンプの最初のセグメント(YYYY-MM-DD)は、型変 換ルールの構成が最後に更新された日を表します。2 番目のセグ メント(THH:MM:SS)は、型変換ルールの構成が最後に更新さ れた日の時刻を協定世界時(UTC)で表します。 UTC は、以前はグリニッジ標準時(GMT)と一般的に呼ばれて いたものを示す現在の用語です。0 時間の UTC は、ゼロ度の経線 上にあるイギリスのグリニッジにおける深夜 0 時を表します。協 定世界時は 24 時間制に基づいているため、4 pm などの午後の時 間は 16:00 UTC と表されます。タイムスタンプに追加される Z は、それが UTC 単位であることを示します。 <UCPTdescription> 型変換ルールの説明。これは、最高 228 文字で指定できます。 i.LON 100 Internet Server Programmer’s Reference 14-5 プロパティ <UCPTtranslatorRule> 説明 型変換ルールの名前。型変換ルール用に作成される XML ファイ ルは、このプロパティをファイル名として使用します。たとえ ば、上に示すサンプルの<Data>パラメータに定義されている XML ファイルの名前は、temp_add05.XML になります。 名前は最高 65 文字で指定できます。TypeTranslatorSet 関数で型 変換機能を作成するときは、この名前を使用してルールを参照し ます。TypeTranslatorSet の詳細については、第13章「型変換機 能」を参照してください。 ただし、次の文字は使用できません / \ :* ? “ < > * | <InDataPoint> 型変換ルールが入力として受け入れるネットワーク変数型は、 <InDataPoint>エレメントを使用して定義します。 <InDataPoint>エレメントには、<UCPTindex>と <UCPTformatDescription>の 2 つのプロパティが含まれていなけ ればなりません。 ネットワーク変数型を定義するには、<UCPTformatDescription> プロパティを使用します。型変換ルール内で使用するインデック ス番号を型に割り当てるには、<UCPTindex>を使用します。 ルールを使用する型変換機能を作成するときは、1 つまたは複数 の入力データポイントを定義し、各データポイントにインデック ス番号を割り当てます。各データポイントの <UCPTformatDescription>は、型変換ルール内で同じインデック ス番号を使用している<InDataPoint>エレメントの <UCPTformatDescription>に一致する必要があります。一致しな い場合、変換中にエラーが発生する場合があります。 <OutDataPoint> 型変換ルールが入力を変換するときの変換先のネットワーク変数 型は、<OutDataPoint>エレメントを使用して定義します。 <OutDataPoint>エレメントには、<UCPTindex>と <UCPTformatDescription>の 2 つのプロパティが含まれていなけ ればなりません。 ネットワーク変数型を定義するには、<UCPTformatDescription> プロパティを使用します。型変換ルール内で使用するインデック ス番号を型に割り当てるには、<UCPTindex>を使用します。 ルールを使用する型変換機能を作成するときは、1 つまたは複数 の出力データポイントを定義し、各データポイントにインデック ス番号を割り当てます。各データポイントの <UCPTformatDescription>は、型変換ルール内で同じインデック ス番号を使用している<InDataPoint>エレメントの <UCPTformatDescription>に一致する必要があります。一致しな い場合、変換中にエラーが発生する場合があります。 14-6 i.LON 100 Internet Server Programmer’s Reference プロパティ <Case> 説明 型変換ルールの入力および出力ネットワーク変数型は、 <InDataPoint>および<OutDataPoint>エレメントによって定義 します。ケース構造体を作成すると、変換の実行時に出力データ ポイントに割り当てる値を指定することができます。これは、ス カラー値を列挙値に、または列挙値をスカラー値に変換する際に 役立ちます。型変換ルールのケース構造体は、<Case>エレメント の一覧によって定義します。 ケース構造体の詳細については、次項の「ケース構造体の作成」 を参照してください。 14.2.1.2.1 ケース構造体の作成 各型変換ルールにケース構造体を作成することにより、そのルールを使用している型変換機 能が変換を行うときに、どのような操作を実行するかを定義することができます。各ケース 構造体には、複数のグローバルエレメントおよびケースルールが含まれています。ケース ルールは<Rule>エレメントの一覧で示されます。これにより、型変換ルールが出力データポ イントに割り当てる値を指定することができます。 ケースルールによって定義されている演算が実行される前に、型変換ルールはそのグローバ ルエレメントを使用して、入力データポイント(および該当する場合にはフィールド)の値 を、ユーザが選択した値と比較します。比較に使用する比較関数はユーザが指定します。 演算の結果が True の場合は、ケース構造体に定義されている各ケースルールが使用されま す。結果が False の場合、ケースルールは使用されません。これらの比較により、ケース構 造体の設定に柔軟性を持たせることができます。 たとえば、型変換ルールの入力データポイントが SNVT_occupancy フォーマット型を使用し ているケースを考えます。データポイントが OC_OCCUPIED に設定されているときに使用 するケース構造体を 1 つ設定し、さらにデータポイントが OC_UNOCCUPIED に設定され ているときに使用する別のケース構造体を設定することができます。各構造体は、異なる ケースルールを複数持つことができ、これらのルールを使用することによって出力データポ イントに異なる値を割り当てることができます。 注:型変換ルールのケース構造体のいずれも True にならない場合は、変換中にデータポイン トは更新されますが、その値は変化しません。 表 75では、比較演算を定義するグローバルエレメントについて説明しています。グローバル エレメントは、<Rule>エレメントの前の、ケース構造体の先頭に挿入する必要があります。 表 75 ケース構造体のグローバルプロパティ プロパティ <UCPTindex> 説明 ケース構造体のインデックス番号。 <UCPTfieldNameIn> このケース構造体の比較に使用される入力データポイントが構造 体である場合は、比較に使用する値を含むフィールドの名前を入 力します。入力データポイントが構造体ではない場合、このプロ パティは空のままにします。 <UCPTindexIn> 比較に使用する値を含む入力データポイントのインデックス番 号。この番号は、型変換ルールの<InDataPoint>エレメント内で 定義されています。 i.LON 100 Internet Server Programmer’s Reference 14-7 <UCPTcompFunction> <UCPTcompValue> ケースエレメントの比較関数(UCPTcompFunction)および比 較値(UCPTcompValue)を選択します。表 76では、 <UCPTcompFunction>プロパティに指定する比較関数を一覧表 示し、各関数について説明しています。 ケース構造体に指定した入力データポイントまたは入力データポ イントフィールドの値は、選択した比較関数を使用して比較値と 比較されます。この比較結果が True の場合は、ケース構造体に 定義されているケースルールが有効になります。 ケースルールの詳細については、14-8ページの「ケースルール」 を参照してください。 表 76では、<UCPTcompFunction>プロパティに指定する比較関数を一覧表示し、各関数に ついて説明しています。関数は、表に表示されている識別子の文字列で参照する必要があり ます。 表 76 識別子 比較関数の識別子 説明 FN_GT より大。入力データポイントの値が比較データポイントの値よりも大きい場 合に True を返します。 FN_LT より小。入力データポイントの値が比較データポイントの値よりも小さい場 合に True を返します。 FN_GE 以上。入力データポイントの値が比較データポイントの値よりも大きいか等 しい場合に True を返します。 FN_LE 以下。入力データポイントの値が比較データポイントの値よりも小さいか等 しい場合に True を返します。 FN_EQ 等価。入力データポイントの値が比較データポイントの値と等しい場合に True を返します。 FN_NE 不等価。入力データポイントの値が比較データポイントの値と等しくない場 合に True を返します。 FN_NUL ヌル。入力の値すべてに対して True を返します。変換が行われるたびに構 造体のケースルールが使用されるようにするには、これを使用します。 14.2.1.2.1.1 ケースルール ケースルールを使用すると、型変換ルールの使用時に出力データポイントに割り当てられる 値を指定することができます。出力データポイントが構造体の場合は、構造体内の各フィー ルドに割り当てられる値に対してケースルールを作成することができます。 各ケースルールには、入力値を決定するための入力データポイント(および入力データポイ ントが構造体の場合はフィールド名)を指定します。また、比較値と比較関数も指定します。 入力値は、選択した比較関数を使用して比較値と比較されます。比較結果が True の場合は、 ケースルールによって定義されている演算が実行されます。比較結果が False の場合は演算 は実行されず、出力データポイント(またはフィールド)の値は変更されません。 たとえば、SNVT_scene データポイントを SNVT_switch データポイントに変換する型変換 ルールを考えます。この場合、SNVT_scene データポイントの scene_number に基づいて、 SNVT_switch データポイントの value または state フィールドに値を割り当てるケースルー ルを作成することができます。例として、scene_number が 2 より小さい場合には 100.0 1 の値、2 より大きい場合には 0.0 の値を SNVT_switch データポイントに割り当てることがで 14-8 i.LON 100 Internet Server Programmer’s Reference きます。1 つのケース構造体にはケースルールをいくつでも作成できるため、条件は好きな だけ追加できます。 各ケースルールは<Rule>エレメントによって定義されます。表 77では、ケースルールを定 義する<Rule>エレメント内に指定すべきプロパティについて説明しています。 表 77 ケースルールのプロパティ プロパティ <UCPTindex> 説明 ケースルールのインデックス番号。 注:複数のケースルールが同じデータポイントまたはデータポイ ントフィールドに値を割り当てようとした場合は、XML ファイ ルの一番最後に記述されているケースルールが優先されます。 <UCPTindexIn> ケースルールが使用する入力データポイントのインデックス番 号。この番号は、型変換ルールの<InDataPoint>エレメント内で 定義されています。データポイントの値は、 <UCPTcompFunction>プロパティによって指定した比較関数を 使用して、選択した<UCPTcompValue>と比較されます。 比較結果が True の場合、ケースルールは<UCPTmultiplier>お よび<UCPTconstant>プロパティで指定した演算を使用して入力 データポイントの値を変更し、結果の値を出力データポイントに 割り当てます。 <UCPTfieldNameIn> ケースルールに割り当てた入力データポイントが構造体の場合 は、ケースルールの入力値となるフィールドの名前を入力しま す。これは最大 31 文字で指定します。 入力データポイントが構造体でない場合、このプロパティは空白 のままにします。 <UCPTindexOut> ケースルールが計算した値を保存するための出力データポイント のインデックス番号です。この番号は、型変換ルールの <OutDataPoint>エレメント内で定義されています。 <UCPTfieldNameOut> ケースルールに割り当てた出力データポイントが構造体の場合 は、この計算結果を保存する出力データポイントのフィールドの 名前を入力します。これは最大 31 文字で指定します。 出力データポイントが構造体でない場合、このプロパティは空白 のままにします。 <UCPTcompFunction> <UCPTcompValue> ケースルールの比較関数(UCPTcompFunction)と比較値 (UCPTcompValue)を選択します。選択する <UCPTcompValue>は、ケースルールに選択した入力データポ イントまたはフィールドと同じ値のフォーマットを使用する必要 があります。表 76では、<UCPTcompFunction>プロパティに指 定する比較関数を一覧表示し、各関数について説明しています。 入力データポイントまたは入力データフィールドの値は、ここで 選択する比較関数を使用して比較値と比較されます。比較結果が True の場合は、<UCPTmultiplier>および<UCPTconstant>プ ロパティで定義した演算が実行されます。比較結果が False の場 合、演算は実行されず、出力データポイント(またはフィール ド)の値は変更されません。 i.LON 100 Internet Server Programmer’s Reference 14-9 プロパティ <UCPTmultiplier> 説明 出力データポイントまたはデータポイントフィールドが、その値 の型として数値を受け入れる場合は、ここに数値を入力します。 型変換機能は、ケースルールの入力データポイントまたはデータ ポイントフィールドの値とこの数値を掛け合わせ、ケースルール の比較結果が True の場合に、掛け合わせた結果の値を出力デー タポイント(フィールド)に保存します。<UCPTconstant> フィールドを使用すると、乗算の実行後にこの値を加算すること ができます。 出力データポイントが列挙値を受け入れる場合、このプロパティ は空のままにします。 <UCPTconstant> 出力データポイントまたはデータポイントフィールドがその値の 型として列挙値を受け入れる場合は、ケースルールの比較結果が True になったときに出力データポイントに割り当てられる列挙 値を入力します。 出力データポイントまたはデータポイントフィールドが、その値 の型として数値を受け入れる場合は、ここに数値を入力します。 型変換機能は、この数値をケースルールの入力データポイントま たはデータポイントフィールドの値に加算し、結果の合計値を出 力データポイント(フィールド)に保存します。型変換機能は、 <UCPTmultiplier>プロパティによって定義された乗算の実行後 にこの演算を実行します。 14.2.1.3 TypeTranslatorRuleSet TypeTranslatorRuleSet 関数を使用すると、新しい型変換ルールを作成するか、既存の型変 換ルールの構成を上書きすることができます。関数を使用して新しい型変換ルールを作成す るたびに、そのルールの XML ファイルが i.LON 100 の /root/config/software/TranslatorRules ディレクトリに生成されます。ファイルが生成される と、第 13 章の説明にあるように、型変換機能の作成時にルールを参照できるようになりま す。 各型変換ルールを定義する際に使用するプロパティの詳細については、前項の 「TypeTranslatorRuleGet」を参照してください。 次の例では、TypeTranslatorRuleSet 関数を使用して、SNVT_lev_disc 型のデータポイント を SNVT_switch 型のデータポイントに変換する型変換ルールの定義を作成します。この ルールは、1 つのデータポイントを入力として受け入れ、1 つのデータポイントを出力とし て返します。 注:TypeTranslatorRuleSet 関数を使用して作成する型変換ルールは、i.LON 100 構成ソフト ウェアではサポートされていません。 <Data> パラメー タ <Data> <iLONTypeTranslator> <TypeTranslatorRule> <UCPTindex></UCPTindex> <UCPTdescription>Converts SNVT_lev_disc to SNVT_occupancy </UCPTdescription> <UCPTtranslatorRule>SNVT_lev_disc_TO_SNVT_occupancy</UCPTtranslatorRu le> <InDataPoint> 14-10 i.LON 100 Internet Server Programmer’s Reference <UCPTindex>0</UCPTindex> <UCPTformatDescription>SNVT_lev_disc</UCPTformatDescription> </InDataPoint> <OutDataPoint> <UCPTindex>0</UCPTindex> <UCPTformatDescription>SNVT_occupancy</UCPTformatDescription> </OutDataPoint> <Case> <UCPTindex>0</UCPTindex> <UCPTfieldNameIn></UCPTfieldNameIn> <UCPTindexIn>0</UCPTindexIn> <UCPTcompFunction>FN_NUL</UCPTcompFunction> <UCPTcompValue>0</UCPTcompValue> <Rule> <UCPTindex>0</UCPTindex> <UCPTindexIn>0</UCPTindexIn> <UCPTfieldNameIn></UCPTfieldNameIn> <UCPTindexOut>0</UCPTindexOut> <UCPTfieldNameOut></UCPTfieldNameOut> <UCPTcompFunction>FN_EQ</UCPTcompFunction> <UCPTcompValue>ST_NUL</UCPTcompValue> <UCPTmultiplier>0</UCPTmultiplier> <UCPTconstant>OC_NUL</UCPTconstant> </Rule> <Rule> <UCPTindex>1</UCPTindex> <UCPTindexIn>0</UCPTindexIn> <UCPTfieldNameIn></UCPTfieldNameIn> <UCPTindexOut>0</UCPTindexOut> <UCPTfieldNameOut></UCPTfieldNameOut> <UCPTcompFunction>FN_EQ</UCPTcompFunction> <UCPTcompValue>ST_OFF</UCPTcompValue> <UCPTmultiplier>0</UCPTmultiplier> <UCPTconstant>OC_UNOCCUPIED</UCPTconstant> </Rule> <Rule> <UCPTindex>2</UCPTindex> <UCPTindexIn>0</UCPTindexIn> <UCPTfieldNameIn></UCPTfieldNameIn> <UCPTindexOut>0</UCPTindexOut> <UCPTfieldNameOut></UCPTfieldNameOut> <UCPTcompFunction>FN_EQ</UCPTcompFunction> <UCPTcompValue>ST_ON</UCPTcompValue> <UCPTmultiplier>0</UCPTmultiplier> <UCPTconstant>OC_OCCUPIED</UCPTconstant> </Rule> <Rule> <UCPTindex>3</UCPTindex> <UCPTindexIn>0</UCPTindexIn> <UCPTfieldNameIn></UCPTfieldNameIn> <UCPTindexOut>0</UCPTindexOut> <UCPTfieldNameOut></UCPTfieldNameOut> <UCPTcompFunction>FN_EQ</UCPTcompFunction> <UCPTcompValue>ST_HIGH</UCPTcompValue> <UCPTmultiplier>0</UCPTmultiplier> <UCPTconstant>OC_BYPASS</UCPTconstant> </Rule> </Case> </TypeTranslatorRule> </iLONTypeTranslator> </Data> i.LON 100 Internet Server Programmer’s Reference 14-11 <Result> パラメー タ <Result> <iLONTypeTranslator> <TypeTranslatorRule> <UCPTindex>13</UCPTindex> </TypeTranslatorRule> </iLONTypeTranslator> </Result> 14.2.1.4 TypeTranslatorRuleDelete TypeTranslatorRuleDelete 関数を使用すると、型変換ルールを削除することができます。 型変換ルールを削除するには、関数に渡す<Data>パラメータの中で削除したい型変換ルール をインデックス番号で参照します。 <Data>パ ラメータ <Data> <iLONTypeTranslator> <TypeTranslatorRule> <UCPTindex>10</UCPTindex> </TypeTranslatorRule> </iLONTypeTranslator> </Data> <Result> パラメー タ <Result> <iLONTypeTranslator> <TypeTranslatorRule> <UCPTindex>10</UCPTindex> </TypeTranslatorRule> </iLONTypeTranslator> </Result> 14-12 i.LON 100 Internet Server Programmer’s Reference 15 i.LON 100 のフラッシュメモリ i.LON 100 は、フラッシュメモリを使用して、ユーザが作成したデータロガーやアラーム ノーティファイアによって生成されたログファイルなどの、i.LON 100 のアプリケーション に関連するデータを保存します。i.LON 100 アプリケーションは、この不揮発性メモリを 32 MB の論理ディスクドライブ(“フラッシュディスク”とも呼ばれる)として認識します。フ ラッシュディスクはとても信頼性が高く、長もちしますが、i.LON 100 の寿命やランタイム 構成に影響を及ぼすことのある制限も抱えています。 フラッシュメモリは、物理的には 16 KB のブロックが 2048 個集まったものです(フラッシ ュメモリのブロックよりもはるかに小さいディスクブロック/セクタとは異なります)。これ らのブロックのうち 2000 個は、論理ディスクドライブにマッピングされ、2 つはオーバー ヘッドに使用され、残りのブロック(最高 46)はスペアとして確保されます。 フラッシュブロックにいったん書き込みを行った場合は、次の書き込みを行う前に、ブロッ クを完全に消去する必要があります。i.LON 100 アプリケーションがデータを論理フラッシ ュディスクに書き込むと、物理フラッシュブロックが必要に応じて消去され、データを保存 可能にします。各フラッシュブロックは、決められた回数しか消去できず、これを超えると 使用できなくなります。この回数の予想最小値は、フラッシュのメーカーが決定します。フ ラッシュブロックに障害が発生すると、それは永久に障害があるものとしてマーク付けされ、 i.LON 100 では使用されなくなります。ただし、スペアのフラッシュブロックにより、ブ ロックの障害が何度か発生しても、フラッシュディスクの信頼性は低下しないようになって います。 初期の時点では、i.LON 100 にはブロックの障害に対処するためのスペアのフラッシュブ ロックが最高 46 個用意されています。ただし、少数のフラッシュブロックは障害が発生し ているものとして最初からフラッシュのメーカーによってマーク付けされている場合がよく あり、使用を続けていくにつれてさらにブロックに障害が発生する場合があるため、i.LON 100 で使用可能なスペアブロックの数は異なります。スペアがいくつか使用可能になってい る限り、これによってフラッシュディスクの通常の操作に支障をきたすことありません。た だし、i.LON 100 上のフラッシュブロックに障害が発生し、スペアブロックが残っていない 場合には、フラッシュディスクの信頼性が損なわれます。このような状態が発生する前に、 i.LON 100 を交換する必要があります。 i.LON 100 のフラッシュブロックが消去の制限値に達するまでにかかる時間は、フラッシュ ディスクに書き込まれるデータの量と頻度に左右されます。論理フラッシュディスクに書き 込みを行うと、物理フラッシュブロックが消去されますが、この関係を正確に記述する単純 な公式はありません。i.LON 100 によって報告されるフラッシュの消去率は、個別のフラッ シュブロックではなく、フラッシュメモリ全体に適用されます。i.LON 100 には、高度なフ ラッシュファイルシステムが搭載されており、フラッシュの消去をすべての使用可能なブ ロック全体に分散させて、フラッシュの寿命を最適化します。時間が経過するにつれて、各 ブロックの実際の消去数はだいたい等しくなるため、フラッシュブロックすべての寿命が最 大化されます。フラッシュのメーカーの定格制限値によると、合計ブロック消去率の平均が 1 分あたり 39 回以下に常に保たれた場合、すべてのフラッシュブロックは最低でも 10 年は もつことになっています。この定格制限値を超えると、フラッシュディスクがそれより早く に消耗する場合があります。 フラッシュのメーカーが指定するブロック消去制限値は、かなり低く設定されています。一 部のフラッシュ部品を実際にテストしたところ、通常の使用条件での制限値は少なくとも 10 倍長くなることが示されています。これは、i.LON 100 フラッシュディスクの寿命が実際に はかなり長くなり、1 分あたりの消去率も 39 回よりかなり多くてもかまわないことを意味し ます。フラッシュのメーカーは、このようなテスト結果を非公式には認めていますが、保証 はなされません。この情報は、どれだけ慎重に寿命を予測するかに応じて、注意して使用し てください。なお、寿命を短めに設定すれば、消去率を増加させることも可能です。 i.LON 100 Internet Server Programmer’s Reference 15-1 i.LON 100 の構成は、1 分あたりのフラッシュ消去数に大きな影響を与える場合があります。 このため、i.LON 100 のフラッシュブロックの消去率と、いくつのスペアディスクが使用可 能になっているかを監視することが重要です。これは、SystemInfoRead 関数を使用して監 視できます。スペアブロックの数が、奨励される最低数より少なくなった場合は、i.LON 100 を交換することを検討してください。 フラッシュブロック消去率は、判断するのが難しい値です。この値が短期間で増減しても、 フラッシュの寿命には関係がありません。長期に及ぶ、継続的な消去率のみが真に影響を及 ぼします。ただし、データのログ記録を調整してこれが消去率に及ぼす影響を観察しようと しても、長期的な数字はあまり役に立ちません。このような困難なニーズに対応するために、 SystemInfoRead 関数ではフラッシュブロックの消去率に関して 4 つの異なる値を報告しま す。 最も重要な値は、2 日間の移動平均を使用して計算されます。これは、継続的な消去率のみ を反映します。ただし、この平均は消去率の変化に鈍感で、値が消去率の継続的な変化を完 全に反映するようになるまでに長くて 5 日かかる場合があります。3 分間の消去率と 1 時間 の消去率は、より短い期間を使用することでより即刻性のあるフィードバックを提供します が、短期間の活動(FTP から i.LON 100 へのファイルの転送など)により、値に大きな変化 が示される場合があります。最後の値は前回再起動してからの消去率で、消去率の変化を認 識する速さは 2 日間の平均よりもさらに遅くなりますが、長期的な視野を提供します。 SystemInfoRead 関数は、i.LON 100 に関して静的およびリアルタイムのシステム情報を取 得します。情報には、現在 i.LON 100 が使用できるスペアのフラッシュブロックの数や、 i.LON 100 のフラッシュブロックが消去される頻度を判断するために役立つ数字が含まれま す。またこの関数は、i.LON 100 で実行されているソフトウェアのバージョン、アプリケー ションに現在使用可能なディスク容量の合計、i.LON 100 が記録したメッセージ障害の合計 数などの情報も返します。 次の項では、SystemInfoRead 関数を呼び出すときに渡す必要のある<Data>パラメータの作 成方法と、関数が<Result>パラメータ内に返す出力について説明します。 15.1 SystemInfoRead SystemInfoRead 関数を呼び出すときに渡す<Data>パラメータには、 <UCPTsystemInfoType>と呼ばれるエレメントが含まれています。i.LON 100 が使用できる フラッシュディスクの合計容量や、i.LON 100 のトランシーバ ID など、静的なシステム情 報を返す場合は、ここに SI_STATIC と入力します。i.LON 100 が現在使用できるフラッシ ュメモリ量などのリアルタイムシステム情報を返す場合は、SI_REAL_TIME と入力します。 両方の情報を含める場合には、以下の例に示すように、このプロパティを空白のままにしま す。 関数が返す<Result>パラメータには、<Data>パラメータに指定した内容に応じて、静的シ ステム情報用の<Static>エレメント、またはリアルタイムシステム情報用の<Real_Time>エ レメント、あるいはこれら両方が含まれます。 <Result>パラメータの各エレメント内に含まれるプロパティについては、サンプルの後の各 項を参照してください。 <Data>パラ メータ <Data> <iLONSystemInfo> <UCPTsystemInfoType> </UCPTsystemInfoType> </iLONSystemInfo> </Data> <Result>パ ラメータ <Result> <iLONSystemInfo> <STATIC> 15-2 i.LON 100 Internet Server Programmer’s Reference <UCPTlogTime>2002-1008T11:50:41.000+02:00</UCPTlogTime> <UCPTcpuClockRate>264000000</UCPTcpuClockRate> <UCPTtotalDiskSpace>32696320</UCPTtotalDiskSpace> <UCPTmodelNumber>iLON100</UCPTmodelNumber> <UCPTbootromVersion>1.00.46</UCPTbootromVersion> <UCPTtransceiverID>TP/FT-10</UCPTtransceiverID> <UCPTfirmwareVersion>1.00.46</UCPTfirmwareVersion> <UCPTcpldVersion>67</UCPTcpldVersion> <UCPTmacID>0 d0 71 0 0 b8</UCPTmacID> <UCPTlonTalkUID0>80 0 0 0 1b 90</UCPTlonTalkUID0> <UCPTdiskSpareBlocksTotal>46</UCPTdiskSpareBlocksTotal> <UCPTdiskSpareBlocksMinRec>8</UCPTdiskSpareBlocksMinRec> <UCPTdiskEraseRateMaxRec>39</UCPTdiskEraseRateMaxRec> </STATIC> <REAL_TIME> <UCPTlogTime>2002-1008T12:10:37.000+02:00</UCPTlogTime> <UCPTminutesSinceReboot>21</UCPTminutesSinceReboot> <UCPTfreeDiskSpace>11073536</UCPTfreeDiskSpace> <UCPTdiskSpareBlocks>46</UCPTdiskSpareBlocks> <UCPTdiskEraseRates>14 -1 16 23</UCPTdiskEraseRates> <DpMessageFailures> <UCPTdpMessageFailures>2 0</UCPTdpMessageFailures> <UCPTdpMessageFailures>10 0</UCPTdpMessageFailures> <UCPTdpMessageFailures>60 0</UCPTdpMessageFailures> <UCPTdpMessageFailures>1440 0</UCPTdpMessageFailures> </DpMessageFailures> </REAL_TIME> </iLONSystemInfo> </Result> SystemInfoRead 関数が返す<Result>パラメータには、関数に渡す<Data>パラメータに指 定した内容に応じて、<REAL_TIME>エレメントまたは<STATIC>エレメント、あるいはこ れら両方が含まれます。 次の表では、<STATIC>エレメントに含まれているプロパティについて説明しています。 プロパティ 説明 <UCPTlogTime> SystemInfoRead 関数が呼び出されたシステム時刻を示す タイムスタンプ。このタイムスタンプはローカル時間で 示され、ローカル時間と UTC との時差を示す時間帯イン ジケータが付加されます。このフォーマットの詳細につ いては、6-11ページの「ローカル時間と協定世界時」を 参照してください。 <UCPTcpuClockRate> i.lon100 の CPU のクロックレート(Hz)。 <UCPTtotalDiskSpace> i.LON 100 が使用できるフラッシュディスク容量の合計 をバイトで表します。i.LON 100 が使用できる未使用の フラッシュディスク容量は、<REAL_TIME>エレメント に含まれます。 i.LON 100 Internet Server Programmer’s Reference 15-3 プロパティ 説明 i.LON 100 のモデル番号。これは次のいずれかになりま す。 <UCPTmodelNumber> 72101 - TP/FT-10 i.LON 100、モデムなし 72102 - TP/FT-10 i.LON 100、モデム付き 72103 - PL-20 i.LON 100、モデムなし 72104 - PL-20 i.LON 100、モデム付き <UCPTbootromVersion> i.LON 100 の bootrom バージョン。 <UCPTtransceiverID> i.LON 100 のトランシーバの種類。これは、TP/FT-10、 PL-20N、または PL20C のいずれかになります。 <UCPTfirmwareVersion> i.LON 100 が実行しているファームウェアのバージョ ン。 <UCPTcpldVersion> i.LON 100 が使用している CPLD(Complex Programmable Logic Device)のバージョン。 <UCPTmacID> i.LON 100 の Ethernet ポートの MAC(Media Access Control)ID。 <UCPTlonTalkUID0> i.LON 100 に割り当てられている最初の 16 の LonTalk UID(Unique Identifier)。最初の 2 つの LonTalk ID は予約されており、i.LON のホストアプリケーションは 3 番目の ID を使用し、RNI は 4 番目の ID を使用しま す。 <UCPTdiskSpareBlocksTotal> i.LON 100 に保持できるスペアのフラッシュブロックの 最大数。i.LON 100 が現在使用できるスペアブロックの 数は、<REAL_TIME>エレメントに含まれます。 <UCPTdiskSpareBlocksMinRec> i.LON 100 で使用可能なスペアのフラッシュブロックの 奨励最小数。 i.LON 100 が使用できる未使用のスペアのフラッシュブ ロック数は、<REAL_TIME>エレメントに含まれます。 奨励最小数よりも実際の数が少なくなった場合は、i.LON 100 を交換することを検討してください。 <UCPTdiskEraseRateMaxRec> 1 分あたりのフラッシュブロックの奨励最大消去数。フ ラッシュのメーカーの仕様(最低 10 年間)を実現するに は、消去数がこの範囲内に収まるようにする必要があり ます。 次の表では、<REAL_TIME>エレメントに含まれるプロパティについて説明しています。 プロパティ <UCPTlogTime> 15-4 説明 SystemInfoRead 関数が呼び出されたシステム時刻を示すタ イムスタンプ。このタイムスタンプはローカル時間で示さ れ、ローカル時間と UTC との時差を示す時間帯インジケー タが付加されます。このフォーマットの詳細については、611ページのローカル時間と協定世界時を参照してください。 i.LON 100 Internet Server Programmer’s Reference プロパティ 説明 <UCPTminutesSinceReboot> i.LON 100 が最後に再起動してからのおおよその経過時間 (分)。 <UCPTfreeDiskSpace> i.LON 100 が使用できる未使用のフラッシュディスク容量を バイトで表します。 <UCPTdiskSpareBlocks> i.LON 100 が現在使用できる残りのスペアのフラッシュブ ロック数。<STATIC>エレメントに含まれている <UCPTdiskSpareBlocksMinRec>プロパティは、i.LON 100 に確保するスペアのフラッシュブロックの奨励最小数を示し ます。奨励最小数よりも実際の数が少なくなった場合は、 i.LON 100 を交換することを検討してください。 <UCPTdiskEraseRates> このプロパティには、i.LON 100 でフラッシュブロックが消 去される頻度を判断するために使用できる、スペースで区切 られた整数の配列が含まれています。 例:12 1 4 5 各フィールドは、フラッシュブロックの消去率を示す各期間 を表します。再起動後 3 分以内に発生した消去は、これらの 計算から除外されます。フラッシュブロックは、消耗するま でに一定の回数だけ消去できます。 フィールド 1:直近の 3 分間で、フラッシュディスクブロッ クが消去された 1 分あたりの平均数。 フィールド 2:直近の 1 時間で、フラッシュディスクブロッ クが消去された 1 分あたりの平均数。 フィールド 3:2 日間の移動平均を使用して計算した、フ ラッシュディスクブロックが消去された 1 分あたりの平均 数。<STATIC>エレメントに含まれている <UCPTdiskEraseRateMaxRec>プロパティは、奨励される 最大消去率を示します。フィールド 3 の値がこの最大値を超 えている場合は、i.LON 100 の構成を変更して、フラッシュ ディスクにデータが記録される頻度を少なくすることをお勧 めします。ログへの記録頻度の変更がこの消去率の値に完全 に反映されるまでに、長くて 5 日かかる場合があることに注 意してください。 フィールド 4:最後に起動してから、フラッシュディスクブ ロックが消去された 1 分あたりの平均数。 注:待機時間が経過していないフィールドの場合は、–1 の値 が返されます。 i.LON 100 Internet Server Programmer’s Reference 15-5 プロパティ <DpMessageFailures> 説明 <DpMessageFailures>エレメントには 4 つの子エレメントが 含まれており、それぞれ<UCPTdpMessageFailures>と名付 けられています。 これらのプロパティには、スペースで区切られた 2 つの整数 値が含まれています。最初の値は期間を分単位で表します。 2 番目の値はこの期間中に発生したデータポイントの更新障 害の数を表します。 たとえば 2 0 の値は、直近の 2 分間に失われたメッセージが ないことを示します。1440 10 の値は、直近の 1440 分間(1 日)に、10 個のメッセージが失われたことを示します。 データポイントのメッセージの障害は、i.LON 100 がその データポイントへの更新をすべて処理できない場合に発生し ます。この問題は、ネットワークのトラフィックが多い場 合、アプリケーションが正しく構成されていない場合、また はトランザクションの多いのリモートアプリケーションが i.LON 100 データポイントの読み取りまたは書き込みを試行 している場合が原因です。たとえば、NVL データポイントは LonWorks ネットワーク内のネットワーク変数にバインドさ れている場合があり、これらの変数が一度に過度の更新を送 信していることが考えられます。または、イベントスケジ ューラに構成されている、一度に値を更新するデータポイン トの数が多すぎることも考えられます。前者の場合は、 LonWorks ネットワーク内のネットワークトラフィックを減 少させる必要があります。後者の場合には、ファンアウト方 法を使用して、1 つのデータポイントが多くのデータポイン トの作業を行うようにするか、イベントスケジューラの更新 の頻度を少なくする必要があります。 15-6 i.LON 100 Internet Server Programmer’s Reference 16 Web サービスとしての SOAP インタフェースの使用 本章は、読者が Web サービスのプログラミングと Microsoft Visual Studio .NET 開発環境 にある程度慣れていることを前提としています。本章に含まれているサンプルコードはすべ て Visual Basic .NET で書かれてていますが、i.LON 100 の SOAP インタフェースで標準の Web サービスを呼び出すことのできる開発ツールであれば、何を使用してもかまいません。 16.1 WSDL ファイルの参照 Microsoft Visual Studio .NET では、SOAP インタフェースを Web 参照として使用し、 SOAP 関数を使用して i.LON 100 の構成を変更するアプリケーションを作成できます。これ を行うには、まず i.LON 100 WSDL ファイルを参照します。次の手順は、これを Visual Basic .NET で実行する方法を説明したものです。 1. Microsoft Visual Basic .NET 開発環境を開きます。 2. [ファイル ファイル]メニューから[新規作成 新規作成]を選択します。これによって、図 2 のダイアログボッ ファイル 新規作成 クスが開きます。 Windows アプリケーションの作成 3. 名前を入力し、プロジェクトの場所を選択します。[OK]をクリックします。 4. i.LON 100 WSDL ファイルへの Web 参照をプロジェクトに追加します。[プロジェク プロジェク 参照の追加] ト]メニューから、[Web 参照の追加]を選択します。これによって、[Web 参照の追加 ウィンドウが開きます。次のアドレスをウィンドウ上部の[アドレス]テキストボックス に入力します。 http://[ilon100 ipaddress]/WSDL/iLON100.WSDL i.LON 100 Internet Server Programmer’s Reference 16-1 [ilon 100 ipaddress]は、アプリケーションが参照する、i.LON 100 に割り当てられてい る IP アドレスを表します。 5. Enter キーを押して Web 参照をダウンロードし、次に[参照の追加 参照の追加]をクリックします。 参照の追加 新しい Web 参照がソリューションエクスプローラの参照一覧に表示されます。 6. プロジェクトのフォームに Web サービスのインスタンスを作成します。これは、次の 行のコードをプロジェクトに追加することで作成できます。 Dim [iLonWebService] As New [name].iLON100() [name]は、ソリューションエクスプローラ内の Web 参照に割り当てられている名前を 表します。[iLonWebService]は、Web サービスに割り当てられているインスタンス名を 表します。 7. これで、[iLonWebService]インスタンスを使用して、SOAP インタフェースに用意され ているいずれの関数でも使用できるようになりました。サンプルコードについては、次 の「プログラミングサンプル」の項を参照してください。 16.2 プログラミングサンプル ここには、SOAP インタフェースを使用するアプリケーションを作成するときに役立つ、 Visual Basic .NET で作成されたプログラミングサンプルが含まれています。本書の第 3∼ 15 章で説明したとおり、データサーバ、NVE ドライバ、データロガー、アラームジェネ レータ、アラームノーティファイア、アナログ機能ブロック、接続マネージャ、イベントス ケジューラ、イベントカレンダー、および型変換機能のアプリケーションに対して i.LON 100 の各 SOAP 関数に渡される入力データは、オブジェクトと値を記述した、エンコードさ れた XML 文字列です。 この文字列は、関数が生成する SOAP メッセージの<Data>パラメータ内で i.LON 100 に渡 す必要があります。Visual Basic .NET には、この文字列を生成し、<Data>パラメータに渡 すための方法がいくつか用意されています。 注:第 3 章で説明したとおり、<Data>パラメータの内容は、エンコードされた XML フォー マットでネットワークを介して渡す必要があります。Microsoft Visual Basic .NET などの一 部の開発環境では、標準フォーマットのデータを受け入れ、それをエンコードされた XML に 変換します。ただし、すべての開発環境がこれを実行できるわけではありません。エンコー ドされた XML と標準の XML の詳細については、3-8ページの「エンコードされた XML と標 準 XML」を参照してください。 16.2.1 手動による<Data>パラメータの作成 パラメータの作成 手動による 関数の入力データを含む XML 文字列を生成し、それを<Data>パラメータに渡す 1 つの方法 として、以下の例に示すように、静的な XML 文字列を手動で作成する方法があります。こ のコードには、このプロセスの各手順を説明したコメントが含まれています。 Dim myWebReference As New iLON100_Reference.iLON100() Dim myXMLInputString As String DataServerRead が呼び出され、SOAP メッセージが送信されるときに<Data>パラメー タに含める XML 文字列を手動で作成します。 myXMLInputString = “<iLONDataServer><UCPTdataPointType>NVL _ </UCPTdataPointType><UCPTstartIndex>0</UCPTstartIndex> _ <UCPTcount>50</UCPTcount></iLONDataServer>” 16-2 i.LON 100 Internet Server Programmer’s Reference 既定の“localhost”を、i.LON 100 が使用している IP アドレスに置き換えて、i.LON 100 の場所を指定します。 Dim myURL As String myURL = myWebReference.Url() myWebReference.Url = myURL.Replace("localhost", "192.168.1.253") 関数が返した XML 文字列は、表示する前に手動で、または XML パーサを使用して解 析する必要があります。後述のプログラミングサンプルは、この方法を示しています。 Dim myXMLReturnString As String myXMLReturnString = myWebReference.DataServerRead(myXMLInputString) 16.2.2 XMLDocument オブジェクトの使用 Visual Basic .NET には、XML を使用してプログラミングを行う際に役立つ機能が用意され ています。これらの機能の 1 つに、XMLDocument というオブジェクト型があります。ここ では、XMLDocument オブジェクトを使用して、SOAP 関数が返した XML データを解析し、 操作する方法を示す 2 つの例を紹介します。 16.2.2.1 データポイントへの書き込み 次の例では、XMLDocument オブジェクトを使用して、SOAP 関数に渡す<Data>パラメー タを作成します。この例では、本書の第 3 章で説明した List/Get/Set アルゴリズムを使用し て、データポイントの構成への書き込みも行います。このアルゴリズムは、構成に書き込み を行う際に非常に役立ちます。Set 関数に渡す XML 文字列を手動で作成する代わりに、Get 関数からの出力を変更して、入力として使用することができるためです。List/Get/Set アル ゴリズムの一般的な説明については、3-13ページの「List、Get、Set、Delete 関数」を参照 してください。 このサンプルでは、DataServerList を呼び出して、i.LON 100 Data Server に追加されたす べてのデータポイントのインデックス番号を含む一覧を取得します。次に、DataServerGet 関数を使用して、0 のインデックス番号が割り当てられているデータポイントの構成を取得 します。 DataServerGet 関数は、選択したデータポイントの構成を含む XML 文字列を返します。こ のサンプルでは、XMLDocument オブジェクトを使用して、DataServerGet が返した構成を 保存し、その文字列内の<UCPTlocation>プロパティの値を変更します。次に、その文字列 を DataServerSet 関数に入力として渡します。DataServerSet が呼び出されると、選択した データポイントの<UCPTlocation>が Data Server で更新されます。 このアルゴリズムを使用すると、適用可能な Set 関数に対して入力文字列全体を作成しなく ても、任意の数のアプリケーションに対する任意の数のプロパティに書き込みを行うことが できます。このアルゴリズムを使用して、アプリケーションのオブジェクトを新たに作成す ることもできます。これを行うには、Get 関数が返したインデックス番号を、Set に渡す前 に変更または削除します。 i.LON 100 Web Service のインスタンスを宣言します。 Dim myWebReference As New iLON100_Reference.iLON100() 既定の“localhost”を、i.LON 100 が使用している IP アドレスに置き換えて i.LON 100 の IP アドレスを指定します。 Dim myURL As String myURL = myWebReference.Url() myWebReference.Url = myURL.Replace("localhost", "10.5.250.59") i.LON 100 Internet Server Programmer’s Reference 16-3 DataServerList を呼び出し、関数が取得した<Result>パラメータを myXMLreturnString 文字列変数に保存します。 Dim myXMLreturnString As String myXMLreturnString = myWebReference.DataServerList("") XMLDocument オブジェクトをインスタンス化し、DataServerList が返した <Result> エレメントを解析します。これによって、文字列内のデータを取得および操作できるよ うになります。LoadXml メソッドを使用して、<Result>パラメータを XMLDocument オブジェクトに読み込みます。 Dim myXML As New Xml.XmlDocument() myXML.LoadXml(myXMLreturnString) 関数が返した NVL の一覧を参照する変数を作成します。関数が返した文字列内の各 NVL の子エレメントは、この一覧内では個別のノードと見なされます。 Dim myXmlNodeList As Xml.XmlNodeList myXmlNodeList = myXML.SelectNodes("/iLONDataServer/NVL") DataServerList が返した一覧から、ユーザ指定の NVL への参照を作成します。 Dim myXmlNode As Xml.XmlNode Const NV_INDEX As Integer = 0 myXmlNode = myXmlNodeList.Item(NV_INDEX) <iLONDataServer>エレメントをノードの周りに挿入し、DataServerGet 関数の <Data>パラメータのフォーマットに合わせます。入力として作成した文字列を使用し て、DataServerGet 関数を呼び出します。この関数は、NV_INDEX のインデックス番 号を持つデータポイントの構成を返します。 myXMLreturnString = myWebReference.DataServerGet("<iLONDataServer>" &_ myXmlNode.OuterXml & "</iLONDataServer>") DataServerGet が返した<Result>パラメータを、前に作成した XMLDocument オブ ジェクトに保存します。次に、myXmlNode 変数内の戻り文字列に含まれている NVL エレメントを参照します。 myXML.LoadXml(myXMLreturnString) myXmlNodeList = myXML.SelectNodes("/iLONDataServer/NVL") myXmlNode = myXmlNodeList.Item(NV_INDEX) 更新されたテキストを、DataServerGet が返した文字列の<UCPTlocation>プロパティ に挿入します。次に、この文字列を DataServerSet に渡します。データポイントの <UCPTlocation>は、DataServerSet が呼び出されたときに Data Server 内で更新され ます。<UCPTlocation>プロパティは、各<NVL>エレメント内の 3 番目のプロパティで す。その結果、ChildNodes プロパティに渡されるインデックス値は 2 になる必要があ ります。これは、インデックス値が 0 に基づいているためです。 Dim myNewLocation As String myNewLocation = "\Building 1\Room 3\Ceiling " Const UCPTlocation As Integer = 2 myXmlNode.ChildNodes(UCPTlocation).InnerText = myNewLocation myXMLreturnString = myWebReference.DataServerSet(myXML.OuterXml) 16-4 i.LON 100 Internet Server Programmer’s Reference DataServerSet が返したインデックス番号が、関数に入力として渡したインデックス番 号と一致することを確認します。一致した場合は、データポイントの更新に成功したこ とになります。 myXML.LoadXml(myXMLreturnString) myXmlNodeList = myXML.SelectNodes("/iLONDataServer/NVL") myXmlNode = myXmlNodeList.Item(NV_INDEX) Const UCPTindex As Integer = 0 If myXmlNode.ChildNodes(UCPTindex).InnerText <> NV_INDEX _ Then MsgBox("FAILED") End If 16.2.2.2 データログの読み取り 次のプログラミングサンプルでは、静的な XML 文字列を入力として、DataLoggerRead 関 数を呼び出します。次に、DataLoggerRead が返した文字列を XMLDocument オブジェク トを使用して解析し、抽出した情報を SQL を使用してデータベースに書き込みます。この コードには、このプロセスの各手順を説明するコメントが含まれています。 i.LON100 の WSDL ファイルのインスタンスを作成します。 Dim ilon As New WebReference1.iLON100() 既定の“localhost”を、i.LON 100 が使用している IP アドレスに置き換えて、'i.LON 100 の IP の場所を指定します。 s = ilon.Url ilon.Url = s.Replace("localhost", "10.5.250.59") Dim ret As String Dim data As String DataLoggerReadに渡すXML文字列を作成します。このプログラムは、0のインデック ス番号を使用してデータロガーからのログエントリを読み取ります。 data="<iLONDataLogger><Log><UCPTindex>0</UCPTindex></Log></iLONDa taLogger>" DataLoggerRead を呼び出し、SOAP メッセージを送信します。 ret = ilon.DataLoggerRead(data) 関数が返した XML 文字列の解析を行う準備をします。戻り文字列を保存するための XML 文書オブジェクトと、文字列をナビゲートし、必要なプロパティを返すための Xpath ナビゲータオブジェクトを作成します。 Dim xmlDoc As New System.Xml.XmlDocument() Dim xmlNav As System.Xml.XPath.XPathNavigator DataLoggerRead が返した XML 文字列を解析します。 xmlDoc.LoadXml(ret) xmlNav = xmlDoc.CreateNavigator() 戻り文字列から抽出する値を保存するための繰り返し子を作成します。 Dim dataValues As System.Xml.XPath.XPathNodeIterator Dim timestamps As System.Xml.XPath.XPathNodeIterator Dim pointNames As System.Xml.XPath.XPathNodeIterator i.LON 100 Internet Server Programmer’s Reference 16-5 Dim locations As System.Xml.XPath.XPathNodeIterator Dim source As System.Xml.XPath.XPathNodeIterator Dim units As System.Xml.XPath.XPathNodeIterator Dim statuses As System.Xml.XPath.XpathNodeIterator dataValues = xmlNav.Select("/iLONDataLogger/Log/Element/UCPTvalue") timestamps = xmlNav.Select("/iLONDataLogger/Log/Element/UCPTlogTime") pointNames = xmlNav.Select("/iLONDataLogger/Log/Element/UCPTpointName") locations = xmlNav.Select("/iLONDataLogger/Log/Element/UCPTlocation") address=xmlNav.Select("/iLONDataLogger/Log/Element/UCPTlogSourceAddress") units = xmlNav.Select("/iLONDataLogger/Log/Element/UCPTunit") statuses = xmlNav.Select("/iLONDataLogger/Log/Element/UCPTpointStatus") 関数が返した XML 文字列を処理し、各プロパティを SQL データテーブルに追加します。 While (dataValues.MoveNext()) timestamps.MoveNext() pointNames.MoveNext() locations.MoveNext() address.MoveNext() units.MoveNext() statuses.MoveNext() s = "insert VACOMLOG (timestamp, unit, pointname, value, _ location, address, status) " s = s & " values('" & timestamps.Current.Value() & "', '" s = s & units.Current.Value() & "', '" s = s & pointNames.Current.Value() & "', '" s = s & dataValues.Current.Value() & "', '" s = s & locations.Current.Value() & "', '" s = s & address.Current.Value() & "', '" s = s & statuses.Current.Value() & "')" sqlCmd.CommandText = s sqlCmd.ExecuteNonQuery() printf(dataValues.Current.Value() & " timestamps.Current.Value()) End While " & _ 16.2.3 DataSets の使用 次のサブルーチンは、DataSets を使用して、DataServerRead 関数に渡す入力を作成します。 DataSets を使用した XML 文字列の作成には、いくつかの利点があります。 まず、入力文字列に定義されている各プロパティに、変数型を割り当てることができます。 これは、ユーザが特定のプロパティに割り当てることのできる値を制限する場合に役立ちま す。たとえば、<UCPTminDeltaTime>のようなプロパティに割り当てる値を整数変数に保 存することで、そのプロパティに割り当てることのできる値を数値に制限できます。Visual Basic .NET では、UINT16 などの型を使用すると、ユーザ定義の最小値と最大値を適用する ことで、さらに制限することができます。 同様に、<UCPTdescription>に割り当てる文字列を文字列変数に保存すると、指定する説明 の長さを制限できます。一般的に、型を使用すると、SOAP メッセージに発生するエラーの 可能性を削減できます。たとえば、ユーザは文字を含む文字列を、インデックス番号の値と して渡すことや、整数を必要とするプロパティとして渡すことはできなくなります。また、 16-6 i.LON 100 Internet Server Programmer’s Reference アプリケーションでエラーチェックを実行すると、応答エラー処理を実行することができま す。 DataSet は、関数が取得した XML 文字列を解析するときに、簡単にスキャンし、操作でき るリレーショナル構造体です。DataSet は、数多くの OLE や ActiveX コントロールのデー タソースとして使用できます。また、DataSet を.NET Data Provides とともに使用すると、 返された値を指定のデータベースに書き込むことができます。 16.2.3.1 DataSets と XML スキーマ DataSet のデータ型とリレーショナル構造体は、XML スキーマによって定義されます。ス キーマは、DataSets を使用する前にプロジェクトに追加する必要があります。スキーマをプ ロジェクトに追加するには、次の操作を実行します。 1. ソリューションエクスプローラでプロジェクト名を右クリックし、ポップアップメニ ューから[追加 追加]>[新しい項目の追加 追加 新しい項目の追加]を選択します。これによって、[新しい項目の追加 新しい項目の追加 ソリューション項目]ウィンドウが開きます。 2. [DataSet]を選択し、[開く 開く]をクリックします。次に、ウィンドウの一番下にある 開く [XML]タブをクリックし、テキストボックスにプロジェクトのスキーマを入力します。 3. スキーマは、XSD スキーマジェネレータを使用して、本書で説明するサンプルの <Data>パラメータから生成できます。または、XML スキーマのガイドラインを参照し て、最初からスキーマを作成することもできます。 http://www.w3.org/XML/Schema 次のコードは、DataServerRead 関数に渡す<Data>パラメータに含める XML 文字列に対し て生成するスキーマを表したものです。このスキーマは、この項に後から登場するコードサ ンプルに使用できます。DataSets を使用するときは、2 つのスキーマを指定する必要があり ます。1 つは関数に渡す<Data>パラメータ用で、もう 1 つは関数が取得する<Result>パラ メータ用です。 次のコードは、<Data>パラメータに使用できる XML スキーマを表したものです。 <?xml version="1.0" encoding="utf-8" ?> <xs:schema id="DataServerList_Data_Element" elementFormDefault="qualified" attributeFormDefault="qualified" xmlns="http://tempuri.org/DataServerList_Data.xsd" xmlns:mstns="http://tempuri.org/DataServerList_Data.e" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemasmicrosoft-com:xml-msdata"> <xs:element name="DataServerList_Data_Element" msdata:IsDataSet="true"> <xs:complexType> <xs:sequence> <xs:element name="iLONDataServer"> <xs:complexType> <xs:choice maxOccurs="1"> <xs:element name="UCPTdataPointType" type="xs:string" minOccurs="0"/> <xs:element name="UCPTsetting" type="xs:string" minOccurs="0" /> <xs:element name="UCPTstartIndex" type="xs:int" minOccurs="0" /> <xs:element name="UCPTcount" type="xs:int" minOccurs="0" /> </xs:choice> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> i.LON 100 Internet Server Programmer’s Reference 16-7 次のコードは、<Result>パラメータに使用できる XML スキーマを表したものです。 <?xml version="1.0" encoding="utf-8" ?> <xs:schema id="DataServerList_Result_Element" targetNamespace="http://tempuri.org/DataServerList_Data.xsd" elementFormDefault="qualified" attributeFormDefault="qualified" xmlns="http://tempuri.org/DataServerList_Data.xsd" xmlns:mstns="http://tempuri.org/DataServerList_Data.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemasmicrosoft-com:xml-msdata"> <xs:element name="DataServerList_Result_Element" msdata:IsDataSet="true"> <xs:complexType> <xs:sequence> <xs:element name="iLONDataServer"> <xs:complexType> <xs:sequence> <xs:element name="DpNVL" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="SCPTobjMajVer" type="xs:string" minOccurs="0" /> <xs:element name="SCPTobjMinVer" type="xs:string" minOccurs="0" /> <xs:element name="UCPTlastUpdate" type="xs:string" minOccurs="0" /> <xs:element name="UCPTlifeTime" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="NVL" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="UCPTindex" type="xs:string" minOccurs="0" /> <xs:element name="UCPTpointName" type="xs:string" minOccurs="0" /> <xs:element name="UCPTlocation" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> 16.2.3.2 エレメントのラッピング XML スキーマをプロジェクトに追加すると、そのスキーマを使用するコードの作成を開始 して、関数の<Data>パラメータに渡す入力 XML 文字列を生成できます。 ただし、DataSet には 2 つのラッピングエレメントが含まれていることに注意する必要があ ります。ルートエレメントは DataSet を表します。ルートエレメントの子は、入力 XML 文 字列に含まれるデータを含むテーブルを表します。 次の例は、DataSet が生成した XML 文字列です。 16-8 i.LON 100 Internet Server Programmer’s Reference <A><B><UCPTdataPointType>NVL</UCPTdataPointType></B></A> 親エレメントである A は、DataSet 名を表します。B は、テーブル名を表します。これは、 本書の第 4∼16 章に示されている SOAP メッセージ例の<Data>エレメントの下にある子エ レメントの名前に一致する必要があります。ここでは、DataSet が生成する入力文字列は DataServerRead 関数に渡されるため、これは iLONDataServer になる必要があります。 上の文字列を使用して DataServerList などの SOAP 呼び出しを行う前に、DataSet に含ま れている親エレメント A を取り除く必要があります。これによって、上のメッセージは次の ように短縮されます。 <B><UCPTdataPointType>NVL</UCPTdataPointType></B> その結果、アプリケーションが生成する SOAP メッセージは、Data という 1 つの親エレメ ントのみを含むようになります。次の「DataSets のプログラミングサンプル」の項に含まれ ているサブルーチンは、DataSet が生成した文字列から親エレメントを取り除きます。 16.2.4 DataSets のプログラミングサンプル 次のサブルーチンでは、ADO.NET DataSets を利用して、DataServerRead 関数に渡す XML 文字列を作成し、関数が返した XML 文字列からデータを取得します。このコードを含 むプロジェクトは、前項で説明したとおり、関数に渡す<Data>パラメータ用の XML スキー マと、関数が返す<Result>パラメータ用の XML スキーマを含んでいる必要があります。 i.LON 100 の WSDL ファイルのインスタンスをプロジェクトに追加します。 ILON100_Reference は、ソリューションエクスプローラの WSDL ファイルのインスタ ンスに割り当てられている名前です。 Dim myWebReference As New iLON100_Reference.iLON100() このプロジェクトに追加した XML スキーマが定義している DataSet を作成します。こ こでスキーマ ID (DataServerList_Data_Element)を使用していることに注目してくだ さい。 Dim myDataSet_Data As New DataServerList_Data_Element() スキーマの DataTable を作成します。このテーブルに追加されるデータは、 DataServerRead が呼び出され、SOAP メッセージが送信されるときに<Data>パラメー タに挿入される XML 文字列を作成する際に使用します。 Dim myDataTable_Data As _ DataServerList_Data_Element.iLONDataServerDataTable myDataTable_Data = myDataSet_Data.iLONDataServer DataTable は DataRows で構成されています。SOAP メッセージを送信するときは、1 つの DataRow を使用します。SOAP メッセージを受信するときは、複数の DataRows を使用することができます。行は、1 つの型のオブジェクトが複数存在する場合に使用 します。 Dim myDataRow_Data As _ DataServerList_Data_Element.iLONDataServerRow myDataRow_Data = myDataTable_Data.NewiLONDataServerRow With myDataRow_Data .UCPTdataPointType = "NVL" .UCPTsetting = 0 i.LON 100 Internet Server Programmer’s Reference 16-9 .UCPTstartIndex = 5001 .UCPTcount = 3 End With 更新された行をテーブルに追加します。 myDataTable_Data.AddiLONDataServerRow(myDataRow_Data) SOAP メッセージは<Data>エレメントをルートエレメントとして提供するため、ルー トエレメントを取り除く必要があります。詳細については16-8ページの「エレメントの ラッピング」を参照してください。 Dim myXML As New Xml.XmlDocument() myXML.LoadXml(myDataSet_Data.GetXml()) Dim myElement As Xml.XmlElement myElement = myXML.FirstChild XML文字列を関数に渡す準備ができました。 Dim myXMLString As String myXMLString = myElement.InnerXml 既定の“localhost”を、i.LON 100 が使用している IP アドレスに置き換えることで、 i.LON 100 の IP の場所を指定します。 Dim myURL As String myURL = myWebReference.Url() myWebReference.Url = myURL.Replace_ ("localhost", "192.168.1.253") DataServerList を呼び出し、SOAP メッセージを送信します。 myXMLString = myWebReference.DataServerList(myXMLString) 返された XML 文字列を DataSet に挿入するには、まずリーダに渡す必要があります。 リーダは、結果の Dataset 内のデータをプロジェクトに読み込むために必要となる基本 機能を提供します。 Dim myReader As System.IO.StringReader myReader = New System.IO.StringReader(myXMLString) このプロジェクトに作成された、結果の DataSet が定義する DataSet 型にリーダを渡 します。この場合、この DataSet は DataServerList_Result.xsd と呼ばれます。 Dim myDataSet_Result As New DataServerList_Result_Element() myDataSet_Result.ReadXml(myReader, XmlReadMode.InferSchema) 取得したデータを保存する DpNVLDataTable は、プロジェクトに追加した DataServerList_Result_Element スキーマ内で定義されているテーブルです。 Dim myDataTable_DpNVL As _ DataServerList_Result_Element.DpNVLDataTable myDataTable_DpNVL = myDataSet_Result.DpNVL Dim myDataTable_NVL As _ DataServerList_Result_Element.NVLDataTable myDataTable_NVL = myDataSet_Result.NVL 16-10 i.LON 100 Internet Server Programmer’s Reference 返された最初で唯一の DpNVL を取得します。プロジェクトに作成されたスキーマでは、 このテーブルに存在可能なエレメントは 1 つだけであると指定していますが、テーブル 内のデータにアクセスするには依然としてインデックスが必要です。 Dim myDataRow_DpNVL As DataServerList_Result_Element.DpNVLRow myDataRow_DpNVL = myDataTable_DpNVL.Rows(0) Dim myDataRow_NVL As DataServerList_Result_Element.NVLRow Dim i As Int16 RichTextBox1.Text = "" DataSet は多くの OLE や ActiveX コントロールのデータソースとして機能します。通 常、次のコードは必要ありません。次のループは、関数が返した DataSet に保存されて いる NVL ポイントの内容をスキャンし、それらを 1 行ずつテキストボックスに表示し ます。 For i = 0 To myDataTable_NVL.Rows.Count - 1 myDataRow_NVL = myDataTable_NVL.Rows(i) With myDataRow_NVL RichTextBox1.Text = RichTextBox1.Text & _ .UCPTindex & " " & _ .UCPTlocation & " " & _ .UCPTpointName & vbCrLf End With Next i.LON 100 Internet Server Programmer’s Reference 16-11 17 XML 構成ファイルの手動変更 i.LON 100 の XML 構成ファイルは手動で作成し、管理することも、i.LON 100 SOAP イン タフェースを使用することもできます。この項では、XML ファイルを作成し、i.LON 100 の適切なディレクトリにダウンロードして、既に作成された XML ファイルにアクセスし、 変更を加えて再び i.LON 100 にダウンロードする方法について説明します。 Echelon 社では、SOAP インタフェースを使用して XML 構成ファイルを管理することを強 くお勧めしています。i.LON 100 は、SOAP メッセージに書かれたすべてのデータのエラー チェックを実行するため、無効なデータが XML ファイルに書き込まれることがなくなりま す。i.LON 100 は、FTP を経由してダウンロードされた XML ファイルのエラーチェックは 実行しないため、XML ファイルを手動で編集すると、起動エラーが発生する可能性があり ます。 また、SOAP メッセージは i.LON 100 の動作中に i.LON 100 に送信でき、SOAP メッセー ジの影響を受ける XML ファイルは再起動せずに更新されます。本章で説明する手順を使用 して手動で XML ファイルを編集する場合は、i.LON 100 を再起動する必要があります。 17.1 XML ファイルの作成 次の手順では、XML ファイルを作成し、i.LON 100 の構成ディレクトリに追加する方法を 説明します。 1. 本書に記載されているガイドラインに従って、XML ファイルを作成します。作成する XML ファイルのフォーマットと、各 XML ファイルに定義する必要のあるプロパティに ついては、各アプリケーションの説明を参照してください。 ファイルは本書に示されているファイル名を使用して保存するようにしてください。 XML ファイルを作成するには Microsoft® XML メモ帳などのテキストエディタを使用 してください。 2. FTP クライアントアプリケーションを使用して、i.LON 100 への FTP セッションを開 きます。i.LON 100 に接続するには、i.LON 100 の IP アドレスまたはホスト名を指定 します。 i.LON 100 の既定のユーザ名とパスワードはどちらも ilon です。 3. XML ファイルをアプリケーションディレクトリに挿入します。本書で説明しているほ とんどの XML ファイルは、/root/config/software ディレクトリに含まれています。詳細 については、本書の各アプリケーションの説明を参照してください。 4. FTP セッションを閉じて、i.LON 100 を再起動します。i.LON 100 が再起動すると、新 しい XML ファイルが読み取られ、構成が適切に変更されます。 17.2 XML ファイルの変更 次の手順では、i.LON 100 に既に追加されている XML ファイルにアクセスし、変更する方 法を説明します。 1. FTP クライアントアプリケーションを使用して、i.LON 100 への FTP セッションを開 きます。i.LON 100 に接続するには、i.LON 100 の IP アドレスまたはホスト名を指定 します。 i.LON 100 の既定のユーザ名とパスワードはどちらも ilon です。 2. 変更する XML ファイルのディレクトリにアクセスします。本書で説明しているほとん どの XML ファイルは、i.LON 100 の/root/config/software ディレクトリに含まれてい ます。詳細については、本書の各アプリケーションの説明を参照してください。 i.LON 100 Internet Server Programmer’s Reference 17-1 3. Microsoft XML メモ帳またはその他のテキストエディタを使用して、変更する XML ファイルを開きます。XML ファイルを自由に変更します。ただし、XML ファイルの フォーマットは変更しないでください。 4. XML ファイルを保存し、元のディレクトリに戻します。FTP セッションを閉じます。 5. i.LON 100 を再起動します。i.LON 100 が再起動すると、変更された XML ファイルが 読み取られ、構成が適切に変更されます。 17.3 i.LON 100 間での XML ファイルのコピー 1 つの i.LON 100 アプリケーションの構成は、FTP を使用して別の i.LON 100 にコピーす ることもできます。XML 構成ファイルを 1 つの i.LON 100 から別の i.LON 100 に移動する ときは、コピー元のファイル内で参照しているデータポイント名が、コピー先の i.LON 100 のデータポイントに対応していることを確認する必要があります。 対応していない場合には、データポイント名の参照を変更してコピー先の i.LON 100 の既存 のデータポイント名に一致するようにするか、コピー元の XML ファイル内のデータポイン ト名に一致する名前を持つデータポイントをコピー先の i.LON 100 に追加します。名前の不 一致が問題にならない場合もあります。たとえば、EventCalendar.XML ファイルにはデー タポイント名の参照が含まれていません。このため、そのファイルは名前を変更しなくても 1 つの i.LON 100 から別の i.LON 100 にコピーできます。型変換ルールの構成ファイルにも 同じことが言えます。 ただし、ほとんどのアプリケーションでは名前の変更が必要になります。たとえば AlarmGenerator.XML ファイルでは、XML ファイルをコピー先の i.LON 100 にコピーする 前に、<InputDataPoint>、<CompareDataPoint>、<AlarmDataPoint>、および <Alarm2DataPoint>のエレメントの<UCPTpointName>プロパティを確認する必要があり ます。 次の手順では、XML ファイルを 1 つの i.LON 100 から別の i.LON 100 にコピーする方法を 説明します。 1. FTP クライアントアプリケーションを使用して、コピーする XML ファイルを含む i.LON 100 への FTP セッションを開きます。i.LON 100 に接続するには、i.LON 100 の IP アドレスまたはホスト名を指定します。 i.LON 100 の既定のユーザ名とパスワードはどちらも ilon です。 2. コピーする XML ファイルのディレクトリにアクセスします。本書で説明しているほと んどの XML ファイルは、i.LON 100 の/root/config/software ディレクトリに含まれて います。詳細については、本書の各アプリケーションの説明を参照してください。 3. Microsoft XML メモ帳またはその他のテキストエディタを使用して、変更する XML ファイルを開きます。このファイルをローカルで保存し、FTP セッションを閉じます。 4. FTP クライアントアプリケーションを使用して、2 番目の i.LON 100 への FTP セッシ ョンを開きます。i.LON 100 の既定のユーザ名とパスワードはどちらも ilon です。 5. コピー先の i.LON 100 ディレクトリにアクセスします。本書で説明しているほとんどの XML ファイルは、i.LON 100 の/root/config/software ディレクトリに含まれています。 詳細については、本書の各アプリケーションの説明を参照してください。 6. 手順 3 で保存した XML ファイルを i.LON 100 の適切なディレクトリに挿入します。 7. i.LON 100 を再起動します。i.LON 100 が再起動すると、新しい XML ファイルが読み 取られ、構成が適切に変更されます。 17-2 i.LON 100 Internet Server Programmer’s Reference 索引 D あ Data Server XML 構成ファイル · 4-3 外部データポイント · 5-1 概要 · 4-1 データポイントの削除 · 4-20 データポイントの作成 · 4-15 アナログ機能ブロック アナログ機能ブロックの一覧 · 9-3 アナログ機能ブロックの構成の取得 · 9-4 アナログ機能ブロックの削除 · 9-14 アナログ機能ブロックの作成 · 9-12 アナログ機能ブロックの変更 · 9-12 概要 · 9-1 出力関数 · 9-9 比較関数 · 9-10 アプリケーション 概要 · 3-1 構成 · 3-6 アラーム アラーム生成 · 7-1 アラーム通知 · 8-1 アラームジェネレータ アラームジェネレータの一覧 · 7-3 アラームジェネレータの構成の取得 · 7-4 アラームジェネレータの削除 · 7-15 アラームジェネレータの作成 · 7-14 アラームジェネレータの変更 · 7-14 紹介 · 7-1 ヒステリシス · 7-12 アラームノーティファイア アラーム通知先 · 8-1, 8-15 アラームノーティファイアの一覧 · 85 アラームノーティファイアの構成の 取得 · 8-5 アラームノーティファイアの削除 · 826 アラームノーティファイアの作成 · 816 アラームノーティファイアの変更 · 816 アラームの確認 · 8-22 アラームログファイル · 8-2 概要 · 8-1 状態 · 8-14 電子メールプロファイル · 8-1, 8-12 ログファイルの削除 · 8-24 ログファイルの読み取り · 8-18 アラームの確認 · 8-22 アラームログファイルの削除 · 8-24 N NVE ドライバ · 5-1 S SOAP 説明 · 1-1 バージョン · 1-1 SOAP メッセージのフォーマット · 2-3, 3-7 U UTC · 6-11 W WSDL ファイル Visual Basic .NET · 16-1 WSDL ファイル · 2-2, 3-6 WSDL ファイルの参照 · 16-1 X XML XMLDocument オブジェクト型 · 163 XML ファイルのコピー · 17-1 XML ファイルの手動構成 · 17-1 XML ファイルの手動変更 · 17-1 構成ファイル · 3-5 説明 · 1-1 バージョン · 1-1 i.LON 100 Internet Server Programmer’s Reference 17-1 アラームログファイルの読み取り · 8-18 き い 協定世界時 · 6-11 イベントカレンダー 例外ポイントの一覧 · 12-3 例外ポイントの構成の取得 · 12-4 例外ポイントの削除 · 12-11 例外ポイントの作成 · 12-10 例外ポイントの変更 · 12-10 イベントスケジューラ · 11-1 イベントスケジューラ構成の取得 · 11-5 イベントスケジューラの一覧 · 11-4 イベントスケジューラの削除 · 11-14 イベントスケジューラの作成 · 11-11 イベントスケジューラの変更 · 11-11 こ え エラーコード · 3-10 エンコードされた XML · 3-8 コードサンプル · 16-2 Data Point 関数 · 2-13 す スケジュール イベントカレンダー · 12-1 イベントスケジューラの作成 · 11-1 概要 · 11-1 日付を基にしたスケジュール · 11-1 曜日を基にしたスケジュール · 11-1 例外ポイント · 12-1 スケジュール例外ポイント 例外ポイント · 12-1 せ か 外部データポイント NVE 構成の取得 · 5-3 NVE データポイントの削除 · 5-7 NVE データポイントの作成 · 5-6 NVE データポイントの変更 · 5-6 一覧 · 5-3 外部ネットワーク変数 · 5-1 型変換機能 · 13-1 型変換機能の一覧 · 13-3 型変換機能の構成の取得 · 13-4 型変換機能の削除 · 13-12 型変換機能の作成 · 13-11 型変換機能の変更 · 13-11 型変換ルール 概要 · 14-1 型変換ルールの一覧 · 14-3 型変換ルールの構成の取得 · 14-4 型変換ルールの削除 · 14-12 型変換ルールの作成 · 14-1, 14-10 型変換ルールの変更 · 14-10 ソフトウェアに付属 · 13-7 17-2 セキュリティ · 2-2, 3-7 接続プロファイル · 10-1 接続マネージャ 概要 · 10-1 ダイヤルアウト · 10-1 ダイヤルイン · 10-1 プロファイル構成の取得 · 10-6 プロファイルの一覧 · 10-3 プロファイルの削除 · 10-10 プロファイルの作成 · 10-9 プロファイルの変更 · 10-9 モデムの構成 · 10-9 て データポイント · 2-1 NVC · 4-1 NVE · 4-1, 5-1 NVL · 4-1 値の書き込み · 2-6 データポイント構成の変更 · 4-15 データポイント値の書き込み · 4-19 データポイント値の読み取り · 2-9, 416 i.LON 100 Internet Server Programmer’s Reference データポイントの構成の取得 · 4-10 データポイントの削除 · 4-20 データポイントの作成 · 4-15 データポイントの優先度のリセット · 4-20 優先度 · 2-8 優先度のリセット · 2-12 データロガー · 6-1 XML 構成ファイル · 6-1 構成の取得 · 6-5 データロガーの一覧 · 6-4 データロガーの削除 · 6-15 データロガーの作成 · 6-9 データロガーの変更 · 6-9 データログの読み取り · 6-10 ログエントリの削除 · 6-13 データログ · 6-1 データログファイルの読み取り · 6-10 に 認証 · 2-2, 3-7 ね は パフォーマンス問題 · 3-15 ひ 標準 XML · 3-8 ふ フラッシュメモリ · 1-1, 15-1 プログラミングサンプル · 16-2 Data Point 関数 · 2-13 も モデムの構成 · 10-9 り リソースファイル · 3-12 ネットワークデータ型の変換 · 13-1 i.LON 100 Internet Server Programmer’s Reference 17-3