(57)【特許請求の範囲】
【請求項１】
独立して動作可能な複数の系統を備える多系統の機械の制御を実行する数値制御装置において、
複数の部分プログラムを有する加工プログラムを記憶するプログラム記憶部と、
前記系統毎に並列して前記部分プログラムを実行するプログラム解析部と、
を備え、
前記プログラム解析部は、前記部分プログラムの中のプログラム呼出元系統番号変数を抽出し、前記部分プログラムの間の呼び出し関係に基づいて、呼び出し元となる前記部分プログラムの前記系統の番号を前記プログラム呼出元系統番号変数にセットし、
前記プログラム呼出元系統番号変数を含んだ前記部分プログラムは、前記プログラム呼出元系統番号変数の値に基づいて前記機械の動作を変更するように記載されている
ことを特徴とする数値制御装置。
【請求項２】
前記プログラム解析部は、
前記部分プログラムが階層的に呼び出されている場合に、最初の呼び出し元となる前記部分プログラムの前記系統の番号を、前記プログラム呼出元系統番号変数にセットする
ことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記プログラム解析部は、
前記プログラム呼出元系統番号変数を含む前記部分プログラムを直接呼び出している前記部分プログラムの前記系統の番号を、前記プログラム呼出元系統番号変数にセットする
ことを特徴とする請求項１に記載の数値制御装置。
【請求項４】
前記プログラム解析部は、
前記部分プログラムが階層的に呼び出されている場合に、階層的に呼び出している呼び出し元となる前記部分プログラムの全ての前記系統の番号を、前記プログラム呼出元系統番号変数に呼び出し順にセットする
ことを特徴とする請求項１に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の系統に対して系統毎に制御を行う数値制御装置に関する。
【背景技術】
【０００２】
複合加工として多系統の加工を行う場合には、加工プログラム中で、別の加工プログラムをサブプログラムとして呼び出して加工を行ったり、サブ系統として別の系統で加工プログラムを呼び出して加工を行うことが可能である。【０００３】
例えば、特許文献１においては、指定された運転モードや系統を取得してシステム変数の値を設定し、設定した値に応じて一部の処理が異なる複数の実行モードや複数の系統の処理がプログラムされた加工プログラムの実行を行うことが可能であるとされている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−６３２２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来の技術によれば、サブプログラム又はサブ系統プログラム内で呼出元のメイン系統を取得する手段がない、すなわち、サブプログラム又はサブ系統プログラム内で、その加工プログラムが、どのメイン系統又はサブ系統から呼び出されたかを取得する手段がなかった。【０００６】
そのため、サブプログラム又はサブ系統プログラム内でメイン系統に応じて一部の処理が異なる加工プログラムの実行を行うことができないという問題があった。そして、サブプログラム又はサブ系統プログラム内で、呼出元の系統に応じて動作を変えたい場合、それができず、呼出元の系統に応じて専用の加工プログラムを用意しなければならないという問題があった。【０００７】
本発明は、上記に鑑みてなされたものであって、異なる系統から同一の加工プログラムをサブプログラム又はサブ系統プログラムとして呼び出しても、呼出元の系統に応じて、異なる動作を実行できる数値制御装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、独立して動作可能な複数の系統を備える多系統の機械の制御を実行する数値制御装置において、複数の部分プログラムを有する加工プログラムを記憶するプログラム記憶部と、前記系統毎に並列して前記部分プログラムを実行するプログラム解析部と、を備え、前記プログラム解析部は、前記部分プログラムの中のプログラム呼出元系統番号変数を抽出し、前記部分プログラムの間の呼び出し関係に基づいて、呼び出し元となる前記部分プログラムの前記系統の番号を前記プログラム呼出元系統番号変数にセットし、前記プログラム呼出元系統番号変数を含んだ前記部分プログラムは、前記プログラム呼出元系統番号変数の値に基づいて前記機械の動作を変更するように記載されていることを特徴とする。
【発明の効果】
【０００９】
本発明にかかる数値制御装置によれば、サブプログラム又はサブ系統プログラムが、どの系統から呼び出されたかをチェックし、加工プログラムの動作を変えることができる。また、系統毎に準備していた加工プログラムを一つの系統に纏めることが可能で、加工プログラムの使用容量を低減することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明の実施の形態にかかる数値制御装置（ＮＣ（Ｎｕｍｅｒｉｃａｌ  Ｃｏｎｔｒｏｌ）装置）の構成を示すブロック図である。
【図２】図２は、本発明の実施の形態にかかる数値制御装置で用いるプログラム呼出元系統番号変数指令を説明するための図である。
【図３】図３は、本発明の実施の形態にかかる数値制御装置でプログラム呼出元系統番号変数指令Ａの使用例を説明するための加工プログラムの一例を示す図である。
【図４】図４は、図３に示した加工プログラムを実行した場合の動作処理手順を示すフローチャートである。
【図５】図５は、図３に示した加工プログラムによる加工動作の様子を示した図である。
【図６】図６は、本発明の実施の形態にかかる数値制御装置でプログラム呼出元系統番号変数指令Ｂの使用例を説明するための加工プログラムの一例を示す図である。
【図７】図７は、図６に示した加工プログラムを実行した場合の動作処理手順を示すフローチャートである。
【図８】図８は、図６に示した加工プログラムによる加工動作の様子を示した図である。
【図９】図９は、本発明の実施の形態にかかる数値制御装置でプログラム呼出元系統番号変数指令Ｃの使用例を説明するための加工プログラムの一例を示す図である。
【図１０】図１０は、図９に示した加工プログラムを実行した場合の動作処理手順を示すフローチャートである。
【図１１】図１１は、図９に示した加工プログラムによる加工動作の様子を示した図である。
【図１２】図１２は、図９の加工プログラムがどの系統で呼び出されるかを表した図である。
【発明を実施するための形態】
【００１１】
以下に、本発明の実施の形態に係る数値制御装置を図面に基づいて詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
【００１２】
実施の形態．
図１は、本発明の実施の形態にかかるＮＣ（Ｎｕｍｅｒｉｃａｌ  Ｃｏｎｔｒｏｌ）装置（数値制御装置）１の構成を示すブロック図である。ＮＣ装置１は、独立して動作させることができる複数の系統を備える多系統の機械の制御を行う装置である。ＮＣ装置１は、メモリ２、プログラム解析部３、補間処理部４、画面処理部５、機械制御信号処理部６、ＰＬＣ７、入力制御部８、および軸データ出力部９を備えている。
【００１３】
入力制御部８は、入力操作部２０に接続されている。入力制御部８は、入力操作部２０がオペレータによって操作されると、スイッチ信号等の変化や加工プログラムの編集・パラメータの変更等を検知する。入力制御部８は、検知した内容に基づいて、メモリ２内の各部にアクセスしてメモリ２が記憶する情報を書き換える処理や読み出す処理等を行う。入力操作部２０は、マウスやキーボードなどを備えて構成されている。
【００１４】
メモリ２は、加工プログラム記憶部１０、パラメータ記憶部１１、画面表示データ記憶部１２、共有エリア１３を有している。加工プログラム記憶部１０は、ワーク（被加工物）の加工に用いる加工プログラムを記憶する。加工プログラムには、ワークを加工するのに必要な、機械の動作内容や刃物の移動経路等が、ＮＣ装置１で解読できるフォーマットで記述されている。本実施の形態の加工プログラム記憶部１０は、系統毎の加工プログラムを記憶しておく。
【００１５】
パラメータ記憶部１１は、被加工物の加工に用いるパラメータを記憶する。パラメータ記憶部１１に記憶されているパラメータには、ＮＣ装置１の仕様を決定するデータや、機械制御に必要な条件データ等が含まれている。
【００１６】
画面表示データ記憶部１２は、画面に表示するデータを記憶する。画面表示データ記憶部１２は、入力操作部２０でオペレータに指定された、工具などの現在位置に関する情報、主軸の回転位置に関する情報、ＮＣ装置１の制御モード、各種選択信号の出力状態等、種々のデータを記憶している。共有エリア１３は、加工プログラムの解析に必要な一時的なデータや、機械動作を制御中のシステム制御に必要な一時的なデータなどを記憶する。
【００１７】
画面処理部５は、表示部２１に接続されている。画面処理部５は、画面表示データ記憶部１２内のデータを読み取り、表示部２１にデータ表示を行なわせる。表示部２１は、画面処理部５によって指示されたデータを表示する液晶モニタなどの表示装置である。
【００１８】
プログラム解析部３は、加工プログラム記憶部１０に記憶されている加工プログラムのうち、入力操作部２０で指定された加工プログラムを先頭から順次読み出す。プログラム解析部３は、各種ＮＣ指令毎に指定された処理手順に従って、加工プログラムを解析し実行していく。プログラム解析部３は、解析処理中のデータ等を共有エリア１３に一時記憶させながら加工プログラムを解析し、解析結果に基づいてワークの加工を実行する。本実施の形態のプログラム解析部３は、系統毎に加工プログラムを解析して系統毎に並列して処理を実行する。
【００１９】
加工プログラムは、複数の部分プログラムを備えている。ここで、部分プログラムとは、メイン系統プログラム、サブプログラム、およびサブ系統プログラムなどの加工プログラムの一部となるプログラムである。これらの部分プログラムは一方が他方を読み出す関係を有している。この読み出し関係は、メイン系統プログラムがサブ系統プログラムを呼び出し、さらにそのサブ系統プログラムが別のサブ系統プログラムを呼び出すという階層的な関係となっている場合もある。
【００２０】
ここで、サブプログラムは、読み出し元の部分プログラムにとってはサブルーチンに相当し、読み出し元の部分プログラムとシーケンシャル（直列的）に実行される。従って、サブプログラムと読み出し元の部分プログラムとは同一のプロセスで実行される。すなわち、サブプログラムと読み出し元の部分プログラムとは同一の系統としてシーケンシャルに処理される。
【００２１】
これに対して、サブ系統プログラムは読み出し元の部分プログラムによって新たなプロセスとして別系統の動作として起動された部分プログラムである。従って、サブ系統プログラムと読み出し元の部分プログラムとは別のプロセスとしてパラレル（並列的）に実行される。すなわち、サブ系統プログラムと読み出し元の部分プログラムとは別の系統として並列的に処理される。
【００２２】
また、本実施の形態にかかるプログラム解析部３は、プログラム呼出元系統番号解析手段１４、メイン系統・サブ系統番号チェック手段１５を有する。プログラム呼出元系統番号解析手段１４は、系統毎に加工プログラムを解析することによって、呼び出されたプログラム中のプログラム呼出元系統番号変数を抽出して、プログラム呼出元系統番号変数を解析する。プログラム呼出元系統番号解析手段１４は、サブプログラム・サブ系統プログラムの呼出元系統番号をメイン系統・サブ系統番号チェック手段１５を用いて解析する。メイン系統・サブ系統番号チェック手段１５は、サブプログラム・サブ系統プログラムの呼出元の部分プログラムの系統の番号を、プログラム呼出元系統番号変数が示すプログラム呼出元系統番号変数指令に基づいて読み出す。プログラム呼出元系統番号変数指令は、サブプログラム・サブ系統プログラム内において、呼出元の系統によって、異なる動作をさせたい場合に用いる加工プログラム内の指令（データ）である。
【００２３】
補間処理部４は、各軸（１軸目〜ｎ軸目（ｎは自然数））に対し、加工プログラムから求められる相対移動量に直線や円弧等の補間処理を行なう。補間処理部４は、補間処理を行った相対移動量を、出力データとして、軸データ出力部９に送る。
【００２４】
軸データ出力部９は、各軸の主軸アンプ１８およびサーボアンプ１９に、補間処理された相対移動量を入力する。主軸アンプ１８は、補間処理された相対移動量に応じた駆動電力を、主軸モータ１６に出力することによって、主軸モータ１６に加工を行なわせる。サーボアンプ１９は、補間処理された相対移動量に応じた駆動電力を、サーボモータ１７に出力することによって、サーボモータ１７に加工を行なわせる。
【００２５】
プログラム解析部３がメモリ２に出力した機械周辺装置の制御に関する情報を読み取る機械制御信号処理部６は、プログラム解析部３が読み取った情報をＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）７に出力してラダー回路に制御情報を与える。また、機械制御信号処理部６は、ＰＬＣ７からＮＣ装置１の各処理部へ入力される制御用の信号や機械側から入力される外部信号を、メモリ２内の共有エリア１３に書き込む。これにより、機械制御信号処理部６は、制御用の信号や外部信号を、ＮＣ装置１の制御に作用させる。この結果、ＮＣ装置１および機械への制御が正しく進行することとなる。
【００２６】
つぎに、本実施の形態にかかるＮＣ装置１で用いるプログラム呼出元系統番号変数指令について説明する。図２はプログラム呼出元系統番号変数指令を説明するための図である。プログラム呼出元系統番号変数指令は、次の３種類の指令がある。
【００２７】
プログラム呼出元系統番号変数指令Ａ：サブプログラム・サブ系統プログラムの呼出元のメイン系統番号を、プログラム呼出元系統番号変数にセットする指令。すなわち、部分プログラムが階層的に呼び出されている場合に、階層的な呼び出し関係における最初の呼び出し元となる部分プログラムの系統番号を、プログラム呼出元系統番号変数にセットする。
【００２８】
プログラム呼出元系統番号変数指令Ｂ：サブ系統の呼出元系統番号をプログラム呼出元系統番号変数にセットする指令。すなわち、プログラム呼出元系統番号変数を含む部分プログラムを直接呼び出している部分プログラムの系統番号を、プログラム呼出元系統番号変数にセットする。
【００２９】
プログラム呼出元系統番号変数指令Ｃ：メイン系統からサブ系統が呼び出され、さらにサブ系統が呼ばれた場合など、何重かにサブ系統が呼ばれた場合、呼出順に呼出元系統番号をプログラム呼出元系統番号変数にセットする指令。すなわち、部分プログラムが階層的に呼び出されている場合に、階層的に呼び出している呼び出し元となる部分プログラムの系統番号の全てを、プログラム呼出元系統番号変数に呼び出し順にセットする。
【００３０】
プログラム呼出元系統番号変数指令Ａは、図２の＃３９０４のように、サブ系統で指令した場合、呼出元のメイン系統番号がセットされる。＃３９０４には、呼出元のメイン系統が系統１の場合は１がセットされ、呼出元のメイン系統が系統２の場合は２がセットされる。このようにサブ系統内で同じ変数指令を行っても、呼出元のメイン系統に応じて、セットされる値が異なる。
【００３１】
プログラム呼出元系統番号変数指令Ｂは、図２の＃３９０５のように、サブ系統で指令した場合、サブ系統の呼出元の系統番号がセットされる。＃３９０５には、呼出元のサブ系統が系統４の場合は４がセットされ、呼出元のサブ系統が系統５の場合は５がセットされる。また、サブプログラムとして呼び出されたプログラム内で指令した場合、＃３９０５の値は０となる。
【００３２】
プログラム呼出元系統番号変数指令Ｃは、図２の＃３９０６のように、メイン系統からサブ系統を呼び出して、さらにそのサブ系統からサブ系統を呼び出すといった、何重かにネスティングして呼び出した場合、呼出順がわかるように呼出元の系統番号がセットされる。たとえば、図２のように、系統１（メイン系統）→系統４（サブ系統）→系統３（サブ系統）という順で呼び出した場合、＃３９０６には１４がセットされる。また、系統２（メイン系統）→系統５（サブ系統）→系統６（サブ系統）という順で呼び出した場合、＃３９０６には２５がセットされる。
【００３３】
このように、プログラム呼出元系統番号変数指令Ａ〜Ｃは呼出元の系統に応じて、セットされる値が異なる。そのため、プログラム呼出元系統番号変数指令で取得した値を参照することで、呼出元の系統に応じて動作を変えることができる。
【００３４】
図３は、本発明の実施の形態にかかる数値制御装置でプログラム呼出元系統番号変数指令Ａの使用例を説明するための加工プログラムの一例を示す図である。図４は、図３に示した加工プログラム３２の動作処理手順を示したフローチャートである。
【００３５】
図５は、図３に示した加工プログラムによる加工動作の様子を示した図である。すなわち、図５は、図３に示した加工プログラム３２の呼出元のメイン系統番号に応じて、加工プログラム３２による加工動作が変わることを示している。
【００３６】
加工プログラム３２はサブ系統プログラムとして呼ばれる加工プログラムで、プログラム呼出元系統番号変数指令を用いて、呼出元のメイン系統に応じて、動作が異なる。
【００３７】
加工プログラム３２が呼び出されると、図４のフローチャートに示す順に処理を行う。加工プログラム３２は図３に示すように、メイン系統が系統１の場合、系統１からサブ系統として、系統３が呼び出され、さらに系統３からサブ系統として呼び出された系統４で運転する。加工プログラム３２はメイン系統が系統２の場合、系統２からサブ系統として、系統５が呼び出され、さらに系統５からサブ系統として呼び出された系統６で運転する。
【００３８】
加工プログラム３２が呼び出されると、処理Ｐ１で変数＃１００にはプログラム呼出元系統番号変数＃３９０４の値がセットされる（ステップＳ１０１）。メイン系統が系統１の場合、＃３９０４には１がセットされているので、＃１００には１がセットされる。一方、呼出元のメイン系統が系統２の場合、＃３９０４には２がセットされているので、＃１００には２がセットされる。
【００３９】
ステップＳ１０２では、＃１００＝１であるか否かが判定される処理Ｐ２が実行される。処理Ｐ１で＃１００にセットされる値が１の場合、処理Ｐ２の判定条件＃１００＝１が真となるため（ステップＳ１０２：Ｙｅｓ）、処理Ｐ５〜Ｐ８が実行される（ステップＳ１０３）。処理Ｐ５はＮ１００ブロックを示し、処理Ｐ６で工具番号１の工具を選択し、処理Ｐ７でＸ＝４．０へ移動する。
【００４０】
処理Ｐ１で＃１００にセットされる値が２の場合、処理Ｐ２の判定条件＃１００＝１が偽となり（ステップＳ１０２：Ｎｏ）、ステップＳ１０４に進む。ステップＳ１０４では、＃１００＝２であるか否かが判定される処理Ｐ３が実行される。処理Ｐ１で＃１００にセットされる値が２の場合は、処理Ｐ３の判定条件＃１００＝２が真となるため（ステップＳ１０４：Ｙｅｓ）、処理Ｐ９〜Ｐ１１が実行される（ステップＳ１０５）。処理Ｐ９はＮ２００ブロックを示し、処理Ｐ１０で工具番号２の工具を選択し、処理Ｐ１１でＸ＝２．０へ移動する。
【００４１】
ステップＳ１０３とステップＳ１０５の後は、Ｎ３００ブロックを示す処理Ｐ１２を実行し（ステップＳ１０６）、処理Ｐ１３，Ｐ１４で工具の退避などの共通動作を行う（ステップＳ１０７）。
【００４２】
ステップＳ１０４で、＃１００＝２でない場合（ステップＳ１０４：Ｎｏ）は、ステップＳ１０８に進み処理Ｐ４が実行される。
【００４３】
ステップＳ１０７とステップＳ１０８の後は、ステップＳ１０９に進み処理Ｐ１５が実行され、終了する。
【００４４】
このように、加工プログラム３２では共通プログラム内に、メイン系統が系統１の場合の独自動作、メイン系統が系統２の場合の独自動作をそれぞれ記述し、動作を変えている。独自動作は、図５の（ａ）に示すように、メイン系統が系統１の場合（＃１００の値が１の場合）、処理Ｐ６で工具番号１の工具を選択し、処理Ｐ７でワーク径が４．０ｍｍとなるように位置制御指令を行っている。
【００４５】
一方、図５の（ｂ）に示すように、メイン系統が系統２の場合（＃１００の値が２の場合）、処理Ｐ１０で工具番号２の工具を選択し、処理Ｐ１１でワーク径が２．０ｍｍとなるように位置制御指令を行っている。そのため、加工プログラム３２は、加工プログラムの呼出元のメイン系統が系統１の場合は、ワーク径が４．０ｍｍとなる加工を行い、加工プログラムの呼出元のメイン系統が系統２の場合、ワーク径が２．０ｍｍとなる加工を行う。
【００４６】
このように、プログラム呼出元系統番号変数指令Ａを用いることで、同じ加工プログラムでも、呼出元のメイン系統に応じて動作を変えることができ、サブプログラムを共通化することができる。
【００４７】
図６は、本発明の実施の形態にかかる数値制御装置でプログラム呼出元系統番号変数指令Ｂの使用例を説明するための加工プログラムの一例を示す図である。図７は、図６に示した加工プログラム３５の動作手順を示したフローチャートである。
【００４８】
図８は、図６に示した加工プログラムによる加工動作の様子を示した図である。すなわち、図８は、図６に示した加工プログラム３５を呼び出す系統が、加工プログラム３５をサブ系統プログラムまたはサブプログラムのどちらとして呼び出したか、に応じて動作が変わることを示している。
【００４９】
加工プログラム３５は、図６に示すように、メイン系統からサブプログラム、またはサブ系統プログラムとして呼ばれる加工プログラムで、呼び出された系統がメイン系統かサブ系統かに応じて、動作が異なる。
【００５０】
加工プログラム３５が呼び出されると、図７のフローチャートに示す順に処理を行う。処理Ｐ１６で変数＃１００にはプログラム呼出元系統番号変数＃３９０５の値がセットされる（ステップＳ２０１）。メイン系統から、サブ系統プログラムとして呼び出された場合、＃３９０５には１がセットされるので、＃１００には呼出元の系統番号の１がセットされる。一方、呼出元の系統から、サブプログラムとして呼び出された場合は、プログラム呼出元系統番号変数＃３９０５には０がセットされるため、＃１００には０がセットされる。
【００５１】
ステップＳ２０２では、＃１００＝０であるか否かが判定される処理Ｐ１７が実行される。処理Ｐ１６で＃１００にセットされる値が１の場合、処理Ｐ１７の判定条件＃１００＝０が偽となり（ステップＳ２０２：Ｎｏ）、ステップＳ２０３〜Ｓ２０６を実行してからＮ１００ブロックを実行する。つまり、処理Ｐ１６で＃１００にセットされる変数が非０の場合、処理Ｐ１８〜Ｐ２１の処理（ステップＳ２０３〜Ｓ２０６）を実行してから処理Ｐ２２以降（ステップＳ２０７，Ｓ２０８）を実行する。処理Ｐ１６で＃１００にセットされる値が０の場合、処理Ｐ１７の判定条件＃１００＝０は真となり（ステップＳ２０２：Ｙｅｓ）、Ｐ１８〜Ｐ２１の処理を行わずに、共通処理Ｐ２２以降（ステップＳ２０７，Ｓ２０８）が実行される。
【００５２】
加工プログラム３５は、図８に示すように、＃１００の値に応じて、次のように動作する。図８の（ａ）に示すように、呼出元の系統が、加工プログラムをサブ系統プログラムとして呼出した場合（＃１００の値が１の場合）は、処理Ｐ１８でメイン主軸と背面主軸の主軸同期モードをＯＮし、処理Ｐ１９で背面主軸の逆転コマンドをＯＮ、処理Ｐ２０で主軸同期完了のためのドウェル２秒を実行し、処理Ｐ２１で背面主軸のチャックを閉じる。処理Ｐ１８〜Ｐ２１により、切削を行う前に、背面主軸で長尺ワークを支える。背面主軸で長尺ワークを支えてから加工することで、たわみなどを避け、長尺ワークの加工用のプログラムとして用いることができる。
【００５３】
一方、図８の（ｂ）に示すように、呼出元系統が、加工プログラム３５をサブプログラムとして呼び出した場合（＃１００の値が０の場合）は、処理Ｐ１８〜２１は行われないため、背面主軸でワークを支える必要がない、短尺ワークの加工用プログラムとして用いることができる。処理Ｐ２３，Ｐ２４は共通動作であり、処理Ｐ２３で加工位置まで移動し、処理Ｐ２４で１５．０ｍｍの溝加工を行う。
【００５４】
このように、プログラム呼出元系統番号変数指令Ｂを用いることで、同じ加工プログラムでも、その加工プログラムがサブ系統プログラムとして呼ばれるか、サブプログラムとして呼ばれるかに応じて動作を変えることができ、サブプログラムを共通化することができる。
【００５５】
図９は、本発明の実施の形態にかかる数値制御装置でプログラム呼出元系統番号変数指令Ｃの使用例を説明するための加工プログラムの一例を示す図である。図１０は、図９に示した加工プログラム４０の動作手順を示したフローチャートである。図１１は、図９に示した加工プログラムによる加工動作の様子を示した図である。すなわち、図１１は図９に示した加工プログラム４０の動作が、加工プログラムの呼出順に応じて変わることを示している。図１２は、図９の加工プログラムがどの系統で実行されるかを示した図である。
【００５６】
加工プログラム３６は、はじめにコモン変数＃５００と＃５０１を初期化する（処理Ｐ２５，２６）。次に、切削油をＯＮする（処理Ｐ８４）。その後、＃５００＝１の条件を満たすまで、処理Ｐ２７〜Ｐ３０を繰り返し実行する。処理Ｐ２８では、メイン主軸の加工を行う加工プログラムをサブ系統で呼び出し、処理Ｐ２９では背面主軸の加工を行う加工プログラムをサブ系統で呼び出す。処理Ｐ３０に達すると、処理Ｐ２７に処理が戻る。処理Ｐ２７〜Ｐ３０の繰り返しの処理が終わると、切削油をＯＦＦする（処理Ｐ８５）。
【００５７】
加工プログラム３７は、はじめに外径加工を行う加工プログラムをサブ系統で呼び出し（処理Ｐ３１）、次に内径加工を行う加工プログラムをサブ系統で呼び出す（処理Ｐ３２）。
【００５８】
加工プログラム３８は、外径加工を行う加工プログラムである。また、加工プログラム３９は内径加工を行う加工プログラムである。呼出元の系統が系統３の場合、加工プログラム３８はメイン主軸の外径加工を実行し、加工プログラム３９はメイン主軸の内径加工を実行する。一方、呼出元の系統番号が系統６の場合、加工プログラム３８は背面主軸の外径加工を実行し、加工プログラム３９は背面主軸の内径加工を実行する。
【００５９】
加工プログラム３８では、最初に変数＃１００にプログラム呼出元系統番号変数＃３９０５の値がセットされる（処理Ｐ３３）。加工プログラム３８の呼出元の系統が系統３の場合、＃３９０５には３がセットされるため、＃１００の値は３になり、処理Ｐ３４の判定条件＃１００＝３が真となるため、メイン主軸の外径加工の処理（処理Ｐ３６〜Ｐ４０）を実行する。処理Ｐ３６はＮ１００ブロックを示し、処理Ｐ３７で工具番号１の工具を指定し、処理Ｐ３８でＸ＝８０．０に工具を移動、処理Ｐ３９でメイン主軸の外径加工を行い、処理Ｐ４０でＮ３００ブロックへ処理を移動する。加工プログラム３８の呼出元の系統が系統６の場合処理Ｐ３４の判定条件＃１００＝３が偽、処理Ｐ３５の判定条件＃１００＝６が真となって、背面主軸の外径加工の処理（処理Ｐ４１〜Ｐ４４）を実行する。処理Ｐ４１はＮ２００ブロックを示し、処理Ｐ４２で工具番号２の工具を選択し、処理Ｐ４３でＸ＝７０．０に工具を移動、処理Ｐ４４で背面主軸の外径加工を行う。処理Ｐ４５，Ｐ４６は共通処理となる。処理Ｐ４５はＮ３００ブロックを示し、処理Ｐ４６で、加工プログラム３８の呼出元の系統が系統３、系統６どちらの場合でも、加工プログラム４０を呼び出す。
【００６０】
加工プログラム３９では、最初に変数＃１００にプログラム呼出元系統番号変数＃３９０５の値がセットされる（処理Ｐ４７）。加工プログラム３９の呼出元のサブ系統が系統３の場合、＃３９０５には３がセットされるため、＃１００は３になり、処理Ｐ４８の判定条件＃１００＝３が真となるため、メイン主軸の内径加工の処理（処理Ｐ５０〜Ｐ５４）を実行する。処理Ｐ５０はＮ１００ブロックを示し、処理Ｐ５１で工具番号３の工具を選択し、処理Ｐ５２でＺ＝１０．０まで移動し、処理Ｐ５３でメイン主軸の内径加工を行い、処理Ｐ５４でＮ３００ブロックへ処理を移動する。加工プログラム３９の呼出元のサブ系統が系統６の場合、＃３９０５には６がセットされるため、＃１００は６になり、処理Ｐ４８の判定条件＃１００＝３が偽、処理Ｐ４９の判定条件＃１００＝６が真となるため、背面主軸の内径加工の処理（処理Ｐ５５〜Ｐ５８）を実行する。処理Ｐ５５はＮ２００ブロックを示し、処理Ｐ５６で工具番号４の工具を選択し、処理５７でＺ＝１０．０に工具を移動、処理Ｐ５８で背面主軸の内径加工を行う。処理Ｐ５９、Ｐ６０は共通処理となる。処理Ｐ５９はＮ３００ブロックを示し、処理Ｐ６０で、加工プログラム３９の呼出元のサブ系統が系統３、系統６どちらの場合でも、加工プログラム４０を呼び出す。
【００６１】
加工プログラム４０は次工程のワーク加工の準備を行う加工プログラムである。加工プログラム４０は、加工プログラム４０を呼び出すまでの系統の呼出順に応じて、次の４通りの動作を行う。
【００６２】
呼出順Ａ：系統１（メイン系統）→系統３（サブ系統）→系統４（サブ系統）の場合、図１１（ａ）に示すように、メイン主軸内径加工開始位置まで移動する（処理Ｐ６８）。
【００６３】
呼出順Ｂ：系統１（メイン系統）→系統３（サブ系統）→系統５（サブ系統）の場合、図１１（ｂ）に示すように、背面主軸とワークの掴み換えを行い、外径加工の切削開始位置まで移動する（処理Ｐ７１）。
【００６４】
呼出順Ｃ：系統１（メイン系統）→系統６（サブ系統）→系統４（サブ系統）の場合、図１１（ｃ）に示すように、背面主軸での内径加工の切削開始位置まで移動する（処理Ｐ７４）。
【００６５】
呼出順Ｄ：系統１（メイン系統）→系統６（サブ系統）→系統５（サブ系統）の場合、図１１（ｄ）に示すように、工具を退避し、ローダで加工したワークを回収する（処理Ｐ７７）。
【００６６】
図１０に示すフローチャートの順に処理を行う。加工プログラム４０では、処理Ｐ６１でまず切削油をＯＦＦする（ステップＳ３０１）。次に、処理Ｐ６２で、変数＃１００にプログラム呼出元系統番号変数＃３９０６がセットされる（ステップＳ３０２）。上に示した呼出順Ａの場合、＃３９０６には１３４がセットされる。そのため、＃１００には１３４がセットされる。ステップＳ３０３においては、＃１００＝１３４であるか否かを判定する処理Ｐ６３が実行される。従ってこの場合は、処理Ｐ６３の判定条件＃１００＝１３４が真（ステップＳ３０３：Ｙｅｓ）となり、処理Ｐ６７〜Ｐ６９（ステップＳ３０４〜Ｓ３０６）を実行する。処理Ｐ６７はＮ１００ブロックを示し、処理Ｐ６８でメイン主軸内径加工開始位置まで移動し、処理Ｐ６９でＮ５００ブロックへ処理を移動する。
【００６７】
呼出順Ｂの場合、＃３９０６は１３５がセットされる。そのため、＃１００には１３５がセットされるので、処理Ｐ６３の判定条件＃１００＝１３４が偽（ステップＳ３０３：Ｎｏ）となり、ステップＳ３０７に進む。ステップＳ３０７においては、＃１００＝１３５であるか否かを判定する処理Ｐ６４が実行される。従ってこの場合は、処理Ｐ６４の判定条件＃１００＝１３５が真（ステップＳ３０７：Ｙｅｓ）となり、処理Ｐ７０〜Ｐ７２（ステップＳ３０８〜Ｓ３１０）を実行する。処理Ｐ７０はＮ２００ブロックを示し、処理Ｐ７１で背面主軸でワークの掴み換えと、外径加工の切削開始位置まで移動し、処理Ｐ７２でＮ５００ブロックへ処理を移動する。
【００６８】
呼出順Ｃの場合、＃３９０６は１６４がセットされる。そのため、＃１００には１６４がセットされ、処理Ｐ６３の判定条件＃１００＝１３４が偽（ステップＳ３０３：Ｎｏ）、処理Ｐ６４の判定条件＃１００＝１３５が偽（ステップＳ３０７：Ｎｏ）となり、ステップＳ３１１に進む。ステップＳ３１１においては、＃１００＝１６４であるか否かを判定する処理Ｐ６５が実行される。従ってこの場合は、処理Ｐ６５の判定条件＃１００＝１６４が真（ステップＳ３１１：Ｙｅｓ）となり、処理Ｐ７３〜Ｐ７５（ステップＳ３１２〜Ｓ３１４）を実行する。処理Ｐ７３はＮ３００ブロックを示し、処理Ｐ７４で背面主軸での内径加工の切削開始位置まで移動し、処理Ｐ７５でＮ５００ブロックへ処理を移動する。
【００６９】
呼出順Ｄの場合、＃３９０６は１６５がセットされる。そのため、＃１００には１６５がセットされ、処理Ｐ６３の判定条件＃１００＝１３４が偽（ステップＳ３０３：Ｎｏ）、処理Ｐ６４の判定条件＃１００＝１３５が偽（ステップＳ３０７：Ｎｏ）、処理Ｐ６５の判定条件＃１００＝１６４が偽（ステップＳ３１１：Ｎｏ）となり、ステップＳ３１５に進む。ステップＳ３１５においては、＃１００＝１６５であるか否かを判定する処理Ｐ６６が実行される。従ってこの場合は、処理Ｐ６６の判定条件＃１００＝１６５が真（ステップＳ３１５：Ｙｅｓ）となり、処理Ｐ７６、Ｐ７７（ステップＳ３１６、Ｓ３１７）を実行する。処理Ｐ７６はＮ４００ブロックを示し、処理Ｐ７７で工具を退避し、ローダで加工したワークを回収する。
【００７０】
また、処理Ｐ６６の判定条件＃１００＝１６５が偽（ステップＳ３１５：Ｎｏ）の場合も含め、呼出順Ａ〜Ｄにかかわらず、ステップＳ３０６、Ｓ３１０、Ｓ３１４、およびＳ３１７の後は、共通処理Ｐ７８〜Ｐ８３（ステップＳ３１８〜Ｓ３２３）を実行する。
【００７１】
処理Ｐ７８（ステップＳ３１８）はＮ５００ブロックを示し、処理Ｐ７９（ステップＳ３１９）では、切削油をＯＮし、処理Ｐ８０（ステップＳ３２０）では加工プログラム４０が呼ばれた回数を＃５０１の変数でカウントする。すなわち、＃５０１を１インクリメントする。メイン主軸・背面主軸それぞれで、外径加工と内径加工を行う一連の加工で、加工プログラム４０は４回呼ばれるため、カウンタの変数＃５０１のカウンタ値は４加算される。
【００７２】
ステップＳ３２０の後はステップＳ３２１に進み、処理Ｐ８１でカウンタの変数＃５０１を４で割った値が１００を超えないか否かが判定される。処理Ｐ８１の判定条件においてカウンタの変数＃５０１を４で割った値が１００を超えないとき（ステップＳ３２１：Ｙｅｓ）、すなわち一連の加工を行った個数が１００個未満のとき、真となり、Ｎ６００ブロックへ処理を移動する（ステップＳ３２３）。処理Ｐ８１の判定条件においてカウンタの変数＃５０１を４で割った値が１００を超えたとき（ステップＳ３２１：Ｎｏ）、すなわち一連の加工を行った個数が１００個以上のとき、偽となって変数＃５００に１をセットし（ステップＳ３２２）、ステップＳ３２３に進む。ステップＳ３２２での処理により、加工プログラム３６の処理Ｐ２７での判定条件＃５００＝１が真となり、加工が終了する。
【００７３】
図９の加工プログラムは、図１２に示す４通りの呼出順で実行することになる。図１２のように加工プログラム３８と加工プログラム３９は系統３と系統６の両系統から呼ばれる。また、加工プログラム４０は系統４と系統５の両系統から呼ばれる。加工プログラム４０で、上述した呼出順Ａ〜Ｄに応じて動作を変える場合、加工プログラム４０の呼出元の系統番号と、呼出元の系統の更に呼出元の系統番号が必要になる。
【００７４】
換言すると、加工プログラムを実行する系統の呼出順の情報が必要になる。このような場合にプログラム呼出元系統番号変数指令Ｃを用いることで、加工プログラムの呼出順を示した番号を得ることができる。これにより、系統の呼出順に応じて動作を変えたい処理を、プログラム呼出元系統番号変数指令Ｃに応じて個別に行えるようにすることが可能となり、サブプログラムを共通化することができる。
【００７５】
以上説明したように、本実施の形態にかかる数値制御装置においては、サブプログラム又はサブ系統プログラム内で呼出元のメイン系統を取得する手段を設けることにより、サブプログラム又はサブ系統プログラム内でメイン系統に応じて一部の処理が異なる加工プログラムの実行を行うことが可能となる。これにより、加工プログラムを構成する部分プログラムの共通化を図ることができる。
【００７６】
さらに、本願発明は上記実施の形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上記実施の形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施の形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。更に、異なる実施の形態にわたる構成要素を適宜組み合わせてもよい。
【産業上の利用可能性】
【００７７】
以上のように、本発明にかかる数値制御装置は、複合加工として多系統の加工を行う場合に有用であり、特に、加工プログラム中で、別の加工プログラムをサブプログラムとして呼び出して加工を行ったり、サブ系統として別の系統で加工プログラムを呼びだして加工を行う場合に適している。
【符号の説明】
【００７８】
１  ＮＣ装置、２  メモリ、３  プログラム解析部、４  補間処理部、５  画面処理部、６  機械制御信号処理部、９  軸データ出力部、１０  加工プログラム記憶部、１１  パラメータ記憶部、１２  画面表示データ記憶部、１３  共有エリア、１４プログラム呼出元系統番号解析手段、１５  メイン系統・サブ系統番号チェック手段、１６  主軸モータ、１７  サーボモータ、１８  主軸アンプ、１９  サーボアンプ、２０  入力操作部、２１  表示部、２２〜４０  加工プログラム、Ｓ１０１〜Ｓ１０９，Ｓ２０１〜Ｓ２０８，Ｓ３０１〜Ｓ３２３  ステップ。
【要約】
独立して動作可能な複数の系統を備える多系統の機械の制御を実行する数値制御装置において、複数の部分プログラムを有する加工プログラムを記憶するプログラム記憶部と、前記系統毎に並列して前記部分プログラムを実行するプログラム解析部と、を備え、前記プログラム解析部は、前記部分プログラムの中のプログラム呼出元系統番号変数を抽出し、前記部分プログラムの間の呼び出し関係に基づいて、呼び出し元となる前記部分プログラムの前記系統の番号を前記プログラム呼出元系統番号変数にセットし、前記プログラム呼出元系統番号変数を含んだ前記部分プログラムは、前記プログラム呼出元系統番号変数の値に基づいて前記機械の動作を変更するように記載されている。【図１】
0005579347.tif 000002
【図２】
0005579347.tif 000003
【図３】
0005579347.tif 000004
【図４】
0005579347.tif 000005
【図５】
0005579347.tif 000006
【図６】
0005579347.tif 000007
【図７】
0005579347.tif 000008
【図８】
0005579347.tif 000009
【図９】
0005579347.tif 000010
【図１０】
0005579347.tif 000011
【図１１】
0005579347.tif 000012
【図１２】
0005579347.tif 000013