(57)【要約】【課題】主軸の動作に対して従動軸の動作を同期させる制御において、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合に従動軸に生じる振動を抑える技術を提供する。【解決手段】  制御装置６０は、主軸の動作に対して従動軸の動作を同期させる同期動作中においては、取得した主軸の速度に所定の比率を乗算した速度を、従動軸の速度指令値として算出し、同期動作が開始する位置に従動軸が到達する前においては、取得した主軸の速度から算出される主軸の位置と選択中の特性データとに基づき従動軸の移動量を特定し、当該移動量に基づき特定した速度を、従動軸の速度指令値として算出し、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合、記憶していた複数の特性データの中から主軸の速度変化に応じた他の特性データを特定し、当該他の特性データに、選択中の特性データを切り替える。【選択図】図１７
2020009296.tif 000002
【特許請求の範囲】
【請求項１】
主軸の動作に対して従動軸の動作を同期させる制御装置であって、
制御周期ごとに前記主軸の速度を取得する取得部と、
前記主軸の位置に対する前記従動軸の移動量を特定するための複数の特性データを記憶する記憶部と、
前記複数の特性データのうちからいずれかの特性データを選択する選択部と、
前記従動軸に対して指令する速度を速度指令値として算出する算出部と、
前記算出部によって算出された前記速度指令値を前記従動軸に出力する出力部とを備え、
前記算出部は、
前記主軸の動作に対して前記従動軸の動作を同期させる同期動作中においては、前記取得部によって取得された前記主軸の速度に所定の比率を乗算した速度を、前記速度指令値として算出し、
前記同期動作が開始する位置に前記従動軸が到達する前においては、前記取得部によって取得された前記主軸の速度から算出される前記主軸の位置と前記選択部によって選択中の前記特性データとに基づき前記従動軸の移動量を特定し、当該移動量に基づき特定される速度を、前記速度指令値として算出し、
前記選択部は、前記主軸および前記従動軸の動作中に前記主軸の速度がステップ状に変化した場合、前記記憶部に記憶された前記複数の特性データの中から前記主軸の速度変化に応じた他の特性データを特定し、当該他の特性データに、選択中の前記特性データを切り替える、制御装置。
【請求項２】
前記主軸として、第１主軸と、当該第１主軸の速度とはステップ状に異なる速度で動作する第２主軸とが設けられており、
外部からの指令に基づき前記第１主軸から前記第２主軸に前記主軸を切り替える切替部をさらに備え、
前記選択部は、前記主軸および前記従動軸の動作中に前記切替部によって前記主軸が切り替えられた場合、前記主軸の切り替えに応じた他の前記特性データに、選択中の前記特性データを切り替える、請求項１に記載の制御装置。
【請求項３】
外部からの指令に基づき前記主軸の動作方向を反転させる反転部をさらに備え、
前記選択部は、前記主軸および前記従動軸の動作中に前記反転部によって前記主軸が反転された場合、前記主軸の反転に応じた他の前記特性データに、選択中の前記特性データを切り替える、請求項１または請求項２に記載の制御装置。
【請求項４】
前記取得部は、前記主軸に対して指令された速度、または前記主軸の実測された速度を取得する、請求項１〜請求項３のいずれか１項に記載の制御装置。
【請求項５】
前記主軸の振動を検出する振動検出部をさらに備え、
前記取得部は、前記振動検出部によって前記主軸の振動が検出された場合、前記主軸に対して指令された速度から前記主軸の実測された速度に取得対象を切り替える、請求項４に記載の制御装置。
【請求項６】
前記特性データは、データテーブル、１次式、および多項式の少なくともいずれかに基づき規定されたデータである、請求項１〜請求項５のいずれか１項に記載の制御装置。
【請求項７】
前記選択部は、高速フーリエ変換によって算出された前記従動軸の固有振動数に基づき前記特性データを選択する、請求項１〜請求項６のいずれか１項に記載の制御装置。
【請求項８】
前記同期動作が開始する位置に前記従動軸が到達する前において、動作中の前記主軸の速度がステップ状に変化したときに前記選択部によって前記特性データが切り替えられた場合、前記従動軸の移動量を平滑するフィルタ処理部をさらに備える、請求項１〜請求項７のいずれか１項に記載の制御装置。
【請求項９】
主軸の動作に対して従動軸の動作を同期させる制御装置における制御方法であって、
制御周期ごとに前記主軸の速度を取得するステップと、
前記主軸の位置に対する前記従動軸の移動量を特定するための複数の特性データを記憶するステップと、
前記複数の特性データのうちからいずれかの特性データを選択するステップと、
前記従動軸に対して指令する速度を速度指令値として算出するステップと、
前記算出するステップによって算出された前記速度指令値を前記従動軸に出力するステップとを含み、
前記算出するステップは、
前記主軸の動作に対して前記従動軸の動作を同期させる同期動作中においては、前記取得するステップによって取得された前記主軸の速度に所定の比率を乗算した速度を、前記速度指令値として算出し、
前記同期動作が開始する位置に前記従動軸が到達する前においては、前記取得するステップによって取得された前記主軸の速度から算出される前記主軸の位置と前記選択するステップによって選択中の前記特性データとに基づき前記従動軸の移動量を特定し、当該移動量に基づき特定される速度を、前記速度指令値として算出し、
前記選択するステップは、前記主軸および前記従動軸の動作中に前記主軸の速度がステップ状に変化した場合、前記記憶するステップによって記憶された前記複数の特性データの中から前記主軸の速度変化に応じた他の特性データを特定し、当該他の特性データに、選択中の前記特性データを切り替える、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主軸の動作に対して従動軸の動作を同期させる同期制御を制御周期ごとに実行する制御装置、および当該制御装置における制御方法に関する。
【背景技術】
【０００２】
プログラマブルロジックコントローラ（Programmable Logic Controller：以下「ＰＬＣ」と称す）は、たとえば、ユーザプログラムを実行するマイクロプロセッサを含むＣＰＵ（Central Processing Unit）ユニット、外部のスイッチやセンサからの信号入力および外部のリレーやアクチュエータへの信号出力を担当するＩＯ（Input Output）ユニットといった複数のユニットで構成される。これらのユニット間で、ユーザプログラム実行サイクルごとに、ＰＬＣシステムバスおよび／またはフィールドネットワークを経由してデータの授受をしながら、ＰＬＣは制御動作を実行する。
【０００３】
機械、設備などの動作の制御としては、モータの運動を制御するためのモーション制御が含まれる場合がある。このようなモーション制御の典型例としては、位置決めテーブルやロボットといったメカニカル機構の位置決めを行うようなアプリケーションが想定される。
【０００４】
モーション制御においては、主軸と従動軸とが何らかの関係を保ちつつ動作する一般的な動作方式として、ギア動作やカム動作が採用される。ギア動作は、主軸の速度に予め設けられた所定の比率であるギア比を乗算することで、従動軸に対する指令速度を決定する方式である。カム動作は、主軸の位置（位相）に対する従動軸の移動量（変位）を、制御周期ごとにカムテーブルに基づき特定することで、適切にギア比を変化させながら従動軸に対する指令速度を決定する方式である。
【０００５】
モーション制御が実行されると、従動軸は、まずカム動作によって主軸を追いかけ、やがてギア動作の開始位置に到達すると、ギア動作に切り替えて、所定のギア比に基づき主軸の動作に同期しながら主軸に追従する。以下では、カム動作を「追いかけ動作」、ギア動作を「同期動作」ともいう。このような主軸と従動軸との同期に関しては、様々な技術が提案されている。
【０００６】
たとえば、特開２０１７−３３３４５号公報（特許文献１）には、マスタ軸とスレーブ軸とが同期する際にマスタ軸の速度に対するスレーブ軸の速度の同期倍率を徐々に変化させることで、同期開始時の機械的なショックを解消する技術が開示されている。
【０００７】
また、特許第５８０３３３７号公報（特許文献２）には、追いかけ動作を従動軸が開始する際に、時間変位に対する従動軸の速度を表すカム曲線を作成し、作成したカム曲線を用いて従動軸に追いかけ動作を行わせることで、従動軸に加わる衝撃を緩和する技術が開示されている。
【０００８】
また、特許第５３２５９４９号公報（特許文献３）には、主軸モータと送り軸モータとを同期運転してタッピング加工動作を行うタッピング加工装置において、主軸の動作が反転したときに送り軸の反転動作の追従性を向上させる反転補正量を作成し、作成した反転補正量を送り軸に対する速度指令値または送り軸制御部の速度制御ループの積分器に加算することで、主軸と送り軸との同期誤差を低減する技術が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１７−３３３４５号公報
【特許文献２】特許第５８０３３３７号公報
【特許文献３】特許第５３２５９４９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
実使用においては、追いかけ動作中および同期動作中のいずれかで、動作対象となる主軸が切り替わったり、主軸の動作方向が反転したりすることで、主軸の速度がステップ状に変化する場合があり得る。すなわち、従動軸が追いかけ動作や同期動作によって主軸に追従している間に、動作中の主軸の速度が急激に（連続的ではなく）変化する場合があり、それに伴い、動作中の従動軸に対して機械的な衝撃が加わる虞がある。
【００１１】
上述した特許文献１および特許文献２に開示された技術はいずれも、従動軸が、停止状態から追いかけ動作を開始する際に従動軸に生じる振動を抑えることに着目したものであり、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合に従動軸に生じる振動を抑えることまでは鑑みられていない。また、特許文献３に開示された技術では、主軸の動作が反転したときに送り軸の反転動作の追従性を向上させることに着目したものであり、やはり主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合に従動軸に生じる振動を抑えることまでは鑑みられていない。
【００１２】
本発明は、主軸の動作に対して従動軸の動作を同期させる制御において、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合に従動軸に生じる振動を抑える技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本開示の一例に従えば、主軸の動作に対して従動軸の動作を同期させる制御装置が提供される。制御装置は、制御周期ごとに主軸の速度を取得する取得部と、主軸の位置に対する従動軸の移動量を特定するための複数の特性データを記憶する記憶部と、複数の特性データのうちからいずれかの特性データを選択する選択部と、従動軸に対して指令する速度を速度指令値として算出する算出部と、算出部によって算出された速度指令値を従動軸に出力する出力部とを備え、算出部は、主軸の動作に対して従動軸の動作を同期させる同期動作中においては、取得部によって取得された主軸の速度に所定の比率を乗算した速度を、速度指令値として算出し、同期動作が開始する位置に従動軸が到達する前においては、取得部によって取得された主軸の速度から算出される主軸の位置と選択部によって選択中の特性データとに基づき従動軸の移動量を特定し、当該移動量に基づき特定される速度を、速度指令値として算出し、選択部は、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合、記憶部に記憶された複数の特性データの中から主軸の速度変化に応じた他の特性データを特定し、当該他の特性データに、選択中の特性データを切り替える。
【００１４】
この開示によれば、制御周期ごとに取得された主軸の速度に所定の比率を乗算した速度が速度指令値として従動軸に出力されることで、従動軸の同期動作が行われる。また、制御周期ごとに取得された主軸の速度から算出される主軸の位置と選択中の特性データとに基づき従動軸の移動量が特定され、当該移動量に基づき特定される速度が速度指令値として従動軸に出力されることで、同期動作が開始する位置に主軸および従動軸が到達するまで従動軸の動作（追いかけ動作）が行われる。ここで、追いかけ動作や同期動作のような主軸および従動軸の動作中において主軸の速度がステップ状に変化した場合、選択中の特性データをそのまま用いてしまうと、適切な速度指令値を従動軸に出力することができない虞があるが、この開示によれば、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合、主軸の速度変化に応じた他の特性データに、選択中の特性データが切り替えられるため、適切な速度指令値を従動軸に出力することができる。その結果、従動軸に生じる振動を抑えることができる。
【００１５】
上述の開示において、主軸として、第１主軸と、当該第１主軸の速度とはステップ状に異なる速度で動作する第２主軸とが設けられており、制御装置は、外部からの指令に基づき第１主軸から第２主軸に主軸を切り替える切替部をさらに備え、選択部は、主軸および従動軸の動作中に切替部によって主軸が切り替えられた場合、主軸の切り替えに応じた他の特性データに、選択中の特性データを切り替える。
【００１６】
この開示によれば、外部からの指令によって主軸を切り替えることができるため、ユーザの利便性が向上し、さらに、主軸の切り替えに応じた他の特性データに、選択中の特性データが切り替えられるため、適切な速度指令値を従動軸に出力することができる。
【００１７】
上述の開示において、制御装置は、外部からの指令に基づき主軸の動作方向を反転させる反転部をさらに備え、選択部は、主軸および従動軸の動作中に反転部によって主軸が反転された場合、主軸の反転に応じた他の特性データに、選択中の特性データを切り替える。
【００１８】
この開示によれば、外部からの指令によって主軸の動作方向を反転させることができるため、ユーザの利便性が向上し、さらに、主軸の反転に応じた他の特性データに、選択中の特性データが切り替えられるため、適切な速度指令値を従動軸に出力することができる。
【００１９】
上述の開示において、取得部は、主軸に対して指令された速度、または主軸の実測された速度を取得する。
【００２０】
この開示によれば、同期動作や追いかけ動作の制御において、検出対象となる速度として指令値または実測値を検出することができるため、状況に応じた制御を行うことができる。
【００２１】
上述の開示において、制御装置は、主軸の振動を検出する振動検出部をさらに備え、取得部は、振動検出部によって主軸の振動が検出された場合、主軸に対して指令された速度から主軸の実測された速度に取得対象を切り替える。
【００２２】
この開示によれば、同期動作や追いかけ動作の制御において、主軸の振動が検出された場合、主軸に対して指令された速度から主軸の実測された速度に取得対象を切り替えることができるため、主軸の振動によって従動軸の動作が影響されない。
【００２３】
上述の開示において、特性データは、データテーブル、１次式、および多項式の少なくともいずれかに基づき規定されたデータである。
【００２４】
この開示によれば、様々な形態で特性データを規定することができ、ユーザの利便性が向上する。
【００２５】
上述の開示において、選択部は、高速フーリエ変換によって算出された従動軸の固有振動数に基づき特性データを選択する。
【００２６】
この開示によれば、従動軸の固有振動数を考慮して特性データが選択されるため、従動軸に生じる振動を抑えることができる。
【００２７】
上述の開示において、制御装置は、同期動作が開始する位置に従動軸が到達する前において、動作中の主軸の速度がステップ状に変化したときに選択部によって特性データが切り替えられた場合、従動軸の移動量を平滑するフィルタ処理部をさらに備える。
【００２８】
この開示によれば、動作中の主軸の速度がステップ状に変化したときに選択中の特性データが切り替えられた場合、切替後の特性データにおける従動軸の移動量が平滑されるため、特性データの切り替えによって従動軸の移動量が急激に変化することを防止することができる。
【００２９】
本開示の別の一例に従えば、主軸の動作に対して従動軸の動作を同期させる制御装置における制御方法が提供される。制御方法は、制御周期ごとに主軸の速度を取得するステップと、主軸の位置に対する従動軸の移動量を特定するための複数の特性データを記憶するステップと、複数の特性データのうちからいずれかの特性データを選択するステップと、従動軸に対して指令する速度を速度指令値として算出するステップと、算出するステップによって算出された速度指令値を従動軸に出力するステップとを含み、算出するステップは、主軸の動作に対して従動軸の動作を同期させる同期動作中においては、取得するステップによって取得された主軸の速度に所定の比率を乗算した速度を、速度指令値として算出し、同期動作が開始する位置に従動軸が到達する前においては、取得するステップによって取得された主軸の速度から算出される主軸の位置と選択するステップによって選択中の特性データとに基づき従動軸の移動量を特定し、当該移動量に基づき特定される速度を、速度指令値として算出し、選択するステップは、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合、記憶部に記憶された複数の特性データの中から主軸の速度変化に応じた他の特性データを特定し、当該他の特性データに、選択中の特性データを切り替える。
【００３０】
この開示によれば、制御周期ごとに取得された主軸の速度に所定の比率を乗算した速度が速度指令値として従動軸に出力されることで、従動軸の同期動作が行われる。また、制御周期ごとに取得された主軸の速度から算出される主軸の位置と選択中の特性データとに基づき従動軸の移動量が特定され、当該移動量に基づき特定される速度が速度指令値として従動軸に出力されることで、同期動作が開始する位置に主軸および従動軸が到達するまで従動軸の動作（追いかけ動作）が行われる。ここで、追いかけ動作や同期動作のような主軸および従動軸の動作中において主軸の速度がステップ状に変化した場合、選択中の特性データをそのまま用いてしまうと、適切な速度指令値を従動軸に出力することができない虞があるが、この開示によれば、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合、主軸の速度変化に応じた他の特性データに、選択中の特性データが切り替えられるため、適切な速度指令値を従動軸に出力することができる。その結果、従動軸に生じる振動を抑えることができる。
【発明の効果】
【００３１】
本発明によれば、主軸の動作に対して従動軸の動作を同期させる制御において、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合に従動軸に生じる振動を抑える技術を提供することができる。
【図面の簡単な説明】
【００３２】
【図１】本実施の形態に係る制御装置の適用例を説明するための模式図である。
【図２】モーション制御の概要を視覚的に説明するための模式図である。
【図３】主軸が切り替わった場合における主軸および従動軸の速度変化を示すタイミングチャートである。
【図４】主軸が反転した場合における主軸および従動軸の速度変化を示すタイミングチャートである。
【図５】主軸が反転した場合における主軸および従動軸の速度変化を示すタイミングチャートである。
【図６】ＰＬＣシステムの概略構成を示す模式図である。
【図７】ＣＰＵユニットのハードウェア構成を示す模式図である。
【図８】ＣＰＵユニットで実行されるソフトウェア構成を示す模式図である。
【図９】制御装置の機能構成を示す模式図である。
【図１０】主軸の切り替えについて説明するための模式図である。
【図１１】主軸の振動検出について説明するためのタイミングチャートである。
【図１２】カム曲線について説明するためのグラフである。
【図１３】カムテーブルのデータ構造を示す図である。
【図１４】カム曲線の切り替えについて説明するための模式図である。
【図１５】制御装置が実行する追いかけ動作中切替処理を示すフローチャートである。
【図１６】制御装置が実行する同期動作中切替処理を示すフローチャートである。
【図１７】主軸が切り替わった場合における主軸および従動軸の速度変化を示すタイミングチャートである。
【図１８】主軸が反転した場合における主軸および従動軸の速度変化を示すタイミングチャートである。
【発明を実施するための形態】
【００３３】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００３４】
＜Ａ．適用例＞
まず、図１を参照して、本発明が適用される場面の一例について説明する。図１は、本実施の形態に係る制御装置の適用例を説明するための模式図である。以下の説明においては、制御装置の一例として、主として、ＰＬＣ（プログラマブルコントローラ）を想定する。
【００３５】
本実施の形態に係る制御装置６０は、工業製品の生産ラインや物流システムにおける搬送装置などに適用され得る。たとえば、図１に示す物流システムにおいては、Ｘ方向に向けてワーク３５０を搬送するコンベア３０１、およびＹ方向に向けてワーク３５０を搬送するコンベア３０２など、複数種類の搬送経路が設けられている。これらの搬送経路は、システム上、搬送速度が互いに異なる場合がある。この例においても、コンベア３０１と、コンベア３０２とでは、搬送速度が互いに異なる。
【００３６】
上述したような搬送方向および搬送速度が互いに異なる複数のコンベア３０１，３０２によってワーク３５０が搬送される。たとえば、コンベア３０１によってＸ方向にワーク３５０が搬送された後、切替ポイントＰにおいて、コンベア３０１からコンベア３０２へとワーク３５０を搬送するコンベアが切り替わり、切替後においては、コンベア３０２によってＹ方向にワーク３５０が搬送される。
【００３７】
コンベアによって搬送されるワーク３５０に対しては、ロボット４００が追従する。ロボット４００は、先行動作するコンベア３０１によって搬送されるワーク３５０を追いかけ、やがてワーク３５０に追いつくと、コンベア３０１の動作と同期しながらワーク３５０を追従する。
【００３８】
コンベア３０１からコンベア３０２へとワーク３５０を搬送するコンベアが切り替わると、ロボット４００は、先行動作するコンベア３０２によって搬送されるワーク３５０を再び追いかけ、やがてワーク３５０に追いつくと、コンベア３０２の動作と同期しながらワーク３５０を追従する。
【００３９】
ロボット４００は、所定期間に亘ってコンベア３０２の動作と同期しながらワーク３５０を追従すると、図示しないアームでワーク３５０を掴み取り、目的の場所までワーク３５０を持ち運ぶ。
【００４０】
このように、物流システムにおいて、制御装置６０は、コンベア３０１，３０２、およびロボット４００の動作を制御するためのモーション制御を実行する。これにより、制御装置６０は、先行動作するコンベア３０１，３０２によって搬送されるワーク３５０をロボット４００に追いかけさせる「追いかけ動作」と、コンベア３０２の動作と同期しながらロボット４００にワーク３５０を追従させる「同期動作」とを実現する。
【００４１】
図２は、モーション制御の概要を視覚的に説明するための模式図である。なお、図２に示す例において、モータ５００およびモータ６００は、図１に示すコンベア３０１，３０２を動作させる駆動源に対応する。すなわち、モータ５００の主軸５０１やモータ６００の主軸６０１は、コンベア３０１，３０２を動作させるモータの軸に対応する。また、モータ５５０およびモータ６５０は、図１に示すロボット４００を動作させる駆動源に対応する。すなわち、モータ５５０の従動軸５５１やモータ６５０の従動軸６５１は、ロボット４００を動作させるモータの軸に対応する。
【００４２】
図２（ａ）を参照しながらモーション制御によって実現される追いかけ動作（カム動作）について説明する。図２（ａ）に示すように、モータ５００の軸である主軸５０１にはカム５０２が固定されており、主軸５０１の回転に伴いカム５０２が回転する。また、モータ５５０の軸である従動軸５５１には、カム５０２に接する接触子５５２が固定されており、カム５０２の回転に伴い接触子５５２が回転する。このような構成によれば、モータ５００の駆動によって主軸５０１の位置（位相）が変化すると、従動軸５５１の移動量（変位，回転量）が変化する。
【００４３】
制御装置６０は、主軸５０１の位置に対する従動軸５５１の移動量を特定するための特性データを、主軸５０１の種類に応じて予め記憶している。制御装置６０は、動作中の主軸５０１の種類に応じて適切な特性データを選択し、選択した特性データに基づき、従動軸５５１に対する指令速度を決定する。
【００４４】
図２（ｂ）を参照しながらモーション制御によって実現される同期動作（ギア動作）について説明する。図２（ｂ）に示すように、モータ６００の軸である主軸６０１にはギア６０２が固定されており、主軸６０１の回転に伴いギア６０２が回転する。また、モータ６５０の軸である従動軸６５１には、ギア６０２に係合するギア６５２が固定されており、ギア６０２の回転に伴いギア６５２が回転する。ギア６０２の歯数とギア６５２の歯数とから、ギア比（歯車比）が決定される。
【００４５】
制御装置６０は、動作中の主軸６０１の速度にギア比を乗算することで、従動軸６５１に対する指令速度を決定する。
【００４６】
図１に示す例によると、制御装置６０は、コンベアによって搬送されるワーク３５０をロボット４００に追従させる追いかけ動作においては、コンベアの主軸の位置に対するロボット４００の従動軸の移動量を特定するための特性データに基づき、ロボット４００の従動軸の速度を決定し、決定した速度に基づきロボット４００の従動軸を制御する。
【００４７】
また、制御装置６０は、コンベアの動作と同期しながらロボット４００にワーク３５０を追従させる同期動作においては、コンベアの主軸の速度にギア比を乗算することで、ロボット４００の従動軸の速度を決定し、決定した速度に基づきロボット４００の従動軸を制御する。
【００４８】
ここで、コンベア３０１からコンベア３０２へとワーク３５０を搬送するコンベアが切り替わることによって、主軸の速度がステップ状に変化する場合がある。具体的には、コンベア３０１を駆動させるモータの軸（主軸）から、コンベア３０２を駆動させるモータの軸（主軸）へと、ロボット４００を駆動させるモータの軸（従動軸）の同期対象となる主軸が切り替わると、主軸の速度がステップ状に変化する。
【００４９】
追いかけ動作中や同期動作中において、主軸が切り替わることによって主軸の速度がステップ状に変化すると、主軸に追従する従動軸に対して機械的な衝撃が加わる虞がある。たとえば、図３は、主軸が切り替わった場合における主軸および従動軸の速度変化を示すタイミングチャートである。なお、図３では、同期動作中に主軸が切り替わった場合の例を示す。
【００５０】
図３においては、縦軸を速度、横軸を時間で表す。また、Ｘ方向にワーク３５０を搬送させる主軸Ａの速度をＶ１ｘ、Ｙ方向にワーク３５０を搬送させる主軸Ｂの速度をＶ１ｙで表す。Ｘ方向にロボット４００を動作させた場合の従動軸の速度をＶ２ｘ、Ｙ方向にロボット４００を動作させた場合の従動軸の速度をＶ２ｙで表す。
【００５１】
図３に示すように、タイミングｔ０〜ｔ１の期間においては、主軸Ａが動作する一方で主軸Ｂが動作していないため、主軸Ａの速度Ｖ１ｘのみが生じる。これに対して、従動軸は、主軸の速度に所定のギア比を乗算した速度でＸ方向のみに動作する。
【００５２】
ここで、タイミングｔ１（たとえば、図１に示す切替ポイントＰにワーク３５０が到達したタイミング）で主軸Ａから主軸Ｂへと主軸が切り替わると、それ以降、主軸Ｂが動作する一方で主軸Ａが動作しないため、主軸Ｂの速度Ｖ１ｙのみが生じる。主軸Ａと主軸Ｂとでは速度が異なるため、主軸Ａから主軸Ｂへと主軸が切り替わることで、主軸の速度がステップ状に変化する。さらに、主軸Ａと主軸Ｂとでは動作方向が異なるため、主軸Ａから主軸Ｂへと主軸が切り替わることで、主軸の動作方向が変化する。
【００５３】
これに対して、従動軸は、主軸の切り替えに追従するように、Ｘ方向からＹ方向へと動作方向を変更し、さらに、ステップ状に異なる速度に変化しようとする。その結果、従動軸、および従動軸に接続されるロボット４００に対して機械的な衝撃が加わり、従動軸やロボット４００が振動する虞がある。したがって、たとえば、図３に示すように、タイミングｔ１直後において、従動軸に対して、Ｘ方向と反対方向に振動が生じるとともに、Ｙ方向にも振動が生じる。
【００５４】
なお、図３においては、同期動作中に主軸が切り替わった場合の例を示したが、追いかけ動作中に主軸が切り替わった場合においても、主軸の速度がステップ状に変化することで、従動軸に振動が生じる。
【００５５】
また、追いかけ動作中や同期動作中において、主軸が切り替わることに限らず、主軸が反転することも考えられる。主軸が反転することによって主軸の速度がステップ状に変化すると、主軸に追従する従動軸に対して機械的な衝撃が加わる虞がある。たとえば、図４および図５は、主軸が反転した場合における主軸および従動軸の速度変化を示すタイミングチャートである。なお、図４および図５では、同期動作中に主軸が反転した場合の例を示す。なお、図１に示す例を想定すると、主軸の反転としては、主軸がＸ方向に動作している場合にＸ方向とは反対の方向に反転する場合、あるいは、主軸がＹ方向に動作している場合にＹ方向とは反対の方向に反転する場合が想定される。
【００５６】
図４および図５においては、縦軸を速度、横軸を時間で表す。また、Ｘ方向またはＹ方向にワーク３５０を搬送させる主軸の速度をＶ１で表す。また、ワーク３５０に追従するようにしてＸ方向またはＹ方向にロボット４００を動作させた場合の従動軸の速度をＶ２で表す。
【００５７】
図４および図５に示すように、タイミングｔ０〜ｔ１の期間においては、主軸がＸ方向またはＹ方向などの一定方向に動作している。これに対して、従動軸は、主軸の速度に所定のギア比を乗算した速度で主軸と同じ方向に動作する。
【００５８】
ここで、タイミングｔ１で主軸が反転すると、それ以降、主軸の速度が反転前とは逆方向の−Ｖ１方向に転じ、主軸の速度がステップ状に変化する。さらに、主軸が反転するため、主軸の動作方向が逆方向に変化する。その後、タイミングｔ２で主軸が再び反転すると、それ以降、主軸の速度が反転前とは逆方向のＶ１方向に生じ、主軸の速度がステップ状に変化する。さらに、主軸が反転するため、主軸の動作方向が逆方向に変化する。
【００５９】
これに対して、従動軸は、主軸の反転に追従するように、反転してステップ状に異なる速度に変化しようとする。その結果、従動軸、および従動軸に接続されるロボット４００に機械的な衝撃が加わり、従動軸やロボット４００が振動する虞がある。したがって、たとえば、図４および図５に示すように、タイミングｔ１直後およびタイミングｔ２直後において、従動軸に対して振動が生じる。
【００６０】
さらに、図５に示すように、主軸が反転した場合には、主軸自身に対しても振動が生じることがあるため、主軸に追従して動作する従動軸に対しても、やはり主軸の振動がそのまま生じる。
【００６１】
なお、図４および図５においては、同期動作中に主軸が反転した場合の例を示したが、追いかけ動作中に主軸が反転した場合においても、主軸の速度がステップ状に変化することで、従動軸に振動が生じる。
【００６２】
以上のように、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合、従動軸に振動が生じることがある。そこで、本実施の形態においては、制御装置６０は、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合、主軸の速度変化に応じた他の特性データに、選択中の特性データを切り替えて、再び従動軸に追いかけ動作を行わせる。
【００６３】
たとえば、図１に示す例の場合、制御装置６０は、Ｘ方向に向けて主軸が動作している間では、主軸の位置に対する従動軸の移動量を特定するための特性データのうちの特性データＡに基づき従動軸に追いかけ動作を行わせる。その後、制御装置６０は、Ｘ方向において同期動作を行っている間に切替ポイントＰで主軸がＹ方向に切り替わると、今度は、特性データのうちの特性データＢに基づき従動軸に追いかけ動作を行わせる。
【００６４】
このように、制御装置６０は、予め記憶していた特性データの中から、主軸の種類や主軸の速度に応じて最適な特性データを選択し、選択した特性データに基づき従動軸を動作させることで、適切な速度指令値を従動軸に出力することができ、その結果、従動軸に生じる振動を抑えることができる。
【００６５】
以上、本実施の形態に係る制御装置６０の適用例について説明した。以下では、より詳細に、本実施の形態に係る制御装置６０の構成および処理について説明する。
【００６６】
＜Ｂ．システム構成＞
図６は、ＰＬＣシステムの概略構成を示す模式図である。図６に示すように、ＰＬＣシステムＳＹＳは、ＰＬＣ１と、フィールドネットワーク２を介してＰＬＣ１に接続されるサーボドライバ３およびリモートＩＯターミナル５と、フィールド機器である検出スイッチ６およびリレー７とを含む。また、ＰＬＣ１には、接続ケーブル１０およびＨＵＢ１６を介してタッチディスプレイ１７およびサポート装置８が接続される。
【００６７】
ＰＬＣ１は、主たる演算処理を実行するＣＰＵユニット１３と、１つ以上のＩＯユニット１４と、特殊ユニット１５とを含む。これらのユニットは、ＰＬＣシステムバス１１を介して、データを互いに遣り取りできるように構成されている。また、これらのユニットには、電源ユニット１２によって適切な電圧の電源が供給される。なお、ＰＬＣ１として構成される各ユニットは、ＰＬＣメーカーが提供するものであるので、ＰＬＣシステムバス１１は、一般にＰＬＣメーカーごとに独自に開発され、使用されている。これに対して、フィールドネットワーク２については、異なるメーカーの製品同士が接続できるように、その規格などが公開されている場合も多い。
【００６８】
ＣＰＵユニット１３の詳細については、図７を参照して後述する。ＩＯユニット１４は、一般的な入出力処理に関するユニットであり、オン／オフといった２値化されたデータの入出力を司る。すなわち、ＩＯユニット１４は、検出スイッチ６などのセンサが何らかの対象物を検出している状態（オン）および何らの対象物も検出していない状態（オフ）のいずれであるかという情報を収集する。また、ＩＯユニット１４は、リレー７やアクチュエータといった出力先に対して、活性化するための指令（オン）および不活性化するための指令（オフ）のいずれかを出力する。
【００６９】
特殊ユニット１５は、アナログデータの入出力、温度制御、特定の通信方式による通信といった、ＩＯユニット１４ではサポートしない機能を有する。
【００７０】
フィールドネットワーク２は、ＣＰＵユニット１３と遣り取りされる各種データを伝送する。フィールドネットワーク２としては、典型的には、各種の産業用イーサネット（登録商標）を用いることができる。産業用イーサネット（登録商標）としては、たとえば、ＥｔｈｅｒＣＡＴ（登録商標）、Ｐｒｏｆｉｎｅｔ  ＩＲＴ、ＭＥＣＨＡＴＲＯＬＩＮＫ（登録商標）−ＩＩＩ、Ｐｏｗｅｒｌｉｎｋ、ＳＥＲＣＯＳ（登録商標）−ＩＩＩ、ＣＩＰ  Ｍｏｔｉｏｎなどが知られており、これらのうちのいずれを採用してもよい。本実施の形態に係るＰＬＣシステムＳＹＳでは、典型的に、ＥｔｈｅｒＣＡＴ（登録商標）をフィールドネットワーク２として採用する場合の構成について例示する。
【００７１】
なお、図６に示す例では、ＰＬＣシステムバス１１およびフィールドネットワーク２の両方を有するＰＬＣシステムＳＹＳを例示するが、一方のみを搭載するシステム構成を採用してもよい。たとえば、フィールドネットワーク２ですべてのユニットを接続してもよい。あるいは、フィールドネットワーク２を使用せずに、サーボドライバ３をＰＬＣシステムバス１１に直接接続してもよい。さらに、フィールドネットワーク２の通信ユニットをＰＬＣシステムバス１１に接続し、ＣＰＵユニット１３から当該通信ユニット経由で、フィールドネットワーク２に接続された機器との間の通信を行うようにしてもよい。
【００７２】
サーボドライバ３は、フィールドネットワーク２を介してＣＰＵユニット１３に接続されるとともに、ＣＰＵユニット１３からの指令値に従ってサーボモータ４を駆動する。具体的には、サーボドライバ３は、ＰＬＣ１から一定周期で、位置指令値、速度指令値、トルク指令値といった指令値を受ける。また、サーボドライバ３は、サーボモータ４の軸（前述の主軸や従動軸）に接続されている位置センサ（ロータリーエンコーダ）やトルクセンサといった検出器から、位置、速度（典型的には、今回位置と前回位置との差から算出される）、およびトルクといったサーボモータ４の動作に係る実測値を取得する。そして、サーボドライバ３は、ＣＰＵユニット１３からの指令値を目標値に設定し、実測値をフィードバック値として、フィードバック制御を行う。すなわち、サーボドライバ３は、実測値が目標値に近づくようにサーボモータ４を駆動するための電流を調整する。なお、サーボドライバ３は、サーボモータアンプと称されることもある。
【００７３】
また、図６では、サーボモータ４とサーボドライバ３とを組み合わせたシステム例を示すが、その他の構成、たとえば、パルスモータとパルスモータドライバとを組み合わせたシステムを採用することもできる。
【００７４】
ＰＬＣシステムＳＹＳのフィールドネットワーク２には、さらに、リモートＩＯターミナル５が接続されている。リモートＩＯターミナル５は、基本的には、ＩＯユニット１４と同様に、一般的な入出力処理に関する処理を行う。具体的には、リモートＩＯターミナル５は、フィールドネットワーク２でのデータ伝送に係る処理を行うための通信カプラ５２と、１つ以上のＩＯユニット５３とを含む。これらのユニットは、リモートＩＯターミナルバス５１を介して、データを互いに遣り取りできるように構成される。
【００７５】
ＣＰＵユニット１３は、ＨＵＢ１６を介してタッチディスプレイ１７またはサポート装置８から提供されるデータを参照して所定の処理を実行することで制御対象を制御する。タッチディスプレイ１７は、ＰＬＣシステムＳＹＳの設計者や作業者などのユーザによるデータの入力操作を受け付けるディスプレイであり、ユーザによるタッチ操作入力を受け付ける図示しないタッチパネルを設ける。
【００７６】
統合開発環境となり得るサポート装置８は、一例として、汎用的なアーキテクチャに従うハードウェア（たとえば、汎用パソコン）を用いてプログラムを実行することで実現される。サポート装置８は、図示しない光学ドライブを有しており、コンピュータで読み取り可能なプログラムを非一過的に格納する記録媒体９（たとえば、ＤＶＤ（Digital Versatile Disc）などの光学記録媒体）から、その中に格納されたプログラムが読み取られてインストールされる。
【００７７】
サポート装置８で実行される各種プログラムは、記録媒体９を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードされる形でインストールされてもよい。また、本実施の形態に係るサポート装置８が提供する機能は、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【００７８】
サポート装置８からＣＰＵユニット１３に対して提供されるデータには、制御対象を制御する際に用いられるプログラムやパラメータなどが含まれる。これらのデータは、ＰＬＣシステムＳＹＳの設計者などによって作成される。
【００７９】
ＣＰＵユニット１３によって実行される上述したプログラムには、ユーザプログラムおよびシステムプログラムが含まれる。ユーザプログラムは、制御対象に応じて任意に作成される命令の組み合わせであり、ユーザが任意に作成および修正可能である。ユーザプログラムは、典型的には、国際電気標準会議（International Electrotechnical Commission：ＩＥＣ）によって規定された国際規格ＩＥＣ６１１３１−３に従って記述された一または複数の命令からなるソースコードを含む。
【００８０】
これに対して、システムプログラムは、ユーザプログラムを実行するための実行環境や、ＣＰＵユニット１３に含まれるハードウェアの制御を実現するためのプログラムである。基本的には、システムプログラムは予めＣＰＵユニット１３にインストールされている。
【００８１】
ＣＰＵユニット１３には、上位ＰＣ１８が接続されている。上位ＰＣ１８は、たとえば、データベース機能を有しており、ＣＰＵユニット１３との間で必要なデータを遣り取りすることで、ＣＰＵユニット１３が出力するイベントログなどを収集する。
【００８２】
＜Ｃ．ＣＰＵユニットのハードウェア構成＞
次に、図７を参照して、ＣＰＵユニット１３のハードウェア構成について説明する。図７は、ＣＰＵユニット１３のハードウェア構成を示す模式図である。
【００８３】
図７に示すように、ＣＰＵユニット１３は、マイクロプロセッサ１００と、チップセット１０２と、メインメモリ１０４と、不揮発性メモリ１０６と、システムタイマ１０８と、ＰＬＣシステムバスコントローラ１２０と、フィールドネットワークコントローラ１４０と、ＵＳＢコネクタ１１０とを含む。チップセット１０２と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
【００８４】
マイクロプロセッサ１００およびチップセット１０２は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。すなわち、マイクロプロセッサ１００は、チップセット１０２から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット１０２は、接続されている各種コンポーネントとの間で内部的なデータを遣り取りするとともに、マイクロプロセッサ１００に必要な命令コードを生成する。さらに、チップセット１０２は、マイクロプロセッサ１００での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。
【００８５】
ＣＰＵユニット１３は、記憶部として、メインメモリ１０４および不揮発性メモリ１０６を有する。
【００８６】
メインメモリ１０４は、揮発性の記憶領域（ＲＡＭ）であり、ＣＰＵユニット１３への電源投入後にマイクロプロセッサ１００で実行されるべき各種プログラムを保持する。また、メインメモリ１０４は、マイクロプロセッサ１００による各種プログラムの実行時の作業用メモリとしても使用される。このようなメインメモリ１０４としては、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）といったデバイスが用いられる。
【００８７】
一方、不揮発性メモリ１０６は、リアルタイムＯＳ（Operating System）、ＰＬＣ１のシステムプログラム、ユーザプログラム、モーション演算プログラム、システム設定パラメータといったデータを不揮発的に保持する。これらのプログラムやデータは、必要に応じて、マイクロプロセッサ１００がアクセスできるようにメインメモリ１０４にコピーされる。このような不揮発性メモリ１０６としては、フラッシュメモリのような半導体メモリを用いることができる。あるいは、ハードディスクドライブのような磁気記録媒体や、ＤＶＤ−ＲＡＭ（Digital Versatile Disk Random Access Memory）のような光学記録媒体などを用いることもできる。
【００８８】
システムタイマ１０８は、一定周期ごとに割り込み信号を発生してマイクロプロセッサ１００に提供する。典型的には、ハードウェアの仕様によって、複数の異なる周期でそれぞれ割り込み信号を発生するように構成されるが、ＯＳ（Operating System）やＢＩＯＳ（Basic Input Output System）などによって、任意の周期で割り込み信号を発生するように設定することもできる。このシステムタイマ１０８が発生する割り込み信号を利用して、後述するようなモーション制御サイクルごとの制御動作が実現される。
【００８９】
ＣＰＵユニット１３は、通信回路として、ＰＬＣシステムバスコントローラ１２０およびフィールドネットワークコントローラ１４０を有する。
【００９０】
ＰＬＣシステムバスコントローラ１２０は、ＰＬＣシステムバス１１を介したデータの遣り取りを制御する。より具体的には、ＰＬＣシステムバスコントローラ１２０は、ＤＭＡ（Dynamic Memory Access）制御回路１２２と、ＰＬＣシステムバス制御回路１２４と、バッファメモリ１２６とを含む。なお、ＰＬＣシステムバスコントローラ１２０は、ＰＬＣシステムバスコネクタ１３０を介してＰＬＣシステムバス１１と内部的に接続される。
【００９１】
バッファメモリ１２６は、ＰＬＣシステムバス１１を介して他のユニットへ出力されるデータ（以下「出力データ」とも称す。）の送信バッファ、および、ＰＬＣシステムバス１１を介して他のユニットから入力されるデータ（以下「入力データ」とも称す。）の受信バッファとして機能する。なお、マイクロプロセッサ１００による演算処理によって作成された出力データは、原始的にはメインメモリ１０４に格納される。そして、特定のユニットへ転送されるべき出力データは、メインメモリ１０４から読み出されて、バッファメモリ１２６に一次的に保持される。また、他のユニットから転送された入力データは、バッファメモリ１２６に一次的に保持された後、メインメモリ１０４に移される。
【００９２】
ＤＭＡ制御回路１２２は、メインメモリ１０４からバッファメモリ１２６への出力データの転送、および、バッファメモリ１２６からメインメモリ１０４への入力データの転送を行う。
【００９３】
ＰＬＣシステムバス制御回路１２４は、ＰＬＣシステムバス１１に接続される他のユニットとの間で、バッファメモリ１２６の出力データを送信する処理および入力データを受信してバッファメモリ１２６に格納する処理を行う。典型的には、ＰＬＣシステムバス制御回路１２４は、ＰＬＣシステムバス１１における物理層およびデータリンク層の機能を提供する。
【００９４】
フィールドネットワークコントローラ１４０は、フィールドネットワーク２を介したデータの遣り取りを制御する。すなわち、フィールドネットワークコントローラ１４０は、用いられるフィールドネットワーク２の規格に従い、出力データの送信および入力データの受信を制御する。フィールドネットワークコントローラ１４０は、ＤＭＡ制御回路１４２と、フィールドネットワーク制御回路１４４と、バッファメモリ１４６とを含む。なお、フィールドネットワークコントローラ１４０は、ＰＬＣシステムバスコネクタ１５０を介してＰＬＣシステムバス１１と内部的に接続される。
【００９５】
ＤＭＡ制御回路１４２は、メインメモリ１０４からバッファメモリ１４６への出力データの転送、および、バッファメモリ１４６からメインメモリ１０４への入力データの転送を行う。
【００９６】
フィールドネットワーク制御回路１４４は、フィールドネットワーク２に接続される他の装置との間で、バッファメモリ１４６の出力データを送信する処理および入力データを受信してバッファメモリ１４６に格納する処理を行う。典型的には、フィールドネットワーク制御回路１４４は、フィールドネットワーク２における物理層およびデータリンク層の機能を提供する。
【００９７】
ＵＳＢコネクタ１１０は、サポート装置８とＣＰＵユニット１３とを接続するためのインターフェイスである。典型的には、サポート装置８から転送される、ＣＰＵユニット１３のマイクロプロセッサ１００で実行可能なプログラムなどは、ＵＳＢコネクタ１１０を介してＰＬＣ１に取込まれる。
【００９８】
＜Ｄ．ＣＰＵユニットのソフトウェア構成＞
次に、図８を参照して、本実施の形態に係る各種機能を提供するためのソフトウェア群について説明する。これらのソフトウェアに含まれる命令コードは、適切なタイミングで読み出され、ＣＰＵユニット１３のマイクロプロセッサ１００によって実行される。図８は、ＣＰＵユニット１３で実行されるソフトウェア構成を示す模式図である。
【００９９】
図８に示すように、ＣＰＵユニット１３で実行されるソフトウェアとしては、リアルタイムＯＳ２００と、システムプログラム２１０と、ユーザプログラム２３６との３階層になっている。
【０１００】
リアルタイムＯＳ２００は、ＣＰＵユニット１３のコンピュータアーキテクチャに応じて設計されており、マイクロプロセッサ１００がシステムプログラム２１０およびユーザプログラム２３６を実行するための基本的な実行環境を提供する。このリアルタイムＯＳは、典型的には、ＰＬＣのメーカーあるいは専門のソフトウェア会社などによって提供される。
【０１０１】
システムプログラム２１０は、ＰＬＣ１としての機能を提供するためのソフトウェア群である。具体的には、システムプログラム２１０は、スケジューラプログラム２１２と、出力処理プログラム２１４と、入力処理プログラム２１６と、シーケンス命令演算プログラム２３２と、モーション演算プログラム２３４と、その他のシステムプログラム２２０とを含む。なお、一般には出力処理プログラム２１４および入力処理プログラム２１６は、連続的（一体として）に実行されるので、これらのプログラムを、ＩＯ処理プログラム２１８と総称する場合もある。
【０１０２】
ユーザプログラム２３６は、ユーザにおける制御目的に応じて作成される。すなわち、ＰＬＣシステムＳＹＳを用いて制御する対象のライン（プロセス）などに応じて、任意に設計されるプログラムである。
【０１０３】
ユーザプログラム２３６は、シーケンス命令演算プログラム２３２およびモーション演算プログラム２３４と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラム２３６は、シーケンス命令演算プログラム２３２およびモーション演算プログラム２３４によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。そのため、ユーザプログラム２３６、シーケンス命令演算プログラム２３２、およびモーション演算プログラム２３４を、制御プログラム２３０と総称する場合もある。
【０１０４】
このように、ＣＰＵユニット１３のマイクロプロセッサ１００は、記憶部に格納されたシステムプログラム２１０およびユーザプログラム２３６を実行する。
【０１０５】
次に、各プログラムについてより詳細に説明する。ユーザプログラム２３６は、上述したように、ユーザにおける制御目的（たとえば、対象のラインやプロセス）に応じて作成される。ユーザプログラム２３６は、典型的には、ＣＰＵユニット１３のマイクロプロセッサ１００で実行可能なオブジェクトプログラム形式になっている。このユーザプログラム２３６は、サポート装置８などにおいて、ラダー言語などによって記述されたソースプログラムがコンパイルされることで生成される。そして、生成されたオブジェクトプログラム形式のユーザプログラム２３６は、サポート装置８から接続ケーブル１０を介してＣＰＵユニット１３へ転送され、不揮発性メモリ１０６などに格納される。
【０１０６】
スケジューラプログラム２１２は、出力処理プログラム２１４、入力処理プログラム２１６、および制御プログラム２３０について、各実行サイクルでの処理開始および処理中断後の処理再開を制御する。より具体的には、スケジューラプログラム２１２は、ユーザプログラム２３６およびモーション演算プログラム２３４の実行を制御する。
【０１０７】
出力処理プログラム２１４は、ユーザプログラム２３６（制御プログラム２３０）の実行によって生成された出力データを、ＰＬＣシステムバスコントローラ１２０および／またはフィールドネットワークコントローラ１４０へ転送するのに適した形式に再配置する。ＰＬＣシステムバスコントローラ１２０またはフィールドネットワークコントローラ１４０が、マイクロプロセッサ１００からの、送信を実行するための指示を必要とする場合は、出力処理プログラム２１４がそのような指示を発行する。
【０１０８】
入力処理プログラム２１６は、ＰＬＣシステムバスコントローラ１２０および／またはフィールドネットワークコントローラ１４０によって受信された入力データを、制御プログラム２３０が使用するのに適した形式に再配置する。
【０１０９】
シーケンス命令演算プログラム２３２は、ユーザプログラム２３６で使用されるある種のシーケンス命令が実行されるときに呼び出されて、その命令の内容を実現するために実行されるプログラムである。
【０１１０】
モーション演算プログラム２３４は、ユーザプログラム２３６による指示に従って実行され、サーボドライバ３やパルスモータドライバといったモータドライバに対して出力する指令値を算出するプログラムである。
【０１１１】
その他のシステムプログラム２２０は、図８において個別に示したプログラム以外の、ＰＬＣ１の各種機能を実現するためのプログラム群をまとめて示したものである。その他のシステムプログラム２２０は、モーション制御サイクルの周期を設定するプログラム２２２を含む。
【０１１２】
モーション制御サイクルの周期は、制御目的に応じて適宜設定することができる。典型的には、モーション制御サイクルの周期を指定する情報をユーザがサポート装置８へ入力する。すると、その入力された情報は、サポート装置８からＣＰＵユニット１３へ転送される。モーション制御サイクルの周期を設定するプログラム２２２は、サポート装置８からの情報を不揮発性メモリ１０６に格納させるとともに、システムタイマ１０８から指定されたモーション制御サイクルの周期で割り込み信号が発生されるように、システムタイマ１０８を設定する。ＣＰＵユニット１３への電源投入時に、モーション制御サイクルの周期を設定するプログラム２２２が実行されることで、モーション制御サイクルの周期を指定する情報が不揮発性メモリ１０６から読み出され、読み出された情報に従ってシステムタイマ１０８が設定される。
【０１１３】
リアルタイムＯＳ２００は、複数のプログラムを時間の経過に従い切り換えて実行するための環境を提供する。
【０１１４】
＜Ｅ．モーション制御の概略＞
次に、上述したユーザプログラム２３６に含まれる典型的な構成について説明する。ユーザプログラム２３６は、モータの運動に関する制御開始の条件が成立するか否かを周期的に判断させる命令を含む。たとえば、モータの駆動力によって何らかの処置がなされるワーク（たとえば、図１に示すワーク３５０）が所定の処置位置まで搬送されたか否かを判断するようなロジックである。そして、ユーザプログラム２３６は、この制御開始の条件が成立したと判断されたことに応答して、モーション制御を開始させる命令をさらに含む。このモーション制御の開始に伴って、モーション命令の実行が指示される。すると、指示されたモーション命令に対応するモーション演算プログラム２３４が起動し、まず、モーション演算プログラム２３４の実行ごとにモータに対する指令値を算出していくために必要な初期処理が実行される。また、初期処理と同じモーション制御サイクルにおいて、第１サイクルでの指令値が算出される。したがって、初期処理および第１番目の指令値算出処理が、起動したモーション演算プログラム２３４が第１番目の実行においてなすべき処理となる。以降、各サイクルでの指令値が順次算出される。
【０１１５】
＜Ｆ．制御装置の構成＞
図９は、制御装置６０の機能構成を示す模式図である。ここでは、主軸として、主軸Ａおよび主軸Ｂが制御装置６０によって制御されるとともに、従動軸として、従動軸Ａおよび従動軸Ｂが制御装置６０によって制御される例を説明する。また、主軸Ａサーボドライバ３１および主軸Ａサーボモータ４１は、それぞれ主軸Ａに接続されたサーボドライバおよびサーボモータであり、図６に示したサーボドライバ３およびサーボモータ４に対応する。主軸Ｂサーボドライバ３２および主軸Ｂサーボモータ４２は、それぞれ主軸Ｂに接続されたサーボドライバおよびサーボモータであり、図６に示したサーボドライバ３およびサーボモータ４に対応する。さらに、従動軸Ａサーボドライバ３３および従動軸Ａサーボモータ４３は、それぞれ従動軸Ａに接続されたサーボドライバおよびサーボモータであり、図６に示したサーボドライバ３およびサーボモータ４に対応する。従動軸Ｂサーボドライバ３４および従動軸Ｂサーボモータ４４は、それぞれ従動軸Ｂに接続されたサーボドライバおよびサーボモータであり、図６に示したサーボドライバ３およびサーボモータ４に対応する。
【０１１６】
図９に示すように、制御装置６０は、ネットワーク処理部６１と、主軸Ａ指令値演算部７１と、主軸Ｂ指令値演算部７２と、主軸速度変化検出部６６と、取得部６８と、主軸振動検出部６７と、記憶部６２と、選択部６３と、算出部７０と、フィルタ処理部７８と、フィルタ処理部７９とを備える。これらの構成要素は、制御プログラム２３０、モーション制御サイクルの周期を設定するプログラム２２２、およびスケジューラプログラム２１２などによって実現される。
【０１１７】
ネットワーク処理部６１は、図６を参照しながら説明したタッチディスプレイ１７、上位ＰＣ１８、およびサポート装置８に接続するためのインターフェイスである。
【０１１８】
主軸Ａ指令値演算部７１は、主軸Ａサーボドライバ３１に対して速度指令値を出力する。主軸Ａサーボドライバ３１は、主軸Ａ指令値演算部７１からの速度指令値に従って主軸Ａサーボモータ４１を駆動する。これにより、主軸Ａサーボモータ４１の軸である主軸Ａが、制御装置６０からの速度指令値に基づく速度で動作（回転）する。
【０１１９】
主軸Ｂ指令値演算部７２は、主軸Ｂサーボドライバ３２に対して速度指令値を出力する。主軸Ｂサーボドライバ３２は、主軸Ｂ指令値演算部７２からの速度指令値に従って主軸Ｂサーボモータ４２を駆動する。これにより、主軸Ｂサーボモータ４２の軸である主軸Ｂが、制御装置６０からの速度指令値に基づく速度で動作（回転）する。
【０１２０】
主軸Ａ指令値演算部７１および主軸Ｂ指令値演算部７２は、ユーザプログラム２３６の実行、タッチディスプレイ１７からの指令、サポート装置８からの指令、および上位ＰＣ１８からの指令のうちの少なくともいずれかに基づいて、速度指令値を出力したり、あるいは速度指令値の出力を停止したりする。これにより、主軸が切り替わる。
【０１２１】
たとえば、主軸Ａ指令値演算部７１から速度指令値が出力される一方で、主軸Ｂ指令値演算部７２から速度指令値が出力されない状況において、主軸Ａ指令値演算部７１から速度指令値が出力されない一方で、主軸Ｂ指令値演算部７２から速度指令値が出力される状況へと切り替わった場合、動作対象となる主軸が主軸Ａから主軸Ｂに切り替わる。また、主軸Ａ指令値演算部７１から速度指令値が出力されない一方で、主軸Ｂ指令値演算部７２から速度指令値が出力される状況において、主軸Ａ指令値演算部７１から速度指令値が出力される一方で、主軸Ｂ指令値演算部７２から速度指令値が出力されない状況へと切り替わった場合、動作対象となる主軸が主軸Ｂから主軸Ａに切り替わる。このように、主軸Ａ指令値演算部７１および主軸Ｂ指令値演算部７２は、主軸を切り替える「切替部」の一実施形態に対応する。
【０１２２】
ここで、図１０は、主軸の切り替えについて説明するための模式図である。図１０に示すように、制御装置６０は、ＣＰＵユニット１３によって実現されるものであり、ＨＵＢ１６を介して、タッチディスプレイ１７、サポート装置８、および上位ＰＣ１８のそれぞれに接続されている。タッチディスプレイ１７においては、プルダウンボタン１７ａが操作されることによって、主軸Ａおよび主軸Ｂのいずれかを選択可能である。同様に、サポート装置８においては、プルダウンボタン８ａが操作されることによって、主軸Ａおよび主軸Ｂのいずれかを選択可能である。
【０１２３】
このように、タッチディスプレイ１７やサポート装置８を用いることで、ユーザは、手動で主軸を切り替えることができる。
【０１２４】
上位ＰＣ１８は、切替条件が成立したときに主軸を切り替えるためのプログラム１８ａを実行するように構成されている。たとえば、プログラム１８ａにおいては、主軸Ａ（ＳｌａｖｅＡ）が目標の切替ポイント（たとえば、図１に示す切替ポイントＰ）に対応する位置の値（１０００）を超えた場合に、主軸Ｂ（ＭａｓｔｅｒＢ）が選択されるようになっている。同様に、制御装置６０が実行するユーザプログラム２３６においては、主軸Ａ（ＳｌａｖｅＡ）が目標の切替ポイント（たとえば、図１に示す切替ポイントＰ）に対応する位置の値（１０００）を超えた場合に、主軸Ｂ（ＭａｓｔｅｒＢ）が選択されるようになっている。
【０１２５】
このように、上位ＰＣ１８や制御装置６０によってプログラムが実行されることで、自動で主軸を切り替えることができる。
【０１２６】
図９に戻り、主軸Ａ指令値演算部７１は、さらに、ユーザプログラム２３６の実行、タッチディスプレイ１７からの指令、上位ＰＣ１８からの指令、およびサポート装置８からの指令のうちの少なくともいずれかに基づいて、主軸Ａを反転させるための速度指令値を出力することも可能である。たとえば、主軸Ａ指令値演算部７１から出力される速度指令値が主軸Ａの現在速度とは反対の速度ベクトルを有する速度であれば、主軸Ａが反転する。また、主軸Ｂ指令値演算部７２は、ユーザプログラム２３６の実行、タッチディスプレイ１７からの指令、上位ＰＣ１８からの指令、およびサポート装置８からの指令のうちの少なくともいずれかに基づいて、主軸Ｂを反転させるための速度指令値を出力することも可能である。たとえば、主軸Ｂ指令値演算部７２から出力される速度指令値が主軸Ｂの現在速度とは反対の速度ベクトルを有する速度であれば、主軸Ｂが反転する。このように、主軸Ａ指令値演算部７１および主軸Ｂ指令値演算部７２は、主軸の動作方向を反転させる「反転部」の一実施形態に対応する。
【０１２７】
制御装置６０においては、主軸Ａ指令値演算部７１からの速度指令値を検出する経路と、主軸Ａサーボモータ４１からの出力値を主軸Ａのフィードバック現在値として検出する経路との間で検出経路を切り替える切替スイッチ７３が設けられている。また、制御装置６０においては、主軸Ｂ指令値演算部７２からの速度指令値を検出する経路と、主軸Ｂサーボモータ４２からの出力値を主軸Ｂのフィードバック現在値として検出する経路との間で検出経路を切り替える切替スイッチ７４が設けられている。
【０１２８】
切替スイッチ７３および切替スイッチ７４は、それぞれ切替スイッチ６５に接続されている。切替スイッチ６５は、ユーザプログラム２３６の実行、タッチディスプレイ１７からの指令、上位ＰＣ１８からの指令、およびサポート装置８からの指令のうちの少なくともいずれかに基づいて、主軸Ａに対応する経路と、主軸Ｂに対応する経路との間で、主軸速度変化検出部６６に至る経路を切り替える。たとえば、主軸Ａが動作している一方で、主軸Ｂが動作していない場合、切替スイッチ６５は、主軸Ａに対応する経路と主軸速度変化検出部６６に至る経路とを接続させる。また、主軸Ａが動作していない一方で、主軸Ｂが動作している場合、切替スイッチ６５は、主軸Ｂに対応する経路と主軸速度変化検出部６６に至る経路とを接続させる。
【０１２９】
主軸速度変化検出部６６は、主軸の速度変化を検出することで主軸の切り替えや反転を検出する。具体的には、主軸速度変化検出部６６は、主軸Ａ指令値演算部７１からの速度指令値または主軸Ａサーボモータ４１からのフィードバック現在値に基づき、主軸の速度がステップ状に変化したか否かを判定することで、主軸Ａが切り替わったか否かを判定する。
【０１３０】
主軸の速度がステップ状に変化したか否かの判定については、主軸の速度の変化量や変化率が閾値を超えたか否かを判定してもよい。たとえば、主軸の速度の変化率で判定する場合、Ｖ［ｔ］／Ｖ［ｔ−１］＞αの式を用いればよい。ここで、Ｖ［ｔ］は、時刻ｔにおける主軸の速度であり、Ｖ［ｔ−１］は、時刻ｔ−１における主軸の速度である。また、αは、閾値であり、制御装置６０が適用される搬送装置などの条件によって任意に設定可能である。たとえば、図１の例の場合、コンベア３０１，３０２における主軸まわりの力のモーメントに基づきαが設定されてもよい。また、主軸速度変化検出部６６は、主軸Ａに対応する経路に接続された状態から、主軸Ｂに対応する経路に接続された状態へと切替スイッチ６５によって経路が切り替えられたことを検出した場合、主軸Ａから主軸Ｂへと主軸が切り替えられたと判断してもよい。また、主軸速度変化検出部６６は、主軸Ｂに対応する経路に接続された状態から、主軸Ａに対応する経路に接続された状態へと切替スイッチ６５によって経路が切り替えられたことを検出した場合、主軸Ｂから主軸Ａへと主軸が切り替えられたと判断してもよい。
【０１３１】
さらに、主軸速度変化検出部６６は、主軸Ａ指令値演算部７１からの速度指令値または主軸Ａサーボモータ４１からのフィードバック現在値に基づき、主軸Ａが反転したか否かを判定する。また、主軸速度変化検出部６６は、主軸Ｂ指令値演算部７２からの速度指令値または主軸Ｂサーボモータ４２からのフィードバック現在値に基づき、主軸の速度がステップ状に変化したか否かを判定することで、主軸Ｂが反転したか否かを判定する。
【０１３２】
主軸の速度がステップ状に変化したか否かの判定については、主軸の速度の変化量や変化率が閾値を超えたか否かを判定してもよい。たとえば、主軸の速度の変化率で判定する場合、上述したように、Ｖ［ｔ］／Ｖ［ｔ−１］＞αの式を用いればよい。また、主軸速度変化検出部６６は、速度が２進数で表現されている場合には正負を示す符号を用いて主軸が反転したか否かを判定してもよい。たとえば、主軸速度変化検出部６６は、Ｖ［ｔ−１］＜０、かつＶ［ｔ］≧０であれば、速度ベクトルの正方向に主軸が反転したと判断し、Ｖ［ｔ−１］≧０、かつＶ［ｔ］＜０であれば、速度ベクトルの負方向に主軸が反転したと判断してもよい。
【０１３３】
取得部６８は、制御周期ごとに主軸の現在の速度を取得する。具体的には、取得部６８は、主軸Ａ指令値演算部７１からの速度指令値または主軸Ａサーボモータ４１からのフィードバック現在値に基づき、主軸Ａの現在の速度を取得し、取得した主軸Ａの速度をカム演算部７５に出力する。また、取得部６８は、主軸Ｂ指令値演算部７２からの速度指令値または主軸Ｂサーボモータ４２からのフィードバック現在値に基づき、主軸Ｂの現在の速度を取得し、取得した主軸Ｂの速度をカム演算部７５に出力する。
【０１３４】
主軸振動検出部６７は、主軸の振動を検出する。具体的には、主軸振動検出部６７は、主軸Ａ指令値演算部７１からの速度指令値または主軸Ａサーボモータ４１からのフィードバック現在値に基づき、主軸Ａの速度が所定の上限値を超えたか否か、あるいは所定の下限値を下回ったか否かを判定する。また、主軸振動検出部６７は、主軸Ｂ指令値演算部７２からの速度指令値または主軸Ｂサーボモータ４２からのフィードバック現在値に基づき、主軸Ｂの速度が所定の上限値を超えたか否か、あるいは所定の下限値を下回ったか否かを判定する。
【０１３５】
ここで、図１１は、主軸の振動検出について説明するためのタイミングチャートである。主軸の速度は、速度指令値に基づき理想的には一定だが、詳細には僅かながら変動する。このため、図１１に示すように、振動による主軸の速度の振れを検出するために、主軸の種類や主軸に対する速度指令値に応じて、速度の上限値および下限値が設けられている。そして、主軸の速度が上限値を超えたり、下限値を下回ったりした場合、すなわち、主軸の速度の絶対値が限界値を超えた場合に、主軸振動検出部６７は、主軸が振動していることを特定する。なお、主軸振動検出部６７は、主軸の速度の絶対値が１回でも限界値を超えた場合に、主軸が振動していることを特定してもよいが、所定期間内において主軸の速度の絶対値が限界値を超えた回数が予め定められた限界回数を超えた場合に、主軸が振動していることを特定してもよい。図１１に示す例では、タイミングｔ１〜ｔ２の振動発生期間において、主軸の速度が上限値を超えた回数が予め定められた限界回数を超えている。よって、この場合、主軸振動検出部６７は、主軸が振動していると判断する。
【０１３６】
図９に戻り、主軸振動検出部６７は、さらに、主軸が振動していると判断した場合、切替スイッチ７３および切替スイッチ７４のうち、動作中の主軸に対応する切替スイッチを切り替えることで、取得部６８による取得対象を切り替える。
【０１３７】
具体的には、主軸Ａが動作中の場合、切替スイッチ６５が主軸Ａに対応する経路側に接続される。この場合において、主軸Ａが振動していない場合には、切替スイッチ７３が主軸Ａ指令値演算部７１の出力に接続される。よって、取得部６８は、主軸Ａ指令値演算部７１からの速度指令値に基づき、主軸Ａの現在の速度を取得する。一方、主軸Ａが振動している場合には、切替スイッチ７３が主軸Ａサーボモータ４１の出力に接続される。よって、取得部６８は、主軸Ａサーボモータ４１からのフィードバック現在値に基づき、主軸Ａの現在の速度を取得する。
【０１３８】
主軸Ｂが動作中の場合、切替スイッチ６５が主軸Ｂに対応する経路側に接続される。この場合において、主軸Ｂが振動していない場合には、切替スイッチ７４が主軸Ｂ指令値演算部７２の出力に接続される。よって、取得部６８は、主軸Ｂ指令値演算部７２からの速度指令値に基づき、主軸Ｂの現在の速度を取得する。一方、主軸Ｂが振動している場合には、切替スイッチ７４が主軸Ｂサーボモータ４２の出力に接続される。よって、取得部６８は、主軸Ｂサーボモータ４２からのフィードバック現在値に基づき、主軸Ｂの現在の速度を取得する。
【０１３９】
記憶部６２は、従動軸による追いかけ動作（カム動作）を実現するためのカムデータを記憶する。カムデータは、主軸の位置に対する従動軸の移動量を特定するためのデータである。記憶部６２は、主軸の種類や速度に応じて、複数種類のカムデータを記憶する。なお、カムデータは、「特性データ」の一実施形態である。
【０１４０】
ここで、図１２は、カム曲線について説明するためのグラフである。図１２に示すカム曲線は、記憶部６２に記憶された複数のカムデータのうちの一のカムデータをグラフ化したものである。
【０１４１】
図１２に示すカム曲線では、横軸に主軸の位置が規定され、縦軸に従動軸の位置が規定されている。すなわち、カム曲線は、主軸の位置に対応する従動軸の位置が規定されている。主軸および従動軸の位置については、追いかけ動作の開始位置が０．０００ｍｍ、同期動作の開始位置が１．０００ｍｍで表されている。ユーザは、タッチディスプレイ１７やサポート装置８を用いることで、手動で同期動作の開始位置を指定することができる。このため、ユーザが指定した同期動作の開始位置に応じて、カム曲線は変化する。また、ユーザは、タッチディスプレイ１７やサポート装置８を用いることで、カム曲線における横軸や縦軸のレンジを変更したり、傾き（従動軸の加速度や減速度）を変更したりすることができる。
【０１４２】
本実施の形態において、カムデータは、データテーブルの形式で規定されている。以下では、カムデータが規定されたデータテーブルを、カムテーブルとも称する。図１３は、カムテーブルのデータ構造を示す図である。
【０１４３】
図１３に示すように、カムテーブルには、主軸の位置に対して従動軸の位置を対応付けたデータが格納されている。カムテーブル格納されたデータを用いて直線補完すると、図１２に示したカム曲線になる。
【０１４４】
カムテーブルでは、主軸の位置が追いかけ動作開始位置となる０．０００から、同期動作開始位置となる１．０００に至るまでの所定間隔（たとえば、０．００１刻み）ごとに、従動軸の目標位置が規定されている。また、その各データにおいてインデックスの番号が割り当てられている。このようなカムテーブルを用いることで、主軸の位置に対する従動軸の移動量を特定することが可能になる。記憶部６２には、図１３に示すようなカムテーブルが、主軸の種類や速度に応じて複数記憶されている。
【０１４５】
なお、カムデータは、データテーブルの形式で規定されるものに限らず、１次式および多項式のいずれかに基づき規定されてもよい。たとえば、カムデータを多項式で表す場合、従動軸の移動量として以下の式を用いればよい。
【０１４６】
ｆ（ｘ）＝ａｘｎ＋ｂｘｎ−１＋ｃｘｎ−２＋…
ここで、“ｘ”は主軸の位置、“ｎ”は定数、“ａ”、“ｂ”、および“ｃ”は、係数である。
【０１４７】
なお、一般的には、カム曲線として、直線、等加速度、およびサイクロイドなどが知られているが、本実施の形態においては、タッチディスプレイ１７およびサポート装置８によって、ユーザがカム曲線の形式を選択可能である。たとえば、図１４は、カム曲線の切り替えについて説明するための模式図である。
【０１４８】
図１４に示すように、タッチディスプレイ１７においては、プルダウンボタン１７ｂが操作されることによって、カム曲線として、直線、等加速度、およびサイクロイドのうちのいずれかを選択可能である。さらに、タッチディスプレイ１７においては、項目１７ｃに同期開始位置を入力することで、同期開始位置を指定することもできる。同様に、サポート装置８においては、プルダウンボタン８ｂが操作されることによって、カム曲線として、直線、等加速度、およびサイクロイドのうちのいずれかを選択可能である。さらに、サポート装置８においては、項目１７ｃに同期開始位置を入力することで、同期開始位置を指定することもできる。なお、サポート装置８においては、カム曲線のグラフ１７ｄも表示されるため、ユーザは、視覚的にカム曲線を設定することができる。
【０１４９】
図９に戻り、選択部６３は、記憶部６２に記憶された複数のカムデータのうちからいずれかのカムデータを選択し、選択したカムデータを算出部７０に出力する。
【０１５０】
算出部７０は、従動軸に対して指令する速度を速度指令値として算出する。従動軸Ａを動作させる場合には、出力部８１から従動軸Ａサーボドライバ３３に対して、算出部７０によって算出された速度指令値が出力される。従動軸Ｂを動作させる場合には、出力部８２から従動軸Ｂサーボドライバ３４に対して、算出部７０によって算出された速度指令値が出力される。
【０１５１】
算出部７０は、カム演算部７５と、従動軸Ａ同期演算部７６と、従動軸Ｂ同期演算部７７とを含む。
【０１５２】
カム演算部７５は、従動軸に対する指令速度に乗算するギア比を算出し、算出したギア比を、従動軸Ａ同期演算部７６または従動軸Ｂ同期演算部７７に対して出力する。具体的には、カム演算部７５は、追いかけ動作が行われている場合、制御周期ごとに取得部６８によって取得された主軸の現在の速度に基づき主軸の現在の位置を特定する。カム演算部７５は、カムデータを参照することで、主軸の現在の位置に対応する従動軸の目標位置を特定する。カム演算部７５は、従動軸の現在の位置と、カムデータに基づき特定した従動軸の目標位置との差分から、次の制御周期において従動軸が動作するべき移動量を特定する。カム演算部７５は、特定した移動量だけ次の制御周期において従動軸を動作させるためのギア比を算出する。カム演算部７５は、従動軸Ａが追いかけ動作中である場合には、従動軸Ａ同期演算部７６に対してギア比を出力する一方、従動軸Ｂが追いかけ動作中である場合には、従動軸Ｂ同期演算部７７に対してギア比を出力する。
【０１５３】
また、カム演算部７５は、同期動作が行われている場合、制御周期ごとに取得部６８によって取得された主軸の現在の速度に応じて予め決定されていた所定のギア比を算出する。カム演算部７５は、従動軸Ａが同期動作中である場合には、従動軸Ａ同期演算部７６に対して所定のギア比を出力する一方、従動軸Ｂが同期動作中である場合には、従動軸Ｂ同期演算部７７に対して所定のギア比を出力する。
【０１５４】
従動軸Ａ同期演算部７６または従動軸Ｂ同期演算部７７は、制御周期ごとに取得部６８によって取得された主軸の現在の速度に、カム演算部７５から取得したギア比を乗算して従動軸の速度を算出し、当該速度を示す速度指令値を、出力部８１または出力部８２を介して従動軸Ａサーボドライバ３３または従動軸Ｂサーボドライバ３４に出力する。
【０１５５】
前述したように、主軸振動検出部６７によって主軸の振動が検出されていない場合には、取得部６８が主軸に対する速度指令値に基づき主軸の速度を取得するため、従動軸Ａ同期演算部７６および従動軸Ｂ同期演算部７７は、速度指令値に基づき従動軸の速度を算出する。一方、主軸振動検出部６７によって主軸の振動が検出されている場合には、取得部６８が主軸のフィードバック現在値に基づき主軸の速度を取得するため、従動軸Ａ同期演算部７６および従動軸Ｂ同期演算部７７は、フィードバック現在値に基づき従動軸の速度を算出する。つまり、従動軸は、主軸が振動していない場合には、主軸に対する速度指令値に基づき主軸に同期し、主軸が振動している場合には、主軸のフィードバック現在値に基づき主軸に同期する。
【０１５６】
フィルタ処理部７８は、従動軸Ａ同期演算部７６から出力された従動軸の速度指令値に対してフィルタ処理を行う。フィルタ処理部７８によってフィルタ処理を行うか否かは、従動軸Ａ同期演算部７６の出力に設けられた切替スイッチ８３によって切替可能である。フィルタ処理部７８によってフィルタ処理が行われた場合、フィルタ処理後の速度指令値が従動軸Ａサーボドライバ３３に出力される。
【０１５７】
フィルタ処理部７９は、従動軸Ｂ同期演算部７７から出力された従動軸の速度指令値に対してフィルタ処理を行う。フィルタ処理部７９によってフィルタ処理を行うか否かは、従動軸Ｂ同期演算部７７の出力に設けられた切替スイッチ８４によって切替可能である。フィルタ処理部７９によってフィルタ処理が行われた場合、フィルタ処理後の速度指令値が従動軸Ｂサーボドライバ３に出力される。
【０１５８】
ここで、フィルタ処理について説明する。前述したように、本実施の形態においては、主軸が切り替えられたり、主軸が反転したりした場合に、ユーザプログラム２３６に基づき選択部６３によってカムデータが切り替えられるが、これ以外にも、ユーザは、タッチディスプレイ１７、上位ＰＣ、およびサポート装置８によって、選択するカムデータを指定したり、選択中のカムデータを切り替えたりすることができる。
【０１５９】
仮に、追いかけ動作中においてカムデータが他のカムデータに切り替えられた場合、カムデータが切り替えられた制御周期内では、従動軸の位置が急激に変化することがある。特に、切り替え前のカムテーブルと、切り替え後のカムテーブルとで、従動軸の位置が大きく異なる場合に、このような事態が生じ得る。従動軸の位置において急激な変化が生じた場合、従動軸のサーボドライバがハンチングする虞がある。そこで、カムデータの切り換えが行われた制御周期においては、カムデータ切り換え時に発生する従動軸における位置の急激な変化を抑制するように、従動軸の移動量を滑らかに変化させるためのフィルタ処理を行うことが好ましい。
【０１６０】
具体的には、フィルタ処理は、平滑化フィルタをマイクロプロセッサ１００が用いることにより実現される。平滑化フィルタは、従動軸の位置における急激な変化を平滑するため、ローパス特性を有することが好ましい。ローパス特性を有する代表的な平滑化フィルタとして、たとえば、一次遅れフィルタ、高次遅れフィルタ、移動平均フィルタが挙げられる。
【０１６１】
１次遅れフィルタを用いる場合、伝達関数Ｇ（ｓ）として以下の式を用いればよい。
Ｇ（ｓ）＝１／（Ｔ×ｓ＋１）
ここで、“Ｔ”は時定数である。“Ｔ”の値が大きいほど、滑らかに平滑化される。なお、一般的にローパスフィルタは信号の位相が遅れる特性がある。また、位相の遅れ度合と平滑度とは、トレードオフの関係にある。カムデータの切り換え後に、当該位相遅れをなくした場合には、“Ｔ”を小さく設定する必要がある。
【０１６２】
サポート装置８にはＦＦＴ解析部２０が搭載されている。ＦＦＴ解析部２０は、高速フーリエ変換によって、従動軸の固有振動周波数を周波数解析する。サポート装置８は、ＦＦＴ解析部２０による解析結果に基づき、共振周波数を励起しない最適なカムデータを選択するように、選択部６３に指示する。
【０１６３】
＜Ｇ．制御装置の処理＞
（追いかけ動作中切替処理）
図１５は、制御装置６０が実行する追いかけ動作中切替処理を示すフローチャートである。図１５に示すように、制御装置６０は、主軸速度変化検出部６６により、主軸が切り替えまたは反転したか否かを判定する（Ｓ２）。制御装置６０は、主軸が切り替えも反転もしていない場合（Ｓ２でＮＯ）、Ｓ１４の処理に移行する。
【０１６４】
制御装置６０は、主軸が切り替えまたは反転した場合（Ｓ２でＹＥＳ）、主軸振動検出部６７により、主軸が振動しているか否かを判定する（Ｓ４）。制御装置６０は、主軸が振動していると判定した場合（Ｓ４でＹＥＳ）、従動軸の同期対象を主軸のフィードバック現在値から主軸に対する速度指令値に切り替え（Ｓ６）、Ｓ８の処理に移行する。
【０１６５】
制御装置６０は、主軸が振動していないと判定した場合（Ｓ４でＮＯ）、またはＳ６の処理の後、カムデータの切替指示があったか否かを判定する（Ｓ８）。つまり、タッチディスプレイ１７、上位ＰＣ、サポート装置８、およびユーザプログラム２３６のいずれかによってカムデータを切り替える旨の指示があったか否かを判定する。
【０１６６】
制御装置６０は、カムデータの切替指示がある場合（Ｓ８でＹＥＳ）、カムデータを切り替える（Ｓ１０）。たとえば、ユーザプログラム２３６によって、主軸が切り替えまたは反転した場合にカムデータを切り替える旨の指示が行われている場合、制御装置６０は、記憶部６２に記憶された複数のカムデータの中から主軸の速度変化に応じた他のカムデータを特定する。具体的には、制御装置６０は、主軸が切り替わった場合には、切替後における主軸の速度に対応するカムデータを特定し、主軸が反転した場合には、反転後における主軸の速度に対応するカムデータを特定する。そして、制御装置６０は、特定したカムデータに、現在選択中のカムデータを切り替える。
【０１６７】
制御装置６０は、カムデータの切替指示がない場合（Ｓ８でＮＯ）、またはＳ１０の処理の後、切替後のカムデータを参照しながら、従動軸による主軸の追いかけ動作を開始する（Ｓ１２）。その後、制御装置６０は、主軸および従動軸が同期開始位置に到達したか否かを判定する（Ｓ１４）。
【０１６８】
制御装置６０は、主軸および従動軸が同期開始位置に到達していない場合（Ｓ１４でＮＯ）、再びＳ１４の処理を繰り返す。一方、制御装置６０は、主軸および従動軸が同期開始位置に到達した場合（Ｓ１４でＹＥＳ）、同期動作を開始し（Ｓ１６）、追いかけ動作中切替処理を終了する。
【０１６９】
（同期動作中切替処理）
図１６は、制御装置６０が実行する同期動作中切替処理を示すフローチャートである。図１６に示すように、制御装置６０は、主軸速度変化検出部６６により、主軸が切り替えまたは反転したか否かを判定する（Ｓ２２）。制御装置６０は、主軸が切り替えも反転もしていない場合（Ｓ２２でＮＯ）、Ｓ３４の処理に移行する。
【０１７０】
制御装置６０は、主軸が切り替えまたは反転した場合（Ｓ２２でＹＥＳ）、主軸振動検出部６７により、主軸が振動しているか否かを判定する（Ｓ２４）。制御装置６０は、主軸が振動していると判定した場合（Ｓ２４でＹＥＳ）、従動軸の同期対象を主軸のフィードバック現在値から主軸に対する速度指令値に切り替え（Ｓ２６）、Ｓ２８の処理に移行する。
【０１７１】
制御装置６０は、主軸が振動していないと判定した場合（Ｓ２４でＮＯ）、またはＳ２６の処理の後、カムデータの切替指示があったか否かを判定する（Ｓ２８）。つまり、タッチディスプレイ１７、上位ＰＣ、サポート装置８、およびユーザプログラム２３６のいずれかによってカムデータを切り替える旨の指示があったか否かを判定する。
【０１７２】
制御装置６０は、カムデータの切替指示がある場合（Ｓ２８でＹＥＳ）、カムデータを切り替える（Ｓ３０）。たとえば、ユーザプログラム２３６によって、主軸が切り替えまたは反転した場合にカムデータを切り替える旨の指示が行われている場合、制御装置６０は、記憶部６２に記憶された複数のカムデータの中から主軸の速度変化に応じた他のカムデータを特定する。具体的には、制御装置６０は、主軸が切り替わった場合には、切替後における主軸の速度に対応するカムデータを特定し、主軸が反転した場合には、反転後における主軸の速度に対応するカムデータを特定する。そして、制御装置６０は、特定したカムデータに、現在選択中のカムデータを切り替える。
【０１７３】
制御装置６０は、カムデータの切替指示がない場合（Ｓ２８でＮＯ）、またはＳ３０の処理の後、切替後のカムデータを参照しながら、従動軸による主軸の追いかけ動作を開始する（Ｓ３２）。その後、制御装置６０は、主軸および従動軸が同期開始位置に到達したか否かを判定する（Ｓ３４）。
【０１７４】
制御装置６０は、主軸および従動軸が同期開始位置に到達していない場合（Ｓ３４でＮＯ）、再びＳ３４の処理を繰り返す。一方、制御装置６０は、主軸および従動軸が同期開始位置に到達した場合（Ｓ３４でＹＥＳ）、同期動作を開始し（Ｓ３６）、同期動作中切替処理を終了する。
【０１７５】
＜Ｈ．速度変化の態様＞
（主軸が切り替わった場合）
図１７は、主軸が切り替わった場合における主軸および従動軸の速度変化を示すタイミングチャートである。図１７においては、縦軸を速度、横軸を時間で表す。また、主軸の速度をＶ１、従動軸の速度をＶ２で表す。なお、図１７では、主軸Ａから主軸Ｂに主軸が切り替わった場合の例が示されている。
【０１７６】
図１７に示すように、タイミングｔ０で従動軸によって主軸Ａを追いかける追いかけ動作が開始される。追いかけ動作時においては、カムデータに基づき決定された速度指令値に基づき、従動軸が加速または減速しながら動作する。具体的には、従動軸は、タイミングｔ０〜ｔ１の期間において加速し、タイミングｔ１〜ｔ２の期間において定速を維持し、その後、タイミングｔ２〜ｔ３の期間において減速することで、主軸Ａと同じタイミングで同期開始位置に到達する。同期開始位置に到達した後のタイミングｔ３以降では、主軸Ａと従動軸とが所定のギア比に基づく速度で同期しながら動作する。
【０１７７】
ここで、タイミングｔ４において、主軸Ａから主軸Ｂに主軸が切り替わった場合、主軸の速度がステップ状に急激に変化する。そこで、制御装置６０は、主軸Ｂに対して従動軸が追いかけ動作する際に参照するカムデータとして、主軸Ｂの速度に対応するカムデータを選択し、選択したカムデータに、選択中である主軸Ａの速度に対応するカムデータを切り替える。
【０１７８】
その後、タイミングｔ４で従動軸によって主軸Ｂを追いかける追いかけ動作が開始される。従動軸は、タイミングｔ４〜ｔ５の期間において加速し、タイミングｔ５〜ｔ６の期間において定速を維持し、その後、タイミングｔ６〜ｔ７の期間において減速することで、主軸Ｂと同じタイミングで同期開始位置に到達する。同期開始位置に到達した後のタイミングｔ７以降では、主軸Ｂと従動軸とが所定のギア比に基づく速度で同期しながら動作する。
【０１７９】
このように、主軸Ａおよび従動軸の動作中に主軸Ａから主軸Ｂに切り替わることで主軸の速度がステップ状に変化した場合、主軸Ｂの速度に応じたカムデータに、選択中の主軸Ａの速度に応じたカムデータが切り替えられるため、適切な速度指令値を従動軸に出力することができる。その結果、従動軸に生じる振動を抑えることができる。
【０１８０】
（主軸が反転した場合）
図１８は、主軸が反転した場合における主軸および従動軸の速度変化を示すタイミングチャートである。図１８においては、縦軸を速度、横軸を時間で表す。また、主軸の速度をＶ１、従動軸の速度をＶ２で表す。
【０１８１】
図１８に示すように、タイミングｔ０で従動軸によって主軸を追いかける追いかけ動作が開始される。追いかけ動作時においては、カムデータに基づき決定された速度指令値に基づき、従動軸が加速または減速しながら動作する。具体的には、従動軸は、タイミングｔ０〜ｔ１の期間において加速し、タイミングｔ１〜ｔ２の期間において定速を維持し、その後、タイミングｔ２〜ｔ３の期間において減速することで、主軸と同じタイミングで同期開始位置に到達する。同期開始位置に到達した後のタイミングｔ３以降では、主軸と従動軸とが所定のギア比に基づく速度で同期しながら動作する。
【０１８２】
ここで、タイミングｔ４において、主軸が反転した場合、主軸の速度が反転前とは逆方向の−Ｖ１方向に転じ、主軸の速度がステップ状に急激に変化する。そこで、制御装置６０は、主軸に対して従動軸が再び追いかけ動作する際に参照するカムデータとして、反転後の主軸の速度に対応するカムデータを選択し、選択したカムデータに、選択中である反転前の主軸の速度に対応するカムデータを切り替える。
【０１８３】
その後、タイミングｔ４で従動軸によって主軸を追いかける追いかけ動作が開始される。従動軸は、タイミングｔ４〜ｔ５の期間において−Ｖ２方向に加速し、タイミングｔ５〜ｔ６の期間において定速を維持し、その後、タイミングｔ６〜ｔ７の期間において−Ｖ２方向に減速することで、主軸と同じタイミングで同期開始位置に到達する。同期開始位置に到達した後のタイミングｔ７以降では、主軸と従動軸とが所定のギア比に基づく速度で同期しながら動作する。
【０１８４】
ここで、タイミングｔ８において、主軸が再び反転した場合、主軸の速度が反転前とは逆方向のＶ１方向に再び転じ、主軸の速度がステップ状に急激に変化する。そこで、制御装置６０は、主軸に対して従動軸が再び追いかけ動作する際に参照するカムデータとして、反転後の主軸の速度に対応するカムデータを選択し、選択したカムデータに、選択中である反転前の主軸の速度に対応するカムデータを切り替える。
【０１８５】
その後、タイミングｔ８で従動軸によって主軸を追いかける追いかけ動作が開始される。従動軸は、タイミングｔ８〜ｔ９の期間においてＶ２方向に加速し、タイミングｔ９〜ｔ１０の期間において定速を維持し、その後、タイミングｔ１０〜ｔ１１の期間においてＶ２方向に減速することで、主軸と同じタイミングで同期開始位置に到達する。同期開始位置に到達した後のタイミングｔ１１以降では、主軸と従動軸とが所定のギア比に基づく速度で同期しながら動作する。
【０１８６】
このように、主軸および従動軸の動作中に主軸が反転することで主軸の速度がステップ状に変化した場合、反転後の主軸の速度に応じたカムデータに、選択中である反転前の主軸の速度に応じたカムデータが切り替えられるため、適切な速度指令値を従動軸に出力することができる。その結果、従動軸に生じる振動を抑えることができる。
【０１８７】
＜Ｉ．作用効果＞
以上のように、本実施の形態において、制御装置６０は、制御周期ごとに取得した主軸の速度に所定のギア比を乗算した速度を速度指令値として従動軸に出力することで、従動軸の同期動作を行う。また、制御装置６０は、制御周期ごとに取得した主軸の速度から算出される主軸の位置と選択中のカムデータとに基づき従動軸の移動量を特定し、当該移動量に基づき特定した速度を速度指令値として従動軸に出力することで、同期動作が開始する位置に主軸および従動軸が到達するまで従動軸の追いかけ動作を行う。さらに、制御装置６０は、主軸および従動軸の動作中に主軸の速度がステップ状に変化した場合、主軸の速度変化に応じた他のカムデータに、選択中のカムデータを切り替える。このため、制御装置６０は、追いかけ動作や同期動作のような主軸および従動軸の動作中において主軸の速度がステップ状に変化した場合であっても、選択中のカムデータをそのまま用いるものと比べて、より適切な速度指令値を従動軸に出力することができる。その結果、従動軸に生じる振動を抑えることができる。また、主軸の速度がステップ状ではなく連続的に変化する場合には、選択中のカムデータを少し補正するだけで事足りる場合もあるが、主軸の速度がステップ状に変化した場合には、予め準備していた適切なカムデータに切り替えた方が処理負担も抑えることができる。
【０１８８】
制御装置６０は、タッチディスプレイ１７、サポート装置８、および上位ＰＣ１８といった外部からの指令に基づき、主軸を切り替えることができるため、ユーザの利便性が向上する。また、制御装置６０は、このような主軸の切り替えに応じたカムデータに、選択中のカムデータを切り替えることができるため、適切な速度指令値を従動軸に出力することができる。
【０１８９】
制御装置６０は、タッチディスプレイ１７、サポート装置８、および上位ＰＣ１８といった外部からの指令に基づき、主軸を切り替えることができるため、ユーザの利便性が向上する。また、制御装置６０は、このような主軸の切り替えに応じたカムデータに、選択中のカムデータを切り替えることができるため、適切な速度指令値を従動軸に出力することができる。
【０１９０】
制御装置６０は、タッチディスプレイ１７、サポート装置８、および上位ＰＣ１８といった外部からの指令に基づき、主軸の動作方向を反転させることができるため、ユーザの利便性が向上する。また、制御装置６０は、このような主軸の反転に応じたカムデータに、選択中のカムデータを切り替えることができるため、適切な速度指令値を従動軸に出力することができる。
【０１９１】
制御装置６０は、同期動作や追いかけ動作の制御において、検出対象となる速度として主軸に対する速度指令値または主軸のフィードバック現在値を検出することができるため、状況に応じた制御を行うことができる。
【０１９２】
制御装置６０は、同期動作や追いかけ動作の制御において、主軸の振動が検出された場合、主軸に対する速度指令値から主軸のフィードバック現在値に同期対象を切り替えることができるため、主軸の振動によって従動軸の動作が影響されない。
【０１９３】
カムデータは、データテーブル、１次式、および多項式の少なくともいずれかに基づき規定され得るため、様々な形態でカムデータを規定することができ、ユーザの利便性が向上する。
【０１９４】
制御装置６０は、ＦＦＴ解析部２０による高速フーリエ変換によって算出された従動軸の固有振動数を考慮してカムデータを選択することができるため、従動軸に生じる振動を抑えることができる。
【０１９５】
上述の開示において、制御装置は、同期動作が開始する位置に従動軸が到達する前において、動作中の主軸の速度がステップ状に変化したときに選択部によって特性データが切り替えられた場合、従動軸の移動量を平滑するフィルタ処理部をさらに備える。
【０１９６】
制御装置６０は、動作中の主軸の速度がステップ状に変化したときに選択中のカムデータを切り替えた場合、切替後のカムデータにおける従動軸の移動量をフィルタ処理によって平滑することができるため、カムデータの切り替えによって従動軸の移動量が急激に変化することを防止することができる。
【０１９７】
＜Ｊ．付記＞
以上のように、本実施の形態では以下のような開示を含む。
【０１９８】
（構成１）
主軸（５０１，６０１）の動作に対して従動軸（５５１，６５１）の動作を同期させる制御装置（６０）であって、
制御周期ごとに前記主軸の速度を取得する取得部（６８）と、
前記主軸の位置に対する前記従動軸の移動量を特定するための複数の特性データを記憶する記憶部（６２）と、
前記複数の特性データのうちからいずれかの特性データを選択する選択部（６３）と、
前記従動軸に対して指令する速度を速度指令値として算出する算出部（７０）と、
前記算出部によって算出された前記速度指令値を前記従動軸に出力する出力部（８１，８２）とを備え、
前記算出部は、
前記主軸の動作に対して前記従動軸の動作を同期させる同期動作中においては、前記取得部によって取得された前記主軸の速度に所定の比率を乗算した速度を、前記速度指令値として算出し、
前記同期動作が開始する位置に前記従動軸が到達する前においては、前記取得部によって取得された前記主軸の速度から算出される前記主軸の位置と前記選択部によって選択中の前記特性データとに基づき前記従動軸の移動量を特定し、当該移動量に基づき特定される速度を、前記速度指令値として算出し、
前記選択部は、前記主軸および前記従動軸の動作中に前記主軸の速度がステップ状に変化した場合、前記記憶部に記憶された前記複数の特性データの中から前記主軸の速度変化に応じた他の特性データを特定し、当該他の特性データに、選択中の前記特性データを切り替える、制御装置。
【０１９９】
（構成２）
前記主軸として、第１主軸と、当該第１主軸の速度とはステップ状に異なる速度で動作する第２主軸とが設けられており、
外部からの指令に基づき前記第１主軸から前記第２主軸に前記主軸を切り替える切替部（６５）をさらに備え、
前記選択部は、前記主軸および前記従動軸の動作中に前記切替部によって前記主軸が切り替えられた場合、前記主軸の切り替えに応じた他の前記特性データに、選択中の前記特性データを切り替える、構成１に記載の制御装置。
【０２００】
（構成３）
外部からの指令に基づき前記主軸の動作方向を反転させる反転部（７１，７２）をさらに備え、
前記選択部は、前記主軸および前記従動軸の動作中に前記反転部によって前記主軸が反転された場合、前記主軸の反転に応じた他の前記特性データに、選択中の前記特性データを切り替える、構成１または構成２に記載の制御装置。
【０２０１】
（構成４）
前記取得部は、前記主軸に対して指令された速度、または前記主軸の実測された速度を取得する、構成１〜構成３のいずれかに記載の制御装置。
【０２０２】
（構成５）
前記主軸の振動を検出する振動検出部（６７）をさらに備え、
前記取得部は、前記振動検出部によって前記主軸の振動が検出された場合、前記主軸に対して指令された速度から前記主軸の実測された速度に取得対象を切り替える、構成４に記載の制御装置。
【０２０３】
（構成６）
前記特性データは、データテーブル、１次式、および多項式の少なくともいずれかに基づき規定されたデータである、構成１〜構成５のいずれかに記載の制御装置。
【０２０４】
（構成７）
前記選択部は、高速フーリエ変換によって算出された前記従動軸の固有振動数に基づき前記特性データを選択する、構成１〜構成６のいずれかに記載の制御装置。
【０２０５】
（構成８）
前記同期動作が開始する位置に前記従動軸が到達する前において、動作中の前記主軸の速度がステップ状に変化したときに前記選択部によって前記特性データが切り替えられた場合、前記従動軸の移動量を平滑するフィルタ処理部（７８，７９）をさらに備える、構成１〜構成７のいずれかに記載の制御装置。
【０２０６】
（構成９）
主軸（５０１，６０１の動作に対して従動軸（５５１，６５１）の動作を同期させる制御装置（６０）における制御方法であって、
制御周期ごとに前記主軸の速度を取得するステップと、
前記主軸の位置に対する前記従動軸の移動量を特定するための複数の特性データを記憶するステップと、
前記複数の特性データのうちからいずれかの特性データを選択するステップと、
前記従動軸に対して指令する速度を速度指令値として算出するステップと、
前記算出するステップによって算出された前記速度指令値を前記従動軸に出力するステップとを含み、
前記算出するステップは、
前記主軸の動作に対して前記従動軸の動作を同期させる同期動作中においては、前記取得するステップによって取得された前記主軸の速度に所定の比率を乗算した速度を、前記速度指令値として算出し、
前記同期動作が開始する位置に前記従動軸が到達する前においては、前記取得するステップによって取得された前記主軸の速度から算出される前記主軸の位置と前記選択するステップによって選択中の前記特性データとに基づき前記従動軸の移動量を特定し、当該移動量に基づき特定される速度を、前記速度指令値として算出し、
前記選択するステップは、前記主軸および前記従動軸の動作中に前記主軸の速度がステップ状に変化した場合、前記記憶部に記憶された前記複数の特性データの中から前記主軸の速度変化に応じた他の特性データを特定し、当該他の特性データに、選択中の前記特性データを切り替える、制御方法。
【０２０７】
今回開示された各実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組み合わせても、実施することが意図される。
【符号の説明】
【０２０８】
２  フィールドネットワーク、３，３１，３２，３３，３４  サーボドライバ、４，４１，４２，４３，４４  サーボモータ、５  ターミナル、６  検出スイッチ、７  リレー、８  サポート装置、９  記録媒体、１０  接続ケーブル、１１  システムバス、１２  電源ユニット、１３  ＣＰＵユニット、１４，５３  ＩＯユニット、１５  特殊ユニット、１７  タッチディスプレイ、１８  モーション制御サイクルの周期を設定するプログラム、２０  ＦＦＴ解析部、５１  ターミナルバス、５２  通信カプラ、６０  制御装置、６１  ネットワーク処理部、６２  記憶部、６３  選択部、６５，７３，７４，８３，８４  切替スイッチ、６６  主軸速度変化検出部、６７  主軸振動検出部、６８  取得部、７０  算出部、７１，７２  指令値演算部、７５  カム演算部、７６，７７  同期演算部、７８，７９  フィルタ処理部、８１，８２  出力部、１００  マイクロプロセッサ、１０２  チップセット、１０４  メインメモリ、１０６  不揮発性メモリ、１０８  システムタイマ、１１０  コネクタ、１２０  システムバスコントローラ、１２２，１４２  ＤＭＡ制御回路、１２４  システムバス制御回路、１２６，１４６  バッファメモリ、１３０，１５０  システムバスコネクタ、１４０  フィールドネットワークコントローラ、１４４  フィールドネットワーク制御回路、２１０，２２０  システムプログラム、２１２  スケジューラプログラム、２１４  出力処理プログラム、２１６  入力処理プログラム、２１８  処理プログラム、２２２  モーション制御サイクルの周期を設定するプログラム、２３０  制御プログラム、２３２  シーケンス命令演算プログラム、２３４  モーション演算プログラム、２３６  ユーザプログラム、３０１，３０２  コンベア、３５０  ワーク、４００  ロボット、５００，５５０，６００，６５０  モータ、５０１，６０１  主軸、５０２  カム、５５１，６５１  従動軸、５５２  接触子、６０２，６５２  ギア。
【図１】
2020009296.tif 000003
【図２】
2020009296.tif 000004
【図３】
2020009296.tif 000005
【図４】
2020009296.tif 000006
【図５】
2020009296.tif 000007
【図６】
2020009296.tif 000008
【図７】
2020009296.tif 000009
【図８】
2020009296.tif 000010
【図９】
2020009296.tif 000011
【図１０】
2020009296.tif 000012
【図１１】
2020009296.tif 000013
【図１２】
2020009296.tif 000014
【図１３】
2020009296.tif 000015
【図１４】
2020009296.tif 000016
【図１５】
2020009296.tif 000017
【図１６】
2020009296.tif 000018
【図１７】
2020009296.tif 000019
【図１８】
2020009296.tif 000020