(57)【要約】【課題】位置制御から圧力制御に切換わるとき、直ちに次の指令の制御に移行できるようにした数値制御装置を提供することにある。【解決手段】圧力のフィードバック制御して得られる指令と位置のフィードバック制御して得られる指令の小さい方を用いて圧力制御と位置制御を自動的に切換えてサーボモータを制御する数値制御装置において、移動指令により移動中に圧力制御に切換わったとき、当該移動指令の出力をその途中で終了させ、次のブロックの指令を実行させて、次の指令の圧力制御を直ちに開始する。これにより、無駄な時間をなくし、作業のサイクルタイムを短くすることができる。【選択図】図１６
2008040886.tif 000002
【特許請求の範囲】
【請求項１】
圧力のフィードバック制御して得られる指令と位置のフィードバック制御して得られる指令を比較手段で比較し、その比較結果に応じて自動的に圧力制御又は位置制御に切換えてサーボモータを制御するサーボ制御部と、ＮＣプログラムに基づいて前記サーボ制御部へ位置指令及び圧力指令を出力する数値制御部を有する数値制御装置において、
前記サーボ制御部は現在、位置制御中なのか圧力制御中なのかを前記数値制御部に通知する通知手段を備え、前記数値制御部は、圧力制御への切換指令が付加された移動指令の実行中に、前記サーボ制御部より圧力制御に切換わったことが通知されると当該移動指令の動作を途中で終了させ、ＮＣプログラムの次の指令の実行を開始する切換実行手段を備えたことを特徴とする数値制御装置。
【請求項２】
自軸を他の軸の速度と同期し、かつ該他の軸の移動速度に応じた自軸の移動指令を前記サーボ制御部に出力する同期動作において、前記切換実行手段による切り換えがなされたとき、同期を終了させてＮＣプログラムの次の指令の実行を開始することを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記切換実行手段は、実行中の指令の残り移動量をキャンセルするのか、または実行中の指令の残り移動量を一挙にサーボ制御部に出力するのかを選択可能とした請求項１又は請求項２に記載の数値制御装置。
【請求項４】
圧力制御に切換わった後、サーボ制御部へ出力された移動指令による移動量と、圧力制御から位置制御に切換える目標位置に基づいて指令移動量を求め、該指令移動量の移動指令をサーボ制御部に出力する手段を備え、前記目標位置近傍で自動的に圧力制御から位置制御に切換わるようにした請求項１乃至３の内いずれか１項に記載の数値制御装置。
【請求項５】
前記切換実行手段は、圧力制御から位置制御に切換える目標位置まで指令移動量の移動指令を実行し、該移動指令の動作を途中で終了させたとき残り移動量を一挙にサーボ制御部に出力するようにした請求項１乃至４の内いずれか１項に記載の数値制御装置。
【請求項６】
圧力のフィードバック制御して得られる指令と位置のフィードバック制御して得られる指令を比較し、その比較結果に基づいて自動的に圧力制御又は位置制御に切換えてサーボモータを制御するサーボ制御部と、ＮＣプログラムに基づいて前記サーボ制御部へ位置指令及び圧力指令を出力する数値制御部を有する数値制御装置による位置制御と圧力制御の切換数値制御制御方法において、
前記数値制御部より、前記サーボ制御部へ圧力指令と共に移動指令を出力し、前記サーボ制御部で位置制御を実施中に圧力制御に切換えられると、前記数値制御部は、現在実行中の移動指令の動作を途中で終了させ、次の指令を実行するようにしたことを特徴とする位置制御と圧力制御の切換数値制御方法。
【請求項７】
サーボ制御部へ出力する移動指令は、自軸を他の軸の速度と同期し、かつ該他の軸の移動速度に応じた自軸の移動指令である請求項６に記載の位置制御と圧力制御の切換数値制御方法。
【請求項８】
圧力制御から位置制御に切換える目標位置までの移動量の移動指令を出力し、位置制御から圧力制御に切換わったとき、該移動指令の動作を途中で終了させた後、残り移動量を一挙にサーボ制御部に出力するようにした請求項６又は７に記載の位置制御と圧力制御の切換数値制御方法。
【請求項９】
圧力制御に切換わった後、サーボ制御部へ出力した移動指令による移動量と、圧力制御から位置制御に切換える目標位置に基づいて指令移動量を求め、該指令移動量の移動指令をサーボ制御部に出力するようにした請求項６乃至８に記載の位置制御と圧力制御の切換数値制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御に関する。特に、位置制御と圧力制御を切換えて実行できる数値制御方法、装置に関する。
【背景技術】
【０００２】
制御対象（モータで駆動される可動部）の位置制御と、圧力制御を切換て制御できるようにした数値制御装置はすでに公知である。  
例えば、射出成形機を制御する数値制御装置において、射出保圧工程時の制御を、可動部であるスクリュの位置、速度を制御する位置制御とするか、または、スクリュにかかる圧力をフィードバック制御する圧力制御するかを選択可能とし、さらに、射出保圧工程時は圧力制御し、該射出保圧工程に続く計量工程では、圧力制御に切換てスクリュにかかる圧力を制御できるようにした数値制御装置が知られている（特許文献１参照）。
【０００３】
また、下型と、プレス軸に固定された上型で板金（ワーク）をはさみ、加圧して板金加工するプレス機械において、上型と下型で板金（ワーク）をはさむ圧力の制御にダイクッション装置を用い、このダイクッション装置を制御する制御装置として数値制御装置が用いられるものも知られている（特許文献２参照）。このダイクッション装置の制御は、数値制御装置によりダイクッション部材を駆動するサーボモータを位置制御して、板金が載置されている下型及びダイクッション部材を所定位置に保持しておき、プレス軸が下降し、上型が板金に当接する位置を検出して、この検出信号によって、ダイクッション部材を駆動するサーボモータの制御を位置制御から圧力制御に切換て、所定圧力に制御しプレス加工を行うようにしたものである。
【０００４】
さらに、可動側金型をサーボモータで駆動する電動サーボプレスにおいて、数値制御装置等を用いて、位置のフィードバック制御によって求められた速度指令または位置、速度のフィードバック制御によって得られたトルク指令と、圧力フィードバック制御によって求められた速度指令またはトルク指令を比較し、小さい方を選択切換て制御する発明も知られている（特許文献３参照）。
【０００５】
【特許文献１】特許第２６０８７８４号公報
【特許文献２】特開２００６−１２２９４４号公報
【特許文献３】特開２００６−７２９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述した特許文献１，２に記載された発明では、位置制御から圧力制御への切換タイミングは、予め決められたものである。特許文献１に記載された発明では、位置制御か圧力制御かを予め設定するものである。または、射出保圧工程が終了すると位置制御から圧力制御に切換わるものであり、その切換タイミングは予め決められたものである。  
また、特許文献２に記載された発明においても、位置制御から圧力制御への切換は、プレス軸の位置を検出する検出器からの信号によって決められるものである。
【０００７】
また、特許文献３に記載された発明のように、位置制御で求められる速度指令と圧力制御で求められた速度指令の小さい方を採用する方式を採用するものにおいては、自動的に位置制御から圧力制御に切換えることができるが、切換えた後の制御が直ちに実行できるものではない。
【０００８】
図１は、ピンなどの部品ＡをワークＷに圧入する装置の例で、部品ＡをワークＷに設けられた穴に圧入した後、一定時間以上の間所望の圧力を部品Ａにかける必要がある場合の例である。部品ＡをワークＷに設けられた穴への圧入位置に位置決めした後（図１（ａ）参照）、サーボモータＭを駆動してボールネジ／ナット機構等の送り機構を介して部品Ａを穴に圧入し、その後、一定時間以上の間所望の圧力を部品Ａにかけ（図１（ｂ）参照）、部品Ａをワークの穴に嵌合し取り付ける（図１（ｃ）参照）ようにした例である。  
このような位置制御と圧力制御を必要とする場合には、従来は、図２のような構成の数値制御装置が使用されている。
【０００９】
数値制御装置は数値制御部１０とサーボ制御部２０に大別される。数値制御部１０では、プログラム解析処理部１２がＮＣプログラム１１の各ブロックの指令を順次読み出し解析して実行データに変換してブロック処理部１３に格納する。位置、圧力指令分配・加減速処理部１４では、ブロック処理部１３から各ブロック毎の実行データを読み出し、位置指令における移動量の分配処理、及びその加減速処理を実行し各分配周期毎の移動量を位置指令としてサーボ制御部２０に出力する。また圧力指令に対しても、指令された圧力を圧力指令値としてサーボ制御部２０に出力する。また、ブロック終了判断部１４ａでは、現在実行中の１ブロックの指令での位置指令の移動量が全てサーボ制御部に転送されたか判断し、転送していれば、ブロックの処理が終了したことをブロック処理部１３に通知する。すなわち、現在実行中のブロックでの指令の実行が完了したことをブロック処理部１３に通知する。ブロック処理部１３では、このブロック完了通知を受けて、次ブロックの指令の実行データを位置、圧力指令分配・加減速処理部１４に引き渡し、次のブロックが実行されることになる。
【００１０】
一方、サーボ制御部２０では、位置ループ制御部を構成するエラーカウンタ２１、ポジションゲインＫｐの部２２、比較器２３、速度制御部２４、電流制御部２５、圧力制御部を構成するフォースゲイン部２６で構成されている。数値制御部１０から指令された位置指令とサーボモータ等に設けられた位置・速度検出器からの位置フィードバックより位置偏差をエラーカウンタ２１で算出し、該位置偏差にポジションゲインＫｐを乗じて、位置制御による速度指令Ａを求める。
【００１１】
また、数値制御部１０から出力される圧力指令と圧力センサからの圧力フィードバックによりその圧力偏差を求めフォースゲインを乗じて圧力制御による速度指令Ｂを求める。比較器２３では、位置制御による速度指令Ａと圧力制御による速度指令Ｂを比較し、小さい方を採用し、速度制御部２４への速度指令とする。速度制御部２４では、この速度指令と図示していないが速度フィードバックより速度のフィードバック制御を行いトルク指令（電流指令）を求めてサーボモータを駆動制御する。  
上述した数値制御装置の構成は前記特許文献３に記載されているように従来から公知の構成である。
【００１２】
このような数値制御装置で図１に示すピンなどの部品ＡをワークＷに圧入する装置を制御する場合、図３に示すようなＮＣプログラムを作成して数値制御装置に実行させる。
図３に示すのプログラム例において、「Ｏ０００１」は、プログラム番号、「Ｎ１〜Ｎ６」はシーケンス番号、「Ｇ１００」は圧力指令、「Ｑ□□」は圧力指令、「Ｇ９０」はアブソリュート指令、「Ｇ０１」は直線補間指令、「Ｘ□□」は指令位置、「Ｆ□□」は移動速度、「Ｇ０４」はドウェル（停止）指令で、コードＰで示される時間（２５０）だけその時の状態を保持させる指令である。「Ｇ９１」はインクレメンタル指令、「Ｍ３０」はプログラムエンドの指令である。
【００１３】
シーケンス番号Ｎ１のブロックにて所望の圧力の値（Ｑ１０）を指定し、シーケンス番号Ｎ２のブロックでワークＷへの部品Ａの挿入目標位置（Ｘ３０）へ速度（Ｆ５００）で位置制御して移動させる。ワークＷに接触し、圧力が上がっていくと数値制御装置のサーボ制御部２０は圧力制御に切り換わり、所望の圧力を保った制御を行う。数値制御装置の数値制御部１０は、圧力制御に切り換わったか否かによらず、シーケンス番号Ｎ２のブロックの移動指令を最後まで実行した後、シーケンス番号Ｎ３のＧ０４指令にてＰで指定した時間(２５０ミリ秒)だけさらに一定の圧力をかける。シーケンス番号Ｎ４のブロックでは、サーボ制御部２０のエラーカウンタ２１に溜まっているサーボ位置偏差量を変数＃５１０１で読み出し、読み出したサーボ位置偏差量の符号を反転させた値を指令することで溜まっているサーボ位置偏差量を最高速度（は２４００００）で０にする。これにより、指令位置と実位置が一致する。シーケンス番号Ｎ５のブロックを実行して位置制御にて待機位置(Ｘ１００．)に戻る。このプログラムを実行した場合の位置と時間、実圧力と時間の関係は図４のようになる。
【００１４】
図４に示されるように、シーケンス番号Ｎ３で、所望圧力（Ｑ１０）で２５０ミリ秒だけ圧力をかけるように指令したにも拘わらず、時間Ｔ４だけ余分に圧力制御がなされることになる。これは、シーケンス番号Ｎ３のブロックでの位置制御による移動中に圧力制御に切り替わったとしても、このシーケンス番号Ｎ３のブロックでの移動指令が完了するまで待って、次のシーケンス番号Ｎ４のブロックの処理に移行することから生じるものであり、この余分な時間Ｔ４は位置制御から圧力制御に切り替わって後、位置制御による残りの移動量を指令して完了するまでの時間を意味する。又この時間Ｔ４は一定ではない。
【００１５】
このように、位置制御から圧力制御に自動的に切り替わったとしても、次の制御が直ちに実行できなく、目標とする制御が達成できないという問題がある。  
又、位置制御から圧力制御に切換制御する他の制御例として、プレス機械におけるダイクッション装置がある。  
図５は、位置制御から圧力制御へ切換て制御するプレス機械におけるダイクッション装置の概要図である。
【００１６】
図５において、金型の下型２はプレス機械のベースに固定されており、該下型２に対向して上型１がプレス軸に固定されて配置されている。プレス軸は、モータや油圧、空気圧を用いたプレス軸駆動源によって駆動され、一定パターンでクランプ軸（上型１）を駆動し上下動させる。
【００１７】
下型２側には複数のダイクッション部材６が設けられ、該ダイクッション部材６はそれぞれのサーボモータＭｄで図中上下方向に駆動されるように構成されている。ダイクッション部材６、及びダイクッション用サーボモータＭｄは、図５に示した例では、２組設けた例を示しているが、３組、４組と複数設けても、又は、複数のダイクッション部材６を連結して一体とし、１つのダイクッション用サーボモータで駆動するようにしてもよい。  このダイクッション用サーボモータＭｄは、ダイクッション用の数値制御装置５で駆動制御される。
【００１８】
プレス加工しようとする板金（ワーク）３は、ダイクッション部材６上に載置され、下型２の上に配置される。また、この板金（ワーク）３にかかる圧力を検出する圧力センサ４が下型２中に設けられ、該圧力センサ４で検出された圧力は数値制御装置５にフィードバックされている。さらに、また、上型１の位置、即ちプレス軸の位置を検出するリミットスイッチ等のセンサ７が設けられ、該センサ７の出力もダイクッション用の数値制御装置５に入力されている。  
このダイクッション用の数値制御装置５として、図２に示すサーボモータを位置制御と圧力制御に切換て制御する数値制御装置が用いられる。
【００１９】
プレス加工しようとする板金（ワーク）３が、ダイクッション部材６、下型２の上に配置され、数値制御装置５は、ダイクッション部材６を所定位置に保持するよう位置指令が出され、かつ所定圧力指令が出力されているが、ダイクッション部材６は指令されている所定位置に保持されていることから、位置偏差は「０」もしくは非常小さく、位置制御による速度指令Ａは「０」もしくは小さい値である。一方、板金（ワーク）３には上型１からの圧力はかかっておらず、圧力センサ４で検出される圧力は「０」もしくは非常に小さい値である。そのため、指令圧力との偏差は大きく圧力制御による速度指令Ｂは大きな値である。よって、比較器２３は、位置制御からの速度指令Ａを採用している。その結果、サーボモータＭｄ及びダイクッション部材６は指令位置に保持され、板金３も所定位置に保持されている。
【００２０】
そこで、プレス軸が駆動され上型１が下降し、上型１が板金３と衝突すると、ダイクッション部材６は下降し、サーボモータＭｄも移動することにより、位置偏差が増大し、位置制御による速度指令Ａは増大する。一方、上型１が板金３と衝突することによって、圧力センサ４にかかる圧力が増大し、検出圧力が増大して圧力偏差は減少し、圧力制御による速度指令Ｂは減少する。その結果、圧力制御による速度指令Ｂの方が位置制御による速度指令Ａより小さくなることから、比較器２３は、圧力制御による速度指令Ｂを選択採用し、圧力制御がなされる。すなわち、数値制御部１０から指令されているサーボモータＭｄ及びダイクッション部材６への位置指令は、プレス開始時の上型１と下型２が当接していない状態の位置（この位置をプレス開始位置という）であり、実際のダイクッション部材６の位置は、上型１には押圧して下降していることから、サーボモータＭｄの位置も指令位置からずれ、上型１が下降を続ける限り位置偏差は増大することになるので、圧力制御の速度指令Ｂが採用され、圧力制御がなされる。そして、上型１が上昇し（この間サーボモータＭｄは、指令圧力と一致するようにダイクッション部材６を押し上げている）、プレス開始位置に達すると、位置偏差が「０」となることにより、比較器２３は位置制御による速度指令Ａを採用するよう切換わる。以後は、位置制御がなされる。  
以上のように動作するが、上型１が下降し板金３に衝突したとき、この板金３が受ける上型１からの外力が大きくなりすぎ過大圧力が瞬間的に発生するという欠点がある。
【００２１】
この過圧力の発生を防止するために、板金３及びダイクッション部材６が上型１より外力を受ける直前にダイクッション部材６を下方に逃げるように移動させる位置制御を行えば、上型１とダイクッション部材６との相対速度が低下することにより、衝突時のショック（過大圧力）を小さくすることができる。センサ７で上型１が板金３に当接する直前を検出し、数値制御装置５の数値制御部１０は、サーボモータＭｄの位置制御を開始し、ダイクッション６を下降に移動させる。
【００２２】
図６は、このときの圧力センサ４からの圧力フィードバック値の状態を表す図であり、ダイクッション部材６が下降して逃げて、上型１との相対速度が小さくなることから、圧力センサ４で検出される圧力が目標圧力に到達するには時間がかかり、位置制御から、圧力制御に切換わるのに、図６でＴ２と示すような時間がかかるという問題が生じる。
【００２３】
これを改善する方法として、最初は目標とする圧力値を低く設定して圧力制御へ切換わり点を速くし、圧力制御に切換わった後で、圧力指令値を徐々に上げることにより、この問題を解決するが考えられる。
【００２４】
図７は、このような圧力制御を実行させるためのダイクッション部材６を駆動するサーボモータＭｄへの指令のＮＣプログラム例である。図７において、「Ｇ１０１」はＱで指令される圧力をＰで指令される時間をかけて上昇させる指令、「Ｍ２００」は補助機能の指令である。
【００２５】
図８は、このＮＣプロクラムを実行してサーボモータＭｄを駆動してダイクッション６を制御したときの上型（プレス軸）１とダイクッション部材６の位置関係を表した図である。図８は横軸を時間、縦軸を位置としている。また、実線は上型（プレス軸）１の位置，１点破線はダイクッション部材の指令位置、破線はダイクッション部材の実際の位置（位置フィードバック値）である。  
ダイクッション部材６は、プレス開始位置として「３００」の位置に保持されている（位置制御されている）。上型（プレス軸）１が下降し、時間ａの点で上型１がセンサ７で検出され、センサ７から検出信号が数値制御装置５に入力されると、数値制御装置５の数値制御装置５は、図７のＮＣプログラムを実行開始する。
【００２６】
まず、シーケンス番号Ｎ１の「Ｇ１００  Ｑ１０」が実行され、Ｑ＝１０の圧力指令が数値制御部１０からサーボ制御部２０に出力され、続いてシーケンス番号Ｎ２の「Ｇ０１  Ｇ９１  Ｘ−１５０．Ｆ５００」が実行され、数値制御部１０では、速度Ｆ＝５００で、負方向（下降）に１５０だけ移動するよう分配周期毎に分配移動量が求められ、サーボ制御部２０に出力される。サーボ制御部２０の比較器２３では、位置制御による速度指令Ａと圧力制御による速度指令Ｂを比較するが、最初は、上型１は板金３に当接していないから、圧力センサ４からのフィードバック値は小さく圧力偏差は大きく速度指令Ｂも大きい。また、最初の段階では、ダイクッション部材６はプレス開始位置に保持されており位置偏差が小さく位置制御による速度指令Ａは小さいことから、最初は位置制御がなされことにより、サーボモータＭｄは速度Ｆ＝５００で駆動され、ダイクッション部材６は時間ａの点より下降を開始する。
【００２７】
そこで、上型（プレス軸）１が板金３及びダイクッション部材６に追いつき時間ｂの点で衝突が生じると、前述したように、位置偏差が大きくなると共に圧力偏差が小さくなることから、圧力制御の速度指令Ｂの方が位置制御の速度指令Ａより小さくなるので、圧力制御に切換わる。このときの圧力指令はシーケンス番号Ｎ１のブロックで指令されたＱ＝１０であり、この圧力Ｑ＝１０に一致するように圧力制御がなされることになる。
【００２８】
図９は、指令圧力（破線）と圧力センサ４からフィードバックされる圧力フィードバック値（実線）で表した図である。この図９に示すように、指令圧力Ｑ＝１０と一致するように圧力制御がなされる。そして、シーケンス番号Ｎ２のブロックで指令した移動量「−１５０」だけの移動量の分配処理が終了すると、数値制御部１０の位置、圧力指令分配・加減速処理部１４は、次のシーケンス番号Ｎ３のブロックの指令を実行することになる。このシーケンス番号Ｎ２のブロックで指令した移動量「−１５０」を分配処理する間、指令圧力Ｑ１０の低い圧力での圧力制御が実行されることになる。
【００２９】
移動量「−１５０」の分配処理が終了すると、次のシーケンス番号Ｎ３のブロックの指令を実行開始し、数値制御部１０の位置、圧力指令分配・加減速処理部１４は、指令された時間Ｐ１５をかけてＱ１０から圧力指令値Ｑ１００まで徐々に上昇させるよう圧力の分配処理を行いサーボ制御部に出力する。サーボ制御部２０では、この圧力指令を受けて圧力フィードバック制御を行い、図９に示すように、時間Ｐ＝１５をかけて指令圧力をＱ＝１０からＱ＝１００に切換える。この間、ダイクッション部材６（サーボモータＭｄ）への位置指令は先に指令された位置（３００−１５０＝１５０）に保持されている。
【００３０】
シーケンス番号Ｎ３のブロックの指令の実行を終了した後、数値制御部１０の位置、圧力指令分配・加減速処理部１４はシーケンス番号Ｎ４のブロックの指令の実行を開始し、上型（プレス軸）１の最下点に対応する最下点位置Ｘ５まで、速度２４００００（最高速度）で移動させる分配処理を実行し、該シーケンス番号Ｎ４のブロックの指令の実行を終了した後、シーケンス番号Ｎ５のブロックの指令の補助機能Ｍ２００が実行され、この状態で、ＦＩＮ信号が返るまで待ちの状態となる。
【００３１】
その後、上型（プレス軸）１が最下点まで達し、ダイクッション部材６も最下点に達し、上型（プレス軸）１が上昇を開始する時間ｃ（図８参照）の近傍で、位置偏差が「０」または極めて小さな値となることから、位置制御に切換わり、サーボモータＭｄ（ダイクッション部材６）は指令された位置（Ｘ５）に保持され停止状態となる。そして上型（プレス軸）１が上昇し、時間ｄの点でセンサ７で上型（プレス軸）１の通過が検出されＦＩＮが返されてくると（図８の時間ｄ）、次のシーケンス番号Ｎ６のブロックの指令が実行され、位置、圧力指令分配・加減速処理部１４から、プレス開始位置であるＸ＝３００の位置へ速度Ｆ＝５００で移動するよう分配処理がなされてサーボ制御部２０へ出力される。このとき、上型（プレス軸）１は上昇しており、板金３、下型２、ダイクッション部材６から離れていることから、サーボ制御部２０では、圧力偏差は大きく位置偏差は小さいので位置制御による速度指令Ａが採用され位置制御が実行されることになり、ダイクッション部材６は、図８に示すように、初期のプレス開始位置（Ｘ３００）に位置決めされ保持されることになり、ＮＣプログラムの処理は終了する（Ｍ３０）。
【００３２】
この図７のＮＣプログラムでダイクッション部材６を駆動するサーボモータＭｄを制御すれば、上述したような動作ができ、図９に示すように、板金３等にかかる圧力が過大圧力となることを防止することができ、図６と比較し、目標圧力に達するまでの時間はある程度短くできる。しかし、シーケンス番号Ｎ２のブロックの処理が終了するまで、次のシーケンス番号Ｎ３のブロックによる指令が実行されないことから、目標とする圧力に達するまで時間Ｔ３を要する。すなわち、圧力制御に切り替わってから目標とする圧力に制御するまで無駄な時間Ｔ３を要することになる。
【００３３】
移動しているものに移動してくるものが衝突する場合、その衝突位置にはずれが生じる。すなわち、移動しているダイクッション部材６、板金３に対して上型（プレス軸）１が移動して衝突する場合、その衝突位置にずれが生じる。前述したように停止している状態で衝突が生じると圧力がかかりすぎるという問題が生じ、これを避けるためにダイクッション部材６、板金３を移動させて逃がしながら、移動してくる上型（プレス軸）１と衝突させると、その移動位置にずれが生じることから、ダイクッション部材６、板金３を移動させている間に、上型（プレス軸）１との衝突が発生することを保証するために十分な逃げの移動量（シーケンス番号Ｎ２のブロックで指令する移動量）を指令する必要がある。しかし、この移動量が長いと、この移動量を分配処理して、その指令ブロックの処理が終了するまでに時間がかかり、次の指令である、目的とする圧力への指令を出力し実行するまでに時間を要することになる。すなわち、図９で、Ｔ３として示すように、ダイクッション部材６を逃げさせる逃げ量の分配処理が終了するまでの間、目標とする圧力に制御するのに時間がかかることになる。
【００３４】
そこで、本発明は、位置制御から圧力制御に切換わるとき、直ちに次の指令の制御に移行できるようにした数値制御方法、装置を提供することにある。
【課題を解決するための手段】
【００３５】
本願請求項１に係る発明は、圧力のフィードバック制御して得られる指令と位置のフィードバック制御して得られる指令を比較手段で比較し、その比較結果に応じて自動的に圧力制御又は位置制御に切換えてサーボモータを制御するサーボ制御部と、ＮＣプログラムに基づいて前記サーボ制御部へ位置指令及び圧力指令を出力する数値制御部を有する数値制御装置において、前記サーボ制御部は現在、位置制御中なのか圧力制御中なのかを前記数値制御部に通知する通知手段を備え、前記数値制御部は、圧力制御への切換指令が付加された移動指令の実行中に、前記サーボ制御部より圧力制御に切換わったことが通知されると当該移動指令の動作を途中で終了させ、ＮＣプログラムの次の指令の実行を開始する切換実行手段を備えるものとし、これによって、位置制御から圧力制御に切換わったとき次のブロックの指令を直ちに実行できるようにして、無駄な時間をなくし、高精度な制御を可能にした。
【００３６】
又、請求項２に係る発明は、前記サーボ制御部に出力する自軸への移動指令を他の軸の速度と同期し、かつ該他の軸の移動速度に応じた移動指令とし、前記切換実行手段による切り換えがなされたとき、同期を終了させてＮＣプログラムの次の指令の実行を開始するようにした。請求項３に係る発明は、前記切換実行手段を、実行中の指令の残り移動量をキャンセルするのか、または実行中の指令の残り移動量を一挙にサーボ制御部に出力するのかを選択できるものとした。請求項４に係る発明は、圧力制御に切換わった後、サーボ制御部へ出力された移動指令による移動量と、圧力制御から位置制御に切換える目標位置に基づいて指令移動量を求め、該指令移動量の移動指令をサーボ制御部に出力する手段を備え、前記目標位置近傍で自動的に圧力制御から位置制御に切換わるようにした。さらに、請求項５に係る発明は、前記切換実行手段を、圧力制御から位置制御に切換える目標位置まで指令移動量の移動指令を実行し、該移動指令の動作を途中で終了させたとき残り移動量を一挙にサーボ制御部に出力するようにした。
【００３７】
又、請求項６〜９に係る発明は、上述した発明の数値制御装置が実施する位置制御と圧力制御の切換数値制御方法の発明であり、請求項６に係る発明は、数値制御部より、サーボ制御部へ圧力指令と共に移動指令を出力し、前記サーボ制御部で位置制御を実施中に圧力制御に切換えられると、前記数値制御部は、現在実行中の移動指令の動作を途中で終了させ、次の指令を実行するようにしたものである。又、請求項７に係る発明は、サーボ制御部へ出力する移動指令を、外部から入力される他の軸の速度と同期し、かつ該他の軸の移動速度に応じて移動指令としたものである。請求項８に係る発明は、圧力制御から位置制御に切換える目標位置までの移動量の移動指令を出力し、位置制御から圧力制御に切換わったとき、該移動指令の動作を途中で終了させた後、残り移動量を一挙にサーボ制御部に出力するようにしたものである。請求項９に係る発明は、圧力制御に切換わった後、サーボ制御部へ出力した移動指令による移動量と、圧力制御から位置制御に切換える目標位置に基づいて指令移動量を求め、該指令移動量の移動指令をサーボ制御部に出力するようにした。
【発明の効果】
【００３８】
位置制御から圧力制御に切換わったとき、直ちに次の指令の制御ができ、無駄な時間を省き、高精度な圧力制御ができると共に、サイクルタイムの短縮が図れる。
【発明を実施するための最良の形態】
【００３９】
以下本発明の一実施形態を図面と共に説明する。  
図１０は、本発明の一実施形態の位置制御と圧力制御を切換て実施できる制御数値制御装置の機能ブロック図である。この数値制御装置も位置制御による速度指令Ａと圧力制御による速度指令Ｂを比較し、小さい方の速度指令を選択して、位置制御もしくは圧力制御を切換て実施するものであるが、この比較器２３で選択した状態、すなわち、位置制御を実施しているか、過圧力制御を実施しているかの状態を数値制御部１０に通知するようにしている点で図２の従来例と相違すると共に、数値制御部１０の位置、圧力指令分配・加減速処理部１４の処理で、比較器２３からの信号に基づいて、位置制御中に圧力制御に切換わったとき、その時実行している位置制御の移動指令の分配処理をその途中で中断し残りの移動指令をキャンセルし、次のブロックの指令を実行できるようにした点で相違するのみである。他の構成は図２に示した従来の位置、圧力制御を切換制御できる数値制御装置の構成と同一であるので、詳細な説明は省略する。また、図２に示した数値制御装置の要素と同一の要素は同一の符号を付している。
【００４０】
さらに、この位置制御中に圧力制御に切換わったとき、その時実行している位置制御の移動指令の分配処理をその途中で中断し次のブロックの指令の実行に移行するようなＮＣプログラムの指令コードを設けている。本実施形態は、このコードを「Ｇ１０２」としている。さらに圧力指令としてのコード「Ｇ１００」、圧力を段階的に変更する指令としてのコード「Ｇ１０１」、又、圧力制御時間を指令するものとしてドウェルコード「Ｇ０４」を設けている。
【００４１】
図１１〜図１４は、本実施形態におけるこの位置制御と圧力制御を切換制御する数値制御装置における数値制御部１０のプロセッサが、位置、圧力指令分配・加減速処理部１４の処理として実施するアルゴリズムを示すフローチャートである。
【００４２】
数値制御部１０の位置、圧力指令分配・加減速処理部１４の処理を実行するプロセッサは、ＮＣプログラムを読み込み実行データに変換されたデータをブロック処理部１３から読み込み（ステップａ１）、このブロックの指令がプログラムエンドの指令か（「Ｍ３０」か）（ステップａ２）、圧力指令のＧ１００か（ステップａ３）、圧力変更指令Ｇ１０１か（ステップａ４）、実行途中でも次のブロック指令の処理に移行させ指令のＧ１０２か（ステップａ５）、ドウェルの指令Ｇ０４か（ステップａ６）、また、その他の従来からある移動指令か（ステップａ７）を判断し、全てＮＯであれば、ステップａ１で読み込んだブロックの指令を従来と同様に実行する（ステップａ１５）。
【００４３】
また、ステップａ７で移動指令であると判別されたときは、このブロックで指令されている移動指令の指令内容（直線補間、円弧補間、速度、目標位置等）に基づいて、分配周期毎の移動量を求め（ステップａ８）、加減速処理を行い（ステップａ９）、残移動量の更新処理及び指令した現在位置の更新処理を行う（ステップａ１０）。この残移動量の更新処理は、このブロックで指令された移動量を、残移動量を記憶するレジスタに格納し、以後ステップａ９で求められた出力移動量を減じて残移動量を更新する処理である。また、現在位置の更新処理は、数値制御部１０がサーボ制御部２０に指令した位置を更新するもので、レジスタに記憶する現在位置にステップａ９で求めた出力移動量を加算することによって現在位置を更新する。次に、ステップａ９で求めた出力移動量をサーボ制御部２０に出力し（ステップａ１１）、残移動量が「０」か判断し（ステップａ１２）、残移動量が「０」でなければ、ステップａ８に戻る。以下ステップａ８からステップａ１２の処理を分配周期毎実行し、分配移動量を求め加減速処理してサーボ制御部へ分配周期毎の出力移動量をサーボ制御部２０に出力する。そして、残移動量が「０」となると、ステップａ１に戻る。  
このステップａ１５及びステップａ７〜ステップａ１２の処理は従来の処理と同じである。
【００４４】
一方、読み出した指令が「Ｇ１００」であるとステップａ１３、ステップａ１４の処理を行い、「Ｇ１０１」であるとステップａ１６〜ステップａ２０の処理を行い、「Ｇ１０２」であるとステップａ２１〜ステップａ２９の処理を行い、「Ｇ０４」であるとステップａ３０〜ステップａ３３の処理を行う。
【００４５】
そこで、この位置制御と圧力制御を切換て実施できる数値制御装置を用いて、位置制御と圧力制御を切換制御する例として、図１で示した、ピンなどの部品ＡをワークＷに圧入する装置のサーボモータＭを制御する例を説明する。  
図１５は、この装置を制御するＮＣプログラムの一例である。  
図３に示す従来のＮＣプログラムの例と相違する点は、シーケンス番号Ｎ２のブロックにおいて、従来例では「Ｇ９０ Ｇ０１ Ｘ３０．Ｆ５００；」であった点が「Ｇ９０ Ｇ１０２ Ｘ３０．Ｆ５００；」と変更されている点である。そして、この指令「Ｇ１０２」は、このブロックの指令を実行中に位置制御から圧力制御に切換わったことを示す信号が比較器２３から入力されると、このブロックの移動指令の分配処理を最後まで実施せず、この信号を受けた時点で当該ブロックの処理を終了し次のブロックの指令の処理を開始するようにした指令である。このシーケンス番号Ｎ２のブロックの「Ｇ９０ Ｇ１０２ Ｘ３０．Ｆ５００；」との指令は、速度Ｆ５００でＸ軸を３０の位置まで移動させる指令であり、この移動指令の分配中に位置制御から圧力制御に切換わると、このブロックの指令による分配処理を直ちに終了し、次のブロックの指令を実行するように指令したものである。
【００４６】
数値制御部１０のプログラム解析処理部１２では、ＮＣプログラムより１ブロック毎読み取り実行データに変換しブロック処理部１３に格納する。位置、圧力指令分配・加減速処理部１４はブロック処理部１３から１ブロックのデータを読み取り（ステップａ１）、前述したように、プログラムエンドの指令か（「Ｍ３０」か）（ステップａ２）、圧力指令のＧ１００か（ステップａ３）、圧力変更指令Ｇ１０１か（ステップａ４）、実行途中でも次のブロック指令の処理に移行させる指令のＧ１０２か（ステップａ５）、ドウェルの指令Ｇ０４か（ステップａ６）、その他の移動指令か（ステップａ７）判断するが、図１５のＮＣプログラムでは、最初にシーケンス番号Ｎ１の「Ｇ１００  Ｑ１０」の指令が読み込まれるので、ステップａ３からステップａ１３に移行し、サーボ制御部２０に出力する圧力指令Ｑoutを記憶するレジスタに当該ブロックで指令（Ｑ１０）された圧力「１０」をセット（Ｑout＝１０）し、該レジスタに記憶する圧力指令Ｑoutをサーボ制御部２０に出力し（ステップａ１３、ａ１４）、ステップａ１に戻る。このとき、サーボ制御部２０では、サーボモータＭを作業開始時の位置決め位置に保持されており、位置偏差は「０」または非常に小さい値であり、位置制御による速度指令Ａは「０」もしくは小さい値である。一方、圧力指令Ｑ（＝１０）が出力されているが、圧力センサＳには圧力がかかっていないことから、圧力センサＳからフィードバックされる圧力は「０」または小さな値であることから圧力偏差は大きく、この圧力偏差にゲインをかけて得られる圧力制御による速度指令Ｂは大きな値となり、比較器２３は小さい速度指令の位置制御による速度指令Ａを選択し、該サーボ制御部２０は位置制御を実行している。
【００４７】
次のシーケンス番号Ｎ２のブロックが読み出され、このブロックの指令は「Ｇ１０２」の指令であることから、ステップａ５からステップａ２１に移行し、サーボ制御部２０から送られてくる圧力制御中か位置制御中かの信号に基づいて、圧力制御中か否か判断する。前述したように最初は位置制御中であることから、ステップａ２２に移行し、当該ブロックで指令された移動量ダイクッション軸であるＸ軸への移動量「３０」と速度Ｆ（＝５００）に基づいて分配周期毎の移動量を求め加減速処理して、出力移動量を求めこの出力移動量をサーボ制御部２０に出力し（ステップａ２３〜ａ２５）、さらに現在位置、残移動量を更新し、残移動量が「０」か判断する（ステップａ２６）の処理を実行する。このステップａ２２〜ステップａ２６の処理はステップａ８〜ステップａ１２の処理と同じである。
【００４８】
残移動量が「０」でなければステップａ２１に戻り、残移動量が「０」になるまで、ステップａ２１〜ステップａ２６の処理を分配周期毎実行する。この間、速度Ｆ＝５００で、正方向に３０だけ移動するよう分配周期毎の移動量が求められ、加減速処理されてサーボ制御部２０に出力される。サーボ制御部２０の比較器２３では、位置制御による速度指令Ａと圧力制御による速度指令Ｂを比較しており、最初は、前述したように、圧力センサＳからのフィードバック値は小さく圧力偏差は大きく速度指令Ｂも大きい。また、サーボモータＭは指令に追従して移動することにより、位置偏差が小さく位置制御による速度指令Ａは小さいことから、最初は位置制御が継続してなされる。
【００４９】
部品ＡがワークＷに接触し、圧力センサＳからフィードバックされる検出圧力が増大し、圧力偏差は減少する。一方、部品ＡがワークＷの穴に圧入にされて、サーボモータＭの移動は減速、停止することから、位置偏差が増大する。その結果、位置制御による速度指令（位置偏差にゲインをかけた値）Ａより、圧力制御による速度指令（圧力センサにゲインをかけた値）Ｂの方が小さくなり、サーボ制御部２０の比較器２３は、圧力制御の速度指令Ｂを採用し、圧力制御に切換えることになる。
【００５０】
この圧力制御に切換わったことを、数値制御部１０のプロセッサがステップａ２１で検出すると、ステップａ２７に移行し、残移動量を一挙に出力するよう設定されているか否か判断し、一挙に出力するように設定されていれば、この時点でレジスタに記憶されている残移動量を一挙のサーボ制御部２０に出力し、現在位置を記憶するレジスタにこの出力した残移動量を加算して現在位置の更新を行い（ステップａ２８）、レジスタに記憶する残移動量を「０」とする（ステップａ２９）。また、残移動量を一挙に出力するよう設定されてなければ、ステップａ２８の処理を行うことなく（残移動量を出力することなく）、レジスタに記憶する残移動量を「０」にする（ステップａ２９）。ステップａ２６で残移動量が「０」になったと判別されたとき、及びステップａ２９で残移動量を「０」にセットした後、ステップａ１に戻り次のブロック（シーケンス番号Ｎ３のブロック）が読み出されるので、このブロックで指令された処理を実行することになる。すなわち、シーケンス番号Ｎ２のブロックの指令により、位置制御によりサーボモータＭｄを制御している途中において、圧力制御に切換わったことが検出されると、このブロックの移動指令による移動途中にも拘わらず、直ちに次のブロックの処理を開始させるものである。
【００５１】
このとき、現在位置を記憶するレジスタには、数値制御部１０からサーボ制御部２０に指令した位置が記憶されており、サーボ制御部２０のエラーカウンタ２１には、この数値制御部１０からサーボ制御部２０に指令した位置に対して実際の位置との差である位置偏差が記憶されることになる。
【００５２】
次のシーケンス番号Ｎ３のブロックの指令は、その時の状態を維持させるドウェルの指令「Ｇ０４」であることから、ステップａ６からステップａ３０に移行し、当該ブロックのコードＰで指令されている時間Ｔ（＝２５０）を分配周期で割り、圧力上昇を完了させる分配周期数countを求めレジスタにセットし（ステップａ３０）、レジスタに記憶する分配周期数countから１減じる（ステップａ３１）。そして、該レジスタに記憶する分配周期数countが負となっていないか判断し（ステップａ３２）、負になるまで、ステップａ３１、ａ３２の処理を分配周期毎繰り返し、負となると、分配周期数countを記憶するレジスタを「０」にセットしてステップａ１に戻る。すなわち、シーケンス番号Ｎ３のブロックで指令された時間だけ、指令された圧力（シーケンス番号Ｎ１のブロックで指令されレジスタに設定されている指令圧力Ｑout）を保持し、この指令圧力と一致するようにサーボ制御部２０は圧力のフィードバック制御を行う。
【００５３】
シーケンス番号Ｎ４以降のブロックの指令は図３で示した従来のプログラム例と同じである。すなわち、エラーレジスタに溜まっているサーボ位置偏差量を変数＃５１０１で読み出し、読み出したサーボ位置偏差量の符号を反転させた値をサーボ制御部２０に指令することで溜まっているサーボ位置偏差量を最高速度（は２４００００）で０にする。これにより、指令位置と実位置が一致する。又現在位置を記憶するレジスタにもこの移動指令を加算して更新する。シーケンス番号Ｎ５のブロックを実行して位置制御にて待機位置(Ｘ１００．)に戻る。このプログラムを実行した場合の位置と時間、実圧力と時間の関係は図１６のようになる。
【００５４】
この図１６と従来例の図４と比較して明らかのように、位置制御中に圧力制御に切り替わったとき、数値制御部は実行中のブロック（シーケンス番号Ｎ２のブロック）での指令の残り移動量をキャンセルしてブロックを終了させ、次のブロックの指令を実行することになることから、図４において、無駄で意図しない時間Ｔ４はなく、次のブロックで指令している「Ｐ２５０」による目標時間２５０ｍｓｅｃの間、圧力を目標圧力に保持する制御ができるものである。このようにして圧力制御時間を正確に制御できるものである。又、図４の時間Ｔ４のような余分な時間をなくすことが可能となり、サイクルタイムの短縮に寄与できるである。
【００５５】
以上のように、目標圧力の時間幅を正確に制御することができることから、目標圧力を複数段に分けて、それぞれの目標圧力に対して指令時間幅だけ圧力制御することもできる。図１７のＮＣプログラムは、目標圧力を２段階に分けて圧力を制御するときの例である。図１５のプログラムに対してシーケンス番号Ｎ３１、Ｎ３２のブロックを追加したＮＣプログラムの例である。
【００５６】
圧力制御に切り替わった後、シーケンス番号Ｎ３で、時間２５０ｍｓｅｃだけ指令（目標）圧力（Ｑ１０）に保持した後、シーケンス番号Ｎ３１のブロックの指令を実行し（ステップａ１〜ａ３、ａ１３、ａ１４）、次にシーケンス番号Ｎ３２のブロックの指令を実行する（ステップａ１〜ａ６、ａ３０〜ａ３３）。このシーケンス番号Ｎ３１、Ｎ３２のブロックの指令によって、時間２００ｍｓｅｃだけ指令（目標）圧力（Ｑ２０）に保持して、二段に分けて圧力をそれぞれに設定されている時間制御するものである。
【００５７】
なお、この実施形態のように、サーボ制御部での位置制御と圧力制御の切換え方式として、位置制御で求められる速度指令と圧力制御で求められる速度指令の小さい方を採用する方式を採用した場合等において、シーケンス番号Ｎ２のブロックでサーボ制御部が圧力制御に切換わったことにより、数値制御部が実行中のシーケンス番号Ｎ２のブロックの残移動量をキャンセルした場合、シーケンス番号３１のブロックにおいて増圧しようとして押し込んだ段階で、位置制御で求められる速度指令が圧力制御で求められる速度指令を下回り、サーボ制御部は位置制御に戻ってしまう場合がある。この場合、所望の圧力（Ｑ２０）は得られない。
【００５８】
このような場合、シーケンス番号Ｎ２のブロックでの移動指令位置を少し多く設定しておき、サーボ制御部が圧力制御に切換わったことにより、数値制御部が実行中のシーケンス番号Ｎ２のブロックの残移動量を一挙にサーボ制御部へ出力するモード（図１３のステップａ２７でＹｅｓとなるモード）を選択しておけばステップ２７、２８の処理が実行され、十分なサーボ位置偏差量が溜まり、結果、位置制御で求められる速度指令は大きくなるためシーケンス番号Ｎ３１のブロックにおいて増圧しようとして押し込んでも圧力制御のままとなり、所望の圧力（Ｑ２０）が得られる。
【００５９】
図１８は、図１７に示すＮＣプログラムを実行し、シーケンス番号Ｎ２のブロックでサーボ制御部が圧力制御に切換わったことにより、数値制御部が実行中のシーケンス番号Ｎ２のブロックの残移動量を一挙にサーボ制御部へ出力した場合の位置と時間、実圧力と時間の関係を表した図である。
【００６０】
この圧力制御を複数段に分けて制御する場合、指令圧力の増加、減少を一挙に変更することなく、徐々に変更するようにしてもよいものであり、この場合はコード「Ｇ１０１」を使用するもので、例えば、図１７において、シーケンス番号Ｎ３１の指令を「Ｇ１０１ Ｑ２０ Ｐ５」と指令することによって、５ｍｓｅｃかけて、指令圧力をＱ２０まで上昇させる指令となる。なお、この点は、次のダイクッション装置に本発明を適用したときの例で詳しく説明する。
【００６１】
次に、図５で示すプレス機械のダイクッション装置のダイクッション部材６を駆動するサーボモータＭｄの制御に本発明を適用したときの実施形態の例を説明する。すなわち、図５において、図５における数値制御装置５は図１０に示す数値制御装置が用いられるものである。  
また、このダイクッション制御としてのＮＣプログラムは図１９に示すようなものとなる。図７で示した従来のダイクッション制御のＮＣプログラムと相違する点はシーケンス番号Ｎ２のブロックの指令において、図７で示す従来例では、「Ｇ０１ Ｇ９１ Ｘ−１５０．Ｆ５００；」であった点が「Ｇ１０２ Ｇ９１ Ｘ−１５０．Ｆ５００；」と変更されている点である。
【００６２】
位置決めされた（例えば、位置３００のプレス開始位置に位置決めされている）ダイクッション部材６の上に板金（ワーク）３を載置した状態で、上型（プレス軸）１が下降しセンサ７で、該上型（プレス軸）１が板金（ワーク）３に当接する直前の所定位置に達したことが検出され、このセンサ７からの検出信号を数値制御装置５が受け取ると、数値制御装置５は、図１９で示したＮＣプログラムの実行開始する。数値制御部１０のプログラム解析処理部１２では、ＮＣプログラムより１ブロック毎読み取り実行データに変換しブロック処理部１３に格納する。位置、圧力指令分配・加減速処理部１４はブロック処理部１３から１ブロックのデータを読み取り、前述したように、プログラムエンドの指令か（「Ｍ３０」か）（ステップａ２）、圧力指令のＧ１００か（ステップａ３）、圧力変更指令Ｇ１０１か（ステップａ４）、実行途中でも次のブロック指令の処理に移行させる指令のＧ１０２か（ステップａ５）、圧力を保持する期間の指令のＧ０４か（ステップａ６）、その他の移動指令か（ステップａ７）判断するが、図１９のＮＣプログラムでは、最初にシーケンス番号Ｎ１の「Ｇ１００  Ｑ１０」の指令が読み込まれるので、ステップａ３からステップａ１３に移行し、サーボ制御部２０に出力する圧力指令Ｑoutを記憶するレジスタに当該ブロックで指令（Ｑ１０）された圧力「１０」をセット（Ｑout＝１０）し、該レジスタに記憶する圧力指令Ｑoutをサーボ制御部２０に出力し（ステップａ１３、ａ１４）、ステップａ１に戻る。このとき、サーボ制御部２０では、ダイクッション部材６を駆動するサーボモータＭｄは指令されている位置決め位置に保持されており、位置偏差は「０」または非常に小さい値であり、位置制御による速度指令Ａは「０」もしくは小さい値である。一方、圧力指令Ｑ（＝１０）が出力されが、上型（プレス軸）１は板金（ワーク）３、ダイクッション部材６，下型２に当接していないことから、圧力センサ４からフィードバックされる圧力は「０」または小さな値であることから圧力偏差は大きく、この圧力偏差にゲインをかけて得られる圧力制御による速度指令Ｂは大きな値となり、比較器２３は小さい速度指令の位置制御による速度指令Ａを選択し、該サーボ制御部２０は位置制御を実行している。
【００６３】
次に読み込まれるシーケンス番号Ｎ２のブロックの指令は「Ｇ１０２」の指令であることから、ステップａ５からステップａ２１に移行し、サーボ制御部２０から送られてくる圧力制御中か位置制御中かの信号に基づいて、圧力制御中か否か判断する。前述したように最初は位置制御中であることから、ステップａ２２に移行し、当該ブロックで指令された移動量ダイクッション軸であるＸ軸への移動量「−１５０」と速度Ｆ（＝５００）に基づいて分配周期毎の移動量を求め加減速処理して、出力移動量を求めこの出力移動量をサーボ制御部２０に出力し、さらに現在位置、残移動量を更新し、残移動量が「０」か判断する（ステップａ２６）の処理を実行する。このステップａ２１〜ステップａ２６の処理はステップａ８〜ステップａ１２の処理と同じである。
【００６４】
残移動量が「０」でなければステップａ２１に戻り、残移動量が「０」になるまで、ステップａ２１〜ステップａ２６の処理を分配周期毎実行する。この間、速度Ｆ＝５００で、負方向（下方向）に１５０だけ移動するよう分配周期毎の移動量が求められ、加減速処理されてサーボ制御部２０に出力される。サーボ制御部２０の比較器２３では、位置制御による速度指令Ａと圧力制御による速度指令Ｂを比較しており、最初は、前述したように、上型１は板金３に当接していないから、圧力センサ４からのフィードバック値は小さく圧力偏差は大きく速度指令Ｂも大きい。また、ダイクッション部材６を駆動するサーボモータＭｄは指令に追従して移動することにより、位置偏差が小さく位置制御による速度指令Ａは小さいことから、最初は位置制御が継続してなされる。
【００６５】
しかし、上型（プレス軸）１の下降速度は、シーケンス番号Ｎ２のブロックで指令されるクッション部材の下降速度Ｆ＝５００よりも速いことから、上型（プレス軸）１が板金（ワーク）３及びダイクッション部材６に追いつき、板金（ワーク）３、ダイクッション部材６及び下型２を押圧し、圧力センサからフィードバックされる検出圧力が増大し、圧力偏差は減少する。一方、ダイクッション部材６は、上型（プレス軸）１の下降速度で押し下げられることになるから、サーボモータＭｄの速度は、指令速度よりも速くなり、位置偏差が増大する。その結果、位置制御による速度指令（位置偏差にゲインをかけた値）Ａより、圧力制御による速度指令（圧力センサにゲインをかけた値）Ｂの方が小さくなり、サーボ制御部２０の比較器２３は、圧力制御の速度指令Ｂを採用し、圧力制御に切換えることになる。
【００６６】
この圧力制御に切換わったことを、数値制御部１０のプロセッサがステップａ２１で検出すると、ステップａ２７に移行し、残移動量を一挙に出力するよう設定されているか否か判断し、一挙に出力するように設定されていれば、この時点でレジスタに記憶されている残移動量を一挙にサーボ制御部２０に出力し、現在位置を記憶するレジスタにこの出力した残移動量を加算して現在位置の更新を行い（ステップａ２８）、レジスタに記憶する残移動量を「０」とする（ステップａ２９）。また、残移動量を一挙に出力するよう設定されてなければ、ステップａ２８の処理を行うことなく（残移動量を出力することなく）、残移動量を「０」にする（ステップａ２９）。ステップａ２６で残移動量が「０」になったと判別されたとき、及びステップａ２９で残移動量を「０」にセットした後、ステップａ１に戻り次のブロック（シーケンス番号Ｎ３のブロック）が読み出されるので、このブロックで指令された処理を実行することになる。すなわち、シーケンス番号Ｎ２のブロックの指令により、位置制御によりサーボモータＭｄを制御している途中において、圧力制御に切換わったことが検出されると、このブロックの移動指令による移動途中にも拘わらず、直ちに次のブロックの処理を開始させるものである。
【００６７】
このとき、現在位置を記憶するレジスタには、数値制御部１０からサーボ制御部２０に指令した位置が記憶されており、サーボ制御部２０のエラーカウンタ２１には、この数値制御部１０からサーボ制御部２０に指令した位置に対して実際の位置との差である位置偏差が記憶されることになる。
【００６８】
次のシーケンス番号Ｎ３のブロックの指令は、圧力指令値を変化させる「Ｇ１０１」の指令であり、ステップａ４からステップａ１６に移行し、まず、当該ブロックのコードＰで指令されている圧力上昇時間Ｔ（＝１５）を分配周期で割り、圧力上昇を完了させる分配周期数countを求めレジスタにセットし、該分配周期数countで、現在指令圧力Ｑout（＝１０）から当該ブロックで指令された圧力Ｑcom（＝１００）まで上昇させるための１分配周期あたりの圧力増加量ΔＱを求める（ステップａ１６）。
【００６９】
ΔＱ＝（Ｑcom−Ｑout）／count
次に、レジスタに記憶する現在の圧力指令Ｑoutに圧力増加量ΔＱを加算して新たな圧力指令Ｑoutを求めレジスタに記憶すると共に、レジスタに記憶する分配周期数countから１減じる（ステップａ１７）。そして、該レジスタに記憶する分配周期数countが負となっていないか判断し（ステップａ１８）、負となっていなければ、ステップａ１７で更新してレジスタに記憶する圧力指令Ｑoutをサーボ制御部２０に出力する（ステップａ１９）。サーボ制御部２０では、すでに圧力制御に切換わっているので、この新たに指令された圧力指令に基づいて圧力制御がなされる。以下、分配周期数countが負となるまでステップａ１７からステップａ１９の処理を分配周期毎実施し、分配周期数countが負となった時点では、サーボ制御部に出力される圧力指令値は、このシーケンス番号Ｎ３で指令された指令圧力「Ｑ１００」のＱout＝１００に達しており、分配周期数countが負になったことがステップａ１８で検出されると、ステップａ２０に移行して分配周期数countを記憶するレジスタを「０」にセットしてステップａ１に戻る。
【００７０】
なお、この圧力制御に切換わったとき実行されるシーケンス番号Ｎ３のブロック中に、周辺機器等を制御する指令をも共に入力しておくことによって、圧力制御に切換わった時点で、周辺機器等の制御をも行うことができるものである。
【００７１】
図２０は、この実施形態における指令圧力（破線）と圧力センサ４からフィードバックされる圧力フィードバック値（実線）で表した図である。この図２０に示すように、サーボ制御部２０が位置制御から圧力制御に切換わると、直ちに指令圧力が目標とする指令圧力への上昇が開始されことになり、指令された時間Ｐ（＝１５）に達した時点では、目標とする圧力Ｑ（＝１００）に指令圧力が達している。図９と比較して明らかのように、目標とする指令圧力に達するまでの時間が短縮されることになる。
【００７２】
次のシーケンス番号Ｎ４のブロックでの指令「Ｇ０１」は、通常の直線補間指令であるから、ステップａ７からステップａ８に移行して前述したステップａ８以下の処理が実行されることになるが、このブロックの指令は、上型（プレス軸）１の最下点に対応する最下点位置Ｘ（＝５）（絶対位置）まで、速度２４００００（最高速度）で移動せよとの指令であることから、指令位置Ｘ（＝５）から、レジスタに記憶するサーボ制御部２０への現時点までの指令位置である現在位置を減じて移動量を求め、この移動量と指令速度「Ｆ２４００００」に基づいて分配周期毎の移動量が求められ、分配周期毎、この移動指令が加減速処理して出力されることになる。そして、残移動量が「０」になると、ステップａ１に戻り、次のシーケンス番号Ｎ５のブロックの指令の補助機能Ｍ２００が実行され、この状態で、ＦＩＮ信号が返るまで待ちの状態となる。なお、この実施形態では、設定所定時間をかけて指令圧力を低圧力から目標とする高圧力に変更するようにしたが、一旦、低圧力による圧力制御に移行した後は、直ちに目標とする高圧力の圧力指令を出しても、圧力のオーバシュートを小さく抑えることができる場合もあるので、このような場合は、低圧力による圧力制御に移行した後は、直ちに目標とする高圧力の圧力指令を出すようにしてもよい。
【００７３】
その後、上型（プレス軸）１が最下点まで達し、ダイクッション部材６も最加点に達し、上型（プレス軸）１の上昇開始点近傍で、位置偏差が「０」または極めて小さな値となるので、位置制御に切換わり、サーボモータＭｄ（ダイクッション部材６）は指令された位置Ｘ＝５に保持され、停止状態となる。上型（プレス軸）１が最下点に達した後は該上型（プレス軸）１は上昇するが、サーボモータＭｄ（ダイクッション部材６）は上型（プレス軸）１より外力が付加されないから、位置偏差は「０」または極めて小さな値を保持し、位置制御の速度指令Ａの方が圧力制御の速度指令Ｂより小さいので、サーボモータＭｄ（ダイクッション部材６）は、この位置Ｘ＝５を保持するものである。
【００７４】
そして上型（プレス軸）１が上昇し、センサ７で上型（プレス軸）１の通過が検出されＦＩＮが返されてくると、次のシーケンス番号Ｎ６のブロックの指令が実行され、ステップａ８〜ステップａ１２の処理によって、プレス開始位置であるＸ３００の位置へ速度Ｆ５００で移動するよう分配処理がなされてサーボ制御部２０へ出力される。このとき、上型（プレス軸）１は上昇しており、板金３、下型２、ダイクッション部材６から離れていることから、サーボ制御部２０では、圧力偏差は大きく位置偏差は小さいので位置制御による速度指令Ａが採用され位置制御が実行されることになり、ダイクッション部材６は、初期のプレス開始位置Ｘ＝３００に位置決めされ保持されることになる。
【００７５】
初期のプレス開始位置Ｘ＝３００までの移動指令の出力が完了し残移動量が「０」となると、ステップａ１に戻り次のシーケンス番号Ｎ７のブロックの指令が読み出され、このブロックの指令は「Ｍ３０」でプログラム終了であることから、ステップａ２でこれを判別してこのＮＣプログラムの処理を終了する。
【００７６】
なお、上述した実施形態では、図１９のシーケンス番号Ｎ３のブロックの指令で目標圧力への指令を行った後、シーケンス番号Ｎ４のブロックの圧力制御から位置制御へ切換える位置までの移動指令を指令しているが、図２１に示すように、図１９におけるシーケンス番号Ｎ４の指令ブロックをなくし、シーケンス番号Ｎ２のブロックの指令を圧力制御から位置制御へ切換える位置までの移動指令（Ｘ＝５）とし、かつ、このブロック実行中で圧力制御に切換えるとき残移動量を一挙に出力するようにすればよい。このときの上型（プレス軸）１、ダイクッション指令位置、ダイクッション部材６の実際の位置との関係は図２２となる。
【００７７】
また、上型１とダイクション部材６との衝突時の圧力は、上型１とダイクッション部材６との相対速度に依存する部分が大きい。すなわち、相対速度が大きければ衝突時の圧力は高くなり、逆に相対速度が小さければ衝突時の圧力は低くなる。上型１の速度はオーバライドなどによって変更されるため、衝突時に得られる圧力のぶれを少なくするために相対速度を一定にしようとすると、上型１の速度に応じてダイクッションの速度を調整しなければいけなくなる。この場合、上型１の速度に応じてプログラム指令を変更するよりも、ダイクッション装置の構成を図２３のように、上型（プレス軸）１の位置、速度を検出する位置・速度検出器８を設け、該位置・速度検出器８からの上型１の速度情報を取り込むようにする。そして、図１９のシーケンス番号Ｎ２のブロックを以下のような指令にする。この方法では、上型１とダイクッション部材６を同期させたほうが速度に応じてプログラムを変更する必要もなく制御しやすいものとなる。
【００７８】
Ｎ２ Ｇ１１０ Ｇ９１ Ｘ−１５０．Ｆ２５０；  
このような同期動作をさせるプログラムを実行した場合、上型が所望圧力に見合う相対速度以上の速度が常に出るような装置であれば、最初から所望圧力に見合う相対速度を指令すればよいが、上型が所望圧力に見合う相対速度よりも遅い速度で動作して衝突することがありえる装置では、従来技術として説明したように、最初に低い圧力指令を行い、圧力制御に切換わってから圧力指令を上昇させて圧力を上げる制御を行うようにする。このような場合、上型１の速度に対応してダイクション部材６の指令移動距離が異なるので、指令移動距離としては上型１が最高速度で動作した場合に上型１とダイクッション部材６が衝突するための距離以上の値を指令しないといけない。この場合、上型１が低速で動作すると、ダイクッション部材６の移動開始から衝突するまでの移動距離が短くなり衝突後の残移動量が長くなるため、衝突後に同期して移動させるブロックの指令の実行が終了するまでに時間がかかる。これを解決する手段としては、サーボ制御部が圧力制御になったことで同期動作を終了して、次ブロックに移行すればよい。すなわち、この同期制御を行う処理は、図１１〜１４に示した数値制御部１０のプロセッサの処理が、図２４、図１２〜図１４に示す処理に変わるものである。すなわち、指令「Ｇ１１０」かの判断と該指令「Ｇ１１０」に対応する処理のステップａ１００〜ステップａ１０５の処理が加わるものとなる。
【００７９】
「Ｇ１１０」の指令が読み込まれると（ステップａ１００）、プロセッサは、まず位置・速度検出器８からの速度情報が該ブロックで指令された速度指令Ｆ（上記プログラム例ではＦ＝２５０）の方向と一致するか判断し（ステップａ１０１）、一致しなければ、指令する速度を「０」とする（ステップａ１０５）。一致しておれば、この位置・速度検出器８から取り込んだ外部速度情報をＦｍとし（ステップａ１０２）、該速度情報Ｆｍと当該ブロックで指令した速度（Ｆ＝２５０）と比較し、外部速度情報Ｆｍが当該ブロックで指令した速度Ｆより速いときには、速度指令をＦｍ−Ｆとして、上型１とダイクッション部材の相対速度を当該ブロックで指令した速度Ｆ（＝２５０）とし（ステップａ１０４）、ステップａ２１に移行する。また、当該ブロックで指令した速度Ｆが外部速度情報Ｆｍ以上のときには、速度指令を「０」としステップａ２１に移行する。これによって、上型１とダイクッション部材６の相対速度は、当該ブロックで指令した速度Ｆよりも小さい外部速度情報Ｆｍとなる。その結果、上型１とダイクッション部材６の相対速度は、当該ブロックで指令した速度より常に小さい速度となり、この状態で上型１とダイクッション部材６は衝突時に大きな圧力の発生はなくなる。
【００８０】
なお、上述した各実施形態において、位置制御から圧力制御に切換わるとき、残移動量をキャンセルするか一挙に出力するかの選択を、予めパラメータ等で設定ものとしたが、図１９、図２１に示したプログラム例において、シーケンス番号Ｎ２のブロックでの指令中に、例えば、残移動量をキャンセルさせるときには指令Ｐ０、残移動量を一挙に出力させるときには指令Ｐ１を設けるようにしてもよい。さらには、例えば、「Ｇ１０２」「Ｇ１０３」を設けて、残移動量をキャンセルするときは「Ｇ１０２」を、また、残移動量を一挙に出力させるときには「Ｇ１０３」を用いて、図１９、図２１のプログラムにおけるシーケンス番号Ｎ２のブロックの指令として、残移動量をキャンセルするか、一挙に出力するかを選択するようにしてもよいものである。
【００８１】
なお、上述した実施形態では、位置制御から圧力制御へ、また圧力制御から位置制御に自動的に切換える方法として、位置フィードバック制御による速度指令Ａと圧力フィードバック制御による速度指令Ｂを比較し、小さい速度指令の方の制御に切換えるようにしたが、特許文献３に記載されているように、位置フィードバック制御及び速度フィードバック制御によって求められたトルク指令と、圧力フィードバック制御によって求められトルク指令（トルク指令に対応するように圧力フィードバックゲインが調整されている）を比較器で比較し、小さい方のトルク指令の制御（位置、速度制御かまたは圧力制御か）に自動的に切換える場合にも本発明は適用できるものである。
【図面の簡単な説明】
【００８２】
【図１】ピンなどの部品をワークに圧入する装置の動作説明図である。
【図２】位置制御と圧力制御を切換て制御できる従来の数値制御装置の概要図である。
【図３】ピンなどの部品をワークに圧入する装置に用いる従来のＮＣプログラムの一例である。
【図４】図３に示すプログラムによる動作説明図である。
【図５】本発明の一実施形態の数値制御装置が用いられる例のプレス機械におけるダイクッション装置の概要図である。
【図６】従来のプレス機械におけるダイクッション装置において、上型がダイクッション部材に衝突するとき、ダイクッション部材を下方に逃がしたとき、発生する圧力の変化を示す図である。
【図７】上型がダイクッション部材に衝突したとき、圧力指令を低圧と目標とする高圧の２段に分けて制御したときのＮＣプログラムの例である。
【図８】図７に示したＮＣプログラムを実行したときの上型（プレス軸）、ダイクッション部材への位置指令、ダイクッション部材の実際の位置の関係を表す図である。
【図９】図７に示したＮＣプログラムを実行したときの圧力指令と実際の圧力を示す図である。
【図１０】本発明の数値制御装置の一実施形態の概要ブロック図である。
【図１１】同実施形態における位置制御と圧力制御の切換制御処理のアルゴリズムを示すフローチャートである。
【図１２】図１１に示したフローチャートの続きである。
【図１３】図１１に示したフローチャートの続きである。
【図１４】図１１に示したフローチャートの続きである。
【図１５】ピンなどの部品をワークに圧入する装置に本発明を適用したときの実施形態におけるＮＣプログラムの一例である。
【図１６】図１５に示すプログラムによる動作説明図である。
【図１７】ピンなどの部品をワークに圧入する装置に本発明を適用したときの実施形態における２段の圧力制御を行うときのＮＣプログラムの一例である。
【図１８】図１７に示すプログラムによる動作説明図である。
【図１９】本発明をプレス機械におけるダイクッション装置に適用したときの実施形態におけるＮＣプロクラムの例である。
【図２０】本発明をプレス機械におけるダイクッション装置に適用したときの実施形態における圧力指令と実際の圧力を示す図である。
【図２１】本発明の別の実施形態において実行されるＮＣプロクラムの例である。
【図２２】図２１に示したＮＣプログラムを実行したときの上型（プレス軸）、ダイクッション部材への位置指令、ダイクッション部材の実際の位置の関係を表す図である。
【図２３】本発明の数値制御装置が用いられる別の態様のプレス機械におけるダイクッション装置の概要図である。
【図２４】図２３に示した別の態様のプレス機械におけるダイクッション装置において、上型の速度と同期してダイクッション部材の速度を制御する本発明の別の実施形態における位置制御と圧力制御の切換制御処理のアルゴリズムを示すフローチャートの一部である。
【符号の説明】
【００８３】
Ａ  部品
Ｗ  ワーク
Ｂ  ボールネジ／ナット
１  上型（プレス軸）
２  下型
３  板金（ワーク）
Ｓ、４  圧力センサ
５  数値制御装置
６  ダイクッション部材
７  位置センサ
８  位置・速度検出器
１０  数値制御部
２０  サーボ制御部
【図１】
2008040886.tif 000003
【図２】
2008040886.tif 000004
【図３】
2008040886.tif 000005
【図４】
2008040886.tif 000006
【図５】
2008040886.tif 000007
【図６】
2008040886.tif 000008
【図７】
2008040886.tif 000009
【図８】
2008040886.tif 000010
【図９】
2008040886.tif 000011
【図１０】
2008040886.tif 000012
【図１１】
2008040886.tif 000013
【図１２】
2008040886.tif 000014
【図１３】
2008040886.tif 000015
【図１４】
2008040886.tif 000016
【図１５】
2008040886.tif 000017
【図１６】
2008040886.tif 000018
【図１７】
2008040886.tif 000019
【図１８】
2008040886.tif 000020
【図１９】
2008040886.tif 000021
【図２０】
2008040886.tif 000022
【図２１】
2008040886.tif 000023
【図２２】
2008040886.tif 000024
【図２３】
2008040886.tif 000025
【図２４】
2008040886.tif 000026