(57)【特許請求の範囲】
【請求項１】
駆動源からの力がかかる被駆動体の駆動点と作業点との間に機械の撓みによる遅れが生じる機械において、駆動点に対する作業点の最大遅れ量を予め求めておき、前記駆動点の移動方向反転後の移動において前記遅れを補正する補正区間を決め、移動方向反転後、前記遅れを補正する補正量の積算値が前記最大遅れ量に達するまで、前記補正区間に対する前記最大遅れ量と移動方向反転後の移動指令値に基づいて前記補正量を求めてこの補正量を移動指令値に加算して移動指令値として出力するようにしたことを特徴とする加工作用点の位置ずれ補正方法。
【請求項２】
駆動源からの力がかかる被駆動体の駆動点と作業点との間に機械の撓みによる遅れが生じる機械において、駆動点に対する作業点の最大遅れ量を予め求めておき、前記駆動点の移動方向反転後の移動において前記遅れを補正する補正区間を決め、遅れに対応する補正値を記憶する記憶手段を設け、反転時には、前記補正区間と前記最大遅れ量および移動指令値に基いて新たな補正値を求め、該新たな補正値と前記記憶手段に記憶された補正値との差を移動指令値に加算して移動指令値として出力し、前記求めた補正値を記憶手段に格納して更新記憶し、前記記憶手段に記憶された補正値の絶対値が前記最大遅れ量となると前記移動指令値をそのまま移動指令値として出力するようにしたことを特徴とする加工作用点の位置ずれ補正方法。
【請求項３】
遅れが最大遅れ量となっている状態から駆動点を反転移動させてその遅れが再び最大遅れ量となるときの反転後の前記駆動点の移動区間を測定し、この移動区間を前記補正区間とする請求項１または請求項２記載の加工作用点の位置ずれ補正方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、加工作用点の位置ずれ補正方法に関する。
【０００２】
【従来の技術】
駆動源からの力がかかる被駆動体の駆動点と作業点との間に機械の撓みによる遅れが生じると、制御装置から指令される作業点と実作業点とが一致しなくなるといった問題がある。このような撓みによる位置ずれは、駆動点と作用点間に距離のある産業機械、例えば、ワイヤ放電加工機等において顕著である。
【０００３】
ワイヤ放電加工機は、図１に示されるように、ベッド１に固定されたコラム２の上端にはＵＶ軸，Ｚ軸３が固定され、中間部には下ワイヤガイドを支えるアームが固定され、該アームはコラム２に固定されたアームカバー４内を貫通している。ベッド１上にはＸ−Ｙの各軸方向に移動可能に設けられたクロステーブル５、および、クロステーブル５上にはワーク載置台及び浸漬加工のための加工槽６等を備え、Ｚ軸の先端に設けられた上ワイヤガイドと上記アームの先端に設けられた下ワイヤガイドとの間にワイヤ電極７を張設して放電加工作業を行うようになっている。
【０００４】
コラム２に一致体に固定されたアームはアームカバー４内を貫通し、加工槽６内部に突入しており、クロステーブル５、加工槽６及びクロステーブル５に設けられたワーク載置台に固定されたワークはアームに対して相対移動を行うので、アームと加工槽６との係合部で加工液の漏れを確実に防止し、かつ、前述の相対移動が可能なように構成しなければならない。
【０００５】
図２はアームカバー４と加工槽６との係合部の概略を示す斜視図である。加工槽６の背面にはアームカバー４を固着するフランジ８を備えたシール板９が設けられ、このシール板９は加工槽６の背面に穿設されたＸ軸方向の長穴を塞ぐかたちで、多数のベアリング１０により加工槽６の背面に圧着されている。前記長穴の外周部にはシールベースが取り付けられてシール板９との間の加工液の漏れを防止し、また、フランジ８の内周部には貫通するアームとの間の加工液の漏れを防止するためのＶパッキン等が取り付けられている。
【０００６】
この結果、クロステーブル５を駆動して加工槽６及びワークを移動させた場合、特に、加工槽６をＸ軸方向に駆動した場合では、加工槽６に圧着されたシール板９が両者間に作用する摺動抵抗に引き摺られて加工槽６と共に移動しようとするので、クロステーブル５、該クロステーブル５を駆動するボールネジ／ナット等の伝動機構部及びこの伝動機構部とクロステーブル５の連結部等（以下これらをワーク駆動部という）にはＸ軸方向の曲げモーメントが作用して撓みが生じ、指令された作業点に対する実作業点の遅れが生じることになる。この場合の作業点とはワークとワイヤ電極７が対向する位置である。
【０００７】
例えば、制御装置から指令された作業点が（ｘ，ｙ）＝（ｘ１，ｙ１）のときにワーク駆動部にＸ軸方向の外力が全く作用せず、ワイヤ電極７が（ｘ，ｙ）＝（ｘ１，ｙ１）の位置にあるとし、この状態から（ｘ，ｙ）＝（ｘ１＋ａ，ｙ１）の位置（ａ＞０）にワイヤ電極７を移動させたとする（但し、実際に移動するのはクロステーブル５の側である）。
【０００８】
このときワーク駆動部には前述の撓みが生じるので、クロステーブル５に設けられたワーク載置台上のワークは遅れて移動することになる。この撓みによる位置ずれ量をＣａ′（Ｃａ′＞０）とすれば、実際の作業点の位置は（ｘ，ｙ）＝（ｘ１＋ａ−Ｃａ′，ｙ１）であり、指令された作業点（ｘ，ｙ）＝（ｘ１＋ａ，ｙ１）からＣａ′の遅れを生じていることになる。この遅れＣａ′の最大値Ａは加工槽６とシール板９との間の摺動抵抗の大きさやワーク駆動部の各部材の剛性およびそのスパン等によって決まり、作業点を如何に大きく移動させようとも、遅れＣａ′がＡを越えることはない。
【０００９】
つまり、加工槽６からシール板９に対して＋Ｘ方向に与えられる力がシール板９と加工槽６との間の摺動抵抗よりも小さい間は、シール板９が加工槽６と一体的に移動してワーク駆動部の−Ｘ方向の撓みＣａ′が増大するが、ワーク駆動部の撓みが増大して＋Ｘ方向の反力がシール板９と加工槽６との間の摺動抵抗を上回るようになると、シール板９と加工槽６との間に滑りが生じて加工槽６のみが移動するようになるということである。要するに、この滑りが生じる時に＋Ｘ方向に作用している反力に相当する撓みＣａ′の値が、最大値Ａである。
【００１０】
機械の位置ずれを修正するための補正方法としては、送りネジのピッチ誤差によって生じる位置ずれを補正するピッチ誤差補正や、被駆動体の反転移動時に生じる動力伝達機構の遊びを補正するバックラッシ補正等が知られているが、いずれのものも、撓みを原因とする位置ずれの補正には適用することができない。
【００１１】
つまり、ピッチ誤差補正は、機械座標系におけるクロステーブル５等の被駆動体の現在位置（送りネジに対する被駆動体の螺合位置）に応じて補正量を一義的に決めるものであるため、不特定位置で被駆動体を反転移動させた時に反転後の移動距離に応じて生じる機械の撓みに対処することはできず、また、歯車等の回転方向の切り替えに伴って生じる遊びを解消するための補正量を被駆動体の反転時に出力するバックラッシ補正では、反転位置からの移動距離によって徐々に変化する撓み量の補正に対処することはできないということである。
【００１２】
要するに、機械の撓みによって生じる位置ずれを解消するための補正方法といったものは、これまでのところ、何ら提案されていない。
【００１３】
【発明が解決しようとする課題】
そこで、本発明の目的は、前記従来技術の不備を解消し、機械の撓みによる位置ずれがある場合でも、これを適確に補正して、指令された位置に作業点を移動させることのできる加工作用点の位置ずれ補正方法を提供することにある。
【００１４】
【課題を解決するための手段】
本発明は、駆動源からの力がかかる被駆動体の駆動点と作業点との間に機械の撓みによる遅れが生じる機械において、駆動点に対する作業点の最大遅れ量を予め求めておき、前記駆動点の移動方向反転後の移動において前記遅れを補正する補正区間を決め、移動方向反転後、前記遅れを補正する補正量の積算値が前記最大遅れ量に達するまで、前記補正区間に対する前記最大遅れ量と移動方向反転後の移動指令値に基づいて前記補正量を求めてこの補正量を移動指令値に加算して移動指令値として出力することによって機械の撓みによる遅れによる加工作用点の位置ずれを補正する。
【００１５】
特に、遅れに対応する補正値を記憶する記憶手段を設け、反転時には、前記補正区間と前記最大遅れ量および移動指令値に基いて新たな補正値を求め、該新たな補正値と前記記憶手段に記憶された補正値との差を移動指令値に加算して移動指令値として出力し、前記求めた補正値を記憶手段に格納して更新記憶し、前記記憶手段に記憶された補正値の絶対値が前記最大遅れ量となると前記移動指令値をそのまま移動指令値として出力することによって機械の撓みによる遅れによる加工作用点の位置ずれを補正する。
【００１６】
また、遅れが最大遅れ量となっている状態から駆動点を反転移動させてその遅れが再び最大遅れ量となるときの反転後の前記駆動点の移動区間を測定し、この移動区間を前記補正区間とする。
【００１７】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。図１はワイヤ放電加工機とその制御装置の構成の概略を示すブロック図である。ワイヤ放電加工機の本体は、従来の技術の項でも述べた通り、ベット１，コラム２，ＵＶ軸，Ｚ軸３，下ワイヤガイドを支持するアームをガイドするアームカバー４，ワークを載置するワーク載置台を備えるクロステーブル５，加工槽６等を備え、制御装置１１によりサーボ制御回路１２，１３を介して駆動制御されるＸ軸駆動用のサーボモータＭｘおよびＹ軸駆動用のサーボモータＭｙによりクロステーブル５、加工槽６、ワークがＸ−Ｙ平面内で移動されるようになっている。
【００１８】
更に、ワイヤ放電加工機の本体には、Ｚ軸先端のジェットノズルや加工槽６に加工液を供給する加工液循環器や、ワイヤ送り等のための各種モータ、および、ワイヤ電極７に加工電圧を印加するための放電加工電源等が設けられ、各々、加工液制御回路１４，ワイヤ制御回路１５，放電制御回路１６を介して制御装置１１により駆動制御されるようになっている。
【００１９】
制御装置１１には、ＲＯＭ１７に格納されたシステムプログラムやＲＡＭ１８に格納された加工プログラム等に基いて放電加工機の各軸を駆動制御するためのＣＮＣ用ＣＰＵ１９が設けられ、バス２０を介して、前述のサーボ制御回路１２，１３が接続されている。ＣＮＣ用ＣＰＵ１９は、各軸のサーボ制御回路１２，１３に分配パルスを出力し各軸サーボモータを駆動してクロステーブル５を移動させ、加工槽６内のワーク載置台に取り付けられたワークの加工面とワイヤ電極７との間に放電を生じせしめて、加工を行う。
【００２０】
ＰＭＣ用ＣＰＵ２１は、ＲＯＭ１７に格納されたシステムプログラムやＲＡＭ１８に格納された電源条件や加工条件等に応じて放電制御回路１６やワイヤ制御回路１５および加工液制御回路１４を駆動制御する。
【００２１】
ＣＮＣ用ＣＰＵ１９には表示制御回路２２を介してディスプレイ付き手動データ入力装置２３が接続され、加工プログラムの入力操作や電源条件および加工条件の入力操作等が行えるようになっており、また、ディスプレイ付き手動データ入力装置２３の表示画面により加工経路や設定条件のモニタ表示が行えるようになっている。
【００２２】
次に、本実施形態における位置ずれ補正方法の作用原理について、図３ないし図５に示す作用原理図を用いて説明する。
【００２３】
図３は図１および図２に示すようなワイヤ放電加工機において、作業点を＋Ｘ方向に移動させてから−Ｘ方向に反転移動させるものとして、ワーク駆動部の撓みによって生じる位置ずれの発生状況の概略を示した概念図であり、白丸の標によって制御装置からの指令位置を示し、また、黒丸の標によりワイヤ電極７、つまり、作業点の実位置を示している。なお、図３に示す作業点Ｓの位置では、その前に行われた＋Ｘ方向への移動により、既にワーク駆動部が最大限に撓んで、指令位置と作業点との間に最大の位置ずれＡが生じているものとし、また、クロステーブル５を駆動する送りネジのピッチ誤差補正、および、サーボモータＭｘとクロステーブル５との間の動力伝達機構のバックラッシ補正等は、完全な状態で行われているものとする。作業点（ワイヤ電極７）の＋Ｘ方向への移動はクロステーブル５の−Ｘ方向への移動である。
【００２４】
既に従来の技術の項でも述べた通り、位置ずれの最大値Ａは加工槽６とシール板９との間の摺動抵抗の大きさやワーク駆動部の剛性およびそのスパン等によって決まるものであって、図３に示す作業点Ｓから＋Ｘ方向に作業点をいくら移動させようとも、指令位置に対する作業点の実位置の遅れＣａ′がＡを越えることはない。つまり、作業点が反転位置Ｔに達するまでの区間Ｓ〜Ｔでは、遅れＣａ′の値は常に最大値Ａに等しい。
【００２５】
ここで、指令位置Ｕ（実位置Ｔ）で作業点の移動方向を＋Ｘの方向から−Ｘの方向に反転させたとする。このとき、Ｘ軸を駆動するサーボモータＭｘの反転駆動は制御装置１１からの移動指令の反転によって直ちに開始されるが、既に述べた通り、ワーク駆動部には−Ｘ方向の撓みＣａ′＝Ａが既に蓄積されているので、サーボモータＭｘを反転移動させても、最初はこの撓みＣａ′が徐々に解消されて行くだけで、作業点の実位置Ｔ（反転開始時の位置）と実位置Ｔ′（反転直後の位置）との間に大きな差（移動指令に見合った移動量）を生じることはない。つまり、図３に示す指令位置Ｖと実位置Ｔ′および指令位置Ｕと実位置Ｔのような関係が生じるのである。
【００２６】
そして、作業点が更に−Ｘの方向に移動してワーク駆動部に前記と逆方向の＋Ｘ方向の撓みが生じ始めると、指令位置に対する作業点の位置ずれが逆方向の遅れＣａ′となって徐々に現れ始める。図３に示す指令位置Ｆと実位置Ｇのような関係である。
【００２７】
加工槽６とシール板９との間の摺動抵抗の大きさやワーク駆動部の剛性およびそのスパン等は常に一定であるから、作業点を−Ｘ方向に移動する場合も、＋Ｘ方向への移動の場合と同様、位置ずれＣａ′の値は最終的に最大値Ａにまで達することになる。これが図３に示す指令位置Ｈと実位置Ｐとの関係である。この状態から作業点を−Ｘ方向に更に移動させたとしても、位置ずれＣａ′の値がＡを越えるといったことはない。作業点（ワイヤ電極７）の−Ｘ方向への移動はクロステーブル５の＋Ｘ方向への移動である。
【００２８】
反転を開始してからの位置ずれＣａ′が再び最大値Ａに達するまでの移動指令量Ｄ、および、位置ずれ量Ｃａ′の最大値Ａは予め実験的に求めておくようにする。
【００２９】
結果的に、ワーク駆動部が−Ｘ方向に最大限撓んで位置ずれＣａ′が最大値Ａまで蓄積された状態で作業点を＋Ｘ方向に移動させるときに必要とされる補正値は指令位置に対して＋Ａであり〔例えば図３における実位置Ｓ〜実位置Ｔ（指令位置Ｕ）の移動区間〕、また、ワーク駆動部が＋Ｘ方向に最大限撓んで位置ずれＣａ′が最大値Ａまで蓄積された状態で作業点を−Ｘ方向に移動させるときに必要とされる補正値は指令位置に対して−Ａである〔例えば図３における実位置Ｐ（指令位置Ｈ）〜実位置Ｊの移動区間〕。
【００３０】
従って、図３に示すような状況下において実位置Ｔ（指令位置Ｕ）〜実位置Ｐ（指令位置Ｈ）の反転移動区間で撓みによる遅れ量Ｃａ′が位置指令量（サーボモータＭｘの移動量）に比例して−Ａ〜＋Ａまで変化するものであると仮定するなら、ワーク駆動部が−Ｘ方向に最大限撓んで位置ずれＣａ′が最大値Ａまで蓄積された状態、つまり、指令位置に対して補正値＋Ａを加算して補正を行って＋Ｘ方向への移動を行っている状態で作業点の移動方向を＋Ｘから−Ｘに反転させる場合においては、作業点がこの反転移動区間の実位置Ｔ〜実位置Ｐを実際に移動する間、要するに、反転を開始してから後逆方向の位置ずれ量がＡまで蓄積される間に−２Ａの補正値を出力すればよいことになる。
【００３１】
つまり、図３の例に示されるように、加工プログラムに基く反転後の分配パルスが−（Ｄ−２Ａ）だけ出力される間に補正値を−２Ａだけ出力すれば、実際に出力される分配パルスの量は−（Ｄ−２Ａ）−２Ａ＝−Ｄ（Ｕ−Ｈ間に対応）となり、このときの実移動量が−（Ｄ−２Ａ）〔Ｔ−Ｐ間に対応〕となって、加工プログラムに基く反転後の分配パルスによる移動指令−（Ｄ−２Ａ）と作業点の実移動量−（Ｄ−２Ａ）とが完全に一致するということである。
【００３２】
これとは逆に、ワーク駆動部が＋Ｘ方向に最大限撓んで位置ずれＣａ′が最大値Ａまで蓄積された状態、つまり、指令位置に対して補正値−Ａを加算して補正を行っている状態で作業点の移動方向を−Ｘから＋Ｘに反転させる場合においては、作業点が実移動量（Ｄ−２Ａ）だけ移動する間に＋２Ａの補正値を出力すればよいことになる。
【００３３】
−Ｘ方向へのワーク駆動部の最大撓みに対処して指令位置に補正値Ａを加算して補正を行っている状態から作業点の移動方向を＋Ｘから−Ｘに反転させた場合、および、＋Ｘ方向へのワーク駆動部の最大撓みに対処して指令位置に補正値−Ａを加算して補正を行っている状態から作業点の移動方向を−Ｘから＋Ｘに反転させた場合の各々について、補正値（実線）と遅れ（破線）との関係を図４に示す。図４に示す通り、遅れ量が位置指令量に比例して−Ａ〜＋Ａまで変化するものであると仮定するなら、遅れ−Ａ〜＋Ａに補正値＋Ａ〜−Ａを加えた値は常に零となり、作業点の実位置が指令位置に一致する。
【００３４】
ここで、反転後の指令移動位置に対応する補正値の値をＣａ′として、指令移動位置と補正値Ｃａ′との関係を図６に示す。図６では−Ｘ方向へ作用点が移動したときのワーク駆動部の最大撓みに対処して指令位置に補正値−Ａを加算して補正を行っている状態から作業点の移動方向を−Ｘから＋Ｘに反転させたときの分配パルス量を「０」とし、その後の分配パルス量がＬのときの累積補正量（補正値Ｃａ′）を補正区間（Ｄ−２Ａ）について表わしている。従って、−Ｘから＋Ｘへ反転したときの、補正値Ｃａ′の初期値Ｃａは−Ａ（反転開始時）で、反転開始時の位置を基準とする＋Ｘ方向への移動量（分配パルス量）をＬ（但し、Ｌ＞０）とし、このＬを補正区間０〜（Ｄ−２Ａ）における補正区間の位置とすると、補正区間の位置がＬの時に必要とされる補正値をＣａ′とすれば、図６から明らかなように、
Ｃａ′＝２Ａ・〔Ｌ／（Ｄ−２Ａ）〕−Ａ・・・（１）
となる。つまり、反転開始時点ではＬ＝０でＣａ′＝２Ａ・０−Ａ＝−Ａとなり、また、補正区間の位置ＬがＬ＝（Ｄ−２Ａ）となり補正が終了した時点、つまり、図６における横軸の値が（Ｄ−２Ａ）となる位置ではＣａ′＝２Ａ・−Ａ＝Ａになるということである。既に述べた通り｜Ｃａ′｜が±Ａを越えるような補正は必要なく、補正値±Ａはその状態を保持される。なお、補正区間の位置ＬがＬ＝（Ｄ−２Ａ）／２の時点ではＣａ′＝２Ａ・（１／２）−Ａ＝０で、補正値Ｃａ′の値が０である。
【００３５】
また、−Ｘ方向へのワーク駆動部の最大撓みに対処し指令位置に補正値＋Ａを加算して補正を行っている状態から作業点の移動方向を＋Ｘから−Ｘに反転させた場合では、補正値Ｃａ′の初期値Ｃａは＋Ａ（反転開始時）である。反転開始時の位置を基準とする−Ｘ方向への移動量をＬ′（但し、Ｌ′＜０）、また、移動量がＬ′の時に必要とされる補正値をＣａ′とすれば、Ｌ＝Ｄ−２Ａ＋Ｌ′であるから、（１）式より、
0003647953.tif 000002
となる。つまり、図６における横軸の値Ｌが（Ｄ−２Ａ）となる反転開始時点では、反転後の移動量Ｌ′＝０、Ｌ＝Ｄ−２ＡでＣａ′＝２Ａ・０＋Ａ＝＋Ａとなり、また、反転開始後の移動量Ｌ′がＬ′＝−（Ｄ−２Ａ）、Ｌ＝０の時点ではＣａ′＝２Ａ・０−Ａ＝−Ａになる。即ち、補正値Ｃａ′が＋Ａとなった後は、補正区間の位置Ｌを（Ｄ−２Ａ）に、補正値Ｃａ′が−Ａになった後は補正区間の位置Ｌを「０」に保持しておき、反転が開始されると、この位置Ｌに移動量Ｌ´を加算して、補正区間の位置Ｌを求めて、補正値Ｃａ′を求めればよいことになり、反転後の移動量Ｌ、Ｌ´によって補正値Ｃａ´が求まる。なお、反転開始後の移動量Ｌ′がＬ′＝−（Ｄ−２Ａ）／２の時点ではＣａ′＝−２Ａ・（１／２）＋Ａ＝０で、補正値Ｃａ′の値が０である。
【００３６】
また、図５に示されるように、反転実行後に補正値Ｃａ′がＡまたは−Ａに達する前の段階、つまり、ワーク駆動部に逆方向の最大撓みが蓄積する前の段階で再び作業点の反転動作が行われた場合であっても、状況はこれと全く同様であり、前述の（１）式に従って補正値Ｃａ′を求めればよい。
【００３７】
例えば、図５に示されるように、＋Ｘへの移動から−Ｘへの最初の反転時の補正処理を（１）式に基いて実施している状態で補正値Ｃａ′の値が−Ａに達する前に再び作業点の移動方向が−Ｘから＋Ｘに反転されたとする。この場合においても、補正値Ｃａ′＝Ｃａ＝−Ａの時点を「０」とする補正区間０〜（Ｄ−２Ａ）の位置Ｌによって補正値Ｃａ′を（１）式で求めることができる。
【００３８】
次に、図７および図８を参照して、本実施形態の制御装置１１（ＣＮＣ用ＣＰＵ１９）によって実施される位置ずれ補正処理について説明する。図７は作業点を機械原点へ復帰させる際に実施される初期設定処理、また、図８はパルス分配周期毎に実施される補正処理である。
【００３９】
なお、この実施形態においてはワーク駆動部に撓みの発生しやすいＸ軸方向の移動に対してのみ初期設定処理と補正処理を実施するようにしているが、Ｙ軸方向への撓みが懸念されるような構造の場合は、Ｙ軸方向への撓み量の最大値Ａｙや撓みの蓄積に対応する移動量Ｄｙを求め、Ｙ軸に対しても以下に示すものと同じような処理を実施するようにする。
【００４０】
原点復帰を行う場合には、原点復帰までの移動量が（Ｄ−２Ａ）を越える十分の距離がある状態で原点復帰指令を与える。図７に示す通り、Ｘ軸のサーボモータＭｘに原点復帰指令を出力したＣＮＣ用ＣＰＵ１９は、サーボモータＭｘが機械原点に復帰するまで待機し（ステップＡ１）、原点復帰への移動方向がプラス方向であるかマイナス方向であるかを判別する（ステップＡ２）。そして、原点復帰への移動方向がプラス方向、つまり、図３に示す＋Ｘ方向への移動であれば、ＣＮＣ用ＣＰＵ１９は補正値記憶レジスタＣａに最大補正値＋Ａをセットすると共に、反転後の補正区間０〜Ｄ−２Ａの位置Ｌを記憶する移動位置記憶レジスタＬにＤ−２Ａをセットし、サーボモータＭｘに＋Ａの送りをかけて指令位置と実作業点の位置を一致させる（ステップＡ３）。また、原点復帰への移動方向がマイナス方向、つまり、図３に示す−Ｘ方向への移動であれば、補正値記憶レジスタＣａに−Ａをセットすると共に、移動位置記憶レジスタＬに０をセットし、サーボモータＭｘに−Ａの送りをかけて指令位置と実作業点の位置を一致させる（ステップＡ４）。なお、インクリメンタル量で移動動作を制御する場合は、原点復帰後の＋Ａ又は−Ａの送りは必要ない。
【００４１】
要するに、補正値記憶レジスタＣａは補正値の現在値Ｃａ′の値を記憶するレジスタであり、原点復帰への移動方向がプラスで作業点にマイナス方向の遅れが生じていた場合では補正値記憶レジスタＣａに補正値＋Ａがセットされ、また、これとは逆に原点復帰への移動方向がマイナスで作業点にプラス方向の遅れが生じていた場合では−Ａがセットされることになる。
【００４２】
以上の初期設定終了後、加工プログラム等を実行させて各軸の駆動制御を開始させると、ＣＮＣ用ＣＰＵ１９はパルス分配周期毎に図８に示すような補正処理を実行する。
【００４３】
補正処理を開始したＣＮＣ用ＣＰＵ１９は、加工プログラム等に基いて従来と同様のパルス分配処理を実施してＸ軸方向の分配パルスΔＬを求め（ステップａ１）、これらの値を各軸の現在位置記憶レジスタに加算して各軸の現在位置記憶レジスタの値を更新し（ステップａ２）、更に、従来と同様にして送りネジのピッチ誤差補正量を求める（ステップａ３）。当然、分配パルスΔＬには符号があり、＋Ｘ方向の移動ではプラス、−Ｘ方向の移動ではマイナスとなる。
【００４４】
次いで、ＣＮＣ用ＣＰＵ１９はＸ軸の移動方向に反転があったか否かを判別し（ステップａ４）、移動方向の反転がなければ、動力伝達系のバックラッシ補正量を記憶するレジスタに０をセットし（ステップａ５）、反転後の移動位置を記憶する移動量記憶レジスタＬの値がＬ＝０またはＬ＝Ｄ−２Ａとなっているか否か、つまり、作業点が遅れの補正を必要とする反転移動区間を移動しているか否かを判別する（ステップａ７）。遅れの補正を必要とする反転移動区間は図３及び図６から明らかなように０≦Ｌ≦Ｄ−２Ａの範囲であるが、ワーク駆動部に既に最大の撓み｜Ａ｜が発生した状態で同一方向への作業点の移動が継続して行われるような状況下、例えば、図４および図５に示すように補正値Ｃａ′の値が＋Ａまたは−Ａとなる＋Ｘ方向および−Ｘ方向の移動区間では移動量記憶レジスタＬの値が０又はＤ−２Ａで保持されているのでステップａ７の判別結果が真であれば、ワーク駆動部に既に最大の撓み｜Ａ｜が発生した状態で作業点が同方向に移動していることを意味するから、補正値Ｃａ′の値を変える必要はない。この場合、補正値Ｃａ′の値は必然的に＋Ａまたは−Ａである。従って、ＣＮＣ用ＣＰＵ１９は、パルス分配周期毎のインクリメンタル補正値Ｃｉに０をセットし（ステップａ１９）、ステップａ１で求めたＸ軸方向の分配パルスΔＬとステップａ１９でセットしたインクリメンタル補正値０およびステップａ３で求めたピッチ誤差補正値ならびにステップａ５でセットしたバックラッシ補正量０とを加算して当該周期でサーボモータＭｘに出力すべき移動指令を求め（ステップａ１６）、従来と同様の加減速処理を行った後（ステップａ１７）、この移動指令をサーボ制御回路１２に出力する（ステップａ１８）。
【００４５】
当然、＋Ｘ方向への原点復帰を行った後そのまま作業点を＋Ｘ方向に移動させたような場合では、ステップａ４の判別結果が偽、また、Ｌ＝Ｄ−２Ａ（初期設定処理のステップＡ３参照）でステップａ７の判別結果が真となるので、パルス分配周期毎のインクリメンタル補正値Ｃｉの値は０に保持される。−Ｘ方向への原点復帰を行った後そのまま作業点を−Ｘ方向に移動させた場合もこれと同様である。
（１）−Ｘ方向移動から＋Ｘ方向移動へ反転した場合
−Ｘ方向への原点復帰を行ってから作業点を＋Ｘ方向に移動させた場合や、補正区間を越える−Ｘ方向への移動を行なった後＋Ｘ方向に移動した場合、ステップＡ４、及び後述するステップａ９、ａ１１、ａ１５の処理によってＬ＝０、Ｃａ＝−Ａにセットされている。そして、ステップａ４で移動方向の反転が検出されると、従来と同様にして動力伝達系のバックラッシ補正量を求め（ステップａ６）、更に、ステップａ１で求めたＸ軸方向の分配パルスΔＬ（ΔＬ＞０）を移動位置記憶レジスタＬに加算し、該移動位置記憶レジスタＬの値である補正区間の位置Ｌが「０」より小さいか、（Ｄ−２Ａ）より大きいか判断して（ステップａ９、ａ１０）、補正区間であるか判断し、０＜Ｌ＜Ｄ−２Ａで補正区間であるときには、（１）式の演算処理を実行し、補正区間の位置Ｌに対応する補正値Ｃａ´を求める（ステップａ１３）。
【００４６】
そして、求めた補正値Ｃａ´（アブソリュート量）から補正値記憶レジスタＣａの値（アブソリュート量）を差し引いて当該周期でサーボモータＭｘに出力すべきインクリメンタル補正量Ｃｉを求め（ステップａ１４）、補正値記憶レジスタＣａに補正値Ｃａ´に格納し、更新記憶させる（ステップａ１５）。
【００４７】
次にＣＮＣ用ＣＰＵ１９は、ステップａ１で求めたＸ軸方向の分配パルスΔＬとステップａ１４で求めたインクリメンタル補正量Ｃｉおよびステップａ３で求めたピッチ誤差補正値ならびにステップａ６でセットしたバックラッシ補正量とを加算して当該周期でサーボモータＭｘに出力すべき移動指令を求め（ステップａ１６）、従来と同様の加減速処理を行った後（ステップａ１７）、この移動指令をサーボ制御回路１２に出力する（ステップａ１８）。
【００４８】
次の周期からは、ステップａ１〜ａ４が実行され、移動方向が反転していないことから、ステップａ４からステップａ５に移行し、バックラッシ補正量を「０」にセットし、ステップａ７で移動位置記憶レジスタＬの値が「０」若しくは（Ｄ−２Ａ）か否か判断し、偽で、補正区間であると、再び前述したステップａ８〜ａ１８の処理を実行する。以下、各周期毎この処理を実行し、各周期ごとのインクリメンタル補正量Ｃｉが分配パルス量ΔＬに加算され、補正区間の位置Ｌに応じた補正値Ｃａ´（アブソリュート量）が移動位置に対して補正された状態となる。
【００４９】
上記ステップａ１〜ａ５、ａ７〜ａ１８の処理を各周期毎実行中に、移動位置記憶レジスタＬの値が（Ｄ−２Ａ）を越えたことがステップａ１０で検出されると、移動位置記憶レジスタＬに（Ｄ−２Ａ）を格納し、補正区間の位置Ｌを（Ｄ−２Ａ）に制限し、ステップａ１３に移行する。またステップａ８で求められた移動位置記憶レジスタＬの値が（Ｄ−２Ａ）であれば、ステップａ１０からステップａ１３へ移行する。すなわち、補正区間（Ｄ−２Ａ）を越えた場合には、補正区間の位置Ｌを（Ｄ−２Ａ）に制限する。そして、ステップａ１３で補正値Ｃａ´を求めるが、この場合、Ｌ＝Ｄ−２ＡであるからＣａ´＝Ａとなり、インクリメンタル補正量Ｃｉはこの補正値ＡからレジスタＣａに記憶する前周期で求めた補正値を差し引いた値となる（ステップａ１４）。また、補正値記憶レジスタＣａには補正値Ａが格納され（ステップａ１５）、前述したステップａ１６〜ａ１８の処理が実行される。
【００５０】
次の周期からは、Ｌ＝Ｄ−２Ａであるから、移動方向の反転がない限り、ステップａ７からステップａ１９に移行し、ワーク駆動部の撓みに対する補正（Ｃｉ＝０）は行われず、分配パルスΔＬにピッチ誤差補正量が加算されてサーボモータＭｘへの移動指令となされる（ステップａ１６〜ａ１８）。その結果、移動方向が反転せず、＋Ｘ方向に移動し続ける間は、ステップａ８〜ａ１５の処理がなされないから、Ｌ＝Ｄ−２Ａ、Ｃａ＝＋Ａが保持されることになる。
（２）＋Ｘ方向移動から−Ｘ方向移動へ反転した場合
＋Ｘ方向への原点復帰を行ってから作業点を−Ｘ方向に移動させた場合や、前記（１）で述べたように補正区間を越える＋Ｘ方向への移動を行なった後、−Ｘ方向に移動した場合、ステップＡ３、及び前述したステップａ１０、ａ１２、ａ１５の処理によってＬ＝Ｄ−２Ａ、Ｃａ＝＋Ａにセットされている。そして、ステップａ４で移動方向の反転が検出されると、従来と同様にして動力伝達系のバックラッシ補正量を求めた後（ステップａ６）、ステップａ１で求めたＸ軸方向の分配パルスΔＬ（ΔＬ＜０）を移動位置記憶レジスタＬに加算し補正区間の位置Ｌを求め（ステップａ８）、前述したステップａ９〜ａ１８の処理を実行する。
【００５１】
以下、移動位置記憶レジスタＬの値が「０」になるまで各周期毎ステップａ１〜ａ５、ａ７〜ａ１８の処理が実行される。この場合、ステップａ１で求められる分配パルスΔＬは負の値であるから、移動位置記憶レジスタＬの値は各周期毎順次減少していき、ステップａ１３で求める補正値Ｃａ´（及びレジスタＣａ）の値は最初は＋Ａであったものが順次減少し、インクリメンタル補正量Ｃｉも負となり（ステップａ１４）、サーボモータＭｘへの移動指令に負の補正量Ｃｉが順次加算され（ステップａ１６）、作用点の遅れが順次補正されることになる。
【００５２】
そして、ステップａ９で「０」を越えたことが検出すれると（なおステップａ８で求めたＬの値が「０」である場合には、ステップａ１０を介してステップＳａ１３に移行する）、ステップａ１１に移行して移動位置記憶レジスタＬに「０」を格納し、この値に基づいて補正値Ｃａ´を求め（Ｃａ´＝−Ａ）、前周期に求めた補正値との差であるインクリメンタル補正量Ｃｉを求め（ステップａ１４）、レジスタＣａに補正値Ｃａ´（＝−Ａ）を格納し、前述したステップａ１６〜ａ１８の処理を行なう。
【００５３】
次の周期からは、Ｌ＝０であるから、移動方向の反転がない限り、ステップａ７からステップａ１９に移行し、ワーク駆動部の撓みに対する補正（Ｃｉ＝０）は行われず、分配パルスΔＬにピッチ誤差補正量が加算されてサーボモータＭｘへの移動指令となされる（ステップａ１６〜ａ１８）。その結果、移動方向が反転せず、−Ｘ方向に移動し続ける間は、ステップａ８〜ａ１５の処理がなされないから、Ｌ＝０、Ｃａ＝−Ａが保持されることになる。
（３）補正区間０〜Ｄ−２Ａを移動中に反転が生じた場合
上述したように、移動位置記憶レジスタＬには、補正区間の位置Ｌが記憶され、補正値記憶レジスタＣａにはすでに補正した補正値が記憶されており、移動方向反転が検出されたときには、ステップａ８で、移動位置記憶レジスタＬに記憶している補正区間の位置にステップａ１で求められた分配パルス量ΔＬを加算することによって、この周期の出力により移動する補正区間の位置を求め、この位置に対応する補正値Ｃａ´をステップａ１３で求め、該補正値Ｃａ´から補正値記憶レジスタＣａに記憶する前周期までの補正値を減じてインクリメンタル補正量Ｃｉを求め、この補正量Ｃｉを分配パルスΔＬに加算して出力すればよい。
【００５４】
このように、補正区間の位置に対応する補正値（アブソリュート値）が記憶されているから、方向反転時におけるその時点の補正値（Ｃａの値）が分かり、この補正値Ｃａと補正区間の位置Ｌによって求めた補正値Ｃａ´によって当該周期の補正量Ｃｉが求まる。以後は前記（１）、（２）で求めたときと同一の補正処理となる。
【００５５】
以上に述べた実施形態においては、反転移動開始後の補正区間の位置Ｌに基いてその位置Ｌに対する補正値Ｃａ´を求め、前周期で求めた補正値との差によって当該周期で出力すべきインクリメンタル補正量Ｃｉを求めるようにしているが、インクリメンタル補正量Ｃｉをその処理周期におけるＸ軸方向の分配パルスΔＬに基いて直に算出するようにすることもできる。
【００５６】
図６において、分配パルス量ΔＬに対して、インクリメンタル補正量Ｃｉは、次の（３）式で求まる。
【００５７】
Ｃｉ＝〔２Ａ／（Ｄ−２Ａ）〕・ΔＬ                  …（３）
分配パルス量ΔＬは、符号を有しているから、インクリメンタル補正量Ｃｉも符号を有することになり、このインクリメンタル補正量Ｃｉを積算し、＋Ｘ方向の移動であれば、この積算値が＋Ａになると補正処理を停止し、また−Ｘ方向の移動であればインクリメンタル補正量Ｃｉの積算値が−Ａになると補正処理を停止すればよい。
【００５８】
そうした場合の処理操作について、図９および図１０のフローチャートを参照して簡単に説明する。
【００５９】
図９に示す初期設定処理は、基本的に、前述した図７の初期設定処理と同一である。但し、この場合は移動位置記憶レジスタＬは不要であり、補正値記憶レジスタＣａ″に初期値Ａ（プラス方向から原点復帰した場合）もしくは−Ａ（マイナス方向から原点復帰した場合）をセットするだけである（ステップＢ３およびステップＢ４参照）。
【００６０】
図１０に示す補正処理においても、ステップｂ１〜ステップｂ６およびステップｂ１７〜ステップｂ１９の処理に関しては、前述した図８の補正処理におけるステップａ１〜ステップａ６およびステップａ１６〜ステップａ１８の処理と全く同様である。
【００６１】
補正処理を開始したＣＮＣ用ＣＰＵ１９は、前述した実施形態の場合と同様にしてステップｂ１〜ステップｂ３の処理を実行した後、移動方向の反転の有無を判別する（ステップｂ４）。そして、移動方向の反転がなければ、ＣＮＣ用ＣＰＵ１９は、バックラッシ補正値に０をセットし（ステップｂ５）、インクリメンタル補正量Ｃｉの積算値を記憶する補正値記憶レジスタＣａ″の値が｜Ｃａ″｜≧Ａであるか否かを判別する（ステップｂ７）。
【００６２】
ステップｂ７の判別処理は、遅れの補正を必要とする補正区間内に作業点が位置するか否かを判定するための処理である。
【００６３】
｜Ｃａ″｜≧Ａであって遅れの補正を必要とする補正区間内に作業点がなければ、ＣＮＣ用ＣＰＵ１９はインクリメンタル補正量Ｃｉを「０」にし（ステップｂ１６）、ステップｂ１７〜ステップｂ１９の処理を図８に示した補正処理の場合と同様にして実施し、この周期の処理を終了する。
【００６４】
また、ステップｂ４の判別処理で移動方向の反転が検出された場合、ＣＮＣ用ＣＰＵ１９は、バックラッシ補正値を従来と同様にして算出し（ステップｂ６）、ステップｂ１の処理で求めたΔＬの値に基いて当該周期でサーボモータＭｘに出力すべきインクリメンタル補正値Ｃｉの値を（３）式の演算処理を行なうことによって求め（ステップｂ８）、更に、補正値Ｃｉの値を補正値記憶レジスタＣａ″に加算して現時点におけるアブソリュートの補正値を求めて、この値を補正値記憶レジスタＣａ″に更新記憶する（ステップｂ９）。
【００６５】
ステップｂ９の処理で算出された現時点における補正値Ｃａ″の値が｜Ｃａ″｜≧Ａとなった状態で補正区間を越えている場合には、Ｃｉの値をそのまま用いて補正を行ってしまうと、アブソリュートの補正値の値がワーク駆動部の撓みの最大値を越えてしまうことになる。そこで、Ｃａ″≧Ａとなってしまった場合、ＣＮＣ用ＣＰＵ１９は、インクリメンタル補正値Ｃｉの値をＡ−（Ｃａ″−Ｃｉ）に再設定し、Ｃａ″にＡを再設定する（ステップｂ１０〜ステップｂ１２）。また、Ｃａ″≦−Ａとなってしまった場合にはインクリメンタル補正値Ｃｉの値を−Ａ＋（Ｃａ″−Ｃｉ）に再設定し、Ｃａ″に−Ａを再設定する（ステップｂ１３〜ステップｂ１５）。
【００６６】
いずれの場合もステップｂ１１もしくはステップｂ１４で最終的に算出されたＣｉの値をステップｂ９実行前のＣａ″の値に加算すれば、Ｃａ″の値は＋Ａもしくは−Ａに一致し、アブソリュートの補正値の値がワーク駆動部の撓みの最大値に一致させるようにするためのものである。つまり、ステップｂ１０〜ステップｂ１２の処理は図８の補正処理におけるステップａ１０，ステップａ１２に代わる処理であり、また、ステップｂ１３〜ステップｂ１５の処理は図８の補正処理におけるステップａ９，ステップａ１１に代わる処理である。
【００６７】
また、ステップｂ１０およびステップｂ１３の判別結果が共に偽となって｜Ｃａ″｜＜Ａであり、補正区間内の場合は、ステップｂ８で求めたインクリメンタル補正値Ｃｉの値を用いてそのまま補正操作を行っても過剰な補正が行われないことは明らかなので、ＣＮＣ用ＣＰＵ１９はステップｂ８で求めた補正値Ｃｉの値をそのまま維持する。
【００６８】
以下、ＣＮＣ用ＣＰＵ１９はステップｂ１７〜ステップｂ１９の処理を図８に示した補正処理の場合と同様にして実施し、この周期の処理を終了する。
【００６９】
インクリメンタル補正値Ｃｉの値をその処理周期におけるＸ軸方向の分配パルスΔＬに基いて直に算出すると共に補正値Ｃａ″の現在値に基いて補正の調整の必要の有無を判定するようにした実施形態について簡単に説明したが、要するに、判定基準となる情報を取り出す対象が移動量であるか補正量であるかの相違と、インクリメンタル補正値を求めるための処理操作を当該処理周期のアブソリュート補正値と前周期のアブソリュート補正値とに基いて行うか当該処理周期の分配パルスΔＬのみに基いて行うかが違うだけで、図７および図８に示した最初の実施形態と作用効果上での差を生じるものではない。
【００７０】
【発明の効果】
本発明によれば、作業点の移動や反転に際し、駆動点と作用点間に距離があるときなど機械構成要素の剛性の不足や摺動抵抗等による外乱の負荷で機械の各部に撓みが生じるような場合であっても、撓みを原因とする作業点の位置ずれを駆動制御上の処理操作だけで容易に解消することができる。
【００７１】
特に、加工槽の移動によって生じる摺動抵抗によってワイヤ電極を保持するアームやワーク駆動部等に撓みの生じ易いワイヤ放電加工機等に用いて好適であり、従来のバックラッシ補正やピッチ誤差補正等では解消され得なかった撓みによる位置ずれを適確に修正して、各軸の移動方向反転させながら行う円または楕円等の穴加工を確実に行うことができる。
【００７２】
更に、撓み防止のために機械の構成要素自体の剛性を強化するといった必要性がないので、位置決め精度に優れた産業機械を安価な価格で提供することが可能となる。
【図面の簡単な説明】
【図１】ワイヤ放電加工機とその制御装置の構成の概略を示すブロック図である。
【図２】ワイヤ放電加工機におけるアームと加工槽との係合部の概略を示す斜視図である。
【図３】作業点を＋Ｘ方向に移動させてから−Ｘ方向に反転移動させるものとして、ワーク駆動部の撓みによって生じる位置ずれの発生状況を示した概念図である。
【図４】補正値と遅れとの関係を示す作用原理図である。
【図５】補正値と遅れとの関係を示す作用原理図である。
【図６】反転後の移動位置と補正値の関係を図３に対応させて示す作用原理図である。
【図７】一実施形態における初期設定処理の概略を示すフローチャートである。
【図８】同実施形態における補正処理の概略を示すフローチャートである。
【図９】別の実施形態における初期設定処理の概略を示すフローチャートである。
【図１０】同実施形態における補正処理の概略を示すフローチャートである。
【符号の説明】
１  ベッド
２  コラム
３  ＵＶ軸，Ｚ軸
４  アームカバー
５  クロステーブル
６  加工槽
７  ワイヤ電極
８  フランジ
９  シール板
１０  ベアリング
１１  制御装置
１２  サーボ制御回路
１３  サーボ制御回路
１４  加工液制御回路
１５  ワイヤ制御回路
１６  放電制御回路
１７  ＲＯＭ
１８  ＲＡＭ
１９  ＣＮＣ用ＣＰＵ
２０  バス
２１  ＰＭＣ用ＣＰＵ
２２  表示制御回路
２３  ディスプレイ付き手動データ入力装置
【図１】
0003647953.tif 000003
【図２】
0003647953.tif 000004
【図３】
0003647953.tif 000005
【図４】
0003647953.tif 000006
【図５】
0003647953.tif 000007
【図６】
0003647953.tif 000008
【図７】
0003647953.tif 000009
【図８】
0003647953.tif 000010
【図９】
0003647953.tif 000011
【図１０】
0003647953.tif 000012