227
i.LON ® 100 Internet Server プログラマー用 プログラマー用 プログラマー用 プログラマー用 リファレンス リファレンス リファレンス リファレンス バージョン 1.0 078-0250-01A

iLON 100 Internet Server プログラマー用 リファレンス‚»ージが送信されます。SOAP メッセージの内容は、関数に渡す入力によって変化します。

  • Upload
    lamque

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

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 〒151-0053 東京都渋谷区代々木 1-58-5 San Jose, CA 95126, USA 代々木吉野ビル

www.echelon.com www.echelon.co.jp

※本書は Echelon Corporation により作成された『i.LON® 100 Internet Server Programmer's Reference』をエシェロン・ジャパン株式会社にて翻訳したものです。

i.Lon 100 Internet Server Programmer’s Reference i

目次

1 はじめに............................................................................................................................... 1-1 1.1 本書について ................................................................................................................... 1-1 1.2 プログラミングサンプル ................................................................................................. 1-2 1.3 はじめに .......................................................................................................................... 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

ii i.LON 100 Internet Server Programmer’s Reference

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

i.Lon 100 Internet Server Programmer’s Reference 1-1

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

1-2 i.LON 100 Internet Server Programmer’s Reference

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インタフェースを使用したデータポイントの監視と制御」を参照してください。

i.Lon 100 Internet Server Programmer’s Reference 2-1

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間の抽象化層では、あらゆる型およびあらゆ

2-2 i.LON 100 Internet Server Programmer’s Reference

るデバイスからのデータポイントを同じように使用するための機能をすべての 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コンテンツすべてにパスワード

i.Lon 100 Internet Server Programmer’s Reference 2-3

保護を追加することができます。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: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/"> <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関数を呼び出すときに入力として渡す必要のある各パラメータを示し、それについて説明します。

2-4 i.LON 100 Internet Server Programmer’s Reference

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-07-24T01: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関数が返す結果文字列のサンプルは、本章で後述します。

i.Lon 100 Internet Server Programmer’s Reference 2-5

2.2.4.3 SOAPのエラー応答

次のコード例は、ユーザが関数に渡した入力がエラーを発生した場合に 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> <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 フォーマットエラー。

2-6 i.LON 100 Internet Server Programmer’s Reference

エラーエラーエラーエラー コードコードコードコード

エラーメッセージエラーメッセージエラーメッセージエラーメッセージ

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>

i.Lon 100 Internet Server Programmer’s Reference 2-7

表 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ページの「データポイント値と優先度」を参照してください。

2-8 i.LON 100 Internet Server Programmer’s Reference

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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 イベントスケジューラが使用する優先度は起動中のデータポイントに割り当てられている優先度より高いため、データポイントの値が更新されます。

カスタムアプリケーションによる DataPointWriteの呼び出し

75 DataPointWriteの呼び出しに使用する優先度はイベントスケジューラによってデータポイントに割り当てられている優先度より高いため、データポイントの値が更新されます。

イベントスケジューラによるデータポイントの更新

240 イベントスケジューラが使用する優先度はデータポイントを更新するために最後のアプリケーションが使用した優先度よりも低いため、データポイントの値は更新されません。

i.Lon 100 Internet Server Programmer’s Reference 2-9

イベントイベントイベントイベント 優先度優先度優先度優先度 操作結果操作結果操作結果操作結果

カスタムアプリケーションによるDataPointResetPriorityの呼び出し

255 カスタムアプリケーションがDataPointResetPriority関数を呼び出して、データポイントに割り当てられている優先度をリセットします。これによって、データポイントの値が変更されることはありませんが、データポイントに割り当てられている優先度が最低の優先度である 255にリセットされます。この時点で、すべてのアプリケーションがこのデータポイントに書き込めるようになります。

DataPointResetPriority関数の詳細については、2-12ページの「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>

2-10 i.LON 100 Internet Server Programmer’s Reference

リターンパラメータ

<Result> <UCPTpointName>NVL_nvo03Switch</UCPTpointName> <UCPTfieldName>state</UCPTfieldName> <UCPTlocation>MainBuilding\First Floor\Meetingroom\Light<UCPTlocation>

<UCPTpointUpdateTime>2001-07-24T01: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文字までの英数字から成る文字列で、データポイントの場所を記述します。このユーザ定義プロパティは、データポイントの作成時に定義されます。これを使用すると、データポイントを物理的な場所またはデバイスごとに管理できます。

i.Lon 100 Internet Server Programmer’s Reference 2-11

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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章を参照してください。

2-12 i.LON 100 Internet Server Programmer’s Reference

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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」で

i.Lon 100 Internet Server Programmer’s Reference 2-13

説明します。ただし、この関数を使用する前に第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に一覧表示されているプロパティ名を参照することで、このオブジェクトから個別に取得できます。

2-14 i.LON 100 Internet Server Programmer’s Reference

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 ilon As New WebReference1.iLON100() Dim retRead As New WebReference1.DataPointReadReturnType() Dim retWrite As New WebReference1.DataPointWriteReturnType() Dim 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.

i.Lon 100 Internet Server Programmer’s Reference 2-15

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 3-1

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つの型から別の型に変換できます。データを変換するには、型変換機能、およびオプションで型変換ルールを作成

3-2 i.LON 100 Internet Server Programmer’s Reference

する必要があります。表 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 i.LON 100の SOAP関数

関数名関数名関数名関数名 説明説明説明説明

DataServerList DataServerGet DataServerSet DataServerDelete DataServerRead DataServerWrite DataServerResetPriority

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ドライバ」を参照してください。

i.Lon 100 Internet Server Programmer’s Reference 3-3

関数名関数名関数名関数名 説明説明説明説明

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ページの「アラームノーティファイア」を参照してください。

3-4 i.LON 100 Internet Server Programmer’s Reference

関数名関数名関数名関数名 説明説明説明説明

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ページの「イベントカレンダー」を参照してください。

i.Lon 100 Internet Server Programmer’s Reference 3-5

関数名関数名関数名関数名 説明説明説明説明

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

3-6 i.LON 100 Internet Server Programmer’s Reference

注:/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ファイルを参照する方法をステップをふんで説明しています。

i.Lon 100 Internet Server Programmer’s Reference 3-7

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: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>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に関連する任意の数のプロパティ構成情報を含めます。文字列の内容は関数によって異なります。

3-8 i.LON 100 Internet Server Programmer’s Reference

<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-xml-20001006)の中で XML 1.0に対して定義しているように、&、<、および>の文字にエスケープ文字を使用します。このエスケープ文字のルールは次のとおりです。 • <の文字は&lt;に置換 • >の文字は&gt;に置換 • &の文字は&amp;に置換 SOAPアプリケーションでは、<Data>と<Result>のパラメータ(次の項を参照)の値を文字列として取り扱います。この文字列は、XML解析エンジンが直接デコードし、操作します。ネットワークを経由して<Data>パラメータ内で渡す入力文字列は、すべてエンコードされた有効な XMLであり、<Result>パラメータ内で i.LON 100が返す文字列は、エンコードされた有効な XMLとしてネットワークを経由して渡されます。

i.Lon 100 Internet Server Programmer’s Reference 3-9

<?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> &lt;iLONApplication&gt; &lt;UCPTindexValue&gt;3&lt;/UCPTindexValue&gt; &lt;UCPTpointName&gt;NVL_nvo03Switch&lt;/UCPTpointName&gt; &lt;/iLONApplication&gt; </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/

3-10 i.LON 100 Internet Server Programmer’s Reference

バージョン 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 SOAP-ENV: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>

i.Lon 100 Internet Server Programmer’s Reference 3-11

</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 フィールド名が見つかりません。これは、構造体のデータポイントの読み取り、書き込み、または設定を試みたときに、存在しない構造体フィールドを参照した場合に発生します。

3-12 i.LON 100 Internet Server Programmer’s Reference

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デバイスのリソースファイルを作成し、これによって、標準ではないそのメーカー固有のネットワーク変数を記述します。これらのファイルは標準のリ

i.Lon 100 Internet Server Programmer’s Reference 3-13

ソースファイルと同じ方法で、特定のメーカーのデバイスのデータの表示フォーマットを記述します。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に追加された各データロガーのインデックス番号、最後の更新時刻、説明、および機能ブロック名などの一覧を返します。

3-14 i.LON 100 Internet Server Programmer’s Reference

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関数の入力文字列を最初から作成するよりも効率的です。

