(57)【要約】【課題】  所定経路上を可動体を往復動させるような機械装置において、簡単でしかも操作者に負担を掛けずに運転プログラムのミスなどにより可動体が可動端に衝突するのを防ぐことができるようにする。【解決手段】  可動体を移動させるモータ１２と、位置検出器１３と、ドライバ１４と、ドライバ１４に駆動指令を送るコントローラ１５と、入出力装置１８からなる機械装置のコントローラ１５において、ドライバ１４に位置決め指令を送り、可動体が可動端に到達した時の可動端パルスカウント値と、原点パルス検出時のパルスカウント値を取得し、機械原点と可動端パルスカウント値から前記可動体の可動範囲を演算し、可動範囲情報として不揮発性メモリ２２に保存する可動範囲設定動作を行う可動範囲設定部２６を備える。【選択図】  図１
2008083758.tif 000002
【特許請求の範囲】
【請求項１】
所定経路上を往復動する可動体と、
前記可動体を移動させるモータと、
前記モータに取り付けられ、経路上の所定位置で原点パルスを発生する位置検出器と、
前記モータを駆動するドライバと、
前記ドライバに駆動指令を送るコントローラと、
該コントローラと通信を行い、ステータスの取得や機能実行指示などを行う入出力装置からなる機械装置のコントローラにおいて、
前記ドライバに位置決め指令を送り、前記可動体が所定経路の両側の可動端に到達した時の可動端パルスカウント値と、原点パルス検出時のパルスカウント値を取得し、該原点パルス検出時のパルスカウント値に原点のオフセット量を加算して求めた機械原点と前記可動端パルスカウント値から前記可動体の可動範囲を演算し、該可動範囲、前記オフセット量を可動範囲情報として不揮発性メモリに保存する可動範囲設定動作を行う可動範囲設定部を備えることを特徴とする機械装置のコントローラ。
【請求項２】
モーションプログラムを格納するプログラム格納部と、
該プログラム格納部から１行づつプログラムを読み出し実行するプログラム実行部を更に備え、
該プログラム実行部が、前記可動体の位置決め指令時に、前記不揮発性メモリに保存された可動範囲情報に基づいて、前記可動体が可動範囲を越えるか否かを判定し、可動範囲を超えない場合のみ位置決め指令を実行することを特徴とする請求項１記載の機械装置のコントローラ。
【請求項３】
前記プログラム実行部は、前記原点のオフセット量を変更した場合、前記不揮発性メモリに記憶された可動範囲情報と前記オフセット量から、可動範囲を再演算し、該再演算した可動範囲に基づいて、前記可動体が可動範囲を超えるか否かを判定することを特徴とする請求項１記載の機械装置のコントローラ。
【請求項４】
前記可動範囲設定動作は、1度も前記可動範囲設定動作が行われていない場合の原点復帰指令で実行することを特徴とする請求項１記載の機械装置のコントローラ。
【請求項５】
所定経路上を往復動する可動体と、
前記可動体を移動させるモータと、
前記モータに取り付けられ、経路上の所定位置で原点パルスを発生する位置検出器と、
前記モータを駆動するドライバと、
前記ドライバに駆動指令を送るコントローラと、
該コントローラと通信を行い、ステータスの取得や機能実行指示などを行う入出力装置からなる機械装置の可動範囲判定方法において、
前記ドライバに位置決め指令を送り、前記可動体が所定経路の両側の可動端に到達した時の可動端パルスカウント値と、原点パルス検出時のパルスカウント値を取得し、該原点パルス検出時のパルスカウント値に原点のオフセット量を加算して求めた機械原点と前記可動端パルスカウント値から前記可動体の可動範囲を演算し、該可動範囲、前記オフセット量を可動範囲情報として不揮発性メモリに保存する可動範囲設定動作を行うことを特徴とする機械装置の可動範囲判定方法。
【請求項６】
前記可動体の位置決め指令時に、前記不揮発性メモリに保存された可動範囲情報に基づいて、前記可動体が可動範囲を越えるか否かを判定し、可動範囲を超えない場合のみ位置決め指令を実行することを特徴とする請求項５記載の機械装置の可動範囲判定方法。
【請求項７】
前記原点のオフセット量を変更した場合、前記不揮発性メモリに記憶された可動範囲情報と前記オフセット量から、可動範囲を再演算し、該再演算した可動範囲に基づいて、前記可動体が可動範囲を超えるか否かを判定することを特徴とする請求項５記載の機械装置の可動範囲判定方法。
【請求項８】
前記可動範囲設定動作は、1度も前記可動範囲設定動作が行われていない場合の原点復帰指令で実行することを特徴とする請求項５記載の機械装置の可動範囲判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定経路上を往復動する可動体の可動範囲を判定しながら位置決めを行う、機械装置のコントローラおよび可動範囲判定方法に関する。
【背景技術】
【０００２】
従来より、所定経路上で可動体を往復動させるような機械装置において、運転プログラムのミスなどにより可動体が可動範囲を越えて移動するのを防ぐため、センサやリミットスイッチによる機械的な位置検出方法や、予め可動範囲をストアドストロークリミット方式としてストロークエンド位置をメモリに格納しておき、運転時に前記格納データとエンコーダからの現在位置情報とを比較するソフト的な位置検出方法が用いられている（たとえば、特許文献１参照）。
【特許文献１】特開昭５９−１６００８号公報（第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の各種センサやリミットスイッチを使用する方法は、配線や制御入力の増加による装置の複雑化や、取り付けスペースの必要性、またコストアップにもなるという問題があった。
また、ストアドストロークリミット方式では、原点位置を調整した場合等、再設定が必要であり手間がかかるという問題があった。
本発明はこのような問題点に鑑みてなされたものであり、所定経路上を可動体を往復動させるような機械装置において、簡単で低コストでしかも操作者に負担を掛けずに運転プログラムのミスなどにより可動体が可動端に衝突するのを防ぐことができる機械装置のコントローラおよび可動範囲判定方法を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記問題を解決するため、本発明は、次のように構成したのである。
請求項１に記載の発明は、所定経路上を往復動する可動体と、前記可動体を移動させるモータと、前記モータに取り付けられ、経路上の所定位置で原点パルスを発生する位置検出器と、前記モータを駆動するドライバと、前記ドライバに駆動指令を送るコントローラと、該コントローラと通信を行い、ステータスの取得や機能実行指示などを行う入出力装置からなる機械装置のコントローラにおいて、前記ドライバに位置決め指令を送り、前記可動体が所定経路の両側の可動端に到達した時の可動端パルスカウント値と、原点パルス検出時のパルスカウント値を取得し、該原点パルス検出時のパルスカウント値に原点のオフセット量を加算して求めた機械原点と前記可動端パルスカウント値から前記可動体の可動範囲を演算し、該可動範囲、前記オフセット量を可動範囲情報として不揮発性メモリに保存する可動範囲設定動作を行う可動範囲設定部を備えることを特徴とするものである。
また、請求項２に記載の発明は、請求項１記載の機械装置のコントローラにおいて、モーションプログラムを格納するプログラム格納部と、該プログラム格納部から１行づつプログラムを読み出し実行するプログラム実行部を更に備え、該プログラム実行部が、前記可動体の位置決め指令時に、前記不揮発性メモリに保存された可動範囲情報に基づいて、前記可動体が可動範囲を越えるか否かを判定し、可動範囲を超えない場合のみ位置決め指令を実行することを特徴とするものである。
また、請求項３に記載の発明は、請求項１記載の機械装置のコントローラにおいて、前記プログラム実行部は、前記原点のオフセット量を変更した場合、前記不揮発性メモリに記憶された可動範囲情報と前記オフセット量から、可動範囲を再演算し、該再演算した可動範囲に基づいて、前記可動体が可動範囲を超えるか否かを判定することを特徴とするものである。
また、請求項４に記載の発明は、請求項１記載の機械装置のコントローラにおいて、前記可動範囲設定動作は、1度も前記可動範囲設定動作が行われていない場合の原点復帰指令で実行することを特徴とするものである。
【０００５】
また、請求項５に記載の発明は、所定経路上を往復動する可動体と、前記可動体を移動させるモータと、前記モータに取り付けられ、経路上の所定位置で原点パルスを発生する位置検出器と、前記モータを駆動するドライバと、前記ドライバに駆動指令を送るコントローラと、該コントローラと通信を行い、ステータスの取得や機能実行指示などを行う入出力装置からなる機械装置の可動範囲判定方法において、前記ドライバに位置決め指令を送り、前記可動体が所定経路の両側の可動端に到達した時の可動端パルスカウント値と、原点パルス検出時のパルスカウント値を取得し、該原点パルス検出時のパルスカウント値に原点のオフセット量を加算して求めた機械原点と前記可動端パルスカウント値から前記可動体の可動範囲を演算し、該可動範囲、前記オフセット量を可動範囲情報として不揮発性メモリに保存する可動範囲設定動作を行うことを特徴とするものである。
また、請求項６に記載の発明は、請求項５記載の機械装置の可動範囲判定方法において、前記可動体の位置決め指令時に、前記不揮発性メモリに保存された可動範囲情報に基づいて、前記可動体が可動範囲を越えるか否かを判定し、可動範囲を超えない場合のみ位置決め指令を実行することを特徴とするものである。
また、請求項７に記載の発明は、請求項５記載の機械装置の可動範囲判定方法において、前記原点のオフセット量を変更した場合、前記不揮発性メモリに記憶された可動範囲情報と前記オフセット量から、可動範囲を再演算し、該再演算した可動範囲に基づいて、前記可動体が可動範囲を超えるか否かを判定することを特徴とするものである。
また、請求項８に記載の発明は、請求項５記載の機械装置の可動範囲判定方法において、前記可動範囲設定動作は、1度も前記可動範囲設定動作が行われていない場合の原点復帰指令で実行することを特徴とするものである。
【発明の効果】
【０００６】
請求項１、２、５、６に記載の発明によると、可動体が所定経路の両側の可動端に到達した時の可動端パルスカウント値と、原点パルス検出時のパルスカウント値を取得し、原点パルス検出時のパルスカウント値に原点のオフセット量を加算して求めた機械原点と可動端パルスカウント値から可動体の可動範囲を演算し、可動範囲、オフセット量を可動範囲情報として不揮発性メモリに保存する可動範囲設定動作を行い、可動体の位置決め指令時に、不揮発性メモリに保存された可動範囲情報に基づいて、可動体が可動範囲を越えるか否かを判定し、可動範囲を超えない場合のみ位置決め指令を実行するので、簡単で低コストに運転プログラムのミスなどにより可動体が可動端に衝突するのを防ぐことができる。
請求項３、７に記載の発明によれば、原点のオフセット量を変更した場合、不揮発性メモリに記憶された可動範囲情報とオフセット量から、可動範囲を再演算し、再演算した可動範囲に基づいて、可動体が可動範囲を超えるか否かを判定するので、機械原点を変更した場合でも、簡単に可動体が可動端に衝突するのを防ぐことができる。
請求項４、８に記載の発明によれば、可動範囲設定動作は、1度も可動範囲設定動作が行われていない場合の原点復帰指令で実行するので、操作者に負担を掛けずに可動体が可動端に衝突するのを防ぐことができる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の方法の具体的実施例について、図に基づいて説明する。
【実施例１】
【０００８】
図１は、本発明のコントローラが制御する機械装置の構成例を示す図である。
所定経路上で可動体を往復動させる機械装置の例としてガルバノメータによるレーザ加工装置を示す。ガルバノメータを利用したレーザ加工技術は、高密度配線の回路基板等の加工に用いられ、前記ガルバノメータに取り付けられたガルバノミラー（可動体）によって反射されたレーザ光線を、被加工物の照射面上に照射して溶解、あるいは蒸発させて加工するものである。
なお、ここでガルバノメータはガルバノミラーを回転させるもので、ボールねじ等で可動軸を動作させる場合のモータに相当し、請求項に記載のモータはガルバノメータを含むものとする。
図において１１はガルバノミラーであり、１２はガルバノミラーを回転させるガルバノメータである。ガルバノメータ１２には、位置検出器であるエンコーダ１３、およびガルバノミラー１１を動作させるドライバ１４が接続されており、ドライバ１４からの駆動電流に応じてガルバノミラー１１を回転させるとともに、回転角はエンコーダ１３で検出され、ドライバ１４に与えられる。１５はコントローラであり照射位置指令をドライバ１４に与え、ドライバ１４は照射位置指令とエンコーダ１３からの位置情報に基づいて駆動電流をガルバノメータ１２に出力する。コントローラ１５の中には、不揮発メモリであるパラメータ・位置保存領域２２と、可動範囲設定動作を行う可動範囲設定部２６がある。１６はレーザ発振器でレーザ光線をガルバノミラー１２に出力する。１８はパソコン等の入出力装置であり、コントローラ１５と通信を行い、機械装置のステータスの取得や機能実行指示などを行う。
図２はガルバノメータ１２とガルバノミラー１１を説明する図で、ガルバノメータ１２をガルバノミラー１１取り付け位置側から見た図である。図において、１７はガルバノメータ１２の回転角を制限するためのストッパである。ガルバノメータを利用したレーザ加工技術においては一般的に±２０°程度の駆動角で、高速高精度の照射位置決めを行う。なお、この例ではガルバノメータ１２が時計回りに回転する場合をプラスとしている。
【０００９】
図３は、本発明のコントローラ１５の構成を示すブロック図である。図において２１は、コントローラの各機能の統括を行う中央処理部、２２はパラメータ保存領域で、電源をオフしても記憶内容を保持できる不揮発性メモリであり、この領域にコントローラのパラメータが保存される。本発明では、この領域が不揮発性メモリであることを利用し、パラメータの他に、原点パルス検出時のパルスカウント値にオフセット量を加算した機械原点から両方向の可動端への可動範囲、および原点位置のオフセット量のデータを保存するものとする。２３は可動体の移動指令を記述したモーションプログラムを格納するプログラム格納領域で不揮発性メモリとなっている。２４はこれらの不揮発性メモリ用のバッテリである。
２５は原点復帰処理を行う原点復帰処理部、２６は可動端への位置決めを行い可動端パルスカウント値等から可動範囲設定動作を行う可動範囲設定部、２７はプログラム格納領域からプログラムを読み込み実行するプログラム実行部である。
２８はドライバ１４への指令部、２９はドライバ１４からガルバノメータ１２の位置情報などステータスを取得するモニタ部である。３０は入出力装置１８とのデータの受け渡しを行う通信部である。
３１はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）で構成される位置保存領域で、可動端到達時の可動端パルスカウント値、原点パルス検出時のパルスカウント値を一時的に保存する。これらのデータは可動範囲を演算するために必要となる。
【００１０】
図４は、可動範囲設定動作時時の動作説明図である。図４は、ガルバノメータ１２をガルバノミラー１１の取り付け位置側から見たもの（上半円）であり、説明のためガルバノミラー１１は図中に記載していない。図において、４１は回り留めピンであり、カルバノメータ１２の回転軸が駆動角以上に回転しないようにストッパ１７の位置で回転軸を停止させるものである。なお、以降の説明で可動端に接触するとは、回り留めピン４１がストッパ１７に接触することであり、阻止部材とはストッパ１７を指す。
ＺＰは原点位置であり、通常は原点パルスを検出する原点パルス検出位置である。回転軸がこの位置に到達すると、エンコーダ１３より原点パルスが駆動装置１４に与えられる。なお、原点パルス検出位置に示される原点にオフセット量を加算し、そこを機械原点とすることができる。この場合、原点復帰時には原点パルス検出時のパルスカウント値にオフセット値を加算した位置を機械原点とし位置決めする。オフセット値が０であれば、原点パルス検出位置に位置決めする。モーションプログラムによる運転は、原点復帰動作で位置決めした機械原点を基準に動作する。
【００１１】
図１〜図４を用いて、可動範囲設定動作を説明する。
まず、操作者は入出力装置１８を使用して、可動体（回り留めピン４１）の原点復帰を指令する。操作者から原点復帰が指令されると、可動範囲設定部２６が起動され、パラメータ保存領域２２から可動範囲情報を読み出し、可動範囲設定動作が１度行われたかどうかを示す可動範囲設定済みフラグをチェックし、設定済みでなければ可動範囲の設定動作を行う。設定済みの場合は原点復帰処理部２５に処理を移し通常の原点サーチを行う。
可動範囲設定部２６はまず、可動体を左右どちらかに位置決めを実行する。図４(ａ)の例では最初右側に位置決めしているが、左から開始しても良い。位置決め指令を生成し、指令部２８を介してドライバ１４に指令する。位置決めに使用する移動量は、たとえば所定経路の総パルス数が予め推定できるのでそのパルス数より大きな値を使用する。
ドライバ１４は、位置決め指令とエンコーダ１３からの位置情報に基づいてガルバノメータ１２に駆動電流を出力する。図４（ａ）に示すようにガルバノメータ１２の回転軸は右側の可動端に位置決めを開始する。可動範囲設定部２６は、位置決め実行中にモニタ部２９を介して、ドライバ１４からガルバノメータ１２のステータスを繰り返し取得し、ガルバノメータ１２の回転軸が可動端に達していないか（図４の回り留めピン４１がストッパ１７に接触していないか）を判定する。
判定手段としては、現在位置の変動量を使用する方法や、指令位置と現在位置の偏差を使用する方法があり、いずれを採用しても良い。
なお、ここでステータスとはガルバノメータ１２の現在位置、および原点パルスが検出されたか否か、検出されていればその位置情報も対象とする。
また、可動端に達しているかどうかの判定と同時に原点パルスの検出もチェックし、原点パルスを検出したら検出位置のパルスカウント値をモニタ部２９を介してドライバ１４から取得し、位置保存領域３１に格納する。図４の例では原点は移動開始位置の左側にあるため、原点パルスは検出されず、可動端に達する。
【００１２】
ガルバノメータ１２の回転軸が可動端に達したと判断した場合、移動を停止する。停止後に、可動範囲設定部２６は可動端のパルスカウント値をモニタ部２９を介して、ドライバ１４から取得し、位置保存領域３１に格納する。ここで、取得位置をＸとする（図４( ｂ )）。
次に、可動範囲設定部２６は、逆方向（左方向）に位置決めを実行する。移動量は所定経路の総パルス数より大きな値とする。可動範囲設定部２６は、位置決め実行中に、ドライバ１４からガルバノメータ１２のステータスを繰り返し取得する。図４の場合、可動端に達する前に原点パルスが検出される。原点パルスが検出されると、可動範囲設定部２６は検出位置のパルスカウント値をモニタ部２９を介して、ドライバ１４から取得し、位置保存領域３１に格納する。ここで、取得位置をＹとする（図４（ｃ））。可動範囲設定部２６は、引き続きドライバ１４からガルバノメータ１２のステータスを繰り返し取得し、ガルバノメータ１２の回転軸が可動端に達したと判断した場合、移動を停止する。停止後に、可動範囲設定部２６は可動端のパルスカウント値をモニタ部２９を介して、ドライバ１４から取得し、位置保存領域３１に格納する。ここで、取得位置をＺとする（図４( ｄ )）。
次に、可動範囲設定部２６は、位置保存領域３１から原点パルス検出位置のパルスカウント値を取得し、オフセット量が０の場合はそこを機械原点とし、オフセットが０以外のときはオフセット量を足した値を機械原点として位置決め指令を作成し、指令部２８を介してドライバ１４に指令する。ここで、機械原点の位置をＹＡとする。機械原点への位置決め完了後、その位置を原点に設定し、原点復帰は完了する（図４( ｃ )）。
最後に、可動範囲設定部２６は、原点位置から左右両方向への可動範囲を演算する。可動端パルスカウント値Ｘ、Ｚ、機械原点位置ＹＡより、原点位置から右側の可動範囲はＸ−ＹＡ、左側の可動範囲はＹＡ−Ｚで与えられる。可動範囲設定部２６は、この可動範囲をパラメータ保存領域２２に格納する。この可動範囲は不揮発性メモリに記憶されるので、電源をオフしても保持される。
したがって、次回以降の電源投入時においては、両可動端のパルスカウント値の取得は不要となり、原点サーチのみを実施することになる。原点サーチの手段としては、前述同様移動させながら、ガルバノメータのステータスを取得し、原点パルスが検出されたか否かを判定し、検出された時点で機械原点に位置決めする。またその原点サーチの過程で一方の可動端に接触した場合、可動範囲情報により機械原点までの距離が演算できるので、逆方向サーチのときにこの演算した距離を原点復帰の移動量として使用しても良い。
【００１３】
次に可動範囲設定部２６の詳細を説明する。
原点復帰が指令されると、可動範囲設定部２６が起動される。
図５は可動範囲設定部２６の処理手順を示すフローチャートである。
図５(ａ)がメインの処理で、図５(ｂ)は原点パルス・可動端チェックのサブルーチンである。
まず、メインのステップＳ１でパラメータ領域２２に保存された可動範囲情報を読み出す。次に、ステップＳ２で可動範囲設定済みフラグにより可動範囲が設定済みかどうかチェックをする。設定済みであれば原点復帰処理部２５に処理を移し、原点サーチ処理を行う。設定済みでなければステップＳ３に進み、位置決め指令を生成し、発行する。位置決めに使用する移動量は、たとえば所定経路の総パルス数より大きな値を使用する。
次にステップＳ４で図５(ｂ)に示す原点パルス、可動端チェックのサブルーチンをコールする。
サブルーチンでは、ステップＳ３１でステータスを取得し、ステップＳ３２で原点パルスを検出したかどうかチェックをする。もし検出した場合、ステップＳ３３で原点パルス検出位置のパルスカウント値を取得し、位置保存領域３１に格納する。ステップＳ３４で可動端に接触したかどうかをチェックし、もし接触していればメインルーチンに戻り、接触していなければ、ステップＳ３１に進む。
このように、このサブルーチンでは、原点パルスを検出したときは原点パルス検出位置のパルスカウント値を取得・保存し、可動端に接触するとサブルーチンから戻る。
ステップＳ５では可動端に接触しているので、停止指令を生成し発行する。ステップＳ６でステータスを取得し、ステップＳ７で停止をチェックする。停止が確認できるとステップＳ８に進み、可動端パルスカウント値を取得し、位置保存領域３１に格納する。
次にステップＳ９に進み逆方向への位置指令を生成し、発行する。ステップＳ１０で再度原点パルス・可動端チェックサブルーチンをコールし、原点パルスを検出したときは原点位置のパルスカウント値を取得・保存する。
ステップＳ１１では、可動端に接触している状態なので、ステップＳ１１〜Ｓ１３で停止指令を発行し、停止を確認する。
ステップＳ１４で可動端パルスカウント値を取得し、位置保存領域３１に格納する。
次にステップＳ１５で機械原点への位置指令を生成・発行する。ステップＳ１６、Ｓ１７で位置決め完了を確認し、ステップＳ１８で原点を設定する。そしてステップＳ１９で可動範囲の演算を行いその結果と、可動範囲設定済みフラグをパラメータ保存領域２２に格納する。
【００１４】
次に位置決め指令実行時の可動範囲の判定方法について説明する。
操作者は原点復帰完了後、入出力装置１８からモーションプログラム実行をコントローラ１５に対して指令する。中央処理部２１は、プログラム実行部２７に対しプログラム実効を指示する。プログラム実行部２７は１行ずつプログラムを実行するときに可動範囲内の指令かどうかを判定する。
図６はプログラム実行部２７の処理手順を示すフローチャートである。
まずステップＳ４１でパラメータ保存領域２２から可動範囲情報を読み出す。次に、ステップＳ４２でプログラム格納領域２３からモーションプログラムを１行読み出し、実行を開始する。ステップＳ４３で指令を解析し、目標位置から位置決め指令値を演算する。ステップＳ４４で演算結果と可動範囲情報から目標位置が可動範囲内に含まれるかをチェックする。チェックの結果目標位置が可動範囲を越えなければステップＳ４５に進み位置指令を生成し、発行する。ステップＳ４６で全ての行の実行が完了すれば終了となる。ステップＳ４４で目標位置が可動範囲を越える場合は位置指令を生成せずステップＳ４７でプログラムの実行を停止する。このとき、ステップＳ４８に有るように通信部３０を介して入出力装置１８にアラーム通知を行うなどしても良い。
【００１５】
次に、原点のオフセット量を変更する場合の動作を説明する。
機械原点を、原点パルス検出位置ではなく、原点パルス検出位置にオフセット量を足した位置に変更する場合、あるいは、既に設定してあるオフセット量を変更する場合、操作者は入出力装置１８を使用して新オフセット量をコントローラ１５に設定する。中央処理部２１は、パラメータ保存領域２２に新オフセット量を格納する。この状態で、原点復帰を実行すると原点復帰処理部２５は、原点パルス検出位置に新オフセット量を加算した位置に位置決めする。この状態で、操作者が、モーションプログラム実行をコントローラ１５に対して指令すると、プログラム実行部２７は、パラメータ保存領域２２から可動範囲情報を読み出し、新オフセット量を使用して可動範囲を再演算する。次に、プログラム格納領域２６からモーションプログラムを読み出し、実行を開始する。実行中の可動範囲判定は図６の説明で述べたとおりである。
【００１６】
このように、本発明によれば、所定経路の可動端のパルスカウント値、原点位置のパルスカウント値を取得することにより原点位置からの左右両方向の可動範囲を演算し、可動範囲に基づいて位置決め指令を判定し、可動範囲を超えない場合のみ位置決め指令を実行するため可動端に衝突することを防ぐことができる。また、左右両方向への可動範囲情報は不揮発性メモリに記憶されているため、２回目以降の原点復帰時は、両可動端のパルスカウント値を計測する必要はなく、自動的に原点サーチから開始する。また、機械原点を１回目の原点復帰のときから変更した場合においても、その変動分と左右両方向への可動範囲から、機械原点においての可動範囲が演算できるため、再度、両可動端のパルスカウント値を計測せずとも可動範囲を判定できる。また、各種センサやリミットスイッチを必要とせず、簡単で低コストに運転プログラムのミスなどにより可動体が可動端に衝突するのを防ぐことができる。
【産業上の利用可能性】
【００１７】
ガルバノメータによるレーザ加工装置だけでなく、所定経路上を可動体を往復動させる装置、例えば、ボールねじとモータを連結してワークテーブルを移動させるような機械装置の可動範囲の判定にも適用できる。
【図面の簡単な説明】
【００１８】
【図１】本発明のコントローラが制御する機械装置の構成例を示す図
【図２】ガルバノメータとガルバノミラーを説明する図
【図３】本発明のコントローラの構成を示すブロック図
【図４】可動範囲設定動作時の動作説明図
【図５】可動範囲設定部の処理手順を示すフローチャート
【図６】プログラム実行部の処理手順を示すフローチャート
【符号の説明】
【００１９】
１１    ガルバノミラー
１２    ガルバノメータ
１３    エンコーダ
１４    ドライバ
１５    コントローラ
１６    レーザ発振器
１７    ストッパ
１８    入出力装置
２１    中央処理部
２２    パラメータ保存領域
２３    プログラム格納領域
２４    バッテリ
２５    原点復帰処理部
２６    可動範囲設定部
２７    プログラム実行部
２８    指令部
２９    モニタ部
３０    通信部
３１    位置保存領域
４１    回り留めピン
【図１】
2008083758.tif 000003
【図２】
2008083758.tif 000004
【図３】
2008083758.tif 000005
【図４】
2008083758.tif 000006
【図５】
2008083758.tif 000007
【図６】
2008083758.tif 000008