(57)【要約】【課題】複数のプロトコルを含み多階層化されたネットワークシステムであっても、ネットワークシステムにおけるデバイスの接続関係を容易に取得できる仕組みを提供する。【解決手段】マスタ処理部と１または複数のスレーブ処理部とからなるネットワークを少なくとも１つ含むネットワークシステムが提供される。第１のデバイス、第２のデバイス、および、第３のデバイスの各々は、各デバイスがマスタ処理部またはスレーブ処理部を有しているか否かを示す固有情報を保持している。第１のデバイスは、ネットワークシステムに含まれるマスタ処理部の各々から単階層ネットワーク構成情報を取得することで、ネットワークシステムにおけるデバイスの接続関係を示す多階層ネットワーク構成情報を生成するネットワーク管理手段を含む。【選択図】図３
2019134219.tif 000002
【特許請求の範囲】
【請求項１】
マスタ処理部と１または複数のスレーブ処理部とからなるネットワークを少なくとも１つ含むネットワークシステムであって、
前記マスタ処理部を有する第１のデバイスと、
前記マスタ処理部および前記スレーブ処理部を有する第２のデバイスと、
前記スレーブ処理部を有する第３のデバイスとを備え、
前記第１のデバイス、前記第２のデバイス、および、前記第３のデバイスの各々は、各デバイスが前記マスタ処理部または前記スレーブ処理部を有しているか否かを示す固有情報を保持しており、
前記マスタ処理部の各々は、自身が管理するネットワークに接続されている１または複数の前記スレーブ処理部の各々から前記固有情報を取得して、各ネットワークに接続されているデバイスの情報を示す単階層ネットワーク構成情報を生成するデバイス探索手段を備え、
前記第１のデバイスは、前記ネットワークシステムに含まれるマスタ処理部の各々から単階層ネットワーク構成情報を取得することで、前記ネットワークシステムにおけるデバイスの接続関係を示す多階層ネットワーク構成情報を生成するネットワーク管理手段を備える、ネットワークシステム。
【請求項２】
前記ネットワーク管理手段は、
前記第１のデバイスのマスタ処理部が生成する単階層ネットワーク構成情報を参照して、前記第１のデバイスが管理する第１のネットワークに接続された第２のデバイスを特定し、
前記特定された第２のデバイスのマスタ処理部が生成する単階層ネットワーク構成情報を参照して、前記特定された第２のデバイスが管理する第２のネットワークについての単階層ネットワーク構成情報を取得する、請求項１に記載のネットワークシステム。
【請求項３】
前記ネットワーク管理手段は、前記第２のネットワークについての単階層ネットワーク構成情報を参照して、前記第２のネットワークに接続された第２のデバイスを特定し、
前記特定された第２のデバイスのマスタ処理部が生成する単階層ネットワーク構成情報を参照して、前記特定された第２のデバイスが管理する第３のネットワークについての単階層ネットワーク構成情報を取得する、請求項２に記載のネットワークシステム。
【請求項４】
前記ネットワーク管理手段は、各ネットワークに存在する第２のデバイスの位置に基づいて、前記ネットワークシステムに含まれるマスタ処理部からそれぞれ取得した単階層ネットワーク構成情報を関連付けることで、前記多階層ネットワーク構成情報を生成する、請求項２または３に記載のネットワークシステム。
【請求項５】
前記固有情報は、予め定められたフォーマットに従って、各デバイスがサポートしているプロトコルの種別を示す情報と、マスタ処理部の有無を示す情報と、ネットワーク管理手段の有無を示す情報とを含む、請求項１〜４のいずれか１項に記載のネットワークシステム。
【請求項６】
前記ネットワーク管理手段は、単階層ネットワーク構成情報を取得すべき対象のマスタ処理部までの経路に存在するネットワークのプロトコルに応じて、単階層ネットワーク構成情報を取得するためのコマンドをカプセル化して送信する、請求項１〜５のいずれか１項に記載のネットワークシステム。
【請求項７】
前記ネットワーク管理手段は、予め設定された探索範囲設定により規定された範囲で、前記ネットワークシステムに含まれるデバイスを探索する、請求項１〜６のいずれか１項に記載のネットワークシステム。
【請求項８】
前記ネットワークシステムは、前記第１のデバイスを複数備えており、
前記ネットワーク管理手段は、他の第１のデバイスが備えられているネットワーク管理手段を認識すると、当該認識したネットワーク管理手段に対して、当該認識したネットワーク管理手段により生成される多階層ネットワーク構成情報を要求する、請求項１〜７のいずれか１項に記載のネットワークシステム。
【請求項９】
前記ネットワーク管理手段は、外部装置からの要求に応答して、生成した多階層ネットワーク構成情報を応答する、請求項１〜８のいずれか１項に記載のネットワークシステム。
【請求項１０】
マスタ処理部と１または複数のスレーブ処理部とからなるネットワークを少なくとも１つ含むネットワークシステムにおける制御方法であって、前記ネットワークシステムは、前記マスタ処理部を有する第１のデバイスと、前記マスタ処理部および前記スレーブ処理部を有する第２のデバイスと、前記スレーブ処理部を有する第３のデバイスとを備え、
前記第１のデバイス、前記第２のデバイス、および、前記第３のデバイスの各々は、各デバイスが前記マスタ処理部または前記スレーブ処理部を有しているか否かを示す固有情報を保持しており、
前記制御方法は、
前記マスタ処理部の各々が自身が管理するネットワークに接続されている１または複数の前記スレーブ処理部の各々から前記固有情報を取得して、各ネットワークに接続されているデバイスの情報を示す単階層ネットワーク構成情報を生成するステップと、
前記第１のデバイスが前記ネットワークシステムに含まれるマスタ処理部の各々から単階層ネットワーク構成情報を取得することで、前記ネットワークシステムにおけるデバイスの接続関係を示す多階層ネットワーク構成情報を生成するステップとを備える、制御方法。
【請求項１１】
マスタ処理部と１または複数のスレーブ処理部とからなるネットワークを少なくとも１つ含むネットワークシステムに利用される制御装置であって、
前記制御装置は、前記マスタ処理部を有しており、
前記ネットワークシステムは、前記マスタ処理部および前記スレーブ処理部を有する第１のデバイスと、前記スレーブ処理部を有する第２のデバイスとを備え、
前記制御装置、前記第１のデバイス、および、前記第２のデバイスの各々は、各々が前記マスタ処理部または前記スレーブ処理部を有しているか否かを示す固有情報を保持しており、
前記マスタ処理部の各々は、自身が管理するネットワークに接続されている１または複数の前記スレーブ処理部の各々から前記固有情報を取得して、各ネットワークに接続されているデバイスの情報を示す単階層ネットワーク構成情報を生成するデバイス探索手段を備え、
前記制御装置は、前記ネットワークシステムに含まれるマスタ処理部の各々から単階層ネットワーク構成情報を取得することで、前記ネットワークシステムにおけるデバイスの接続関係を示す多階層ネットワーク構成情報を生成するネットワーク管理手段を備える、制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＡ（Factory Automation）用のデバイスが複数接続されたネットワークシステムに関する。
【背景技術】
【０００２】
近年の情報通信技術（ＩＣＴ：Information and Communication Technology）の進歩に伴って、ＦＡの技術分野においても、複数の制御デバイスからなる大規模なネットワークシステムが実現されつつある。
【０００３】
複数階層を有するネットワークシステムにおいては、目的のデバイスにデータを伝送するためのルーティングが必要となる。例えば、特開平０５−１８１５１３号公報（特許文献１）は、多層化構造に接続されたＰＣのリンクシステムにおける状態データの伝送経路を自動的に特定することにより経路の特定を容易化する構成を開示する。
【０００４】
また、ネットワークシステムが大規模化すると、デバイスの接続関係やトポロジを取得するための手間が増加し得る。このような課題に対して、国際公開第２０１４／１４３１０４号（特許文献２）は、通信ネットワークで接続された複数のプログラマブルコントローラそれぞれの接続情報を円滑に取得することができる制御システムを開示する。
【０００５】
また、ＦＡ用のネットワークシステムにおいては、階層毎に異なるプロトコルが用いられることもある。国際公開第２０１４／１８１４３２号（特許文献３）は、制御機器毎にプロトコルが異なる場合に、回線データを用いて各制御機器のエラー解析を行うことができないという課題に対する解決手段を提供する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０５−１８１５１３号公報
【特許文献２】国際公開第２０１４／１４３１０４号
【特許文献３】国際公開第２０１４／１８１４３２号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＦＡ用のネットワークシステムは、より多くのデバイスが接続され、さらに多階層化することが想定されている。このような多階層化されたネットワークシステムであっても、デバイスの接続関係やトポロジなどを容易に取得できる仕組みが要望されている。上述の特許文献１および特許文献２に開示される技術においては、異なるプロトコルへの対応が想定されておらず、また、特許文献３に開示される技術においては、プログラマブル表示器に、制御機器毎のプロトコルに関する情報がプロファイル化されたプロファイルデータを配置しなければならず、柔軟性が低いといった課題がある。
【０００８】
本発明は、複数のプロトコルを含み多階層化されたネットワークシステムであっても、ネットワークシステムにおけるデバイスの接続関係を容易に取得できる仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明のある実施の形態に従えば、マスタ処理部と１または複数のスレーブ処理部とからなるネットワークを少なくとも１つ含むネットワークシステムが提供される。ネットワークシステムは、マスタ処理部を有する第１のデバイスと、マスタ処理部およびスレーブ処理部を有する第２のデバイスと、スレーブ処理部を有する第３のデバイスとを含む。第１のデバイス、第２のデバイス、および、第３のデバイスの各々は、各デバイスがマスタ処理部またはスレーブ処理部を有しているか否かを示す固有情報を保持している。マスタ処理部の各々は、自身が管理するネットワークに接続されている１または複数のスレーブ処理部の各々から固有情報を取得して、各ネットワークに接続されているデバイスの情報を示す単階層ネットワーク構成情報を生成するデバイス探索手段を含む。第１のデバイスは、ネットワークシステムに含まれるマスタ処理部の各々から単階層ネットワーク構成情報を取得することで、ネットワークシステムにおけるデバイスの接続関係を示す多階層ネットワーク構成情報を生成するネットワーク管理手段を含む。
【００１０】
この開示によれば、各デバイスが保有する固有情報を各ネットワークのマスタ処理部が取得し、さらに、それぞれ取得される固有情報を取得して多階層ネットワーク構成情報が生成される。このような多階層ネットワーク構成情報の生成処理は、第１のデバイス内で完結されるので、多階層ネットワーク構成情報の生成処理自体および多階層ネットワーク構成情報を利用したアクセス処理を高速化できる。
【００１１】
上述の開示において、ネットワーク管理手段は、第１のデバイスのマスタ処理部が生成する単階層ネットワーク構成情報を参照して、第１のデバイスが管理する第１のネットワークに接続された第２のデバイスを特定し、特定された第２のデバイスのマスタ処理部が生成する単階層ネットワーク構成情報を参照して、特定された第２のデバイスが管理する第２のネットワークについての単階層ネットワーク構成情報を取得してもよい。
【００１２】
この開示によれば、ネットワークシステムに複数のネットワークが階層的に配置されている場合であっても、マスタ処理部を目的として順次ネットワークを探索できる。
【００１３】
上述の開示において、ネットワーク管理手段は、第２のネットワークについての単階層ネットワーク構成情報を参照して、第２のネットワークに接続された第２のデバイスを特定し、特定された第２のデバイスのマスタ処理部が生成する単階層ネットワーク構成情報を参照して、特定された第２のデバイスが管理する第３のネットワークについての単階層ネットワーク構成情報を取得してもよい。
【００１４】
この開示によれば、ネットワークシステムのネットワークが多層化されている場合であっても、各階層のネットワークを順次探索できる。
【００１５】
上述の開示において、ネットワーク管理手段は、各ネットワークに存在する第２のデバイスの位置に基づいて、ネットワークシステムに含まれるマスタ処理部からそれぞれ取得した単階層ネットワーク構成情報を関連付けることで、多階層ネットワーク構成情報を生成してもよい。
【００１６】
この開示によれば、ネットワークシステムにおいてマスタ処理部から分岐する新たなネットワークの構成を反映した多階層ネットワーク構成情報を生成できる。
【００１７】
上述の開示において、固有情報は、予め定められたフォーマットに従って、各デバイスがサポートしているプロトコルの種別を示す情報と、マスタ処理部の有無を示す情報と、ネットワーク管理手段の有無を示す情報とを含んでいてもよい。
【００１８】
この開示によれば、各デバイスが保有する固有情報が共通のフォーマットに従って生成されるので、各マスタ処理部による単階層ネットワーク構成情報の生成処理、および、１または複数の単階層ネットワーク構成情報を用いて生成される多階層ネットワーク構成情報の生成処理を簡素化かつ高速化できる。
【００１９】
上述の開示において、ネットワーク管理手段は、単階層ネットワーク構成情報を取得すべき対象のマスタ処理部までの経路に存在するネットワークのプロトコルに応じて、単階層ネットワーク構成情報を取得するためのコマンドをカプセル化して送信してもよい。
【００２０】
この開示によれば、ネットワークシステム内に複数のプロトコルが存在している場合であっても、プロトコルの相違に影響を受けることなく、任意のデバイスにコマンドを送信できる。
【００２１】
上述の開示において、ネットワーク管理手段は、予め設定された探索範囲設定により規定された範囲で、ネットワークシステムに含まれるデバイスを探索してもよい。
【００２２】
この開示によれば、ネットワーク管理手段同士の競合を回避でき、また、ネットワークシステム内の特定範囲に探索範囲を制限することで処理の高速化を実現できる。
【００２３】
上述の開示において、ネットワークシステムは、第１のデバイスを複数有しており、ネットワーク管理手段は、他の第１のデバイスが備えられているネットワーク管理手段を認識すると、当該認識したネットワーク管理手段に対して、当該認識したネットワーク管理手段により生成される多階層ネットワーク構成情報を要求してもよい。
【００２４】
この開示によれば、ネットワーク管理手段間の競合を回避しつつ、効率的に多階層ネットワーク構成情報を生成できる。
【００２５】
上述の開示において、ネットワーク管理手段は、外部装置からの要求に応答して、生成した多階層ネットワーク構成情報を応答するようにしてもよい。
【００２６】
この開示によれば、第１のデバイスだけではなく、外部装置においても多階層ネットワーク構成情報を利用できる。
【００２７】
本発明のある実施の形態に従えば、マスタ処理部と１または複数のスレーブ処理部とからなるネットワークを少なくとも１つ含むネットワークシステムにおける制御方法が提供される。ネットワークシステムは、マスタ処理部を有する第１のデバイスと、マスタ処理部およびスレーブ処理部を有する第２のデバイスと、スレーブ処理部を有する第３のデバイスとを含む。第１のデバイス、第２のデバイス、および、第３のデバイスの各々は、各デバイスがマスタ処理部またはスレーブ処理部を有しているか否かを示す固有情報を保持している。制御方法は、マスタ処理部の各々が自身が管理するネットワークに接続されている１または複数のスレーブ処理部の各々から固有情報を取得して、各ネットワークに接続されているデバイスの情報を示す単階層ネットワーク構成情報を生成するステップと、第１のデバイスがネットワークシステムに含まれるマスタ処理部の各々から単階層ネットワーク構成情報を取得することで、ネットワークシステムにおけるデバイスの接続関係を示す多階層ネットワーク構成情報を生成するステップとを含む。
【００２８】
本発明のある実施の形態に従えば、マスタ処理部と１または複数のスレーブ処理部とからなるネットワークを少なくとも１つ含むネットワークシステムに利用される制御装置が提供される。制御装置は、マスタ処理部を有している。ネットワークシステムは、マスタ処理部およびスレーブ処理部を有する第１のデバイスと、スレーブ処理部を有する第２のデバイスとを含む。制御装置、第１のデバイス、および、第２のデバイスの各々は、各々がマスタ処理部またはスレーブ処理部を有しているか否かを示す固有情報を保持している。マスタ処理部の各々は、自身が管理するネットワークに接続されている１または複数のスレーブ処理部の各々から固有情報を取得して、各ネットワークに接続されているデバイスの情報を示す単階層ネットワーク構成情報を生成するデバイス探索手段を含む。制御装置は、ネットワークシステムに含まれるマスタ処理部の各々から単階層ネットワーク構成情報を取得することで、ネットワークシステムにおけるデバイスの接続関係を示す多階層ネットワーク構成情報を生成するネットワーク管理手段を含む。
【発明の効果】
【００２９】
本発明のある実施の形態によれば、複数のプロトコルを含み多階層化されたネットワークシステムであっても、ネットワークシステムにおけるデバイスの接続関係を容易に取得できる仕組みを提供できる。
【図面の簡単な説明】
【００３０】
【図１】本実施の形態に係るネットワークシステムの全体構成例を示す模式図である。
【図２】本発明の関連技術に係るネットワークシステムにおけるネットワーク構成におけるアクセス処理を説明するための模式図である。
【図３】本実施の形態に係るネットワークシステムにおける多階層ネットワーク構成情報の生成処理を説明するための模式図である。
【図４】本実施の形態に係るネットワークシステムに含まれるコントローラのハードウェア構成例を示す模式図である。
【図５】本実施の形態に係るネットワークシステムに含まれるマスタデバイスのハードウェア構成例を示す模式図である。
【図６】本実施の形態に係るネットワークシステムに含まれるマスタデバイスのハードウェア構成例を示す模式図である。
【図７】本実施の形態に係るネットワークシステムに含まれるスレーブデバイスのハードウェア構成例を示す模式図である。
【図８】本実施の形態に係るネットワークシステムに含まれるスレーブデバイスのハードウェア構成例を示す模式図である。
【図９】本実施の形態に係るネットワークシステムにおいて利用される固有情報の一例を示す図である。
【図１０】本実施の形態に係るネットワークシステムのマスタ処理部による構成情報の生成手順を説明するための模式図である。
【図１１】本実施の形態に係るネットワークシステムのマスタ処理部により生成された構成情報の一例を示す模式図である。
【図１２】本実施の形態に係るネットワークシステムにおける多階層ネットワーク構成情報の生成処理の一例を説明するための図である。
【図１３】図１２に示す多階層ネットワーク構成情報の生成処理に係るシーケンス図である。
【図１４】本実施の形態に係るネットワークシステムにおける多階層ネットワーク構成情報の生成処理の別の一例を説明するための図である。
【図１５】本実施の形態に係るネットワークシステムにおける多階層ネットワーク構成情報の生成処理における競合を回避するための方法を説明するための図である。
【図１６】本実施の形態に係るネットワークシステムにおけるネットワークリソースマネジャによる多階層ネットワーク構成情報の生成処理の処理手順を示すフローチャートである。
【図１７】図１６のステップＳ６に示す第Ｎ階層のデバイス探索処理の処理手順を示すフローチャートである。
【図１８】図１７のステップＳ６３に示す単階層ネットワーク構成情報取得処理の処理手順を示すフローチャートである。
【図１９】図１７のステップＳ６５に示す多階層ネットワーク構成情報取得処理の処理手順を示すフローチャートである。
【図２０】本実施の形態に係るネットワークシステムにおけるマスタ処理部による多階層ネットワーク構成情報の生成処理に係る処理手順を示すフローチャートである。
【図２１】本実施の形態に係るネットワークシステムにおけるカプセル化による通信コマンドの送信方法を説明するための図である。
【図２２】本実施の形態に係るネットワークシステムの複数を集中管理する場合の構成例を示す模式図である。
【図２３】本実施の形態に係るネットワークシステムに設定される対象範囲の一例を示す。
【図２４】本実施の形態に係るネットワークシステムにおける対象範囲の設定方法の一例を説明するための図である。
【発明を実施するための形態】
【００３１】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００３２】
＜Ａ．適用例＞
まず、図１〜図３を参照して、本発明が適用される場面の一例について説明する。
【００３３】
図１は、本実施の形態に係るネットワークシステム１の全体構成例を示す模式図である。図１を参照して、ネットワークシステム１は、設備や生産装置といった任意の制御対象を制御する制御装置を含む。ネットワークシステム１は、コントローラ１００と、１または複数のマスタデバイス２００，４００と、１または複数のスレーブデバイス３００，５００とを含む。
【００３４】
コントローラ１００は、任意のアプリケーションプログラムを実行可能な制御装置である。コントローラ１００は、１または複数のネットワークマスタ処理を実行可能である。本明細書において、「ネットワークマスタ処理」は、対象のネットワーク（基本的には、単一の階層）におけるデータ伝送や接続状態などを管理するための処理を包含する用語である。ネットワークマスタ処理を実現するための、ハードウェアおよび／またはソフトウェアにより実装される部分を「マスタ処理部」とも称する。コントローラ１００は、マスタ処理部を有するデバイスに相当する。基本的には、各マスタ処理部は、ネットワークポートを含んでおり、各ネットワークポートに接続されるネットワーク上に存在するデバイスによるデータ伝送などを管理する。
【００３５】
スレーブデバイス３００，５００は、少なくとも１つのネットワークスレーブ処理を実行可能である。本明細書において、「ネットワークスレーブ処理」は、「ネットワークマスタ処理」と対になる処理であり、接続されているネットワークのマスタ処理部の管理下で実行されるデータ伝送などの処理を包含する用語である。ネットワークスレーブ処理を実現するための、ハードウェアおよび／またはソフトウェアにより実装される部分を「スレーブ処理部」とも称する。スレーブデバイス３００，５００は、スレーブ処理部を有するデバイスに相当する。基本的には、各スレーブ処理部は、ネットワークポートを含む。
【００３６】
スレーブデバイス３００とスレーブデバイス５００とは、機能面では、実質的に同一であるが、その構造が異なっている。スレーブデバイス３００は、独立型であり、他のスレーブデバイス３００から独立してネットワークに接続することができる。スレーブデバイス５００は、ユニット型であり、他のスレーブデバイス５００と連結することができる。これらの異なる構造のスレーブデバイス３００，５００は、要求や状況に応じて、適宜選択されることになる。
【００３７】
マスタデバイス２００，４００は、スレーブ処理部に加えて、さらにマスタ処理部を有している。すなわち、マスタデバイス２００，４００は、マスタ処理部およびスレーブ処理部を有するデバイスに相当する。通常、マスタデバイス２００，４００は、１または複数のスレーブ処理部と、１または複数のマスタ処理部とを含む。マスタデバイス２００とマスタデバイス４００とは、機能面では、実質的に同一であるが、その構造が異なっている。マスタデバイス２００は、独立型であり、他のマスタデバイス２００から独立してネットワークに接続することができる。マスタデバイス４００は、ユニット型であり、他のマスタデバイス４００と連結することができる。これらの異なる構造のマスタデバイス２００，４００は、要求や状況に応じて、適宜選択されることになる。なお、マスタデバイス２００には、ユニット型のマスタデバイス４００および／またはスレーブデバイス５００を接続することができる。
【００３８】
このように、ネットワークシステム１は、マスタ処理部と１または複数のスレーブ処理部とからなるネットワークを少なくとも１つ含む。
【００３９】
ネットワークシステム１においては、コントローラ１００は、マスタ処理部１０２に含まれるポートから延びるローカルバス４を介して、複数のスレーブデバイス５００およびマスタデバイス４００と接続されている。スレーブデバイス５００の各々は、スレーブ処理部５０２を有しており、マスタデバイス４００は、スレーブ処理部４０２を有している。
【００４０】
コントローラ１００は、さらに、マスタ処理部１０４に含まれるポートから延びるフィールドネットワーク６を介して、マスタデバイス２００および複数のスレーブデバイス３００と接続されている。マスタデバイス２００は、スレーブ処理部２０４を有しており、マスタデバイス４００の各々は、スレーブ処理部４０２を有している。
【００４１】
一例として、コントローラ１００とマスタデバイス４００およびスレーブデバイス５００とは、ローカルバス４を介してデイジーチェーン接続されている。デイジーチェーン接続を実現するために、ローカルバス４を介してデータがシリアル伝送される。すなわち、ローカルバス４には、シリアル伝送に適したプロトコルが用いられる。
【００４２】
一方、コントローラ１００と、マスタデバイス２００およびスレーブデバイス３００とを接続するフィールドネットワーク６には、データの到着時刻を保証する産業用ネットワークプロトコルが用いられる。このような産業用ネットワークプロトコルとして、例えば、ＥｔｈｅｒＣＡＴ（登録商標）を採用してもよい。もちろん、ＥｔｈｅｒＣＡＴに限られることなく、例えば、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＤｅｖｉｃｅＮｅｔ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）、ＰＲＯＦＩＢＵＳ（登録商標）、ＰＲＯＦＩＮＥＴ（登録商標）などを採用してもよい。
【００４３】
フィールドネットワーク６に接続されるマスタデバイス２００は、マスタ処理部２０２に含まれるポートから延びるローカルバス８を介して、複数のスレーブデバイス５００と接続されている。スレーブデバイス５００の各々は、スレーブ処理部５０２を有している。
【００４４】
ローカルバス４に接続されるマスタデバイス４００は、マスタ処理部４０４に含まれるポートから延びるフィールドネットワーク１０を介して、マスタデバイス２００および複数のスレーブデバイス３００と接続されている。マスタデバイス２００は、スレーブ処理部２０４を有しており、スレーブデバイス３００の各々は、スレーブ処理部３０４を有している。
【００４５】
フィールドネットワーク１０に接続されるマスタデバイス２００は、マスタ処理部２０２に含まれるポートから延びるローカルバス４を介して、複数のスレーブデバイス５００と接続されている。スレーブデバイス５００の各々は、スレーブ処理部５０２を有している。
【００４６】
本明細書において、「ネットワーク」は、ローカルバス４，８，１２およびフィールドネットワーク６，１０に加えて、任意のデータ伝送経路を含む用語である。すなわち、「ネットワーク」は、伝送媒体、伝送形態、プロトコルなどにかかわらず、ネットワークシステムの任意のデバイスから到達可能な経路をすべて包含する用語である。
【００４７】
図１に示すネットワークシステム１においては、コントローラ１００は、上位ネットワークコントローラ１０６を有しており、上位ネットワークコントローラ１０６を介して上位ネットワーク２に接続されている。
【００４８】
上位ネットワーク２には、ＨＭＩ（Human Machine Interface）デバイス６００およびサポート装置７００が接続されている。
【００４９】
ＨＭＩデバイス６００は、ユーザ操作を受付けるとともに、ユーザに対してネットワークシステム１が管理する情報を提示する装置である。典型的には、ＨＭＩデバイス６００は、コントローラ１００に対して任意のコマンドを与えるとともに、コントローラ１００が管理している状態データなどを取得して表示することができる。さらに、ＨＭＩデバイス６００は、ネットワークシステム１を構成する任意のデバイスへアクセスするとともに、当該アクセス先のデバイス状態をモニタリングができる（詳細については、後述する）。
【００５０】
サポート装置７００は、コントローラ１００で実行されるアプリケーションプログラムを作成するための機能を提供する。さらに、サポート装置７００は、ネットワークシステム１を構成する任意のデバイスへアクセスするとともに、当該アクセス先のデバイスに対するデバイス設定の転送、および、当該アクセス先のデバイス状態をモニタリングができる（詳細については、後述する）。
【００５１】
以上のように、コントローラ１００から見ると、上位ネットワーク２、ローカルバス４、および、フィールドネットワーク６の３つのネットワーク階層（第１階層）と、ローカルバス８およびフィールドネットワーク１０の２つのネットワーク階層（第２階層）と、ローカルバス１２（第３階層）との合計３階層のネットワークが存在することになる。
【００５２】
このような多階層化されたネットワークシステムの構成情報を取得する方法について説明する。以下の説明においては、特定の階層のネットワーク（すなわち、単一のネットワーク）についての構成情報を、「単階層ネットワーク構成情報」、あるいは、単に「構成情報」とも称す。一方、多階層化されたネットワークシステム全体の構成情報を「多階層ネットワーク構成情報」とも称す。すなわち、対象のネットワークシステムが複数のネットワーク階層を有している場合には、多階層ネットワーク構成情報は、実質的に、複数の単階層ネットワーク構成情報を含むことになる。
【００５３】
説明の簡素化のため、以下の説明においては、特段の断りなく「構成情報」と記載した場合には「単階層ネットワーク構成情報」を意味するものとする。
【００５４】
図２は、本発明の関連技術に係るネットワークシステム１Ｘにおけるネットワーク構成におけるアクセス処理を説明するための模式図である。図２に示すネットワークシステム１Ｘは、コントローラ１００Ｘと、複数のスレーブデバイス５００Ｘと、マスタデバイス２００Ｘ，４００Ｘとを含む。図２に示すネットワークシステム１Ｘは、図１に示すネットワークシステム１と同様のトポロジを有している。
【００５５】
図２に示すネットワークシステム１Ｘにおいては、コントローラ１００Ｘのマスタ処理部１０２Ｘ，１０４Ｘ、マスタデバイス４００のマスタ処理部４０４Ｘ、および、マスタデバイス２００Ｘのマスタ処理部２０２Ｘは、本実施の形態に係るマスタ処理部１０２，１０４，２０２，４０４と比較すると、各ネットワークについての構成情報の内容および生成方法が異なっている。
【００５６】
本発明の関連技術においては、各マスタ処理部１０２Ｘ，１０４Ｘ，２０２Ｘ，４０４Ｘは、対象のネットワークに接続されている各デバイスから形式情報を取得して、各ネットワークの構成情報を生成する。形式情報は、各デバイスの種別（製品型式など）を示す情報を含む。
【００５７】
各マスタ処理部は、構成情報を参照して、自身が管理するネットワークに接続されているデバイスへのアクセスを制御する。
【００５８】
例えば、コントローラ１００ＸとＨＭＩデバイス６００を介して接続されているＨＭＩデバイス６００Ｘがいずれかのデバイスにアクセスする処理を考える。この場合、ＨＭＩデバイス６００Ｘは、コントローラ１００Ｘのマスタ処理部１０２Ｘが保持している構成情報を取得し、その取得した構成情報を解析することで各デバイスを認識する。そして、ＨＭＩデバイス６００Ｘは、認識結果に基づいて、目的のデバイスへアクセスして、アクセス先のデバイス状態をモニタリングする。
【００５９】
あるいは、コントローラ１００Ｘの任意のアプリケーションがいずれかのデバイスにアクセスする処理を考える。この場合も同様に、コントローラ１００Ｘのアプリケーションは、マスタ処理部１０２Ｘが保持している構成情報に基づいて、目的のデバイスへ任意の指示を送信し、あるいは、目的のデバイスから任意の情報を取得する。
【００６０】
このような各デバイスの形式情報からなる構成情報を利用する方法では、多階層化されたネットワークシステムへの対応が難しい。図２には、一例として、３階層のネットワークシステムの末端に位置するスレーブデバイス５００Ｘへのアクセスする場合の処理手順が示されている。
【００６１】
まず、ＨＭＩデバイス６００Ｘは、コントローラ１００Ｘのマスタ処理部１０２Ｘが保持している構成情報（第１階層の構成情報）を取得して解析することで、マスタ処理部１０２Ｘが管理するローカルバス４上のデバイスを特定する（図２の（１））。この解析において、ＨＭＩデバイス６００Ｘは、各デバイスの形式情報に基づいてマスタ処理部を有するデバイスの有無を判断する。
【００６２】
図２に示す例においては、ローカルバス４上のマスタデバイス４００Ｘがマスタ処理部を有していると認識され、ＨＭＩデバイス６００Ｘは、マスタデバイス４００Ｘのマスタ処理部４０４Ｘが保持している構成情報（第２階層の構成情報）を取得して解析することで、マスタ処理部４０４Ｘが管理するフィールドネットワーク１０上のデバイスを特定する（図２の（２））。
【００６３】
図２に示す例においては、フィールドネットワーク１０上のマスタデバイス２００Ｘがマスタ処理部を有していると認識され、ＨＭＩデバイス６００Ｘは、マスタデバイス２００Ｘのマスタ処理部２０２Ｘが保持している構成情報（第３階層の構成情報）を取得して解析することで、マスタ処理部４０４Ｘが管理するローカルバス１２上のデバイスを特定する（図２の（３））。
【００６４】
最終的に、ＨＭＩデバイス６００Ｘは、ローカルバス１２上のスレーブデバイス５００Ｘを認識し、その認識したスレーブデバイス５００Ｘへアクセスしてデバイス状態をモニタリングする。
【００６５】
上述のようなＨＭＩデバイス６００Ｘによる構成情報の取得および解析による方法では、以下のような課題がある。
【００６６】
すなわち、マスタ処理部の有無を各デバイスの形式情報に基づいて判断するため、新たな種別のユニットが開発されるたびに、ＨＭＩデバイス６００Ｘにおける解析ロジックを更新する必要が生じる。
【００６７】
また、異なる階層のネットワークにアクセスするたびに構成情報を解析する必要があり、多階層化されたネットワークシステムであるほど、構成情報の取得および解析に時間を要して、応答性が低い。
【００６８】
次に、コントローラ１００Ｘの任意のアプリケーションが別階層のネットワークに存在するいずれかのデバイスにアクセスする処理を考える。コントローラ１００Ｘのマスタ処理部１０２Ｘは、自身が管理するローカルバス４上に存在するデバイスは特定できるものの、型式情報だけでは、いずれかのデバイスにマスタ処理部が存在しているか否かを判断できない。また、アプリケーション自身が型式情報に基づいて各デバイスにおけるマスタ処理部の有無を判断するようにした場合には、上述のＨＭＩデバイス６００Ｘの場合と同様に、新たな種別のユニットが開発されるたびに、解析ロジックを更新する必要が生じる。
【００６９】
なお、コントローラ１００Ｘにおいて、形式毎にマスタ処理部を有するデバイスであるか否かを示すテーブルをハードコーディングすることもできるが、この場合には、新たなデバイスに対応するためのテーブル更新が難しい。
【００７０】
上述したような課題に対して、本実施の形態においては、マスタ処理部を有しているか否かの情報を含む固有情報を各デバイスに配置するとともに、各マスタ処理部は、自身が管理するネットワーク上に存在する各デバイスから固有情報を取得し、構成情報を生成する。このように生成された構成情報を参照することで、いずれかのデバイスから別の階層のネットワークが接続されているのかといったトポロジを容易に認識できる。
【００７１】
図３は、本実施の形態に係るネットワークシステム１における多階層ネットワーク構成情報の生成処理を説明するための模式図である。図３を参照して、本実施の形態に係るネットワークシステム１において、コントローラ１００は、ネットワークリソースマネジャ（Network Resource Manager；以下、「ＮＲＭ」とも記す。）１４０を有している。ネットワークリソースマネジャ１４０は、ネットワークシステム１に含まれるマスタ処理部から構成情報を取得して、多階層ネットワーク構成情報１４２を生成する。多階層ネットワーク構成情報１４２は、対象のネットワークシステム１内のトポロジを含めた各デバイスの接続関係を示す情報を含む。
【００７２】
本実施の形態においては、各マスタ処理部１０２，１０４，２０２，４０４は、対象のネットワークに接続されている各デバイスから固有情報を取得して、各ネットワークの構成情報を生成する。固有情報は、少なくとも、各デバイスがマスタ処理部またはスレーブ処理部を有しているか否かを示す情報を含む。すなわち、コントローラ１００、マスタデバイス２００，４００、および、スレーブデバイス３００，５００は、各々の固有情報を保持している。このような固有情報を取得して構成情報を生成することで、コントローラ１００またはマスタデバイス２００，４００は、自身が管理するネットワーク上のマスタデバイスを一意に特定できる。固有情報の詳細については、後述する。
【００７３】
ネットワークリソースマネジャ１４０は、ネットワークシステム１の各マスタデバイス（マスタ処理部）に対して、構成情報取得コマンドを送信する。ネットワークリソースマネジャ１４０は、マスタ処理部からの構成情報に基づいて、階層的にマスタ処理部を探索する。このように、各マスタ処理部が管理するネットワーク上に他のマスタ処理部が存在しなくなるまで、構成情報取得コマンドの送信が繰返される。
【００７４】
このような構成情報取得コマンドおよび転送といった一連の処理によって、ネットワークシステム１に存在する各マスタ処理部により生成された構成情報は、ネットワークリソースマネジャ１４０に送信されることになる。ネットワークリソースマネジャ１４０は、取得した各マスタ処理部からの構成情報を集約して、多階層ネットワーク構成情報１４２を生成する。
【００７５】
ＨＭＩデバイス６００は、ネットワークリソースマネジャ１４０が生成および保持する多階層ネットワーク構成情報１４２にアクセスして、その内容を表示するとともに、多階層ネットワーク構成情報１４２に基づいて、目的のデバイスにアクセスする。なお、図示していないが、サポート装置７００についても、ＨＭＩデバイス６００と同様の機能を有していてもよい。
【００７６】
なお、ネットワークリソースマネジャ１４０は、コントローラ１００に加えて、別のデバイスに配置されてもよい。
【００７７】
本実施の形態に係るネットワークシステム１によれば、ネットワークリソースマネジャ１４０がネットワークシステム１に含まれるすべてのマスタ処理部から構成情報をそれぞれ取得することで、多階層ネットワーク構成情報１４２を生成する。マスタ処理部は、初期化処理などのネットワーク構成を認識する際に構成情報を生成する。そのため、各構成情報は、多階層ネットワーク構成情報１４２を生成する際には既に生成されているため、上述の関連技術のように、ネットワーク構成の情報を反復的に取得する必要はない。その結果、多階層ネットワーク構成情報１４２の生成に要する時間を短縮できる。
【００７８】
また、本実施の形態に係るネットワークシステム１によれば、各デバイスが保持する固有情報を取得することで、必要な情報を収集できるので、コントローラ１００やＨＭＩデバイス６００における解析ロジックの更新などが必要ない。そのため、新たな種別のユニットが開発されたとしても、当該新たな種別のユニットの固有情報と既存のユニットの固有情報との間でフォーマットを共通化しておけば、汎用性や互換性などの問題は生じない。
【００７９】
＜Ｂ．ネットワークシステム１に含まれるデバイスのハードウェア構成例＞
次に、本実施の形態に係るネットワークシステム１に含まれる各デバイスのハードウェア構成の一例について説明する。
【００８０】
（ｂ１：コントローラ１００）
図４は、本実施の形態に係るネットワークシステム１に含まれるコントローラ１００のハードウェア構成例を示す模式図である。図４を参照して、コントローラ１００は、ローカルバス４のマスタ処理部１０２、フィールドネットワーク６のマスタ処理部１０４および上位ネットワークコントローラ１０６に加えて、プロセッサ１１２と、メインメモリ１１４と、ストレージ１１６と、ＵＳＢ（Universal Serial Bus）コントローラ１１８と、メモリカードインターフェイス１２０とを含む。これらのコンポーネントは、プロセッサバス１３０を介して接続されている。
【００８１】
プロセッサ１１２は、制御演算などを実行する演算処理部に相当し、ＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）などで構成される。具体的には、プロセッサ１１２は、ストレージ１１６に格納されたプログラム（一例として、システムプログラム１１６０およびアプリケーションプログラム１１６２）を読出して、メインメモリ１１４に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。
【００８２】
メインメモリ１１４は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などの揮発性記憶装置などで構成される。ストレージ１１６は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などの不揮発性記憶装置などで構成される。
【００８３】
ストレージ１１６には、基本的な機能を実現するためのシステムプログラム１１６０に加えて、設備や機械などの制御対象に応じて作成されるアプリケーションプログラム１１６２が格納される。ストレージ１１６には、さらに、コントローラ１００のデバイス種別などを示す形式情報１１６４およびコントローラ１００が有しているネットワーク通信機能などを示す固有情報１１６６が格納される。
【００８４】
さらに、ストレージ１１６には、ネットワークリソースマネジャ（ＮＲＭ）プログラム１１６８が格納される。ネットワークリソースマネジャプログラム１１６８は、ネットワークリソースマネジャ１４０を実現するためのプログラムである。プロセッサ１１２がネットワークリソースマネジャプログラム１１６８を実行することで、ネットワークリソースマネジャ１４０を実現するための処理が提供される。
【００８５】
上位ネットワークコントローラ１０６は、上位ネットワーク２を介して、ＨＭＩデバイス６００やサポート装置７００（図１参照）といった任意の情報処理装置との間でデータを遣り取りする。
【００８６】
ＵＳＢコントローラ１１８は、ＵＳＢ接続を介して、サポート装置７００などとの間でデータを遣り取りする。
【００８７】
メモリカードインターフェイス１２０は、着脱可能な記録媒体の一例であるメモリカード１２２を受付ける。メモリカードインターフェイス１２０は、メモリカード１２２に対してデータを書込み、メモリカード１２２から各種データ（設定データやトレースデータなど）を読出すことが可能になっている。
【００８８】
ローカルバス４のマスタ処理部１０２は、ローカルバス４上のデータ伝送に関するネットワークマスタ処理を実行する。より具体的には、マスタ処理部１０２は、マスタコントローラ１０２０と、送信回路（ＴＸ）１０２４および受信回路（ＲＸ）１０２６を含むローカルバス通信ポート１０２Ｐと、バッファメモリ１０２８とを含む。
【００８９】
ローカルバス通信ポート１０２Ｐには、ローカルバス４が電気的に接続される。送信回路１０２４は、コントローラ１００からローカルバス４を介して伝送すべきデータを含む通信フレームを生成してローカルバス４上に送出する。受信回路１０２６は、ローカルバス４上を伝送する通信フレームを受信してそれに含まれるデータを再構成する。
【００９０】
バッファメモリ１０２８は、ローカルバス４を介して伝送されるデータを一時的に保持する。
【００９１】
マスタコントローラ１０２０は、ネットワークマスタ処理を提供するための処理部である。より具体的には、マスタコントローラ１０２０は、デバイス探索モジュール１０２２を有している。デバイス探索モジュール１０２２がローカルバス４に接続されているデバイスの状態データを取得して構成情報１０２１を生成する。マスタコントローラ１０２０は、構成情報１０２１に基づいてローカルバス４上のデータ伝送のタイミングや順序などを制御する。
【００９２】
また、フィールドネットワーク６のマスタ処理部１０４は、フィールドネットワーク６上のデータ伝送に関するネットワークマスタ処理を実行する。より具体的には、マスタ処理部１０４は、マスタコントローラ１０４０と、送信回路（ＴＸ）１０４４および受信回路（ＲＸ）１０４６を含むネットワークポート１０４Ｐと、バッファメモリ１０４８とを含む。
【００９３】
ネットワークポート１０４Ｐには、フィールドネットワーク６が電気的に接続される。送信回路１０４４は、コントローラ１００からフィールドネットワーク６を介して伝送すべきデータを含む通信フレームを生成してフィールドネットワーク６上に送出する。受信回路１０４６は、フィールドネットワーク６上を伝送する通信フレームを受信してそれに含まれるデータを再構成する。
【００９４】
バッファメモリ１０４８は、フィールドネットワーク６を介して伝送されるデータを一時的に保持する。
【００９５】
マスタコントローラ１０４０は、ネットワークマスタ処理を提供するための処理部である。より具体的には、マスタコントローラ１０４０は、デバイス探索モジュール１０４２を有している。デバイス探索モジュール１０４２がフィールドネットワーク６に接続されているデバイスの状態データを取得して構成情報１０４１を生成する。マスタコントローラ１０４０は、生成された構成情報１０４１に基づいてフィールドネットワーク６上のデータ伝送のタイミングや順序などを制御する。
【００９６】
図４には、プロセッサ１１２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）など）を用いて実装してもよい。あるいは、コントローラ１００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳ（Operating System）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。さらに、コントローラ１００にＨＭＩデバイス６００やサポート装置７００などの機能を統合した構成を採用してもよい。
【００９７】
（ｂ２：マスタデバイス２００）
図５は、本実施の形態に係るネットワークシステム１に含まれるマスタデバイス２００のハードウェア構成例を示す模式図である。図５を参照して、マスタデバイス２００は、ローカルバス８のマスタ処理部２０２およびフィールドネットワーク６のスレーブ処理部２０４に加えて、プロセッサ２１２と、メインメモリ２１４と、ストレージ２１６とを含む。これらのコンポーネントは、プロセッサバス２３０を介して接続されている。
【００９８】
プロセッサ２１２は、制御演算などを実行する演算処理部に相当し、ＣＰＵやＧＰＵなどで構成される。具体的には、プロセッサ２１２は、ストレージ２１６に格納されたプログラム（一例として、システムプログラム２１６０およびアプリケーションプログラム２１６２）を読出して、メインメモリ２１４に展開して実行することで、所定の制御処理を実現する。
【００９９】
メインメモリ２１４は、ＤＲＡＭやＳＲＡＭなどの揮発性記憶装置などで構成される。ストレージ２１６は、例えば、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）やフラッシュメモリなどの不揮発性記憶装置などで構成される。
【０１００】
ストレージ２１６には、基本的な機能を実現するためのシステムプログラム２１６０に加えて、設備や機械などの制御対象に応じて作成されるアプリケーションプログラム２１６２が格納される。ストレージ２１６には、さらに、マスタデバイス２００のデバイス種別などを示す形式情報２１６４およびマスタデバイス２００が有しているネットワーク通信機能などを示す固有情報２１６６が格納される。
【０１０１】
ローカルバス８のマスタ処理部２０２は、ローカルバス８上のデータ伝送に関するネットワークマスタ処理を実行する。より具体的には、マスタ処理部２０２は、マスタコントローラ２０２０と、送信回路（ＴＸ）２０２４および受信回路（ＲＸ）２０２６を含むローカルバス通信ポート２０２Ｐと、バッファメモリ２０２８とを含む。
【０１０２】
ローカルバス通信ポート２０２Ｐには、ローカルバス８が電気的に接続される。送信回路２０２４は、マスタデバイス２００からローカルバス８を介して伝送すべきデータを含む通信フレームを生成してローカルバス８上に送出する。受信回路２０２６は、ローカルバス８上を伝送する通信フレームを受信してそれに含まれるデータを再構成する。
【０１０３】
バッファメモリ２０２８は、ローカルバス８を介して伝送されるデータを一時的に保持する。
【０１０４】
マスタコントローラ２０２０は、ネットワークマスタ処理を提供するための処理部である。より具体的には、マスタコントローラ２０２０は、デバイス探索モジュール２０２２を有している。デバイス探索モジュール２０２２がローカルバス８に接続されているデバイスの状態データを取得して構成情報２０２１を生成する。マスタコントローラ２０２０は、生成された構成情報２０２１に基づいてローカルバス８上のデータ伝送のタイミングや順序などを制御する。
【０１０５】
また、フィールドネットワーク６のスレーブ処理部２０４は、フィールドネットワーク６上のデータ伝送に関するネットワークスレーブ処理を実行する。より具体的には、スレーブ処理部２０４は、スレーブコントローラ２０４０と、送信回路（ＴＸ）２０４４および受信回路（ＲＸ）２０４６を含むネットワークポート２０４Ｐ１と、バッファメモリ２０４８と、送信回路（ＴＸ）２０４５および受信回路（ＲＸ）２０４７を含むネットワークポート２０４Ｐ２とを含む。
【０１０６】
フィールドネットワーク６上を伝送される通信フレームは、ネットワークポート２０４Ｐ１とネットワークポート２０４Ｐ２との間で順次転送されることになる。すなわち、ネットワークポート２０４Ｐ１に到着した通信フレームは、ネットワークポート２０４Ｐ２から送出され、逆に、ネットワークポート２０４Ｐ２に到着した通信フレームは、ネットワークポート２０４Ｐ１から送出される。
【０１０７】
ネットワークポート２０４Ｐ１とネットワークポート２０４Ｐ２との間には、バッファメモリ２０４８が配置されており転送される通信フレームを保持するとともに、その一部または全部をスレーブコントローラ２０４０へ出力する。
【０１０８】
ネットワークポート２０４Ｐ１には、上流側デバイスから延びるフィールドネットワーク６が電気的に接続される。送信回路２０４４は、通信フレームを生成してフィールドネットワーク６上に送出し、受信回路２０４６は、フィールドネットワーク６上を伝送する通信フレームを受信してデータを再構成する。
【０１０９】
ネットワークポート２０４Ｐ２には、下流側デバイスへ繋がるフィールドネットワーク６が電気的に接続される。送信回路２０４５は、通信フレームを生成してフィールドネットワーク６上に送出し、受信回路２０４７は、フィールドネットワーク６上を伝送する通信フレームを受信してデータを再構成する。
【０１１０】
スレーブコントローラ２０４０は、ネットワークスレーブ処理を提供するための処理部である。より具体的には、スレーブコントローラ２０４０は、フィールドネットワーク６上を伝送される通信フレームのうち、予め指定された通信フレームに含まれる受信データを取得するとともに、送信すべきデータを予め指定された通信フレームに組み入れて送出する。
【０１１１】
図５には、プロセッサ２１２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【０１１２】
（ｂ３：マスタデバイス４００）
図６は、本実施の形態に係るネットワークシステム１に含まれるマスタデバイス４００のハードウェア構成例を示す模式図である。図６を参照して、マスタデバイス４００は、ローカルバス８のスレーブ処理部４０２およびフィールドネットワーク１０のマスタ処理部４０４に加えて、プロセッサ４１２と、メインメモリ４１４と、ストレージ４１６と、機能モジュール４２０とを含む。これらのコンポーネントは、プロセッサバス４３０を介して接続されている。
【０１１３】
プロセッサ４１２は、制御演算などを実行する演算処理部に相当し、ＣＰＵやＧＰＵなどで構成される。具体的には、プロセッサ４１２は、ストレージ４１６に格納されたプログラム（一例として、システムプログラム４１６０およびアプリケーションプログラム４１６２）を読出して、メインメモリ４１４に展開して実行することで、所定の制御処理を実現する。
【０１１４】
メインメモリ４１４は、ＤＲＡＭやＳＲＡＭなどの揮発性記憶装置などで構成される。ストレージ４１６は、例えば、ＥＥＰＲＯＭやフラッシュメモリなどの不揮発性記憶装置などで構成される。
【０１１５】
ストレージ４１６には、基本的な機能を実現するためのシステムプログラム４１６０に加えて、設備や機械などの制御対象に応じて作成されるアプリケーションプログラム４１６２が格納される。ストレージ４１６には、さらに、マスタデバイス４００のデバイス種別などを示す形式情報４１６４およびマスタデバイス４００が有しているネットワーク通信機能などを示す固有情報４１６６が格納される。
【０１１６】
また、ローカルバス４のスレーブ処理部４０２は、ローカルバス４上のデータ伝送に関するネットワークスレーブ処理を実行する。より具体的には、スレーブ処理部４０２は、スレーブコントローラ４０２０と、送信回路（ＴＸ）４０２４および受信回路（ＲＸ）４０２６を含むネットワークポート４０２Ｐ１と、バッファメモリ４０２８と、送信回路（ＴＸ）４０２５および受信回路（ＲＸ）４０２７を含むネットワークポート４０２Ｐ２とを含む。
【０１１７】
ローカルバス４上を伝送される通信フレームは、ネットワークポート４０２Ｐ１とネットワークポート４０２Ｐ２との間で順次転送されることになる。すなわち、ネットワークポート４０２Ｐ１に到着した通信フレームは、ネットワークポート４０２Ｐ２から送出され、逆に、ネットワークポート４０２Ｐ２に到着した通信フレームは、ネットワークポート４０２Ｐ１から送出される。
【０１１８】
ネットワークポート４０２Ｐ１とネットワークポート４０２Ｐ２との間には、バッファメモリ４０２８が配置されており転送される通信フレームを保持するとともに、その一部または全部をスレーブコントローラ４０２０へ出力する。
【０１１９】
ネットワークポート４０２Ｐ１には、上流側デバイスから延びるローカルバス４が電気的に接続される。送信回路４０２４は、通信フレームを生成してローカルバス４上に送出し、受信回路４０２６は、ローカルバス４上を伝送する通信フレームを受信してデータを再構成する。
【０１２０】
ネットワークポート４０２Ｐ２には、下流側デバイスへ繋がるローカルバス４が電気的に接続される。送信回路４０２５は、通信フレームを生成してローカルバス４上に送出し、受信回路４０２７は、ローカルバス４上を伝送する通信フレームを受信してデータを再構成する。
【０１２１】
スレーブコントローラ４０２０は、ネットワークスレーブ処理を提供するための処理部である。より具体的には、スレーブコントローラ４０２０は、ローカルバス４上を伝送される通信フレームのうち、予め指定された通信フレームに含まれる受信データを取得するとともに、送信すべきデータを組み入れた通信フレームを生成して送出する。
【０１２２】
また、フィールドネットワーク１０のマスタ処理部４０４は、フィールドネットワーク６上のデータ伝送に関するネットワークマスタ処理を実行する。より具体的には、マスタ処理部４０４は、マスタコントローラ４０４０と、送信回路（ＴＸ）４０４４および受信回路（ＲＸ）４０４６を含むネットワークポート４０４Ｐと、バッファメモリ４０４８とを含む。
【０１２３】
ネットワークポート４０４Ｐには、フィールドネットワーク１０が電気的に接続される。送信回路４０４４は、フィールドネットワーク１０を介して伝送すべきデータを含む通信フレームを生成してフィールドネットワーク１０上に送出する。受信回路４０４６は、フィールドネットワーク１０上を伝送する通信フレームを受信してそれに含まれるデータを再構成する。
【０１２４】
バッファメモリ４０４８は、フィールドネットワーク１０を介して伝送されるデータを一時的に保持する。
【０１２５】
マスタコントローラ４０４０は、ネットワークマスタ処理を提供するための処理部である。より具体的には、マスタコントローラ４０４０は、デバイス探索モジュール４０４２を有している。デバイス探索モジュール４０４２がフィールドネットワーク１０に接続されているデバイスの状態データを取得して構成情報４０４１を生成する。マスタコントローラ４０４０は、構成情報４０４１に基づいてフィールドネットワーク１０上のデータ伝送のタイミングや順序などを制御する。
【０１２６】
図６には、プロセッサ４１２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【０１２７】
（ｂ４：スレーブデバイス３００）
図７は、本実施の形態に係るネットワークシステム１に含まれるスレーブデバイス３００のハードウェア構成例を示す模式図である。図７に示すスレーブデバイス３００は、図５に示すマスタデバイス２００からマスタ処理部２０２を取り除いた構成と実質的に同一である。
【０１２８】
より具体的には、スレーブデバイス３００は、フィールドネットワーク６のスレーブ処理部３０４に加えて、プロセッサ３１２と、メインメモリ３１４と、ストレージ３１６とを含む。これらのコンポーネントは、プロセッサバス３３０を介して接続されている。
【０１２９】
ストレージ３１６には、システムプログラム３１６０と、アプリケーションプログラム３１６２と、形式情報３１６４と、固有情報３１６６とが格納される。
【０１３０】
スレーブ処理部３０４は、スレーブコントローラ３０４０と、送信回路（ＴＸ）３０４４および受信回路（ＲＸ）３０４６を含むネットワークポート３０４Ｐ１と、バッファメモリ３０４８と、送信回路（ＴＸ）３０４５および受信回路（ＲＸ）３０４７を含むネットワークポート３０４Ｐ２とを含む。
【０１３１】
各部の機能および動作などは、図５に示すマスタデバイス２００の対応する部分と同様であるので、詳細な説明は繰返さない。
【０１３２】
（ｂ５：スレーブデバイス５００）
図８は、本実施の形態に係るネットワークシステム１に含まれるスレーブデバイス５００のハードウェア構成例を示す模式図である。図８に示すスレーブデバイス５００は、図５に示すマスタデバイス４００からマスタ処理部４０４を取り除いた構成と実質的に同一である。
【０１３３】
より具体的には、スレーブデバイス５００は、ローカルバス４のスレーブ処理部５０２に加えて、プロセッサ５１２と、メインメモリ５１４と、ストレージ５１６とを含む。これらのコンポーネントは、プロセッサバス５３０を介して接続されている。
【０１３４】
ストレージ５１６には、システムプログラム５１６０と、アプリケーションプログラム５１６２と、形式情報５１６４と、固有情報５１６６とが格納される。
【０１３５】
スレーブ処理部５０２は、スレーブコントローラ５０２０と、送信回路（ＴＸ）５０２４および受信回路（ＲＸ）５０２６を含むネットワークポート５０２Ｐ１と、バッファメモリ５０２８と、送信回路（ＴＸ）５０２５および受信回路（ＲＸ）５０２７を含むネットワークポート５０２Ｐ２とを含む。
【０１３６】
各部の機能および動作などは、図５に示すスレーブデバイス３００の対応する部分と同様であるので、詳細な説明は繰返さない。
【０１３７】
＜Ｃ．固有情報および構成情報＞
次に、各デバイスが保持する固有情報１１６６，２１６６，３１６６，４１６６，５１６６に含まれる情報の一例、ならびに、固有情報から生成される構成情報の一例について説明する。
【０１３８】
固有情報の各々は、対応するデバイスが有しているネットワーク通信機能を示す。具体的には、固有情報は、いずれのネットワーク（プロトコル）をサポートしているのか、対応しているネットワーク（プロトコル）においてマスタ処理部として機能するのか、および、多階層ネットワーク構成情報の生成機能を有しているか、といった情報を含む。固有情報は、各デバイスのストレージなどの不揮発性記憶領域に格納される。
【０１３９】
図９は、本実施の形態に係るネットワークシステム１において利用される固有情報の一例を示す図である。図９には、コントローラ１００と、複数のスレーブデバイス５００と、マスタデバイス４００とからなる構成において、各デバイスが保持する固有情報１１６６，４１６６，５１６６の一例を示す。固有情報１１６６，４１６６，５１６６の各々は、予め定められたフォーマットに従って、必要な情報を提示する。本実施の形態においては、固有情報１１６６，４１６６，５１６６の各々は、ビット表現を用いて各種情報を表現する。
【０１４０】
固有情報１１６６，４１６６，５１６６の各々は、マスタフラグ１６６０と、標準ネットワークフラグ１６６１と、追加ネットワークフラグ１６６２，１６６３，１６６４，１６６５，１６６６（追加ネットワークフラグ群１６６７）と、ネットワークリソースマネジャフラグ１６６８とを含む。
【０１４１】
マスタフラグ（ＭＳＴ）１６６０は、マスタ処理部の有無を示す情報に相当する。すなわち、マスタフラグ１６６０は、追加ネットワークフラグ群１６６７に含まれるいずれかの追加ネットワークにおいてネットワークマスタ処理を実行するか否かを示す。マスタフラグ１６６０が「ＯＮ」であれば、当該デバイスが、いずれかの追加ネットワークにおいてマスタ処理部として機能する（すなわち、マスタデバイスである）ことを示す。
【０１４２】
標準ネットワークフラグ１６６１は、当該デバイスが主としてデータ伝送を行う標準ネットワークを示す。標準ネットワークフラグ１６６１は、通常「ＯＦＦ」に設定される。
【０１４３】
追加ネットワークフラグ群１６６７は、各デバイスがサポートしているプロトコルの種別を示す情報に相当する。具体的には、追加ネットワークフラグ群１６６７に含まれる追加ネットワークフラグ１６６２，１６６３，１６６４，１６６５，１６６６は、プロトコル別に用意されたものであり、当該デバイスが標準ネットワーク以外の追加ネットワークをサポートしている場合には、追加ネットワークフラグ群１６６７に含まれる対応する追加ネットワークフラグが「ＯＮ」に設定される。
【０１４４】
ネットワークリソースマネジャ（ＮＲＭ）フラグ１６６８は、ネットワークリソースマネジャ１４０の有無を示す情報に相当する。すなわち、ネットワークリソースマネジャフラグ１６６８は、当該デバイスが多階層ネットワーク構成情報の生成機能（詳細については、後述する）を有しているか否かを示す。ネットワークリソースマネジャフラグ１６６８が「ＯＮ」であれば、当該デバイスは、多階層ネットワーク構成情報を生成することができることを示す。
【０１４５】
図９に示す構成例において、コントローラ１００は、標準ネットワークとして、ローカルバス４を有している。コントローラ１００は、さらに、追加ネットワークとして、上位ネットワーク２およびフィールドネットワーク６を有している。そのため、コントローラ１００に対応する固有情報１１６６においては、それぞれの追加ネットワークに対応する、追加ネットワークフラグ１６６２および追加ネットワークフラグ１６６４が「ＯＮ」に設定されている。さらに、コントローラ１００は、フィールドネットワーク６においてマスタデバイスであるので、固有情報１１６６においては、マスタフラグ１６６０が「ＯＮ」に設定されている。後述するように、コントローラ１００は、多階層ネットワーク構成情報の生成機能を有しているので、固有情報１１６６においては、ネットワークリソースマネジャフラグ１６６８も「ＯＮ」に設定されている。
【０１４６】
マスタデバイス４００は、標準ネットワークとして、ローカルバス４を有している。マスタデバイス４００は、さらに、追加ネットワークとして、フィールドネットワーク１０を有している。そのため、マスタデバイス４００に対応する固有情報４１６６においては、対応する追加ネットワークフラグ４６６４が「ＯＮ」に設定されている。さらに、マスタデバイス４００は、フィールドネットワーク１０においてマスタデバイスであるので、固有情報４１６６においては、マスタフラグ１６６０が「ＯＮ」に設定されている。
【０１４７】
スレーブデバイス５００は、標準ネットワークとして、ローカルバス４を有しており、追加ネットワークは有していない。そのため、スレーブデバイス５００に対応する固有情報５１６６においては、標準ネットワークフラグ１６６１を除いて各フラグが「ＯＦＦ」のままになっている。
【０１４８】
なお、ネットワークポートを有していないものの、いずれかのネットワークを論理的にサポートするデバイスが存在する。このような論理的にネットワークをサポートする場合においても、当該サポートするネットワークシステムに対応する追加ネットワークフラグが「ＯＮ」に設定されてもよい。
【０１４９】
図１０は、本実施の形態に係るネットワークシステム１のマスタ処理部による構成情報の生成手順を説明するための模式図である。図１０を参照して、各ネットワークのマスタ処理部は、初期化処理などのネットワーク構成を認識する際には、対象のネットワークに接続されている各デバイスから固有情報を取得し、構成情報（構成情報１０２１，１０４１，２０２１，４０４１）を生成する。すなわち、マスタ処理部の各々（マスタコントローラ内のデバイス探索モジュール）は、自身が管理するネットワークに接続されている１または複数のスレーブ処理部の各々から固有情報を取得して、各ネットワークに接続されているデバイスの情報を示す構成情報（単階層ネットワーク構成情報）を生成する。
【０１５０】
より具体的には、コントローラ１００のマスタ処理部１０２は、ローカルバス４に接続されている各デバイスから固有情報を取得して、構成情報（図４に示す構成情報１０２１）を生成する。同様に、コントローラ１００のマスタ処理部１０４は、フィールドネットワーク６に接続されている各デバイスから固有情報を取得して、構成情報（図４に示す構成情報１０４１）を生成する。
【０１５１】
また、マスタデバイス４００のマスタ処理部４０４は、フィールドネットワーク１０に接続されている各デバイスから固有情報を取得して、構成情報（図６に示す構成情報４０４１）を生成する。
【０１５２】
図１１は、本実施の形態に係るネットワークシステム１のマスタ処理部により生成された構成情報の一例を示す模式図である。図１１を参照して、例えば、コントローラ１００のマスタ処理部１０２が生成する構成情報１０２１は、ローカルバス４に接続されるデバイスから取得されたそれぞれの固有情報を含む。
【０１５３】
マスタ処理部１０２は、構成情報１０２１を参照することで、自身が管理するネットワークに接続されるデバイスのうち、さらに別のネットワークを有しているデバイスを特定できる。このように、固有情報および構成情報を用いることで、あるネットワークから別のネットワークへの分岐の存在を容易に特定できる。
【０１５４】
このように、本実施の形態においては、マスタデバイスであるか否かを提示する固有情報を各デバイスが保持することで、例えば、マスタ処理部で実行されるアプリケーション自体で、マスタデバイスであるか否かを判断する必要がない。そのため、マスタ処理部において、各デバイスの形式情報からマスタデバイスであるか否かを判断するようなロジックを用意する必要がなく、汎用性および互換性を高めることができる。
【０１５５】
また、図１０および図１１に示すように、各マスタ処理部が保持している構成情報のフォーマットは、各マスタ処理部がサポートしているプロトコルの異同にかかわらず、統一されているため、汎用性を維持できる。
【０１５６】
＜Ｄ．多階層ネットワーク構成情報の生成処理＞
次に、本実施の形態に係るネットワークシステム１における多階層ネットワーク構成情報の生成処理について説明する。
【０１５７】
（ｄ１：生成処理の概要）
図１２は、本実施の形態に係るネットワークシステム１における多階層ネットワーク構成情報の生成処理の一例を説明するための図である。図１２（Ａ）に示すネットワーク構成に対して、図１２（Ｂ）に示すような多階層ネットワーク構成情報１４２が生成される。
【０１５８】
ネットワークリソースマネジャ１４０は、まず、コントローラ１００が保持している固有情報１１６６を取得して第０段階の多階層ネットワーク構成情報を生成する。続いて、ネットワークリソースマネジャ１４０は、生成した第０段階の多階層ネットワーク構成情報（固有情報１１６６）を参照して、第０段階の多階層ネットワーク構成情報に規定された各マスタ処理部に対して、構成情報取得コマンドを送信する。なお、マスタ処理部が規定されていなければ、構成情報取得コマンドの送信処理は行われない。
【０１５９】
このように、ネットワークリソースマネジャ１４０は、コントローラ１００のマスタ処理部１０２、０４が生成する構成情報（単階層ネットワーク構成情報）を参照して、コントローラ１００が管理するネットワーク（ローカルバス４およびフィールドネットワーク６）に接続されたマスタデバイス（マスタ処理部）を特定する。
【０１６０】
図１２に示す例においては、ネットワークリソースマネジャ１４０からマスタ処理部１０２およびマスタ処理部１０４に対して、それぞれ構成情報取得コマンドが送信される。その結果、ネットワークリソースマネジャ１４０は、マスタ処理部１０２が保持している構成情報１０２１およびマスタ処理部１０４が保持している構成情報１０４１を取得する。これらの取得された構成情報が次の階層、すなわち第１階層の多階層ネットワーク構成情報となる。
【０１６１】
このように、ネットワークリソースマネジャ１４０は、次の階層のネットワークにあるマスタデバイスのマスタ処理部が生成する構成情報（単階層ネットワーク構成情報）を参照して、当該マスタデバイスが管理する次の階層のネットワークについての構成情報（単階層ネットワーク構成情報）を取得する。
【０１６２】
図１２（Ｂ）に示すように、取得された第１階層の多階層ネットワーク構成情報（構成情報１０２１）は、第０階層の多階層ネットワーク構成情報（固有情報１１６６）の対応するマスタ処理部にネストされる。紙面の都合上、構成情報１０４１は図面に示されていないが、構成情報１０２１と同様に、第０階層の多階層ネットワーク構成情報（固有情報１１６６）の対応するマスタ処理部にネストされる。
【０１６３】
さらに、ネットワークリソースマネジャ１４０からマスタ処理部４０４に対して、構成情報取得コマンドが送信される。その結果、ネットワークリソースマネジャ１４０は、マスタ処理部４０４が保持している構成情報４０４１を取得する。この取得された構成情報が次の階層、すなわち第２階層の多階層ネットワーク構成情報となる。
【０１６４】
このように、ネットワークリソースマネジャ１４０は、次の階層のネットワークについての構成情報（単階層ネットワーク構成情報）を参照して、当該次の階層のネットワークに接続されたマスタデバイスを特定する。ネットワークリソースマネジャ１４０は、特定されたマスタデバイスが生成する構成情報（単階層ネットワーク構成情報）を参照して、当該特定されたマスタデバイスが管理するさらに次の階層のネットワークについての構成情報（単階層ネットワーク構成情報）を取得する。
【０１６５】
図１２（Ｂ）に示すように、取得された第２階層の多階層ネットワーク構成情報（構成情報４０４１）は、第１階層の多階層ネットワーク構成情報（構成情報１０２１）の対応するマスタ処理部にネストされる。
【０１６６】
さらに、ネットワークリソースマネジャ１４０からマスタ処理部２０２に対して、構成情報取得コマンドが送信される。その結果、ネットワークリソースマネジャ１４０は、マスタ処理部２０２が保持している構成情報２０２１を取得する。この取得された構成情報が次の階層、すなわち第３階層の多階層ネットワーク構成情報となる。図１２（Ｂ）に示すように、取得された第３階層の多階層ネットワーク構成情報（構成情報２０２１）は、第２階層の多階層ネットワーク構成情報（構成情報４０４１）の対応するマスタ処理部にネストされる。
【０１６７】
このように、ネットワークリソースマネジャ１４０は、ネットワーク上にマスタ処理部が存在しなくなるまで、構成情報取得コマンドを繰返し送信し、自身のデバイス（この場合には、コントローラ１００）内に多階層ネットワーク構成情報１４２を生成する。すなわち、コントローラ１００のネットワークリソースマネジャ１４０は、ネットワークシステム１に含まれるマスタ処理部の各々から構成情報（単階層ネットワーク構成情報）を取得することで、ネットワークシステム１におけるデバイスの接続関係を示す多階層ネットワーク構成情報１４２を生成する。
【０１６８】
また、ネットワークリソースマネジャ１４０は、各ネットワークに存在するマスタデバイスの位置に基づいて、ネットワークシステム１に含まれるマスタ処理部からそれぞれ取得した構成情報を関連付ける（すなわち、構成情報間をネストする）ことで、多階層ネットワーク構成情報１４２を生成する。
【０１６９】
なお、ネットワーク間でプロトコルが異なっている場合もあるため、構成情報取得コマンドは、カプセル化されて、複数のネットワーク間で伝送されてもよい。このようなカプセル化の処理については、後に詳述する。
【０１７０】
以上のような手順によって、多階層ネットワーク構成情報１４２が生成されるが、デバイスの追加または離脱などによって、ネットワーク構成が変更されることもある。そのため、ネットワークリソースマネジャ１４０は、構成情報変化取得コマンドを定期的に各マスタ処理部へ送信するようにしてもよい。このような定期的な構成情報変化取得コマンドの送信によって、いくらかの遅延はあるものの、多階層ネットワーク構成情報１４２をネットワーク構成変化に追従させることができる。
【０１７１】
図１３は、図１２に示す多階層ネットワーク構成情報の生成処理に係るシーケンス図である。図１３を参照して、マスタ処理部は、初期化処理などにおいて、自身が管理するネットワーク上のデバイスを探索し、自ネットワークの多階層ネットワーク構成情報を生成する。これらの多階層ネットワーク構成情報は、予め定められた共通のフォーマットに従って生成される。
【０１７２】
より具体的には、コントローラ１００のマスタ処理部１０２は、自身が管理するローカルバス４上に存在するデバイス（スレーブ処理部４０２，５０２）の各々から固有情報を取得し（シーケンスＳＱ２）、構成情報１０２１を生成する（シーケンスＳＱ４）。
【０１７３】
同様に、マスタデバイス４００のマスタ処理部４０４は、自身が管理するフィールドネットワーク１０上に存在するデバイス（スレーブ処理部２０４，３０４）の各々から固有情報を取得し（シーケンスＳＱ４）、構成情報４０４１を生成する（シーケンスＳＱ６）。
【０１７４】
同様に、マスタデバイス２００のマスタ処理部２０２は、自身が管理するローカルバス１２上に存在するデバイス（スレーブ処理部５０２）の各々から固有情報を取得し（シーケンスＳＱ１０）、構成情報２０２１を生成する（シーケンスＳＱ１２）。
【０１７５】
そして、ネットワークリソースマネジャ１４０は、多階層ネットワーク構成情報の生成コマンドを受信すると（シーケンスＳＱ２０）、自デバイス（コントローラ１００）から固有情報１１６６を取得して第０階層の多階層ネットワーク構成情報を生成する（シーケンスＳＱ２２）。
【０１７６】
続いて、ネットワークリソースマネジャ１４０は、第０階層の多階層ネットワーク構成情報を参照して、第１階層のマスタ処理部の存在を特定するとともに、当該特定されるマスタ処理部１０２に対して、構成情報取得コマンドを送信する（シーケンスＳＱ２４）。ネットワークリソースマネジャ１４０は、構成情報取得コマンドに対して応答される構成情報１０２１を取得し（シーケンスＳＱ２６）、当該取得した構成情報１０２１を第１階層の多階層ネットワーク構成情報として追加する（シーケンスＳＱ２８）。
【０１７７】
続いて、ネットワークリソースマネジャ１４０は、第１階層の多階層ネットワーク構成情報を参照して、第２階層のマスタ処理部の存在を特定するとともに、当該特定されるマスタ処理部４０４に対して、構成情報取得コマンドを送信する（シーケンスＳＱ３０）。ネットワークリソースマネジャ１４０は、構成情報取得コマンドに対して応答される構成情報４０４１を取得し（シーケンスＳＱ３２）、当該取得した構成情報４０４１を第２階層の多階層ネットワーク構成情報として追加する（シーケンスＳＱ３４）。
【０１７８】
続いて、ネットワークリソースマネジャ１４０は、第２階層の多階層ネットワーク構成情報を参照して、第３階層のマスタ処理部の存在を特定するとともに、当該特定されるマスタ処理部２０２に対して、構成情報取得コマンドを送信する（シーケンスＳＱ３６）。ネットワークリソースマネジャ１４０は、構成情報取得コマンドに対して応答される構成情報２０２１を取得し（シーケンスＳＱ３８）、当該取得した構成情報２０２１を第３階層の多階層ネットワーク構成情報として追加する（シーケンスＳＱ４０）。
【０１７９】
図１２に示す例においては、第３階層より下位の階層は存在しないので、この時点で、多階層ネットワーク構成情報１４２が生成されることになる。
【０１８０】
（ｄ２：複数のネットワークリソースマネジャが存在する場合の処理：その１）
ネットワークシステムには、複数のコントローラが含まれることがあり、各コントローラにはネットワークリソースマネジャ１４０がそれぞれ配置される。このような場合には、ネットワークリソースマネジャ１４０同士の競合を避けるための処理を採用してもよい。
【０１８１】
以下、ネットワークシステムに複数のネットワークリソースマネジャ１４０が存在する場合の多階層ネットワーク構成情報１４２の生成方法について説明する。
【０１８２】
図１４は、本実施の形態に係るネットワークシステム１における多階層ネットワーク構成情報の生成処理の別の一例を説明するための図である。図１４（Ａ）に示すネットワークシステム１においては、複数のコントローラ１００−１，１００−２を含む。
【０１８３】
コントローラ１００−２は、マスタデバイス４００（マスタ処理部４０４）から延びるフィールドネットワーク１０上のスレーブとして接続されている。すなわち、コントローラ１００−２は、フィールドネットワーク１０に接続されるスレーブ処理部４０２を有している。
【０１８４】
コントローラ１００−２のマスタ処理部１０２から延びるローカルバス１４には、マスタデバイス４００が接続されており、マスタデバイス４００のマスタ処理部１０４から延びるフィールドネットワーク１８にはマスタデバイス２００（スレーブ処理部２０４）が接続されている。さらに、マスタデバイス２００のマスタ処理部２０２には、ローカルバス２０が接続されている。
【０１８５】
コントローラ１００−１，１００−２は、それぞれネットワークリソースマネジャ１４０−１，１４０−２を有している。
【０１８６】
図１４（Ａ）に示すようなネットワークシステムの構成においては、コントローラ１００−１のネットワークリソースマネジャ１４０−１およびコントローラ１００−２のネットワークリソースマネジャ１４０−２は、それぞれ多階層ネットワーク構成情報１４２−１，１４２−２を生成する。
【０１８７】
より具体的には、図１４（Ｂ）に示すように、コントローラ１００−１のネットワークリソースマネジャ１４０−１は、コントローラ１００−１が保持している固有情報１１６６を取得して多階層ネットワーク構成情報１４２−１の第０段階の多階層ネットワーク構成情報を生成する。以下同様にして、ネットワークリソースマネジャ１４０−１は、各マスタ処理部に対して、構成情報取得コマンドを順次送信するとともに、多階層ネットワーク構成情報１４２−１を更新していく。
【０１８８】
同様に、コントローラ１００−２のネットワークリソースマネジャ１４０−２は、コントローラ１００−２が保持している固有情報１１６６を取得して多階層ネットワーク構成情報１４２−２の第０段階の多階層ネットワーク構成情報を生成する。以下同様にして、ネットワークリソースマネジャ１４０−２は、各マスタ処理部に対して、構成情報取得コマンドを順次送信するとともに、多階層ネットワーク構成情報１４２−２を更新していく。
【０１８９】
図１４に示すネットワークシステム１においては、マスタデバイス４００のマスタ処理部４０４から延びるフィールドネットワーク１８上にコントローラ１００−２が存在している。そのため、コントローラ１００−１のネットワークリソースマネジャ１４０−１は、第２階層の多階層ネットワーク構成情報（構成情報４０４１）を取得した際に、ネットワークリソースマネジャフラグ１６６８が「ＯＮ」に設定されたデバイスを認識する。
【０１９０】
このような場合、その認識されたデバイスのネットワークリソースマネジャがそれ以降の階層についての多階層ネットワーク構成情報を生成するはずである。そのため、コントローラ１００−１のネットワークリソースマネジャ１４０−１は、構成情報を取得するための構成情報取得コマンドではなく、多階層ネットワーク構成情報取得コマンドを、ネットワークリソースマネジャ１４０−２を有しているデバイスに送信する。そして、ネットワークリソースマネジャ１４０−１は、多階層ネットワーク構成情報取得コマンドに対して応答される多階層ネットワーク構成情報を、第２階層の多階層ネットワーク構成情報（構成情報４０４１）のネットワークリソースマネジャを有するデバイスにネストする。
【０１９１】
図１４に示すネットワークシステム１は、複数のマスタデバイス有しており、このような環境下において、あるマスタデバイスのネットワークリソースマネジャ１４０は、他のマスタデバイスのネットワークリソースマネジャ１４０を認識すると、当該認識したネットワークリソースマネジャ１４０に対して、当該認識したネットワークリソースマネジャ１４０により生成される多階層ネットワーク構成情報を要求する。このような処理を採用することで、同一のネットワークシステムに複数のネットワークリソースマネジャが含まれる場合であっても、ネットワークリソースマネジャによる探索処理を競合させることなく、それぞれのネットワークリソースマネジャによって生成される多階層ネットワーク構成情報を互いに結合することで、ネットワークシステム全体の多階層ネットワーク構成情報を生成できる。
【０１９２】
上述したような競合を回避するような処理を採用することで、より効率的に、多階層ネットワーク構成情報を生成できる。
【０１９３】
（ｄ３：複数のネットワークリソースマネジャが存在する場合の処理：その２）
上述の説明においては、各ネットワークリソースマネジャ１４０が他のネットワークリソースマネジャ１４０の存在を認識することで、競合を回避する方法を示したが、各ネットワークリソースマネジャ１４０に対して探索範囲を予め設定するようにしてもよい。
【０１９４】
図１５は、本実施の形態に係るネットワークシステム１における多階層ネットワーク構成情報の生成処理における競合を回避するための方法を説明するための図である。図１５に示すネットワークシステム１は、３つのコントローラ１００−１，１００−２，１００−３を含む。各コントローラは、ネットワークリソースマネジャ１４０−１，１４０−２，１４０−３を有している。
【０１９５】
図１５に示すネットワークシステム１においては、ネットワークリソースマネジャ１４０−１，１４０−２，１４０−３の各々に対して探索範囲設定１４４−１，１４４−２，１４４−３が与えられている。
【０１９６】
探索範囲設定１４４−１は、コントローラ１００−１からコントローラ１００−２が管理するネットワーク上のデバイスの探索は許容されているが、コントローラ１００−１からコントローラ１００−３が管理するネットワーク上のデバイスの探索は許容されていないことを示す。
【０１９７】
また、探索範囲設定１４４−２は、コントローラ１００−２からコントローラ１００−１，１００−３が管理するネットワーク上のデバイスの探索は許容されていないことを示す。同様に、探索範囲設定１４４−３は、コントローラ１００−３からコントローラ１００−１，１００−２が管理するネットワーク上のデバイスの探索は許容されていないことを示す。
【０１９８】
探索範囲設定１４４−１，１４４−２，１４４−３を採用することで、図１５に示すように、互いに競合しないような探索範囲１〜３を論理的に設定することができる。
【０１９９】
図１５に示すように、ネットワークリソースマネジャ１４０は、予め設定された探索範囲設定により規定された範囲で、ネットワークシステム１に含まれるデバイスを探索するようにしてもよい。このような処理を採用することで、ネットワークシステム１に存在する各ネットワークリソースマネジャ１４０に対して、探索および管理する範囲を予め設定することで、多階層ネットワーク構成情報の生成処理における競合を抑制できる。なお、探索範囲設定１４４は、ＨＭＩデバイス６００やサポート装置７００で実行されるアプリケーションによって、動的に設定されてもよい。
【０２００】
（ｄ４：処理手順：ネットワークリソースマネジャ１４０）
次に、本実施の形態に係るネットワークシステム１における多階層ネットワーク構成情報の生成処理の処理手順について説明する。
【０２０１】
図１６は、本実施の形態に係るネットワークシステム１におけるネットワークリソースマネジャ１４０による多階層ネットワーク構成情報の生成処理の処理手順を示すフローチャートである。図１６に示す各ステップは、コントローラ１００のプロセッサ１１２がシステムプログラム１１６０を実行することで実現される。
【０２０２】
図１６を参照して、まず、ネットワークリソースマネジャ１４０は、自コントローラが保持している固有情報１１６６を取得して第０段階の多階層ネットワーク構成情報を生成する（ステップＳ２）。ここで、変数Ｎが０（ゼロ）にセットされる（ステップＳ４）。
【０２０３】
続いて、ネットワークリソースマネジャ１４０は、第Ｎ階層の多階層ネットワーク構成情報に基づいて、第Ｎ階層のデバイス探索処理を実行する（ステップＳ６）。各階層のデバイス探索処理の詳細については、後述する。
【０２０４】
ステップＳ６により更新された多階層ネットワーク構成情報に基づいて、ネットワークリソースマネジャ１４０は、次の階層が存在するか否かを判断する（ステップＳ８）。次の階層が存在する場合（ステップＳ８においてＹＥＳの場合）には、ネットワークリソースマネジャ１４０は、変数Ｎをインクリメント（変数Ｎ←変数Ｎ＋１）した上で（ステップＳ１０）、ステップＳ６以下の処理を実行する。
【０２０５】
次の階層が存在しない場合（ステップＳ８においてＮＯの場合）には、ネットワークリソースマネジャ１４０は、現時点の多階層ネットワーク構成情報を出力する（ステップＳ１２）。そして、処理は終了する。
【０２０６】
図１７は、図１６のステップＳ６に示す第Ｎ階層のデバイス探索処理の処理手順を示すフローチャートである。図１７を参照して、ネットワークリソースマネジャ１４０は、第Ｎ段階の多階層ネットワーク構成情報を解析して、第Ｎ段階のネットワークに存在しているスレーブデバイスのリストを生成する（ステップＳ６０）。そして、ネットワークリソースマネジャ１４０は、生成したリストに含まれる１つのスレーブデバイスを選択する（ステップＳ６１）。
【０２０７】
ネットワークリソースマネジャ１４０は、選択したスレーブデバイスがマスタ処理部を有しているか否かを判断する（ステップＳ６２）。
【０２０８】
選択したスレーブデバイスがマスタ処理部を有している場合（ステップＳ６２においてＹＥＳの場合）には、ネットワークリソースマネジャ１４０は、当該選択したスレーブデバイスのマスタ処理部が管理するネットワークの構成情報を取得する処理（単階層ネットワーク構成情報取得処理）を実行する（ステップＳ６３）。単階層ネットワーク構成情報取得処理の詳細については後述する。
【０２０９】
選択したスレーブデバイスがマスタ処理部を有していない場合（ステップＳ６２においてＮＯの場合）には、ステップＳ６３はスキップされる。
【０２１０】
続いて、ネットワークリソースマネジャ１４０は、選択したスレーブデバイスがネットワークリソースマネジャ１４０を有しているか否かを判断する（ステップＳ６４）。
【０２１１】
選択したスレーブデバイスがネットワークリソースマネジャ１４０を有している場合（ステップＳ６４においてＹＥＳの場合）には、ネットワークリソースマネジャ１４０は、当該選択したスレーブデバイスのネットワークリソースマネジャ１４０から多階層ネットワーク構成情報を取得する処理（多階層ネットワーク構成情報取得処理）を実行する（ステップＳ６５）。多階層ネットワーク構成情報取得処理の詳細については後述する。
【０２１２】
選択したスレーブデバイスがネットワークリソースマネジャ１４０を有していない場合（ステップＳ６４においてＮＯの場合）には、ステップＳ６５はスキップされる。
【０２１３】
続いて、ネットワークリソースマネジャ１４０は、ステップＳ６０において生成したリストに含まれるすべてのスレーブデバイスに対する処理が完了したか否かを判断する（ステップＳ６６）。
【０２１４】
ステップＳ６０において生成したリストに含まれるすべてのスレーブデバイスに対する処理が完了していない場合（ステップＳ６６においてＮＯの場合）には、ネットワークリソースマネジャ１４０は、生成したリストに含まれる別の１つのスレーブデバイスを選択する（ステップＳ６７）。そして、ステップＳ６２以下の処理が繰返される。
【０２１５】
ステップＳ６０において生成したリストに含まれるすべてのスレーブデバイスに対する処理が完了している場合（ステップＳ６６においてＹＥＳの場合）には、現時点の多階層ネットワーク構成情報を戻り値として出力し（ステップＳ６８）、処理はリターンする。
【０２１６】
図１８は、図１７のステップＳ６３に示す単階層ネットワーク構成情報取得処理の処理手順を示すフローチャートである。図１８を参照して、ネットワークリソースマネジャ１４０は、現時点までに作成されている多階層ネットワーク構成情報に基づいて、対象のスレーブ処理部を有するスレーブデバイスまでの経路を決定する（ステップＳ６３０）。そして、ネットワークリソースマネジャ１４０は、ステップＳ６３０において決定したスレーブデバイスまでの経路に沿って構成情報取得コマンドを送信するためにカプセル化が必要であるか否かを判断する（ステップＳ６３１）。すなわち、ネットワークリソースマネジャ１４０から目的のスレーブデバイスまでの経路に存在する１または複数のネットワークに異なる種別のプロトコルが混在していれば、異なるプロトコルでのデータ伝送をサポートするためのカプセル化が実行される。
【０２１７】
ステップＳ６３０において決定したスレーブデバイスまでの経路に沿って構成情報取得コマンドを送信するためにカプセル化が必要である場合（ステップＳ６３１においてＹＥＳの場合）には、ネットワークリソースマネジャ１４０は、カプセル化に使用するプロトコルを決定する（ステップＳ６３２）。
【０２１８】
ステップＳ６３０において決定したスレーブデバイスまでの経路に沿って構成情報取得コマンドを送信するためにカプセル化が必要ではない場合（ステップＳ６３１においてＮＯの場合）には、ステップＳ６３２の処理はスキップされる。
【０２１９】
続いて、ネットワークリソースマネジャ１４０は、構成情報変化取得コマンドを、対象のスレーブ処理部を有するスレーブデバイスへ送信する（ステップＳ６３３）。なお、構成情報変化取得コマンドは、必要に応じてカプセル化される。そして、ネットワークリソースマネジャ１４０は、構成情報変化取得コマンドに対する応答に基づいて、対象のマスタ処理部が管理するネットワークにおいて構成情報に変化が生じているか否かを判断する（ステップＳ６３４）。
【０２２０】
対象のマスタ処理部が管理するネットワークにおいて構成情報に変化が生じていない場合（ステップＳ６３４においてＮＯの場合）には、処理はリターンする。この場合、ネットワークリソースマネジャ１４０は、先に生成済の多階層ネットワーク構成情報をそのまま利用する。
【０２２１】
一方、対象のマスタ処理部が管理するネットワークにおいて構成情報に変化が生じている場合（ステップＳ６３４においてＹＥＳの場合）には、ネットワークリソースマネジャ１４０は、構成情報取得コマンドを、対象のスレーブ処理部を有するスレーブデバイスへ送信する（ステップＳ６３５）。なお、構成情報取得コマンドは、必要に応じてカプセル化される。
【０２２２】
そして、ネットワークリソースマネジャ１４０は、構成情報取得コマンドに対する応答に基づいて、対象のマスタ処理部が管理するネットワークにおける構成情報を生成する（ステップＳ６３６）。そして、処理はリターンする。
【０２２３】
図１９は、図１７のステップＳ６５に示す多階層ネットワーク構成情報取得処理の処理手順を示すフローチャートである。図１９を参照して、ネットワークリソースマネジャ１４０は、ネットワークリソースマネジャ１４０は、構成情報変化取得コマンドを、対象のネットワークリソースマネジャを有するスレーブデバイスへ送信する（ステップＳ６５０）。そして、ネットワークリソースマネジャ１４０は、構成情報変化取得コマンドに対する応答に基づいて、対象のネットワークリソースマネジャ１４０が管理する多階層ネットワーク構成情報に変化が生じているか否かを判断する（ステップＳ６５１）。
【０２２４】
対象のネットワークリソースマネジャ１４０が管理する多階層ネットワーク構成情報に変化が生じていない場合（ステップＳ６５１においてＮＯの場合）には、処理はリターンする。この場合、ネットワークリソースマネジャ１４０は、先に取得済の多階層ネットワーク構成情報をそのまま利用する。
【０２２５】
一方、対象のマスタ処理部が管理するネットワークにおいて構成情報に変化が生じている場合（ステップＳ６５１においてＹＥＳの場合）には、ネットワークリソースマネジャ１４０は、多階層ネットワーク構成情報取得コマンドを、対象のネットワークリソースマネジャ１４０を有するスレーブデバイスへ送信する（ステップＳ６５２）。
【０２２６】
そして、ネットワークリソースマネジャ１４０は、多階層ネットワーク構成情報取得コマンドに対する応答に基づいて、対象のネットワークリソースマネジャ１４０により生成された多階層ネットワーク構成情報を生成する（ステップＳ６５３）。そして、処理はリターンする。
【０２２７】
（ｄ５：処理手順：マスタ処理部）
次に、スレーブデバイスに含まれるマスタ処理部における処理手順ついて説明する。
【０２２８】
図２０は、本実施の形態に係るネットワークシステム１におけるマスタ処理部による多階層ネットワーク構成情報の生成処理に係る処理手順を示すフローチャートである。図２０（Ａ）〜図２０（Ｃ）に示す各ステップは、典型的には、スレーブデバイスのプロセッサがシステムプログラムを実行することで実現される。
【０２２９】
図２０（Ａ）には、マスタ処理部が自ネットワークの構成情報を生成する処理手順を示す。図２０（Ａ）を参照して、起動時または自ネットワークに何らかの構成変化が生じた場合（ステップＳ２００においてＹＥＳの場合）には、マスタ処理部は、自ネットワークに接続されている各デバイスから固有情報を取得して、構成情報を生成する（ステップＳ２０２）。そして、マスタ処理部は、内部保持される状態情報として、構成情報変化ありとのフラグをセットする（ステップＳ２０４）。そして、処理は終了する。
【０２３０】
なお、図２０（Ａ）に示す処理手順は、所定周期毎または所定イベント毎に実行される。
【０２３１】
図２０（Ｂ）には、マスタ処理部がネットワークリソースマネジャ１４０から構成情報変化取得コマンドを受信した場合の処理手順を示す。図２０（Ｂ）を参照して、構成情報変化取得コマンドを受信すると、マスタ処理部は、内部保持されるフラグの値を参照して、構成情報変化があるか否かを判断する（ステップＳ２２０）。
【０２３２】
内部保持されるフラグの値が構成情報変化ありを示している場合（ステップＳ２２０においてＹＥＳの場合）には、マスタ処理部は、構成情報変化が生じている旨を応答する（ステップＳ２２２）。そして、処理は終了する。
【０２３３】
これに対して、内部保持されるフラグの値が構成情報変化なしを示している場合（ステップＳ２２０においてＮＯの場合）には、マスタ処理部は、構成情報変化は生じていない旨を応答する（ステップＳ２２４）。そして、処理は終了する。
【０２３４】
図２０（Ｂ）に示す処理手順は、構成情報変化取得コマンドを受信する毎に実行される。
【０２３５】
図２０（Ｃ）には、マスタ処理部がネットワークリソースマネジャ１４０から構成情報取得コマンドを受信した場合の処理手順を示す。図２０（Ｃ）を参照して、構成情報取得コマンドを受信すると、マスタ処理部は、予め生成済の構成情報を応答する（ステップＳ２４０）。そして、処理は終了する。
【０２３６】
図２０（Ｃ）に示す処理手順は、構成情報取得コマンドを受信する毎に実行される。
＜Ｅ．カプセル化＞
次に、伝送経路が複数のプロトコルの異なるネットワークにまたがる場合のデータ伝送について説明する。このような異なるプロトコルに従う複数のネットワークにまたがってデータ伝送を行う場合には、各ネットワークのプロトコルに応じたヘッダを付加する、カプセル化の手法を採用できる。すなわち、ネットワークリソースマネジャ１４０は、構成情報（単階層ネットワーク構成情報）を取得すべき対象のマスタ処理部までの経路に存在するネットワークのプロトコルに応じて、当該構成情報を取得するためのコマンドをカプセル化して送信する。
【０２３７】
図２１は、本実施の形態に係るネットワークシステム１におけるカプセル化による通信コマンドの送信方法を説明するための図である。図２１には、３つの階層を有するネットワークシステムを示す。各階層のネットワークは、コントローラ１００のマスタ処理部１０２（第１階層）、マスタデバイス４００のマスタ処理部４０４（第２階層）、および、マスタデバイス２００のマスタ処理部２０２（第３階層）によって管理されているものとする。
【０２３８】
まず、ネットワークリソースマネジャ１４０がマスタ処理部１０２から第１階層の構成情報を取得する場合には、マスタ処理部１０２宛のヘッダに、構成情報取得コマンドや状態モニタリングコマンドなどの通信コマンドを付加した通信フレーム（あるいは、パケット）を送信する。この通信フレームは、コントローラ１００内で伝送されるため、プロトコルの違いを意識する必要はない。
【０２３９】
次に、ネットワークリソースマネジャ１４０がマスタ処理部４０４から第２階層の構成情報を取得する場合には、マスタ処理部１０２宛のヘッダに通信コマンドを付加した通信フレームの全体に、マスタ処理部４０４宛のヘッダを付加した通信フレームが生成される。このような、上位階層に位置するマスタ処理部宛の通信フレームの全体に、次の階層に位置するマスタ処理部宛のヘッダを付加するような処理がカプセル化の一例である。
【０２４０】
さらに、ネットワークリソースマネジャ１４０がマスタ処理部２０２から第３階層の構成情報を取得する場合には、マスタ処理部１０２宛のヘッダに通信コマンドを付加した通信フレームの全体に、マスタ処理部４０４宛のヘッダを付加し、さらにマスタ処理部２０２宛のヘッダを付加することで通信フレームが生成される。
【０２４１】
図２１に示す各ヘッダは、対象となる階層のネットワークにおいて用いられるプロトコルに応じたものが採用される。このようなカプセル化の手法を用いることで、多階層ネットワークにおいて各階層のネットワークで用いられるプロトコルが異なっていても、そのプロトコルの相違を意識することなく、通信コマンドなどの伝送を実現できる。
【０２４２】
＜Ｆ．応用例＞
次に、本実施の形態に係るネットワークシステム１のいくつかの応用例について説明する。
【０２４３】
（ｆ１：分散配置および集中管理）
図２２は、本実施の形態に係るネットワークシステムの複数を集中管理する場合の構成例を示す模式図である。図２２に示すネットワークシステムは、４つのコントローラ１００−１〜１００−４を含む。コントローラ１００−１は、統括的な処理を実行する一方で、残りのコントローラ１００−２〜１００−４の各々は、各自が管理するネットワークを有している。
【０２４４】
このような構成において、コントローラ１００−２〜１００−４は、それぞれネットワークリソースマネジャ１４０−２〜１４０−４を有している。ネットワークリソースマネジャ１４０−２〜１４０−４の各々は、自身が管理するネットワークについての多階層ネットワーク構成情報を生成する。
【０２４５】
コントローラ１００−１のネットワークリソースマネジャ１４０−１は、ネットワークリソースマネジャ１４０−２〜１４０−４のそれぞれから多階層ネットワーク構成情報を取得して、複数のネットワークを集約した、多階層ネットワーク構成情報（全体）を出力する。
【０２４６】
このように、本実施の形態に係るネットワークリソースマネジャ１４０および多階層ネットワーク構成情報を用いることで、図２２に示すような複数のコントローラ１００−２〜１００−４を分散配置するとともに、統括的に配置されたコントローラ１００−１でそれぞれの多階層ネットワーク構成情報を集約した、集中管理を実現できる。
【０２４７】
このような分散配置および集中管理の構成を採用することで、いずれのネットワークに属しているデバイスに対しても、透過的なアクセス（すなわち、属しているネットワークをユーザに意識させないアクセス）を提供できる。
【０２４８】
（ｆ２：ＨＭＩデバイス６００およびサポート装置７００での利用）
本実施の形態に係るネットワークシステムにおいては、基本的には、コントローラ１００が有しているネットワークリソースマネジャ１４０によって多階層ネットワーク構成情報が生成される。このような多階層ネットワーク構成情報は、コントローラ１００上で実行されるアプリケーションだけではなく、コントローラ１００の外部からも利用可能になっている。
【０２４９】
典型的には、コントローラ１００と上位ネットワーク２を介して接続されるＨＭＩデバイス６００および／またはサポート装置７００は、コントローラ１００により生成される多階層ネットワーク構成情報を参照して、目的のデバイスにアクセスし、デバイス状態をモニタリングし、あるいは、各種設定などを転送することができる。あるいは、ＨＭＩデバイス６００および／またはサポート装置７００は、コントローラ１００から取得した多階層ネットワーク構成情報に基づく、ネットワークシステムにおけるデバイスの接続関係やトポロジをユーザに提示することもできる。
【０２５０】
このような多階層構成ネットワークの取得は、ＨＭＩデバイス６００および／またはサポート装置７００は、いずれかのコントローラ１００のネットワークリソースマネジャ１４０に対して、多階層ネットワーク構成情報取得コマンドを送信する。ネットワークリソースマネジャ１４０は、この多階層ネットワーク構成情報取得コマンドに応答して、予め生成している多階層ネットワーク構成情報を応答する。
【０２５１】
なお、ネットワークリソースマネジャ１４０は、オンデマンド、すなわち、多階層ネットワーク構成情報取得コマンドを受けてから、多階層ネットワーク構成情報の生成処理を開始してもよい。
【０２５２】
このように、ネットワークリソースマネジャ１４０は、外部装置からの要求に応答して、生成した多階層ネットワーク構成情報１４２を応答する。このような機能を採用することで、コントローラ１００で実行されるアプリケーションだけではなく、外部からも多階層ネットワーク構成情報を利用できるような環境を提供することで、ネットワークシステムへのアクセス性の改善や、アプリケーションの応用性を高めることができる。
【０２５３】
（ｆ３：局所ネットワークのモジュール化）
本実施の形態に係るネットワークシステム１において生成される多階層ネットワーク構成情報を参照して、ネットワークシステム１の一部分をモジュール化して取り扱うことができる。
【０２５４】
図２３は、本実施の形態に係るネットワークシステム１に設定される対象範囲の一例を示す。図２４は、本実施の形態に係るネットワークシステム１における対象範囲の設定方法の一例を説明するための図である。
【０２５５】
図２３を参照して、ネットワークシステム１に対して、任意に対象範囲を設定することができる。このような対象範囲は、例えば、何らかの設定を与える対象となるデバイスの範囲、あるいは、バックアップの対象となるデバイスの範囲の規定などに利用できる。
【０２５６】
より具体的には、図２４に示すように、例えば、ユーザは、サポート装置７００を用いてネットワークリソースマネジャ１４０から多階層ネットワーク構成情報１４２を取得し、その取得した多階層ネットワーク構成情報１４２に基づいて、ネットワークシステム１を構成する１または複数のデバイスを選択する。この選択に応じて、範囲定義情報が生成される。サポート装置７００からネットワークリソースマネジャ１４０に対して、生成された範囲定義情報が与えられる。
【０２５７】
図２４に示す例では、図２３に示す対象範囲１〜４に対応する範囲定義情報１４６−１〜１４６−４がネットワークリソースマネジャ１４０に与えられている。ネットワークリソースマネジャ１４０は、インターフェイスとして、範囲定義情報１４６−１〜１４６−４に対応付けられた識別子を用意する。
【０２５８】
コントローラ１００または他のデバイスの任意のアプリケーションは、ネットワークリソースマネジャ１４０が提供する識別子の選択とともに、任意のコマンドを与えることで、当該選択された識別子に対応する対象範囲に含まれるデバイスのみを対象として、任意の処理を共通に実行させることができる。
【０２５９】
すなわち、アプリケーション側では、ネットワークシステム１に含まれる対象のデバイスを個別に選択する必要はなく、ネットワークリソースマネジャ１４０が提供する識別子を選択するだけで、特定の範囲に含まれる１または複数のデバイスに対して、共通の処理を実行できる。このような１または複数のデバイスをモジュール化できるようなインターフェイスが提供されることで、アプリケーション側の開発工数および再利用性を高めることができる。
【０２６０】
なお、モジュール化の対象として、ネットワークシステム１に含まれるすべてのデバイスを選択することもできる。すべてのデバイスを対象範囲とした場合には、一括設定や一括バックアップなどを容易に実現できる。
【０２６１】
＜Ｇ．付記＞
上述したような本実施の形態は、以下のような技術思想を含む。
［構成１］
マスタ処理部（１０２，１０４，２０２，４０４）と１または複数のスレーブ処理部（２０４，３０４，４０２，５０２）とからなるネットワークを少なくとも１つ含むネットワークシステム（１）であって、
前記マスタ処理部を有する第１のデバイス（１００）と、
前記マスタ処理部および前記スレーブ処理部を有する第２のデバイス（２００，４００）と、
前記スレーブ処理部を有する第３のデバイス（３００，５００）とを備え、
前記第１のデバイス、前記第２のデバイス、および、前記第３のデバイスの各々は、各デバイスが前記マスタ処理部または前記スレーブ処理部を有しているか否かを示す固有情報（１１６６，２１６６，３１６６，４１６６，５１６６）を保持しており、
前記マスタ処理部の各々は、自身が管理するネットワークに接続されている１または複数の前記スレーブ処理部の各々から前記固有情報を取得して、各ネットワークに接続されているデバイスの情報を示す単階層ネットワーク構成情報（１０２１，１０４１，２０２１，４０４１）を生成するデバイス探索手段（１０２２，１０４２，２０２２，４０４２）を備え、
前記第１のデバイスは、前記ネットワークシステムに含まれるマスタ処理部の各々から単階層ネットワーク構成情報を取得することで、前記ネットワークシステムにおけるデバイスの接続関係を示す多階層ネットワーク構成情報（１４２）を生成するネットワーク管理手段（１４０）を備える、ネットワークシステム。
［構成２］
前記ネットワーク管理手段は、
前記第１のデバイスのマスタ処理部が生成する単階層ネットワーク構成情報を参照して、前記第１のデバイスが管理する第１のネットワークに接続された第２のデバイスを特定し（ＳＱ２２，ＳＱ２４，ＳＱ２６，ＳＱ２８）、
前記特定された第２のデバイスのマスタ処理部が生成する単階層ネットワーク構成情報を参照して、前記特定された第２のデバイスが管理する第２のネットワークについての単階層ネットワーク構成情報を取得する（ＳＱ３０，ＳＱ３２，ＳＱ３４）、構成１に記載のネットワークシステム。
［構成３］
前記ネットワーク管理手段は、前記第２のネットワークについての単階層ネットワーク構成情報を参照して、前記第２のネットワークに接続された第２のデバイスを特定し（ＳＱ３６）、
前記特定された第２のデバイスのマスタ処理部が生成する単階層ネットワーク構成情報を参照して、前記特定された第２のデバイスが管理する第３のネットワークについての単階層ネットワーク構成情報を取得する（ＳＱ３８，ＳＱ４０）、構成２に記載のネットワークシステム。
［構成４］
前記ネットワーク管理手段は、各ネットワークに存在する第２のデバイスの位置に基づいて、前記ネットワークシステムに含まれるマスタ処理部からそれぞれ取得した単階層ネットワーク構成情報を関連付けることで、前記多階層ネットワーク構成情報を生成する、構成２または３に記載のネットワークシステム。
［構成５］
前記固有情報は、予め定められたフォーマットに従って、各デバイスがサポートしているプロトコルの種別を示す情報（１６６７）と、マスタ処理部の有無を示す情報（１６６０）と、ネットワーク管理手段の有無を示す情報（１６６８）とを含む、構成１〜４のいずれか１項に記載のネットワークシステム。
［構成６］
前記ネットワーク管理手段は、単階層ネットワーク構成情報を取得すべき対象のマスタ処理部までの経路に存在するネットワークのプロトコルに応じて、単階層ネットワーク構成情報を取得するためのコマンドをカプセル化して送信する、構成１〜５のいずれか１項に記載のネットワークシステム。
［構成７］
前記ネットワーク管理手段は、予め設定された探索範囲設定（１４４−１〜１４４−３）により規定された範囲で、前記ネットワークシステムに含まれるデバイスを探索する、構成１〜６のいずれか１項に記載のネットワークシステム。
［構成８］
前記ネットワークシステムは、前記第１のデバイスを複数備えており、
前記ネットワーク管理手段は、他の第１のデバイスが備えられているネットワーク管理手段を認識すると、当該認識したネットワーク管理手段に対して、当該認識したネットワーク管理手段により生成される多階層ネットワーク構成情報を要求する、構成１〜７のいずれか１項に記載のネットワークシステム。
［構成９］
前記ネットワーク管理手段は、外部装置（６００，７００）からの要求に応答して、生成した多階層ネットワーク構成情報を応答する、構成１〜８のいずれか１項に記載のネットワークシステム。
［構成１０］
マスタ処理部（１０２，１０４，２０２，４０４）と１または複数のスレーブ処理部（２０４，３０４，４０２，５０２）とからなるネットワークを少なくとも１つ含むネットワークシステム（１）における制御方法であって、前記ネットワークシステムは、前記マスタ処理部を有する第１のデバイス（１００）と、前記マスタ処理部および前記スレーブ処理部を有する第２のデバイス（２００，４００）と、前記スレーブ処理部を有する第３のデバイス（３００，５００）とを備え、
前記第１のデバイス、前記第２のデバイス、および、前記第３のデバイスの各々は、各デバイスが前記マスタ処理部または前記スレーブ処理部を有しているか否かを示す固有情報（１１６６，２１６６，３１６６，４１６６，５１６６）を保持しており、
前記制御方法は、
前記マスタ処理部の各々が自身が管理するネットワークに接続されている１または複数の前記スレーブ処理部の各々から前記固有情報を取得して、各ネットワークに接続されているデバイスの情報を示す単階層ネットワーク構成情報（１０２１，１０４１，２０２１，４０４１）を生成するステップ（ＳＱ２〜ＳＱ１２）と、
前記第１のデバイスが前記ネットワークシステムに含まれるマスタ処理部の各々から単階層ネットワーク構成情報を取得することで、前記ネットワークシステムにおけるデバイスの接続関係を示す多階層ネットワーク構成情報を生成するステップ（ＳＱ２２〜ＳＱ４０）とを備える、制御方法。
［構成１１］
マスタ処理部（１０２，１０４，２０２，４０４）と１または複数のスレーブ処理部（２０４，３０４，４０２，５０２）とからなるネットワークを少なくとも１つ含むネットワークシステム（１）に利用される制御装置（１００）であって、
前記制御装置は、前記マスタ処理部を有しており、
前記ネットワークシステムは、前記マスタ処理部および前記スレーブ処理部を有する第１のデバイス（２００，４００）と、前記スレーブ処理部を有する第２のデバイス（３００，５００）とを備え、
前記制御装置、前記第１のデバイス、および、前記第２のデバイスの各々は、各々が前記マスタ処理部または前記スレーブ処理部を有しているか否かを示す固有情報（１１６６，２１６６，３１６６，４１６６，５１６６）を保持しており、
前記マスタ処理部の各々は、自身が管理するネットワークに接続されている１または複数の前記スレーブ処理部の各々から前記固有情報を取得して、各ネットワークに接続されているデバイスの情報を示す単階層ネットワーク構成情報（１０２１，１０４１，２０２１，４０４１）を生成するデバイス探索手段（１０２２，１０４２，２０２２，４０４２）を備え、
前記制御装置は、前記ネットワークシステムに含まれるマスタ処理部の各々から単階層ネットワーク構成情報を取得することで、前記ネットワークシステムにおけるデバイスの接続関係を示す多階層ネットワーク構成情報を生成するネットワーク管理手段（１４０）を備える、制御装置。
【０２６２】
＜Ｈ．利点＞
本実施の形態に係るＦＡ用のネットワークシステムによれば、コントローラおよびコントローラに接続された１または複数のネットワーク上に分散配置されたデバイスの全体構成を容易に取得できる。
【０２６３】
関連技術によれば、このようなデバイスの全体構成は、各デバイスの形式情報（あるいは、プロファイルコード）に基づいて各デバイスの構成を探索し、各デバイスがマスタ処理部およびスレーブ処理部のいずれであるかを認識する。このような認識手法によれば、また、新たな種別のユニットが開発されるたびに、形式情報に基づくデバイスの構成を探索する処理を更新する必要がある。
【０２６４】
また、多階層化されたネットワークの構造を直接取得することはできず、各階層のマスタ処理部からそれぞれ構成を取得する必要がある。そのため、多階層化されたネットワークの構成を認識するのに多くの時間を要するとともに、処理が煩雑化する。また、環境毎に処理ロジックを実装する必要がある。
【０２６５】
さらに、各コントローラには、全階層のネットワークを一度に認識する機能が実装されておらず、各コントローラから末端のデバイスへのアクセスは難しい。また、ネットワークシステム内に複数のコントローラが存在する場合、サポート装置を用いて設定を一括転送することはできない。
【０２６６】
このような課題に対して、本実施の形態に係るネットワークシステムは、各デバイスに固有情報を保有させるとともに、コントローラ内に各デバイスから固有情報を取得して、多階層ネットワーク構成情報を生成するネットワークリソースマネジャを配置する。
【０２６７】
このような構成を採用することで、上述したような課題を解決できる。
具体的には、新たな種別のユニット（マスタユニットまたはスレーブユニット）が開発された場合であっても、当該新たな種別への対応が容易化する。例えば、形式情報に基づくデバイスの構成をハードコーディングで実装するような必要がなくなる。各デバイスに固有情報を保持させることで、ＨＭＩデバイス６００およびコントローラ１００で実行されるプログラムなどに対する更新作業が不要となる。また、サポート装置７００を用いた更新作業に係る工数を低減できる。
【０２６８】
コントローラ自体がネットワークシステム全体の多階層ネットワーク構成を取得できる。このような機能を用いることで、例えば、ＨＭＩデバイス６００またはサポート装置７００上に、対象のネットワークシステムのネットワーク構成図などを表示することができる。また、例えば、ＨＭＩデバイス６００またはサポート装置７００において、ネットワークシステム内のすべてのデバイスについて、デバイス状態のモニタリングを実現できる。また、サポート装置７００から任意のデバイスに対して設定を一括転送できる。
【０２６９】
さらに、コントローラ１００から任意のデバイスに対して任意のコマンドを送信することもできる。このような任意のデバイスへの任意のコマンド送信を用いることで、例えば、いずれかのデバイスで発生した異常の解除や、任意のデバイスに対するバックアップ／リストア処理を実現できる。
【０２７０】
また、コントローラ自体がネットワークシステム内に存在するすべてのプロトコルを把握できるとともに、ネットワークシステム内の任意のデバイスへのアクセスの経路をより短時間に特定できる。このような機能を用いることで、例えば、ＨＭＩデバイス６００またはサポート装置７００におけるユーザに対する機能性を高めることができる。また、ＨＭＩデバイス６００またはサポート装置７００に対する、ユーザによる設定操作の工数を低減できる。
【０２７１】
また、本実施の形態に係るネットワークシステムにおいては、１または複数のデバイスをグルーピングして、各グループに含まれるデバイスを一纏めとしてアクセス制御することができる。このような機能を用いることで、任意のデバイスで発生した異常の解除や、任意のデバイスに対するバックアップ／リストア処理をより迅速に行うことができる。
【０２７２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２７３】
１，１Ｘ  ネットワークシステム、２  上位ネットワーク、４，８，１２，１４，２０  ローカルバス、６，１０，１８  フィールドネットワーク、１００，１００Ｘ  コントローラ、１０２，１０２Ｘ，１０４，１０４Ｘ，２０２，２０２Ｘ，４０４，４０４Ｘ  マスタ処理部、１０２Ｐ，２０２Ｐ  ローカルバス通信ポート、１０４Ｐ，２０４Ｐ１，２０４Ｐ２，３０４Ｐ１，３０４Ｐ２，４０２Ｐ１，４０２Ｐ２，４０４Ｐ，５０２Ｐ１，５０２Ｐ２  ネットワークポート、１０６  上位ネットワークコントローラ、１１２，２１２，３１２，４１２，５１２  プロセッサ、１１４，２１４，３１４，４１４，５１４  メインメモリ、１１６，２１６，３１６，４１６，５１６  ストレージ、１１８  ＵＳＢコントローラ、１２０  メモリカードインターフェイス、１２２  メモリカード、１３０，２３０，３３０，４３０，５３０  プロセッサバス、１４０  ネットワークリソースマネジャ、１４２  多階層ネットワーク構成情報、１４４  探索範囲設定、１４６  範囲定義情報、２００，２００Ｘ，４００，４００Ｘ  マスタデバイス、２０４，３０４，４０２，５０２  スレーブ処理部、３００，５００，５００Ｘ  スレーブデバイス、４２０  機能モジュール、６００，６００Ｘ  ＨＭＩデバイス、７００  サポート装置、１０２０，１０４０，２０２０，４０４０  マスタコントローラ、１０２１，１０４１，２０２１，４０４１  構成情報、１０２２，１０４２，２０２２，４０４２  デバイス探索モジュール、１０２４，１０４４，２０２４，２０４４，２０４５，４０２４，４０２５，４０４４  送信回路、１０２６，１０４６，２０２６，２０４６，２０４７，４０２６，４０２７，４０４６  受信回路、１０２８，１０４８，２０２８，２０４８，３０４８，４０２８，４０４８，５０２８  バッファメモリ、１１６０，２１６０，３１６０，４１６０，５１６０  システムプログラム、１１６２，２１６２，３１６２，４１６２，５１６２  アプリケーションプログラム、１１６４，２１６４，３１６４，４１６４，５１６４  形式情報、１１６６，２１６６，３１６６，４１６６，５１６６  固有情報、１１６８  ネットワークリソースマネジャプログラム、１６６０  マスタフラグ、１６６１  標準ネットワークフラグ、１６６２，１６６３，１６６４，１６６５，１６６６，４６６４  追加ネットワークフラグ、１６６７  追加ネットワークフラグ群、１６６８  ネットワークリソースマネジャフラグ、２０４０，３０４０，４０２０，５０２０  スレーブコントローラ。
【図１】
2019134219.tif 000003
【図２】
2019134219.tif 000004
【図３】
2019134219.tif 000005
【図４】
2019134219.tif 000006
【図５】
2019134219.tif 000007
【図６】
2019134219.tif 000008
【図７】
2019134219.tif 000009
【図８】
2019134219.tif 000010
【図９】
2019134219.tif 000011
【図１０】
2019134219.tif 000012
【図１１】
2019134219.tif 000013
【図１２】
2019134219.tif 000014
【図１３】
2019134219.tif 000015
【図１４】
2019134219.tif 000016
【図１５】
2019134219.tif 000017
【図１６】
2019134219.tif 000018
【図１７】
2019134219.tif 000019
【図１８】
2019134219.tif 000020
【図１９】
2019134219.tif 000021
【図２０】
2019134219.tif 000022
【図２１】
2019134219.tif 000023
【図２２】
2019134219.tif 000024
【図２３】
2019134219.tif 000025
【図２４】
2019134219.tif 000026