i.Lon 100 Internet Server Programmer’s Reference 3-15

注:このアルゴリズムを使用する場合は、アラームジェネレータに割り当てられているインデックス番号を増加するか、この手順で作成した文字列からインデックスプロパティを削除する必要があります。そうしないと、選択されている既存のアラームジェネレータの構成が次の手順で上書きされてしまいます。これについては第 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です。

3-16 i.LON 100 Internet Server Programmer’s Reference

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関数について説明します。

i.Lon 100 Internet Server Programmer’s Reference 4-1

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とそのアプリケーションを構成するための各ツール間の関係を示したものです。

4-2 i.LON 100 Internet Server Programmer’s Reference

i.LON 100データサーバ

i.LON 100アプリケーション アラームノーティファイア アラームジェネレータ データロガー 接続マネージャ アナログ機能ブロック イベントスケジューラ イベントカレンダー 型トランスレータ

外部ネットワークデバイス

i.LON 100 SOAP/XMLインタフェースを使用したカスタムアプリケーション

i.LON 100アプリケーションはNVE、NVC、およびNVLデータポイント値と情報をポーリングします。

NVEドライバNVEドライバは i.LON 100データサーバおよびi.LON 100が監視するさまざまな外部デバイス間の通信を管理します。

i.LON 100構成ソフトウェア

LONMAKER

i.LON 100のさまざまなアプリケーションは、i.LON 100構成ソフトウェアとLONMAKER、ならびにSOAP/XMLインターフェイスを使用して設定できます。

i.LON 100

NVEデータポイント

NVEデータポイントNVLデータポイント

データポイントごとに 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アプリケーションを使用するときにこのデータポイントを参照できるようになります。アプリケーションのいずれかがデータポイントを参照するときには、そのアプリケーションが利用するデータポイントがデータポイント一覧に追加され、データポイントが更新されるたびにアプリケーションが通知を受けるようになります。このようにして、各アプリケーションは使用中のデータポイントに関連するすべての最新のネットワーク情報にアクセスできます。

i.Lon 100 Internet Server Programmer’s Reference 4-3

ここでは、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関数

4-4 i.LON 100 Internet Server Programmer’s Reference

を使用します。以下に 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>

i.Lon 100 Internet Server Programmer’s Reference 4-5

</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>

4-6 i.LON 100 Internet Server Programmer’s Reference

<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</UCPTformatDescription> <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>

i.Lon 100 Internet Server Programmer’s Reference 4-7

<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</UCPTformatDescription> <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ファイルのエラーチェックは実行しないため、アプリケーションが正しく起動しない可能性があります。

4-8 i.LON 100 Internet Server Programmer’s Reference

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 DataServerListの入力プロパティ

パラメータパラメータパラメータパラメータ 説明説明説明説明 <UCPTdataPointType> リターン文字列に一覧表示されるデータポイントの種類(NVE、

NVL、NVC)を入力します。このプロパティを空にすると、すべてのデータポイントの種類が表示されます。

i.Lon 100 Internet Server Programmer’s Reference 4-9

パラメータパラメータパラメータパラメータ 説明説明説明説明 <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>

4-10 i.LON 100 Internet Server Programmer’s Reference

<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

i.Lon 100 Internet Server Programmer’s Reference 4-11

input</UCPTdescription> <UCPTformatDescription>SNVT_obj_request</UCPTformatDescription> <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>パラメータに定義されている設定で上書きされます。

4-12 i.LON 100 Internet Server Programmer’s Reference

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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のリソースファイルに存在する場合は、既定値がこのプロパティに割り当てられます。

i.Lon 100 Internet Server Programmer’s Reference 4-13

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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の既定値に設定すると、受信障害を検知する機能が無効になります。

4-14 i.LON 100 Internet Server Programmer’s Reference

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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ではリソースファイルに定義されている値を引き続き使用するためです。

i.Lon 100 Internet Server Programmer’s Reference 4-15

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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>エレメント内に含まれます。

4-16 i.LON 100 Internet Server Programmer’s Reference

注: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では、各データポイントの関数が返すプロパティについて説明しています。

i.Lon 100 Internet Server Programmer’s Reference 4-17

注:この関数の 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> データポイント名。

4-18 i.LON 100 Internet Server Programmer’s Reference

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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ページの「データポイント値と優先度」を参照してください。

i.Lon 100 Internet Server Programmer’s Reference 4-19

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>

4-20 i.LON 100 Internet Server Programmer’s Reference

<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>パラメータの中で削除したいデータポイントをインデックス番号で参照します。

i.Lon 100 Internet Server Programmer’s Reference 4-21

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 5-1

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>

5-2 i.LON 100 Internet Server Programmer’s Reference

<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

i.Lon 100 Internet Server Programmer’s Reference 5-3

ページの「NVEDelete」を参照してください。

5.2.1.1 NVEList

NVEList関数を使用すると、NVEドライバに追加したエントリの一覧を取得することができます。NVEList関数は、空の文字列を<Data>パラメータとして受け入れます。

この関数は、NVEドライバのバージョンの番号(主および副)と、NVEドライバの構成が最後に更新されたときの時刻を表すタイムスタンプを、<Result>パラメータの中で返します。タイムスタンプは ISO 8601規格に従って UTC時間で表されます。

次に<Result>パラメータには、NVEドライバに追加した各エントリの<NVE>エレメントも含まれています。各エレメントには、関連する NVEエントリのインデックス番号と名前が含まれています。この関数が返す<NVE>エレメントの一覧を NVEGet関数の入力として使用すると、一覧に含まれている各 NVEエレメントの構成が返されます。 <Data>パラメータ

Empty String

<Result>パラメータ

<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>

5-4 i.LON 100 Internet Server Programmer’s Reference

<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 NVESetの入力プロパティ

プロパティプロパティプロパティプロパティ 説明説明説明説明 <UCPTindex> 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になります。

i.Lon 100 Internet Server Programmer’s Reference 5-5

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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はデータポイントを毎秒ポーリングしなければならなくなります。

5-6 i.LON 100 Internet Server Programmer’s Reference

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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ユーザガイド』を参照してください。

i.Lon 100 Internet Server Programmer’s Reference 5-7

<Data>パラメータ <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>パラメータ <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 6-1

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>

6-2 i.LON 100 Internet Server Programmer’s Reference

<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>

i.Lon 100 Internet Server Programmer’s Reference 6-3

</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」を参照してください。

6-4 i.LON 100 Internet Server Programmer’s Reference

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-12-21T12:31:00Z</UCPTlastUpdate> <UCPTdescription>Light first Floor</UCPTdescription>

<UCPTfbName>Data Logger- 0</UCPTfbName> </Log> <Log> <UCPTindex>1</UCPTindex> <UCPTlastUpdate>2002-12-21T12:31:01Z</UCPTlastUpdate> <UCPTdescription>Energy data</UCPTdescription>

<UCPTfbName>Data Logger- 1</UCPTfbName> </Log> <Log> <UCPTindex>2</UCPTindex> <UCPTlastUpdate>2002-12-21T12:31:02Z</UCPTlastUpdate> <UCPTdescription>Light second Floor</UCPTdescription>

<UCPTfbName>Data Logger- 2</UCPTfbName> </Log> </iLONDataLogger> </Result>

i.Lon 100 Internet Server Programmer’s Reference 6-5

6.2.1.2 DataLoggerGet

DataLoggerGet関数を使用すると、i.LON 100に追加したデータロガーの構成を取得することができます。構成情報を取得したいデータロガーは、関数に渡す<Data>パラメータ内でインデックス番号を指定する必要があります。 <Data>パラメータ <Data>

<iLONDataLogger> <Log> <UCPTindex>0</UCPTindex> </Log> </iLONDataLogger>

</Data>

<Result>パラメータ

<Result> <iLONDataLogger> <Log> <UCPTindex>0</UCPTindex> <UCPTlastUpdate>2002-02-12T14: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」を参照してください。

6-6 i.LON 100 Internet Server Programmer’s Reference

表表表表 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のどちらか。これは、

ログが履歴と循環のどちらであるかを示します。履歴データログは、ログが一杯になったときにデータポイントの更新の記録を停止します。循環データログは、ログが一杯になった後に新しい更新を受信すると、古い値を削除します。

i.Lon 100 Internet Server Programmer’s Reference 6-7

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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関数を使用します。

