(57)【特許請求の範囲】
【請求項１】
予め決められた実行周期で加工プログラムを実行するとともに、前記実行周期内において、複数の補助プログラムのうち１つ以上の前記補助プログラムを実行する工作機械の数値制御装置であって、
前記加工プログラム及び複数の前記補助プログラムの各々を解析する解読部と、
前記解読部の解析結果に基づいて、前記補助プログラム同士の関連性の有無を判断する指令要素抽出部と、
前記解読部の解析結果に基づいて、前記加工プログラムの処理時間及び複数の前記補助プログラムの各々の処理時間を算出する負荷算出部と、
互いに前記関連性を有する前記補助プログラムを同一の前記実行周期内で実行するように、前記加工プログラムの処理時間及び複数の前記補助プログラムの各々の処理時間に応じて、前記加工プログラム及び複数の前記補助プログラムの実行順を算出する実行順算出部と、
算出された前記実行順に従って、前記加工プログラム及び前記補助プログラムを実行する実行処理部と、
を備える工作機械の数値制御装置。
【請求項２】
請求項１に記載の工作機械の数値制御装置であって、
前記指令要素抽出部は、前記解読部の解析結果に基づいて、二以上の前記補助プログラムにおいて共通で使用している変数を抽出し、前記変数を共通で使用している前記補助プログラム同士を前記関連性有りと決定する工作機械の数値制御装置。
【請求項３】
請求項２に記載の工作機械の数値制御装置であって、
前記指令要素抽出部は、前記解読部の解析結果に基づいて、共通で使用している前記変数が多いほど、前記関連性を有する前記補助プログラム間の関連度を高く設定し、
前記実行順算出部は、前記関連度が高い前記補助プログラム同士が隣り合うように前記実行順を算出する工作機械の数値制御装置。
【請求項４】
請求項３に記載の工作機械の数値制御装置であって、
前記指令要素抽出部は、前記解読部の解析結果に基づいて、前記関連性を有する前記補助プログラム間の実行順を決める優先度を設定し、
前記実行順算出部は、前記関連度が高い前記補助プログラム同士が隣り合い、且つ、前記優先度が高い順となるように、前記実行順を算出する工作機械の数値制御装置。
【請求項５】
請求項４に記載の工作機械の数値制御装置であって、
前記指令要素抽出部は、前記変数を共通で使用している前記補助プログラムの各々について、共通で使用している前記変数を書き込みで使用しているのか、共通で使用している前記変数を読み込みで使用しているのかを判断し、共通で使用している前記変数を書き込みで使用している前記補助プログラムの前記優先度を、共通で使用している前記変数を読み込みで使用している前記補助プログラムの前記優先度よりも高く設定する工作機械の数値制御装置。
【請求項６】
請求項１〜５のいずれか１項に記載の工作機械の数値制御装置であって、
前記加工プログラム及び前記補助プログラムが前記実行処理部において実行されているときに、前記加工プログラムの処理時間及び前記補助プログラムの処理時間を計測する別異の負荷算出部を有し、
前記実行順算出部は、前記別異の負荷算出部が計測した前記加工プログラムの処理時間及び前記補助プログラムの処理時間に基づいて、前記実行順を見直す工作機械の数値制御装置。
【請求項７】
請求項１〜５のいずれか１項に記載の工作機械の数値制御装置であって、
前記指令要素抽出部は、前記解読部の解析結果に基づいて、繰り返し処理を行う命令を示す継続指令を抽出し、
前記実行順算出部は、前記継続指令を有する前記補助プログラムが前記実行処理部において繰り返し実行されるように前記実行順を算出する工作機械の数値制御装置。
【請求項８】
請求項７に記載の工作機械の数値制御装置であって、
前記継続指令を有する前記補助プログラムが前記実行処理部において実行されているときに、前記継続指令を有する前記補助プログラムの処理時間を計測する別異の負荷算出部を有し、
前記実行順算出部は、前記別異の負荷算出部が計測した前記継続指令を有する前記補助プログラムの処理時間に基づいて、前記実行順を見直す工作機械の数値制御装置。
【請求項９】
請求項１〜８のいずれか１項に記載の工作機械の数値制御装置であって、
前記実行順算出部は、前記実行周期内で前記加工プログラム及び前記補助プログラムを実行可能な処理時間を処理負荷の制限値として設定し、前記加工プログラムの処理時間と、前記実行周期内で実行される前記補助プログラムの処理時間との合計が前記制限値以下となるように、前記実行順を算出する工作機械の数値制御装置。
【請求項１０】
請求項１〜９のいずれか１項に記載の工作機械の数値制御装置であって、
前記負荷算出部は、前記加工プログラムが前記実行処理部において実行されているときに、前記加工プログラムの処理時間を計測し、
前記実行順算出部は、計測された前記加工プログラムの処理時間に応じて、前記実行順を算出する工作機械の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械の数値制御装置に関し、一層詳細には、予め決められた実行周期で加工プログラムを実行するとともに、加工プログラムの実行周期内において、複数の補助プログラムのうち１つ以上の補助プログラムを実行する工作機械の数値制御装置に関する。
【背景技術】
【０００２】
本出願人は、既に、多軸工作機械のシーケンス制御を行うシーケンスプログラムのように、周期的に繰り返し実行するプログラムと、実行指令により加工工程を開始し各軸のモーション（動作）の制御を行うＮＣプログラムとを、全てＮＣプログラム形式で記述することにより、実行するプログラムの変換に特別な装置を必要とせずに、軸動作（モーション）制御とシーケンス制御の両方を簡便に実行することができる数値制御装置の開発に成功し、特許を得た（特許文献１参照）。
【０００３】
また、例えば、制御ソフトウェアにおいて、実行するタスクの指定方式に柔軟性を持たせて、各タスクに適切な処理時間を与えることにより、効率的に実行することができるようにした制御ソフトウェアの実行システムの制御方法が提案されている（特許文献２参照）。
【０００４】
これに関連して、プログラムの実行条件によりタスクの処理時間の差が大きいタスクを解析対象として抽出することによって、タスク数の多いプログラムに対して短時間で並列化スケジューリング結果を得ることが可能な並列化スケジューリング装置も提案されている（特許文献３参照）。
【０００５】
さらに、プロセスに優先度をつけ、優先度の高いプロセスを優先的に処理する方法において、単位時間毎の複数の実行段階のうち、単位時間の終了までに、優先度の高い実行段階から順にプログラムの実行に必要なリソースを各プログラムに割り当てることにより、多数のプログラムを実行する際に、ＣＰＵ能力を十分に利用して処理能力を向上させることができるプログラムの実行処理方法及び装置も提案されている（特許文献４参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第３７６４４３６号公報
【特許文献２】特許第３７２７６３７号公報
【特許文献３】特許第５３８１３０２号公報
【特許文献４】特許第５４６９１２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来における数値制御装置の制御システムでは、自動切削装置を例にすると、実際に加工を行う切削時間と、加工の準備動作や計測等を行う非切削時間とからなる加工プログラムから非切削時間の加工プログラムを除外し、この除外した非切削時間に係る加工プログラムを前記実際に加工を行う切削時間に係る加工プログラムの自動運転の実行周期内において実行することにより、前記加工プログラムの実行周期に対するサイクルタイムの短縮を図ることが可能である。
【０００８】
すなわち、このような数値制御装置の制御システムにおいては、自動運転の状況に応じて、位置情報や信号情報等を取得して所望の加工動作を実現するようなプログラムの処理が行われる。従って、前記加工プログラムの実行処理に際しては、リアルタイム性が求められるとともに、高速である実行周期で処理動作が行われる必要性がある。
【０００９】
そこで、リアルタイム性が満足され且つ実行周期内に完了する必要がある実行処理について、図８に沿って説明する。以下では、加工の準備動作や計測等を行うプログラムを補助プログラムと言い、実際に加工を行うプログラムについてのみ加工プログラムと言う。ここで、図８は、従来の数値制御装置において、加工プログラムの実行周期内で実行される補助プログラムが実行周期内で実行処理を完了する状態を示す説明図である。
【００１０】
図８において、「自動運転実行処理」は、加工プログラムによる工作機械の自動運転に関する実行処理状態を示し、また「補助プログラム１実行処理」、「補助プログラム２実行処理」、「補助プログラム３実行処理」は、加工プログラムの実行周期内に実行される補助プログラムの実行処理状態を示す。
【００１１】
この場合、工作機械による加工の高度化が達成されるのに伴い、加工プログラムによる自動運転の実行処理の途中に動作させるアプリケーション数が増加すれば、当然に実行周期内に完了すべき実行処理が増大する。従って、実行周期内に実行処理が完了しない場合には、システムダウン等につながるため、これを避けるべく増大する実行周期内に実行される処理の負荷を緩和させる必要がある。
【００１２】
そこで、前記増大する実行周期内に実行される処理の負荷を緩和する例を図９に示す。この場合、「補助プログラム３実行処理」を次の実行周期で実行し、実行周期内の負荷を単純に平準化し、実行周期内で処理が可能な補助プログラム１と補助プログラム２の実行処理を行い、増大した負荷としての補助プログラム３の実行処理を次なる実行周期に移して当初の実行周期内の負荷を緩和している。
【００１３】
図１０は、前記補助プログラム３の実行処理に関連した説明である。この場合、関連性の高い補助プログラムの実行処理について例示している。例えば、個々に実行処理が行われる「補助プログラム１」、「補助プログラム２」、「補助プログラム３」の中、「補助プログラム１」の演算結果を使用して「補助プログラム３」を実行するアプリケーションが作成されている場合、図９に示すような処理負荷の緩和によって、「補助プログラム３」が次の実行周期で実行処理が行われると、処理負荷に係る変数＃１００、＃１０１を含む「補助プログラム１」の開始から読み取り処理の負荷に係る変数＃１００、＃１０１を含む「補助プログラム３」の完了までに、少なくとも変数＃１００と＃１０１に係る処理については２回の実行周期が必要になる。このように、補助プログラムの実行順によって実際の工作機械動作に遅れが生じリアルタイム性が損なわれるという難点がある。
【００１４】
本発明は、前記の課題を考慮してなされたものであり、加工プログラムの実行周期内で実行する複数の補助プログラムに対し、個々の補助プログラムの関連性を解析して、それらの実行順を決定し、リアルタイム性に優れ、高速の実行速度で適正な処理動作を行うことが可能な工作機械の数値制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の態様は、予め決められた実行周期で加工プログラムを実行するとともに、実行周期内において、複数の補助プログラムのうち１つ以上の補助プログラムを実行する工作機械の数値制御装置であって、加工プログラム及び複数の補助プログラムの各々を解析する解読部と、解読部の解析結果に基づいて、補助プログラム同士の関連性の有無を判断する指令要素抽出部と、解読部の解析結果に基づいて、加工プログラムの処理時間及び複数の補助プログラムの各々の処理時間を算出する負荷算出部と、互いに関連性を有する補助プログラムを同一の実行周期内で実行するように、加工プログラムの処理時間及び複数の補助プログラムの各々の処理時間に応じて、加工プログラム及び複数の補助プログラムの実行順を算出する実行順算出部と、算出された実行順に従って、加工プログラム及び補助プログラムを実行する実行処理部と、を備える。
【００１６】
この構成によれば、解読部と、指令要素抽出部によって複数の補助プログラム相互間の関連性の有無が判断され、一方、負荷算出部は加工プログラム及び補助プログラムの処理時間を算出し、これら関連性の有無と加工プログラム及び補助プログラムの処理時間に基づき加工プログラム及び補助プログラムの実行順を算出して実行処理する。これによって、補助プログラムを実行処理するリアルタイム性に優れ且つ高速の実行速度で適正な処理を行なうことができる。
【００１７】
また、指令要素抽出部は、解読部の解析結果に基づいて、二以上の補助プログラムにおいて共通で使用している変数を抽出し、変数を共通で使用している補助プログラム同士を関連性有りと決定してもよい。これにより、補助プログラム同士の関連性を精度よく判断することができる。
【００１８】
さらに、指令要素抽出部は、解読部の解析結果に基づいて、共通で使用している変数が多いほど、関連性を有する補助プログラム間の関連度を高く設定し、実行順算出部は、関連度が高い補助プログラム同士が隣り合うように実行順を算出してもよい。
【００１９】
これにより、関連度が高い補助プログラム同士は、共通で使用する変数の個数が多く、これらの補助プログラムを同一の実行周期内において実行することにより補助プログラムの実行速度を向上させることができる。
【００２０】
さらにまた、指令要素抽出部は、解読部の解析結果に基づいて、関連性を有する補助プログラム間の実行順を決める優先度を設定し、実行順算出部は、関連度が高い補助プログラム同士が隣り合い、且つ、優先度が高い順となるように、実行順を算出してもよい。
【００２１】
これにより、関連性を有する補助プログラムのうち、優先度が低い補助プログラムは、優先度が高い補助プログラムの処理結果を用いて、処理を行うことができるため、補助プログラムの実行処理エラーを抑制することができる。
【００２２】
またさらに、指令要素抽出部は、変数を共通で使用している補助プログラムの各々について、共通で使用している変数を書き込みで使用しているのか、共通で使用している変数を読み込みで使用しているのかを判断し、共通で使用している変数を書き込みで使用している補助プログラムの優先度を、共通で使用している変数を読み込みで使用している補助プログラムの優先度よりも高く設定してもよい。
【００２３】
これにより、先に実行される補助プログラムにより書き込みが行われた変数を、後で実行される補助プログラムにより読み込みが行われるため、補助プログラムの実行処理エラーを防止することができる。
【００２４】
また、加工プログラム及び補助プログラムが実行処理部において実行されているときに、加工プログラムの処理時間及び補助プログラムの処理時間を計測する別異の負荷算出部を有し、実行順算出部は、別異の負荷算出部が計測した加工プログラムの処理時間及び補助プログラムの処理時間に基づいて、実行順を見直してもよい。
【００２５】
これにより、負荷算出部が解読部の解析結果から算出した処理時間に対して、別異の負荷算出部が計測した実際の処理時間が異なるときには、随時実行順を見直すことができ、実際の処理時間に即した実行順を設定することができる。よって、補助プログラムの実行処理についてリアルタイム性を向上させるとともに、補助プログラムより高速に処理することができる。
【００２６】
さらに、指令要素抽出部は、解読部の解析結果に基づいて、繰り返し処理を行う命令を示す継続指令を抽出し、実行順算出部は、継続指令を有する補助プログラムが実行処理部において繰り返し実行されるように実行順を算出してもよい。これにより、継続指令を有する補助プログラムを繰り返し実行することができる。
【００２７】
さらにまた、継続指令を有する補助プログラムが実行処理部において実行されているときに、継続指令を有する補助プログラムの処理時間を計測する別異の負荷算出部を有し、実行順算出部は、別異の負荷算出部が計測した継続指令を有する補助プログラムの処理時間に基づいて、実行順を見直してもよい。
【００２８】
継続指令を有する補助プログラムは、繰り返し実行される毎に実際に実行する制御内容によって負荷が異なるため、処理時間も異なる。そこで、負荷算出部では、継続指令を有する補助プログラムについては、最も負荷が大きくなるときの処理時間を算出する。そのため、実際に継続指令を有する補助プログラムを実行したときの処理時間は、負荷算出部が算出した処理時間よりも短いことがある。別異の負荷算出部により、継続指令を有する補助プログラムの実際の処理時間を計測し、計測した処理時間に基づいて実行順を見直すことにより、実際の処理時間に即した実行順を算出することができる。よって、補助プログラムの実行処理についてリアルタイム性を向上させるとともに、補助プログラムより高速に処理することができる。
【００２９】
またさらに、実行順算出部は、実行周期内で加工プログラム及び補助プログラムを実行可能な処理時間を処理負荷の制限値として設定し、加工プログラムの処理時間と、実行周期内で実行される補助プログラムの処理時間との合計が制限値以下となるように、実行順を算出してもよい。
【００３０】
これにより加工プログラムの実行周期内に補助プログラムを実行する際に、次の加工プログラムが実行される前に補助プログラムの処理を終了することができ、システムダウンを回避することができる。
【００３１】
また、負荷算出部は、加工プログラムが実行処理部において実行されているときに、加工プログラムの処理時間を計測し、実行順算出部は、計測された加工プログラムの処理時間に応じて、実行順を算出してもよい。
【００３２】
補助プログラムは、加工プログラムの処理が完了した後に実行されるため、先に実行されている加工プログラムの処理時間を計測し、実際の加工プログラムの処理時間に応じて、後に実行される補助プログラムの実行順を設定することができる。よって、実際の加工プログラムの処理時間に即した実行順を算出することができる。よって、補助プログラムの実行処理についてリアルタイム性を向上させるとともに、補助プログラムより高速に処理することができる。
【発明の効果】
【００３３】
本発明によれば、リアルタイム性に優れ、高速の実行速度で適正な処理動作を行うことができる。
【図面の簡単な説明】
【００３４】
【図１】本発明に係る加工プログラムの実行周期内において、複数の補助プログラムを実行処理する工作機械の数値制御装置の要部制御系統図である。
【図２】本発明に係る加工プログラム及び複数の補助プログラムを実行処理する制御系のブロック系統図である。
【図３】本発明の数値制御装置において複数の補助プログラムの関連度、優先度及びプログラム負荷の算出処理方法を示す説明図である。
【図４】図３に示す複数の補助プログラムの関連度、優先度及びプログラム負荷の算出例に基づく補助プログラムの実行順を決定する方法を示す説明図である。
【図５】本発明の数値制御装置において補助プログラムの関連度、優先度及びプログラム負荷の算出処理方法の別の実施例を示す説明図である。
【図６】図５に示す継続指令のある複数の補助プログラムの関連度、優先度及びプログラム負荷の算出例に基づく補助プログラムの実行順を決定する方法を示す説明図である。
【図７】図６に示す継続指令のある補助プログラムの実行順の決定に対する見直し方法を示す説明図である。
【図８】従来の数値制御装置において複数の補助プログラムが実行周期内に完了する補助プログラムの実行処理状態を示す説明図である。
【図９】従来の数値制御装置において複数の補助プログラムが実行周期内に完了しない場合の単純な平準化による補助プログラムの実行処理状態を示す説明図である。
【図１０】従来の数値制御装置において複数の補助プログラムの関連性を示す説明図である。
【発明を実施するための形態】
【００３５】
本発明に係る工作機械の数値制御装置としての好適な実施形態を例示し、添付の図面を参照しながら以下詳細に説明する。
【００３６】
図１は、本発明の一実施形態である多軸工作機械の数値制御装置の要部制御系統図を示すものである。
【００３７】
数値制御装置１０はＣＰＵ１２を備え、ＣＰＵ１２は数値制御装置１０の各部を制御する。ＣＰＵ１２は、ＲＯＭ１４に格納されたシステムプログラムをバス１６を介して読み出し、このシステムプログラムに従って数値制御装置１０の各部を制御する。なお、ＲＯＭ１４には、加工プログラム等の作成及び編集のために必要とされる編集モードの処理や自動運転のための処理を実施するための各種のシステムプログラムが予め書き込まれている。ＲＡＭ１８には一時的な計算データや表示データ及びＬＣＤ／ＭＤＩユニット２０を介してオペレータが入力した各種データ等が格納される。
【００３８】
ＳＲＡＭ２２は図示しないバッテリでバックアップされ、数値制御装置１０の電源がオフされても記憶状態が保持される不揮発性メモリとして構成され、初期位置を測定するプログラムや工作機械の熱変位補正を行うプログラム、インタフェース２４を介して読み込まれた後述する加工プログラム、ＬＣＤ／ＭＤＩユニット２０を介して入力された加工プログラム等が記憶されるようになっている。
【００３９】
インタフェース２４は数値制御装置１０に接続可能な外部機器のためのインタフェースであり、外部記憶装置等の外部機器２６が接続される。外部記憶装置からは加工プログラム、熱変位測定プログラム等が読み込まれる。ＰＭＣ（プログラマブル・マシン・コントローラ）２８は、数値制御装置１０に内蔵されたシーケンスプログラムで工作機械側の補助装置等を制御する。すなわち、加工プログラムで指令されたＭ機能、Ｓ機能及びＴ機能に従って、これらシーケンスプログラムの補助装置側で必要な信号を変換し、Ｉ／Ｏユニット３０から補助装置側に出力する。この出力信号により各種アクチュエータ等の補助装置が作動する。また、工作機械の本体に配備された操作盤の各種スイッチ等の信号を受け、必要な処理をしてＣＰＵ１２に渡す。
【００４０】
工作機械の各軸の現在位置、アラーム、パラメータ、画像データ等の画像信号はＬＣＤ／ＭＤＩユニット２０に送られ、そのディスプレイに表示される。ＬＣＤ／ＭＤＩユニット２０はディスプレイやキーボード等を備えた手動データ入力装置であり、インタフェース３２はＬＣＤ／ＭＤＩユニット２０のキーボードからデータを受けてＣＰＵ１２に渡す。
【００４１】
インタフェース３４は手動パルス発生器３６に接続され、手動パルス発生器３６は工作機械の操作盤に実装され、手動操作に基づく分配パルスによる各軸制御で工作機械の可動部を精密に位置決めするために使用される。
【００４２】
工作機械を構成する図示しないテーブルを移動させるＸ、Ｙ軸の軸制御回路及びＺ軸の軸制御回路５０、５２、５４はＣＰＵ１２からの各軸の移動指令を受けて、各軸の指令をサーボアンプ４４、４６、４８に出力する。サーボアンプ４４、４６、４８はこの指令を受けて工作機械の各軸のサーボモータ３８、４０、４２を駆動する。各軸のサーボモータ３８、４０、４２には位置検出用の図示しないパルスコーダが内蔵されており、このパルスコーダからの位置信号がパルス列としてフィードバックされる。
【００４３】
スピンドル制御回路６０は、工作機械への主軸回転指令を受け、スピンドルアンプ５８にスピンドル速度信号を出力する。スピンドルアンプ５８はこのスピンドル速度信号を受けて、工作機械のスピンドルモータ５６を指令された回転速度で回転させ、工具を駆動する。
【００４４】
スピンドルモータ５６には歯車あるいはベルト等でポジションコーダ６２が結合され、ポジションコーダ６２が主軸の回転に同期して帰還パルスを出力し、その帰還パルスはインタフェース６４を経由してＣＰＵ１２によって読み取られる。時計回路６６は現在時刻に同期するように調整された時計装置である。
【００４５】
図２は、本発明に係る工作機械の数値制御装置における加工プログラム及び補助プログラムを実行処理するための制御系のブロック系統図を示すものである。
【００４６】
加工プログラムは工作機械により加工を行う自動運転処理に関するプログラムであり、補助プログラムは加工の準備動作や計測等を行う処理に関するプログラムである。加工プログラムは予め決められた実行周期で実行される。補助プログラムは、加工プログラムの実行周期内において実行される。
【００４７】
補助プログラムは、それぞれの処理に対応して複数用意されている。複数の補助プログラムは、通常は予め決められた実行順で実行されるが、後述する補助プログラム同士の関連性に応じて実行順が並べ替えられる。なお、補助プログラムは、処理に応じて、１回だけ実行される補助プログラムがある一方、繰り返し実行されるコマンドである継続指令を含む補助プログラムもある。補助プログラムの実行順は、さらにこの継続指令に基づいて並べ替えられる。
【００４８】
図２において示されるプログラム７０は、加工プログラム及び補助プログラムであり、ＳＲＡＭ２２に格納されている。ここで、プログラム７０は、ＣＰＵ１２内の解読部７２によって解析（プログラム解析）され、実行データが作成される。次いで、ＣＰＵ１２内の指令要素抽出部７４において、プログラム解析された個々の補助プログラムから、他の補助プログラムとの関連性の高さが判断され、その結果は「関連度」としてＳＲＡＭ２２に記憶される。さらにＣＰＵ１２内の指令要素抽出部７４では前記「関連度」及び前記関連性を有する補助プログラム間の実行順を決定する「優先度」が決定され、次いで、加工工程中、繰り返し命令されることを表す「継続指令」の抽出が行われる。これらの関連度、優先度及び継続指令に係るデータは、例えば、図１に示されるＲＡＭ１８に格納してもよい。さらに、ＣＰＵ１２内の負荷算出部７６において、加工プログラムの処理時間と、補助プログラムの処理時間とが算出され、その算出結果はＲＡＭ１８に格納される。
【００４９】
そして、ＣＰＵ１２内の実行順算出部７８において、前記「関連度」及び「優先度」、さらには「処理時間」及び「継続指令」から、加工プログラム及び補助プログラムの実行順の算出を行う。実行順の算出結果が得られると前記実行順算出部７８により算出された実行順に基づいて、実行処理部８０を介して加工プログラム及び補助プログラムの実行処理が行われる。
【００５０】
この場合、ＣＰＵ１２内の前記実行処理部８０で実行される加工プログラム及び補助プログラムに対して、別異の負荷算出部８２により、加工プログラムの処理時間及び補助プログラムの処理時間を計測し、前記実行順算出部７８にフィードバックし、適宜加工プログラム及び補助プログラムの実行順の見直しを行ってもよい。
【００５１】
次に、加工プログラム及び複数の補助プログラムの実行順の算出処理の実施例について説明する。
【００５２】
（実施例１）
図３は、補助プログラムの関連度、優先度及びプログラム負荷の算出処理方法を示すものである。図３の上段は各補助プログラムに記載される命令文や変数等のコマンドを示し、中段は指令要素抽出部７４により各補助プログラムから抽出した変数を示し、下段は各補助プログラムの関連度、優先度及びプログラム負荷の情報を示す。
【００５３】
図３の上段に示す、各補助プログラムのそれぞれ命令の意味は、次の通りである。なお、本実施例において、補助プログラムの記述は、本出願人が前記特許文献１により提案したＮＣプログラム形式によるものである。
【００５４】
｜｜１ＺＤＯ                    ：補助プログラム１の開始
＃100=＃5021                    ：＃100にＸ軸(１軸目)の機械座標値を代入
＃101=＃5022                    ：＃101にＹ軸(２軸目)の機械座標値を代入
：
ＺＥＮＤ                        ：補助プログラム１の終了
｜｜２ＺＤＯ                    ：補助プログラム２の開始
Ｎ１…
Ｎ２…
：
ＺＥＮＤ                        ：補助プログラム２の終了
｜｜３ＺＤＯ                    ：補助プログラム３の開始
＃102=＃100＋＃101              ：＃102に＃100と＃101の加算結果を代入
Ｎ１…
Ｎ２…
：
ＺＥＮＤ                        ：補助プログラム３の終了
【００５５】
図３の上段に示すコマンドにおいて、指令要素抽出部７４では、補助プログラム１乃至３の如き個々の補助プログラムで使用している処理負荷に係る変数が補助プログラム相互間で共通のデータとして使用されていないかが探索される。具体的には、指令要素抽出部７４では、プログラム解析結果から補助プログラム１乃至３から変数の抽出が行われる。次に指令要素抽出部７４では、補助プログラム同士の関連性の有無が判断される。図３に示す例では、補助プログラム１と補助プログラム３の変数＃１００と変数＃１０１が共通であるために関連性が高い（有る）と判断され、補助プログラム２では共通する変数がないために関連性が低い（無い）と判断される。次いで指令要素抽出部７４では、個々の補助プログラムと他の補助プログラムとの関連性の高さを点数化して保持し、「関連度」を決定する。関連性の高いほど「関連度」は高くなる。この場合、補助プログラム１では補助プログラム３に対して、２つの変数が共通であるために関連度を「２」とする。同様に補助プログラム３は補助プログラム１に対して、２つの変数が共通であるために関連度を「２」とする。一方、補助プログラム２は補助プログラム１及び補助プログラム３に対して変数に共通性がないために関連度は「０」である。
【００５６】
次に、指令要素抽出部７４において前記のように判断された関連性があった補助プログラムについて、変数を「読み取り」で使用するのか、「書き込み」で使用するのかに従って点数化を行い、「優先度」を決定する。この場合、通常は、書き込みが行われた変数を読み取って、次の条件判定処理を実行するため、「書き込み」の実行順を早くし、「読み取り」の実行順を遅くするように、「優先度」を決定する。すわなち、補助プログラム１では変数＃１００と＃１０１は書き込み処理であるために優先度は「２」である。一方、補助プログラム３では変数＃１００と＃１０１は読み取り処理であるために優先度は「−２」である。
【００５７】
次に、負荷算出部７６においてプログラム負荷量が算出される。プログラム負荷量とは、加工プログラムの処理時間又は補助プログラムの処理時間である。すなわち、プログラム負荷は、加工プログラム及び補助プログラムの解析段階で個々の命令について、命令の負荷量を推定した、例えば、ＳＲＡＭ２２に格納されている図示しないプログラム負荷データテーブルを参照して負荷量を決定し、その積算値を１つのプログラム全体の負荷とする。
【００５８】
図４は、前述した図３に示す実施例１に基づく加工プログラムの実行周期内における補助プログラムの実行順の決定方法を示すものである。図４において、「自動運転実行処理」は、加工プログラムによる工作機械の自動運転に関する実行処理状態を示し、また「補助プログラム１実行処理」、「補助プログラム２実行処理」、「補助プログラム３実行処理」は、加工プログラムの実行周期内に実行される補助プログラムの実行処理状態を示す。
【００５９】
図４に示すように、実行順算出部７８は、加工プログラム及び補助プログラムを実行周期内で実行可能な処理時間を処理負荷の制限値として予め規定する。この場合、加工プログラムの「自動運転実行処理」の処理時間は、別異の負荷算出部８２において命令の開始時から完了時までの時間の測定値から処理負荷の測定値として決定される。
【００６０】
そこで、実行順算出部７８は、加工プログラムの実行周期内で実行される補助プログラム１乃至３のうち、関連度が高い補助プログラム１と補助プログラム３とを、同一の実行周期内で実行できるように、関連度が高い補助プログラムと隣り合って、しかも優先度が高い順になるように、実行順を並び換える（図４参照）。すなわち、実行順は加工プログラム→補助プログラム１→補助プログラム３→加工プログラム→補助プログラム２となり、関連度が低い補助プログラム２の実行処理は次なる実行周期内の処理に回される。
【００６１】
実行処理部８０では、このようにして決定された実行順に従って、同一の実行周期内で実行される加工プログラム及び補助プログラムのプログラム負荷が処理負荷の制限値に収まる範囲で、加工プログラム及び補助プログラムの実行処理が行われる。
【００６２】
（実施例２）
図５は、補助プログラムの実行処理が継続的に実行される（「継続指令」のある）場合における、前述した実施例１と同様の自動運転実行処理のための加工プログラムの実行周期内において実行される補助プログラムの関連度、優先度、プログラム負荷の算出処理方法を示すものである。図５の上段は各補助プログラムに記載される命令文や変数を示し、中段は指令要素抽出部７４により各補助プログラムから抽出した変数を示し、下段は各補助プログラムの関連度、優先度、プログラム負荷及び継続指令の情報を示す。
【００６３】
図５に示す、実施例２の継続指令（「補助プログラム３」参照）のある補助プログラム例のそれぞれ命令の意味は、次の通りである。なお、本実施例においても、補助プログラムの記述は、本出願人が前記特許文献１により提案したＮＣプログラム形式によるものである。
【００６４】
｜｜１ＺＤＯ                        ：補助プログラム１の開始
＃100=＃5021                        ：＃100にＸ軸(１軸目)の機械座標値を代入
＃101=＃5022                        ：＃101にＹ軸(２軸目)の機械座標値を代入
：
ＺＥＮＤ                            ：補助プログラム１の終了
｜｜２ＺＤＯ                        ：補助プログラム２の開始
Ｎ１…
Ｎ２…
：
ＺＥＮＤ                            ：補助プログラム２の終了
｜｜３ＺＤＯ                        ：補助プログラム３の開始
ＺＥＤＧＥ［＃100ＧＥ＃102］ＺＤＯ  ：＃100が＃102以上になるとＺＤＯからＺＥＮＤまで実行
Ｎ１…
Ｎ２…
：
ＺＥＮＤ                            ：ＺＥＤＧＥ文が成立したらここまで実行
ＺＥＮＤ                            ：補助プログラム３の終了
【００６５】
図５における実施例２では、前述した図３に示す実施例１と同様に、関連度、優先度、プログラム負荷の算出処理が営まれ、一方、補助プログラム３には「継続指令」が加わっている。従って、関連度及び優先度の算出は、実施例１と同様に、個々の補助プログラムの関連性と、読み取り及び書き込みの関係で決定される。
【００６６】
一方、指令要素抽出部７４は、補助プログラム中に繰り返し実行処理を行う条件判定やループ処理がある制御文の場合に、「継続指令」とする情報を付加する。そして、「継続指令」を有する補助プログラムのプログラム負荷は、最も負荷が大きくなるパターンを探索し、プログラム負荷とする。
【００６７】
図６に、図５に示す実施例２に基づく「継続指令」がある補助プログラムの実行周期内における実行順の決定方法を示す。
【００６８】
本実施例２においても、前記実施例１と同様に、実行順算出部７８は、実行周期内で加工プログラム及び補助プログラムを実行可能な処理時間を処理負荷の制限値として予め規定する。また、加工プログラムの「自動運転実行処理」の処理時間は、別異の負荷算出部８２において命令の開始時から完了時までの時間の測定値から処理負荷の測定値として決定される。
【００６９】
そこで、実行順算出部７８は、加工プログラムの実行周期内で実行される補助プログラム１乃至３のうち、関連度が高い補助プログラム１と補助プログラム３を、同一の実行周期内に実行できるように、関連度が高い補助プログラムが隣り合って、しかも優先度が高い順になるように実行順を並び換える（図６参照）。すなわち、実行順は加工プログラム→補助プログラム１→補助プログラム３→加工プログラム→補助プログラム２となり、関連度が低い補助プログラム２の実行処理は次なる実行周期内の処理に回される。
【００７０】
実行処理部８０では、このようにして決定された実行順に従って、同一の実行周期内で実行される加工プログラム及び補助プログラムのプログラム負荷が処理負荷の制限値に収まる範囲で、加工プログラム及び補助プログラムの実行処理が行われる。
【００７１】
本実施例２においては、「継続指令」は、実行周期内で繰り返し実行されるため、「継続指令」が含まれる補助プログラムが終了するまで、この補助プログラムの実行処理が繰り返し行われる。そして、「継続指令」の場合は、実際に実行する制御文によって、実際の処理負荷時間がプログラム負荷と大きく乖離する可能性がある。
【００７２】
そのため、「継続指令」が含まれる補助プログラムでは、別異の負荷算出部８２において実行周期内の処理負荷時間の測定を行い、その測定値を使用し、実行処理中において、図７に示すように、プログラム負荷の見直しを行うことが好ましい。
【００７３】
図７は、図６に示す実施例２に基づく「継続指令」がある補助プログラムの実行周期内における実行順の決定に対する見直し方法を示すものである。
【００７４】
すなわち、「継続指令」が含まれる「補助プログラム３実行処理」において、測定された処理負荷時間が小さく、「補助プログラム２実行処理」のプログラム負荷が処理負荷の制限値に収まる場合、実行順算出部７８は「補助プログラム２実行処理」を前の実行周期で動作させるように、実行順の見直しを行う。すなわち、実行順は加工プログラム→補助プログラム１→補助プログラム３→補助プログラム２→加工プログラムとなる。これによって処理負荷の制限値に対して実際の処理負荷時間が乖離しないように、実行順を決定することができる。
【００７５】
以上、本発明の好適な実施形態についてそれぞれ説明したが、本発明は前述した実施形態に限定されることなく、本発明の要旨を逸脱しない範囲において種々設計変更が可能であることは言うまでもない。
【符号の説明】
【００７６】
１０…数値制御装置                      １２…ＣＰＵ
１４…ＲＯＭ                            １８…ＲＡＭ
２０…ＬＣＤ／ＭＤＩユニット            ２２…ＳＲＡＭ
３０…Ｉ／Ｏユニット                    ３８、４０、４２…サーボモータ
４４、４６、４８…サーボアンプ          ５０、５２、５４…軸制御回路
５６…スピンドルモータ                  ５８…スピンドルアンプ
６０…スピンドル制御回路                ７０…プログラム
７２…解読部                            ７４…指令要素抽出部
７６…負荷算出部                        ７８…実行順算出部
８０…実行処理部                        ８２…別異の負荷算出部
【図１】
0006316919.tif 000002
【図２】
0006316919.tif 000003
【図３】
0006316919.tif 000004
【図４】
0006316919.tif 000005
【図５】
0006316919.tif 000006
【図６】
0006316919.tif 000007
【図７】
0006316919.tif 000008
【図８】
0006316919.tif 000009
【図９】
0006316919.tif 000010
【図１０】
0006316919.tif 000011