(57)【特許請求の範囲】
【請求項１】
外部機器からの制御指示に対応する処理を実行するモータ制御装置であって、
前記制御指示が入力される複数のインタフェースと、
前記制御指示に対応する処理を実行する制御部と、を備え、
前記制御部は、
前記複数のインタフェースの各々を介して前記制御指示を取得する取得部と、
前記取得部が取得した制御指示のうち、任意のタイミングで情報伝達を行なうサービスデータオブジェクトを使用した通信である非リアルタイム通信で取得した制御指示である制御コマンドに対応する処理を実行するコマンド処理部と、
前記取得部が一の前記インタフェースを介して取得した所定の制御コマンドに対応する処理を前記コマンド処理部が実行しているときに、前記取得部が他の前記インタフェースから他の制御コマンドを取得すると、前記コマンド処理部が前記他の制御コマンドに対応する処理を実行するのを制限する排他動作を行う排他制限部と、を含むことを特徴とするモータ制御装置。
【請求項２】
前記コマンド処理部が実行している処理に対応する前記所定の制御コマンドは、モータの駆動を制御する命令を含むことを特徴とする請求項１に記載のモータ制御装置。
【請求項３】
前記他の制御コマンドは、前記モータの駆動を制御する命令を含むことを特徴とする請求項２に記載のモータ制御装置。
【請求項４】
前記排他制限部は、前記コマンド処理部が実行している処理に対応する前記所定の制御コマンドと、前記他の制御コマンドと、の少なくとも一方が、モータの駆動を制御する命令を含んでいない場合には、前記排他動作を行わないことを特徴とする請求項１から３のいずれか１項に記載のモータ制御装置。
【請求項５】
前記複数のインタフェースは、
自装置とネットワークを介して通信可能に接続される前記外部機器である上位コントローラからの前記制御指示が入力される第１通信インタフェースと、
前記ネットワークに接続していない前記外部機器である外部装置からの前記制御指示が入力される第２通信インタフェースと、を含み、
前記取得部は、前記第１通信インタフェースおよび前記第２通信インタフェースの少なくとも一方を介した前記非リアルタイム通信で、前記制御指示を取得することを特徴とする請求項１から４のいずれか１項に記載のモータ制御装置。
【請求項６】
前記取得部は、前記第１通信インタフェースを介して取得した前記制御指示と、前記第２通信インタフェースを介して取得した前記制御指示と、を区別することを特徴とする請求項５に記載のモータ制御装置。
【請求項７】
前記コマンド処理部が実行している処理に対応する前記所定の制御コマンドは、前記排他制限部に前記排他動作を開始させる命令と、前記排他制限部に前記排他動作を終了させる命令とを含み、
前記排他制限部は、
前記取得部が前記所定の制御コマンドに含まれている前記排他動作を開始させる命令を取得すると、前記排他動作を開始し、
前記取得部が前記所定の制御コマンドに含まれている前記排他動作を終了させる命令を取得すると、前記排他動作を終了することを特徴とする請求項１から６のいずれか１項に記載のモータ制御装置。
【請求項８】
前記コマンド処理部が実行している処理に対応する前記所定の制御コマンドを前記取得部が取得してから所定時間が経過すると、前記排他制限部は前記排他動作を終了することを特徴とする請求項１から７のいずれか１項に記載のモータ制御装置。
【請求項９】
前記排他制限部は、前記コマンド処理部が前記所定の制御コマンドに対応する処理を実行しているときに、前記取得部が前記複数のインタフェースのうちの１つを介してサイクリック通信で取得した制御指示に対応する処理の実行を制限する排他動作を行うことを特徴とする請求項１から８のいずれか１項に記載のモータ制御装置。
【請求項１０】
前記排他制限部は、自装置がモータへの通電を行っていない状態で前記取得部が一の前記インタフェースを介して前記所定の制御コマンドを取得すると、その後に前記取得部が他の前記インタフェースから取得した前記他の制御コマンドに対応する処理を前記コマンド処理部が実行するのを制限する排他動作を行うことを特徴とする請求項１から９のいずれか１項に記載のモータ制御装置。
【請求項１１】
前記排他制限部は、モータの駆動が停止している状態で前記取得部が一の前記インタフェースを介して前記所定の制御コマンドを取得すると、その後に前記取得部が他の前記インタフェースから取得した前記他の制御コマンドに対応する処理を前記コマンド処理部が実行するのを制限する排他動作を行うことを特徴とする請求項１から１０のいずれか１項に記載のモータ制御装置。
【請求項１２】
前記排他制限部は、モータの駆動速度が所定値未満である状態で前記取得部が一の前記インタフェースを介して前記所定の制御コマンドを取得すると、その後に前記取得部が他の前記インタフェースから取得した前記他の制御コマンドに対応する処理を前記コマンド処理部が実行するのを制限する排他動作を行うことを特徴とする請求項１から１１のいずれか１項に記載のモータ制御装置。
【請求項１３】
前記排他制限部によって前記排他動作が行われると、前記排他動作が行われたことを示す情報、および、前記コマンド処理部が実行した処理に対応する制御指示の取得元に係る情報の少なくとも一方をユーザに通知する通知部をさらに備えることを特徴とする請求項１から１２のいずれか１項に記載のモータ制御装置。
【請求項１４】
外部機器からの制御指示に対応する処理を実行するモータ制御装置であって、前記制御指示が入力される複数のインタフェースを備えるモータ制御装置の制御方法であって、
前記複数のインタフェースの各々を介して前記制御指示を取得する取得ステップと、
前記取得ステップにて取得した制御指示のうち、任意のタイミングで情報伝達を行なうサービスデータオブジェクトを使用した通信である非リアルタイム通信で取得した制御指示である制御コマンドに対応する処理を実行するコマンド処理ステップと、
前記取得ステップにて一の前記インタフェースを介して取得した所定の制御コマンドに対応する処理を前記コマンド処理ステップにて実行しているときに、他の前記インタフェースから他の制御コマンドを取得すると、前記他の制御コマンドに対応する処理を実行するのを制限する排他動作を行う排他制限ステップと、を含むことを特徴とする制御方法。
【請求項１５】
請求項１から１３のいずれか１項に記載のモータ制御装置としてコンピュータを機能させるための情報処理プログラムであって、前記制御部としてコンピュータを機能させるための情報処理プログラム。
【請求項１６】
請求項１５に記載の情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーボモータなどのモータの駆動を制御する制御装置に関する。
【背景技術】
【０００２】
従来、非リアルタイム通信で取得した制御指示に対応する処理を実行可能なサーボドライバが知られている。また、そのようなサーボドライバと種々の外部装置とが通信を行う、サーボモータの制御システムが知られている。
【０００３】
例えば、下掲の特許文献１には、モータ制御機器と、当該モータ制御機器のモータ駆動状況の表示等を行うモータ制御機器用コンソールと、が通信を行う制御システムが開示されている。また、特許文献２には、サーボモータドライバと、ＰＬＣ（Programmable Logic Controller）サポート装置などの外部の情報処理装置が接続されたＰＬＣと、がネットワークを介して通信を行う制御システムが開示されている。すなわち、複数の通信インタフェースを備えるサーボドライバが知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−３１２８９４号公報（２００４年１１月４日公開）
【特許文献２】特開２０１５−１７６３１９号公報（２０１５年１０月５日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述のような従来技術は、サーボドライバが、複数の通信インタフェースの各々を介した非リアルタイム通信で、複数の制御コマンドを取得した場合、これら複数の制御コマンドが競合し、モータの駆動が不安定になり得るという問題がある。例えば、複数の制御コマンドがモータを駆動させる命令を含む場合、前記従来の技術では、モータを駆動させるこれらの命令同士が競合し、モータが不安定な挙動を示す可能性があった。また、例えば、一の制御コマンドに基づいてモータが駆動しているときに、他の制御コマンドに基づいてサーボドライバの制御パラメータの書き換えが行われた場合に、モータの挙動が不安定になる可能性があった。
【０００６】
本発明は、前記の問題点に鑑みてなされたものであり、その目的は、複数の制御コマンドを非リアルタイム通信で取得した場合であっても、モータの駆動が不安定になることのない、モータ制御装置等を実現することにある。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、本発明に係るモータ制御装置は、外部機器からの制御指示に対応する処理を実行するモータ制御装置であって、前記制御指示が入力される複数のインタフェースと、前記制御指示に対応する処理を実行する制御部と、を備え、前記制御部は、前記複数のインタフェースの各々を介して前記制御指示を取得する取得部と、前記取得部が取得した制御指示のうち、非リアルタイム通信で取得した制御指示である制御コマンドに対応する処理を実行するコマンド処理部と、前記取得部が一の前記インタフェースを介して取得した所定の制御コマンドに対応する処理を前記コマンド処理部が実行しているときに、前記取得部が他の前記インタフェースから他の制御コマンドを取得すると、前記コマンド処理部が前記他の制御コマンドに対応する処理を実行するのを制限する排他動作を行う排他制限部と、を含むことを特徴としている。
【０００８】
前記の構成によれば、前記排他制限部は、前記非リアルタイム通信で取得された前記所定の制御コマンドに対応する処理を前記コマンド処理部が実行しているときに、前記取得部が他の前記インタフェースから前記他の制御コマンドを取得すると、前記コマンド処理部が前記他の制御コマンドに対応する処理を実行するのを制限する排他動作を行う。
【０００９】
したがって、前記モータ制御装置は、複数の前記制御コマンドを、前記複数のインタフェースの各々を介して前記非リアルタイム通信により順次取得した場合であっても、モータを安定的に駆動させることができるという効果を奏する。例えば、前記モータ制御装置は、前記複数のインタフェースの各々を介して順次取得した複数の制御コマンドが競合した場合であっても、モータの挙動が不安定となることを防止できるという効果を奏する。
【００１０】
本発明に係るモータ制御装置について、前記コマンド処理部が実行している処理に対応する前記所定の制御コマンドは、モータの駆動を制御する命令を含んでいてもよい。
【００１１】
前記の構成によれば、前記排他制限部は、前記モータの駆動を制御する命令を含む前記所定の制御コマンドに対応する処理を前記コマンド処理部が実行しているときに、前記取得部が他の前記インタフェースから前記他の制御コマンドを取得すると、前記コマンド処理部が前記他の制御コマンドに対応する処理を実行するのを制限する排他動作を行う。
【００１２】
したがって、前記モータ制御装置は、前記モータの駆動を制御する命令を含む前記所定の制御コマンドに対応する処理を実行していると、他の前記インタフェースから取得した前記他の制御コマンドに対応する処理を実行するのを制限する排他動作を行うので、前記モータの挙動が不安定となることを防止することができるという効果を奏する。
【００１３】
本発明に係るモータ制御装置について、前記他の制御コマンドは、前記モータの駆動を制御する命令を含んでいてもよい。
【００１４】
前記の構成によれば、前記排他制限部は、前記非リアルタイム通信で取得された前記所定の制御コマンドに対応する処理を前記コマンド処理部が実行しているときに、前記モータの駆動を制御する命令を含む前記他の制御コマンドを前記取得部が他の前記インタフェースから取得すると、前記コマンド処理部が前記他の制御コマンドに対応する処理を実行するのを制限する排他動作を行う。
【００１５】
したがって、前記モータ制御装置は、前記所定の制御コマンドに対応する処理を実行している場合、前記モータの駆動を制御する命令を含む前記他の制御コマンドに対応する処理を実行するのを制限するので、モータの挙動が不安定となることを防止することができるという効果を奏する。
【００１６】
本発明に係るモータ制御装置について、前記排他制限部は、前記コマンド処理部が実行している処理に対応する前記所定の制御コマンドと、前記他の制御コマンドと、の少なくとも一方が、モータの駆動を制御する命令を含んでいない場合には、前記排他動作を行わなくともよい。
【００１７】
前記の構成によれば、前記排他制限部は、前記コマンド処理部が実行している処理に対応する前記所定の制御コマンドと、前記他の制御コマンドと、の少なくとも一方が、前記モータの駆動を制御する命令を含んでいない場合には、前記排他動作を行わない。
【００１８】
したがって、前記モータ制御装置は、前記モータを駆動させる処理を実行しつつ、駆動させている前記モータから取得する物理量データのデータ項目、および取得条件の設定などの、前記モータの駆動を制御する命令を含んでいない制御指示（制御コマンド）に対応する処理を実行することができるという効果を奏する。また、前記モータ制御装置は、駆動させる前記モータから取得する物理量データのデータ項目、および取得条件の設定などの、前記モータの駆動を制御する命令を含んでいない制御指示（制御コマンド）に対応する処理を実行しつつ、前記モータを駆動させる処理を実行することができるという効果を奏する。つまり、前記モータ制御装置は、例えば、多軸のパラメータについての調整を実行しつつ、単軸の試運転動作を実行することができるという効果を奏する。
【００１９】
本発明に係るモータ制御装置について、前記複数のインタフェースは、自装置とネットワークを介して通信可能に接続される前記外部機器である上位コントローラからの前記制御指示が入力される第１通信インタフェースと、前記ネットワークに接続していない前記外部機器である外部装置からの前記制御指示が入力される第２通信インタフェースと、を含み、前記取得部は、前記第１通信インタフェースおよび前記第２通信インタフェースの少なくとも一方を介した前記非リアルタイム通信で、前記制御指示を取得してもよい。
【００２０】
前記の構成によれば、前記モータ制御装置は、前記第１通信インタフェースおよび前記第２通信インタフェースの少なくとも一方を介した非リアルタイム通信で取得した制御指示（制御コマンド）に対応する処理を、モータの駆動を不安定にすることなく、実行することができるという効果を奏する。
【００２１】
本発明に係るモータ制御装置について、前記取得部は、前記第１通信インタフェースを介して取得した前記制御指示と、前記第２通信インタフェースを介して取得した前記制御指示と、を区別してもよい。
【００２２】
前記の構成によれば、前記モータ制御装置は、前記第１通信インタフェースを介して取得した前記制御指示（制御コマンド）と、前記第２通信インタフェースを介して取得した前記制御指示（制御コマンド）と、を区別することができるという効果を奏する。
【００２３】
本発明に係るモータ制御装置について、前記コマンド処理部が実行している処理に対応する前記所定の制御コマンドは、前記排他制限部に前記排他動作を開始させる命令と、前記排他制限部に前記排他動作を終了させる命令とを含み、前記排他制限部は、前記取得部が前記所定の制御コマンドに含まれている前記排他動作を開始させる命令を取得すると、前記排他動作を開始し、前記取得部が前記所定の制御コマンドに含まれている前記排他動作を終了させる命令を取得すると、前記排他動作を終了してもよい。
【００２４】
前記の構成によれば、前記排他制限部は、前記取得部が前記排他動作を開始させる命令を取得すると前記排他動作を開始し、前記取得部が前記排他動作を終了させる命令を取得すると前記排他動作を終了する。
【００２５】
したがって、前記モータ制御装置は、前記排他動作を開始させる命令を取得することにより開始した前記排他動作を、前記排他動作を終了させる命令を取得することにより、終了することができるという効果を奏する。
【００２６】
本発明に係るモータ制御装置について、前記コマンド処理部が実行している処理に対応する前記所定の制御コマンドを前記取得部が取得してから所定時間が経過すると、前記排他制限部は前記排他動作を終了してもよい。
【００２７】
前記の構成によれば、前記排他制限部は、前記コマンド処理部が実行している処理に対応する前記所定の制御コマンドを前記取得部が取得してから所定時間が経過すると、前記排他動作を終了する。
【００２８】
したがって、前記モータ制御装置は、実行中の処理に対応する前記所定の制御コマンドを取得してから所定時間が経過すると、前記排他動作を終了することができるという効果を奏する。
【００２９】
本発明に係るモータ制御装置について、前記排他制限部は、前記コマンド処理部が前記所定の制御コマンドに対応する処理を実行しているときに、前記取得部が前記複数のインタフェースのうちの１つを介してサイクリック通信で取得した制御指示に対応する処理の実行を制限する排他動作を行ってもよい。
【００３０】
前記の構成によれば、前記排他制限部は、前記非リアルタイム通信で取得した制御コマンドが実行されている間は、前記サイクリック通信で取得された制御指示に対応する処理の実行を制限する。
【００３１】
したがって、前記モータ制御装置は、前記非リアルタイム通信で取得した制御コマンドに対応する処理を実行している間に、前記サイクリック通信で前記制御指示を取得した場合であっても、前記モータを安定的に駆動させることができるという効果を奏する。
【００３２】
本発明に係るモータ制御装置について、前記排他制限部は、自装置がモータへの通電を行っていない状態で前記取得部が一の前記インタフェースを介して前記所定の制御コマンドを取得すると、その後に前記取得部が他の前記インタフェースから取得した前記他の制御コマンドに対応する処理を前記コマンド処理部が実行するのを制限する排他動作を行ってもよい。
【００３３】
前記の構成によれば、前記排他制限部は、自装置が前記モータへの通電を行っていない状態で前記取得部が一の前記インタフェースを介して前記所定の制御コマンドを取得すると、その後に前記取得部が他の前記インタフェースから取得した前記他の制御コマンドに対応する処理を前記コマンド処理部が実行するのを制限する排他動作を行う。
【００３４】
したがって、前記モータ制御装置は、自装置が前記モータへの通電を行っていない状態で一の前記インタフェースを介して前記所定の制御コマンドを取得すると、その後に他の前記インタフェースから取得した前記他の制御コマンドに対応する処理を実行するのを制限することができるという効果を奏する。つまり、前記モータ制御装置は、前記モータへの通電中（サーボＯＮ時）か否（サーボＯＦＦ時）かに応じて排他動作の実行要否を決定し、具体的には、前記モータへ通電していない（サーボＯＦＦ）ときに前記排他動作を行うことができるという効果を奏する。
【００３５】
ここで、モータ通電中（サーボＯＮ時）において前記モータは、実際に駆動している状態、または、実際に駆動する事前動作状態にあり、手で軸を動かしても回らない状態にある。したがって、「モータ通電中でない状態」、すなわち、前記モータが駆動していない（または、駆動される事前動作状態でない）状態（つまり、手で軸を動かすと回る状態）で、一の前記インタフェースから制御コマンドを取得したとき、他の前記インタフェースからの制御コマンドに対応する処理の実行を排他する排他動作を行うことができるという効果を奏する。
【００３６】
本発明に係るモータ制御装置について、前記排他制限部は、モータの駆動が停止している状態で前記取得部が一の前記インタフェースを介して前記所定の制御コマンドを取得すると、その後に前記取得部が他の前記インタフェースから取得した前記他の制御コマンドに対応する処理を前記コマンド処理部が実行するのを制限する排他動作を行ってもよい。
【００３７】
前記の構成によれば、前記排他制限部は、前記モータの駆動が停止している状態で前記取得部が一の前記インタフェースを介して前記所定の制御コマンドを取得すると、その後に前記取得部が他の前記インタフェースから取得した前記他の制御コマンドに対応する処理を前記コマンド処理部が実行するのを制限する排他動作を行う。
【００３８】
したがって、前記モータ制御装置は、前記モータの駆動が停止している状態で一の前記インタフェースを介して前記所定の制御コマンドを取得すると、その後に他の前記インタフェースから取得した前記他の制御コマンドに対応する処理を実行するのを制限することができるという効果を奏する。つまり、前記モータ制御装置は、モータ通電中であっても前記モータが停止中であるときには、一の前記インタフェースから取得した制御コマンドに対応する処理を実行しつつ、他の前記インタフェースから取得した前記他の制御コマンドに対応する処理については実行を制限することができるという効果を奏する。
【００３９】
本発明に係るモータ制御装置について、前記排他制限部は、モータの駆動速度が所定値未満である状態で前記取得部が一の前記インタフェースを介して前記所定の制御コマンドを取得すると、その後に前記取得部が他の前記インタフェースから取得した前記他の制御コマンドに対応する処理を前記コマンド処理部が実行するのを制限する排他動作を行ってもよい。
【００４０】
前記の構成によれば、前記排他制限部は、モータの駆動速度が所定値未満である状態で前記取得部が一の前記インタフェースを介して前記所定の制御コマンドを取得すると、その後に前記取得部が他の前記インタフェースから取得した前記他の制御コマンドに対応する処理を前記コマンド処理部が実行するのを制限する排他動作を行う。
【００４１】
したがって、前記モータ制御装置は、モータの駆動速度が所定値未満である状態で一の前記インタフェースを介して前記所定の制御コマンドを取得すると、その後に他の前記インタフェースから取得した前記他の制御コマンドに対応する処理を実行するのを制限することができるという効果を奏する。
【００４２】
本発明に係るモータ制御装置について、前記排他制限部によって前記排他動作が行われると、前記排他動作が行われたことを示す情報、および、前記コマンド処理部が実行した処理に対応する制御指示の取得元に係る情報の少なくとも一方をユーザに通知する通知部をさらに備えていてもよい。
【００４３】
前記の構成によれば、前記通知部は、前記排他制限部によって前記排他動作が行われると、前記排他動作が行われたことを示す情報、および、前記コマンド処理部が実行した処理に対応する制御指示の取得元に係る情報の少なくとも一方をユーザに通知する。
【００４４】
したがって、前記モータ制御装置は、前記排他動作を行うと、前記排他動作を行ったことを示す情報、および、実行した処理に対応する制御指示の取得元に係る情報の少なくとも一方をユーザに通知することができるという効果を奏する。
【００４５】
上記課題を解決するために、本発明に係る制御方法は、外部機器からの制御指示に対応する処理を実行するモータ制御装置であって、前記制御指示が入力される複数のインタフェースを備えるモータ制御装置の制御方法であって、前記複数のインタフェースの各々を介して前記制御指示を取得する取得ステップと、前記取得ステップにて取得した制御指示のうち、非リアルタイム通信で取得した制御指示である制御コマンドに対応する処理を実行するコマンド処理ステップと、前記取得ステップにて一の前記インタフェースを介して取得した所定の制御コマンドに対応する処理を前記コマンド処理ステップにて実行しているときに、他の前記インタフェースから他の制御コマンドを取得すると、前記他の制御コマンドに対応する処理を実行するのを制限する排他動作を行う排他制限ステップと、を含んでいる。
【００４６】
前記の方法によれば、前記排他制限ステップは、前記非リアルタイム通信で取得された前記所定の制御コマンドに対応する処理を前記コマンド処理ステップにて実行しているときに、前記取得ステップにて他の前記インタフェースから前記他の制御コマンドを取得すると、前記コマンド処理ステップにて前記他の制御コマンドに対応する処理を実行するのを制限する排他動作を行う。
【００４７】
したがって、前記制御方法は、複数の前記制御コマンドを、前記複数のインタフェースの各々を介して前記非リアルタイム通信により順次取得した場合であっても、モータを安定的に駆動させることができるという効果を奏する。例えば、前記制御方法は、前記複数のインタフェースの各々を介して順次取得した複数の制御コマンドが競合した場合であっても、モータの挙動が不安定となることを防止できるという効果を奏する。
【発明の効果】
【００４８】
本発明は、モータを駆動させる複数の制御指示を非リアルタイム通信で取得した場合であっても、モータの駆動が不安定になることがないという効果を奏する。
【図面の簡単な説明】
【００４９】
【図１】本発明の実施形態１に係るサーボドライバの要部構成を示すブロック図である。
【図２】本実施形態に係る制御システムの全体概要を示す図である。
【図３】図１のサーボドライバの取得するコマンドの階層構造等を説明する図である。
【図４】図１のサーボドライバの実行する排他制御処理の概要を説明するための図である。
【図５】図１のサーボドライバの実行する排他制御処理の一例を示すシーケンス図である。
【図６】図１のサーボドライバによって実行された排他制御処理の実行結果をユーザに通知する情報の一例を示す図である。
【図７】図１のサーボドライバとして利用可能なコンピュータの要部構成を例示したブロック図である。
【発明を実施するための形態】
【００５０】
〔実施形態１〕
以下、本発明の実施形態１について、図１から図７に基づいて詳細に説明する。図中同一または相当部分には同一符号を付してその説明は繰返さない。本発明の一態様に係るサーボドライバ１０（モータ制御装置）についての理解を容易にするため、先ず、サーボドライバ１０を含む制御システム１の概要を、図２を用いて説明する。なお、本発明の一態様に係るモータ制御装置がサーボドライバである例を以下では説明するが、本発明の一態様に係るモータ制御装置がサーボドライバであることは必須ではない。本発明の一態様に係るモータ制御装置としてインバータを使用しても、本発明を適用することができる。
【００５１】
（実施形態１の制御システムの概要）
図２は、サーボドライバ１０を含む制御システム１の概要を示す図である。図２に示すように、制御システム１は、サーボドライバ１０と、モータ２０と、第１サポートツール５０と、ＰＬＣ（プログラマブル・ロジック・コントローラ、Programmable Logic Controller）６０と、第２サポートツール７０と、を含んでいる。
【００５２】
制御システム１において、サーボドライバ１０とモータ２０とは専用ケーブルによって接続される。また、第１サポートツール５０は、例えばＵＳＢ（Universal Serial Bus）ケーブルである通信ケーブル３０を介して、サーボドライバ１０に接続される。さらに、ＰＬＣ６０はフィールドネットワーク４０を介してサーボドライバ１０に接続される。第２サポートツール７０は、例えばＵＳＢケーブルである通信ケーブル８０を介してＰＬＣ６０に接続される。
【００５３】
ＰＬＣ６０は、モータ２０などの制御機器を制御するためのユーザプログラムを実行するプログラマブルコントローラである。ＰＬＣ６０は、制御システム１において、フィールドネットワーク４０を介したデータ伝送を管理しているという意味で「マスタ装置」と呼ばれ、一方、サーボドライバ１０（および、Ｉ／Ｏスレーブ９０）は「スレーブ装置」と呼ばれる。すなわち、制御システム１は、マスタ装置としてのＰＬＣ６０と、マスタ装置にネットワーク（フィールドネットワーク４０）を介して接続される１つ以上のスレーブ装置としてのサーボドライバ１０（および、Ｉ／Ｏスレーブ９０）とを含むマスタースレーブ制御システムである。フィールドネットワーク４０としては、後述のように、例えば、ＥｔｈｅｒＣＡＴ（登録商標）を使用することができる。
【００５４】
マスタ装置であるＰＬＣ６０は、フィールドネットワーク４０を介して、サーボドライバ１０との間で、リアルタイム通信および非リアルタイム通信を行なうことができる。フィールドネットワーク４０として特に、ＥｔｈｅｒＣＡＴ（登録商標）を用いる場合には、リアルタイム通信はプロセスデータ通信（サイクリック通信）を指し、非リアルタイム通信はメッセージ通信を指す。「プロセスデータ通信」とは、定周期でリアルタイムの情報交換を行なうプロセスデータオブジェクト（ＰＤＯ、process data objects）を使用した通信である。「メッセージ通信」とは、任意のタイミングで情報伝達を行なうサービスデータオブジェクト（ＳＤＯ、Service Data Objects）を使用した通信である。なお、以下の説明においては、「プロセスデータ通信（サイクリック通信）」は「ＰＤＯ通信」と略記することがある。また、「メッセージ通信」は「ＳＤＯ通信」と略記することがある。ＰＤＯ通信がリアルタイム通信（サイクリック通信）であるのに対し、ＳＤＯ通信は非リアルタイム通信である。
【００５５】
詳細は後述するが、ＰＬＣ６０は、フィールドネットワーク４０を介してサーボドライバ１０へ、ＰＬＣ６０によるユーザプログラムの実行結果としての制御指示をリアルタイム通信（サイクリック通信）であるＰＤＯ通信で送信する。また、ＰＬＣ６０は、フィールドネットワーク４０を介してサーボドライバ１０へ、通信ケーブル８０を介してＰＬＣ６０に接続されている第２サポートツール７０が受け付けたユーザ操作に対応する制御コマンド（制御指示）を、非リアルタイム通信であるＳＤＯ通信で送信する。
【００５６】
第２サポートツール７０は、制御システム１に対して各種のパラメータを設定するための情報処理装置である。第２サポートツール７０は、通信ケーブル８０を介してＰＬＣ６０に接続されており、ＰＬＣ６０およびフィールドネットワーク４０を介して、サーボドライバ１０に記憶される制御パラメータを設定および調整する。また、第２サポートツール７０は、モータ２０の駆動等を制御しようとするユーザ操作を受け付ける。第２サポートツール７０が設定・調整しようとする制御パラメータ、および、第２サポートツール７０の受け付けたユーザ操作に対応する制御コマンド（制御指示）は、フィールドネットワーク４０を介して、ＰＬＣ６０によって、非リアルタイム通信であるＳＤＯ通信でサーボドライバ１０へ送信される。
【００５７】
第２サポートツール７０は、典型的には、汎用のコンピュータで構成される。例えば、第２サポートツール７０で実行される情報処理プログラムは、図示しないＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）に格納されて流通してもよい。このＣＤ−ＲＯＭに格納されたプログラムは、図示しないＣＤ−ＲＯＭ駆動装置によって読取られ、第２サポートツール７０のハードディスクなどへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。なお、メンテナンス性の観点からは、第２サポートツール７０として利用するコンピュータは、可搬性に優れたノート型のパーソナルコンピュータが好ましい。
【００５８】
フィールドネットワーク４０は、サーボドライバ１０とＰＬＣ６０との間で送受信される各種データを伝送する。すなわち、フィールドネットワーク４０は、ＰＬＣ６０が受信し、またはＰＬＣ６０が送信する各種データを伝送する。フィールドネットワーク４０としては、典型的には、各種の産業用イーサネット（登録商標）を用いることができる。産業用イーサネット（登録商標）としては、たとえば、ＥｔｈｅｒＣＡＴ（登録商標）、Ｐｒｏｆｉｎｅｔ  ＩＲＴ、ＭＥＣＨＡＴＲＯＬＩＮＫ（登録商標）−ＩＩＩ、Ｐｏｗｅｒｌｉｎｋ、ＳＥＲＣＯＳ（登録商標）−ＩＩＩ、ＣＩＰ  Ｍｏｔｉｏｎなどが知られており、これらのうちのいずれを採用してもよい。さらに、産業用イーサネット（登録商標）以外のフィールドネットワークを用いてもよい。たとえば、モーション制御を行わない場合であれば、ＤｅｖｉｃｅＮｅｔ、ＣｏｍｐｏＮｅｔ／ＩＰ（登録商標）などを用いてもよい。本実施の形態に係る制御システム１では、典型的に、産業用イーサネット（登録商標）であるＥｔｈｅｒＣＡＴ（登録商標）をフィールドネットワーク４０として採用する場合の構成について例示する。なお、以下の説明においては、フィールドネットワーク４０を、下位の通信ネットワークである通信ケーブル３０を介した通信と対比させるために、「上位バス（上位通信ネットワーク）」と呼ぶことがある。
【００５９】
なお、図２に示すように、サーボドライバ１０とＰＬＣ６０とを接続するフィールドネットワーク４０には、Ｉ／Ｏスレーブ９０が配置されていてもよい。ただし、制御システム１において、Ｉ／Ｏスレーブ９０は必須ではない。
【００６０】
ＰＬＣ６０によるユーザプログラムの実行結果としての制御指示は、フィールドネットワーク４０を介して、リアルタイム通信であるＰＤＯ通信でサーボドライバ１０へ伝送される。第２サポートツール７０の受け付けたユーザ操作に対応する制御コマンド（制御指示）は、（ＰＬＣ６０によって）フィールドネットワーク４０を介して、非リアルタイム通信であるＳＤＯ通信でサーボドライバ１０へ伝送される。すなわち、サーボドライバ１０は、フィールドネットワーク４０を介して、ＰＬＣ６０によるユーザプログラムの実行結果としての制御指示を、リアルタイム通信であるＰＤＯ通信で受信する。また、サーボドライバ１０は、フィールドネットワーク４０を介して、第２サポートツール７０の受け付けたユーザ操作に対応する制御コマンド（制御指示）を、非リアルタイム通信であるＳＤＯ通信で受信する。
【００６１】
サーボドライバ１０は、モータ２０の制御装置である。サーボドライバ１０は、ＰＬＣ６０からの制御指示（すなわち、ＰＬＣ６０によるユーザプログラムの実行結果としての制御指示）を、フィールドネットワーク４０を介して、リアルタイム通信であるＰＤＯ通信でＰＬＣ６０から受信する。そして、サーボドライバ１０は、フィールドネットワーク４０を介してＰＤＯ通信で受信したＰＬＣ６０からの制御指示に従ってモータ２０を駆動することができる。例えば、サーボドライバ１０は、ＰＬＣ６０から一定周期で、位置指令値、速度指令値、トルク指令値といった指令値を受ける。また、サーボドライバ１０は、モータ２０の軸に接続されている位置センサ（ロータリーエンコーダ）およびトルクセンサといった検出器から、位置、速度（典型的には、今回位置と前回位置との差から算出される）、トルクといったモータ２０の動作に係る実測値を取得する。そして、サーボドライバ１０は、ＰＬＣ６０からの制御指示を目標値に設定し、実測値をフィードバック値として、フィードバック制御を行なう。すなわち、サーボドライバ１０は、実測値が目標値に近づくようにモータ２０を駆動するための電流を調整する。なお、サーボドライバ１０は、サーボモータアンプと称されることもある。
【００６２】
サーボドライバ１０は、また、フィールドネットワーク４０を介して、第２サポートツール７０の受け付けたユーザ操作に対応する制御コマンド（制御指示）を、非リアルタイム通信であるＳＤＯ通信でＰＬＣ６０から受信する。そして、サーボドライバ１０は、フィールドネットワーク４０を介してＳＤＯ通信で受信した、第２サポートツール７０の受け付けたユーザ操作に対応する制御コマンド（制御指示）に従ってモータ２０を駆動することができる。
【００６３】
すなわち、サーボドライバ１０は、例えばＥｔｈｅｒＣＡＴであるフィールドネットワーク４０を介してＰＬＣ６０と通信する。サーボドライバ１０は、非リアルタイム通信であるＳＤＯ通信を利用して、第２サポートツール７０の受け付けたユーザ操作に対応する制御コマンド（制御指示）をＰＬＣ６０から受信し、また、ＰＬＣ６０から要求されたデータを、ＰＬＣ６０に送信する。そして、サーボドライバ１０は、リアルタイム通信であるＰＤＯ通信を利用して、データをＰＬＣ６０に所定の周期的に送信する。
【００６４】
サーボドライバ１０は、さらに、通信ケーブル３０を介して、第１サポートツール５０の受け付けたユーザ操作に対応する制御コマンド（制御指示）を、非リアルタイム通信で第１サポートツール５０から受信する。そして、サーボドライバ１０は、通信ケーブル３０を介して非リアルタイム通信で受信した、第１サポートツール５０の受け付けたユーザ操作に対応する制御コマンド（制御指示）に従ってモータ２０を駆動することができる。
【００６５】
第１サポートツール５０は、制御システム１に対して各種のパラメータを設定するための情報処理装置である。第１サポートツール５０は、通信ケーブル３０によってサーボドライバ１０と接続されており、サーボドライバ１０に記憶される制御パラメータを設定および調整する。また、第１サポートツール５０は、モータ２０の駆動等を制御しようとするユーザ操作を受け付ける。第１サポートツール５０は、設定・調整しようとする制御パラメータ、および、第１サポートツール５０の受け付けたユーザ操作に対応する制御コマンド（制御指示）を、通信ケーブル３０を介して、非リアルタイム通信でサーボドライバ１０に出力する。サーボドライバ１０は、第１サポートツール５０によって設定および調整された制御パラメータを記憶するとともに、その制御パラメータに従ってモータ２０を駆動する。サーボドライバ１０は、また、第１サポートツール５０の受け付けたユーザ操作に対応する制御コマンド（制御指示）に従ってモータ２０を駆動することができる。
【００６６】
第１サポートツール５０は、第２サポートツール７０と同様に、典型的には、汎用のコンピュータで構成される。例えば、第１サポートツール５０で実行される情報処理プログラムは、図示しないＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）に格納されて流通してもよい。このＣＤ−ＲＯＭに格納されたプログラムは、図示しないＣＤ−ＲＯＭ駆動装置によって読取られ、第１サポートツール５０のハードディスクなどへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。なお、メンテナンス性の観点からは、第１サポートツール５０として利用するコンピュータは、可搬性に優れたノート型のパーソナルコンピュータが好ましい。
【００６７】
なお、以下では、サーボドライバ１０が、フィールドネットワーク４０を介してリアルタイム通信（ＰＤＯ通信）でＰＬＣ６０から取得する制御指示（つまり、ＰＬＣ６０によるユーザプログラムの実行結果としての制御指示）を、「（Ａ）リアルタイム通信での制御指示」と呼ぶことがある。また、サーボドライバ１０が、フィールドネットワーク４０を介して、非リアルタイム通信（ＳＤＯ通信）でＰＬＣ６０から取得する制御指示（つまり、第２サポートツール７０の受け付けたユーザ操作に対応する制御指示）を、「（Ｂ）上位通信ポート経由での制御コマンド（制御指示）」と呼ぶことがある。さらに、サーボドライバ１０が、通信ケーブル３０を介して、非リアルタイム通信で第１サポートツール５０から取得する制御指示（つまり、第１サポートツール５０の受け付けたユーザ操作に対応する制御指示）を、「（Ｃ）ツールポート経由での制御コマンド（制御指示）」と呼ぶことがある。
【００６８】
以上に説明したように、制御システム１において、サーボドライバ１０は、以下の３つの経路のそれぞれから取得する制御指示（制御コマンド）に基づいて、モータ２０の駆動を制御することができる。
【００６９】
第１に、サーボドライバ１０は、ＰＬＣ６０によるユーザプログラムの実行結果としての制御指示を、フィールドネットワーク４０を介して、リアルタイム通信であるＰＤＯ通信でＰＬＣ６０から受信し、前記制御指示に基づいて、モータ２０の駆動を制御することができる。すなわち、サーボドライバ１０は、（Ａ）リアルタイム通信での制御指示に基づいて、モータ２０の駆動を制御することができる。
【００７０】
第２に、サーボドライバ１０は、第２サポートツール７０の受け付けたユーザ操作に対応する制御コマンド（制御指示）を、フィールドネットワーク４０を介して、非リアルタイム通信であるＳＤＯ通信でＰＬＣ６０から受信し、前記制御コマンドに基づいて、モータ２０の駆動を制御することができる。すなわち、サーボドライバ１０は、（Ｂ）上位通信ポート経由での制御コマンド（制御指示）に基づいて、モータ２０の駆動を制御することができる。
【００７１】
第３に、サーボドライバ１０は、第１サポートツール５０の受け付けたユーザ操作に対応する制御コマンド（制御指示）を、通信ケーブル３０を介して、非リアルタイム通信で第１サポートツール５０から受信し、前記制御コマンドに基づいて、モータ２０の駆動を制御することができる。すなわち、サーボドライバ１０は、（Ｃ）ツールポート経由での制御コマンド（制御指示）に基づいて、モータ２０の駆動を制御することができる。
【００７２】
制御システム１において、サーボドライバ１０のパラメータを調整しようとする場合、ユーザは、第１サポートツール５０を用いてパラメータを調整することができ、また、第２サポートツール７０を用いてパラメータを調整することができる。同様に、ユーザは、モータ２０を駆動させる処理に対応する制御コマンドを、第１サポートツール５０を用いてサーボドライバ１０に指示し、また、第２サポートツール７０を用いてサーボドライバ１０に指示することができる。
【００７３】
サーボドライバ１０は、モータ２０の駆動を制御する命令（例えば、モータ２０を駆動させる命令）を含む制御コマンドを、第１サポートツール５０および第２サポートツール７０から非リアルタイム通信で受信すると、モータ２０が予期せぬ動作をすることが無いよう、順次受信した複数の制御コマンド間で排他制御を行う。
【００７４】
なお、モータ２０の駆動を制御する命令を含む制御コマンドとしては、例えば、「試運転」制御コマンド、「ＦＦＴ（周波数特性計測）」制御コマンド、「汎用出力の確認（出力ＯＮ／ＯＦＦ機能）」制御コマンドを挙げることができる。「出力ＯＮ／ＯＦＦ機能」としては、例えば、「ブレーキのＯＮ／ＯＦＦ」を挙げることができる。
【００７５】
制御システム１において、排他制御を行うことが必要な「モータ２０の駆動を制御する命令を含む制御コマンド」は、「アクセス権が必要な制御コマンド（機能）」とすることにより、排他制御を行うことが不要な「モータ２０の駆動を制御する命令を含まない制御コマンド」と区別される。詳細は後述する。
【００７６】
（サーボドライバについて）
これまで、制御システム１、および制御システム１に含まれる装置（サーボドライバ１０、モータ２０、第１サポートツール５０、ＰＬＣ６０、および、第２サポートツール７０）の概要について、図２を用いて説明を行ってきた。次に、制御システム１に含まれるサーボドライバ１０について、その構成および処理の内容等を、図１等を用いて説明していく。図１を参照してサーボドライバ１０の詳細について説明する前に、サーボドライバ１０についての理解を容易にするため、サーボドライバ１０の概要について以下のように整理しておく。
【００７７】
（サーボドライバの概要）
サーボドライバ１０は、外部機器（第１サポートツール５０、ＰＬＣ６０、および、第２サポートツール７０）からの制御指示に対応する処理を実行するモータ制御装置であって、前記制御指示が入力される複数のインタフェース（上位通信部１１０およびツール通信部１２０）と、前記制御指示に対応する処理を実行する制御部１００と、を備え、制御部１００は、前記複数のインタフェースの各々を介して前記制御指示を取得する取得部１０１と、取得部１０１が取得した制御指示のうち、非リアルタイム通信で取得した制御指示である制御コマンドに対応する処理を実行するモータ制御部１０４（コマンド処理部）と、取得部１０１が一の前記インタフェース（上位通信部１１０またはツール通信部１２０）を介して取得した所定の制御コマンドに対応する処理をモータ制御部１０４が実行しているときに、取得部１０１が他の前記インタフェース（ツール通信部１２０または上位通信部１１０）から他の制御コマンドを取得すると、モータ制御部１０４が前記他の制御コマンドに対応する処理を実行するのを制限する排他動作を行うアクセス権制御部１０２（排他制限部）と、を含んでいる。
【００７８】
前記の構成によれば、アクセス権制御部１０２は、一の前記インタフェース（上位通信部１１０またはツール通信部１２０）から前記非リアルタイム通信で取得された前記所定の制御コマンドに対応する処理をモータ制御部１０４が実行しているときに、取得部１０１が他の前記インタフェース（ツール通信部１２０または上位通信部１１０）から前記他の制御コマンドを取得すると、モータ制御部１０４が前記他の制御コマンドに対応する処理を実行するのを制限する排他動作を行う。
【００７９】
具体的には、アクセス権制御部１０２は、上位通信部１１０から前記非リアルタイム通信で取得された前記所定の制御コマンドに対応する処理をモータ制御部１０４が実行しているときに、取得部１０１がツール通信部１２０から前記他の制御コマンドを取得すると、モータ制御部１０４が前記他の制御コマンドに対応する処理を実行するのを制限する排他動作を行う。
【００８０】
また、アクセス権制御部１０２は、ツール通信部１２０から前記非リアルタイム通信で取得された前記所定の制御コマンドに対応する処理をモータ制御部１０４が実行しているときに、取得部１０１が上位通信部１１０から前記他の制御コマンドを取得すると、モータ制御部１０４が前記他の制御コマンドに対応する処理を実行するのを制限する排他動作を行う。
【００８１】
したがって、サーボドライバ１０は、複数の前記制御コマンドを、前記複数のインタフェース（上位通信部１１０およびツール通信部１２０）の各々を介して前記非リアルタイム通信により順次取得した場合であっても、モータ２０を安定的に駆動させることができるという効果を奏する。例えば、サーボドライバ１０は、前記複数のインタフェースの各々を介して順次取得した複数の制御コマンドが競合した場合であっても、モータ２０の挙動が不安定となることを防止できるという効果を奏する。
【００８２】
サーボドライバ１０において、前記複数のインタフェースは、自装置とフィールドネットワーク４０（ネットワーク）を介して通信可能に接続される前記外部機器であるＰＬＣ６０（上位コントローラ）からの前記制御指示が入力される上位通信部１１０（第１通信インタフェース）と、フィールドネットワーク４０に接続していない前記外部機器である第１サポートツール５０（外部装置）からの前記制御指示が入力されるツール通信部１２０（第２通信インタフェース）と、を含み、取得部１０１は、上位通信部１１０およびツール通信部１２０の少なくとも一方を介した前記非リアルタイム通信で、前記制御指示を取得する。
【００８３】
前記の構成によれば、サーボドライバ１０は、上位通信部１１０およびツール通信部１２０の少なくとも一方を介した非リアルタイム通信で取得した制御指示（制御コマンド）に対応する処理を、モータ２０の駆動を不安定にすることなく、実行することができるという効果を奏する。
【００８４】
サーボドライバ１０において、取得部１０１は、上位通信部１１０を介して取得した前記制御指示と、ツール通信部１２０を介して取得した前記制御指示と、を区別する。
【００８５】
前記の構成によれば、サーボドライバ１０は、上位通信部１１０を介して取得した前記制御指示（制御コマンド）と、ツール通信部１２０を介して取得した前記制御指示（制御コマンド）と、を区別することができるという効果を奏する。
【００８６】
サーボドライバ１０において、アクセス権制御部１０２は、モータ制御部１０４が前記所定の制御コマンドに対応する処理を実行しているときに、取得部１０１が上位通信部１１０を介してサイクリック通信（ＰＤＯ通信）で取得した制御指示に対応する処理の実行を制限する排他動作を行う。
【００８７】
前記の構成によれば、アクセス権制御部１０２は、前記非リアルタイム通信で取得した制御コマンドが実行されている間は、上位通信部１１０を介して前記サイクリック通信（ＰＤＯ通信）で取得された制御指示に対応する処理の実行を制限する。具体的には、アクセス権制御部１０２は、前記非リアルタイム通信で取得した制御コマンドが実行されている間は、ＰＬＣ６０（フィールドネットワーク４０）から上位通信部１１０を介して前記サイクリック通信（ＰＤＯ通信）で取得された制御指示に対応する処理の実行を制限する。
【００８８】
したがって、サーボドライバ１０は、前記非リアルタイム通信で取得した制御コマンドに対応する処理を実行している間に、前記サイクリック通信（ＰＤＯ通信）で前記制御指示を取得した場合であっても、モータ２０を安定的に駆動させることができるという効果を奏する。
【００８９】
（サーボドライバの詳細）
以上に概要を説明したサーボドライバ１０について、次に、サーボドライバ１０の構成の詳細を、図１を用いて説明する。
【００９０】
図１は、サーボドライバ１０の要部構成を示すブロック図である。図１に示すサーボドライバ１０は、制御部１００と、上位通信部１１０と、ツール通信部１２０と、を含む構成である。なお、記載の簡潔性を担保するため、本実施の形態に直接関係のない構成は、説明およびブロック図から省略している。ただし、実施の実情に則して、サーボドライバ１０は、当該省略された構成を備えてもよい。
【００９１】
上位通信部１１０は、フィールドネットワーク４０を介してＰＬＣ６０との通信を行う。上位通信部１１０は、フィールドネットワーク４０を介してＰＬＣ６０と、リアルタイム通信であるＰＤＯ通信、および、非リアルタイム通信であるＳＤＯ通信を行う。上位通信部１１０は、フィールドネットワーク４０を介して、ＰＬＣ６０から、サーボドライバ１０によるモータ２０の制御のための制御指示を受信する。
【００９２】
上位通信部１１０は、フィールドネットワーク４０を介して、ＰＬＣ６０から、ＰＬＣ６０によるユーザプログラムの実行結果としての制御指示を、ＰＤＯ通信で受信する。つまり、上位通信部１１０は、フィールドネットワーク４０を介して、ＰＬＣ６０から、（Ａ）リアルタイム通信での制御指示を受信する。
【００９３】
上位通信部１１０は、また、フィールドネットワーク４０を介して、ＰＬＣ６０から、ＰＬＣ６０に接続された第２サポートツール７０の受け付けたユーザ操作に対応する制御指示を、非リアルタイム通信であるＳＤＯ通信で受信する。つまり、上位通信部１１０は、フィールドネットワーク４０を介して、ＰＬＣ６０から、（Ｂ）上位通信ポート経由での制御コマンド（制御指示）を受信する。
【００９４】
上位通信部１１０は、フィールドネットワーク４０を介してＰＬＣ６０から受信した制御指示を取得部１０１に出力する。すなわち、上位通信部１１０は、フィールドネットワーク４０を介してＰＬＣ６０から受信した、（Ａ）リアルタイム通信での制御指示および（Ｂ）上位通信ポート経由での制御コマンド（制御指示）を、取得部１０１に出力する。
【００９５】
ツール通信部１２０は、通信ケーブル３０を介して第１サポートツール５０との通信を行う。通信ケーブル３０を介した、ツール通信部１２０と第１サポートツール５０との通信は非リアルタイム通信である。ツール通信部１２０は、通信ケーブル３０を介して、第１サポートツール５０から、第１サポートツール５０の受け付けたユーザ操作に対応する制御指示を、非リアルタイム通信で受信する。つまり、ツール通信部１２０は、通信ケーブル３０を介して、第１サポートツール５０から、（Ｃ）ツールポート経由での制御コマンド（制御指示）を受信する。ツール通信部１２０は、通信ケーブル３０を介して第１サポートツール５０から受信した（Ｃ）ツールポート経由での制御コマンド（制御指示）を、取得部１０１に出力する。
【００９６】
制御部１００はサーボドライバ１０の機能を統括して制御するものである。図示の制御部１００には、機能ブロックとして、取得部１０１と、アクセス権制御部１０２と、試運転指令部１０３と、モータ制御部１０４と、通知部１０５と、が含まれている。
【００９７】
取得部１０１は、（Ａ）リアルタイム通信での制御指示、および（Ｂ）上位通信ポート経由での制御コマンド（制御指示）を上位通信部１１０から、（Ｃ）ツールポート経由での制御コマンド（制御指示）をツール通信部１２０から、取得する。すなわち、取得部１０１は、「（Ａ）リアルタイム通信での制御指示」、「（Ｂ）上位通信ポート経由での制御コマンド（制御指示）」、および「（Ｃ）ツールポート経由での制御コマンド（制御指示）」を取得する。
【００９８】
取得部１０１は、上位通信部１１０から取得した（Ａ）リアルタイム通信での制御指示、上位通信部１１０から取得した（Ｂ）上位通信ポート経由での制御コマンド（制御指示）、および、ツール通信部１２０から取得した（Ｃ）ツールポート経由での制御コマンド（制御指示）を、アクセス権制御部１０２に出力する。
【００９９】
ここで、取得部１０１は、取得した制御指示（制御コマンド）の取得元を区別することができ、つまり、上位通信部１１０とツール通信部１２０とを区別することができる。なお、前述の通り、上位通信部１１０がＰＤＯ通信（リアルタイム通信）で受信する制御指示は、（Ａ）リアルタイム通信での制御指示である。上位通信部１１０がＳＤＯ通信（非リアルタイム通信）で受信する制御指示（制御コマンド）は、（Ｂ）上位通信ポート経由での制御コマンド（制御指示）である。ツール通信部１２０が非リアルタイム通信で受信する制御指示（制御コマンド）は、（Ｃ）ツールポート経由での制御コマンド（制御指示）である。
【０１００】
アクセス権制御部１０２は、複数の制御コマンド（制御指示）を順次、取得部１０１が取得した場合に、前記複数の制御コマンド（制御指示）の各々の実行について、排他動作を実行する。すなわち、取得部１０１が、（Ａ）リアルタイム通信での制御指示、（Ｂ）上位通信ポート経由での制御コマンド（制御指示）、および（Ｃ）ツールポート経由での制御コマンド（制御指示）を、次々に取得した場合に、その実行について、アクセス権制御部１０２は排他動作を実行する。
【０１０１】
例えば、取得部１０１が取得した（Ｂ）上位通信ポート経由での制御コマンド（制御指示）に対応する処理をモータ制御部１０４が実行している間に、取得部１０１が（Ｃ）ツールポート経由での制御コマンド（制御指示）を取得した場合、アクセス権制御部１０２は、（Ｃ）ツールポート経由での制御コマンド（制御指示）に対応する処理をモータ制御部１０４が実行するのを制限する排他動作を行う。
【０１０２】
ここで、特に、アクセス権制御部１０２は、所定の制御コマンドを排他し、所定の制御コマンド以外の制御コマンドは排他しない。アクセス権制御部１０２は、例えば、モータ２０を駆動させる命令を含む制御コマンドを排他し、モータ２０を駆動させる命令を含んでいない制御コマンドは排他しない。
【０１０３】
具体的には、アクセス権制御部１０２は、（Ｂ）上位通信ポート経由での制御コマンド（制御指示）と、（Ｃ）ツールポート経由での制御コマンド（制御指示）とが共に、モータ２０の駆動を制御する命令を含んでいる場合に、（Ｃ）ツールポート経由での制御コマンド（制御指示）に対応する処理をモータ制御部１０４が実行するのを制限する排他動作を行う。
【０１０４】
すなわち、（Ｂ）上位通信ポート経由での制御コマンド（制御指示）と、（Ｃ）ツールポート経由での制御コマンド（制御指示）との少なくとも一方が、モータ２０の駆動を制御する命令を含んでいない場合、アクセス権制御部１０２は、（Ｃ）ツールポート経由での制御コマンド（制御指示）に対応する処理をモータ制御部１０４が実行するのを制限しない（排他動作を行わない）。したがって、取得部１０１が取得した（Ｂ）上位通信ポート経由での制御コマンド（制御指示）に対応する処理をモータ制御部１０４が実行している間に、取得部１０１が（Ｃ）ツールポート経由での制御コマンド（制御指示）を取得した場合、モータ制御部１０４は、（Ｃ）ツールポート経由での制御コマンド（制御指示）に対応する処理を実行する。モータ制御部１０４は、例えば、（Ｂ）上位通信ポート経由での制御コマンド（制御指示）に対応する処理と、（Ｃ）ツールポート経由での制御コマンド（制御指示）に対応する処理とを、同時に実行する。
【０１０５】
また、例えば、取得部１０１が取得した（Ｃ）ツールポート経由での制御コマンド（制御指示）に対応する処理をモータ制御部１０４が実行している間に、取得部１０１が（Ｂ）上位通信ポート経由での制御コマンド（制御指示）を取得した場合、アクセス権制御部１０２は、（Ｂ）上位通信ポート経由での制御コマンド（制御指示）に対応する処理をモータ制御部１０４が実行するのを制限する排他動作を行う。
【０１０６】
ここで、特に、アクセス権制御部１０２は、（Ｂ）上位通信ポート経由での制御コマンド（制御指示）と、（Ｃ）ツールポート経由での制御コマンド（制御指示）とが共に、モータ２０の駆動を制御する命令を含んでいる場合に、（Ｂ）上位通信ポート経由での制御コマンド（制御指示）に対応する処理をモータ制御部１０４が実行するのを制限する排他動作を行う。
【０１０７】
すなわち、（Ｂ）上位通信ポート経由での制御コマンド（制御指示）と、（Ｃ）ツールポート経由での制御コマンド（制御指示）との少なくとも一方が、モータ２０の駆動を制御する命令を含んでいない場合、アクセス権制御部１０２は、（Ｂ）上位通信ポート経由での制御コマンド（制御指示）に対応する処理をモータ制御部１０４が実行するのを制限しない（排他動作を行わない）。したがって、取得部１０１が取得した（Ｃ）ツールポート経由での制御コマンド（制御指示）に対応する処理をモータ制御部１０４が実行している間に、取得部１０１が（Ｂ）上位通信ポート経由での制御コマンド（制御指示）を取得した場合、モータ制御部１０４は、（Ｂ）上位通信ポート経由での制御コマンド（制御指示）に対応する処理を実行する。モータ制御部１０４は、例えば、（Ｂ）上位通信ポート経由での制御コマンド（制御指示）に対応する処理と、（Ｃ）ツールポート経由での制御コマンド（制御指示）に対応する処理とを、同時に実行する。
【０１０８】
すなわち、アクセス権制御部１０２は、モータ制御部１０４が実行している処理に対応する前記所定の制御コマンドと、前記他の制御コマンドと、の少なくとも一方が、モータ２０の駆動を制御する命令を含んでいない場合には、前記排他動作を行わない。
【０１０９】
前記の構成によれば、アクセス権制御部１０２は、モータ制御部１０４が実行している処理に対応する前記所定の制御コマンドと、前記他の制御コマンドと、の少なくとも一方が、モータ２０の駆動を制御する命令を含んでいない場合には、前記排他動作を行わない。
【０１１０】
したがって、サーボドライバ１０は、モータ２０を駆動させる処理を実行しつつ、駆動させているモータ２０から取得する物理量データのデータ項目、および取得条件の設定などの、モータ２０の駆動を制御する命令を含んでいない制御指示（制御コマンド）に対応する処理を実行することができるという効果を奏する。また、サーボドライバ１０は、駆動させるモータ２０から取得する物理量データのデータ項目、および取得条件の設定などの、モータ２０の駆動を制御する命令を含んでいない制御指示（制御コマンド）に対応する処理を実行しつつ、モータ２０を駆動させる処理を実行することができるという効果を奏する。つまり、サーボドライバ１０は、例えば、多軸のパラメータについての調整を実行しつつ、単軸の試運転動作を実行することができるという効果を奏する。
【０１１１】
以上に説明したように、アクセス権制御部１０２は、（Ｂ）上位通信部１１０を介して取得した制御コマンドと、（Ｃ）ツール通信部１２０を介して取得した制御コマンドと、が共に、モータ２０を駆動させる命令を含む場合、前記排他動作を行う。すなわち、（Ｂ）上位通信部１１０を介して取得した制御コマンド（モータ２０を駆動させる命令を含む制御コマンド）に対応する処理と、（Ｃ）ツール通信部１２０を介して取得した制御コマンド（モータ２０を駆動させる命令を含む制御コマンド）に対応する処理と、をモータ制御部１０４が同時に行うことを防止する。したがって、サーボドライバ１０は、モータ２０を駆動させる命令を含む複数の制御コマンド（制御指示）を順次取得した場合であっても、モータ２０が予期せぬ動作を起こすのを防止することができる。
【０１１２】
アクセス権制御部１０２は、また、モータ２０を駆動させる命令を含まない制御コマンドに対応する処理の実行については排他しない。したがって、サーボドライバ１０は、例えば、サーボドライバ１０が取得するモータ２０の物理量データのデータ項目・取得条件の設定、といったモータ２０を駆動させる命令を含まない制御コマンド（モニタ系、パラメータ系の制御コマンド）に対応する処理は実行することができる。
【０１１３】
アクセス権制御部１０２による排他動作の詳細については、図４および図５を用いて後述するが、アクセス権制御部１０２は、例えば以下の方法によって、排他動作を実行する。すなわち、アクセス権制御部１０２は、取得部１０１が次々に取得した、（Ａ）リアルタイム通信での制御指示、（Ｂ）上位通信ポート経由での制御コマンド（制御指示）、および（Ｃ）ツールポート経由での制御コマンド（制御指示）について、対応する処理の実行を制限する制御コマンド（制御指示）を、試運転指令部１０３（または、モータ制御部１０４）に送信しないことによって、排他動作を実行する。
【０１１４】
アクセス権制御部１０２は、排他動作を実行すると、対応する処理の実行を制限した制御コマンド（制御指示）を、通知部１０５に通知する。また、アクセス権制御部１０２は、排他動作を実行すると、対応する処理の実行が制限されなかった制御コマンド（制御指示）を、つまり、モータ制御部１０４により対応する処理が実行されている制御コマンド（制御指示）を、通知部１０５に通知する。
【０１１５】
試運転指令部１０３は、取得部１０１が非リアルタイム通信で取得した制御コマンドを、アクセス権制御部１０２を介して取得する。すなわち、試運転指令部１０３は、アクセス権制御部１０２を介して、（Ｂ）上位通信ポート経由での制御コマンド（制御指示）、および（Ｃ）ツールポート経由での制御コマンド（制御指示）を取得する。試運転指令部１０３は、取得した制御コマンドを、モータ制御部１０４により処理可能な信号（制御指示）に変換してモータ制御部１０４に出力する。
【０１１６】
モータ制御部１０４は、取得部１０１が取得した制御指示（制御コマンド）を、アクセス権制御部１０２を介して取得する。より正確には、モータ制御部１０４は、アクセス権制御部１０２を介して、取得部１０１から（Ａ）リアルタイム通信での制御指示を、試運転指令部１０３から（Ｂ）上位通信ポート経由での制御コマンド（制御指示）および（Ｃ）ツールポート経由での制御コマンド（制御指示）を、取得する。そして、モータ制御部１０４は、取得した制御指示（制御コマンド）に対応する処理を実行する。
【０１１７】
通知部１０５は、アクセス権制御部１０２によって前記排他動作が行われると、前記排他動作が行われたことを示す情報、および、モータ制御部１０４が実行した処理に対応する制御指示の取得元に係る情報の少なくとも一方をユーザに通知する。
【０１１８】
（サーボドライバの取得する制御指示の階層構造等について）
以上に構成の詳細を説明したサーボドライバ１０について、次に、サーボドライバ１０において実行される排他制御処理について、図３〜図５を用いて説明していく。先ず、サーボドライバ１０（特に、アクセス権制御部１０２）の取得する制御指示の構造について、図３を用いて説明していく。
【０１１９】
図３は、サーボドライバ１０の取得する制御指示（制御コマンド）の階層構造等を説明する図である。図３の（Ａ）は、サーボドライバ１０の取得する制御指示（制御コマンド）の一例を示す図である。図３の（Ａ）に示すように、サーボドライバ１０が取得する制御指示（制御コマンド）としては、「パラメータ」に係る制御指示（制御コマンド）、「ステータス」に係る制御指示（制御コマンド）、および、「試運転」に係る制御指示（制御コマンド）等がある。
【０１２０】
図３の（Ｂ）は、サーボドライバ１０の取得する制御指示（制御コマンド）の階層構造を説明するため、一例として、「試運転」に係る制御指示（制御コマンド）の階層構造の詳細を示す図である。図３の（Ｂ）に示すように、「試運転」に係る制御指示（制御コマンド）は、「アクセス権（開放／獲得）」命令、「サーボ（オン／オフ）」命令、「ＪＯＧ（停止／開始）」命令、「ＰＴＰ」命令、および、「ＦＦＴ」命令等を含んでいる。
【０１２１】
図３の（Ｃ）は、「試運転」に係る制御指示（制御コマンド）に含まれている、「アクセス権（開放／獲得）」命令、「サーボオン（サーボオフ）」命令、「ＪＯＧ（停止／開始）」命令のアドレスおよび内容等を例示する図である。図３の（Ｂ）に示すように、「アクセス権」命令は、「アドレス：１０００Ｈｅｘ」であり、内容として、「０：開放」と「１：獲得」とを含む。
【０１２２】
図３に示すように、制御システム１において、モータ２０の駆動を制御する命令（例えば、「サーボオン（サーボオフ）」命令）を含んでいる制御コマンド（例えば、「試運転」制御コマンド）は、「アクセス権（開放／獲得）」命令をさらに含んでいる。
【０１２３】
（排他制御処理の概要）
次に、図３を用いて説明したような構造を有する、２つ以上の制御指示（制御コマンド）に対してサーボドライバ１０が実行する排他制御処理について、説明していく。なお、後述するように、サーボドライバ１０が排他制御処理を実行する制御指示（制御コマンド）が、図３に例示したような構造を有することは必須ではない。サーボドライバ１０の実行する処理についての理解を容易にするため、先ず、サーボドライバ１０の実行する処理について、以下のように整理しておく。
【０１２４】
すなわち、サーボドライバ１０が実行する排他制御処理は、外部機器（第１サポートツール５０、ＰＬＣ６０、および、第２サポートツール７０）からの制御指示に対応する処理を実行するモータ制御装置であって、前記制御指示が入力される複数のインタフェース（上位通信部１１０およびツール通信部１２０）を備えるサーボドライバ１０（モータ制御装置）の制御方法であって、前記複数のインタフェースの各々を介して前記制御指示を取得する取得ステップと、前記取得ステップにて取得した制御指示のうち、非リアルタイム通信で取得した制御指示である制御コマンドに対応する処理を実行するコマンド処理ステップと、前記取得ステップにて一の前記インタフェースを介して取得した所定の制御コマンドに対応する処理を前記コマンド処理ステップにて実行しているときに、他の前記インタフェースから他の制御コマンドを取得すると、前記他の制御コマンドに対応する処理を実行するのを制限する排他動作を行う排他制限ステップと、を含んでいる。
【０１２５】
前記の方法によれば、前記排他制限ステップは、前記非リアルタイム通信で取得された前記所定の制御コマンドに対応する処理を前記コマンド処理ステップにて実行しているときに、前記取得ステップにて他の前記インタフェースから前記他の制御コマンドを取得すると、前記コマンド処理ステップにて前記他の制御コマンドに対応する処理を実行するのを制限する排他動作を行う。
【０１２６】
したがって、前記制御方法は、複数の前記制御コマンドを、前記複数のインタフェースの各々を介して前記非リアルタイム通信により順次取得した場合であっても、モータ２０を安定的に駆動させることができるという効果を奏する。例えば、前記制御方法は、前記複数のインタフェースの各々を介して順次取得した複数の制御コマンドが競合した場合であっても、モータ２０の挙動が不安定となることを防止できるという効果を奏する。
【０１２７】
（排他制御処理の詳細）
次に、図３に例示するような構造を有する制御指示（制御コマンド）に対してサーボドライバ１０が実行する排他制御処理について、その詳細を図４および図５を用いて説明していく。
【０１２８】
図４は、サーボドライバ１０の実行する排他制御処理の概要を説明するための図である。図４の（Ａ）は、「（Ａ）リアルタイム通信での制御指示の有無と、（Ｂ）上位通信ポート経由でのアクセス権獲得命令（を含む制御コマンド／メッセージ）と、の関係」、および、「（Ａ）リアルタイム通信での制御指示の有無と、（Ｃ）ツールポート経由でのアクセス権獲得命令（を含む制御コマンド／メッセージ）と、の関係」を示す図である。
【０１２９】
なお、以下において、「制御指示（制御コマンド）がある」とは、取得部１０１が既に当該制御指示（制御コマンド）を取得している状態（特に、モータ制御部１０４が、当該制御指示（制御コマンド）に対応する処理を実行している状態）を指している。
【０１３０】
図４の（Ａ）に示すように、「（Ａ）リアルタイム通信での制御指示」がある場合、サーボドライバ１０は、「（Ｂ）上位通信ポート経由でのアクセス権獲得命令（を含む制御コマンド／メッセージ）」、および、「（Ｃ）ツールポート経由でのアクセス権獲得命令（を含む制御コマンド／メッセージ）」を受け付けない。つまり、サーボドライバ１０において、「（Ａ）リアルタイム通信での制御指示」がアクセス権を獲得している場合、サーボドライバ１０は、非リアルタイム通信での「アクセス権獲得命令（を含む制御コマンド／メッセージ）」を受け付けない。
【０１３１】
また、「（Ａ）リアルタイム通信での制御指示」がない場合、サーボドライバ１０は、「（Ｂ）上位通信ポート経由でのアクセス権獲得命令（を含む制御コマンド／メッセージ）」、および、「（Ｃ）ツールポート経由でのアクセス権獲得命令（を含む制御コマンド／メッセージ）」を受け付ける。つまり、サーボドライバ１０において、「（Ａ）リアルタイム通信での制御指示」がアクセス権を獲得していない場合、サーボドライバ１０は、非リアルタイム通信での「アクセス権獲得命令（を含む制御コマンド／メッセージ）」を受け付ける。
【０１３２】
以上に説明したように、図４の（Ａ）には、サーボドライバ１０の実行する、リアルタイム通信で送信される制御指示と、非リアルタイム通信で送信される制御コマンド（制御指示）との間の排他制御処理の内容が示されている。一方、図４の（Ｂ）には、サーボドライバ１０の実行する、非リアルタイム通信で送信される２つ以上の制御コマンド（制御指示）の間の排他制御処理の内容が示されている。
【０１３３】
図４の（Ｂ）には、「（Ｂ）上位通信ポート経由での制御コマンドがアクセス権を獲得している状態において、サーボドライバ１０が、（Ａ）リアルタイム通信での制御指示、（Ｂ）上位通信ポート経由での制御コマンド、および、（Ｃ）ツールポート経由での制御コマンドを受け付けるか否か」が示されている。
【０１３４】
図４の（Ｂ）には、また、「（Ｃ）ツールポート経由での制御コマンドがアクセス権を獲得している状態において、サーボドライバ１０が、（Ａ）リアルタイム通信での制御指示、（Ｂ）上位通信ポート経由での制御コマンド、および、（Ｃ）ツールポート経由での制御コマンドを受け付けるか否か」が示されている。
【０１３５】
図４の（Ｂ）に示すように、（Ｂ）上位通信ポート経由での制御コマンドがアクセス権を獲得している状態、および、（Ｃ）ツールポート経由での制御コマンドがアクセス権を獲得している状態において、サーボドライバ１０は、（Ａ）リアルタイム通信での制御指示を受け付けない。
【０１３６】
（Ｂ）上位通信ポート経由での制御コマンドがアクセス権を獲得している状態において、サーボドライバ１０は、（Ｂ）上位通信ポート経由での制御コマンドを、当該制御コマンドが試運転の制御コマンドであるか試運転以外の制御コマンドであるかに関わらず、受け付ける。また、（Ｂ）上位通信ポート経由での制御コマンドがアクセス権を獲得している状態において、サーボドライバ１０は、（Ｃ）ツールポート経由での制御コマンドを、当該制御コマンドが試運転の制御コマンドである場合は受け付けず、試運転以外の制御コマンドである場合には受け付ける。
【０１３７】
ここで、「（Ｂ）上位通信ポート経由での制御コマンドがアクセス権を獲得している状態」とは、例えば、「（Ｂ）上位通信ポート経由での制御コマンドが、アクセス権獲得命令を含んでおり、（Ｂ）上位通信ポート経由での制御コマンドに対応する処理がモータ制御部１０４により実行されている状態」である。そして、図３を用いて説明したように、「アクセス権（開放／獲得）」命令を含む制御コマンドとは、例えば、モータ２０の駆動を制御する命令である。
【０１３８】
すなわち、サーボドライバ１０において、モータ制御部１０４が実行している処理に対応する所定の制御コマンド（例えば、上述の例でアクセス権を獲得している、（Ｂ）上位通信ポート経由での制御コマンド）は、モータ２０の駆動を制御する命令（例えば、モータ２０を駆動させる命令）を含んでいる。
【０１３９】
前記の構成によれば、アクセス権制御部１０２は、モータ２０の駆動を制御する命令を含む前記所定の制御コマンドに対応する処理をモータ制御部１０４が実行しているときに、取得部１０１が他の前記インタフェースから前記他の制御コマンドを取得すると、モータ制御部１０４が前記他の制御コマンドに対応する処理を実行するのを制限する排他動作を行う。
【０１４０】
したがって、サーボドライバ１０は、モータ２０の駆動を制御する命令を含む前記所定の制御コマンドに対応する処理を実行していると、他の前記インタフェースから取得した前記他の制御コマンドに対応する処理を実行するのを制限する排他動作を行うので、モータ２０の挙動が不安定となることを防止することができるという効果を奏する。
【０１４１】
（Ｃ）ツールポート経由での制御コマンドがアクセス権を獲得している状態において、サーボドライバ１０は、（Ｂ）上位通信ポート経由での制御コマンドを、当該制御コマンドが試運転の制御コマンドである場合は受け付けず、試運転以外の制御コマンドである場合には受け付ける。また、（Ｃ）ツールポート経由での制御コマンドがアクセス権を獲得している状態において、サーボドライバ１０は、（Ｃ）ツールポート経由での制御コマンドを、当該制御コマンドが試運転の制御コマンドであるか試運転以外の制御コマンドであるかに関わらず、受け付ける。
【０１４２】
つまり、サーボドライバ１０において、アクセス権制御部１０２によって対応する処理の実行が制限される制御コマンド（例えば、上述の例で、（Ｃ）ツールポート経由での制御コマンドがアクセス権を獲得している状態における、（Ｂ）上位通信ポート経由での制御コマンド）は、モータ２０の駆動を制御する命令を含んでいる。
【０１４３】
前記の構成によれば、アクセス権制御部１０２は、前記非リアルタイム通信で取得された前記所定の制御コマンドに対応する処理をモータ制御部１０４が実行しているときに、モータ２０の駆動を制御する命令を含む前記他の制御コマンドを取得部１０１が他の前記インタフェースから取得すると、モータ制御部１０４が前記他の制御コマンドに対応する処理を実行するのを制限する排他動作を行う。
【０１４４】
したがって、サーボドライバ１０は、前記所定の制御コマンドに対応する処理を実行している場合、モータ２０の駆動を制御する命令を含む前記他の制御コマンドに対応する処理を実行するのを制限するので、モータ２０の挙動が不安定となることを防止することができるという効果を奏する。
【０１４５】
以上に概要を整理した「２つ以上の制御コマンド（制御指示）に対してサーボドライバ１０が実行する排他制御処理」について、次に図５を用いて具体例を説明していく。
【０１４６】
（排他制御処理の具体例について）
図５は、サーボドライバ１０の実行する排他制御処理の一例を示すシーケンス図である。具体的には、（Ｂ）第２サポートツール７０および（Ｃ）第１サポートツール５０の各々からの制御コマンド（制御指示）が、非リアルタイム通信でサーボドライバ１０に順次送信された場合に、サーボドライバ１０の実行する排他制御処理の一例が図５に示されている。
【０１４７】
なお、前述の通り、以下の説明においても、「（Ａ）リアルタイム通信での制御指示」は、（Ａ）ＰＬＣ６０によるユーザプログラムの実行結果としての制御指示を示している。「（Ｂ）上位通信ポート経由での制御コマンド（制御指示）」は、（Ｂ）第２サポートツール７０の受け付けたユーザ操作に対応する制御指示を示している。「（Ｃ）ツールポート経由での制御コマンド（制御指示）」は、（Ｃ）第１サポートツール５０の受け付けたユーザ操作に対応する制御指示を示している。
【０１４８】
すなわち、サーボドライバ１０は、（Ｃ）第１サポートツール５０からの制御コマンド（制御指示）を、通信ケーブル３０を介して、非リアルタイム通信で受信する。また、サーボドライバ１０は、（Ｂ）第２サポートツール７０からの制御コマンド（制御指示）を、フィールドネットワーク４０を介して、非リアルタイム通信で受信する。
【０１４９】
また、図５に示す例において、サーボドライバ１０の受信した（Ｂ）第２サポートツール７０からの制御コマンド（制御指示）は、図３を用いて説明した「試運転」に係る制御コマンド（「試運転」制御コマンド）であったものとする。すなわち、（Ｂ）第２サポートツール７０からの「試運転」制御コマンドは、「アクセス権獲得」、「サーボオン」、「ＪＯＧ開始」、・・・、「アクセス権開放」といった命令を含んでいるものとする。
【０１５０】
サーボドライバ１０のアクセス権制御部１０２は、（Ｂ）第２サポートツール７０からの「試運転」制御コマンドに含まれている「アクセス権獲得」命令（１０００Ｈｅｘ＝１）を受信すると、アクセス権獲得状態（排他状態）を判定する。すなわち、アクセス権制御部１０２は、「（Ａ）ＰＬＣ６０、（Ｂ）第２サポートツール７０、および（Ｃ）第１サポートツール５０のいずれかがアクセス権を獲得している状態であるか」を判定する。
【０１５１】
「（Ａ）ＰＬＣ６０、（Ｂ）第２サポートツール７０、および（Ｃ）第１サポートツール５０のいずれもがアクセス権を獲得していない」状態であると判定すると、アクセス権制御部１０２は、受信した（Ｂ）第２サポートツール７０からの「アクセス権獲得」命令に対応する処理を実行する（ＯＫ）。すなわち、アクセス権制御部１０２は、（Ｂ）第２サポートツール７０にアクセス権を付与する（（Ｂ）第２サポートツール７０がアクセス権を獲得する）。これにより、アクセス権獲得状態（排他状態）は、排他状態（Ｂ）に遷移し、つまり、（Ｂ）第２サポートツール７０がアクセス権を獲得している状態に遷移する。
【０１５２】
排他状態（Ｂ）においては、取得部１０１が（Ｃ）第１サポートツール５０からの「アクセス権獲得」命令（１０００Ｈｅｘ＝１）を受信したとしても、アクセス権制御部１０２は、受信した（Ｃ）第１サポートツール５０からの「アクセス権獲得」命令に対応する処理を実行しない（ＮＧ）。
【０１５３】
同様に、排他状態（Ｂ）においては、取得部１０１が（Ｃ）第１サポートツール５０からの「ＪＯＧ開始」命令（１００２Ｈｅｘ＝１）を受信したとしても、アクセス権制御部１０２は、受信した（Ｃ）第１サポートツール５０からの「ＪＯＧ開始」命令に対応する処理を実行しない（ＮＧ）。なお、「ＪＯＧ開始」命令（１００２Ｈｅｘ＝１）は、「モータ２０の駆動を制御する命令」の一例である。
【０１５４】
すなわち、取得部１０１が制御指示（制御コマンド）受信すると、アクセス権制御部１０２は、取得部１０１が受信した制御指示（制御コマンド）の通信元（送信元の装置）を認識するのと共に、アクセス権獲得状態を確認する。アクセス権制御部１０２は、取得部１０１が受信した制御指示（制御コマンド）が、アクセス権を獲得している装置以外の装置からの制御指示（制御コマンド）である場合、さらに以下の判定を実行する。すなわち、アクセス権制御部１０２は、取得部１０１の受信した「アクセス権を獲得している装置以外の装置からの制御指示（制御コマンド）」が「モータ２０の駆動を制御する命令」または「アクセス権獲得命令」を含んでいるかを判定する。
【０１５５】
「アクセス権を獲得している装置以外の装置からの制御指示（制御コマンド）」が「モータ２０の駆動を制御する命令」または「アクセス権獲得命令」を含んでいる場合、アクセス権制御部１０２は、「アクセス権を獲得している装置以外の装置からの制御指示（制御コマンド）」を実行しない。すなわち、アクセス権制御部１０２は、通信元を認識して、モータ駆動に対応する命令は、排他中は受け付けない。
【０１５６】
排他状態（Ｂ）において、取得部１０１が（Ｂ）第２サポートツール７０からの「サーボオン」命令（１００１Ｈｅｘ＝１）を受信すると、アクセス権制御部１０２は、受信した（Ｂ）第２サポートツール７０からの「サーボオン」命令に対応する処理を実行する（ＯＫ）。
【０１５７】
排他状態（Ｂ）において、取得部１０１が（Ｂ）第２サポートツール７０からの「ＪＯＧ開始」命令（１００２Ｈｅｘ＝１）を受信すると、アクセス権制御部１０２は、受信した（Ｂ）第２サポートツール７０からの「ＪＯＧ開始」命令に対応する処理を実行する（ＯＫ）。
【０１５８】
排他状態（Ｂ）において、取得部１０１が（Ｃ）第１サポートツール５０からの「ステータス読み出し」命令を受信すると、アクセス権制御部１０２は、受信した（Ｃ）第１サポートツール５０からの「ステータス読み出し」命令に対応する処理を実行する（ＯＫ）。なお、「ステータス読み出し」命令は、「モータ２０の駆動を制御する命令」および「アクセス権獲得命令」のいずれでもない。
【０１５９】
つまり、アクセス権制御部１０２は、排他中であっても、駆動に対応しない命令は受け付ける。具体的には、取得部１０１が受信した制御指示（制御コマンド）が、「アクセス権を獲得している装置以外の装置からの制御指示（制御コマンド）」である場合であっても、「アクセス権を獲得している装置以外の装置からの制御指示（制御コマンド）」が「モータ２０の駆動を制御する命令」および「アクセス権獲得命令」を含んでいない場合、アクセス権制御部１０２は、「アクセス権を獲得している装置以外の装置からの制御指示（制御コマンド）」を実行する。
【０１６０】
排他状態（Ｂ）において、取得部１０１が、（Ｂ）第２サポートツール７０からの「試運転」に係る制御コマンドに含まれている「アクセス権開放」命令（１０００Ｈｅｘ＝０）を受信すると、アクセス権制御部１０２は、受信した（Ｂ）第２サポートツール７０からの「アクセス権開放」命令に対応する処理を実行する（ＯＫ）。これにより、アクセス権獲得状態（排他状態）は、排他状態（Ｂ）から、「（Ａ）ＰＬＣ６０、（Ｂ）第２サポートツール７０、および（Ｃ）第１サポートツール５０の各々からの制御指示（制御コマンド）のいずれもが、アクセス権を獲得していない」状態に遷移する。
【０１６１】
サーボドライバ１０の取得部１０１が、（Ｃ）第１サポートツール５０からの「試運転」制御コマンドに含まれている「アクセス権獲得」命令（１０００Ｈｅｘ＝１）を、非リアルタイム通信で受信すると、アクセス権制御部１０２は、アクセス権獲得状態（排他状態）を判定する。
【０１６２】
「（Ａ）ＰＬＣ６０、（Ｂ）第２サポートツール７０、および（Ｃ）第１サポートツール５０のいずれもがアクセス権を獲得していない」状態であると判定すると、アクセス権制御部１０２は、受信した（Ｃ）第１サポートツール５０からの「アクセス権獲得」命令に対応する処理を実行する（ＯＫ）。すなわち、アクセス権制御部１０２は、（Ｃ）第１サポートツール５０にアクセス権を付与する（（Ｃ）第１サポートツール５０がアクセス権を獲得する）。これにより、アクセス権獲得状態（排他状態）は、排他状態（Ｃ）に遷移し、つまり、（Ｃ）第１サポートツール５０がアクセス権を獲得している状態に遷移する。
【０１６３】
以上に説明したように、サーボドライバ１０において、モータ制御部１０４が実行している処理に対応する前記所定の制御コマンドは、アクセス権制御部１０２に前記排他動作を開始させる命令と、アクセス権制御部１０２に前記排他動作を終了させる命令とを含み、アクセス権制御部１０２は、取得部１０１が前記所定の制御コマンドに含まれている前記排他動作を開始させる命令を取得すると、前記排他動作を開始し、取得部１０１が前記所定の制御コマンドに含まれている前記排他動作を終了させる命令を取得すると、前記排他動作を終了する。
【０１６４】
すなわち、所定の制御コマンド（例えば、モータ２０の駆動を制御する制御コマンド）は、アクセス権獲得の命令を含んでいる。アクセス権制御部１０２は、取得部１０１がアクセス権獲得命令を受信すると、「（Ａ）ＰＬＣ６０、（Ｂ）第２サポートツール７０、および（Ｃ）第１サポートツール５０のいずれかがアクセス権を獲得している状態であるか」を判定する。アクセス権制御部１０２は、「（Ａ）ＰＬＣ６０、（Ｂ）第２サポートツール７０、および（Ｃ）第１サポートツール５０のいずれもがアクセス権を獲得していない」状態であると判定すると、排他動作を実行する。なお、アクセス権獲得命令によって実行される排他動作は、例えば、前記所定の制御コマンドに含まれるアクセス権開放命令によって終了する。
【０１６５】
前記の構成によれば、アクセス権制御部１０２は、取得部１０１が前記排他動作を開始させる命令を取得すると前記排他動作を開始し、取得部１０１が前記排他動作を終了させる命令を取得すると前記排他動作を終了する。
【０１６６】
したがって、サーボドライバ１０は、前記排他動作を開始させる命令を取得することにより開始した前記排他動作を、前記排他動作を終了させる命令を取得することにより、終了することができるという効果を奏する。
【０１６７】
（タイムアウトによる排他制御処理の終了）
なお、これまでサーボドライバ１０が「アクセス権開放」命令（１０００Ｈｅｘ＝０）を受信することによって、アクセス権が獲得されている状態から、アクセス権が獲得されていない状態（アクセス権が開放されている状態）に遷移する例を説明してきた。
【０１６８】
しかしながら、アクセス権が獲得されている状態から、アクセス権が獲得されていない状態（アクセス権が開放されている状態）に遷移するために、サーボドライバ１０が「アクセス権開放」命令（１０００Ｈｅｘ＝０）を受信することは必須ではない。すなわち、サーボドライバ１０が排他制御処理を実行する制御指示（制御コマンド）が、図３に例示したような構造を有することは必須ではない。サーボドライバ１０（特に、アクセス権制御部１０２）は、以下のようにして、排他制御処理の開始／終了（アクセス権の獲得／開放）を実行してもよい。
【０１６９】
すなわち、サーボドライバ１０において、モータ制御部１０４が実行している処理に対応する前記所定の制御コマンドを取得部１０１が取得してから所定時間が経過すると、アクセス権制御部１０２は前記排他動作を終了する。
【０１７０】
前記の構成によれば、アクセス権制御部１０２は、モータ制御部１０４が実行している処理に対応する前記所定の制御コマンドを取得部１０１が取得してから所定時間が経過すると、前記排他動作を終了する。
【０１７１】
したがって、サーボドライバ１０は、実行中の処理に対応する前記所定の制御コマンドを取得してから所定時間が経過すると、前記排他動作を終了することができるという効果を奏する。
【０１７２】
例えば、サーボドライバ１０のアクセス権制御部１０２は、「上位通信部１１０またはツール通信部１２０に接続させていたケーブルが外れた」、「第１サポートツール５０または第２サポートツール７０として用いているパソコンが、ロックした・電源オフされた」といった事態が発生した場合にも、前記「アクセス権開放」命令を受信することなく、アクセス権を開放することができる。
【０１７３】
すなわち、アクセス権制御部１０２は、アクセス権獲得命令によって実行される排他動作を、例えば、前記アクセス権獲得命令を取得部１０１が取得してから所定時間が経過すると、終了することができる。
【０１７４】
サーボドライバ１０（特に、アクセス権制御部１０２）による排他動作（アクセス権の獲得／開放に係る処理）の実現方法は、これまで説明してきたものに限られるわけではない。以下では、サーボドライバ１０による排他動作の実現方法について、これまで説明してきた方法以外の方法の例を説明する。
【０１７５】
（排他制御処理のその他の実現例）
サーボドライバ１０（特に、アクセス権制御部１０２）は、モータ２０の駆動状態に応じて、排他動作を実行してもよい。具体的には、サーボドライバ１０（特に、アクセス権制御部１０２）は、サーボＯＮ／ＯＦＦに応じて、排他動作を実行してもよい。また、サーボドライバ１０（特に、アクセス権制御部１０２）は、モータ２０が停止中であるか否かに応じて、排他動作を実行してもよい。さらに、サーボドライバ１０（特に、アクセス権制御部１０２）は、モータ２０の駆動速度が所定値未満であるか否かに応じて、排他動作を実行してもよい。以下、詳細を説明していく。
【０１７６】
（サーボＯＮ／ＯＦＦに応じた排他制御処理の実行）
サーボドライバ１０において、アクセス権制御部１０２は、自装置がモータ２０への通電を行っていない状態（つまり、サーボＯＦＦ）で取得部１０１が一の前記インタフェースを介して前記所定の制御コマンドを取得すると、その後に取得部１０１が他の前記インタフェースから取得した前記他の制御コマンドに対応する処理をモータ制御部１０４が実行するのを制限する排他動作を行う。
【０１７７】
前記の構成によれば、アクセス権制御部１０２は、自装置がモータ２０への通電を行っていない状態で取得部１０１が一の前記インタフェースを介して前記所定の制御コマンドを取得すると、その後に取得部１０１が他の前記インタフェースから取得した前記他の制御コマンドに対応する処理をモータ制御部１０４が実行するのを制限する排他動作を行う。
【０１７８】
したがって、サーボドライバ１０は、自装置がモータ２０への通電を行っていない状態で一の前記インタフェースを介して前記所定の制御コマンドを取得すると、その後に他の前記インタフェースから取得した前記他の制御コマンドに対応する処理を実行するのを制限することができるという効果を奏する。つまり、サーボドライバ１０は、モータ２０への通電中（サーボＯＮ時）か否（サーボＯＦＦ時）かに応じて排他動作の実行要否を決定し、具体的には、モータ２０へ通電していない（サーボＯＦＦ）ときに前記排他動作を行うことができるという効果を奏する。
【０１７９】
ここで、モータ通電中（サーボＯＮ時）においてモータ２０は、実際に駆動している状態、または、実際に駆動する事前動作状態にあり、手で軸を動かしても回らない状態にある。したがって、「モータ通電中でない状態」、すなわち、モータ２０が駆動していない（または、駆動される事前動作状態でない）状態（つまり、手で軸を動かすと回る状態）で、一の前記インタフェースから制御コマンドを取得したとき、他の前記インタフェースからの制御コマンドに対応する処理の実行を排他する排他動作を行うことができるという効果を奏する。
【０１８０】
なお、念のため確認しておけば、アクセス権制御部１０２について、サーボＯＮを、つまり、モータ２０への通電を、排他動作のトリガにする必要はない。
【０１８１】
（モータ２０が停止中であるか否かに応じた排他制御処理の実行）
サーボドライバ１０において、アクセス権制御部１０２は、モータ２０の駆動が停止している状態で取得部１０１が一の前記インタフェースを介して前記所定の制御コマンドを取得すると、その後に取得部１０１が他の前記インタフェースから取得した前記他の制御コマンドに対応する処理をモータ制御部１０４が実行するのを制限する排他動作を行う。
【０１８２】
前記の構成によれば、アクセス権制御部１０２は、モータ２０の駆動が停止している状態で取得部１０１が一の前記インタフェースを介して前記所定の制御コマンドを取得すると、その後に取得部１０１が他の前記インタフェースから取得した前記他の制御コマンドに対応する処理をモータ制御部１０４が実行するのを制限する排他動作を行う。
【０１８３】
したがって、サーボドライバ１０は、モータ２０の駆動が停止している状態で一の前記インタフェースを介して前記所定の制御コマンドを取得すると、その後に他の前記インタフェースから取得した前記他の制御コマンドに対応する処理を実行するのを制限することができるという効果を奏する。つまり、サーボドライバ１０は、モータ通電中であってもモータ２０が停止中であるときには、一の前記インタフェースから取得した制御コマンドに対応する処理を実行しつつ、他の前記インタフェースから取得した前記他の制御コマンドに対応する処理については実行を制限することができるという効果を奏する。
【０１８４】
すなわち、アクセス権制御部１０２は、例えば、インバータでモータ２０にブレーキがかかっていることを条件として排他動作を行うことにより、モータ２０の挙動が不安定となることを防止しつつ、モータ２０に所望の制御を実行することができる。
【０１８５】
（モータ２０の駆動速度が所定値未満であるか否かに応じた排他制御処理の実行）
サーボドライバ１０において、アクセス権制御部１０２は、モータ２０の駆動速度が所定値未満である状態で取得部１０１が一の前記インタフェースを介して前記所定の制御コマンドを取得すると、その後に取得部１０１が他の前記インタフェースから取得した前記他の制御コマンドに対応する処理をモータ制御部１０４が実行するのを制限する排他動作を行う。
【０１８６】
前記の構成によれば、アクセス権制御部１０２は、モータ２０の駆動速度が所定値未満である状態で取得部１０１が一の前記インタフェースを介して前記所定の制御コマンドを取得すると、その後に取得部１０１が他の前記インタフェースから取得した前記他の制御コマンドに対応する処理をモータ制御部１０４が実行するのを制限する排他動作を行う。
【０１８７】
したがって、サーボドライバ１０は、モータ２０の駆動速度が所定値未満である状態で一の前記インタフェースを介して前記所定の制御コマンドを取得すると、その後に他の前記インタフェースから取得した前記他の制御コマンドに対応する処理を実行するのを制限することができるという効果を奏する。
【０１８８】
サーボドライバ１０は、例えば、モータ２０の駆動を特定の状態（例えば、モータ２０の駆動速度が所定値未満である状態）ことにより、前記排他動作を行うようにしてもよい。
【０１８９】
（表示機能について）
図６は、サーボドライバ１０によって実行された排他制御処理の実行結果をユーザに通知する情報の一例を示す図である。サーボドライバ１０は、実行した排他制御処理の実行結果を示す情報を、自装置、第１サポートツール５０、および第２サポートツール７０の少なくとも１つにおいて表示することにより、前記排他制御処理の実行結果をユーザに通知することができる。
【０１９０】
すなわち、サーボドライバ１０の通知部１０５は、アクセス権制御部１０２が実行した排他制御処理の実行結果を示す情報を、自装置、第１サポートツール５０、および第２サポートツール７０の少なくとも１つにおいて表示する。
【０１９１】
通知部１０５は、図６の（Ａ）に示すように、自装置、第１サポートツール５０、および第２サポートツール７０の少なくとも１つに、「アクセス権が獲得できませんでした。運転中、または、他のツールで試運転中です。」等のメッセージを表示させる。
【０１９２】
通知部１０５は、また、図６の（Ｂ）に示すように、自装置、第１サポートツール５０、および第２サポートツール７０の少なくとも１つに、アクセス権情報として、「第１サポートツール５０、ＰＬＣ６０、および第２サポートツール７０のいずれがアクセス権を獲得しているのか」を表示する。図６の（Ｂ）には、「上位通信経由ツール」が、すなわち、第２サポートツール７０がアクセス権を獲得している状態である例が示されている。
【０１９３】
通知部１０５は、第１サポートツール５０がユーザから受け付けた制御コマンドについて、アクセス権制御部１０２により実行される排他制御処理の対象となっているか、具体的には、ＰＬＣ６０または第２サポートツール７０によってアクセス権が獲得されているか、を表示する。
【０１９４】
通知部１０５は、また、第２サポートツール７０がユーザから受け付けた制御コマンドについて、アクセス権制御部１０２により実行される排他制御処理の対象となっているか、具体的には、ＰＬＣ６０または第１サポートツール５０によってアクセス権が獲得されているか、を表示する。
【０１９５】
通知部１０５が、アクセス権がどこにあるのか（第１サポートツール５０、ＰＬＣ６０、および、第２サポートツール７０のいずれがアクセス権を獲得しているのか）等に係る情報を表示することにより、ユーザはアクセス権の獲得（開放）状態を把握することができる。
【０１９６】
以上に説明したように、サーボドライバ１０は、アクセス権制御部１０２によって前記排他動作が行われると、前記排他動作が行われたことを示す情報、および、モータ制御部１０４が実行した処理に対応する制御指示の取得元に係る情報の少なくとも一方をユーザに通知する通知部１０５を備えている。
【０１９７】
前記の構成によれば、前記通知部は、アクセス権制御部１０２によって前記排他動作が行われると、前記排他動作が行われたことを示す情報、および、モータ制御部１０４が実行した処理に対応する制御指示の取得元に係る情報の少なくとも一方をユーザに通知する。
【０１９８】
したがって、サーボドライバ１０は、前記排他動作を行うと、前記排他動作を行ったことを示す情報、および、実行した処理に対応する制御指示の取得元に係る情報の少なくとも一方をユーザに通知することができるという効果を奏する。
【０１９９】
〔ソフトウェアによる実現例〕
図７は、サーボドライバ１０として利用可能なコンピュータの要部構成を例示したブロック図である。
【０２００】
サーボドライバ１０の制御部１００（特に、取得部１０１、アクセス権制御部１０２、試運転指令部１０３、モータ制御部１０４、および、通知部１０５）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。例えば、制御部１００は、図７に示すマイクロプロセッサ１３１によって実現することができる。
【０２０１】
後者の場合、サーボドライバ１０は、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ（または、マイクロプロセッサ１３１）、上記プログラムおよび各種データがコンピュータ（またはＣＰＵ、もしくはマイクロプロセッサ１３１）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、上記プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはＣＰＵ）が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０２０２】
また、サーボドライバ１０の上位通信部１１０は、上位通信ポート１１１によって実現してもよい。上位通信部１１０は、例えば、フィールドネットワーク４０を介したデータ伝送を管理するフィールドバス制御部と、ＰＬＣ６０からフィールドネットワーク４０を介して送信される上位通信フレームを受信してデータへ復号した上で、フィールドバス制御部へ出力するフィールドバス受信部と、フィールドバス制御部から出力されるデータから上位通信フレームを再生成してフィールドネットワーク４０を介して再送信（フォワード）するフィールドバス送信部と、を含んでいる。フィールドバス制御部は、フィールドバス受信部およびフィールドバス送信部と協働して、フィールドネットワーク４０を介して予め定められた制御周期毎にＰＬＣ６０との間でデータを送受信する。
【０２０３】
さらに、サーボドライバ１０のツール通信部１２０は、ツールポート１２１によって実現してもよい。ツールポート１２１は、例えばＵＳＢコネクタであり、サーボドライバ１０と第１サポートツール５０とを接続するためのインタフェースである。典型的には、第１サポートツール５０からの制御コマンドは、前記ＵＳＢコネクタであるツール通信部１２０を介してサーボドライバ１０に取込まれ、マイクロプロセッサ１３１で実行される。
【０２０４】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【０２０５】
１０  サーボドライバ
２０  モータ
５０  第１サポートツール（外部機器、外部装置）
４０  フィールドネットワーク（ネットワーク）
６０  ＰＬＣ（外部機器、上位コントローラ）
７０  第２サポートツール（外部機器）
１００  制御部
１０１  取得部
１０２  アクセス権制御部（排他制限部）
１０４  モータ制御部（コマンド処理部）
１０５  通知部
１１０  上位通信部（第１通信インタフェース）
１２０  ツール通信部（第２通信インタフェース）
【図１】
0006443365.tif 000002
【図２】
0006443365.tif 000003
【図３】
0006443365.tif 000004
【図４】
0006443365.tif 000005
【図５】
0006443365.tif 000006
【図６】
0006443365.tif 000007
【図７】
0006443365.tif 000008