6-8 i.LON 100 Internet Server Programmer’s Reference

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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です。

i.Lon 100 Internet Server Programmer’s Reference 6-9

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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です。

6-10 i.LON 100 Internet Server Programmer’s Reference

<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までに制限してください。

i.Lon 100 Internet Server Programmer’s Reference 6-11

<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つまでのログエントリの一覧を返します。

6-12 i.LON 100 Internet Server Programmer’s Reference

<Data>パラメータ <Data> <iLONDataLogger> <Log> <UCPTindex>2</UCPTindex> <UCPTpointName>NVL_nviDlCount2</UCPTpointName> <UCPTstart>2002-01-27T02: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> データロガーが使用しているログファイルの名前。

i.Lon 100 Internet Server Programmer’s Reference 6-13

プロパティプロパティプロパティプロパティ 説明説明説明説明 <UCPTstart>

<UCPTstop>

ログファイル内の最初と最後のログエントリのログ時間を示すタイムスタンプ。タイムスタンプはローカル時間で表され、ローカル時間と UTCの時差を示す時間帯インジケータが付加されます。詳細については、6-11ページの「ローカル時間と協定世界時」を参照してください。

<UCPTlogLevel> ログファイルの使用率をパーセントで示します。たとえば、90.0はログが 90%消費されたことを示します。

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> 対象となるデータロガーのインデックス番号。

6-14 i.LON 100 Internet Server Programmer’s Reference

<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-01-27T00:00:00.000+01:00</UCPTstart> <UCPTstop>2002-11-28T00:00:00.000+01:00</UCPTstop> <UCPTcount>3</UCPTcount> </Log> </iLONDataLogger> </Data>

i.Lon 100 Internet Server Programmer’s Reference 6-15

<Result>パラメータ <Result> <iLONDataLogger> <Log> <UCPTindex>2</UCPTindex> <UCPTfileName>/root/data/log2.dat</UCPTfileName> <UCPTstart>2002-08-29T10:32:00.000-07:00</UCPTstart> <UCPTstop>2002-08-29T14:34:20.000-07:00</UCPTstop> <UCPTlogLevel>8.5</UCPTlogLevel> </Log> </iLONDataLogger> </Result>

DataLoggerClear関数の<Result>パラメータにはグローバルプロパティが格納され、削除されるログエントリを含むデータロガーとログファイルに関する情報を提供します。表 21ではこれらのプロパティについて説明しています。

表表表表 21 DataLoggerClearのグローバル出力プロパティ

プロパティプロパティプロパティプロパティ 説明説明説明説明 <UCPTindex> データロガーに割り当てられているインデックス番号。 <UCPTfileName> データロガーが使用しているログファイルの名前。 <UCPTstart>

<UCPTstop>

ログファイル内の最初と最後のログエントリのログ時間を示すタイムスタンプ。タイムスタンプはローカル時間で表され、ローカル時間と UTCの時差を示す時間帯インジケータが付加されます。詳細については、6-11ページの「ローカル時間と協定世界時」を参照してください。

<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 7-1

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を再起動します。アラームジェネレータを作成する際のガイドラインと手順については、サンプルの後の各項を参考にしてください。

7-2 i.LON 100 Internet Server Programmer’s Reference

次のコード例は、アラームジェネレータが 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ファイル内の

i.Lon 100 Internet Server Programmer’s Reference 7-3

エレメントとプロパティについて説明しています。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

7-4 i.LON 100 Internet Server Programmer’s Reference

<Result>パラメータ

<Result> <iLONAlarmGenerator> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <Alarm> <UCPTindex>0</UCPTindex> <UCPTdescription>Light Control</UCPTdescription> <UCPTfbName>Alarm Generator- 0</UCPTfbName> <UCPTlastUpdate>2002-06-20T12: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>

i.Lon 100 Internet Server Programmer’s Reference 7-5

<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時間を示します。

7-6 i.LON 100 Internet Server Programmer’s Reference

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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> オプション。アラームジェネレータが使用するUNVT_alarm2データポイントの説明フィールドです。このデータポイントを選択するには、<Alarm2DataPoint>プロパティを定義します。この説明には、増加した値、アラームを発生させた値、メーカーが定義しているアラームまたはエラーコード、あるいはアラーム制限などを含めることができます。このフィールドの最大長は 22文字で、アラームが生成されるたびに UNVT_alarm2データポイントの説明フィールドに挿入されます。

i.Lon 100 Internet Server Programmer’s Reference 7-7

プロパティプロパティプロパティプロパティ 説明説明説明説明 <InputDataPoint> このアラームジェネレータの入力データポイント。データポイ

ントは、<UCPTpointName>で参照する必要があります。

データポイントが更新されるたびに、<UCPTcompFunction>プロパティに指定した比較関数を使用して、データポイントの値が比較データポイントの値と比較されます。比較結果が真の場合は、アラームが生成されます。

データポイントの<UCPTpointSatus>は、アラームジェネレータの<UCPTcompFunction>が FN_LIMITでない限り、アラームが生成されたときに AL_ALM_CONDITIONのステータスに更新されます。アラームジェネレータの<UCPTcompFunction>が FN_LIMITの場合、ステータスはアラームを発生させたオフセット制限に基づいて、4つのアラームステータスのいずれかに更新されます。詳細については、7-12ページの「ヒステリシスレベルとオフセット制限」を参照してください。

<CompareDataPoint> このアラームジェネレータの比較データポイント。データポイントは、Data Server内でデータポイントに割り当てられている<UCPTpointName>を使用して指定し、入力データポイントと同じフォーマット型を使用する必要があります。比較データポイント値あるいは入力データポイントのうち、どちらかのポイントが更新されるたびに、双方の値が比較されます。

ネットワークから取得した動的な変数値ではなく、ソフトウェアで構成した定数値に基づいてアラームを生成するようにするには、比較データポイントとして NVCデータポイントを使用します。

7-8 i.LON 100 Internet Server Programmer’s Reference

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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です。

i.Lon 100 Internet Server Programmer’s Reference 7-9

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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ページの「ヒステリシスレベルとオフセット制限」を参照してください。

7-10 i.LON 100 Internet Server Programmer’s Reference

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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 比較関数

i.Lon 100 Internet Server Programmer’s Reference 7-11

表 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、比較データ

7-12 i.LON 100 Internet Server Programmer’s Reference

ポイントが 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ではこのプロセスについてさらに詳しく説明しています。

i.Lon 100 Internet Server Programmer’s Reference 7-13

表表表表 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のアラームステータスをクリアするために必要な値を表します。ネットワーク内のデータポイントは、いつでもこれらのステータスに更新されるわけではないことに注意してください。

7-14 i.LON 100 Internet Server Programmer’s Reference

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

AL_HIGH_LMT_CLR_1 **

CompValue 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>パラメータを指定すると便利です。こうすると、文字列全体を最初から作成する代わりに、新しい構成に一致するように各プロパティの値を変更するだけで済みます。

i.Lon 100 Internet Server Programmer’s Reference 7-15

次の例では、AlarmGeneratorSet関数を使用して、NVL_DataValueAG1というデータポイントを入力データポイントに使用するアラームジェネレータを新たに作成します。 <Data>パラメータ

<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>パラメータ

<Result> <iLONAlarmGenerator> <Alarm>

<UCPTindex>2</UCPTindex> </Alarm> </iLONAlarmGenerator>

</Result>

7.2.1.4 AlarmGeneratorDelete

AlarmGeneratorDelete関数を使用すると、アラームジェネレータを削除することができます。アラームジェネレータを削除するには、関数に渡す<Data>パラメータの中で削除したいアラームジェネレータをインデックス番号で参照します。

7-16 i.LON 100 Internet Server Programmer’s Reference

<Data>パラメータ <Data> <iLONAlarmGenerator>

<Alarm> <UCPTindex>1</UCPTindex>

</Alarm> </iLONAlarmGenerator> </Data>

<Result>パラメータ

<Result> <iLONAlarmGenerator> <Alarm> <UCPTindex>1</UCPTindex> </Alarm> </iLONAlarmGenerator>

</Result>

i.Lon 100 Internet Server Programmer’s Reference 8-1

8 アラームノーティファイアアラームノーティファイアアラームノーティファイアアラームノーティファイア アラームノーティファイアアプリケーションを使用すると、あらかじめアラーム状態を定義し、そのアラーム状態が発生するたびに状態をログに記録し、電子メールメッセージとデータポイントの更新を生成することができます。ここでは、アラーム状態の定義方法や、アラーム状態に応答するアラームノーティファイアを設定する方法など、さまざまなアラームノーティファイアの機能について説明します。

