(57)【特許請求の範囲】
【請求項１】
データを収集して管理する複数の装置と、
前記装置と第１のネットワークを介して情報の送受信を行うと共に、要求元と第２のネットワークを介して情報の送受信を行うゲートウェイ装置と、を有し、
前記ゲートウェイ装置は、
前記要求元からの要求を処理し、当該処理結果を前記要求元に送信する処理部を有し、
前記処理部は、
少なくとも前記装置から入力した入力情報を基に前記装置の構成と前記装置の管理対象となるデータとを管理するための構成情報を生成し、前記生成した構成情報を前記要求元のアクセス対象の情報として管理し、前記入力情報が更新されたことを条件に、前記構成情報を更新し、
前記入力情報の中に前記装置の管理対象となるデータを特定する情報として複数の階層名とデータ名が存在する場合、前記入力情報を基に情報の単位を示すノードであって、階層化された複数のノードとして、前記装置が属するシステムを特定するシステムノードと、当該システムノードの子ノードであって前記システムに属する装置を特定する装置ノードと、当該装置ノードの子ノードであって前記装置の管理対象となるデータを特定するデータノードと、前記装置ノードの子ノードであって前記装置の状態を示す装置状態ノードを含む第１のモデルを生成すると共に、前記システムノードとは異なる系で前記データノードと子孫関係を形成する複数の汎用ノードを含む第２のモデルを生成し、前記第１のモデルと前記第２のモデルを含むモデルを前記構成情報に属する情報モデルとして生成し、前記生成した情報モデルのうち前記各汎用ノードを前記各階層名に対応したノードに設定し、前記データノードを前記データ名に対応したノードに設定する
ことを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムにおいて、
前記処理部は、
前記入力情報を基に前記装置をアクセス先として管理するためのアクセス先情報を生成し、前記入力情報が更新されたことを条件に、前記アクセス先情報を更新することを特徴とする計算機システム。
【請求項３】
請求項２に記載の計算機システムにおいて、
前記処理部は、
前記要求に付加された付加情報を判別し、当該判別結果を基に前記アクセス先情報を参照して、アクセス先となる装置を特定し、前記特定した装置から前記要求で指定されたデータを取得して前記要求元に送信することを特徴とする計算機システム。
【請求項４】
請求項１に記載の計算機システムにおいて、
前記処理部は、
前記いずれかの装置から削除通知として、削除の対象となる装置を特定する識別情報を含む削除通知を受信した場合、前記受信した削除通知に付加された識別情報を基に前記情報モデルを参照し、前記削除の対象となる装置に対応した装置ノードと当該装置ノードの子ノードとなるデータノード及び装置状態ノードを前記情報モデルから削除する
ことを特徴とする計算機システム。
【請求項５】
請求項１に記載の計算機システムにおいて、
前記処理部は、
前記各装置から設定時間内に生存報告通知を受信したか否かを判定し、いずれかの装置から前記設定時間内に生存報告通知を受信してない場合、当該装置の情報モデルを参照し、装置状態ノードの値が一時停止でないことを条件に、前記装置に対応した装置ノードと当該装置ノードの子ノードとなるデータノード及び装置状態ノードを前記情報モデルから削除する
ことを特徴とする計算機システム。
【請求項６】
請求項１〜３のうちいずれか１項に記載の計算機システムにおいて、
前記入力情報は、
前記装置を特定する第１の情報と前記装置の管理対象となるデータに関する第２の情報を含むデータリストで構成され、
前記第１の情報は、
前記装置が属するシステムを識別するための名称を示すシステム名と、前記装置を識別するための名称を示す装置名を含み、
前記第２の情報は、
前記データを識別するための名称を示すデータ名と、前記データの格納先の先頭アドレスを示すメモリアドレスと、前記データの容量を示すサイズと、前記データの種別を示すデータ型を含む
ことを特徴とする計算機システム。
【請求項７】
請求項１に記載の計算機システムにおいて、
前記処理部は、
前記生成した情報モデルの内容を表示情報として前記要求元に送信して、前記表示情報を前記要求元の画面に表示させる
ことを特徴とする計算機システム。
【請求項８】
請求項１に記載の計算機システムにおいて、
前記ゲートウェイ装置は、
前記装置とは異なる装置から入力されたデータであって、前記第１のネットワーク経由で周期的に同報送信されたデータを、前記装置間の共有メモリデータとして格納する転写メモリを有し、
前記処理部は、
前記要求に付加された付加情報から前記要求の種別を判別し、当該判別結果が、読み出し要求である場合、読み出し要求で要求されたデータの読み出し先を判別し、当該データの読み出し先が前記転写メモリである場合、前記転写メモリから前記読み出し要求で要求されたデータを前記転写メモリから取得して前記要求元に送信し、前記データの読み出し先が前記いずれかの装置である場合、前記付加情報を基にアクセス先となる装置から前記読み出し要求で要求されたデータを取得して前記要求元に送信し、前記要求の種別に対する判別結果が、監視要求である場合、前記監視要求で要求されたデータの読み出し先を判別し、当該データの読み出し先が前記転写メモリである場合、前記転写メモリから前記監視要求で要求されたデータを前記転写メモリから取得する旨の応答メッセージを生成して前記要求元に送信し、前記監視要求で要求されたデータの読み出し先が前記転写メモリではない場合、前記監視要求で要求されたデータを周期的に取得する旨の応答メッセージを生成して前記要求元に送信する
ことを特徴とする計算機システム。
【請求項９】
データを収集して管理する複数の装置と、
前記装置と第１のネットワークを介して情報の送受信を行うと共に、要求元と第２のネットワークを介して情報の送受信を行うゲートウェイ装置と、を有し、
前記ゲートウェイ装置は、
前記要求元からの要求を処理し、当該処理結果を前記要求元に送信する処理部を有する計算機システムにおける情報処理方法であって、
前記処理部が、少なくとも前記装置から入力した入力情報を基に前記装置の構成と前記装置の管理対象となるデータとを管理するための構成情報を生成する第１のステップと、
前記処理部が、前記生成した構成情報を前記要求元のアクセス対象の情報として管理する第２のステップと、
前記処理部が、前記入力情報が更新されたことを条件に、前記構成情報を更新する第３のステップと
を有し、
前記処理部は、
前記第１のステップでは、前記入力情報の中に前記装置の管理対象となるデータを特定する情報として複数の階層名とデータ名が存在する場合、前記入力情報を基に情報の単位を示すノードであって、階層化された複数のノードとして、前記装置が属するシステムを特定するシステムノードと、当該システムノードの子ノードであって前記システムに属する装置を特定する装置ノードと、当該装置ノードの子ノードであって前記装置の管理対象となるデータを特定するデータノードと、前記装置ノードの子ノードであって前記装置の状態を示す装置状態ノードを含む第１のモデルを生成すると共に、前記システムノードとは異なる系で前記データノードと子孫関係を形成する複数の汎用ノードを含む第２のモデルを生成し、前記第１のモデルと前記第２のモデルを含むモデルを前記構成情報に属する情報モデルとして生成し、前記生成した情報モデルのうち前記各汎用ノードを前記各階層名に対応したノードに設定し、前記データノードを前記データ名に対応したノードに設定する
ことを特徴とする情報処理方法。
【請求項１０】
請求項９に記載の情報処理方法において、
前記処理部が、前記入力情報を基に前記装置をアクセス先として管理するためのアクセス先情報を生成する第４のステップと、
前記処理部が、前記入力情報が更新されたことを条件に、前記アクセス先情報を更新する第５のステップと
を有することを特徴とする情報処理方法。
【請求項１１】
請求項１０に記載の情報処理方法において、
前記処理部が、前記要求に付加された付加情報を判別し、当該判別結果を基に前記アクセス先情報を参照して、アクセス先となる装置を特定する第６のステップと、
前記処理部が、前記特定した装置から前記要求で指定されたデータを取得して前記要求元に送信する第７のステップと
を有することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを収集して管理する複数の装置とゲートウェイ装置を含む計算機システム及びその情報処理方法に関する。
【背景技術】
【０００２】
遠隔保守や電力管理などの運用最適化を目的として、情報系の保守や経営などのシステムから制御システム内のデータにアクセスすることに対する要求が高まっている。
【０００３】
情報系のシステム間におけるデータ交換では、例えば産業向けのデータ交換に用いる通信プロトコルであるＯＰＣ−ＵＡ（ＯＰＣ−Unified  Architecture）のように、事前にシステムにどのような装置やデータがあるかをという情報を閲覧した上で、データの実際のメモリ位置などを抽象化した名前やＩＤ（Identification）などの指定子でデータを指定してアクセスするような手段を利用することが一般的である。そのため、情報系のシステムから制御システム内のデータに対しても同様の手段でアクセスできることが望ましい。
【０００４】
しかし、想定する制御システムは、装置の処理や通信の性能が制約されること、その上で厳しいリアルタイム性が求められることより、そのシステム内の装置やデータの構成の知識を前提として、データを所持する装置のＩＤやメモリアドレスなどを直接指定して問い合わせるようなシンプルなプロトコルでデータにアクセスする。そのため、システム内に存在する装置やデータといったシステムの構成情報が分からないこと、データアクセスのプロトコルやアクセスに必要な情報の差異があることにより、情報系のシステムから制御システムへのデータのアクセスが困難という課題である。
【０００５】
上記課題を解決する方法として、特許文献１で示すゲートウェイ装置がある。このゲートウェイ装置は、アクセス先システムのプロトコルで利用するデータ識別子を含む要求を受け取ると、そのプロトコルを利用して他システムからデータを取得する手段を提供する。前記ゲートウェイ装置を用いると、事前に制御システム内においてデータを識別する情報（メモリアドレスなど）を含む構成情報を公開すれば、他システムからのアクセスを実現できる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４３０５２２１号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら前記の特許文献１の技術を使った解決方法には課題がある。制御システム内の装置が持つデータへのアクセスを正しく行うためには、実際のシステムの構成や稼働状況を反映した構成情報の作成を行う必要があり、システム自体の構築に加えて更なる労力を要してしまう。また、システム変更や保守のための一時停止などの場合に、その変更に追随して構成情報を更新することは多大な労力を要する。
【０００８】
本発明の課題は、データを管理する装置の実際の構成を反映した構成情報を自動で生成し、構成情報の更新に要する労力を削減することにある。
【課題を解決するための手段】
【０００９】
前記課題を解決するために、本発明は、データを収集して管理する複数の装置と、前記装置と第１のネットワークを介して情報の送受信を行うと共に、要求元と第２のネットワークを介して情報の送受信を行うゲートウェイ装置と、を有し、前記ゲートウェイ装置は、前記要求元からの要求を処理し、当該処理結果を前記要求元に送信する処理部を有し、前記処理部は、少なくとも前記装置から入力した入力情報を基に前記装置の構成とデータを管理するための構成情報を生成し、前記生成した構成情報を前記要求元のアクセス対象の情報として管理し、前記入力情報が更新されたことを条件に、前記構成情報を更新することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、データを管理する装置の実際の構成を反映した構成情報を自動で生成し、構成情報の更新に要する労力を削減することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施例１を示す計算機システムの全体構成図である。
【図２】ゲートウェイ装置の構成を示すブロック図である。
【図３】制御システム内の装置の構成を示すブロック図である。
【図４】データリストの構成図である。
【図５】データリスト管理テーブルおよびアクセス先管理テーブルの構成図である。
【図６】データリスト伝送フレームおよび通知伝送フレームの構成図である。
【図７】制御システムの構成を表現した情報モデルの構成図である。
【図８】情報モデルで用いるシステムノードおよび装置の構成図である。
【図９】情報モデルで用いる装置状態ノードおよびデータノードの構成図である。
【図１０】ゲートウェイ装置の動作概要を説明するためのフローチャートである。
【図１１】装置の動作概要を説明するためのフローチャートである。
【図１２】ゲートウェイ装置の処理を説明するためのフローチャートである。
【図１３】通知受付処理を説明するためのフローチャートである。
【図１４】削除処理を説明するためのフローチャートである。
【図１５】要求受付処理を説明するためのフローチャートである。
【図１６】死活監視処理を説明するためのフローチャートである。
【図１７】クライアントに表示される情報モデルの構成図である。
【図１８】実施例２おける情報モデルの構成図である。
【図１９】実施例２における情報モデルで用いる汎用ノードの構成図である。
【図２０】実施例２におけるデータノード追加処理を説明するためのフローチャートである。
【図２１】実施例２におけるデータノード削除処理を説明するためのフローチャートである。
【図２２】実施例３における計算機システムの全体構成を示す構成図である。
【図２３】実施例３におけるゲートウェイ装置の構成図である。
【図２４】実施例３におけるデータリストの構成図である。
【図２５】実施例３における要求メッセージ受信時処理を説明するためのフローチャートである。
【図２６】実施例３におけるゲートウェイ装置の処理概要を説明するためのフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施例を図面に基づいて詳細に説明する。尚、本発明の実施例を説明する図において、同一部には同一の符号を付し、その繰り返しの説明は、省略することにする。
【実施例１】
【００１３】
本実施例では、少なくとも装置１１０から入力される入力情報（データリスト）を基に制御システムの構造を示すモデルとして、ＯＰＣ−ＵＡの情報モデルを生成し、生成した情報モデルの内容を公開するものとしている。ＯＰＣ−ＵＡでは、物事をノードと呼ばれる情報の単位によって表し、ノードは実在または仮想のものを表すオブジェクトノード、オブジェクトに関する値を表す変数ノードなどに分類され、それぞれの分類をノードクラスと呼ぶ。ＯＰＣ−ＵＡの情報モデルは、対象をノードとノード間の参照からなるツリー状の構造のモデルによって表現したものである。即ち、ＯＰＣ−ＵＡの情報モデルは、図７で詳述するように、対象の制御システムの構成を表現した情報モデルであり、ルートノード７０１を起点に、存在する複数のシステムを表すシステムノード７２０、それぞれのシステムに属する装置を表す装置ノード７３０、それぞれの装置が持つデータを表すデータノードといった要素からなる階層的な構造をツリーの形で表現したものである。
【００１４】
図１は、本発明の実施例１を示す計算機システムの全体構成図である。図１において、複数の装置１１０ａ、１１０ｂ、１１０ｃ（以下、装置１１０と称することがある。）は、データを収集して管理する装置であって、例えば、温度センサ、圧力センサ等のセンサ（データを収集する収集要素）と、センサの収集によるデータ（センサの検出出力）を基に制御対象（タービン等）を制御するコントローラ（制御要素）等を有する制御装置として構成される。各装置１１０は、制御ネットワーク（第１のネットワーク）１３０に接続され、各装置１１０全体で制御システムとして構成され、制御処理に関するデータの共有や問合せ型データアクセスを行う。クライアント１２０は、クライアント端末（コンピュータ装置）に属するソフトウェアであって、制御システムとは異なる他システム、例えば情報システムにある端末上のアプリケーションを想定しており、ネットワーク、例えば、情報ネットワーク（第２のネットワーク）１４０に接続されている。ゲートウェイ装置１００は、ネットワーク、例えば、情報ネットワーク１４０と制御ネットワーク１３０に共に接続されており、他システムのクライアント１２０による制御ネットワーク１３０上の装置１１０が持つデータへのアクセスを実現する装置である。なお、クライアント１２０は、ＯＰＣ−ＵＡプロトコルを利用してゲートウェイ装置１００にアクセスし、ゲートウェイ装置１００は装置１１０に対して問合せ型データアクセスによってアクセスを行う。
【００１５】
図２は、ゲートウェイ装置の構成を示すブロック図である。図２において、ゲートウェイ装置１００は、コントローラ（制御装置）、ワークステーション、パーソナルコンピュータ等のコンピュータである。揮発／不揮発性メモリやハードディスク装置を含む記憶部２１０と、中央処理装置（ＣＰＵ、Central  Processing  Unit）等からなる処理部２２０と、情報ＮＷ通信インタフェース（通信Ｉ／Ｆ）２３０ａと制御ＮＷ通信インタフェース２３０ｂを備える。これらのインタフェースはそれぞれ情報ネットワーク１４０および制御ネットワーク１３０との物理的接続およびネットワークドライバやＴＣＰ／ＩＰ（Transmission  Control  Protocol/Internet  Protocol）、ＵＤＰ／ＩＰ（User  Datagram  Protocol/Internet  Protocol）レイヤまでのプロトコルが実装されている。
【００１６】
記憶部２１０は、アクセス先管理テーブル２１１と、情報モデル保管テーブル２１２と、データリスト管理テーブル２１３とを備える。
【００１７】
アクセス先管理テーブル２１１は、制御ネットワーク１３０上の装置１１０に問合せ型データアクセスをするために必要な情報を管理するテーブルであり、データリスト管理部２２６によってエントリを追加または削除され、問合せ型データアクセス部２２５によって参照される。
【００１８】
情報モデル保管テーブル２１２は、情報モデルを保管する領域であり、データリスト登録時にデータリスト管理部２２６によって内容を更新される。また、情報モデル処理部２２３が受け付けたＯＰＣ−ＵＡの要求に応じたサービス処理を行うために、情報モデル保管テーブル２１２の内容が参照、更新、削除される。
【００１９】
データリスト管理テーブル２１３は、制御システム上の装置１１０から受け取る所有データの情報であるデータリスト４１０（図４参照）の送信元の装置１１０の情報や、装置１１０の死活監視情報を管理するためのテーブルである。データリスト管理部２２６によって、データリスト管理テーブル２１３のエントリが追加または削除される。また、データリスト管理テーブル２１３は、ノード死活監視部２２７によって生存確認時刻の情報書き込みや装置１００の停止を判定するために参照される。
【００２０】
処理部２２０は、ＯＰＣ−ＵＡメッセージ生成／送信部２２１ａ、ＯＰＣ−ＵＡメッセージ受信／解析部２２２ａ、メッセージ生成／送信部２２１ｂ、メッセージ受信／解析部２２２ｂ、情報モデル処理部２２３、問合せ型データアクセス部２２５、データリスト管理部２２６、ノード死活監視部２２７から構成される。
【００２１】
ＯＰＣ−ＵＡメッセージ受信／解析部２２２ａは、情報ネットワーク１４０を経由してクライアント１２０から受け取るＯＰＣ−ＵＡの要求メッセージを解析し、解析結果を情報モデル処理部２２３に渡す。
【００２２】
ＯＰＣ−ＵＡメッセージ生成／送信部２２１ａは、情報モデル処理部２２３から受け取った情報を基に情報ネットワーク１４０に対してメッセージを生成し、送信する。
【００２３】
メッセージ生成／送信部２２１ｂは、情報モデル処理部２２３、問合せデータアクセス部２２５から呼び出され、制御ネットワーク１３０に対してメッセージを生成し、送信する。
【００２４】
メッセージ受信／解析部２２２ｂは、制御ネットワーク１３０からメッセージを受信して解析し、解析結果を示すメッセージを、問合せ型データアクセス部２２５、データリスト管理部２２６、ノード死活監視部２２７に渡す。
【００２５】
情報モデル処理部２２３は、情報モデルに含まれるデータの閲覧、ノードの検索、データの読み出し／書きこみ、ノード追加／削除、データの監視などのＯＰＣ−ＵＡサービスの実行手段を持ち、ＯＰＣ−ＵＡメッセージ受信／解析部２２２ａからＯＰＣ−ＵＡの要求を受け取り、受け取った要求に従ってＯＰＣ−ＵＡのサービス処理を行い、処理結果を示す応答をＯＰＣ−ＵＡメッセージ生成／送信部２２１ａ経由で、要求元のクライアント１２０に返すという処理を行う。情報モデル処理部２２３は、このサービスの処理など、必要に応じて情報モデル保管テーブル２１２に格納された情報モデルの参照や更新を行うことができる。
【００２６】
このＯＰＣ−ＵＡの要求は、ゲートウェイ装置１００が対象とするシステム内装置１１０のデータに対するデータ読出しまたはデータ監視などのシステム内データへのアクセスを伴う要求と、その他のＯＰＣ−ＵＡのサービスへの要求に分類される。分類の判断は、ＯＰＣ−ＵＡの要求の種別が読出しまたはデータ監視であることと、要求に含まれるノードＩＤがシステム内の装置１１０の情報を管理するアクセス先管理テーブル２１１に存在すことを同時に満たす場合のみ前者の分類に含まれる。前者の分類の要求の場合、情報モデル処理部２２３は、問合せ型データアクセス部２２５に通知して、装置１１０からのデータ取得を行い、その結果を応答としてクライアント１２０に返信する。後者の要求の場合、情報モデル処理部２２３は、情報モデル保管テーブル２１２に格納されている情報モデルを用いてデータの閲覧や検索、ノードの編集といったサービスを行い、その結果を応答としてクライアント１２０に返信する。また、情報モデル処理部２２３は、データリスト管理部２２６からの要請に応じて、情報モデルに対するノードの追加、削除、閲覧、検索といった処理を行うこともできる。
【００２７】
問合せ型データアクセス部２２５は、制御システムの装置１１０にアクセスしてデータを取得する手段であり、情報モデル処理部２２３からの通知を受けて必要なデータにアクセスを行い、取得したデータ、取得先の装置名、データが存在するメモリアドレスを情報モデル処理部２２３に渡す処理を行う。また、問合せ型データアクセス部２２５は、アクセスの時はアクセス先管理テーブル２１１を参照してアクセスに必要な情報（アクセス先の装置、メモリアドレス、サイズ）を取得する。なお、問合せ型データアクセスは、一度の要求に対して一度だけ応答を受け取る単発型アクセスと、一度の要求に対して周期的にデータを受け取る周期型アクセスの２通りのアクセス方法が利用できる。
【００２８】
データリスト管理部２２６は、装置１１０から受け取ったデータリスト４１０を用いて、情報モデル保管テーブル２１２の情報モデル、アクセス先管理テーブル２１１のデータのアクセス先の情報、データリスト管理テーブル２１３のデータリスト登録情報を更新する。また、データリスト管理部２２６は、装置１１０からの停止通知受信時や死活監視部２２７からの装置１１０の停止検知時に、前記の各情報の削除、装置１１０からの一時停止通知受信時に、装置状態を一時停止への変更といった処理も行う。
【００２９】
ノード死活監視部２２７は、装置１１０の停止を検知する手段であり、装置１１０が周期的に送信する生存通知を受け取った時刻をデータリスト管理テーブル２１３に記録し、記録された時刻が一定時間以上更新されなかった場合に装置１１０が停止したものとみなす。装置１１０の停止検知時には、ノード死活監視部２２７は、データリスト管理部２２６に対して、停止した装置１１０に関する情報モデルなどの情報削除を要請する。
【００３０】
図３は、制御システム内の装置の構成を示すブロック図である。図３において、装置１１０は、コントローラ（制御装置）、ワークステーション、パーソナルコンピュータ等のコンピュータである。揮発／不揮発性メモリやハードディスク装置を含む記憶部３２０と、中央処理装置（ＣＰＵ、Central  Processing  Unit）等からなる処理部３１０と、通信インタフェース（通信Ｉ／Ｆ）３３０とを備える。この通信インタフェース３３０は、制御ネットワーク１３０との物理的接続およびネットワークドライバやＴＣＰ／ＩＰ（Transmission  Control  Protocol/Internet  Protocol）、ＵＤＰ／ＩＰ（User  Datagram  Protocol/Internet  Protocol）レイヤまでのプロトコルが実装されている。
【００３１】
記憶部３２０は、内部メモリ３２１と、データリストを含むデータリストテーブル３２２とを備える。内部メモリ３２１は、問合せ型データアクセス部３１５によってアクセスされ、データを取得される。データリストテーブル３２２は、装置１１０が持つデータの情報の一覧であるデータリスト４１０を格納する領域であり、データリスト管理部３１３によってアクセスされる。
【００３２】
処理部３１０は、制御アプリケーション３３０と問合せ型データアクセス部３１５とデータリスト管理部３１３とノード死活監視部３１４とメッセージ生成／送信部３１１とメッセージ受信／解析部３１２とを備える。
【００３３】
メッセージ生成／送信部３１１は、問合せデータアクセス部３１５、データリスト管理部３１３、ノード死活監視部３１４から呼び出され、制御ネットワーク１３０に対してメッセージを生成し送信する。
【００３４】
メッセージ受信／解析部３１２は、制御ネットワーク１３０からメッセージを受信し解析し、解析結果を示すメッセージを、問合せ型データアクセス部３１５、ノード死活監視部３１４に渡す。
【００３５】
制御アプリケーション３３０は、各装置１１０を含む制御システムにおける制御に関する演算処理や通信処理を行う。また、制御アプリケーション３３０は、装置１１０の起動時、故障などによる装置１１０の停止時や保守などのための装置１１０の一時停止時などに、ゲートウェイ装置１００に対して、データリスト４１０の登録や関連情報の削除、装置状態の更新などの通知を送信するように、データリスト管理部３１３に命令を出すことができる。
【００３６】
データリスト管理部３１３は、装置１１０の起動時に、データリストテーブル３２２内のデータリスト４１０をメッセージ生成／送信部３１１等を介して、ゲートウェイ装置１００に対して送信し、登録を行う。また、データリスト管理部３１３は、制御アプリケーション３３０から受けた命令に従いゲートウェイ装置１００に対して通知を送信する。
【００３７】
問合せ型データアクセス部３１５は、ゲートウェイ装置１００からデータ取得要求を受け付けた際に、データを内部メモリ３２１から取得し、取得したデータを応答として、ゲートウェイ装置１００に返信する。
【００３８】
ノード死活監視部３１４は、装置１１０の死活監視のために、一定周期ごとに生存通知をゲートウェイ装置１００に対して送信する。
【００３９】
図４は、データリストの構成図である。図４において、データリスト４１０は、装置１１０が持つデータに関する情報の一覧であり、装置１１０のデータリストテーブル３２２に格納され、装置１１０の起動時などにゲートウェイ装置１００に対して送信される。データリスト４１０はヘッダ部４２０およびボディ部４３０から構成される。
【００４０】
ヘッダ部４２０はシステム名４２１、装置名４２２、バージョン４２３からなる。システム名４２１は、データリスト４１０を所有する装置１１０が属するシステムを識別する名称である。装置名４２２は、装置１１０を識別する名称であり、システムにおいて一意に識別可能であるものとする。バージョン４２３は、数値が大きいほどデータリスト４１０が新しいことを示す値である。
【００４１】
ボディ部４３０は、装置１１０が持つデータごとのエントリをもち、各エントリはデータ名４３１、メモリアドレス４３２、サイズ４３３、データ型４３４から構成される。データ名４３１はデータを識別する名称であり、装置１１０において識別可能であるものとする。メモリアドレス４３２は、内部メモリ３２１において、データが存在する先頭位置のメモリアドレス（データの格納先のアドレス）である。サイズ４３３はデータのサイズ（データの容量）である。データ型４３４はデータの種別（データの形式）である。
【００４２】
図５は、ゲートウェイ装置が持つデータリスト管理テーブルおよびアクセス先管理テーブルの構成図である。
【００４３】
図５（Ａ）において、データリスト管理テーブル２１３は、ゲートウェイ装置１００が装置１１０からデータリスト伝送フレーム６１０（後述）によって受け取ったデータリスト４１０の情報の格納、および、その有効性確認のために、装置１１０の死活監視に関する情報を格納するためのテーブルである。データリスト管理テーブル２１３は、データリスト４１０を登録した装置１１０ごとにエントリを持ち、各エントリはシステム名４２１、装置名４２２、バージョン４２３、ノードＩＤ５１４、生存確認時刻５１５、報告周期５１６から構成される。システム名４２１、装置名４２２、バージョン４２３は、装置１１０から受け取ったデータリスト４１０のヘッダ部４２０の情報を格納するフィールドであり、データリスト４１０の登録元やバージョンの管理に用いる。ノードＩＤ５１４は、情報モデル処理部２２３が、装置１１０の情報を情報モデルに登録した際に、装置１１０に対して発行されたノードＩＤであり、装置１１０の情報の削除時に、情報モデルから対応するノード群を削除するためのアクセスに利用される。生存確認時刻５１５は、そのエントリに対応する装置１１０から生存通知を最後に受け取った時刻を記録した情報である。また、報告周期５１６は、装置１１０が、生存通知を送信すべき時間の上限を示すものである。この際、ゲートウェイ装置１００は、生存確認時刻５１５が報告周期５１６を超過した場合、該当する装置１１０は停止したものとみなす。なお、報告周期５１６はシステムで定めても、装置１１０ごとに定めてデータリスト伝送フレーム６１０で通知してもどちらでも良い。
【００４４】
図５（Ｂ）において、アクセス先管理テーブル２１１は、データごとにアクセス先の情報を管理するためのテーブルであり、データごとにエントリを持ち、各エントリはノードＩＤ５２１、装置名５２２、メモリアドレス４３２、サイズ４３３から構成される。ノードＩＤ５２１は、データの情報を情報モデルに登録した際に発行されたノードＩＤである。装置名５２２は、データを所有する装置１１０の名前であり、データの情報が記載されたデータリスト４１０に登録された装置名５２２の名称が格納される。メモリアドレス４３２およびサイズ４３３は、データリスト４１０に記載された、データの存在位置およびそのサイズである。
【００４５】
図６は、装置とゲートウェイ装置との間の情報通知に用いるデータリスト伝送フレームおよび通知伝送フレームの構成図である。
【００４６】
図６（Ａ）において、データリスト伝送フレーム６１０は、装置１１０が所有するデータリスト４１０の内容をゲートウェイ装置１００に受け渡すために利用されるフレームである。データリスト伝送フレーム６１０は、フレームを識別するためのデータリスト伝送フレーム識別子と、フレームサイズ、フレーム通番、送信元ＩＰアドレスといったフレームのヘッダ情報を格納するフィールドを有する。なお、送信元ＩＰアドレスは、装置１１０にフレームを伝送するために必要な装置番号などの情報でも良い。また、データリスト伝送フレーム６１０は、データリスト４１０のヘッダ部４２０と同じ情報である、システム名、装置名、バージョンを格納するフィールドを有し、また、情報が格納されるデータの個数Ｎ、および、生存報告を通知する時間の上限である報告周期５１６を格納するフィールドを有する。さらに、データリスト伝送フレーム６１０は、データごとに、データ名、メモリアドレス、サイズ、データ型を格納するフィールドを有し、装置１１０のデータリスト４１０に記録された情報を格納することができる。
【００４７】
データリスト伝送フレーム６１０は、装置１１０とゲートウェイ装置１００との間で情報の送受信を行う際に、前記の構造により、データリスト４１０の内容を格納して伝送することができる。
【００４８】
図６（Ｂ）において、通知伝送フレーム６２０は、装置１１０とゲートウェイ装置１００との間で通知を行うためのフレームである。通知伝送フレーム６２０は、フレームを識別するための通知伝送フレーム識別子と、フレームサイズやフレーム通番、送信元装置番号、タイムスタンプといった情報を格納するフィールドを有し、また、データリスト４１０のヘッダ部４２０と同じ情報である、システム名、装置名を格納するフィールドを有する。
【００４９】
また、通知伝送フレーム６２０は、通知の種類に関する識別子である通知種別と、通知を識別する文字列等の値を格納するフィールドを有する。通知種別には、装置１１０が停止する際に送信する停止通知、装置１１０が一時停止する際の一時停止通知、装置１１０が一時停止を解除する際の一時停止解除通知、および、ゲートウェイ装置１００が装置１１０に対してデータリスト送信を要求するデータリスト問合せ通知、データリスト受け付けた際のデータリスト受付完了通知、一時停止通知を受けて装置状態を変更した際の一時停止受け付け完了通知、一時停止解除通知を受けて装置状態を変更した際の一時停止解除完了通知、停止通知などを受けて装置１１０に関する情報を削除した際の削除通知がある。
【００５０】
図７は、制御システムの構成を表現した情報モデルの構成図である。図７において、情報モデル７００は、制御システムに属する装置１１０を構成する機器やデータの構成を表現したモデルであって、複数のノードを有し、ゲートウェイ装置１００の情報モデル保管テーブル２１２に格納される。各ノードは、ルートノード７０１を起点に、図中で矢印によって示される参照を辿ることで到達が可能である。具体的には、情報モデル７００は、ルートノード７０１の子ノードとして、オブジェクトノードを組織化するオブジェクトフォルダノード７１０を持つ。オブジェクトフォルダノード７１０は、子ノードとして制御システムを表すオブジェクトノードであるシステムノード７２０（７２０ａ、７２０ｂ・・・）を持つ。各システムノードは、該当システムノードに対応する制御システムに存在する装置１１０を表すオブジェクトノードである装置ノード７３０（７３０ａ、７３０ｂ）を持つ。各装置ノードは、子ノードとして、装置１１０の稼動状態を表す変数ノードである装置状態ノード７５０、および、装置１１０が持つデータを表す変数ノードであるデータノード７４０（７４０ａ、７４０ｂ・・・）を持つ。
【００５１】
この際、ゲートウェイ装置１００の処理部２２０は、入力情報（データリスト４１０）を基に情報の単位を示すノードであって、ツリー状に階層化された複数のノードとして、装置１１０が属するシステム（制御システム）を特定するシステムノード７２０と、システムノード７２０の子ノードであってシステムに属する装置１１０を特定する装置ノード７３０と、装置ノード７３０の子ノードであって装置１１０の管理対象となるデータを特定するデータノード７４０と、装置ノード７３０の子ノードであって装置１１０の状態を示す装置状態ノード７５０を含むモデルを、構成情報に属する情報モデルとして生成する。
【００５２】
また、ゲートウェイ装置１００の処理部２２０は、装置１１０からのデータリスト４１０や通知を受け取ると、装置１１０に関する装置ノード１３０およびデータノード７４０を、この情報モデル７００のシステムノード７２０の子ノードとして、追加や削除を行うことで、実際の制御システムの構成を表す情報モデル７００を作成又は更新する。
【００５３】
図８は、情報モデルで用いるシステムノードおよび装置の構成図である。図８（Ａ）において、システムノード７２０は、ノード名、ノードＩＤ、親ノードの参照、ノードクラス、ノードタイプ、複数の子ノードの参照から構成される。ノード名には、システムノード７２０を特定する名称に関する情報が格納される。ノードＩＤには、システムノード７２０を識別するための識別子が格納される。親ノードの参照には、システムノード７２０の親ノードを参照するための情報が格納される。ノードクラスには、システムノード７２０のノードクラスを示す情報が格納される。ノードタイプには、システムノード７２０の形式を示す情報が格納される。子ノードの参照には、システムノード７２０の子ノードを参照するための情報として、例えば、「３０００２」や「２０３０１」が格納される。なお、オブジェクトノードはその他の属性を持っても良い。
【００５４】
システムノード７２０は、「システムオブジェクトタイプ」をノードタイプとして指定されたオブジェクトノードであり、ノード名はデータリスト４１０に含まれるシステム名、ノードＩＤは情報モデル処理部２２３により自動で割り当てられたＩＤ、親ノードの参照はオブジェクトフォルダノード７１０のノードＩＤ、子ノードの参照はそのシステムに所属する装置１１０に対応する装置ノードのＩＤが、それぞれの属性の値として設定される。
【００５５】
図８（Ｂ）において、装置ノード７３０は、システムノード７２０と同様に、ノード名、ノードＩＤ、親ノードの参照、ノードクラス、ノードタイプ、複数の子ノードの参照から構成される。装置ノード７３０は、「装置オブジェクトタイプ」をノードタイプとして指定されたオブジェクトノードであり、ノード名には、データリスト４１０に含まれる装置名、ノードＩＤには、情報モデル処理部２２３により自動で割り当てられたＩＤ、親ノードの参照には、該当装置１１０が所属するシステムのシステム名に対応するシステムノード７２０のノードＩＤ、子ノードの参照には、その装置１１０が所有するデータノード（後述）のＩＤが、それぞれの属性の値として設定される。
【００５６】
図９は、情報モデルで用いる装置状態ノードおよびデータノードの構成図である。図９（Ａ）において、データノード７４０は、ノード名、ノードＩＤ、親ノードの参照、ノードクラス、ノードタイプ、データ型、値、データ更新時刻から構成される。ノード名には、データノード７４０を特定する名称に関する情報が格納される。ノードＩＤには、データノード７４０を識別するための識別子（「３０００４」）が格納される。親ノードの参照には、データノード７４０の親ノードを参照するための情報（「３０００２」）が格納される。ノードクラスには、データノード７４０のノードクラスを示す情報（「変数」）が格納される。ノードタイプには、データノード７４０の形式を示す情報（「データ変数タイプ」）が格納される。データ型には、値の型を示す情報（「バイト列」）が格納される。値には、データの値に関する情報が格納される。データ更新時刻には、データを最後に更新した時刻に関する情報が格納される。なお、変数ノードはその他の属性を持っても良い。
【００５７】
データノード７４０は、「データ変数タイプ」をノードタイプとして指定された変数ノードであり、ノード名には、データリスト４１０に含まれるデータ名、ノードＩＤには、情報モデル処理部２２３により自動で割り当てられたＩＤ、親ノードの参照には、該当データを所有する装置１１０に関する装置ノード７３０のノードＩＤ、データ型には、バイト列、値には、問合せ型データアクセスによって装置１１０から取得した値、データ更新時刻には、値を取得した時刻が、それぞれの属性の値として設定される。
【００５８】
図９（Ｂ）において、装置状態ノード７５０は、ノード名、ノードＩＤ、親ノードの参照、ノードクラス、ノードタイプ、データ型、値、データ更新時刻から構成される。ノード名には、装置状態ノード７５０を特定する名称に関する情報が格納される。ノードＩＤには、装置状態ノード７５０を識別するための識別子（「３０００３」）が格納される。親ノードの参照には、装置状態ノード７５０の親ノードを参照するための情報（「３０００２」）が格納される。ノードクラスには、装置状態ノード７５０のノードクラスを示す情報（「変数」）が格納される。ノードタイプには、装置状態ノード７５０の形式を示す情報（「装置状態変数タイプ」）が格納される。データ型には、値の型を示す情報（「文字列」）が格納される。値には、装置１１０の状態に関する情報（「正常」、「稼働」、「一時停止」などの情報）が格納される。データ更新時刻には、データを最後に更新した時刻に関する情報が格納される。
【００５９】
装置状態ノード７５０は、「データ変数タイプ」をノードタイプとして指定された変数ノードであり、ノード名には、データリスト４１０に含まれるデータ名、ノードＩＤには、情報モデル処理部２２３により自動で割り当てられたＩＤ、親ノードの参照には、該当データを所有する装置１１０に関する装置ノード７３０のノードＩＤ、データ型には、文字列、値には、装置１１０の状態を示す値、データ更新時刻には、値を取得した時刻が、それぞれの属性の値として設定される。
【００６０】
図１０は、ゲートウェイ装置の動作概要を説明するためのフローチャートである。図１０において、ゲートウェイ装置１００の処理部２２０では、データリスト管理部２２６が、動作開始時に、制御ネットワーク１３０上で既に起動している装置１１０に対してデータリスト問合せ通知をブロードキャストする（Ｓ１０１０）。処理部２２０は、このデータリスト問合せ通知に対する返信、または、装置１１０起動時の動作によって送信されたデータリスト伝送フレーム６１０を受信した場合、データリスト受付処理を行い（Ｓ１２００）、装置１１０から通知伝送フレーム６２０を受信した場合、通知受付処理を行う（Ｓ１３００）。一方、処理部２２０は、情報ネットワーク１４０経由でクライアント１２０から要求メッセージを受信した場合、要求受付処理を行う（Ｓ１５００）。また、処理部２２０は、一定の周期毎に、制御ネットワーク１３０に接続された装置１１０の状態を確認する死活監視処理を行う（Ｓ１６００）。
【００６１】
次に、処理部２２０は、周期型データを受信したか否かを判定し（Ｓ１０２０）、このステップで否定の判定結果を得た場合、ステップＳ１２００の処理に戻り、このステップで肯定の判定結果を得た場合、即ち、制御ネットワーク１３０経由で装置１１０から、問合せ型データアクセスの周期型アクセスによって周期的に送信されるデータを受信した場合（Ｓ１０２０のＹＥＳ）、情報モデル処理部２２３が、問合せ型データアクセス部２２５から渡された送信元の装置名とメモリアドレスを基に、アクセス先管理テーブル２１１を参照し、データに関するデータノード７４０の値を、受信したデータの値に更新する（Ｓ１０３０）。この後、処理部２２０は、ＯＰＣ−ＵＡのサービスのうち、情報モデル７００のデータを監視してデータに変更があることを通知で知らせる監視処理など、周期的に実行する必要があるサービス処理を実行し（Ｓ１０４０）、Ｓ１２００から１０４０までの処理を繰り返す。
【００６２】
図１１は、装置の動作概要を説明するためのフローチャートである。図１１において、１１０装置の処理部３１０では、動作を開始するとまず、データリスト管理部３１３がデータリストテーブル３２２内のデータリスト４１０を基にデータリスト伝送フレーム６１０を生成してゲートウェイ装置１００に送信する（Ｓ１１１０）。以降の処理は繰り返し実行される。
【００６３】
まず、処理部３１０は、データリスト問合せを受信したか否かを判定し（Ｓ１１１１）、ゲートウェイ装置１００からデータリスト問合せ通知を受信している場合（Ｓ１１１１のＹＥＳ）、データリスト管理部３１３がその都度データリスト伝送フレーム６１０の再送を行い（Ｓ１１１０）、データリスト問合せ通知を受信していない場合（Ｓ１１１１のＮＯ）、データリスト管理部３１３が、アプリ（制御アプリケーション３３０）からの命令ありか否かを判定する（Ｓ１１２０）。制御アプリケーション３３０から命令を受け取っている場合（Ｓ１１２０のＹＥＳ）、処理部３１０は、データリスト管理部３１３が命令の種類を判別し（Ｓ１１３０）、判別結果に従って処理を実行する。即ち、処理部３１０は、命令が「削除」であった場合、ゲートウェイ装置１００に対して装置１１０に関する情報の削除を要求するため、通知種別を削除に設定し（Ｓ１１４１）、命令が「一時停止」であった場合、ゲートウェイ装置１００に対して装置１１０の装置状態を「一時停止」に変更するよう要求するため、通知種別を一時停止に設定し（Ｓ１１４２）、命令が「一時停止解除」であった場合、装置１１０の装置状態を「稼働」に変更するよう要求するため、通知種別を一時停止解除に設定し（Ｓ１１４３）、命令の種類がデータリスト更新であった場合、データリスト伝送フレーム６１０を再送する（Ｓ１１１０）。ステップＳ１１４１、Ｓ１１４２、Ｓ１１４３の処理の実行後、処理部３１０は、それぞれの通知種別を含む通知伝送フレーム６２０を生成して、ゲートウェイ装置１００に対して送信する（Ｓ１１５０）。
【００６４】
通知伝送フレームの送信（Ｓ１１５０）後、または、データリスト管理部３１３が制御アプリケーション３３０から命令を受け取っていない場合（Ｓ１１２０のＮＯ）、処理部３１０は、死活監視のために装置１１０の生存をゲートウェイ装置１００に知らせる生存通知の送信を行う。まず、処理部３１０は、ノード死活監視部３１４が、前回の生存通知送信時から、装置毎に事前に定められた生存通知送信間隔を経過しているかどうかを判定し（Ｓ１１６０）、経過している場合（Ｓ１１６０のＹＥＳ）、通知種別を「生存通知」に設定し（Ｓ１１７０）、設定されて通知種別を含む通知伝送フレーム６２０を生成してゲートウェイ装置１００に送信し（Ｓ１１８０）、生存通知送信間隔を経過していない場合（Ｓ１１６０のＮＯ）、送信を行わない。
【００６５】
その後、処理部３１０は、問合せ型データアクセス部３１５が、データ送信周期経過したかを確認し（Ｓ１１９０）、データ送信周期経過でない場合、ステップＳ１１１１の処理に戻り、データ送信周期経過である場合、即ち、周期型データアクセスの要求を受け付け、かつ、データを送信すべき周期が経過している場合、データ通知メッセージを生成すると共にデータを要求元に送信する処理を行い（Ｓ１２００）、ステップＳ１１１１の処理に戻る。処理部３１０は、定期的に以上のステップＳ１１１１からＳ１１９１までの処理を繰り返し実行する。
【００６６】
図１２は、ゲートウェイ装置の処理を説明するためのフローチャートである。この処理は、図１０におけるＳ１２００のデータリスト受付処理の詳細である。図１２において、まず、処理部２２０では、メッセージ受信／解析部２２２ｂが、制御ネットワーク１３０経由でデータリスト伝送フレーム６１０を受信し、受信したデータリスト伝送フレーム６１０の解析を行い（Ｓ１２１０）、解析結果をデータリスト管理部２２６に出力する。データリスト管理部２２６は、データリスト伝送フレーム６１０に含まれるシステム名および装置名を基にデータリスト管理テーブル２１３を参照し、データリスト管理テーブル２１３に、システム名と装置名が該当するエントリがあるか否かを判定する（Ｓ１２２０）。データリスト管理テーブル２１３に、システム名および装置名が一致するエントリが存在する場合（Ｓ１２２０のＹＥＳ）、データリスト管理部２２６は、データリスト伝送フレーム６１０に含まれるバージョンの値と、データリスト管理テーブル２１３のエントリに含まれるバージョンとを比較し、該当エントリのバージョンは最新か否かを判定し（Ｓ１２３１）、後者の方が新しい、または、同じ値の場合（Ｓ１２３１のＹＥＳ）、そのまま処理を終了し、データリスト伝送フレーム６１０に含まれるバージョンの方が新しい場合（Ｓ１２３１のＮＯ）、まず該当エントリに含まれるシステム名および装置名を用いて、情報モデル７００から、装置１１０に関連する情報を削除する処理（Ｓ１４００）を行う。以上の処理により古いバージョンの情報は削除される。
【００６７】
一方、ステップＳ１２２０で否定の判定結果を得た場合、即ち、データリスト管理テーブル２１３にシステム名および装置名が一致するエントリが存在しない場合（Ｓ１２２０のＮＯ）、および、Ｓ１４００の削除処理を終えた後は、情報モデル処理部２２３が、情報モデル保管テーブル２１２に格納された情報モデル７００を参照して、情報モデル７００に、データリスト伝送フレーム６１０に含まれるシステム名と同名のシステムノード７２０が既に存在しているか否かを判定し（Ｓ１２２１）、存在しない場合（Ｓ１２２１のＮＯ）、ノード名を、データリスト伝送フレーム６１０に含まれるシステム名としたシステムノード７２０を、情報モデル７００のオブジェクトフォルダノード７１０の子ノードとして情報モデル７００に追加する（Ｓ１２４０）。ステップＳ１２２１で肯定の判定結果を得た場合、或いはステップＳ１２４０の後、情報モデル処理部２２３は、装置ノード７３０をシステムノード７２０の子として情報モデル７００に追加し、装置ノード７３０のノードＩＤを発行する（Ｓ１２４１）。
【００６８】
この際、情報モデル処理部２２３は、ノード名を、データリスト伝送フレーム６１０に含まれる装置名に設定し、親ノードの参照には、既にシステム名と同名のシステムノードが存在する場合（Ｓ１２２１のＹＥＳ）、そのシステムノードのノードＩＤを設定し、Ｓ１２４０の処理を行った場合、その時に発行したノードＩＤを、システムノード７２０の子ノードとして追加する。
【００６９】
この後、データリスト管理部２２６は、情報モデル７００とデータリスト４１０との対応を管理するために、データリスト管理テーブル２１３に対し、データリスト伝送フレーム６１０に含まれるシステム名、装置名、装置ノードＩＤ、バージョンを含むエントリを追加し、生存確認時刻を現在時刻に設定する（Ｓ１２４２）。
【００７０】
続いて、情報モデル処理部２２３は、装置状態ノード７５０を、装置ノード７３０の子として追加し、値を２”稼働”に設定する（Ｓ１２５０）。以降は、データリスト伝送フレーム６１０に含まれるデータの数だけデータノード７４０の追加処理が実行される。
【００７１】
まず、情報モデル処理部２２３は、ノード名、データ型を、データリスト伝送フレーム６１０に含まれるデータ名、データ型に設定し、親ノードの参照を装置ノード７３０のＩＤとしたデータノード７４０を装置ノード７３０の子として追加し、データノード７４０のノードＩＤを発行する（Ｓ１２５１）。
【００７２】
次に、データリスト管理部２２６は、データノード７４０に関するデータを装置１１０から取得するための情報を管理するために、アクセス先管理テーブル２１１に対し、データノード７４０のノードＩＤ、装置ノード７３０のノードＩＤ、データリスト伝送フレーム６１０に含まれる装置名、メモリアドレス、サイズからなるエントリを追加し（Ｓ１２５２）、ステップＳ１２５１、Ｓ１２５２の処理を、データの残りがある限り繰り返す（Ｓ１２５３）。その後、処理部２２０では、メッセージ生成／送信部２２１ｂが、通知種別を「登録完了」とした通知伝送フレーム６２０を生成し、生成した通知伝送フレーム６２０を、データリスト伝送フレーム６１０の送信元の装置１１０に対して送信し（Ｓ１２６０）、このルーチンでの処理を終了する。
【００７３】
図１３は、通知受付処理を説明するためのフローチャートである。この処理は、図１０におけるＳ１３００の通知受付処理の動作の詳細である。図１３において、まず、ゲートウェイ装置１００の処理部２２０では、メッセージ受信／解析部２２２ｂが、制御ネットワーク１３０経由で通知伝送フレーム６２０を受信した場合、メッセージ受信／解析部２２２ｂは、受信した通知伝送フレーム６２０を解析し（Ｓ１３１０）、通知伝送フレーム６２０に含まれる通知の種類を判別し、判別結果を問合せ型データアクセス部２２５、データリスト管理部２２６及び死活監視部２２７に出力する（Ｓ１３１１）。
【００７４】
通知の種類が一時停止であった場合（Ｓ１３１１の一時停止）、装置状態を一時停止に更新する処理が実行される。データリスト管理部２２６は、通知伝送フレーム６２０に含まれるシステム名および装置名を用いてデータリスト管理テーブル２１３から装置ノード７３０のノードＩＤを取得する（Ｓ１３２０）。続いて、情報モデル処理部２２３は、情報モデル７００に対して、データリスト管理部２２６が取得したノードＩＤを持つ装置ノード７３０にアクセスし、その子ノードの装置状態ノード７５０の値を一時停止に書き換える（Ｓ１３２１）。その後、データリスト管理部２２６は、通知伝送フレーム６２０に載せる通知種別を一時停止受付完了に設定し（Ｓ１３２２）、設定した内容をメッセージ生成／送信部２２１ｂに転送する。
【００７５】
通知の種類が一時停止解除であった場合（Ｓ１３１１の一時停止解除）、装置状態を一時停止解除に更新する処理が実行される。データリスト管理部２２６は、まず通知伝送フレーム６２０に含まれるシステム名および装置名を用いてデータリスト管理テーブル２１３から装置ノード７３０のノードＩＤを取得する（Ｓ１３３０）。続いて、情報モデル処理部２２３は、情報モデル７００に対して、データリスト管理部２２６が取得したノードＩＤを持つ装置ノード７３０にアクセスし、その子ノードの装置状態ノード７５０の値を稼働に書き換える（Ｓ１３３１）。その後、データリスト管理部２２６は、通知伝送フレーム６２０に載せる通知種別を一時停止解除完了に設定し（Ｓ１３３２）、設定した内容をメッセージ生成／送信部２２１ｂに転送する。
【００７６】
通知の種類が生存報告であった場合（Ｓ１３１１の一時停止解除）、死活監視部２２７は、通知伝送フレーム６２０に含まれるシステム名および装置名が一致するデータリスト管理テーブル２１３のエントリ（該当エントリ）の生存確認時刻を現在時刻に更新し（Ｓ１３４０）、更新した内容をメッセージ生成／送信部２２１ｂに転送する。
【００７７】
通知の種類が削除であった場合（Ｓ１３１１の削除）、データリスト管理部２２６は、通知伝送フレーム６２０に含まれるシステム名および装置名を用いて削除処理を実行するための呼び出しを行い（Ｓ１３５０）、その後、削除処理を実行し（Ｓ１４００）、削除処理の終了後、通知伝送フレーム６２０に載せる通知種別を削除完了に設定し（Ｓ１３５１）、設定した内容をメッセージ生成／送信部２２１ｂに転送する。
【００７８】
次に、メッセージ生成／送信部２２１ｂは、Ｓ１３２２、Ｓ１３３２、Ｓ１３４０、Ｓ１３５１のいずれかで設定された内容を基に通知種別を含む通知伝送フレーム６２０を生成して、通知の送信先となる装置１１０に対して送信し（Ｓ１３６０）、このルーチンでの処理を終了する。
【００７９】
図１４は、削除処理を説明するためのフローチャートである。この処理は、図１３におけるＳ１４００の処理の詳細である。図１４において、ゲートウェイ装置１００におけるデータリスト管理部２２６は、データリスト管理テーブル２１３のうち、削除処理を呼び出した際に指定されたシステム名と装置名に一致（対応）するエントリから、装置ノード７３０のノードＩＤを取得する（Ｓ１４１０）。情報モデル処理部２２３は、データリスト管理部２２６が取得したノードＩＤを用いて情報モデル７００の装置ノード７３０にアクセスし（Ｓ１４１１）、装置ノード７３０の子であるデータノード７４０を一つ削除する（Ｓ１４２０）。この後、データリスト管理部２２６は、情報モデル７００を参照し、削除されたデータノード７４０のノードＩＤに一致するエントリを、アクセス先管理テーブル２１１から削除する（Ｓ１４２１）。この後、情報モデル処理部２２３は、装置ノード７３０の子であるデータノード７４０に、削除対象として残りがあるか否かを判定し（Ｓ１４２２）、残りがある場合、ステップＳ１４２０の処理に戻り、全てのデータノード７４０に対して削除処理を実行し、残りがない場合には、ステップＳ１４３０の処理に移行する。
【００８０】
次に、情報モデル処理部２２３は、情報モデル７００を参照し、削除対象となる装置ノード７３０およびその子である装置状態ノード７５０を削除し（Ｓ１４３０）、システムノード７２０に所属する装置ノード７３０なしか否かを判定する（Ｓ１４４０）。ステップＳ１４４０で肯定の判定結果を得た場合、即ち、装置ノード７３０の親であるシステムノード７２０の子である装置ノード７３０が存在しない場合、情報モデル処理部２２３は、そのシステムノード７２０を情報モデル７００から削除する（Ｓ１４４１）。
【００８１】
システムノード７２０に所属する装置ノード７３０ありの場合、或いはステップＳ１４４１の処理が実行された場合、データリスト管理部２２６は、通知伝送フレーム６２０のシステム名および装置名が一致するエントリ（該当エントリ）を、データリスト管理テーブル２１３から削除し（Ｓ１４５０）、このルーチンでの処理を終了する。以上の処理により、削除要求の送付元装置に関する情報を情報モデルおよび各種テーブルから削除できる。
【００８２】
図１５は、要求受付処理を説明するためのフローチャートである。この処理は、図１０におけるステップＳ１５００の処理の詳細である。図１５において、他システムのクライアント１２０から要求メッセージを受信した場合における、ゲートウェイ装置１００の処理について説明する。まず、ゲートウェイ装置１００の情報モデル処理部２２３は、他システムのクライアント１２０からＯＰＣ−ＵＡメッセージ受信／解析部２２２ａが、他システムのクライアント１２０からＯＰＣ−ＵＡの要求メッセージを受信し（Ｓ１５０１）、ＯＰＣ−ＵＡメッセージ受信／解析部２２２ａから解析結果を受けた場合、要求の種類はデータ読み出しまたはデータ監視であるかを判定する（Ｓ１５１０）。
【００８３】
この要求の種別は、ＯＰＣ−ＵＡプロトコルにおける要求を、データを単発的に読み出す要求、データを周期的に監視する要求、その他の要求、のいずれに分類されるかを示す。なお、データを単発的に読み出す要求には取得するデータのノードＩＤとデータ更新からの経過時刻の上限時間が含まれる。また、データを周期的に読み出す要求には取得するデータのノードＩＤが含まれる。
【００８４】
ステップＳ１５１０で肯定（ＹＥＳ）の判定結果を得た場合、情報モデル処理部２２３は、要求に含まれるノードＩＤでアクセス先管理テーブル２１１を検索し（Ｓ１５３０）、該当エントリを発見したか否かを判定し（Ｓ１５２０）、該当エントリを発見できなかった場合（Ｓ１５２０のＮＯ）、要求の種別が該当しない場合（Ｓ１５１０のＮＯ）と同様に、一般的なＯＰＣ−ＵＡのサービスと判断し、サービス処理を実行し（Ｓ１５６０）、このルーチンでの処理を終了する。
【００８５】
一方、ステップ１５２０で該当エントリを発見（データを発見）できた場合（Ｓ１５２０のＹＥＳ）、情報モデル処理部２２３は、要求の種類を判別し（Ｓ１５１１）、判別結果を問合せ型データアクセス部２２５に転送する。要求が読み出し（データ読み出し）の場合（Ｓ１５１１の読出し）、問合せ型データアクセス部２２５は、情報モデル処理部２２３がアクセス先管理テーブル２１１を検索して得られたアクセス先情報を利用して、単発型要求を生成し、生成した要求をアクセス先情報が示す装置１１０に送信する（Ｓ１５３１）。
【００８６】
この際、アクセス先となる装置１１０は、要求に含まれるメモリアドレス、サイズを利用してデータを内部メモリ３２１から取得し、取得したデータを応答としてゲートウェイ装置１００に返信する。
【００８７】
この後、ゲートウェイ装置１００の問合せ型データアクセス部２２５は、アクセス先となる装置１１０から返信された応答を受信した場合、受信した応答を解析すると共に受信したデータを取得し、取得したデータを情報モデル処理部２２３に転送する（Ｓ１５３２）。情報モデル処理部２２３は、転送されたデータ（応答に含まれるデータ）を基に情報モデル７００を参照し、データノード７４０の値を、応答に含まれるデータで更新し（Ｓ１５３３）、応答に含まれるデータを用いて、読出し要求に対するＯＰＣ−ＵＡの応答メッセージを生成して、クライアント１２０に送信（返信）し（Ｓ１５３５）、このルーチンでの処理を終了する。
【００８８】
一方、要求の種別がデータを周期的に監視する要求の場合（Ｓ１５１１の監視）、問合せ型データアクセス部２２５は、アクセス先情報を利用して、周期型の要求を生成し、生成した周期型の要求を、アクセス先情報が示す装置１１０に送信する（Ｓ１５４１）。この際、アクセス先となる装置１１０は、受け取った要求（周期型の要求）に従い、要求で指定されたデータをゲートウェイ装置１００に対して周期的に送信する処理を開始する。
【００８９】
この後、問合せ型データアクセス部２２５は、アクセス先となる装置１１０から周期型の応答を受信した場合、受信した応答を解析し、解析結果を情報モデル処理部２２３に転送する（Ｓ１５４２）。この後、情報モデル処理部２２３は、情報モデル７００の内容を利用したＯＰＣ−ＵＡのサービスに関する処理を行い、その処理に応じた応答メッセージ（監視要求に対応して監視を開始した旨を含む応答メッセージ）を生成し、生成した応答メッセージをクライアント１２０に送信し（Ｓ１５５０）、このルーチンでの処理を終了する。以上の処理により、他システムのクライアント１２０は、ＯＰＣ−ＵＡのインタフェースを利用して制御システム内のデータを取得できる。
【００９０】
図１６は、死活監視処理を説明するためのフローチャートである。この処理は、図１０におけるステップＳ１６００の処理の詳細である。図１６において、まず、ゲートウェイ装置１００の死活監視部２２７は、定期的にデータリスト管理テーブル２１３に含まれる各エントリの生存確認時刻５１５を参照し（Ｓ１６１０）、停止判断時間を経過したエントリがあるか否かを判定する（Ｓ１６１１）。即ち、生存確認時刻からの経過時間がエントリの報告周期５１６を超過しているかどうかを確認する。
【００９１】
超過していない場合（Ｓ１６１１のＮＯ）、死活監視部２２７は、装置１１０の停止は無いと判断して処理を終了する。一方、超過している場合（Ｓ１６１１のＹＥＳ）、死活監視部２２７は、情報モデル７００において、該当エントリのノードＩＤ５１４を所有する装置ノード７３０にアクセスし、装置ノード７３０の子である装置状態ノード７５０の値が一時停止か否かを判定する（Ｓ１６２０）。この値が一時停止だった場合（Ｓ１６２０のＹＥＳ）、装置１１０が停止していても関連する情報の削除を行わないため、死活監視部２２７は、処理を終了する。一方、一時停止でなかった場合（Ｓ１６２０のＮＯ）、死活監視部２２７は、該当エントリのシステムＩＤ、ノードＩＤで削除処理実行するための呼び出しを行い（Ｓ１６３０）、その後、削除処理を実行し（Ｓ１４００）、このルーチンでの処理を終了する。
【００９２】
図１７は、クライアントに表示される情報モデルの構成図である。図１７において、他システムに属するクライアント１２０とゲートウェイ装置１００との間で情報の送受信が実行された場合、例えば、ゲートウェイ装置１００の処理部２２０で構築された情報モデル７００の内容が表示情報としてクライアント１２０に送信され、クライアント１２０が処理部２２０からの表示情報を受信した場合、クライアント１２０に属する表示装置の表示画面には、情報システムのルート１７０１の子のオブジェクトフォルダ１７１０の子として、ゲートウェイ装置１００が管理する情報モデル７００に関する情報の要素としてシステム１７２０が表示され、システム１７２０の子として、そのシステムに所属する装置１７３０が表示され、装置１７３０の子として、データ１７４０とその値が表示される。
【００９３】
また、装置１７３０の子として、その装置１７３０の装置状態とその値といった要素も表示可能である。表示されるシステムや装置やデータやその値といった要素は、表示した時点の実際の装置１１０の状態を反映している。即ち、制御システムに変更が加わった場合、情報モデル７００の内容が更新され、処理部２２０から送信される表示情報も更新されるので、その内容に応じて画面の表示内容も更新される。表示するための操作や前記の各要素の表示方法や更新タイミングはクライアント１２０の仕様によって異なっても良い。
【００９４】
本実施例において、ゲートウェイ装置１００の処理部２２０は、要求元となるクライアント１２０からの要求を処理し、この処理結果をクライアント１２０に送信する。この際、処理部２２０は、少なくとも各装置１１０から入力した入力情報（データリスト４１０）を基に各装置１１０の構成とデータを各装置１１０に対応づけて管理するための構成情報（情報モデル）と各装置１１０をアクセス先として管理するためのアクセス先情報（アクセス先管理テーブル２１１の情報）を生成し、生成した構成情報をクライアント１２０のアクセス対象の情報として管理し、入力情報が更新されたことを条件に、構成情報とアクセス先情報を更新する。また、処理部２２０は、クライアント１２０からの要求に付加された付加情報（システム名、装置名）を判別し、この判別結果を基にアクセス先情報を参照して、アクセス先となる装置１１０を特定し、特定した装置１１０から要求で指定されたデータを取得してクライアント１２０に送信する。
【００９５】
本実施例によれば、データを管理する装置１１０から入力された入力情報（データリスト４１０）を基に装置１１０の実際の構成を反映した構成情報（情報モデル７００）を自動で生成し、生成した構成情報（情報モデル７００）をクライアント１２０のアクセス対象の情報として管理し、即ち、情報モデル７００を公開の対象として管理し、入力情報が更新された場合、情報モデル７００を更新するようにしたので、装置１１０の構成が変更されても、構成情報の更新に要する労力を削減することができる。また、装置１１０から入力された入力情報（データリスト４１０）を基に装置１１０の実際の構成を反映したアクセス先情報を自動で生成し、入力情報が更新された場合、アクセス先情報（アクセス先管理テーブル２１１を更新するようにしたので、クライアント１２０が、実際の装置１１０やデータの状態を閲覧しながらデータを取得することができる。
【００９６】
なお、本実施例では、システム、装置、データの要素による階層構造に限定した情報モデル７００の生成のみを行い、その他の要素を含む構造を生成することはできない。例えば、関連するコンポーネントごとにデータを選択してアクセスしたいというケース、二重化した装置を情報モデルではひとつの装置として扱い、内部でＡ系とＢ系に分けるような構成にしたいケースなどにおいて、前記の要素以外を含む情報モデルの構築が望ましい場合がある。
【００９７】
そこで、以下の実施例２では、階層構造を持たせたデータ名によって、データノードにアクセスするまでの情報モデルの構造を任意に設定できる手段を設けることとしている。
【実施例２】
【００９８】
本実施例は、情報モデル７００の構成が一部実施例１と異なる他は、実施例１と同一の構成要素を含む計算機システムで構成される。
【００９９】
図１８は、実施例２おける情報モデルの構成図である。図１８において、本実施例における情報モデル７００は、装置１１０が持つデータリスト４１０に含まれるデータ名を“階層名１／階層名２／・・・／名前”のように、階層を指す名前である階層名と区切り文字“／”の繰り返しとデータを指す名前からなる形式で構成されている。
【０１００】
具体的には、情報モデル７００は、データ名が”Ａ／Ｂ／Ｄａｔａ１“および”Ａ／Ｃ／Ｄ／Ｄａｔａ２“と設定されたデータが含まれていたデータリスト４１０から生成した情報モデルの例である。オブジェクトフォルダノード７１０の子孫として、汎用ノード２０１０（２０１０ａ、２０１０ｂ、２０１０ｃ、２０１０ｄ）が情報モデル７００に含まれる。汎用ノード２０１０およびデータノード７４０の子孫関係は、データ名に対応しており、データ名に含まれる各階層名を持つ汎用ノード２０１０が、表記の順に子ノードとなっている。例えば、”Ａ／Ｂ／Ｄａｔａ１“がデータ名のデータノード７４０ａの場合、オブジェクトフォルダノード７１０の子に汎用ノード”Ａ“２０１０ａ、その子に汎用ノード”Ｂ“２０１０ｂ、その子にデータノード７４０ａ、という階層関係を有する。
【０１０１】
この際、処理部２２０の情報モデル処理部２２３は、入力情報（データリスト４１０）の中に装置１１０の管理対象となるデータを特定する情報として複数の階層名とデータ名が存在する場合、入力情報を基にシステムノード７２０と、装置ノード７３０と、データノード７４０と、装置状態ノード７５０を含む第１のモデルを生成すると共に、システムノード７２０とは異なる系でデータノード７４０と子孫関係を形成する複数の汎用ノード２０１０（２０１０ａ、２０１０ｂ、２０１０ｃ、２０１０ｄ）を含む第２のモデルを生成し、第１のモデルと第２のモデルを含むモデルを構成情報に属する情報モデル７００として生成し、生成した情報モデル７００のうち各汎用ノード２０１０を各階層名に対応したノードに設定し、データノード７４０をデータ名に対応したノードに設定する。
【０１０２】
情報モデル７００が、二重系に階層化された構造を持つことにより、装置１１０が持つデータに対して、例えば、そのデータを取得したセンサが設置されているコンポーネント（汎用ノード）を指定したアクセスや、そのデータを生成するプログラムの構造に基づいたアクセスなどが可能になる。なお、構築された情報モデル７００の内容は表示情報としてクライアント１２０に送信され、情報モデル７００の内容がクライアント１２０の画面に表示される。
【０１０３】
図１９は、実施例２における情報モデルで用いる汎用ノードの構成図である。図１９において、汎用ノード２０１０は、実施例１におけるシステムノード７２０と同様に、ノード名、ノードＩＤ、親ノードの参照、ノードクラス、ノードタイプ、複数の子ノードの参照から構成される。
【０１０４】
汎用ノード２０１０は、「汎用オブジェクトタイプ」をノードタイプとして指定されたオブジェクトノードであり、コンポーネント（タービン等の制御対象）やプログラム構造などの要素に対応するノードである。汎用ノード２０１０には、ノード名としてデータ名から取得した階層名（“Ａ”）、ノードＩＤとして、情報モデル処理部２２３により自動で割り当てられたＩＤ、親ノードの参照として、オブジェクトフォルダノード７１０または汎用ノードのノードＩＤ、子ノードの参照として、汎用ノード２０１０ｂまたはデータノード７４０ａのＩＤが、それぞれの属性の値として設定される。
【０１０５】
図２０は、実施例２におけるデータノード追加処理を説明するためのフローチャートである。この処理は、実施例２における情報モデル７００を構築するために、図１２のデータリスト受付処理におけるデータノード追加処理（Ｓ１２５１）の代わりに、新たなデータノード追加処理を実行するものである。
【０１０６】
まず、情報モデル処理部２２３は、データノード追加処理（Ｓ１２５１）と同様に、データリスト伝送フレーム６１０に含まれるデータのデータ名、データ型と、装置ノード７３０のＩＤとして、親ノードの参照を持つデータノード７４０を装置ノード７３０の子として追加し、ノードＩＤを取得する（Ｓ２１１０）。この際、情報モデル処理部２２３は、次に追加するノードの親になる可能性のあるノード（親ノード候補と呼ぶ）をオブジェクトフォルダノード７１０に設定する（Ｓ２１２０）。続いて、情報モデル処理部２２３は、データのデータ名から階層名（“Ａ”）を１つ取得し（Ｓ２１３０）、親ノード候補の子としてノード名を階層名（“Ａ”）とした汎用ノード２０１０ａを追加する（Ｓ２１３１）。その後、情報モデル処理部２２３は、追加した汎用ノード２０１０ａを親ノード候補とする（Ｓ２１３２）。この後、情報モデル処理部２２３は、残りの階層名ありか否かを判定し（Ｓ２１３３）、データ名の階層名に残りがある場合、ステップＳ２１３０〜Ｓ２１３３の処理を繰り返す（Ｓ２１３３のＹＥＳ）。データ名の階層名に残りがなく、全ての階層名に対応した汎用ノード２０１０ａ〜２０１０ｄを追加した場合（Ｓ２１３３のＮＯ）、情報モデル処理部２２３は、最後に追加した汎用ノード２０１０ｄの子にデータノード７４０ｂを追加し（Ｓ２１３４）、最後に追加した汎用ノード２０１０ｄの子ノードの参照に、データノード７４０ｂを設定し、このルーチンでの処理を終了する。以上の処理により、汎用ノード群を情報モデル７００に追加できる。
【０１０７】
図２１は、実施例２におけるデータノード削除処理を説明するためのフローチャートである。この処理は、汎用ノードの追加／削除に対応するために、図１４の削除処理におけるデータノードの削除処理（Ｓ１４２０）の代わりに、新たなデータノード削除処理を実行するものである。
【０１０８】
まず、情報モデル処理部２２３は、ステップＳ１４２０と同様に、情報モデル７００を参照して、装置ノード７３０の子のデータノード７４０を削除する（Ｓ２２１０）。この後、情報モデル処理部２２３は、データノード７４０の親となっている汎用ノード２０１０にアクセスし（Ｓ２２２０）、子ノード無しかを判定し（Ｓ２２３０）、このステップＳ２２３０で否定（ＮＯ）の判定結果を得た場合、このルーチンでの処理を終了し、ステップＳ２２３０で肯定（ＹＥＳ）の判定結果を得た場合、即ち、汎用ノード２０１０に子がいない場合、その汎用ノード２０１０も削除し（Ｓ２２３１）、その後、親ノードも汎用ノードであるか否かを判定する（Ｓ２２３２）。情報モデル処理部２２３は、ステップＳ２２３２で否定（ＮＯ）の判定結果を得た場合、このルーチンでの処理を終了し、ステップＳ２２３２で肯定（ＹＥＳ）の判定結果を得た場合、即ち、親ノードも汎用ノードであった場合、親の汎用ノードにアクセスし（Ｓ２２３３）、ステップＳ２２３０に戻り、ステップＳ２２３０〜Ｓ２２３３の処理を繰り返す。
【０１０９】
本実施例によれば、実施例１と同様の効果を奏することができると共に、装置１１０がアップロードするデータリスト４１０を用いて生成された情報モデル７００が、二重系の構造を持つことにより、装置１１０が持つデータに対して、例えば、そのデータを取得したセンサが設置されているコンポーネント（制御対象）を指定したアクセスが可能となる。また、本実施例によれば、データを生成するプログラムの構造に基づいたアクセスを可能とする、汎用的な構造を持つ情報モデル７００を自動で生成できる。
【０１１０】
なお、実施例１および実施例２は、データリスト４１０のアップロードや問合せ型データアクセスといった機能を追加可能な装置１１０を前提にしている。しかし、実際には、既設の制御システムに機能を追加する場合、装置１１０の処理性能やメモリ容量の制約、既存の制御アプリケーションへの影響回避、コスト抑制などの理由により、全ての装置１１０に機能を追加できない場合が起こりうる。
【０１１１】
このような既設の装置１１０のデータも他システム（クライアント１２０）から利用できることが望ましいが、前記の前提により実施例１および実施例２では、クライアント１２０が、既設の装置１１０のデータを取得することができない。即ち、制御システムには各種の装置１１０が混在しており、クライアント１２０が、各実施例１、２のゲートウェイ装置１００を通して、既設の装置１１０のデータを取得できないことがある。
【０１１２】
そこで、以下の実施例３では、既設の装置１１０を対象に、ネットワーク経由で周期的に同報送信されたデータを、装置間の共有メモリデータとして転写メモリに格納し、転写メモリに格納されたデータを基に情報モデルを生成する。
【実施例３】
【０１１３】
本実施例では、ゲートウェイ装置１００に転写メモリ機能を搭載し、転写メモリ上のデータを扱えるようデータリスト４１０を拡張することにより、クライアント１２０からＯＰＣ−ＵＡによる転写メモリ上のデータへのアクセスを実現する。
【０１１４】
図２２は、実施例３における計算機システムの全体構成を示す構成図である。図２２において、本システムは、制御ネットワーク１３０に、装置１１０とは異なる装置、例えば、エンジニアリング用のＰＣ（Personal  Computer）１５０を接続し、ゲートウェイ装置１００に転写メモリ機能を搭載したものであり、他の構成は、実施例１、実施例２と同様である。この際、ＰＣ１５０から制御ネットワーク１３０を介して、データリスト４１０をゲートウェイ装置１００に送ることで、ゲートウェイ装置１００では、ゲートウェイ装置１００内の転写メモリを利用して、既存の装置１１０のデータに対してアクセスするための情報モデル７００を生成することができる。
【０１１５】
図２３は、実施例３におけるゲートウェイ装置の構成図である。図２３において、本実施例におけるゲートウェイ装置１００は、記憶部２１０に転写メモリ２１１０を格納し、処理部２２０に転写メモリ２１１０を管理するための転写メモリ管理部２１２０を配置したものであり、他の構成は実施例１と同様である。ここで、転写メモリ２１１０とは、転写メモリ機能によって装置１１０間で共有するメモリデータを格納する領域である。
【０１１６】
転写メモリ管理部２１２０は、転写メモリ２１１０に対して、ＰＣ１５０から受け取ったメモリデータ（データリスト４１０に記録されたデータ）の書き込み、問合せ型データアクセス部２２５からの呼び出しに対応して転写メモリ上のデータの読み出しを行う。
【０１１７】
問合せ型データアクセス部２２５は、図２で説明した問合せ型データアクセスの機能に加え、転写メモリ管理部２１２０を経由した転写メモリデータ（転写メモリ２１１０に格納されたデータ）を取得する機能を備える。また、情報モデル処理部２２３から転写メモリ上のデータを取得するよう通知された場合、問合せ型データアクセス部２２５は、転写メモリ管理部２１２０を呼び出して、転写メモリ２１１０からデータを取得する。なお、問合せ型データアクセス部２２５の他の機能は、図２と同様のため説明を割愛する。
【０１１８】
図２４は、実施例３におけるデータリストの構成図である。図２４において、データリスト４１０は、装置１１０の持つデータと転写メモリ２１１０のデータの両方に対応したデータリスト（構成情報）であり、ヘッダ部４２０には、システム名４２１、バージョン４２３の他に、データリスト種別２２２０と装置名／転写メモリ名２２１０が新たに追加されている。データリスト種別２２２０は、データリスト４１０が装置１１０と転写メモリ２１１０のいずれのデータを扱ったものであるかを示すフィールドであり、それぞれ“装置”または“転写メモリ”を値として設定される。装置名／転写メモリ名２２１０には、データリスト種別２２２０に記録された情報が“装置”であれば、データリスト４１０の提供元の装置１１０の名前、“転写メモリ”であれば、転写メモリ２１１０に付けられた名称が設定される。その他の要素は図４と同様のため割愛する。なお、ボディ部４３０には、メモリアドレス４３２の代わりに、メモリアドレス/オフセット４３２が用いられている。
【０１１９】
図２５は、実施例３における要求メッセージ受信時処理を説明するためのフローチャートである。この処理は、図１５に示す処理とほぼ同様であるが、ステップＳ１５１１で読み出しと判別された後の処理として、ステップＳ２３１０、Ｓ２３１１が追加され、ステップＳ１５１１で監視と判別された後の処理として、ステップＳ２３２０、Ｓ２３２１が追加されている。なお、追加された処理以外は、図１５に示す処理と同様であるので、以下、追加された処理についてのみ説明する。
【０１２０】
具体的には、ステップＳ１５１１でデータ読み出し要求の種類が、読み出しと判定した場合、情報モデル処理部２２３は、要求されたデータが転写メモリ２１１０のデータであるか否かを判定し（Ｓ２３１０）、当てはまらない場合（Ｓ２３１０のＮＯ）、図１５と同じように要求送信処理（Ｓ１５３１）を実行し、転写メモリ２１１０のデータであった場合（Ｓ２３１０のＹＥＳ）、問合せ型データアクセス部２２５と転写メモリ管理部２１２０を経由して転写メモリ２１１０からデータを取得し（Ｓ２３１１）、その後、ステップＳ１５３３の処理に移行する。
【０１２１】
一方、ステップＳ１５１１でデータ読み出し要求の種類が、読み出しと判定した場合、情報モデル処理部２２３は、要求されたデータが転写メモリ２１１０のデータであるか否かを判定し（Ｓ２３２０）、当てはまらない場合（Ｓ２３２０のＮＯ）、図１５と同じように周期型の要求を生成／送信するための処理（Ｓ１５４１）を実行し、転写メモリ２１１０のデータであった場合（Ｓ２３２０のＹＥＳ）、問合せ型データアクセス部２２５と転写メモリ管理部２１２０を経由して転写メモリ２１１０から、周期的なデータの取得を開始し（Ｓ２３２１）、その後、ステップＳ１５５０の処理に移行する。
【０１２２】
図２６は、実施例３におけるゲートウェイ装置の処理概要を説明するためのフローチャートである。この処理は、図１０に示すステップＳ１０３０とステップＳ１０４０との間で、ステップ１０５０の処理を実行するものであり、他の処理は、図１０と同様であるので、以下、ステップＳ１０５０の処理について説明する。
【０１２３】
ステップＳ１０５０では、図２５に示すステップＳ２３２１の処理で、転写メモリ２１１０から、周期的なデータの取得を開始した場合、情報モデル処理部２２３は、転写メモリ２１１０の周期読み出しとして、転写メモリ２１１０から、周期的に読み出されたデータを情報モデル７００に反映し、取得したデータを元に情報モデル上の該当ノードのデータを更新する処理を行い、その後ステップＳ１０４０の処理を実行する。この処理により、転写メモリ上のデータに対する監視を行うことができる。
【０１２４】
本実施例によれば、実施例１と同様の効果を奏することができると共に、既設の制御システムが持つ転写メモリ２１１０のデータに対しても、ゲートウェイ装置１００が転写メモリ機能を持ち、データリスト伝送フレーム６１０とデータリスト４１０に装置１１０と転写メモリ２１１０の識別が可能なフィールドを設けることにより、装置１１０が持つデータと同様に、クライアント１２０から、転写メモリ２１１０のデータにアクセスすることができる。
【０１２５】
以上、各実施例を具体的に説明したが、上記開示に限定されるものでなく、その趣旨を逸脱しない範囲において種々変更可能であることは言うまでもない。例えば、ゲートウェイ装置１００に表示装置（モニタ）を接続することで、図７と図１８に示す情報モデル７００の内容を表示装置の画面に表示することができる。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１２６】
また、上記の各構成、機能、処理部等は、それらの一部又は全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能、処理部等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid  State  Drive）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に記録して置くことができる。
【符号の説明】
【０１２７】
１００  ゲートウェイ装置、１１０  装置、１２０  クライアント、１３０  制御ネットワーク、１４０  情報ネットワーク、２１０  記憶部、２１１  アクセス先管理テーブル、２１２  情報モデル保管テーブル、２１３  データリスト管理テーブル、２２０  処理部、２２１ａ  ＯＰＣ−ＵＡメッセージ生成／送信部、２２２ａ  ＯＰＣ−ＵＡメッセージ受信／解析部、２２１ｂ  メッセージ生成／送信部、２２２ｂ  メッセージ受信／解析部、２２３  情報モデル処理部、２２５  問合せ型データアクセス部、２２６  データリスト管理部、２２７  ノード死活監視部、３１０  処理部、３１５  問合せ型データアクセス部、３１３  データリスト管理部、３１４  ノード死活監視部、３２０  記憶部、３２１  内部メモリ、３２２  データリストテーブル、３３１  メッセージ生成／送信部、３１２  メッセージ受信／解析部、３３０  制御アプリケーション、４１０  データリスト、７００  情報モデル。
【図１】
0006487818.tif 000002
【図２】
0006487818.tif 000003
【図３】
0006487818.tif 000004
【図４】
0006487818.tif 000005
【図５】
0006487818.tif 000006
【図６】
0006487818.tif 000007
【図７】
0006487818.tif 000008
【図８】
0006487818.tif 000009
【図９】
0006487818.tif 000010
【図１０】
0006487818.tif 000011
【図１１】
0006487818.tif 000012
【図１２】
0006487818.tif 000013
【図１３】
0006487818.tif 000014
【図１４】
0006487818.tif 000015
【図１５】
0006487818.tif 000016
【図１６】
0006487818.tif 000017
【図１７】
0006487818.tif 000018
【図１８】
0006487818.tif 000019
【図１９】
0006487818.tif 000020
【図２０】
0006487818.tif 000021
【図２１】
0006487818.tif 000022
【図２２】
0006487818.tif 000023
【図２３】
0006487818.tif 000024
【図２４】
0006487818.tif 000025
【図２５】
0006487818.tif 000026
【図２６】
0006487818.tif 000027