(57)【要約】【課題】コスト及び消費電力を低減すること。【解決手段】本発明に係る接続関係検出システムは、他のモジュールと接続可能な複数の接続ポートを有する複数のモジュールと、複数のモジュールが相互に接続された場合に、複数のモジュールのいずれかに接続ポートを介して接続される情報処理装置を備える。複数のモジュール夫々は、情報処理装置からの接続変更要求に応じて、モジュールの内部における接続ポート間を接続する接続変更部を有する。情報処理装置は、モジュールに対して接続変更要求を行うことで、そのモジュールに接続されるものとして、そのモジュールを介して新たに認識されたモジュールを検出する接続検出部を有する。【選択図】図３７
2016091512.tif 000002
【特許請求の範囲】
【請求項１】
他のモジュールと接続可能な複数の接続ポートを有する複数のモジュールと、
前記複数のモジュールが相互に接続された場合に、前記複数のモジュールのいずれかに前記接続ポートを介して接続される情報処理装置と、を備え、
前記複数のモジュール夫々は、
前記情報処理装置からの接続変更要求に応じて、前記モジュールの内部における前記接続ポート間を接続する接続変更部を有し、
前記情報処理装置は、
前記モジュールに対して接続変更要求を行うことで、そのモジュールに接続されるものとして、そのモジュールを介して新たに認識されたモジュールを検出する接続検出部を有する、
接続関係検出システム。
【請求項２】
前記モジュール夫々は、さらに、前記情報処理装置からのＩＤ返信要求に応じて、自モジュールを一意に特定するモジュールＩＤを前記情報処理装置に返信する処理部を有し、
前記接続検出部は、前記複数のモジュールに対してＩＤ返信要求を行い、当該ＩＤ返信要求に応じて返信されたモジュールＩＤの一覧において、新たに検出されたモジュールＩＤで特定されるモジュールを、新たなモジュールとして認識する、
請求項１に記載の接続関係検出システム。
【請求項３】
前記接続検出部は、前記新たに認識されたモジュールを、次に前記接続変更要求を行うモジュールとすることを繰り返すことで、前記複数のモジュールの接続関係を検出する、
請求項１に記載の接続関係検出システム。
【請求項４】
前記接続検出部は、前記モジュールにおいて前記情報処理装置側以外の接続ポートのそれぞれを、前記情報処理装置側の接続ポートと順番に接続するように、当該モジュールに対して前記接続変更要求を繰り返す、
請求項１に記載の接続関係検出システム。
【請求項５】
前記接続関係検出システムは、さらに、前記情報処理装置と通信する外部情報処理装置を備え、
前記外部情報処理装置は、
前記複数のモジュールの接続ポート数を示す複数の接続ポート数情報が予め格納される記憶部と、
前記情報処理装置からの情報送信要求に応じて、当該情報送信要求で要求されたモジュールの接続ポート数情報を前記情報処理装置に送信する制御部と、を有し、
前記接続検出部は、前記外部情報処理装置に対して前記新たに認識されたモジュールの接続ポート数の情報送信要求を行い、当該情報送信要求に応じて送信された接続ポート数情報を、前記新たに認識されたモジュールの接続ポート数として認識する、
請求項４に記載の接続関係検出システム。
【請求項６】
前記複数の接続ポート数情報は、相互に異なる接続ポート数を示し、
前記記憶部は、さらに、前記モジュールを一意に特定するモジュールＩＤと、当該モジュールＩＤで特定されるモジュールが有する接続ポート数を示す接続ポート数情報とを紐付ける紐付け情報が予め格納され、
前記接続検出部は、前記情報送信要求において前記新たに認識されたモジュールのモジュールＩＤを指定し、
前記制御部は、前記記憶部に格納された紐付け情報に基づいて、前記情報送信要求で指定されたモジュールＩＤに紐付けられた接続ポート数情報を前記情報処理装置に送信する、
請求項５に記載の接続関係検出システム。
【請求項７】
前記情報処理装置は、さらに、前記前記接続検出部によって検出された前記複数のモジュールの接続関係に基づいて、前記複数のモジュールが形成する形状の仮想モデルを生成する仮想モデル生成部を有する、
請求項５に記載の接続関係検出システム。
【請求項８】
前記記憶部は、さらに、前記複数のモジュールの形状及び接続ポート座標を示す複数の形状・接続ポート情報が予め格納され、
前記制御部は、前記情報送信要求で要求されたモジュールの接続ポート数情報に加えて、当該情報送信要求で要求されたモジュールの形状・接続ポート情報を前記情報処理装置に送信し、
前記仮想モデル生成部は、前記複数のモジュールの接続関係に加えて、前記外部情報処理装置から送信された複数のモジュールの形状及び接続ポート座標に基づいて、前記仮想モデルを生成する、
請求項７に記載の接続関係検出システム。
【請求項９】
前記接続変更部は、さらに、前記情報処理装置側以外の接続ポートのそれぞれに対応するように、前記情報処理装置側の接続ポートと接続するためのスイッチを有し、
前記接続変更部は、前記スイッチをオンにすることによって、当該スイッチに対応する接続ポートと、前記情報処理装置側の接続ポートとの間を接続する、
請求項４に記載の接続関係検出システム。
【請求項１０】
前記接続変更部は、さらに、前記情報処理装置側の接続ポートに対応するように、前記情報処理装置側以外の接続ポートと接続するためのスイッチを有し、
前記接続変更部は、前記情報処理装置側以外の接続ポートに対応するスイッチと、前記情報処理装置側の接続ポートに対応するスイッチとをオンにすることによって、当該前記情報処理装置側以外の接続ポートと、当該情報処理装置側の接続ポートとを接続する、
請求項９に記載の接続関係検出システム。
【請求項１１】
前記接続変更部は、前記接続ポート間の接続として、前記接続ポート間の信号線を接続し、
前記モジュール夫々は、さらに、前記情報処理装置から新たなモジュールを認識する際に前記信号線を介して送信される情報を受信した接続ポートを検出し、検出した接続ポートに対応するスイッチを、前記情報処理装置側の接続ポートに対応するスイッチとしてオンにする処理部を有する、
請求項１０に記載の接続関係検出システム。
【請求項１２】
前記モジュール夫々は、さらに、前記複数の接続ポートの信号線のそれぞれのうち、いずれか１つと、前記処理部とを順番に接続する切替部を有し、
前記処理部は、前記新たなモジュールを認識する際に送信される情報を受信した接続ポートの信号線と前記処理部との接続を維持するように前記切替部を制御する、
請求項１１に記載の接続関係検出システム。
【請求項１３】
前記接続変更部は、前記接続ポート間の接続として、前記接続ポート間の電源電圧線を接続し、
前記モジュール夫々は、さらに、
前記情報処理装置から前記電源電圧線を介して電圧が供給される接続ポートを検出する電圧検出部と、
前記電圧検出部によって検出された接続ポートに対応するスイッチを、前記情報処理装置側の接続ポートに対応するスイッチとしてオンにする処理部を有する、
請求項１０に記載の接続関係検出システム。
【請求項１４】
前記モジュール夫々は、さらに、前記複数の接続ポートの電源電圧線のそれぞれに対して、前記複数の接続ポートの電源電圧線のそれぞれがアノードに接続され、前記モジュールにおける前記電圧が供給される側にカソードが接続される複数のダイオードを有する、
請求項１３に記載の接続関係検出システム。
【請求項１５】
前記情報処理装置は、前記複数のモジュール夫々とＩ２Ｃプロトコルによって通信を行うものであり、
前記複数のモジュール夫々は、Ｉ２Ｃアドレスのいずれか１つが割り当てられ、
前記接続検出部は、前記ＩＤ返信要求の送信先として全てのＩ２Ｃアドレスを順番に指定して、前記ＩＤ返信要求と当該ＩＤ返信要求に応じて返信されたモジュールＩＤの取得を繰り返すことで、前記モジュールＩＤの一覧を取得する、
請求項２に記載の接続関係検出システム。
【請求項１６】
前記情報処理装置は、Ｉ２Ｃのマスターとして前記複数のモジュール夫々と通信し、
前記複数のモジュール夫々は、Ｉ２Ｃのスレーブとして前記情報処理装置と通信する、
請求項１５に記載の接続関係検出システム。
【請求項１７】
前記情報処理装置は、さらに、ユーザによって予め設定された前記複数のモジュールの接続関係と、前記接続検出部によって検出された前記複数のモジュールの接続関係とを比較する比較部と、を有する、
請求項１に記載の接続関係検出システム。
【請求項１８】
前記接続検出部は、前記新たに認識されたモジュールのＩ２Ｃアドレスが、既に認識されているモジュールのＩ２Ｃアドレスと重複する場合、一方のモジュールのＩ２Ｃアドレスを重複しないＩ２Ｃアドレスに変更する、
請求項１５に記載の接続関係検出システム。
【請求項１９】
複数の接続ポートを有する複数のモジュールが前記接続ポートを介して相互に接続された場合に、前記複数のモジュールのいずれかの接続ポートを介して、前記モジュールの内部における前記接続ポート間を接続することで、そのモジュールに接続されるものとして、そのモジュールを介して新たに認識されたモジュールを検出する接続検出部を備えた
情報処理装置。
【請求項２０】
複数の接続ポートを有する複数のモジュールが前記接続ポートを介して相互に接続された場合に、前記複数のモジュールのいずれかの接続ポートを介して、前記モジュールの内部における前記接続ポート間を接続することで、そのモジュールに接続されるものとして、そのモジュールを介して新たに認識されたモジュールを検出する、
接続関係検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、接続関係検出生成システム、情報処理装置、及び接続関係検出方法に関し、例えば複数のモジュールの接続関係を検出する技術に関する。
【背景技術】
【０００２】
特許文献１には、実際の対象物を表す３次元仮想モデルを効率的に生成することを目的としたシステムが開示されている。特許文献１に開示のシステムは、複数の構成素子と、情報処理システムとを有する。複数の構成素子によって物理モデルを形成することができる。
【０００３】
構成素子は、コントローラを有している。コントローラは、他の構成素子の存在及び接続を感知する。ここで、このコントローラは、無線信号により互いの最短距離を検出するか、コネクタ内の機械的な移動量を検知すること、によって他の構成素子の存在及び接続を検出するようにしている。そして、コントローラは、他の構成要素への接続を識別する情報を、無線通信によって、情報処理システムに送信する。情報処理システムは、コントローラから送信された情報を使用して、物理モデルに対応する仮想モデルを生成する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１３２３７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示のコントローラを構成要素とした場合、高コスト・高消費電力なシステムになってしまうという問題がある。
【０００６】
例えば、このコントローラは、無線信号により互いの最短距離を検出するものであるが、無線信号の電波強度に基づいて微小な距離の差を検出する必要があるとともに、その検出結果に基づいて最短距離を算出するための複雑な検出アルゴリズムが必要になる。
【０００７】
また、このコントローラは、他の観点では、コネクタ内の機械的な移動量を検知するものであるが、そのためには各コネクタに機械的な移動量を識別可能とする電極などが必要となる。すなわち、検出アルゴリズムだけでなく、コネクタの物理形状も複雑化する。
【０００８】
上述の通り、特許文献１に開示のシステムでは、各構成要素に対して、微小な距離の差を検出可能とする好感度な無線信号センサ、及び複雑なアルゴリズムを実行可能とするＣＰＵ（Central Processing Unit）を有する高機能なコントローラなどを実装する必要があるため、高コスト・高消費電力になってしまう問題がある。
【０００９】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
一実施の形態によれば、接続関係検出システムは、複数の接続ポートを有する複数のモジュールが接続ポートを介して相互に接続された場合において、モジュールの内部における接続ポート間を接続することで、そのモジュールに接続されるものとして、そのモジュールを介して新たに認識されたモジュールを検出するものである。
【発明の効果】
【００１１】
前記一実施の形態によれば、コスト及び消費電力を低減することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１の概要を示す図である。
【図２】実施の形態１に係るモジュールの一例を示す図である。
【図３】実施の形態１に係る仮想モデル生成システムの概略構成を示す図である。
【図４】実施の形態１に係る接続変更機能の概略構成を示す図である。
【図５】実施の形態１に係るモジュールの接続例を示す図である。
【図６】実施の形態１に係る仮想モデル生成システムの概略動作を示すフローチャートである。
【図７】実施の形態１に係る仮想モデル生成システムの接続関係取得処理の概略動作を示すフローチャートである。
【図８】実施の形態１に係る仮想モデル生成システムの構成を示す図である。
【図９】実施の形態１に係るサーバーの構成を示す図である。
【図１０】実施の形態１に係るモジュールＩＤ紐付けデータベースと、各データベースの情報との関係を示す図である。
【図１１】実施の形態１に係るサーバーのハードウェア構成を示す図である。
【図１２】実施の形態１に係るホストの構成を示す図である。
【図１３】実施の形態１に係るホストのハードウェア構成を示す図である。
【図１４】実施の形態１に係るモジュールの構成を示す図である。
【図１５】実施の形態１に係るモジュールの第１の構成例を示す図である。
【図１６】実施の形態１に係るモジュールの第１の構成例のハードウェア構成を示す図である。
【図１７】実施の形態１に係るモジュールの第２の構成例を示す図である。
【図１８】実施の形態１に係るモジュールの第２の構成例のハードウェア構成を示す図である。
【図１９】実施の形態１に係る仮想モデル生成システムの動作を示すフローチャートである。
【図２０】実施の形態１に係る仮想モデル生成システムの接続関係取得処理の動作を示すフローチャートである。
【図２１】実施の形態１に係るサーバーの動作を示すフローチャートである。
【図２２】実施の形態１に係るホストの動作を示すフローチャートである。
【図２３】実施の形態１に係るホストの再帰ループ処理のプログラム例を概念的に示す図である。
【図２４】実施の形態１に係るホストの前処理の動作を示すフローチャートである。
【図２５】実施の形態１に係るホストのモジュールＩＤ一覧取得処理の動作を示すフローチャートである。
【図２６】Ｉ２Ｃのフレームフォーマットを示す図である。
【図２７】実施の形態１に係るモジュールの動作を示すフローチャートである。
【図２８】実施の形態１に係るモジュールＭの接続例における第１の状態を示す図である。
【図２９】図２８に示す第１の状態における接続検知データベースの情報を示す図である。
【図３０】実施の形態１に係るモジュールＭの接続例における第２の状態を示す図である。
【図３１】図３０に示す第２の状態における接続検知データベースの情報を示す図である。
【図３２】実施の形態２に係るホスト及びモジュールの構成を示す図である。
【図３３】実施の形態３に係るモジュール及び接続用部品を示す図である。
【図３４】実施の形態４に係るホストの構成を示す図である。
【図３５】実施の形態５に係るホスト及びモジュールの構成を示す図である。
【図３６】他の実施の形態に係る仮想モデル生成システムの接続関係取得処理の動作を示すフローチャートである。
【図３７】他の実施の形態に係る接続関係検出システムの概略構成を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照しながら、好適な実施の形態について説明する。以下の実施の形態に示す具体的な数値などは、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、それに限定されるものではない。また、以下の記載及び図面では、説明の明確化のため、当業者にとって自明な事項などについては、適宜、省略及び簡略化がなされている。
【００１４】
＜実施の形態１＞
（実施の形態１の概要）
まず、図１を参照して、実施の形態１の概要について説明する。本実施の形態１は、典型的には、ブロックを組み立てるのかのごとく、各モジュールを接続することで、家庭用電気製品（以下、「家電」とも呼ぶ）又は動作するガジェットを作成できるプラットフォームを適用対象とする。
【００１５】
このようなプラットフォームでは、（１）最初に実物を組み立ててから動きをシミュレーションすること、（２）ソフトウェア上で組み立てたモデルで動きをシミュレーションし、その後に実物を組み立てること、のいずれかを実施することが考えられる。しかしながら、上記（１）を実施する場合には、実物を同じモデルをソフトウェアに登録するのに非常に手間がかかってしまうという問題がある。また、上記（２）を実施する場合には、ソフトウェア上で組み立てたモデルと同じように実物を組み立てることができているか確認することが困難であるという問題がある。
【００１６】
以上の理由から、実物を組み立てた後、自動的にその物理形状及び接続関係をソフトウェアを用いて再現し、それを可視化できる機能があると便利である。本実施の形態１として、このような機能を実現するシステムについて説明する。
【００１７】
ユーザは、複数のモジュールを相互に接続することで物理モデルを作成することができる。この物理モデルは、例えば、上述の家電又はガジェット等を構成する。各モジュールは、各モジュールが有する接続ポートを介して接続される。各モジュールは、少なくとも１つの接続ポートを有している。各モジュール毎に、接続ポートの数が異なっていてもよい。モジュールが有する各接続ポートは、そのモジュールが内蔵する制御装置を介して相互に接続されている。
【００１８】
ホストコンピュータ（ＰＣ：Personal Computer）は、物理モデルを構成する複数のモジュールのいずれか１つに接続される。以下、ホストコンピュータを「ホスト」とも呼ぶ。ホストは、ホストと接続されるモジュールと通信できる。ホストは、モジュールを介して、そのモジュールの先に接続される他のモジュールとも通信できる。ホストは、物理モデルを構成する複数のモジュールのそれぞれと通信することで、複数のモジュールの接続関係を確認する。ホストは、このようにして確認した複数のモジュールの接続関係に基づいて、物理モデルをソフトウェア上で再現した仮想モデルを生成する。
【００１９】
そして、一態様として、ホストは、生成した仮想モデルに基づいて、物理シミュレーションを実施することができる。これによれば、上記（１）を実施するにあたり、ユーザが物理モデル（実物）をソフトウェアに登録する手間を無くすことができる。
【００２０】
また、他の一態様として、ホストは、生成した仮想モデルと、ソフトウェア上に組み立てられたモデル（設計データ）とを比較し、両者に差異があるか否かを確認することができる。これによれば、上記（２）を実施するにあたり、実物をソフトウェア上に組み立てたモデルと同じように組み立てることができているか否かを容易に確認できる。また、ソフトウェア上に組み立てられたモデルもしくは生成した仮想モデルのいずれかに、比較した差分に該当する箇所を強調表示することで、差分を容易に認識することができる。
【００２１】
続いて、図２を参照して、本実施の形態１に係るモジュールの一例について説明する。物理モデルを作成するためのモジュールは、単純には、例えば、図２に示すブロックＭａ、Ｍｂであってもよい。
【００２２】
モジュールＭａは、その上面及びその側面の内のいくつかの面に、１面当りに１つの凸部ｃを有する。各凸部ｃは、接続ポートｐを有する。ここでは、モジュールＭａの側面のうち、図２において視認できる３面に凸部が配置されるものとする。また、モジュールＭａは、その底面及びその側面の内のいくつかの面に、１面当りに１つの凹部を有する。凹部は、接続ポートｐ（図示せず）を有する。ここでは、モジュールＭａの側面のうち、図２において視認できない３面に凹部が配置されるものとする。モジュールＭａは、凸部ｃ及び凹部を除けば、その本体部の形状は、好適には立方体形状である。
【００２３】
モジュールＭａの凸部ｃは、他のモジュールＭａの凹部と接続可能である。モジュールＭａの凸部ｃと他のモジュールＭａの凹部を接続することで、凸部ｃの接続ポートｐと凹部の接続ポートｐとが接続される。
【００２４】
モジュールＭｂは、その上面に４つの凸部ｃを有する。各凸部ｃは、接続ポートｐを有する。また、モジュールＭｂは、その底面に４つの凹部（図示せず）を有する。各凹部は、接続ポートｐ（図示せず）を有する。なお、モジュールＭｂの側面は、凸部ｃ及び凹部を有さず、平面となっている。モジュールＭｂは、凸部ｃ及び凹部を除けば、その本体部の形状は、好適には直方体形状である。
【００２５】
モジュールＭｂの４つ凸部ｃは、他のモジュールＭｂの４つの凹部に接続可能である。モジュールＭｂと他のモジュールＭｂとをずらして接続することで、１つ又は複数の凸部及び凹部を接続してもよい。モジュールＭａの凸部ｃと他のモジュールＭａの凹部を接続することで、凸部ｃの接続ポートｐと凹部の接続ポートｐとが接続される。
【００２６】
モジュールの形状は、上述した例に限られない。例えば、複数のモジュールによって作成される物理モデルが、家電又はガジェットであれば、その形状に応じて、より複雑な形状のモジュールを採用してよい。
【００２７】
また、モジュールの電気的・機械的な接続の形状は上述した例に限られない。例えば、上述した例と同様に電気的接続と機械的接続を同時に行えるものとしては、刺すだけで電気的・機械的に接続できるUSBコネクタや、刺してネジ止めし電気的・機械的な接続をするD-SUB(ディスプレイ接続に利用するコネクタ)のような方法を採用しても良い。
【００２８】
（実施の形態１の概略構成）
続いて、図３を参照して、本実施の形態１に係る仮想モデル生成システム１の概略構成について説明する。図３に示すように、仮想モデル生成システム１は、ホスト２と、複数のモジュールＭ１、Ｍ２とを有する。なお、ここでは、２つのモジュールＭ１、Ｍ２によって物理モデルが形成される例について説明するが、モジュールの数は、これに限られない。また、モジュールＭ１、Ｍ２、・・・、Ｍｎ（ｎは、２以上の正整数）は、特に区別しない場合には、「モジュールＭ」とも呼ぶ。
【００２９】
ホスト２は、モジュールＭ１と接続されている。モジュールＭ１は、モジュールＭ２と接続されている。ホスト２は、モジュールＭ１と通信できる。また、ホスト２は、モジュールＭ１を介して、モジュールＭ２と通信できる。
【００３０】
ホスト２は、接続検出機能１０と、仮想モデル生成機能１１とを有する。接続検出機能１０は、複数のモジュールＭ１、Ｍ２のそれぞれと通信することで、複数のモジュールＭ１、Ｍ２の接続関係を検出する。仮想モデル生成機能１１は、接続検出機能１０が検出した複数のモジュールＭ１、Ｍ２の接続関係に基づいて、複数のモジュールＭ１、Ｍ２が構成する物理モデルを表した仮想モデルを生成する。
【００３１】
各モジュールＭ１、Ｍ２は、接続変更機能１２と、モジュールＩＤ管理機能１９と、複数の接続ポートｐ１〜ｐ４とを有する。接続変更機能１２は、モジュールＭ１、Ｍ２の内部における複数の接続ポートｐ１〜ｐ４間の接続状態を変更する。モジュールＩＤ管理機能１９は、モジュールＩＤを保持する。モジュールＩＤは、モジュールを一意に示す情報である。したがって、モジュールＭ１のモジュールＩＤ管理機能１９が有するモジュールＩＤと、モジュールＭ２のモジュールＩＤ管理機能１９が有するモジュールＩＤは異なる。なお、ここでは、モジュールＭ１、Ｍ２が４つの接続ポートｐ１〜ｐ４を有する例について説明するが、モジュールＭが有する接続ポートの数は、これに限られない。また、接続ポートｐ１、ｐ２、・・・、ｐｎ（ｎは、２以上の正整数）は、特に区別しない場合には、「接続ポートｐ」とも呼ぶ。
【００３２】
接続検出機能１０は、各モジュールＭ１、Ｍ２に対して、各モジュールＭ１、Ｍ２の内部における複数の接続ポートｐ１〜ｐ４間の接続状態の変更を要求することができる。各モジュールＭ１、Ｍ２の接続変更機能１２は、接続検出機能１０からの要求に応じて、接続ポートｐ１〜ｐ４間の接続状態を変更する。
【００３３】
ここでは、ホスト２とモジュールＭ１の接続ポートｐ１が接続されている。すなわち、ホスト２とモジュールＭ１が電気的に接続されている。よって、ホスト２は、モジュールＭ１と通信できる。また、モジュールＭ１の接続ポートｐ２とモジュールＭ２の接続ポートｐ１が接続されている。すなわち、モジュールＭ１とモジュールＭ２が電気的に接続されている。
【００３４】
よって、モジュールＭ１の内部において接続ポートｐ１と接続ポートｐ２が接続されている場合、ホスト２は、モジュールＭ１を介して、モジュールＭ２と接続される。すなわち、ホスト２とモジュールＭ２が電気的に接続される。よって、この場合は、ホスト２は、モジュールＭ２と通信できる。一方、モジュールＭ１の内部において接続ポートｐ１と接続ポートｐ２が接続されていない場合、ホスト２は、モジュールＭ２と接続されない。すなわち、ホスト２とモジュールＭ２が電気的に非接続になる。よって、この場合は、ホスト２は、モジュール２と通信できない。
【００３５】
このように、モジュールＭ１の内部において接続ポートｐ１、ｐ２間が接続されている場合、ホスト２は、モジュールＭ１とモジュールＭ２の両方と通信できる。一方、モジュールＭ１の内部において接続ポートｐ１、ｐ２間が接続されていない場合、ホスト２は、モジュールＭ１と通信できるが、モジュールＭ２とは通信できない。すなわち、ホスト２とモジュールＭ１の先に接続されるモジュールＭ２との通信可否は、モジュールＭ１の内部の接続ポートｐ１、ｐ２間の接続状態に依存する。言い換えると、モジュールＭ１の内部において接続ポートｐ１、ｐ２間を接続することで新たにモジュールＭ２と通信可能となった場合、モジュールＭ２はモジュールＭ１の先に接続されたモジュールと言える。
【００３６】
このように、接続検出機能１０は、各モジュールＭ１、Ｍ２の内部における接続ポートｐ１〜ｐ４間の接続状態の変化と、各モジュールＭ１、Ｍ２との通信可否の変化に基づいて、各モジュールＭ１、Ｍ２の接続関係を検出することができる。
【００３７】
接続検出機能１０は、各モジュールＭ１、Ｍ２からそのモジュールＩＤを取得することができるか否かによって、各モジュールＭ１、Ｍ２との通信可否を判断する。よって、各モジュールＭ１、Ｍ２との通信可否の変化は、接続検出機能１０が取得するモジュールＩＤの数の変化によって検出することができる。すなわち、モジュールＭ１の内部における接続ポートｐ１、ｐ２間が接続されていない場合、接続検出機能１０は、モジュールＭ１と通信することができるが、モジュールＭ２とは通信することができない。よって、接続検出機能１０は、モジュールＭ１からそのモジュールＩＤを取得することができるが、モジュールＭ２からそのモジュールＩＤを取得することはできない。一方、モジュールＭ１の内部における接続ポートｐ１、ｐ２間が接続されている場合、接続検出機能１０は、モジュールＭ１とモジュールＭ２の両方と通信することができる。よって、接続検出機能１０は、モジュールＭ１とモジュールＭ２の両方からそれらのモジュールＩＤを取得することができる。
【００３８】
したがって、接続検出機能１０は、モジュールＭ１の内部における接続ポートｐ１、ｐ２間を接続することで、新たにモジュールＭ２のモジュールＩＤが取得されるようになった場合、モジュールＭ１にモジュールＭ２が接続されていると判断する。
【００３９】
このように、本実施の形態１では、ホスト２は、モジュールＭ１の内部において接続ポートｐ１、ｐ２間を接続することで、モジュールＭ１に接続されるモジュールＭ２としてモジュールＭ１を介して新たに認識されたモジュールＭ２を検出する。
【００４０】
続いて、図４を参照して、実施の形態１に係る接続変更機能１２の概略構成について説明する。図４に示すように、モジュールＭ１、Ｍ２の接続変更機能１２は、制御機能４０と、スイッチＳＷとを有する。なお、図４では、各モジュールＭ１、Ｍ２が２つの接続ポートｐ１、ｐ２を有する例について説明する。
【００４１】
制御機能４０は、ホスト２からの要求に応じて、スイッチＳＷをオン又はオフにする。スイッチＳＷは、接続ポートｐ１と接続ポートｐ２の間に設けられている。スイッチＳＷは、制御機能４０によってオンにされると、接続ポートｐ１と接続ポートｐ２を電気的に接続する。スイッチＳＷは、制御機能４０によってオフにされると、接続ポートｐ１と接続ポートｐ２を電気的に非接続にする。
【００４２】
ホスト２は、各モジュールＭ１、Ｍ２に対して、接続ポートｐ１、ｐ２間の接続状態の変更を要求する情報である接続変更命令を送信する。この接続変更命令として、接続ポートｐ１、ｐ２間を接続することを要求するものと、接続ポートｐ１、ｐ２間を非接続にすることを要求するものとがある。
【００４３】
制御機能４０は、ホスト２からの接続変更命令に応じて、接続ポートｐ１、ｐ２間の接続状態を変更する。すなわち、制御機能４０は、接続ポートｐ１、ｐ２間を接続することを要求する接続変更命令に応じて、スイッチＳＷをオンにして接続ポートｐ１、ｐ２間を接続する。一方、制御機能４０は、接続ポートｐ１、ｐ２間を非接続にすることを要求する接続変更命令に応じて、スイッチＳＷをオフにして接続ポートｐ１、ｐ２間を非接続にする。
【００４４】
ここで、本実施の形態１において、各モジュールＭ１、Ｍ２のスイッチＳＷがオンとなり、すべてのモジュールが接続された状態となる場合、接続ポートｐ１と接続ポートｐ２は単に短絡された状態であるため１つのバスにすべてのモジュールＭ１、Ｍ２が接続された状態となる。そのため、ホスト２はモジュールＭ１、Ｍ２が接続されていることは判断できるが、直接接続されているモジュールＭが、モジュールＭ１であるのかモジュールＭ２であるのかを判断することができない。
【００４５】
そこで、本実施の形態１では、ホスト２は、最初に、全てのモジュールＭ１、Ｍ２のスイッチＳＷをオフにする。なお、各モジュールＭ１、Ｍ２のスイッチＳＷは、予めオフにされているものとしてもよい。この状態だと、ホスト２は、ホスト２に直接接続されているモジュールＭがモジュールＭ１であると認識することができる。次に、ホスト２は、接続ポートｐ１、ｐ２間を接続することを要求する接続変更命令をモジュールＭ１に送信する。モジュールＭ１は、スイッチＳＷをオンにして接続ポートｐ１、ｐ２間を接続する。そのため、ホスト２は、モジュールＭ１を介して、新たにモジュールＭ２と通信できるようになる。よって、ホスト２は、モジュールＭ１の先にモジュールＭ２が接続されていることを認識できるようになる。
【００４６】
本実施の形態１では、上述の動作により、モジュールＭ１、Ｍ２を１つずつ接続することで、複数のモジュールＭ１、Ｍ２の接続関係を認識する。
【００４７】
続いて、図５を参照して、本実施の形態１に係るモジュールＭがより複雑に接続された例について説明する。図５に示す例では、仮想モデル生成システム１は、ホスト２と、複数のモジュールＭ１〜Ｍ７とを有する。
【００４８】
図５は、モジュールＭ１〜Ｍ７によって動くガジェットとして自動車が組み立てられた例を示している。モジュールＭ１は、モータとして機能する。モジュールＭ２、Ｍ３、Ｍ５、Ｍ７は、タイヤとして機能する。モジュールＭ４は、フレームとして機能する。モジュールＭ６は、ギアＢＯＸとして機能する。
【００４９】
モジュールＭ１は、左後輪として機能するモジュールＭ２と、右後輪として機能するモジュールＭ３が接続されている。モジュールＭ４は、その後部でモジュールＭ１と接続されており、その前部でモジュールＭ６と接続されている。モジュールＭ６は、左前輪として機能するモジュールＭ５と、右前輪として機能するモジュールＭ７と接続されている。
【００５０】
図５では、各モジュールＭ１〜Ｍ７は、４つの接続ポートｐ１〜ｐ４と、３つのスイッチＳＷ１〜ＳＷ３を有している。スイッチＳＷ１〜ＳＷ３のそれぞれは、接続ポートｐ１〜ｐ３のそれぞれに対応する。なお、スイッチＳＷ１、ＳＷ２、・・・、ＳＷｎ（ｎは、２以上の正整数）も、特に区別しない場合には、「スイッチＳＷ」とも呼ぶ。
【００５１】
スイッチＳＷ１は、接続ポートｐ４と接続ポートｐ１の間に設けられている。スイッチＳＷ１は、制御機能４０によってオンにされると、接続ポートｐ４と接続ポートｐ１を電気的に接続する。スイッチＳＷ１は、制御機能４０によってオフにされると、接続ポートｐ４と接続ポートｐ１を電気的に非接続にする。
【００５２】
スイッチＳＷ２は、接続ポートｐ４と接続ポートｐ２の間に設けられている。スイッチＳＷ２は、制御機能４０によってオンにされると、接続ポートｐ４と接続ポートｐ２を電気的に接続する。スイッチＳＷ２は、制御機能４０によってオフにされると、接続ポートｐ４と接続ポートｐ２を電気的に非接続にする。
【００５３】
スイッチＳＷ３は、接続ポートｐ４と接続ポートｐ３の間に設けられている。スイッチＳＷ３は、制御機能４０によってオンにされると、接続ポートｐ４と接続ポートｐ３を電気的に接続する。スイッチＳＷ３は、制御機能４０によってオフにされると、接続ポートｐ４と接続ポートｐ３を電気的に非接続にする。
【００５４】
モジュールＭ１の接続ポートｐ１は、モジュールＭ２の接続ポートｐ４と接続されている。モジュールＭ１の接続ポートｐ２は、モジュールＭ４の接続ポートｐ４と接続されている。モジュールＭ１の接続ポートｐ３は、モジュールＭ３の接続ポートｐ４と接続されている。モジュールＭ１の接続ポートｐ４は、ホスト２と接続されている。
【００５５】
モジュールＭ２の接続ポートｐ１〜ｐ３は、他のモジュールＭと接続されていない。モジュールＭ３の接続ポートｐ１〜ｐ３は、他のモジュールと接続されていない。
【００５６】
モジュールＭ４の接続ポートｐ２は、モジュールＭ６の接続ポートｐ４と接続されている。モジュールＭ４の接続ポートｐ１、ｐ３は、他のモジュールＭと接続されていない。
【００５７】
モジュールＭ６の接続ポートｐ１は、モジュールＭ５の接続ポートｐ４と接続されている。モジュールＭ６の接続ポートｐ２は、他のモジュールＭと接続されていない。モジュールＭ６の接続ポートｐ３は、モジュールＭ７の接続ポートｐ４と接続されている。
【００５８】
モジュールＭ５の接続ポートｐ１〜ｐ３は、他のモジュールＭと接続されていない。モジュールＭ７の接続ポートｐ１〜ｐ３は、他のモジュールＭと接続されていない。
【００５９】
次に、このように接続されたモジュールＭ１〜Ｍ７の接続関係を確認する手順について説明する。まず、上述と同様に、ホスト２は、最初は、全てのモジュールＭ１〜Ｍ７における全てのスイッチＳＷ１〜ＳＷ３はオフにされる。
【００６０】
ホスト２は、モジュールＭ１と接続されており、モジュールＭ１と通信できる。そのため、モジュールＭ１を認識できる。ホスト２は、モジュールＭ１を認識すると、モジュールＭ１のスイッチＳＷ１〜ＳＷ３を、スイッチＳＷ１、スイッチＳＷ２、スイッチＳＷ３の順にオンにする。
【００６１】
ホスト２は、モジュールＭ１のスイッチＳＷ１をオンにしたとき、モジュールＭ２と接続されて、モジュールＭ２と通信できるようになる。すなわち、ホスト２は、モジュールＭ１に接続されるモジュールＭとして、新たにモジュールＭ２を認識する。ホスト２は、モジュールＭ２を認識すると、モジュールＭ２のスイッチＳＷ１〜ＳＷ３を、スイッチＳＷ１、スイッチＳＷ２、スイッチＳＷ３の順にオンにする。
【００６２】
しかしながら、モジュールＭ２の接続ポートｐ１〜ｐ３には他のモジュールＭは接続されていないため、ホスト２は、モジュールＭ２のスイッチＳＷ１〜ＳＷ３のいずれをオンにしても、新たなモジュールを認識することはできない。
【００６３】
そのため、ホスト２は、スイッチＳＷを操作する対象をモジュールＭ１に戻し、次のスイッチＳＷ２をオンにする。ホスト２は、スイッチＳＷ２をオンにしたとき、モジュールＭ４と接続されて、モジュールＭ４と通信できるようになる。すなわち、ホスト２は、新たにモジュールＭ４を認識する。ホスト２は、モジュールＭ４を認識すると、モジュールＭ４のスイッチＳＷ１〜ＳＷ３を、スイッチＳＷ１、スイッチＳＷ２、スイッチＳＷ３の順にオンにする。
【００６４】
ホスト２は、モジュールＭ４のスイッチＳＷ１をオンにしたときは、新たなモジュールＭを認識することはできないが、次にスイッチＳＷ２をオンにしたとき、モジュールＭ６と接続されて、モジュールＭ６と通信できるようになる。すなわち、ホスト２は、モジュールＭ４に接続されるモジュールＭとして、新たにモジュールＭ６を認識する。ホスト２は、モジュールＭ６を認識すると、スイッチＳＷ１、スイッチＳＷ２、スイッチＳＷ３の順に、モジュールＭ６のスイッチＳＷ１〜ＳＷ３をオンにする。
【００６５】
ホスト２は、モジュールＭ６のスイッチＳＷ１をオンにしたとき、モジュールＭ５と接続されて、モジュールＭ５と通信できるようになる。すなわち、ホスト２は、モジュールＭ６に接続されるモジュールＭとして、新たにモジュールＭ５を認識する。ホスト２は、モジュールＭ５を認識すると、モジュールＭ５のスイッチＳＷ１〜ＳＷ３を、スイッチＳＷ１、スイッチＳＷ２、スイッチＳＷ３の順にオンにする。
【００６６】
しかしながら、モジュールＭ５の接続ポートｐ１〜ｐ３には他のモジュールＭは接続されていないため、ホスト２は、モジュールＭ５のスイッチＳＷ１〜ＳＷ３のいずれをオンにしても、新たなモジュールＭを認識することはできない。
【００６７】
そのため、ホスト２は、スイッチＳＷを操作する対象をモジュールＭ６に戻し、次のスイッチＳＷ２をオンにする。ホスト２は、スイッチＳＷ２をオンにしたときは、新たなモジュールＭを認識することはできないが、次にスイッチＳＷ３をオンにしたとき、モジュールＭ７と接続されて、モジュールＭ７と通信できるようになる。すなわち、ホスト２は、モジュールＭ６に接続されるモジュールＭとして、新たにモジュールＭ７を認識する。ホスト２は、モジュールＭ７を認識すると、スイッチＳＷ１、スイッチＳＷ２、スイッチＳＷ３の順に、モジュールＭ７のスイッチＳＷ１〜ＳＷ３をオンにする。
【００６８】
しかしながら、モジュールＭ７の接続ポートｐ１〜ｐ３には他のモジュールＭは接続されていないため、ホスト２は、スイッチＳＷ１〜ＳＷ３のいずれをオンにしても、新たなモジュールＭを認識することはできない。
【００６９】
そのため、ホスト２は、スイッチＳＷを操作する対象をモジュールＭ６に戻すが、モジュールＭ６では全てのスイッチＳＷ１〜ＳＷ３をオン済みである。よって、ホスト２は、スイッチＳＷを操作する対象をさらにモジュールＭ４に戻し、次のスイッチＳＷ３をオンにするが、新たなモジュールＭを認識することはできない。そのため、ホスト２は、スイッチＳＷを操作する対象をさらにモジュールＭ１に戻し、次のスイッチＳＷ３をオンにする。
【００７０】
ホスト２は、スイッチＳＷ３をオンにしたとき、モジュールＭ３と接続されて、モジュールＭ３と通信できるようになる。すなわち、ホスト２は、モジュールＭ１に接続されるモジュールＭとして、新たにモジュールＭ３を認識する。ホスト２は、モジュールＭ３を認識すると、モジュールＭ３のスイッチＳＷ１〜ＳＷ３を、スイッチＳＷ１、スイッチＳＷ２、スイッチＳＷ３の順にオンにする。
【００７１】
しかしながら、モジュールＭ３の接続ポートｐ１〜ｐ３には他のモジュールＭは接続されていないため、ホスト２は、モジュールＭ７のスイッチＳＷ１〜ＳＷ３のいずれをオンにしても、新たなモジュールＭを認識することはできない。
【００７２】
そのため、ホスト２は、スイッチＳＷを操作する対象をモジュールＭ１に戻すが、モジュールＭ６では全てのスイッチＳＷ１〜ＳＷ３をオン済みである。よって、ホスト２は、モジュールＭ１〜Ｍ７の接続関係の確認を終了する。このように、再帰的に各モジュールＭ１〜Ｍ７のスイッチＳＷ１〜ＳＷ３を１つずつオンにしたときに、どのモジュールＭと新たに通信できるようになるかを確認することで、モジュールＭ１〜Ｍ７の接続関係を認識することができる。
【００７３】
（実施の形態１の概略動作）
続いて、図６を参照して、本実施の形態１に係る仮想モデル生成システム１の概略動作について説明する。
【００７４】
ユーザは、複数のモジュールを相互に接続することで物理モデルを作成する（Ｓ１）。ホスト２の接続検出機能１０は、物理モデルを構成する複数のモジュールＭの接続関係を取得する（Ｓ２）。ホスト２の仮想モデル生成機能１１は、接続検出機能１０が取得した複数のモジュールＭの接続関係に基づいて仮想モデルの形状を計算し、計算した仮想モデルの形状を表示する（Ｓ３）。
【００７５】
続いて、図７を参照して、本発明の実施の形態１に係る仮想モデル生成システム１の接続関係取得処理（Ｓ２）の概略動作について説明する。
【００７６】
まず、ホスト２の接続検出機能１０は、モジュールＩＤ一覧を取得する（Ｓ１１）。最初は、全てのモジュールＭにおいて全ての接続ポートｐ間が未接続であるため、ホスト２に直接接続されるモジュールＭ１のモジュールＩＤのみが取得される。以下、ホスト２の接続検出機能１０は、次に説明するステップＳ１２、Ｓ１３の処理を、全てのモジュールＭの全てのスイッチＳＷに関して処理を実行するまで繰り返す。接続検出機能１０は、モジュールＭのスイッチＳＷをオンにして接続ポートｐ間を接続する（Ｓ１２）。接続検出機能１０は、モジュールＩＤ一覧を取得する（Ｓ１３）。すなわち、接続検出機能１０は、ホスト２と接続される全てのモジュールＭからモジュールＩＤを取得する。これにより、接続検出機能１０は、新たなモジュールＩＤが検出された場合は、そのモジュールＩＤで特定されるモジュールＭを、スイッチＳＷを操作したモジュールＭに接続されるモジュールＭとして検出することができる。
【００７７】
特許文献１に開示の技術では、各構成要素に対して、微小な距離の差を検出可能とする好感度な無線信号センサ、及び複雑なアルゴリズムを実行可能とするＣＰＵを有する高機能なコントローラが必要であった。そのため、各構成要素ひいてはシステムが高コスト・高消費電力になってしまう問題があった。
【００７８】
それに対して、本実施の形態１では、モジュールＭには、スイッチＳＷと、スイッチＳＷを制御する制御回路（制御機能）のみを実装すればよい。そのため、モジュールＭの構成を大幅に簡素化することができ、モジュールＭひいてはシステムのコスト及び消費電力を大幅に削減することができる。
【００７９】
無線信号で距離を測定する技術では、距離を測るために無線信号の強度を測定する必要がある。そのため、高精度に距離を測定するためには高感度の無線ＩＣ（Integrated Circuit）が必要となり、それを実装したマイクロコントローラの価格は１個当たり１０００円近くなる。一方、本実施の形態１では、有線の通信機能を有するマイコンで足りるため、それを実装したマイクロコントローラの価格は１００円以下であり、価格を１／１０程度まで削減することができる。
【００８０】
（実施の形態１の詳細構成）
以降は、本実施の形態１に係る仮想モデル生成システム１について、より詳細に説明する。
【００８１】
まず、図８を参照して、本実施の形態１に係る仮想モデル生成システム１の構成について説明する。図８に示すように、仮想モデル生成システム１は、ホスト２と、サーバー３と、複数のモジュールＭとを有する。
【００８２】
上述したように、複数のモジュールＭは、相互に接続される。ホスト２は、複数のモジュールＭのいずれか１つに接続される。ホスト２は、インターネットを介してサーバー３と接続されている。
【００８３】
ホスト２は、上述したように、モジュールＭに対する接続変更命令の送信、及びモジュールＩＤの取得を繰り返すことで、複数のモジュールＭの接続関係を認識する。ここで、ホスト２は、新たなモジュールＭを検出した場合、そのモジュールＭの各種情報をサーバー３に問い合わせる。サーバー３は、ホスト２からの問い合わせに応じて、そのモジュールＭの各種情報であるモジュールデータをホスト２に提供する。
【００８４】
より具体的には、ホスト２は、モジュールの各種情報の問い合わせとして、モジュールデータの送信を要求するデータ要求情報をサーバー３に送信する。このデータ要求情報は、ホスト２が新たに検出したモジュールＭのモジュールＩＤを含む。すなわち、ホスト２は、モジュールＩＤをキーとして、モジュールＭの各種情報をサーバー３に問い合わせる。サーバー３は、ホスト２からのデータ要求情報に応じて、そのデータ要求情報に含まれるモジュールＩＤで特定されるモジュールＭのモジュールデータをホスト２に送信する。このモジュールデータは、モジュールＩＤ、接続ポート数、接続ポートアドレス、モジュールの形状、接続ポート座標、素材・重さ、メーカ・型番、及びモジュール名などを示す。
【００８５】
ホスト２は、自身が認識した複数のモジュールＭの接続関係と、サーバー３から取得したモジュールデータとに基づいて、各モジュールＭの座標及び姿勢を計算する。そして、ホスト２は、最終的には、仮想モデルの三次元形状を表示する。
【００８６】
続いて、図９を参照して、実施の形態１に係るサーバー３の構成について説明する。図９に示すように、サーバー３は、制御手段３０と、入力手段３１と、出力手段３２とを有する。また、サーバー３は、モジュールＩＤ紐付けデータベース３０１と、接続ポート数データベース３０２と、接続ポートアドレスデータベース３０３と、形状・接続ポート座標データベース３０４と、メーカ・型番データベース３０５と、モジュール名データベース３０６と、素材・重さデータベース３０７とが予め格納されている。
【００８７】
制御手段３０は、サーバー３を統括的に制御する。制御手段３０は、ホスト２からのモジュールＩＤをキーとする問い合わせに応じて、そのモジュールＩＤで特定されるモジュールＭの各種情報を収集する。制御手段３０は、収集した各種情報を、出力手段３２を介してモジュールデータとしてホスト２に提供する。
【００８８】
入力手段３１は、ホスト２から送信された情報を受信し、制御手段３０に出力する。出力手段３２は、制御手段３０から出力された情報を、ホスト２に送信する。
【００８９】
モジュールＩＤ紐付けデータベース３０１は、モジュールＩＤと、データベース３０２〜３０６において、そのモジュールＩＤに対応する情報とを紐付ける情報である。すなわち、データベース３０２〜３０６からモジュールＩＤに対応する情報を取得することで、そのモジュールＩＤで特定されるモジュールＭの各種情報が取得される。
【００９０】
接続ポート数データベース３０２は、モジュールＭの接続ポート数を示す情報である。より具体的には、接続ポート数データベース３０２は、複数のモジュールＭが取り得る接続ポート数の一覧を示す情報である。モジュールＭの種類が同一である場合、それらのモジュールＭ間で接続ポート数は同一である。一方、モジュールＭの種類が異なる場合、それらのモジュールＭ間で接続ポート数は異なる場合がある。接続ポート数データベース３０２は、全ての異なる接続ポート数を網羅するように、接続ポート数の一覧を示す。
【００９１】
接続ポートアドレスデータベース３０３は、モジュールＭが有する接続ポートｐのアドレス（レジスタ値）を示す情報である。より具体的には、接続ポート数データベース３０２は、複数のモジュールＭが取り得る接続ポートｐのアドレスの組み合わせの一覧を示す情報である。ここで、接続ポートのアドレスの組み合わせとは、モジュールＭの接続ポート数が１つである場合、その１つの接続ポートｐのアドレスを示すことを意味し、モジュールＭの接続ポート数が２つ以上である場合、それら２つ以上の接続ポートｐのそれぞれのアドレスを示すことを意味する。モジュールＭの種類が同一である場合、それらのモジュールＭが有する接続ポートｐのアドレスの組み合わせは同一である。一方、モジュールＭの種類が異なる場合、それらのモジュールＭが有する接続ポートｐのアドレスの組み合わせは異なる場合がある。接続ポート数データベース３０２は、全ての異なる組み合わせを網羅するように、接続ポートのアドレスの組み合わせの一覧を示す。
【００９２】
形状・接続ポート座標データベース３０４は、モジュールＭの形状と、モジュールＭの各接続ポートｐの座標とを示す情報である。より具体的には、形状・接続ポート座標データベース３０４は、モジュールＭが取り得る形状及び各接続ポートｐの座標の組の一覧を示す情報である。ここで、各接続ポートｐの座標は、モジュールＭの接続ポート数が１つである場合、その１つの接続ポートｐの座標を示すことを意味し、モジュールＭの接続ポート数が２つ以上である場合、それら２つ以上の接続ポートｐのそれぞれの座標を示すことを意味する。モジュールＭの種類が同一である場合、それらのモジュールＭの形状と、それらのモジュールＭが有する各接続ポートｐの座標は同一である。一方、モジュールＭの種類が異なる場合、それらのモジュールＭの形状と、それらのモジュールＭが有する各接続ポートｐの座標は異なる場合がある。形状・接続ポート座標データベース３０４は、全ての異なる形状と各接続ポートｐの座標の組を網羅するように、形状及び各接続ポートｐの座標の組の一覧を示す。
【００９３】
メーカ・型番データベース３０５は、モジュールＭのメーカと、モジュールＭの型番とを示す情報である。より具体的には、メーカ・型番データベース３０５は、モジュールＭが取り得るメーカ及び型番の組の一覧を示す情報である。モジュールＭの種類が同一である場合、それらのモジュールＭのメーカは同一である。一方、モジュールＭの種類が異なる場合、それらのモジュールＭのメーカは異なる場合がある。モジュールＭの種類が同一である場合、それらのモジュールＭの型番は同一である。一方、モジュールＭの種類が異なる場合、それらのモジュールＭの型番は異なる。メーカ・型番データベース３０５は、全ての異なるメーカ及び型番の組を網羅するように、メーカ及び型番の組の一覧を示す。
【００９４】
モジュール名データベース３０６は、モジュールＭのモジュール名を示す情報である。より具体的には、モジュール名データベース３０６は、モジュールＭが取り得るモジュール名の一覧を示す情報である。モジュールＭの種類が同一である場合、それらのモジュールＭのモジュール名は同一である。一方、モジュールＭの種類が異なる場合、それらのモジュールＭのモジュール名は異なる。モジュール名データベース３０６は、全ての異なるモジュール名を網羅するように、モジュール名の一覧を示す。
【００９５】
素材・重さデータベース３０７は、モジュールＭの素材と、モジュールＭの重さとを示す情報である。より具体的には、素材・重さデータベース３０７は、モジュールＭが取り得る素材及び重さの組の一覧を示す情報である。モジュールＭの種類が同一である場合、それらのモジュールＭの素材及び重さは同一である。一方、モジュールＭの種類が異なる場合、それらのモジュールＭの素材及び重さは異なる場合がある。素材・重さデータベース３０７は、全ての異なる素材及び重さの組を網羅するように、素材及び重さの組の一覧を示す。
【００９６】
なお、上述の説明では、形状と接続ポート座標が同一のデータベース３０４で示され、メーカと型番が同一のデータベース３０５で示され、素材と重さが同一のデータベース３０７で示される例について説明したが、サーバー３に格納されるデータベースの構成は、これに限られない。例えば、形状と接続ポート座標とを別々のデータベースで示すようにしてもよく、メーカと型番とを別々のデータベースで示すようにしてもよく、素材と重さとを別々のデータベースで示すようにしてもよい。また、上述の例で別々のデータベースで示されている情報を同一のデータベースで示すようにしてもよい。
【００９７】
続いて、図１０を参照して、実施の形態１に係るサーバー３においてモジュールの各種情報を取得する動作について説明する。
【００９８】
図１０に示すように、モジュールＩＤ紐付けデータベース３０１は、モジュールＭのモジュールＩＤと、各データベース３０２〜３０７において、そのモジュールＩＤに対応する情報とを紐付けている。より具体的には、モジュールＩＤ紐付けデータベース３０１は、モジュールＩＤと、各データベース３０２〜３０７において、いずれか１つの情報を特定する識別情報との組を示している。図１０では、識別情報が、各データベース３０２〜３０７において一覧で示される複数の情報のそれぞれに対して、一意となるように割り当てられた識別番号である例について示している。この識別番号は、例えば、図１０に示すように、各データベース３０２〜３０７が、複数の情報の一覧をテーブルで示している場合には、そのテーブルの行番号であってもよい。なお、図１０の例では、説明の簡略化のため、モジュールＩＤ紐付けデータベース３０１を、１つのモジュールＩＤについてのみ示している。
【００９９】
図１０の例では、モジュールＩＤ紐付けデータベース３０１は、モジュールＩＤ「Ｍ１」と、接続ポート数データベース３０２に対する識別番号「２」と、接続ポートアドレスデータベース３０３に対する識別番号「２」と、形状・接続ポート座標データベース３０４に対する識別番号「２」と、メーカ・型番データベース３０５に対する識別番号「１」と、モジュール名データベース３０６に対する識別番号「３」と、素材・重さデータベース３０７に対する識別番号「２」とが紐付けられている。
【０１００】
よって、この場合は、サーバー３の制御手段３０は、ホスト２からのモジュールＩＤ「Ｍ１」をキーとする問い合わせに応じて、接続ポート数データベース３０２からは、識別番号「２」で特定される情報として、接続ポート数「２」を示す情報を取得する。また、制御手段３０は、接続ポートアドレスデータベース３０３からは、識別番号「２」で特定される情報として、２つの接続ポートのアドレス「８０、８１」を示す情報を取得する。また、制御手段３０は、形状・接続ポート座標データベース３０４からは、識別番号「２」で特定される情報として、形状を示す情報「Ｆｉｌｅ２」と、２つの接続ポートの座標「（ｘ１,ｙ１,ｚ１、ｘ２,ｙ２,ｚ２）」を示す情報の組を取得する。ここで、形状を示す情報「Ｆｉｌｅ２」は、例えばＳＴＬ（Standard Triangulated Language）ファイルである。このように、各データベース３０２〜３０７から取得される情報は、その全部又は一部がファイルの形式で取得されてもよい。また、制御手段３０は、メーカ・型番データベース３０５からは、識別番号「１」で特定される情報として、メーカ「ＡＡＡ」を示す情報と、型番「Ａ１１１」を示す情報との組を取得する。また、制御手段３０は、モジュール名データベース３０６からは、識別番号「３」で特定される情報として、モジュール名「モジュールＣ」を示す情報を取得する。また、制御手段３０は、素材・重さデータベース３０７からは、識別番号「２」で特定される情報として、素材「素材Ｂ」を示す情報と、重さ「ＹＹ[ｇ]」を示す情報との組を取得する。
【０１０１】
制御手段３０は、このようにして取得した情報を、モジュールＩＤ「Ｍ１」で特定されるモジュールＭのモジュールデータとしてホスト２に送信する。このように、モジュールＩＤ紐付けデータベース３０１によって、モジュールＩＤと、そのモジュールＩＤで特定されるモジュールの各種情報とを紐付けることで、モジュールＩＤをキーとしてモジュールＭの各種情報を各データベース３０２〜３０７から取得することを可能としている。
【０１０２】
ここで、モジュールＩＤをキーとしてモジュールの各種情報を取得する方法は、これに限られない。例えば、サーバー３において、上述のモジュールＩＤ紐付けデータベース３０１及び各データベース３０２〜３０７に代えて、モジュールＩＤと、接続ポート数と、接続ポートアドレスと、形状と、接続ポート座標と、メーカと、型番と、モジュール名と、素材と、重さとを対応付けた情報を有するようにしてもよい。しかしながら、好ましくは、上述したように、サーバー３において、モジュールＩＤ紐付けデータベース３０１及び各データベース３０２〜３０７とを有するようにするとよい。このようにすることで、接続ポート数と、接続ポートアドレスと、形状と、接続ポート座標と、メーカと、型番と、モジュール名と、素材と、重さのそれぞれについて、同一の情報を重複してサーバー３に有する必要がなくなるため、サーバー３における記憶領域の消費量を低減することができる。
【０１０３】
続いて、図１１を参照して、本発明の実施の形態１に係るサーバー３のハードウェア構成について説明する。
【０１０４】
サーバー３は、ＣＰＵ３０００と、メモリ３００１と、ハードディスク３００２と、ネットワークアダプタ３００３とを有する。
【０１０５】
ＣＰＵ３０００は、サーバー３を統括的に制御する。ＣＰＵ３０００は、ハードディスク３００２に格納されたサーバープログラム３０９をメモリ３００１にロードして実行することで、サーバー３としての各種処理を実行する。すなわち、ＣＰＵ３０００とメモリ３００１は、制御手段３０として機能する。言い換えると、サーバープログラム３０９は、ＣＰＵ３０００に対して制御手段３０としての処理を実行させるためのコードを含む。また、ＣＰＵ３０００は、各種処理の実行に際して必要に応じて、ハードディスク３００２に格納されたモジュールＩＤ紐付けデータベース３０１、及び各データベース３０２〜３０７の一部又は全部をメモリ３００１にロードして参照する。
【０１０６】
メモリ３００１は、ＣＰＵ３０００が利用する情報を一時的に格納する。この情報には、上述したように、モジュールＩＤ紐付けデータベース３０１、各データベース３０２〜３０７、及びサーバープログラム３０９も含まれる。メモリ３００１は、例えばＤＲＡＭ（Dynamic Random Access Memor）及びＳＲＡＭ（Static Random Access Memory）等の揮発性の記憶装置である。
【０１０７】
ハードディスク３００２は、モジュールＩＤ紐付けデータベース３０１と、各データベース３０２〜３０７と、サーバープログラム３０９が予め格納されている。なお、ハードディスク３００２のような不揮発性の記憶装置であれば、ハードディスク３００２に代えて、例えばフラッシュメモリ等の他の記憶装置を採用してもよい。メモリ３００１及びハードディスク３００２は、サーバー３が利用する情報が格納される記憶手段として機能する。なお、記憶手段として機能する記憶装置の数及び組み合わせも、上述の例に限られない。
【０１０８】
ネットワークアダプタ３００３は、ＣＰＵ３０００から出力された情報を、インターネットで伝送可能な形式に変換して送信する。また、ネットワークアダプタ３００３は、インターネットからの情報を受信し、サーバー３内で処理可能な形式に変換してＣＰＵ３０００に出力する。ネットワークアダプタ３００３は、入力手段３１及び出力手段３２として機能する。
【０１０９】
続いて、図１２を参照して、実施の形態１に係るホスト２の構成について説明する。図１２に示すように、ホスト２は、接続検出機能１０と、仮想モデル生成機能１１と、表示手段２５と、情報問い合わせ手段２６とを有する。接続検出機能１０は、処理手段２０と、モジュールＩＤ取得手段２１と、命令生成手段２２と、通信制御手段２３と、接続検知データベース２０９とを有する。仮想モデル生成機能１１は、仮想モデル生成手段２４と、モジュールデータベース２１９とを有する。すなわち、ホスト２は、接続検知データベース２０９と、モジュールデータベース２１９とが格納される。
【０１１０】
処理手段２０は、複数のモジュールＭのそれぞれと通信することで、複数のモジュールＭの接続関係を認識し、認識した接続関係を示す接続検知データベース２０９を構築する。
【０１１１】
モジュールＩＤ取得手段２１は、モジュールＩＤ一覧を取得する。モジュールＩＤ取得手段２１は、複数のモジュールＭの全てからのモジュールＩＤの取得を試みることで、ホスト２と接続されるモジュールＭのモジュールＩＤ一覧を取得する。より具体的には、モジュールＩＤ取得手段２１は、複数のモジュールＭのそれぞれに対して、モジュールＩＤの返信を要求する情報であるＩＤ返信命令を、通信制御手段２３を介して送信する。モジュールＩＤ取得手段２１は、モジュールＭからＩＤ返信命令に対して返信されたＩＤ情報を受信する。このＩＤ情報は、そのモジュールＭのモジュールＩＤを示す。
【０１１２】
命令生成手段２２は、処理手段２０からの要求に応じて、モジュールＭ内における接続ポートｐ間の接続状態の変更を要求する接続変更命令を生成する。より具体的には、処理手段２０は、接続状態を変更するモジュールＭ及びその接続ポートｐを指定して、命令生成手段２２に対してモジュールＭ内における接続ポートｐ間の接続状態の変更を要求する。命令生成手段２２は、処理手段２０から指定されたモジュールＭの接続ポートｐの接続状態の変更を要求する接続変更命令として、ホスト２と各モジュールＭとの間の通信に採用された通信規格のコマンドを生成する。命令生成手段２２は、生成した接続変更命令を、通信制御手段２３を介して送信する。なお、この通信規格として、Ｉ２Ｃ（Inter-Integrated Circuit）、ＵＳＢ（Universal Serial Bus）、ＲＳ４３５、ＣＡＮ（Controller Area Network）、ＩＳＡ（Industry Standard Architecture）、及びＦｌｅｘＲａｙ等のバス規格のうち、任意のバス規格を採用するようにしてよい。
【０１１３】
通信制御手段２３は、モジュールＩＤ取得手段２１及び命令生成手段２２から出力された情報を、モジュールＭに送信する。通信制御手段２３は、モジュールＭから送信された情報を、モジュールＩＤ取得手段２１及び命令生成手段２２に出力する。
【０１１４】
ここで、処理手段２０は、ＩＤ比較部２００と、接続ポート数取得部２０１と、接続関係管理部２０２とを有する。
【０１１５】
ＩＤ比較部２００は、今回にモジュールＩＤ取得手段２１が取得したモジュールＩＤ一覧と、前回にモジュールＩＤ取得手段２１が取得したモジュールＩＤ一覧とを比較する。これにより、ＩＤ比較部２００は、今回にモジュールＩＤ取得手段２１が取得したモジュールＩＤ一覧には存在するが、前回にモジュールＩＤ取得手段２１が取得したモジュールＩＤ一覧には存在しないモジュールＩＤを、新たなモジュールＩＤとして検出する。ＩＤ比較部２００は、上述したように、この新たに検出されたモジュールＩＤで特定されるモジュールＭを、その直前に接続ポートｐ間を接続したモジュールＭに接続されるモジュールＭとして検出する。
【０１１６】
接続ポート数取得部２０１は、接続関係管理部２０２による問い合わせによって、情報問い合わせ手段２６がサーバー３から受信したモジュールＭのモジュールデータから、モジュールＭの接続ポート数を取得する。
【０１１７】
接続関係管理部２０２は、モジュールＭ内の接続ポート間の接続状態の変更と、接続検知データベース２０９の更新などの接続検知データベース２０９を構築するための各種処理を実行する。接続関係管理部２０２は、ＩＤ比較部２００によって新たに検出されたモジュールＭを、その直前に接続ポートｐ間を接続したモジュールＭに接続されるモジュールＭに接続されるものとして示すように接続検知データベース２０９を更新する。
【０１１８】
また、接続関係管理部２０２は、新たに検出されたモジュールＭの各種情報をサーバー３に問い合わせる。すなわち、接続関係管理部２０２は、モジュールデータの送信を要求するデータ要求情報を、情報問い合わせ手段２６を介してサーバー３に送信する。この問い合わせは、新たに検出されたモジュールＩＤをキーとして指定される。接続関係管理部２０２は、接続ポート数取得部２０１によって取得された新たに検出されたモジュールＭの接続ポート数を、接続検知データベース２０９が示す複数のモジュールＭの接続関係において、新たに検出されたモジュールＭの接続ポート数として示すように接続検知データベース２０９を更新する。
【０１１９】
接続検知データベース２０９は、複数のモジュールＭの接続関係を示す情報である。接続検知データベース２０９は、複数のモジュールＭの接続関係として、各モジュールＭについて、接続ポートｐをいくつ有するか、接続ポートｐのそれぞれがホスト２又は他のモジュールＭと接続されるのか否か、及び接続ポートが他のモジュールＭと接続される場合にはどのモジュールＭと接続されているのかを示す情報である。
【０１２０】
仮想モデル生成手段２４は、接続検出機能１０が検出した複数のモジュールＭの接続関係に基づいて、複数のモジュールＭが構成する物理モデルを表した仮想モデルを生成する。
【０１２１】
ここで、仮想モデル生成手段２４は、形状・接続ポート座標取得部２１０と、モジュール座標計算部２１１と、モジュール姿勢計算部２１２と、３Ｄデータ生成部２１３とを有する。
【０１２２】
形状・接続ポート座標取得部２１０は、情報問い合わせ手段２６が受信した新たに検出されたモジュールＭのモジュールデータを、モジュールデータベース２１９に格納する。形状・接続ポート座標取得部２１０は、仮想モデルの生成時に、複数のモジュールＭのモジュールデータから、複数のモジュールＭのそれぞれの形状及び接続ポートの座標を取得する。
【０１２３】
モジュール座標計算部２１１は、形状・接続ポート座標取得部２１０によって取得された複数のモジュールＭのそれぞれの形状及び接続ポートの座標に基づいて、複数のモジュールＭのそれぞれの座標を計算する。
【０１２４】
モジュール姿勢計算部２１２は、形状・接続ポート座標取得部２１０によって取得された複数のモジュールＭのそれぞれの形状及び接続ポートの座標に基づいて、複数のモジュールＭのそれぞれの姿勢を計算する。
【０１２５】
３Ｄデータ生成部２１３は、モジュール座標計算部２１１によって計算された複数のモジュールＭのそれぞれの座標と、モジュール姿勢計算部２１２によって計算された複数のモジュールＭのそれぞれの姿勢とに基づいて、複数のモジュールＭが構成する物理モデルの形状を三次元で示す仮想モデルを生成する。３Ｄデータ生成部２１３は、生成した仮想モデルを表示手段２５に表示する。
【０１２６】
モジュールデータベース２１９は、サーバー３から受信した複数のモジュールＭのそれぞれのモジュールデータが格納される。
【０１２７】
表示手段２５は、３Ｄデータ生成部２１３が生成した仮想モデルを表示する。表示手段２５は、仮想モデル等の各種画像を表示可能な表示装置を含む。表示手段２５として機能する表示装置として、例えば、液晶ディスプレイ、有機ＥＬディスプレイ、及びプラズマディスプレイ等のうち、任意の表示装置を採用するようにしてよい。なお、表示手段２５として機能する表示装置は、ここで例示するように、ホスト２と一体化せずに、ホスト２と接続されるように仮想モデル生成システム１において別途設けられるようにしてもよい。
【０１２８】
情報問い合わせ手段２６は、処理手段２０及び仮想モデル生成手段２４から出力された情報を、モジュールＭに送信する。情報問い合わせ手段２６は、モジュールＭから送信された情報を、処理手段２０及び仮想モデル生成手段２４に出力する。
【０１２９】
続いて、図１３を参照して、本発明の実施の形態１に係るホスト２のハードウェア構成について説明する。
【０１３０】
図１３に示すように、ホスト２は、ＣＰＵ２０００と、メモリ２００１と、ハードディスク２００２と、ネットワークアダプタ２００３と、バスアダプタ２００４とを有する。
【０１３１】
ＣＰＵ２０００は、ホスト２を統括的に制御する。ＣＰＵ２０００は、ハードディスク２００２に格納されたホストプログラム２９９をメモリ２００１にロードして実行することで、ホスト２としての各種処理を実行する。すなわち、ＣＰＵ２０００とメモリ２００１は、処理手段２０、モジュールＩＤ取得手段２１、命令生成手段２２、仮想モデル生成手段２４、及び情報問い合わせ手段２６として機能する。言い換えると、ホストプログラム２９９は、ＣＰＵ２０００に対して上述の各手段２０〜２２、２４、２６としての処理を実行させるためのコードを含む。また、ＣＰＵ２０００は、各種処理の実行に際して必要に応じて、ハードディスク２００２に格納された接続検知データベース２０９及びモジュールデータベース２１９をメモリ２００１にロードして参照する。
【０１３２】
メモリ２００１は、ＣＰＵ３０００が利用する情報を一時的に格納する。この情報には、上述したように、接続検知データベース２０９、及びモジュールデータベース２１９、及びホストプログラム２９９も含まれる。メモリ２００１は、例えばＤＲＡＭ及びＳＲＡＭ等の揮発性メモリである。
【０１３３】
ハードディスク２００２は、ホストプログラム２９９が予め格納されている。また、ハードディスク２００２は、ＣＰＵ２０００による処理の実行に伴って、接続検知データベース２０９及びモジュールデータベース２１９が構築される。なお、ハードディスク２００２のような不揮発性の記憶装置であれば、ハードディスク２００２に代えて、例えばフラッシュメモリ等の他の記憶装置を採用するようにしてもよい。メモリ２００１及びハードディスク２００２は、ホスト２が利用する情報が格納される記憶手段として機能する。なお、記憶手段として機能する記憶装置の数及び組み合わせも、上述の例に限られない。
【０１３４】
ネットワークアダプタ２００３は、ＣＰＵ２０００から出力された情報を、インターネットで伝送可能な形式に変換して送信する。また、ネットワークアダプタ２００３は、インターネットからの情報を受信し、ホスト２内で処理可能な形式に変換してＣＰＵ２０００に出力する。ネットワークアダプタ２００３は、情報問い合わせ手段２６として機能する。
【０１３５】
バスアダプタ２００４は、ＣＰＵ２０００から出力された情報を、ホスト２と複数のモジュールＭを接続したときに構築されるバスで伝送可能な形式に変換して送信する。また、バスアダプタ２００４は、バスからの情報を受信し、ホスト２内で処理可能な形式に変換してＣＰＵ２０００に出力する。バスアダプタ２００４は、通信制御手段２３として機能する。
【０１３６】
続いて、図１４を参照して、本実施の形態１に係るモジュールＭの構成について説明する。図１４に示すように、モジュールＭは、接続変更機能１２と、通信機能４２と、処理機能４３と、モジュールＩＤ保持機能４４と、少なくとも１つの接続ポートｐとを有する。接続変更機能１２は、制御機能４０と、スイッチアレイ部４１とを有する。なお、図１４では、接続ポート数が、接続ポートｐ１〜ｐ４の４つである例について示しているが、接続ポート数はこれに限られない。
【０１３７】
また、図１４に示すように、モジュールＭは、信号線Ｓ１〜Ｓ４と、電源電圧線Ｖｄｄ１〜Ｖｄｄ４と、グランド線Ｇｎｄ１〜Ｇｎｄ４とを有する。信号線Ｓ１〜Ｓ４、電源電圧線Ｖｄｄ１〜Ｖｄｄ４、及びグランド線Ｇｎｄ１〜Ｇｎｄ４のそれぞれは、接続ポート１〜ｐ４の数と同数である。なお、信号線Ｓ１、Ｓ２、・・・、Ｓｎ（ｎは、２以上の正整数）も、特に区別しない場合には、「信号線Ｓ」とも呼ぶ。また、電源電圧線Ｖｄｄ１、Ｖｄｄ２、・・・、Ｖｄｄｎ（ｎは、２以上の正整数）も、特に区別しない場合には、「電源電圧線Ｖｄｄ」とも呼ぶ。また、グランド線Ｇｎｄ１、Ｇｎｄ２、・・・、Ｇｎｄｎ（ｎは、２以上の正整数）も、特に区別しない場合には、「グランド線Ｇｎｄ」とも呼ぶ。
【０１３８】
信号線Ｓ１、電源電圧線Ｖｄｄ１、及びグランド線Ｇｎｄ１のそれぞれは、接続ポートｐ１、スイッチアレイ部４１、及び通信機能４２を相互に接続する。信号線Ｓ２、電源電圧線Ｖｄｄ２、及びグランド線Ｇｎｄ２のそれぞれは、接続ポートｐ２、スイッチアレイ部４１、及び通信機能４２を相互に接続する。信号線Ｓ３、電源電圧線Ｖｄｄ３、及びグランド線Ｇｎｄ３のそれぞれは、接続ポートｐ３、スイッチアレイ部４１、及び通信機能４２を相互に接続する。信号線Ｓ４、電源電圧線Ｖｄｄ４、及びグランド線Ｇｎｄ４のそれぞれは、接続ポートｐ４、スイッチアレイ部４１、及び通信機能４２を相互に接続する。
【０１３９】
信号線Ｓ１〜Ｓ４は、ホスト２と接続された場合に、上述のバスを構成する。信号線Ｓ１〜Ｓ４を介して、ホスト２とモジュールＭとの間で任意の信号（情報）が送受信される。この情報として、上述したように、ＩＤ返信命令及び接続変更命令などがある。電源電圧線Ｖｄｄ１〜Ｖｄｄ４及びグランド線Ｇｎｄ１〜Ｇｎｄ４は、ホスト２と接続された場合に、ホスト２からモジュールＭが動作するための電源電圧を供給するものである。
【０１４０】
制御機能４０は、処理機能４３からの要求に応じて、スイッチアレイ部４１を制御する。
【０１４１】
通信機能４２は、処理機能４３から出力された情報を、信号線Ｓ１〜Ｓ４を介して伝送可能な形式の信号に変換して送信する。また、通信機能４２は、信号線Ｓ１〜Ｓ４を介して信号を受信し、モジュールＭ内で処理可能な形式に変換して処理機能４３に出力する。
【０１４２】
スイッチアレイ部４１は、制御機能４０からの制御に応じて、任意の組み合わせの接続ポートｐ１〜ｐ４間の接続状態を変更する。スイッチアレイ部４１は、上述したように、最初に、全ての接続ポートｐ１〜ｐ４間を相互に非接続とした状態とされる。
【０１４３】
処理機能４３は、ホスト２から通信機能４２を介して受信した情報に応じて、ホスト２へのＩＤ情報の返信、及びスイッチアレイ部４１の制御などの各種処理を実行する。より具体的には、処理機能４３は、ホスト２から受信したＩＤ返信命令に応じて、モジュールＩＤ保持機能４４に格納されるＩＤ情報を取得し、取得したＩＤ情報を、通信機能４２を介してホスト２に送信する。また、処理機能４３は、ホスト２から受信した接続変更命令に応じて、接続ポートｐ間の接続状態の変更を制御機能４０に要求する。
【０１４４】
モジュールＩＤ保持機能４４は、モジュールＭのモジュールＩＤを示すＩＤ情報が予め格納される。モジュールＩＤ保持機能４４は、ＩＤ情報を格納可能な記憶装置を有する。この記憶装置として、レジスタ及びメモリ等の記憶装置のうち、任意の記憶装置を採用してよい。
【０１４５】
モジュールＭの信号線Ｓ１、電源電圧線Ｖｄｄ１、及びグランド線Ｇｎｄ１は、接続ポートｐ１をホスト２又は他のモジュールＭと接続した場合、接続ポートｐ１を介してホスト２又は他のモジュールＭの信号線Ｓ、電源電圧線Ｖｄｄ、グランド線Ｇｎｄと接続される。モジュールＭの信号線Ｓ２、電源電圧線Ｖｄｄ２、及びグランド線Ｇｎｄ２は、接続ポート２をホスト２又は他のモジュールＭと接続した場合、接続ポートｐ２を介してホスト２又は他のモジュールＭの信号線Ｓ、電源電圧線Ｖｄｄ、グランド線Ｇｎｄと接続される。モジュールＭの信号線Ｓ３、電源電圧線Ｖｄｄ３、及びグランド線Ｇｎｄ３は、接続ポートｐ３をホスト２又は他のモジュールＭと接続した場合、接続ポートｐ３を介してホスト２又は他のモジュールＭの信号線Ｓ、電源電圧線Ｖｄｄ、グランド線Ｇｎｄと接続される。モジュールＭの信号線Ｓ４、電源電圧線Ｖｄｄ４、及びグランド線Ｇｎｄ４は、接続ポートｐ４をホスト２又は他のモジュールＭと接続した場合、接続ポートｐ４を介してホスト２又は他のモジュールＭの信号線Ｓ、電源電圧線Ｖｄｄ、グランド線Ｇｎｄと接続される。
【０１４６】
したがって、モジュールＭは、ホスト２と直接的に接続された場合、又は、ホスト２と少なくとも１つの他のモジュールＭを介して間接的に接続された場合、信号線Ｓ、電源電圧線Ｖｄｄ、グランド線Ｇｎｄのそれぞれを介して、ホスト２から信号、電源電圧、グランド電圧のそれぞれが供給される。
【０１４７】
ここで、図１４に示すモジュールＭと、図４に示すモジュールＭ１、Ｍ２との違いについて説明する。図４に示すモジュールＭ１、Ｍ２は、ホスト２側の接続ポートｐ１からの信号線Ｓは、制御機能４０に直接的に接続されているが、接続ポートｐ２からの信号線Ｓは、スイッチＳＷを介して制御機能４０に接続されている。したがって、接続ポートｐ１をホスト２側と接続した場合には、ホスト２からモジュールＭ１、Ｍ２のスイッチＳＷをオンにするように制御することができる。しかしながら、接続ポートｐ２をホスト２側と接続した場合には、ホスト２からモジュールＭ１、Ｍ２のスイッチＳＷをオンにするように制御することができない。ＳＷがオフにされている場合は、ホスト２からの接続ポートｐ２を介した接続変更命令によって制御機能４０を制御することができないからである。
【０１４８】
一方、図１４に示すモジュールＭでは、全ての接続ポートｐ１〜ｐ４からの信号線Ｓは、スイッチアレイ部４１を介すことなく、通信機能４２に直接接続されている。したがって、図１４に示すモジュールＭでは、どの接続ポートｐにホスト２側が接続された場合であっても、ホスト２からの接続変更命令を、通信機能４２を介して処理機能４３が受信することができる。
【０１４９】
続いて、図１５〜図１８を参照して、モジュールＭのより詳細な構成例について説明する。ここでは、２つの構成例について説明する。まず、図１５及び図１６を参照して、第１の構成例について説明し、次に、図１７及び図１８を参照して、第２の構成例について説明する。なお、図１５〜図１８は、図１４に示すモジュールＭのより詳細な構成例を示している。
【０１５０】
図１５に示すように、第１の構成例は、接続ポートｐ１〜ｐ４間の信号線Ｓ１〜Ｓ４の接続状態を変更する例である。第１の構成例では、スイッチアレイ部４１は、接続ポートｐ１〜ｐ４と同数のスイッチＳＷ１〜ＳＷ４を有する。
【０１５１】
第１の実施例では、電源電圧線Ｖｄｄ１〜Ｖｄｄ４のそれぞれは、スイッチＳＷ１〜ＳＷ４を介することなく、スイッチアレイ部４１内で短絡されている。また、グランド線Ｇｎｄ１〜Ｇｎｄ４のそれぞれは、スイッチＳＷ１〜ＳＷ４を介することなく、スイッチアレイ部４１内で直接短絡されている。一方、信号線Ｓ１〜Ｓ４のそれぞれは、スイッチＳＷ１〜ＳＷ４を介してスイッチアレイ部４１内で短絡されている。
【０１５２】
より具体的には、スイッチＳＷ１〜ＳＷ４のそれぞれは、信号線Ｓ１〜Ｓ４のそれぞれと接続されている。スイッチＳＷ１の一端は、接続ポートｐ１からの信号線Ｓ１と接続されており、スイッチＳＷ２の一端は、接続ポートｐ２からの信号線Ｓ２と接続されており、スイッチＳＷ３の一端は、接続ポートｐ３からの信号線Ｓ３と接続されており、スイッチＳＷ４の一端は、接続ポートｐ４からの信号線Ｓ４と接続されている。スイッチＳＷ１〜ＳＷ４の他端のそれぞれは、相互に接続されている。
【０１５３】
このような構成により、任意の２つのスイッチＳＷをオンにすることで、それら２つのスイッチＳＷに接続される２つの信号線Ｓが接続される。言い換えると、任意の２つのスイッチＳＷをオンにすることで、それら２つのスイッチＳＷに接続される２つの接続ポートｐ間が接続される。これにより、その２つの接続ポートｐのそれぞれにホスト２側と他のモジュールＭが接続されている場合には、ホスト２がその接続ポート間を接続したモジュールＭを介して他のモジュールＭと通信可能となる。
【０１５４】
また、信号線Ｓ１〜Ｓ４は、通信機能４２と接続されている。電源電圧線Ｖｄｄ１〜Ｖｄｄ４及びグランド線Ｇｎｄ１〜Ｇｎｄ４は、モジュールＭが有する各機能１２、４０、４２〜４４に接続される。これにより、各機能１２、４０、４２〜４４は、電源電圧線Ｖｄｄ１〜Ｖｄｄ４及びグランド線Ｇｎｄ１〜Ｇｎｄ４を介してホスト２から供給される電源電圧及びグランド電圧に基づいて動作する。
【０１５５】
第１の実施例では、通信機能４２は、切替部４２０と、通信部４２１とを有する。切替部４２０は、信号線Ｓ１〜Ｓ４が接続されている。切替部４２０は、信号線Ｓ１〜Ｓ４のうち、いずれか１つを選択的に通信部４２１と接続する。言い換えると、切替部４２０は、信号線Ｓ１〜Ｓ４を介して受信した信号のうち、いずれか１つを選択的に通信部４２１に出力する。また、切替部４２０は、通信部４２１から出力された信号を、信号線Ｓ１〜Ｓ４のうち、いずれか１つに対して選択的に送信する。
【０１５６】
切替部４２０は、処理機能４３からの制御によって、一定時間間隔ごとに、信号線Ｓ１、Ｓ２、Ｓ３、Ｓ４の順に、通信部４２１と接続する信号線が繰り返し切り替えられる。これは、信号線Ｓ１〜Ｓ４のうち、いずれか１つしかホスト２側と接続されないため、どの信号線Ｓ１〜Ｓ４がホスト２側と接続されても、ホスト２から送信された信号を検出可能とするためである。処理機能４３は、ある信号線Ｓと通信部４２１とを接続しているときに、ホスト２からの信号を通信部４２１を介して受信した場合、切替部４２０において通信部４２１と接続する信号線Ｓを切り替える制御を中断し、その信号線Ｓと通信部４２１との接続を維持する。そして、処理機能４３は、その信号線Ｓと接続されるスイッチＳＷのオンを制御機能４０に要求する。
【０１５７】
このように、ホスト２側のスイッチＳＷを常にオンにすることにより、１つのスイッチＳＷの接続状態を変更するのみで、ホスト２側の接続ポートｐと、他の接続ポートｐとを接続可能としている。
【０１５８】
通信部４２１は、処理機能４３から出力された情報を、信号線Ｓ１〜Ｓ４を介して伝送可能な形式の信号に変換して切替部４２０を介して送信する。この変換後の信号の形式は、上述したように、採用したバス規格に準ずる。また、通信部４２１は、切替部４２０を介して信号を受信し、モジュールＭ内で処理可能な形式に変換して処理機能４３に出力する。
【０１５９】
続いて、図１６を参照して、本実施の形態１に係るモジュールＭの第１の構成例におけるハードウェア構成について説明する。
【０１６０】
図１６に示すように、モジュールＭは、マイクロコントローラ４０００と、アナログスイッチＩＣ４００１とを有する。以下、マイクロコントローラを、「マイコン」とも呼ぶ。
【０１６１】
マイコン４０００は、制御機能４０、処理機能４３、モジュールＩＤ保持機能４４、及び通信部４２１として機能する。アナログスイッチＩＣ４００１は、スイッチアレイ部４１、及び切替部４２０として機能する。
【０１６２】
このように、第１の実施例に係るモジュールＭは、スイッチアレイ部４１及び切替部４２０をアナログスイッチＩＣで構成し、それ以外の部分をアナログスイッチＩＣの制御などを行うだけの安価なマイコン４０００で構成することができる。そのため、低コストのモジュールＭを実現することができる。
【０１６３】
図１７に示すように、第２の構成例は、接続ポートｐ１〜ｐ４間の電源電圧線Ｖｄｄ１〜Ｖｄｄ４及びグランド線Ｇｎｄ１〜Ｇｎｄ４の接続状態を変更する例である。第２の構成例では、スイッチアレイ部４１は、接続ポートｐ１〜ｐ４と同数のスイッチＳＷ１〜ＳＷ４を有する。
【０１６４】
第２の実施例では、信号線Ｓ１〜Ｓ４のそれぞれは、スイッチＳＷ１〜ＳＷ４を介することなく、スイッチアレイ部４１内で短絡されている。一方、電源電圧線Ｖｄｄ１〜Ｖｄｄ４のそれぞれは、スイッチＳＷ１〜ＳＷ４を介してスイッチアレイ部４１内で短絡されている。また、グランド線Ｇｎｄ１〜Ｇｎｄ４のそれぞれは、スイッチＳＷ１〜ＳＷ４を介してスイッチアレイ部４１内で短絡されている。
【０１６５】
より具体的には、スイッチＳＷ１〜ＳＷ４のそれぞれは、電源電圧線Ｖｄｄ１〜Ｖｄｄ４のそれぞれと接続されている。スイッチＳＷ１の一端は、接続ポートｐ１からの電源電圧線Ｖｄｄ１と接続されており、スイッチＳＷ２の一端は、接続ポートｐ２からの電源電圧線Ｖｄｄ２と接続されており、スイッチＳＷ３の一端は、接続ポートｐ３からの電源電圧線Ｖｄｄ３と接続されており、スイッチＳＷ４の一端は、接続ポートｐ４からの電源電圧線Ｖｄｄ４と接続されている。スイッチＳＷ１〜ＳＷ４の他端のそれぞれは、相互に接続されている。
【０１６６】
また、スイッチＳＷ１〜ＳＷ４のそれぞれは、グランド線Ｇｎｄ１〜Ｇｎｄ４のそれぞれと接続されている。スイッチＳＷ１の一端は、接続ポートｐ１からの電源電圧線Ｇｎｄ１と接続されており、スイッチＳＷ２の一端は、接続ポートｐ２からの電源電圧線Ｇｎｄ２と接続されており、スイッチＳＷ３の一端は、接続ポートｐ３からの電源電圧線Ｇｎｄ３と接続されており、スイッチＳＷ４の一端は、接続ポートｐ４からの電源電圧線Ｇｎｄ４と接続されている。スイッチＳＷ１〜ＳＷ４の他端のそれぞれは、相互に接続されている。
【０１６７】
なお、当然に、電源電圧線Ｖｄｄ１〜Ｖｄｄ４と、グランド線Ｇｎｄ１〜Ｇｎｄ４は、スイッチＳＷ１〜ＳＷ４において独立して接続状態が切り替えられる。
【０１６８】
このような構成により、任意の２つのスイッチＳＷをオンにすることで、それら２つのスイッチＳＷに接続される２つの電源電圧線Ｖｄｄが接続される。また、それら２つのスイッチＳＷに接続される２つのグランド線Ｇｎｄが接続される。言い換えると、任意の２つのスイッチＳＷをオンにすることで、それら２つのスイッチＳＷに接続される２つの接続ポートｐ間が接続される。これにより、その２つの接続ポートのそれぞれにホスト２側と他のモジュールＭが接続されている場合には、ホスト２からの電源電圧及びグランド電圧がその接続ポートｐ間を接続したモジュールＭを介して他のモジュールＭに供給される。そのため、他のモジュールＭが動作可能となり、ホスト２がその接続ポートｐ間を接続したモジュールＭを介して他のモジュールＭと通信可能となる。
【０１６９】
また、信号線Ｓ１〜Ｓ４は、通信機能４２と接続されている。電源電圧線Ｖｄｄ１〜Ｖｄｄ４及びグランド線Ｇｎｄ１〜Ｇｎｄ４は、モジュールＭが有する各機能１２、４０、４２〜４４に接続される。これにより、各機能１２、４０、４２〜４５は、電源電圧線Ｖｄｄ１〜Ｖｄｄ４及びグランド線Ｇｎｄ１〜Ｇｎｄ４を介してホスト２から供給される電源電圧及びグランド電圧に基づいて動作する。
【０１７０】
第２の実施例では、モジュールＭは、電圧検出機能４５と、ダイオードｄ１〜ｄ４とを有する。電圧検出機能４５は、電源電圧線Ｖｄｄ１〜Ｖｄｄ４及びグランド線Ｇｎｄ１〜Ｇｎｄ４を介してモジュールＭに供給される電源電圧及びグランド電圧を検出する。ここで、電圧検出機能４５は、電源電圧線Ｖｄｄ１及びグランド線Ｇｎｄ１の組と、電源電圧線Ｖｄｄ２及びグランド線Ｇｎｄ２の組と、電源電圧線Ｖｄｄ３及びグランド線Ｇｎｄ３の組と、電源電圧線Ｖｄｄ４及びグランド線Ｇｎｄ４の組のうち、最初に電圧（電源電圧及びグランド電圧）を電圧検出機能４５に供給した組を検出する。
【０１７１】
このように、最初にどの組から電源電圧及びグランド電圧が供給されたかを検出することによって、どの接続ポートｐがホスト２側に接続されたかを特定することができる。すなわち、最初に電源電圧及びグランド電圧が供給された組が、電源電圧線Ｖｄｄ１及びグランド線Ｇｎｄ１の組である場合、接続ポートｐ１がホスト２側と接続されていることになる。最初に電源電圧及びグランド電圧が供給された組が、電源電圧線Ｖｄｄ２及びグランド線Ｇｎｄ２の組である場合、接続ポートｐ２がホスト２側と接続されていることになる。最初に電源電圧及びグランド電圧が供給された組が、電源電圧線Ｖｄｄ３及びグランド線Ｇｎｄ３の組である場合、接続ポートｐ３がホスト２側と接続されていることになる。最初に電源電圧及びグランド電圧が供給された組が、電源電圧線Ｖｄｄ４及びグランド線Ｇｎｄ４の組である場合、接続ポートｐ４がホスト２側と接続されていることになる。
【０１７２】
電圧検出機能４５は、最初に電圧を電圧検出機能４５に供給した電源電圧線Ｖｄｄ及びグランド線Ｇｎｄの組を処理機能４３に通知する。言い換えると、電圧検出機能４５は、最初に電圧を電圧検出機能４５に供給した接続ポートｐを処理機能４３に通知する。
【０１７３】
処理機能４３は、電圧検出機能４５から通知された電源電圧線Ｖｄｄ及びグランド線Ｇｎｄの組（接続ポートｐ）に対応するスイッチＳＷのオンを制御機能４０に要求する。
【０１７４】
このように構成することで、ホスト２側のスイッチＳＷを常にオンにすることで、１つのスイッチＳＷの接続状態を変更するのみで、ホスト２側の接続ポートｐと、他の接続ポートｐとを接続可能としている。
【０１７５】
ダイオードｄ１は、電源電圧線Ｖｄｄ１及びグランド線Ｇｎｄ１と接続される。ダイオードｄ２は、電源電圧線Ｖｄｄ２及びグランド線Ｇｎｄ２と接続される。ダイオードｄ３は、電源電圧線Ｖｄｄ３及びグランド線Ｇｎｄ３と接続される。ダイオードｄ４は、電源電圧線Ｖｄｄ４及びグランド線Ｇｎｄ４と接続される。すなわち、電源電圧線Ｖｄｄ１〜Ｖｄｄ４及びグランド線Ｇｎｄ１〜Ｇｎｄ４を介した電源電圧及びグランド電圧は、ダイオードｄ１〜ｄ４を介してモジュールＭの各機能１２、４０、４２〜４５に供給される。
【０１７６】
ダイオードｄ１〜ｄ４のアノードが、電源電圧線Ｖｄｄ１〜Ｖｄｄ４及びグランド線Ｇｎｄ１〜Ｇｎｄ４と接続され、ダイオードｄ１〜ｄ４のカソードが、モジュールＭの各機能１２、４０、４２〜４５と接続される。これにより、各機能１２、４０、４２〜４５に電圧を供給する経路を介して、他のモジュールＭに電圧が供給されてしまうことを防止している。
【０１７７】
続いて、図１８を参照して、本実施の形態１に係るモジュールＭの第２の構成例におけるハードウェア構成について説明する。
【０１７８】
図１８に示すように、モジュールＭは、マイコン４０００と、アナログスイッチＩＣ４００１と、外付けダイオード４００２とを有する。
【０１７９】
マイコン４０００は、制御機能４０、通信機能４２、処理機能４３、モジュールＩＤ保持機能４４、及び電圧検出機能４５として機能する。アナログスイッチＩＣ４００１は、スイッチアレイ部４１として機能する。外付けダイオード４００２は、ダイオードｄ１〜ｄ４として機能する。
【０１８０】
このように、第２の実施例に係るモジュールＭは、アナログスイッチＩＣ４００１と外付けダイオード４００２が別々のＩＣとなってしまうが、それ以外の部分をアナログスイッチＩＣの制御などを行うだけの安価なマイコン４０００で構成することができる。そのため、低コストのモジュールＭを実現することができる。
【０１８１】
また、図１５及び図１６に示す第１の構成例では、信号線Ｓ１〜Ｓ４の間にアナログスイッチＳＷ１〜ＳＷ４が挿入されるため、信号波形の劣化が生じてしまう。それに対して、図１７及び図１８に示す第２の構成例では、信号線Ｓ１〜Ｓ４の間にアナログスイッチＳＷ１〜ＳＷ４は挿入されないため、信号波形が劣化しないという利点がある。
【０１８２】
（実施の形態１の詳細動作）
続いて、図１９を参照して、本実施の形態１に係る仮想モデル生成システム１の動作について説明する。
【０１８３】
ユーザは、複数のモジュールＭを相互に接続することで物理モデルを作成する（Ｓ１０１）。ホスト２の接続検出機能１０は、サーバー３及び複数のモジュールＭと連携して、物理モデルを構成する複数のモジュールの接続関係を取得する（Ｓ１０２）。より具体的には、複数のモジュールＭの接続関係の取得は、上述したように、ホスト２の接続検出機能１０が、モジュールＩＤ一覧の取得と、新たに検出されたモジュールＭの接続ポート数の取得と、モジュールＭの接続ポートｐ間の接続状態の変更とを繰り返すことで行われる。
【０１８４】
ホスト２の仮想モデル生成機能１１は、接続検出機能１０が取得した複数のモジュールの接続関係に基づいて仮想モデルの形状を計算し、計算した仮想モデルの形状を表示する（Ｓ１０３）。
【０１８５】
続いて、図２０を参照して、本発明の実施の形態１に係る仮想モデル生成システム１の接続関係取得処理（Ｓ１０２）の動作について説明する。
【０１８６】
ホスト２のモジュールＩＤ取得手段２１は、モジュールＩＤ一覧を取得する（Ｓ１１１）。最初は、ホスト２に直接接続されるモジュールＭにおいて全ての接続ポート間が未接続とされるため、モジュールＩＤ取得手段２１は、ホスト２に直接接続されるモジュールＭのモジュールＩＤのみを取得する。
【０１８７】
以下、ホスト２の接続検出機能１０は、次に説明するステップＳ１１２〜Ｓ１１４の処理を、全てのモジュールＭにおいて、ホスト２側の接続ポートｐと、他の接続ポートｐとの全ての組み合わせ関して実行するまで繰り返す。ホスト２の接続関係管理部２０２は、モジュールＭのスイッチＳＷをオンにして接続ポートｐ間を接続する（Ｓ１１２）。ホスト２のモジュールＩＤ取得手段２１は、モジュールＩＤ一覧を取得する（Ｓ１１３）。これにより、ホスト２のモジュールＩＤ取得手段２１は、ホスト２と接続される全てのモジュールＭからモジュールＩＤを取得する。
【０１８８】
ホスト２のＩＤ比較部２００は、今回にモジュールＩＤ取得手段２１が取得したモジュールＩＤ一覧と、モジュールＩＤ取得手段２１が前回取得したモジュールＩＤ一覧とを比較することで、モジュールＩＤ取得手段２１が今回取得したモジュールＩＤ一覧において、新たなモジュールＩＤが存在するか否かを判定する（Ｓ１１４）。
【０１８９】
ＩＤ比較部２００によって新たなモジュールＩＤが存在すると判定された場合（Ｓ１１４：Ｙｅｓ）、ホスト２の接続関係管理部２０２は、そのモジュールＩＤで特定されるモジュールＭのモジュールデータをサーバー３から取得する（Ｓ１１５）。
【０１９０】
図５を参照して説明したように、各モジュールＭの接続ポートｐ間を順番に接続しながら、取得されるモジュールＩＤを繰り返し確認する。これにより、あるモジュールＭの先に他のモジュールＭが接続されている場合は、接続ポートｐ間を接続した直後のモジュールＩＤの取得で、新たなモジュールＩＤを検出できる。そして、新たなモジュールＭにおいても順番に接続ポートｐ間を接続してくために、新たなモジュールＭの接続ポート数も認識する必要がある。そのため、サーバー３からのモジュールデータを取得することで、新たに検出したモジュールＭの接続ポート数を取得可能としている。
【０１９１】
続いて、図２１を参照して、本実施の形態１に係るサーバー３の動作について説明する。
【０１９２】
サーバー３の制御手段３０は、モジュールＩＤが入力されたか否かを継続的に判定する（Ｓ２０１）。より具体的には、制御手段３０は、ホスト２からモジュールＩＤをキーとする問い合わせがあったか否かを継続的に判定する。言い換えると、制御手段３０は、ホスト２から入力手段３１を介してデータ送信要求を受信したか否かを継続的に判定する。
【０１９３】
モジュールＩＤが入力された場合（Ｓ２０１：Ｙｅｓ）、サーバー３の制御手段３０は、入力されたモジュールＩＤをキーとして、各データベース３０２〜３０７に基づいて、そのモジュールＩＤで特定されるモジュールＭのモジュールデータを生成する（Ｓ２０２）。サーバー３の制御手段３０は、生成したモジュールデータを、出力手段３２を介してホスト２に送信する。
【０１９４】
続いて、図２２を参照して、本実施の形態１に係るホスト２の動作について説明する。図２２において、ステップＳ３０１〜Ｓ３１２は、複数のモジュールＭの接続関係を検知する処理であり、ステップＳ３１３〜Ｓ３１８は、仮想モデルを生成する処理である。
【０１９５】
ホスト２の接続関係管理部２０２は、ホスト２と接続されるモジュールＭのモジュールＩＤ一覧を取得する（Ｓ３０１）。より具体的には、ホスト２の接続関係管理部２０２は、モジュールＩＤ取得手段２１に対して、モジュールＩＤ一覧の取得を要求する。モジュールＩＤ取得手段２１は、接続関係管理部２０２からの要求に応じて、全てのモジュールＭに対してＩＤ返信命令を送信する。ＩＤ返信命令は、ホスト２と接続されているモジュールＭによって受信される。モジュールＭの処理機能４３は、ホスト２からのＩＤ返信命令に応じて、自身のモジュールＩＤを示すＩＤ情報をホスト２に送信する。最初は、ホスト２に直接接続されるモジュールＭにおいて全ての接続ポート間が未接続とされるため、ホスト２に直接接続されるモジュールＭのみからＩＤ情報がホスト２に送信される。モジュールＩＤ取得手段２１は、モジュールＭから送信されたＩＤ情報を受信する。接続関係管理部２０２は、モジュールＩＤ取得手段２１が受信したＩＤ情報が示すモジュールＩＤを、モジュールＩＤ一覧として取得する。よって、このモジュールＩＤ一覧は、ホスト２に直接接続されるモジュールＭのモジュールＩＤのみを示す。
【０１９６】
ホスト２の接続関係管理部２０２は、取得したモジュールＩＤで特定されるモジュールＭのモジュールデータをサーバー３から取得する（Ｓ３０２）。より具体的には、接続関係管理部２０２は、そのモジュールＩＤを示すデータ要求情報をサーバー３に送信する。サーバー３の制御手段３０は、ホスト２からのデータ要求情報に応じて、そのデータ要求情報が示すモジュールＩＤで特定されるモジュールＭのモジュールデータを生成し、ホスト２に送信する。ホスト２の情報問い合わせ手段２６は、新たなモジュールＩＤで特定されるモジュールＭのモジュールデータを受信する。ホスト２の接続ポート数取得部２０１は、情報問い合わせ手段２６が受信したモジュールデータから、接続ポート数を取得する。
【０１９７】
ホスト２の接続関係管理部２０２は、接続検知データベース２０９を更新する（Ｓ３０３）。より具体的には、接続関係管理部２０２は、取得したモジュールＩＤで特定されるモジュールＭを示すように、接続検知データベース２０９を更新する。接続関係管理部２０２は、取得したモジュールＩＤで特定されるモジュールＭの接続ポート数として、接続ポート数取得部２０１によって取得された接続ポート数を示すように、接続検知データベース２０９を更新する。
【０１９８】
また、モジュールＭの処理機能４３は、ホスト２からのＩＤ返信命令に応じて、自身が有する接続ポートｐのうち、そのＩＤ返信命令を受信した接続ポートｐを示すポート情報をホスト２に送信する。ホスト２の接続関係管理部２０２は、モジュールＭが送信したポート情報を、通信制御手段２３を介して受信する。接続関係管理部２０２は、取得したモジュールＩＤで特定されるモジュールＭの接続ポートｐのうち、受信したポート情報が示す接続ポートｐにホスト２が接続されていることを示すように、接続検知データベース２０９を更新する。
【０１９９】
以下、ステップＳ３０４〜Ｓ３１２の処理は、あるモジュールＭ（モジュールＩＤ＝Ｘ）に着目し、そのモジュールＭにおいて、ホスト２側の接続ポートｐと、他の接続ポートｐとを１つずつ接続していくループ処理で構成される。なお、上述したように、最初は、ホスト２に直接接続されたモジュールＭのみしか認識されていないため、ホスト２の接続関係管理部２０２は、最初の処理対象のモジュールＭとして、ホスト２に直接接続されたモジュールＭを設定する（Ｓ３０４）。処理対象の接続ポートｐ（接続ポート＝Ｙ）は、ホスト２側の接続ポート以外の接続ポートｐが、ループ処理の１回当りの処理（ステップＳ３０５〜Ｓ３１２）を実行する度に変更される。
【０２００】
ホスト２の接続関係管理部２０２は、処理対象のモジュールＭ内におけるホスト２側の接続ポートｐと、処理対象の接続ポートｐとを接続する（Ｓ３０５）。ホスト２の接続関係管理部２０２は、命令生成手段２２に対して、処理対象のモジュールＭ内におけるホスト２側の接続ポートｐと、処理対象の接続ポートｐとの接続を要求する。命令生成手段２２は、接続関係管理部２０２からの要求に応じて、処理対象のモジュールＭ内におけるホスト２側の接続ポートｐと、処理対象の接続ポートｐとの接続を要求する接続変更命令を生成し、処理対象のモジュールＭに送信する。モジュールＭの処理機能４３は、ホスト２からの接続変更命令に応じて、ホスト２側の接続ポートｐと、処理対象の接続ポートｐとを接続する。すなわち、処理機能４３は、処理対象の接続ポートｐに対応するスイッチＳＷをオンにする。
【０２０１】
ホスト２の接続関係管理部２０２は、ホスト２と接続されるモジュールＭのモジュールＩＤ一覧を取得する（Ｓ３０６）。この具体的処理については、ステップＳ３０１で説明した通りである。ただし、ホスト２側の接続ポートｐと、処理対象の接続ポートｐとを接続しているため、処理対象の接続ポートｐに新たなモジュールＭが接続されている場合には、そのモジュールＭのモジュールＩＤも取得されることになる。
【０２０２】
ホスト２のＩＤ比較部２００は、接続検知データベース２０９からモジュールＩＤ一覧を取得する（Ｓ３０７）。すなわち、ＩＤ比較部２００は、接続検知データベース２０９に格納されているモジュールＩＤを取得する。このモジュールＩＤ一覧は、前回のステップＳ３０７で取得したモジュールＩＤ一覧と同じ内容となる。
【０２０３】
ＩＤ比較部２００は、ステップＳ３０７で接続検知データベース２０９から取得したモジュールＩＤ一覧と、ステップＳ３０６でホスト２と接続されるモジュールＭから取得したモジュールＩＤ一覧とを比較する。これにより、ＩＤ比較部２００は、ホスト２と接続されるモジュールＭから取得したモジュールＩＤ一覧に存在するが、接続検知データベース２０９から取得したモジュールＩＤ一覧に存在しないモジュールＩＤが存在するか否かを判定する（Ｓ３０８）。言い換えると、ＩＤ比較部２００は、今回、ホスト２と接続されるモジュールＭから取得したモジュールＩＤ一覧において、新たなモジュールＩＤが存在するか否かを判定する。
【０２０４】
接続検知データベース２０９から取得したモジュールＩＤ一覧に存在しないモジュールＩＤが存在しない場合（Ｓ３０８：Ｎｏ）、ホスト２の接続関係管理部２０２は、接続検知データベース２０９を更新する（Ｓ３０９）。より具体的には、接続関係管理部２０２は、処理対象のモジュールＭにおける処理対象の接続ポートｐにはモジュールＭが接続されていないことを示すように、接続検知データベース２０９を更新する（Ｓ３０９）。
【０２０５】
接続検知データベース２０９から取得したモジュールＩＤ一覧に存在しないモジュールＩＤが存在する場合（Ｓ３０８：Ｙｅｓ）、ホスト２の接続関係管理部２０２は、新たなモジュールＩＤで特定されるモジュールＭのモジュールデータをサーバー３から取得する（Ｓ３１０）。この具体的処理については、ステップＳ３０２で説明した通りである。
【０２０６】
ホスト２の接続関係管理部２０２は、接続検知データベース２０９を更新する（Ｓ３１１）。より具体的には、ステップＳ３０３と同様に、接続関係管理部２０２は、新たなモジュールＩＤで特定されるモジュールＭを示すように、接続検知データベース２０９を更新する。接続関係管理部２０２は、新たなモジュールＩＤで特定されるモジュールＭの接続ポート数として、接続ポート数取得部２０１によって取得された接続ポート数を示すように、接続検知データベース２０９を更新する。
【０２０７】
また、ステップＳ３０３と同様に、新たなモジュールＭの処理機能４３は、ステップＳ３０６におけるホスト２からのＩＤ返信命令に応じて、自身が有する接続ポートｐのうち、そのＩＤ返信命令を受信した接続ポートｐを示すポート情報をホスト２に送信する。ホスト２の接続関係管理部２０２は、新たなモジュールＭが送信したポート情報を、通信制御手段２３を介して受信する。接続関係管理部２０２は、新たなモジュールＩＤで特定されるモジュールＭの接続ポートｐのうち、受信したポート情報が示す接続ポートｐに処理対象のモジュールＭが接続されていることを示すように、接続検知データベース２０９を更新する。
【０２０８】
ホスト２の接続関係管理部２０２は、新たなモジュールＩＤで特定されるモジュールＭを、処理対象のモジュールＭとし（Ｓ３１２、Ｓ３０４）、再帰的にループ処理（Ｓ３０５〜Ｓ３１２）を実行する。このようにすることで、図５を参照して説明したように、全てのモジュールＭの全ての接続ポートｐを順番に処理対象として複数のモジュールＭの接続関係を検出可能としている。
【０２０９】
ループ処理が終了し、複数のモジュールＭの接続関係の検知の終了後、ホスト２は、仮想モデル生成を開始する。
【０２１０】
ホスト２の形状・接続ポート座標取得部２１０は、接続検知データベース２０９から複数のモジュールＭの接続関係を示す情報を取得する（Ｓ３１３）。また、形状・接続ポート座標取得部２１０は、モジュールデータベース２１９から各モジュールＭの形状を示す情報（例えばＳＴＬ形式のデータ）と、各モジュールＭの各接続ポートｐの座標を示す情報とを取得する（Ｓ３１４）。
【０２１１】
ホスト２のモジュール座標計算部２１１は、形状・接続ポート座標取得部２１０によって取得された情報に基づいて、各モジュールＭの座標を計算する。また、ホスト２のモジュール姿勢計算部２１２は、形状・接続ポート座標取得部２１０によって取得された情報に基づいて、各モジュールＭの姿勢を計算する（Ｓ３１５）。
【０２１２】
例えば、全てのモジュールＭが同じ大きさの立方体であり、各面の中心に接続ポートｐが存在するものとして説明する。また、モジュールＭの座標は、モジュールＭの中心（重心）で示されるものとする。この場合、モジュールＭ１の接続ポートｐ１上に、モジュールＭ２の接続ポートｐ１が接続されているときは、モジュールＭ２の座標は、モジュールＭの高さ分だけ、モジュールＭ１よりも高い位置として計算される。また、モジュールＭ２の姿勢は、モジュールＭ２の接続ポートｐ１がモジュールＭ１の接続ポートｐ１に接するように回転された姿勢として計算される。
【０２１３】
ホスト２の３Ｄデータ生成部２１３は、モジュール座標計算部２１１及びモジュール姿勢計算部２１２による計算結果に基づいて、三次元の仮想モデルを生成する（Ｓ３１６）。ここで、仮想モデル生成手段２４において、各モジュールＭの形状、座標、及び姿勢が取得できているため、計算上の三次元空間において、それらに基づいて各モジュールＭが占める範囲が特定されている。よって、３Ｄデータ生成部２１３は、それらの各モジュールＭの情報を統合することで、仮想モデルを生成する。そして、３Ｄデータ生成部２１３は、生成した仮想モデルを表示手段２５に表示する（Ｓ３１７）。また、３Ｄデータ生成部２１３は、生成した仮想モデルによってシミュレーションを行うようにしてもよい。この場合、３Ｄデータ生成部２１３は、仮想モデルを構成する各モジュールＭの素材及び重さを、モジュールデータベース２１９に格納されたモジュールデータから取得することで、各モジュールＭの素材及び重さを考慮してシミュレーションを実施することができる。
【０２１４】
続いて、図２３を参照して、図２２のステップＳ３０４〜Ｓ３１２に示す再帰ループ処理について異なる形式で説明する。図２３は、再帰ループ処理の理解を助けるために、再帰ループ処理のプログラム例を概念的に示す図である。なお、プログラムの記述の左側に記載されている番号は、説明の便宜上示した行番号であり、実際のプログラムに記述されるものではない。すなわち、図２３に示すようなプログラムが、ホストプログラム２９９に含まれる。
【０２１５】
１行目は、ステップＳ３０４及びＳ３１２に対応する。ステップＳ３０４〜Ｓ３１２に示す再帰ループ処理の関数「モジュール接続検知」を示している。また、この関数が引数として処理対象のモジュールＩＤが指定されることを示している。例えば、最初の呼び出しであれば、ホスト２と直接接続されるモジュールＭのモジュールＩＤが指定される。よって、引数で処理対象として指定されたモジュールＩＤのモジュールＭに対して関数内の処理（２〜１５行目の処理）が実行される。
【０２１６】
２行目は、ステップＳ３０５〜Ｓ３１２のループ処理の開始を示している。また、このループ処理を１回行う度に、処理対象の接続ポートｐを変更することを示している。すなわち、処理対象のモジュールＭの全ての接続ポートｐのそれぞれに対してループ処理（３〜１５行目の処理）が実行される。
【０２１７】
３〜５行目は、ステップＳ３０５〜Ｓ３０７に対応する。Ｌｉｓｔ１は、各モジュールＭから取得したモジュールＩＤ一覧が格納される変数を示している。Ｌｉｓｔ２は、接続検知データベース２０９から取得したモジュールＩＤ一覧が格納される変数を示している。Ｌｉｓｔ１及びＬｉｓｔ２は、例えば、配列変数として用意され、複数のモジュールＩＤを格納可能とされる。
【０２１８】
６、７、１３行目は、ステップＳ３０８に対応する。新規ＩＤは、Ｌｉｓｔ１に含まれ、Ｌｉｓｔ２に含まれないモジュールＩＤが格納される変数である。すなわち、新たに検出されたモジュールＩＤが格納される。例えば、６行目において、新たなモジュールＩＤが検出されない場合は、新規ＩＤの値を変更しないようにすることで、７行目において、新規ＩＤの値が変更されている場合に新たなモジュールＩＤを検出したと判定し、新規ＩＤの値が変更されていない場合には新たなモジュールＩＤを検出していないと判定することができる。
【０２１９】
８〜１２行目は、ステップＳ３１０〜Ｓ３１２に対応する。モジュールデータを取得し、接続検知データベース２０９を更新した後、新たに検出したモジュールＩＤを引数として、関数「モジュール接続検知」を再帰的に呼び出している。これによれば、図５を参照して説明したように、各モジュールＭにおいて順番に接続ポートｐを接続しつつ、複数のモジュールＭの接続関係を認識することができる。なお、１４、１５行目は、ステップＳ３０９に対応する。
【０２２０】
続いて、図２４を参照して、本実施の形態１に係るホスト２の前処理の動作について説明する。図２４に示す処理は、図２２に示す複数のモジュールＭの接続関係の検知処理の前に実行される。これまでに、最初に、各モジュールＭの全ての接続ポート間は未接続とされることを説明したが、それは図２４に示す処理によって実現される。
【０２２１】
ホスト２の接続関係管理部２０２は、接続検知データベース２０９を初期化する（Ｓ３２１）。すなわち、接続関係管理部２０２は、接続検知データベース２０９を、モジュールＭの接続関係が無い状態にする。
【０２２２】
ホスト２の接続関係管理部２０２は、ブロードキャスト命令で全てのモジュールＭの全ての接続ポートｐ間を未接続にする（Ｓ３２２）。より具体的には、接続関係管理部２０２は、全てのモジュールＭに対して、ブロードキャストで、全ての接続ポートｐ間を未接続にすることを要求する接続変更命令を送信する。これにより、全てのモジュールＭの処理機能４３は、全ての接続ポートｐ間を未接続にする。言い換えると、全てのモジュールＭの処理機能４３は、全てのスイッチＳＷをオフにする。
【０２２３】
すなわち、ここでは、全てのモジュールＭが、予め全ての接続ポートｐ間が接続されている例について説明している。しかしながら、物理モデルの組み立て時における全てのモジュールＭにおいて、予め全ての接続ポートｐ間が未接続とされていてもよい。この場合は、上述の前処理は不要となる。
【０２２４】
ここで、物理モデルを構成する複数のモジュールＭにおいて、予め全ての接続ポートｐ間が接続されているモジュールＭと、予め全ての接続ポートｐ間が未接続とされているモジュールＭとが混在している場合を考慮する処理としてもよい。すなわち、ホスト２の接続関係管理部２０２は、ＩＤ比較部２００によって、複数の新たなモジュールＩＤが検出された場合には、それらの新たに検出されたモジュールＭに対して、全ての接続ポートｐ間を未接続にすることを要求する接続変更命令を送信し、再度、モジュールＩＤ一覧を取得し直すようにしてもよい。これによれば、再度の新たなモジュールＩＤの検出で、複数の新たなモジュールＩＤのうち、最もホスト２側のモジュールＭのモジュールＩＤのみを検出することができる。よって、そのモジュールＭが直前に接続ポートｐ間の接続状態を変更したモジュールＭに接続されるモジュールＭとして正確に認識することができる。
【０２２５】
続いて、図２５を参照して、本実施の形態１に係るホスト２のモジュールＩＤ一覧取得処理（Ｓ３０１、Ｓ３０６）について説明する。ここでは、ホスト２とモジュールＭとを接続することで構成されるバスの通信規格としてＩ２Ｃを採用した例について説明する。Ｉ２Ｃを採用した場合、ホスト２からＩＤ返信命令を各モジュールＭにブロードキャストで送信してしまうと、その返信となる各モジュールＭからのＩＤ情報が競合してしまい、ホスト２で正常にＩＤ情報を受信できなくなってしまうという問題がある。図２５に示す処理では、各モジュールＭに対して順番にユニキャストでＩＤ返信命令を送信することで、その問題を解決している。
【０２２６】
ホスト２のモジュールＩＤ取得手段２１は、ＩＤ返信命令で指定するＩ２Ｃアドレスを０に初期化する（Ｓ３３１）。続く、ステップＳ３３２は、Ｉ２Ｃアドレスを、最小値である０から、最大値である１２７までインクリメントしつつループ処理として実行される。モジュールＩＤ取得手段２１は、ＩＤ返信命令となるＩ２ＣデータをモジュールＭに送信し、モジュールＭから応答があるか否かを確認する（Ｓ３３２）。モジュールＩＤ取得手段２１は、モジュールＭから応答となるＩＤ情報が送信された場合、そのＩＤ情報を受信する。このようにして、受信した全てのＩＤ情報を含むモジュールＩＤ一覧が取得される。
【０２２７】
このように、Ｉ２Ｃでは、図２６に示すように、Ｉ２Ｃアドレスが指定されるフレームフォーマットのＩ２Ｃデータが送信される。Ｉ２Ｃデータでは、モジュールＭのＩ２Ｃアドレスが指定されるフィールドと、リードであるかライトであるかが指定されるフィールドと、モジュールＭ内部のレジスタ番号（接続ポートアドレス）が指定されるフィールドと、値が指定されるフィールドを含んでいる。例えば、ＩＤ返信命令として、リードであることと、モジュールＩＤが格納された記憶装置のレジスタ番号を指定するＩ２Ｃデータが送信される。なお、例えば、接続変更命令としては、ライトであることと、制御対象の接続ポートｐのレジスタ番号（接続ポートアドレス）と、値として接続ポートｐ間を接続するか非接続とするかを指定するＩ２Ｃデータが送信される。
【０２２８】
一方、モジュールＭには、予めＩ２Ｃアドレスが固定的に割り当てられている。モジュールＭの処理機能４３は、ホスト２から自身に割り当てられたＩ２Ｃアドレスが指定されたＩＤ返信命令を受信した場合、そのＩＤ返信命令に応答してＩＤ情報を送信する。ここで、ホスト２は、どのモジュールＭによって物理モデルが構築されているかは分からないため、モジュールＭのＩ２Ｃアドレスも分からない。そのため、上述の処理では、Ｉ２Ｃアドレスが取り得るアドレスの範囲である０〜１２７のそれぞれを指定したＩＤ返信命令を順次送信することで、モジュールＩＤを取得可能としている。
【０２２９】
なお、Ｉ２Ｃアドレスを、最小値である０から最大値である１２７までインクリメントしつつＩＤ返信命令を送信する例について説明したが、全てのＩ２ＣアドレスについてＩＤ返信命令を送信するのであれば、これに限られない。例えば、最大値である１２７から最小値である０までデクリメントしつつＩＤ返信命令を送信するようにしてもよい。
【０２３０】
続いて、図２７を参照して、本実施の形態１に係るモジュールＭの動作について説明する。
【０２３１】
モジュールＭの処理機能４３は、ホスト２からの命令を受信したか否かを継続的に判定する（Ｓ４０１）。
【０２３２】
処理機能４３は、ホスト２から命令を受信した場合（Ｓ４０１：Ｙｅｓ）、受信した命令がＩＤ返信命令であるか否かを判定する（Ｓ４０２）。受信した命令がＩＤ返信命令である場合（Ｓ４０２：Ｙｅｓ）、処理機能４３は、モジュールＩＤを示すＩＤ情報をホスト２に返信する（Ｓ４０３）。すなわち、処理機能４３は、モジュールＩＤ保持機能４４に格納されたＩＤ情報をホスト２に返信する。
【０２３３】
また、ホスト２から命令を受信した場合（Ｓ４０１：Ｙｅｓ）、処理機能４３は、受信した命令が接続変更命令であるか否かを判定する（Ｓ４０４）。受信した命令が接続変更命令である場合（Ｓ４０４：Ｙｅｓ）、処理機能４３は、スイッチアレイ部４１の構成を変更する（Ｓ４０５）。すなわち、処理機能４３は、接続変更命令で指定された接続ポートｐの接続状態を変更する。
【０２３４】
続いて、図２８〜図３１を参照して、接続関係検知処理の理解を助けるために、接続関係検知処理の具体例について説明する。図２８は、本実施の形態１に係るモジュールＭ１〜Ｍ４の接続例を示す図である。図２８は、接続関係検知処理がある程度進んだ状態を示している。この図２８に示す状態を第１の状態とする。図２９は、図２８に示す第１の状態における接続検知データベース２０９に格納される情報を示す図である。
【０２３５】
ここでは、図２８に示すように、モジュールＭ１〜Ｍ４が相互に接続されることによって物理モデルが構築されている例について説明する。モジュールＭ１は、接続ポートｐ１、ｐ２の２つの接続ポートを有する。モジュールＭ２は、接続ポートｐ１〜ｐ４の４つの接続ポートを有する。モジュールＭ３は、接続ポートｐ１〜ｐ３の３つの接続ポートを有する。モジュールＭ４は、接続ポートｐ１〜ｐ３の３つの接続ポートを有する。
【０２３６】
ホスト２は、モジュールＭ２の接続ポートｐ１と接続されている。モジュールＭ２の接続ポートｐ２は、モジュールＭ１の接続ポートｐ１と接続されている。モジュールＭ２の接続ポートｐ３は、モジュールＭ３の接続ポートｐ１と接続されている。モジュールＭ２の接続ポートｐ４は、他のモジュールＭと接続されていない。
【０２３７】
モジュールＭ１の接続ポートｐ２は、他のモジュールＭと接続されていない。モジュールＭ３の接続ポートｐ２は、他のモジュールＭと接続されていない。モジュールＭ３の接続ポートｐ３は、モジュールＭ４の接続ポートｐ１と接続されている。モジュールＭ４の接続ポートｐ２、ｐ３は、他のモジュールＭと接続されていない。
【０２３８】
モジュールＭ１は、ホスト２側の接続ポートｐ１と、接続ポートｐ２が接続されている。モジュールＭ２は、ホスト２側の接続ポートｐ１と、接続ポートｐ２〜ｐ３のそれぞれとが接続されているが、ホスト２側の接続ポートｐ１と、接続ポートｐ４とは接続されていない。モジュールＭ３は、ホスト２側の接続ポートｐ１と、接続ポートｐ２が接続されているが、ホスト２側の接続ポートｐ１と、接続ポートｐ３とは接続されていない。モジュールＭ４は、ホスト２側の接続ポートｐ１と、接続ポートｐ２、ｐ３とが接続されていない。
【０２３９】
ここでは、ホスト２が、ホスト２側の接続ポートｐ１と、接続ポートｐ２とを接続した状態である。
【０２４０】
図２９に示すように、接続検知データベース２０９には、モジュール制御表と、モジュール応答結果表と、モジュール接続関係表とが格納される。これらは、接続関係検知処理を進めるに従って、ホスト２の接続関係管理部２０２によって更新される。なお、これらは表として示されているが、同一の内容を示すのであれば、表形式の情報には限られず、異なる形式の情報であってもよい。
【０２４１】
モジュール制御表は、ホスト２が検出したモジュールＭのそれぞれについて、Ｉ２Ｃアドレスと、モジュールＩＤと、接続ポート数と、各接続ポートｐのレジスタ番号（接続ポートアドレス）と、接続ポートｐの状態とを示す情報である。
【０２４２】
モジュール制御表は、モジュールＭ２については、Ｉ２Ｃアドレスが「１０」であり、モジュールＩＤが「Ｍ２」であり、接続ポート数が「４」であり、接続ポートｐ１〜ｐ４のレジスタ番号が「１００」〜「１０３」であり、接続ポートｐ１〜ｐ３の状態が「１」（接続ポートｐに対応するスイッチＳＷがオン）であり、接続ポートｐ４の状態が「０」（接続ポートｐに対応するスイッチＳＷがオフ）であることを示している。
【０２４３】
モジュール制御表は、モジュールＭ１については、Ｉ２Ｃアドレスが「１１０」であり、モジュールＩＤが「Ｍ１」であり、接続ポート数が「２」であり、接続ポートｐ１、ｐ２のレジスタ番号が「８０」、「８１」であり、接続ポートｐ１、ｐ２の状態が「１」（接続ポートｐに対応するスイッチＳＷがオン）であることを示している。
【０２４４】
モジュール制御表は、モジュールＭ３については、Ｉ２Ｃアドレスが「５６」であり、モジュールＩＤが「Ｍ３」であり、接続ポート数が「３」であり、接続ポートｐ１〜ｐ３のレジスタ番号が「９０」〜「９２」であり、接続ポートｐ１、ｐ２の状態が「１」（接続ポートｐに対応するスイッチＳＷがオン）であり、接続ポートｐ３の状態が「０」（接続ポートｐに対応するスイッチＳＷがオフ）であることを示している。
【０２４５】
モジュール応答結果表は、Ｉ２Ｃアドレスと、そのＩ２Ｃアドレスに対するＩＤ返信命令への応答の有無を示す情報である。モジュール応答結果表は、Ｉ２Ｃアドレス「１０」、「５６」、「１１０」については、ＩＤ返信命令に対して応答があったことを示し、それ以外のＩ２Ｃアドレスについては、ＩＤ返信命令に対して応答がなかったことを示す。
【０２４６】
モジュール接続関係表は、Ｉ２Ｃアドレスと、モジュールＩＤと、接続ポート数と、各接続ポートｐにホスト２又は他のモジュールＭが接続されているか否かとを示す情報である。また、モジュール接続関係表は、接続ポートｐに他のモジュールＭが接続されている場合には、その接続ポートｐに他のモジュールＭのどの接続ポートｐが接続されているかも示す。モジュール接続関係表は、Ｉ２Ｃアドレス、モジュールＩＤ、及び接続ポート数については、モジュール制御表と同様の内容を示すため、説明を省略する。
【０２４７】
モジュール接続関係表は、Ｍ２については、接続ポートｐ１にホスト２が接続され、接続ポートｐ２にモジュールＭ１の接続ポートｐ１が接続され、接続ポートｐ３にモジュールＭ３の接続ポートｐ１が接続され、接続ポートｐ４は未検査であることを示している。
【０２４８】
モジュール接続関係表は、Ｍ１については、接続ポートｐ１にモジュールＭ２の接続ポートｐ２が接続され、接続ポートｐ２に何も接続されていないことを示している。
【０２４９】
モジュール接続関係表は、Ｍ３については、接続ポートｐ１にモジュールＭ２の接続ポートｐ３が接続され、接続ポートｐ２に何も接続されておらず、接続ポート３は未検査であることを示している。
【０２５０】
モジュール制御表及びモジュール接続関係表における、Ｉ２Ｃアドレス、及びモジュールＩＤは、接続関係管理部２０２が、上述のステップＳ３３２においてＩＤ返信命令で指定したＩ２Ｃアドレスと、そのＩＤ返信命令に対する返信で取得したモジュールＩＤとが設定される。モジュール制御表及びモジュール接続関係表における接続ポート数は、接続関係管理部２０２が、モジュールＩＤをキーとして、接続ポート数取得部２０１によって取得された接続ポート数が設定される。各接続ポートｐのレジスタ番号（接続ポートアドレス）は、接続関係管理部２０２が、モジュールＩＤをキーとして、情報問い合わせ手段２６によって取得されたモジュールデータの接続ポートアドレスが設定される。
【０２５１】
モジュール制御表の接続ポートｐの状態は、接続関係管理部２０２が、接続ポートｐの接続を要求したときに、その接続ポートｐの状態を「１」に設定する。モジュール接続関係表の接続先情報は、接続関係管理部２０２が、その接続を要求した接続ポートｐと、新たに検出されたモジュールＩＤのモジュールＭから、ＩＤ返信通知に応じて通知された新たなモジュールＭの接続ポートとｐとが相互に接続先となるように設定される。
【０２５２】
モジュール応答結果表におけるＩ２Ｃアドレスは、予め設定されている。モジュール応答結果表における応答の有無とは、接続関係管理部２０２が、上述のステップＳ３３２においてＩＤ返信命令で指定したＩ２Ｃアドレスに対する応答の有無が設定される。
【０２５３】
第１の状態では、接続関係管理部２０２は、モジュールＭ３に接続ポートｐ２の接続要求を出し、モジュール制御表におけるモジュールＭ３の接続ポートｐ２の状態を「１」に更新する。モジュールＭ３の接続ポートｐ２には何も接続されていないため、モジュールＭ３の接続ポートｐ２を接続した状態にしても、その直後のモジュールＩＤ一覧の取得によって新たなモジュールＩＤは検出されない。この結果より、接続関係管理部２０２は、モジュール接続関係表におけるモジュールＭ３の接続ポートｐ２の接続先情報を「ＮＣ（無接続）」に更新する。
【０２５４】
図３０は、第１の状態から接続関係検知処理が次のループ処理に進んだ状態を示している。この図３０に示す状態を第２の状態とする。図３１は、図３０に示す第２の状態における接続検知データベース２０９に格納される情報を示す図である。
【０２５５】
本状態は、接続関係管理部２０２がモジュールＭ３の接続ポートｐ３に接続要求を出し、図３０に示すように、モジュールＭ３において、ホスト２側の接続ポートｐ１と、接続ポートｐ３とが新たに接続された状態となる。このとき、モジュール制御表における、モジュールＭ３の接続ポートｐ３の状態を「１」に更新する。モジュールＭ３の接続ポートｐ３は、モジュールＭ４の接続ポートｐ１と接続されている。よって、モジュールＩＤ一覧の取得によって、新たなモジュールＩＤとして、モジュールＭ４のモジュールＩＤ「Ｍ４」が検出される。また、このときに、モジュールＭ４は、Ｉ２Ｃアドレス「５７」を指定したＩＤ返信命令に応答したものとする。
【０２５６】
この場合、図３１に示すように、接続検知データベース２０９の情報が更新される。接続関係管理部２０２は、Ｉ２Ｃアドレス「５７」を指定したＩＤ返信命令に対して、新たにモジュールＭ４からの応答があったため、モジュール応答結果表におけるＩ２Ｃアドレス「５７」に対応する応答有無が「有り」に更新される。
【０２５７】
また、接続関係管理部２０２は、新たなモジュールＩＤ「Ｍ４」が応答されたため、モジュール制御表及びモジュール接続関係表に、その新たなモジュールＩＤ「Ｍ４」のモジュールＭ４の項目を追加する。このとき、モジュール制御表及びモジュール接続関係表における、Ｉ２Ｃアドレス、及びモジュールＩＤは、モジュールＭ４から応答がった際に指定したＩ２Ｃアドレス「５７」と、その応答で通知されたモジュールＩＤ「Ｍ４」が設定される。
【０２５８】
接続関係管理部２０２は、モジュール制御表及びモジュール接続関係表における接続ポート数に対して、新たなモジュールＩＤ「Ｍ４」をキーとして、接続ポート数取得部２０１によって取得された接続ポート数「３」を設定する。接続関係管理部２０２は、新たなモジュールＭ４の接続ポートのレジスタ番号（接続ポートアドレス）に対して、新たなモジュールＩＤ「Ｍ４」をキーとして、情報問い合わせ手段２６によって取得されたモジュールデータの接続ポートアドレス「５０」〜「５２」を設定する。
【０２５９】
新たなモジュールＭ４からは、ＩＤ返信通知に応じて、モジュールＭ４においてモジュールＭ３と接続された接続ポートｐとして、接続ポートｐ１が通知される。そのため、接続関係管理部２０２は、モジュール制御表におけるモジュールＭ４の接続ポートｐ１の状態に「１」を設定する。接続関係管理部２０２は、モジュールＭ４のその他の接続ポートｐ２〜ｐ３は、まだ接続された状態にされていないため、モジュールＭ４の接続ポートｐ２〜ｐ３の状態に「０」を設定する。
【０２６０】
また、接続関係管理部２０２は、モジュール接続関係表において、モジュールＭ３の接続ポートｐ３と、モジュールＭ４の接続ポートｐ１とが相互に接続先となるように設定する。接続関係管理部２０２は、モジュールＭ４のその他の接続ポートｐ２〜ｐ４は、まだ接続された状態にされていないため、モジュールＭ４の接続ポートｐ２〜ｐ４の接続先情報に「ＮＡ（未検査）」を設定する。
【０２６１】
上述の通り、本実施の形態１では、ホスト２の接続検出機能１０は、モジュールＭに対して接続変更命令を行うことで、そのモジュールＭに接続されるものとして、そのモジュールＭを介して新たに認識されたモジュールＭを検出する。そして、ホスト２の仮想モデル生成機能１１は、接続検出機能１０によって検出された複数のモジュールＭの接続関係に基づいて、複数のモジュールＭが形成する形状の仮想モデルを生成する。
【０２６２】
これによれば、各モジュールＭの構成を、ホスト２からの接続変更命令に応じて接続ポートｐ間の接続状態を変更するという簡易な構成として、複数のモジュールＭの接続関係を検知することができる。よって、コスト及び消費電力を抑制することができる。
【０２６３】
また、本実施の形態１では、ホスト２と各モジュールＭとを接続する通信経路をバスで構築している。この場合、モジュールＭの接続関係の特定が困難であるという問題がある。しかしながら、通信経路をバスで構築した場合、接続ポート数が増加しても信号数を抑制できるという利点がある。それに対して、本実施の形態１では、上述したように、接続ポートｐ間の接続状態を変更するという簡易な構成で、その問題を解決し、バスによる通信でのモジュールＭの接続関係の特定を可能としている。これにより、通信経路をバスで構築可能とし、信号数を抑制可能としている。
【０２６４】
一方で、ホスト２と各モジュールＭとを接続する通信経路を、ＴＣＰ／ＩＰに代表されるＰ２Ｐ（peer to peer）によって構築した場合、各モジュールＭ間の接続関係の特定は容易となる。しかしながら、接続ポート数が増えると信号数が増大してしまうという問題がある。また、この場合、各モジュールＭに電源装置を備える必要もある。本実施の形態１では、通信経路をバスで構築しているため、このような問題も発生することがない。
【０２６５】
＜実施の形態２＞
続いて、図３２を参照して、実施の形態２について説明する。以下、実施の形態１と同様の内容については記載を省略し、実施の形態１と異なる内容を記載する。
【０２６６】
図３２に示すように、実施の形態２では、実施の形態１と比較して、ホスト２は、通信制御手段２３に代えて、Ｉ２Ｃ通信手段２７を有する。また、実施の形態２では、モジュールＭは、実施の形態１と比較して、通信機能４２に代えて、Ｉ２Ｃ通信手段４６を有する。すなわち、本実施の形態２は、ホスト２と各モジュールＭとの通信規格としてＩ２Ｃを採用した例について説明する。
【０２６７】
Ｉ２Ｃ通信手段２７は、モジュールＩＤ取得手段２１及び命令生成手段２２から出力された情報を、Ｉ２Ｃプロトコルに従った形式（Ｉ２Ｃフレーム）に変換して各モジュールＭに送信する。また、Ｉ２Ｃ通信手段２７は、各モジュールＭから受信した情報を、ホスト２内で処理可能な形式に変換してモジュールＩＤ取得手段２１及び命令生成手段２２に出力する。
【０２６８】
Ｉ２Ｃ通信手段４６は、処理機能４３から出力された情報を、Ｉ２Ｃプロトコルに従った形式（Ｉ２Ｃフレーム）に変換して各モジュールＭに送信する。また、Ｉ２Ｃ通信手段４６は、各モジュールＭから受信した情報を、ホスト２内で処理可能な形式に変換して処理機能４３に出力する。
【０２６９】
ここで、本実施の形態２では、ホスト２のＩ２Ｃ通信手段２７はマスター機能を有し、モジュールＭのＩ２Ｃ通信手段４６はスレーブ機能を有している。スレーブ機能は、マスター機能と比較して、安価に実装することができる。すなわち、複数を用意する必要のあるモジュールＭのそれぞれのコストを低減することができる。そのため、仮想モデル生成システム１のコストを抑えることができる。例えば、図１６及び図１８に示すように、通信機能４２（Ｉ２Ｃ通信手段４６）をマイコン４０００に含めることができるようになり、仮想モデル生成システム１のコストを抑えることができる。
【０２７０】
＜実施の形態３＞
続いて、図３３を参照して、実施の形態３について説明する。以下、実施の形態１と同様の内容については記載を省略し、実施の形態１と異なる内容を記載する。
【０２７１】
図３３では、各モジュールＭが立方体又は直方体である例を示している。実施の形態３では、図３３に示すように、各モジュールＭの接続ポートｐは直接接続されず、接続用部品５を介して接続される。接続用部品５は、その少なくとも一部がモジュールＭに挿入される。接続用部品５の一端が一方のモジュールＭに接続され、接続用部品５の他端が他方のモジュールＭに接続されることで、２つのモジュールＭが接続される。接続用部品５は、信号線Ｓ、電源電圧線Ｖｄｄ、及びグランド線Ｇｎｄを含む配線５０を有する。この配線５０により、２つのモジュールＭの信号線Ｓ、電源電圧線Ｖｄｄ、及びグランド線Ｇｎｄが接続される。
【０２７２】
図２の例では凹凸形状を用いモジュール間の機械的・電気的な接続を行ったが、この場合、凸型モジュールには凸型モジュールしか接続することはできず、接続に制限があった。本実施の形態ではすべてが凹型で凸型のコネクタを利用してモジュール同士を接続するために接続の制限が無く自由に接続できる。
【０２７３】
上述の通り、各モジュールＭは、接続用部品５を介して、機械的・電気的に接続するようにしてもよい。
【０２７４】
＜実施の形態４＞
続いて、図３４を参照して、実施の形態４について説明する。以下、実施の形態１と同様の内容については記載を省略し、実施の形態１と異なる内容を記載する。
【０２７５】
図３４に示すように、本実施の形態４では、実施の形態１と比較して、ホスト２は、仮想組立て手段２８と、比較手段２９とを有する。
【０２７６】
仮想組立て手段２８は、ユーザからのホスト２の入力手段（図示せず）を介した複数のモジュールＭの接続関係の入力に応じて、その複数のモジュールＭの接続関係を示す情報として、接続検知データベース２８９を生成する。ここで入力される複数のモジュールＭの接続関係は、実際に複数のモジュールＭを接続する際に期待される接続関係となる。
【０２７７】
接続検知データベース２８９は、複数のモジュールＭの接続関係を示す情報である。接続検知データベース２８９は、接続検知データベース２０９と同じ形式で、複数のモジュールＭの接続関係を示す。
【０２７８】
比較手段２９は、接続検知データベース２０９が示す複数のモジュールＭの接続関係と、接続検知データベース２８９が示す複数のモジュールＭの接続関係とを比較する。比較手段２９は、比較結果を示す比較結果情報を仮想モデル生成手段２４に出力する。
【０２７９】
仮想モデル生成手段２４は、比較手段２９から出力された比較結果情報が示す比較結果を表示手段２５に表示する。例えば、仮想モデル生成手段２４は、表示手段２５に表示する仮想モデルにおいて、期待される接続関係と異なる部分を強調表示する。例えば、期待と異なるモジュールＭが接続されている場合に、そのモジュールＭを強調表示するようにしてもよい。また、例えば、接続ポートｐに他のモジュールＭが接続されることが期待される場合に、その接続ポートｐに他のモジュールＭがされていないときには、その接続ポートｐを強調表示するようにしてもよい。また、例えば、接続ポートｐに他のモジュールＭが接続されないことが期待される場合に、その接続ポートｐに他のモジュールＭがされているときには、その接続ポートｐ又はそのモジュールＭを強調表示するようにしてもよい。強調表示は、例えば、正常に接続される接続ポートｐ及びモジュールＭと異なる色による表示とすればよい。
【０２８０】
これによれば、ユーザが複数のモジュールＭを接続することで構成された物理モデルにおいて、期待と異なる部分を容易に認識することができる。よって、物理モデルにおいて、部品間違い及び部品不足を防止することができる。また、組み立て直しを最小限に留めることができるため、モジュールＭの接続部分の劣化を防止することができる。
【０２８１】
＜実施の形態５＞
続いて、図３５を参照して、実施の形態５について説明する。以下、実施の形態１と同様の内容については記載を省略し、実施の形態１と異なる内容を記載する。
【０２８２】
図３５に示すように、本実施の形態５では、実施の形態１と比較して、接続検出機能１０を、ホスト２に代えてマスターモジュールＭに有する。複数のモジュールＭのうち、いずれか１つをマスターモジュールＭとする。
【０２８３】
これによれば、実施の形態１と同様に、接続検出機能１０は、１つのマスターモジュールＭが有するのみであるため、他のモジュールＭは、簡易な構成とすることができる。よって、実施の形態１と同様に、仮想モデル生成システム１のコスト・消費電力を抑制することができる。
【０２８４】
＜実施の形態６＞
続いて、図３６を参照して、実施の形態６について説明する。以下、実施の形態１と同様の内容については記載を省略し、実施の形態１と異なる内容を記載する。
【０２８５】
実施の形態６では、ホスト２とモジュールＭとの通信規格にＩ２Ｃを採用した場合におけるＩ２Ｃアドレスの衝突を防止する方法について説明する。ホスト２とモジュールＭとの通信規格にＩ２Ｃを採用した場合、Ｉ２Ｃアドレスが１２８個（０〜１２７）しかないため、モジュールＭの数が多い場合には、Ｉ２Ｃアドレスが重複し、正常に通信できない状態になることが考えられる。
【０２８６】
そこで、実施の形態６では、モジュールＩＤ取得手段２１は、モジュールＩＤ一覧の取得において、新たなモジュールＭのＩ２Ｃアドレスが既に認識されているモジュールＭのＩ２Ｃアドレスと重複した場合、いずれか一方のモジュールＭのＩ２Ｃアドレスを重複しないように変更することで正常な通信を可能とする（Ｓ１１６）。例えば、モジュールＩＤ取得手段２１は、モジュールＭのＩ２Ｃアドレスを、ＩＤ返信要求に対して応答の無いＩ２Ｃアドレスに変更してもよい。また、このＩ２Ｃアドレスの重複回避は、一般的な技術を利用してもよく、例えば、ＳＭ（System Management）バスにおける機能を利用してもよい。
【０２８７】
また、モジュールＩＤ取得手段２１は、モジュール制御表及びモジュール接続関係表において、Ｉ２Ｃアドレスを変更したモジュールＭのＩ２Ｃアドレスも変更後のＩ２Ｃアドレスに更新する。これにより、命令生成手段２２も、モジュール制御表に基づいてＩ２Ｃアドレスが変更されたモジュールＭに正常に通信することができる。
【０２８８】
＜他の実施の形態＞
上述の各実施の形態１〜６においてホスト２及び複数のモジュールＭを接続することで構成されるバスは、複数のモジュールＭの接続関係を検知するためだけの利用に限られない。例えば、複数のモジュールＭを接続することで構成される物理モデルが、動作するガジェットである場合、その動作時に各モジュールＭを制御する制御信号を伝送するバスとして流用するようにしてもよい。
【０２８９】
例えば、図５に示す例において、モジュールＭ１の処理機能４３に他のモジュールＭを制御する機能を有するようにし、モジュールＭ１の処理機能４３に他のモジュールＭに対してバスを介して制御信号を送信するようにしてもよい。例えば、モジュールＭ１の処理機能４３は、ギアＢＯＸとして機能するモジュールＭ６に対してギアの切り替えを要求する制御信号を送信するようにしてもよい。その場合、モジュール間の接続関係を取得した後はすべてのポートをオン状態にした状態で利用する。
【０２９０】
また、この場合に、モジュールＭ１を、図３５を参照して説明したマスターモジュールＭとして実装するようにしてもよい。そして、モジュールＭ１の接続検出機能１０により、モジュールＭの一部が外れたことを検知するようにしてもよい。具体的には、接続検出機能１０は、モジュールＩＤ一覧を定期的に取得する。接続検出機能１０は、前回に取得したモジュールＩＤ一覧に存在するが、今回に取得したモジュールＩＤ一覧で存在しなくなったモジュールＩＤを検出した場合、そのモジュールＩＤのモジュールＭが外れてしまったと判断する。そして、処理機能４３は、接続検出機能１０によってモジュールＭの一部が外れたことが検知された場合、例えば、ガジェットの動作を停止させるように制御する。これによれば、ガジェットの暴走を防止することができる。
【０２９１】
また、図３７に示すように、仮想モデル生成システム１は、ホスト２が仮想モデル生成機能１１を有さないようにしてもよい。すなわち、ホスト２は、接続検出機能１０によって複数のモジュールＭの接続関係の検出のみを実施するようにしてもよい。この場合、仮想モデル生成システム１は、接続関係検出システム９として機能する。そして、このようにして得られたモジュールＭの接続関係は、上述の仮想モデルの生成、及びユーザが入力したモジュールＭの接続関係との比較に限らず、様々な用途に利用するようにしてよい。また、接続検出機能１０によって、仮想モデルではなく、モジュールＭの接続関係を表示手段２５に表示するようにしてもよい。
【０２９２】
また、上述したホストプログラム２９９及びサーバープログラム３０９は、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータ（ＰＣ及びサーバー等）に供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【０２９３】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【０２９４】
例えば、仮想モデル生成システム１がサーバー３を有さないようにし、モジュールＭに関するデータ３０１〜３０７を、ホスト２が有するようにすることで、ホスト２がサーバー３に問い合わせをすることなく、モジュールデータを取得可能としてもよい。しかしながら、好ましくは、上述した各実施の形態１〜６のように、仮想モデル生成システム１がサーバー３を有するようにするとよい。そのようにすることで、モジュールデータに変更が生じた場合に、サーバー３のモジュールデータを変更するのみで対応することが可能となる。
【符号の説明】
【０２９５】
１  仮想モデル生成システム
２  ホスト
３  サーバー
５  接続用部品
９  接続関係検出システム
１０  接続検出機能
１１  仮想モデル生成機能
１２  接続変更機能
１９  モジュールＩＤ
２０  処理手段
２１  モジュールＩＤ取得手段
２２  命令生成手段
２３  通信制御手段
２４  仮想モデル生成手段
２５  表示手段
２６  情報問い合わせ手段
２７  Ｉ２Ｃ通信手段
２９  比較手段
３０  制御手段
３１  入力手段
３２  出力手段
４０  制御機能
４１  スイッチアレイ部
４２  通信機能
４３  処理機能
４４  モジュールＩＤ保持機能
４５  電圧検出機能
４６  Ｉ２Ｃ通信手段
５０  導通部分
２００  ＩＤ比較部
２０１  接続ポート数取得部
２０２  接続関係管理部
２０９、２８９  接続検知データベース
２１０  形状・接続ポート座標取得部
２１１  モジュール座標計算部
２１２  モジュール姿勢計算部
２１３  ３Ｄデータ生成部
２１９  モジュールデータベース
２９９  ホストプログラム
３０１  モジュールＩＤ紐付けデータベース
３０２  接続ポート数データベース
３０３  接続ポートアドレスデータベース
３０４  形状・接続ポート座標データベース
３０５  メーカ・型番データベース
３０６  モジュール名データベース
３０７  素材・重さデータベース
３０９  サーバープログラム
４００  モジュール基板
４２０  切替部
４２１  通信部
２０００、３０００  ＣＰＵ
２００１、３００１  メモリ
２００２、３００２  ハードディスク
２００４、３００３  ネットワークアダプタ
４０００  マイコン
４００１  アナログスイッチＩＣ
４００２  外付けダイオード
ｃ  凸部
ｄ１、ｄ２、ｄ３、ｄ４  ダイオード
ｐ、ｐ１、ｐ２、ｐ３、ｐ４  接続ポート
ＣＵ  制御装置
Ｍ、Ｍ１、Ｍ２、Ｍ３、Ｍ４、Ｍ５、Ｍ６、Ｍ７  モジュール
Ｍａ、Ｍｂ  ブロック
ＳＷ、ＳＷ１、ＳＷ２、ＳＷ３、ＳＷ４  スイッチ
【図１】
2016091512.tif 000003
【図２】
2016091512.tif 000004
【図３】
2016091512.tif 000005
【図４】
2016091512.tif 000006
【図５】
2016091512.tif 000007
【図６】
2016091512.tif 000008
【図７】
2016091512.tif 000009
【図８】
2016091512.tif 000010
【図９】
2016091512.tif 000011
【図１０】
2016091512.tif 000012
【図１１】
2016091512.tif 000013
【図１２】
2016091512.tif 000014
【図１３】
2016091512.tif 000015
【図１４】
2016091512.tif 000016
【図１５】
2016091512.tif 000017
【図１６】
2016091512.tif 000018
【図１７】
2016091512.tif 000019
【図１８】
2016091512.tif 000020
【図１９】
2016091512.tif 000021
【図２０】
2016091512.tif 000022
【図２１】
2016091512.tif 000023
【図２２】
2016091512.tif 000024
【図２３】
2016091512.tif 000025
【図２４】
2016091512.tif 000026
【図２５】
2016091512.tif 000027
【図２６】
2016091512.tif 000028
【図２７】
2016091512.tif 000029
【図２８】
2016091512.tif 000030
【図２９】
2016091512.tif 000031
【図３０】
2016091512.tif 000032
【図３１】
2016091512.tif 000033
【図３２】
2016091512.tif 000034
【図３３】
2016091512.tif 000035
【図３４】
2016091512.tif 000036
【図３５】
2016091512.tif 000037
【図３６】
2016091512.tif 000038
【図３７】
2016091512.tif 000039