ユーザ定義のアラーム状態

アラームノーティファイアを作成するときは、入力データポイントを指定します。アラームノーティファイアは、これらのデータポイントが更新されるたびにデータポイントのステータスを読み取り、アラーム状態に達しているかどうかを判断します。アラームノーティファイアがアラーム状態であると見なすステータスは、すべてユーザが定義します。ステータスを定義するには、アラームノーティファイアのアクティブおよび非アクティブのアラーム状態を作成します。

アラーム状態を作成するときは、アラームタイプ(アクティブまたは非アクティブ)とポイントのステータスを選択します。入力データポイントが更新され、データポイントの<UCPTpointStatus>がそのステータスに一致するたびに、アラーム通知が生成されます。アクティブアラーム状態に割り当てられているステータスに基づいてアラーム通知が生成される場合、それはアクティブなアラームであると見なされます。非アクティブ状態に割り当てられているステータスに基づいてアラーム通知が生成される場合、それは非アクティブなアラームであると見なされます。1つのアラームノーティファイアにはアクティブおよび非アクティブなアラーム状態をいくつでも作成できます。

アラームノーティファイアにはさまざまな使い途があります。たとえば、アラームジェネレータが更新したデータポイントのステータスに基づいてアラーム通知を生成するという機能をアラームノーティファイアに設定します。アラームジェネレータの詳細については、第7章「アラームジェネレータ」を参照してください。

第 6章では、データロガーのログファイルによるメモリ使用率を監視するためのデータポイントが存在することに触れました。アラームノーティファイアを設定すると、ログファイルが一杯になったときに、アラーム通知を生成することができます。

アラーム通知先

アクティブおよび非アクティブのアラーム通知には、通知先を作成します。通知先は、アラームが発生したときにアラームノーティファイアがどのように応答するかを決定します。

通知先には、出力データポイントを指定します。このデータポイントは、指定の通知先にアラーム通知を送るたびに更新されます。各通知先には電子メールプロファイルを指定することもできます。電子メールプロファイルを指定すると、通知先が使用されるたびに、指定したアドレスに電子メールが送信されます。次の項では、電子メールプロファイルについてさらに詳しく説明します。

1つのアラームノーティファイアにはアクティブおよび非アクティブの通知先をいくつでも作成できます。非アクティブな通知先は、非アクティブのアラーム通知が発生したときに使用され、アクティブな通知先は、アクティブなアラーム通知が発生したときに使用されます。

電子メールプロファイル

アラームノーティファイアに電子メールプロファイルを作成し、通知先に割り当てることができます。各電子メールプロファイルには電子メールアドレスが含まれています。通知先に電子メールプロファイルが割り当てられている場合、そのプロファイルに定義されているアドレスに電子メールが送信されます。

また、各電子メールに含めるメッセージテキスト、件名、および添付ファイルを指定することもできます。電子メールプロファイルを使用すると、アラームの種類に応じて通知先を変

8-2 i.LON 100 Internet Server Programmer’s Reference

更することができます。これは、ネットワーク上で発生する可能性のあるさまざまなアラーム状態に応じて、異なるグループが通知を受信する必要があるときに便利です。

自動生成ログファイル

各アラームノーティファイアは、独自のログファイルを生成します。このログファイルには、アラーム通知が生成されるたびにエントリが追加されます。自動生成ログファイルは 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>

i.Lon 100 Internet Server Programmer’s Reference 8-3

<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インタフェース」では、

8-4 i.LON 100 Internet Server Programmer’s Reference

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」を参照してください。

i.Lon 100 Internet Server Programmer’s Reference 8-5

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>

8-6 i.LON 100 Internet Server Programmer’s Reference

<Result>パラメータ

<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 8-7

<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>パラメータに定義されている設定で上書きされます。

8-8 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単位であることを示します。

たとえば 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> 履歴アラームログファイルのバイト数。履歴アラームログには、確認済みアラームのレコードが含まれています。各レコードには、アラームに関する説明、確認時刻、およびコメントが含まれています。

i.Lon 100 Internet Server Programmer’s Reference 8-9

プロパティプロパティプロパティプロパティ 説明説明説明説明

i.LON 100上のすべてのアラームノーティファイア(およびデータロガー)のログファイルの合計サイズは、i.LON 100に搭載されているフラッシュメモリのサイズを超過できないことに注意してください。フラッシュメモリの残りの容量が 256 KBになると、i.LON 100はログファイルへの書き込みを停止します。

フラッシュメモリの残量は、SystemInfoRead関数を使用して監視できます。詳細については、第15章「i.LON 100のフラッシュメモリ」を参照してください。

<UCPTlogFormat> LF_BINARYまたは LF_TEXTのどちらか。このプロパティは、生成されるログファイルがバイナリファイルとテキストファイルのどちらであるかを示します。

<UCPTemailAggregTime> アラームノーティファイアの電子メールプロファイルを使用して電子メールを送信してから、次の電子メール送信するまで待機する必要のある時間をミリ秒単位で表します。これは、複数の電子メールが同時に同じアドレスに送信されないようにする場合に便利です。

このプロパティを定義しない場合の既定値は 0です。最大値は65,535ミリ秒です。

<Point> アラームノーティファイアに定義されている入力データポイントのいずれかが更新され、データポイントの<UCPTpointStatus>が、アラームノーティファイアのアクティブまたは非アクティブなアラーム条件のいずれかに定義されているステータスに一致するたびに、アラーム通知が発生します。1つのアラームノーティファイアには、入力データポイントをいくつでも指定できます。

アラームノーティファイアの入力データポイントは、<Data>パラメータ内の<Point>エレメントの一覧で定義します。

<Point>内に定義する必要のあるプロパティの説明については、 8-10ページの「入力データポイント」を参照してください。1つのアラームノーティファイアには、入力データポイントをいくつでも指定できます。

<Mail> 電子メールプロファイルには、電子メールアドレス、メッセージテキスト、件名、および添付ファイルが含まれています。電子メールプロファイルが使用されるたびに、件名、メッセージテキスト、および添付ファイルを含む電子メールメッセーが指定のアドレスに送信されます。

電子メールプロファイルは、アラームノーティファイアのアクティブおよび非アクティブな通知先を設定するときにユーザが指定します。各アラームノーティファイアには電子メールプロファイルを必要な数だけ作成できますが、各アラーム通知先が参照できる電子メールプロファイルは 1つだけです。

アラームノーティファイアの電子メールプロファイルは、<Mail>エレメントの一覧によって示されます。各<Mail>エレメント内に定義する必要のあるプロパティの説明については、8-12ページの「電子メールプロファイル」を参照してください。

8-10 i.LON 100 Internet Server Programmer’s Reference

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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>エレメントはアラームノーティファイアの入力データポイントを定義します。入力データポイントのいずれかが更新されるたびに、アラームノーティファイアは入力データポイントがアラーム状態に達していないかどうかを確認します。

i.Lon 100 Internet Server Programmer’s Reference 8-11

入力データポイントが更新され、アクティブまたは非アクティブなアラーム状態に達すると、アラーム通知がログに記録され、該当する非アクティブまたはアクティブなアラーム通知先が使用されます。

表表表表 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の番号を付けます。

8-12 i.LON 100 Internet Server Programmer’s Reference

プロパティプロパティプロパティプロパティ 説明説明説明説明 <UCPTpriority> データポイントがアラーム状態に達したときにデータポイントに割

り当てられる優先度。0(最高優先度)~255(最低優先度)の間の整数で指定する必要があります。優先度を使用すると、サマリログビューまたは i.LON 100 Webページでアラームを分類することができます。

既定値は 0です。優先度とその使用方法については、2-8ページの「データポイント値と優先度」を参照してください。

<UCPTdescription> データポイントのアラーム状態を示すユーザ定義の説明。最高 201文字まで指定できます。

8.2.1.2.2 電子メールプロファイル

表 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文字です。

i.Lon 100 Internet Server Programmer’s Reference 8-13

表 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 アラームを発生させたデータポイントの最新値。

8-14 i.LON 100 Internet Server Programmer’s Reference

マクロ引数マクロ引数マクロ引数マクロ引数 説明説明説明説明

