(57)【要約】  トークン受信部（１１２）は、トークンパッシングシステムで通信されるトークンを受信する。模擬部（１２０）は、トークン受信部（１１２）により受信されたトークンの宛先が、トークンパッシングシステムに含まれる通信機器であるか否かを判定し、トークンの宛先が通信機器でない場合に、仮想通信機器として、通信機器の動作を模擬する。
2018109949.tif 000002
【特許請求の範囲】
【請求項１】
トークンパッシングシステムに含まれる模擬装置であって、
前記トークンパッシングシステムで通信されるトークンを受信するトークン受信部と、
前記トークン受信部により受信された前記トークンの宛先が前記トークンパッシングシステムに含まれる通信機器であるか否かを判定し、前記トークンの宛先が前記通信機器でない場合に、仮想通信機器として、前記通信機器の動作を模擬する模擬部とを有する模擬装置。
【請求項２】
前記模擬部は、
前記通信機器から前記仮想通信機器を宛先とするトークンが送信されるように前記通信機器の設定を変更する請求項１に記載の模擬装置。
【請求項３】
前記トークンパッシングシステムには、前記通信機器として、スレーブ機器が含まれており、
前記模擬装置が、前記スレーブ機器を管理するマスタ機器である請求項１に記載の模擬装置。
【請求項４】
前記トークンパッシングシステムには、複数の通信機器として、マスタ機器とスレーブ機器とが含まれており、
前記模擬装置が、前記マスタ機器及び前記スレーブ機器とは異なる機器である請求項１に記載の模擬装置。
【請求項５】
前記トークン受信部は、
前記トークンパッシングシステムに対する試験において、前記トークンを受信し、
前記模擬部は、
前記トークンパッシングシステムに対する試験において、前記トークン受信部により受信された前記トークンの宛先が前記通信機器であるか否かを判定し、前記トークンの宛先が前記通信機器でない場合に、前記仮想通信機器として、前記通信機器の動作を模擬する請求項１に記載の模擬装置。
【請求項６】
トークンパッシングシステムに含まれるコンピュータが、前記トークンパッシングシステムで通信されるトークンを受信し、
前記コンピュータが、受信された前記トークンの宛先が前記トークンパッシングシステムに含まれる通信機器であるか否かを判定し、前記トークンの宛先が前記通信機器でない場合に、仮想通信機器として、前記通信機器の動作を模擬する模擬方法。
【請求項７】
トークンパッシングシステムに含まれるコンピュータに、
前記トークンパッシングシステムで通信されるトークンを受信するトークン受信処理と、
前記トークン受信処理により受信された前記トークンの宛先が前記トークンパッシングシステムに含まれる通信機器であるか否かを判定し、前記トークンの宛先が前記通信機器でない場合に、仮想通信機器として、前記通信機器の動作を模擬する模擬処理とを実行させる模擬プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トークンパッシングシステムに関する。
【背景技術】
【０００２】
Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎシステム（以下、ＦＡシステムという）では、複数台のＰｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ（以下、ＰＬＣという）がネットワークに接続する。各ＰＬＣにはロボット、センサ等の機器が接続される。各ＰＬＣは、これらの機器を制御する。ＦＡシステムでは、通信システムとして、トークンパッシングシステムが用いられることがある。トークンパッシングシステムでは、トークンと呼ばれるデータの送信権が、ネットワークに接続する複数のノードの間で巡回する。そして、トークンを保持するノードがデータを送信することができる。ＦＡシステムにおいてトークンパッシングシステムを利用することにより、各ＰＬＣが一定周期にてデータを送信することができる。【０００３】
ＦＡシステムを試験する技術として、特許文献１に記載の技術がある。特許文献１の技術では、仮想環境上に仮想ＰＬＣ及びデータの送受信を行う仮想通信ユニットが設けられる。そして、特許文献１の技術では、ユーザが指定した遅延時間に従って仮想通信ユニットの通信タイミングを遅延させて試験を行っている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−７３２１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の技術では、物理的にトークンパッシングシステムを構成するのではなく、仮想的なトークンパッシングシステムを構築している。そして、特許文献１の技術では、ユーザが指定した遅延時間だけ仮想通信ユニットの通信タイミングを遅延させて試験を行っている。しかしながら、ユーザにより指定される遅延時間が、実機のＰＬＣで発生する遅延時間に一致しているとは限らない。ユーザにより指定される遅延時間が、実機のＰＬＣで発生する遅延時間に一致していない場合は、ＦＡシステムの本番環境で生じる遅延を試験において正確に再現することができない。
一方で、試験の際に、本番環境で用いられる全てのＰＬＣを揃えることは難しく、本番環境よりも少ないＰＬＣの構成で試験を実施することが望まれている。ＦＡシステムで発生する遅延はＰＬＣの数に比例するため、試験時にＰＬＣの数が少ないと、各ＰＬＣがデータを送信する周期（各ＰＬＣがトークンを取得する周期）が本番環境に比べて短くなる。このため、各ＰＬＣに接続される機器に制御命令のデータが伝達するまでの時間が試験と本番環境とで異なることになり、試験では機器の制御に成功したが、本番環境では機器の制御に失敗するという事態が発生し得る。【０００６】
本発明は、このような事情に鑑み、本番環境よりも少ない通信機器で構成されたトークンパッシングシステムにおいて精度よく試験を行うことが可能な構成を得ることを主な目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る模擬装置は、
トークンパッシングシステムに含まれる模擬装置であって、
前記トークンパッシングシステムで通信されるトークンを受信するトークン受信部と、
前記トークン受信部により受信された前記トークンの宛先が前記トークンパッシングシステムに含まれる通信機器であるか否かを判定し、前記トークンの宛先が前記通信機器でない場合に、仮想通信機器として、前記通信機器の動作を模擬する模擬部とを有する。
【発明の効果】
【０００８】
本発明では、トークンパッシングシステムに含まれている模擬装置が、仮想通信機器として、通信機器の動作を模擬する。このため、本発明によれば、試験の際にトークンパッシングシステムに含まれていない通信機器の動作を試験に反映させることが可能であり、本番環境よりも少ない通信機器で構成されたトークンパッシングシステムにおいて精度よく試験を行うことができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係るスター型トポロジのトークンパッシングシステムのシステム構成例を示す図。
【図２】実施の形態１に係るライン型トポロジのトークンパッシングシステムのシステム構成例を示す図。
【図３】実施の形態１に係るリング型トポロジのトークンパッシングシステムのシステム構成例を示す図。
【図４】実施の形態１に係るマスタ機器のハードウェア構成例を示す図。
【図５】実施の形態１に係るマスタ機器の機能構成例を示す図。
【図６】実施の形態１に係るスレーブ機器のハードウェア構成例を示す図。
【図７】実施の形態１に係るスレーブ機器の機能構成例を示す図。
【図８】実施の形態１に係る仮想的なスレーブ機器が含まれるトークンパッシングシステムのシステム構成例を示す図。
【図９】実施の形態１に係る手続きＡを示すフローチャート。
【図１０】実施の形態１に係る手続きＢを示すフローチャート。
【図１１】実施の形態２に係るスター型トポロジのトークンパッシングシステムのシステム構成例を示す図。
【図１２】実施の形態２に係る模擬装置のハードウェア構成例を示す図。
【図１３】実施の形態２に係る模擬装置の機能構成例を示す図。
【図１４】実施の形態２に係るマスタ機器の機能構成例を示す図。
【図１５】実施の形態２に係る手続きＢを示すフローチャート。
【図１６】実施の形態１に係る更新前の機器管理テーブルの例を示す図。
【図１７】実施の形態１に係る更新後の機器管理テーブルの例を示す図。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分又は相当する部分を示す。
【００１１】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１は、実施の形態１に係るトークンパッシングシステムのシステム構成例を示す。図１のトークンパッシングシステムのネットワークトポロジはスター型であるが、実施の形態１に係るトークンパッシングシステムのネットワークトポロジはスター型に限定されない。
図２は、ライン型トポロジのトークンパッシングシステムのシステム構成例を示す。また、図３は、リング型トポロジのトークンパッシングシステムのシステム構成例を示す。
また、図１と図２とを組み合わせて、ライン型とスター型の混在したネットワークトポロジのトークンパッシングシステムを構築することも可能である。
以下では、主に、図１のネットワークトポロジのトークンパッシングシステムを説明する。
【００１２】
図１において、マスタ機器１００、スレーブ機器２００及びスレーブ機器３００は、それぞれＰＬＣである。
スレーブ機器２００及びスレーブ機器３００は、それぞれ通信機器に相当する。
また、本実施の形態では、マスタ機器１００は模擬装置に相当する。マスタ機器１００が行う動作は、模擬方法及び模擬プログラムに相当する。
マスタ機器１００はスレーブ機器２００及びスレーブ機器３００を管理する。より具体的には、マスタ機器１００は、トークンパケットの送信先及びデータのデータ長の管理を行う。また、マスタ機器１００は、トークンパケットの送信先及びデータ長を通知する管理情報をスレーブ機器２００及びスレーブ機器３００に設定する。トークンパケットは、トークンを受け渡しするためのパケットである。以下、トークンパケットを送信することを、トークンを送信するともいう。また、トークンパケットを受信することを、トークンを受信するともいう。
スレーブ機器２００及びスレーブ機器３００は、それぞれ、ロボット、センサ等に接続されている。スレーブ機器２００及びスレーブ機器３００は、それぞれ、マスタ機器１００により設定された管理情報に基づきトークンの送信及びデータの送信を行う。
マスタ機器１００、スレーブ機器２００及びスレーブ機器３００は、それぞれ、スイッチングハブ４００に接続されている。
スイッチングハブ４００は、マスタ機器１００、スレーブ機器２００及びスレーブ機器３００の間の通信を中継する。
【００１３】
図４は、マスタ機器１００のハードウェア構成例を示す。
図４に示すように、マスタ機器１００は、プロセッサ１５１、記憶装置１５２、通信インタフェース１５３及び機器制御インタフェース１５４を備える。
マスタ機器１００は、コンピュータである。
プロセッサ１５１は、データの送信を行う。また、プロセッサ１５１は、トークンを保持するか否か判定を行う。また、プロセッサ１５１は、後述する機器管理テーブルを操作するための演算を行う。更に、プロセッサ１５１は、図５に示す機能を実現するプログラムを実行する。
記憶装置１５２は、機器管理テーブルを記憶する。また、記憶装置１５２は、図５に示す機能を実現するプログラムを記憶する。また、記憶装置１５２は、スレーブ機器２００及びスレーブ機器３００から受信したデータを記憶する。また、記憶装置１５２は、スレーブ機器２００及びスレーブ機器３００に送信するデータを記憶する。
通信インタフェース１５３は、スイッチングハブ４００を介してスレーブ機器２００及びスレーブ機器３００と通信するためのインタフェースである。
機器制御インタフェース１５４は、ロボット、センサ等の機器を制御するためインタフェースである。
図４では、１つの通信インタフェース１５３のみが示されているが、マスタ機器１００は複数の通信インタフェース１５３を備えていてもよい。同様に、図４では、１つの機器制御インタフェース１５４のみが示されているが、マスタ機器１００は複数の機器制御インタフェース１５４を備えていてもよい。
【００１４】
図６は、スレーブ機器２００のハードウェア構成例を示す。
図６に示すように、スレーブ機器２００は、プロセッサ２５１、記憶装置２５２、通信インタフェース２５３及び機器制御インタフェース２５４を備える。
スレーブ機器２００は、コンピュータである。
プロセッサ２５１は、データの送信を行う。また、プロセッサ２５１は、トークンを保持するか否か判定を行う。更に、プロセッサ２５１は、図７に示す機能を実現するプログラムを実行する。
記憶装置２５２は、図７に示す機能を実現するプログラムを記憶する。また、記憶装置２５２は、マスタ機器１００及びスレーブ機器３００から受信したデータを記憶する。また、記憶装置２５２は、マスタ機器１００及びスレーブ機器３００に送信するデータを記憶する。
通信インタフェース２５３は、スイッチングハブ４００を介してマスタ機器１００及びスレーブ機器３００と通信するためのインタフェースである。
機器制御インタフェース２５４は、ロボット、センサ等の機器を制御するためインタフェースである。
図６では、１つの通信インタフェース２５３のみが示されているが、スレーブ機器２００は複数の通信インタフェース２５３を備えていてもよい。同様に、図６では、１つの機器制御インタフェース２５４のみが示されているが、スレーブ機器２００は複数の機器制御インタフェース２５４を備えていてもよい。
なお、スレーブ機器３００のハードウェア構成も図６に示すとおりである。
【００１５】
図５は、マスタ機器１００の機能構成例を示す。
マスタ機器１００は、初期設定部１１１、トークン受信部１１２、データ送信部１１３、トークン送信部１１４、データ受信部１１５及び模擬部１２０により構成される。
初期設定部１１１、トークン受信部１１２、データ送信部１１３、トークン送信部１１４、データ受信部１１５は、マスタ機器１００のＰＬＣとしての機能を実現する機能ブロックである。
模擬部１２０は、マスタ機器１００がスレーブ機器の動作を模擬するための機能ブロックである。
模擬部１２０は、機器管理テーブル操作部１２１、トークン宛先設定部１２２、仮想機器トークン受信部１２３、仮想機器データ送信部１２４及び仮想機器トークン送信部１２５で構成される。
なお、初期設定部１１１、トークン受信部１１２、データ送信部１１３、トークン送信部１１４、データ受信部１１５及び模擬部１２０は、プログラムにより実現される。プロセッサ１５１が、これらプログラムを実行することで、初期設定部１１１、トークン受信部１１２、データ送信部１１３、トークン送信部１１４、データ受信部１１５及び模擬部１２０の機能が実現される。
図５では、プロセッサ１５１が初期設定部１１１、トークン受信部１１２、データ送信部１１３、トークン送信部１１４、データ受信部１１５及び模擬部１２０の機能を実現するプログラムを実行している状態を模式的に表している。
機器管理テーブル記憶部１１６は、機器管理テーブルを記憶する。機器管理テーブルは、例えば、図１６に示すテーブルである。機器管理テーブルには、通信機器ごとに、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス、トークン宛先ＭＡＣアドレス、送信データ長が記述されている。機器管理テーブルの詳細は後述する。なお、機器管理テーブル記憶部１１６は、記憶装置１５２により実現される。
【００１６】
次に、初期設定部１１１、トークン受信部１１２、データ送信部１１３、トークン送信部１１４、データ受信部１１５及び機器管理テーブル記憶部１１６の詳細を説明する。
【００１７】
初期設定部１１１は、スレーブ機器２００及びスレーブ機器３００に、機器管理テーブルのトークン宛先ＭＡＣアドレス等の情報を設定する。
【００１８】
トークン受信部１１２は、トークンパケットを受信する。そして、トークン受信部１１２は、受信したトークンパケットに記載されているトークン宛先ＭＡＣアドレスを、マスタ機器１００のＭＡＣアドレスと比較する。トークン宛先ＭＡＣアドレスがマスタ機器１００のＭＡＣアドレスと一致すれば、トークン受信部１１２は、トークンを保持する。また、トークン受信部１１２は、データ送信部１１３にデータを送信するよう指示する。
一方、トークン宛先ＭＡＣアドレスがマスタ機器１００のＭＡＣアドレスと一致しない場合は、トークン受信部１１２は、模擬部１２０にトークンパケットを転送する。
なお、トークン受信部１１２がトークンパケットを受信することを、トークン受信部１１２がトークンを受信するともいう。
なお、トークン受信部１１２の動作は、トークン受信処理に相当する。
【００１９】
データ送信部１１３は、トークン受信部１１２から指示があった場合に、スレーブ機器２００及びスレーブ機器３００にデータを送信する。データ送信部１１３が送信するデータには、スレーブ機器２００及びスレーブ機器３００に接続されているロボット、センサ等を制御するための制御情報が含まれる。
【００２０】
トークン送信部１１４は、データ送信部１１３によるデータの送信が完了した後に、機器管理テーブルを参照し、マスタ機器１００のトークン宛先ＭＡＣアドレスが記述されたトークンパケットをブロードキャストする。なお、トークン送信部１１４がトークンパケットを送信することを、トークン送信部１１４がトークンを送信するともいう。
【００２１】
データ受信部１１５は、スレーブ機器２００から送信されたデータ及びスレーブ機器３００から送信されたデータを受信する。
【００２２】
前述したように、機器管理テーブル記憶部１１６は、機器管理テーブルを記憶する。
機器管理テーブルには、図１６に示すように、通信機器ごとに、ＭＡＣアドレス、トークン宛先ＭＡＣアドレス、送信データ長が記述される。なお、図１６は、トークン巡回路が、マスタ機器１００→スレーブ機器２００→スレーブ機器３００→マスタ機器１００である場合の機器管理テーブルを示す。なお、トークン巡回路とは、トークンパッシングの経路である。
ＭＡＣアドレスの欄には、各通信機器に割り当てられているＭＡＣアドレスが記述される。
トークン宛先ＭＡＣアドレスの欄には、トークンパケットの宛先の通信機器に割り当てられているＭＡＣアドレスが記述される。例えば、マスタ機器１００のトークン宛先ＭＡＣアドレスの欄には「ＢＢ：ＢＢ：ＢＢ：ＢＢ：ＢＢ：ＢＢ」が記述されている。つまり、マスタ機器１００は、スレーブ機器２００を宛先としてトークンパケットを送信する。
送信データ長の欄には、各通信機器が送信するデータのデータ長が記述されている。例えば、マスタ機器１００の送信データ長の欄には「１０ｂｙｔｅ」が記述されている。つまり、マスタ機器１００は、１０ｂｙｔｅのデータをスレーブ機器２００及びスレーブ機器３００に送信する。
【００２３】
次に、模擬部１２０の詳細を説明する。
【００２４】
模擬部１２０は、トークンパッシングシステムに含まれる複数の通信機器の中から選択された選択通信機器から仮想通信機器を宛先とするトークンが送信されるように選択通信機器の設定を変更する。仮想通信機器は、マスタ機器により模擬される仮想的なスレーブ機器である。以下では、仮想通信機器をスレーブ機器５００と表記する。スレーブ機器５００は、図８に示す位置にて仮想的にトークンパッシングシステムに追加される。
ここでは、図１のトークンパッシングシステムにおいて、トークンの巡回路が、マスタ機器１００→スレーブ機器２００→スレーブ機器３００→マスタ機器１００であるものとする。
模擬部１２０は、例えば、スレーブ機器２００を選択通信機器として選択し、スレーブ機器２００からスレーブ機器５００にトークンが送信されるようにスレーブ機器２００の設定を変更する。
また、模擬部１２０は、トークン受信部１１２から転送されたトークンパケットの宛先がトークンパッシングシステムに含まれる複数の通信機器のうちのいずれかであるか否かを判定する。つまり、模擬部１２０は、トークンの宛先がスレーブ機器２００又はスレーブ機器３００であるかを判定する。模擬部１２０は、トークンの宛先がスレーブ機器２００及びスレーブ機器３００のいずれでもない場合、つまり、トークンの宛先がスレーブ機器５００である場合に、仮想通信機器として、スレーブ機器２００又はスレーブ機器３００の動作を模擬する。
なお、模擬部１２０の動作は、模擬処理に相当する。
【００２５】
模擬部１２０において、機器管理テーブル操作部１２１は、機器管理テーブルを変更する。
前述のように、スレーブ機器２００からスレーブ機器５００を宛先としてトークンを送信させる場合は、機器管理テーブル操作部１２１は、図１６の機器管理テーブルを図１７のように更新する。
図１７の機器管理テーブルでは、実在識別子の欄が追加されている。
また、仮想通信機器であるスレーブ機器５００のレコードが追加されている。
図１７において破線で囲んでいる部分が、図１６からの追加部分である。
実在識別子の欄には、トークンパッシングシステムに含まれている通信機器であれば、「Ｔｒｕｅ」が記述される。一方、トークンパッシングシステムに含まれていない通信機器（仮想通信機器）であれば、「Ｆａｌｓｅ」が記述される。
図１７の例では、マスタ機器１００、スレーブ機器２００、スレーブ機器３００に対しては「Ｔｒｕｅ」が記述されるが、スレーブ機器５００に対しては「Ｆａｌｓｅ」が記述される。
【００２６】
トークン宛先設定部１２２は、トークンパッシングシステムに含まれる全ての通信機器に対して機器管理テーブルに記述されるトークン宛先ＭＡＣアドレスを設定する。
つまり、トークン宛先設定部１２２は、機器管理テーブルが図１６の状態であれば、スレーブ機器２００に対してトークン宛先ＭＡＣアドレス「ＣＣ：ＣＣ：ＣＣ：ＣＣ：ＣＣ」を設定する。また、トークン宛先設定部１２２は、スレーブ機器３００に対してトークン宛先ＭＡＣアドレス「ＡＡ：ＡＡ：ＡＡ：ＡＡ：ＡＡ」を設定する。
機器管理テーブル操作部１２１により機器管理テーブルが図１７の状態に更新された場合は、トークン宛先設定部１２２は、スレーブ機器２００に対してトークン宛先ＭＡＣアドレス「ＤＤ：ＤＤ：ＤＤ：ＤＤ：ＤＤ」を設定する。つまり、トークン宛先設定部１２２は、スレーブ機器２００がスレーブ機器５００を宛先とするトークンを送信するように、スレーブ機器２００の設定を変更する。
【００２７】
仮想機器トークン受信部１２３は、トークン受信部１１２が受信したトークンパケットがトークン受信部１１２から転送された場合に、トークンパケットに記述されるトークン宛先ＭＡＣアドレスと機器管理テーブルのＭＡＣアドレスとを照合する。トークン宛先ＭＡＣアドレスがスレーブ機器５００のＭＡＣアドレスと一致する場合に、仮想機器トークン受信部１２３は、スレーブ機器５００としてトークンを保持する。
そして、仮想機器トークン受信部１２３は、仮想機器データ送信部１２４に、スレーブ機器５００としてデータを送信するよう指示する。つまり、仮想機器トークン受信部１２３は、仮想機器データ送信部１２４に仮想通信機器であるスレーブ機器５００として振る舞うよう指示する。
一方、トークン宛先ＭＡＣアドレスがスレーブ機器５００のＭＡＣアドレスと一致しない場合は、トークン受信部２１１は、トークンパケットを破棄する。
【００２８】
仮想機器データ送信部１２４は、仮想機器トークン受信部１２３から指示があった場合に、機器管理テーブルのスレーブ機器５００のデータ長に一致するデータ長のデータを生成し、生成したデータをブロードキャストする。
【００２９】
仮想機器トークン送信部１２５は、仮想機器データ送信部１２４によるデータの送信が完了した後に、機器管理テーブルを参照し、スレーブ機器５００のトークン宛先ＭＡＣアドレスが記述されたトークンパケットをブロードキャストする。
なお、仮想機器トークン送信部１２５がトークンパケットを送信することを、仮想機器トークン送信部１２５がトークンを送信するともいう。
【００３０】
なお、トークン受信部１１２によるトークンパケットの受信、データ送信部１１３によるデータの送信、トークン送信部１１４によるトークンの送信、データ受信部１１５によるデータの受信、仮想機器データ送信部１２４によるデータの送信、仮想機器トークン送信部１２５によるトークンの送信は、図４の通信インタフェース１５３により行われる。
【００３１】
図７は、スレーブ機器２００の機能構成例を示す。
【００３２】
トークン受信部２１１は、トークンパケットを受信する。そして、トークン受信部２１１は、受信したトークンパケットに記載されているトークン宛先ＭＡＣアドレスを、スレーブ機器２００のＭＡＣアドレスと比較する。
トークン宛先ＭＡＣアドレスがスレーブ機器２００のＭＡＣアドレスと一致すれば、トークン受信部２１１は、トークンを保持する。また、トークン受信部２１１は、データ送信部２１２にデータを送信するよう指示する。
一方、トークン宛先ＭＡＣアドレスがスレーブ機器２００のＭＡＣアドレスと一致しない場合は、トークン受信部２１１は、トークンパケットを破棄する。なお、トークン受信部２１１がトークンパケットを受信することを、トークン受信部２１１がトークンを受信するともいう。
【００３３】
データ送信部２１２は、トークン受信部２１１から指示があった場合に、マスタ機器１００、スレーブ機器３００及びスレーブ機器５００にデータを送信する。
【００３４】
トークン送信部２１３は、データ送信部２１２によるデータの送信が完了した後に、トークン宛先ＭＡＣアドレスが記述されたトークンパケットをブロードキャストする。
なお、トークン送信部２１３がトークンパケットを送信することを、トークン送信部２１３がトークンを送信するともいう。
【００３５】
データ受信部２１４は、マスタ機器１００及びスレーブ機器３００から送信されたデータを受信する。
【００３６】
なお、トークン受信部２１１によるトークンパケットの受信、データ送信部２１２によるデータの送信、トークン送信部２１３によるトークンの送信、データ受信部２１４によるデータの受信は、図６の通信インタフェース２５３により行われる。
また、スレーブ機器３００の機能構成も図７に示すとおりである。
【００３７】
＊＊＊動作の説明＊＊＊
次に、マスタ機器１００の動作例を説明する。以下では、マスタ機器１００が、スレーブ機器２００又はスレーブ機器３００の動作を模擬して、図８のスレーブ機器５００として振る舞う例を説明する。
マスタ機器１００の動作は、手続きＡと手続きＢに分けられる。手続きＡでは、機器管理テーブルの更新及び更新後の機器管理テーブルを基にした通信機器への設定が行われる。手続きＢでは、トークンの受信、マスタ機器１００の本来の動作及びスレーブ機器５００の動作が行われる。
図９は、手続きＡを示すフローチャートであり、図１０は、手続きＢを示すフローチャートである。
【００３８】
まず、図９を参照して、手続きＡを説明する。
【００３９】
ステップＳ１において、機器管理テーブル操作部１２１が、機器管理テーブルを更新する。
より具体的には、マスタ機器１００のオペレータが、図１７において破線で囲んでいる情報をマスタ機器１００に入力する。そして、機器管理テーブル操作部１２１が、オペレータから入力された情報に基づき、機器管理テーブルを図１７に示すように更新する。つまり、機器管理テーブル操作部１２１は、仮想的なスレーブ機器であるスレーブ機器５００のレコードを追加し、実在識別子の欄を追加し、また、スレーブ機器２００のトークン宛先ＭＡＣアドレスを変更する。
【００４０】
次に、ステップＳ２において、トークン宛先設定部１２２が、機器管理テーブルのトークン宛先ＭＡＣアドレスを、該当するスレーブ機器に設定する。
図１７の例では、トークン宛先設定部１２２は、スレーブ機器２００に、新たなトークン宛先ＭＡＣアドレス「ＤＤ：ＤＤ：ＤＤ：ＤＤ：ＤＤ」を設定する。
なお、ここでは、トークン宛先設定部１２２は、トークン宛先ＭＡＣアドレスが変更になるスレーブ機器２００にのみ、新たなトークン宛先ＭＡＣアドレスを設定することにしているが、トークン宛先設定部１２２は、トークン宛先ＭＡＣアドレスが変更にならないスレーブ機器３００にも、トークン宛先ＭＡＣアドレス「ＡＡ：ＡＡ：ＡＡ：ＡＡ：ＡＡ」を設定してもよい。
【００４１】
次に、図１０を参照して、手続きＢを説明する。
【００４２】
トークン受信部１１２がトークンパケットを受信すると、ステップＳ３において、トークン受信部１１２は、トークンの宛先がマスタ機器１００であるか否かを判定する。
具体的には、トークン受信部１１２は、トークンパケットに含まれるトークン宛先ＭＡＣアドレスと、機器管理テーブルのマスタ機器１００のＭＡＣアドレスとを比較する。
【００４３】
トークン宛先ＭＡＣアドレスがマスタ機器１００のＭＡＣアドレスと一致する場合、つまり、トークン宛先ＭＡＣアドレスが「ＡＡ：ＡＡ：ＡＡ：ＡＡ：ＡＡ：ＡＡ」である場合は、ステップＳ４において、トークン受信部１１２は、トークンを保持する。また、トークン受信部１１２は、データ送信部１１３にデータの送信を指示する。
【００４４】
次に、ステップＳ５において、データ送信部１１３は、マスタ機器１００のデータをブロードキャストする。
【００４５】
また、データ送信部１１３によるデータ送信が完了すると、ステップＳ６において、トークン送信部１１４が、マスタ機器１００のトークンの宛先にトークンパケットを送信する。
より具体的には、トークン送信部１１４は、機器管理テーブルのマスタ機器１００のトークン宛先ＭＡＣアドレスである「ＢＢ：ＢＢ：ＢＢ：ＢＢ：ＢＢ：ＢＢ」が記述されたトークンパケットをブロードキャストする。
【００４６】
ステップＳ３においてトークン宛先ＭＡＣアドレスがマスタ機器１００のＭＡＣアドレスと一致しない場合は、トークン受信部１１２がトークンパケットを模擬部１２０に転送する。そして、ステップＳ７において、仮想機器トークン受信部１２３が、トークンの宛先の通信機器が実在するか否かを判定する。
より具体的には、仮想機器トークン受信部１２３は、トークン宛先ＭＡＣアドレスと一致するＭＡＣアドレスを機器管理テーブルにおいて検索する。そして、仮想機器トークン受信部１２３は、トークン宛先ＭＡＣアドレスと一致するＭＡＣアドレスのレコードに記述されている実在識別子が「Ｔｒｕｅ」であるか「Ｆａｌｓｅ」であるかを判定する。
トークン宛先ＭＡＣアドレスと一致するＭＡＣアドレスが「ＢＢ：ＢＢ：ＢＢ：ＢＢ：ＢＢ：ＢＢ」又は「ＣＣ：ＣＣ：ＣＣ：ＣＣ：ＣＣ：ＣＣ」である場合は、実在識別子が「Ｔｒｕｅ」である。
この場合は、仮想機器トークン受信部１２３は、ステップＳ８において、受信したトークンパケットを破棄する。
【００４７】
一方、トークン宛先ＭＡＣアドレスと一致するＭＡＣアドレスのレコードに記述されている実在識別子が「Ｆａｌｓｅ」である場合は、仮想機器トークン受信部１２３は、ステップＳ９において、スレーブ機器５００としてトークンを保持する。つまり、トークン宛先ＭＡＣアドレスと一致するＭＡＣアドレスが「ＤＤ：ＤＤ：ＤＤ：ＤＤ：ＤＤ：ＤＤ」である場合に、仮想機器トークン受信部１２３は、スレーブ機器５００としてトークンを保持する。
また、仮想機器トークン受信部１２３は、仮想機器データ送信部１２４にデータの送信を指示する。
【００４８】
次に、ステップＳ１０において、仮想機器データ送信部１２４は、スレーブ機器５００のデータをブロードキャストする。
【００４９】
また、仮想機器データ送信部１２４によるデータの送信が完了すると、ステップＳ１１において、仮想機器トークン送信部１２５が、スレーブ機器５００のトークンの宛先にトークンパケットを送信する。
より具体的には、仮想機器トークン送信部１２５は、機器管理テーブルのスレーブ機器５００のトークン宛先ＭＡＣアドレスである「ＣＣ：ＣＣ：ＣＣ：ＣＣ：ＣＣ：ＣＣ」が記述されたトークンパケットをブロードキャストする。
【００５０】
＊＊＊実施の形態の効果の説明＊＊＊
以上のように、本実施の形態では、マスタ機器１００が、試験時には存在しないスレーブ機器５００として振る舞う。
このため、本実施の形態によれば、スレーブ機器５００と、スレーブ機器５００に接続される機器（ロボット、センサ等）を用意することなく、スレーブ機器５００と、スレーブ機器５００に接続される機器の動作を試験に反映させることができる。つまり、本実施の形態によれば、本番環境と同様の条件で試験を行うことができる。
【００５１】
実施の形態２．
実施の形態１では、マスタ機器１００が仮想的なスレーブ機器であるスレーブ機器５００として振る舞っている。本実施の形態では、マスタ機器１００、スレーブ機器２００及びスレーブ機器３００以外の機器がスレーブ機器５００として振る舞う例を説明する。
以下では、主に実施の形態１との差異を説明する。
以下で説明していない事項は、実施の形態１と同じである。
【００５２】
＊＊＊構成の説明＊＊＊
図１１は、実施の形態２に係るトークンパッシングシステムのシステム構成例を示す。図１１のトークンパッシングシステムのネットワークトポロジはスター型であるが、ネットワークトポロジはスター型に限定されない。実施の形態１と同様に、トークンパッシングシステムのネットワークトポロジは、リング型、ライン型、ライン型とスター型を組み合わせたもののいずれであってもよい。
【００５３】
図１１の構成では、図１に示す構成と比較して、模擬装置６００が追加されている。
スレーブ機器２００及びスレーブ機器３００は、実施の形態１で説明したものと同じである。
模擬装置６００は、実施の形態１で説明した模擬部１２０の動作を行う。つまり、模擬装置６００は、仮想通信機器として、スレーブ機器の動作を模擬する。以下では、模擬装置６００は、スレーブ機器２００又はスレーブ機器３００の動作を模擬して、スレーブ機器５００として振る舞う。
一方、マスタ機器１００は、本実施の形態では、実施の形態１で説明した模擬部１２０の動作を行わない。つまり、マスタ機器１００は、本実施の形態では、通信機器として機能する。
スイッチングハブ４００は、マスタ機器１００、スレーブ機器２００、スレーブ機器３００及び模擬装置６００の間の通信を中継する。
【００５４】
図１２は、模擬装置６００のハードウェア構成例を示す。
図１２に示すように、模擬装置６００は、プロセッサ６５１、記憶装置６５２及び通信インタフェース６５３を備える。
模擬装置６００は、コンピュータである。
プロセッサ６５１は、データの送信を行う。また、プロセッサ６５１は、トークンを保持するか否か判定を行う。また、プロセッサ６５１は、後述する機器管理テーブルを操作するための演算を行う。更に、プロセッサ６５１は、図１３に示す機能を実現するプログラムを実行する。
記憶装置６５２は、機器管理テーブルを記憶する。また、記憶装置６５２は、図１３に示す機能を実現するプログラムを記憶する。また、記憶装置６５２は、マスタ機器１００、スレーブ機器２００及びスレーブ機器３００に送信するデータを記憶する。
通信インタフェース６５３は、スイッチングハブ４００を介してスレーブ機器２００及びスレーブ機器３００と通信するためのインタフェースである。
図１２では、１つの通信インタフェース６５３のみが示されているが、マスタ機器１００は複数の通信インタフェース６５３を備えていてもよい。
【００５５】
図１３は、模擬装置６００の機能構成例を示す。
模擬装置６００は、トークン受信部１１２及び模擬部１２０により構成される。
トークン受信部１１２及び模擬部１２０は、それぞれ、実施の形態１に示したものと同様である。模擬部１２０は、模擬装置６００がスレーブ機器を模擬するための機能ブロックである。
トークン受信部１１２及び模擬部１２０は、プログラムにより実現される。プロセッサ６５１が、プログラムを実行することで、トークン受信部１１２及び模擬部１２０の機能が実現される。
図１３では、プロセッサ６５１がトークン受信部１１２及び模擬部１２０の機能を実現するプログラムを実行している状態を模式的に表している。
模擬部１２０は、機器管理テーブル操作部１２１、トークン宛先設定部１２２、仮想機器トークン受信部１２３、仮想機器データ送信部１２４及び仮想機器トークン送信部１２５で構成される。
図１３の機器管理テーブル操作部１２１、トークン宛先設定部１２２、仮想機器トークン受信部１２３、仮想機器データ送信部１２４及び仮想機器トークン送信部１２５は、実施の形態１で説明したものと同様であるため、これらの説明は省略する。
機器管理テーブル記憶部６１５は、機器管理テーブルを記憶する。機器管理テーブルは実施の形態１で説明したものと同じであるため、機器管理テーブルの説明を省略する。機器管理テーブル記憶部６１５は記憶装置６５２により実現される。
【００５６】
図１４は、マスタ機器１００の機能構成例を示す。
本実施の形態では、マスタ機器１００は、初期設定部１１１、トークン受信部１１２、データ送信部１１３、トークン送信部１１４、データ受信部１１５及び機器管理テーブル記憶部１１６のみで構成される。つまり、本実施の形態に係るマスタ機器１００は、模擬部１２０を備えていない。
図１４の初期設定部１１１、トークン受信部１１２、データ送信部１１３、トークン送信部１１４、データ受信部１１５及び機器管理テーブル記憶部１１６は、実施の形態１で説明したものと同様であるため、これらの説明は省略する。
【００５７】
なお、実施の形態２のマスタ機器１００のハードウェア構成は、図４に示すとおりである。また、実施の形態２のスレーブ機器２００及びスレーブ機器３００のハードウェア構成は、図６に示すとおりである。また、実施の形態２のスレーブ機器２００及びスレーブ機器３００の機能構成は、図７に示すとおりである。
【００５８】
＊＊＊動作の説明＊＊＊
次に、模擬装置６００の動作例を説明する。
模擬装置６００の動作は、手続きＡと手続きＢに分けられる。手続きＡでは、機器管理テーブルの更新及び更新後の機器管理テーブルを基にした通信機器への設定が行われる。手続きＢでは、トークンの受信、マスタ機器１００の本来の動作及びスレーブ機器５００の動作が行われる。
模擬装置６００の模擬部１２０は、図９に従って手続きＡを行う。図９の詳細は実施の形態１で説明したので、図９の詳細は説明を省略する。なお、マスタ機器１００のトークン宛先ＭＡＣアドレスが更新されている場合は、トークン宛先設定部１２２は、ステップＳ２において、マスタ機器１００にも、更新後のトークン宛先ＭＡＣアドレスを設定する。
【００５９】
次に、図１５を参照して、手続きＢを説明する。
【００６０】
トークン受信部１１２がトークンパケットを受信すると、トークン受信部１１２は仮想機器トークン受信部１２３にトークンパケットを転送する。
仮想機器トークン受信部１２３は、ステップＳ１２において、トークンの宛先のノードが実在するか否かを判定する。
より具体的には、仮想機器トークン受信部１２３は、トークン宛先ＭＡＣアドレスと一致するＭＡＣアドレスを機器管理テーブルにおいて検索する。そして、仮想機器トークン受信部１２３は、トークン宛先ＭＡＣアドレスと一致するＭＡＣアドレスのレコードに記述されている実在識別子が「Ｔｒｕｅ」であるか「Ｆａｌｓｅ」であるかを判定する。
トークン宛先ＭＡＣアドレスと一致するＭＡＣアドレスが「ＡＡ：ＡＡ：ＡＡ：ＡＡ：ＡＡ：ＡＡ」、「ＢＢ：ＢＢ：ＢＢ：ＢＢ：ＢＢ：ＢＢ」又は「ＣＣ：ＣＣ：ＣＣ：ＣＣ：ＣＣ：ＣＣ」である場合は、実在識別子が「Ｔｒｕｅ」である。
この場合は、仮想機器トークン受信部１２３は、ステップＳ１３において、受信したトークンパケットを破棄する。
【００６１】
一方、トークン宛先ＭＡＣアドレスと一致するＭＡＣアドレスのレコードに記述されている実在識別子が「Ｆａｌｓｅ」である場合は、仮想機器トークン受信部１２３は、ステップＳ１４において、スレーブ機器５００としてトークンを保持する。つまり、トークン宛先ＭＡＣアドレスと一致するＭＡＣアドレスが「ＤＤ：ＤＤ：ＤＤ：ＤＤ：ＤＤ：ＤＤ」である場合に、仮想機器トークン受信部１２３は、スレーブ機器５００としてトークンを保持する。
また、仮想機器トークン受信部１２３は、仮想機器データ送信部１２４にデータの送信を指示する。
【００６２】
次に、ステップＳ１５において、仮想機器データ送信部１２４は、スレーブ機器５００のデータをブロードキャストする。
【００６３】
また、仮想機器データ送信部１２４によるデータ送信が完了すると、ステップＳ１６において、仮想機器トークン送信部１２５が、スレーブ機器５００のトークンの宛先にトークンパケットを送信する。
より具体的には、仮想機器トークン送信部１２５は、機器管理テーブルのスレーブ機器５００のトークン宛先ＭＡＣアドレスである「ＣＣ：ＣＣ：ＣＣ：ＣＣ：ＣＣ：ＣＣ」が記述されたトークンパケットをブロードキャストする。
【００６４】
＊＊＊実施の形態の効果の説明＊＊＊
以上のように、本実施の形態では、模擬装置６００が、試験時には存在しないスレーブ機器５００の動作を模擬する。
このため、本実施の形態によれば、スレーブ機器５００と、スレーブ機器５００に接続される機器（ロボット、センサ等）を用意することなく、スレーブ機器５００と、スレーブ機器５００に接続される機器の動作を試験に反映させることができる。つまり、本実施の形態によれば、本番環境と同様の条件で試験を行うことができる。
また、スレーブ機器５００の模擬をマスタ機器１００ではなく模擬装置６００で行うことにより、マスタ機器１００の負荷を軽減することができる。
【００６５】
以上、本発明の実施の形態について説明したが、これら２つの実施の形態を組み合わせて実施しても構わない。
あるいは、これら２つの実施の形態のうち、１つを部分的に実施しても構わない。
あるいは、これら２つの実施の形態を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【００６６】
＊＊＊ハードウェア構成の説明＊＊＊
最後に、マスタ機器１００、模擬装置６００のハードウェア構成の補足説明を行う。
プロセッサ１５１及びプロセッサ６５１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。
プロセッサ１５１及びプロセッサ６５１は、それぞれ、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等である。
記憶装置１５２及び記憶装置６５２は、それぞれ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等である。
通信インタフェース１５３及び通信インタフェース６５３は、それぞれ、データを受信するレシーバー及びデータを送信するトランスミッターを含む。
通信インタフェース１５３及び通信インタフェース６５３は、それぞれ、例えば、通信チップ又はＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
【００６７】
また、記憶装置１５２には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。
そして、ＯＳの少なくとも一部がプロセッサ１５１により実行される。
プロセッサ１５１はＯＳの少なくとも一部を実行しながら、実施の形態１では、初期設定部１１１、トークン受信部１１２、データ送信部１１３、トークン送信部１１４、データ受信部１１５及び模擬部１２０の機能を実現するプログラムを実行する。
プロセッサ１５１がＯＳを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、初期設定部１１１、トークン受信部１１２、データ送信部１１３、トークン送信部１１４、データ受信部１１５及び模擬部１２０の処理の結果を示す情報やデータや信号値や変数値が、記憶装置１５２、プロセッサ１５１内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、初期設定部１１１、トークン受信部１１２、データ送信部１１３、トークン送信部１１４、データ受信部１１５及び模擬部１２０の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記憶媒体に記憶されてもよい。
【００６８】
また、記憶装置６５２には、ＯＳも記憶されている。
そして、ＯＳの少なくとも一部がプロセッサ６５１により実行される。
プロセッサ６５１はＯＳの少なくとも一部を実行しながら、トークン受信部１１２、模擬部１２０の機能を実現するプログラムを実行する。
プロセッサ６５１がＯＳを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、トークン受信部１１２、模擬部１２０の処理の結果を示す情報やデータや信号値や変数値が、記憶装置６５２、プロセッサ６５１内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、トークン受信部１１２、模擬部１２０の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記憶媒体に記憶されてもよい。
【００６９】
また、初期設定部１１１、トークン受信部１１２、データ送信部１１３、トークン送信部１１４、データ受信部１１５及び模擬部１２０の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、マスタ機器１００及び模擬装置６００は、ロジックＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）といった電子回路により実現されてもよい。
なお、プロセッサ及び上記の電子回路を総称してプロセッシングサーキットリーともいう。
【符号の説明】
【００７０】
１００  マスタ機器、１１１  初期設定部、１１２  トークン受信部、１１３  データ送信部、１１４  トークン送信部、１１５  データ受信部、１１６  機器管理テーブル記憶部、１２０  模擬部、１２１  機器管理テーブル操作部、１２２  トークン宛先設定部、１２３  仮想機器トークン受信部、１２４  仮想機器データ送信部、１２５  仮想機器トークン送信部、１５１  プロセッサ、１５２  記憶装置、１５３  通信インタフェース、１５４  機器制御インタフェース、２００  スレーブ機器、２１１  トークン受信部、２１２  データ送信部、２１３  トークン送信部、２１４  データ受信部、２５１  プロセッサ、２５２  記憶装置、２５３  通信インタフェース、２５４  機器制御インタフェース、３００  スレーブ機器、４００  スイッチングハブ、５００  スレーブ機器、６００  模擬装置、６１５  機器管理テーブル記憶部、６５１  プロセッサ、６５２  記憶装置、６５３  通信インタフェース。
【図１】
2018109949.tif 000003
【図２】
2018109949.tif 000004
【図３】
2018109949.tif 000005
【図４】
2018109949.tif 000006
【図５】
2018109949.tif 000007
【図６】
2018109949.tif 000008
【図７】
2018109949.tif 000009
【図８】
2018109949.tif 000010
【図９】
2018109949.tif 000011
【図１０】
2018109949.tif 000012
【図１１】
2018109949.tif 000013
【図１２】
2018109949.tif 000014
【図１３】
2018109949.tif 000015
【図１４】
2018109949.tif 000016
【図１５】
2018109949.tif 000017
【図１６】
2018109949.tif 000018
【図１７】
2018109949.tif 000019
【国際調査報告】
2018109949.tif 000020
2018109949.tif 000021
2018109949.tif 000022