(57)【要約】【課題】従軸の同期駆動の精度が向上される同期制御を実現する。【解決手段】同期制御装置（１０）は、時系列の目標位置情報に基づいて主軸指令位置を算出する主軸指令演算部（Ｃｍｍ）と、前記主軸指令位置、主軸フィードバック位置および前記目標位置情報に基づいて算出した所定時間後の予測主軸指令位置を入力とし、主軸サーボ制御機構（２０）の動特性モデルによって、予測主軸フィードバック位置を算出する主軸モデル部（Ｍｍ）と、前記予測主軸フィードバック位置に基づいて、従軸指令位置を算出する従軸指令演算部（Ｃｍｓ）とを備える。【選択図】図２
2020107315.tif 000002
【特許請求の範囲】
【請求項１】
主軸サーボ制御機構に対する時系列の目標位置情報に基づいて、前記主軸サーボ制御機構に対する主軸指令位置を算出する主軸指令演算部と、
前記主軸指令位置、前記主軸サーボ制御機構における主軸フィードバック位置、および、前記目標位置情報に基づいて算出した、所定時間後の予測主軸指令位置を入力とし、前記主軸サーボ制御機構の動特性モデルによって、前記主軸サーボ制御機構の予測主軸フィードバック位置を算出する主軸モデル部と、
前記主軸モデル部によって算出された前記主軸サーボ制御機構の予測主軸フィードバック位置に基づいて、従軸サーボ制御機構に対する従軸指令位置を算出する従軸指令演算部と、を備える同期制御装置。
【請求項２】
複数の機種のサーボ制御機構の動特性モデルの情報を記憶する記録部と、
前記主軸サーボ制御機構の動特性モデルの情報を、前記記録部に記憶された前記複数の機種のサーボ制御機構の動特性モデルの情報から選択して取得する動特性モデル情報取得部と、を更に備える、請求項１に記載の同期制御装置。
【請求項３】
前記主軸サーボ制御機構の動特性モデルの情報を、通信ネットワークを介して取得する、動特性モデル情報取得部を更に備える、請求項１に記載の同期制御装置。
【請求項４】
前記同期制御装置に接続されている前記主軸サーボ制御機構の機種情報を取得する、機種情報取得部を更に備え、
前記動特性モデル情報取得部が、前記機種情報取得部によって取得された機種情報に対応する動特性モデル情報を取得する、請求項２または３に記載の同期制御装置。
【請求項５】
前記同期制御装置に接続されている前記主軸サーボ制御機構を動作させて、前記主軸サーボ制御機構の動特性モデルを生成する、動特性モデル情報生成部を更に備える、請求項１に記載の同期制御装置。
【請求項６】
前記従軸サーボ制御機構は、複数の制御軸を有し、
前記同期制御装置は、
前記主軸指令演算部による処理と、前記主軸モデル部による処理と、前記従軸指令演算部による処理とが行われる、前記主軸サーボ制御機構と前記従軸サーボ制御機構との同期制御と、該同期制御が行われない非同期制御とを切り替える、切替部と、
前記切替部により前記非同期制御から前記同期制御に切り替えられる直前の第１移行期間において、および／又は、該同期制御から該非同期制御に切り替えられる直後の第２移行期間において、前記従軸サーボ制御機構が有する前記複数の制御軸のうち少なくとも一の制御軸の加速度が連続して変化するように該従軸サーボ制御機構に対する前記従軸指令位置を算出する、切替時指令演算部と、
を更に備える、請求項１から請求項５の何れか１項に記載の同期制御装置。
【請求項７】
前記切替時指令演算部は、前記第１移行期間、および／又は前記第２移行期間において、前記従軸サーボ制御機構が有する前記複数の制御軸の全ての制御軸の加速度が連続して変化するように該従軸サーボ制御機構に対する前記従軸指令位置を算出する、
請求項６に記載の同期制御装置。
【請求項８】
請求項１〜７のいずれか１項に記載の同期制御装置に接続されるシミュレーション装置であって、
互いに異なる複数の前記所定時間に対して、前記主軸指令演算部、前記主軸モデル部、前記従軸指令演算部、前記主軸サーボ制御機構、前記従軸サーボ制御機構の動作をシミュ
レートすることにより、互いに異なる複数の前記所定時間に対する、前記主軸サーボ制御機構における前記主軸フィードバック位置及び前記従軸サーボ制御機構における従軸フィードバック位置のシミュレーションを実行するシミュレート処理部と、
前記シミュレート処理部による、互いに異なる複数の前記所定時間に対する複数のシミュレーション結果を表示する表示部と、
前記複数のシミュレーション結果のいずれかを選択する入力を、ユーザから受け付ける受付部と、
前記受付部で受け付けたシミュレーション結果に対応するパラメタを前記同期制御装置に送信する送信部と、を備えるシミュレーション装置。
【請求項９】
請求項１〜７のいずれか１項に記載の同期制御装置と、
前記同期制御装置に接続された主軸サーボ制御機構と、
前記同期制御装置に接続された従軸サーボ制御機構と、を備える、同期制御システム。
【請求項１０】
主軸サーボ制御機構に対する時系列の目標位置情報に基づいて、前記主軸サーボ制御機構に対する主軸指令位置を算出する主軸指令演算ステップと、
前記主軸指令位置、前記主軸サーボ制御機構における主軸フィードバック位置、および、前記目標位置情報に基づいて算出した、所定時間後の予測主軸指令位置を入力とし、前記主軸サーボ制御機構の動特性モデルによって、前記主軸サーボ制御機構の予測主軸フィードバック位置を算出する主軸モデル演算ステップと、
前記主軸モデル演算ステップによって算出された前記主軸サーボ制御機構の予測主軸フィードバック位置に基づいて、従軸サーボ制御機構に対する従軸指令位置を算出する従軸指令演算ステップと、を有する同期制御方法。
【請求項１１】
前記従軸サーボ制御機構は、複数の制御軸を有し、
前記同期制御方法は、
前記主軸指令演算部による処理と、前記主軸モデル部による処理と、前記従軸指令演算部による処理とが行われる、前記主軸サーボ制御機構と前記従軸サーボ制御機構との同期制御と、該同期制御が行われない非同期制御とを切り替えるステップと、
前記切替部により前記非同期制御から前記同期制御に切り替えられる直前の第１移行期間において、および／又は、該同期制御から該非同期制御に切り替えられる直後の第２移行期間において、前記従軸サーボ制御機構が有する前記複数の制御軸のうち少なくとも一の制御軸の加速度が連続して変化するように該従軸サーボ制御機構に対する前記従軸指令位置を算出するステップと、
を更に有する、請求項１０に記載の同期制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は同期制御を行う同期制御装置、同期制御システム、同期制御方法、及びシミュレーション装置に関する。
【背景技術】
【０００２】
工作機械などの複数のサーボモータの同期制御を行う技術が知られている。同期制御においては、主軸に同期して従軸を動作させるために、従軸サーボ制御機構に対し、主軸の位置情報（主軸フィードバック位置）を従軸指令位置として与えている。
【０００３】
更に特許文献１では、従軸の同期遅れを補償するため、主軸制御系の動特性モデルと入出力値（主軸指令位置、主軸フィードバック位置）とから、主軸の未来位置予測値を算出し、それに基づき従軸指令位置を演算することで、同期駆動の精度を向上させることが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３５５１３２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の従来技術では、現在までの主軸指令位置、主軸フィードバック位置から主軸の未来位置予測値を算出するため、主軸の未来位置予測値の精度が必ずしも良好ではない。そのため、主軸が減速停止するなどの速度の変化を伴うような動きをする場合についての従軸の同期については、更に改善が求められる。
【０００６】
本発明の一側面は、上記の問題点に鑑みてなされたものであり、従軸の同期駆動の精度を更に向上させる同期制御を実現することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係る同期制御装置は、主軸サーボ制御機構に対する時系列の目標位置情報に基づいて、前記主軸サーボ制御機構に対する主軸指令位置を算出する主軸指令演算部と、前記主軸指令位置、前記主軸サーボ制御機構における主軸フィードバック位置、および、前記目標位置情報に基づいて算出した、所定時間後の予測主軸指令位置を入力とし、前記主軸サーボ制御機構の動特性モデルによって、前記主軸サーボ制御機構の予測主軸フィードバック位置を算出する主軸モデル部と、前記主軸モデル部によって算出された前記主軸サーボ制御機構の予測主軸フィードバック位置に基づいて、従軸サーボ制御機構に対する従軸指令位置を算出する従軸指令演算部と、を備えることを特徴としている。
【０００８】
上記の構成によれば、主軸が減速停止するなどの速度の変化を伴うような動きをする場合についても、従軸の同期の精度を高めることができる。従って、従軸の同期駆動の精度が向上した同期制御を実現することができる。
【０００９】
上記同期制御装置は、複数の機種のサーボ制御機構の動特性モデルの情報を記憶する記録部と、前記主軸サーボ制御機構の動特性モデルの情報を、前記記録部に記憶された前記複数の機種のサーボ制御機構の動特性モデルの情報から選択して取得する動特性モデル情報取得部と、を更に備える構成としてもよい。
【００１０】
上記の構成によれば、各種サーボ制御機構に対し、上記同期制御装置を用いて適切に同期制御を行うための設定が容易になる。
【００１１】
上記同期制御装置は、前記主軸サーボ制御機構の動特性モデルの情報を、通信ネットワークを介して取得する、動特性モデル情報取得部を更に備える構成としてもよい。
【００１２】
上記の構成によれば、各種サーボ制御機構に対し、上記同期制御装置を用いて適切に同期制御を行うための設定が容易になる。
【００１３】
上記同期制御装置は、前記同期制御装置に接続されている前記主軸サーボ制御機構の機種情報を取得する、機種情報取得部を更に備え、前記動特性モデル情報取得部が、前記機種情報取得部によって取得された機種情報に対応する動特性モデル情報を取得する構成としてもよい。
【００１４】
上記の構成によれば、各種サーボ制御機構に対し、上記同期制御装置を用いて同期制御を適切に行うための設定が自動的に行われ、ユーザの利便性がさらに高まる。
【００１５】
上記同期制御装置は、前記同期制御装置に接続されている前記主軸サーボ制御機構を動作させて、前記主軸サーボ制御機構の動特性モデルを生成する、動特性モデル情報生成部を更に備える構成としてもよい。
【００１６】
上記の構成によれば、同期制御装置に接続されている主軸サーボ制御機構の設定パラメタが未知の場合であっても、同期制御装置を用いて同期制御を適切に行うための設定が容易になる。
【００１７】
上記同期制御装置において、前記従軸サーボ制御機構は、複数の制御軸を有してもよい。そして、前記同期制御装置は、前記主軸指令演算部による処理と、前記主軸モデル部による処理と、前記従軸指令演算部による処理とが行われる、前記主軸サーボ制御機構と前記従軸サーボ制御機構との同期制御と、該同期制御が行われない非同期制御とを切り替える、切替部と、前記切替部により前記非同期制御から前記同期制御に切り替えられる直前の第１移行期間において、および／又は、該同期制御から該非同期制御に切り替えられる直後の第２移行期間において、前記従軸サーボ制御機構が有する前記複数の制御軸のうち少なくとも一の制御軸の加速度が連続して変化するように該従軸サーボ制御機構に対する前記従軸指令位置を算出する、切替時指令演算部と、を更に備える構成としてもよい。
【００１８】
上記の構成によれば、同期制御と非同期制御の切り替えが行われるときに、同期制御に入る直前の非同期制御時の第１移行期間において、および／又は、同期制御が解除された直後の非同期制御時の第２移行期間において、従軸サーボ制御機構の加速度の非連続的な変化、すなわち、急峻な加加速度（ジャーク）の発生を抑制するようにサーボ制御されることになる。その結果、切替時における従軸サーボ制御機構の振動を好適に抑制でき、同期制御と非同期制御との移行を円滑に実現することができる。
【００１９】
また、上記同期制御装置において、前記切替時指令演算部は、前記第１移行期間、および／又は前記第２移行期間において、前記従軸サーボ制御機構が有する前記複数の制御軸の全ての制御軸の加速度が連続して変化するように該従軸サーボ制御機構に対する前記従軸指令位置を算出する構成としてもよい。
【００２０】
上記の構成によれば、切替時における従軸サーボ制御機構が有する全ての制御軸の振動を好適に抑制でき、同期制御と非同期制御との移行を円滑に実現することができる。
【００２１】
本発明の一態様に係るシミュレーション装置は、上記いずれかに記載の同期制御装置に接続されるシミュレーション装置であって、互いに異なる複数の前記所定時間に対して、前記主軸指令演算部、前記主軸モデル部、前記従軸指令演算部、前記主軸サーボ制御機構、前記従軸サーボ制御機構の動作をシミュレートすることにより、互いに異なる複数の前記所定時間に対する、前記主軸サーボ制御機構における前記主軸フィードバック位置及び前記従軸サーボ制御機構における従軸フィードバック位置のシミュレーションを実行するシミュレート処理部と、前記シミュレート処理部による、互いに異なる複数の前記所定時間に対する複数のシミュレーション結果を表示する表示部と、前記複数のシミュレーション結果のいずれかを選択する入力を、ユーザから受け付ける受付部と、前記受付部で受け付けたシミュレーション結果に対応するパラメタを前記同期制御装置に送信する送信部と、を備えることを特徴としている。
【００２２】
上記の構成によれば、上記同期制御装置において同期制御を適切に行うための設定を容易に行うことができるようになる。
【００２３】
本発明の一態様に係る同期制御システムは、上記いずれかの同期制御装置と、前記同期制御装置に接続された主軸サーボ制御機構と、前記同期制御装置に接続された従軸サーボ制御機構と、を備えることを特徴としている。
【００２４】
上記の構成によれば、主軸が減速停止するなどの速度の変化を伴うような動きをする場合についても、従軸の同期の精度を高めることができる。従って、従軸の同期駆動の精度が向上した同期制御を実現することができる。
【００２５】
本発明の一態様に係る同期制御方法は、主軸サーボ制御機構に対する時系列の目標位置情報に基づいて、前記主軸サーボ制御機構に対する主軸指令位置を算出する主軸指令演算ステップと、前記主軸指令位置、前記主軸サーボ制御機構における主軸フィードバック位置、および、前記目標位置情報に基づいて算出した、所定時間後の予測主軸指令位置を入力とし、前記主軸サーボ制御機構の動特性モデルによって、前記主軸サーボ制御機構の予測主軸フィードバック位置を算出する主軸モデル演算ステップと、前記主軸モデル演算ステップによって算出された前記主軸サーボ制御機構の予測主軸フィードバック位置に基づいて、従軸サーボ制御機構に対する従軸指令位置を算出する従軸指令演算ステップと、を有することを特徴としている。
【００２６】
上記の構成によれば、主軸が減速停止するなどの速度の変化を伴うような動きをする場合についても、従軸の同期の精度を高めることができる。従って、従軸の同期駆動の精度が向上した同期制御を実現することができる。
【００２７】
上記同期制御方法において、前記従軸サーボ制御機構は、複数の制御軸を有してもよく、そして、前記同期制御方法は、前記主軸指令演算部による処理と、前記主軸モデル部による処理と、前記従軸指令演算部による処理とが行われる、前記主軸サーボ制御機構と前記従軸サーボ制御機構との同期制御と、該同期制御が行われない非同期制御とを切り替えるステップと、前記切替部により前記非同期制御から前記同期制御に切り替えられる直前の第１移行期間において、および／又は、該同期制御から該非同期制御に切り替えられる直後の第２移行期間において、前記従軸サーボ制御機構が有する前記複数の制御軸のうち少なとも一の制御軸の加速度が連続して変化するように該従軸サーボ制御機構に対する前記従軸指令位置を算出するステップと、を更に有してもよい。
【００２８】
上記の構成によれば、切替時における従軸サーボ制御機構の振動を好適に抑制でき、同期制御と非同期制御との移行を円滑に実現することができる。
【発明の効果】
【００２９】
本発明の同期制御装置、同期制御システム、同期制御方法、及びシミュレーション装置によれば、従軸の同期駆動の精度が向上した同期制御を実現することができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施形態１に係る同期制御システム及び同期制御装置を示す概略図である。
【図２】本発明の実施形態１に係る同期制御システム及び同期制御装置の制御ロジックを表す制御ブロック図である。
【図３】本発明の実施形態１に係る同期制御システムの、制御部の主軸指令演算部Ｃｍｍの動作を説明するための図である。
【図４】（ａ）〜（ｃ）は実施形態１に係る同期制御装置により同期制御を行った場合の結果例であり、（ｄ）〜（ｆ）は比較例の同期制御装置により同期制御を行った場合の結果例である。それぞれ、（ａ）（ｄ）は位置、（ｂ）（ｅ）は速度、（ｃ）（ｆ）は位置偏差のグラフである。
【図５】本発明の実施形態２〜５に係る同期制御システム及び同期制御装置を示す概略図である。
【図６】本発明の実施形態２〜３に係る同期制御システムのシミュレーション装置の制御部の機能を示す概略図である。
【図７】本発明の実施形態３に係る同期制御システムのシミュレーション装置の表示部の画面例を示す図である。
【図８】比較例の同期制御装置の制御ロジックを表す制御ブロック図である。
【図９】本発明の実施形態６に係る同期制御システム１及び同期制御装置を示す概略図である。
【図１０】図９に示す同期制御装置の機能をイメージ化した機能ブロック図である。
【図１１】図９に示す同期制御装置で制御周期に従って実行される処理の流れを示す図である。
【図１２】図９に示す同期制御装置で実行される同期制御に関する第１のフローチャートである。
【図１３】図９に示す同期制御装置で実行される同期制御に関する第２のフローチャートである。
【図１４】図９に示す同期制御装置において、非同期制御から同期制御に切り替わるときの、ロボットの制御軸の加速度の推移を示す図である。
【発明を実施するための形態】
【００３１】
〔実施形態１〕
以下、本発明の一側面に係る実施形態が、図１〜図３に基づいて説明される。
【００３２】
（同期制御システム１の機器構成）
図１は、実施形態１に係る同期制御システム１の全体の機器構成を示す概略図である。同期制御システム１は、実施形態１に係る同期制御装置１０、主軸サーボ制御機構２０、従軸サーボ制御機構３０と、それら各装置間の通信を媒介する通信ネットワーク４０とを備える。
【００３３】
実施形態１において、同期制御装置１０が主軸サーボ制御機構２０と従軸サーボ制御機構３０の２つの制御対象機器の制御を行う例で説明を行うが、同期制御装置１０が更に多くの機器の制御を行ってもよい。
【００３４】
同期制御装置１０は、制御部１１、インターフェース１２と記録部１３とを有している
。インターフェース１２は、通信ネットワーク４０を介して、他の装置間との通信を行う。記録部１３は、制御部１１が実行するためのモーション制御プログラム等を格納し得る。また、記録部１３は、各種制御対象機器の動特性モデルを保持し得る。
【００３５】
同期制御を行う同期制御装置１０は、主軸サーボ制御機構２０の主軸フィードバック位置ｙｍ等を用いて従軸サーボ制御機構３０の従軸指令位置ｕを周期ごとに算出する制御部１１を備える。同期制御装置１０は、周期ごとに従軸サーボ制御機構３０に対し従軸指令位置ｕの送信を行い、従軸サーボ制御機構３０を主軸サーボ制御機構２０に同期させる。
【００３６】
同期制御装置１０は、例えばプログラマブルロジックコントローラ（ＰＬＣ）である。記録部１３は、例えば半導体メモリ、ハードディスク等の磁気メモリ、その他の記録媒体である。主軸サーボ制御機構２０と従軸サーボ制御機構３０とは、例えば、サーボコントロールステージとロボットアームである。より具体的には、サーボコントロールステージ上のワークを、ロボットアームで掴む動作が、同期制御を要する例として挙げられる。
【００３７】
（制御の構成）
図２は、実施形態１に係る同期制御装置１０が、主軸サーボ制御機構２０及び従軸サーボ制御機構３０に対する制御を行う際の、制御ロジックを示す制御ブロック図である。
【００３８】
主軸サーボ制御機構２０は、サーボモータなどの主軸モータＰｍ（主軸）と、主軸モータＰｍの制御を行う主軸制御部Ｃｍとを備える。主軸モータＰｍは例えばエンコーダを備えることで、主軸の位置情報である主軸フィードバック位置ｙｍを出力する。主軸制御部Ｃｍは、同期制御装置１０からの主軸指令位置ｒに従い、主軸フィードバック位置ｙｍを用いた主軸モータＰｍのフィードバック制御を行う。
【００３９】
従軸サーボ制御機構３０は、サーボモータなどの従軸モータＰｓ（従軸）と、従軸モータＰｓの制御を行う従軸制御部Ｃｓとを備える。従軸モータＰｓは例えばエンコーダを備えることで、従軸の位置情報である従軸フィードバック位置ｙｓを出力する。従軸制御部Ｃｓは、同期制御装置１０からの従軸指令位置ｕに従い、従軸フィードバック位置ｙｓを用いた従軸モータＰｓのフィードバック制御を行う。
【００４０】
同期制御装置１０において、制御部１１は、機能ブロックとしての主軸指令演算部Ｃｍｍ、主軸モデル部Ｍｍ、従軸指令演算部Ｃｍｓとを備える。換言すれば、制御部１１は、例えば記録部１３に保持されたモーション制御プログラムを実行することで、これら各部の機能を実現する。主軸指令演算部Ｃｍｍの算出した主軸指令位置ｒは、主軸制御部Ｃｍに送信される。主軸モデル部Ｍｍは、主軸モータＰｍから主軸フィードバック位置ｙｍを受信する。従軸指令演算部Ｃｍｓの算出した従軸指令位置ｕは、従軸制御部Ｃｓに送信される。
【００４１】
図２においては、特定の期間ｉにおいて、あるブロックから他のブロックに送信される値が示されている。例えば、期間ｉにおいて主軸制御部Ｃｍには、主軸指令位置ｒ（ｉ）が入力され、主軸モータＰｍが主軸フィードバック位置ｙｍ（ｉ）を出力する。主軸制御部Ｃｍは、順次入力される主軸指令位置ｒと主軸フィードバック位置ｙｍに基づいて、主軸モータＰｍの動作を制御する。これは、通常のフィードバック制御である。
【００４２】
次に、同期制御装置１０の制御部１１の内部構成と動作が、図２〜図３に基づいて詳細に説明される。
【００４３】
主軸指令演算部Ｃｍｍは、記録部１３に格納された主軸等の動作を規定するモーション制御プログラム等から主軸目標位置を読み出し、主軸指令位置ｒを算出する（主軸指令演
算ステップ）。
【００４４】
図３は、その算出方法を説明するためのグラフである。主軸指令演算部Ｃｍｍは、主軸サーボ制御機構に対する時系列の目標位置情報である主軸目標位置から、単位期間毎の主軸目標位置を割り出し、それを各期間毎の主軸指令位置ｒ（ｉ）、ｒ（ｉ＋１）、ｒ（ｉ＋２）．．．と判断する。
【００４５】
主軸指令演算部Ｃｍｍは期間ｉにおいて、主軸制御部Ｃｍに、期間ｉの主軸指令位置ｒ（ｉ）を出力し、主軸モデル部Ｍｍに、期間ｉ＋ｋの主軸指令位置ｒ（ｉ＋ｋ）（所定時間後の予測主軸指令位置）を出力する。ここで、期間ｉ＋ｋは期間ｉからｋ単位期間後の、将来の期間である。
【００４６】
主軸モデル部Ｍｍは、主軸フィードバック位置ｙｍを参照し、主軸指令位置ｒから主軸フィードバック位置を推定する主軸サーボ制御機構２０の動特性モデルを備える。
【００４７】
主軸モデル部Ｍｍは期間ｉにおいて、主軸指令演算部Ｃｍｍから受信した期間ｉ＋ｋまでの主軸指令位置ｒと、期間ｉまでの主軸フィードバック位置ｙｍとから、期間ｉ＋ｋまでの将来の主軸フィードバック位置である、予測主軸フィードバック位置ｙｍ＊（ｉ＋１）、ｙｍ＊（ｉ＋２）．．．ｙｍ＊（ｉ＋ｋ）をシミュレートし、従軸指令演算部Ｃｍｓに対して出力する（主軸モデル演算ステップ）。
【００４８】
従軸指令演算部Ｃｍｓは、期間ｉまでの従軸指令位置ｕ、従軸フィードバック位置ｙｓと、予測主軸フィードバック位置ｙｍ＊（ｉ＋１）、ｙｍ＊（ｉ＋２）．．．ｙｍ＊（ｉ＋ｋ）とから、期間ｉにおける従軸指令位置ｕ（ｉ）を演算し、従軸制御部Ｃｓに対して出力する（従軸指令演算ステップ）。演算される従軸指令位置ｕ（ｉ）は、主軸フィードバック位置ｙｍ（ｉ）から、上記他の値を用いて調整された値となる。
【００４９】
従軸指令演算部Ｃｍｓは、後述する比較例（従来技術）の変換器と予見制御器を合わせたものと同じ演算処理を行うものである構成とすることができるが、他の公知の技術を適宜に適用してもよい。
【００５０】
このように、従軸指令演算部Ｃｍｓに与えられる将来の主軸フィードバック位置の予測値は、将来の主軸指令位置ｒから主軸サーボ制御機構２０の動特性モデルによりシミュレートされた値である。ここで、将来の主軸指令位置ｒは、実際に主軸サーボ制御機構２０に提供される正しい値である。また、主軸サーボ制御機構２０の動特性モデルは、公知の確立された手法により、精度良く構築できる。従って、将来の主軸フィードバック位置の予測値は精度が良いものとなる。従って、実施形態１に係る同期制御装置１０では、従軸の同期駆動の精度を向上させることができる。
【００５１】
（比較例）
図８に示される、特許文献１の従来技術を用いた同期制御装置９０により、同期制御を行うシステムを比較例として説明する。
【００５２】
比較例の同期制御装置９０では、期間ｉにおいて、予測器が期間ｉまでの主軸指令位置ｒと主軸フィードバック位置ｙｍによって、予測主軸フィードバック位置ｙｍ＊（ｉ＋１）、ｙｍ＊（ｉ＋２）．．．ｙｍ＊（ｉ＋ｋ）を算出する。変換器及び予見制御器（同期制御装置１０の従軸指令演算部Ｃｍｓに対応）が、期間ｉまでの従軸指令位置ｕ、従軸フィードバック位置ｙｓと、予測主軸フィードバック位置ｙｍ＊（ｉ＋１）、ｙｍ＊（ｉ＋２）．．．ｙｍ＊（ｉ＋ｋ）とから、期間ｉにおける従軸指令位置ｕ（ｉ）を演算し、従軸制御部Ｃｓに対して出力する。
【００５３】
このように比較例の同期制御装置９０で、変換器及び予見制御器に与えられる予測主軸フィードバック位置ｙｍ＊（ｉ＋１）、ｙｍ＊（ｉ＋２）．．．ｙｍ＊（ｉ＋ｋ）は、現在までの主軸指令位置ｒと主軸フィードバック位置ｙｍから算出されたものである。従って、実施形態１にかかる同期制御装置１０と比較すると精度に劣る。よって、同期制御装置１０よりも、従軸の同期駆動の精度が劣ったものとなる。
【００５４】
図４は、実施形態１に係る同期制御装置１０及び比較例の同期制御装置９０により同期制御を行った場合の結果比較の一例を示す図である。
【００５５】
同期制御装置１０における主軸指令位置ｒ、主軸フィードバック位置ｙｍ、従軸フィードバック位置ｙｓの推移の例が図４（ａ）に示され、同期制御装置９０における同様のグラフが図４（ｄ）に示される。
【００５６】
図４（ｂ）、（ｅ）は、それぞれ同期制御装置１０、同期制御装置９０における主軸指令位置ｒ、主軸フィードバック位置ｙｍ、従軸フィードバック位置ｙｓの時間微分（速度）を示す。これらのグラフに表されているように、本例は、主軸を加速した後に減速する制御を行った場合の例である。
【００５７】
図４（ｃ）、（ｆ）は、それぞれ同期制御装置１０、同期制御装置９０における主従間の位置偏差ｙｍ−ｙｓを示す。
【００５８】
図４（ｂ）、（ｅ）を比較すると明らかなように、実施形態１に係る同期制御装置１０を用いると、主軸の速度の変化と従軸の速度の変化のタイミングがより一致しており、同期がより適切に行われている。また、図４（ｆ）に示されるように、従来技術の同期制御装置９０では、従軸が主軸から遅れるだけでなく、追い越してしまうことがあり、追従がスムーズではないのに対し、実施形態１に係る同期制御装置１０では、追従がよりスムーズである。
【００５９】
主軸を一定方向に加減速が無いか小さい状態で動作させている場合では、比較例の同期制御装置９０によっても、比較的精度良く同期制御を行わせることができる。しかしながら、特に、主軸の動きを減速させ反転させるような動作を行わせる場合には、現在までの主軸指令位置ｒと主軸フィードバック位置ｙｍから算出される将来の主軸フィードバック位置の予測値は不正確となり、従軸位置の追従精度が大きく下がってしまう。
【００６０】
一方、実施形態１にかかる同期制御装置１０では、このような場合においても、将来に反転動作が行われることも織り込まれて従軸指令位置ｕ（ｉ）が算出され得るから、従軸位置の追従精度が高い。同期制御装置１０では、様々な主軸の動作に柔軟に対応して、同期制御の精度を高めることができる。
【００６１】
〔実施形態２〕
本発明の他の実施形態について、以下に説明する。なお、説明の便宜上、上記実施形態にて説明した構成要素と同じ機能を有する構成要素については、同じ符号を付記し、その説明を繰り返さない。
【００６２】
図５は、他の実施形態の同期制御システム２の全体の機器構成を示す概略図である。同期制御システム２の同期制御装置５０の制御部５１には、実施形態１に係る制御部１１の機能ブロックに加えて、機種情報取得部５２、動特性モデル情報取得部５３、動特性モデル情報生成部５４の各機能ブロックが設けられている。
【００６３】
更に、同期制御システム２は、実施形態１における同期制御システム１の構成に加えて、シミュレーション装置６０を備えている。シミュレーション装置６０は、通信ネットワーク４０を介して、同期制御装置１０と情報の送受信を行う。シミュレーション装置６０は、シミュレート処理部６１、インターフェース６２、記録部６３、表示部６４、受付部６５、送信部６６とを備えている。
【００６４】
シミュレート処理部６１は、図２のブロック線図に示された制御系をシミュレートする。インターフェース６２は、通信ネットワーク４０を介して、他の装置間との通信を行う。記録部６３は、各種制御対象機器の動特性モデルを保持している。表示部６４は、シミュレーション結果等の各種情報の表示を行う。受付部６５は、ユーザによるシミュレーション装置６０に対する操作を受け付ける。送信部６６は、情報をインターフェース６２を通じて、同期制御装置５０に対して情報を送信する。
【００６５】
シミュレーション装置６０のシミュレート処理部６１の構成を示す図６に基づいて、シミュレート処理部６１の動作を説明する。
【００６６】
シミュレート処理部６１は、同期制御装置１０の制御部１１と同様に、主軸指令演算部Ｃｍｍ、主軸モデル部Ｍｍ、従軸指令演算部Ｃｍｓとを備える。更に、主軸サーボ制御機構２０及び従軸サーボ制御機構３０の動作モデルである、主軸サーボ制御機構シミュレーション部Ｓｍと、従軸サーボ制御機構シミュレーション部Ｓｓの各機能ブロックを有している。
【００６７】
主軸サーボ制御機構シミュレーション部Ｓｍは、同期制御システム１における現実の主軸サーボ制御機構２０に替って、主軸指令演算部Ｃｍｍから主軸指令位置ｒを受け取り、主軸フィードバック位置ｙｍを主軸モデル部Ｍｍに出力する。
【００６８】
従軸サーボ制御機構シミュレーション部Ｓｓは、同期制御システム１における現実の従軸サーボ制御機構３０に替って、従軸指令演算部Ｃｍｓから従軸指令位置ｕを受け取り、従軸フィードバック位置ｙｓを従軸指令演算部Ｃｍｓに出力する。
【００６９】
このような構成により、シミュレーション装置６０のシミュレート処理部６１は、図２に示される同期制御システム１の動作のシミュレーションが可能である。
【００７０】
次に、同期制御システム２におけるシミュレーション装置６０の利用方法について説明する。
【００７１】
ユーザが、シミュレーション装置６０の受付部６５から、同期制御を行おうとする主軸サーボ制御機構２０及び従軸サーボ制御機構３０の型式等を選択すると、記録部６３から各制御対象機器に応じた動特性モデルが抽出される。すると、シミュレート処理部６１において、主軸サーボ制御機構２０の動特性モデルが主軸サーボ制御機構シミュレーション部Ｓｍと主軸モデル部Ｍｍに設定される。また、従軸サーボ制御機構３０の動特性モデルが従軸サーボ制御機構シミュレーション部Ｓｓと従軸指令演算部Ｃｍｓに設定される。
【００７２】
こうして、ユーザが任意に選択した主軸サーボ制御機構２０及び従軸サーボ制御機構３０を備えた同期制御システムの動作のシミュレーションがシミュレーション装置６０において、自在に行えるようになる。シミュレート処理部６１による同期制御システム１の動作のシミュレーション結果は、表示部６４に表示され、ユーザが確認できる。
【００７３】
シミュレーション装置６０での、シミュレーションにより、ユーザが目的とする作業に対して適切な機器を選択したり、また決定すべき各種パラメタ、例えば、制御の単位期間
、各機器間の通信周期、予測制御のための先読み時間（ｋ単位期間）等についての適切な値を事前検討できる。
【００７４】
こうして受付部６５を通じて、ユーザにより、機器の選択やパラメタの決定が行われた後に、シミュレーション装置６０の送信部６６は、主軸サーボ制御機構２０及び従軸サーボ制御機構３０の動特性モデルや各パラメタを、インターフェース６２を通じて、同期制御装置１０に送信し得る。
【００７５】
実施形態２において、同期制御装置５０の制御部５１では、実施形態１に係る制御部１１の機能ブロックに加えて、少なくとも、動特性モデル情報取得部５３の機能ブロックが設けられている。図５に示された機種情報取得部５２、動特性モデル情報生成部５４の各機能ブロックについても制御部５１に設けられていてもよい。
【００７６】
同期制御装置１０の動特性モデル情報取得部５３は、シミュレーション装置６０から送信された、主軸サーボ制御機構２０及び従軸サーボ制御機構３０の動特性モデルや各パラメタを、インターフェース１２を通じて受信する。
【００７７】
更に動特性モデル情報取得部５３は、これらのデータを、制御部１１の主軸指令演算部Ｃｍｍ、主軸モデル部Ｍｍ、従軸指令演算部Ｃｍｓを、シミュレーション装置６０において決定されたモデルやパラメタに設定する。また、動特性モデル情報取得部５３は、これらのデータを、適宜記録部１３に保存する。
【００７８】
こうして、実施形態２によれば、ユーザが、機器の選択やパラメタの設定について十分に検討を行ったうえで同期制御システムを構築でき、ユーザの利便性が高まる。
【００７９】
なお、シミュレーション装置６０は、ユーザが受付部６５から同期制御を行おうとする主軸サーボ制御機構２０及び従軸サーボ制御機構３０の型式等を選択すると、その組み合わせにおいて適切な各種決定すべきパラメタを、インターネット回線を通じてクラウドサーバーから取得するものであってもよい。また、取得したパラメタの値を、推奨値として表示部６４においてユーザに提示する機能を有しているものであることも好ましい。
【００８０】
〔実施形態３〕
実施形態３では、実施形態１において説明された期間から決定される先読み時間、すなわち期間ｉ＋ｋと期間ｉとの時間差についての適正値を容易にユーザが決定できる例について説明する。
【００８１】
先読み時間が長い方が精度が向上するわけでは必ずしもなく、制御対象機器やその組み合わせに応じて、先読み時間に最適値が存在する。そのため、ユーザが先読み時間の適正値を容易に知ることができれば、同期制御システム２のユーザにとっての利便性がさらに向上する。
【００８２】
実施形態３に係る同期制御システム２及び同期制御装置５０の構成は、実施形態２の場合と同様である。
【００８３】
実施形態３では、シミュレート処理部６１が、先読み時間を変更したときのシミュレーション結果を、表示部６４に一覧で示す機能を有している。図７は、表示部６４におけるそのような表示画面の例を示す図である。先読み時間が３通りに変更された場合の結果が３列に並べられ、各列において下のグラフには位置（主軸指令位置ｒ、主軸フィードバック位置ｙｍ、従軸フィードバック位置ｙｓ）が、上のグラフには速度（主軸指令位置ｒ、主軸フィードバック位置ｙｍ、従軸フィードバック位置ｙｓの時間微分）が同時に示され
ている。
【００８４】
図７に示されたケースでは、先読み時間を０．３（任意単位）と設定したときに主軸と従軸の速度変化のタイミングが一致しており、最も適切である。図７のような画面を視認することにより、ユーザは、容易に本発明の同期制御装置に関する特徴的なパラメタである先読み時間の適正値を容易に知ることができるようになる。
【００８５】
こうしてユーザが受付部から、例えば先読み時間として０．３を選択すると、機器の選択により採用された動特性モデルやその他のパラメタと共に、送信部６６が同期制御装置５０に対して送信し得る。
【００８６】
〔実施形態４〕
実施形態２では、シミュレーション装置６０が、備えた記録部６３に各種制御対象機器の動特性モデルを有していた。一方、実施形態４において各種制御対象機器の動特性モデルは、同期制御装置５０がその記録部１３に保持している。従って、実施形態４の同期制御システムでは、シミュレーション装置６０を備えなくとも同期制御装置１０の制御部１１に、選択された制御対象機器に応じた制御ロジックを容易に設定できる。
【００８７】
実施形態４に係る同期制御システムの構成は、図２に示された同期制御システム２において、シミュレーション装置６０は必ずしも備えていなくてもよいものである。実施形態４において、同期制御装置５０の制御部５１では、実施形態１に係る制御部１１の機能ブロックに加えて、少なくとも、動特性モデル情報取得部５３の機能ブロックが設けられている。
【００８８】
実施形態４に係る同期制御装置１０は、端末等を通じてのユーザの操作により選択された主軸サーボ制御機構２０及び従軸サーボ制御機構３０に応じて、動特性モデル情報取得部５３が、記録部１３に保持されている動特性モデルから図２に示された制御ロジックを設定する。
【００８９】
あるいは変形例として、実施形態４に係る同期制御装置１０の制御部５１には、更に機種情報取得部５２の機能ブロックが設けられている。機種情報取得部５２は、インターフェース１２を介し、通信ネットワークを通じて、接続された主軸サーボ制御機構２０及び従軸サーボ制御機構３０の型式を認識する。そうして、認識した主軸サーボ制御機構２０及び従軸サーボ制御機構３０に応じて、動特性モデル情報取得部５３が、記録部１３に保持されている動特性モデルから図２に示された制御ロジックを設定するものであってもよい。
【００９０】
更に、実施形態４に係る同期制御装置１０は、選択された主軸サーボ制御機構２０及び従軸サーボ制御機構３０の機種の組み合わせにおいて適切な各種決定すべきパラメタを、動特性モデル情報取得部５３がインターネット回線を通じてクラウドサーバーから取得し、制御部１１に設定、若しくは推奨値としてユーザに提示する機能を有しているものであることも好ましい。
【００９１】
〔実施形態５〕
実施形態４では、同期制御装置１０が記録部１３に各種制御対象機器の動特性モデルを有していた。しかしながら、制御対象機器が未知である場合もあり、その場合、制御ロジックの設定が面倒である。
【００９２】
実施形態５に係る同期制御システムの構成は、図２に示された同期制御システム２において、シミュレーション装置６０は必ずしも備えていなくてもよいものである。実施形態
５において、同期制御装置５０の制御部５１では、実施形態１に係る制御部１１の機能ブロックに加えて、少なくとも、動特性モデル情報生成部５４の機能ブロックが設けられている。
【００９３】
例えば、記録部１３が主軸サーボ制御機構２０の動特性モデルを有していない場合等に、実施形態５に係る同期制御装置１０は、動特性モデル情報生成部５４が、制御対象機器である主軸サーボ制御機構２０に試験主軸指令位置を発信できる。そうして主軸サーボ制御機構２０を実際に動作させ、動特性モデル情報生成部５４が、試験主軸指令位置に対する主軸サーボ制御機構２０からの応答である主軸フィードバック位置を受信する。
【００９４】
動特性モデル情報生成部５４は、試験主軸指令位置に対する制御対象機器の応答を分析することで、制御対象機器の動特性モデルを構築することができる。従軸サーボ制御機構３０の動特性モデルを有していない場合についても同様である。構築された動特性モデルは、記録部１３に保持され得る。
【００９５】
このように制御対象機器の入出力から動特性モデルを構築する手法については、制御分野における公知の手法を適宜用いることができる。
【００９６】
実施形態５に係る同期制御装置１０は、こうして得た制御対象機器の動特性モデルから、制御部１１に、図２に示された制御ロジックを設定する。
【００９７】
実施形態５に係る同期制御装置によれば、制御対象機器の動特性モデルを保持していない場合であっても、簡便に制御部１１に、本発明の制御ロジックを設定することができる。
【００９８】
〔実施形態６〕
実施形態６に係る同期制御装置１０について、図９〜図１４に基づいて説明する。なお、上述までの実施形態で示された構成と実質的に同一の構成については、同一の参照番号を付してその詳細な説明を省略する。図９は、当該同期制御装置１０が適用される制御システム１の概略構成図であり、図１０は、同期制御装置１０に形成される機能部をイメージ化した図である。
【００９９】
同期制御装置１０は、各種の設備や装置などの制御対象（フィールド機器）を制御する産業用コントローラに相当する。同期制御装置１０は、後述するような制御演算を実行する一種のコンピュータである。同期制御装置１０にとって、ロボットやサーボドライバ、モータが制御対象となる。本実施形態では、ロボットとサーボドライバ及びモータとの間で同期制御が行われ、当該同期制御においては、サーボドライバ及びモータが主軸サーボ制御機構とされ、ロボットが従軸サーボ制御機構とされる。そこで、上述までの実施形態を踏まえて、サーボドライバ及びモータの参照番号を「２０」とし、ロボットの参照番号を「３０」とする。サーボドライバ２０は、同期制御装置１０からの出力データ（例えば、位置指令や速度指令など）に従って、モータ２０を駆動する。また、ロボット３０としては、パラレルロボット、スカラロボット、多関節ロボットが例示できる。このように同期制御装置１０は、ロボット３０やサーボドライバ２０及びモータ２０を統合的にサーボ制御し得るように構成された制御装置である。
【０１００】
同期制御装置１０は、通信ネットワーク４０などを介して、１または複数のフィールド機器との間でデータを遣り取りする。同期制御装置１０は、各種のフィールド機器において収集または生成されたデータ（以下、「入力データ」とも称す。）を収集する処理（入力処理）、フィールド機器に対する指令などのデータ（以下、「出力データ」とも称す。）を生成する処理（演算処理）、生成した出力データを対象のフィールド機器へ送信する
処理（出力処理）等を行う。
【０１０１】
ここで、通信ネットワーク４０は、データの到達時間が保証される、定周期通信を行うバスまたはネットワークを採用することが好ましい。このような定周期通信を行うバスまたはネットワークとしては、ＥｔｈｅｒＣＡＴ（登録商標）等が知られている。そして、通信ネットワーク４０を介して、同期制御装置１０とフィールド機器との間で遣り取りされるデータは、数１００μｓｅｃオーダ〜数１０ｍｓｅｃオーダのごく短い周期で更新されることになる。なお、このような遣り取りされるデータの更新処理は、入出力リフレッシュ処理とも称される。
【０１０２】
ここで、図１０に基づいて、同期制御装置１０の構成について説明する。なお、図１０に示す制御アプリケーション処理部１３０及びＩＥＣプログラム処理部１４０は、図１に示す制御部１１内に形成される機能部であり、ＩＥＣプログラム１５１及びアプリケーションプログラム１５２は、図１に示す記録部１３に格納されているプログラムである。具体的には、同期制御装置１０は、上記の通り所定の制御演算を実行する一種のコンピュータであり、当該制御演算に必要なプロセッサやメモリを備えている。当該プロセッサは、上記制御部１１の一形態であり、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＧＰＵ（Graphics Processing Unit）などで構成される。プロセッサとしては、複数のコアを有する構成を採用してもよいし、当該プロセッサを複数配置してもよい。当該メモリは上記記録部１３の一形態であり、例えば、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などの揮発性記憶装置
や、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などの不揮発性記憶装置などで構成される。そして、プロセッサは、メモリに格納された各種プログラムを読出して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。メモリには、基本的な機能を実現するためのシステムプログラムに加えて、制御対象の製造装置や設備に応じて作成されるユーザプログラム（ＩＥＣプログラム１５１およびアプリケーションプログラム１５２）が格納される。
【０１０３】
なお、本願におけるＩＥＣプログラム１５１とは、実行毎に全体がスキャンされて、実行毎に１または複数の指令値が演算されるプログラムであり、典型的には、国際電気標準会議（International Electrotechnical Commission：ＩＥＣ）によって規定された国際
規格ＩＥＣ６１１３１−３に従って記述された１または複数の命令からなるプログラムを包含する。ＩＥＣプログラム１５１には、シーケンス制御およびモーション制御の命令が含まれる。このようなＩＥＣプログラム１５１は、制御周期毎にすべてのプログラムが実行（スキャン）される実行形式に対応するものであり、即時性および高速性が要求される制御に好適である。一方で、本願におけるアプリケーションプログラム１５２は、ロボットを用いて特定の加工や動作を行うための制御プログラムであり、ロボットによる制御アプリケーションを実現するための１または複数の命令からなるプログラムを包含し、基本的には、ＩＥＣプログラム１５１とは区別される。ロボット制御に関するアプリケーションプログラム１５２は、一例として、ロボット言語を用いて記述され、１行ずつ逐次実行されるインタプリタ方式が採用される。
【０１０４】
そして、図１０に示すように、同期制御装置１０は、ＩＥＣプログラム処理部１４０と、インターフェース１２と、制御アプリケーション処理部１３０と、を有する。インターフェース１２は、ＩＥＣプログラム処理部１４０および制御アプリケーション処理部１３０と、通信ネットワーク４０を介して接続されているフィールド機器との間のデータの遣り取りを仲介する。
【０１０５】
ＩＥＣプログラム処理部１４０は、予め定められた制御周期毎にＩＥＣプログラム１５１を実行（スキャン）して１または複数の指令値を演算する。すなわち、ＩＥＣプログラ
ム処理部１４０は、ＩＥＣプログラム１５１に従って、制御周期毎に指令値を演算する。なお、本願では、モータ２０を含んで構成される所定の装置をサーボ制御するためにＩＥＣプログラム１５１の実行が行われるものとする。そして、モーション処理部１４２は、ＩＥＣプログラム１５１に含まれるモーション命令に従って、制御周期毎に指令値を演算する機能を提供する。すなわち、ＩＥＣプログラム１５１に含まれるモーション命令は、複数の制御周期に亘る挙動を指示する命令（例えば、モータ２０で構成される所定の装置の出力が何らかの軌道を描くための命令）を含む。このようなモーション命令が実行されると、実行されたモーション命令の指示内容に従って、モーション処理部１４２が制御周期毎に指令値を演算する。すなわち、モーション処理部１４２は、上記の所定の装置に対して制御周期毎に指令値を出力することで、モーション命令により指示された挙動を実現する。
【０１０６】
次に、制御アプリケーション処理部１３０は、アプリケーションプログラム１５２などに基づいて、制御アプリケーションを制御するための指令値を演算する。なお、本願では、ロボット３０をサーボ制御するためにアプリケーションプログラム１５２が制御アプリケーション処理部１３０によって実行されるものとする。制御アプリケーション処理部１３０は、ＩＥＣプログラム処理部１４０による指令値の演算および出力と同期して、制御アプリケーション用の指令値を演算および出力することもでき、又は、ＩＥＣプログラム処理部１４０による指令値の演算および出力とは同期せずに、制御アプリケーション用の指令値を演算および出力することもできる。すなわち、制御アプリケーション処理部１３０は、ＩＥＣプログラム処理部１４０による演算処理と同期して、又は非同期で、指令値の演算処理を実行する。なお、このＩＥＣプログラム処理部１４０と制御アプリケーション処理部１３０の同期処理については、後述する。
【０１０７】
インタプリタ１３４は、逐次アプリケーションプログラム１５２の少なくとも一部を解釈して中間コードを生成するとともに、生成した中間コードを格納するバッファ１３３を有する。本願における中間コードは、制御周期毎に指令値を演算するための命令を包含する概念であり、１または複数の命令、あるいは、１または複数の関数を含んでもよい。そして、モーション処理部１３２は、インタプリタ１３４が事前に生成しバッファ１３３に格納されている中間コードに従って、制御周期毎に指令値を演算する。一般的に、アプリケーションプログラム１５２に記述される命令（コード）は、逐次実行されるために、指令値の演算周期を保証できないが、本願開示では、このように中間コードを利用することで、モーション処理部１３２は、制御周期毎に指令値を演算できるようになる。中間コードにおいて記述される命令には、各制御アプリケーションに応じた座標系が用いられてもよい。
【０１０８】
そして、ＩＥＣプログラム処理部１４０と制御アプリケーション処理部１３０との間でデータを共有するために、共有メモリ１３１が設けられる。本願開示では、制御アプリケーション処理部１３０による処理結果の一部または全部が共有メモリ１３１に格納され、ＩＥＣプログラム処理部１４０は、制御アプリケーション処理部１３０の共有メモリ１３１に格納されたデータを参照することができる。また、ＩＥＣプログラム処理部１４０から制御アプリケーション処理部１３０の共有メモリ１３１へのデータ書込みも可能であってもよく、このようにＩＥＣプログラム処理部１４０から書込まれたデータは、インタプリタ１３４およびモーション処理部１３２から参照可能とされる。
【０１０９】
＜プログラムの同期実行＞
同期制御装置１０においては、モータ２０をサーボ制御するためのＩＥＣプログラム１５１と、ロボット３０をサーボ制御するためのアプリケーションプログラム１５２の同期実行が実現される。なお、当該同期制御は、制御の必要に応じて適宜非実行状態とすることもでき、その場合のモータ２０、ロボット３０のサーボ制御を非同期制御とも言う。同
期制御においては、制御アプリケーション処理部１３０のインタプリタ１３４は、制御周期より長い周期、例えば、制御周期の２倍分の周期毎にアプリケーションプログラム１５２を逐次実行する。ただし、ＩＥＣプログラム処理部１４０のモーション処理部１４２および制御アプリケーション処理部１３０のモーション処理部１３２は、いずれも同一の制御周期毎に指令値を演算する。したがって、同期制御装置１０からの指令値の出力は、いずれも予め定められた制御周期で同期して行われる。このように、ＩＥＣプログラム処理部１４０および制御アプリケーション処理部１３０は、アクチュエータの動きを連続的に制御するためのモーション処理部をそれぞれ有しており、これらのモーション処理部が同期して指令値を演算することで、ＩＥＣプログラム１５１に従う制御およびアプリケーションプログラム１５２に従う制御の両方を制御周期と同期させて実行することができ、これによって制御周期単位での精密な制御が実現される。
【０１１０】
なお、モータ２０とロボット３０が非同期制御となっている場合には、同期制御装置１０からのモータ２０への指令値の出力と、同期制御装置１０からのロボット３０への指令値の出力とが、同期しない状態で実行されることになる。
【０１１１】
ここで、同期制御時の、同期制御装置１０におけるＩＥＣプログラム１５１およびアプリケーションプログラム１５２の実行タイミングの詳細について、図１１に基づいて説明する。図１１は、同期制御装置１０におけるプログラムの実行タイミングの一例を示す図である。なお、同期制御装置１０においては、プロセッサのリソースを考慮して、優先度が高い高優先度タスク（図１１中の上段の処理）と優先度が低い低優先度タスク（図１１中の下段の処理）が設定されている。具体的には、インターフェース１２、ＩＥＣプログラム処理部１４０とそのモーション処理部１４２の実行、および制御アプリケーション処理部１３０のモーション処理部１３２の実行は、高優先度タスクとして設定され、制御アプリケーション処理部１３０のインタプリタ１３４の実行は低優先度タスクとして設定されている。
【０１１２】
すなわち、インターフェース１２に関連する入出力リフレッシュ処理Ｂ６０、ＩＥＣプログラム１５１の実行処理Ｂ４０、ＩＥＣプログラム１５１に従ってモーション処理部１４２によって行われる指令値の演算処理Ｂ４２、アプリケーションプログラム１５２に従ってモーション処理部１３２によって行われる指令値の演算処理Ｂ３２は、高優先度タスクとして実行される。一方、アプリケーションプログラム１５２を逐次解釈する処理Ｂ３４は、低優先度タスクとして実行される。
【０１１３】
ここで、高優先度タスクは、予め定められた制御周期Ｔ１毎に繰返し実行される。低優先度タスクは、各制御周期内で高優先度タスクが実行されていない期間に都度実行される。すなわち、制御周期毎に、高優先度タスクの実行時間が割当てられ、高優先度タスクの実行時間以外の時間において、低優先度タスクが実行される。
【０１１４】
まず、高優先度タスクについて説明すると、各制御周期が到来すると、入出力リフレッシュ処理Ｂ６０が実行された後、ＩＥＣプログラム処理部１４０によりＩＥＣプログラム１５１の全体が実行（スキャン）されて、シーケンス制御についての１または複数の指令値が演算される（実行処理Ｂ４０）。併せて、モーション処理部１４２によりＩＥＣプログラム１５１に含まれるモーション命令に関するモーション処理が実行されて、モーション命令についての１または複数の指令値が演算される（実行処理Ｂ４２）。この実行処理Ｂ４２には、上述した主軸指令演算部Ｃｍｍによる演算処理が含まれる。
【０１１５】
さらに、制御アプリケーション処理部１３０のモーション処理部１３２により、バッファ１３３に格納されている中間コードに従ってロボット３０の制御用のモーション指令が準備される（実行処理Ｂ３２）。この実行処理Ｂ３２には、上述した主軸モデル部Ｍｍに
よる演算処理と、従軸指令演算部Ｃｍｓによる演算処理が含まれる。以下、同様の処理が制御周期毎に繰返される。なお、モーション処理部１３２がバッファ１３３から中間コードを読み出すタイミングは、各制御周期でなくともよい。これは、読み出された中間コードは、複数の制御周期Ｔ１にわたって指令値を演算できるだけの命令を含む場合、その複数の制御周期Ｔ１においては中間コードの読み出しを一度で行える。
【０１１６】
このように、ある制御周期における高優先度タスクの実行が完了すると、モータ２０のサーボ制御についての指令値と、ロボット３０のサーボ制御についての指令値のセットが用意される。これらの指令値は、基本的には、次の制御周期が到来すると、フィールド側に反映される。すなわち、ＩＥＣプログラム処理部１４０および制御アプリケーション処理部１３０は、同一の制御周期で入力データに応じた指令値を演算するので、その指令値を同期して出力することができる。
【０１１７】
一方、低優先度タスクについては、制御アプリケーション処理部１３０のインタプリタ１３４は、アプリケーションプログラム１５２を逐次実行する。すなわち、インタプリタ１３４は、アプリケーションプログラム１５２の読込みおよび解析を低優先度で実行する。インタプリタ１３４がアプリケーションプログラム１５２を解析処理して生成された中間コードは、バッファ１３３の容量を考慮しながら、逐次、バッファ１３３に格納される。バッファ１３３に格納された中間コードは、制御アプリケーション処理部１３０のモーション処理部１３２により順次参照されて、演算処理Ｂ３２での指令値の生成に用いられる。このとき、インタプリタ１３４は、高優先度タスクの演算周期である制御周期の整数倍分の中間コードを事前に余分に生成しておくことで、モーション処理部１３２による処理に影響を与えることなく、制御アプリケーションに対する指令値を制御周期毎に演算できる。
【０１１８】
また、インタプリタ１３４は、予め定められた制御アプリケーション同期周期（制御周期の整数倍）が到来する前に、アプリケーションプログラム１５２の解釈を一時停止する。その一時停止したタイミングで、ＩＥＣプログラム処理部１４０と制御アプリケーション処理部１３０との間でデータ同期を行うことで、双方に整合性をもつデータを共有する。このように、インタプリタ１３４は、同期周期毎に、ＩＥＣプログラム処理部１４０との間で共有するデータを更新する。共有データの更新に併せて、フィールド側から取得される入力データおよび出力データについても更新（データ同期）するようにしてもよい。これにより、制御アプリケーション処理部１３０側でも、ＩＥＣプログラム処理部１４０で取得されたデータを利用してロボット３０の制御が可能となる。制御アプリケーション同期周期は、制御周期の整数倍に設定されれば、どのような長さであってもよい。制御アプリケーションにおいて要求される制御の精度などに応じて、適宜設定される。
【０１１９】
次に、図１２及び図１３に基づいて、モータ２０を主軸サーボ制御機器としロボット３０を従軸サーボ制御機器とした、同期制御装置１０による同期制御での処理の流れについて説明する。図１２は、上述した高優先度タスクの処理に関するフローチャートであり、、図１３は、上述した低優先度タスクの処理に関するフローチャートである。
【０１２０】
先ず、高優先度タスクの処理の流れについて説明する。制御周期Ｔ１が到来すると、インターフェース１２が入出力リフレッシュ処理を実行する（Ｓ１０１の処理）。これによって、直前の制御周期Ｔ１において演算された指令値（Ｂ４０、Ｂ４２、Ｂ３２等による指令値）が、モータ２０及びロボット３０へ出力されるとともに、それらからの入力データが取得される。続いて、Ｓ１０２において、今回の制御周期がデータ同期のタイミングと一致するか否かが判定される。そこで肯定判定されると、ＩＥＣプログラム処理部１４０と制御アプリケーション処理部１３０との間でデータ同期が実行される（Ｓ１０３の処理）。またＳ１０２で否定判定されると、処理はＳ１０４へ進む。
【０１２１】
次に、Ｓ１０４では上記の実行処理Ｂ４０が行われ、続いてＳ１０５では上記の実行処理Ｂ４２が行われる。これらの処理は、モータ２０のサーボ制御に関する処理である。その後、Ｓ１０６で、ロボット３０のサーボ制御に関する実行処理Ｂ３２が行われる。
【０１２２】
図１２に示す高優先度タスクの一連の処理により演算、準備された指令値は、次の制御周期Ｔ１が到来したときにフィールドへ出力される。そして、当該一連の処理の終了後であって次の制御周期Ｔ１が到来するまでの期間において、図１３に示す低優先度タスクが実行されることになる。
【０１２３】
図１３に基づいて、低優先度タスクの処理の流れについて説明する。低優先度タスクは、インタプリタ１３４によるアプリケーションプログラム１５２の解釈処理に関するものである。先ず、Ｓ３０１で、制御アプリケーション処理部１３０により、バッファ１３３に中間コードが残っているか否かが判定される。当該判定を行うのは、バッファ１３３の容量を超えた中間コードの生成を行わないようにするためである。Ｓ３０１で肯定判定されれば低優先度タスクは終了し、否定判定されれば処理はＳ３０２へ進む。Ｓ３０２では、インタプリタ１３４によって、アプリケーションプログラム１５２の一部が読み込まれる。例えば、アプリケーションプログラム１５２を構成するコードの一行分が読み込まれる。そして、Ｓ３０３では、インタプリタ１３４によって読込んだコードが解釈されて中間コードが生成される。生成された中間コードは、Ｓ３０４でバッファ１３３に格納される。なお、Ｓ３０２〜Ｓ３０４の処理に関し、実行対象となるアプリケーションプログラムが存在しない場合にはこれらの処理は行われず、結果として、バッファ１３３には中間コードは格納されないことになる。このような一連の処理を有する低優先度タスクは、自身に対してプログラムの実行時間が割当てられている期間において繰返される。
【０１２４】
図１２、図１３に示す一連の処理が行われることで、同期制御装置１０において、図１１に示す実行タイミングで、ＩＥＣプログラム１５１およびアプリケーションプログラム１５２が実行され、以てモータ２０とロボット３０とを同期制御することが可能となる。ここで、図９に戻り、モータ２０とロボット３０との同期制御が行われていない状態、すなわち非同期制御の状態から、当該同期制御が行われる状態への切り替えについて、言及する。なお、その非同期制御から同期制御への切り替えは、制御部１１（図１を参照）において形成される切替部によって実行される。当該切替部は、モータ２０及びロボット３０に対して付与されている制御プログラム、すなわちＩＥＣプログラム１５１とアプリケーションプログラム１５２内に含まれる、同期制御の実行又はその解除に関する指令に基づいて、非同期制御から同期制御への切り替え又は同期制御から非同期制御への切り替えを実現する。
【０１２５】
図９において、モータ２０により制御されるフィールド機器の出力点（以下、単に「モータ２０の出力点」と言う）が位置ＭＰ１にあり、ロボット３０の出力点が位置ＳＰ１にあるときは、両者は非同期制御状態にあるものとする。このような状態から、モータ２０の出力点が軌跡ＭＬ１を辿って位置ＭＰ２に到達し、且つ、ロボット３０の出力点が軌跡ＳＬ１を辿って位置ＳＰ２に到達すると、両者の同期制御が開始され、その同期制御が行われた状態で、モータ２０の出力点が軌跡ＭＬ２を辿り、且つロボット３０の出力点が軌跡ＭＬ２に平行な軌跡ＳＬ２を辿る様子が、図９には示されている。すなわち、非制御状態ではそれぞれの出力点が離れているモータ２０とロボット３０が、各出力点が位置ＭＰ２と位置ＳＰ２に近接して両者の同期制御が実行される。したがって、切替部による切替処理は、モータ２０とロボット３０のそれぞれの出力点が、位置ＭＰ２と位置ＳＰ２に到達したときに開始されることになる。
【０１２６】
このような場合、切替部による切替処理時に制御形態が非同期制御から同期制御に切り
替えられるため、従軸サーボ制御機器であるロボット３０において振動が発生しやすい。振動が発生すると、上述した主軸指令演算部Ｃｍｍ、主軸モデル部Ｍｍ、従軸指令演算部Ｃｍｓの演算処理による同期制御における追従精度の改善効果が低減するおそれがある。そこで、好ましくは、切替部により非同期制御から同期制御に切り替えられる直前の、非同期制御時における第１移行期間において、従軸サーボ制御機器であるロボット３０の各制御軸の加速度（本願においては、加速度の概念に減速度も含まれる）が連続して変化するように、同期制御装置１０が有する切替時指令演算部によりロボット３０の指令位置が演算される。切替時指令演算部は、制御部１１（図１を参照）に形成される機能部であり、切替時指令演算部の処理について、図１４に基づいて説明する。
【０１２７】
図１４は、ロボット３０の各制御軸（本実施形態においては、Ｘ軸、Ｙ軸、Ｚ軸）における加速度の時間推移を表している。図１４に示す時刻Ｔ２は、モータ２０とロボット３０との同期制御が開始される時刻、すなわち、図９において、モータ２０とロボット３０のそれぞれの出力点が、位置ＭＰ２と位置ＳＰ２に到達する時刻である。そして、この時刻Ｔ２の直前の第１移行期間である時刻Ｔ１〜Ｔ２の期間において、ロボット３０の各制御軸の加速度が図１４に示すように連続して変化するように、切替時指令演算部が各制御軸の指令位置を演算する。このようにロボット３０の各制御軸の指令位置が演算されることで、ロボット３０は、非同期制御から同期制御に切り替わるタイミングにおいて各制御軸の同期制御への移行を好適に滑らかに実現でき、以て、ロボット３０の出力点の振動を効果的に抑制することができる。これは、同期制御における追従精度の低下回避に効果的である。
【０１２８】
上記実施形態では、非同期制御から同期制御への切り替え時の振動抑制について言及したが、同期制御から非同期制御への切り替えの際にも、同様に切替時指令演算部が、ロボット３０の各制御軸の指令位置を演算することで、ロボット３０の出力点の振動を抑制することができる。すなわち、モータ２０とロボット３０との同期制御が終了される時刻、すなわち、同期制御から非同期制御に切り替えられる時刻の直後の、非同期制御時における第２移行期間において、切替時指令演算部が、ロボット３０の各制御軸の加速度が連続して変化するように、各制御軸の指令位置を演算すればよい。
【０１２９】
なお、第１移行期間、第２移行期間の長さは、指示されている同期制御が実現可能な限りにおいて、ロボット３０の出力点の振動抑制に適した期間を適宜設定すればよい。また、切替時指令演算部による指令位置の演算は、必ずしもロボット３０の制御軸の全てにおいて行う必要は無い。ロボット３０の出力点の振動が抑制される限りにおいては、ロボット３０の制御軸の一部において、切替時指令演算部による指令位置の演算を行ってもよい。
【０１３０】
〔ソフトウェアによる実現例〕
同期制御装置１０の機能ブロック（特に主軸指令演算部Ｃｍｍ、主軸モデル部Ｍｍ、従軸指令演算部Ｃｍｓ、機種情報取得部５２、動特性モデル情報取得部５３、動特性モデル情報生成部５４、ＩＥＣプログラム処理部１４０、制御アプリケーション処理部１３０）あるいはシミュレーション装置６０の機能ブロック（特にシミュレート処理部６１の機能ブロック）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ソフトウェアによって実現してもよい。
【０１３１】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【０１３２】
＜付記１＞
主軸サーボ制御機構（２０）に対する時系列の目標位置情報に基づいて、前記主軸サーボ制御機構（２０）に対する主軸指令位置を算出する主軸指令演算部（Ｃｍｍ）と、
前記主軸指令位置、前記主軸サーボ制御機構（２０）における主軸フィードバック位置、および、前記目標位置情報に基づいて算出した、所定時間後の予測主軸指令位置を入力とし、前記主軸サーボ制御機構（２０）の動特性モデルによって、前記主軸サーボ制御機構（２０）の予測主軸フィードバック位置を算出する主軸モデル部（Ｍｍ）と、
前記主軸モデル部（Ｍｍ）によって算出された前記主軸サーボ制御機構（２０）の予測主軸フィードバック位置に基づいて、従軸サーボ制御機構（３０）に対する従軸指令位置を算出する従軸指令演算部（Ｃｍｓ）と、を備える同期制御装置。
【０１３３】
＜付記２＞
主軸サーボ制御機構（２０）に対する時系列の目標位置情報に基づいて、前記主軸サーボ制御機構（２０）に対する主軸指令位置を算出する主軸指令演算ステップと、
前記主軸指令位置、前記主軸サーボ制御機構（２０）における主軸フィードバック位置、および、前記目標位置情報に基づいて算出した、所定時間後の予測主軸指令位置を入力とし、前記主軸サーボ制御機構（２０）の動特性モデルによって、前記主軸サーボ制御機構（２０）の予測主軸フィードバック位置を算出する主軸モデル演算ステップと、
前記主軸モデル演算ステップによって算出された前記主軸サーボ制御機構（２０）の予測主軸フィードバック位置に基づいて、従軸サーボ制御機構（３０）に対する従軸指令位置を算出する従軸指令演算ステップと、を有する同期制御方法。
【符号の説明】
【０１３４】
１、２  同期制御システム
１０、５０  同期制御装置
１１、５１  制御部
５２  機種情報取得部
５３  動特性モデル情報取得部
５４  動特性モデル情報生成部
１２  インターフェース
１３  記録部
２０  主軸サーボ制御機構（モータ）
３０  従軸サーボ制御機構（ロボット）
４０  通信ネットワーク
６０  シミュレーション装置
６１  シミュレート処理部
６２  インターフェース
６３  記録部
６４  表示部
６５  受付部
６６  送信部
１３０  制御アプリケーション処理部
１４０  ＩＥＣプログラム処理部
１５１  ＩＥＣプログラム
１５２  アプリケーションプログラム
Ｃｍｍ  主軸指令演算部
Ｃｍｓ  従軸指令演算部
Ｍｍ  主軸モデル部
Ｃｍ  主軸制御部
Ｐｍ  主軸モータ（主軸）
Ｃｓ  従軸制御部
Ｐｓ  従軸モータ（従軸）
Ｓｍ  主軸サーボ制御機構シミュレーション部
Ｓｓ  従軸サーボ制御機構シミュレーション部
【図１】
2020107315.tif 000003
【図２】
2020107315.tif 000004
【図３】
2020107315.tif 000005
【図４】
2020107315.tif 000006
【図５】
2020107315.tif 000007
【図６】
2020107315.tif 000008
【図７】
2020107315.tif 000009
【図８】
2020107315.tif 000010
【図９】
2020107315.tif 000011
【図１０】
2020107315.tif 000012
【図１１】
2020107315.tif 000013
【図１２】
2020107315.tif 000014
【図１３】
2020107315.tif 000015
【図１４】
2020107315.tif 000016