%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> アラームノーティファイアのログファイル内のアラーム状態を記述する、ユーザ定義のテキストです。最高 201文字まで指定できます。

i.Lon 100 Internet Server Programmer’s Reference 8-15

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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> アラーム通知先のインデックス番号。

8-16 i.LON 100 Internet Server Programmer’s Reference

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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」を参照してください。

i.Lon 100 Internet Server Programmer’s Reference 8-17

注:既存のアラームノーティファイアを変更する場合、入力文字列に指定されていないオプションのプロパティは消去されます。古い値は継承されないため、アラームノーティファイアに書き込みを行うときは、すべての値を変更しない場合にも、すべてのプロパティを指定する必要があります。

アラームノーティファイアは、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>

8-18 i.LON 100 Internet Server Programmer’s Reference

</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と入力します。サマリログには、アラームノーティファイアが発生させたアク

i.Lon 100 Internet Server Programmer’s Reference 8-19

ティブなアラーム通知のエントリが含まれています。アラームノーティファイアの作成時に定義した<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-01-01T00:00:00.000+01:00</UCPTstart> <UCPTstop>2002-09-04T23:59:59.000+01:00</UCPTstop> <UCPTcount>5</UCPTcount> </AlarmLog> </iLONAlarmNotifier> </Data>

8-20 i.LON 100 Internet Server Programmer’s Reference

<Result>パラメータ

<Result> <iLONAlarmNotifier>

<AlarmLog> <UCPTindex>0</UCPTindex> <UCPTpointName> NVL_AlarmGenIn1</UCPTpointName>

<UCPTalarmLog>SUMMARY</UCPTalarmLog> <UCPTfileName>/root/AlarmLog/sumlog0.dat</UCPTfileName>

<UCPTstart>2002-01-01T00:00:00.000+01:00</UCPTstart> <UCPTstop>2002-09-04T23:59:59.000+01:00</UCPTstop>

<UCPTlogLevel>20.5</UCPTlogLevel> <Element> <UCPTlogTime>2002-07-03T10:47:51.000+01:00</UCPTlogTime> <UCPTalarmTime>2002-05-05T1: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>

<UCPTstop> ログファイル内の最初と最後のログエントリのログ時間を示すタイムスタンプ。タイムスタンプはローカル時間で表され、ローカル時間と UTCの時差を示す時間帯インジケータが付加されます。詳細については、6-11ページの「ローカル時間と協定世界時」を参照してください。

i.Lon 100 Internet Server Programmer’s Reference 8-21

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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> アラームを発生させたデータポイントに定義されている単位の種類。

8-22 i.LON 100 Internet Server Programmer’s Reference

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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文字です。

i.Lon 100 Internet Server Programmer’s Reference 8-23

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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>パラメータに返したプロパティについて説明しています。

8-24 i.LON 100 Internet Server Programmer’s Reference

表表表表 42 AlarmNotifierWriteの出力プロパティ

プロパティプロパティプロパティプロパティ 説明説明説明説明 <UCPTindex> アラームノーティファイアのインデックス番号。 <UCPTalarmLog> ログファイルの種類で、SUMMARYまたは HISTORICALのど

ちらか。 <UCPTfileName> ログファイルの名前とパス。 <UCPTstart>

<UCPTstop> <UCPTstart>および<UCPTstop>プロパティは、ログファイルの最初と最後のエントリのアラーム時刻を示します。これらのタイムスタンプはローカル時間で表示され、ローカル時間と UTCとの時差を示す時間帯インジケータが付加されます。このフォーマットの詳細については、6-11ページの「ローカル時間と協定世界時」を参照してください。

<UCPTlogLevel> ログファイルの使用率をパーセントで示します。たとえば、20.5はログが 20.5%消費されたことを示します。

8.2.1.6 AlarmNotifierClear

AlarmNotifierClear関数を使用すると、アラームノーティファイアログファイルからログエントリを削除することができます。この関数は、ログエントリのみを削除します。アラームノーティファイアそのものを削除するには、AlarmNotifierDelete 関数を使用してください。

削除するアラームエントリを指定するには、関数に渡す<Data>パラメータの中で、表 43で説明するプロパティを指定します。パラメータを指定しない場合は、アラームログ全体が削除されます。

表表表表 43 AlarmNotifierClearの入力プロパティ

プロパティプロパティプロパティプロパティ 説明説明説明説明 <UCPTindex> 対象となるアラームノーティファイアのインデックス番号。 <UCPTpointName> 削除するログエントリを含むデータポイントの名前。このプロパティを指

定しない場合は、すべてのデータポイントのログエントリが削除されます。

<UCPTcount> 関数が削除するログエントリの最大数。このプロパティを指定しない場合は、該当するアプリケーションデータポイントのログエントリがすべて削除されます。

i.Lon 100 Internet Server Programmer’s Reference 8-25

<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-01-31T14: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-01-31T14: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>パラメータに返すプロパティについて説明しています。

8-26 i.LON 100 Internet Server Programmer’s Reference

表表表表 44 AlarmNotifierClearの出力プロパティ

プロパティプロパティプロパティプロパティ 説明説明説明説明 <UCPTindex> アラームノーティファイアのインデックス番号。 <UCPTalarmLog> ログファイルの種類で、SUMMARYまたは HISTORICALのど

ちらか。 <UCPTfileName> ログファイルの名前とパス。 <UCPTstart>

<UCPTstop> <UCPTstart>および<UCPTstop>プロパティは、ログファイルの最初と最後のエントリのアラーム時刻を示します。これらのタイムスタンプはローカル時間で表示され、ローカル時間と UTCとの時差を示す時間帯インジケータが付加されます。このフォーマットの詳細については、6-11ページの「ローカル時間と協定世界時」を参照してください。

<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>

i.LON 100 Internet Server Programmer’s Reference 9-1

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>

9-2 i.LON 100 Internet Server Programmer’s Reference

<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ファイルを手動で作成または変更する方法については、17-1ページの「XML構成ファイルの手動変更」を参照してください。

i.LON 100 Internet Server Programmer’s Reference 9-3

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>パラメータ

文字列なし

9-4 i.LON 100 Internet Server Programmer’s Reference

<Result>パラメータ

<Result> <iLONAnalogFB> <SCPTobjMajVer>1</SCPTobjMajVer> <SCPTobjMinVer>0</SCPTobjMinVer> <AnalogFB> <UCPTindex>0</UCPTindex> <UCPTlastUpdate>2002-06-02T19:16:36Z</UCPTlastUpdate> <UCPTdescription>Maximum Temperature</UCPTdescription> <UCPTfbName>Analog Fn Block- 0</UCPTfbName> </AnalogFB> <AnalogFB> <UCPTindex>1</UCPTindex> <UCPTlastUpdate>2002-06-26T10: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>

i.LON 100 Internet Server Programmer’s Reference 9-5

<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>パラメータに定義されている設定で上書きされます。

9-6 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単位であることを示します。

たとえば 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ページの「比較関数」を参照してください。

i.LON 100 Internet Server Programmer’s Reference 9-7

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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> アナログ機能ブロックの出力関数。アナログ機能ブロックのデータポイントが更新されるたびに実行される演算と、アナログ機能ブロックの出力データポイントの値がどのように決まるかを指定します。

アナログ機能ブロックに使用できる出力関数については、9-9ページの「出力関数」を参照してください。

<SCPTminRnge> 出力データポイントに割り当てることのできる最小値。この値の初期値は SCPTリソースファイルから取り込まれます。

<SCPTmaxRnge> 出力データポイントに割り当てることのできる最大値。この値の初期値は SCPTリソースファイルから取り込まれます。

<UCPTcalculationInterval> アナログ機能ブロックの出力データポイントを更新した後、次の更新を行う前に経過しなければならない遅延秒数(0.0~6553.0)。これは、入力データポイントが複数ある場合に役立ちます。間隔を長く設定すると、アナログ機能ブロックがすべての入力を受信してから出力データポイントを更新するためです。0.0の既定値を使用する場合、アナログ機能ブロックは入力データポイントのいずれかが更新されるたびに出力データポイントを更新します。

9-8 i.LON 100 Internet Server Programmer’s Reference

<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)によって変化します。

i.LON 100 Internet Server Programmer’s Reference 9-9

<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の例」を参照してください。

9-10 i.LON 100 Internet Server Programmer’s Reference

