(57)【特許請求の範囲】
【請求項１】
複数のモータの動作を制御するモータ制御システムであって、
前記複数のモータのうち、第１モータを動作させる第１ドライバを有する第１モータ制御装置と、
前記複数のモータのうち、前記第１モータとは異なる第２モータを動作させる第２ドライバを有する第２モータ制御装置と、
第１管理装置とを備え、
前記第１管理装置は、
前記第１モータを動作させる第１コマンド、および、前記第２モータを動作させる第２コマンドを含む複数のコマンドで構成される第１コマンド列の前記第１モータまたは前記第２モータに対する関連度合いに基づいて、前記第１コマンド列の処理の要求先として前記第１モータ制御装置または前記第２モータ制御装置を選択する要求先選択部と、
前記第１コマンド列の処理を、選択された前記第１モータ制御装置、または、選択された前記第２モータ制御装置に、要求する第１コマンド列処理要求部とを備え、
前記第１モータ制御装置は、
前記第１コマンド列処理要求部が前記第１コマンド列の処理を前記第１モータ制御装置に要求した場合、前記第１コマンド列に含まれる前記第１コマンドに従って、前記第１ドライバに前記第１モータを動作させることにより、前記第１コマンドを実行する第１コマンド実行部と、
前記第１コマンド列処理要求部が前記第１コマンド列の処理を前記第１モータ制御装置に要求した場合、前記第１コマンド列に含まれる前記第２コマンドの実行を前記第２モータ制御装置に要求する第１コマンド実行要求部とを備える
モータ制御システム。
【請求項２】
前記第２モータ制御装置は、
前記第１コマンド列処理要求部が前記第１コマンド列の処理を前記第２モータ制御装置に要求した場合、前記第１コマンド列に含まれる前記第２コマンドに従って、前記第２ドライバに前記第２モータを動作させることにより、前記第２コマンドを実行する第２コマンド実行部と、
前記第１コマンド列処理要求部が前記第１コマンド列の処理を前記第２モータ制御装置に要求した場合、前記第１コマンド列に含まれる前記第１コマンドの実行を前記第１モータ  制御装置に要求する第２コマンド実行要求部とを備える
請求項１に記載のモータ制御システム。
【請求項３】
前記第１コマンド実行部は、前記第２コマンド実行要求部が前記第１コマンドの実行を前記第１モータ制御装置に要求した場合、前記第１コマンドに従って、前記第１ドライバに前記第１モータを動作させることにより、前記第１コマンドを実行し、
前記第２コマンド実行部は、前記第１コマンド実行要求部が前記第２コマンドの実行を前記第２モータ制御装置に要求した場合、前記第２コマンドに従って、前記第２ドライバに前記第２モータを動作させることにより、前記第２コマンドを実行する
請求項２に記載のモータ制御システム。
【請求項４】
前記第１モータ制御装置は、さらに、前記第１コマンド列処理要求部が前記第１コマンド列の処理を前記第１モータ制御装置に要求した場合、処理が要求された前記第１コマンド列を取得し、取得された前記第１コマンド列に含まれる前記第１コマンドを前記第１コマンド実行部に実行させ、取得された前記第１コマンド列に含まれる前記第２コマンドの実行を前記第１コマンド実行要求部に要求させることにより、取得された前記第１コマンド列に含まれる複数のコマンドを、順次、処理するコマンド列処理部を備える
請求項２または請求項３に記載のモータ制御システム。
【請求項５】
前記第１コマンド列処理要求部は、前記複数のモータ制御装置から前記第２モータ制御装置を識別する第１識別情報が組み込まれた前記第２コマンドを含む前記第１コマンド列の処理を前記第１モータ制御装置に要求し、
前記コマンド列処理部は、前記第１識別情報が組み込まれた前記第２コマンドの実行を前記第１コマンド実行要求部に要求させる
請求項４に記載のモータ制御システム。
【請求項６】
前記コマンド列処理部は、前記第１識別情報が組み込まれていない前記第１コマンドを前記第１コマンド実行部に実行させる
請求項５に記載のモータ制御システム。
【請求項７】
前記第１コマンド列処理要求部は、前記複数のモータ制御装置から前記第１モータ制御装置を識別する第２識別情報が組み込まれた前記第１コマンドを含む前記第１コマンド列の処理を前記第１モータ制御装置に要求し、
前記コマンド列処理部は、前記第２識別情報が組み込まれた前記第１コマンドを前記第１コマンド実行部に実行させる
請求項５または請求項６に記載のモータ制御システム。
【請求項８】
前記第１モータ制御装置は、さらに、前記第１モータが前記第１モータ制御装置に対応し、前記第２モータが前記第２モータ制御装置に対応していることを示す対応情報を記憶している対応情報記憶部を備え、
前記コマンド列処理部は、前記対応情報記憶部に記憶されている前記対応情報を参照して、前記第１モータ制御装置に対応している前記第１モータを動作させる前記第１コマンドを前記第１コマンド実行部に実行させ、前記第２モータ制御装置に対応している前記第２モータを動作させる前記第２コマンドの実行を前記第１コマンド実行要求部に要求させる
請求項４に記載のモータ制御システム。
【請求項９】
前記第１コマンド列処理要求部は、所定の条件が満たされるか否かに依存させて前記第１コマンド列に含まれる１以上のコマンドを変更する条件分岐コマンドを含む前記第１コマンド列の処理を、前記第１モータ制御装置に、要求し、
前記コマンド列処理部は、前記所定の条件が満たされるか否かを判定し、判定された結果に依存させて前記１以上のコマンドを変更し、変更された前記１以上のコマンドを処理する
請求項４〜８のいずれか１項に記載のモータ制御システム。
【請求項１０】
前記第１モータ制御装置は、さらに、前記モータ制御システムの状態を示す状態情報を記憶するための状態情報記憶部を備え、
前記第１コマンド実行部は、前記状態情報を前記状態情報記憶部に格納し、
前記コマンド列処理部は、前記状態情報記憶部に格納された前記状態情報が前記所定の条件を満たすか否かを判定し、判定された結果に依存させて前記１以上のコマンドを変更し、変更された前記１以上のコマンドを処理する
請求項９に記載のモータ制御システム。
【請求項１１】
前記第１モータ制御装置は、さらに、
前記第１コマンド列を記憶するためのコマンド列情報記憶部と、
前記第１コマンド列処理要求部が前記第１コマンド列の処理を前記第１モータ制御装置に要求する前に、前記第１コマンド列を前記コマンド列情報記憶部に格納するコマンド列格納部とを備え、
前記第１コマンド列処理要求部は、前記コマンド列情報記憶部に格納された前記第１コマンド列を指定することにより、前記第１コマンド列の処理を前記第１モータ制御装置に要求する
請求項４〜１０のいずれか１項に記載のモータ制御システム。
【請求項１２】
前記第１コマンド列処理要求部は、前記コマンド列情報記憶部に格納された前記第１コマンド列、および、前記第１コマンド列が処理される時に参照されるパラメータを指定することにより、前記第１コマンド列の処理を前記第１モータ制御装置に要求し、
前記コマンド列処理部は、前記パラメータを参照し、前記パラメータに依存させて、前記第１コマンド列を処理する
請求項１１に記載のモータ制御システム。
【請求項１３】
前記第１コマンド実行部は、前記モータ制御システムの状態を示す状態情報を監視し、前記状態情報が所定の条件を満たしたタイミングで、前記第１コマンドを実行する
請求項２〜１２のいずれか１項に記載のモータ制御システム。
【請求項１４】
前記第１コマンド実行部は、前記第１コマンド列処理要求部または前記第２コマンド実行要求部からの要求に基づくタイミングで、前記第１コマンドを実行する
請求項２〜１３のいずれか１項に記載のモータ制御システム。
【請求項１５】
前記モータ制御システムは、さらに、前記第１モータを動作させる第３コマンド、および、前記第２モータを動作させる第４コマンドの両方を含む第２コマンド列の処理を、前記第１モータ制御装置および前記第２モータ制御装置のいずれか一方に、要求する第２コマンド列処理要求部を有する第２管理装置を備え、
前記第１コマンド実行部は、前記第２コマンド列処理要求部が前記第２コマンド列の処理を前記第１モータ制御装置に要求した場合、前記第２コマンド列に含まれる前記第３コマンドに従って、前記第１ドライバに前記第１モータを動作させることにより、前記第３コマンドを実行し、
前記第１コマンド実行要求部は、前記第２コマンド列処理要求部が前記第２コマンド列の処理を前記第１モータ制御装置に要求した場合、前記第２コマンド列に含まれる前記第４コマンドの実行を前記第２モータ制御装置に要求する
請求項２〜１４のいずれか１項に記載のモータ制御システム。
【請求項１６】
前記第１モータ制御装置は、さらに、電子機器を動作させる電子機器制御部を備え、
前記第１コマンド列処理要求部は、前記電子機器を動作させる電子機器制御コマンドを含む前記第１コマンド列の実行を、前記第１モータ制御装置および前記第２モータ制御装置のいずれか一方に、要求し、
前記第１コマンド実行部は、前記第１コマンド列処理要求部が前記第１コマンド列の処理を前記第１モータ制御装置に要求した場合、前記第１コマンド列に含まれる前記電子機器制御コマンドに従って、前記電子機器制御部に前記電子機器を動作させ、
前記第２コマンド実行要求部は、前記第１コマンド列処理要求部が前記第１コマンド列の処理を前記第２モータ制御装置に要求した場合、前記第１コマンド列に含まれる前記電子機器制御コマンドの実行を前記第１モータ制御装置に要求し、
前記第１コマンド実行部は、前記第２コマンド実行要求部が前記電子機器制御コマンドの実行を前記第１モータ制御装置に要求した場合、前記電子機器制御コマンドに従って、前記電子機器制御部に前記電子機器を動作させる
請求項２〜１５のいずれか１項に記載のモータ制御システム。
【請求項１７】
第１モータを動作させる第１ドライバを有する第１モータ制御装置と、前記第１モータとは異なる第２モータを動作させる第２ドライバを有する第２モータ制御装置と、管理装置とを備えるモータ制御システムに用いられるモータ制御方法であって、
前記第１モータを動作させる第１コマンド、および、前記第２モータを動作させる第２コマンドを含む複数のコマンドで構成されるコマンド列の前記第１モータまたは前記第２モータに対する関連度合いに基づいて、前記コマンド列の処理の要求先として前記第１モータ制御装置または前記第２モータ制御装置を選択し、
前記管理装置から、前記コマンド列の処理を、選択された前記第１モータ制御装置、または、選択された前記第２モータ制御装置に、要求し、
前記コマンド列の実行が前記第１モータ制御装置に要求された場合、前記第１モータ制御装置において、前記コマンド列に含まれる前記第１コマンドに従って、前記第１ドライバに前記第１モータを動作させることにより、前記第１コマンドを実行し、
前記コマンド列の実行が前記第１モータ制御装置に要求された場合、前記第１モータ制御装置から、前記コマンド列に含まれる前記第２コマンドの実行を前記第２モータ制御装置に要求する
モータ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のモータの動作を制御するモータ制御システムに関する。
【背景技術】
【０００２】
従来、複数のモータの動作を制御するモータ制御装置が普及している。このようなモータ制御装置は、製造業、医療業または流通業等、様々な分野で用いられている。
【０００３】
図１６は、従来技術に係るモータ制御装置を示す構成図である。なお、ここでは、モータ、および、モータを動作させるドライバを含めてモータ制御装置と呼ぶが、モータまたはドライバがモータ制御装置から独立して構成されている場合でも、処理の本質は変わらない。
【０００４】
図１６に示されたモータ制御装置９９１は、処理部９８１、３つのモータ９０１〜９０３、および、３つのドライバ９１１〜９１３を備える。処理部９８１は、モータ９０１を動作させるコマンドを解析して、モータ９０１を動作させるためのパルスをドライバ９１１に出力する。ドライバ９１１は、パルスに基づいて、モータ９０１を動作させる。これにより、処理部９８１は、モータ９０１を動作させるコマンドに従って、ドライバ９１１にモータ９０１を動作させる。
【０００５】
同様に、処理部９８１は、モータ９０２を動作させるコマンドに従って、ドライバ９１２にモータ９０２を動作させる。また、処理部９８１は、モータ９０３を動作させるコマンドに従って、ドライバ９１３にモータ９０３を動作させる。
【０００６】
これにより、モータ制御装置９９１は、３つのモータ９０１〜９０３の動作を制御する。また、複数のコマンドの組み合わせに応じて、複数のモータ９０１〜９０３は、協調して動作する。このように、複数のモータの動作を制御する装置として、特許文献１に記載された装置がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平８−９５６１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、１台のモータ制御装置で制御されるモータの数には、モータの配置、および、モータ制御装置の処理能力の面で、限界がある。そこで、複数のモータ制御装置が用いられる。これにより、より多くのモータの制御が可能になる。
【０００９】
図１７は、複数のモータ制御装置を備えるモータ制御システムを示す構成図である。図１７に示されたモータ制御システム９００は、３つのモータ制御装置９９１〜９９３、および、管理装置９９０を備える。
【００１０】
管理装置９９０は、モータ制御装置９９１によって制御される３つのモータ９０１〜９０３を動作させるためのコマンド列をモータ制御装置９９１に送信する。モータ制御装置９９１は、コマンド列に従って、３つのモータ９０１〜９０３を動作させる。
【００１１】
同様に、管理装置９９０は、モータ制御装置９９２によって制御される３つのモータ９０４〜９０６を動作させるためのコマンド列をモータ制御装置９９２に送信する。モータ制御装置９９２は、コマンド列に従って、３つのモータ９０４〜９０６を動作させる。また、管理装置９９０は、モータ制御装置９９３によって制御される３つのモータ９０７〜９０９を動作させるためのコマンド列をモータ制御装置９９３に送信する。モータ制御装置９９３は、コマンド列に従って、３つのモータ９０７〜９０９を動作させる。
【００１２】
これにより、モータ制御システム９００は、９つのモータ９０１〜９０９の動作を制御することができる。また、管理装置９９０が、３つのモータ制御装置９９１〜９９３のそれぞれに、適切なタイミングでコマンド列を送信することにより、３つのモータ制御装置９９１〜９９３は、適切なタイミングで、９つのモータ９０１〜９０９の動作を制御することができる。これにより、９つのモータ９０１〜９０９は、協調して動作する。
【００１３】
しかし、管理装置９９０が適切なタイミングでコマンド列を送信するためには、管理装置９９０は、９つのモータ９０１〜９０９の動作状態を取得しなければならない。例えば、管理装置９９０は、モータ９０１とモータ９０４とを協調して動作させるため、次のような処理を実行する必要がある。すなわち、管理装置９９０は、モータ制御装置９９１にモータ９０１を動作させるコマンドを送信し、実行結果をモータ制御装置９９１から取得した後に、モータ制御装置９９２にモータ９０４を動作させるコマンドを送信する必要がある。
【００１４】
そのため、管理装置９９０と３つのモータ制御装置９９１〜９９３のそれぞれとの間で、データ交換処理が繰り返される。このような処理は、全体の処理を遅延させ、円滑な協調動作に支障を生じさせる。
【００１５】
そこで、本発明は、多数のモータを円滑に協調して動作させることができるモータ制御システムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記課題を解決するため、本発明に係るモータ制御システムは、複数のモータの動作を制御するモータ制御システムであって、前記複数のモータのうち、第１モータを動作させる第１ドライバを有する第１モータ制御装置と、前記複数のモータのうち、前記第１モータとは異なる第２モータを動作させる第２ドライバを有する第２モータ制御装置と、第１管理装置とを備え、前記第１管理装置は、前記第１モータを動作させる第１コマンド、および、前記第２モータを動作させる第２コマンドを含む複数のコマンドで構成される第１コマンド列の前記第１モータまたは前記第２モータに対する関連度合いに基づいて、前記第１コマンド列の処理の要求先として前記第１モータ制御装置または前記第２モータ制御装置を選択する要求先選択部と、前記第１コマンド列の処理を、選択された前記第１モータ制御装置、または、選択された前記第２モータ制御装置に、要求する第１コマンド列処理要求部とを備え、前記第１モータ制御装置は、前記第１コマンド列処理要求部が前記第１コマンド列の処理を前記第１モータ制御装置に要求した場合、前記第１コマンド列に含まれる前記第１コマンドに従って、前記第１ドライバに前記第１モータを動作させることにより、前記第１コマンドを実行する第１コマンド実行部と、前記第１コマンド列処理要求部が前記第１コマンド列の処理を前記第１モータ制御装置に要求した場合、前記第１コマンド列に含まれる前記第２コマンドの実行を前記第２モータ制御装置に要求する第１コマンド実行要求部とを備える。
また、本発明に係るモータ制御システムは、複数のモータの動作を制御するモータ制御システムであって、前記複数のモータのうち、第１モータを動作させる第１ドライバを有する第１モータ制御装置と、前記複数のモータのうち、前記第１モータとは異なる第２モータを動作させる第２ドライバを有する第２モータ制御装置と、前記第１モータを動作させる第１コマンド、および、前記第２モータを動作させる第２コマンドの両方を含む第１コマンド列の処理を、前記第１モータ制御装置および前記第２モータ制御装置のいずれか一方に、要求する第１コマンド列処理要求部を有する第１管理装置とを備え、前記第１モータ制御装置は、前記第１コマンド列処理要求部が前記第１コマンド列の処理を前記第１モータ制御装置に要求した場合、前記第１コマンド列に含まれる前記第１コマンドに従って、前記第１ドライバに前記第１モータを動作させることにより、前記第１コマンドを実行する第１コマンド実行部と、前記第１コマンド列処理要求部が前記第１コマンド列の処理を前記第１モータ制御装置に要求した場合、前記第１コマンド列に含まれる前記第２コマンドの実行を前記第２モータ制御装置に要求する第１コマンド実行要求部とを備えるモータ制御システムであってもよい。
【００１７】
これにより、複数のモータ制御装置が、多数のモータを円滑に協調して動作させることができる。
【００１８】
また、前記第２モータ制御装置は、前記第１コマンド列処理要求部が前記第１コマンド列の処理を前記第２モータ制御装置に要求した場合、前記第１コマンド列に含まれる前記第２コマンドに従って、前記第２ドライバに前記第２モータを動作させることにより、前記第２コマンドを実行する第２コマンド実行部と、前記第１コマンド列処理要求部が前記第１コマンド列の処理を前記第２モータ制御装置に要求した場合、前記第１コマンド列に含まれる前記第１コマンドの実行を前記第１モータ制御装置に要求する第２コマンド実行要求部とを備えてもよい。
【００１９】
これにより、同様の構成要素を備える複数のモータ制御装置が、多数のモータを円滑に協調して動作させることができる。
【００２０】
また、前記第１コマンド実行部は、前記第２コマンド実行要求部が前記第１コマンドの実行を前記第１モータ制御装置に要求した場合、前記第１コマンドに従って、前記第１ドライバに前記第１モータを動作させることにより、前記第１コマンドを実行し、前記第２コマンド実行部は、前記第１コマンド実行要求部が前記第２コマンドの実行を前記第２モータ制御装置に要求した場合、前記第２コマンドに従って、前記第２ドライバに前記第２モータを動作させることにより、前記第２コマンドを実行してもよい。
【００２１】
これにより、複数のモータ制御装置が、互いに協調して、多数のモータを動作させることができる。
【００２２】
また、前記第１モータ制御装置は、さらに、前記第１コマンド列処理要求部が前記第１コマンド列の処理を前記第１モータ制御装置に要求した場合、処理が要求された前記第１コマンド列を取得し、取得された前記第１コマンド列に含まれる前記第１コマンドを前記第１コマンド実行部に実行させ、取得された前記第１コマンド列に含まれる前記第２コマンドの実行を前記第１コマンド実行要求部に要求させることにより、取得された前記第１コマンド列に含まれる複数のコマンドを、順次、処理するコマンド列処理部を備えてもよい。
【００２３】
これにより、コマンド列に含まれる複数のコマンドが、順番に実行される。よって、複数のモータが連携して動作する。
【００２４】
また、前記第１コマンド列処理要求部は、前記複数のモータ制御装置から前記第２モータ制御装置を識別する第１識別情報が組み込まれた前記第２コマンドを含む前記第１コマンド列の処理を前記第１モータ制御装置に要求し、前記コマンド列処理部は、前記第１識別情報が組み込まれた前記第２コマンドの実行を前記第１コマンド実行要求部に要求させてもよい。
【００２５】
これにより、識別情報を用いて、コマンドの実行の要求先が具体的に決定される。
【００２６】
また、前記コマンド列処理部は、前記第１識別情報が組み込まれていない前記第１コマンドを前記第１コマンド実行部に実行させてもよい。
【００２７】
これにより、識別情報が省略されている場合、自装置でコマンドが実行される。したがって、モータを制御するためのコマンドの構成が容易になる。
【００２８】
また、前記第１コマンド列処理要求部は、前記複数のモータ制御装置から前記第１モータ制御装置を識別する第２識別情報が組み込まれた前記第１コマンドを含む前記第１コマンド列の処理を前記第１モータ制御装置に要求し、前記コマンド列処理部は、前記第２識別情報が組み込まれた前記第１コマンドを前記第１コマンド実行部に実行させてもよい。
【００２９】
これにより、自装置を含めて、コマンドを実行するモータ制御装置が具体的に決定される。
【００３０】
また、前記第１モータ制御装置は、さらに、前記第１モータが前記第１モータ制御装置に対応し、前記第２モータが前記第２モータ制御装置に対応していることを示す対応情報を記憶している対応情報記憶部を備え、前記コマンド列処理部は、前記対応情報記憶部に記憶されている前記対応情報を参照して、前記第１モータ制御装置に対応している前記第１モータを動作させる前記第１コマンドを前記第１コマンド実行部に実行させ、前記第２モータ制御装置に対応している前記第２モータを動作させる前記第２コマンドの実行を前記第１コマンド実行要求部に要求させてもよい。
【００３１】
これにより、予め定められた対応情報に基づいて、コマンドの実行の要求先が具体的に決定される。
【００３２】
また、前記第１コマンド列処理要求部は、所定の条件が満たされるか否かに依存させて前記第１コマンド列に含まれる１以上のコマンドを変更する条件分岐コマンドを含む前記第１コマンド列の処理を、前記第１モータ制御装置に、要求し、前記コマンド列処理部は、前記所定の条件が満たされるか否かを判定し、判定された結果に依存させて前記１以上のコマンドを変更し、変更された前記１以上のコマンドを処理してもよい。
【００３３】
これにより、所定の条件が満たされるか否かによって、実行される処理が変更される。したがって、より柔軟な動作が実現される。
【００３４】
また、前記第１モータ制御装置は、さらに、前記モータ制御システムの状態を示す状態情報を記憶するための状態情報記憶部を備え、前記第１コマンド実行部は、前記状態情報を前記状態情報記憶部に格納し、前記コマンド列処理部は、前記状態情報記憶部に格納された前記状態情報が前記所定の条件を満たすか否かを判定し、判定された結果に依存させて前記１以上のコマンドを変更し、変更された前記１以上のコマンドを処理してもよい。
【００３５】
これにより、各モータの状態等に基づいて、実行される処理が変更される。
【００３６】
また、前記第１モータ制御装置は、さらに、前記第１コマンド列を記憶するためのコマンド列情報記憶部と、前記第１コマンド列処理要求部が前記第１コマンド列の処理を前記第１モータ制御装置に要求する前に、前記第１コマンド列を前記コマンド列情報記憶部に格納するコマンド列格納部とを備え、前記第１コマンド列処理要求部は、前記コマンド列情報記憶部に格納された前記第１コマンド列を指定することにより、前記第１コマンド列の処理を前記第１モータ制御装置に要求してもよい。
【００３７】
これにより、複雑な動作の要求が、より容易になる。
【００３８】
また、前記第１コマンド列処理要求部は、前記コマンド列情報記憶部に格納された前記第１コマンド列、および、前記第１コマンド列が処理される時に参照されるパラメータを指定することにより、前記第１コマンド列の処理を前記第１モータ制御装置に要求し、前記コマンド列処理部は、前記パラメータを参照し、前記パラメータに依存させて、前記第１コマンド列を処理してもよい。
【００３９】
これにより、複雑な動作の要求と柔軟な動作の要求との両立が可能になる。
【００４０】
また、前記第１コマンド実行部は、前記モータ制御システムの状態を示す状態情報を監視し、前記状態情報が所定の条件を満たしたタイミングで、前記第１コマンドを実行してもよい。
【００４１】
これにより、複数のモータ制御装置が、各モータの状態等に基づいて、タイミングの同期を取りながら、多数のモータを動作させることができる。
【００４２】
また、前記第１コマンド実行部は、前記第１コマンド列処理要求部または前記第２コマンド実行要求部からの要求に基づくタイミングで、前記第１コマンドを実行してもよい。
【００４３】
これにより、複数のモータ制御装置が、要求に基づいて、タイミングの同期を取りながら、多数のモータを動作させることができる。
【００４４】
また、前記モータ制御システムは、さらに、前記第１モータを動作させる第３コマンド、および、前記第２モータを動作させる第４コマンドの両方を含む第２コマンド列の処理を、前記第１モータ制御装置および前記第２モータ制御装置のいずれか一方に、要求する第２コマンド列処理要求部を有する第２管理装置を備え、前記第１コマンド実行部は、前記第２コマンド列処理要求部が前記第２コマンド列の処理を前記第１モータ制御装置に要求した場合、前記第２コマンド列に含まれる前記第３コマンドに従って、前記第１ドライバに前記第１モータを動作させることにより、前記第３コマンドを実行し、前記第１コマンド実行要求部は、前記第２コマンド列処理要求部が前記第２コマンド列の処理を前記第１モータ制御装置に要求した場合、前記第２コマンド列に含まれる前記第４コマンドの実行を前記第２モータ制御装置に要求してもよい。
【００４５】
これにより、複数の管理装置から要求されるそれぞれ異なる複数のコマンド列が、連携して処理される。
【００４６】
また、前記第１モータ制御装置は、さらに、電子機器を動作させる電子機器制御部を備え、前記第１コマンド列処理要求部は、前記電子機器を動作させる電子機器制御コマンドを含む前記第１コマンド列の実行を、前記第１モータ制御装置および前記第２モータ制御装置のいずれか一方に、要求し、前記第１コマンド実行部は、前記第１コマンド列処理要求部が前記第１コマンド列の処理を前記第１モータ制御装置に要求した場合、前記第１コマンド列に含まれる前記電子機器制御コマンドに従って、前記電子機器制御部に前記電子機器を動作させ、前記第２コマンド実行要求部は、前記第１コマンド列処理要求部が前記第１コマンド列の処理を前記第２モータ制御装置に要求した場合、前記第１コマンド列に含まれる前記電子機器制御コマンドの実行を前記第１モータ制御装置に要求し、前記第１コマンド実行部は、前記第２コマンド実行要求部が前記電子機器制御コマンドの実行を前記第１モータ制御装置に要求した場合、前記電子機器制御コマンドに従って、前記電子機器制御部に前記電子機器を動作させてもよい。
【００４７】
これにより、モータに限らず、電子機器が協調して動作する。
【００４８】
また、本発明に係るモータ制御装置は、第１モータを動作させる第１ドライバを有する第１モータ制御装置と、前記第１モータとは異なる第２モータを動作させる第２ドライバを有する第２モータ制御装置と、前記第１モータを動作させる第１コマンド、および、前記第２モータを動作させる第２コマンドの両方を含むコマンド列の実行を、前記第１モータ制御装置および前記第２モータ制御装置のいずれか一方に、要求する管理装置とを備えるモータ制御システムの前記第１モータ制御装置として用いられるモータ制御装置であって、前記管理装置が前記コマンド列の実行を前記第１モータ制御装置に要求した場合、前記コマンド列に含まれる前記第１コマンドに従って、前記第１ドライバに前記第１モータを動作させることにより、前記第１コマンドを実行するコマンド実行部と、前記管理装置が前記コマンド列の実行を前記第１モータ制御装置に要求した場合、前記コマンド列に含まれる前記第２コマンドの実行を前記第２モータ制御装置に要求するコマンド実行要求部とを備えるモータ制御装置であってもよい。
【００４９】
これにより、本発明に係るモータ制御装置は、他のモータ制御装置と連携して、多数のモータを円滑に協調して動作させることができる。
【００５０】
また、本発明に係るモータ制御方法は、第１モータを動作させる第１ドライバを有する第１モータ制御装置と、前記第１モータとは異なる第２モータを動作させる第２ドライバを有する第２モータ制御装置と、管理装置とを備えるモータ制御システムに用いられるモータ制御方法であって、前記第１モータを動作させる第１コマンド、および、前記第２モータを動作させる第２コマンドを含む複数のコマンドで構成されるコマンド列の前記第１モータまたは前記第２モータに対する関連度合いに基づいて、前記コマンド列の処理の要求先として前記第１モータ制御装置または前記第２モータ制御装置を選択し、前記管理装置から、前記コマンド列の処理を、選択された前記第１モータ制御装置、または、選択された前記第２モータ制御装置に、要求し、前記コマンド列の実行が前記第１モータ制御装置に要求された場合、前記第１モータ制御装置において、前記コマンド列に含まれる前記第１コマンドに従って、前記第１ドライバに前記第１モータを動作させることにより、前記第１コマンドを実行し、前記コマンド列の実行が前記第１モータ制御装置に要求された場合、前記第１モータ制御装置から、前記コマンド列に含まれる前記第２コマンドの実行を前記第２モータ制御装置に要求するモータ制御方法であってもよい。
また、本発明に係るモータ制御方法は、第１モータを動作させる第１ドライバを有する第１モータ制御装置と、前記第１モータとは異なる第２モータを動作させる第２ドライバを有する第２モータ制御装置と、前記第１モータを動作させる第１コマンド、および、前記第２モータを動作させる第２コマンドの両方を含むコマンド列の実行を、前記第１モータ制御装置および前記第２モータ制御装置のいずれか一方に、要求する管理装置とを備えるモータ制御システムの前記第１モータ制御装置に用いられるモータ制御方法であって、前記管理装置が前記コマンド列の実行を前記第１モータ制御装置に要求した場合、前記コマンド列に含まれる前記第１コマンドに従って、前記第１ドライバに前記第１モータを動作させることにより、前記第１コマンドを実行し、前記管理装置が前記コマンド列の実行を前記第１モータ制御装置に要求した場合、前記コマンド列に含まれる前記第２コマンドの実行を前記第２モータ制御装置に要求するモータ制御方法であってもよい。
【００５１】
これにより、本発明に係るモータ制御装置が、モータ制御方法として実現される。
【００５２】
また、本発明に係るプログラムは、第１モータを動作させる第１ドライバを有する第１モータ制御装置と、前記第１モータとは異なる第２モータを動作させる第２ドライバを有する第２モータ制御装置と、前記第１モータを動作させる第１コマンド、および、前記第２モータを動作させる第２コマンドの両方を含むコマンド列の実行を、前記第１モータ制御装置および前記第２モータ制御装置のいずれか一方に、要求する管理装置とを備えるモータ制御システムの前記第１モータ制御装置に実行させるためのプログラムであって、前記管理装置が前記コマンド列の実行を前記第１モータ制御装置に要求した場合、前記コマンド列に含まれる前記第１コマンドに従って、前記第１ドライバに前記第１モータを動作させることにより、前記第１コマンドを実行し、前記管理装置が前記コマンド列の実行を前記第１モータ制御装置に要求した場合、前記コマンド列に含まれる前記第２コマンドの実行を前記第２モータ制御装置に要求することを前記第１モータ制御装置に実行させるためのプログラムであってもよい。
【００５３】
これにより、本発明に係るモータ制御方法が、プログラムとして実現される。
【発明の効果】
【００５４】
本発明により、複数のモータ制御装置が、多数のモータを円滑に協調して動作させることができる。
【図面の簡単な説明】
【００５５】
【図１】図１は、実施の形態１に係るモータ制御システムを示す構成図である。
【図２】図２は、実施の形態１に係るモータ制御システムの動作を示すフローチャートである。
【図３】図３は、実施の形態１に係るモータ制御装置の動作状態を示す概念図である。
【図４】図４は、実施の形態１に係るモータ制御装置を示す構成図である。
【図５】図５は、実施の形態１に係るモータ制御装置の変形例を示す構成図である。
【図６】図６は、実施の形態１に係る管理装置の変形例を示す構成図である。
【図７】図７は、実施の形態２に係るモータ制御システムを示す構成図である。
【図８Ａ】図８Ａは、実施の形態２に係る第１のコマンド列を示す図である。
【図８Ｂ】図８Ｂは、実施の形態２に係る第２のコマンド列を示す図である。
【図８Ｃ】図８Ｃは、実施の形態２に係る第３のコマンド列を示す図である。
【図９】図９は、実施の形態２に係るモータの動作状態を示す図である。
【図１０】図１０は、実施の形態３に係るモータ制御システムを示す構成図である。
【図１１】図１１は、実施の形態４に係るモータ制御システムを示す構成図である。
【図１２Ａ】図１２Ａは、実施の形態４に係る第１のマクロを示す図である。
【図１２Ｂ】図１２Ｂは、実施の形態４に係る第２のマクロを示す図である。
【図１２Ｃ】図１２Ｃは、実施の形態４に係る第３のマクロを示す図である。
【図１２Ｄ】図１２Ｄは、実施の形態４に係る第４のマクロを示す図である。
【図１２Ｅ】図１２Ｅは、実施の形態４に係る第５のマクロを示す図である。
【図１２Ｆ】図１２Ｆは、実施の形態４に係る第６のマクロを示す図である。
【図１３】図１３は、実施の形態４に係るモータ制御システムの動作を示すシーケンス図である。
【図１４】図１４は、実施の形態４に係るモータの動作状態を示す図である。
【図１５】図１５は、実施の形態４に係る第１のマクロの変形例を示す図である。
【図１６】図１６は、従来技術に係るモータ制御装置を示す構成図である。
【図１７】図１７は、従来技術に係るモータ制御システムを示す構成図である。
【発明を実施するための形態】
【００５６】
（実施の形態１）
図１は、実施の形態１に係るモータ制御システムを示す構成図である。なお、実施の形態１およびその他の実施の形態において、モータ、および、モータを動作させるドライバを含めてモータ制御装置と呼ぶが、モータまたはドライバがモータ制御装置から独立して構成されている場合でも、処理の本質は変わらない。図１に示されたモータ制御システム１は、管理装置１０、および、３つのモータ制御装置１００、２００、３００を備える。
【００５７】
また、管理装置１０、および、３つのモータ制御装置１００、２００、３００は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の通信ネットワークを介して、相互に接続されている。
【００５８】
管理装置１０は、コマンド列処理要求部１１を備える。管理装置１０は、典型的には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、あるいは、ＣＰＵを備えるパーソナルコンピュータによって実現される。コマンド列処理要求部１１は、モータを動作させるコマンドを複数含むコマンド列の処理を３つのモータ制御装置１００、２００、３００のいずれかに要求する。この要求は、通信ネットワークを介して実現される。
【００５９】
モータ制御装置１００は、処理部１２０、３つのドライバ１１１〜１１３および３つのモータ１０１〜１０３を備える。処理部１２０は、コマンド実行部１２１およびコマンド実行要求部１２２を備える。処理部１２０は、典型的には、電子部品が実装されたプリント基板であるボードによって実現される。
【００６０】
処理部１２０は、コマンド列処理要求部１１がモータ制御装置１００にコマンド列の処理を要求した場合、要求されたコマンド列を処理する。この場合、コマンド実行部１２１は、コマンド列に含まれる複数のコマンドのうち、３つのモータ１０１〜１０３を動作させるコマンドを実行する。
【００６１】
例えば、コマンド実行部１２１は、モータ１０１を動作させるコマンドに従って、ドライバ１１１にモータ１０１を動作させることにより、コマンドを実行する。より具体的には、コマンド実行部１２１は、モータ１０１を動作させるコマンドを解析して、モータ１０１を動作させるためのパルスをドライバ１１１に出力する。ドライバ１１１は、パルスに基づいて、モータ１０１を動作させる。これにより、コマンド実行部１２１は、モータ１０１を動作させるコマンドに従って、ドライバ１１１にモータ１０１を動作させる。
【００６２】
同様に、コマンド実行部１２１は、モータ１０２を動作させるコマンドに従って、ドライバ１１２にモータ１０２を動作させる。また、コマンド実行部１２１は、モータ１０３を動作させるコマンドに従って、ドライバ１１３にモータ１０３を動作させる。これにより、コマンド実行部１２１は、コマンド列に含まれる複数のコマンドのうち、３つのモータ１０１〜１０３を動作させるコマンドを実行する。
【００６３】
そして、コマンド実行要求部１２２は、コマンド列に含まれる複数のコマンドのうち、３つのモータ２０１〜２０３を動作させるコマンドの実行をモータ制御装置２００に要求する。また、コマンド実行要求部１２２は、コマンド列に含まれる複数のコマンドのうち、３つのモータ３０１〜３０３を動作させるコマンドの実行をモータ制御装置３００に要求する。この要求は、通信ネットワークを介して実現される。これにより、処理部１２０は、コマンド列を処理する。
【００６４】
モータ制御装置２００およびモータ制御装置３００は、モータ制御装置１００と同様の構成要素を備え、同様の処理を実行する。
【００６５】
すなわち、モータ制御装置２００は、処理部２２０、３つのドライバ２１１〜２１３および３つのモータ２０１〜２０３を備える。処理部２２０は、コマンド実行部２２１およびコマンド実行要求部２２２を備える。モータ制御装置３００は、処理部３２０、３つのドライバ３１１〜３１３および３つのモータ３０１〜３０３を備える。処理部３２０は、コマンド実行部３２１およびコマンド実行要求部３２２を備える。
【００６６】
また、モータ制御装置２００の処理部２２０は、コマンド列処理要求部１１がモータ制御装置２００にコマンド列の処理を要求した場合、要求されたコマンド列を処理する。この場合、コマンド実行部２２１は、コマンド列に含まれる複数のコマンドのうち、３つのモータ２０１〜２０３を動作させるコマンドを実行する。
【００６７】
そして、コマンド実行要求部２２２は、コマンド列に含まれる複数のコマンドのうち、３つのモータ１０１〜１０３を動作させるコマンドの実行をモータ制御装置１００に要求する。また、コマンド実行要求部２２２は、コマンド列に含まれる複数のコマンドのうち、３つのモータ３０１〜３０３を動作させるコマンドの実行をモータ制御装置３００に要求する。これにより、処理部２２０は、コマンド列を処理する。
【００６８】
また、モータ制御装置３００の処理部３２０は、コマンド列処理要求部１１がモータ制御装置３００にコマンド列の処理を要求した場合、要求されたコマンド列を処理する。この場合、コマンド実行部３２１は、コマンド列に含まれる複数のコマンドのうち、３つのモータ３０１〜３０３を動作させるコマンドを実行する。
【００６９】
そして、コマンド実行要求部３２２は、コマンド列に含まれる複数のコマンドのうち、３つのモータ１０１〜１０３を動作させるコマンドの実行をモータ制御装置１００に要求する。また、コマンド実行要求部３２２は、コマンド列に含まれる複数のコマンドのうち、３つのモータ２０１〜２０３を動作させるコマンドの実行をモータ制御装置２００に要求する。これにより、処理部３２０は、コマンド列を処理する。
【００７０】
さらに、コマンド実行部１２１は、コマンド実行要求部２２２またはコマンド実行要求部３２２によって要求されたコマンドであって、３つのモータ１０１〜１０３を動作させるコマンドを実行する。同様に、コマンド実行部２２１は、コマンド実行要求部１２２またはコマンド実行要求部３２２によって要求されたコマンドであって、３つのモータ２０１〜２０３を動作させるコマンドを実行する。そして、コマンド実行部３２１は、コマンド実行要求部１２２またはコマンド実行要求部２２２によって要求されたコマンドであって、３つのモータ３０１〜３０３を動作させるコマンドを実行する。
【００７１】
すなわち、３つのモータ制御装置１００、２００、３００は、それぞれ、自装置が制御するモータに対するコマンドを自身で実行し、他装置が制御するモータに対するコマンドの実行を他装置に要求する。これにより、モータ制御システム１は、９つのモータ１０１〜１０３、２０１〜２０３、３０１〜３０３の動作を制御する。また、コマンド列に含まれる複数のコマンドの組み合わせに応じて、９つのモータ１０１〜１０３、２０１〜２０３、３０１〜３０３は、協調して動作する。
【００７２】
また、３つのモータ制御装置１００、２００、３００のそれぞれが、管理装置１０を介することなく、直接、他装置にコマンドの実行を要求するため、３つのモータ制御装置１００、２００、３００のそれぞれと管理装置１０との間のデータ交換処理が低減される。そのため、全体の処理の遅延が低減される。したがって、モータ制御システム１は、円滑に、９つのモータ１０１〜１０３、２０１〜２０３、３０１〜３０３の動作を制御することができる。
【００７３】
図２は、図１に示されたモータ制御システム１の動作を示すフローチャートである。まず、管理装置１０のコマンド列処理要求部１１は、１以上のコマンドを含むコマンド列の処理を要求する（Ｓ１０１）。コマンド列には、９つのモータ１０１〜１０３、２０１〜２０３、３０１〜３０３のいずれに対するコマンドが含まれていてもよい。例えば、コマンド列には、９つのモータ１０１〜１０３、２０１〜２０３、３０１〜３０３のすべてに対する複数のコマンドが含まれていてもよい。
【００７４】
また、コマンド列処理要求部１１は、３つのモータ制御装置１００、２００、３００のいずれにコマンド列の処理を要求してもよい。ここでは、コマンド列処理要求部１１が、モータ制御装置１００にコマンド列の処理を要求することを想定して、モータ制御システム１の動作を説明する。
【００７５】
コマンド列の処理の要求を受けたモータ制御装置１００の処理部１２０は、コマンド列に含まれるコマンド毎にループ処理を実行する（Ｓ１０２）。まず、処理部１２０は、コマンド列に含まれるコマンドがモータ制御装置１００によって管理されているモータへのコマンドであるか否かを判定する（Ｓ１０３）。すなわち、処理部１２０は、コマンドが３つのモータ１０１〜１０３のいずれかに対するコマンドであるか否かを判定する。
【００７６】
コマンドがモータ制御装置１００によって管理されているモータへのコマンドである場合（Ｓ１０３でＹｅｓ）、モータ制御装置１００のコマンド実行部１２１は、コマンドに従って、３つのモータ１０１〜１０３のいずれかを駆動する（Ｓ１０４）。例えば、コマンドがモータ１０１へのコマンドである場合、コマンド実行部１２１は、コマンドに従って、モータ１０１を駆動する。
【００７７】
コマンドがモータ制御装置１００によって管理されているモータへのコマンドでない場合（Ｓ１０３でＮｏ）、モータ制御装置１００のコマンド実行要求部１２２は、コマンドの実行を他装置に要求する（Ｓ１０５）。例えば、コマンドがモータ２０１へのコマンドである場合、コマンド実行要求部１２２は、モータ制御装置２００にコマンドの実行を要求する。
【００７８】
そして、他装置は、コマンドに従ってモータを駆動する。例えば、コマンドがモータ２０１へのコマンドである場合、コマンドの実行の要求を受けたモータ制御装置２００のコマンド実行部２２１は、コマンドに従って、モータ２０１を駆動する。
【００７９】
上述の処理がコマンド毎に繰り返された後、処理部１２０はループ処理を終了する（Ｓ１０７）。そして、モータ制御システム１は、処理を終了する。
【００８０】
これにより、モータ制御装置１００は、自装置が制御するモータに対するコマンドを自身で実行し、他装置が制御するモータに対するコマンドの実行を他装置に要求する。なお、モータ制御装置２００およびモータ制御装置３００も、モータ制御装置１００と同様に動作する。
【００８１】
以下、より具体的な例を用いて、説明する。
【００８２】
まず、コマンド列処理要求部１１は、モータ１０１を動作させる第１コマンド、および、モータ２０１を動作させる第２コマンドの両方を含むコマンド列の処理を、モータ制御装置１００およびモータ制御装置２００のいずれか一方に、要求する。
【００８３】
コマンド列処理要求部１１がコマンド列の処理をモータ制御装置１００に要求した場合、コマンド実行部１２１は、コマンド列に含まれる第１コマンドに従って、ドライバ１１１にモータ１０１を動作させることにより、第１コマンドを実行する。そして、コマンド実行要求部１２２は、コマンド列に含まれる第２コマンドの実行をモータ制御装置２００に要求する。
【００８４】
コマンド列処理要求部１１がコマンド列の処理をモータ制御装置２００に要求した場合、コマンド実行部２２１は、コマンド列に含まれる第２コマンドに従って、ドライバ２１１にモータ２０１を動作させることにより、第２コマンドを実行する。そして、コマンド実行要求部２２２は、コマンド列に含まれる第１コマンドの実行をモータ制御装置１００に要求する。
【００８５】
コマンド実行要求部２２２が第１コマンドの実行をモータ制御装置１００に要求した場合、コマンド実行部１２１は、第１コマンドに従って、ドライバ１１１にモータ１０１を動作させることにより、第１コマンドを実行する。コマンド実行要求部１２２が第２コマンドの実行をモータ制御装置２００に要求した場合、コマンド実行部２２１は、第２コマンドに従って、ドライバ２１１にモータ２０１を動作させることにより、第２コマンドを実行する。
【００８６】
これにより、モータ制御装置１００によって制御されるモータ１０１とモータ制御装置２００によって制御されるモータ２０１とが協調して動作する。また、管理装置１０に制御が戻ることなく、モータ制御装置１００とモータ制御装置２００とが連携して動作する。したがって、処理の遅延が低減され、円滑な動作が実現される。
【００８７】
図３は、図１に示されたモータ制御装置１００の動作状態を示す概念図である。モータ制御装置１００は、管理装置１０からコマンド列の処理の要求を受ける。また、モータ制御装置１００は、モータ制御装置２００およびモータ制御装置３００等の他装置からコマンドの実行の要求を受ける。さらに、モータ制御装置１００は、管理装置１０から複数のコマンド列の処理の要求を受けてもよいし、他装置から複数のコマンドの実行の要求を受けてもよい。
【００８８】
このように受け付けた複数のコマンド列および複数のコマンドを並列して処理できるように、モータ制御装置１００または処理部１２０は、仮想ターミナルが複数起動できるような構成であってもよい。そして、複数の仮想ターミナルが、それぞれ、コマンド列を処理し、コマンドを実行してもよい。これにより、モータ制御装置１００は、それぞれ異なる複数のモータを並行して制御し、動作させることができる。なお、同じモータに対して複数の動作が要求された場合、先に要求された動作が完了した後、次に要求された動作が実行される。
【００８９】
なお、並列処理は、仮想ターミナルではなく、割り込み処理等によって、実現されてもよい。また、複数の処理が、並列ではなく、シーケンシャルに、順次、実行されてもよい。また、シーケンシャルな処理と、並列処理との組み合わせで、複数の処理が実行されてもよい。
【００９０】
図４は、図１に示されたモータ制御装置１００のより具体的な例を示す構成図である。図４に示されたモータ制御装置１００は、処理部１２０および記憶部１３０を備える。処理部１２０は、コマンド実行部１２１、コマンド実行要求部１２２、コマンド列処理部１２３およびコマンド列格納部１２４を備える。
【００９１】
記憶部１３０は、典型的には、読み書き可能なＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）で構成される。図４に示された例において、記憶部１３０は、コマンド列情報１３１、状態情報１３２および対応情報１３３を記憶している。コマンド列情報１３１は、コマンド列格納部１２４によって格納され、状態情報１３２は、コマンド実行部１２１によって格納される。対応情報１３３は、記憶部１３０に予め記憶されている。
【００９２】
コマンド列情報１３１は、処理部１２０によって処理されるコマンド列であって、記憶部１３０に予め格納されたコマンド列の情報である。状態情報１３２は、各モータの状態、または、各モータ制御装置の状態、あるいは、各コマンドの実行状態などのモータ制御システム１の様々な状態を示す情報である。より具体的には、状態情報１３２は、モータ制御システム１に含まれるセンサの状態、入出力ポートの状態、他のモータ制御装置に要求したコマンドの実行結果、モータの位置情報、エラー情報などを含む。
【００９３】
対応情報１３３は、どのモータがどのモータ制御装置に対応しているかを示す情報である。例えば、対応情報１３３は、モータ１０１〜１０３がモータ制御装置１００に対応し、モータ２０１〜２０３がモータ制御装置２００に対応し、モータ３０１〜３０３がモータ制御装置３００に対応していることを示す。
【００９４】
なお、記憶部１３０は、コマンド列情報１３１を記憶しているため、コマンド列情報記憶部と称されてもよい。また、記憶部１３０は、状態情報１３２を記憶しているため、状態情報記憶部と称されてもよい。また、記憶部１３０は、対応情報１３３を記憶しているため、対応情報記憶部と称されてもよい。また、コマンド列情報１３１、状態情報１３２および対応情報１３３は、それぞれ、別個の独立した記憶部に格納されてもよいし、１個の記憶部１３０に格納されてもよい。
【００９５】
コマンド列処理部１２３は、管理装置１０からコマンド列の処理の要求を受けて、コマンド列を処理する。コマンド列処理部１２３は、管理装置１０によって送信されたコマンド列を受信することによりコマンド列を取得してもよいし、管理装置１０によって指定されたコマンド列を記憶部１３０から取得してもよい。
【００９６】
コマンド列処理部１２３は、取得されたコマンド列に含まれる複数のコマンドのうち、自装置が管理するモータへのコマンドをコマンド実行部１２１に実行させる。また、コマンド列処理部１２３は、取得されたコマンド列に含まれる複数のコマンドのうち、他装置が管理するモータへのコマンドをコマンド実行要求部１２２に要求させる。これにより、コマンド列処理部１２３は、取得されたコマンド列に含まれる複数のコマンドを、順次、処理する。
【００９７】
この時、コマンド列処理部１２３は、状態情報１３２が所定の条件を満たすか否かを判定してもよい。そして、コマンド列処理部１２３は、判定された結果に依存させて、コマンド列に含まれるコマンドを変更してもよい。この場合、コマンド列処理部１２３は、変更されたコマンドを処理する。
【００９８】
例えば、状態情報１３２が所定の条件を満たす場合に、モータ１０１を動作させるコマンドを処理し、状態情報１３２が所定の条件を満たさない場合に、モータ２０１を動作させるコマンドを処理する。あるいは、コマンド列処理部１２３は、状態情報１３２が所定の条件を満たすか否かに応じて、コマンドを実行する順番を変更してもよい。つまり、コマンドの変更は、コマンドの実行順序の変更を含む。
【００９９】
コマンド列には、上記のように所定の条件に応じてコマンドを変更するための条件分岐コマンドが含まれていてもよい。そして、コマンド列処理部１２３は、このような条件分岐処理が可能であってもよい。
【０１００】
また、コマンド列処理部１２３は、対応情報１３３を参照し、モータ制御装置１００に対応する３つのモータ１０１〜１０３に対するコマンドをコマンド実行部１２１に実行させる。また、例えば、コマンド列処理部１２３は、対応情報１３３を参照し、コマンド実行要求部１２２が、モータ２０１を動作させるコマンドの実行を、モータ２０１に対応するモータ制御装置２００に要求するように制御する。
【０１０１】
コマンド列格納部１２４は、管理装置１０またはその他の装置によって送信されたコマンド列を受信し、受信したコマンド列をコマンド列情報１３１として記憶部１３０に格納する。コマンド列処理部１２３は、このように事前に格納されたコマンド列情報１３１を参照して、コマンド列を処理してもよい。
【０１０２】
コマンド実行部１２１は、コマンド列処理部１２３からの指示を受け、自装置が管理するモータへのコマンドを実行する。また、コマンド実行部１２１は、他装置からコマンドの実行の要求を受けて、自装置が管理するモータへのコマンドを実行する。この時、コマンド実行部１２１は、他装置からコマンドの実行の要求を、直接受けてもよいし、コマンド列処理部１２３を経由して受けてもよい。
【０１０３】
そして、コマンド実行部１２１は、コマンドの実行後、実行完了を示す完了通知信号を他装置に送信する。コマンド実行部１２１は、コマンド列処理部１２３を経由して他装置からの要求を受けている場合、コマンド列処理部１２３を経由して完了通知信号を送信してもよい。また、コマンド列処理部１２３は、コマンド列の処理後、処理完了を示す完了通知信号を管理装置１０に送信する。
【０１０４】
図５は、図１に示されたモータ制御装置１００の変形例を示す構成図である。図５に示されたモータ制御装置１００は、処理部１２０、ドライバ１１１、モータ１０１、３つの電子機器制御部１４４〜１４６、照明装置１０４、音響装置１０５および電子機器１０６を備える。電子機器制御部１４４は、照明装置１０４を動作させる。電子機器制御部１４５は、音響装置１０５を動作させる。電子機器制御部１４６は、その他の電子機器１０６を動作させる。電子機器１０６は、センサ入力装置、温度制御装置、画像処理装置、音声処理装置または数理計算装置等であってもよい。
【０１０５】
なお、ここでは、３つの電子機器制御部１４４〜１４６、照明装置１０４、音響装置１０５および電子機器１０６を含めてモータ制御装置１００と呼ぶ。しかし、電子機器制御部１４４〜１４６、照明装置１０４、音響装置１０５または電子機器１０６がモータ制御装置１００から独立して構成されている場合でも、処理の本質は変わらない。
【０１０６】
管理装置１０のコマンド列処理要求部１１によって処理が要求されるコマンド列には、照明装置１０４、または、音響装置１０５、あるいは、その他の電子機器１０６を動作させる電子機器制御コマンドが含まれていてもよい。
【０１０７】
例えば、コマンド列処理要求部１１が、照明装置１０４を動作させる電子機器制御コマンドを含むコマンド列の処理をモータ制御装置１００に要求した場合、コマンド実行部１２１は、電子機器制御コマンドに従って、電子機器制御部１４４に照明装置１０４を動作させる。
【０１０８】
同様に、電子機器制御コマンドが音響装置１０５を動作させるコマンドである場合、コマンド実行部１２１は、電子機器制御部１４５に音響装置１０５を動作させる。電子機器制御コマンドがその他の電子機器１０６を動作させるコマンドである場合、コマンド実行部１２１は、電子機器制御部１４６に電子機器１０６を動作させる。
【０１０９】
このような電子機器制御コマンドを含むコマンド列の処理をコマンド列処理要求部１１がモータ制御装置２００に要求した場合、モータ制御装置２００のコマンド実行要求部２２２は、電子機器制御コマンドの実行をモータ制御装置１００に要求する。要求を受けたモータ制御装置１００のコマンド実行部１２１は、３つの電子機器制御部１４４〜１４６のいずれかを介して、照明装置１０４、音響装置１０５または電子機器１０６を動作させる。
【０１１０】
このようにモータ制御システム１は、モータ以外の電子機器の動作を制御してよい。これによって、モータに限らず、様々な電子機器が協調して動作する。したがって、モータ制御システム１は、より広範な分野で、利用可能になる。なお、モータ制御装置１００だけではなく、モータ制御装置２００またはモータ制御装置３００が、様々な電子機器を有していてもよい。
【０１１１】
図６は、図１に示された管理装置１０の変形例を示す構成図である。図６に示された管理装置１０は、コマンド列処理要求部１１および要求先選択部１２を備える。
【０１１２】
要求先選択部１２は、コマンド列に基づいて、３つのモータ制御装置１００、２００、３００から、コマンド列の処理が要求される要求先を選択する。コマンド列処理要求部１１は、選択された要求先にコマンド列の処理を要求する。
【０１１３】
具体的には、要求先選択部１２は、コマンド列が各モータに関連する度合いに依存させて、要求先を選択する。例えば、コマンド列が、主に、モータ１０１へのコマンドで構成されている場合、要求先選択部１２は、モータ制御装置１００を要求先として選択する。また、コマンド列に含まれる複数のコマンドのうち、モータ制御装置２００が管理する３つのモータ２０１〜２０３へのコマンドの数の割合が多い場合、要求先選択部１２は、モータ制御装置２００を要求先として選択する。
【０１１４】
このようにコマンド列の処理の要求先が適切に選択されることで、他装置にコマンドの実行を要求する回数が低減される。したがって、処理の遅延が低減され、複数のモータのより円滑な協調動作が実現される。
【０１１５】
以上のように、実施の形態１に係るモータ制御システム１は、複数のモータ制御装置から構成される。そして、各モータ制御装置は、コマンド列の処理の要求を受けて、自装置が管理するモータへのコマンドを自装置で実行し、他装置が管理するモータへのコマンドの実行を他装置に要求する。この時、管理装置に制御が戻ることがないため、処理の遅延が低減される。したがって、モータ制御システム１は、多数のモータを円滑に協調して動作させることができる。
【０１１６】
なお、実施の形態１に係るモータ制御システム１は、３つのモータ制御装置１００、２００、３００を備えるが、モータ制御システム１は、２つのモータ制御装置を備えてもよいし、４つ以上のモータ制御装置を備えてもよい。また、各モータ制御装置に備えられるモータの数は、３つに限られず、２つ以下であっても、４つ以上であってもよい。
【０１１７】
また、実施の形態１に示された構成要素のすべてが、必須というわけではない。例えば、モータ制御装置は、コマンド実行部、および、コマンド実行要求部を備えていれば、多数のモータを協調して動作させることができる。
【０１１８】
また、実施の形態１に係るコマンド実行部１２１は、管理装置１０のコマンド列処理要求部１１、または、モータ制御装置２００のコマンド実行要求部２２２等からの要求に基づくタイミングで、モータ１０１等を動作させるためのコマンドを実行する。しかし、コマンド実行部１２１は、状態情報１３２を監視し、状態情報１３２が所定の条件を満たしたタイミングで、コマンドを実行してもよい。
【０１１９】
また、コマンド実行部１２１は、記憶部１３０に記憶されている状態情報１３２を監視せずに、直接、モータ制御システム１の状態を監視してもよい。すなわち、監視対象の状態情報１３２は、記憶部１３０に記憶されていなくてもよい。また、コマンド列処理部１２３が、状態情報１３２を監視し、状態情報１３２が所定の条件を満たしたタイミングで、コマンド実行部１２１にコマンドを実行させてもよい。
【０１２０】
（実施の形態２）
次に、実施の形態２として、実施の形態１に示されたモータ制御システム１のより具体的な例を示す。
【０１２１】
図７は、実施の形態２に係るモータ制御システム１を示す構成図である。図７に示されたモータ制御システム１は、管理装置１０、および、３つのモータ制御装置１００、２００、３００を備える。モータ制御装置１００は、処理部１２０、記憶部１３０、３つのドライバ１１１〜１１３、および、３つのモータＭ１１〜Ｍ１３を備える。モータ制御装置２００は、処理部２２０、記憶部２３０、ドライバ１１４、および、モータＭ１４を備える。モータ制御装置３００は、処理部３２０、記憶部３３０、ドライバ１１５、および、モータＭ１５を備える。
【０１２２】
図７に示された各構成要素は、実施の形態１に示された各構成要素と同様の機能を有する。例えば、３つの記憶部１３０、２３０、３３０には、モータまたはレジスタ等のオブジェクトがどのモータ制御装置に割り当てられているかを示す対応情報が記憶されている。また、記憶部１３０には、レジスタＲｅｇ１１（図示せず）が含まれる。レジスタＲｅｇ１１は、図４に示された状態情報１３２の一例である。
【０１２３】
図８Ａ〜図８Ｃは、それぞれ、図７に示されたモータ制御システム１によって処理されるコマンド列の例を示す図である。
【０１２４】
図８Ａに示されたコマンド列５０１は、３つのコマンドを有する。１番目のコマンドは、モータＭ１１を指定された動作量（１０００）で動作させるコマンドである。２番目のコマンドは、レジスタＲｅｇ１１がセットされるまで待機させるコマンドである。３番目のコマンドは、モータＭ１２を指定された動作量（５００）で動作させるコマンドである。
【０１２５】
図８Ｂに示されたコマンド列５０２も、３つのコマンドを有する。１番目のコマンドは、モータＭ１４を指定された動作量（５００）で動作させるコマンドである。２番目のコマンドは、モータＭ１３を指定された動作量（３００）で動作させるコマンドである。３番目のコマンドは、レジスタＲｅｇ１１をセットするコマンドである。
【０１２６】
図８Ｃに示されたコマンド列５０３は、１つのコマンドを有する。コマンド列５０３に含まれる１つのコマンドは、モータＭ１５を指定された動作量（４００）で動作させるコマンドである。
【０１２７】
管理装置１０は、コマンド列５０１の処理をモータ制御装置１００に要求するとともに、コマンド列５０２の処理をモータ制御装置２００に要求する。そして、管理装置１０は、コマンド列５０１の処理が終了した後、コマンド列５０３の処理をモータ制御装置３００に要求する。
【０１２８】
図９は、図７に示された５つのモータＭ１１〜Ｍ１５の動作状態を示す図である。
【０１２９】
まず、コマンド列５０１の処理の要求を受けたモータ制御装置１００の処理部１２０は、コマンド列５０１の１番目のコマンドに従って、ドライバ１１１にモータＭ１１を指定された動作量（１０００）で動作させる。
【０１３０】
一方、コマンド列５０２の処理の要求を受けたモータ制御装置２００の処理部２２０は、コマンド列５０２の１番目のコマンドに従って、ドライバ１１４にモータＭ１４を指定された動作量（５００）で動作させる。その後、処理部２２０は、コマンド列５０２の２番目のコマンドを処理する。しかし、コマンド列５０２の２番目のコマンドは、モータ制御装置１００が管理するモータＭ１３に対するコマンドである。そのため、処理部２２０は、モータ制御装置１００に、コマンド列５０２の２番目のコマンドの実行を要求する。
【０１３１】
コマンド列５０２の２番目のコマンドの実行の要求を受けたモータ制御装置１００の処理部１２０は、ドライバ１１３にモータＭ１３を指定された動作量（３００）で動作させる。ここで、処理部１２０は、コマンド列５０１の１番目のコマンドの実行中であっても、仮想ターミナルの機能を用いて、並行して、コマンド列５０２の２番目のコマンドを実行する。処理部１２０は、コマンド列５０２の２番目のコマンドの実行が完了した後、モータ制御装置２００に実行の完了を通知する。
【０１３２】
実行の完了の通知を受けたモータ制御装置２００の処理部２２０は、コマンド列５０２の３番目のコマンドを処理する。しかし、コマンド列５０２の３番目のコマンドは、モータ制御装置１００が管理するレジスタＲｅｇ１１に対するコマンドである。そのため、処理部２２０は、モータ制御装置１００に、コマンド列５０２の３番目のコマンドの実行を要求する。
【０１３３】
コマンド列５０２の３番目のコマンドの実行の要求を受けたモータ制御装置１００の処理部１２０は、レジスタＲｅｇ１１をセットする。ここで、処理部１２０は、コマンド列５０１の１番目のコマンドの実行中であっても、仮想ターミナルの機能を用いて、並行して、コマンド列５０２の３番目のコマンドを実行する。処理部１２０は、コマンド列５０２の３番目のコマンドの実行が完了した後、モータ制御装置２００に実行の完了を通知する。完了の通知を受けたモータ制御装置２００の処理部２２０は、管理装置１０に、コマンド列５０２の処理の完了を通知する。
【０１３４】
モータ制御装置１００の処理部１２０は、コマンド列５０１の１番目のコマンドの実行が完了した後、コマンド列５０１の２番目のコマンドを実行する。すなわち、処理部１２０は、レジスタＲｅｇ１１がセットされるまで待機する。これにより、同期動作が可能になる。レジスタＲｅｇ１１がセットされた後、処理部１２０は、コマンド列５０１の３番目のコマンドを実行する。すなわち、処理部１２０は、コマンド列５０１の３番目のコマンドに従って、ドライバ１１２にモータＭ１２を指定された動作量（５００）で動作させる。
【０１３５】
コマンド列５０１の３番目のコマンドの実行が完了した後、処理部１２０は、管理装置１０に、コマンド列５０１の処理の完了を通知する。管理装置１０は、コマンド列５０１の処理の完了の通知を受けた後、モータ制御装置３００にコマンド列５０３の処理を要求する。
【０１３６】
コマンド列５０３の処理の要求を受けたモータ制御装置３００の処理部３２０は、コマンド列５０３に含まれるコマンドに従って、ドライバ１１５にモータＭ１５を指定された動作量（４００）で動作させる。コマンド列５０３に含まれるコマンドの実行が完了した後、処理部３２０は、コマンド列５０３の処理の完了を通知する。管理装置は、３つのコマンド列５０１〜５０３の処理の完了の通知を受け、一連の動作を終了する。
【０１３７】
以上のように、実施の形態２に係るモータ制御システム１は、複数のモータを協調して動作させる。また、記憶部１３０には、コマンドの実行状態を示す状態情報が、レジスタＲｅｇ１１として、格納される。これにより、複数のモータが、同期をとりつつ、円滑に動作する。なお、このような状態情報は、記憶部２３０または記憶部３３０に格納されてもよい。
【０１３８】
（実施の形態３）
次に、実施の形態３として、複数の管理装置を備えるモータ制御システムの例を示す。すなわち、実施の形態３に係るモータ制御システムは、実施の形態１に係るモータ制御システム１に、さらに、もうひとつ別の管理装置が加えられている。
【０１３９】
図１０は、実施の形態３に係るモータ制御システム１を示す構成図である。図１０に示されたモータ制御システム１は、２つの管理装置１０、２０、および、３つのモータ制御装置１００、２００、３００を備える。つまり、図１０に示されたモータ制御システム１は、実施の形態１に係るモータ制御システム１に、通信ネットワークに接続された管理装置２０が加えられている。管理装置２０は、管理装置１０と同様の機能を有し、コマンド列処理要求部２１を備える。コマンド列処理要求部２１は、コマンド列処理要求部１１と同様の機能を有する。
【０１４０】
すなわち、コマンド列処理要求部２１は、コマンド列処理要求部１１と同様に、各モータへのコマンドを含むコマンド列の処理を、３つのモータ制御装置１００、２００、３００のいずれかに要求する。コマンド列処理要求部２１によって処理が要求されるコマンド列は、コマンド列処理要求部１１によって処理が要求されるコマンド列と同じであってもよいし、異なっていてもよい。３つのモータ制御装置１００、２００、３００は、コマンド列処理要求部１１からコマンド列の処理の要求を受けた場合と同様に、コマンド列を処理する。
【０１４１】
以下、より具体的な例を用いて、説明する。
【０１４２】
まず、コマンド列処理要求部２１は、モータ１０１を動作させる第３コマンド、および、モータ２０１を動作させる第４コマンドの両方を含むコマンド列の処理を、モータ制御装置１００およびモータ制御装置２００のいずれか一方に、要求する。
【０１４３】
コマンド列処理要求部２１がコマンド列の処理をモータ制御装置１００に要求した場合、コマンド実行部１２１は、コマンド列に含まれる第３コマンドに従って、ドライバ１１１にモータ１０１を動作させることにより、第３コマンドを実行する。そして、コマンド実行要求部１２２は、コマンド列に含まれる第４コマンドの実行をモータ制御装置２００に要求する。
【０１４４】
コマンド列処理要求部２１がコマンド列の処理をモータ制御装置２００に要求した場合、コマンド実行部２２１は、コマンド列に含まれる第４コマンドに従って、ドライバ２１１にモータ２０１を動作させることにより、第４コマンドを実行する。そして、コマンド実行要求部２２２は、コマンド列に含まれる第３コマンドの実行をモータ制御装置１００に要求する。
【０１４５】
コマンド実行要求部２２２が第３コマンドの実行をモータ制御装置１００に要求した場合、コマンド実行部１２１は、第３コマンドに従って、ドライバ１１１にモータ１０１を動作させることにより、第３コマンドを実行する。コマンド実行要求部１２２が第４コマンドの実行をモータ制御装置２００に要求した場合、コマンド実行部２２１は、第４コマンドに従って、ドライバ２１１にモータ２０１を動作させることにより、第４コマンドを実行する。
【０１４６】
以上のように、実施の形態３に係るモータ制御システム１は、複数の管理装置を備えることにより、管理装置側の処理負荷を分散させることができる。また、複数のモータ制御装置のそれぞれは、複数の管理装置から処理の要求を受ける。これにより、モータ制御システム１は、より柔軟にコマンド列を処理することができる。
【０１４７】
なお、実施の形態３に係るモータ制御システム１は、２つの管理装置１０、２０を備えるが、３つ以上の管理装置を備えてもよい。
【０１４８】
（実施の形態４）
次に、実施の形態４として、実施の形態３に示されたモータ制御システム１のより具体的な例を示す。
【０１４９】
図１１は、実施の形態４に係るモータ制御システム１を示す構成図である。図１１に示されたモータ制御システム１は、２つの管理装置１０、２０、および、３つのモータ制御装置１００、２００、３００を備える。
【０１５０】
モータ制御装置１００は、モータ制御システム１において、試料搬送の役割を担う。また、モータ制御装置１００は、処理部１２０、記憶部１３０、センサ１１７、および、２つのモータＭ１、Ｍ２を備える。記憶部１３０には、マクロＭＣＲ１０１が記憶されている。マクロＭＣＲ１０１は、図４に示されたコマンド列情報１３１の例である。センサ１１７は、試験管の有無を検知するセンサである。２つのモータＭ１、Ｍ２は、それぞれ、試験管を運ぶモータである。モータＭ１は、試験管を導入し、モータＭ２は、試験管を排出する。
【０１５１】
モータ制御装置２００は、モータ制御システム１において、サンプリングの役割を担う。また、モータ制御装置２００は、処理部２２０、記憶部２３０、２つのモータＭ３、Ｍ４を備える。記憶部２３０には、２つのマクロＭＣＲ２０１、ＭＣＲ２０２が記憶されている。２つのマクロＭＣＲ２０１、ＭＣＲ２０２は、それぞれ、図４に示されたコマンド列情報１３１の例である。モータＭ３は、試験管に入れるスポイトを旋回させるモータである。モータＭ４は、試料ポンプに取り付けられたモータであって、試料を吸引または吐出する。
【０１５２】
モータ制御装置３００は、モータ制御システム１において、洗浄の役割を担う。また、モータ制御装置３００は、処理部３２０、記憶部３３０、２つのモータＭ５、Ｍ６を備える。記憶部３３０には、３つのマクロＭＣＲ３０１、ＭＣＲ３０２、ＭＣＲ３０３が記憶されている。３つのマクロＭＣＲ３０１、ＭＣＲ３０２、ＭＣＲ３０３は、それぞれ、図４に示されたコマンド列情報１３１の例である。モータＭ５は、洗浄容器を移送するモータである。モータＭ６は、洗浄ポンプに取り付けられたモータであって、洗浄液を吸引または吐出する。
【０１５３】
図１２Ａ〜図１２Ｆは、それぞれ、図１１に示されたモータ制御システム１によって処理されるマクロを示す図である。これらのマクロは、各記憶部に予め格納されている。例えば、管理装置１０は、図１２Ａに示されたマクロＭＣＲ１０１をモータ制御装置１００に送信する。マクロＭＣＲ１０１を受信したモータ制御装置１００の処理部１２０は、記憶部１３０にマクロＭＣＲ１０１を格納する。これにより、マクロＭＣＲ１０１は、記憶部１３０に予め格納される。
【０１５４】
ここで、図１２Ａ〜図１２Ｆに示されたマクロの先頭の記号「＃」は、その後に続くマクロ名（図面の符号と同じ）によって識別されるマクロを、実行せずに登録することを示す記号である。また、マクロ名の後に続く「Ａｒｇ１」は、パラメータを引数として、受け取ることが可能であることを示す。２つの管理装置１０、２０は、それぞれ、予め格納されたマクロのマクロ名、および、引数としてのパラメータを指定することにより、コマンド列であるマクロの処理を要求する。
【０１５５】
図１２Ａに示されたマクロＭＣＲ１０１は、試料を分注するマクロである。１行目は、マクロ名と引数を示す。マクロＭＣＲ１０１は、引数Ａｒｇ１として、試料を分注する容量（ｍｌ）を受け取る。２行目は、モータＭ１を指定された位置（１０００）に移動する導入動作を示す。３行目は、モータＭ１を指定された位置（０）に移動する後退動作を示す。
【０１５６】
５、６行目は、試験管の有無を検知して、検知された状態に応じて分岐する処理を示す。５行目は、入力信号ＰＩ２を変数Ｒｅｇ０２に代入する処理を示す。入力信号ＰＩ２は、センサ１１７が試験管の有無を検知することにより生成された信号である。６行目は、入力信号ＰＩ２が０の場合、処理の制御がラベルＬ１（１５行目）へ移動することを示す。すなわち、試験管が無かった場合、試料が分注されない。試験管があった場合、８行目から１４行目の処理が実行される。
【０１５７】
８行目は、マクロＭＣＲ２０１を実行する処理を示す。９行目は、マクロＭＣＲ２０２の実行を開始する処理を示す。マクロ名の先頭の文字「Ｘ」は、マクロを開始させた後にマクロの終了を待たずに、次の処理を実行することを示す。１０行目は、モータＭ２を指定された位置（１０００）に移動する排出動作を示す。１１行目は、モータＭ２を指定された位置（０）に移動する後退動作を示す。１０、１１行目の処理は、９行目の処理と並行して実行される。１２行目は、マクロＭＣＲ２０２の実行の完了を待機する処理を示す。
【０１５８】
１３行目は、マクロＭＣＲ３０３を実行する処理を示す。１４行目は、処理の制御がラベルＬ２（１８行目）へ移動することを示す。
【０１５９】
１５行目は、ラベルＬ１を示す。１６行目は、モータＭ２を指定された位置（１０００）に移動する排出動作を示す。１７行目は、モータＭ２を指定された位置（０）に移動する後退動作を示す。１８行目は、ラベルＬ２を示す。１９行目は、変数Ｒｅｇ０２を管理装置１０に送信する処理を示す。
【０１６０】
モータ制御システム１は、図１２Ａに示されたマクロＭＣＲ１０１を実行することにより、試料を分注する。また、試験管の状態に応じて、処理が変更される。
【０１６１】
図１２Ｂに示されたマクロＭＣＲ２０１は、試料を吸引するマクロである。１行目は、マクロ名と引数を示す。マクロＭＣＲ２０１は、引数Ａｒｇ１として、試料を分注する容量（ｍｌ）を受け取る。２行目は、乗算の処理を示す。すなわち、引数Ａｒｇ１と１００とが乗算され、変数Ｒｅｇ０１に格納される。３行目は、モータＭ３を指定された位置（５００）に移動する動作を示す。これにより、スポイトは、試験管側に移動する。４行目は、モータＭ４を変数Ｒｅｇ０１によって指定された位置に移動する動作を示す。これにより、Ｍ４は、試料を吸引する。
【０１６２】
モータ制御システム１は、図１２Ｂに示されたマクロＭＣＲ２０１を実行することにより、試料を吸引する。
【０１６３】
図１２Ｃに示されたマクロＭＣＲ２０２は、試料を吐出するマクロである。１行目は、マクロ名を示す。２行目は、ラベルＬ１を示す。３行目は、入力信号ＰＩ１の状態を検査する処理を示す。入力信号ＰＩ１は、処理部３２０から得られる信号であって、洗浄中であるか否かを示す信号である。４行目は、入力信号ＰＩ１が０でない場合、処理の制御がラベルＬ１（２行目）へ移動することを示す。
【０１６４】
６行目は、モータＭ３を指定された位置（０）に移動する動作を示す。これにより、スポイトは、洗浄側に移動する。７行目は、モータＭ４を指定された位置（０）に移動する動作を示す。これにより、Ｍ４は、試料を吐出する。
【０１６５】
モータ制御システム１は、図１２Ｃに示されたマクロＭＣＲ２０２を実行することにより、試料を吐出する。
【０１６６】
図１２Ｄに示されたマクロＭＣＲ３０１は、洗浄動作を制御するマクロである。１行目は、マクロ名と引数を示す。マクロＭＣＲ３０１は、引数Ａｒｇ１として、洗浄回数を受け取る。２行目は、ラベルＬ１を示す。３行目は、変数Ｒｅｇ０３を検査する処理を示す。変数Ｒｅｇ０３は、洗浄動作の開始を制御するための変数である。４行目は、変数Ｒｅｇ０３が０の場合、処理の制御がラベルＬ１（２行目）へ移動することを示す。５行目は、変数Ｒｅｇ０３に０を格納する処理を示す。
【０１６７】
７行目は、出力信号ＰＯ１を１にセットする処理を示す。８行目は、マクロＭＣＲ３０２を実行する処理を示す。９行目は、出力信号ＰＯ１を０にリセットする処理を示す。
【０１６８】
モータ制御システム１は、図１２Ｄに示されたマクロＭＣＲ３０１を実行することにより、洗浄動作を制御する。
【０１６９】
図１２Ｅに示されたマクロＭＣＲ３０２は、洗浄動作を実行するマクロである。１行目は、マクロ名と引数を示す。マクロＭＣＲ３０２は、引数Ａｒｇ１として、洗浄回数を受け取る。２行目は、モータＭ５を指定された位置（１０００）に移動する動作を示す。これにより、Ｍ５は、洗浄容器を移送する。３行目は、モータＭ５を指定された位置（０）に移動する後退動作を示す。４行目は、変数Ｒｅｇ０２に引数Ａｒｇ１を代入する処理を示す。
【０１７０】
５行目は、ラベルＬ１を示す。６行目は、モータＭ６を指定された位置（５０００）に移動する動作を示す。これにより、５０ｍｌの洗浄液が吸引される。７行目は、モータＭ６を指定された位置（０）に移動する動作を示す。これにより、洗浄液が吐出される。８行目は、変数Ｒｅｇ０２から１を減算する処理を示す。９行目は、変数Ｒｅｇ０２が０でない場合、処理の制御がラベルＬ１（５行目）へ移動することを示す。これにより、指定された回数分、処理が繰り返される。
【０１７１】
モータ制御システム１は、図１２Ｅに示されたマクロＭＣＲ３０２を実行することにより、洗浄動作を実行する。
【０１７２】
図１２Ｆに示されたマクロＭＣＲ３０３は、洗浄動作の開始を制御するマクロである。１行目は、マクロ名を示す。２行目は、変数Ｒｅｇ０３に１をセットする処理を示す。これにより、洗浄動作の待機状態が解除される。モータ制御システム１は、図１２Ｆに示されたマクロＭＣＲ３０３を実行することにより、洗浄動作の開始を制御する。
【０１７３】
図１３は、図１１に示されたモータ制御システム１の動作を示すシーケンス図である。
【０１７４】
まず、管理装置１０は、モータ制御装置１００に、マクロＭＣＲ１０１の処理を要求する。この時、マクロ名と引数が送信されることにより、処理が要求される。より具体的には、管理装置１０は、「ＭＣＲ１０１  １０」をモータ制御装置１００に送信する（Ｓ２０１）。
【０１７５】
要求を受けたモータ制御装置１００の処理部１２０は、マクロＭＣＲ１０１を処理する。マクロＭＣＲ１０１の実行において、まず、処理部１２０は、モータＭ１を動作させて、試験管を導入する。次に、処理部１２０は、試験管の有無を判定する（Ｓ２０２）。
【０１７６】
試験管が有る場合、処理部１２０は、試料を吸引するマクロＭＣＲ２０１の処理をモータ制御装置２００に要求する。マクロＭＣＲ２０１の処理において、まず、モータ制御装置２００の処理部２２０は、モータＭ３を指定された位置に移動させる。これにより、スポイトは、試験管側に移動する。次に、処理部２２０は、モータＭ４を指定された位置に移動する。これにより、Ｍ４は、試料を吸引する（Ｓ２０３）。
【０１７７】
次に、処理部１２０は、試料を吐出するマクロＭＣＲ２０２の処理をモータ制御装置２００に要求する。マクロＭＣＲ２０２の処理において、まず、モータ制御装置２００の処理部２２０は、入力信号ＰＩ１が０になるまで待機する。つまり、処理部２２０は、動作状態が洗浄中になるまで待機する。その後、処理部２２０は、モータＭ３を洗浄側へ移動させる。次に、処理部２２０は、モータＭ４を指定された位置に移動する。これにより、Ｍ４は、試料を吐出する（Ｓ２０５）。
【０１７８】
また、処理部１２０は、マクロＭＣＲ２０２の実行の完了を待たずに、モータＭ２を動作させて、試験管を排出する（Ｓ２０４）。
【０１７９】
そして、試験管の排出（Ｓ２０４）およびマクロＭＣＲ２０２の処理（Ｓ２０５）が完了した後、処理部１２０は、マクロＭＣＲ３０３の処理をモータ制御装置３００に要求する（Ｓ２０６）。
【０１８０】
要求を受けたモータ制御装置３００の処理部３２０は、マクロＭＣＲ３０３を処理する。すなわち、処理部３２０は、洗浄動作を開始させるための変数Ｒｅｇ０３を１にセットする（Ｓ２０７）。
【０１８１】
次に、処理部１２０は、試験管の有無を示す値が格納された変数Ｒｅｇ０２の値を管理装置１０に送信することにより、試験管の有無を通知する（Ｓ２０８）。
【０１８２】
次に、モータ制御装置１００の処理部１２０は、マクロＭＣＲ１０１の処理の完了を管理装置１０に通知する。そして、管理装置１０は、一連の処理を完了する（Ｓ２０９）。
【０１８３】
一方、管理装置２０は、モータ制御装置３００に、マクロＭＣＲ３０１の処理を要求する。この時、マクロ名と引数が送信されることにより、処理が要求される。より具体的には、管理装置２０は、「ＭＣＲ３０１  ２」をモータ制御装置２００に送信する（Ｓ３０１）。
【０１８４】
要求を受けたモータ制御装置３００の処理部３２０は、マクロＭＣＲ３０１を処理する。マクロＭＣＲ３０１の実行において、まず、処理部３２０は、洗浄動作を開始させるための変数Ｒｅｇ０３が１にセットされるまで、待機する。変数がセットされた後、処理部３２０は、マクロＭＣＲ３０２を処理する（Ｓ３０２）。
【０１８５】
マクロＭＣＲ３０２の処理において、まず、処理部３２０は、モータＭ５に洗浄容器を移送させる。次に、処理部３２０は、モータＭ６を動作させることにより、洗浄動作を実行する。これらの動作は、引数で指定された回数分、繰り返される（Ｓ３０３）。
【０１８６】
マクロＭＣＲ３０２の処理が完了した後、処理部３２０は、マクロＭＣＲ３０１の後続の処理を実行する（Ｓ３０４）。マクロＭＣＲ３０１の処理が完了した後、処理部３２０は、マクロＭＣＲ３０１の処理の完了を管理装置２０に通知する。そして、管理装置１０は、一連の処理を完了する（Ｓ３０５）。
【０１８７】
図１４は、図１１に示された６つのモータＭ１〜Ｍ６の動作状態を示す図であって、図１３の処理が繰り返された場合の動作状態を示す図である。
【０１８８】
管理装置１０は、マクロＭＣＲ１０１の処理をモータ制御装置１００に要求することにより、モータＭ１〜Ｍ４を動作させる。管理装置１０は、マクロＭＣＲ１０１の処理が完了した後、再度、マクロＭＣＲ１０１の処理をモータ制御装置１００に要求している。これにより、繰り返し、マクロＭＣＲ１０１が処理される。図１４では、マクロＭＣＲ１０１が、５回、処理されている。
【０１８９】
一方、管理装置２０は、マクロＭＣＲ３０１の処理をモータ制御装置３００に要求することにより、モータＭ５、Ｍ６を動作させる。管理装置２０は、マクロＭＣＲ３０１の処理が完了した後、再度、マクロＭＣＲ３０１の処理をモータ制御装置３００に要求している。これにより、繰り返し、マクロＭＣＲ３０１が処理される。図１４では、マクロＭＣＲ３０１が、３回、処理されている。
【０１９０】
図１４に示されているように、モータ制御システム１は、複数のモータを協調して動作させる。また、モータ制御システム１は、各コマンドの実行状態に応じて、後続の処理を待機し、あるいは、後続の処理を変更する。例えば、試験管が無かった場合、モータＭ３、Ｍ４による試料の吸引および吐出の動作が実行されない。これにより、より柔軟な協調動作が実現される。
【０１９１】
図１５は、図１２Ａに示されたマクロＭＣＲ１０１の変形例を示す図である。図１２Ａに示されたマクロＭＣＲ１０１の８行目のコマンドが、図１５に示されたマクロＭＣＲ１０１の８行目から１０行目に示されたコマンドに変更されている。すなわち、マクロＭＣＲ２０１の内容がマクロＭＣＲ１０１に組み込まれている。このように、他装置が管理するモータへのコマンドがマクロに含まれていてもよい。この場合、他装置が管理するモータへのコマンドの実行は、他装置に要求される。
【０１９２】
また、図１５に示されたマクロＭＣＲ１０１では、マクロＭＣＲ２０１と比較して、「Ｍ３」が「Ｍ２０３」に、「Ｍ４」が「Ｍ２０４」に、「Ｒｅｇ０１」が「Ｒｅｇ２０１」に、それぞれ、変更されている。３桁で示された数字の先頭部分は、３つのモータ制御装置１００、２００、３００のそれぞれを識別する数字である。
【０１９３】
このようにコマンドには、処理対象のオブジェクトがどのモータ制御装置によって管理されているオブジェクトであるかを識別するための識別情報が含まれていてもよい。すなわち、識別情報は、複数のモータ制御装置から、コマンドを実行するモータ制御装置を識別するための情報である。このような識別情報がコマンドに組み込まれていてもよい。
【０１９４】
例えば、管理装置１０のコマンド列処理要求部１１は、各モータ制御装置の識別情報が組み込まれたコマンドを含むコマンド列の処理をモータ制御装置１００に要求する。モータ制御装置１００のコマンド列処理部１２３は、モータ制御装置２００の識別情報が組み込まれたコマンドの実行をコマンド実行要求部１２２に要求させる。コマンド実行要求部１２２は、識別情報に基づいて、モータ制御装置２００にコマンドの実行を要求する。これにより、コマンド実行要求部１２２は、図４に示された対応情報１３３が無くても、適切なモータ制御装置にコマンドの実行を要求できる。
【０１９５】
そして、モータ制御装置１００のコマンド列処理部１２３は、モータ制御装置１００の識別情報が組み込まれたコマンドをコマンド実行部１２１に実行させる。また、コマンド列処理部１２３は、識別情報が組み込まれていないコマンドをコマンド実行部１２１に実行させてもよい。これにより、コマンドの構成が容易になる。
【０１９６】
入出力処理でのポート指定に、同様の識別情報が用いられてもよい。例えば、識別情報が、入出力信号を示す「ＰＩ１」、「ＰＩ２」、「ＰＯ１」に組み込まれてもよい。
【０１９７】
以上のように、実施の形態４に係るモータ制御システム１は、複数のモータを協調して動作させる。そして、モータ制御システム１は、複数の管理装置を備えることにより、管理装置側の処理負荷を分散させることができる。また、複数のモータ制御装置のそれぞれは、複数の管理装置から処理の要求を受ける。これにより、モータ制御システム１は、より柔軟にコマンド列を処理することができる。
【０１９８】
さらに、各記憶部には、コマンド列がマクロとして格納される。したがって、コマンド列の処理の要求、および、複数のモータの協調動作が、より容易になる。また、実施の形態４に示されたように、マクロには、引数が設定可能であってもよい。これにより、動作の変更が可能になり、柔軟性が確保される。
【０１９９】
なお、マクロに設定可能な引数の数は、複数であってもよい。これにより、より様々な組み合わせで、処理が実行される。また、各モータ制御装置は、他装置にマクロの処理を要求するだけでなく、自装置にマクロの処理を要求してもよい。
【０２００】
以上、本発明に係るモータ制御システムについて、複数の実施の形態に基づいて説明したが、これらの実施の形態は例であって、本発明はこれらの実施の形態に限定されるものではない。これらの実施の形態に対して当業者が思いつく変形を施して得られる形態、および、これらの実施の形態における構成要素を任意に組み合わせて実現される別の形態も本発明に含まれる。
【０２０１】
例えば、特定の機能部が実行する処理を別の機能部が実行してもよい。また、処理を実行する順番が変更されてもよいし、複数の処理が並行して実行されてもよい。
【０２０２】
また、図８Ａ〜図８Ｃ等に示されたコマンド列、および、図１２Ａ〜図１２Ｆ等に示されたマクロの記述方法は、例であって、処理されるコマンド列およびマクロは、このような記述方法に限られない。コマンド列およびマクロが、他の表現により記述され、プログラム化されていてもよい。
【０２０３】
また、本発明は、モータ制御システムとして実現できるだけでなく、他のモータ制御装置と協調して動作するモータ制御装置としても実現できる。また、モータ制御システムまたはモータ制御装置を構成する処理手段をステップとする方法として実現できる。そして、本発明は、それらの方法に含まれるステップをコンピュータとしてのモータ制御装置に実行させるプログラムとして実現できる。さらに、本発明は、そのプログラムを記録したＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体として実現できる。
【０２０４】
また、モータ制御装置または管理装置に含まれる複数の構成要素は、集積回路であるＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）として実現されてもよい。これらの構成要素は、個別に１チップ化されてもよいし、一部または全てを含むように１チップ化されてもよい。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、システムＬＳＩ、スーパーＬＳＩまたはウルトラＬＳＩと呼称されることもある。
【０２０５】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現してもよい。プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、または、ＬＳＩ内部の回路セルの接続および設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【０２０６】
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて、モータ制御装置または管理装置に含まれる構成要素の集積回路化を行ってもよい。
【産業上の利用可能性】
【０２０７】
本発明は、複数のモータを用いる製造装置、試験装置または移送装置などに適用することができ、製造業または流通業などの様々な産業分野において、有用である。
【符号の説明】
【０２０８】
１、９００  モータ制御システム
１０、２０、９９０  管理装置
１１、２１  コマンド列処理要求部
１２  要求先選択部
１００、２００、３００、９９１、９９２、９９３  モータ制御装置
１０１、１０２、１０３、２０１、２０２、２０３、３０１、３０２、３０３、９０１、９０２、９０３、９０４、９０５、９０６、９０７、９０８、９０９、Ｍ１、Ｍ２、Ｍ３、Ｍ４、Ｍ５、Ｍ６、Ｍ１１、Ｍ１２、Ｍ１３、Ｍ１４、Ｍ１５  モータ
１０４  照明装置
１０５  音響装置
１０６  電子機器
１１１、１１２、１１３、１１４、１１５、２１１、２１２、２１３、３１１、３１２、３１３、９１１、９１２、９１３、９１４、９１５、９１６、９１７、９１８、９１９  ドライバ
１１７  センサ
１２０、２２０、３２０、９８１、９８２、９８３  処理部
１２１、２２１、３２１  コマンド実行部
１２２、２２２、３２２  コマンド実行要求部
１２３  コマンド列処理部
１２４  コマンド列格納部
１３０、２３０、３３０  記憶部
１３１  コマンド列情報
１３２  状態情報
１３３  対応情報
１４４、１４５、１４６  電子機器制御部
５０１、５０２、５０３  コマンド列
ＭＣＲ１０１、ＭＣＲ２０１、ＭＣＲ２０２、ＭＣＲ３０１、ＭＣＲ３０２、ＭＣＲ３０３  マクロ
ＰＩ１、ＰＩ２  入力信号
ＰＯ１  出力信号
【図１】
0005782614.tif 000002
【図２】
0005782614.tif 000003
【図３】
0005782614.tif 000004
【図４】
0005782614.tif 000005
【図５】
0005782614.tif 000006
【図６】
0005782614.tif 000007
【図７】
0005782614.tif 000008
【図８Ａ】
0005782614.tif 000009
【図８Ｂ】
0005782614.tif 000010
【図８Ｃ】
0005782614.tif 000011
【図９】
0005782614.tif 000012
【図１０】
0005782614.tif 000013
【図１１】
0005782614.tif 000014
【図１２Ａ】
0005782614.tif 000015
【図１２Ｂ】
0005782614.tif 000016
【図１２Ｃ】
0005782614.tif 000017
【図１２Ｄ】
0005782614.tif 000018
【図１２Ｅ】
0005782614.tif 000019
【図１２Ｆ】
0005782614.tif 000020
【図１３】
0005782614.tif 000021
【図１４】
0005782614.tif 000022
【図１５】
0005782614.tif 000023
【図１６】
0005782614.tif 000024
【図１７】
0005782614.tif 000025