(57)【要約】【課題】新機種展開に対する既存機種のデータベースやアプリケーションへの影響をなくし、柔軟で容易な静的情報管理が行える静的情報データベースシステムを提供すること【解決手段】コントローラの静的情報を構成する要素をツリー構造で管理されるとともに、前記各要素の内容は、ＸＭＬ等のメタ言語で記述して記憶装置に格納する。また、ＸＭＬはリンクを定義できるので、他の要素を参照する記述ができる。よって、同一の要素については、具体的な内容はデータベースシステム上で唯一にすることができ、要素の内容の修正が確実に行える。【選択図】        図３
2004199415.tif 000002
【特許請求の範囲】
【請求項１】
コントローラの静的情報を格納するデータベースシステムであって、
前記静的情報を構成する要素は、ツリー構造で管理されるとともに、前記各要素の内容は、ＸＭＬ等のメタ言語で記述して記憶装置に格納してなることを特徴とするデータベースシステム。
【請求項２】
複数のコントローラで共通する要素は、共通のフォルダを用意し、その共通のフォルダ内に格納し、
前記複数のコントローラで異なる固有の情報を定義する要素は前記共通のフォルダの下位に連携するようにしたことを特徴とする請求項１に記載のデータベースシステム。
【請求項３】
静的情報を構成する各要素は、リンクを定義することができ、そのリンクにより他のコントローラ用の要素の定義を参照するようにしたことを特徴とする請求項１または２に記載のデータベースシステム。
【請求項４】
同一の要素が複数のコントローラの静的情報として存在する場合に、
具体的な内容の記述はいずれか１つのコントローラにおいて行い、他のコントローラについての要素は、前記リンクを定義することにより前記具体的な内容の記述を行った要素を参照するようにしたことを特徴とする請求項３に記載のデータベースシステム。
【請求項５】
請求項１から４のいずれか１項に記載のデータベースシステムと、
そのデータベースシステムにアクセスし、前記コントローラに関するプログラムを作成するツール本体を備えたことを特徴とするツール装置。
【請求項６】
請求項１から４のいずれか１項に記載のデータベースシステムに対し、
メタ言語で定義した新規なコントローラについての要素を用意し、
前記要素を前記ツリー構造の所定位置に追加するように前記記憶装置に格納する処理を実行することを特徴とするデータベース更新方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、データベースシステム及びツール装置並びにデータベース更新方法に関するものである。
【０００２】
【発明の背景】
ファクトリーオートメーションを構成する装置の１つとして、プログラマブルコントローラや温調機器などのコントローラがある。これらのコントローラに対しては、ツール（パソコン）を用いてプログラムをダウンロードしたり、各種のパラメータ等を設定したりする。ところで、上記プログラムや、コントローラを利用するアプリケーションを作成するに際し、コントローラの各機種の静的情報（例えば、サポートするメモリ種別やサイズ，利用可能なネットワーク，利用可能な通信コマンドなど）を取得する必要がある。
【０００３】
係る静的情報を各コントローラ自身に持たせることができると、プログラム（アプリケーション）を作成するパソコンがコントローラと通信をして当該静的情報を取得することができるので好ましいが、コストの制約などにより全てのコントローラに対し、自己の静的情報を持たせることはできない。
【０００４】
そこで、各コントローラの静的情報をパソコン上でデータベースとして一括管理することが考えられる。しかし、一般のデータベースシステムを利用した場合、各情報を格納するスキーマはその時点で存在するコントローラが持つ要素に対し定義される。さらに、静的情報のデータベースにコントローラの情報を個別に定義して管理する必要がある。従って、それら複数の機種で共通の情報を共通の定義として管理することと、個別の定義の管理をすることにより、データベース管理を容易にすることが要求される。
【０００５】
係る場合に、その後に開発された機器により、新たな要素が必要となると、コントローラに対するスキーマ定義を変更する必要がある。すなわち、すべての機器に共通したメモリ種別の情報として、図１に示すようにスキーマが定義されていた場合に、各アドレスやタイプに加えて別の要素を追加したい事情が生じる場合がある。
【０００６】
しかし、一般のデータベースシステムを利用した場合、一旦定義したスキーマに新たに項目を追加することはできない。従って、各情報を格納するスキーマ定義においてコントローラ毎の個別情報と共通の情報を新機種に対し柔軟に変更することができない。そのため、ある時点ではすべての機種に共通の情報であっても将来その情報が共通でない機種が出てきた場合に、スキーマ定義やアプリケーションの変更が必要となる。つまり、図１に示すものに対し、１つのスキーマを追加しようとしても、新規に作成し直さなければならず、すでに作成したデータベースの情報を有効利用することができなくなる。
【０００７】
この発明は、コントローラの静的情報データベースにおいて、新機種展開に対する既存機種のデータベースやアプリケーションへの影響をなくし、柔軟で容易な静的情報管理を実現することができるデータベースシステム及びツール装置並びにデータベース更新方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
この発明によるデータベースシステムは、コントローラの静的情報を格納するデータベースシステムであって、前記静的情報を構成する要素は、ツリー構造で管理されるとともに、前記各要素の内容は、ＸＭＬ等のメタ言語で記述して記憶装置に格納するように構成した。つまり、コントローラの静的情報を要素へのパスで指定できるツリー構造で管理し、静的情報そのものをＸＭＬ等のメタ言語で記述するようにした。
【０００９】
ツリー構造は、要素自体をツリー状に配置してもよいし、要素はフォルダ内に入れ、そのフォルダをツリー状に配置するようにしたものでもよいし、それらの複合型でももちろんよい。
【００１０】
そして、複数のコントローラで共通する要素は、共通のフォルダを用意し、その共通のフォルダ内に格納し、前記複数のコントローラで異なる固有の情報を定義する要素は前記共通のフォルダの下位に連携するように構成することもできる。ここで、フォルダは実施の形態では１つのファイルに対応し、そのファイル内には１または複数の要素が格納される。そして複数の要素が格納される場合には、並列的な関係の場合と上下に階層化された関係のいずれも取り得る。
【００１１】
通常、提供したい情報は主に各構成要素が持つ定義情報であり、これらの情報は個別ファイルとすると管理が容易である。またデバイスを構成する要素の情報は定義情報を分類するフォルダと捕らえることができる。そこで、デバイス情報を表すのにフォルダとＸＭＬファイル等を組み合せて使うようにすると扱いやすい。そして、新しいデバイスを追加する場合は必要な構成要素であるフォルダとこれに対応する定義ファイルを用意すればよく、既存ファイルを変更する必要が無い。
【００１２】
本発明では、静的情報の格納方法として、ＸＭＬ（ｅＸｔｅｎｄｅｄ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）等のメタ言語を採用したので、情報の定義の拡張性を得ることができる。すなわち、ＸＭＬ等のメタ言語を利用することによりサポートする機種ごとに違う情報を追加できるような柔軟な構造となる。
【００１３】
また、データメンテナンスの容易性も得られる。すなわち、ＸＭＬ等はプログラムからも操作しやすいデータ構造であるとともに、人間が見ても直感的に理解しやすい。従って、既存のデータベースの内容を理解し、修正することが容易に行える。さらに、デバイスつまりコントローラの機種情報を扱いたい他のアプリケーションに情報を提供する際に、交換が非常に容易になる。
【００１４】
さらに本発明では、静的情報を構成する各要素は、リンクを定義することができ、そのリンクにより他のコントローラ用の要素の定義を参照するようにすることができる。このように、リンクを定義することにより、他の要素の定義を利用することができる。また、データベースのメンテナンス時も、参照先の具体的に定義した要素の内容を修正するだけで、その修正内容が他の要素に反映される。そして、このように、静的情報の各要素にリンクを定義したとしても、アプリケーションからはリンクの有無は意識せずアクセスすることができる。
【００１５】
また、リンクする先の要素に連携された子要素のデータの利用形態としては、各種のものがあり、たとえば以下の３種類の機能を得ることができる。すなわち、リンクにおいては、リンク先の子要素とリンク元の子要素を共に、リンク元の子要素として参照する機能と、リンク元の子情報がリンク先の子情報に優先し、リンク元に該当の情報があればリンク先の情報を参照しない機能と、リンク元に子要素への非参照情報があれば、リンク先の該当する子要素を参照しない機能である。もちろんこれ以外のものも取り得る。
【００１６】
さらに、同一の要素が複数のコントローラの静的情報として存在する場合に、具体的な内容の記述はいずれか１つのコントローラにおいて行い、他のコントローラについての要素は、前記リンクを定義することにより前記具体的な内容の記述を行った要素を参照するように構成することもできる。つまり、同一の要素について具体的に定義したものは、データベース上に唯一存在することになる。これにより、同一の要素についての具体的な定義の内容が異なるものが存在しなくなる。
【００１７】
一方、本発明に係るツール装置では、上記したデータベースシステムと、そのデータベースシステムにアクセスし、前記コントローラに関するプログラムを作成するツール本体を備えて構成する。「コントローラに関するプログラム」とは、コントローラとアクセスするアプリケーションプログラムや、コントローラにダウンロードするプログラムなど各種のものを含む。
【００１８】
さらに本発明に係るデータベース更新方法では、上記した各発明のデータベースシステムに対し、メタ言語で定義した新規なコントローラについての要素を用意し、前記要素を前記ツリー構造の所定位置に追加するように前記記憶装置に格納する処理を実行する。このように新たな要素を追加しても、既存の要素への影響はない。
【００１９】
【発明の実施の形態】
図２に示すように、本実施の形態では、静的情報データベース１０は、ツールを構成するパソコン１１の記憶装置に格納されている。この記憶装置は、内蔵のハードデスクその他の各種の記録媒体でもよいし外部記憶装置でもよい。また、このパソコン１１は、ツール本体１２を備えている。ツール本体１２は、各種のアプリケーション，プログラムを作成する機能や、デバイスとの通信処理を行う機能などを備えている。そして、デバイスとの通信に必要な情報は、各デバイスに固有の静的情報とユーザにより設定されたパラメータがあり、「デバイス設定」コンポーネントとして実装される。
【００２０】
また、ツール本体１２は、静的情報データベース１０にアクセスし、必要なデバイスについての静的情報を取得したり、新規なデバイスについての静的情報を追加するなどのデータベースの編集・更新処理を行ったりする機能を備えている。もちろん、係る静的情報データベース１０の更新機能は、ツール本体１２とは別に構成するようにしてもよい。また、静的情報に対するアクセス（実際の読み書き）は、実際には「スタティックデータプロバイダ」コンポーネントが実行する。つまり、ツール本体１２からの要求を受けたスタティックデータプロバイダが、その要求に応じた処理を実行し、得られた結果をツール本体１２に返すようになる。
【００２１】
なお、静的情報データベース１０に格納される各デバイスに固有の静的情報は、論理デバイス単位に定義されている。そして、具体的には、図３に示すようになっている。まず、本実施の形態では、コントローラの静的情報を要素へのパスで指定できるツリー構造で管理し、静的情報そのものをＸＭＬなどのメタ言語で記述するようにした。なお、図３は、コントローラであるＰＬＣのＣＰＵユニット用の静的情報を格納した例を示しており、ＣＰＵユニットは、大別してＡシリーズとＢシリーズがあり、ＡシリーズにはＡ１，Ａ２の２つの型式のＣＰＵユニットが用意され、ＢシリーズにはＢ１という型式のＣＰＵユニットが用意されているものとする。同一のシリーズに属するコントローラ（ＣＰＵユニット）同士は、比較的機能が近く、静的情報を構成する要素の種類並びにその値（データ）も共通するものが多く、逆にシリーズが異なると、必要とする要素の種類，値が異なる点が多くなる。
【００２２】
そして、図３から明らかなように、データベースを構築するファイルシステムは、「Ｒｏｏｔ」を頂点として、上記した実際の機器のグループ構成に従って、所定のファイルをツリー状に配置する。つまり、Ａシリーズ用のＣＰＵユニットで共通の要素（スキーマ）を定義した「Ｃｏｎｔｒｏｌｌｅｒ  Ａ」というファイルを「Ｒｏｏｔ」の下に置く。そして、ＣＰＵユニットＡ１，Ａ２に固有の要素は、それぞれこの「Ｃｏｎｔｒｏｌｌｅｒ  Ａ」の下に接続させた「ＣＰＵ  Ａ１」，「ＣＰＵ  Ａ２」の各ファイルで定義する。同様に、Ｂシリーズ用のＣＰＵユニットで共通の要素（スキーマ）を定義した「Ｃｏｎｔｒｏｌｌｅｒ  Ｂ」というファイルを「Ｒｏｏｔ」の下に置く。そして、ＣＰＵユニットＢ１に固有の要素は、この「Ｃｏｎｔｒｏｌｌｅｒ  Ｂ」の下に接続させた「ＣＰＵ  Ｂ１」のファイルで定義する。なお、この図では、便宜上Ｂシリーズに属するＣＰＵユニットはＢ１の１つとしているが、Ｂシリーズに属する機器は、通常複数存在する（現在あるいは将来の追加を含めて）ので、そのシリーズに共通する要素と、固有の要素とを別に分けて、それぞれをファイルで定義するようにしている。
【００２３】
上記した各ファイルは、メタ言語であるＸＭＬで定義している。すなわち、ＸＭＬを用いることにより、スキーマ（要素）と、具体的なデータ（値）を定義・記述することができる。従って、各ファイルごとに要素の定義をすることにより、新規に追加する要素が必要となった場合でも、ファイルを作成する（ＸＭＬで記述する）際に、係る要素についても記述することより簡単に追加できる。そして、既存のファイルで係る要素が必要な場合には、その既存のファイルを読み出し、当該要素について追加して記述することにより簡単に更新処理をすることができる。この更新処理は、上記の通り、既存のファイルに対し、新たな要素の定義とそのデータ等の必要な情報を追加するだけでよく、その既存のファイルにおいてすでに記述されている情報については変更を要しないとともに、影響も与えないので、既存の資産をそのまま利用することができる。
【００２４】
さらに、コントローラの情報は、このファイルシステムにおいてフォルダたるＸＭＬファイルとしてツリー構造で管理される。また、ＸＭＬファイルにおいてＸＭＬによる階層構造表現により、各要素がツリー構造で管理される。つまり、各コントローラの静的情報は、ファイルシステムのツリーパスとＸＭＬファイル中で記述されたツリーパスによって階層化され、そのツリーを追うことにより必要な情報を取得することができる。さらに、このデータベースシステム全体としては、ファイルシステムのツリーパスとＸＭＬファイル中のツリーパスの違いを意識せず、要素のパスを指定することにより該当の情報にアクセスすることができる。
【００２５】
たとえば、ＣＰＵ  Ａ１についての静的情報（要素Ｘ，Ｙ：１，Ｐ：１，Ｐ：２）は、「Ｃｏｎｔｒｏｌｌｅｒ  Ａ」のファイルで記述された内容と、その「Ｃｏｎｔｒｏｌｌｅｒ  Ａ」の下に接続された「ＣＰＵ  Ａ１」のファイルで記述された内容を取得することにより得られる。もちろん、全ての情報を取得するのではなく、そのうちの必要な一部の情報のみを取得することもできる。
【００２６】
さらに、実際に参照する場合には、例えば、Ａシリーズの「Ｃｏｎｔｒｏｌｌｅｒ  Ａ」に共通の要素Ｘを参照するためのパスは、「／Ｒｏｏｔ／ＣｏｎｔｒｏｌｌｅｒＡ／Ｘ」となる。また、シリーズ「Ｃｏｎｔｒｏｌｌｅｒ  Ａ」のＣＰＵＡ１が要素Ｐを複数持ち、属性が“１”である要素Ｐを参照するパスは、「／Ｒｏｏｔ／ＣｏｎｔｒｏｌｌｅｒＡ／ＣＰＵＡ１／Ｐ［＠Ｎｏ＝‘１’］」となる。
【００２７】
さらに、全てのＣＰＵユニットに共通の要素も存在する。例えば、要素Ｘは、Ａシリーズの共通の要素を定義した「Ｃｏｎｔｒｏｌｌｅｒ  Ａ」中にも記述されているし、Ａシリーズの共通の要素を定義した「Ｃｏｎｔｒｏｌｌｅｒ  Ｂ」中にも記述されている。そして、このように同一の要素が複数存在すると、この要素Ｘの内容を修正する場合、要素Ｘを含むすべてのファイルに対して修正処理をする必要がある。しかし、そのようにすると、修正処理が煩雑であるばかりでなく、一部のファイルを修正し忘れることにより、ファイルシステム内で同一の要素Ｘでありながら、内容が異なるという問題が生じるおそれがある。
【００２８】
そこで、本実施の形態では、ディレクトリ上に一意のファイル名でＸＭＬファイルを１つだけ配置するようにした。つまり、ある要素につき具体的内容を記述したファイルは、ファイルシステム状で１つのみ存在させ、当該要素を含む他のファイルは、具体的内容を記述したファイル（ファイル中の要素の記述部分）に対してリンクを貼るようにした。これにより、すでに作成済みの要素の内容を修正する場合、具体的内容を記述したファイルに対してのみ修正処理をするだけでよくなる。よって、修正処理が簡単になるばかりでなく、一部のファイルの修正し忘れといった問題を生じることがなくなる。
【００２９】
また、このように静的情報の各要素にリンクを定義し、実態は他のファイルに記述したとしても、アプリケーションは各ファイルにアクセスすればよいので、アプリケーションからはリンクの有無は意識せずアクセスできる。
【００３０】
さらに、リンク先は任意のファイルとすることができる。つまり、例えば要素Ｘについていうと、Ａシリーズの「Ｃｏｎｔｒｏｌｌｅｒ  Ａ」のファイルを原本として具体的な内容を記述し、Ｂシリーズの「Ｃｏｎｔｒｏｌｌｅｒ  Ｂ」のファイル中で「Ｃｏｎｔｒｏｌｌｅｒ  Ａ」にリンクを貼るようにしてもよいが、本実施の形態では、典型的な共通の要素を定義した共通ファイル（Ｃｏｍｍｏｎ）を用意し、その共通ファイル中で具体的内容を記述し、各ファイルは、必要に応じてその共通ファイルにリンクを張り、参照するようにした。
【００３１】
次に、係るリンクについて説明する。ＸＭＬは、ＸＭＬファイルの任意の要素をリンク元とし、データベース中の任意の要素をリンク先とする機能を持っている。係るリンク機能では、リンク先は、要素を参照する場合と同様にリンク先のパスを記述して指定する。そのため、リンク先として同じＸＭＬファイル中の要素のみでなく、図４に示すように、他のＸＭＬファイルの要素の先頭やファイルシステム中のディレクトリの先頭をリンク先として指定することもできる。前者の例では、「ＣＰＵ  Ａ２」が「ＤａｔａＴｙｐｅｓ」中の１つの要素である「Ｔｙｐｅ：Ａ」を参照する場合であり、後者の例では、「ＣＰＵ  Ａ１」において「ＤａｔａＴｙｐｅｓ」の全体を参照する場合である。
【００３２】
そして、本実施の形態においてリンク先の子要素を参照する際の機能として次の３つを実現する。まず、第１の機能としては、リンク先の子要素とリンク元の子要素を共に、リンク元の子要素として参照する場合がある。
【００３３】
例えば、図３において「Ｃｏｎｔｒｏｌｌｅｒ  Ｂ」の要素Ｘから「ＣｏｍｍｏｎＣｏｎｔｒｏｌｌｅｒ」の要素Ｘへリンクしており、リンク先に子要素Ｙ：１とＹ：２が存在し、リンク元に要素Ｙ：３が存在する。その結果、「Ｃｏｎｔｒｏｌｌｅｒ  Ｂ」の要素Ｘには子要素として、Ｙ：１，Ｙ：２，Ｙ：３の３つが参照される。
【００３４】
係る機能を実現するための「ＣｏｍｍｏｎＣｏｎｔｒｏｌｌｅｒ」と「Ｃｏｎｔｒｏｌｌｅｒ  Ｂ」の具体的なＸＭＬでの記述は、図５に示すようになる。これにより、基本パターンである要素Ｘの下に子要素として要素Ｙ：１とＹ：２が接続された状態において、さらに新たな要素として要素Ｙ：３が追加された状態となり、新規な要素の追加が簡単に行えることがわかる。
【００３５】
また、第２の機能としては、リンク元の子情報がリンク先の子情報に優先し、リンク元に該当の情報があればリンク先の情報を参照しないようにすることができる。
【００３６】
例えば、図４においては、「Ｃｏｎｔｒｏｌｌｅｒ  Ａ」の要素Ｘから「ＣｏｍｍｏｎＣｏｎｔｒｏｌｌｅｒ」の要素Ｘへリンクしており、リンク先に子要素Ｙ：１とＹ：２が存在し、リンク元に要素Ｙ：１が存在する。その結果、「Ｃｏｎｔｒｏｌｌｅｒ  Ａ」の要素Ｘには子要素として、「Ｃｏｎｔｒｏｌｌｅｒ  Ａ」の要素Ｘの下にある子要素Ｙ：１と「ＣｏｍｍｏｎＣｏｎｔｒｏｌｌｅｒ」の要素Ｘの下の子要素Ｙ：２の２つが参照されることになる。これを実現するための「ＣｏｍｍｏｎＣｏｎｔｒｏｌｌｅｒ」と「Ｃｏｎｔｒｏｌｌｅｒ  Ａ」の具体的なＸＭＬでの記述は、図６に示すようになる。
【００３７】
さらに、第３の機能としては、リンク元に子要素への非参照情報があれば、リンク先の該当する子要素を参照しないようにすることができる。例えば、図４においてＣＰＵＢ１の要素Ｐから「Ｃｏｍｍｏｎ ＣＰＵ」の要素Ｐへリンクしており、リンク先に子要素ＱとＲが存在し、リンク元に子要素Ｒへのリンクを参照しないようにする非参照情報（ｄｅｌ  Ｒ）がある。その結果、ＣＰＵ  Ｂ１の要素Ｐには子要素として、Ｑのみが参照されることになる。これを実現するための「ＣｏｍｍｏｎＣＰＵ」と「ＣＰＵ  Ｂ１」の具体的なＸＭＬでの記述はＸＭＬの具体例としては、図７に示すようになる。
【００３８】
なお、上記した実施の形態において、静的情報は、デバイススタックと合わせて必要な情報のみを提供できれば他のデバイスとの関係が疎になり、デバッグ時もメンテナンスもしやすくなる。そこで、静的情報を以下のような情報の集まりと定義することができる。
【００３９】
第１に、デバイス構成要素情報がある。例えばＰＬＣデバイスはＣＰＵの種類ごとに管理され、それぞれサポートしているメモリ領域，ネットワーク種別などが異なる場合がある。そこで、これらのＰＬＣ，ＣＰＵ，ネットワーク，メモリといったものがデバイスを構成する要素とすることができる。
【００４０】
第２に、各構成要素が持つ定義情報がある。上記の各要素別に、それを定義する情報が存在する。たとえば、メモリであれば名前，サイズ，メモリにアクセスするために必要な情報などがあり、またネットワークであれば、通信最大フレーム長など、プロトコル関連情報があげられる。
【００４１】
【発明の効果】
以上のように、この発明では、コントローラの静的情報データベースにおいて、静的情報を構成する要素をツリー構造で管理するとともに、メタ言語で定義するようにしたため、新機種展開等に伴う新たな要素を定義する必要が生じた場合でも、係る新規な予想をメタ言語で定義することにより対応でき、既存機種のデータベースやアプリケーションへの影響をなくし、柔軟で容易な静的情報管理を実現することができる。
【図面の簡単な説明】
【図１】従来例を説明する図である。
【図２】本発明の好適な一実施の形態を示す図である。
【図３】静的情報データベースの内部データ構造の一例を示す図である。
【図４】リンクの例を示す図である。
【図５】各ファイルの具体的な記述例を示す図である。
【図６】各ファイルの具体的な記述例を示す図である。
【図７】各ファイルの具体的な記述例を示す図である。
【符号の説明】
１０  静的情報データベース
１１  パソコン
１２  ツール本体
【図１】
2004199415.tif 000003
【図２】
2004199415.tif 000004
【図３】
2004199415.tif 000005
【図４】
2004199415.tif 000006
【図５】
2004199415.tif 000007
【図６】
2004199415.tif 000008
【図７】
2004199415.tif 000009