(57)【要約】【課題】系統間待合せ部を先読み・解析処理で行うことにより、直前のブロックまでの実行処理が終了していなくても、系統間待合せ処理部の処理を開始することが可能な系統間待合せ機能を有する数値制御装置を提供すること。【解決手段】先読み・解析処理を実行し（２）、コード解析部においてブロックのコードを解析し（３）、系統間待合せコード判断部（４，５）において、コード解析データ中に系統間待合せコードが含まれることが確認できたブロックの場合、先読み・解析一時停止部において先読み・解析処理を一時停止し（６）、指定条件判断部において指定条件を満たしているかどうか判断し（７）、指定条件が満たされたことにより、系統間待合せ部において系統間待合せ（８）を開始し、系統間待合せが成立したら、系統間待合せ破棄再開部（９）において実行データの作成前までに作成したコード解析データを破棄し、即座に次のブロックの先読み・解析処理を開始する。【選択図】図３
2014063389.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つ以上の制御系統を有し、該各々の制御系統でメモリおよび外部記憶手段に登録されている加工プログラムのブロックを順次先読みし、コード解析部においてコード解析データを作成し、機能コード判定部において前記作成したコード解析データの機能を判定し、実行データ作成部において前記機能コード判定部により判定した機能を実行するための実行データを作成する先読み・解析処理を行う数値制御装置において、
前記機能コード判定部で、前記ブロックに系統間待合せコードが含まれていると判断したとき、前記先読み・解析処理を一時停止する先読み・解析一時停止部と、
前記先読み・解析一時停止部によって先読み・解析処理を停止した上で前記系統間待合せコードを含むブロックの直前のブロックの実行状態を確認し、前記系統間待合せコードを含むブロックで指令された系統間の待合せを実行するための条件を指定した指定条件を満たしているかどうかを判断する指定条件判断部と、
前記指定条件判断部によって指定条件を満たしたと判断したら、前記系統間待合せコードを含むブロックで指令される系統間待合せの対象の系統と加工プログラムの待合せを実行する系統間待合せ部と、
前記系統間待合せの対象の系統で同一の系統間待合せコードによる系統間待合せが実行されたら系統間待合せが成立したとみなし、前記先読み・解析処理を一時停止するまでに作成したコード解析データを破棄し、即座に前記系統間待合せコードを含むブロックの次のブロックから加工プログラムを先読みして先読み・解析処理を開始する系統間待合せ破棄再開部と、
を備えたことを特徴とする系統間待合せ機能を有する数値制御装置。
【請求項２】
指定条件判断部は、直前のブロックの残移動量が指定値に達した場合に、系統間待合せを開始する請求項１に記載の系統間待合せ機能を有する数値制御装置。
【請求項３】
指定条件判断部は、直前のブロックの軸移動で任意の軸のトルクが指定値に達した場合に、系統間待合せを開始する請求項１に記載の系統間待合せ機能を有する数値制御装置。
【請求項４】
指定条件判断部は、特定のカスタムマクロの変数が指定値となった場合に、系統間待合せを開始する請求項１に記載の系統間待合せ機能を有する数値制御装置。
【請求項５】
指定条件判断部は、直前のブロック開始からの経過時間が指定値に達した場合に、系統間待合せを開始する請求項１に記載の系統間待合せ機能を有する数値制御装置。
【請求項６】
指定条件判断部は、直前のブロックの軸移動で任意の軸の機械座標が指定値に達した場合に、系統間待合せを開始する請求項１に記載の系統間待合せ機能を有する数値制御装置。
【請求項７】
指定条件判断部は、直前のブロックの軸移動で送り速度が指定値に達した場合に、系統間待合せを開始する請求項１に記載の系統間待合せ機能を有する数値制御装置。
【請求項８】
指定条件判断部は、特定の信号が入力された場合に、系統間待合せを開始する請求項１に記載の系統間待合せ機能を有する数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械を制御する数値制御装置に関し、特に、系統間で加工プログラムの実行の待合せを行う系統間待合せ機能を有する数値制御装置に関する。
【背景技術】
【０００２】
工作機械を制御する数値制御装置において、メモリおよび外部記憶手段に登録された加工プログラムを運転する場合、加工プログラムのブロックを順次先読み・解析してコード解析データを作成し、前記コード解析データから実行データを作成する先読み・解析処理と、前記先読み・解析処理によって作成した実行データをもとに実際に軸の移動や座標値の更新を行う実行処理という、大きく分けて２つの処理を、加工プログラムの１ブロックごとに行う必要がある。なお、先読み・解析処理と実行処理は、それぞれ異なるタスク（先読み・解析処理タスクと実行処理タスク）で行われているため、並列に動作が可能である。
【０００３】
特許文献１には、系統間待合せ指令の実行処理で、系統間待合せを開始し、指定した条件で待合せ状態を解除し、系統間待合せ指令の後のブロックにおいて指定した条件（指定位置／機械位置）をチェックする系統間待合せ機能を有する数値制御装置が開示されている。
【０００４】
特許文献２には、系統間待合せ指令の実行処理では系統間待合せは行わず、系統間待合せ指令の後の軸移動指令／ブロックの完了タイミングを合わせることで系統間待合せを行い、指定した条件は、系統間待合せ指令の後の軸移動指令／ブロックの完了タイミングを合わせることに使用される系統間待合せ機能を有する数値制御装置が開示されている。
【０００５】
特許文献３には、系統間待合せ指令の実行処理で、系統間待合せを開始し、指定した条件で待合せ状態を解除し、系統間待合せ指令実行後の軸の状態において、指定した条件（主軸の回転数／指定された軸のモータ電流値）をチェックする系統間待合せ機能を有する数値制御装置が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第２８０１１０８号公報
【特許文献２】特開平１０−３１５０９号公報
【特許文献３】特開２００４−３３４９１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
数値制御装置に備わった従来の系統間待合せ機能では、系統間待合せ処理は系統間待合せコードを含むブロックの実行処理で行われている。ここで、実行処理は、実行するブロックの直前のブロックまでの実行処理が終了した後に開始されるため、直前のブロックまでの実行処理が終了しないと、系統間待合せ処理は開始できない。
【０００８】
また、実行処理では、現在実行中のブロックより前のブロックの実行中の状態（例えば残移動量や送り速度など）を確認することはできないため、従来の系統間待合せ機能では、現在実行中のブロックより前のブロックの実行中の状態を加味した系統間待合せ処理は行えない。
【０００９】
さらに、先読み・解析処理で系統間待合せコードを検出してから、実行処理で系統間待合せ処理を実行するまでと、実行処理で系統間待合せ処理による系統間待合せが成立してから、次のブロックの先読み・解析処理を開始するまでには、先読み・解析処理タスクと実行処理タスクのタスク間での情報の受け渡しが行われるため、最大でタスクの２起動周期分の遅延が発生する。
【００１０】
ここで、図１２に示される従来の系統間待合せ機能のタイムチャートを説明する。例えば、「Ｍ５００Ｐ１２」という系統間待合せコードを含むブロックが指令されたとする。従来の系統間待合せ機能では、先読み・解析処理タスクにおいて次の処理が行われる。
【００１１】
・先読み・解析処理  
加工プログラムから１ブロック読み込み系統間待合せコードを含むブロック「Ｍ５００Ｐ１２」を読み込む。  
コード解析部  
指令されたブロックをコードごとに分類し、コード解析データを作成する。  
「Ｍ５００Ｐ１２」→「Ｍ」「５００」「Ｐ」「１２」  
機能コード判定部    
コード解析データをもとに、コードがどのような機能を持つか判定する。  
「Ｍ」「５００」→系統間待合せコードの５００番
「Ｐ」「１２」→系統１と系統２で系統間待合せを行う。
実行データ作成部  
機能コード判定部で判定した機能を実行できるように、実行データを作成する。
【００１２】
さらに、先読み・解析処理で作成した実行データを元に、実行処理タスクにおいて次の処理が行われる。  
・実行処理  
系統間待合せ部  
系統間待合せの対象の系統（系統１または系統２）の状態を確認し、系統間待合せ「Ｍ５００Ｐ１２」の系統間待合せ部の処理が行われることを待つ。  
系統間待合せ部の処理が行われたら系統間待合せ成立とし、系統間待合せコードを含むブロックの実行処理を終了する。
【００１３】
図１２に示されるように、従来の系統間待合せ機能では、系統間待合せ部の処理は系統間待合せコードを含むブロックの実行処理タスクで実施される。実行処理タスクでは、一つのブロックの実行処理が終了するまで、その次のブロックの実行処理は開始しない。そのため、系統間待合せコードを含むブロックの直前のブロックの実行処理が終了するまで、系統間待合せ部の処理は実行できない問題があった。
【００１４】
そこで、本発明は、系統間待合せ部を先読み・解析タスクで行うことにより、直前のブロックまでの実行処理が終了していなくても、系統間待合せ部の処理を開始することが可能な系統間待合せ機能を有する数値制御装置を提供することを課題とする。
【課題を解決するための手段】
【００１５】
本願の請求項１に係る発明は、少なくとも２つ以上の制御系統を有し、該各々の制御系統でメモリおよび外部記憶手段に登録されている加工プログラムのブロックを順次先読みし、コード解析部においてコード解析データを作成し、機能コード判定部において前記作成したコード解析データの機能を判定し、実行データ作成部において前記機能コード判定部により判定した機能を実行するための実行データを作成する先読み・解析処理を行う数値制御装置において、前記機能コード判定部で、前記ブロックに系統間待合せコードが含まれていると判断したとき、前記先読み・解析処理を一時停止する先読み・解析一時停止部と、前記先読み・解析一時停止部によって先読み・解析処理を停止した上で前記系統間待合せコードを含むブロックの直前のブロックの実行状態を確認し、前記系統間待合せコードを含むブロックで指令された系統間の待合せを実行するための条件を指定した指定条件を満たしているかどうかを判断する指定条件判断部と、前記指定条件判断部によって指定条件を満たしたと判断したら、前記系統間待合せコードを含むブロックで指令される系統間待合せの対象の系統と加工プログラムの待合せを実行する系統間待合せ部と、前記系統間待合せの対象の系統で同一の系統間待合せコードによる系統間待合せが実行されたら系統間待合せが成立したとみなし、前記先読み・解析処理を一時停止するまでに作成したコード解析データを破棄し、即座に前記系統間待合せコードを含むブロックの次のブロックから加工プログラムを先読みして先読み・解析処理を開始する系統間待合せ破棄再開部と、を備えたことを特徴とする系統間待合せ機能を有する数値制御装置である。
【００１６】
請求項２に係る発明は、指定条件判断部は、直前のブロックの残移動量が指定値に達した場合に、系統間待合せを開始する請求項１に記載の系統間待合せ機能を有する数値制御装置である。  
請求項３に係る発明は、指定条件判断部は、直前のブロックの軸移動で任意の軸のトルクが指定値に達した場合に、系統間待合せを開始する請求項１に記載の系統間待合せ機能を有する数値制御装置である。  
請求項４に係る発明は、指定条件判断部は、特定のカスタムマクロの変数が指定値となった場合に、系統間待合せを開始する請求項１に記載の系統間待合せ機能を有する数値制御装置である。
請求項５に係る発明は、指定条件判断部は、直前のブロック開始からの経過時間が指定値に達した場合に、系統間待合せを開始する請求項１に記載の系統間待合せ機能を有する数値制御装置である。
【００１７】
請求項６に係る発明は、指定条件判断部は、直前のブロックの軸移動で任意の軸の機械座標が指定値に達した場合に、系統間待合せを開始する請求項１に記載の系統間待合せ機能を有する数値制御装置である。  
請求項７に係る発明は、指定条件判断部は、直前のブロックの軸移動で送り速度が指定値に達した場合に、系統間待合せを開始する請求項１に記載の系統間待合せ機能を有する数値制御装置である。  
請求項８に係る発明は、指定条件判断部は、特定の信号が入力された場合に、系統間待合せを開始する請求項１に記載の系統間待合せ機能を有する数値制御装置である。
【発明の効果】
【００１８】
本発明により、系統間待合わ部を先読み・解析処理で行うことにより、直前のブロックまでの実行処理が終了していなくても、系統間待合せ部の処理を開始することが可能な系統間待合せ機能を有する数値制御装置を提供できる。
【図面の簡単な説明】
【００１９】
【図１】本発明に係る系統間待合せ機能を有する数値制御装置の概略ブロック図である。
【図２】本発明に係る系統間待合せ機能を説明するフローチャートである。
【図３】本発明に係る系統間待合せ機能を説明するタイムチャートである。
【図４】２つの制御系統を持つ数値制御装置において、系統１にて加工プログラムＯ０００１を、系統２にて加工プログラムＯ０００２を運転する場合を説明する図である。
【図５】２つの制御系統を持つ数値制御装置において、系統１にて加工プログラムＯ０００３を、系統２にて加工プログラムＯ０００４を運転する場合を説明する図である。
【図６】２つの制御系統を持つ数値制御装置において、系統１にて加工プログラムＯ０００５を、系統２にて加工プログラムＯ０００６を運転する場合を説明する図である。
【図７】２つの制御系統を持つ数値制御装置において、系統１にて加工プログラムＯ０００７を、系統２にて加工プログラムＯ０００８を運転する場合を説明する図である。
【図８】２つの制御系統を持つ数値制御装置において、系統１にて加工プログラムＯ０００９を、系統２にて加工プログラムＯ０００１０を運転する場合を説明する図である。
【図９】２つの制御系統を持つ数値制御装置において、系統１にて加工プログラムＯ０００１１を、系統２にて加工プログラムＯ０００１２を運転する場合を説明する図である。
【図１０】系統１、系統２の制御軸ＸおよびＺには、加減速時定数または加速度が設定されており、指定の送り速度になるまでに時間（図１０のＴ１およびＴ２）を要することを説明する図である。
【図１１】２つの制御系統を持つ数値制御装置において、系統１にて加工プログラムＯ０００１３を、系統２にて加工プログラムＯ０００１４を運転する場合を説明する図である。
【図１２】従来の系統間待合せ機能を説明するタイムチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態を図面と共に説明する。  
図１は本発明に係る系統間待合せ機能を有する数値制御装置の概略ブロック図である。数値制御装置５０は、プロセッサ５１とバス５８で接続された、ＲＯＭ、ＲＡＭ、不揮発性ＲＡＭ等のメモリ５２、液晶表示装置などで構成される表示装置５３、データや指令を入力するキーボード等で構成される入力装置５４、外部記憶手段５６と接続するインタフェース５５、各多系統の可動軸を駆動するモータを制御する第１〜第ｎ系統軸制御部５７−１〜５７−ｎを備え、加工プログラムに従って、ワークを加工することができる。メモリ５２および外部記憶手段５６には、各系統の加工プログラムが登録されており、この加工プログラムをプロセッサ５１が読み出し可能となっている。さらにメモリ５２には、全体を制御するシステムプログラムが登録され、特に、本発明に関係した多系統の系統間待合せ機能を実現するソフトウェアが登録されている。
【００２１】
第１〜第ｎ系統軸制御部５７−１〜５７−ｎは、プロセッサ５１がメモリ５２または外部記憶手段５６から読み出した各系統の加工プログラムを実行して分配される移動指令と、モータに設けられた位置・速度検出器からのフィードバック信号に基づいて、位置・速度のフィードバック制御を行い、さらには電流フィードバックを行って、各系統のモータを制御し、各系統の各軸を互いに協調しながら同時に同期、又は独立して移動させるものである。この数値制御装置５０による多系統の駆動制御動作は従来の多系統制御機能を有する数値制御装置と同一の動作であり変わりはない。
【００２２】
図２は図１に示される数値制御装置で実行される本発明に係る系統間待合せ機能を説明するフローチャートである。  
本発明に係る少なくとも２つ以上の制御系統を持つ数値制御装置において、先読み・解析処理タスクでは、加工プログラム末端まで読み込んだか否か判断する（Ａ１）。加工プログラムの末端まで読み込んだ場合には処理を終了する。
【００２３】
読み込んでいない場合、先読み・解析処理を実行する（Ａ２〜Ａ６、Ａ１４）。先読み・解析処理では、メモリまたは外部記憶手段に登録された加工プログラムから１ブロック毎に順次先読みして（Ａ２）、読み込んだブロックに対してコード解析部の処理を行い、コード解析データを作成し（Ａ３）、前記コード解析データに対して機能コード判定部の処理を行って（Ａ４）、機能コード判定部（Ａ４）は系統間待合せコード判断部（Ａ５）を含み、系統間待合せコード判断部の処理を行って（Ａ５）、系統間待合せコードが含まれるか否か判断し（Ａ６）、系統間待合せコードが含まれていない場合には、実行データ作成部の処理を実行する（Ａ１４）。
【００２４】
機能コード判定部（Ａ４）に含まれるＡ６の判断において、コード解析データ中に系統間待合せコードが含まれることが確認できたブロックの場合、先読み・解析一時停止部の処理により先読み・解析処理を一時停止し（Ａ７）、指定条件判断部の処理を実行し（Ａ８）、ブロック中に含まれる指定条件（ここで指定条件とは、「ブロックの残移動量」、「任意の軸のトルク」、「特定のカスタムマクロの変数」、「ブロックの経過時間」、「任意の軸の機械座標値」、「直前のブロックの軸移動での送り速度」、「特定の信号」のうち加工プログラムで指定した項目が加工プログラムで指定した値に達することを、系統間待合せを開始するための判断条件とするものである。）が満たされたか否か判断し（Ａ９）、系統間待合せコードを含むブロックの直前のブロックが前記指定条件を満たすことによって系統間待合せ部の処理を開始する（Ａ１０）。
【００２５】
さらに、系統間待合せコードを含むブロックで指令される系統間待合せの対象の系統で同一の系統間待合せコードの指令により系統間待合せ部の処理を開始し（Ａ１０）、系統間待合せが成立したら（Ａ１１）、系統間待合せ破棄再開部の処理を実行し、コード解析データ破棄部の処理により実行データの作成前までに作成したコード解析データを破棄し（Ａ１２）、先読み・解析再開部の処理により即座に次のブロックの先読み・解析処理（Ａ１３）を開始し、先読み・解析処理タスクの最初の処理（Ａ１）に戻る。
【００２６】
実行データ作成部の処理（Ａ１４）で作成された実行データは実行データ保存バッファに保存され、実行処理タスクの実行開始部の処理（Ａ１５）において実行データがあるか否かの判断がなされ（Ａ１６）、実行データが実行データ保存バッファに存在する場合には、実行データに基づいた実行処理がなされ（Ａ１７）、実行処理が終了したかの判断がなされ（Ａ１８）、実行処理が終了した場合には実行処理タスクを終了する。
【００２７】
従来の系統間待合せ機能は、直前のブロックの実行処理が終了するまで系統間待合せ部の処理を開始できない。これに対して、本発明は、上述したように、指定条件を満たすことによって直前のブロックの実行処理が終了していなくても、系統間待合せ部の処理を開始可能となるため、従来の系統間待合せ機能に比べ処理時間を短縮できる。
【００２８】
また、従来の系統間待合せ機能に比べ系統間待合せコードを含むブロックの、先読み・解析処理での実行データの作成、および、実行データに基づいた実行処理を省くことができるため、さらに処理時間を短縮できる。また、系統間待合せコードを含むブロック以前のブロックの、実行中の状態を確認することも可能となる。さらに、系統間待合せ部の処理における先読み・解析処理タスクと実行処理タスクのタスク間での情報の受け渡しが不要となるため、従来の系統間待合せ機能に比べ、最大でタスクの２起動周期分、処理時間が短縮できる。
【００２９】
図２を用いて説明した系統間待合せ機能を有する数値制御装置において、加工プログラムが実行され、系統間待合せコードを含むブロックが指令された場合の、本発明に係る系統間待合せ機能を、図３に示されるタイムチャートを用いて説明する。なお、図２と図１の各要素を対応させると、コード解析部３はコード解析部（Ａ３）、機能コード判定部４は機能コード判定部（Ａ４）、系統間待合せコード判断部５は系統間待合せコード判断部（Ａ５，Ａ６）、先読み・解析一時停止部６は先読み・解析一時停止部（Ａ７）、指定条件判断部７は指定条件判断部（Ａ８，Ａ９）、系統間待合せ部８は系統間待合せ部（Ａ１０，Ａ１１）、系統間待合せ破棄再開部９はコード解析データ破棄部（Ａ１２），先読み・解析再開部（Ａ１３）を含む系統間待合せ破棄再開部に対応する。
【００３０】
ここで、例えば、「Ｍ５００Ｐ１２Ａ１０．０」という系統間待合せコードを含むブロックが指令されたとする。特許請求の範囲の「請求項１」の系統間待合せ機能では、先読み・解析処理タスクにおいて次の処理が行われる。
＜先読み・解析処理タスク＞
・先読み・解析処理２
加工プログラムから１ブロック読み込み、系統間待合せコードを含むブロック「Ｍ５００Ｐ１２Ａ１０．０」を読み込む。  
コード解析部３により指令されたブロックをコードごとに分類し、コード解析データを作成する。例えば、「Ｍ５００Ｐ１２Ａ１０．０」は、「Ｍ」「５００」「Ｐ」「１２」「Ａ」「１０．０」のコード解析データが作成される。  
機能コード判定部４において、コード解析部３において得られたコード解析データをもとに、コードがどのような機能を持つか判定する。  
「Ｍ」「５００」→系統間待合せコードの５００番  
「Ｐ」「１２」→系統１と系統２で系統間待合せを行う。  
「Ａ」「１０．０」→残移動量が１０．０以下となったら系統間待合せを開始する。
【００３１】
機能コード判定部４に含まれる系統間待合せコード判断部５において、系統間待合せコードが含まれるかどうかを判断する。
・先読み・解析一時停止部６  
実行データの作成前に先読み・解析処理を一時停止する。  
・指定条件判断部７
系統間待合せコードを含むブロックの直前のブロックの残移動量が１０．０以下となることを確認する。
・系統間待合せ部８
系統間待合せの対象の系統（系統１または系統２）の状態を確認し、系統間待合せ「Ｍ５００Ｐ１２」の系統間待合せが行われることを待つ。行われたら系統間待合せ成立とする。
・系統間待合せ破棄再開部９
系統間待合せ破棄再開部９のコード解析データ破棄部において、先読み・解析処理を中断するまでに作成したコード解析データを破棄する。  
先読み・解析再開部において、即座に系統間待合せコードを含むブロックの次のブロックから加工プログラムを先読みして先読み・解析処理を開始する。
【００３２】
特許請求の範囲の請求項１に係る系統間待合せ機能では、系統間待合せ部は系統間待合せコードを含むブロックの先読み・解析処理タスクで実施される。系統間待合せに指定条件を付加することで、直前のブロックの実行処理の途中で指定条件を満たすと、系統間待合せ部を開始できる。また、系統間待合せが成立したら先読み・解析処理を中断するまでに作成したコード解析データを破棄し、即座に次のブロックの先読み・解析処理を開始する。
【００３３】
以下、各実施形態を説明する。  
＜実施形態１＞（請求項１，２に対応）
図４を参照しながら説明する。図１において数値制御装置５０が第１系統軸制御部５７−１と第２系統軸制御部５７−２の２つの制御系統を有する場合を考える。２つの制御系統を持つ数値制御装置５０において、系統１にて加工プログラムＯ０００１を、系統２にて加工プログラムＯ０００２を運転し、系統１と系統２で系統間待合せを行う。
【００３４】
なお、Ｎ０３ブロックの「Ｍ５００」および「Ｐ１２」は、それぞれ、特許請求の範囲の請求項１の「系統間待合せコード」、「系統間待合せの対象の系統」に対応する。また、Ｎ０３ブロックの「Ａ１０．０」および「Ａ２０．０」は、指定条件を指令するもので、請求項２に記載した残移動量の指定値とし、系統間待合せを開始する条件は、自系統のＮ０２ブロックにおいて、残移動量が指定値（系統１は残移動量１０．０、系統２は残移動量２０．０）に達したときとする。
【００３５】
ここで、系統１，２は次の通り動作する。  
［系統１］  
（１）Ｎ０１ブロックにて、１０秒間ドウェルを実行する。  
（２）Ｎ０１ブロックの実行処理完了後、Ｎ０２ブロックの実行処理を開始する。  
（３）Ｎ０２ブロックの実行処理が開始されると、Ｎ０３ブロックの先読み・解析処理を開始する。ここで、Ｍ５００指令を検出すると、Ｎ０３ブロックの実行データの作成前に先読み・解析処理を一時停止し、指定された系統間待合せ開始の条件の判定を開始する。
（４）自系統のＮ０２ブロックにおいて、残移動量が１０．０に達したことにより、系統間待合せ開始の条件を満たしたと判定する。これにより、系統間待合せを開始する。この時点では、系統２の系統間待合せはまだ開始されていないため、系統２の系統間待合せが開始されるまで、待合せ状態を継続する。  
（５）系統２の系統間待合せが開始されたら、系統間待合せが成立したと判定され、Ｎ０３ブロックの先読み・解析処理で作成したコード解析データを破棄し、即座にＮ０４ブロックの先読み・解析処理を開始する。
【００３６】
［系統２］  
（１）Ｎ０１ブロックにて、２０秒間ドウェルを実行する。  
（２）Ｎ０１ブロックの実行処理完了後、Ｎ０２ブロックの実行処理を開始する。  
（３）Ｎ０２ブロックの実行処理が開始されると、Ｎ０３ブロックの先読み・解析処理を開始する。ここで、Ｍ５００指令を検出すると、Ｎ０３ブロックの実行データの作成前に先読み・解析処理を一時停止し、指定された系統間待合せ開始の条件の判定を開始する。
（４）自系統のＮ０２ブロックにおいて、残移動量が２０．０に達したことにより、系統間待合せ開始の条件を満たしたと判定される。これにより、系統間待合せを開始する。  
（５）系統２の系統間待合せが開始されたら、系統間待合せが成立したと判定され、Ｎ０３ブロックの先読み・解析処理で作成したコード解析データを破棄し、即座にＮ０４ブロックの先読み・解析処理を開始する。
【００３７】
従来の系統間待合せ機能では、系統間待合せコードを含むブロックの直前のブロックの実行処理が完全に終了したことをもって、系統間待合せを開始するが（図１２参照）、本発明では、系統間待合せコードを含むブロックで指令される指定条件を直前のブロックが満たしたことをもって、系統間待合せを開始するため、従来の系統間待合せ機能より速く処理が終了する。
【００３８】
さらに、先読み・解析処理で作成したコード解析データを破棄し、即座に次のブロックの先読み・解析処理を開始することにより（図２のＡ１２，Ａ１３を参照）、従来の系統間待合せ機能に比べ系統間待合せコードを含むブロックの、先読み・解析処理での実行データの作成、実行データに基づいた実行処理を省くことができるため、さらに処理時間を短縮できる（図３、図１２を参照）。
【００３９】
なお、系統間待合せ成立後、先読み・解析処理でコード解析データを破棄せずに先読み・解析処理を再開し、コード解析データから実行データを作成することも可能である。この場合、作成した実行データにより、実行処理で系統間待合せは行わないが、以下のことが可能である。  
・実行処理によるＰＭＣへの信号出力  
・系統間待合せコードを含むブロックで指令された系統間待合せ以外の指令の実行  
また、請求項１に記載した指定条件は、系統間待合せコードを含むブロックで指令する以外に、以下の方法によっても指定することが可能である。  
・パラメータであらかじめ指定条件を設定すること  
・信号であらかじめ指定条件を設定すること  
・カスタムマクロの変数であらかじめ指定条件を設定すること
あらかじめ指定条件を設定した場合は、前述の系統１と系統２の加工プログラムのＮ０３は、Ｎ０３  Ｍ５００  Ｐ１２；となり、Ｎ０３のブロックの機能コード判定部により、上記の指定方法で設定されている設定値を読み込んで、指定条件を確定する。
【００４０】
＜実施形態２＞（請求項３に対応）
図５を参照しながら説明する。２つの制御系統を持つ数値制御装置において、系統１にて加工プログラムＯ０００３を、系統２にて加工プログラムＯ０００４を運転するとする。なお、Ｎ０３ブロックのＭ５００は実施形態１に記載した系統間待合せコード、Ｐ１２は実施形態１に記載した系統間待合せ対象の系統とし、系統１と系統２で系統間待合せを行う。  
また、Ｎ０３ブロックのＢＸ５．０およびＢＸ１０．０は、請求項１に記載した指定条件を指令するもので、請求項３に記載した任意の軸のトルクとし、系統間待合せを開始する条件は、自系統のＮ０２ブロックにおいて、Ｘ軸のトルクが指定値（系統１は５．０、系統２は１０．０）に達したときとする。
【００４１】
この場合、実施形態１の説明の動作（４）が、次のようになる。  
［系統１］
（４）自系統のＮ０２ブロックにおいて、Ｘ軸のトルクが５．０に達したことにより、系統間待合せ開始の条件を満たしたと判定する。これにより、系統間待合せを開始する。この時点では、系統２の系統間待合せはまだ開始されていないため、系統２の系統間待合せが開始されるまで、待合せ状態を継続する。  
［系統２］
（４）自系統のＮ０２ブロックにおいて、Ｘ軸のトルクが１０．０に達したことにより、系統間待合せ開始の条件を満たしたと判定される。これにより、系統間待合せを開始する。
【００４２】
＜実施形態３＞（請求項４に対応）
図６を参照しながら説明する。２つの制御系統を持つ数値制御装置において、系統１にて加工プログラムＯ０００５を、系統２にて加工プログラムＯ０００６を運転するとする。なお、Ｎ０３ブロックのＭ５００は実施形態１に記載した系統間待合せコード、Ｐ１２は実施形態１に記載した系統間待合せの対象の系統とし、系統１と系統２で系統間待合せを行う。また、Ｎ０３ブロックのＣ１００，１およびＣ１１０，２は、実施形態１に記載した指定条件を指令するもので、請求項４に記載した特定のカスタムマクロの変数とし、系統間待合せを開始する条件は、自系統のＮ０２ブロックにおいて、指定したカスタムマクロの変数が指定値（系統１はカスタムマクロの変数１００番が１に、系統２はカスタムマクロの変数１１０番が２に）となったときとする。
【００４３】
なお、系統１のＮ０２において、Ｘ軸が５０．０に達したら、ＰＭＣ（プログラマブル・マシン・コントローラ）などの別処理（ＰＭＣの場合はラダー言語により変数を読み書きする）にて系統１のカスタムマクロの変数１００番に１を、系統２のＮ０２においてＸ軸が４０．０に達したら、ＰＭＣなどの別処理にて系統２のカスタムマクロの変数１１０番に２を設定するものとする。この場合、実施形態１の動作（４）が、次のようになる。
［系統１］
（４）自系統のＮ０２ブロックにおいて、自系統のカスタムマクロの変数１００番が１となったことにより、系統間待合せ開始の条件を満たしたと判定される。これにより、系統間待合せを開始する。この時点では、系統２の系統間待合せはまだ開始されていないため、系統２の系統間待合せが開始されるまで、待合せ状態を継続する。
［系統２］
（４）自系統のＮ０２ブロックにおいて、自系統のカスタムマクロの変数１１０番が２となったことにより、系統間待合せ開始の条件を満たしたと判定される。これにより、系統間待合せを開始する。
【００４４】
カスタムマクロの変数は、数値制御装置のメモリの固定番地（不揮発性メモリと揮発性メモリのどちらにも存在し、番号で管理されている。例としては、＃１〜＃３３は揮発性メモリに存在し、＃１００〜＃１９９は不揮発性メモリに存在する）に存在し、数値制御装置の加工プログラムによって、メモリの内容を＃で続く番号と＝等の演算子で読み書きおよび演算が可能な変数である。また、加工プログラムからの読み書きだけでなく、上述したように、ＰＭＣなどの処理からも、この変数のメモリを読み書きすることが可能である。加工プログラムで変数に数値を書き込む場合は、＃１００＝１；とすると、１００番の変数に１が書き込まれ、＃１１０＝２；とすると、１１０番の変数に２が書き込まれる。
【００４５】
＜実施形態４＞（請求項５に対応）
図７を参照しながら説明する。２つの制御系統を持つ数値制御装置において、系統１にて加工プログラムＯ０００７を、系統２にて加工プログラムＯ０００８を運転するとする。なお、Ｎ０３ブロックのＭ５００は実施形態１に記載した系統間待合せコード、Ｐ１２は実施形態１に記載した系統間待合せの対象の系統とし、系統１と系統２で系統間待合せを行う。また、Ｎ０３ブロックのＤ１０．０およびＤ１５．０は、実施形態１に記載した指定条件を指令するもので、請求項５に記載したブロック開始からの経過時間とし、系統間待合せを開始する条件は、自系統のＮ０２ブロックにおいて、ブロック開始からの経過時間が指定値（系統１は１０秒後、系統２は１５秒後）に達したときとする。
【００４６】
この場合、実施形態１の動作（４）が、次のようになる。  
［系統１］
（４）自系統のＮ０２ブロックにおいて、ブロック開始からの経過時間が１０秒に達したことにより、系統間待合せ開始の条件を満たしたと判定される。これにより、系統間待合せを開始する。この時点では、系統２の系統間待合せはまだ開始されていないため、系統２の系統間待合せが開始されるまで、待合せ状態を継続する。  
［系統２］
（４）自系統のＮ０２ブロックにおいて、ブロック開始からの経過時間が１５秒に達したことにより、系統間待合せ開始の条件を満たしたと判定される。これにより、系統間待合せを開始する。
【００４７】
＜実施形態５＞（請求項６に対応）
図８を参照しながら説明する。２つの制御系統を持つ数値制御装置において、系統１にて加工プログラムＯ０００９を、系統２にて加工プログラムＯ００１０を運転するとする。なお、Ｎ０３ブロックのＭ５００は実施形態１に記載した系統間待合せコード、Ｐ１２は実施形態１に記載した系統間待合せの対象の系統とし、系統１と系統２で系統間待合を行う。また、Ｎ０３ブロックのＥＸ８０．０およびＥＸ７０．０は、請求項１に記載した指定条件を指令するもので、請求項６に記載した任意の軸の機械座標とし、系統間待合せを開始する条件は、自系統のＮ０２ブロックにおいて、Ｘ軸の機械座標が指定値（系統１は８０．０、系統２は７０．０）に達したときとする。
【００４８】
この場合、実施形態１の動作（４）が、次のようになる。  
［系統１］
（４）自系統のＮ０２ブロックにおいて、Ｘ軸の機械座標が８０．０に達したことにより、系統間待合せ開始の条件を満たしたと判定される。これにより、系統間待合せを開始する。この時点では、系統２の系統間待合せはまだ開始されていないため、系統２の系統間待合せが開始されるまで、待合せ状態を継続する。  
［系統２］
（４）自系統のＮ０２ブロックにおいて、Ｘ軸の機械座標が７０．０に達したことにより、系統間待合せ開始の条件を満たしたと判定される。これにより、系統間待合せを開始する。
【００４９】
＜実施形態６＞（請求項７に対応）
図９を参照しながら説明する。２つの制御系統を持つ数値制御装置において、系統１にて加工プログラムＯ００１１を、系統２にて加工プログラムＯ００１２を運転するとする。なお、Ｎ０３ブロックのＭ５００は実施形態１に記載した系統間待合せコード、Ｐ１２は実施形態１に記載した系統間待合せの対象の系統とし、系統１と系統２で系統間待合せを行う。  
また、Ｎ０３ブロックのＦ１００．０は、実施形態１に記載した指定条件を指令するもので、送り速度の指定値とし、系統間待合せを開始する条件は、自系統のＮ０２ブロックにおいて、請求項７に記載した送り速度が指定値（系統１は１００．０、系統２は２００．０）に達したときとする。ここで、系統１、系統２の制御軸ＸおよびＺには、加減速時定数または加速度が設定されており、指定の送り速度になるまでに時間（図１０のＴ１およびＴ２）を要するものとする。
【００５０】
この場合、実施形態１の動作（４）が、次のようになる。  
［系統１］
（４）自系統のＮ０２ブロックにおいて、送り速度が１００．０に達したことにより、系統間待合せ開始の条件を満たしたと判定される。これにより、系統間待合せを開始する。この時点では、系統２の系統間待合せはまだ開始されていないため、系統２の系統間待合せが開始されるまで、待合せ状態を継続する。  
［系統２］
（４）自系統のＮ０２ブロックにおいて、送り速度が２００．０に達したことにより、系統間待合せ開始の条件を満たしたと判定される。これにより、系統間待合せを開始する。
【００５１】
＜実施形態７＞（請求項８に対応）
図１１を参照しながら説明する。２つの制御系統を持つ数値制御装置において、系統１にて加工プログラムＯ００１３を、系統２にて加工プログラムＯ００１４を運転するとする。なお、Ｎ０３ブロックのＭ５００は実施形態１に記載した系統間待合せコード、Ｐ１２は実施形態１に記載した系統間待合せの対象の系統とし、系統１と系統２で系統間待合せを行う。  
また、Ｎ０３ブロックのＤＩ１００，５およびＤＩ２００，６は、実施形態１に記載した指定条件を指令するもので、請求項８に記載した特定の信号とし、系統間待合せを開始する条件は、自系統のＮ０２ブロックにおいて、指定した信号が指定値（系統１は信号Ｇ１００番が５に、系統２は信号Ｇ２００番が６に）となったときとする。
【００５２】
この例では、入力信号であるＧ１００とＧ２００を使用したが、出力信号であるＦアドレスにて、系統間待合せを開始する条件を指定することもできる。たとえば、図１１に示される加工プログラム例においてＤＩ１００，５をＤＯ１００，５に、ＤＩ２００，６をＤＯ２００，６に変更すると、系統１の指定条件は信号Ｆ１００番が５になったとき、系統２の指定条件は信号Ｆ２００番が６になったときとなる。
【００５３】
なお、この例の説明では、系統１のＮ０２において、Ｘ軸が５０．０に達したら、ＰＭＣなどの別処理にて系統１の信号Ｇ１００番に５を、系統２のＮ０２においてＸ軸が４０．０に達したら、ＰＭＣなどの別処理にて系統２の信号Ｇ２００番に６を設定するものとする。
【００５４】
この場合、実施形態１の動作（４）が、次のようになる。  
［系統１］
（４）自系統のＮ０２ブロックにおいて、信号１００番が５となったことにより、系統間待合せ開始の条件を満たしたと判定される。これにより、系統間待合せを開始する。この時点では、系統２の系統間待合せはまだ開始されていないため、系統２の系統間待合せが開始されるまで、待合せ状態を継続する。
［系統２］
（４）自系統のＮ０２ブロックにおいて、信号２００番が６となったことにより、系統間待合せ開始の条件を満たしたと判定される。これにより、系統間待合せを開始する。
【符号の説明】
【００５５】
２  先読み・解析処理部
３  コード解析部
４  機能コード判定部
５  系統間待合せコード判断部
６  先読み・解析一時停止部
７  指定条件判断部
８  系統間待合せ部
９  系統間待合せ破棄再開部
５０  数値制御装置  
５１  プロセッサ  
５２  メモリ  
５３  表示装置  
５４  入力装置
５５  インタフェース
５６  外部記憶手段
５７−１  第１系統軸制御部
５７−２  第２系統軸制御部
５７−３  第３系統軸制御部
５７−ｎ  第ｎ系統軸制御部
５８  バス
【図１】
2014063389.tif 000003
【図２】
2014063389.tif 000004
【図３】
2014063389.tif 000005
【図４】
2014063389.tif 000006
【図５】
2014063389.tif 000007
【図６】
2014063389.tif 000008
【図７】
2014063389.tif 000009
【図８】
2014063389.tif 000010
【図９】
2014063389.tif 000011
【図１０】
2014063389.tif 000012
【図１１】
2014063389.tif 000013
【図１２】
2014063389.tif 000014