(58)【調査した分野】(Int.Cl.,DB名)
時間、軸位置、または主軸位置を基準値として、各制御軸の位置を指令するテーブル形式データを用いて、前記基準値に同期して制御軸の位置を制御する数値制御装置において、
前記テーブル形式データから指令ブロックを順次読み出し、該指令ブロックを解析して制御点の基準値、および座標値を取得して出力する読み出し部と、
前記読み出し部が読み出した指令ブロックに基準値をシフトするシフト指令が含まれている場合、前記指令ブロック以降の指令ブロックにおいて、基準値のシフトを有効とし、前記シフト指令により指定されたシフト量に基づいてシフトされた前記制御点の基準値を出力する基準値解析部と、
前記基準値解析部が出力した基準値、および前記読み出し部が出力した制御点の座標値に基づいて、前記テーブル形式データにより制御される軸に対する移動量を生成する分配処理部と、
を備え、
前記基準値解析部は、基準値のシフトを有効でない時は、前記読み出し部が出力する前記制御点の基準値をそのまま出力する、
ことを特徴とする数値制御装置。
前記基準値解析部は、基準値のシフトが有効である時に前記読み出し部が読み出した指令ブロックに基準値をシフトするシフト指令が含まれている場合には、それまでのシフト量に前記シフト指令により指定されるシフト量を積算する、
ことを特徴とする請求項1または2に記載の数値制御装置。
前記基準値解析部は、前記読み出し部が読み出した指令ブロックにシフトキャンセル指令が含まれている場合、前記指令ブロック以降の指令ブロックにおいて、基準値のシフトを無効とする、
ことを特徴とする請求項1〜3のいずれか1つに記載の数値制御装置。
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来のテーブル形式データによる運転では、テーブル形式データに記述した基準値、および前記基準値に対応した軸、あるいは主軸の座標値を制御点とし、2つの制御点を始点、および終点として移動量の計算を行う。具体的には始点となる制御点の基準値、および軸、あるいは主軸の座標値と、終点となる制御点の基準値、および軸、あるいは主軸の座標値から、2点間の基準値の差分、および軸、あるいは主軸の座標値の差分を計算し、単位基準値あたりの移動量を算出する。
【0006】
図7にテーブル形式データを用いた従来の軸制御の例を示す。テーブル形式データ<TIME_TABLE_0001_X>は、時間基準でX軸を制御するテーブル形式データとし、Lは基準値(基準時間:msec単位)、Xは基準値に対応したX軸の座標値(mm単位)を示す。現在基準値が1000msecとすると、X軸は基準値1000msec、座標値100.0mmを始点、基準値2000msec、座標値200.0mmを終点とした2点の制御点間を移動する。
【0007】
図8に移動量を算出するための数値制御装置の概略ブロック図を示す。従来技術の数値制御装置100では、読み出し部(図示せず)で順次読み出した指令ブロックを始点、終点の2つの制御点として分配処理部130へ通知し、分配処理部130で2つの制御点間の基準値、および座標値の差分から単位基準値あたりの移動量を求め、モータ制御部(図示せず)へ通知する。
【0008】
テーブル形式データ<TIME_TABLE_0001_X>を用いたX軸の制御例では、分配処理部130において、基準値1000msec、座標値100.0mmを始点、基準値2000msec、座標値200.0mmを終点とし、基準値の差分1000msec(2000msec−1000msec)と、座標値の差分100.0mm(200.0mm−100.0mm)から、単位基準値あたりの移動量を0.1mm/1msecと計算できる。
【0009】
こうした従来のテーブル形式データによる運転では、ある制御点の基準値を変更した場合、その制御点の基準値と、次の制御点の基準値との差分が変わるため、変更した制御点の基準値をもとに、制御点間の基準値の差分が変わらないよう、以降の制御点の基準値も全て変更する必要がある。
【0010】
図9に、例として、テーブル形式データ<TIME_TABLE_0001_X>の基準値L2000を基準値L1800に変更した場合のテーブル形式データを<TIME_TABLE_0002_X>に示す。テーブル形式データ<TIME_TABLE_0002_X>の<1>を修正する場合、<1>と<2>の間、<2>と<3>の間の基準値の差分が変わらないようにL3000をL2800(<2>)、L4000をL3800(<3>)に修正が必要になる。
【0011】
このような変更を行う場合、オペレータが制御点間の基準値の差分を考慮しながら各データを修正するが、複数の数値を確認しながら修正する必要があるため変更に手間がかかり、オペレータにとって大きな負荷となるという課題があった。
【0012】
なお、従来技術では、特定の制御点の基準値を修正しても、インクレメンタル指令であれば、以降の制御点の基準値との差分は変わらない。しかしながら、テーブル形式データでは、全体のサイクルタイムを見通すためや、系統間、制御軸間で同期したテーブル形式データを作るために、基準値にはアブソリュート指令を用いることが多く、単純にインクレメンタル指令を用いることで上記問題を解決するということができない事情がある。
【0013】
そこで本発明の目的は、制御点間の基準値の差分を保持したまま、特定の制御点の基準値を修正可能とする数値制御装置を提供することである。
【課題を解決するための手段】
【0014】
本願の請求項1に係る発明は、時間、軸位置、または主軸位置を基準値として、各制御軸の位置を指令するテーブル形式データを用いて、前記基準値に同期して制御軸の位置を制御する数値制御装置において、前記テーブル形式データから指令ブロックを順次読み出し、該指令ブロックを解析して制御点の基準値、および座標値を取得して出力する読み出し部と、前記読み出し部が読み出した指令ブロックに基準値をシフトするシフト指令が含まれている場合、前記指令ブロック以降の指令ブロックにおいて、基準値のシフトを有効とし、前記シフト指令により指定されたシフト量に基づいてシフトされた前記制御点の基準値を出力する基準値解析部と、前記基準値解析部が出力した基準値、および前記読み出し部が出力した制御点の座標値に基づいて、前記テーブル形式データにより制御される軸に対する移動量を生成する分配処理部と、を備え、前記基準値解析部は、基準値のシフトを有効でない時は、前記読み出し部が出力する前記制御点の基準値をそのまま出力する、ことを特徴とする数値制御装置である。
【0015】
本願の請求項2に係る発明は、前記シフト指令により指定されるシフト量は、パラメータ、マクロ変数、または信号により間接的に指定できる、ことを特徴とする請求項1に記載の数値制御装置である。
【0016】
本願の請求項3に係る発明は、前記基準値解析部は、基準値のシフトが有効である時に前記読み出し部が読み出した指令ブロックに基準値をシフトするシフト指令が含まれている場合には、それまでのシフト量に前記シフト指令により指定されるシフト量を積算する、ことを特徴とする請求項1または2に記載の数値制御装置である。
【0017】
本願の請求項4に係る発明は、前記基準値解析部は、前記読み出し部が読み出した指令ブロックにシフトキャンセル指令が含まれている場合、前記指令ブロック以降の指令ブロックにおいて、基準値のシフトを無効とする、ことを特徴とする請求項1〜3のいずれか1つに記載の数値制御装置である。
【発明の効果】
【0018】
本発明により、制御点間の基準値の差分を保持したまま、特定の制御点の基準値を修正可能になり、その結果として、作成したテーブル形式データの編集が容易になるため、機械の立上げ、調整時間の短縮に効果がある。また、特定の制御点の基準値をパラメータ、マクロ変数、信号状態で指定することにより、テーブル形式データを修正することなく、基準値の調整が可能になる。更に、基準値をシフトすることにより、コーナ部の内回り量の設定や、オーバラップのタイミング調整が容易になる。
【発明を実施するための形態】
【0020】
本発明では、制御点間の基準値の差分を保持したまま、特定の制御点の基準値を修正可能にする。実現方法として、基準値のシフト指令(SFT指令)、シフトキャンセル指令(SFTCAN指令)を追加し、基準値の修正量を指定することで、以降の制御点の基準値を修正量の分だけシフトする技術を提供することで、前記問題の解決を目的とする。
【0021】
図1は、従来技術における制御点の基準値の修正方法と、本発明において提案する制御点の基準値の修正方法を示した図である。
従来技術では、オペレータがテーブル形式データの基準値を全て修正(
図1(a)においては、L2000をL1800、L3000をL2800、L4000をL3800へ修正)していたが、本発明で導入したシフト指令を用いる場合、
図1(b)に示すように、修正する制御点の基準値にシフト量を指定するだけで、内部処理において、シフト量が指定された制御点以降の基準値をシフト量の分だけシフトして処理する。
【0022】
図2は、本発明のシフト指令とシフトキャンセル指令の記載例を示す図である。
図2(a)は、基準値のシフト量を指定したシフト指令の記述例であり、このように直接シフト量を数値で指定することで、シフト指令を記述した指令行以降において、指定したシフト量(図では、SFT−200)だけ基準値がシフトされるように処理される。なお、シフト指令により基準値をシフトしている間に、さらにシフト指令がされた場合は、シフト量は積算される。
【0023】
また、シフト量はパラメータ、マクロ変数、信号により間接的に指定可能とする。パラメータ、マクロ変数、信号によりシフト量を指定する際には、例えばSFT指令の後に=で繋げてパラメータ、マクロ変数、信号アドレスを指定する。
図2(b)は、基準値を信号アドレスで指定したシフト量指定の記述例である。この例では、内部リレーであるアドレスRの1001番の信号(R1001)でシフト量を指定しており、当該指令が読み込まれると、シフト指令を解析後、指定の信号状態(R1001の信号状態)が読み出されてシフト量に変換される。
【0024】
次に、シフトキャンセル指令(SFTCAN指令)について説明する。上記したシフト指令により指定されたシフト量をキャンセルする際には、
図2(c)に示すように、シフト量のキャンセルを行う指令行の後ろにシフトキャンセル指令(SFTCAN指令)を記述する。このように記述することにより、当該指令行を処理する時点以降においてシフト量が0にクリアされる。
図2(c)では、指令行L2000 X200.0にシフト指令(シフト量−500)が記述されているので、当該指令行においてL1500 X200.0にシフトされるが、指令行L3000 X300.0にシフトキャンセル指令が記述されているので、当該指令行を処理する時にシフト量は0にクリアされ、L3000 X300.0の指令の通り、基準値3000msec、座標値300.0mmを終点として移動する。
【0025】
図3は、上記したシフト指令、シフトキャンセル指令を実行可能な本発明の一実施形態における数値制御装置の機能ブロック図である。従来技術においては、読み出し部10がテーブル形式データ20を図示しないメモリなどから読み出し、制御点の基準値、および座標値を読み出し、分配処理部12にそのまま通知していた。本発明では、基準値解析部11を新たに設け、読み出し部10が読み出した制御点の基準値を指定のシフト量だけシフトして分配処理部12に通知する。
【0026】
基準値解析部11では、シフト指令、シフトキャンセル指令の解析、および制御点の基準値の算出を行う。
基準値解析部11は、読み出し部10が読み出したブロックにシフト指令が含まれている場合、図示しないメモリ上に設けられたシフト指令有効フラグを有効となるよう変更すると共に、該シフト指令で指令されたシフト量を図示しないメモリ上に設けられたシフト量記憶領域に積算する。なお、シフト指令有効フラグが無効の状態においてはシフト量記憶領域には0が設定されており、基準値をシフトしていない状態においてシフト指令が指令された場合、シフト量記憶領域にはシフト指令で指令されたシフト量が設定される。
【0027】
この時、基準値解析部11は、シフト量が直接指定されている場合には、指定されたシフト量をシフト量記憶領域に記憶、または積算し、シフト量がパラメータ、マクロ変数、信号により間接的に指定されている場合には、指定されたパラメータ、マクロ変数、信号を読み出して基準値のシフト量へと変換してから、該シフト量をシフト量記憶領域に記憶、または積算する。
【0028】
また、基準値解析部11は、読み出し部10が読み出したブロックにシフトキャンセル指令が含まれている場合には、シフト量記憶領域に記憶されているシフト量を0にクリアする。なお、基準値解析部11は、読み出したブロックにシフトキャンセル指令が含まれている場合に、上記したようにシフト量記憶領域に記憶されているシフト量を0にクリアする代わりに、基準値の実時間をシフト量分リセットしてもよい。
【0029】
このように指令の解析を行った後、シフト指令有効フラグが有効である場合には、基準値解析部11は、シフト量記憶領域に記憶されているシフト量に基づいて読み出し部10が読み出した制御点の基準値をシフトし、その結果を分配処理部12に対して制御点の基準値として制御点の座標値と共に出力する。なお、シフト指令有効フラグが無効である場合には、読み出し部10が読み出した制御点の基準値をそのまま分配処理部12に対して制御点の座標値と共に出力する。
【0030】
そして、分配処理部12は、基準値解析部11から受け取った制御点の基準値、および座標値に基づいて、各軸の移動量を分配周期毎に各軸の可動部へと指令する移動量へと分配する。そして、該分配された移動量に基づいて各軸が制御される。
【0031】
図4は、本実施形態の数値制御装置1上で実行されるテーブル形式データに基づく制御処理のフローチャートである。
●[ステップSA01]読み出し部10が、メモリなどに記憶されたテーブル形式データから各指令ブロックを順次読み出し、該指令ブロックを解析して制御点の基準値、および座標値を取得して出力する。
【0032】
●[ステップSA02]基準値解析部11は、ステップSA01で読み出された指令ブロックにシフトキャンセル指令が含まれているか否かを判定する。シフトキャンセル指令が含まれている場合にはステップSA09へ進み、シフトキャンセル指令が含まれていない場合にはステップSA03へ進む。
●[ステップSA03]基準値解析部11は、ステップSA01で読み出された指令ブロックにシフト指令が含まれているか否かを判定する。シフト指令が含まれている場合にはステップSA05へ進み、シフト指令が含まれていない場合にはステップSA04へ進む。
●[ステップSA04]基準値解析部11は、シフト指令有効フラグを参照して基準値のシフトが有効であるかを判定する。シフトが有効である場合にはステップSA08へ進み、有効でない場合には制御点の基準値を指令ブロックにより指令される制御点の基準値としてステップSA11へ進む。
【0033】
●[ステップSA05]基準値解析部11は、シフト指令有効フラグに有効値1を設定し、基準値のシフトを有効にする。
●[ステップSA06]基準値解析部11は、シフト指令を解析し、シフト量が直接指定されている場合には指定されている値を基準値のシフト量とし、パラメータ、マクロ変数、信号により間接的に指定されている場合には、パラメータ、マクロ変数、信号から取得した値を基準値のシフト量へと変換する。
●[ステップSA07]基準値解析部11は、ステップSA06で求めた基準値のシフト量をシフト量記憶領域に積算する。
●[ステップSA08]基準値解析部11は、シフト量記憶領域に記憶されている基準値のシフト量によりステップSA01で取得した制御点の基準値をシフトした値を基準値として求める。
【0034】
●[ステップSA09]基準値解析部11は、シフト指令有効フラグに無効値0を設定し、基準値のシフトを無効にする。
●[ステップSA10]基準値解析部11は、シフト量記憶領域に記憶されている基準値のシフト量を0にクリアして制御点の基準値を指令ブロックにより指令される制御点の基準値とし、ステップSA11へ進む。
【0035】
●[ステップSA11]分配処理部12は、制御点の基準値、および座標値に基づいて分配処理を実行し、分配処理の結果に基づいて各軸が運転制御される。
●[ステップSA12]テーブル形式データが終了したか否かを判定する。終了している場合には運転処理を終了し、終了していない場合にはステップSA01へ戻って運転処理を継続する。
【0036】
本実施形態の数値制御装置1の具体的な動作例を
図5,6に示す。
図5は、テーブル形式データに基づいて制御される工具のXZ平面での工具経路を示す図である。
図5(a)に示したX軸、Z軸の基準軸に対する位置情報を定義するテーブル形式データを運転した場合、X軸、Z軸は基準軸に対して、それぞれ
図5(b)に示すような座標値を取るように移動し、XZ平面においては、
図5(c)に示すように、XZ平面で角を出すような工具経路になる。
【0037】
ここで、
図5(c)に示す工具経路に対して、
図6(c)に示す工具経路を通るように内回り制御してサイクルタイムの短縮を図る場合、本発明の技術を用いて、
図6(a)に示すように、テーブル形式データにマクロ変数でシフト量を指定するシフト指令を挿入し、マクロ変数に以下の値を設定する。
#501=−200:Z軸の動作を−200先行させる
#502=−400:X軸の動作を−400先行させる
(Z軸の動作の先行分(−200)+X軸の動作の先行分(−200))
#503=−200:Z軸の動作を−200先行させる
(X軸の動作の先行分(−200)を反映)
【0038】
なお、先行させる基準値の関係は以下のようになる。
#502(X軸の動作の先行分)=#501+#503(Z軸の動作の先行分)
【0039】
このようにテーブル形式データを修正し、マクロ変数を設定することにより、結果として、実時間に換算すると、基準値L3600相当で工具の移動が完了し、全体としてサイクルタイムが短縮される。
【0040】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
例えば、上記した実施形態では、シフト量を0にクリアすることでシフトキャンセルを行っているが、それ以外にも、基準値の実時間をシフト量分だけリセットすることでシフトキャンセルを行うようにすることもできる。その場合、
図2(c)では、L3000 X300.0の指令は、基準値2500msec、座標値300.0mmとして移動し、L4000 X400.0の指令は、基準値3500msec、座標値400.0mmとして移動する。
【0041】
また、上記した実施形態では、基準値として時間を用いる例を示したが、その他の値を基準値として用いてもよく、例えば、基準軸の位置や主軸の位置を用いることも可能である。