(57)【要約】【課題】ユーザプログラムから割り込みプログラムを呼び出すことができ、かつＮＣ装置単独でタイマ割り込みを実現するＮＣ装置を得ること。【解決手段】タイマと、記憶部と、割り込み条件値の設定ルールと割り込みプログラムとを指定するタイマ割り込み命令のプログラムブロックを含む複数のプログラムブロックからなるユーザプログラムを実行する制御部と、を備え、制御部は、取得したタイマ割り込み命令に指定されている設定ルールに基づいて割り込み条件値を求めて記憶部に記憶させるとともに、タイマにカウントを開始させるプログラムブロック実行機能部と、タイマの現在値が割り込み条件値を越えたとき、タイマ割り込み命令に指定されている割り込みプログラムを実行する割り込みプログラム実行機能部と、を有する。【選択図】        図１
2010026660.tif 000002
【特許請求の範囲】
【請求項１】
タイマと、
記憶部と、
タイマの値に関する条件値である割り込み条件値の設定ルールと割り込みプログラムとを指定するタイマ割り込み命令のプログラムブロックを含む複数のプログラムブロックからなる外部装置の動作を制御するユーザプログラムを実行する制御部と、
を備え、
前記制御部は、
前記タイマ割り込み命令のプログラムブロックを取得したとき、該タイマ割り込み命令に指定されている設定ルールに基づいて割り込み条件値を求め、該求めた割り込み条件値を前記記憶部に記憶させるとともに、前記タイマにカウントを開始させるプログラムブロック実行機能部と、
前記タイマの現在値が前記記憶部に記憶されている割り込み条件値を越えたとき、前記タイマ割り込み命令に指定されている割り込みプログラムを実行する割り込みプログラム実行機能部と、
を有することを特徴とする数値制御装置。
【請求項２】
前記プログラムブロック実行機能部は、
プログラムブロックを前記ユーザプログラムから所定の順番に従って１つ取得し、該取得したプログラムブロックがタイマ割り込み命令であるか否かを判定し、前記取得したプログラムブロックがタイマ割り込み命令ではない場合、前記取得したブログラムブロックを実行し、前記取得したプログラムブロックがタイマ割り込み命令であった場合、該タイマ割り込み命令に指定されている設定ルールに基づいて割り込み条件値を求め、該求めた割り込み条件値と前記取得したタイマ割り込み命令に指定されている割り込みプログラムの識別情報とを前記記憶部に記憶させるとともに、前記タイマにカウントを開始させ、
前記割り込みプログラム実行機能部は、
前記プログラムブロック実行機能部が次のプログラムブロックを取得する前に、前記タイマの現在値が前記記憶部に記憶されている割り込み条件値を越えているか否かを判定し、前記タイマの現在値が前記割り込み条件値を越えている場合、前記記憶部に記憶されている識別情報に対応する割り込みプログラムを取得して実行する、
ことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
現在時刻を計測するリアルタイムクロックと、
記憶部と、
前記リアルタイムクロックの値に関する条件値である割り込み条件値の設定ルールと割り込みプログラムとを指定するタイマ割り込み命令のプログラムブロックを含む複数のプログラムブロックからなる外部装置の動作を制御するユーザプログラムを実行する制御部と、
を備え、
前記制御部は、
前記タイマ割り込み命令のプログラムブロックを取得したとき、該タイマ割り込み命令に指定されている設定ルールに従って割り込み条件値を求め、該求めた割り込み条件値を前記記憶部に記憶させるプログラムブロック実行機能部と、
前記リアルタイムクロックの現在値が前記記憶部に記憶されている割り込み条件値を越えたとき、前記タイマ割り込み命令に指定されている割り込みプログラムを実行する割り込みプログラム実行機能部と、
を有することを特徴とする数値制御装置。
【請求項４】
前記プログラムブロック実行機能部は、
プログラムブロックを前記ユーザプログラムから所定の順番に従って１つ取得し、該取得したプログラムブロックがタイマ割り込み命令であるか否かを判定し、前記取得したプログラムブロックがタイマ割り込み命令ではない場合、前記取得したブログラムブロックを実行し、前記取得したプログラムブロックがタイマ割り込み命令であった場合、該タイマ割り込み命令に指定されている設定ルールに基づいて割り込み条件値を求め、該求めた割り込み条件値と前記取得したタイマ割り込み命令に指定されている割り込みプログラムの識別情報とを前記記憶部に記憶させ、
前記割り込みプログラム実行機能部は、
前記プログラムブロック実行機能部が次のプログラムブロックを取得する前に、前記リアルタイムクロックの現在値が前記記憶部に記憶されている割り込み条件値を越えているか否かを判定し、前記リアルタイムクロックの現在値が前記割り込み条件値を越えている場合、前記記憶部に記憶されている識別情報に対応する割り込みプログラムを取得して実行する、
ことを特徴とする請求項３に記載の数値制御装置。
【請求項５】
前記タイマ割り込み命令は、前記割り込みプログラム実行機能部に、前記記憶部に記憶されている識別情報に対応する割り込みプログラムを実行する前に、前記プログラムブロック実行機能部が直前に実行していたユーザプログラムおよびプログラムブロックを特定する情報である直前実行情報を前記記憶部に記憶させる命令をさらに有する、
ことを特徴とする請求項２または４に記載の数値制御装置。
【請求項６】
前記割り込みプログラムは、前記記憶部に記憶されている直前実行情報に応じて外部装置に対して異なる制御を実行するプログラムである、ことを特徴とする請求項５に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザプログラムからタイマ割り込みを指令してタイマ割り込みを実行できる数値制御装置に関するものである。
【背景技術】
【０００２】
従来の数値制御装置（Numerical  Control装置；以下、ＮＣ装置という）のタイマ機能は、ユーザプログラムで指令してから一定時間経過すると外部信号を出力することができるものであった。
【０００３】
また、従来のＮＣ装置の割り込み機能は、プログラマブルコントローラ（Programmable  Logic  Controller；以下、ＰＬＣという）からの割り込み信号によって任意のプログラムの任意の処理(サブプログラム等、現在実行中のユーザプログラムと異なるプログラムでも可。以下、該処理を行うプログラムを割り込みプログラムという)を開始できるものであった。
【０００４】
任意の時間経過後に割り込みプログラムを実行できる機能(以下、タイマ割り込み機能という)を実現するためには、この２つの機能を組み合わせる必要があった（以下、従来技術という）。
【０００５】
これに関連する技術としては、特許文献１に、入出力インターフェースから出力される信号を遅延させる手段を設け、ロボットが動作中であっても、遅延させて出力される信号によりロボットの動作と同期してロボットの付属装置を動作させることができる技術が開示されている。
【０００６】
【特許文献１】特開昭６２−５８３０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記従来技術によれば、ＮＣ装置のＣＰＵ（以下、ＮＣ  ＣＰＵという）からＰＬＣのタイマデバイスのタイマ設定およびタイマ起動を行い、ＰＬＣから割り込み信号を受信したとき該割り込み信号に対応する割り込みプログラムを起動するようにＮＣ装置のユーザプログラムを作成しておく。そして、ＰＬＣ側では、タイマデバイスのタイマ時間経過信号に基づいて割り込み信号をＮＣ装置に送信するように、ＰＬＣのプログラムを作成しておく。このように、上記従来技術でタイマ割り込み機能を実現するためには、ＰＬＣのプログラムを変更する必要があるという問題点があった。
【０００８】
また、上記特許文献１の技術によれば、ユーザプログラムから割り込みプログラムを呼び出す手段がないので、使い勝手がよくないという問題点があった。
【０００９】
本発明は、上記に鑑みてなされたものであって、ユーザプログラムから割り込みプログラムを呼び出すことができ、かつＮＣ装置単独でタイマ割り込みを実現するＮＣ装置を得ることを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明は、タイマと、記憶部と、タイマの値に関する条件値である割り込み条件値の設定ルールと割り込みプログラムとを指定するタイマ割り込み命令のプログラムブロックを含む複数のプログラムブロックからなる外部装置の動作を制御するユーザプログラムを実行する制御部と、を備え、前記制御部は、前記タイマ割り込み命令のプログラムブロックを取得したとき、該タイマ割り込み命令に指定されている設定ルールに基づいて割り込み条件値を求め、該求めた割り込み条件値を前記記憶部に記憶させるとともに、前記タイマにカウントを開始させるプログラムブロック実行機能部と、前記タイマの現在値が前記記憶部に記憶されている割り込み条件値を越えたとき、前記タイマ割り込み命令に指定されている割り込みプログラムを実行する割り込みプログラム実行機能部と、を有することを特徴とする。
【発明の効果】
【００１１】
この発明によれば、ユーザプログラムから割り込みプログラムを呼び出すことができ、かつＮＣ装置単独でタイマ割り込みを実現するＮＣ装置を得ることができる。
【発明を実施するための最良の形態】
【００１２】
以下に、本発明にかかるＮＣ装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１３】
実施の形態１．
図１は、本発明にかかる実施の形態１のＮＣ装置の構成を示す図である。図１において、ＮＣ装置１０１は、ＮＣ  ＣＰＵ１０２と、タイマ１０３と、ＲＴＣ（Real  Time  Clock）１０４と、ＲＡＭ１０５と、ユーザプログラムを記憶する外部記憶装置１０６と、ＮＣ  ＣＰＵ１０２に実行されることによって、ユーザプログラムを実行することによって外部装置の動作を制御する制御部を生成する制御プログラムを格納するＲＯＭ１０７と、を有する。
【００１４】
ここで、ユーザプログラムは、タイマ割り込み命令のプログラムブロックを含む複数のプログラムブロックから構成されている。タイマ割り込み命令は、割り込みを実行するタイミングを決めるためのタイマの条件値である割り込み条件値の設定ルールを指定する。また、タイマ割り込み命令は、割り込みプログラムの識別情報が記述されており、該識別情報により割り込ませる割り込みプログラムを指定する。割り込み条件値の設定ルールによれば、タイマの条件値を直接的に指定できるだけでなく、割り込みを実行する時刻を指定し、制御部にこの時刻からタイマの条件値を算出させることもできる。
【００１５】
割り込みプログラムの識別情報は、制御部が夫々の割り込みプログラムを識別することが出来る情報であればどのような種類であってもかまわないが、ここでは、割り込みプログラムは固有の番号が割り当てられており、割り込みプログラムの識別情報としてこの固有の番号（以下、割り込みプログラム番号という）を使用することとする。
【００１６】
さらに、ユーザプログラムは、夫々のユーザプログラムに固有の識別情報が割り当てられている。ここでは、ユーザプログラムの識別情報として、夫々のユーザプログラムに固有の番号（以下、ユーザプログラム番号という）が割り当てられているとする。制御部がプログラムブロックを実行しているとき、ＲＡＭ１０５にプログラムブロックと該プログラムブロックが所属するユーザプログラムのユーザプログラム番号とが記憶される。
【００１７】
タイマ割り込み命令には、割り込み発生時に、割り込み直前に実行していたプログラム番号とプログラムブロックとをＲＡＭ１０５から取得して夫々割り込み前プログラム番号および割り込み前実行ブロックとし、夫々ＲＡＭ１０５の所定のアドレスに記憶させる命令も使用可能となっている。すなわち、この命令が実行されると、割り込み直前に実行されていたユーザプログラムおよびプログラムブロックが特定できるようになる。ここでは、割り込み前プログラム番号と割り込み前実行ブロックとを割り込みプログラムから呼び出し可能な変数に対応するアドレスに夫々記憶させるとする。
【００１８】
タイマ割り込み命令の例として、下記のプログラムブロック１〜３を挙げる。
（プログラムブロック１）
１０秒を割り込み条件値とし、０１００という番号が割り当てられている予め用意した割り込みプログラム（以下、プログラム０１００という）を割り込ませる。例えば、
G4.1  P100  S10000
というように簡潔に一行で記述する。
（プログラムブロック２）
ＲＴＣ１０４から現在時刻を取得し、現在時刻と設定時刻との差を求め、その差を割り込み条件値とし、プログラム０１００を割り込みプログラムとする。
（プログラムブロック３）
１０秒を割り込み条件値とし、プログラム０１００を割り込ませる。さらに、割り込み前プログラム番号および割り込み前実行完了ブロックを夫々変数「＃１００１」および「＃１００２」に記憶させるように設定する。
【００１９】
ＲＡＭ１０５は、上記の割り込み条件値、割り込みプログラムの番号、および動作設定（プログラムブロック３の場合において、割り込み前プログラム番号および割り込み前実行完了ブロックを変数に記憶させる動作の設定）からなる割り込み条件と、実行中のユーザプログラムのユーザプログラム番号と、実行中のプログラムブロックと、変数（の内容）とを記憶する記憶部である。
【００２０】
ＮＣ  ＣＰＵ１０２がＲＯＭ１０７に記憶されている制御プログラムを実行することにより実現する制御部は、プログラムブロックを外部記憶装置１０６に記憶されているユーザプログラムから所定の順番で１つ取得し、該取得したプログラムブロックを解析し、該取得したプログラムブロックを実行（取得したプログラムがタイマ割り込み命令である場合はタイマ割り込み条件設定を実行）するプログラムブロック実行機能と、割り込み条件が成立するか否かを判定し、割り込み条件が成立したとき、割り込みプログラムを実行する割り込みプログラム実行機能と、を有する。
【００２１】
次に、このように構成される実施の形態１のＮＣ装置１０１の動作を説明する。図２は、実施の形態１のＮＣ装置１０１において、ＮＣ  ＣＰＵ１０２が制御プログラムを実行することによって実現する制御部の動作を説明するフローチャートである。図２に示すように、制御部１０８の動作は、前記するプログラムブロック実行機能による動作１１２および割り込みプログラム実行機能による動作１１１とに分けられる。以下、これらの動作を詳細に説明する。
【００２２】
図２において、制御部１０８は、まず、タイマ１０３とＲＡＭ１０５に保存された割り込み条件値とを比較して、割り込み条件が成立しているか否かを判定する（ステップＳ１０）。すなわち、割り込み条件値とタイマ１０３とを比較し、割り込み条件値≦タイマ１０３の値であるとき、割り込み条件が成立することとなる。最初はまだ割り込み条件が設定されていないので、割り込み条件は成立しないので（ステップＳ１０、Ｎｏ）、制御部１０８は、外部記憶装置１０６に記憶されているユーザプログラムから実行するプログラムブロックを１つ取得する（ステップＳ５０）。
【００２３】
制御部１０８は、取得したプログラムブロックを解析し（ステップＳ６０）、該プログラムブロックがタイマ割り込み命令、すなわちプログラムブロック１〜３の何れかであるか否かを判定する（ステップＳ７０）。該プログラムブロックがタイマ割り込み命令ではなかった場合（ステップＳ７０、Ｎｏ）、制御部１０８は、タイマ割り込みではない該解析したプログラムブロックに従った処理を行う（ステップＳ１００）。このとき、制御部１０８は、処理を行っているプログラムブロックと該プログラムブロックが所属するユーザプログラムのユーザプログラム番号とをＲＡＭ１０５に記憶させる。
【００２４】
解析したプログラムブロックがタイマ割り込み命令であった場合（ステップＳ７０、Ｙｅｓ）、制御部１０８は、該タイマ割り込み命令に従って、割り込み条件の設定を行うとともに、タイマ１０３を０にリセットしてカウントを開始させる（ステップＳ８０）。割り込み条件の設定とは、すなわち、該タイマ割り込み命令がプログラムブロック１の場合、割り込み条件値として１０秒、割り込みプログラムとしてプログラム０１００を設定する。プログラムブロック２の場合、制御部１０８は、ＲＴＣ１０４から現在時刻を取得し、現在時刻と設定時刻との差を求め、その差を割り込み条件値とし、割り込みプログラムとしてプログラム０１００を設定する。プログラムブロック３の場合、割り込み条件値として１０秒を設定し、割り込みプログラムとしてプログラム０１００を設定し、該プログラム０１００の割り込み時に、ＲＡＭ１０５に記憶されている直前に実行されていたユーザプログラムのユーザプログラム番号とプログラムブロックとを、ＲＡＭ１０５の夫々変数「＃１００１」および「＃１００２」に記憶させるように設定する。
【００２５】
そして、制御部１０８は、以上で実行終了か否か判定し（ステップＳ９０）、終了である場合（ステップＳ９０、Ｙｅｓ）、終了し、終了でない場合（ステップＳ９０、Ｎｏ）、ステップＳ１０に移行する。
【００２６】
ステップＳ８０およびステップＳ９０、Ｎｏを経てステップＳ１０に移行し、割り込み条件値≦タイマ１０３の値であるとき、ステップＳ１０の割り込み条件が成立するか否かの判定において、ステップＳ１０、Ｙｅｓに移行する。制御部１０８は、成立した割り込み条件のクリア、タイマ１０３のストップなど、新しく割り込み条件設定がされるまで以降の割り込みを無効とする処理を行い（ステップＳ２０）、ステップＳ３０に移行する。
【００２７】
ステップＳ３０においては、割り込み条件を設定したタイマ割り込み命令がプログラムブロック１または２の場合、制御部１０８は何もせずにステップＳ４０に移行する。割り込み条件を設定したタイマ割り込み命令がプログラムブロック３である場合、制御部１０８は、ＲＡＭ１０５に記憶されている直前に実行していたユーザプログラムのユーザプログラム番号を変数「＃１００１」に、実行していたプログラムブロックを変数「＃１００２」に記憶させる。
【００２８】
続いて、ステップＳ４０にて、制御部１０８は、プログラム０１００を実行する。そして、ステップＳ５０に移行する。
【００２９】
ここで、例えばプログラムブロック３に関しては、割り込み前プログラム番号と割り込み前実行完了ブロックとに応じて異なる処理を行わせるように予めプログラム０１００を作成しておくと便利である。例えば、図５に示すような刃物２０２と刃物２０３とを使い分けてワーク２０１を加工し、各刃物の待機場所２０４における待機位置と該待機位置までの経路が異なるような機械の制御を行うユーザプログラムを実行している場合において、割り込みプログラム中で変数「＃１００１」と変数「＃１００２」とを確認することにより、どちらの刃物を使用していたか判断することができ、判断結果によって経路１で工具を待避するか経路２で工具を待避するか選択することが可能となる。
【００３０】
このように、実施の形態１によれば、制御部は、取得したプログラムブロックがタイマ割り込み命令であった場合、該タイマ割り込み命令が有する設定ルールに基づいて割り込み条件値を求め、該求めた割り込み条件値を記憶部に記憶させるとともに、タイマにカウントを開始させ、タイマの現在値が記憶部に記憶されている割り込み条件値を越えた場合、割り込みプログラムを実行できるようにしたので、ユーザプログラムから割り込みプログラムを呼び出すことができ、かつＮＣ装置単独でタイマ割り込みを実現するＮＣ装置を得ることができる。また、割り込み発生時に直前に実行していたユーザプログラムおよびプログラムブロックを特定する情報を割り込みプログラムから参照できるようにしたので、より複雑な割り込みプログラムの実行が可能となる。
【００３１】
実施の形態２．
次に、本発明にかかる数値制御装置の実施の形態２について説明する。図３は、実施の形態２の数値制御装置の構成を示す図である。
【００３２】
図３に示すように、本実施の形態２のＮＣ装置１０１は、実施の形態１の数値制御装置からタイマ１０３を省略した構成となっている。また、本実施の形態２の外部記憶装置１０６に記憶されているユーザプログラムにおいては、例えば下記のプログラム４〜６の割り込み命令のプログラムブロックを使用できる。
（プログラムブロック４）
ＲＴＣ１０４から現在時刻を取得し、割り込み条件として、取得した時刻から１０秒後にプログラム０１００を割り込ませる設定を行う。
（プログラムブロック５）
割り込み条件として２０１１年２月３日２３時５９分にプログラム０１００を割り込ませる設定を行う。例えば、
G4.1  P100  T201102032359
のように簡潔に一行で記述される。
（プログラムブロック６）
ＲＴＣ１０４から現在時刻を取得し、割り込み条件として、現在時刻から１０秒後にプログラム０１００を割り込ませる設定を行い、割り込み時に直前に実行していたユーザプログラムの識別情報である割り込み前プログラム番号を変数「＃１００１」に保存し、該ユーザプログラムの、直前に実行を完了したプログラムブロックである割り込み前実行完了ブロックの保存先を変数「＃１００２」に記憶させるように設定を行う。例えば、
G4.1  P100  S10000  O1001  B1002
のように簡潔に一行で記述される。
【００３３】
次に、このように構成される実施の形態２のＮＣ装置１０１の動作を説明する。図４は、実施の形態２のＮＣ装置１０１において、制御プログラムを実行するＮＣ  ＣＰＵ１０２によって実現する制御部の動作を説明するフローチャートである。実施の形態２のＮＣ装置１０１の動作は、実施の形態１のＮＣ装置の動作におけるステップＳ１０およびステップＳ８０のみ異なるので、該異なるステップのみ説明する。
【００３４】
制御部１０８は、解析したプログラムブロックがタイマ割り込み命令、すなわちプログラムブロック４〜６の何れかであるか否かを判定し（ステップＳ７０）、解析したプログラムブロックがタイマ割り込み命令であった場合（ステップＳ７０、Ｙｅｓ）、制御部１０８は、割り込み条件をＲＡＭ１０５に記憶させる（ステップＳ８１）。ここで、割り込み命令がプログラムブロック４の場合、制御部１０８は、該プログラムブロックに従い、ＲＴＣ１０４から現在時刻を取得し、現在時刻から１０秒後の日時と割り込み条件値、プログラム０１００を割り込みプログラムとする設定を行う。プログラムブロック５の場合、制御部１０８は、該プログラムブロックに指定される日時を割り込み条件値、プログラム０１００を割り込みプログラムとする設定を行う。プログラムブロック６の場合、制御部１０８は、ＲＴＣ１０４から現在時刻を取得し、現在時刻から１０秒後の日時と割り込み条件値とし、プログラム０１００を割り込みプログラムとし、ＲＡＭ１０５に記憶されている直前に実行されていたユーザプログラムのユーザプログラム番号とプログラムブロックとを、ＲＡＭ１０５の夫々変数「＃１００１」および「＃１００２」に記憶させるように設定する。このように、実施の形態２のＮＣ装置１０１においては、実施の形態１の数値制御装置とは異なり、割り込み設定値として日時が設定される。
【００３５】
そして、ステップＳ１１においては、制御部１０８は、割り込み成立条件、すなわち割り込み設定値≦ＲＴＣ１０４の日時の値が成立するか否かを判定する。割り込み設定値≦ＲＴＣ１０４の日時の値が成立する場合（ステップＳ１１、Ｙｅｓ）、ステップＳ２０、ステップＳ３０を経て、制御部１０８は、割り込み条件に設定されるプログラム０１００を実行する（ステップＳ４０）。割り込み設定値≦ＲＴＣ１０４の日時の値が成立しない場合（ステップＳ１１、Ｎｏ）、ステップＳ５０に移行する。
【００３６】
このように、実施の形態２によれば、タイマを用いることなく実施の形態１と同様の機能を実現することができるようになる。
【産業上の利用可能性】
【００３７】
以上のように、本発明にかかる数値制御装置は、ユーザプログラムからタイマ割り込みを指令してタイマ割り込みを実行できる数値制御装置に適用して好適である。
【図面の簡単な説明】
【００３８】
【図１】実施の形態１の数値制御装置の構成を示す図である。
【図２】実施の形態１の数値制御装置の動作を示すフローチャートである。
【図３】実施の形態２の数値制御装置の構成を示す図である。
【図４】実施の形態２の数値制御装置の動作を示すフローチャートである。
【図５】刃物を２つ使用するシステムを説明する図である。
【符号の説明】
【００３９】
１０１  ＮＣ装置
１０２  ＮＣ  ＣＰＵ
１０３  タイマ
１０４  ＲＴＣ
１０５  ＲＡＭ
１０６  外部記憶装置
１０７  ＲＯＭ
１０８  制御部
１１１  動作
１１２  動作
２０１  ワーク
２０２  刃物
２０３  刃物
２０４  待機位置
【図１】
2010026660.tif 000003
【図２】
2010026660.tif 000004
【図３】
2010026660.tif 000005
【図４】
2010026660.tif 000006
【図５】
2010026660.tif 000007