(57)【要約】【課題】外部記憶手段に記憶されたサブプログラムの実行終了後に、外部記憶手段に記憶されたメインプログラムへの戻り先を特定できる数値制御装置を提供する。【解決手段】数値制御装置１では、外部記憶装置１３に記憶された加工プログラムをＲＡＭ７に記憶させないで、そのまま読み込みながら運転するテープ運転が可能である。そして、テープ運転でメインプログラムの実行途中にサブプログラムが呼び出される場合、メインプログラムへの復帰位置がＲＡＭ７の復帰位置記憶エリアに記憶され、例えば、プログラムの番号と、そのプログラムのブロック番号とが記憶される。これにより、サブプログラムの解釈が終了しても、復帰位置記憶エリアに記憶された復帰位置に基づいて、メインプログラムに復帰することができる。【選択図】図１
2008204410.tif 000002
【特許請求の範囲】
【請求項１】
複数の指令コマンドからなる第１プログラムと、当該第１プログラムの前記指令コマンドによって指定される第２プログラムとが記憶された外部記憶手段にアクセス可能に接続された工作機械の数値制御を行うための数値制御装置であって、
当該外部記憶手段から前記第１プログラムを読み込む読込手段と、
当該読込手段によって読み込まれた前記第１プログラムの前記指令コマンドによって指定された前記第２プログラムを前記外部記憶手段から呼び出す呼出手段と、
前記読込手段によって読み込まれた前記第１プログラムを実行するとともに、前記第１プログラムの実行途中に、前記呼出手段によって呼び出された前記第２プログラムを実行するプログラム実行手段と、
前記呼出手段によって前記第２プログラムが呼び出された場合に、前記第２プログラムの実行終了後の前記第１プログラムへの復帰位置を記憶する復帰位置記憶手段と
を備え、
前記プログラム実行手段は、前記第２プログラムの実行を終了した場合、前記復帰位置記憶手段に記憶された前記復帰位置から、前記第１プログラムを継続して運転することを特徴とする数値制御装置。
【請求項２】
前記復帰位置記憶手段は、前記数値制御装置に設けられていることを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記外部記憶手段に記憶された前記第１プログラムが、前記読込手段によって読み込まれていることを報知する外部読込報知手段を備えていることを特徴とする請求項１又は２に記載の数値制御装置。
【請求項４】
前記外部記憶手段には、前記第１プログラムに用いられるパラメータ及び工具データのうち少なくとも何れかが記憶されていることを特徴とする請求項１乃至３の何れかに記載の数値制御装置。
【請求項５】
工作機械の数値制御を行う数値制御装置を機能させる制御プログラムであって、
前記数値制御装置にアクセス可能に接続され、複数の指令コマンドからなる第１プログラムと、当該第１プログラムの前記指令コマンドによって指定される第２プログラムとが記憶された外部記憶手段から前記第１プログラムを読み込む第１ステップと、
当該第１ステップにおいて読み込まれた前記第１プログラムを実行する第２ステップと、
当該第２ステップにおいて前記第１プログラムの実行途中に、前記第１プログラムの前記指令コマンドによって指定された前記第２プログラムを呼び出す第３ステップと、
当該第３ステップにおいて前記第２プログラムが呼び出された場合に、前記第２プログラムを実行するとともに、前記第２プログラムの終了後の前記第１プログラムへの復帰位置を復帰位置記憶手段に記憶する第４ステップと、
当該第４ステップにおいて前記第２プログラムの実行が終了した後に、前記復帰位置記憶手段に記憶された前記復帰位置から前記第１プログラムを実行する第５ステップと
からなることを特徴とする制御プログラム。
【請求項６】
請求項５に記載の制御プログラムを記録したことを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置、制御プログラム及び記憶媒体に関し、詳細には、ＮＣプログラムを実行することによって工作機械を制御する数値制御装置、制御プログラム及び記憶媒体に関する。
【背景技術】
【０００２】
従来、ＮＣ工作機械を運転制御する方法として、例えば、数値制御装置による自動運転がある。この自動運転では、ＮＣプログラムを数値制御装置の内部メモリに登録した後、その内部メモリに記憶された内容に従って運転する内部メモリ運転が可能である。この内部メモリ運転では、例えば、プログラム中にプログラム呼出コードがあると、そこで指定されるプログラム番号に飛んでこれを実行することができる。但し、実行できるプログラムは、同じ内部メモリに格納されたプログラムのみであるため、内部メモリ運転のままで、外部の記憶手段にアクセスし、そこからプログラムを読み出すことはできなかった。これにより、ＮＣ工作機械を自動運転するためのプログラム容量が大きい場合は、数値制御装置の内部メモリを増設しなければならなかったため、ユーザにとって使い勝手が悪かった。
【０００３】
そこで、内部の記憶手段からの指令により、外部記憶手段に格納された指令プログラムをサブプログラムとして呼び出して実行できる数値制御装置が知られている（例えば、特許文献１参照）。この数値制御装置では、プログラム容量が大きい場合でも、サブプログラムとして外部記憶手段に記憶させることによって、内部メモリの増設が不要となり、ユーザにとって使い勝手が良くなるという利点を有する。また、近年では、ＵＳＢ、ＳＤカード等の大容量のメモリの開発が急激に進んでいることから、例えば、サブプログラムのみならず、メインプログラムまでも外部記憶手段に記憶させることによって、より大きなプログラム容量にも対応できる数値制御装置の開発が進められていた。
【０００４】
【特許文献１】特許第２８２１７４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、メインプログラムとサブプログラムとの両方を外部記憶手段に記憶させてしまうと、メインプログラムは外部記憶手段に読み込まれながら実行されるため、数値制御装置にメインプログラムは保存されない。したがって、メインプログラムの実行途中にサブプログラムが外部記憶手段から呼び出され、そのサブプログラムの実行が終了した場合、メインプログラムの戻り先を特定することができないため、メインプログラムを復帰させて実行することができないという問題点があった。
【０００６】
本発明は、上記課題を解決するためになされたものであり、外部記憶手段に記憶されたサブプログラムの実行終了後に、外部記憶手段に記憶されたメインプログラムへの戻り先を特定できる数値制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、請求項１に係る発明の数値制御装置は、複数の指令コマンドからなる第１プログラムと、当該第１プログラムの前記指令コマンドによって指定される第２プログラムとが記憶された外部記憶手段にアクセス可能に接続された工作機械の数値制御を行うための数値制御装置であって、当該外部記憶手段から前記第１プログラムを読み込む読込手段と、当該読込手段によって読み込まれた前記第１プログラムの前記指令コマンドによって指定された前記第２プログラムを前記外部記憶手段から呼び出す呼出手段と、前記読込手段によって読み込まれた前記第１プログラムを実行するとともに、前記第１プログラムの実行途中に、前記呼出手段によって呼び出された前記第２プログラムを実行するプログラム実行手段と、前記呼出手段によって前記第２プログラムが呼び出された場合に、前記第２プログラムの実行終了後の前記第１プログラムへの復帰位置を記憶する復帰位置記憶手段とを備え、前記プログラム実行手段は、前記第２プログラムの実行を終了した場合、前記復帰位置記憶手段に記憶された前記復帰位置から、前記第１プログラムを継続して実行することを特徴とする。
【０００８】
また、請求項２に係る発明の数値制御装置は、請求項１に記載の発明の構成に加え、前記復帰位置記憶手段は、前記数値制御装置に設けられていることを特徴とする。
【０００９】
また、請求項３に係る発明の数値制御装置は、請求項１又は２に記載の発明の構成に加え、前記外部記憶手段に記憶された前記第１プログラムが、前記読込手段によって読み込まれていることを報知する外部読込報知手段を備えている。
【００１０】
また、請求項４に係る発明の数値制御装置は、請求項１乃至３の何れかに記載の発明の構成に加え、前記外部記憶手段には、前記第１プログラムに用いられるパラメータ及び工具データのうち少なくとも何れかが記憶されていることを特徴とする。
【００１１】
また、請求項５に係る発明の制御プログラムは、工作機械の数値制御を行う数値制御装置を機能させる制御プログラムであって、前記数値制御装置にアクセス可能に接続され、複数の指令コマンドからなる第１プログラムと、当該第１プログラムの前記指令コマンドによって指定される第２プログラムとが記憶された外部記憶手段から前記第１プログラムを読み込む第１ステップと、当該第１ステップにおいて読み込まれた前記第１プログラムを実行する第２ステップと、当該第２ステップにおいて前記第１プログラムの実行途中に、前記第１プログラムの前記指令コマンドによって指定された前記第２プログラムを呼び出す第３ステップと、当該第３ステップにおいて前記第２プログラムが呼び出された場合に、前記第２プログラムを実行するとともに、前記第２プログラムの終了後の前記第１プログラムへの復帰位置を復帰位置記憶手段に記憶する第４ステップと、当該第４ステップにおいて前記第２プログラムの実行が終了した後に、前記復帰位置記憶手段に記憶された前記復帰位置から前記第１プログラムを実行する第５ステップとからなることを特徴とする。
【００１２】
また、請求項６に係る発明の記憶媒体は、請求項５に記載の制御プログラムを記録したことを特徴とする。
【発明の効果】
【００１３】
請求項１に係る発明の数値制御装置では、第１プログラムと第２プログラムとが共に外部記憶手段に記憶されているので、数値制御装置における内部メモリの増設が不要となり、ユーザにとって使い勝手が良くなる。また、外部記憶装置に記憶された第１プログラムは読込手段によって読み込まれ、その読み込まれた第１プログラムの指令コマンドに従って、外部記憶手段に記憶された第２プログラムが呼出手段によって呼び出される。そして、呼出手段によって第２プログラムが呼び出された場合、第１プログラムへの復帰位置が復帰位置記憶手段に記憶されるので、プログラム実行手段は、その復帰位置記憶手段に記憶された復帰位置から、第１プログラムを復帰させて実行することができる。これにより、外部記憶手段に記憶された第１プログラムから外部記憶手段に記憶された第２プログラムの呼び出しと、外部記憶手段に記憶された第２プログラムから外部記憶手段に記憶された第１プログラムへの復帰とが可能になる。
【００１４】
また、請求項２に係る発明の数値制御装置では、請求項１に記載の発明の効果に加え、復帰位置記憶手段は、数値制御装置に設けられているので、外部記憶手段が破損した場合でも、復帰位置記憶手段に記憶された復帰位置を利用することができる。
【００１５】
また、請求項３に係る発明の数値制御装置では、請求項１又は２に記載の発明の効果に加え、第１プログラムが読込手段によって読み込まれていることが外部読込報知手段によってユーザに報知される。これにより、外部記憶手段に記憶された第１プログラム及び第２プログラムの操作が可能か否かを容易に判別できる。
【００１６】
また、請求項４に係る発明の数値制御装置では、請求項１乃至３の何れかに記載の発明の効果に加え、外部記憶手段には、第１プログラムに用いられるパラメータ及び工具データのうち少なくとも何れかが記憶されているので、パラメータや、工具データのデータ量が大きくても対応可能である。
【００１７】
また、請求項５に係る発明の制御プログラムでは、第１ステップにおいて、第１プログラムが記憶された外部記憶手段から第１プログラムが読み込まれ、第２ステップにおいて、その読み込まれた第１プログラムが実行され、第３ステップにおいて、第１プログラムの実行途中に、第１プログラムの指令コマンドによって指定された第２プログラムが外部記憶手段から呼び出される。つまり、外部記憶手段から第１プログラムが読み込まれるとともに、該第１プログラムによって指定された第２プログラムも外部記憶手段から呼び出されるので、数値制御装置における内部メモリの増設が不要となり、ユーザにとって使い勝手が良くなる。さらに、第４ステップにおいて、第３ステップで第２プログラムが呼び出された場合に、第２プログラムを実行するとともに、第２プログラムの終了後の第１プログラムへの復帰位置が復帰位置記憶手段に記憶され、第５ステップにおいて、第４ステップで第２プログラムの実行が終了した後に、復帰位置記憶手段に記憶された復帰位置から第１プログラムが実行される。これにより、外部記憶手段に記憶された第１プログラムから外部記憶手段に記憶された第２プログラムの呼び出しと、外部記憶手段に記憶された第２プログラムから外部記憶手段に記憶された第１プログラムへの復帰とが可能である数値制御装置を提供することができる。
【００１８】
また、請求項６に係る発明の記憶媒体には、請求項５に記載の制御プログラムが記録されているので、その記憶媒体を介すことによって請求項５に記載の制御プログラムを数値制御装置に実行させることができる。これにより、外部記憶手段に記憶された第１プログラムから外部記憶手段に記憶された第２プログラムの呼び出しと、外部記憶手段に記憶された第２プログラムから外部記憶手段に記憶された第１プログラムへの復帰とが可能である数値制御装置を提供することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の一実施形態である数値制御装置１について、図面を参照して説明する。図１は、数値制御装置１の電気的構成を示すブロック図であり、図２は、ＲＡＭ７の記憶エリアを示す概念図であり、図３は、内部メモリ運転からテープ運転へのサブプログラム呼び出しに関する説明図であり、図４は、ＣＰＵ５による制御動作を示すフローチャートであり、図５は、図４の続きを示すフローチャートであり、図６は、図５の続きを示すフローチャートであり、図７は、図６の続きを示すフローチャートである。
【００２０】
なお、本実施形態の数値制御装置１は、工作機械３０を数値制御するものであって、外部記憶装置１３に記憶されたメインプログラムを読み込みながら運転するテープ運転中に、外部記憶装置１３に記憶されたサブプログラムをテープ運転で読み込んで実行し、サブプログラムの終了後にメインプログラムの戻り先を特定可能とすることで、メインプログラムに復帰させることができる点に本発明の特徴を有するものである。
【００２１】
はじめに、数値制御装置１の構成について説明する。図１に示すように、数値制御装置１は、中央演算処理装置であるＣＰＵ５を中心に備え、該ＣＰＵ５には、本発明の数値制御プログラム（以下、制御プログラムと呼ぶ）が記憶された不揮発性の記憶媒体であるＲＯＭ６と、各種プログラム、データ等を一時的に記憶するＲＡＭ７と、各種プログラム、各種データ等が記憶された内部記憶装置８と、外部との通信を行う外部インタフェイス９と、等が各々接続されている。さらに、外部インタフェイス９には、各種プログラム、各種データ等が記憶された外部記憶装置１３と、液晶ディスプレイである表示装置１４と、工作機械３０の運転に関する各種設定等を行うための操作パネル１５と、アラームによってエラー報知を行うスピーカ１６と、工作機械３０（例えば、サーボモータ等）と、等が各々接続されている。なお、内部記憶装置８は、例えば、コンパクトフラッシュ（登録商標）や、ハードディスク等が適用可能である。さらに、外部記憶装置１３は、例えば、ＵＳＢメモリや、ＳＤカード等が適用可能である。
【００２２】
また、内部記憶装置８には、ワーク加工に関するメインプログラムが記憶されている。さらに、外部記憶装置１３には、ワーク加工に関するメインプログラムの他に、メインプログラムによって呼び出されるサブプログラムが記憶されている。これら加工プログラムは、ＮＣ言語によってプログラミングされたＮＣプログラムである。ＮＣプログラムは、機械の動作モード（各種位置決定、移動等）を決定するＧコードと、動作以外の補助的な機能を指令するＭコードとを含むとともに、複数のブロックの配列から構成される。このようなＮＣプログラムがＣＰＵ５によって１ブロック毎に解釈され、その解釈によって生成されるプログラム指令に基づいて、工作機械３０が制御される。これによって、工作機械３０に特定の動作を行わせることができる。
【００２３】
次に、ＲＡＭ７の各種記憶エリアについて説明する。図２に示すように、ＲＡＭ７には、後述する「内部メモリ運転」時に、内部記憶装置８に記憶されたメインプログラムを一時的に登録するためのプログラム記憶エリア７ａと、後述する「テープ運転」の途中で外部記憶装置１３からサブプログラムを呼び出す際に、サブプログラムの終了後のメインプログラムへの復帰位置が記憶される復帰位置記憶エリア７ｂと、加工プログラムの解釈のためのワークエリア７ｃと、等が設けられている。
【００２４】
次に、数値制御装置１による工作機械３０の運転制御方式について説明する。数値制御装置１による工作機械３０の運転制御方式には、「内部メモリ運転」と「テープ運転」とがある。「内部メモリ運転」とは、内部記憶装置８に記憶された加工プログラムを、ＲＡＭ７に一旦登録した後で、そのＲＡＭ７の登録内容に従って運転する運転制御方式をいう。また、「テープ運転」とは、外部記憶装置１３に記憶された加工プログラムをＲＡＭ７に記憶させないで、そのまま読み込みながら運転する運転制御方式をいう。そして、数値制御装置１では、これら内部メモリ運転、テープ運転の何れかの方式でメインプログラムを実行することができる。さらに、そのメインプログラムの実行途中に、サブプログラムをテープ運転で外部記憶装置１３から呼び出して実行することができる。なお、メインプログラムを何れの方式で実行するかについては、操作パネル１５で切り替えることができる。
【００２５】
次に、内部メモリ運転からテープ運転へのサブプログラムの呼出機能について説明する。例えば、プログラム番号が１番のＮＣプログラム（以下、プログラム（１番）と呼ぶ。）が、メインプログラムとして内部記憶装置８に記憶されている。このプログラム（１番）は、図３に示すように、ブロック番号Ｎ１〜Ｎ７までのブロックの配列から構成されている。一方、外部記憶装置１３には、プログラム番号が２番のＮＣプログラム（以下、プログラム（２番）と呼ぶ。）が記憶されている。このプログラム（２番）も、ブロック番号Ｎ１〜Ｎ７までのブロックの配列から構成されている。そして、操作パネル１０によって内部メモリ運転が選択され、プログラム（１番）が指定された場合、まず、内部記憶装置８に記憶されたプログラム（１番）がＲＡＭ７のプログラム記憶エリア７ａに一旦登録される。その後、ワークエリア７ｃにプログラム（１番）が所定ブロック毎に読み込まれ、ブロック番号Ｎ１から順に解釈される。プログラム（１番）は１ブロック毎に順次解釈され、解釈によって生成するプログラム指令に基づき、ＣＰＵ５から外部インタフェイス９を介して指示信号が工作機械３０の各種サーボモータ等に出力される。これにより、プログラム（１番）の内容に基づいて、工作機械３０にある特定の動作を実行させることができる。
【００２６】
そして、プログラム（１番）のブロック番号Ｎ４までの解釈が終了すると、次いでシーケンス番号Ｎ５が解釈されるが、ブロック番号Ｎ５の指令コマンドは「Ｇ６５Ｐ０００２」である。ここで、「Ｇ６５」はサブプログラム指令であって、「Ｐ０００２」はプログラム番号である。つまり、この指令コマンドは、「プログラム番号が２番のＮＣプログラムを呼び出しなさい。」旨の指令である。よって、プログラム（１番）のブロック番号Ｎ５が解釈されると、外部記憶装置１３に記憶されたプログラム（２番）が呼び出され、テープ運転に切り替わる。このテープ運転では、プログラム（２番）がＲＡＭ７に登録されることなく、ワークエリア７ｃに格納され、そのまま１ブロック毎に解釈される。そして、解釈によって生成するプログラム指令は、上記と同様に、外部インタフェイス９を介して工作機械３０の各種サーボモータ等に出力される。これにより、プログラム（２番）の内容に基づいて、工作機械３０にある特定の動作を実行させることができる。
【００２７】
次いで、プログラム（２番）のブロック番号Ｎ６までの解釈が終了すると、次いでシーケンス番号Ｎ７が解釈されるが、ブロック番号Ｎ７の指令コマンドは「Ｍ９９」である。ここで、「Ｍ９９」はサブプログラム終了指令であるので、ＲＡＭ７のプログラム記憶エリア７ａに記憶されたプログラム（１番）に戻り、ブロック番号Ｎ６から１ブロック毎に解釈される。そして、プログラム（１番）はＲＡＭ７のプログラム記憶エリア７ａに登録されているので、プログラム（１番）のどこまでが既に実行されたかを容易に特定できる。よって、プログラム（２番）の終了後に、プログラム（１番）への復帰位置を容易に特定できることから、テープ運転から内部メモリ運転に容易に復帰することができる。
【００２８】
次に、テープ運転からテープ運転へのサブプログラムの呼出機能について説明する。例えば、図３と同様のメインプログラムとしてのプログラム（１番）と、サブプログラムとしてのプログラム（２番）とが外部記憶装置１３に記憶されている。そして、上記したように、テープ運転では、外部記憶装置１３に記憶された加工プログラムがそのまま１ブロック毎に解釈されて実行されるので、外部記憶装置１３から読み込まれる加工プログラムはＲＡＭ７には登録されない。よって、プログラム（１番）の途中で呼び出されたプログラム（２番）の解釈が終了した場合、プログラム（１番）への復帰位置の特定方法が問題となる。そこで、本実施形態では、メインプログラムの実行途中にサブプログラムが呼び出された場合に、メインプログラムへの復帰位置をＲＡＭ７の復帰位置記憶エリア７ｂに記憶させることができる。これにより、プログラム（２番）の解釈が終了しても、復帰位置記憶エリア７ｂに記憶された復帰位置に基づいて、プログラム（１番）に復帰することができる。復帰位置記憶エリア７ｂには、例えば、メインプログラムのプログラム番号と、そのプログラムの既に完了したブロック番号の次のブロック番号とが記憶され、これらの番号によって、メインプログラムへの復帰位置を特定することができる。
【００２９】
なお、メインプログラムへの復帰位置を特定する上記以外の方法として、サブプログラムの呼出指令において復帰位置を指定するようにしてもよい。例えば、プログラム（１番）のＮ５を「Ｇ６５Ｐ０００２Ａ０００１Ｂ６」とする。「Ｇ６５」はサブプログラム呼出指令、「Ｐ０００２」はサブプログラム番号、「Ａ０００１」は復帰するメインプログラム番号、「Ｂ６」は復帰するメインプログラムのブロック番号である。つまり、「Ａ０００１Ｂ６」の部分で復帰位置を指定することができる。また、復帰するメインプログラム番号と、復帰するメインプログラムのブロック番号とをパラメータとして予めＲＡＭ７に記憶させてもよい。
【００３０】
次に、ＣＰＵ５による「テープ運転」から「テープ運転」へのサブプログラム呼び出しの際の制御動作について、図４乃至図７のフローチャートを参照して具体的に説明する。なお、ここでは、外部記憶装置１３に記憶された図５に示すプログラム（１番）から、外部記憶装置１３に記憶された図５に示すプログラム（２番）を呼び出して実行し、そのプログラム（２番）の実行終了後にプログラム（１番）に復帰させる場合について説明する。
【００３１】
図４に示すように、はじめに、テープ運転が開始されると、外部記憶装置１３に記憶されたプログラムの中から操作パネル１５で指定されたプログラム（１番）が検索され、そのプログラム（１番）の中身が参照できるように開かれる（Ｓ１）。そして、表示装置１４には、現在、外部記憶装置１３からプログラムを呼び出している旨が表示される（Ｓ２）。例えば、表示装置１４の所定位置に「外部読込中」等のフレーズが表示される。
【００３２】
次いで、プログラム（１番）の先頭ブロックが指定される（Ｓ３）。さらに、図５に示すように、その先頭ブロックから一定数（例えば、５ブロック分）が読み込まれ、ＲＡＭ７のワークエリア７ｃに格納される（Ｓ５）。さらに、そのワークエリア７ｃに格納された５ブロック分のうちの最初の１ブロックが解釈される（Ｓ６）。そして、その解釈された１ブロックの指令コードが、サブプログラム呼出コードであるか否かが判断される（Ｓ７）。ここで、解釈された指令コードがサブプログラム呼出コードでない場合（Ｓ７：ＮＯ）、プログラム終了コードであるか否かが判断される（Ｓ８）。例えば、解釈された指令コードが「Ｇ０」の場合、「Ｇ０」は位置決めの指令コードであるので（Ｓ７：ＮＯ、Ｓ８：ＮＯ）、その１ブロックを解釈して得られるプログラム指令が実行される（Ｓ９）。この場合、工作機械３０の主軸（図示外）の位置決めがなされる。
【００３３】
そして、１ブロック分の実行が終了すると、ブロックの実行を計数するカウンタが１インクリメントされる（Ｓ１０）。さらに、ＲＡＭ７のワークエリア７ｃに格納された５ブロック分の解釈が終了したか否かが判断される（Ｓ１１）。ここで、５ブロック分の解釈がまだ終了していない場合（Ｓ１１：ＮＯ）、Ｓ６に戻って、次の１ブロックについての解釈が同様に実行される。さらに、５ブロック分の解釈が終了した場合（Ｓ１１：ＹＥＳ）、Ｓ５に戻って、次の５ブロック分がＲＡＭ７のワークエリア７ｃに格納され、上記と同様の処理が繰り返される。なお、５ブロック分の解釈が終了する度に、ブロックの実行を計数するカウンタはリセットされる。
【００３４】
ここで、例えば、プログラム（１番）のブロック番号Ｎ５のブロックが解釈された場合（Ｓ６）、ブロック番号Ｎ５は、「Ｇ６５Ｐ０００２」である。「Ｇ６５」はサブプログラム呼出コードであるので（Ｓ７：ＹＥＳ）、図６に示すフローチャートに移行し、サブプログラムを呼び出す前に、サブプログラム呼出回数が２回以上か否かが判断される（Ｓ１５）。つまり、サブプログラムの呼出回数のチェックを行うことによって、サブプログラムが外部記憶装置１３から必要回数以上に呼び出されることを防止することができる。このサブプログラム呼出回数のチェック値は、外部記憶装置１３の記憶容量や、外部記憶装置１３に記憶されているサブプログラムの数等に合わせて設定される。例えば、外部記憶装置１３に１つのサブプログラムしか記憶していない場合は、サブプログラムの呼出回数は１回を超えることはないので、サブプログラム呼出回数のチェック値には「２」が設定される。
【００３５】
そして、サブプログラムの呼出回数が２回以上であった場合（Ｓ１５：ＹＥＳ）、外部記憶装置１３に記憶されたサブプログラムの数を超えて呼び出されているので、スピーカ１６からアラーム報知がなされる（Ｓ２２）。これにより、オペレータは、サブプログラムの呼出機能において何らかの不具合を生じていることを速やかに認識することができる。そして、スピーカ１６からアラーム報知された後で、プログラム運転はそのまま終了される（Ｓ２３）。さらに、外部記憶装置１３で呼び出されたプログラム（２番）が閉じられ（Ｓ２４）、表示装置１４に表示されていた「外部読込中」の表示が終了し（Ｓ２５）、全体の処理が終了する。
【００３６】
ところで、サブプログラム呼出回数が１回の場合は（Ｓ１５：ＮＯ）、サブプログラム呼出回数のチェックについては問題がないので、その呼出元であるプログラム（１番）の情報である復帰位置がＲＡＭ７の復帰位置記憶エリア７ｂに記憶される（Ｓ１６）。例えば、呼出元であるプログラム（１番）のプログラム番号と、実行を完了したブロック番号の次のブロック番号（Ｎ６）とがＲＡＭ７の復帰位置記憶エリア７ｂに各々記憶される。さらに、外部記憶装置１３から読み込まれていたプログラム（１番）が閉じられる（Ｓ１７）。これは、ＣＰＵ５は、同時に２つのプログラムを開いて参照することができないためである。そして、表示装置１４に表示されていた「外部読込中」の表示が一旦終了される（Ｓ１８）。
【００３７】
次いで、ブロック番号Ｎ５は「Ｇ６５Ｐ０００２」は、「プログラム（２番）を呼び出しなさい。」旨の指令であるので、外部記憶装置１３からサブプログラムとしてのプログラム（２番）が検索され、そのプログラム（２番）の中身が参照できるように開かれる（Ｓ１９）。そして、表示装置１４には、再度、「外部読込中」のフレーズが表示される（Ｓ２０）。さらに、指定されたプログラム（２番）の先頭ブロックが指定され（Ｓ２１）、図７に示すフローチャートに移行する。
【００３８】
次いで、その先頭ブロックから一定数（例えば、５ブロック分）が読み込まれ、ＲＡＭ７のワークエリア７ｃに格納される（Ｓ２６）。さらに、そのワークエリア７ｃに格納された５ブロック分のうちの最初の１ブロックが解釈される（Ｓ２７）。そして、その解釈された１ブロックの指令コードが、サブプログラム呼出コードであるか否かが判断される（Ｓ２８）。なお、本実施形態では、サブプログラムの呼出回数の上限値が２回に設定されているので、通常、ここでサブプログラム呼出コードである場合はない。しかしながら、ここでサブプログラム呼出コードであった場合（Ｓ２８：ＹＥＳ）、図６のフローチャートのＳ１５において、サブプログラム呼出回数が２回と判断されるので（Ｓ１５：ＹＥＳ）、サブプログラムの呼出機能において何らかの理由で不具合が発生している可能性が高い。よって、スピーカ１６からアラーム報知（Ｓ２２）がなされ、プログラム運転が終了され（Ｓ２３）、プログラム（２番）が閉じられ（Ｓ２４）、「外部読込中」の表示が終了され（Ｓ２５）、全体の処理が終了する。
【００３９】
また、指令コードがサブプログラム呼出コードでない場合（Ｓ２８：ＮＯ）、プログラム終了コードであるか否かが判断される（Ｓ２９）。例えば、解釈された指令コードが動作コードである場合は（Ｓ２９：ＮＯ）、その１ブロックの解釈によって得られるプログラム指令が実行される（Ｓ３０）。
【００４０】
次いで、１ブロック分が終了すると、ブロックの実行を計数するカウンタが１インクリメントされる（Ｓ３１）。そして、ＲＡＭ７のワークエリア７ｃに格納された５ブロック分の解釈が終了したか否かが判断される（Ｓ３２）。ここで、５ブロック分の解釈がまだ終了していない場合（Ｓ３２：ＮＯ）、Ｓ２７に戻って、次の１ブロックについての解釈が同様に実行される。さらに、５ブロック分の解釈が終了した場合（Ｓ３２：ＹＥＳ）、Ｓ２６に戻って、次の５ブロック分がＲＡＭ７のワークエリア７ｃに格納され、上記と同様の処理が繰り返される。
【００４１】
また、解釈された１ブロックの指令コードが、「Ｍ９９」である場合、「Ｍ９９」はサブプログラム終了コードであるので（Ｓ２９：ＹＥＳ）、外部記憶装置１３から呼び出されていたプログラム（２番）が閉じられる（Ｓ３３）。そして、呼出元のプログラムファイル（１番）の情報が復帰される（Ｓ３４）。詳細には、ＲＡＭ７の復帰位置記憶エリア７ｂに記憶された呼出元であるプログラム（１番）のプログラム番号と、実行を完了したブロック番号の次のブロック番号（Ｎ６）とが参照される。さらに、その参照されたプログラム番号に相当する外部記憶装置１３のプログラム（１番）が開かれ（Ｓ３５）、６番目のブロックが指定される（Ｓ３６）。
【００４２】
その後、図５に示すフローチャートのＳ５に戻り、その指定されたブロックから一定数（例えば、５ブロック分）が読み込まれ（Ｓ５）、上記同様の処理が繰り返される。そして、解釈された１ブロックの指令コードが「Ｍ３０」である場合、「Ｍ３０」は終了コードであるので（Ｓ７：ＮＯ、Ｓ８：ＹＥＳ）、プログラム運転は終了される（Ｓ１２）。さらに、外部記憶装置１３で呼び出されたプログラム（１番）が閉じられ（Ｓ１３）、表示装置１４に表示されていた「外部読込中」の表示が終了し（Ｓ１４）、全体の処理が終了する。
【００４３】
なお、以上の説明において、メインプログラムが本発明の「第１プログラム」に相当し、サブプログラムが本発明の「第２プログラム」に相当し、図４に示すフローチャートのＳ１の処理、図７に示すフローチャートのＳ３５の処理を実行するＣＰＵ５が本発明の「読込手段」に相当し、図６に示すフローチャートのＳ１９の処理を実行するＣＰＵ５が本発明の「呼出手段」に相当し、図５に示すフローチャートのＳ９，Ｓ１２、図７に示すフローチャートのＳ３０，Ｓ３３の処理を実行するＣＰＵ５が本発明の「プログラム実行手段」に相当し、ＲＡＭ７の復帰位置記憶エリア７ｂが本発明の「復帰位置記憶手段」に相当し、図４に示すフローチャートのＳ２、図６に示すフローチャートのＳ２０の処理を実行するＣＰＵ５が本発明の「外部読込報知手段」に相当する。
【００４４】
以上説明したように、本実施形態の数値制御装置１では、外部記憶装置１３に記憶された加工プログラムをそのまま読み込みながら運転するテープ運転が可能である。そして、そのテープ運転中に、外部記憶装置１３に記憶されたサブプログラムを読み込んで実行することができる。例えば、テープ運転でメインプログラムの実行途中にサブプログラムが呼び出される場合、メインプログラムへの復帰位置がＲＡＭ７の復帰位置記憶エリア７ｂに記憶される。これにより、サブプログラムの解釈が終了しても、復帰位置記憶エリア７ｂに記憶された復帰位置に基づいて、メインプログラムに復帰することができる。なお、復帰位置記憶エリア７ｂには、例えば、プログラムの番号と、そのプログラムのブロック番号とが記憶され、これら番号によって、メインプログラムへの復帰位置を特定することができる。
【００４５】
また、本実施形態では、テープ運転からテープ運転へのサブプログラムの呼び出しについて説明したが、例えば、図８に示すように、メインプログラムとしてのプログラム（１番）を内部メモリ運転で実行している途中で、サブプログラムとしてのプログラム（２番）をテープ運転で呼び出しながら実行し、さらにその実行途中で、サブプログラムとしてのプログラム（３番）を呼び出して実行することも可能である。
【００４６】
なお、本発明の数値制御装置は、上記実施形態に限らず、各種の変形が可能なことはいうまでもない。上記実施形態では、テープ運転からテープ運転へのサブプログラムの呼び出しがなされた場合、メインプログラムへの復帰位置がＲＡＭ７の復帰位置記憶エリア７ｂに記憶されるが、例えば、外部記憶装置１３に記憶させるようにしてもよい。さらには、メインプログラムへの復帰位置を数値制御装置１のＲＡＭ７に記録するか、外部記憶装置１３に記録するかを操作パネル１５で切り替え可能にしてもよい。
【００４７】
また、上記実施形態では、外部記憶装置１３から加工プログラムを呼び出しているが、例えば、工具データ、マクロ変数、切削条件、各種パラメータ等を外部記憶装置１３に記憶させ、テープ運転でそれらを呼び出せるようにしてもよい。これにより、加工プログラム毎に切削条件、工具データ等を変えることができるので、より綿密で詳細な加工プログラムを組むことができる。さらに、ＲＡＭ７の記憶領域が破損した場合でも、外部記憶装置１３から呼び出すことによって運転を継続することができる。
【００４８】
さらに、上記実施形態では、本発明の「外部記憶手段」として、ＵＳＢメモリ、ＳＤカード等に代表される外部記憶装置１３を用いたが、「外部記憶手段」にＰＣ等の一般通信装置を用いることも可能である。例えば、図９に示すように、工作機械７１を数値制御する数値制御装置５１と、工作機械７２を数値制御する数値制御装置５２と、工作機械７３を数値制御する数値制御装置５３とを、ＰＣ装置１００に接続してネットワークを構築してもよい。このネットワークによれば、数値制御装置５１，５２，５３で使用される各種データをＰＣ装置１００で一元管理することができる。例えば、ＰＣ装置１００に内蔵されたハードディスク装置１０１に、工作機械７１で使用されるデータと、工作機械７２で使用されるデータと、工作機械７３で使用されるデータとをそれぞれ記憶させることによって、上記実施形態のようなテープ運転からテープ運転へのサブプログラムの呼び出しも可能となる。さらに、ＰＣ装置１００で、これら工作機械７１，７２，７３で使用される各種データを一元管理できることから、自身とは異なる工作機械７１，７２，７３のデータを互いに流用することもできる。
【００４９】
また、上記実施形態では、サブプログラム呼出回数のチェック値を「２」に設定したが、例えば、外部記憶装置１３に複数のサブプログラムを記憶させ、テープ運転でサブプログラムを実行中に、さらにサブプログラムを呼び出して実行するようにしてもよい。この場合、サブプログラム呼出回数のチェック値を、外部記憶装置１３に記憶されたサブプログラムの数に合わせて設定すればよい。
【００５０】
また、表示装置１４として液晶ディスプレイで構成しているが、外部読込中であることを表示できるものであれば、何れでもよく、例えば、専用のＬＥＤ、警告ランプでもよい。
【００５１】
なお、本発明の制御プログラムを記憶する記憶媒体としては、ＲＯＭ、ＲＡＭ等の素子の他、種々の形態が考えられる。例えば、ＣＤ−ＲＯＭ、フロッピー（登録商標）等でもよく、カードスロットへ挿入可能なプログラムカートリッジ等でもよく、インターネット上のファイルサーバであってもよい。
【産業上の利用可能性】
【００５２】
本発明の数値制御装置は、工作機械のみならず、各種データを設定可能な機械に適用可能である。
【図面の簡単な説明】
【００５３】
【図１】数値制御装置１の電気的構成を示すブロック図である。
【図２】ＲＡＭ７の記憶エリアを示す概念図である。
【図３】内部メモリ運転からテープ運転へのサブプログラム呼び出しに関する説明図である。
【図４】ＣＰＵ５による制御動作を示すフローチャートである。
【図５】図４の続きを示すフローチャートである。
【図６】図５の続きを示すフローチャートである。
【図７】図６の続きを示すフローチャートである。
【図８】サブプログラムの呼出機能に関する変形例の説明図である。
【図９】ＰＣ１００装置に、数値制御装置５１，５２，５３を接続したネットワークシステムのブロック図である。
【符号の説明】
【００５４】
１    数値制御装置
５    ＣＰＵ
６    ＲＯＭ
７    ＲＡＭ
７ｂ  復帰位置記憶エリア
８    内部記憶装置
１３    外部記憶装置
１４    表示装置
３０    工作機械
【図１】
2008204410.tif 000003
【図２】
2008204410.tif 000004
【図３】
2008204410.tif 000005
【図４】
2008204410.tif 000006
【図５】
2008204410.tif 000007
【図６】
2008204410.tif 000008
【図７】
2008204410.tif 000009
【図８】
2008204410.tif 000010
【図９】
2008204410.tif 000011