(57)【特許請求の範囲】
【請求項１】
１ブロック内での加減速開始位置と、該加減速開始位置で開始される加減速制御の時定数と、その加減速による目標速度とが複数含まれている指令プログラムを格納するプログラム格納手段と、
産業機械を駆動制御するサーボモータの現在位置を認識する現在位置認識手段と、
前記サーボモータの現在速度を認識する現在速度認識手段と、
前記サーボモータの現在位置及び現在速度を参照して、前記指令プログラムに基づく加減速制御を実行する加減速制御手段と、
からなる、CNCの加減速制御装置。
【請求項２】
前記の産業機械はベルトコンベアである、請求の範囲第１項記載のCNCの加減速制御装置。
【請求項３】
前記産業機械の動作の開始に伴って加速されるときの時定数と、その時定数でもって加速されたあとの指令プログラムに指令された第１の加減速点までの速度とは、CNCに予め設定されている、請求の範囲第１項記載のCNCの加減速制御装置。
【請求項４】
移動目標位置、２以上の加減速開始位置、及び各加減速開始位置で開始される加減速制御の時定数とその加減速制御での目標速度を１ブロックに含む指令プログラムにしたがってサーボモータを制御して、前記サーボモータの現在位置が前記指令プログラムに指定された１つの加減速開始位置にきたことを検出したら、その加減速開始位置に対応する加減速時定数でもって加減速制御し、
加減速制御をしている前記サーボモータの現在速度が、前記加減速開始位置に対応する目標速度に達したことを検出したら、前記加減速開始位置で開始された加減速制御を終了するようにした、
CNCの加減速制御方法。
【請求項５】
前記加減速制御は、所定時間ごとに現在速度に等しい速度変化分を増加してゆくかまたは減少してゆく、請求の範囲第４項記載のCNCの加減速制御方法。
【発明の詳細な説明】
技術分野
本発明は、ベルトコンベア等の移動制御など、CNCによって産業機械の動作速度の加減速を制御するためのCNCの加減速制御装置及びその方法に関する。
背景技術
従来、CNC（数値制御装置）によってベルトコンベア等の産業機械を制御する場合には、目標位置と移動速度とが指令された指令プログラムに基づいて、サーボモータの制御を実行する。ただし、サーボモータの動作中は、必ずしも一定速度ではなく、必要に応じて加減速を行う。このため、従来は、加減速地点に設けられた接点や、オペレータのボタン操作等によって加減速のタイミング指令を行い、この指令をうけたCNCは、予めパラメータ設定された移動速度まで加減速を行うようにしていた。
しかし、従来の方式では、接点やボタン等の外部からの信号を受けてから加減速制御を制御するため、制御開始に遅れが生じるという問題点があった。また、ハードウェアの設定が必要なため、その手間がかかり、汎用性もなかった。
発明の開示
本発明の目的は、制御性および応答性に優れ、かつセッティングが簡単なCNCの加減速制御方式を提供することにある。
上記目的を達成するため、ベルトコンベアなどの産業機械を駆動するサーボモータを駆動制御するための指令プログラムには１ブロック内での２以上の加減速開始位置、及び各加減速開始位置で開始される加減速の時定数とその加減速による目標速度が書き込まれる。この指令プログラムにしたがってサーボモータを制御して、サーボモータの現在位置が前記指令プログラムに指定された１つの加減速開始位置にきたことを検出したら、その加減速開始位置に対応する加減速時定数でもって加減速制御を開始する。やがてサーボモータの現在速度が前記加減速開始位置に対応する目標速度に達したら、この加減速開始位置で開始された加減速制御を終了する。
以上のように、本発明では指令プログラム内で加減速の開始位置及び加減速の程度を指令することができるようにしたので、予めパラメータや接点などの設定を行うことなく、１ブロック内での加減速を実行することができる。よって、作業効率の向上につながる。また、加減速の開始時点、時定数、目標速度などの変更は指令プログラムの書き換えによって簡単にできる。
【図面の簡単な説明】
図１は本発明による加減速制御装置の機能をブロック図で表したものであり、
図２は本発明による加減速制御装置において用いられるCNCのハードウェアの概略をブロック図で示したものであり、
図３は本発明による加減速制御装置に供される指令プログラムの例を示す図であり、
図４は本発明による実行される加減速制御の例を時間−速度のグラフで示したものであり、そして、
図５は本発明による加減速制御を実行するためのプログラム側の処理を示すフローチャートである。
発明を実施するための最良の形態
まず、本発明による加減速制御の概要を図１のブロック図を用いて説明する。
プログラム格納手段１には、産業機械としてのベルトコンベア２でワーク３を搬送するための指令プログラム1aが格納されている。ベルトコンベア２は、サーボモータ４によって駆動される。現在位置確認手段５は、サーボモータ４の現在位置を確認し、現在速度確認手段６は、サーボモータ４の現在速度を認識する。加減速制御手段７は、サーボモータ４の現在位置および現在速度を参照して、指令プログラム1aで指令された１ブロック内での加減速点と、その各加減速点での時定数（ある速度から次の目標速度までに移行するに要する時間）に基づいて加減速制御を実行する。
次に、加減速制御を実行するCNCのハードウェアの構成の概略を、図２のブロック図により説明する。
CNC10のプロセッサ11は、ROM12に格納されたシステムプログラムに従ってCNC全体を制御する。このROM12には、EPROMあるいはEEPROMが使用される。RAM13には、SRAM等が使用され、一時的な計算データ、表示データ、入出力信号の状態等が格納される。不揮発性メモリ14には、図示されていないバッテリによってバックアップされたCMOSが使用され、電源切断後も保持すべきパラメータ、指令プログラム等が記憶される。
手動入力手段付き画面表示装置（CRT/MDI）20は、CNCの前面あるいは機械操作盤と同じ位置に配置され、データおよび図形の表示、データ入力、CNCの運転に使用される。グラフィック制御回路21は、数値データおよび図形データ等のディジタル信号を表示用のラスタ信号に変換し、表示装置22に送り、表示装置22はこれらの数値および図形を表示する。表示装置22には、CRTあるいは液晶表示装置が使用される。キーボード23は、数値キー、シンボリックキー、文字キーおよび機能キーから構成され、指示プログラムの作成、編集およびCNCの運転に使用される。ソフトウェアキー24は、表示装置22の下部に設けられ、その機能は表示装置に表示される。表示装置の画面が変化すれば、表示される機能に対応して、ソフトウェアキーの機能も変化する。
軸制御回路15は、プロセッサ11からの軸の移動指令を受けて、軸の移動指令をサーボアンプ16に出力する。サーボアンプ16はこの移動指令を増幅し、産業機械30に結合されたサーボモータを駆動する。なお、軸制御回路15およびサーボアンプ16は、サーボモータの軸数に対応した数だけ設けられる。
PMC（プログラマブル・マシン・コントローラ）18は、プロセッサ11からバス19経由でＭ（補助）機能信号等を受け取る。そして、これらの信号をシーケンス・プログラムで処理して、出力信号を出力し、産業機械30内の空圧機器、油圧機器、電磁アクチュエイタ等を制御する。また、産業機械30内の機械操作盤のボタン信号、スイッチ信号およびリミットスイッチ等の信号を受けて、シーケンス処理を行い、バス19を経由してプロセッサ11に必要な入力信号を転送する。
次に加減速制御の具体的な処理について説明する。
加減速制御で用いる指令プログラムの一例を図３に示す。この指令プログラムにおいて、コードG200は、加減速制御の実行モードを指令するコードである。Ｘは目標位置である。コードP1、P2、‥‥、Pnは、サーボモータの加減速を開始する座標位置を指令するコードである。コードQ1、Q2、‥‥、Qnは、各座標位置での加減速を行うための時定数を指令するコードである。コードR1、R2、‥‥、Rnは、各座標位置でのサーボモータの加減速後の目標速度を指令するコードである。コードG201は、加減速制御の実行モードの終了を指令するコードである。
加減速制御による速度変化の一例を、横軸を時間ｔ、縦軸をサーボモータの速度Ｆとした図４のグラフを使用して説明する。この図４の速度変化は以下のとおりである。動作開始ときにはこの指令プログラムで予め設定された時定数Q0で加速を行い、サーボモータの現在速度が予め設定された速度F0に到達するとこの加速を終了して、以後サーボモータを定速度F0で駆動する。これら時定数Q0及び速度F0は初期設定値である。
サーボモータを初期設定速度F0で動作して加減速制御実行コードG200で指令された第１の指令位置P1にくると、その位置P1から時定数Q1で加速し、そして現在速度がR1に到達するとこの加速を終了して、以後サーボモータを定速度R1で駆動する。こうして、第２の指令位置P2にくると、その位置P2から時定数Q2で減速し、そして現在速度がR2に到達するとこの減速を終了して、以後サーボモータを定速度R2で駆動する。以後同様にして、第４の指令位置P4にくると、その位置P4から時定数Q4で減速し、そして現在速度がR4に到達するとこの減速を終了して、以後サーボモータを定速度R4で駆動する。
それから、初期設定時定数Q0で減速すれば目標位置Ｘに停止することのできる位置から、時定数Q0で減速して目標位置Ｘで停止する。
図４のような加減速制御を実行させるためには、図３に示したような指令プログラムに書き込むデータは、X;P1、Q1、R1;P2、Q2、R2;P3、Q3、R3;P4、Q4、R4である。
なお、加減速制御において、サーボモータの現在位置や現在速度は、指令値に基づいて内部的に認識される。あるいは、パルスコーダ等からフィードバックされる位置フィードバック信号に基づいて認識できるようにしてもよい。
つぎに、図４に示すような加減速制御を、CNCのプロセッサ11が図３に示したような指令プログラムにしたがって実行する処理手順を、図５のフローチャートによって説明する。プロセッサ11は図５のフローチャートに沿った処理を１分配周期ごと実行する。
プロセッサ11は、移動指令の分配処理を行なうための実行データを作成する前処理の段階で、指令プログラムのG200を読むと、次のG201を読みむまで、すべての指令値を読み込み、それらをメモリの所定領域に格納する。すなわち、目標位置Ｘの値を目標位置レジスタＲ（ｘ）に格納し、Ｐ（P1、P2、‥‥Pn）、Ｑ（Q1、Q2、‥‥Qn）、Ｒ（R1、R2、‥‥Rn）の値をそれぞれメモリＲ（ｐ）、Ｒ（ｑ）、Ｒ（ｒ）の所定の領域に記憶する。さらに、フラグＡをセット（＝１）し、フラグＢをリセット（＝０）し、加減速制御モード開始からの移動量Ｌを記憶するレジスタの値をリセット（＝０）しておく。なお、この前処理によって時定数Ｑは分配周期の数に変換されて記憶され、目標速度Ｒは１分配周期における移動量に変換されて記憶される。
分配周期の処理では通常の処理が行われた後本処理が開始される。プロセッサ11はまずフラグＡがセットされているかどうかを判断する（ステップS1）。フラグＡがセットされてなければ、本処理は加減速制御の処理ではないとして、本処理を終了する。一方、フラグＡがセットされていれば、加減速制御の処理を開始すべく、まず、レジスタに記憶する現在の速度指令値Fcと予め設定されている時定数Q0から減速距離Ｄ（Ｄ＝Q0×Fc/2）を算出する（ステップS2）。そして、目標位置レジスタＲ（ｘ）に格納されている値（Ｘ）からレジスタに格納されている加減速制御モード開始から現在までの移動量Ｌを引いた残移動量が減速距離Ｄよりも大きいかどうかを判断する（ステップS3）。すなわち、現在の移動量Ｌが、目標位置Ｘに向かって時定数Q0の減速を開始すべき位置にきているかどうかを判断する（ステップS3）。
最初の周期では、目標位置Ｘに向かって時定数Q0で減速開始する位置（P4）にまで達してないので、ステップS3の判断は「YES」となる。次に、現在移動量Ｌが指令プログラムにしたがって最初の加減速制御を行う位置P1を越えているかどうか判断する（ステップS4）。最初の周期ではまだ越えていないのでステップS4の判断は「YES」となり、次に、現在速度指令値Fcが予め設定されている初期速度F0に到達しているかどうか判断する（ステップS18）。
最初の周期を含め、設定速度F0をめざして加速している周期おいてはステップS18の判断は「NO」となる。次にフラグＢが１にセットされているかどうかを判断する（ステップS19）。最初の周期ではフラグＢがリセット（＝０）された状態で開始されるので、ステップS19の判断は「NO」となり、その結果、目標速度（＝設定速度F0）から現在速度指令値Fc（図４の場合は０）を引いた値を設定時定数Q0で割って、分配周期における移動量の増分（速度増分）ΔＦを求める（ステップS20）。そして、フラグＢをセットし（ステップS21）、速度指令値Fcを記憶するレジスタに増分ΔＦを加算する（ステップS12）。すなわち、この周期では速度指令値（当該分配周期における移動指令量）Fcは０＋ΔＦ＝ΔＦとなる。そして、移動量Ｌを記憶するレジスタの値を今回の速度（当該分配周期における移動指令量）Fc分だけ増加し（ステップS13）、その更新された移動量Ｌが目標位置レジスタＲ（ｘ）に格納してある値を越えないことを確認（ステップS14）してから、現在速度指令値Fc（今回分配周期における移動指令量）をサーボモータを駆動制御する軸制御回路に移動指令して出力して（ステップS17）第１回目の処理を終了する。
次の（第２回の）周期で、まだ、現在速度指令値Fcが設定速度F0に到達していなければ、処理はステップS1−S4、S18と進む。そして、ステップS19でフラグＢがセットされていることを確認する。これは第１回目の周期においてステップS21ですでにフラグＢがセットされているから、現在の速度をΔＦだけ増加し（ステップS12）、以下同様にステップS13、S14、S17と進んで今回周期の処理を終了する。
第３回目以降の処理周期を次々続けて、その都度速度指令をΔＦづつ増加させてついに現在速度指令値Fcが設定速度F0に到達すると（Fc＝F0）、ステップS1−S4の後のステップS18で「YES」の判断がされる。すると、フラグＢをリセットし（ステップS22）、移動量Ｌを記憶するレジスタの値を今回の速度指令値Fc分だけ増加し（ステップS13）、その更新された移動量Ｌが目標位置レジスタＲ（ｘ）に格納してある値を越えないことを確認（ステップS14）してから、現在速度指令値Fcをサーボモータを駆動制御する軸制御回路に移動指令として出力して（ステップS17）今回の処理を終了する。
現在速度指令値Fcを設定速度F0に保持しつつ、指令プログラムで指令された最初の減速開始点P1に到達したら、Ｌ＜P1は成立しなくなって、ステップS1−S3の後のステップS4で「NO」の判断がされる。すると、指標ｉを１にして（ステップS4）、移動量Ｌがまだ次の減速開始点Pi＋１（＝P2）に到達してないことを確認し（ステップS5:Y）、さらに、現在速度指令値Fcが減速後の指令速度がメモリＲに記憶されている指令速度R1（ｉ＝１）にまだ到達してないことを確認し（ステップS8:N）てから、フラグＢがセット（＝１）されているかどうか判断する（ステップS9）。ところで、前の加減速処理が終了し定速になった時点ではすでに過去の処理周期におけるステップS22でリセット（＝０）されているので、ステップS9の判断は「NO」となる。
そこで、メモリＲ（ｒ）に格納されている指令速度Ri（＝R1）から現在速度指令値Fc（＝F0）を引いた値をレジスタＱに格納されている指令時定数Qi（＝Q1）で割って、分配周期ごとの速度指令の増分（移動指令の増分）ΔＦを求める（ステップS10）。それから、フラグＢをセットし（ステップS11）、現在速度指令値Fcを記憶するレジスタにその速度増分ΔＦを足し（ステップS12）、移動量Ｌを記憶するレジスタの値を今回の速度指令値Fc分だけ増加し（ステップS13）、その更新された移動量Ｌが目標位置レジスタＲ（ｘ）に格納してある値を越えないことを確認（ステップS14）してから、現在速度指令値Fcをサーボモータを駆動制御する軸制御回路に移動指令として出力して（ステップS17）今回の処理を終了する。
移動量Ｌが点P1をすぎて時定数Q1での加速過程にあるとき（ΔＦ＞０）は、ステップS1−S5、及びステップS8の後のステップS9の処理で「YES」の判断がされる。これはすでに過去の周期におけるステップS11でフラグＢがセットされているからである。その結果、現在速度指令値Fcに速度増分ΔＦ（過去の周期におけるステップS10で求めてある）を足し（ステップS12）、
移動量Ｌを記憶するレジスタの値を今回の速度指令値Fc分だけ増加し（ステップS13）、その更新された移動量Ｌが目標位置レジスタＲ（ｘ）に格納してある値を越えないことを確認（ステップS14）してから、現在速度指令値Fcをサーボモータを駆動制御する軸制御回路に移動指令として出力して（ステップS17）今回の処理を終了する。
時定数Q1での加速処理を続けて、その結果、現在速度指令値FcがメモリＲ（ｒ）に格納されている指令値Ri（＝R1）になると（Fc＝R1）、ステップS1−S5の後のステップS8の処理で「YES」の判断がされる。そこで、フラグＢをリセットし（ステップS22）、移動量Ｌを記憶するレジスタの値を今回の速度指令値Fc分だけ増加し（ステップS13）、その更新された移動量Ｌが目標位置レジスタＲ（ｘ）に格納してある値を越えないことを確認（ステップS14）してから、現在速度指令値Fcをサーボモータを駆動制御する軸制御回路に移動指令として出力して（ステップS17）今回の処理を終了する。
こうして、各周期ごとにステップS1−S5、S8、S22、S13、S14、S17の処理を続ける。そして、ステップS14での移動量Ｌを記憶するレジスタの値が点P2の位置（次の減速開始位置）を越え始めると、もはやＬ≦P2が成立しなくなるので、つぎの周期ではステップS1−S4を終わったあとのステップS5で「NO」の判断がされる。そこで、現在１である指標ｉをさらに１増加して（ステップS6）ｉ＝２とし、それが指標の最大数ｎ（図４の場合はｎ＝４）に到達してないこと確認して（ステップS7:N）、ステップS5にもどって移動量Ｌが点P3（ｉ＋１＝３）に到達しているかどうか判断する。移動量Ｌが点P2を越えてもまだ点P3に到達してないときは、Ｌ≦P3が成立するのでステップS5の判断は「YES」となる。
移動量Ｌが点P2にあって、指令の時定数Q2での減速を開始するときの周期では、ステップS8からステップS9−S14、S17の処理を行って終了する。一方、減速途中の周期ではステップS8からステップS9、S12−S14、S17の処理を行って終了し、また、指令速度R2に到達しているときの周期ではステップS8からステップS22、S13、S14、S17の処理を行って終了する。
ある周期で、ステップS13で移動量Ｌを記憶するレジスタの値がP3を越えると、次の周期ではステップS1−S4のあとのステップS5でＬ≦P2ではない（Ｎ）と判断し、そこで、指標ｉを１増加して２（ｉ＝２）にして（ステップS7）、その値が最大値ｎ（Ｐ点の数、図４の例で４）に到達していないことを確認して（ステップS7:N）ステップS5に戻り、今度はＬ≦P3かどうか判断する（ステップS5）。しかし、移動量Ｌは点P3を越えているので、このステップS5の判断はまたＮとなるので、指標ｉをさらに１増加して３（ｉ＝３）にして（ステップS7）、その値が最大値ｎに到達していないことを確認して（ステップS7:N）、ステップS5に戻り、今度はＬ≦P4かどうか判断する。移動量Ｌは点P3を越えているがまだ点P4には到達していないので、ステップS5の判断は「YES」となり（そのときの指標ｉの値は３）、時定数Q3、目標速度R3を用いて前述した以下ステップS8以降の処理が行われる。
ステップS1−S5のあとのステップS6で指標ｉの値が最大値ｎになると、指標ｉはｎとして（ｉ＝ｎ）として時定数Qn（＝Q4）、目標速度Rn（＝R4）を用いて以下ステップS8以降の処理をする。
こうして、ステップS14で更新した移動量Ｌを記憶するレジスタの値が、目標位置レジスタＲ（ｘ）に格納しておいた値から目標位置までの減速距離Ｄを引いた値を越えると、Ｒ（ｘ）−Ｌ≧Ｄが成立しなくなり、その次の周期ではステップS1、S2につづくステップS3で「NO」と判断される。それから、フラグＢがセットされているかどうか判断する（ステップS23）。フラグＢは過去の周期におけるステップS8につづくステップS22においてリセット（＝０）されているから、初めてステップS3からステップS23に移ったときは、このステップS23で「NO」と判断される。その結果、現在速度指令値Fc（図４ではR4）にマイナス１をかけたものを設定時定数Q0で割って、１分配周期ごとの速度増分ΔＦ（マイナスの値）を求める（ステップS24）。それから、フラグＢをセット（＝１）して（ステップS25）、現在速度指令値Fcに速度増分ΔＦを加えて減速処理をし（ステップS12）、以下、ステップS13、S14、S17の処理をして今回周期の処理を終える。
以後の、目標位置にむけて設定時定数Q0で減速過程にあるときの処理周期では、ステップS1、S2のあとのステップS23の判断が「YES」となる。これはすでにステップS25でフラグＢがセットされているためである。その結果、現在速度に速度増分ΔＦを加えて減速処理し、以下、ステップS13、S14、S17の処理をして今回周期の処理を終える。
こうしてステップS1−S3、S23、S12と進み、次のステップS13で移動量Ｌを記憶するレジスタの値を今回の速度指令値Fc分だけ増加したとき、その更新された移動量Ｌが目標位置レジスタＲ（ｘ）に格納してある値に到達するかその値を越えるかすると、ステップS14での判断結果は「YES」となる。そうすると、この、更新された移動量Ｌが目標位置レジスタＲ（ｘ）に格納された値を越えた分（Ｌ−Ｒ（ｘ））を、先のステップS12で計算された現在速度指令値Fcから差し引いて（すなわち、Fc−（Ｌ−Ｒ（ｘ）の計算をして）現在速度指令値Fcを修正し、フラグＡ及びＢをリセットし（＝０）、移動量Ｌを記憶するレジスタＬの値をゼロにしてから、その修正された現在速度指令値Fcを出力して最後の周期の処理を終える。
以上説明したように、本発明ではサーボモータの現在位置及び現在速度を参照して、指令プログラムで指令された１ブロック内での加減速点と、その各加減速点での時定数及び加減速速度に基づいて、加減速を実行するようにしたので、予めパラメータや接点などの設定を行うことなく、１ブロック内での加減速を実行することができる。よって、制御性および応答性に優れ、かつセッティングが簡単なため、作業効率が向上する。また、加減速のタイミングも指令プログラムも書き換えることができるので、汎用性も向上する。
【図１】
0003647043.tif 000002
【図２】
0003647043.tif 000003
【図３】
0003647043.tif 000004
【図４】
0003647043.tif 000005
【図５】
0003647043.tif 000006