識別子識別子識別子識別子 出力デ出力デ出力デ出力データポイントに割り当てられる値ータポイントに割り当てられる値ータポイントに割り当てられる値ータポイントに割り当てられる値 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を返します。

i.LON 100 Internet Server Programmer’s Reference 9-11

識別子識別子識別子識別子 説明説明説明説明 FN_NUL 値の使用不可。入力データポイントの値が使用できない場合に Trueを返し

ます。

9.2.1.2.3 FN_ANDの例 <UCPToutputFunction>: FN_AND <UCPTcompFunction>: 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>: FN_OR <UCPTcompFunction>: FN_LT この例では、4つの入力データポイントと 1つの比較データポイントが存在し、型はすべてSNVT_countになっています。出力データポイントは SNVT_Switch型のものが 1つ存在します。

出力関数は FN_ORで、比較関数は FN_LTであるため、出力データポイントを Trueに設定するには、入力データポイントの値のいずれかが、比較データポイントの値、または<UCPTtrueThreshold>プロパティが定義されている場合には、その値よりも小さくなければなりません。<UCPTtrueThreshold>プロパティが定義されている場合、比較データポイントの値は比較には使用されません。 表 50では、2つの関数が Trueと評価される場合のケースシナリオを一覧表示しています。

9-12 i.LON 100 Internet Server Programmer’s Reference

表表表表 50 FN_ORの例

入力入力入力入力 1 入力入力入力入力 2 入力入力入力入力 3 入力入力入力入力 4 比較データポイントの値比較データポイントの値比較データポイントの値比較データポイントの値 UCPTtrue

Threshold

出力出力出力出力

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>: FN_COMPARE <UCPTcompFunction>: FN_EQ <UCPTmajorityValue>: 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>エレメントの一覧で指定します。

i.LON 100 Internet Server Programmer’s Reference 9-13

<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>

9-14 i.LON 100 Internet Server Programmer’s Reference

</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>

i.LON 100 Internet Server Programmer’s Reference 10-1

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>

10-2 i.LON 100 Internet Server Programmer’s Reference

<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の後に続く各項を参照してください。

i.LON 100 Internet Server Programmer’s Reference 10-3

表表表表 52 接続マネージャの関数

関数関数関数関数 説明説明説明説明

ConnectionManagerList

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」を参照してください。

ConnectionManagerDelete

接続プロファイルを削除します。詳細については、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</UCPTphoneDialtonewaiting> <UCPTphoneDialtype>DT_TONE</UCPTphoneDialtype> <UCPTmodemCountry>MCC_GERMANY</UCPTmodemCountry> <UCPTisdnProtocol>ISDN_NUL</UCPTisdnProtocol> <UCPTisdnEAZ></UCPTisdnEAZ> <UCPTisdnMSN></UCPTisdnMSN> <UCPTautoAnswer>BOOL_TRUE</UCPTautoAnswer>

10-4 i.LON 100 Internet Server Programmer’s Reference

<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を入力します。

i.LON 100 Internet Server Programmer’s Reference 10-5

プロパティプロパティプロパティプロパティ 説明説明説明説明 <UCPTmodemCountry> i.LON 100のモデムがインストールされている国。ここに

一覧表示されているもののいずれかを指定できます。 MCC_AUSTRIA MCC_BELGIUM MCC_DENMARK MCC_FINLAND MCC_FRANCE MCC_GERMANY MCC_IRELAND MCC_ITALY MCC_LUXEMBOURG MCC_NETHERLANDS MCC_NORWAY MCC_PORTUGAL MCC_SPAIN MCC_SWEDEN MCC_SWITZERLAND MCC_UNITED_KINGDOM MCC_GREECE MCC_ISRAEL MCC_CHILE MCC_INDIA MCC_INDONESIA MCC_TURKEY MCC_VIETNAM MCC_INTERNATIONAL MCC_CZECH_REPUBLIC MCC_CANADA MCC_MEXICO MCC_UNITED_STATES MCC_HUNGARY MCC_POLAND MCC_RUSSIA MCC_SLOVAC_REPUBLIC MCC_BULGARIA MCC_AUSTRALIA MCC_CHINA MCC_HONG_KONG MCC_JAPAN MCC_KOREA MCC_TAIWAN MCC_SINGAPORE MCC_NEW_ZEALAND MCC_BRAZIL MCC_MALAYSIA MCC_PHILIPENES MCC_SLOVENIA MCC_SOUTH_AFRICA MCC_EURO_N_AMERICA MCC_NUL

<UCPTisdnProtocol> 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です。

10-6 i.LON 100 Internet Server Programmer’s Reference

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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>パラメータ <Data>

<iLONConnectionManager> <PPP> <UCPTindex>0</UCPTindex> </PPP> <PPP> <UCPTindex>1</UCPTindex> </PPP> </iLONConnectionManager> </Data>

i.LON 100 Internet Server Programmer’s Reference 10-7

<Result>パラメータ

<Result> <iLONConnectionManager> <PPP> <UCPTindex>0</UCPTindex> <UCPTlastUpdate>2002-12-21T12: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-12-31T12: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>パラメータに定義されている設定で上書きされます。

10-8 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単位であることを示します。

たとえば 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> 接続マネージャがダイヤルした後にこのプロファイルへの接続が確立されるまで待機する期間の秒数。この期間が経過しても接続が確立されない場合、接続の試行は中止されます。

i.LON 100 Internet Server Programmer’s Reference 10-9

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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回の呼び出しで、複数のプロファイルを作成することができます。

10-10 i.LON 100 Internet Server Programmer’s Reference

<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の呼び出しで、複数の接続プロファイルを削除できます。

i.LON 100 Internet Server Programmer’s Reference 10-11

<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 11-1

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の入力間の内部バインドを経由してローカルのカレンダーオブジェクトから取り込まれます。

11-2 i.LON 100 Internet Server Programmer’s Reference

再起動後、イベントスケジューラは最後のイベントスケジューラの演算を再計算します。また、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-00-00</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>

i.LON 100 Internet Server Programmer’s Reference 11-3

<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の後に続く各項を参照してください。

11-4 i.LON 100 Internet Server Programmer’s Reference

表表表表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>パラメータ

<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-5

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-08-08</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>

11-6 i.LON 100 Internet Server Programmer’s Reference

<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 EventSchedulerGetの出力プロパティ

プロパティプロパティプロパティプロパティ 説明説明説明説明 <UCPTindex> イベントスケジューラに割り当てられるインデックス

番号は、–32,768~32,767の範囲に収めます。EventSchedulerSet関数を使用すると、新しいイベントスケジューラを作成するか、既存のイベントスケジューラを変更することができます。EventSchedulerSetに渡す<Data>パラメータの中でインデックス番号を指定しない場合は、使用可能な最初のインデックス番号で新しいイベントスケジューラが作成されます。

既に使用中のインデックス番号を指定した場合は、そのインデックス番号を使用しているイベントスケジューラの構成が、<Data>パラメータに定義されている設定で上書きされます。

i.LON 100 Internet Server Programmer’s Reference 11-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時間を示します。

<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-00-00,0000-00-00と入力すると、常にアクティブなイベントスケジューラが作成されます。

注:SOAP/XMLインタフェースを使用してイベントスケジューラを作成した後に、i.LON 100 構成ソフトウェアを使用してこのイベントスケジューラの構成を変更する場合、1/1/1970より前の入力日付は 1/1/1970にリセットされます。12/31/2037より後の入力日付は

11-8 i.LON 100 Internet Server Programmer’s Reference

プロパティプロパティプロパティプロパティ 説明説明説明説明 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 曜日を基にしたスケジュールの作成

i.LON 100 Internet Server Programmer’s Reference 11-9

表 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には、これら

11-10 i.LON 100 Internet Server Programmer’s Reference

のデータポイントが 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ページの「イベントカレンダー」を参照してください。

i.LON 100 Internet Server Programmer’s Reference 11-11

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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」を参照してください。

11-12 i.LON 100 Internet Server Programmer’s Reference

注:既存のイベントスケジューラを更新する場合、入力文字列に指定されていないオプションのプロパティは消去されます。古い値は継承されないため、イベントスケジューラに書き込みを行うときは、すべての値を変更しない場合でも、すべてのプロパティを指定する必要があります。

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>パラメータ

