(57)【要約】【課題】汎用的なインターフェイスにより、制御システム内の任意のデバイスの任意の情報を収集可能な構成を提供する。【解決手段】制御システムは、前記制御システムのデバイスの接続関係を含む構成情報、および、各デバイスの特性を示す情報を含むデバイスプロファイルを保持するデータベースと、外部からのデータ検索クエリに応答して、前記データベースを参照して、当該データ検索クエリからリクエストパケットを生成して対象デバイスへ送信するとともに、当該対象デバイスからのレスポンスパケットを受信する通信処理部と、前記通信処理部により受信されたレスポンスパケットに含まれる検索結果を前記データ検索クエリに対応する形式に成形する成形部とを含む。【選択図】図１
2020013223.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのデバイスからなる制御システムであって、
前記制御システムのデバイスの接続関係を含む構成情報、および、各デバイスの特性を示す情報を含むデバイスプロファイルを保持するデータベースと、
外部からのデータ検索クエリに応答して、前記データベースを参照して、当該データ検索クエリからリクエストパケットを生成して対象デバイスへ送信するとともに、当該対象デバイスからのレスポンスパケットを受信する通信処理部と、
前記通信処理部により受信されたレスポンスパケットに含まれる検索結果を前記データ検索クエリに対応する形式に成形する成形部とを備える、制御システム。
【請求項２】
前記通信処理部は、前記構成情報を参照して、前記対象デバイスの接続位置に到達するために前記リクエストパケットを生成する、請求項１に記載の制御システム。
【請求項３】
前記通信処理部は、前記構成情報を参照して、前記対象デバイスまでの経路を特定するとともに、特定した経路に対応するプロトコルに応じたパケットを生成する、請求項１または２に記載の制御システム。
【請求項４】
前記通信処理部は、前記対象デバイスまでの経路に応じてそれぞれ生成されるパケットをカプセル化して前記リクエストパケットを生成する、請求項３に記載の制御システム。
【請求項５】
前記通信処理部は、前記デバイスプロファイルを参照して、前記対象デバイスから前記データ検索クエリにより指定されたデータを収集するためのコマンドを前記リクエストパケットに含める、請求項１〜４のいずれか１項に記載の制御システム。
【請求項６】
前記通信処理部は、前記データ検索クエリにおいて指定された検索条件に相当する命令を含む前記コマンドを生成する、請求項５に記載の制御システム。
【請求項７】
前記データベースは、前記制御システムに含まれる各デバイスの状態値を示す情報をさらに保持しており、
前記通信処理部は、各デバイスの状態値を示す情報を参照して、前記データ検索クエリにおいて指定された検索条件に合致するデバイスを特定する、請求項１〜６のいずれか１項に記載の制御システム。
【請求項８】
前記データ検索クエリは、ＳＱＬ言語またはＲＥＳＴに準拠した形式で記述されている、請求項１に記載の制御システム。
【請求項９】
少なくとも１つのデバイスからなる制御システムに接続される検索装置であって、
前記制御システムのデバイスの接続関係を含む構成情報、および、各デバイスの特性を示す情報を含むデバイスプロファイルを保持するデータベースと、
外部からのデータ検索クエリに応答して、前記データベースを参照して、当該データ検索クエリからリクエストパケットを生成して対象デバイスへ送信するとともに、当該対象デバイスからのレスポンスパケットを受信する通信処理部と、
前記通信処理部により受信されたレスポンスパケットに含まれる検索結果を前記データ検索クエリに対応する形式に成形する成形部とを備える、検索装置。
【請求項１０】
少なくとも１つのデバイスからなる制御システムに接続されるコンピュータで実行される検索プログラムであって、前記コンピュータに、
前記制御システムのデバイスの接続関係を含む構成情報、および、各デバイスの特性を示す情報を含むデバイスプロファイルをデータベースに保持するステップと、
外部からのデータ検索クエリに応答して、前記データベースを参照して、当該データ検索クエリからリクエストパケットを生成して対象デバイスへ送信するとともに、当該対象デバイスからのレスポンスパケットを受信するステップと、
前記受信されたレスポンスパケットに含まれる検索結果を前記データ検索クエリに対応する形式に成形するステップとを実行させる、検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム内の任意のデバイスの任意の情報を収集可能な制御システム、検索装置および検索プログラムに関する。
【背景技術】
【０００２】
ＦＡ（ファクトリオートメーション）の分野では、ＰＬＣ（プログラマブルロジックコントローラ）などの制御装置を用いて設備や機械などの制御対象を制御することが一般的である。
【０００３】
近年のＩＣＴ（Information and Communication Technology）の進歩やＩｏＴ（Internet of Things）の注目などに伴って、制御装置により制御されるフィールドレベルのデータを収集したいというニーズが高まっている。
【０００４】
このような制御装置が扱うデータを上位システムに提供するような構成例として、例えば、特開平０５−２６５９５２号公報（特許文献１）は、分散ＣＩＭシステムを開示する。特許文献１に開示される分散ＣＩＭシステムは、下位ネットワークと上位ネットワークとの間で全レイヤのプロトコル変換を行うと共に、アプリケーションサーバ、ファイルサーバ及びマンマシンインタフェース端末が扱う情報と下位ネットワークの各種制御機器が扱う情報とのデータ変換を行うアプリケーションゲートウェイを有している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０５−２６５９５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述の特開平０５−２６５９５２号公報に開示される構成においては、アプリケーションゲートウェイは、プロトコル変換およびデータ変換を行うことになる。このようなデータ変換は、アプリケーションサーバなどで実行される処理の種類などに応じた処理とする必要があり、汎用性を高めることができない。
【０００７】
本発明の一つの目的は、汎用的なインターフェイスにより、制御システム内の任意のデバイスの任意の情報を収集可能な構成を提供することである。
【課題を解決するための手段】
【０００８】
本発明の一つの実施の形態によれば、少なくとも１つのデバイスからなる制御システムが提供される。制御システムは、制御システムのデバイスの接続関係を含む構成情報、および、各デバイスの特性を示す情報を含むデバイスプロファイルを保持するデータベースと、外部からのデータ検索クエリに応答して、データベースを参照して、当該データ検索クエリからリクエストパケットを生成して対象デバイスへ送信するとともに、当該対象デバイスからのレスポンスパケットを受信する通信処理部と、通信処理部により受信されたレスポンスパケットに含まれる検索結果をデータ検索クエリに対応する形式に成形するデータ成形部とを含む。
【０００９】
本開示によれば、外部からのデータ検索クエリを受けると、制御システム内の対象デバイスに対するリクエストパケットが生成される。当該リクエストパケットに応答して送信されるレスポンスパケットに含まれるデータは、データ検索クエリに対応する形式に成形されて、データ検索クエリの要求元へ送信される。これにより、汎用的なインターフェイスにより、制御システム内の任意のデバイスの任意の情報を収集可能となる。
【００１０】
上述の開示において、通信処理部は、構成情報を参照して、対象デバイスの接続位置に到達するためにリクエストパケットを生成するようにしてもよい。
【００１１】
本開示によれば、構成情報を参照することで、いずれのデバイスが対象とされても、当該対象デバイスまで確実にリクエストパケットを到達させることができる。
【００１２】
上述の開示において、通信処理部は、構成情報を参照して、対象デバイスまでの経路を特定するとともに、特定した経路に対応するプロトコルに応じたパケットを生成するようにしてもよい。
【００１３】
本開示によれば、いずれのデバイスが対象とされても、対象デバイスまでの経路が特定された上でリクエストパケットが生成されるので、リクエストパケットを当該対象デバイスまで確実に到達させることができる。
【００１４】
上述の開示において、通信処理部は、対象デバイスまでの経路に応じてそれぞれ生成されるパケットをカプセル化してリクエストパケットを生成するようにしてもよい。
【００１５】
本開示によれば、対象デバイスまでにプロトコルが異なる経路が存在する場合であっても、リクエストパケットを当該対象デバイスまで確実に到達させることができる。
【００１６】
上述の開示において、通信処理部は、デバイスプロファイルを参照して、対象デバイスからデータ検索クエリにより指定されたデータを収集するためのコマンドをリクエストパケットに含めるようにしてもよい。
【００１７】
本開示によれば、対象デバイスがどのような形式であっても、デバイスプロファイルを参照することで、データ検索クエリにより指定されたデータを収集できる。
【００１８】
上述の開示において、通信処理部は、データ検索クエリにおいて指定された検索条件に相当する命令を含むコマンドを生成するようにしてもよい。
【００１９】
本開示によれば、データ検索クエリにおいて複雑な検索条件が指定されたとしても、対応する命令または命令の組合せをコマンドに含めることで、対象デバイスに対するコマンドのレベルで実現できる。
【００２０】
上述の開示において、データベースは、制御システムに含まれる各デバイスの状態値を示す情報をさらに保持しており、通信処理部は、各デバイスの状態値を示す情報を参照して、データ検索クエリにおいて指定された検索条件に合致するデバイスを特定するようにしてもよい。
【００２１】
本開示によれば、リクエストパケットを送信する対象デバイスの数を低減できるので、通信量がムダに増加することを抑制できる。
【００２２】
上述の開示において、データ検索クエリは、ＳＱＬ言語またはＲＥＳＴに準拠した形式で記述されていてもよい。
【００２３】
本開示によれば、汎用的な形式でデータ検索クエリが記述されることで、汎用性を高めることができる。
【００２４】
本発明の別の実施の形態によれば、少なくとも１つのデバイスからなる制御システムに接続される検索装置が提供される。検索装置は、制御システムのデバイスの接続関係を含む構成情報、および、各デバイスの特性を示す情報を含むデバイスプロファイルを保持するデータベースと、外部からのデータ検索クエリに応答して、データベースを参照して、当該データ検索クエリからリクエストパケットを生成して対象デバイスへ送信するとともに、当該対象デバイスからのレスポンスパケットを受信する通信処理部と、通信処理部により受信されたレスポンスパケットに含まれる検索結果をデータ検索クエリに対応する形式に成形するデータ成形部とを含む。
【００２５】
本発明のさらに別の実施の形態によれば、少なくとも１つのデバイスからなる制御システムに接続されるコンピュータで実行される検索プログラムが提供される。検索プログラムは、コンピュータに、制御システムのデバイスの接続関係を含む構成情報、および、各デバイスの特性を示す情報を含むデバイスプロファイルをデータベースに保持するステップと、外部からのデータ検索クエリに応答して、データベースを参照して、当該データ検索クエリからリクエストパケットを生成して対象デバイスへ送信するとともに、当該対象デバイスからのレスポンスパケットを受信するステップと、受信されたレスポンスパケットに含まれる検索結果をデータ検索クエリに対応する形式に成形するステップとを実行させる。
【発明の効果】
【００２６】
本発明によれば、汎用的なインターフェイスにより、制御システム内の任意のデバイスの任意の情報を収集できる。
【図面の簡単な説明】
【００２７】
【図１】本実施の形態に係る制御システムの機能的な構成例を示す模式図である。
【図２】本実施の形態に係る制御システムが提供する検索機能を説明するための模式図である。
【図３】本実施の形態に係る制御システムが処理するデータ検索クエリの一例を示す図である。
【図４】本実施の形態に係る検索装置のハードウェア構成の一例を示すブロック図である。
【図５】本実施の形態に係る検索装置の機能構成の一例を示すブロック図である。
【図６】本実施の形態に係る検索装置の構成情報により規定されるネットワークトポロジの一例を示す模式図である。
【図７】本実施の形態に係る制御システムにおける検索処理例その１を説明するための図である。
【図８】本実施の形態に係る制御システムにおける検索処理例その１を説明するための図である。
【図９】本実施の形態に係る制御システムにおける検索処理例その２を説明するための図である。
【図１０】本実施の形態に係る制御システムにおける検索処理例その２を説明するための図である。
【図１１】本実施の形態に係る制御システムにおける検索処理例その３を説明するための図である。
【図１２】本実施の形態に係る制御システムにおける検索処理例その４を説明するための図である。
【図１３】本実施の形態に係る制御システムにおける検索処理例その５を説明するための図である。
【図１４】本実施の形態に係る制御システムにおける検索処理の処理手順を示すフローチャートである。
【図１５】本実施の形態に係る制御システムを利用して提供されるＷｅｂアプリケーションの一例を説明するための図である。
【図１６】本実施の形態に係る制御システムを利用して提供されるＷｅｂアプリケーションの一例を説明するための図である。
【図１７】本実施の形態に係る制御システムを利用してＷｅｂアプリケーションを提供するための別の実装例を示す模式図である。
【発明を実施するための形態】
【００２８】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００２９】
＜Ａ．適用例＞
まず、本発明が適用される場面の一例について説明する。図１は、本実施の形態に係る制御システム１の機能的な構成例を示す模式図である。図１を参照して、制御システム１は、少なくとも１つのデバイス３００を含む。制御システムを構成し得る単位の装置を意味する。「デバイス」は、後述するようなリクエストパケットに対して応答が可能な装置の単位を意味する。典型的には、「デバイス」は、ＩＯユニット、センサユニット、特殊ユニットなどのコントローラに接続され得るユニットを包含するとともに、ＰＬＣ（プログラマブルロジックコントローラ）およびネットワーク通信を中継するカプラユニットなども包含する。
【００３０】
制御システム１は、制御システム１のデバイスの接続関係を含む構成情報１０４１、および、各デバイスの特性を示す情報を含むデバイスプロファイル１０４２を保持するプロファイルデータベース１０４を含む。制御システム１は、さらに、外部からのデータ検索クエリ６００に応答して、対象デバイスから指定されたデータを取得して応答する通信処理部１０８を含む。より具体的には、通信処理部１０８は、外部からのデータ検索クエリ６００に応答して、プロファイルデータベース１０４を参照して、当該データ検索クエリ６００からリクエストパケット４００を生成して対象デバイスへ送信するとともに、当該対象デバイスからのレスポンスパケット４５０を受信する。
【００３１】
制御システム１は、通信処理部１０８により受信されたレスポンスパケット４５０に含まれる検索結果をデータ検索クエリに対応する形式に成形するデータ成形部１１０をさらに含む。例えば、データ成形部１１０は、ＳＱＬ言語で記述されたデータ検索クエリ６００に対して、合致する検索結果６５０を応答する。
【００３２】
このように、本実施の形態に係る制御システム１によれば、汎用的なインターフェイスにより、制御システム内の任意のデバイスの任意の情報を収集できる。
【００３３】
＜Ｂ．概要＞
まず、本実施の形態に係る制御システム１が提供する検索機能について説明する。
【００３４】
図２は、本実施の形態に係る制御システム１が提供する検索機能を説明するための模式図である。図２を参照して、制御システム１は、検索装置１００と、検索装置１００により検索可能な検索対象２とを含む。
【００３５】
検索対象２は、典型的には、制御対象を制御する制御装置の典型例であるＰＬＣ２００（プログラマブルロジックコントローラ）と、ＰＬＣ２００に接続される１または複数のデバイス３００とを含む。デバイス３００は、ＰＬＣ２００の管理によって動作する装置を意味し、典型的には、制御対象との間で信号を遣り取りする装置である。デバイス３００の一例としては、制御対象から入力信号を取得し、あるいは、制御対象へ出力信号を出力するＩＯユニット、モータなどを制御するドライバ、ロボットなどを制御するロボットコントローラなどを含む。なお、ＰＬＣ２００自体も「デバイス」の概念に含まれ得る。
【００３６】
デバイス３００の各々は、データを一時的に保持する作業領域３０２と、各デバイス３００の各種設定を規定するプロファイル３０４と、接続されているセンサなどから取得したデータを格納し、および／または、デバイス３００において生成されるデータを格納するデータソース３０６とを含む。
【００３７】
検索装置１００は、任意のデータ検索クエリに応答して、当該データ検索クエリに従って、検索対象２に含まれるＰＬＣ２００およびデバイス３００のうち任意のデバイスから任意のデータを収集し、検索結果として出力する。検索装置１００は、検索対象２の任意のデバイスの任意の情報を応答できるので、外部に対しては、検索対象２の全体を１つのデータベースのように見せることができる。
【００３８】
検索装置１００は、データ検索クエリに応答してデータを収集するだけではなく、データ検索クエリに従う検索を実行できるように、ＰＬＣ２００およびデバイス３００から必要なプロファイルを収集することもできる。
【００３９】
検索装置１００は、主たる機能構成として、インターフェイス１０２と、プロファイルデータベース１０４と、クエリ処理部１０６と、通信処理部１０８と、データ成形部１１０とを含む。
【００４０】
インターフェイス１０２は、クエリ要求元との間でデータを遣り取りする。具体的には、インターフェイス１０２は、クエリ要求元からデータ検索クエリを受信すると、受信したデータ検索クエリをクエリ処理部１０６へ出力する。また、インターフェイス１０２は、データ成形部１１０から検索結果を受信すると、受信した検索結果をクエリ要求元へ送信する。
【００４１】
クエリ処理部１０６は、インターフェイス１０２から与えられたデータ検索クエリを解析し、検索対象２を構成するデバイスが処理可能な要求をジョブとして生成する。
【００４２】
プロファイルデータベース１０４は、検索対象２に含まれるデバイスのプロファイルを格納しており、クエリ処理部１０６により生成されたジョブが通信処理部１０８により処理される際に参照される。
【００４３】
通信処理部１０８は、外部からのデータ検索クエリに応答して、プロファイルデータベース１０４を参照して、当該データ検索クエリからリクエストパケットを生成して対象デバイスへ送信するとともに、当該対象デバイスからのレスポンスパケットを受信する。より具体的には、通信処理部１０８は、クエリ処理部１０６により生成されたジョブを処理して、検索対象２において処理可能なリクエストパケットを送出するとともに、当該リクエストパケットに応答して返されるレスポンスパケットを受信する。受信されたレスポンスパケットは、データ成形部１１０へ出力される。レスポンスパケットは、データ検索クエリにおいて規定された条件または命令に対応する検索結果を含む。
【００４４】
データ成形部１１０は、通信処理部１０８により受信されたレスポンスパケットに含まれる検索結果をデータ検索クエリに対応する形式に成形して、検索結果としてクエリ要求元へ送信する。
【００４５】
本実施の形態に係る制御システム１においては、このような一般的な検索方式である、データ検索クエリを用いて、検索対象２から任意のデータを収集できる。
【００４６】
図３は、本実施の形態に係る制御システム１が処理するデータ検索クエリの一例を示す図である。図３には、一例として、ＥｔｈｅｒＣＡＴ（登録商標）のネットワークに接続されたスレーブのうち、累積稼動時間が１０，０００時間を超えるものを抽出する処理に対応する、データ検索クエリの例を示す。
【００４７】
図３（ａ）には、ＳＱＬ言語で記述されたデータ検索クエリの例を示す。図３（ａ）に示すデータ検索クエリにおいては、Ｓｅｌｅｃｔ文にｆｒｏｍ節およびｗｈｅｒｅ節による条件が付加されている。
【００４８】
図３（ｂ）には、Ｗｅｂサービスなどの提供に用いられるＲＥＳＴ（Representational State Transfer）に準拠した形式で記述されたデータ検索クエリの例を示す。図３（ｂ）に示すデータ検索クエリにおいては、ＵＲＬを示す文字列に加えて、「？」および「＆」のエスケープ文字によって必要な条件が記述されている。
【００４９】
図３（ｃ）には、自然言語により記述されたデータ検索クエリの例を示す。図３（ｃ）に示すデータ検索クエリは、人間が話す言葉と同じ表現で検索対象および検索条件が規定される。
【００５０】
なお、図３に示すようなデータ検索クエリに限られず、任意の形式のデータ検索クエリを用いることができる。また、データ検索クエリを規定する新たな形式が普及した場合には、任意の新たな形式を採用できる。
【００５１】
＜Ｃ．検索装置１００のハードウェア構成例＞
次に、本実施の形態に係る制御システム１を構成する検索装置１００のハードウェア構成例について説明する。
【００５２】
検索装置１００は、検索対象２に含まれるＰＬＣ２００またはネットワークに接続される独立した装置として構成してもよいし、ＰＬＣ２００の一部として（すなわち、ＰＬＣ２００と一体化して）構成してもよい。
【００５３】
検索装置１００を独立した装置として構成する場合には、ＰＬＣと同様のハードウェア構成を採用してもよいし、汎用的なコンピュータを採用してもよい。汎用的なコンピュータを採用する場合には、コンピュータのプロセッサが検索プログラムを実行することで実現される。
【００５４】
図４は、本実施の形態に係る検索装置１００のハードウェア構成の一例を示すブロック図である。図４を参照して、検索装置１００は、プロセッサ１５２と、メインメモリ１５４と、ストレージ１５６と、上位ネットワークコントローラ１５８と、入力部１６０と、表示部１６２と、下位ネットワークコントローラ１６４と、メモリカードインターフェイス１６６とを含む。これらのコンポーネントは、プロセッサバス１７０を介して接続されている。
【００５５】
プロセッサ１５２は、後述するような各種処理を実行する演算処理部に相当し、ＣＰＵやＧＰＵなどで構成される。具体的には、プロセッサ１５２は、ストレージ１５６に格納されたプログラムを読出して、メインメモリ１５４に展開して実行することで、累積稼動時間監視機能を実現するための各種処理を実行する。
【００５６】
メインメモリ１５４は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などの揮発性記憶装置などで構成される。ストレージ１５６は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などの不揮発性記憶装置などで構成される。ストレージ１５６には、本実施の形態に係る検索処理を実現するための検索プログラム１５６０と、ＯＳ（Operating System）などを含むシステムプログラム１５６２とが格納される。ストレージ１５６には、さらに、プロファイルデータベース１０４が格納されてもよい。
【００５７】
入力部１６０は、タッチパネル、マウス、キーボードなどで構成され、ユーザ操作を受付ける。表示部１６２は、液晶ディスプレイなどで構成され、プロセッサ１５２による処理結果に応じた画像などを表示する。入力部１６０および表示部１６２が一体化して構成されてもよい。
【００５８】
上位ネットワークコントローラ１５８は、ネットワーク接続された任意の情報処理装置からのデータ検索クエリなどを受付ける。下位ネットワークコントローラ１６４は、検索対象２に含まれるＰＬＣ２００などとの間でデータを遣り取りする。
【００５９】
メモリカードインターフェイス１６６は、着脱可能な記録媒体の一例であるメモリカード１６８を受付ける。メモリカードインターフェイス１６６は、メモリカード１６８に対してデータを書込み、メモリカード１６８から各種データを読出すことが可能になっている。
【００６０】
図４には、プロセッサ１５２が検索プログラム１５６０を実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）など）を用いて実装してもよい。
【００６１】
＜Ｄ．検索装置１００の機能構成例＞
次に、本実施の形態に係る制御システム１を構成する検索装置１００の機能構成例について説明する。
【００６２】
図５は、本実施の形態に係る検索装置１００の機能構成の一例を示すブロック図である。図５を参照して、検索装置１００は、主たる機能構成として、インターフェイス１０２と、プロファイルデータベース１０４と、クエリ処理部１０６と、通信処理部１０８と、データ成形部１１０とを含む。
【００６３】
インターフェイス１０２は、クエリ要求元との間でデータを遣り取りし、クエリ入力部１０２１と、結果出力部１０２２とを含む。
【００６４】
クエリ入力部１０２１は、外部のクエリ供給元からデータ検索クエリを受付ける。クエリ入力部１０２１は、例えば、Ｗｅｂサーバ（ｈｔｔｐｄプロセス）等を用いて実装されてもよい。結果出力部１０２２は、データ成形部１１０により成形されたデータをクエリ要求元に返信する。結果出力部１０２２についても、例えば、Ｗｅｂサーバ（ｈｔｔｐｄプロセス）等を用いて実装されてもよい。データ検索クエリは、上述したような、ＳＱＬ言語で記述されたものであってもよいし、ＲＥＳＴに準拠した形式で記述されたものであってもよい。
【００６５】
クエリ処理部１０６は、データ検索クエリをジョブとして出力する。ここで、「ジョブ」は、データ検索クエリ毎に発行される処理単位を意味する。
【００６６】
通信処理部１０８は、ジョブ管理部１０８１と、ジョブ処理部１０８２とを含む。
ジョブ管理部１０８１は、クエリ処理部１０６からのジョブの受付け、各ジョブに設定された優先度に応じて、データ検索クエリに従う検索処理を管理する。ジョブ管理部１０８１は、ジョブを並列かつ非同期に処理する。ジョブ管理部１０８１は、必要に応じて、再送処理なども実行する。
【００６７】
通信処理部１０８は、ジョブ管理部１０８１により管理されるジョブに従って、必要な通信処理を実行する。具体的には、通信処理部１０８は、検索対象２において対象デバイスまでの経路に用いられている通信プロトコルに従って、パケットを生成する。このパケットの生成においては、後述するようなフィルタリングによって、通信処理を最適化する。通信処理部１０８は、生成したパケットの送受信を実行する。このとき、送信されるパケット（以下、「リクエストパケット」とも称す。）および受信されるパケット（以下、「レスポンスパケット」とも称す。）の一部または全部を一時的に格納するキャッシュが使用されてもよい。さらに、通信処理部１０８は、受信されたパケットに含まれるデータを解析するとともに、解析によって得られたデータを必要に応じてフィルタリング、ソート、ランキング（ソート順の計算）を実行する。
【００６８】
通信処理部１０８は、プロファイルデータベース１０４を参照して、リクエストパケットを生成する。
【００６９】
データ成形部１１０は、受信されたデータを指定された出力形式のデータフォーマットに変換する。データフォーマットの一例としては、ＣＳＶ形式、ＪＳＯＮ形式、バイナリ形式、テキスト形式、ＸＭＬ形式などが挙げられる。なお、データフォーマットの指定がない場合には、予め定められたデータフォーマットに変換するようにしてもよい。
【００７０】
データ検索クエリを送信する外部装置は、ユーザインターフェイス７３０を有している。ユーザインターフェイス７３０は、ユーザ操作に従って、データ検索クエリを生成するとともに、当該生成されたデータ検索クエリを検索装置１００へ送信する。また、ユーザインターフェイス７３０は、検索装置１００からの検索結果を指定された態様でユーザへ提示する。
【００７１】
図５に示すように、プロファイルデータベース１０４は、構成情報１０４１と、デバイスプロファイル１０４２と、索引１０４３とを含む。
【００７２】
構成情報１０４１は、検索対象２に含まれる制御システムのデバイスの接続関係を示す情報を含む。具体的には、構成情報１０４１は、ネットワークトポロジ、各デバイスのアドレス情報、および、各ネットワークの通信プロトコルなどを規定する情報を含む。構成情報１０４１は、物理的または仮想的なネットワークトポロジや、ユニット構成に関する情報（アドレス、形式、通信帯域など）を含むようにしてもよい。
【００７３】
構成情報１０４１は、予め静的に設定されていてもよいし、ネットワーク構成の変化に応じて、動的に変化するようにしてもよい。
【００７４】
図６は、本実施の形態に係る検索装置１００の構成情報１０４１により規定されるネットワークトポロジの一例を示す模式図である。図６（ａ）は、ＥｔｈｅｒＣＡＴのネットワークに接続されるデバイスのネットワークトポロジの一例を示す図である。図６（ｂ）は、ＥｔｈｅｒＮｅｔ／ＩＰのネットワークに接続されるデバイスのネットワークトポロジの一例を示す図である。
【００７５】
図６（ａ）および図６（ｂ）に示すように、構成情報１０４１は、各ネットワークに接続されているデバイスの数および各デバイスに割り当てられるアドレスなどを規定する。
【００７６】
なお、構成情報１０４１においてネットワーク構成を規定するデータ形式およびデータ構造は任意のものを採用できる。
【００７７】
再度図５を参照して、デバイスプロファイル１０４２は、各デバイスの特性を示す情報を含む。具体的には、デバイスプロファイル１０４２は、デバイス内のメモリマップ、オブジェクト仕様、型情報、取得可能なデータ（属性）、スケーリングなどを含む。デバイスプロファイル１０４２は、さらに、サポートするサービスを特定する情報や、データのフォーマット情報（スケーリング）などを含む。このように、デバイスプロファイル１０４２は、ネットワーク、ベンダ、形式によって応じて定まる静的な情報を含む。
【００７８】
デバイスプロファイル１０４２は、予め各デバイスのプロファイルを任意の方法で取得しておいてもよいし、各デバイスから直接ネットワークを介して取得してもよい。デバイスプロファイル１０４２としては、例えば、ＥｔｈｅｒＣＡＴ規格によれば、ＥＳＩ（EtherCAT Slave Information）ファイルなどを用いることができ、ＥｔｈｅｒＮｅｔ／ＩＰの規格によれば、ＥＤＳ（Electronic Data Sheets）ファイルなどを用いることができる。
【００７９】
索引１０４３は、検索を効率化するために用いられる情報であり、制御システム１に含まれる各デバイスの状態値を示す情報を含む。具体的には、索引１０４３は、デバイスの属性値および個体識別番号（シリアル番号やＭＡＣアドレスなど）を含む。索引１０４３は、典型的には、動的に生成されることになるが、事前に静的に生成したものを採用してもよい。索引１０４３は、検索対象２において変化が相対的に少ない情報をキャッシュすることで、通信を効率化するために用いられる。
【００８０】
索引１０４３は、さらに、ＰＬＣ名、累積稼働時間（時間単位あるいは分単位）、エラーの有無、ユーザプログラム更新時間、メモリ使用量（空き容量）、メモリカードの空き容量などの各デバイスの状態値を示す情報を含めてもよい。索引１０４３には、さらに時間的な変化（変更履歴）を含めるようにしてもよい。
【００８１】
なお、索引１０４３は、検索の効率化のために用いられる情報であり、必ずしも必要ではなく、状況に応じて実装すればよい。
【００８２】
＜Ｅ．検索装置１００における処理の具体例＞
次に、本実施の形態に係る制御システム１における検索処理のいくつかの具体例について説明する。
【００８３】
（ｅ１：検索処理例その１）
図７および図８は、本実施の形態に係る制御システム１における検索処理例その１を説明するための図である。
【００８４】
図７を参照して、検索装置１００に接続される検索対象２は、ＰＬＣ２００と、ＰＬＣ２００とＥｔｈｅｒＣＡＴのネットワークを介して３つのスレーブ（デバイス３００−１，３００−２，３００−３）が接続されているとする。デバイス３００−１は、カプラユニットであり、ローカルバスを介していくつかのローカルユニットが接続されている。
【００８５】
検索処理例その１として、「デバイス３００−１とローカルバスを介して接続されているローカルユニットのうち、アドレス「＃５」のローカルユニットであるデバイス３００−４が保持しているデータを収集する」例を示す。なお、デバイス３００−４は、センサまたはアクチュエータとの間でデータを遣り取りするＩＯ−Ｌｉｎｋ（図示しない）のマスタユニットであるとし、当該ＩＯ−Ｌｉｎｋにおける異常（一例として、光量低下）の情報を保持しているとする。
【００８６】
デバイス３００−４が保持するデータを収集するためには、リクエストパケットを、検索装置１００からＰＬＣ２００までの第１経路５０２、ＰＬＣ２００からデバイス３００−１（カプラユニット）までの第２経路５０４、デバイス３００−１からデバイス３００−４までの第３経路５０６の順で順次転送しなければならない。
【００８７】
ネットワーク階層設定５００に示すように、例えば、第１経路５０２では、ＴＣＰ／ＩＰ上に実装されるＨＴＴＰでデータ転送が行われ、このようなデータ転送は「ｅｃａｔ＿ｓｙｓ．ｃｇｉ」という通信プログラムにより実現される。第２経路５０４では、ＥｔｈｅｒＣＡＴ上に実装されるＶｏＥというプロトコルでデータ転送が行われ、このようなデータ転送は「ＭａｉｌＢｏｘ」という通信プログラムにより実現される。第３経路５０６では、Ｌｏｃａｌ  Ｂｕｓ上に実装される「ＬＢＰ」というプロトコルでデータ転送が行われ、このようなデータ転送は「Ｕｎｉｔ  Ａｐｐｌｉｃａｔｉｏｎ」という通信プログラムにより実現される。
【００８８】
このような複数の階層に亘ってパケットを転送しなければならないため、検索装置１００は、構成情報１０４１を参照して、対象デバイスの接続位置に到達するためにリクエストパケットを生成する。このように、検索装置１００の通信処理部１０８は、構成情報１０４１を参照して、対象デバイスまでの経路を特定するとともに、特定した経路に対応するプロトコルに応じたパケットを生成する。
【００８９】
図７に示す例においては、第１経路５０２から第２経路５０４へパケットが転送される場合には、ＨＴＴＰからＶｏＥに変換する必要があり、第２経路５０４から第３経路５０６へパケットが転送される場合には、ＶｏＥからＬＢＰに変換する必要がある。
【００９０】
データ検索クエリ６００は、デバイス３００−４からのデータを収集するための命令をＳＱＬ言語で記述した例である。検索装置１００は、データ検索クエリ６００を受けて、リクエストパケット４００を生成する。リクエストパケット４００は、第１経路用パケット４０２と、第２経路用パケット４０４と、第３経路用パケット４０６とを含む。
【００９１】
すなわち、検索装置１００の通信処理部１０８は、対象デバイスまでの経路に応じてそれぞれ生成されるパケット４０２，４０４，４０６をカプセル化してリクエストパケット４００を生成する。このように、複数のプロトコルに従うコマンドをカプセル化したリクエストパケットが生成される。
【００９２】
リクエストパケット４００は、さらに、デバイス３００−４からデータを読出すためのコマンド４０８を含む。このとき、検索装置１００の通信処理部１０８は、デバイスプロファイル１０４２を参照して、対象デバイスからデータ検索クエリにより指定されたデータを収集するためのコマンド４０８をリクエストパケット４００に含めるようにしてもよい。
【００９３】
図８を参照して、ＳＱＬ言語で記述したデータ検索クエリ６００は、ＲＥＳＴに準拠したデータ検索クエリは６０２として記述することもできる。いずれの表現形式で記述した場合であっても、データを収集する対象デバイス３００−４のネットワーク上の接続位置を特定するための情報（データ検索クエリ６００，６０２の「１」，「２」，「３」の部分）が含まれている。また、データ検索クエリ６００，６０２は、収集すべきデータの種類を特定するための情報（データ検索クエリ６００，６０２の「４」の部分）も含む。
【００９４】
以下、データ検索クエリ６００，６０２の「１」，「２」，「３」，「４」の部分がどのように解析されて、リクエストパケット４００が生成されるのかについて説明する。
【００９５】
データ検索クエリ６００，６０２の「１」の部分については、検索装置１００は、プロファイルデータベース１０４の構成情報１０４１に含まれるＥＩＰ階層構成情報を参照して、データ検索クエリにおいて指定された「Ｍａｃｈｉｎｅ１」がＩＰアドレスとして「１９２．１６８．２５０．１」をもつコントローラであることを特定するとともに、コントローラがＥｔｈｅｒＣＡＴのネットワークとして「ＥＣＡＴ」を有していることを特定する（解析処理４１２）。
【００９６】
また、検索装置１００は、デバイスプロファイル１０４２を参照して、ネットワーク「ＥＣＡＴ」への通信は、アプリケーション「ｅｃａｔ＿ｓｙｓ．ｃｇｉ」へコマンドを発行することで実現できることを特定する（解析処理４１３）。
【００９７】
検索装置１００は、解析処理４１２および解析処理４１３による特定結果に基づいて、第１経路用パケット４０２を生成する。
【００９８】
データ検索クエリ６００，６０２の「２」の部分については、検索装置１００は、プロファイルデータベース１０４の構成情報１０４１に含まれるＥｔｈｅｒＣＡＴ階層構成情報を参照して、データ検索クエリにおいて指定された「ｎｏｄｅ１」がＥｔｈｅｒＣＡＴのアドレスとして「＃１」をもつデバイスあることを特定する（解析処理４１４）。
【００９９】
また、検索装置１００は、デバイスプロファイル１０４２を参照して、ＥｔｈｅｒＣＡＴのスレーブへの通信は「ＶｏＥ」であることを特定する（解析処理４１５）。
【０１００】
検索装置１００は、解析処理４１４および解析処理４１５による特定結果に基づいて、第２経路用パケット４０４を生成する。第２経路用パケット４０４は、第１経路用パケット４０２に組込まれる。
【０１０１】
データ検索クエリ６００，６０２の「３」の部分については、検索装置１００は、プロファイルデータベース１０４の構成情報１０４１に含まれるローカルバス構成情報を参照して、データ検索クエリにおいて指定された「ｕｎｉｔ５」がＵｎｉｔアドレス「＃５」をもつデバイスであることを特定する（解析処理４１６）。
【０１０２】
また、検索装置１００は、デバイスプロファイル１０４２を参照して、ローカルバスによるデバイス３００−４への通信は「ＬＢＰ」でのルーチングであることを特定する（解析処理４１７）。
【０１０３】
検索装置１００は、解析処理４１６および解析処理４１７による特定結果に基づいて、第３経路用パケット４０６を生成する。第３経路用パケット４０６は、第２経路用パケット４０４に組込まれる。
【０１０４】
データ検索クエリ６００，６０２の「４」の部分については、検索装置１００は、プロファイルデータベース１０４の構成情報１０４１に含まれるローカルバス構成情報を参照して、Ｕｎｉｔアドレス「＃５」をもつデバイスは「ＩＯ−Ｌｉｎｋマスタ」であることを特定する（解析処理４１８）。
【０１０５】
また、検索装置１００は、デバイスプロファイル１０４２を参照して、デバイス３００−４の「ｖａｌｕｅ１」は、オフセットが「０ｘ００８０」の２ｂｙｔｅデータであり、「Ｒｅａｄ」コマンドによって読出すことができることを特定する（解析処理４１９）。
【０１０６】
検索装置１００は、解析処理４１８および解析処理４１９による特定結果に基づいて、コマンド４０８を生成する。コマンド４０８は、第３経路用パケット４０６に組込まれる。
【０１０７】
以上のような一連の解析処理によって、リクエストパケット４００が生成される。
（ｅ２：検索処理例その２）
図９および図１０は、本実施の形態に係る制御システム１における検索処理例その２を説明するための図である。
【０１０８】
図９を参照して、検索装置１００に接続される検索対象２は、ＰＬＣ２００と、ＰＬＣ２００とＥｔｈｅｒＣＡＴのネットワークを介して３つのスレーブ（デバイス３００−１，３００−２，３００−３）が接続されているとする。
【０１０９】
検索処理例その２として、「ＰＬＣ２００とＥｔｈｅｒＣＡＴのネットワークを介して接続されているＩＯ−Ｌｉｎｋマスタであるスレーブのすべてからサイクルタイムを収集する」例を示す。
【０１１０】
ＩＯ−Ｌｉｎｋマスタであるスレーブのすべてからデータを収集するためには、リクエストパケットを、検索装置１００からＰＬＣ２００までの第１経路５１２およびＰＬＣ２００から各スレーブまでの第２経路５１４の順で順次転送しなければならない。
【０１１１】
ネットワーク階層設定５１０に示すように、例えば、第１経路５１２では、ＴＣＰ／ＩＰ上に実装されるＨＴＴＰでデータ転送が行われ、このようなデータ転送は「ｅｃａｔ＿ｓｙｓ．ｃｇｉ」という通信プログラムにより実現される。第２経路５１４では、ＥｔｈｅｒＣＡＴ上に実装されるＣｏＥというプロトコルでデータ転送が行われ、このようなデータ転送は「Ｏｂｊｅｃｔ  Ｄｉｃｔｉｏｎａｒｙ」という通信プログラムにより実現される。このような複数の階層に亘ってパケットを転送しなければならず、検索装置１００は、複数のプロトコルに従うコマンドをカプセル化したリクエストパケットを生成する。すなわち、第１経路５１２から第２経路５１４へパケットが転送される場合には、ＨＴＴＰからＣｏＥに変換する必要がある。
【０１１２】
データ検索クエリ６１０は、ＩＯ−Ｌｉｎｋマスタであるスレーブのすべてからデータを収集するための命令をＳＱＬ言語で記述した例である。検索装置１００は、データ検索クエリ６１０を受けて、リクエストパケット４２０を生成する。検索処理例その２においては、ＥｔｈｅｒＣＡＴのネットワークに接続されるスレーブに設定可能なアドレス範囲（通常は、＃１〜＃２５４）のすべてについて、リクエストパケット４２０が繰り返し生成される。
【０１１３】
リクエストパケット４２０は、第１経路用パケット４２２と、第２経路用パケット４２４とを含む。リクエストパケット４２０は、さらに、ＩＯ−Ｌｉｎｋマスタからサイクルタイムを読出すためのコマンド４２６を含む。
【０１１４】
図１０を参照して、ＳＱＬ言語で記述したデータ検索クエリ６１０は、ＲＥＳＴに準拠したデータ検索クエリは６１２として記述することもできる。いずれの表現形式で記述した場合であっても、データを収集する対象デバイス３００を特定するための情報（データ検索クエリ６１０，６１２の「１」，「２」の部分）が含まれている。また、データ検索クエリ６１０，６１２は、収集すべきデータの種類を特定するための情報（データ検索クエリ６１０，６１２の「３」の部分）も含む。
【０１１５】
以下、データ検索クエリ６１０，６１２の「１」，「２」，「３」の部分がどのように解析されて、リクエストパケット４２０が生成されるのかについて説明する。
【０１１６】
データ検索クエリ６１０，６１２の「１」の部分については、検索装置１００は、プロファイルデータベース１０４の構成情報１０４１に含まれるＥＩＰ階層構成情報を参照して、データ検索クエリにおいて指定された「Ｍａｃｈｉｎｅ１」がＩＰアドレスとして「１９２．１６８．２５０．１」をもつコントローラであることを特定するとともに、コントローラがＥｔｈｅｒＣＡＴのネットワークとして「ＥＣＡＴ」を有していることを特定する（解析処理４３２）。
【０１１７】
また、検索装置１００は、デバイスプロファイル１０４２を参照して、ネットワーク「ＥＣＡＴ」への通信は、アプリケーション「ｅｃａｔ＿ｓｙｓ．ｃｇｉ」へコマンドを発行することで実現できることを特定する（解析処理４３３）。
【０１１８】
検索装置１００は、解析処理４３２および解析処理４３３による特定結果に基づいて、第１経路用パケット４２２を生成する。
【０１１９】
データ検索クエリ６１０，６１２の「２」の部分については、検索装置１００は、プロファイルデータベース１０４の構成情報１０４１に含まれるＥｔｈｅｒＣＡＴ階層構成情報を参照して、データ検索クエリにおいて指定された「ｎｏｄｅ＊」がＥｔｈｅｒＣＡＴのスレーブすべて（設定可能なアドレスすべて）を意味することを特定する（解析処理４３４）。
【０１２０】
また、検索装置１００は、デバイスプロファイル１０４２を参照して、ＥｔｈｅｒＣＡＴのスレーブへの通信は「ＣｏＥ」であることを特定するとともに、スレーブがＩＯ−Ｌｉｎｋマスタであれば「ＣｏＥ」を発行することを特定する（解析処理４３５）。
【０１２１】
検索装置１００は、解析処理４３４および解析処理４３５による特定結果に基づいて、第２経路用パケット４２４を生成する。第２経路用パケット４２４は、第１経路用パケット４２２に組込まれる。
【０１２２】
データ検索クエリ６１０，６１２の「３」の部分については、検索装置１００は、デバイスプロファイル１０４２を参照して、ＩＯ−Ｌｉｎｋマスタの「Ｃｙｃｌｅ＿Ｔｉｍｅ」のメモリアドレスは「０ｘ０８３４」であることを特定する（解析処理４３６）。
【０１２３】
検索装置１００は、解析処理４３６による特定結果に基づいて、コマンド４２６を生成する。コマンド４２６は、第２経路用パケット４２４に組込まれる。
【０１２４】
以上のような一連の解析処理によって、リクエストパケット４２０が生成される。リクエストパケット４２０の生成は、ＥｔｈｅｒＣＡＴのネットワークに接続されるスレーブに設定可能なアドレス範囲のすべてについて繰り返される。ただし、各スレーブがＩＯ−Ｌｉｎｋマスタであるか否かが判断されるため、現実にリクエストパケット４２０が生成されるのは、ＩＯ−Ｌｉｎｋマスタのスレーブと同数だけになる。
【０１２５】
（ｅ３：検索処理例その３）
図１１は、本実施の形態に係る制御システム１における検索処理例その３を説明するための図である。図１１に示す検索処理例その３は、上述の図９および図１０に示す検索処理例その２に対して、検索条件をさらに付加したものであるので、検索処理例その２と同様の処理については、同一の参照符号を付与している。
【０１２６】
検索処理例その３として、「ＰＬＣ２００とＥｔｈｅｒＣＡＴのネットワークを介して接続されているＡＡＡ製のＩＯ−Ｌｉｎｋマスタであるスレーブのすべてからサイクルタイムを収集する」例を示す。ここで、「ＡＡＡ」はスレーブの製造メーカ名またはベンダ名であるとする。
【０１２７】
このような検索処理は、ＳＱＬ言語で記述したデータ検索クエリ６２０のように定義できる。あるいは、ＳＱＬ言語で記述したデータ検索クエリ６２０は、ＲＥＳＴに準拠したデータ検索クエリは６２２として記述することもできる。いずれの表現形式で記述した場合であっても、データを収集する対象デバイス３００を特定するための情報（データ検索クエリ６２０，６２２の「１」，「２」の部分）が含まれている。また、データ検索クエリ６２０，６２２は、収集すべきデータの種類を特定するための情報（データ検索クエリ６２０，６２２の「３」の部分）も含む。
【０１２８】
以下、データ検索クエリ６２０，６２２の「１」，「２」，「３」の部分がどのように解析されて、リクエストパケット４２０が生成されるのかについて説明する。
【０１２９】
データ検索クエリ６２０，６２２の「１」の部分については、検索装置１００は、プロファイルデータベース１０４の構成情報１０４１に含まれるＥＩＰ階層構成情報を参照して、データ検索クエリにおいて指定された「Ｍａｃｈｉｎｅ１」がＩＰアドレスとして「１９２．１６８．２５０．１」をもつコントローラであることを特定するとともに、コントローラがＥｔｈｅｒＣＡＴのネットワークとして「ＥＣＡＴ」を有していることを特定する（解析処理４３２）。
【０１３０】
また、検索装置１００は、デバイスプロファイル１０４２を参照して、ネットワーク「ＥＣＡＴ」への通信は、アプリケーション「ｅｃａｔ＿ｓｙｓ．ｃｇｉ」へコマンドを発行することで実現できることを特定する（解析処理４３３）。
【０１３１】
検索装置１００は、解析処理４３２および解析処理４３３による特定結果に基づいて、第１経路用パケット４２２を生成する。
【０１３２】
データ検索クエリ６２０，６２２の「２」の部分については、検索装置１００は、プロファイルデータベース１０４の構成情報１０４１に含まれるＥｔｈｅｒＣＡＴ階層構成情報を参照して、データ検索クエリにおいて指定された「ｎｏｄｅ＊」がＥｔｈｅｒＣＡＴのスレーブすべて（設定可能なアドレスすべて）を意味することを特定する（解析処理４３４）。
【０１３３】
また、検索装置１００は、デバイスプロファイル１０４２を参照して、ＥｔｈｅｒＣＡＴのスレーブへの通信は「ＣｏＥ」であることを特定するとともに、スレーブがＡＡＡ製のＩＯ−Ｌｉｎｋマスタであれば「ＣｏＥ」を発行することを特定する（解析処理４３５Ａ）。
【０１３４】
検索装置１００は、解析処理４３４および解析処理４３５Ａによる特定結果に基づいて、第２経路用パケット４２４を生成する。第２経路用パケット４２４は、第１経路用パケット４２２に組込まれる。
【０１３５】
データ検索クエリ６２０，６２２の「３」の部分については、検索装置１００は、デバイスプロファイル１０４２を参照して、ＩＯ−Ｌｉｎｋマスタの「Ｃｙｃｌｅ＿Ｔｉｍｅ」のメモリアドレスは「０ｘ０８３４」であることを特定する（解析処理４３６）。
【０１３６】
検索装置１００は、解析処理４３６による特定結果に基づいて、コマンド４２６を生成する。コマンド４２６は、第２経路用パケット４２４に組込まれる。
【０１３７】
以上のような一連の解析処理によって、リクエストパケット４２０が生成される。リクエストパケット４２０の生成は、ＥｔｈｅｒＣＡＴのネットワークに接続されるスレーブに設定可能なアドレス範囲のすべてについて繰り返される。ただし、各スレーブがＡＡＡ製のＩＯ−Ｌｉｎｋマスタであるか否かが判断されるため、現実にリクエストパケット４２０が生成されるのは、ＡＡＡ製のＩＯ−Ｌｉｎｋマスタのスレーブと同数だけになる。
【０１３８】
（ｅ４：検索処理例その４）
図１２は、本実施の形態に係る制御システム１における検索処理例その４を説明するための図である。図１２に示す検索処理例その４は、上述の図１１に示す検索処理例その３に対して、検索条件をさらに付加したものであるので、検索処理例その３ならびに検索処理例その３が参照する検索処理例その２と同様の処理については、同一の参照符号を付与している。
【０１３９】
検索処理例その４として、「ＰＬＣ２００とＥｔｈｅｒＣＡＴのネットワークを介して接続されているＡＡＡ製のＩＯ−Ｌｉｎｋマスタのうちスレーブであって、エラー発生中のスレーブのすべてからサイクルタイムを収集する」例を示す。
【０１４０】
このような検索処理は、ＳＱＬ言語で記述したデータ検索クエリ６３０のように定義できる。あるいは、ＳＱＬ言語で記述したデータ検索クエリ６３０は、ＲＥＳＴに準拠したデータ検索クエリは６３２として記述することもできる。いずれの表現形式で記述した場合であっても、データを収集する対象デバイス３００を特定するための情報（データ検索クエリ６３０，６３２の「１」，「２」の部分）が含まれている。また、データ検索クエリ６３０，６３２は、収集すべきデータの種類を特定するための情報（データ検索クエリ６３０，６３２の「３」の部分）も含む。
【０１４１】
以下、データ検索クエリ６３０，６３２の「１」，「２」，「３」の部分がどのように解析されて、リクエストパケット４２０Ａが生成されるのかについて説明する。検索処理例その４においては、「エラー発生中のスレーブ」との条件は、各デバイスに与えられるコマンド４２８に含まれることになる。
【０１４２】
データ検索クエリ６３０，６３２の「１」の部分については、検索装置１００は、プロファイルデータベース１０４の構成情報１０４１に含まれるＥＩＰ階層構成情報を参照して、データ検索クエリにおいて指定された「Ｍａｃｈｉｎｅ１」がＩＰアドレスとして「１９２．１６８．２５０．１」をもつコントローラであることを特定するとともに、コントローラがＥｔｈｅｒＣＡＴのネットワークとして「ＥＣＡＴ」を有していることを特定する（解析処理４３２）。
【０１４３】
また、検索装置１００は、デバイスプロファイル１０４２を参照して、ネットワーク「ＥＣＡＴ」への通信は、アプリケーション「ｅｃａｔ＿ｓｙｓ．ｃｇｉ」へコマンドを発行することで実現できることを特定する（解析処理４３３）。
【０１４４】
検索装置１００は、解析処理４３２および解析処理４３３による特定結果に基づいて、第１経路用パケット４２２を生成する。
【０１４５】
データ検索クエリ６３０，６３２の「２」の部分については、検索装置１００は、プロファイルデータベース１０４の構成情報１０４１に含まれるＥｔｈｅｒＣＡＴ階層構成情報を参照して、データ検索クエリにおいて指定された「ｎｏｄｅ＊」がＥｔｈｅｒＣＡＴのスレーブすべて（設定可能なアドレスすべて）を意味することを特定する（解析処理４３４）。
【０１４６】
また、検索装置１００は、デバイスプロファイル１０４２を参照して、ＥｔｈｅｒＣＡＴのスレーブへの通信は「ＣｏＥ」であることを特定するとともに、スレーブがＡＡＡ製のＩＯ−Ｌｉｎｋマスタであれば「ＣｏＥ」を発行することを特定する（解析処理４３５Ａ）。
【０１４７】
検索装置１００は、解析処理４３４および解析処理４３５Ａによる特定結果に基づいて、第２経路用パケット４２４を生成する。第２経路用パケット４２４は、第１経路用パケット４２２に組込まれる。
【０１４８】
データ検索クエリ６２０，６２２の「３」の部分については、検索装置１００は、デバイスプロファイル１０４２を参照して、ＩＯ−Ｌｉｎｋマスタの「Ｓｔａｔｕｓ＿Ｄａｔａ」のメモリアドレスは「０ｘＦ１００」であることを特定する（解析処理４３７）。また、検索装置１００は、デバイスプロファイル１０４２を参照して、ＩＯ−Ｌｉｎｋマスタの「Ｃｙｃｌｅ＿Ｔｉｍｅ」のメモリアドレスは「０ｘ０８３４」であることを特定する（解析処理４３６）。
【０１４９】
検索装置１００は、解析処理４３７および解析処理４３６による特定結果に基づいて、コマンド４２８を生成する。コマンド４２８は、「Ｓｔａｔｕｓ＿Ｄａｔａ」を読出すとともに、読出した「Ｓｔａｔｕｓ＿Ｄａｔａ」が「ＮｏＥｒｒｏｒ」ではない、つまり「エラー発生中」である場合に限って、「Ｃｙｃｌｅ＿Ｔｉｍｅ」を読出すように指示する命令を含む。コマンド４２８は、第２経路用パケット４２４に組込まれる。
【０１５０】
このように、検索装置１００の通信処理部１０８は、データ検索クエリにおいて指定された検索条件に相当する命令を含むコマンド４２８を生成するようにしてもよい。図１２に示すコマンド４２８では、「エラー発生中」というフィルタリングを検索条件の一例として示しているが、これに限らず、ソートやランキング（ソート順の計算）といった任意の検索条件を組入ることができる。
【０１５１】
以上のような一連の解析処理によって、リクエストパケット４２０Ａが生成される。リクエストパケット４２０Ａの生成は、ＥｔｈｅｒＣＡＴのネットワークに接続されるスレーブに設定可能なアドレス範囲のすべてについて繰り返される。ただし、各スレーブがＡＡＡ製のＩＯ−Ｌｉｎｋマスタであるか否かが判断されるため、現実にリクエストパケット４２０が生成されるのは、ＡＡＡ製のＩＯ−Ｌｉｎｋマスタのスレーブと同数だけになる。
【０１５２】
（ｅ５：検索処理例その５）
図１３は、本実施の形態に係る制御システム１における検索処理例その５を説明するための図である。図１３に示す検索処理例その５は、上述の図１１に示す検索処理例その３に対して、検索条件をさらに付加したものであるので、検索処理例その３ならびに検索処理例その３が参照する検索処理例その２と同様の処理については、同一の参照符号を付与している。
【０１５３】
検索処理例その５として、検索処理例その４と同様に、「ＰＬＣ２００とＥｔｈｅｒＣＡＴのネットワークを介して接続されているＡＡＡ製のＩＯ−Ｌｉｎｋマスタのうちスレーブであって、エラー発生中のスレーブのすべてからサイクルタイムを収集する」例を示す。
【０１５４】
上述の検索処理例その４においては、「エラー発生中のスレーブ」との条件は、各デバイスに与えられるコマンド４２８に含まれていたが、検索処理例その５においては、索引１０４３を参照して、対象デバイス３００（スレーブ）を事前に選択する処理例を示す。
【０１５５】
以下、データ検索クエリ６３０，６３２の「１」，「２」，「３」の部分がどのように解析されて、リクエストパケット４２０Ａが生成されるのかについて説明する。検索処理例その４においては、「エラー発生中のスレーブ」との条件は、各デバイスに与えられるコマンド４２８に含まれることになる。
【０１５６】
データ検索クエリ６３０，６３２の「１」の部分については、検索装置１００は、プロファイルデータベース１０４の構成情報１０４１に含まれるＥＩＰ階層構成情報を参照して、データ検索クエリにおいて指定された「Ｍａｃｈｉｎｅ１」がＩＰアドレスとして「１９２．１６８．２５０．１」をもつコントローラであることを特定するとともに、コントローラがＥｔｈｅｒＣＡＴのネットワークとして「ＥＣＡＴ」を有していることを特定する（解析処理４３２）。
【０１５７】
また、検索装置１００は、デバイスプロファイル１０４２を参照して、ネットワーク「ＥＣＡＴ」への通信は、アプリケーション「ｅｃａｔ＿ｓｙｓ．ｃｇｉ」へコマンドを発行することで実現できることを特定する（解析処理４３３）。
【０１５８】
検索装置１００は、解析処理４３２および解析処理４３３による特定結果に基づいて、第１経路用パケット４２２を生成する。
【０１５９】
データ検索クエリ６３０，６３２の「２」の部分については、検索装置１００は、プロファイルデータベース１０４の構成情報１０４１に含まれるＥｔｈｅｒＣＡＴ階層構成情報を参照して、データ検索クエリにおいて指定された「ｎｏｄｅ＊」がＥｔｈｅｒＣＡＴのスレーブすべて（設定可能なアドレスすべて）を意味することを特定する（解析処理４３４）。
【０１６０】
また、検索装置１００は、デバイスプロファイル１０４２を参照して、ＥｔｈｅｒＣＡＴのスレーブへの通信は「ＣｏＥ」であることを特定するとともに、スレーブがＡＡＡ製のＩＯ−Ｌｉｎｋマスタであれば「ＣｏＥ」を発行することを特定する（解析処理４３５Ａ）。
【０１６１】
また、検索装置１００は、索引１０４３を参照して、「Ｓｔａｔｕｓ＿Ｄａｔａ」が「ＮｏＥｒｒｏｒ」ではない、つまり「エラー発生中」であるスレーブを抽出する（解析処理４３８）。このように、検索装置１００の通信処理部１０８は、各デバイスの状態値を示す情報である索引１０４３を参照して、データ検索クエリにおいて指定された検索条件に合致するデバイスを特定するようにしてもよい。
【０１６２】
検索装置１００は、解析処理４３４および解析処理４３５Ａに基づいて、第２経路用パケット４２４を生成する。ここで、生成される第２経路用パケット４２４は、解析処理４３８において抽出されたスレーブに対するもののみとなる。第２経路用パケット４２４は、第１経路用パケット４２２に組込まれる。
【０１６３】
データ検索クエリ６２０，６２２の「３」の部分については、検索装置１００は、デバイスプロファイル１０４２を参照して、ＩＯ−Ｌｉｎｋマスタの「Ｃｙｃｌｅ＿Ｔｉｍｅ」のメモリアドレスは「０ｘ０８３４」であることを特定する（解析処理４３６）。
【０１６４】
検索装置１００は、解析処理４３６による特定結果に基づいて、コマンド４２６を生成する。コマンド４２６は、第２経路用パケット４２４に組込まれる。
【０１６５】
以上のような一連の解析処理によって、リクエストパケット４２０が生成される。検索処理例その５においては、リクエストパケット４２０は、「エラー発生中」のＩＯ−Ｌｉｎｋマスタのみに対して生成されるので、通信量を低減できる。
【０１６６】
＜Ｆ．処理手順＞
次に、本実施の形態に係る制御システム１における検索処理の処理手順を説明する。
【０１６７】
図１４は、本実施の形態に係る制御システムにおける検索処理の処理手順を示すフローチャートである。図１４に示す各ステップは、典型的には、検索装置１００のプロセッサ１５２が検索プログラム１５６０（図４）を実行することで実現される。
【０１６８】
図１４を参照して、検索装置１００は、外部からのデータ検索クエリを受信したか否かを判断する（ステップＳ１００）。データ検索クエリを受信していなければ（ステップＳ１００においてＮＯ）、ステップＳ１００の処理が繰り返される。
【０１６９】
データ検索クエリを受信していれば（ステップＳ１００においてＹＥＳ）、検索装置１００は、受信したデータ検索クエリを解析して対象デバイス３００を特定する（ステップＳ１０２）とともに、特定した対象デバイス３００の接続位置および対象デバイスまでの経路を特定する（ステップＳ１０４）。ステップＳ１０２においては、複数のデバイスが対象として特定される場合もある。
【０１７０】
検索装置１００は、対象デバイス３００までの経路のうち最上階層の経路を選択し（ステップＳ１０６）、構成情報１０４１を参照して、アドレスおよびプロトコルなどの情報を取得する（ステップＳ１０８）。また、検索装置１００は、特定した対象デバイス３００までの経路のうち最上階層の経路について、デバイスプロファイル１０４２を参照して、次の階層へのデータ転送に必要な情報を取得する（ステップＳ１１０）。そして、検索装置１００は、ステップＳ１０８およびＳ１１０において取得した情報に基づいてパケットを生成する（ステップＳ１１２）。検索装置１００は、先に生成されているパケットが存在する場合には、ステップＳ１１２において生成したパケットをカプセル化して、先に生成されているパケットに組込む。
【０１７１】
検索装置１００は、先のステップＳ１０８〜Ｓ１１２の処理によって、対象デバイス３００までの経路のすべてについてのパケットが生成されたか否かを判断する（ステップＳ１１４）。対象デバイス３００までの経路のすべてについてのパケットが生成されていなければ（ステップＳ１１４においてＮＯ）、検索装置１００は、対象デバイス３００までの経路のうち次の経路を選択し（ステップＳ１１６）、ステップＳ１０８以下の処理を繰り返す。
【０１７２】
対象デバイス３００までの経路のすべてについてのパケットが生成されていれば（ステップＳ１１４においてＹＥＳ）、検索装置１００は、デバイスプロファイル１０４２を参照して、データ検索クエリにおいて指定されたデータを収集するためのコマンド、および／または、データ検索クエリにおいて指定された検索条件に必要な情報を収集するためのコマンドを取得する（ステップＳ１１８）。そして、検索装置１００は、先に生成されているパケットに取得したコマンドを組込む（ステップＳ１２０）。
【０１７３】
なお、ステップＳ１２０において、検索装置１００は、データ検索クエリにおいて指定された検索条件に対応する命令を含むコマンドを生成することもある。
【０１７４】
そして、検索装置１００は、ステップＳ１２０においてコマンドを組込んだパケットを検索対象２（対象デバイス３００）に送信し（ステップＳ１２２）、当該対象デバイス３００からのレスポンスパケットの受信を待つ（ステップＳ１２４）。
【０１７５】
検索装置１００は、対象デバイス３００からのレスポンスパケットを受信すると、受信したレスポンスパケットに含まれる検索結果をデータ検索クエリに対応する形式に成形し（ステップＳ１２６）、成形した検索結果をクエリ要求元に返信する（ステップＳ１２８）。なお、複数の受信したレスポンスパケットに対して、マージ処理やフィルタリング処理を行った上で、検索結果を生成するようにしてもよい。
【０１７６】
以上の処理によって、データ検索クエリに対する探索処理が完了する。
＜Ｇ．クエリ要求元＞
次に、本実施の形態に係る制御システム１に対してデータ検索クエリを生成および送信するクエリ要求元での処理例について説明する。
【０１７７】
（ｇ１：データ検索クエリの生成）
データ検索クエリの要求元において、データ検索クエリは任意の形態で生成できる。例えば、ユーザ指示に応じて、ＳＱＬ言語で記述されたデータ検索クエリを自動的に生成するようなアプリケーションプログラムを作成してもよい。このようなアプリケーションプログラムは、任意のプログラミング言語を用いて作成できる。
【０１７８】
また、任意のＳＱＬクエリを生成できるアプリケーションを用いて、ユーザが任意のデータ検索クエリを作成するようにしてもよい。この場合、検索装置１００と連携することで、プロファイルデータベース１０４に含まれる、構成情報１０４１、デバイスプロファイル１０４２、および索引１０４３の情報を参照して、データ検索クエリに記述可能な要素の一覧を表示できるようにしてもよい。この場合、ユーザが生成したデータ検索クエリに対する検索結果を当該アプリケーション上で表示するようにしてもよい。
【０１７９】
また、Ｗｅｂサーバ上に配置されたＨＴＭＬドキュメントをブラウザで表示するとともに、ユーザがブラウザを操作することで、ＲＥＳＴに準拠した形式で記述されたデータ検索クエリを生成するようにしてもよい。この場合、検索結果についても同一のブラウザ上に表示するようにしてもよい。
【０１８０】
（ｇ２：検索結果の利用）
検索装置１００がデータ検索クエリに応答して検索処理を実行することで得られる検索結果は、任意の形態で利用できる。
【０１８１】
例えば、検索結果を任意のアプリケーションを用いて表示または動作させることができる。例えば、Ｗｉｎｄｏｗｓ（登録商標）上で実行される任意のアプリケーションで利用することができる。
【０１８２】
さらに、Ｗｅｂアプリケーションとして実装してもよい。図１５および図１６は、本実施の形態に係る制御システム１を利用して提供されるＷｅｂアプリケーションの一例を説明するための図である。図１５を参照して、例えば、携帯端末あるいはパーソナルコンピュータ上で実行されるブラウザ７００から検索装置１００に対してリモートアクセスする。この場合、検索装置１００にはＷｅｂサーバ１１２が実装されており、Ｗｅｂサーバ１１２が提供するＨＴＭＬドキュメントがブラウザ７００で表示されてもよい。
【０１８３】
ユーザがブラウザ７００を操作することで、ブラウザ７００から検索装置１００には、ＲＥＳＴに準拠した形式で記述されたデータ検索クエリが送信される。検索装置１００がデータ検索クエリに応答して検索して得られた検索結果は、ブラウザ７００上に表示されてもよい（ＨＴＭＬドキュメント）。
【０１８４】
例えば、図１６（ａ）を参照して、検索装置１００のＷｅｂサーバ１１２からは、検索対象２のネットワーク構成を示す模式図が表示されるとともに、ユーザが任意のデバイスあるいは異常メッセージを選択すると、データ検索クエリの生成および検索処理が実行され、図１６（ｂ）に示すような形態でその検索結果を表示してもよい。
【０１８５】
なお、図１５に示す構成に代えて、Ｗｅｂサーバを検索装置１００とは異なる処理主体に配置してもよい。
【０１８６】
図１７は、本実施の形態に係る制御システム１を利用してＷｅｂアプリケーションを提供するための別の実装例を示す模式図である。図１７を参照して、例えば、検索対象２を統括するＰＬＣなどにＷｅｂサーバ７１０を配置するとともに、携帯端末あるいはパーソナルコンピュータ上で実行されるブラウザ７００からＷｅｂサーバ７１０に対してリモートアクセスする。Ｗｅｂサーバ７１０は、ブラウザ７００からのアクセスに応答して、要求されたデータ検索クエリを生成する。例えば、データ検索クエリはＪＳＯＮ形式で生成されてもよい。
【０１８７】
このデータ検索クエリに対して、検索装置１００は、検索処理を実行し、その検索結果をＪＳＯＮ形式で応答する。Ｗｅｂサーバ７１０は、検索装置１００からの検索結果に基づいてＨＴＭＬドキュメントを生成し、ブラウザ７００へ送信するようにしてもよい。
【０１８８】
データ検索クエリの生成方法および検索結果の利用形態については、上述したものに限られず、任意の方法および形態を採用できる。
【０１８９】
＜Ｈ．その他の形態＞
上述の実施の形態においては、検索装置１００が一連の処理を実行する構成について説明したが、これに限られず、検索装置１００が実行する処理を複数の処理主体で分散して実行するようにしてもよい。例えば、データ検索クエリの解析処理とリクエストパケットの生成処理とを異なる処理主体で実行してもよい。この場合、データ検索クエリの解析処理は、ネットワーク上のクラウドコンピュータで実行し、その解析結果に基づいて、検索対象２とネットワーク接続された検索装置がリクエストパケットを実際に対象デバイス３００に送信するようにしてもよい。
【０１９０】
あるいは、検索対象２とネットワーク接続された検索装置がデータ検索クエリを解析し、その解析結果に基づいて、検索対象２内の任意のＰＬＣがリクエストパケットを対象デバイス３００に送信するようにしてもよい。
【０１９１】
これに限られず、検索対象２の構成または規模などに応じて、本実施の形態に係る検索機能は任意の形態で実装できる。
【０１９２】
また、本実施の形態に係る検索機能は、既存のＰＬＣあるいはデバイスに対して、事後的にプログラムを追加する形で実装することもできる。この場合、事後的に追加されるプログラムが本発明の対象となり得る。
【０１９３】
＜Ｉ．付記＞
上述したような本実施の形態は、以下のような技術思想を含む。
［構成１］
少なくとも１つのデバイス（３００）からなる制御システム（１）であって、
前記制御システムのデバイスの接続関係を含む構成情報（１０４１）、および、各デバイスの特性を示す情報を含むデバイスプロファイル（１０４２）を保持するデータベース（１０４）と、
外部からのデータ検索クエリ（６００）に応答して、前記データベースを参照して、当該データ検索クエリからリクエストパケット（４００）を生成して対象デバイスへ送信するとともに、当該対象デバイスからのレスポンスパケット（４５０）を受信する通信処理部（１０８）と、
前記通信処理部により受信されたレスポンスパケットに含まれる検索結果を前記データ検索クエリに対応する形式に成形する成形部（１１０）とを備える、制御システム。
［構成２］
前記通信処理部は、前記構成情報を参照して、前記対象デバイスの接続位置に到達するために前記リクエストパケットを生成する、構成１に記載の制御システム。
［構成３］
前記通信処理部は、前記構成情報を参照して、前記対象デバイスまでの経路を特定するとともに、特定した経路に対応するプロトコルに応じたパケットを生成する、構成１または２に記載の制御システム。
［構成４］
前記通信処理部は、前記対象デバイスまでの経路に応じてそれぞれ生成されるパケット（４０２，４０４，４０６）をカプセル化して前記リクエストパケットを生成する、構成３に記載の制御システム。
［構成５］
前記通信処理部は、前記デバイスプロファイルを参照して、前記対象デバイスから前記データ検索クエリにより指定されたデータを収集するためのコマンド（４０８）を前記リクエストパケットに含める、構成１〜４のいずれか１項に記載の制御システム。
［構成６］
前記通信処理部は、前記データ検索クエリにおいて指定された検索条件に相当する命令を含む前記コマンドを生成する、構成５に記載の制御システム。
［構成７］
前記データベースは、前記制御システムに含まれる各デバイスの状態値を示す情報（１０４３）をさらに保持しており、
前記通信処理部は、各デバイスの状態値を示す情報を参照して、前記データ検索クエリにおいて指定された検索条件に合致するデバイスを特定する、構成１〜６のいずれか１項に記載の制御システム。
［構成８］
前記データ検索クエリは、ＳＱＬ言語またはＲＥＳＴに準拠した形式で記述されている、構成１に記載の制御システム。
［構成９］
少なくとも１つのデバイス（３００）からなる制御システムに接続される検索装置（１００）であって、
前記制御システムのデバイスの接続関係を含む構成情報（１０４１）、および、各デバイスの特性を示す情報を含むデバイスプロファイル（１０４２）を保持するデータベース（１０４）と、
外部からのデータ検索クエリ（６００）に応答して、前記データベースを参照して、当該データ検索クエリからリクエストパケット（４００）を生成して対象デバイスへ送信するとともに、当該対象デバイスからのレスポンスパケット（４５０）を受信する通信処理部（１０８）と、
前記通信処理部により受信されたレスポンスパケットに含まれる検索結果を前記データ検索クエリに対応する形式に成形する成形部（１１０）とを備える、検索装置。
［構成１０］
少なくとも１つのデバイスからなる制御システム（１）に接続されるコンピュータ（１００）で実行される検索プログラム（１５６０）であって、前記コンピュータに、
前記制御システムのデバイスの接続関係を含む構成情報（１０４１）、および、各デバイスの特性を示す情報を含むデバイスプロファイル（１０４２）をデータベース（１０４）に保持するステップと、
外部からのデータ検索クエリ（６００）に応答して、前記データベースを参照して、当該データ検索クエリからリクエストパケット（４００）を生成して対象デバイスへ送信するとともに、当該対象デバイスからのレスポンスパケット（４５０）を受信するステップ（Ｓ１０２〜Ｓ１２４）と、
前記受信されたレスポンスパケットに含まれる検索結果を前記データ検索クエリに対応する形式に成形するステップ（Ｓ１２６）とを実行させる、検索プログラム。
【０１９４】
＜Ｊ．利点＞
本実施の形態に係る制御システムによれば、ＳＱＬ言語やＲＥＳＴに準拠した形式といった一般的な形式のデータ検索クエリを与えるだけで、対象デバイスに向けられるリクエストパケットが生成される。このように生成されるリクエストパケットを制御システム内で送信することによって、制御システム内の任意のデバイスの任意の情報を収集できる。
【０１９５】
データ検索クエリの要求元から見れば、制御システム内のネットワークトポロジやプロトコルの相違などを意識することなく、任意の条件に合致するデバイスから、任意のデータを収集できる。これによって、汎用的なアプリケーションに利用できる。
【０１９６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１９７】
１  制御システム、２  検索対象、１００  検索装置、１０２  インターフェイス、１０４  プロファイルデータベース、１０６  クエリ処理部、１０８  通信処理部、１１０  データ成形部、１１２，７１０  Ｗｅｂサーバ、１５２  プロセッサ、１５４  メインメモリ、１５６  ストレージ、１５８  上位ネットワークコントローラ、１６０  入力部、１６２  表示部、１６４  下位ネットワークコントローラ、１６６  メモリカードインターフェイス、１６８  メモリカード、１７０  プロセッサバス、２００  ＰＬＣ、３００  デバイス、３０２  作業領域、３０４  プロファイル、３０６  データソース、４００，４２０，４２０Ａ  リクエストパケット、４０２，４２２  第１経路用パケット、４０４，４２４  第２経路用パケット、４０６  第３経路用パケット、４０８，４２６，４２８  コマンド、４１２，４１３，４１４，４１５，４１６，４１７，４１８，４１９，４３２，４３３，４３４，４３５，４３５Ａ，４３６，４３７，４３８  解析処理、４５０  レスポンスパケット、５００，５１０  ネットワーク階層設定、５０２，５１２  第１経路、５０４，５１４  第２経路、５０６  第３経路、６００，６０２，６１０，６１２，６２０，６２２，６３０，６３２  データ検索クエリ、６５０  検索結果、７００  ブラウザ、７３０  ユーザインターフェイス、１０２１  クエリ入力部、１０２２  結果出力部、１０４１  構成情報、１０４２  デバイスプロファイル、１０４３  索引、１０８１  ジョブ管理部、１０８２  ジョブ処理部、１５６０  検索プログラム、１５６２  システムプログラム。
【図１】
2020013223.tif 000003
【図２】
2020013223.tif 000004
【図３】
2020013223.tif 000005
【図４】
2020013223.tif 000006
【図５】
2020013223.tif 000007
【図６】
2020013223.tif 000008
【図７】
2020013223.tif 000009
【図８】
2020013223.tif 000010
【図９】
2020013223.tif 000011
【図１０】
2020013223.tif 000012
【図１１】
2020013223.tif 000013
【図１２】
2020013223.tif 000014
【図１３】
2020013223.tif 000015
【図１４】
2020013223.tif 000016
【図１５】
2020013223.tif 000017
【図１６】
2020013223.tif 000018
【図１７】
2020013223.tif 000019