(57)【要約】【課題】ＮＣプログラムの指令の間で実行順序の指定をすることが可能な数値制御装置を提供すること。【解決手段】本発明の数値制御装置１は、少なくとも１つのＮＣプログラムを実行して複数の系統を制御しており、該ＮＣプログラムには、複数の系統のそれぞれを制御するための指令の間の実行順序を指定できる順序指定指令が含まれ、ＮＣプログラムに含まれる指令を読み出して解析し、該指令の実行順序が順序指定指令で指定されている場合に、実行順序を付した指令データを出力する少なくとも１つの指令解析部１００と、指令解析部１００が出力した実行順序を付した指令データに基づいて、該実行順序に従って各系統の指令処理を実行する少なくとも１つの指令実行部１２０と、を備える。【選択図】図２
2019012472.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのＮＣプログラムを実行して複数の系統を制御する数値制御装置において、
前記ＮＣプログラムには、前記複数の系統のそれぞれを制御するための指令の間の実行順序を指定できる順序指定指令が含まれ、
前記ＮＣプログラムに含まれる指令を読み出して解析し、該指令の実行順序が前記順序指定指令で指定されている場合に、実行順序を付した指令データを出力する少なくとも１つの指令解析部と、
前記指令解析部が出力した実行順序を付した指令データに基づいて、該実行順序に従って各系統の指令処理を実行する少なくとも１つの指令実行部と、
を備える数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置に関し、特に指令の順序指定が可能な数値制御装置に関する。
【背景技術】
【０００２】
数値制御装置による工作機械の制御に用いる多系統プログラムにおいては、系統間での待合せ命令を指令することで同期を取ることができる。これは、系統間で同時に加工を開始したいブロックがある場合や、待合せ後に経路の計算が必要な場合などに有効な命令である。従来の系統間の待合せ処理は、図１１に示すように、待合せをするそれぞれの系統のＮＣプログラムに予め待合せ命令を埋め込んでおき、プログラム解析処理において待合せ命令を検知した時に、検知した系統のＮＣプログラム解析処理を一時停止するものである。その後、指定された他の系統の待合せ命令の到達を待って処理を再開する（例えば、特許文献１など）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０１−２９５７４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、工程の集約が進むことにより１台の制御装置で、加工だけでなくワークのハンドリングや測定処理などを行うことが求められている。ワークのハンドリングや測定処理の制御では、他の系統との間での同時性は必要とされないことが多いが、処理の順序関係を指定通りに保ちながら、他の系統と並行して制御する必要がある。
【０００５】
例えば、図１２に示すように、切削加工後にワークの搬送を行うような場合には、搬送装置の動作Ｂの開始を待つことなく、工具の退避行動Ａを開始することが可能であり、一方で、搬送装置は工具の退避Ａが開始されたあとであればいつでも搬送動作Ｂを開始しても干渉することは無い。また、図１３に示すように、工具による退避行動Ａよりも搬送装置の搬送動作Ｂが遅く、搬送動作Ｂにおけるブロックｂ−１の終了時点で工具の退避Ａが開始されている場合には、ブロックｂ−１の終了時点で待合わせをすることなく、ブロックｂ−１とブロックｂ−２をオーバラップさせて搬送動作Ｂを行っても問題は無い。
【０００６】
しかしながら、従来技術を用いる場合、各系統間での干渉を防ぐためにはＮＣプログラム中に待合せ命令を追加しておく必要があり、待合せ命令を用いると、工具も搬送装置も待合せブロックにおいて一旦停止する瞬間が発生してしまい、サイクルタイムが伸びる原因となるという問題があった。お互いの干渉を防ぐなどの目的で、片方の系統だけがもう一方の系統の動作を待つ必要がある場合には、図１２，１３で説明したように両系統が同期する待合せ処理を行う必要はない。
【０００７】
このような課題を解決するために、従来はラダープログラムなどで機械座標を監視して、状況を判断してインタロックを掛けたり、制御指令の開始処理を抑制（シングルブロック停止）したりすることで、無駄の排除を実現してきたが、並列実行されているＮＣプログラムとラダープログラムの処理を組み合わせると、それぞれのプログラムが相手のプログラムの処理結果を待つ必要があるため、応答性の低下が引き起こされるという別の問題が生じる。
【０００８】
そこで本発明の目的は、ＮＣプログラムの指令の間で実行順序の指定をすることが可能な数値制御装置を提供することである。
【課題を解決するための手段】
【０００９】
本発明では、異なる系統のＮＣプログラムで待合せ指令において、実行順序関係を指定する手段を提供することにより上記課題を解決する。本発明の数値制御装置は、例えば２つの系統のそれぞれの指令の間で実行順序関係を指定する場合、系統１のＮＣプログラム中のブロックＡ（指令Ａ）に１番、系統２のＮＣプログラム中のブロックＢ（指令Ｂ）に２番を指定する。このように指定した場合、本発明の数値制御装置は、ＮＣプログラムの実行時に、指令Ａの開始後に指令Ｂが開始する場合には、指令Ａ，指令Ｂ共に待合せの処理は行わず、指令Ａの開始前に指令Ｂが開始しようとする場合には、指令Ｂの開始処理を抑制して指令Ａの実行開始を待つように制御する。
【００１０】
本発明による順序関係の指定は、複数のブロックの開始タイミングに対してのみでなく、１番の指令Ａの実行の終了と、２番の指令Ｂの実行の開始とに順序関係を指定できるようにしても良い。また、本発明による順序関係の指定は、３系統以上での各指令間の順序の指定も、１番→２番→３番と番号を続けることで指定することが出来る。
【００１１】
そして、本発明の一態様は、少なくとも１つのＮＣプログラムを実行して複数の系統を制御する数値制御装置において、前記ＮＣプログラムには、前記複数の系統のそれぞれを制御するための指令の間の実行順序を指定できる順序指定指令が含まれ、前記ＮＣプログラムに含まれる指令を読み出して解析し、該指令の実行順序が前記順序指定指令で指定されている場合に、実行順序を付した指令データを出力する少なくとも１つの指令解析部と、前記指令解析部が出力した実行順序を付した指令データに基づいて、該実行順序に従って各系統の指令処理を実行する少なくとも１つの指令実行部と、を備える数値制御装置である。
【発明の効果】
【００１２】
本発明により、ＮＣプログラム作成者は複雑な制御を入力することなく、処理の順序関係を指定通りに保ちながら複数の系統を並行して制御することが可能となるため、余分な待合せや一時停止が発生しなくなり、プログラム処理の応答性を低下させること無く加工におけるサイクルタイムを向上させることができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施形態による数値制御装置と該数値制御装置によって駆動制御される加工機の要部を示す概略的なハードウェア構成図である。
【図２】第１の実施形態による数値制御装置の概略的な機能ブロック図である。
【図３】位置実施形態による数値制御装置が実行する実行順序指定処理の概略的なフローチャートである。
【図４】２系統間の実行順序指定の例を示す図である。
【図５】２系統間の実行順序指定時のタイムチャートを示す図である。
【図６】１プログラムで２系統を制御する場合の実行順序指定の例を示す図である。
【図７】１プログラムで２系統を制御する場合の実行順序指定時のタイムチャートを示す図である。
【図８】多系統間の実行順序指定の例を示す図である。
【図９】多系統間の実行順序指定時のタイムチャートを示す図である。
【図１０】第２の実施形態による数値制御装置の概略的な機能ブロック図である。
【図１１】従来技術による系統間の待合せ処理の例を示す図である。
【図１２】従来技術による系統間の待合せ処理の問題を説明する図である。
【図１３】従来技術による系統間の待合せ処理の他の問題を説明する図である。
【発明を実施するための形態】
【００１４】
以下に本発明を実現するための数値制御装置の構成例を示す。
【００１５】
図１は本発明の第１の実施形態による数値制御装置と該数値制御装置によって駆動制御される加工機の要部を示す概略的なハードウェア構成図である。本実施形態による数値制御装置１が備えるＣＰＵ１１は、数値制御装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステム・プログラムをバス２０を介して読み出し、該システム・プログラムに従って数値制御装置１全体を制御する。ＲＡＭ１３には一時的な計算データや表示データ及び後述する表示器／ＭＤＩユニット７０を介してオペレータが入力した各種データ等が格納される。
【００１６】
不揮発性メモリ１４は、例えば図示しないバッテリでバックアップされるなどして、数値制御装置１の電源がオフされても記憶状態が保持されるメモリとして構成される。不揮発性メモリ１４には、インタフェース１５を介して読み込まれたＮＣプログラムや後述する表示器／ＭＤＩユニット７０を介して入力されたＮＣプログラムに加えて、加工に使用する工具の切削条件の推奨値を含む工具データなどが記憶されている。不揮発性メモリ１４には更に、ＮＣプログラムを運転するために用いられるＮＣプログラム運転処理用プログラム等が記憶されるが、これらプログラムは実行時にはＲＡＭ１３に展開される。また、ＲＯＭ１２には、ＮＣプログラムの作成及び編集のために必要とされる編集モードの処理などを実行するための各種のシステム・プログラム（指令実行順序指定機能のシステム・プログラムを含む）があらかじめ書き込まれている。
【００１７】
インタフェース１５は、数値制御装置１とアダプタ等の外部機器７２と接続するためのインタフェースである。外部機器７２側からはＮＣプログラムや各種パラメータ等が読み込まれる。また、数値制御装置１内で編集したＮＣプログラムは、外部機器７２を介して外部記憶手段に記憶させることができる。ＰＭＣ（プログラマブル・マシン・コントローラ）１６は、数値制御装置１に内蔵されたシーケンス・プログラムで加工機の周辺装置（例えば、工具交換用のロボットハンドといったアクチュエータ）にＩ／Ｏユニット１７を介して信号を出力し制御する。また、加工機の本体に配備された操作盤の各種スイッチ等の信号を受け、必要な信号処理をした後、ＣＰＵ１１に渡す。
【００１８】
表示器／ＭＤＩユニット７０はディスプレイやキーボード等を備えた手動データ入力装置であり、インタフェース１８は表示器／ＭＤＩユニット７０のキーボードからの指令，データを受けてＣＰＵ１１に渡す。インタフェース１９は各軸を手動で駆動させる際に用いる手動パルス発生器等を備えた操作盤７１に接続されている。
【００１９】
加工機が備える軸を制御するための軸制御回路３０はＣＰＵ１１からの軸の移動指令量を受けて、軸の指令をサーボアンプ４０に出力する。サーボアンプ４０はこの指令を受けて、加工機が備える軸を移動させるサーボモータ５０を駆動する。軸のサーボモータ５０は位置・速度検出器を内蔵し、この位置・速度検出器からの位置・速度フィードバック信号を軸制御回路３０にフィードバックし、位置・速度のフィードバック制御を行う。なお、図１のハードウェア構成図では軸制御回路３０、サーボアンプ４０、サーボモータ５０は１つずつしか示されていないが、実際には制御対象となる軸の数に応じて複数用意される。
【００２０】
スピンドル制御回路６０は、加工機への主軸回転指令を受け、スピンドルアンプ６１にスピンドル速度信号を出力する。スピンドルアンプ６１はこのスピンドル速度信号を受けて、加工機のスピンドルモータ６２を指令された回転速度で回転させ、工具を駆動する。
スピンドルモータ６２にはポジションコーダ６３が結合され、ポジションコーダ６３が主軸の回転に同期して帰還パルスを出力し、その帰還パルスはＣＰＵ１１によって読み取られる。
【００２１】
図２は、本発明の実行順序指定機能を実現するためのシステム・プログラムを図１で示した数値制御装置１に実装した場合の、本発明の第１の実施形態による数値制御装置の要部を示す概略的な機能ブロック図である。図２に示した各機能ブロックは、図１に示した数値制御装置１が備えるＣＰＵ１１が、実行順序指定機能のシステム・プログラムを実行し、数値制御装置１の各部の動作を制御することにより実現される。本実施形態の数値制御装置１は、指令解析部１００、指令実行部１２０、補間部１２２、サーボ制御部１２４を備える。本実施形態の数値制御装置１では、指令解析部１００、指令実行部１２０、補間部１２２は各系統に用意するようにしており、また、サーボ制御部１２４は、制御対象となる軸を駆動するサーボモータ５０毎に用意している。また、不揮発性メモリ１４にはＮＣプログラムを記憶するためのＮＣプログラム格納領域２００が確保されており、ＮＣプログラム格納領域２００には各系統を制御するＮＣプログラムが予め格納されている。なお、ＮＣプログラム格納領域２００に格納されているＮＣプログラムは、系統毎に１つのＮＣプログラムを用意するようにしても良いが、１つのＮＣプログラムに複数の系統を制御するための指令を含めるようにしても良く、その場合、指令解析部１００は、同時に実行するＮＣプログラムの数だけ用意される。
【００２２】
指令解析部１００は、ＮＣプログラム格納領域２００からＮＣプログラムに含まれる指令ブロックを逐次読み出して、読み出した指令ブロックを解析し、指令データを作成する。指令解析部１００が作成する指令データには、例えば制御対象となる各系統の軸を制御するために用いられる移動指令データが含まれる。指令解析部１００は、ＮＣプログラムから読み出したブロックに、指令の実行順序を指定する順序指定指令が含まれている場合には、該順序指定指令により指定された実行順序を付与した指令データを作成する。指令解析部１００が指令データに付与する実行順序は、所定の順序を特定できるラベル（１，２，３…など）として示すことができる。また、指令解析部１００が指令データに付与する実行順序は、実行順序を指定する指令の組毎に識別可能な所定の順序を特定できるラベル（１Ａ，２Ａ，３Ａ…、１Ｂ，２Ｂ，３Ｂ…、など）として示すようにしても良く、このようにすることでＮＣプログラムの中に複数組の実行順序を指定することも可能となる。指令解析部１００は、作成した指令データを系統ごとに用意されている指令実行部１２０に対して出力する。
【００２３】
指令実行部１２０は、指令解析部１００から受けた指令データについて、実行順序を考慮したタイミングでの実行を制御する機能手段である。指令実行部１２０は、例えば指令データに移動指令データが含まれている場合には、該移動指令データを補間部１２２へと引き渡す。指令実行部１２０は、例えば指令解析部１００から受けた指令データをキューに蓄え、キューの先頭にある指令データを補間部１２２へと引き渡すようにしても良い。この場合、指令実行部１２０は、指令の実行順序が指定されていない指令データについては実行順序チェックをすることなく補間部１２２へと引き渡し、指令の実行順序が指定されている指令データについては他の系統の指令実行部１２０との間で実行順序チェック行い、実行する順番が来ている場合に補間部１２２へと引き渡す。指令実行部１２０による実行順序チェックの方法については、例えば各系統の指令実行部１２０の間で共有される共有カウンタを用いる方法や、各系統の指令実行部１２０の間でのプロセス間通信により実行が開始された実行順序のラベル値を他の系統の指令実行部１２０へ通知する（そして、それぞれの指令実行部１２０が実行開始済みの実行順序のラベル値を記憶しておく）方法等が挙げられるが、指定した実行順番に従って指令データを引き渡せるのであれば、どのような方法を用いても良い。なお、複数の指令の組毎に識別可能な所定の順序を特定できるラベル（Ａ１，Ａ２，Ａ３…、Ｂ１，Ｂ２，Ｂ３…、など）を用いる場合には、例えば複数の指令の組毎に共有カウンタを用意したりするなど、複数の順序ラベルの組に対応できるように実装すれば良い。
【００２４】
補間部１２２は、指令実行部１２０から引き渡された指令データ（に含まれる移動指令データ）により指令される指令経路を補間周期毎の移動距離により分割し、補間データを生成する。
サーボ制御部１２４は、補間部１２２が生成した補間データに基づいて制御対象となる軸を駆動するサーボモータ５０を制御する。
【００２５】
図３は、実行順序のチェックにカウンタを用いる場合の、指令解析部１００及び指令実行部１２０の制御周期毎の処理動作を例示するフローチャートである。図３に示す例では、指令実行部１２０は、指令データの管理にキューを用いており、また、系統間での実行順序チェックに、各系統の指令実行部１２０が共有する１つの共有カウンタＣを用いている。処理の開始時点で、共有カウンタＣには、初期値として順序を示すラベルの最も小さな順番（順番を示すラベルが１，２，３…の場合には、１）がセットされる。
【００２６】
●［ステップＳＡ０１］指令解析部１００は、ＮＣプログラム格納領域２００に格納されたＮＣプログラムから指令Ａを取得する。
●［ステップＳＡ０２］指令解析部１００は、ステップＳＡ０１で取得した指令Ａに順序指定が有るか否かを判定する。順序指定が有る場合にはステップＳＡ０３へ処理を移行し、無い場合にはステップＳＡ０４へ処理を移行する。
●［ステップＳＡ０３］指令解析部１００は、指令Ａに指定されている順序ラベルである順序ラベルＣAを付した指令データＡを作成し、指令Ａを実行する系統の指令実行部１２０へと出力する。
●［ステップＳＡ０４］指令解析部１００は、指令Ａに基づいて指令データＡを作成し、指令Ａを実行する系統の指令実行部１２０へと出力する。
【００２７】
●［ステップＳＡ０５］指令実行部１２０は、キューに指令データＡを蓄積する。
●［ステップＳＡ０６］指令実行部１２０は、補間部１２２が実行中の指令が無いかどうかを判定する。実行中の移動指令が無い場合にはステップＳＡ０７へ処理を移行し、実行中の指令が有る場合には今回の制御周期の処理を終了する。
●［ステップＳＡ０７］指令実行部１２０は、キューの先頭の指令データである指令データＢを参照する。
●［ステップＳＡ０８］指令実行部１２０は、指令データＢが順序ラベル付きであるか否かを判定する。指令データＢが順序ラベル付きである場合にはステップＳＡ０９へ処理を移行し、順序ラベルが付いていない場合にはステップＳＡ１１へ処理を移行する。
【００２８】
●［ステップＳＡ０９］指令実行部１２０は、指令データＢに付されている順序番号ＣBの値と共有カウンタＣが示す値とが一致するか否かを判定する。一致する場合にはステップＳＡ１０へ処理を移行し、一致しない場合には今回の制御周期の処理を終了する。
●［ステップＳＡ１０］指令実行部１２０は、共有カウンタＣが示す値を１増加させる。
●［ステップＳＡ１１］指令実行部１２０は、キューから指令データＢを取り出して補間部１２２へと引き渡す。
【００２９】
図４，５は、２系統プログラム間で実行順序を指定した場合における本発明の実施例を示している。
図４において、ＮＣプログラムＯ１００１は第１の系統である搬送装置を、ＮＣプログラムＯ２００１は第２の系統である工具を備えた加工機を、それぞれ制御するためのＮＣプログラムである。図４に示す例では、ワークを工具で加工した後でワークから工具を退避させる動作（ＮＣプログラムＯ２００１のブロックＮ２０〜Ｎ４０）と、その後、搬送装置でワークを取り出す動作（ＮＣプログラムＯ１００１のブロックＮ２０〜Ｎ４０）とがそれぞれのＮＣプログラムに規定されている。図４に示す例における、指令「Ｍ１００Ｐ３」は順序指定指令の例であり、該指令の後ろにＪ１，Ｊ２，Ｊ３…を付与することで次のブロックの指令に対して実行順序を指定するための順序ラベル１，２，３…が指定するものである。図４に示す例におけるＮＣプログラムＯ２００１の順序指定指令「Ｍ１００Ｐ３Ｊ１」は、次のブロックであるＮＣプログラムＯ２００１のブロックＮ４０の実行順序を１番に、ＮＣプログラムＯ１００１の順序指定指令「Ｍ１００Ｐ３Ｊ２」は、次のブロックであるＮＣプログラムＯ１００１のブロックＮ４０の実行順序を２番に、それぞれ指定する。
【００３０】
このような各系統のＮＣプログラムを本発明の数値制御装置１で実行すると、図５のタイムチャートに示されるように、ＮＣプログラムＯ２００１のブロックＮ２０の実行がＮＣプログラムＯ１００１のブロックＮ２０の実行に先立って完了し、ＮＣプログラムＯ２００１のブロックＮ４０の実行が開始された場合（共有カウンタＣの値が１増加する）、ＮＣプログラムＯ１００１のブロックＮ４０の指令データが指令実行部１２０のキューの先頭に来た時、既に共有カウンタＣの値は２となっているため、該指令データはそのまま補間部１２２へと引き渡されて実行される。
【００３１】
一方で、ＮＣプログラムＯ２００１のブロックＮ２０の実行が完了しておらず、ＮＣプログラムＯ２００１のブロックＮ４０の実行が開始されていない場合（共有カウンタＣの値が初期値のまま）、ＮＣプログラムＯ１００１のブロックＮ４０の指令データが指令実行部１２０のキューの先頭に来た時点で共有カウンタＣの値が１であるため、ＮＣプログラムＯ２００１のブロックＮ２０の実行が完了してＮＣプログラムＯ２００１のブロックＮ４０の実行が開始されるまでは該指令データの実行は行われずに待たされることとなる。
【００３２】
図６，７は、１つのプログラムで２系統の制御を行っている場合において実行順序を指定する本発明の実施例を示している。
図６において、ＮＣプログラムＯ１００１は第１の系統である搬送装置と第２の系統である工具を備えた加工機の両方を制御するためのＮＣプログラムであり、第１の系統を制御するブロックは指令「ＰＡＴＨ１」を含み、第２の系統を制御するブロックは指令「ＰＡＴＨ２」を含んでいる。また、図６に示した例では、指令間の実行順序を指定するための順序指定指令「／／−＞」を導入しており、該順序指定指令を用いることで、該順序指定指令の前に記載された指令が実行開始されるまでは、該記号の後に記載された指令を開始することができないことを指定できる。順序指定指令「／／−＞」は、１つのブロックに複数記載しても良く、例えば、３つの系統を１つのプログラムで制御する場合には、各系統を制御する３つの指令を２つの順序指定指令「／／−＞」で区切ることで、３つの系統の指令の間に任意の実行順序を指定することができる。なお、全ての系統を１つのＮＣプログラムにより制御する場合には、指令解析部１００は上記したように全ての系統に対して１つだけ用意され、１つの指令解析部１００が全系統の指令データを作成する。例えば、指令解析部１００は、図６に示したＮ４０ブロックを読み込んで解析すると、系統１用の順序ラベル付きの指令データと、系統２用の順序ラベル付きの指令データとをそれぞれ作成し、それぞれの系統の指令実行部１２０へと出力する。
【００３３】
このような各系統のＮＣプログラムを本発明の数値制御装置１で実行すると、図７のタイムチャートに示されるように、ブロックＮ２１の実行がブロックＮ２２の実行に先立って完了し、ブロックＮ４０の系統２の指令（順序指定指令「／／−＞」の左に記載された指令）の実行が開始された場合（共有カウンタＣの値が１増加する）、ブロックＮ４０の系統１の指令データ（順序指定指令「／／−＞」の右に記載された指令「Ｇ０１Ｚ−１００」に基づく指令データ）が指令実行部１２０のキューの先頭に来た時、既に共有カウンタＣの値は２となっているため、該指令データはそのまま補間部１２２へと引き渡されて実行される。
【００３４】
一方で、ブロックＮ２１の実行が完了しておらず、ブロックＮ４０の系統２の指令（順序指定指令「／／−＞」の左に記載された指令）の実行が開始されていない場合（共有カウンタＣの値が初期値のまま）、ブロックＮ４０の系統１の指令データ（順序指定指令「／／−＞」の右に記載された指令「Ｇ０１Ｚ−１００」に基づく指令データ）が指令実行部１２０のキューの先頭に来た時、共有カウンタＣの値が１であるため、ブロックＮ２２の実行が完了してブロックＮ４０の系統２の指令が開始されるまでは該指令データの実行は行われずに待たされることとなる。
【００３５】
図８，９は、多系統のプログラムの間で実行順序を指定した場合における本発明の実施例を示している。
図８では、ＮＣプログラムＯ１００１は第１の系統を、ＮＣプログラムＯ２００１は第２の系統を、ＮＣプログラムＯ３００１は第３の系統を、ＮＣプログラムＯ４００１は第４の系統を、それぞれ制御するためのＮＣプログラムであり、それぞれのＮＣプログラムのブロックＮ３０の順序指定指令「Ｍ１００Ｐ３」で各ＮＣプログラムのブロックＮ４０の指令の実行順序が指定されている。図８に示した例では、ＮＣプログラムＯ２００１のブロックＮ４０が実行順序１、ＮＣプログラムＯ１００１のブロックＮ４０及びＮＣプログラムＯ４００１のブロックＮ４０が実行順序２、ＮＣプログラムＯ３００１のブロックＮ４０が実行順序３に指定されている。なお、この例では、同じ実行順序が指定された指令が複数有る場合には、これら指令の間には順序関係を定義せず、実行順序１に指定された指令が実行された後であれば、実行順序２に指定された指令のいずれも実行可能になるものとする。
【００３６】
このような各系統のＮＣプログラムを本発明の数値制御装置１で実行すると、図８のタイムチャートに示されるように、ＮＣプログラムＯ１００１のブロックＮ２０の実行が完了した時点でＮＣプログラムＯ２００１のブロックＮ４０の実行が開始されていない場合は、ＮＣプログラムＯ１００１のブロックブロックＮ４０の実行は待たされることとなり、一方で、ＮＣプログラムＯ４００１のブロックＮ２０が完了した時点でＮＣプログラムＯ２００１のブロックＮ４０の実行が開始されている場合には、ＮＣプログラムＯ４００１のブロックＮ４０は待たされることなく実行されることとなる。また、ＮＣプログラムＯ３００１のブロックＮ４０については、ＮＣプログラムＯ１００１のブロックＮ４０，ＮＣプログラムＯ２００１のブロックＮ４０、ＮＣプログラムＯ４００１のブロックＮ４０の実行が開始されるまでその実行を待たされることになる。
【００３７】
このように、上記構成を備えた本発明の数値制御装置１では、ＮＣプログラムに対して簡単な記載を追加することにより、各系統を制御するＮＣプログラムの指令の間で実行順序を指定することが可能となる。本発明の数値制御装置１では、ラダープログラムなどで機械座標を監視して、状況を判断してインタロックを掛けたり、制御指令の開始処理を抑制（シングルブロック停止）したりする必要が無いため、プログラムの実行における応答性を低下させること無く、実行順序の指定が可能である。
【００３８】
上記した実施の形態では、実行順序が指定された指令が主に移動指令である場合の実施例を示したが、本発明の実行順序指定機能は移動指令以外の指令に対しても適用可能である。図１１は、本発明の第２の実施形態による数値制御装置の要部を示す概略的な機能ブロック図である。図１１に示した各機能ブロックは、図１に示した数値制御装置１が備えるＣＰＵ１１が、実行順序指定機能のシステム・プログラムを実行し、数値制御装置１の各部の動作を制御することにより実現される。本実施形態の数値制御装置１は、指令解析部１００、指令実行部１２０、補間部１２２、サーボ制御部１２４、計測部１２６を備える。本実施形態の数値制御装置１では、指令解析部１００、指令実行部１２０は各系統に用意するようにしており、また、補間部１２２は移動指令を処理する各系統に、計測部１２６は図示しない計測装置を取り扱う各系統に、それぞれ用意され、更に、サーボ制御部１２４は、制御対象となる軸を駆動するサーボモータ５０毎に用意している。その他の構成については第１の実施形態と同様である。
【００３９】
このように構成された本実施形態による数値制御装置１では、第１の実施形態と同様に、それぞれの指令解析部１００は、ＮＣプログラム格納領域２００からＮＣプログラムに含まれる指令ブロックを解析して、順序指定指令に従って実行順序を付与した指令データを作成し、それぞれの指令実行部１２０は、実行順序が付与された指令データを実行する際に、指定された実行順番が守られるように補間部１２２乃至計測部１２６に対して指令データを引き渡すように動作する。このような各機能手段の動作により、例えば工具の移動完了後に計測装置の値を取得する、といったような、移動制御と計測制御などの他の処理とを組み合わせた実行順序の制御も容易に行うことができるようになる。
【００４０】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
例えば、上記した実施形態ではＮＣプログラム内に順序指定指令「Ｍ１００Ｐ３」を追記したり、順序指定指令／／−＞」を追記したりすることで実行順序の指定ができるようにしているが、この順序指定指令としては、他の指令と識別可能な文字列であればＮＣプログラムの仕様の範囲内でどのようなものを用いても良い。また、実行順序を示すラベルについても、Ｊ１，Ｊ２，Ｊ３…以外の文字列を用いても良く、更に、複数の指令の組毎に識別可能な所定の順序を特定できるラベルを用いる場合においても、他の指令等と識別可能であれば、ＮＣプログラムの仕様の範囲内でどのような文字列を用いても良い。
【００４１】
また、上記した実施形態では、複数の指令の開始タイミングに対して実行順序の指定を行う例を示しているが、前の実行順序の指令が完了した時点で、次の実行順序の指令を開始できるような順序関係を指定できるようにしても良い。また、このような順序関係の指定方法と、複数の指令の開始タイミングに対して実行順序の指定とを、異なる指令や記号を用いて使い分けられるようにしても良い。
【００４２】
更に、上記した実施形態では、複数の系統のそれぞれを個別のプログラムで制御する例と、複数の系統全体を１つのプログラムで制御する例を示したが、これらを混在させ、複数の系統をグループ分けし（各グループには１以上の系統が含まれる）、それぞれのグループを個別のプログラムで制御するようにしてもよい。このようにした場合でも、順序指定指令を適宜用いることで、各指令の実行順序を制御することが可能となる。
【符号の説明】
【００４３】
１  数値制御装置
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
１５，１８，１９  インタフェース
１６  ＰＭＣ
１７  Ｉ／Ｏユニット
２０  バス
３０  軸制御回路
４０  サーボアンプ
５０  サーボモータ
６０  スピンドル制御回路
６１  スピンドルアンプ
６２  スピンドルモータ
６３  ポジションコーダ
７０  表示器／ＭＤＩユニット
７１  操作盤
７２  外部機器
１００  指令解析部
１２０  指令実行部
１２２  補間部
１２４  サーボ制御部
２００  プログラム格納領域
【図１】
2019012472.tif 000003
【図２】
2019012472.tif 000004
【図３】
2019012472.tif 000005
【図４】
2019012472.tif 000006
【図５】
2019012472.tif 000007
【図６】
2019012472.tif 000008
【図７】
2019012472.tif 000009
【図８】
2019012472.tif 000010
【図９】
2019012472.tif 000011
【図１０】
2019012472.tif 000012
【図１１】
2019012472.tif 000013
【図１２】
2019012472.tif 000014
【図１３】
2019012472.tif 000015