(57)【要約】【課題】ＩＳＯ準拠のＧコード指令を、パステーブル運転において使用可能とする。【解決手段】パステーブルより、基準値Ｌと制御軸Ｘの位置等を記憶するｉ行のデータとｉ＋１行のデータを読み取り記憶する（S1〜S5）。記憶したｉ行とｉ＋１行のデータ及び入力される基準値Ｌｍに基づいて、移動経路を求め制御軸の移動量を出力する（S8〜S10）。以下、指標ｉを更新し（S14、S15、S4、S5）、パステーブルに設定されたデータと入力される基準値に基づいてパステーブル運転する。このパステーブル運転中で、読み取ったデータにＧコードがあるときは（S6）、このＧコードを記憶する（S7）。そして、このＧコードを読み出した行で指定されている基準値に入力される基準値Ｌｍが達すると（S9）、このＧコードの指令を実行させる（S12）。パステーブルにＧコード設定されていてもそれを実行できるようにしたから、ＩＳＯ準拠のＧコードを使用できる。【選択図】図３
2008234319.tif 000002
【特許請求の範囲】
【請求項１】
時間あるいは主軸位置を基準とし、該基準の値と制御軸の位置とを対応させたテーブル形式データをメモリに設けられたパステーブルに格納しておき、該テーブル形式データに基づいて、入力される基準の値に対する制御軸の位置を順次読み出し、入力された基準の値に同期して制御軸の位置を制御するパステーブル運転を実行する数値制御装置において、
前記パステーブル中に、ＩＳＯ準拠のＧコード指令を、その指令を実行する基準の値に対応して設定記憶しておき、
パステーブル運転中に前記パステーブルから読み出した指令中にＧコード指令が含まれているか判別する判別手段と、
入力された基準の値が、前記Ｇコード指令が設定された基準の値に達した時にＧコード指令を実行する手段と、
を備えたことを特徴とする前記数値制御装置。
【請求項２】
時間あるいは主軸位置を基準とし、該基準の値と制御軸の位置とを対応させたテーブル形式データをメモリに設けられたパステーブルに格納しておき、該テーブル形式データに基づいて、入力される基準の値に対する制御軸の位置を順次読み出し、入力された基準の値に同期して制御軸の位置を制御するパステーブル運転を実行する数値制御装置において、
前記パステーブル中に、ＩＳＯ準拠のＧコードプログラムを呼び出す指令を、該指令を実行する基準の値に対応して設定記憶しておき、
パステーブル運転中に前記パステーブルから読み出した指令中にＧコードプログラムを呼び出す指令が含まれているか判別する判別手段と、
入力された基準の値が、前記Ｇコードプログラム呼び出し指令が設定された基準の値に達した時に指令されたＧコードプログラムを実行開始する手段と、
を備えたことを特徴とする前記数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パステーブル運転を実行する数値制御装置に関する。
【背景技術】
【０００２】
工作機械等を制御する数値制御装置において、時間あるいは主軸位置を基準とし、制御する機械の各軸位置を基準値に対応して設定したテーブル形式データをメモリにパステーブルとして格納しておき、このパステーブルに記憶したテーブル形式データを順次読み出しながら各軸を駆動するパステーブル運転機能を持った数値制御装置がすでに公知である（特許文献１、２参照）。  
このパステーブル運転は、各軸位置を基準値に対して自由に設定できることから、従来の加工プログラムにとらわれない自由な工具の動作が可能になり、加工時間の短縮や、加工の高精度化を実現できる。
【０００３】
特に、特許文献２に記載されたパステーブル運転機能では、テーブル形式データで指定された軸位置間を１次関数の経路で接続するか、２次関数、３次関数で接続するかを指定し、指定された関数の経路で、指定された位置間を移動するように各制御軸を制御できるものであることから、より自由な形状の加工を高精度に達成することができるようにしている。
【０００４】
【特許文献１】特開昭５９−１７７６０４号公報
【特許文献２】特許第３６７１０２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来のパステーブル運転においては、テーブル形式データに対しＩＳＯ準拠のＧコード指令とは異なる専用フォーマットのみ登録可能であった。そのため、通常のＮＣ運転(Ｇコード指令)と同じ動作をするようなテーブル形式データを作成したい場合、オペレータはＧコード指令に対応するパステーブル専用フォーマット（指令）を覚える必要があり、テーブル形式データ作成の妨げとなっていた。  
そこで、本発明の目的は、ＩＳＯ準拠のＧコード指令を、パステーブル運転において使用可能とすることにある。
【課題を解決するための手段】
【０００６】
時間あるいは主軸位置を基準とし、該基準の値と制御軸の位置とを対応させたテーブル形式データをメモリに設けられたパステーブルに格納しておき、該テーブル形式データに基づいて、入力される基準の値に対する制御軸の位置を順次読み出し、入力された基準の値に同期して制御軸の位置を制御するパステーブル運転を実行する数値制御装置において、請求項１に係る発明は、前記パステーブル中に、ＩＳＯ準拠のＧコード指令を、その指令を実行する基準の値に対応して設定記憶しておき、パステーブル運転中に前記パステーブルから読み出した指令中にＧコード指令が含まれているか判別する判別手段と、入力された基準の値が、前記Ｇコード指令が設定された基準の値に達した時にＧコード指令を実行する手段とを設けることによって、パステーブル運転においてもＩＳＯ準拠のＧコード指令を使用できるようにした。  
又、請求項２に係る発明は、パステーブル中に、ＩＳＯ準拠のＧコードプログラムを呼び出す指令を、該指令を実行する基準の値に対応して設定記憶しておき、パステーブル運転中に前記パステーブルから読み出した指令中にＧコードプログラムを呼び出す指令が含まれているか判別する判別手段と、入力された基準の値が、前記Ｇコードプログラム呼び出し指令が設定された基準の値に達した時に指令されたＧコードプログラムを実行開始する手段とを設けることによって、パステーブル運転中にＧコードプログラムを実行できるようにした。
【発明の効果】
【０００７】
本発明は、パステーブル運転中にもＩＳＯ準拠のＧコード指令に基づいて、該Ｇコードで指令された機能を実行できるので、パステーブル運転用の専用フォーマットを使用することなくテーブル形式データを作成することができ、テーブル形式データの作成が容易となる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の一実施形態について図面と共に説明する。  
図１は本発明の一実施形態における数値制御装置１の要部ブロック図である。ＣＰＵ１１は数値制御装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステムプログラムを、バス２０を介して読み出し、該システムプログラムに従って数値制御装置全体を制御する。ＲＡＭ１３には一時的な計算データや表示データ及びＣＲＴや液晶等で構成される表示器とキーボード等で構成される手動入力手段とからなる表示器／ＭＤＩユニット２を介してオペレータが入力した各種データが格納される。ＳＲＡＭ１４は図示しないバッテリでバックアップされ、数値制御装置１の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。ＳＲＡＭ１４中には、インターフェイス１５を介して読み込まれた加工プログラムや表示器／ＭＤＩユニット２を介して入力された加工プログラム等が記憶される。
インターフェイス１５は、数値制御装置１と外部機器との接続を可能とするものである。ＰＭＣ（プログラマブル・マシン・コントローラ）１６は、数値制御装置１に内蔵されたシーケンスプログラムで制御対象物の工作機械の補助装置（例えば、工具交換用のロボットハンドといったアクチュエータ）にＩ／Ｏユニット１７を介して信号を出力し制御する。また、数値制御装置で制御される制御対象物である工作機械の本体に配備された操作盤の各種スイッチ等の信号を受け、必要な信号処理をした後、ＣＰＵ１１に渡す。  
表示器／ＭＤＩユニット２はバス２０に接続されると共にインターフェイス１８を介してバス２０に接続されている。又、操作盤３がインターフェイス１９を介して、バス２０に接続されている。
【０００９】
各軸の軸制御回路３０〜３２はＣＰＵ１１からの各軸の移動指令量を受けて、各軸の指令をサーボアンプ４０〜４２に出力する。サーボアンプ４０〜４２はこの指令を受けて、機械（制御対象物）の各軸のサーボモータ４ｘ、４ｙ、４ｚを駆動する。各軸のサーボモータ４ｘ、４ｙ、４ｚは位置・速度検出器を内蔵し、この位置・速度検出器からの位置、速度フィードバック信号を軸制御回路３０〜３２にフィードバックし、各軸の軸制御回路３０〜３２はＣＰＵ１１からの移動指令と位置・速度のフィードバックに基づいて位置、速度のフィードバック制御を行う。なお、図１では、位置・速度のフィードバックについては省略している。
【００１０】
また、スピンドル制御回路５０は主軸回転指令を受け、スピンドルアンプ５１にスピンドル速度信号を出力する。スピンドルアンプ５１はスピンドル速度信号を受けて、主軸モータ５を指令された回転速度で回転させる。なお、ポジションコーダにより主軸モータの回転速度を検出し、スピンドル制御回路５０で速度のフィードバック制御が行われているが、図１ではポジションコーダからの速度フィードバックは省略している。  
この数値制御装置の構成は、従来の数値制御装置と同じであり、ＳＲＡＭ１４にＧコードを含むパステーブルデータが格納され、該パステーブルデータに基づいて、パステーブル運転が実施される点において、従来と相違する。
【００１１】
そこで、まず、パステーブル運転を行うプログラムの一例について説明する。  
ＩＳＯ準拠のＧコード指令で作成されたプログラムが次のものであったとする。  
Ｇ００  Ｘ０.０              …１行
Ｇ００  Ｘ１００.０          …２行
Ｇ２６                       …３行
Ｇ９６  Ｓ２００             …４行
Ｇ００  Ｘ５５０.０          …５行
Ｇ９７                       …６行
Ｇ２５                       …７行
Ｇ００  Ｘ５００.０          …８行
…
…
このプログラムにおいて、「Ｇ００」は、早送りの位置決め指令であり、「Ｘ□□」は、制御軸のＸ軸の位置を示す。又、「Ｇ２６」は主軸速度を監視する監視開始指令、「Ｇ９６ Ｓ２００」は周速一定制御の開始指令、「Ｇ９７」は周速一定制御の終了指令であり、「Ｇ２５」は該監視を終了させる指令である。
【００１２】
１行の指令で、Ｘ軸を「０．０」の位置に早送りで位置決めし、２行の指令で、Ｘ軸を「１００．０」の位置に早送りで位置決めし、３行の指令で主軸速度の監視を開始させ、次に、４行の指令で主軸周速が「２００」となるように周速一定制御を指令し、５行の指令でＸ軸を「５５０．０」の位置に早送りで位置決めし、６行の指令で周速一定制御の終了を指令し、続いて７行の指令で主軸速度の監視を終了させ、８行の指令でＸ軸を「５００．０」の位置に早送りで位置決めするようにしたプログラムの例である。
【００１３】
このプログラムによる動作をパステーブル運転で行う場合、従来は、次のようにテーブル形式データをパステーブルに設定記憶させている。以下このデータをパステーブルデータ例１という。
＜パステーブルデータ例１＞
Ｌ０ Ｘ０.０ Ｒ１                …１行
Ｌ９００ Ｘ１００.０ Ｒ１        …２行
Ｌ１０００ Ｒ６１                …３行
Ｌ１０５０ Ｒ４１  Ｓ２００      …４行
Ｌ１１００ Ｘ１００.０ Ｒ１      …５行
Ｌ２１００ Ｘ５５０.０ Ｒ１      …６行
Ｌ２１５０ Ｒ４０                …７行
Ｌ２２００ Ｒ６０                …８行
Ｌ２３００ Ｘ５５０.０ Ｒ１      …９行
Ｌ４３００ Ｘ５００.０ Ｒ１      …１０行
…
…
上記パステーブルのテーブル形式データにおいて、「Ｌ□□」は基準値に対応する基準の値を示し、「Ｘ□□」はパステーブル運転による制御軸のＸ軸の位置を示し、「Ｒ１」の指令は、１次関数で輪郭制御を行う指令であり、パステーブルで指令された各制御軸の位置間を１次関数の直線による接続の輪郭制御を行うように移動指令の分配処理を行わせる指令である。又、この指令をＲ２、Ｒ３として指令することにより、２次関数接続、３次関数接続を指令することもできるものである。この点は、前述した特許文献２に記載されており、本願発明と直接関係しないものであるから、詳細は省略する。
【００１４】
又、「Ｒ６１」は、ＩＳＯ準拠のＧコード指令の「Ｇ２６」に相当する主軸速度監視開始指令のパステーブル専用のフォーマットであり、「Ｒ６０」は、ＩＳＯ準拠のＧコード指令の「Ｇ２５」に相当する主軸速度監視終了指令のパステーブル専用のフォーマットである。また、「Ｒ４１」は、ＩＳＯ準拠のＧコード指令の「Ｇ９６」に相当する周速一定制御の開始指令、「Ｒ４０」は、ＩＳＯ準拠のＧコード指令の「Ｇ９７」に相当する周速一定制御の終了指令のパステーブル専用のフォーマットである。
【００１５】
このパステーブルによる指令は、１行の指令で、基準値Ｌが「０」で制御軸のＸ軸を「０．０」位置に位置決めし、２行目で、基準値Ｌが「９００」になるとＸ軸が「１００．０」の位置に達するように、「Ｒ１」で指令された１次関数の直線による接続の輪郭制御による移動指令の分配処理を行うよう指令し、３行目の指令で基準値Ｌが「１０００」になると「Ｒ６１」の指令により主軸速度の監視を開始させ、４行目の指令で基準値Ｌが「１０５０」になると主軸周速が「２００」となるように周速一定制御を指令し、５行目で基準値Ｌが「１１００」になると、Ｘ軸が「１００．０」の位置に達するように１次関数の直線による接続の輪郭制御による移動指令の分配処理を行うよう指令し、６行目で基準値Ｌが「２１００」になると、「５５０．０」の位置に達するように１次関数の直線による接続の輪郭制御による移動指令の分配処理を行うよう指令し、７行目の指令で基準値Ｌが「２１５０」になると周速一定制御の終了を指令し、８行目の指令で基準値Ｌが「２２００」になると「Ｒ６０」の指令で主軸速度の監視を終了させ、９行目で、基準値Ｌが「２３００」になると、Ｘ軸が「５５０．０」の位置に達するように１次関数の直線による接続の輪郭制御による移動指令の分配処理を行うよう指令し、１０行目で基準値Ｌが「４３００」になると、Ｘ軸が「５００．０」の位置に達するように１次関数の直線による接続の輪郭制御による移動指令の分配処理を行うよう指令したテーブル形式データである。
【００１６】
以上のように、パステーブル運転の途中で、主軸速度の監視等を指令する場合、ＩＳＯ準拠のＧコード指令の「Ｇ２６」、「Ｇ２５」、「Ｇ９６」、「Ｇ９７」は使用できず、「Ｒ６１」、「Ｒ６０」、「Ｒ４１」、「Ｒ４０」などのパステーブル専用のフォーマットの指令を用いなければならない。
そこで、本発明は、パステーブル運転において、テーブル形式データ中に、従来のＩＳＯ準拠のＧコード指令を使用できるようにしたものである。
【００１７】
上述したプログラムの例で、ＩＳＯ準拠のＧコード指令を用いた場合の本実施形態におけるテーブル形式データ（パステーブルデータ例２という）は、次のようになる。
＜パステーブルデータ例２＞
Ｌ０ Ｘ０.０ Ｒ１                …１行
Ｌ９００ Ｘ１００.０ Ｒ１        …２行
Ｌ１０００ Ｇ２６                …３行
Ｌ１０５０ Ｇ９６  Ｓ２００      …４行
Ｌ１１００ Ｘ１００.０ Ｒ１      …５行
Ｌ２１００ Ｘ５５０.０ Ｒ１      …６行
Ｌ２１５０ Ｇ９７                …７行
Ｌ２２００ Ｇ２５                …８行
Ｌ２３００ Ｘ５５０.０ Ｒ１      …９行
Ｌ４３００ Ｘ５００.０ Ｒ１      …１０行
…
…
従来のパステーブルのデータと相違する点は、主軸速度の監視の開始、終了を指令する「Ｒ６１」、「Ｒ６０」がＩＳＯ準拠のＧコード指令の「Ｇ２６」、「Ｇ２５」に変更され、周速一定制御の開始、終了を指令する「Ｒ４１」、「Ｒ４０」がＩＳＯ準拠のＧコード指令の「Ｇ９６」、「Ｇ９７」に変更されているだけで、他は同じである。
【００１８】
図２は、上述したパステーブルのデータによる基準値Ｌに対して制御軸のＸ軸の移動位置を表す図である。パステーブルの３行目の指令により基準値Ｌが「１０００」に達し、「Ｇ２６」が指令されるまでは、主軸速度の監視は行われておらず（Ｇ２５モード）、基準値Ｌが「１０００」に達して「Ｇ２６」が指令されると、主軸速度の監視が開始され、Ｇ２６モードとなる。そして、パステーブルの８行目の指令により基準値Ｌが「２２００」に達し、「Ｇ２５」が指令されることにより、主軸速度の監視を行わないＧ２５モードとなる。  
以上のように、本実施形態は、パステーブルのデータ中にＩＳＯ準拠のＧコード指令を使用できるようにしたものである。
【００１９】
図３は、このＩＳＯ準拠のＧコード指令を含むパステーブルのデータにより、数値制御装置１のＣＰＵ１１が実行するパステーブル運転の処理のアルゴリズムを示すフローチャートである。  
なお、パステーブルに記憶する基準値を「Ｌ」として表したが、実際に制御軸を同期させるために入力される基準値をこのフローチャートでは「Ｌｍ」と表している。
【００２０】
パステーブル運転指令が入力されると数値制御装置１のＣＰＵ１１は、パステーブルのデータを読み取る位置を指定する指標ｉを「１」にセットし（ステップＳ１）、ＳＲＡＭ１４に格納されているパステーブルよりｉ行目の指令データを読み取る（ステップＳ２）。この読み取ったデータの基準値Ｌｉを移動パスの始点の基準値を記憶するレジスタＭｓ（Ｌ）に格納し、又、制御軸（Ｘ軸）の指令位置Ｘｉを移動パス（経路）の始点の制御軸（Ｘ軸）の位置を記憶するレジスタＭｓ（Ｘ）に格納する（ステップＳ３）。  
次に、パステーブルよりｉ＋１行目の指令データを読み取る（ステップＳ４）。この読み取ったデータの基準値Ｌi+1を移動パスの終点の基準値を記憶するレジスタＭｅ（Ｌ）に格納し、又、制御軸（Ｘ軸）の指令位置Ｘi+1を移動パス（経路）の終点の制御軸（Ｘ軸）の位置を記憶するレジスタＭｅ（Ｘ）に格納する（ステップＳ５）。
【００２１】
次に、読み取ったデータがＧコードか否か判断し（ステップＳ６）、Ｇコードでなければ、パステーブル運転エンド指令か判断し（ステップＳ１６）、パステーブル運転エンドの指令でなければ、入力された基準値Ｌｍを読み出し（ステップＳ８）、該読み出した基準値ＬｍがレジスタＭｅ（Ｌ）に記憶する移動パスの終点の基準値以上か判断し（ステップＳ９）終点の基準値まで達していなければ、パステーブルのｉ＋１行目で指令された関数指令Ｒに基づいて、レジスタＭｓ（Ｌ）、Ｍｓ（Ｘ）に記憶する始点位置と、レジスタＭｅ（Ｌ）、Ｍｅ（Ｘ）に記憶する終点位置を指令された関数Ｒにより接続する輪郭制御による移動指令の分配処理を行い、分配周期毎の制御軸（Ｘ軸）への移動量を制御軸のＸ軸の軸制御回路に出力する（ステップＳ１０）。そして、ステップＳ８に戻り、ステップＳ８からステップＳ１０の処理を分配周期毎実行する。
【００２２】
ステップＳ９で、読み出した基準値ＬｍがレジスタＭｅ（Ｌ）に記憶する移動パスの終点の基準値以上となったことが判別されると、Ｇコードを記憶するレジスタＲ（Ｇ）にＧコードが記憶されているか判断する（ステップＳ１１）。該レジスタＲ（Ｇ）は初期設定で最初はデータが格納されていないので、ステップＳ１１からステップＳ１４に移行し、指標ｉを１インクリメントし、レジスタＭｅ（Ｌ）に記憶する基準値をレジスタＭｓ（Ｌ）に、レジスタＭｅ（Ｘ）に記憶する制御軸（Ｘ軸）の位置をレジスタＭｓ（Ｘ）に格納し、次の始点位置をレジスタＭｓ（Ｌ）、Ｍｓ（Ｘ）に格納する（ステップＳ１５）。そして、ステップＳ４に戻り、ｉ＋１行目の指令データを読み取り、この読み取ったデータの基準値Ｌi+1をレジスタＭｅ（Ｌ）に格納し、又、制御軸（Ｘ軸）の指令位置Ｘi+1レジスタＭｅ（Ｘ）に格納して、次のパス（経路）の終点位置をＭｅ（Ｌ）、Ｍｅ（Ｘ）に格納する（ステップＳ５）。
【００２３】
又、ステップＳ６で、読み出したデータがＧコードの指令であると、該ＧコードをレジスタＲ（Ｇ）に格納し（ステップＳ７）、ステップＳ８に移行する。  
又、ステップＳ１１でレジスタＲ（Ｇ）にＧコードが格納されていることが判別されたときには、該レジスタＲ（Ｇ）に記憶するＧコードの指令を実行し、該Ｇコードに応じた制御モードに切り換え（ステップＳ１２）、レジスタＲ（Ｇ）をクリアし（ステップＳ１３）、ステップＳ１４に移行する。  
以下、上述した処理を実行し、テーブル運転エンドの指令が読み込まれると（ステップＳ１６）、このテーブル運転処理は終了する。
【００２４】
前述した本実施形態のパステーブルデータ例２で説明すると、まず指標ｉが１にセットされて１行目のデータが読み出され、ステップＳ３で、レジスタＭｓ（Ｌ）に「０」、レジスタＭｓ（Ｘ）に「０．０」、ステップＳ５で、レジスタＭｅ（Ｌ）に「９００」、レジスタＭｅ（Ｘ）に「１００．０」が格納され、ステップＳ８〜ステップＳ１０の処理に基づいて、図２に示すように、（Ｌ、Ｘ）が（０、０．０）から（９００、１００．０）まで指令されたＲ１の１次関数により接続する輪郭制御による移動指令の分配処理が行われて、移動指令が制御軸（Ｘ軸）の軸制御回路（３０）に出力されることになる。
【００２５】
そして、読み出した基準値ＬｍがレジスタＭｅ（Ｌ）に記憶する「９００」以上になると、ステップＳ１５で、レジスタＭｓ（Ｌ）、Ｍｓ（Ｘ）にそれぞれ、「９００」、「１００．０」が格納され、ステップＳ４で３行目のデータ「Ｌ１０００  Ｇ２６」が読み出されることになるから、レジスタＭｅ（Ｌ）には「１０００」が格納されるが、レジスタＭｅ（Ｘ）は書き換えられず「１００．０」を記憶したままとなる。又、「Ｇ２６」が読み込まれたことから、ステップＳ６からステップＳ７に移行して、レジスタＲ（Ｇ）に主軸速度監視開始指令の「Ｇ２６」のコードが記憶される。そして、ステップＳ８〜Ｓ１０の処理が実行されるが、この処理では（Ｌ、Ｘ）が（９００、１００．０）から（１０００、１００．０）まで指令されたＲ１の１次関数により図２に示すように直線の経路で移動指令が出力されることになる。
【００２６】
読み出した基準値ＬｍがレジスタＭｅ（Ｌ）に記憶する「１０００」以上となると、ステップＳ１１に移行して、レジスタＲ（Ｇ）に「Ｇ２６」のコードが記憶されていることが検出されるので、該Ｇ２６の指令が実行され主軸速度の監視が開始される（ステップＳ１２）。そして、レジスタＲ（Ｇ）の記憶をクリアして（ステップＳ１３）、ステップＳ１４に移行する。指標ｉがインクリメントとされ、レジスタＭｓ（Ｌ）、Ｍｓ（Ｘ）にそれぞれ「１０００」「１００．０」が格納されて、レジスタＭｅ（Ｌ）には、パステーブルの４行目のデータ「１０５０」が格納され、レジスタＲ（Ｇ）に「Ｇ９６」のコードが記憶される（レジスタＭｅ（Ｘ）に記憶する値の変更はない）。ステップＳ８〜Ｓ１０の処理で、図２に示すように、（Ｌ、Ｘ）が（１０００、１００．０）から（１０５０、１００．０）まで指令されたＲ１の１次関数による直線の経路で移動指令が出力されることになる。
読み出した基準値ＬｍがレジスタＭｅ（Ｌ）に記憶する「１０５０」以上となる、ステップＳ１２の処理で、レジスタＲ（Ｇ）の記憶する「Ｇ９６」のコードによる周速（Ｓ＝２００）一定制御の開始指令が出力され、図２に示すように、Ｇ９６モードの周速一定制御モードとなる。
そして、レジスタＭｓ（Ｌ）、Ｍｓ（Ｘ）にそれぞれ「１０５０」、「１００．０」が格納され、レジスタＭｅ（Ｌ）、Ｍｅ（Ｘ）には、５行目のデータ「１１００」、「１００．０」が格納され、ステップＳ８〜Ｓ１０の処理で、図２に示すように、（Ｌ、Ｘ）が（１０５０、１００．０）から（１１００、１００．０）まで指令されたＲ１の１次関数による直線の経路で移動指令が出力されることになる。
【００２７】
読み出した基準値ＬｍがレジスタＭｅ（Ｌ）に記憶する「１１００」以上となると、レジスタＭｓ（Ｌ）、Ｍｓ（Ｘ）にそれぞれ「１１００」「１００．０」が格納されて、レジスタＭｅ（Ｌ）、Ｍｅ（Ｘ）には、パステーブルの６行目のデータ「２１００」、「５５０．０」が格納され、図２に示すように、（Ｌ、Ｘ）が（１１００、１００．０）から（２１００、５５０．０）まで指令されたＲ１の１次関数による直線の経路で移動指令が出力されることになる。
【００２８】
読み出した基準値ＬｍがレジスタＭｅ（Ｌ）に記憶する「２１００」以上となると、レジスタＭｓ（Ｌ）、Ｍｓ（Ｘ）にそれぞれ「２１００」、「５５０．０」が格納されて、レジスタＭｅ（Ｌ）には、パステーブルの７行目のデータ「２１５０」が格納され、レジスタＭｅ（Ｘ）は書き換えられず「５５０．０」のままである。そして、「Ｇ９７」がレジスタＲ（Ｇ）に格納される。  
読み出した基準値ＬｍがレジスタＭｅ（Ｌ）に記憶する「２１５０」以上となると、ステップＳ１２でレジスタＲ（Ｇ）の記憶する「Ｇ９７」のコードにより周速一定制御の終了指令が出力され、図２に示すように、Ｇ９７モードの周速一定制御解除のモードとなる。
そして、レジスタＭｓ（Ｌ）、Ｍｓ（Ｘ）には、それぞれ「２１５０」、「５５０．０」が格納され、８行目のデータが読まれ、レジスタＭｅ（Ｌ）に「２２００」、レジスタＲ（Ｇ）に「Ｇ２５」が格納され、レジスタＭｅ（Ｘ）は変化なく「５５０．０」が記憶されたままとなる。そして、（Ｌ、Ｘ）が（２１５０、５５０．０）から（２２００、５５０．０）まで指令されたＲ１の１次関数による直線の経路で移動指令が出力されることになる。
【００２９】
読み出した基準値ＬｍがレジスタＭｅ（Ｌ）に記憶する「２２００」以上となると、ステップＳ９、ステップＳ１１からステップＳ１２に移行し、レジスタＲ（Ｇ）に記憶する「Ｇ２５」の主軸速度監視の終了指令が出力される（ステップＳ１２）。次にレジスタＭｓ（Ｌ）、Ｍｓ（Ｘ）にそれぞれ「２２００」、「５５０．０」が格納されて、レジスタＭｅ（Ｌ）、Ｍｅ（Ｘ）には、パステーブルの９行目のデータ「２３００」、「５５０．０」が格納され、（Ｌ、Ｘ）が（２２００、５５０．０）から（２３００、５５０．０）まで指令されたＲ１の１次関数による直線の経路で移動指令が出力されることになる。
【００３０】
さらに、読み出した基準値ＬｍがレジスタＭｅ（Ｌ）に記憶する「２３００」以上となると、レジスタＭｓ（Ｌ）、Ｍｓ（Ｘ）にそれぞれ「２３００」「５５０．０」が格納されて、レジスタＭｅ（Ｌ）、Ｍｅ（Ｘ）には、パステーブルの１０行目のデータ「４３００」、「５００．０」が格納され、（Ｌ、Ｘ）が（２３００、５５０．０）から（４３００、５００．０）まで指令されたＲ１の１次関数による直線の経路で移動指令が出力されることになる。
【００３１】
上述した実施形態では、Ｇコード判別手段や、Ｇコードを記憶するレジスタを設けて、パステーブル運転中にパステーブルに設定記憶されたＧコードによって、主軸速度監視等のＧコード指令を実行できるようにしたが、パステーブル運転中にＧコードプログラムを読み出して、実行させるようにすることもできる。
【００３２】
このＧコードプログラム呼び出し指令を含むパステーブルデータ例（以下パステーブルデータ例３）を次に示す。
＜パステーブルデータ例３＞
Ｌ０ Ｘ０.０ Ｒ１                  …１行
Ｌ９００ Ｘ１００.０ Ｒ１          …２行
Ｌ１０００ Ｍ９８  Ｐ９９９８      …３行
Ｌ１１００ Ｘ１００.０ Ｒ１        …４行
Ｌ２１００ Ｘ５５０.０ Ｒ１        …５行
Ｌ２３００ Ｘ５５０.０ Ｒ１        …６行
Ｌ４３００ Ｘ５００.０ Ｒ１        …７行
…
…
このパステーブルデータによるＸ軸の移動経路は図４に示すものとなる。  
このパステーブルデータにおける３行目の「Ｍ９８」がＧコードプログラム読み出す指令であり、「Ｐ９９９８」が読み出されるＧコードプログラムＯ９９９８を指定する指令であり、ＧコードプログラムＯ９９９８は、例えば、次のようなＧコードプログラムとなる。
【００３３】
Ｏ９９９８
Ｇ００  Ｙ０．０  Ｚ１０．０
Ｇ０２  Ｙ１０．０  Ｚ０．０ Ｒ１０．０
Ｇ０１  Ｙ２０．０  Ｚ０．０
…
…
上述したパステーブルのデータにおいて、３行目のＧコードプログラム読み出し指令「Ｍ９８」が指令された「Ｌ１０００」がＧコードプログラムをサブプログラムとして実行する起動タイミングの基準値となる。
【００３４】
この場合、パステーブル運転が実行されると共に、Ｇコードプログラムも別タスクで実行されるものであることから、パステーブル運転で駆動制御される制御軸と、Ｇコードプログラムで駆動制御される制御軸は異なったものとなる。上述した例では、パステーブル運転ではＸ軸が駆動制御され、ＧコードプログラムではＹ軸、Ｚ軸が駆動制御される例を示している。
【００３５】
図５は、パステーブル運転中にＧコードプログラムを呼び出し実行させるパステーブル運転処理のアルゴリズムを示すフローチャートである。
【００３６】
この処理は図３に示した処理とほぼ同一であり、図３に示した処理のステップＳ６、Ｓ７、Ｓ１１、Ｓ１２、Ｓ１３が相違し、この相違する処理をステップＳ６’、Ｓ７’、Ｓ１１’、Ｓ１２’、Ｓ１３’とし、他の処理は同じで、同一の処理は同じステップ番号を付している。
【００３７】
パステーブル運転指令が入力されると、数値制御装置１のＣＰＵ１１は、ステップＳ１以下の処理を開始するが、ステップＳ１〜ステップＳ５までの処理は、図３に示した第１の実施形態と同じであるので説明を省略する。
【００３８】
読み出したパステーブルデータより、Ｇコードプログラム読み出し指令（Ｍ９８）が読み出されると（ステップＳ６’）、読み出したプログラム指定指令を記憶するレジスタＲ（Ｐ）にプログラム指定指令を格納する（ステップＳ７’）。
【００３９】
次に、図３のステップＳ８〜Ｓ１０の処理と同じ処理を実行し、制御軸（Ｘ軸）に移動指令を出力する。読み出した基準値ＬｍがレジスタＭｅ（Ｌ）に記憶するパス（経路）の終点の基準値以上となると、レジスタＲ（Ｐ）にプログラム番号が格納されているか判断し（ステップＳ１１’）、格納されてなければ、図３の処理と同じステップＳ１４、Ｓ１５の処理を行い、ステップＳ４に戻る。一方、レジスタＲ（Ｐ）にプログラム指定指令が格納されているときは、該格納されているプログラム指定指令で指定されたＧコードプログラムの実行指令を出力し（ステップＳ１２’）、該レジスタＲ（Ｐ）の記憶データをクリアし（ステップＳ１３’）、ステップＳ１４に移行する。
【００４０】
ステップＳ１２’で指定したＧコードプログラムの実行指令が出力されることで、ＣＰＵ１１は、このパステーブル運転のタスクとは別タスクで、指定されたプログラム番号のＧコードプログラムを実行することになる。
【００４１】
前述したパステーブルデータ例３で説明すると、３行目のデータが読み込まれると、ステップＳ７’でレジスタＲ（Ｐ）に「Ｐ９９９８」のプログラム指定指令が格納され、読み出した基準値Ｌｍが、３行目のデータで指定されているプログラム呼び出し指令の基準値「１０００」以上となると、ステップＳ１２’で、この指定されたプログラム指定指令のプログラム「Ｏ９９９８」の実行指令が出力されることになり、前述したＧコードプログラム「Ｏ９９９８」が実行することになる。その結果、Ｘ軸はパステーブル運転で駆動制御され、Ｙ軸、Ｚ軸はＧコードプログラムによって駆動制御されることになる。
【図面の簡単な説明】
【００４２】
【図１】本発明の一実施形態における数値制御装置の要部ブロック図である。
【図２】本発明の第１の実施形態における基準値Ｌに対して制御軸のＸ軸の移動位置を表す図である。
【図３】同第１の実施形態のパステーブル運転処理のアルゴリズムを示すフローチャートである。
【図４】本発明の第２の実施形態における基準値Ｌに対して制御軸のＸ軸の移動位置を表す図である。
【図５】同第２の実施形態のパステーブル運転処理のアルゴリズムを示すフローチャートである。
【符号の説明】
【００４３】
１  数値制御装置
４ｘ  Ｘ軸サーボモータ
４ｙ  Ｙ軸サーボモータ
４ｚ  Ｚ軸サーボモータ
５  主軸モータ
【図１】
2008234319.tif 000003
【図２】
2008234319.tif 000004
【図３】
2008234319.tif 000005
【図４】
2008234319.tif 000006
【図５】
2008234319.tif 000007
【手続補正書】
【提出日】平成19年12月20日(2007.12.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
時間あるいは主軸位置を基準とし、該基準の値と制御軸の位置とを対応させたテーブル形式データをメモリに設けられたパステーブルに格納しておき、該テーブル形式データに基づいて、入力される基準の値に対する制御軸の位置を順次読み出し、入力された基準の値に同期して制御軸の位置を制御するパステーブル運転を実行する数値制御装置において、
前記パステーブル中に、ＩＳＯ準拠のＧコード指令を、その指令を実行する基準の値に対応して設定記憶しておき、
パステーブル運転中に前記パステーブルから読み出した指令中にＧコード指令が含まれているか判別する判別手段と、
入力された基準の値が、前記Ｇコード指令が設定された基準の値に達した時にＧコード指令を実行する手段と、
を備えたことを特徴とするパステーブル運転でＧコード指令を実行可能な数値制御装置。
【請求項２】
時間あるいは主軸位置を基準とし、該基準の値と制御軸の位置とを対応させたテーブル形式データをメモリに設けられたパステーブルに格納しておき、該テーブル形式データに基づいて、入力される基準の値に対する制御軸の位置を順次読み出し、入力された基準の値に同期して制御軸の位置を制御するパステーブル運転を実行する数値制御装置において、
前記パステーブル中に、ＩＳＯ準拠のＧコードプログラムを呼び出す指令を、該指令を実行する基準の値に対応して設定記憶しておき、
パステーブル運転中に前記パステーブルから読み出した指令中にＧコードプログラムを呼び出す指令が含まれているか判別する判別手段と、
入力された基準の値が、前記Ｇコードプログラム呼び出し指令が設定された基準の値に達した時に指令されたＧコードプログラムを実行開始する手段と、
を備えたことを特徴とするパステーブル運転でＧコード指令を実行可能な数値制御装置。