(58)【調査した分野】(Int.Cl.,DB名)
前記端点補正処理部は、前記第1の補正処理において、前記子軸の前記フィードバック位置と前記端点とに基づいて算出される前記子軸の追加移動量Δcを、実行中の前記指令ブロックの子軸の残移動量に加算することを特徴とする
請求項1記載の数値制御装置。
前記端点補正処理部は、前記第2の補正処理において、前記子軸の追加移動量Δcと同期比とに基づいて算出される前記親軸の追加移動量Δpを、次の指令ブロックの親軸の残移動量から差し引くことを特徴とする
請求項2記載の数値制御装置。
【背景技術】
【0002】
多軸同期制御機能を有する数値制御装置が知られている。多軸同期制御とは、子軸の移動量を、親軸の移動量に基づいて決定する制御方式である。多軸同期制御によれば、例えば一定方向(例えばX軸方向)に一定速度で移動する親軸に対し、子軸を親軸の移動方向とは垂直な方向(例えばY軸方向)に一定速度で往復動作させることで、
図1の指令波形に示すような三角波状の軌跡を描くことが可能となる。このような動作は、例えばコンベア上に流れる繊維をコンベア速度に同期して左右に移動させる不織布クロスラッパーにおいて行われる。多軸同期制御を実行する場合は、親軸の移動量と子軸の移動量との比を同期比率として指定する。これにより、親軸の移動速度(制御周期単位での移動量)が指定されれば、親軸に同期する子軸の移動速度(制御周期単位での移動量)は自動的に決定されることになる。
【0003】
しかしながら、多軸同期制御下で子軸が往復動作を行うと、
図1のフィードバック波形が示すように、子軸が端点へ到達できない事象が生じることがある。このような事象の主な原因は、往復動作指令に対するサーボ遅れである。
【0004】
この原因に対しては、フィードフォワード制御を有効化することにより対処することが考えられる。しかしながら、多軸同期制御では子軸が親軸に同期するため、端点での加減速が行われない。そのため、往復動作においてフィードフォワードを有効化するとショックが大きくなり、現実的ではない。
【0005】
多軸同期制御における同様の問題の解決を目指したものとして、特許文献1及び2記載の方法がある。
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1及び2記載の方法は、移動動作を繰り返しながら試行錯誤により補正量を算出する必要がある。すなわち当初は適切な補正が行われない。そのため、例えば不織布クロスラッパーにおいては、初期段階では均一な帯形状が得られないなどの問題が生じる。
【0008】
また、特許文献1及び2記載の方法は、補正後に親軸と子軸との同期を回復するための具体的手法を開示していない。
【0009】
本発明はこのような課題を解決するためのものであり、往復動作における端点への指令を補正する数値制御装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明の一実施形態にかかる数値制御装置は、多軸同期制御により親軸
に対し子
軸を所定の同期比にしたがって往復動作させる数値制御装置であって、複数の指令ブロックを含む指令を解読する指令解読部と、前記指令ブロックに基づいて、モータの制御周期毎の移動量である分配移動量を生成する分配処理部と、前記子軸のフィードバック位置が前記往復動作の折り返し点である端点に達するよう前記分配移動量を補正する第1の補正処理と、
前記所定の同期比を変更することで前記第1の補正処理により失われた同期を回復する第2の補正処理と、を実行する端点補正処理部と、補正された前記分配移動量に基づいてモータを駆動制御するモータ制御部と、を有することを特徴とする。
本発明の一実施形態にかかる数値制御装置は、前記端点補正処理部は、前記第1の補正処理において、前記子軸の前記フィードバック位置と前記端点とに基づいて算出される前記子軸の追加移動量Δcを、実行中の前記指令ブロックの子軸の残移動量に加算することを特徴とする。
本発明の一実施形態にかかる数値制御装置は、前記端点補正処理部は、前記第1の補正処理において、前記子軸の追加移動量Δcに基づいて前記同期比を補正することを特徴とする。
本発明の一実施形態にかかる数値制御装置は、前記端点補正処理部は、前記第2の補正処理において、前記子軸の追加移動量Δcと同期比とに基づいて算出される前記親軸の追加移動量Δpを、次の指令ブロックの親軸の残移動量から差し引くことを特徴とする。
本発明の一実施形態にかかる数値制御装置は、前記端点補正処理部は、前記第2の補正処理において、所定の時間にわたり次の指令ブロックの前記同期の比率を変更することを特徴とする。
【発明の効果】
【0011】
本発明により、往復動作における端点への指令を補正する数値制御装置を提供することができる。
【発明を実施するための形態】
【0013】
<実施の形態1>
実施の形態1における数値制御装置1は、以下の方法により子軸フィードバック位置を端点まで移動させる。
(1)指令ブロックの最終分配時に、子軸のフィードバック位置が端点へ到達するまでの移動量を算出する。
(2)上記(1)で算出した移動量だけ指令ブロックを延長し、同期を継続しながら移動する。
(3)上記(2)の後、折返しとなる次ブロックの最初の一定期間において加速を行い、親軸に対して遅れていた位置を取り戻す。
【0014】
図7は、実施の形態1にかかる数値制御装置1の要部を示す概略的なハードウェア構成図である。数値制御装置1は、工作機械を含む産業用機械の制御を行う装置である。数値制御装置1は、CPU11、ROM12、RAM13、不揮発性メモリ14、バス10、軸制御回路16、サーボアンプ17、インタフェース18を有する。数値制御装置1には、サーボモータ50、入出力装置60が接続される。
【0015】
CPU11は、数値制御装置1を全体的に制御するプロセッサである。CPU11は、ROM12に格納されたシステム・プログラムをバス10を介して読み出し、システム・プログラムに従って数値制御装置1全体を制御する。
【0016】
ROM12は、例えば不織布クロスラッパーや工作機械等の産業用機械の各種制御を実行するためのシステム・プログラムを予め格納している。
【0017】
RAM13は、一時的な計算データや表示データ、入出力装置60を介してオペレータが入力したデータやプログラム等を一時的に格納する。
【0018】
不揮発性メモリ14は、例えば図示しないバッテリでバックアップされており、数値制御装置1の電源が遮断されても記憶状態を保持する。不揮発性メモリ14は、入出力装置60から入力されるデータやプログラム等を格納する。不揮発性メモリ14に記憶されたプログラムやデータは、実行時及び利用時にはRAM13に展開されても良い。
【0019】
軸制御回路16は、産業用機械の動作軸を制御する。軸制御回路16は、CPU11が出力する軸の移動指令量を受けて、動作軸の移動指令をサーボアンプ17に出力する。
【0020】
サーボアンプ17は、軸制御回路16が出力する軸の移動指令を受けて、サーボモータ50を駆動する。
【0021】
サーボモータ50は、サーボアンプ17により駆動されて産業用機械の動作軸を動かす。サーボモータ50は、典型的には位置・速度検出器を内蔵する。位置・速度検出器は位置・速度フィードバック信号を出力し、この信号が軸制御回路16にフィードバックされることで、位置・速度のフィードバック制御が行われる。
【0022】
なお、
図7では軸制御回路16、サーボアンプ17、サーボモータ50は1つずつしか示されていないが、実際には制御対象となる産業用機械に備えられた軸の数だけ用意される。例えば親軸、子軸の2軸を制御する場合、軸制御回路16、サーボアンプ17、サーボモータ50は2セット用意される。
【0023】
入出力装置60は、ディスプレイやハードウェアキー等を備えたデータ入出力装置であり、典型的にはMDI又は操作盤である。入出力装置60は、インタフェース18を介してCPU11から受けた情報をディスプレイに表示する。入出力装置60は、ハードウェアキー等から入力された指令やデータ等をインタフェース18を介してCPU11に渡す。
【0024】
図8は、数値制御装置1の特徴的な機能構成を示すブロック図である。典型的な数値制御装置1は、指令解読部101、分配処理部102、端点補正処理部103、モータ制御部104を有する。
【0025】
指令解読部101は、複数の指令ブロックを含む指令(典型的にはNCプログラムなど)を例えば不揮発性メモリ14からRAM13上に読み込み、解析する。
【0026】
分配処理部102は、指令解読部101の解析結果に基づいて、制御対象となるサーボモータ50の制御周期毎の移動量である分配移動量を作成する。
【0027】
端点補正処理部103は、分配処理部102が作成した分配移動量を補正して、子軸のフィードバック位置が端点へ到達するような分配移動量を生成する。補正された分配移動量はモータ制御部104へ出力される。
【0028】
モータ制御部104は、端点補正処理部103から入力された補正後の分配移動量に基づいてサーボモータ50を駆動制御する。
【0029】
図2及び
図3を用いて、上記(1)乃至(3)を実現するための端点補正処理部103の動作について説明する。
図2は、この処理により補正される指令波形及びフィードバック波形を示す図である。実線は補正後の波形、破線は補正前の波形を示す。
図3は、この補正処理により生成される分配移動量(子軸分配パルス)を示す図である。端点補正処理部103は、子軸の実際の位置が両端へ到達するように、指令位置が端に到達する直前に、本来の(つまり分配処理部102が作成する分配移動量による)指令波形を(a)のように補正する。また、指令位置が補正後の位置に到達した直後に、本来の指令波形に戻るための補正(b)を実施する。
【0030】
(a)の補正処理、すなわち子軸を端へ到達させるための補正処理について具体的に説明する。この処理は子軸が端へ到達する直前に行われる。
[1]実行ブロックNの指令終了時に、現在の子軸のフィードバック位置が端へ到達するために追加的に必要となる指令上の移動量(Δc)を算出する。なおΔcの算出方法については後述する。
[2]実行ブロックNの同期比率(α=子軸移動量/親軸移動量)と、上記[1]で算出した移動量Δcとに基づいて、親軸移動量(Δp)を算出する。
[3]上記[1][2]で算出した移動量Δc及びΔpを、実行ブロックNの残移動量に反映(加算)する。すなわち、現在実行中の指令ブロックNの残移動量を以下のように変更する。
・子軸の残移動量=現在の子軸の残移動量+Δc
・親軸の残移動量=現在の親軸の残移動量+Δp
【0031】
(b)の補正処理、すなわち同期関係を取り戻すための処理について具体的に説明する。この処理は子軸が端へ到達した直後に行われる。
[1]子軸が端へ到達した後、実行ブロックN+1の親軸の残移動量からΔpを差し引く。すなわち、端点到達からの折り返し後の実行ブロックN+1(子軸は逆方向への移動となる)の残移動量を以下のように変更する。
・子軸の残移動量=次ブロックの子軸の指令移動量
・親軸の残移動量=次ブロックの親軸の指令移動量−Δp
[2]子軸が端へ到達した後、子軸は親軸の位置に対して(2×Δc)遅れた位置にいる。この遅れを取り戻すため、パラメータ等により指定される時間にわたり、実行ブロックN+1の子軸移動量と親軸移動量とから算出される制御周期単位の子軸移動量に補正をかけ(加速させ)る。すなわち、遅れを取り戻すまでの一定時間にわたり同期比率を変更する。
【0032】
図6を用いて、Δcの算出方法について説明する。端点補正処理部103は、指令ブロックNの最終分配時に以下の予測を行い、Δcを算出する。
[1]次の制御周期において指令ブロックN+1(子軸は指令ブロックNとは反対方向への移動)が開始される(すなわちΔc=0)と仮定する。
[2]仮定されたΔcと、速度指令、位置ループゲイン、及び指令ブロックNの最終分配時における位置フィードバック値(実位置)に基づき、次周期以降の速度フィードバックの予測値(予測実速度)を算出する。速度フィードバックの予測値が符号反転する時点における位置フィードバックの予測値(予測実位置)が端に到達しているかを判定する。
[3]上記[2]で予測した位置フィードバックが端より手前であれば、指令ブロックNを延長する(Δcに所定量を加算する)よう仮定を修正し、再度[2]の判定を行う。一方、上記[2]で予測した位置フィードバックが端に達していれば、その時点におけるΔcを、上記補正処理(a)(b)で用いる移動量Δcとして採用する。
【0033】
なお端点補正処理部103は、簡便に、Δc=0と仮定したときに予測された位置フィードバックと端との差分(行き足りない量)を、上記補正処理(a)(b)で用いる移動量Δcとして採用してもよい。
【0034】
<実施の形態2>
実施の形態2は、実施の形態1に比べ、次ブロックN+1の開始タイミングがずれない点に特長がある。実施の形態2における数値制御装置1は、以下の方法により子軸フィードバック位置を端点まで移動させる。
(1)端への到達前の適当な時点で、子軸のフィードバック位置が端へ到達するまでの移動量を算出する。
(2)上記(1)で算出した移動量を一定期間にわたり分割して加算する。すなわち速度を増加させる。
(3)上記(2)の後、折返しとなる次ブロックの最初の一定期間において加速を行い、親軸に対して遅れていた位置を取り戻す。
【0035】
実施の形態2にかかる数値制御装置1のハードウェア構成及び機能構成は、実施の形態1と同様であるため説明を省略する。
【0036】
図4及び
図5を用いて、上記(1)乃至(3)を実現するための端点補正処理部103の動作について説明する。
図4は、この処理により補正される指令波形及びフィードバック波形を示す図である。実線は補正後の波形、破線は補正前の波形を示す。
図5は、この補正処理により生成される分配移動量(子軸分配パルス)を示す図である。端点補正処理部103は、子軸の実際の位置が両端へ到達するように、指令位置が端に到達する前(あらかじめ設定しておいた時間だけ前の時点)に、本来の(つまり分配処理部102が作成する分配移動量による)指令波形を(a’)のように補正する。また、指令位置が補正後の位置に到達した直後に、本来の指令波形に戻るための補正(b’)を実施する。
【0037】
(a’)の補正処理、すなわち子軸を端へ到達させるための補正処理について具体的に説明する。この処理は子軸が端へ到達する前の適当な時点で行われる。
[1]実行ブロックNの指令終了からパラメータ等により予め指定された時間だけ前の時点で、現在の子軸のフィードバック位置が端へ到達するために追加的に必要となる指令上の移動量(Δc)を算出する。なおΔcの算出方法については実施の形態1で述べたとおりである。
[2]実行ブロックNの同期比率(α=子軸移動量/親軸移動量)の子軸移動量に上記[1]で算出した移動量Δcを反映(加算)し、同期比率を次のように変更する。
α’=(子軸移動量+Δc)/親軸移動量
[3]上記[1]で算出した移動量Δcを、実行ブロックNの残移動量へ反映(加算)する。すなわち、現在実行中の指令ブロックNの残移動量を以下のように変更する。
・子軸の残移動量=現在の子軸の残移動量+Δc
【0038】
(b’)の補正処理、すなわち同期関係を取り戻すための処理について具体的に説明する。この処理は子軸が端へ到達した直後に行われる。
[1]子軸が端へ到達した後、子軸は親軸の位置に対して(Δc)遅れた位置にいる。この遅れを取り戻すため、パラメータ等により指定される時間にわたり、実行ブロックN+1の子軸移動量と親軸移動量とから算出される制御周期単位の子軸移動量に補正をかけ(加速させ)る。すなわち、遅れを取り戻すまでの一定時間にわたり同期比率を変更する。
【0039】
これらの実施の形態によれば、端点補正処理部103が、子軸が端点に到達する前に、端点に到達するために必要な追加的な移動量Δcを算出し、Δcを実現するための指令の補正を行う。これにより、試行錯誤を要することなく、多軸同期制御下での往復動作を適切に補正することができる。
【0040】
また、これらの実施の形態によれば、端点補正処理部103が、補正処理を実施後、親軸と子軸との同期を回復するための制御を行う。これにより、補正処理により一時的に非同期となったとしても直ちに同期が回復されるので、例えば不織布クロスラッパーにおいては均一な帯形状が損なわれることがない。