<Data> <iLONEventScheduler> <Schedule> <UCPTindex>1</UCPTindex> <UCPTdescription>Event Scheduler For Office</UCPTdescription> <UCPTfbName>Scheduler- 1</UCPTfbName> <UCPTscheduleEffectivePeriod>0000-00-00,0000-00-00</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 11-13

</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>

11-14 i.LON 100 Internet Server Programmer’s Reference

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>

i.LON 100 Internet Server Programmer’s Reference 12-1

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サンプルファイルを表しています。

12-2 i.LON 100 Internet Server Programmer’s Reference

<?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-00-00</UCPTscheduleEffectivePeriod> <Exceptions> <UCPTindex>0</UCPTindex> <UCPTexceptionName>Holiday</UCPTexceptionName> <UCPTtemporary>0</UCPTtemporary> <UCPTexceptionSchedule>0000-04-07,0000-06-07,MN_NUL,DY_NUL<UCPTexceptionSchedule> </Exceptions> <Exceptions> <UCPTindex>0</UCPTindex> <UCPTexceptionName>Christmas</UCPTexceptionName> <UCPTtemporary>0</UCPTtemporary> <UCPTexceptionSchedule>0000-24-12,0000-25-12,MN_NUL,DY_NUL<UCPTexceptionSchedule> </Exceptions> <Exceptions> <UCPTindex>0</UCPTindex> <UCPTexceptionName>Easter</UCPTexceptionName> <UCPTtemporary>0</UCPTtemporary> <UCPTexceptionSchedule>0000-4-11,0000-4-12,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構成ファイルの手動変更」を参照してください。

i.LON 100 Internet Server Programmer’s Reference 12-3

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>

12-4 i.LON 100 Internet Server Programmer’s Reference

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-00-00</UCPTscheduleEffectivePeriod> <Exceptions> <UCPTindex>0</UCPTindex> <UCPTexceptionName>Easter</UCPTexceptionName> <UCPTtemporary>0</UCPTtemporary> <UCPTexceptionSchedule>00-04-11,00-04-12,MN_NUL,DY_NUL</UCPTexceptionSchedule> </Exceptions> </Calendar> </iLONEventCalendar> </Result>

EventCalendarGet関数は、関数に渡した<Data>パラメータで参照したイベントカレンダーの<Calendar>エレメントを返します。<Calendar>エレメントに含まれているプロパティは、イベントカレンダーの作成時に最初に定義されます。このプロパティに書き込みを行うには、EventCalendarSet関数を使用します。表 60では、これらのプロパティについて説明しています。

表表表表 60 EventCalendarGetの出力プロパティ

プロパティプロパティプロパティプロパティ 説明説明説明説明 <UCPTindex> イベントカレンダーに割り当てられるインデックス番号は、

-32,768~32,767の範囲に収めます。EventCalendarSet関数を使用すると、新しいイベントカレンダーを作成するか、既存のイベントカレンダーを変更することができます。EventCalendarSetに渡す<Data>パラメータの中でインデックス番号を指定しない場合は、使用可能な最初のインデックス番号で新しいイベントカレンダーが作成されます。

既に使用中のインデックス番号を指定した場合は、そのインデックス番号を使用しているイベントカレンダーの構成が、<Data>パラメータに定義されている設定で上書きされます。

注:i.LON 100は、一度に 1つのアクティブなイベントカレンダーのみをサポートしています。アクティブなイベントカレンダーは、0のインデックス番号を使用する必要があります。

i.LON 100 Internet Server Programmer’s Reference 12-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で定義されている機能ブロック名にリセットされます。

<UCPTexceptionSchedule> このプロパティは、イベントカレンダーが有効になる日付を定義します。このプロパティは次のフォーマットを使用して指定する必要があります。 YYYY-MM-DD,YYYY-MM-DD 最初の日付は開始日を表し、2番目の日付は終了日を表します。開始日が定義されていない場合(0000-00-00)は、終了日までの任意の日付を意味します。たとえば 0000-00-00,12-12-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日にリセットされます。

12-6 i.LON 100 Internet Server Programmer’s Reference

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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フィールドに使用できる識別子を一覧表示し、各識別子について説明していま

i.LON 100 Internet Server Programmer’s Reference 12-7

す。これらの表の後には、<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木曜日

12-8 i.LON 100 Internet Server Programmer’s Reference

識別子識別子識別子識別子 説明説明説明説明

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日おき

i.LON 100 Internet Server Programmer’s Reference 12-9

識別子識別子識別子識別子 説明説明説明説明

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日までの間に毎日発生する例外が設定されます。

12-10 i.LON 100 Internet Server Programmer’s Reference

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つの繰り返し例外日を持つイベントカレンダーが作成されます。

i.LON 100 Internet Server Programmer’s Reference 12-11

<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-04-12,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 13-1

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サンプルファイルを表したものです。

13-2 i.LON 100 Internet Server Programmer’s Reference

<?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>

i.LON 100 Internet Server Programmer’s Reference 13-3

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>エレメントに含まれている各型変換機能の構成を返します。

13-4 i.LON 100 Internet Server Programmer’s Reference

<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>パラメータ

<Data> <iLONTypeTranslator> <TypeTranslator> <UCPTindex>0</UCPTindex> </TypeTranslator> </iLONTypeTranslator> </Data>

i.LON 100 Internet Server Programmer’s Reference 13-5

<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</UCPTtranslatorRule> <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>パラメータに定義されている設定で上書きされます。

13-6 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で定義されている機能ブロック名にリセットされます。

<UCPTTranslatorRule> 型変換機能が使用する型変換ルールの名前。これは、型変換機能が入力として受け入れるデータポイントのネットワーク変数型と、変換後のネットワーク変数型を決定します。また、変換後に出力データポイントに割り当てられる値も決定します。

型変換機能に選択する入力および出力データポイントは、型変換ルールに従ったネットワーク変数型を使用する必要があります。

この表の後に続く各項では、i.LON 100ソフトウェアに付属している型変換ルール、ルールを参照するための識別子、および使用可能な入力および出力データポイント型について説明しています。SOAPインタフェースを使用して、独自の型変換ルールを作成することもできます。詳細については、第14章「型変換ルール」を参照してください。

変換ルールを指定しない場合、入力データポイントは、型変換機能に指定された出力データポイントのフォーマット型に変換されます(オフセットまたは定数のないスカラー型からスカラー型への変換、または列挙型から列挙型への変換など)。この場合、出力データポイントの値は、変換が行われるたびに入力データポイントの値で更新されます。

<SCPTdelayTime> 型変換機能の入力データポイントのいずれかが更新された後、変換を実行する前に待機する期間を秒数で指定します。型変換機能が複数のデータポイントを変換する場合は、これを 0より大きい値に設定してください。そうすると、入力データポイントが更新されてから変換が行われるようになります。変換には、遅延期間中に発生したその他のデータポイントの更新が反映されます。

このプロパティを 0に設定すると、入力データポイントのいずれかが更新されるたびに変換が実行されます。

i.LON 100 Internet Server Programmer’s Reference 13-7

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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の範囲にある必要があります。

13-8 i.LON 100 Internet Server Programmer’s Reference

入力データポイントの 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

i.LON 100 Internet Server Programmer’s Reference 13-9

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

13-10 i.LON 100 Internet Server Programmer’s Reference

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入力フィールドの値入力フィールドの値入力フィールドの値入力フィールドの値

function scene_number

SNVT_switch出力データポイントの値出力データポイントの値出力データポイントの値出力データポイントの値

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_setting入力フィールドの値入力フィールドの値入力フィールドの値入力フィールドの値

function setting

SNVT_switch出力データポイントの値出力データポイントの値出力データポイントの値出力データポイントの値

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>は

i.LON 100 Internet Server Programmer’s Reference 13-11

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入力フィールドの値入力フィールドの値入力フィールドの値入力フィールドの値

State value

SNVT_lev_disc出力データポイントの値出力データポイントの値出力データポイントの値出力データポイントの値

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>パラメータを指定すると便利です。こうする

13-12 i.LON 100 Internet Server Programmer’s Reference

と、文字列全体を最初から作成する代わりに、新しい構成に一致するように各プロパティの値を変更するだけで済みます。

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</UCPTtranslatorRule> <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>パラメータ

<Data> <iLONTypeTranslator> <TypeTranslator> <UCPTindex>0</UCPTindex> </TypeTranslator> </iLONTypeTranslator> </Data>

i.LON 100 Internet Server Programmer’s Reference 13-13

