(57)【特許請求の範囲】
【請求項１】
主軸に従軸を同期させる制御装置であって、
前記主軸の位置情報を用いて従軸の指令位置を算出し、前記従軸に対して前記指令位置を出力する工程において、前記制御装置から前記従軸への前記指令位置の伝送による遅れと従軸の遅れとを前記指令位置の補正によって補償するプロセッサと、
前記補正にかかる補正量と補正後の指令位置を記憶するメモリを備え、
プロセッサの出力が強制終了されたときに、従軸は直近の補正後の指令位置に留まることが可能であり、
前記強制終了の後に出力を再開する場合に、直近の補正後の指令位置を基準として前記補正を行うか、直近の補正前の指令位置を基準として前記補正を行うかの選択が可能である制御装置。
【請求項２】
前記プロセッサは、前記指令位置と、前記出力の伝送に要する伝送時間と、前記従軸の遅れ時間とを用いて前記補正を行う請求項１記載の制御装置。
【請求項３】
前記プロセッサは、前記従軸が主軸に同期する動作以外の動作を行うときにメモリに記憶された補正量をゼロに戻す請求項１記載の制御装置。
【請求項４】
前記プロセッサは、前記指令位置をパラメータとして含む演算式を用いて前記補正を行う請求項２記載の制御装置。
【請求項５】
従軸位置によって前記従軸の遅れ時間が異なる場合に、前記プロセッサは、従軸の位置情報と補正量との関係を規定するテーブルを参照する請求項１記載の制御装置。
【請求項６】
前記プロセッサは、従軸の位置情報が前記テーブルに記載されていない場合に直線補間あるいは曲線補間によって前記補正にかかる補正量を算出する請求項５記載の制御装置。
【請求項７】
前記プロセッサは、前記補正にかかる補正量をユーザプログラムに通知する請求項１記載の制御装置。
【請求項８】
前記出力は従軸の補正後の指令位置を示す信号であり、
前記プロセッサは、前記指令位置に基づく従軸速度が従軸の最高速度を超える場合に当該最高速度に基づく指令位置とし、前記最高速度では余る移動量を、以降の補正に繰り越す請求項１記載の制御装置。
【請求項９】
前記最高速度では余る移動量が一定量を超える場合に、前記プロセッサは、従軸を異常としてその動作を停止させる請求項８記載の制御装置。
【請求項１０】
前記主軸および従軸それぞれとプロセッサとがネットワークを介して接続され、
前記プロセッサは、前記主軸の位置情報がネットワークを介してプロセッサに入力されるのに要する時間と、プロセッサが主軸の位置情報を受けてから前記指令位置の出力までに要する時間とによって生じる同期ずれを、主軸の位置の仮想的なシフトによって補償する請求項１記載の制御装置。
【請求項１１】
前記主軸および従軸それぞれとプロセッサとがネットワークを介して接続され、
前記プロセッサは、前記主軸の位置情報がネットワークを介してプロセッサに入力されるのに要する時間と、プロセッサが主軸の位置情報を受けてから前記指令位置の出力までに要する時間と、前記出力がネットワークを介して従軸に入力されるのに要する時間と、前記従軸の遅れ時間とによって生じる同期ずれを、前記指令位置の補正によって補償する請求項２記載の制御装置。
【請求項１２】
主軸の位置情報を用いて従軸の指令位置を算出し、従軸に対して前記指令位置に応じた出力を行うことで、前記主軸に従軸を同期させる同期制御方法であって、
前記従軸への指令位置の出力の伝送および従軸の遅れに起因する同期ずれを、前記指令位置の補正によって補償するファンクションブロックを使用し、
メモリに前記補正にかかる補正量と補正後の指令位置を保存し、
出力が強制終了されたときに、従軸は直近の補正後の指令位置に留まることが可能であり、
前記強制終了の後に出力を再開する場合に、直近の補正後の指令位置を基準として前記補正を行うか、直近の補正前の指令位置を基準として前記補正を行うかを選択する同期制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同期制御装置に関する。
【背景技術】
【０００２】
主軸と従軸を同期させるモーション制御では、主軸で測定された情報が処理されて従軸へ伝送されるまでの遅れによって主軸および従軸間に同期ずれが生じうる。この同期ずれに関して、特許文献１には、測定された主軸位置をフィルタによりシフトさせる手法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】日本国公開特許公報２０１４−１１９９０４（２０１４年６月３０日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
この手法のように、従軸への伝送による遅れを考慮するだけでは精度の高いモーション制御を実現するためには、十分でない。
【課題を解決するための手段】
【０００５】
本発明の制御装置は、主軸に従軸を同期させる制御装置であって、前記主軸の位置情報を用いて従軸の指令位置を算出し、前記従軸に対して前記指令位置を出力する工程において、前記制御装置から前記従軸への前記指令位置の伝送による遅れと従軸の遅れとを前記指令位置の補正によって補償するプロセッサを備える。
【０００６】
なお、前記主軸は実在のものだけではなく、前記プロセッサの処理で実現される仮想的な軸であってもよい。
【発明の効果】
【０００７】
前記構成によれば、主軸と従軸を同期させるモーション制御において、前記指令位置の伝送による遅れと従軸の遅れとに起因する同期ずれを抑制することができる。
【図面の簡単な説明】
【０００８】
【図１】（ａ）は実施の形態１のモーション制御システムの概略構成を示すブロック図であり、（ｂ）は同期ずれの原因を説明するタイミングチャートである。
【図２】実施の形態１のモーション制御システムの構成を示すブロック図である。
【図３】（ａ）は主軸機構および従軸機構の構成を示すブロック図であり、（ｂ）は、（ａ）に関するガントリー機構を示す模式図である。
【図４】図３のプロセッサの処理工程を示すフローチャートである。
【図５】（ａ）は、実施の形態１における主軸機構および従軸機構の別構成を示すブロック図であり、（ｂ）は、（ａ）に関するガントリー機構を示す模式図である。
【図６】実施の形態１における主軸機構および従軸機構のさらなる別構成を示すブロック図である。
【図７】実施の形態２のモーション制御システムの構成を示すブロック図である。
【図８】図７のプロセッサの処理工程を示すフローチャートである。
【図９】（ａ）（ｂ）は、実施の形態３のモーション制御システムを示す模式図である。
【図１０】プロセッサの処理手順を示す説明図である。
【図１１】本実施形態に用いるプログラム例である。
【発明を実施するための形態】
【０００９】
図１（ａ）に示す本モーション制御システム１は、同期制御装置３と、通信ネットワーク２１と、主軸機構３１および従軸機構３２とを備える。同期制御装置３は、例えばプログラマブルロジックコントローラ（ＰＬＣ）である。
【００１０】
同期制御装置３は、主軸機構３１の位置情報を用いて従軸機構３２の指令位置を周期ごとに算出し、従軸機構３２に対して指令位置に応じた出力（例えば、従軸位置信号の送信）を行うプロセッサを備えることで、従軸機構３２を主軸機構３１に同期させる。
【００１１】
モーション制御システム１では、図１（ｂ）に示すように、主軸位置が特定され、主軸位置が通信ネットワーク２１を介して同期制御装置３に入力されるのに要する時間Ｔ１、同期制御装置３のプロセッサが主軸位置を受けてから指令位置に応じた出力（例えば、従軸位置信号の送信）を行うまでに要する時間Ｔ２、前記出力が通信ネットワーク２１を介して従軸機構３２に入力されるのに要する時間Ｔ３、および従軸機構３２の遅れ時間Ｔ４それぞれによって同期ずれが生じる。
【００１２】
従軸の遅れ時間Ｔ４は、従軸のサーボドライバの処理時間、サーボモータや従軸機構の摩擦等に起因した応答遅れによって生じるもので、例えば、通信ネットワーク２１経由で従軸位置信号が従軸機構３２に受信されてから、これが電気的信号に変換されて従軸機構３２のサーボモータ（後述）に取り付けられたエンコーダの値が変化するまでの時間で表すことができる。
【００１３】
同期制御装置３では、時間Ｔ１〜時間Ｔ４による同期ずれを、例えば以下のように補償している。なお、時間Ｔ１＋時間Ｔ２を主軸側の遅れ、時間Ｔ３＋時間Ｔ４を従軸側の遅れとする。
【００１４】
〔実施の形態１〕
実施の形態１では、主軸側の遅れ（Ｔ１＋Ｔ２）による同期ずれと、従軸側の遅れ（Ｔ３＋Ｔ４）による同期ずれを別々に補償する。
【００１５】
図２に示すように、実施の形態１のモーション制御システムは、プロセッサ５およびインターフェース１９を含む同期制御装置３と、通信ネットワーク２１（例えば、ＥｔｈｅｒＣＡＴ（登録商標））と、主軸機構３１および従軸機構３２とを備え、同期制御装置３は、ユーザ端末４０（情報処理装置）に接続される。
【００１６】
ここで、図３（ａ）に示すように、主軸機構３１は、サーボドライバ３１ｄ、主軸であるサーボモータ３１ｍおよびエンコーダ（信号生成器）３１ｅを含み、サーボドライバ３１ｄがサーボモータ３１ｍを駆動し、エンコーダ３１ｅがサーボモータ３１ｍの位置を示す信号を通信ネットワーク２１に送信する。また、従軸機構３２は、サーボドライバ３２ｄ、従軸であるサーボモータ３２ｍおよびエンコーダ（信号生成器）３２ｅを含み、サーボドライバ３２ｄがサーボモータ３２ｍを駆動し、エンコーダ３２ｅがサーボモータ３２ｍの位置を示す信号を通信ネットワーク２１に送信する。
【００１７】
なお、図３（ｂ）に示すように、主軸機構３１のサーボモータ３１ｍと、従軸機構３２のサーボモータ３２ｍとは同一筐体によって機構的に固定されており、主軸および従軸である２つのサーボモータ３１ｍ・３２ｍはガイド上を協調して平行移動する（ガントリー機構）。
【００１８】
図２に戻って、プロセッサ５はメモリ１７を含み、機能ブロックとしての、従軸指令位置算出部１０、従軸補正量算出部１１、補正後指令位置算出部１３、従軸位置信号生成部１４、動作開始処理部１５、および主軸シフト部１６を有する。換言すれば、プロセッサ５は、モーション制御プログラムを実行することで、これら各部の機能を実現する。
【００１９】
主軸機構３１および従軸機構３２それぞれは、通信ネットワーク２１およびインターフェース１９を介してプロセッサ５に接続されている。ユーザ端末４０は、インターフェース１９を介してプロセッサ５に接続されている。
【００２０】
主軸機構３１は、主軸位置情報（エンコーダ３１ｅのパルス信号に応じた角度や距離）を、通信ネットワーク２１およびインターフェース１９を介して、主軸シフト部１６に送信する。従軸機構３２は、従軸位置情報（エンコーダ３２ｅのパルス信号に応じた角度や距離）を、通信ネットワーク２１およびインターフェース１９を介して、従軸補正量算出部１１に送信する。
【００２１】
主軸シフト部１６は、主軸位置情報と、制御周期Ｎにおける時間Ｔ１［Ｎ］よび時間Ｔ２［Ｎ］とを用いて、例えば式１に示すように制御周期Ｎにおける主軸速度Ｖｍ［Ｎ］を用いて、制御周期Ｎにおける主軸シフト量（Ｔ１＋Ｔ２間の主軸の移動量）を算出することができる。
主軸シフト量［Ｎ］=Ｖｍ［Ｎ］×（Ｔ１［Ｎ］＋Ｔ２［Ｎ］）・・・式１
あるいは、例えば式２に示すように主軸の平均加速度Ａｍ［Ｎ］を用いて主軸シフト量を算出することができる。
主軸シフト量［Ｎ］=Ａｍ［Ｎ］×（Ｔ１［Ｎ］＋Ｔ２［Ｎ］）２／２・・・式２
ここでは、主軸位置を主軸シフト量だけ進める方向にシフトさせてシフト後主軸位置とする。
【００２２】
なお、主軸シフト量［Ｎ］とは制御周期Ｎにおける主軸シフト量のことを意味しており、Ｖｍ［Ｎ］、Ｔ１［Ｎ］およびＴ２［Ｎ］はすべて制御周期Ｎにおける値である。
【００２３】
従軸指令位置算出部１０は、シフト後主軸位置と、主軸位置情報とを用いて従軸指令位置を算出する。例えば、ギア動作による同期演算方式の場合、ギア比Ｇにより制御周期Ｎにおける従軸指令位置は式３により求めることができる。
従軸指令位置［Ｎ］＝従軸指令位置［Ｎ−１］＋Ｇ×（シフト後主軸位置［Ｎ］−シフト後主軸位置［Ｎ−１］）・・・式３
このように、シフト後主軸位置を用いることで、制御周期Ｎにおける主軸側の遅れ（Ｔ１＋Ｔ２）による同期ずれが補償される。
【００２４】
従軸補正量算出部１１は、従軸指令位置から算出される制御周期Ｎにおける従軸指令位速度Ｖｓ［Ｎ］と、時間Ｔ３［Ｎ］および時間Ｔ４［Ｎ］と、例えば式４の方法により制御周期Ｎにおける補正量（Ｔ３［Ｎ］＋Ｔ４［Ｎ］の間の従軸移動量）を算出する。
従軸補正量［Ｎ］=Ｖｓ［Ｎ］×（Ｔ３［Ｎ］＋Ｔ４［Ｎ］）・・・式４
あるいは、制御周期Ｎにおける従軸指令加速度Ａｓ［Ｎ］より算出することができる。
従軸補正量［Ｎ］=Ａｓ［Ｎ］×（Ｔ３［Ｎ］＋Ｔ４［Ｎ］）２／２・・・式５
補正後指令位置算出部１３は、従軸指令位置を補正量だけ戻して補正後指令位置とし、補正後指令位置を、従軸位置信号生成部１４に入力するとともに、補正量と補正後指令位置とを、メモリ１７およびユーザ端末４０のユーザプログラムに通知する。
【００２５】
従軸位置信号生成部１４は、補正後指令位置と、従軸位置情報とを用いて従軸位置信号を生成する。
【００２６】
ここで、従軸位置信号に基づく速度が従軸の最高速度を超えない場合には、この従軸位置信号を、インターフェース１９および通信ネットワーク２１を介して従軸機構３２に入力（伝達）する。従軸位置信号は、入力からＴ４後に従軸機構３２に反映される。
【００２７】
従軸位置信号に基づく速度が従軸の最高速度を超える場合には、最高速度でも余る余剰移動量が規定量未満か否かをさらに判定し、規定量未満であれば、従軸位置信号を最高速度に基づく値に設定し直した上で従軸機構３２に入力する。この場合、余剰移動量は次周期以降に繰り越すものとする。なお、余剰移動量が規定量以上であれば、異常と判断して従軸機構３２の動作を停止させる。
【００２８】
このように、従軸指令位置を補正量だけ戻して補正後指令位置を算出し、これに基づく従軸位置信号を従軸機構３２に入力することで、従軸側の遅れ（Ｔ３＋Ｔ４）による同期ずれを補償することができる。
【００２９】
なお、図１０に示すように、時間Ｔ２は、プロセッサにおける処理の周期である。プロセッサ５は、まず、期間ＩＯで主軸や従軸の位置情報等を取り込み、期間ＵＰＧでユーザプログラムを実行してモーション制御命令ＦＢを起動し（モーション制御命令ＦＢの出力変数はこの時点で更新される）、期間ＭＣでモーション制御命令ＦＢに従ってモーション制御プログラムによるモーション演算を行って従軸位置信号等の指令を生成し、次周期のＩＯ期間に従軸位置信号を出力（送信）する。
【００３０】
また、従軸補正量を、例えば図１０に示されるＭＣ演算の中で実行してもよい。ユーザは図１０に示されたファンクションブロック（ＦＢ）を使って従軸の遅れを補正することになるが、この場合のファンクションブロックの実現形態を図１１（ａ）に示す。
【００３１】
図１１（ａ）は、本実施の形態の制御装置で実行されるユーザプログラムの一例を示す図である。図１１（ａ）に示すように、ユーザプログラムは、ラダープログラムの形式で定義されており、ファンクションブロックＦＢを含む。ファンクションブロックＦＢは、実行順序が到来すると、対応するライブラリプログラム（または、ライブラリプログラムの対応するコード）を呼び出して実行することを指定するための命令である。言い換えれば、各ファンクションブロックに対応するプログラム実体であるライブラリプログラムが予め用意されており、プロセッサは、プログラムに従って、ライブラリプログラムを適宜呼び出して実行することになる。ファンクションブロックの入力には例えば従軸の指令位置を構造体のメンバ変数として有する従軸の軸変数のみを指定する。従軸補正量はファンクションブロックの内部処理、もしくはファンクションブロックによって実行内容が指示されるＭＣ演算にて演算する。
【００３２】
また、従軸補正量を図１０のユーザプログラム（ＵＰＧ）で演算してもよい。この場合の図１１（ｂ）に示すファンクションブロックの入力値として従軸の指令位置と従軸補正量を指定する。ファンクションブロックの実行前に従軸指令位置の補正演算を行った後、ファンクションブロックの入力に従軸の軸変数と従軸補正量を指定する。
【００３３】
時間Ｔ１〜４の計測方法については、例えば、日本国特許第４８９４９６１号に記載の手段を用いれば一定の制御サイクルで通信回路の送受信が行えるため、この通信回路の制御サイクルからＴ１〜Ｔ３の遅れを算出することができる。さらに、従軸にステップ上の指令を出力した場合の従軸エンコーダの変化からＴ４を同定することができる。
【００３４】
なお、メモリ１７には前回の補正量と前回の補正後指令位置が保存されているため、従軸位置信号の出力が何らかの原因で強制停止したときでも、従軸機構３２は直近の補正後指令位置に留まることが可能である。また、ユーザは、ユーザプログラムに通知された各周期の補正量および補正後指令位置を監視することができる。
【００３５】
なお、動作開始処理部１５は、同期動作の開始時に、従軸機構３２を、直近の補正後指令位置を基準として動作させるか、あるいは、直近の補正前の従軸指令位置を基準として動作させるかを、デフォルトの設定、あるいはユーザの入力に応じて決定する。
【００３６】
さらに、動作開始処理部１５は、従軸機構３２の動作開始時にその状態を判定し、異常であればその旨を外部に報知し、従軸機構３２を動作させない。さらに、動作開始処理部１５は、従軸機構３２が主軸機構３１に同期する動作以外の動作を始めるときに、メモリ１７に記憶された補正量をゼロに戻す。
【００３７】
図４のフローチャートに、前記したプロセッサ５の処理手順を示す。プロセッサ５は、モーション制御プログラムを実行することで以下の各処理を行う。
【００３８】
まず、ステップＳ１で主軸動作を開始し、ステップＳ２で、従軸機構３２を、前回の補正後指令位置を基準として動作させるか否かを判定する。ステップＳ２でＹＥＳの場合には、前回の補正後指令位置を基準として従軸の動作を開始させる（ステップＳ３）。ステップＳ２でＮＯの場合には、前回の補正前の指令位置を基準として従軸の動作を開始させる（ステップＳ４）。
【００３９】
次いでステップＳ５に進み、従軸の状態が正常か否かを判定する。ステップＳ５でＮＯの場合は、ステップＳ１６に進んで従軸を異常停止させる（エンド）。ステップＳ５でＹＥＳの場合は、主軸位置情報を取得する（ステップＳ６）。
【００４０】
次いで、シフト後主軸位置を算出する（ステップＳ７）。次いで、従軸指令位置を算出する（ステップＳ８）。次いで、補正量の算出および補正量の保存を行う（ステップＳ９）。次いで、補正後指令位置の算出および保存を行う（ステップＳ１０）。
【００４１】
次いで、従軸位置信号の生成を行う（ステップＳ１１）。次いで、ステップＳ１２で最高速度を超えないか否かを判定し、ステップＳ１２でＹＥＳの場合は、従軸位置信号を従軸のサーボドライバに送信する（Ｓ１５）。ステップＳ１２でＮＯの場合は、さらに、超えた分の移動量が規定量未満か否かを判定する（ステップＳ１３）。ステップＳ１３でＮＯの場合は、ステップＳ１６に進んで従軸を異常停止させる（エンド）。ステップＳ１３でＹＥＳの場合は、ステップ１４に進んで、従軸位置信号を最高速度に基づく値に設定し直し（超えた分の移動量は次周期以降に繰り越し）、これを従軸機構３２のサーボドライバへ送信する（ステップＳ１５）。
【００４２】
前記の説明は主軸機構が実在の物であるがこれに限定されない。図５のように、主軸を仮想のもの（プロセッサ５が作成する仮想主軸）としてもよい。すなわち、従軸機構３２は、サーボドライバ３２ｄ、サーボモータ３２ｍ（従軸）およびエンコーダ（信号生成器）３２ｅを含み、従軸機構４２は、サーボドライバ４２ｄ、サーボモータ４２ｍ（従軸）およびエンコーダ（信号生成器）４２ｅを含み、従軸機構３２のサーボモータ３２ｍと、従軸機構４２のサーボモータ４２ｍとは同一筐体によって機構的に固定されており、２つのサーボモータ３２ｍ・４２ｍはガイド上を協調して平行移動する（ガントリー機構）。
【００４３】
この場合は主軸位置のシフトを必ずしも行う必要がなくなるため、主軸シフト部１６における主軸シフト量をゼロとして、図４のステップＳ７を実行することもできる。
【００４４】
実施の形態１のモーション制御システム１では、主従軸機構を図６のように構成することもできる。すなわち、平行移動するワークＷとこれらを搬送する搬送モータ１１２・１１４と、ワークＷの位置情報を計測するメジャリングロール１４０（主軸）とを主軸機構とし、回転動作するロータリカッター１０２・１０４と、ベルト１０６によってこれらと同期回転するサーボモータ１１０（従軸）と、サーボモータ１１０を駆動するサーボドライバ１４４とを従軸機構とする。ここでは、ロータリカッター１０２・１０４が同期回転して、その周の一部に形成されている刃でワークＷを切断する。
【００４５】
メジャリングロール１４０による主軸位置（回転角）情報およびサーボモータ１１０による従軸位置（回転角）情報は、通信ネットワーク２１を介して同期制御装置３（図２参照）のプロセッサ５に入力される。プロセッサ５の処理内容については、上述のとおりである。
【００４６】
〔実施の形態２〕
実施の形態２では、主軸側の遅れ（Ｔ１＋Ｔ２）による同期ずれと、従軸側の遅れ（Ｔ３＋Ｔ４）による同期ずれをまとめて補償する。
【００４７】
図７に示すように、実施の形態２の同期制御装置３のプロセッサ５は、メモリ１７と、機能ブロックとしての、従軸指令位置算出部１０、従軸補正量算出部１１、補正後指令位置算出部１３、従軸位置信号生成部１４、および動作開始処理部１５とを含む。主軸機構３１および従軸機構３２それぞれは、通信ネットワーク２１およびインターフェース１９を介してプロセッサ５に接続され、ユーザ端末４０は、インターフェース１９を介してプロセッサ５に接続されている。
【００４８】
主軸機構３１は、主軸位置情報を、通信ネットワーク２１およびインターフェース１９を介して、従軸指令位置算出部１０に送信する。従軸機構３２は、従軸位置情報を、通信ネットワーク２１およびインターフェース１９を介して、従軸補正量算出部１１に送信する。
【００４９】
従軸指令位置算出部１０は、時間Ｔ１および時間Ｔ２と、主軸位置情報とを用いて従軸指令位置を算出する。ここでは、主軸位置を、Ｔ１＋Ｔ２間の主軸の移動量だけ進めた上で従軸指令位置を算出する。主軸シフト量の算出には、例えば、前記式１あるいは式２を用いることができる。こうすることで、主軸側の遅れ（Ｔ１＋Ｔ２）による同期ずれが補償される。
【００５０】
従軸補正量算出部１１は、従軸指令位置と、時間Ｔ３および時間Ｔ４と、主軸位置情報および従軸位置情報とを用いて補正量（Ｔ３＋Ｔ４間の従軸移動量）を算出する。従軸指令位置の算出には、例えば、前記式３を用いることができ、従軸補正量の算出には、例えば、前記式４または式５を用いることができる。
【００５１】
補正後指令位置算出部１３は、従軸指令位置を補正量だけ戻して補正後指令位置とし、補正後指令位置を、従軸位置信号生成部１４に入力するとともに、補正量と補正後指令位置とを、メモリ１７およびユーザ端末４０のユーザープログラムに通知する。
【００５２】
従軸位置信号生成部１４は、補正後指令位置と、従軸位置情報とを用いて従軸位置信号を生成する。
【００５３】
ここで、従軸位置信号が従軸の最高速度を超えない場合には、これを、インターフェース１９および通信ネットワーク２１を介して従軸機構３２に入力（伝達）する。従軸位置信号は、入力からＴ４（従軸の遅れ時間）後に従軸機構３２に反映される。
【００５４】
従軸位置信号に基づく速度が従軸の最高速度を超える場合には、最高速度でも余る余剰移動量が規定量未満か否かをさらに判定し、規定量未満であれば、従軸位置信号を最高速度に基づく値に設定し直した上で従軸機構３２に入力する。この場合、余剰移動量は次周期以降に繰り越すものとする。なお、余剰移動量が規定量以上であれば、異常と判断して従軸機構３２の動作を停止させる。
【００５５】
このように、従軸指令位置を補正量だけ戻して補正後指令位置を算出し、これに基づく従軸位置信号を従軸機構３２に入力することで、従軸側の遅れ（Ｔ３＋Ｔ４）による同期ずれを補償することができる。
【００５６】
なお、動作開始処理部１５は、同期動作の開始時に、従軸機構３２を、直近の補正後指令位置を基準として動作させるか、あるいは、直近の補正前の従軸指令位置を基準として動作させるかを、デフォルトの設定、あるいはユーザの入力に応じて決定する。
【００５７】
さらに、動作開始処理部１５は、従軸機構３２の動作開始時にその状態を判定し、異常であればその旨を外部に報知し、従軸機構３２を動作させない。さらに、動作開始処理部１５は、従軸機構３２が主軸機構３１に同期する動作以外の動作を始めるときに、メモリ１７に記憶された補正量をゼロに戻す。
【００５８】
図８のフローチャートに、前記したプロセッサ５の処理手順を示す。
【００５９】
まず、ステップＳ１で主軸動作を開始し、ステップＳ２で、従軸機構３２を、直近の補正後指令位置を基準として動作させるか否かを判定する。ステップＳ２でＹＥＳの場合には、直近の補正後指令位置を基準として従軸の動作を開始させる（ステップＳ３）。ステップＳ２でＮＯの場合には、直近の補正前の指令位置を基準として従軸の動作を開始させる（ステップＳ４）。
【００６０】
次いでステップＳ５に進み、従軸の状態が正常か否かを判定する。ステップＳ５でＮＯの場合は、ステップＳ１５に進んで従軸を異常停止させる（エンド）。ステップＳ５でＹＥＳの場合は、主軸位置情報を取得する（ステップＳ６）。
【００６１】
次いで、従軸指令位置を算出する（ステップＳ７）。次いで、補正量の算出および補正量の保存を行う（ステップＳ８）。次いで、補正後指令位置の算出および保存を行う（ステップＳ９）。
【００６２】
次いで、従軸位置信号の生成を行う（ステップＳ１０）。次いで、ステップＳ１１で最高速度を超えないか否かを判定し、ステップＳ１１でＹＥＳの場合は、従軸位置信号を従軸のサーボドライバに送信する（Ｓ１４）。ステップＳ１１でＮＯの場合は、さらに、超えた分の移動量が規定量未満か否かを判定する（ステップＳ１２）。ステップＳ１２でＮＯの場合は、ステップＳ１５に進んで従軸を異常停止させる（エンド）。ステップＳ１２でＹＥＳの場合は、ステップ１３に進んで、従軸位置信号を最高速度に基づく値に設定し直し（超えた分の移動量は次周期以降に繰り越し）、これを従軸機構のサーボドライバへ送信する（ステップＳ１４）。
【００６３】
なお、実施の形態２においても、主軸機構および従軸機構を、図５や図６のように構成することができる。
【００６４】
〔実施の形態の３〕
図９（ａ）に示すように、実施の形態３のモーション制御システム１は、図示しないプロセッサを含むＰＬＣ（プログラマブルロジックコントローラ）３と、ターミナル８を含む通信ネットワーク２１（例えば、ＥｔｈｅｒＣＡＴ（登録商標））と、主軸であるサーボモータ３１ｍと、これを駆動するサーボドライバ３１ｄと、従軸である３つのサーボモータ３２ｍと、これらを駆動する３つのサーボドライバ３２ｄと、エンコーダ４４ｅとを備える。
【００６５】
ここで、ＰＬＣ３の通信ポート１９ａが通信ネットワーク２１のターミナル８に接続され、ＰＬＣ３のＵＳＢポート１９ａまたはＬＡＮポート１９ｂがユーザ端末４０（情報処理装置）に接続され、エンコーダ４４ｅは、主従軸であるサーボモータ３１ｍ・３２ｍの位置情報等を通信ネットワーク２１を介してＰＬＣ３に送信する。
【００６６】
なお、ＰＬＣ３のプロセッサの処理は実施の形態１または２で示したプロセッサ５のそれと同様である。また、ＰＬＣ３のプロセッサが仮想的に主軸を作成する場合は、図９（ｂ）のように、４つのサーボモータ３２ｍを従軸とする構成も可能である。
【００６７】
以上のように、本制御装置は、主軸に従軸を同期させる制御装置であって、前記主軸の位置情報を用いて従軸の指令位置を算出し、前記従軸に対して前記指令位置を出力する工程において、前記制御装置から前記従軸への前記指令位置の伝送による遅れと従軸の遅れとを前記指令位置の補正によって補償するプロセッサを備える。
【００６８】
本制御装置の次なる構成では、前記プロセッサは、前記指令位置と、従軸の位置情報と、前記出力の伝送に要する伝送時間と、前記従軸の遅れ時間とを用いて前記補正を行う。
【００６９】
本制御装置の次なる構成では、前記補正にかかる補正量と補正後の指令位置を記憶するメモリを備え、プロセッサの出力が強制終了されたときに、従軸は直近の補正後の指令位置に留まることが可能である。
【００７０】
本制御装置の次なる構成では、前記強制終了の後に出力を再開する場合に、直近の補正後の指令位置を基準として前記補正を行うか、直近の補正前の指令位置を基準として前記補正を行うかの選択が可能である。
【００７１】
本制御装置の次なる構成では、前記プロセッサは、前記従軸が主軸に同期する動作以外の動作を行うときにメモリに記憶された補正量をゼロに戻す。
【００７２】
本制御装置の次なる構成では、前記プロセッサは、前記指令位置と、従軸の位置情報とをパラメータとして含む演算式を用いて前記補正を行う。
【００７３】
本制御装置の次なる構成では、従軸位置によって前記従軸の遅れ時間が異なる場合に、前記プロセッサは、従軸の位置情報と補正量との関係を規定するテーブルを参照する。
【００７４】
本制御装置の次なる構成では、前記プロセッサは、従軸の位置情報が前記テーブルに記載されていない場合に直線補間あるいは曲線補間によって前記補正にかかる補正量を算出する。
【００７５】
本制御装置の次なる構成では、前記プロセッサは、前記補正にかかる補正量をユーザプログラムに通知する。
【００７６】
本制御装置の次なる構成では、前記出力は従軸の指令位置を示す信号であり、前記プロセッサは、前記指令位置に基づく従軸速度が従軸の最高速度を超える場合に当該最高速度に基づく指令位置とし、前記最高速度では余る移動量を、以降の補正に繰り越す請求項１記載の制御装置。
【００７７】
本制御装置の次なる構成では、前記最高速度では余る移動量が一定量を超える場合に、前記プロセッサは、従軸を異常としてその動作を停止させる。
【００７８】
本制御装置の次なる構成では、前記主軸および従軸それぞれとプロセッサとがネットワークを介して接続され、前記プロセッサは、前記主軸の位置情報がネットワークを介してプロセッサに入力されるのに要する時間と、プロセッサが主軸の位置情報を受けてから前記指令位置の出力までに要する時間とによって生じる同期ずれを、主軸の位置の仮想的なシフトによって補償する。
【００７９】
本制御装置の次なる構成では、前記主軸および従軸それぞれとプロセッサとがネットワークを介して接続され、前記プロセッサは、前記主軸の位置情報がネットワークを介してプロセッサに入力されるのに要する時間と、プロセッサが主軸の位置情報を受けてから前記指令位置の出力までに要する時間と、前記出力がネットワークを介して従軸に入力されるのに要する時間と、前記従軸の遅れ時間とによって生じる同期ずれを、前記指令位置の補正によって補償する。
【００８０】
本同期制御方法は、主軸の位置情報を用いて従軸の指令位置を算出し、従軸に対して前記指令位置に応じた出力を行うことで、前記主軸に従軸を同期させる同期制御方法であって、前記従軸への指令位置の出力の伝送および従軸の遅れに起因する同期ずれを、前記指令位置の補正によって補償するファンクションブロックを使用する。
【００８１】
本発明は前記の実施の形態に限定されるものではなく、前記実施の形態を技術常識に基づいて適宜変更したものやそれらを組み合わせて得られるものも本発明の実施の形態に含まれる。
【産業上の利用可能性】
【００８２】
本発明に係る制御装置は、例えば、ＦＡ（ファクトリーオートメーション）機器に好適である。
【符号の説明】
【００８３】
１  モーション制御システム
３  同期制御装置（ＰＬＣ）
５  プロセッサ
１０  従軸指令位置算出部
１１  従軸補正量算出部
１３  補正後指令位置算出部
１４  従軸位置信号生成部
１５  動作開始処理部
１６  主軸シフト部
１７  メモリ  
１９  インターフェース
２１  通信ネットワーク
３１  主軸機構
３１ｍ  サーボモータ（主軸）
３２  従軸機構
３２ｍ  サーボモータ（従軸）
４０  ユーザ端末
１１０  サーボモータ（従軸）
１４０  メジャリングロール（主軸）
【図１】
0006497331.tif 000002
【図２】
0006497331.tif 000003
【図３】
0006497331.tif 000004
【図４】
0006497331.tif 000005
【図５】
0006497331.tif 000006
【図６】
0006497331.tif 000007
【図７】
0006497331.tif 000008
【図８】
0006497331.tif 000009
【図９】
0006497331.tif 000010
【図１０】
0006497331.tif 000011
【図１１】
0006497331.tif 000012