(57)【特許請求の範囲】
【請求項１】
マクロプログラムに基づいて補助マクロ機能を実行する数値制御装置において、
前記マクロプログラムを解析して実行データを作成するマクロプログラム事前解析部と、前記実行データを記憶する実行データ記憶部と、
前記実行データに含まれる各指令を実行周期においてリアルタイム性が求められるタスクに次ぐ実行優先度で実行するマクロプログラム実行部と、
を備え、
前記マクロプログラム実行部は、実行する前記指令の実行時間と前記タスクの実行時間との合計が各実行周期において所定の基準時間内に収まるように各実行周期における前記指令の実行数を調整する、
ことを特徴とする数値制御装置。
【請求項２】
制御対象となる機械が備えた駆動部を制御する前記数値制御装置であって、
前記タスクは、前記駆動部を制御する駆動部制御処理である、
ことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記実行データ記憶部は、揮発性メモリと不揮発性メモリにより構成され、
前記揮発性メモリに前記実行データが記憶されていない場合、前記不揮発性メモリに記憶されている前記実行データを前記揮発性メモリ上に展開する不揮発性メモリ実行データ管理部を更に備える、
ことを特徴とする請求項１または２に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置に関し、特に、補助マクロ機能を上位の優先度で高速に実行することが可能な数値制御装置に関する。
【背景技術】
【０００２】
従来、数値制御装置において加工プログラムの自動運転とは別に周期的な演算を行なうマクロ機能として、補助マクロ機能がある。補助マクロ機能とは、機械メーカが容易に独自機能を実現するための機能である。補助マクロ機能を利用することにより、加工プログラムの自動運転とは非同期で周期的にマクロを実行することができるようになり、変数の変化などを検出して独自の制御を実現する（特許文献１参照）。
【０００３】
数値制御装置が実行するそれぞれの処理には優先度が設定されており、数値制御装置は次に実行する処理を優先度によって決定する。一般に、数値制御装置上では、サーボ制御などの一定周期毎に必ず動作しなければならない命令が最も高い優先度に設定されており、このような優先度の高い命令の処理が完了すると、次に優先度が高い加工プログラムの解析などの自動運転処理の命令を実行する。これらの処理は、加工プログラムのサイクルタイムに直結し、数値制御装置の性能を左右するため優先的に処理される。そして、補助マクロ機能の処理は、優先度としては下位に位置付けられ、前記の各処理が終了した後の空き時間で実行される。
【０００４】
補助マクロ機能の処理は、逐次解析処理と実行処理に大別される。逐次解析処理とは、マクロプログラムの構文を読み取り、解析を行なって、数値制御装置が実行可能な実行データ形式への翻訳を行ない、実行データを作成する処理である。一方、実行処理は、逐次解析処理によって作成した実行データを順次、実行処理を行ない、所望の動作を実現させる処理である。
補助マクロ機能の実行が加工プログラムの処理と比べて下位の優先度となっている理由は、補助マクロ機能は逐次解析処理と実行処理を行なう必要があり、その処理負荷によって加工プログラムのサイクルタイムを悪化することがないように、下位の優先度で実行されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−０４８４７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、補助マクロ機能は下位の優先度で実行されているため、高速な応答や演算が求められるアプリケーション向けには十分なパフォーマンスが提供されておらず、このような用途を目的としたアプリケーションを補助マクロ機能として開発することができなかった。
【０００７】
そこで本発明の目的は、補助マクロ機能を上位の優先度で高速に実行することが可能な数値制御装置を提供することである。
【課題を解決するための手段】
【０００８】
本願の請求項１に記載の発明は、マクロプログラムに基づいて補助マクロ機能を実行する数値制御装置において、前記マクロプログラムを解析して実行データを作成するマクロプログラム事前解析部と、前記実行データを記憶する実行データ記憶部と、前記実行データに含まれる各指令を実行周期において高い実行優先度で実行するマクロプログラム実行部と、を備え、前記マクロプログラム実行部は、実行する前記指令の実行時間の合計が各実行周期において所定の基準時間内に収まるように各実行周期における前記指令の実行数を調整する、ことを特徴とする数値制御装置である。
【０００９】
本願の請求項２に記載の発明は、制御対象となる機械が備えた駆動部を制御する前記数値制御装置であって、前記高い実行優先度は、前記駆動部を制御する駆動部制御処理の実行優先度に次いで高い実行優先度である、ことを特徴とする請求項１に記載の数値制御装置である。
【００１０】
本願の請求項３に記載の発明は、前記実行データ記憶部は、揮発性メモリと不揮発性メモリにより構成され、前記揮発性メモリに前記実行データが記憶されていない場合、前記不揮発性メモリに記憶されている前記実行データを前記揮発性メモリ上に展開する不揮発性メモリ実行データ管理部を更に備える、ことを特徴とする請求項１または２に記載の数値制御装置である。
【発明の効果】
【００１１】
本発明により、補助マクロ機能を上位の優先度で高速に実行することが可能となるため、高い応答性と高速な演算が可能となる。高い応答性は、時間精度及び計測精度の向上に寄与し、また、高速な演算により、マクロプログラムの演算を時間的な制約で簡易的な演算処理にせざるをなかったものが、より複雑な演算をすることが可能となり、補助マクロ機能での高度なアプリケーションの実現に寄与する。
【図面の簡単な説明】
【００１２】
【図１】本発明の補助マクロ機能の実行方式の概要を説明する図である。
【図２】本発明の補助マクロ機能の実行方式の処理フェイズについて説明する図である。
【図３】本発明の実施の形態における数値制御装置の機能ブロック図である。
【図４】本発明の実施の形態における事前解析処理による実行データ作成のフローチャートである。
【図５】本発明の実施の形態における優先度の高いタスクの実行処理のフローチャートである。
【図６】本発明の実施の形態における補助マクロ実行処理のフローチャートである。
【発明を実施するための形態】
【００１３】
以下では、本発明の実施の形態について図面を用いて説明する。
最初に、本発明における補助マクロ機能の実行方式の概要について説明する。図１は、従来技術における補助マクロ機能の実行方法と、本発明における補助マクロ機能の実行方法について説明する図である。
上述したとおり、補助マクロ機能を実行するために必要とされる処理は、逐次解析処理と実行処理に別けられ、従来技術においては補助マクロ機能を実行する際には、図１上に示すように補助マクロ機能の逐次解析処理と実行処理の両処理が、周期処理の中で逐次実行されていた。
【００１４】
これに対して、本発明においては図１下に示すように、周期処理の中では補助マクロ機能の実行処理のみを実行することとし、実行処理に必要とされる補助マクロ機能の実行データを作成する逐次解析処理は、周期処理では行わずに事前に実行しておき、実際にプログラムの実行が開始される前にあらかじめ実行データを作成しておく。
このように解析処理を事前実行することで、周期処理の中では、補助マクロ機能を実行するために必要とされる処理のうち、比較的処理負荷の小さい実行処理のみを実行すればよくなる。これに加えて、周期処理のフェイズにおける各実行周期に対して優先度の高いタスクの実行が可能な時間として基準時間Ｔｂを設け、実行周期における補助マクロの実行を基準時間Ｔｂ内に収まるように調整し、他の優先順位の処理の実行を阻害することなく高い優先順位で補助マクロ機能を実行することができるようにする。
【００１５】
図２は、図１で説明した本発明における補助マクロ機能の実行方式について、より詳細に説明するための図である。本発明では、図２に示すように周期処理の実行フェイズとは別に事前解析処理の実行フェイズを設け、該事前解析処理フェイズの中で補助マクロ機能の逐次解析処理を事前解析処理として実行する。事前解析処理により作成した補助マクロ機能の実行データは揮発性メモリや不揮発性メモリに記憶しておき、周期処理の実行フェイズにおいてこれらメモリから読み出され補助マクロ機能の実行処理に利用される。
【００１６】
図３は、本発明の一実施の形態における数値制御装置の機能ブロック図である。本実施の形態の数値制御装置１００は、マクロプログラム事前解析部１１０、マクロプログラム実行部１２０、実行時間算出部１３０、実行時間計測部１４０、揮発性メモリ実行データ管理部１５０、不揮発性メモリ実行データ管理部１６０、揮発性メモリ実行データ記憶部１７０、不揮発性メモリ実行データ記憶部１８０、実行時間テーブル１９０を備えている。
【００１７】
マクロプログラム事前解析部１１０は、補助マクロ機能のマクロプログラムの指令の解析処理を行い、数値制御装置が実行可能な実行データ形式へ翻訳して実行データを作成し、作成した実行データを揮発性メモリ実行データ管理部１５０、不揮発性メモリ実行データ管理部１６０を介して揮発性メモリ実行データ記憶部１７０、不揮発性メモリ実行データ記憶部１８０に記憶する。揮発性メモリ実行データ記憶部１７０、不揮発性メモリ実行データ記憶部１８０のいずれにどのようなデータを記憶するのかについては、補助マクロ機能の性質や、一時的な記憶を目的とするのか、或いは後々に利用するような状況であるのか、などの目的に合わせて自動的乃至手動で適宜採択する。
【００１８】
マクロプログラム実行部１２０は、後述する補助マクロ実行処理により、マクロプログラム事前解析部１１０が作成した実行データを、揮発性メモリ実行データ管理部１５０、不揮発性メモリ実行データ管理部１６０を介して揮発性メモリ実行データ記憶部１７０、不揮発性メモリ実行データ記憶部１８０から読み出して補助マクロ機能を実行する。補助マクロ実行処理においては、補助マクロ実行処理が他の下位の優先度の処理を過度に圧迫しないよう、実行時間計測部１４０により計測された実行時間と、補助マクロ機能に用いられる各指令の実行処理に係る実行時間を記憶した実行時間テーブル１９０とに基づいて高い優先度の処理の総実行時間を実行時間算出部１３０により算出し、実行周期毎の補助マクロ実行処理量を調整する。
【００１９】
揮発性メモリ実行データ管理部１５０、不揮発性メモリ実行データ管理部１６０は、それぞれ揮発性メモリ実行データ記憶部１７０、不揮発性メモリ実行データ記憶部１８０への実行データの保存及び読み出しの管理を行う。また、不揮発性メモリ実行データ管理部１６０は、数値制御装置の電源投入時のような、揮発性メモリ上のデータが消失している場合などに、不揮発性メモリ実行データ記憶部１８０から実行データを読み出して、揮発性メモリ実行データ管理部１５０を介して揮発性メモリ実行データ記憶部１７０へデータの展開を行なう。
【００２０】
実行時間テーブル１９０は、補助マクロ機能において用いられる各指令について、実行データを実行処理に掛かる時間が記憶されたテーブルである。実行時間テーブル１９０は、あらかじめメーカなどにより作成されてデータとして提供するようにしてもよいし、数値制御装置１００の設定プログラムにより各指令を試験的に実行して各指令の実行処理に掛かる時間を計測し、計測した値に基づいて作成するようにしてもよい。
【００２１】
以上のような構成を備えた本実施の形態の数値制御装置における、事前解析処理フェイズにおける事前解析処理による実行データ作成について図４のフローチャートを用いて説明する。事前解析処理フェイズにおける事前解析処理は、オペレータなどにより機械の運転開始が指令され、実際に加工プログラムによる機械の運転制御が開始される前などに実行される。
●［ステップＳＡ０１］補助マクロ機能のマクロプログラムを解析し、解析結果に基づいて各マクロ指令に対する実行形式のデータを生成し、実行データを作成する。
●［ステップＳＡ０２］ステップＳＡ０１で作成した実行データを揮発性メモリ及び不揮発性メモリへの保存処理を行なう。
【００２２】
次に、周期処理フェイズで実行される、優先度の高いタスクの実行処理について、図５のフローチャートを用いて説明する。
周期処理フェイズにおいては、各タスクは優先度の高い順に実行され、上位の優先度の実行が完了すると、下位の優先度の実行に遷移していく。その際に、上位の優先度の実行時間が過度に増大すると、下位の優先度の実行時間が十分に確保できなくなり、加工プログラムのサイクルタイム等が悪化する可能性があるため、補助マクロ実行処理を追加することで上位の優先度の実行時間が過度に増大しないように、各実行周期における補助マクロ実行処理の処理量を実行時間（Ｔｐ）と基準時間（Ｔｂ）で制御する。
【００２３】
●［ステップＳＢ０１］実行時間Ｔｐの初期化（ゼロクリア）を行い、実行時間Ｔｐのカウントを開始する。
●［ステップＳＢ０２］優先度の高いタスクであって、リアルタイム性が求められるタスクの演算処理を実行する。
●［ステップＳＢ０３］ステップＳＢ０２で実行される優先度の高いタスクの演算処理の終了後、実行時間Ｔｐのカウントを終了し、当該処理の実行時間Ｔｐを算出する。
●［ステップＳＢ０４］ステップＳＢ０３で算出した実行時間Ｔｐに基づいて補助マクロ実行処理を行う。
【００２４】
図６は、図５のステップＳＢ０４にあたる補助マクロ実行処理の詳細を示すフローチャートである。
●［ステップＳＣ０１］実行周期毎の補助マクロの実行時間を示す経過時間Ｔｔのカウンタの初期化を行なう。
●［ステップＳＣ０２］揮発メモリ上の実行データを参照し、次の指令に対応する実行時間Ｔｃを、各指令の実行時間テーブル１９０を参照して取得する。
●［ステップＳＣ０３］経過時間Ｔｔに対して実行時間Ｔｃを加算し、次指令を実行した場合の経過時間Ｔｔを算出する。
●［ステップＳＣ０４］図５のステップＳＢ０３で算出した実行時間ＴｐとステップＳＣ０３で算出した経過時間Ｔｔを加算した値と、優先度の高いタスクの実行が可能な時間として設けた基準時間Ｔｂとを比較して、実行時間Ｔｐと経過時間Ｔｔを加算した値が基準時間Ｔｂを超過していないかチェックする。超過している場合には本実行周期における補助マクロ実行処理を終了し、超過していない場合にはステップＳＣ０５へ進む。
●［ステップＳＣ０５］実行データの１指令の実行処理を行なう。ここで指令するのはステップＳＣ０４で実行時間をチェックした指令になる。実行処理が終了したら、ステップＳＣ０２へと戻る。
【００２５】
このように、本実施の形態の補助マクロ実行処理においては、基準時間Ｔｂを超過するまでは、ステップＳＣ０２〜ステップＳＣ０５の処理を繰り返し、基準時間Ｔｂを超過した場合は補助マクロの実行処理は一時中断して、次回の実行周期から続きの指令を実行するので、他の下位の優先順位の処理を圧迫することなく、補助マクロの実行処理を高い優先順位で実行することができる。
【００２６】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例に限定されることなく、適宜の変更を加えることにより、その他の態様で実施することができる。例えば、他の実施の形態においては高い優先度で実行する補助マクロ機能を選択し、設定できるようにしてもよい。そのような場合、各補助マクロ機能について優先度の高低を設定する機能を実装し、高い応答性が必要とされない補助マクロ機能については従来技術通り低い優先度で実行し、重要な補助マクロ機能のみを高い優先度で実行するようにできる。更に、補助マクロ機能の優先度を、補助マクロ機能の指令に応じて自動的に設定するように構成してもよい。このように構成することで、補助マクロ機能の種類や性質によって、高い応答性が必要となる補助マクロ機能については自動的に高い優先度で実行されるようにすることができる。
【符号の説明】
【００２７】
１００    数値制御装置
１１０    マクロプログラム事前解析部
１２０    マクロプログラム実行部
１３０    実行時間算出部
１４０    実行時間計測部
１５０    揮発性メモリ実行データ管理部
１６０    不揮発性メモリ実行データ管理部
１７０    揮発性メモリ実行データ記憶部
１８０    不揮発性メモリ実行データ記憶部
１９０    実行時間テーブル
【図１】
0006363448.tif 000002
【図２】
0006363448.tif 000003
【図３】
0006363448.tif 000004
【図４】
0006363448.tif 000005
【図５】
0006363448.tif 000006
【図６】
0006363448.tif 000007