<Result> <iLONTypeTranslator> <TypeTranslator> <UCPTindex>0</UCPTindex> </TypeTranslator> </iLONTypeTranslator> </Result>

i.LON 100 Internet Server Programmer’s Reference 14-1

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>

14-2 i.LON 100 Internet Server Programmer’s Reference

<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構成ファイルの手動変更」を参照してください。

i.LON 100 Internet Server Programmer’s Reference 14-3

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

14-4 i.LON 100 Internet Server Programmer’s Reference

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>

i.LON 100 Internet Server Programmer’s Reference 14-5

<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文字で指定できます。

14-6 i.LON 100 Internet Server Programmer’s Reference

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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>に一致する必要があります。一致しない場合、変換中にエラーが発生する場合があります。

i.LON 100 Internet Server Programmer’s Reference 14-7

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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>エレメント内で定義されています。

14-8 i.LON 100 Internet Server Programmer’s Reference

<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データポイントに割り当てることがで

i.LON 100 Internet Server Programmer’s Reference 14-9

きます。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の場合、演算は実行されず、出力データポイント(またはフィールド)の値は変更されません。

14-10 i.LON 100 Internet Server Programmer’s Reference

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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</UCPTtranslatorRule> <InDataPoint>

i.LON 100 Internet Server Programmer’s Reference 14-11

<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>

14-12 i.LON 100 Internet Server Programmer’s Reference

<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>

i.LON 100 Internet Server Programmer’s Reference 15-1

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回よりかなり多くてもかまわないことを意味します。フラッシュのメーカーは、このようなテスト結果を非公式には認めていますが、保証はなされません。この情報は、どれだけ慎重に寿命を予測するかに応じて、注意して使用してください。なお、寿命を短めに設定すれば、消去率を増加させることも可能です。

15-2 i.LON 100 Internet Server Programmer’s Reference

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>

i.LON 100 Internet Server Programmer’s Reference 15-3

<UCPTlogTime>2002-10-08T11: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-10-08T12: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>エレメントに含まれます。

15-4 i.LON 100 Internet Server Programmer’s Reference

プロパティプロパティプロパティプロパティ 説明説明説明説明 <UCPTmodelNumber> i.LON 100のモデル番号。これは次のいずれかになりま

す。

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> SystemInfoRead関数が呼び出されたシステム時刻を示すタ

イムスタンプ。このタイムスタンプはローカル時間で示され、ローカル時間と UTCとの時差を示す時間帯インジケータが付加されます。このフォーマットの詳細については、6-11ページのローカル時間と協定世界時を参照してください。

i.LON 100 Internet Server Programmer’s Reference 15-5

プロパティプロパティプロパティプロパティ 説明説明説明説明 <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の値が返されます。

15-6 i.LON 100 Internet Server Programmer’s Reference

プロパティプロパティプロパティプロパティ 説明説明説明説明 <DpMessageFailures> <DpMessageFailures>エレメントには 4つの子エレメントが

含まれており、それぞれ<UCPTdpMessageFailures>と名付けられています。

これらのプロパティには、スペースで区切られた 2つの整数値が含まれています。最初の値は期間を分単位で表します。2番目の値はこの期間中に発生したデータポイントの更新障害の数を表します。

たとえば 2 0の値は、直近の 2分間に失われたメッセージがないことを示します。1440 10の値は、直近の 1440分間(1日)に、10個のメッセージが失われたことを示します。

データポイントのメッセージの障害は、i.LON 100がそのデータポイントへの更新をすべて処理できない場合に発生します。この問題は、ネットワークのトラフィックが多い場合、アプリケーションが正しく構成されていない場合、またはトランザクションの多いのリモートアプリケーションがi.LON 100データポイントの読み取りまたは書き込みを試行している場合が原因です。たとえば、NVLデータポイントはLonWorksネットワーク内のネットワーク変数にバインドされている場合があり、これらの変数が一度に過度の更新を送信していることが考えられます。または、イベントスケジューラに構成されている、一度に値を更新するデータポイントの数が多すぎることも考えられます。前者の場合は、LonWorksネットワーク内のネットワークトラフィックを減少させる必要があります。後者の場合には、ファンアウト方法を使用して、1つのデータポイントが多くのデータポイントの作業を行うようにするか、イベントスケジューラの更新の頻度を少なくする必要があります。

i.LON 100 Internet Server Programmer’s Reference 16-1

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

16-2 i.LON 100 Internet Server Programmer’s Reference

[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>”

i.LON 100 Internet Server Programmer’s Reference 16-3

既定の“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")

16-4 i.LON 100 Internet Server Programmer’s Reference

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)

i.LON 100 Internet Server Programmer’s Reference 16-5

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></iLONDataLogger>"

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

16-6 i.LON 100 Internet Server Programmer’s Reference

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メッセージに発生するエラーの可能性を削減できます。たとえば、ユーザは文字を含む文字列を、インデックス番号の値として渡すことや、整数を必要とするプロパティとして渡すことはできなくなります。また、

i.LON 100 Internet Server Programmer’s Reference 16-7

アプリケーションでエラーチェックを実行すると、応答エラー処理を実行することができます。

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:schemas-microsoft-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>

16-8 i.LON 100 Internet Server Programmer’s Reference

次のコードは、<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:schemas-microsoft-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文字列です。

i.LON 100 Internet Server Programmer’s Reference 16-9

<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

16-10 i.LON 100 Internet Server Programmer’s Reference

.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

i.LON 100 Internet Server Programmer’s Reference 16-11

返された最初で唯一の 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 17-1

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ディレクトリに含まれています。詳細については、本書の各アプリケーションの説明を参照してください。

17-2 i.LON 100 Internet Server Programmer’s Reference

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ファイルが読み取られ、構成が適切に変更されます。

i.LON 100 Internet Server Programmer’s Reference 17-1

索引索引索引索引

DDDD Data Server

XML構成ファイル · 4-3 外部データポイント · 5-1 概要 · 4-1 データポイントの削除 · 4-20 データポイントの作成 · 4-15

NNNN NVEドライバ · 5-1

SSSS SOAP 説明 · 1-1 バージョン · 1-1

SOAPメッセージのフォーマット · 2-3, 3-7

UUUU UTC · 6-11

WWWW WSDLファイル

Visual Basic .NET · 16-1 WSDLファイル · 2-2, 3-6

WSDLファイルの参照 · 16-1

XXXX XML

XMLDocumentオブジェクト型 · 16-3

XMLファイルのコピー · 17-1 XMLファイルの手動構成 · 17-1 XMLファイルの手動変更 · 17-1 構成ファイル · 3-5 説明 · 1-1 バージョン · 1-1

ああああ アナログ機能ブロック アナログ機能ブロックの一覧 · 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 アラームノーティファイアの一覧 · 8-

5 アラームノーティファイアの構成の取得 · 8-5

アラームノーティファイアの削除 · 8-26

アラームノーティファイアの作成 · 8-16

アラームノーティファイアの変更 · 8-16

アラームの確認 · 8-22 アラームログファイル · 8-2 概要 · 8-1 状態 · 8-14 電子メールプロファイル · 8-1, 8-12 ログファイルの削除 · 8-24 ログファイルの読み取り · 8-18

アラームの確認 · 8-22 アラームログファイルの削除 · 8-24

17-2 i.LON 100 Internet Server Programmer’s Reference

アラームログファイルの読み取り · 8-18

いいいい イベントカレンダー 例外ポイントの一覧 · 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

かかかか 外部データポイント

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

きききき 協定世界時 · 6-11

ここここ コードサンプル · 16-2

Data Point関数 · 2-13

すすすす スケジュール イベントカレンダー · 12-1 イベントスケジューラの作成 · 11-1 概要 · 11-1 日付を基にしたスケジュール · 11-1 曜日を基にしたスケジュール · 11-1 例外ポイント · 12-1

スケジュール例外ポイント 例外ポイント · 12-1

せせせせ セキュリティ · 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, 4-

16

i.LON 100 Internet Server Programmer’s Reference 17-3

データポイントの構成の取得 · 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

ねねねね ネットワークデータ型の変換 · 13-1

はははは パフォーマンス問題 · 3-15

ひひひひ 標準 XML · 3-8

ふふふふ フラッシュメモリ · 1-1, 15-1 プログラミングサンプル · 16-2

Data Point関数 · 2-13

もももも モデムの構成 · 10-9

りりりり リソースファイル · 3-12