(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の目的は、移動体を決定した移動位置へ正確に移動させるためのPLCに基づく位置制御装置を提供することにある。
【0006】
本発明によるPLCに基づく位置制御装置は、移動体を移動させるモータを駆動するモータ駆動モジュール、前記移動体の移動位置を決定する位置命令を入力する入力モジュール、及び前記位置命令に基づいて、前記モータ駆動モジュールを動作させる駆動パルスを出力する制御モジュールを含み、前記制御モジュールは、第1の位置制御周期内に第1の位置演算割り込みが発生すると、前記位置命令に従って位置プロファイルを生成するプロファイル生成部、前記位置プロファイルに応じて、前記第1の位置制御周期の次の第2の位置制御周期に出力される前記駆動パルスの出力数を演算するパルス演算部、及び前記第2の位置制御周期の開始時点を知らせる第2の位置演算割り込みが発生すると、前記モータ駆動モジュールに前記パルス演算部で演算された出力数を有する前記駆動パルスを出力する駆動制御部を含んでいてもよい。
【0007】
前記制御モジュールは、前記第1、2の位置演算割り込みを発生させる第1の割り込み発生部、及び前記第2の位置制御周期の開始時点前に、前記駆動パルスを出力するためのパルス割り込みを発生させる第2の割り込み発生部をさらに含んでいてもよい。
【0008】
前記プロファイル生成部は、前記位置命令に従って、前記第2の位置制御周期に出力される前記駆動パルスの出力速度情報及び出力数情報を含む前記位置プロファイルを生成することができる。
【0009】
前記パルス演算部は、前記駆動パルスの出力数を貯蔵するバッファを含んでいてもよい。
【0010】
前記駆動制御部は、前記パルス割り込みを入力する際、前記パルス演算部で演算された前記駆動パルスの出力のため起動した後、前記第2の位置演算割り込みが発生すると、前記駆動パルスを出力することができる。
【0011】
前記第1の割り込み発生部は、前記駆動パルスを出力すると同時に、前記パルス演算部で前記第2の位置制御周期の次の第3の位置制御周期に出力される次の駆動パルスの出力数が演算されるように第3の位置演算割り込みを発生することができる。
【0012】
前記駆動制御部は、前記第3の位置演算割り込みの発生時点が、前記第3の位置制御周期の開始時点に発生したかを確認することができる。
【0013】
前記駆動制御部は、前記第3の位置演算割り込みの発生時点が前記第3の位置制御周期の開始時点より早いと、前記第3の位置制御周期の次の第4の位置制御周期に出力される次の駆動パルスの出力速度を遅く補正することができる。
【0014】
前記駆動制御部は、前記第3の位置演算割り込みの発生時点が前記第3の位置制御周期の開始時点より遅いと、前記第3の位置制御周期の次の第4の位置制御周期に出力される次の駆動パルスの出力速度を早く補正することができる。
【発明の効果】
【0015】
本発明によるPLCに基づく位置制御装置は、設定した位置制御周期別に駆動パルスの個数及び速度を補正することで、位置制御周期別に累積する誤差を減らせる利点がある。
【0016】
また、本発明によるPLCに基づく位置制御装置は、多軸制御のための位置演算割り込みを、設定した位置制御周期に従って順次に発生させることで、位置制御周期に発生する駆動パルスの遅延を防止できる利点がある。
【発明を実施するための形態】
【0018】
前述した目的、特徴及び長所は、添付の図面を参照して詳細に後述されており、これによって、本発明が属する技術分野で通常の知識を有する者が本発明の技術思想を容易に実施することができる。本発明を説明するにおいて、本発明に係る公知技術に対する具体的な説明が本発明の要旨を曖昧にすると判断される場合には詳説を省略する。以下では、添付の図面を参照して、本発明による好ましい実施形態を詳説する。図面における同じ参照符号は、同一又は類似の構成要素を指すものに使われる。
【0019】
図1は、本発明によるPLCに基づく位置制御装置を示した制御ブロック図である。
【0020】
図1を参照すれば、PLCに基づく位置制御装置100は、入力モジュール110、モータ駆動モジュール120及び制御モジュール130を含んでいてもよい。
【0021】
ここで、入力モジュール110は、使用者又は作業者によって移動体の移動位置を決定するための位置命令(a)を入力することができる。
【0022】
モータ駆動モジュール120は、複数の軸を制御するサーボモータを動作させて、移動体を移動位置に移動することができる。
【0023】
実施形態において、モータ駆動モジュール120は、制御モジュール130から出力される駆動パルスに応じて、前記複数の軸を制御する複数のサーボモータ(未図示)を動作させることができる。
【0024】
制御モジュール130は、第1、2の割り込み発生部131、133、プロファイル生成部135、パルス演算部137及び駆動制御部139を含んでいてもよい。
【0025】
位置命令(a)が入力されると、第1の割り込み発生部131は、位置命令(a)に対応する位置プロファイル(profile)が生成されるように第1の位置演算割り込み(int1)を発生させる。
【0026】
その後、第1の割り込み発生部131は、プロファイル生成部135へ第1の位置演算割り込み(int1)を出力する。
【0027】
第1の位置演算割り込み(int1)を出力した後、第1の割り込み発生部131は、プロファイル生成部135で生成された位置プロファイル(profile)に基づいて、位置制御周期に従って位置演算割り込み(int)を発生させる。
【0028】
第1の位置演算周期内に位置命令(a)が入力されて、第1の割り込み発生部131から出力された第1の位置演算割り込み(int1)が入力されると、プロファイル生成部135は、位置命令(a)に対応する位置プロファイル(profile)を生成することができる。
【0029】
ここで、位置プロファイル(profile)は、駆動パルス(pulse)の出力速度情報及び出力数情報を含んでいてもよい。
【0030】
すなわち、プロファイル生成部135は、駆動パルス(pulse)に対し、入力モジュール110から入力された位置命令(a)に基づいて生成することができる。
【0031】
パルス演算部137は、位置プロファイル(profile)に基づいて、第1の位置制御周期の次の第2の位置制御周期に出力される駆動パルス(pulse)の出力数を演算する。パルス演算部137は、演算された駆動パルス(pulse)の出力数をバッファ138に貯蔵することができる。
【0032】
このとき、第2の割り込み発生部133は、位置プロファイル(profile)に応じて、第2の位置制御周期に同期して、第3の位置演算割り込み(int3)が発生する前に、駆動パルス(pulse)を出力するためのパルス割り込み(pulse int)を発生させて駆動制御部139に出力することができる。
【0033】
第2の割り込み発生部133からパルス割り込み(pulse int)が入力されると、駆動制御部139は、パルス演算部137で演算された駆動パルス(pulse)の出力のために駆動される。第1の割り込み発生部131から第2の位置制御周期の開始時点であることを知らせる第2の位置演算割り込み(int2)が入力されると、駆動制御部139は、駆動パルス(pulse int)をモータ駆動モジュール120に出力することができる。
【0034】
第2の位置演算割り込み(int2)を出力した後、第1の割り込み発生部131は、第2の位置制御周期の次の第3の位置制御周期の開始時点であることを知らせる第3の位置演算割り込み(int3)を発生することができる。
【0035】
このとき、駆動制御部139は、第3の位置演算割り込み(int3)の発生時点又は入力時点が、第3の位置制御周期の開始時点に発生したかを確認することができる。
【0036】
第3の位置演算割り込み(int3)の発生時点が第3の位置制御周期の開始時点より早いと、駆動制御部139は、第3の位置制御周期の次の第4の位置制御周期に出力される次の駆動パルスの出力速度を遅く補正することができる。
【0037】
また、第3の位置演算割り込みの(int3)発生時点が第3の位置制御周期の開始時点より遅いと、駆動制御部139は、第3の位置制御周期の次の第4の位置制御周期に出力される次の駆動パルスの出力速度を早く補正することができる。
【0038】
このように、駆動制御部139は、位置演算割り込み(int)の発生時点と位置制御周期の開始時点を比較して、次の位置制御周期に出力される駆動パルスの出力速度を調節する。これによって、位置制御周期の開始時点の遅延を防止できる利点がある。
【0039】
また、駆動制御部139は、複数のサーボモータそれぞれの位置制御周期の開始時点を、設定した時間間隔に可変させる。これによって、複数のサーボモータそれぞれに供給される駆動パルスによる遅延を防止できる利点がある。
【0040】
図2は、本発明によるPLCに基づく位置制御装置から出力される駆動パルスを示したタイミング図である。
【0041】
図2は、第1〜第5の位置演算割り込み(int1〜int5)、パルス割り込み(pulse int)及び補正割り込み(DMA int)の発生時点及びこれによる駆動パルス(pulse)が供給されるタイミング図である。
【0042】
駆動パルス(pulse)が出力されない第1の位置制御周期内に位置命令が入力されると、制御モジュール130は、位置プロファイル(profile)を生成すると同時に、第2の位置制御周期に出力される駆動パルス(pulse)の出力数を演算するため第1の位置演算割り込み(int1)を発生させる。
【0043】
制御モジュール130は、第1の位置制御周期の終了時点前に、パルス割り込み(fint)を発生させて、第2の位置制御周期と同期化し、次の第2の位置制御周期の開始時点前に駆動パルス(pulse)を出力することができる。
【0044】
このとき、制御モジュール130は、第2の位置制御周期の開始時点に第3の位置制御周期に出力される駆動パルス(pulse)の出力数を演算する第2の位置演算割り込み(int2)を発生させる。
【0045】
制御モジュール130は、第2の位置制御周期の終了時点又は第3の位置制御周期の開始時点に、第4の位置制御周期に出力される駆動パルス(pulse)の出力数を演算する第3の位置演算割り込み(int3)を発生させる。
【0046】
また、制御モジュール130は、第2の位置制御周期の終了時点又は第3の位置制御周期の開始時点に、第4の位置制御周期に出力される駆動パルス(pulse)の出力速度を補正するための補正割り込み(DMA int)を発生させる。
【0047】
補正割り込み(DMA int)は、第3の位置制御周期に出力される駆動パルス(pulse)の遅延を防止するために、駆動パルス(pulse)の出力速度を補正するための割り込みを意味する。
【0048】
補正割り込み(DMA int)が発生すると、制御モジュール130は、第3の位置演算割り込み(int3)の発生時点を第3の位置制御周期の開始時点と比較して、駆動パルス(pulse)の出力速度を補正することができる。
【0049】
このように、制御モジュール130は、現在の位置制御周期と次の位置制御周期との間に出力される駆動パルス(pulse)の遅延を防止することができる。
【0050】
制御モジュール130は、第3の位置制御周期の終了時点又は第4の位置制御周期の開始時点に、第5の位置制御周期に出力される駆動パルス(pulse)の出力数を演算する第4の位置演算割り込み(int4)を発生させる。制御モジュール130は、前述した手続きを繰り返して行い、位置プロファイル(profile)に記録された位置制御終了時点まで駆動パルス(pulse)の出力速度を補正することができる。
【0051】
図3は、本発明によるPLCに基づく位置制御装置に対する動作方法を示した手順図である。
【0052】
図3を参照すれば、位置制御装置100の制御モジュール130は、第1の位置制御周期内に位置命令(a)が入力されると、位置プロファイル(profile)を生成することができる(S110)。
【0053】
制御モジュール130は、位置プロファイル(profile)に応じて、第1の位置演算割り込み(int1)を発生させて、第1の位置制御周期の次の第2の位置制御周期に出力される駆動パルス(pulse)の出力数を演算することができる(S120)。
【0054】
制御モジュール130は、第2の位置制御周期の開始時点又は第1の位置制御周期の終了時点前、すなわち、第2の位置制御周期に連動して、駆動パルス(pulse)の出力のためのパルス割り込み(pulse int)を発生させる(S130)。
【0055】
その後、制御モジュール130は、第2の位置制御周期の開始時点を知らせる第2の位置演算割り込み(int2)が発生すると、駆動パルス(pulse)をモータ駆動モジュール120に出力することができる(S140)。
【0056】
制御モジュール130は、第2の位置演算割り込み(int2)の発生時点、すなわち、第2の位置制御周期の開始時点に、次の第3の位置制御周期に出力される駆動パルス(pulse)数を演算することができる(S150)。
【0057】
制御モジュール130は、第3の位置制御周期の開始時点に、第3の位置演算割り込み(int3)及び補正割り込み(DMA int)が発生する(S160)。
【0058】
制御モジュール130は、補正割り込み(DMA int)が発生すると、第3の位置制御周期に出力される駆動パルス(pulse)の出力速度を補正することができる(S170)。
【0059】
制御モジュール130は、第3の位置制御周期に速度が補正された駆動パルス(pulse)をモータ駆動モジュール120へ供給することができ(S180)、位置プロファイル(profile)に応じて、位置制御周期が終了する時点まで(S150)〜(S170)ステップを繰り返す。
【0060】
例えば、制御モジュール130は、位置プロファイル(profile)に応じて位置制御周期が4回で終了すると、第3の位置制御周期の開始時点に、次の位置制御周期に出力される駆動パルス(pulse)及び駆動パルス(pulse)の出力速度を補正することができる。
【0061】
図4は、
図3に示した(S130)に対する動作方法を示した手順図である。
【0062】
図4を参照すれば、制御モジュール130は、駆動パルス(pulse)の出力のためのパルス割り込み(pulse int)を第2の位置演算割り込み(int2)が発生する前に発生させる(S210)。
【0063】
制御モジュール130は、駆動パルス(pulse)の出力数が設定数より大きいかを判断して(S220)、駆動パルス(pulse)の出力数が設定数より大きければ、駆動パルス(pulse)が出力中であるかを判断することができる(S230)。
【0064】
ここで、制御モジュール130は、ステップ(S220)において、駆動パルス(pulse)の出力数が設定数の以下であるか、ステップ(S230)において、駆動パルス(pulse)が出力中であれば、パルス割り込み(pulse int)の発生を終了する。
【0065】
ステップ(S230)において、駆動パルス(pulse)が出力中ではないと判断されると、制御モジュール130は、駆動パルス(pulse)の出力速度又は周期、補正割り込み(DMA int)数を位置プロファイル(profile)に応じて設定することができる(S240)。
【0066】
図5は、
図3に示した(S170)に対する動作方法を示した手順図である。
【0067】
補正割り込み(DMA int)が発生すると、制御モジュール130は、第3の位置制御周期に出力される駆動パルス(pulse)の出力数が設定数より大きいかを判断する(S310)。
【0068】
制御モジュール130は、第3の位置演算割り込み(int3)の入力時点が、設定した第3の位置制御周期の開始時点と同様であるを判断する(S320)。
【0069】
第3の位置演算割り込み(int3)の入力時点と第3の位置制御周期の開始時点が同様であると判断されると、制御モジュール130は、後述する(S360)ステップを行う。
【0070】
また、第3の位置演算割り込み(int3)の入力時点と第3の位置制御周期の開始時点が同様でなければ、制御モジュール130は、第3の位置演算割り込み(int3)の入力時点が第3の位置制御周期の開始時点より早いかを判断する(S330)。
【0071】
ステップ(S330)の後、第3の位置演算割り込み(int3)の入力時点が第3の位置制御周期の開始時点より早いと判断されると、制御モジュール130は、入力時点と開始時点の差異だけ駆動パルス(pulse)の出力速度を遅く補正する(S340)。
【0072】
ステップ(S330)の後、第3の位置演算割り込み(int3)の入力時点が第3の位置制御周期の開始時点より遅いと判断されると、制御モジュール130は、入力時点と開始時点の差異だけ駆動パルス(pulse)の出力速度を早く補正する(S350)。
【0073】
ステップ(S340)及びステップ(S350)の後、制御モジュール130は、駆動パルス(pulse)の出力速度又は周期、補正割り込み(DMA int)数を再び設定する(S360)。
【0074】
前述した本発明は、本発明が属する技術分野で通常の知識を有する者にとって、本発明の技術思想を脱しない範囲内で様々な置換、変形及び変更が可能であるため、前述した実施形態及び添付の図面によって限定されるものではない。