(57)【要約】【課題】オペレータが意識しなくとも加工プログラムを適切な格納先に格納する数値制御装置を提供すること。【解決手段】本発明の数値制御装置は、高速に読み出し可能な第１の記憶装置と、第１の記憶装置よりも読み出し速度が低速な第２の記憶装置と、プログラムの格納先の情報を含む管理情報を記憶する管理情報記憶部と、プログラムを入力するプログラム入力部と、プログラムの内容に基づいて、該プログラムの実行時にプログラムの読み出しに高速性が要求されるかを解析するプログラム解析部と、プログラム解析部による解析の結果に基づいて、プログラムを第１の記憶装置または第２の記憶装置のいずれかに格納し、管理情報記憶部に記憶されたプログラムの格納先の情報を更新するプログラム管理部と、を備える。【選択図】図１
2017016233.tif 000002
【特許請求の範囲】
【請求項１】
プログラムに基づいて機械を制御する数値制御装置において、
前記プログラムを格納可能な第１の記憶装置と、
前記プログラムを格納可能な第２の記憶装置と、
前記プログラムの格納先の情報を含む管理情報を記憶する管理情報記憶部と、
前記プログラムを入力するプログラム入力部と、
前記プログラム入力部から入力された前記プログラムの内容に基づいて、前記プログラムの実行時に前記プログラムの読み出しに高速性が要求されるかを解析するプログラム解析部と、
前記プログラム解析部による解析の結果に基づいて、前記プログラムを前記第１の記憶装置または前記第２の記憶装置のいずれかに格納し、前記管理情報記憶部に記憶された前記プログラムの格納先の情報を更新するプログラム管理部と、
を備え、
前記第１の記憶装置は前記第２の記憶装置よりも前記プログラムの読み出し速度が高速である、
ことを特徴とする数値制御装置。
【請求項２】
前記プログラム管理部は、前記プログラムの実行時に、前記管理情報記憶部を参照して前記プログラムの格納先を特定し、特定された前記プログラムの格納先から前記プログラムを読み出す、
ことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記プログラム解析部は、前記プログラムに高速運転命令が含まれている場合に前記プログラムの読み出しに高速性が要求されると解析する、
ことを特徴とする請求項１または２に記載の数値制御装置。
【請求項４】
前記プログラム解析部は、前記プログラムの読み出しにあたり、前記プログラムが前記プログラムと異なる他のプログラムから該他のプログラムにおける高速運転中にサブプログラム呼出しされている場合に、前記プログラムの読み出しに高速性が要求されると解析する、
ことを特徴とする請求項１〜３のいずれか１つに記載の数値制御装置。
【請求項５】
前記プログラム解析部は、前記プログラムの読み出しにあたり、前記プログラムが前記プログラムと異なる他のプログラムから繰返し呼出しされている場合に、前記プログラムの読み出しに高速性が要求されると解析する、
ことを特徴とする請求項１〜４のいずれか１つに記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置に関し、特にプログラムの内容に応じて該プログラムの格納先を自動選択する機能を有する数値制御装置に関する。
【背景技術】
【０００２】
工作機械を制御するための数値制御装置は、加工プログラムを格納するための不揮発性メモリを内蔵している。また、メモリカードやネットワークで接続したコンピュータのドライブなどの外部記憶装置を加工プログラムの格納に使うこともできる。
【０００３】
一方で、異なる特性を持つ複数のデバイスをまとめて、一つの記憶装置のように扱う技術が従来技術として開示されている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４４８０４７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
数値制御装置において加工プログラムに基づいた工作機械の制御を行う際に、加工プログラムを外部記憶装置に格納して該加工プログラムに基づく制御を行うと、外部記憶装置に対するデータ読み書きが低速であることが原因で、高速性が要求される運転においてデータの読み出しが間に合わなくなることがある。このような事態を避けるため、オペレータはあらかじめ加工プログラムの内容を確認して高速性が要求されるかどうかを判断し、高速性が要求される場合には不揮発性メモリを格納場所に、高速性が要求されない場合には外部記憶装置を格納場所にするようにしているが、このような作業には手間がかかり、また、オペレータが判断を誤って間違えることも多く発生する。
【０００６】
上記した、複数のデバイスをまとめて１つの記憶装置のように扱う技術を用いれば、オペレータは加工プログラムの格納先を意識する必要はなくなるが、一方で高速な読み出しが要求される加工プログラムが低速な外部記憶装置に格納される恐れがある。
特許文献１に開示される技術では、複数の外部記憶装置をまとめて、一つの記憶装置のように扱う際に、デバイスの特性と、格納するファイルの特性から、格納先のデバイスを決定する構成を備えてはいるものの、ファイルの用途、属性の判定を、ファイルの拡張子やサイズで行っているが、加工プログラムの場合は、高速読み出しが必要かどうかは加工プログラムの内容から判断する必要があり、ファイルの拡張子やサイズからは判断できない。
【０００７】
そこで本発明の目的は、オペレータが意識しなくとも加工プログラムを適切な格納先に格納する数値制御装置を提供することである。
【課題を解決するための手段】
【０００８】
本願の請求項１に係る発明は、プログラムに基づいて機械を制御する数値制御装置において、前記プログラムを格納可能な第１の記憶装置と、前記プログラムを格納可能な第２の記憶装置と、前記プログラムの格納先の情報を含む管理情報を記憶する管理情報記憶部と、前記プログラムを入力するプログラム入力部と、前記プログラム入力部から入力された前記プログラムの内容に基づいて、前記プログラムの実行時に前記プログラムの読み出しに高速性が要求されるかを解析するプログラム解析部と、前記プログラム解析部による解析の結果に基づいて、前記プログラムを前記第１の記憶装置または前記第２の記憶装置のいずれかに格納し、前記管理情報記憶部に記憶された前記プログラムの格納先の情報を更新するプログラム管理部と、を備え、前記第１の記憶装置は前記第２の記憶装置よりも前記プログラムの読み出し速度が高速である、ことを特徴とする数値制御装置である。
【０００９】
本願の請求項２に係る発明は、前記プログラム管理部は、前記プログラムの実行時に、前記管理情報記憶部を参照して前記プログラムの格納先を特定し、特定された前記プログラムの格納先から前記プログラムを読み出す、ことを特徴とする請求項１に記載の数値制御装置である。
【００１０】
本願の請求項３に係る発明は、前記プログラム解析部は、前記プログラムに高速運転命令が含まれている場合に前記プログラムの読み出しに高速性が要求されると解析する、ことを特徴とする請求項１または２に記載の数値制御装置である。
【００１１】
本願の請求項４に係る発明は、前記プログラム解析部は、前記プログラムの読み出しにあたり、前記プログラムが前記プログラムと異なる他のプログラムから該他のプログラムにおける高速運転中にサブプログラム呼出しされている場合に、前記プログラムの読み出しに高速性が要求されると解析する、ことを特徴とする請求項１〜３のいずれか１つに記載の数値制御装置である。
【００１２】
本願の請求項５に係る発明は、前記プログラム解析部は、前記プログラムの読み出しにあたり、前記プログラムが前記プログラムと異なる他のプログラムから繰返し呼出しされている場合に、前記プログラムの読み出しに高速性が要求されると解析する、ことを特徴とする請求項１〜４のいずれか１つに記載の数値制御装置である。
【発明の効果】
【００１３】
本発明により、加工プログラムが自動的に適切な読み出し速度の記憶装置に格納され、オペレータは加工プログラムの格納先を意識して切り替える必要が無くなり、誤操作や管理コストを減らすことができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態における数値制御装置の概略ブロック図である。
【図２】本発明の実施形態における管理情報を例示する図である。
【図３】本発明の実施形態における解析情報を例示する図である。
【図４】本発明の実施形態における数値制御装置上で実行される処理の概略フローチャートである。
【図５】本発明の実施形態におけるデバイス選択処理のフローチャートである。
【図６】本発明の実施形態におけるプログラム解析処理のフローチャートである。
【図７】本発明の実施形態におけるファイル移動処理のフローチャートである。
【００１５】
以下、図面を参照して本発明の実施形態を説明する。
本発明では、加工プログラムを解析し、高速運転を行う命令の有無で高速な読み出しの必要性を判断する。また、解析時に、加工プログラムが呼び出すサブプログラムの名前を抽出し、高速運転を行う範囲内から呼ばれるサブプログラムについては高速な読み出しが必要と判断する。また、サブプログラム呼び出し命令に繰り返し回数が指定されているサブプログラムも高速な読み出しが必要と判断する。そして、高速な読み出しが必要な加工プログラムは高速な記憶装置に格納し、そうでない加工プログラムは低速な記憶装置に格納し、管理情報に加工プログラムの名称と記憶装置の組み合わせを記録する。加工プログラムを読み出す際は、管理情報から加工プログラムの名称を検索し、格納先の記憶装置から読み出しを行う。
【００１６】
なお、本発明において記憶装置とは、ＨＤＤやＦｌａｓｈＲＯＭなどのような装置に内蔵固定される媒体や、ＣＦカード、ＳＤカードなどのような比較的容易に交換可能な媒体、ネットワークを介してアクセス可能なネットワークストレージなど、データを記憶することが可能な媒体、更に、同一の装置または媒体上であってもプログラムから見て異なる領域として認識できるもの（ディスク上のパーティションが異なる領域、ネットワークストレージ上に設けられた異なる共有領域など）を意味する。
【００１７】
以降、本文では、加工プログラムを「プログラム」、読み出しに高速性が要求される命令を「高速運転命令」、読み出しに高速性が要求されるプログラムを「高速プログラム」、管理情報としてプログラムの情報を記録することを「登録」、プログラム毎の管理情報を「エントリー」、記憶装置を「デバイス」、デバイスにプログラムのファイルを記録することを「格納」と称す。
【００１８】
本発明の一実施形態における数値制御装置の構成を、図１の概略ブロック図にしたがって説明する。本実施形態の数値制御装置１００は、プログラム入力部１１０、プログラム管理部１２０、管理情報記憶部１２５、プログラム解析部１３０、解析情報記憶部１３５、不揮発性メモリ１４０、ネットワーク制御部１５０を備える。
【００１９】
プログラム入力部１１０は、プログラムをシリアルポートやイーサネット（登録商標）のポートに接続された図示しない外部機器やメモリカードから読み込む。
不揮発性メモリ１４０は、高速な読み出しが可能な内蔵記憶装置であり、少なくとも高速運転命令が含まれているプログラムを記憶している場合において、該高速運転命令を実行する際に要求されるプログラム読み出し速度に応答可能な程度の読み出し速度を備えている。
ネットワーク制御部１５０は外部のサーバー２００と通信を行い、サーバー２００が備えるハードディスク２１０を外部記憶装置として扱う。
【００２０】
プログラム管理部１２０は、不揮発性メモリ１４０などの内蔵記憶装置と、図示しない外部機器やメモリカード、ハードディスク２１０などの外部記憶装置に対して読み書きを行う。プログラムを登録する際は管理情報記憶部１２５に記憶される管理情報を更新し、プログラムを読み出す際は管理情報記憶部１２５を参照してプログラムの格納先を特定し、特定した該格納先からプログラムを読み込む。
【００２１】
管理情報記憶部１２５に記憶される管理情報のエントリーはプログラム毎の情報を保持する。図２は、本実施形態における管理情報記憶部１２５に記憶される管理情報の例を示している。本実施形態の管理情報は、データ項目として、プログラムのファイル名、高速フラグ、サブプログラムカウンタ、繰返し呼出しカウンタ、格納先デバイス名、サブプログラムリスト、繰返し呼出しリストを備えている。
【００２２】
管理情報において、高速フラグは、プログラムが高速な読み出しを必要とする命令を使っていることを示す。サブプログラムカウンタは、このプログラムをサブプログラムとして呼び出す高速プログラムの数を示す。繰返し呼出しカウンタは、このプログラムを繰返しサブプログラム呼び出しする高速プログラムの数を示す。格納先デバイス名は、このプログラムが格納されているデバイスのデバイス名を示す。サブプログラムリストは、このプログラムが高速運転を行う範囲から呼び出すサブプログラム名のリストである。繰返し呼出しリストは、このプログラムが繰返し呼び出すサブプログラム名のリストである。
【００２３】
図２の例では、例えば、プログラム「Ｏ０００２」については、高速な読み出しを必要とする命令を使っており、該プログラムをサブプログラムとして読み出す高速プログラム、および繰り返しサブプログラム呼出しする高速プログラムは無く、数値制御装置の内臓記憶装置に記憶されている。また、このプログラムは高速運転を行う範囲からプログラム「Ｏ８００１」「Ｏ８００３」を呼出し、また、このプログラムはプログラム「Ｏ８００５」「Ｏ８００３」を繰返し呼び出している。
【００２４】
解析情報記憶部１３５に記憶される解析情報には、プログラムを実行時に高速性が要求される運転の開始命令と終了命令、および当該命令により提供される機能が登録されている。図３は、本実施形態における解析情報記憶部１３５に記憶される解析情報の例を示している。図３の例では、例えば、高速運転開始命令として「Ｇ０８Ｐ１」命令、「Ｇ０８Ｐ１」命令による高速運転を終了させる高速運転終了命令として「Ｇ０８Ｐ０」命令、およびこれら命令の機能名である「ＡＩ輪郭制御」が関連付けられた１つの解析情報として記憶されている。
【００２５】
プログラム解析部１３０は、解析情報記憶部１３５を参照してプログラムが高速読み出しを必要とするかどうかを判断する。また、サブプログラム名の抽出と、サブプログラムの高速読み出しの必要性の判断を行う。プログラム解析部１３０が実行するプログラム解析処理の詳細については後述する。
【００２６】
以下では、本実施形態における数値制御装置１００上で実行されるプログラムの登録処理を、図４〜図７のフローチャートに従って説明する。
【００２７】
図４は、本実施形態における数値制御装置１００上で実行されるプログラム登録処理の全体の流れを示すフローチャートである。本実施形態の数値制御装置１００において、運転制御に用いるプログラムを新規に登録する場合には、まず、プログラム管理部１２０がプログラムを格納するデバイスを選択し（ステップＳＡ０１）、ステップＳＡ０１で選択されたデバイスにプログラムのファイルを格納し（ステップＳＡ０２）、プログラムを解析し（ステップＳＡ０３）、最後にファイルを移動する（ステップＳＡ０４）。なお、ファイルの格納とプログラム解析は同時に並列で実行してもよい。
【００２８】
図５は、図４におけるステップＳＡ０１で実行されるデバイス選択処理のフローチャートである。
●［ステップＳＢ０１］登録するプログラムが新規登録の場合、管理情報記憶部１２５に該プログラムを管理する管理情報のエントリーが存在しないので、はじめに登録するプログラムのプログラム名に基づいて管理情報記憶部１２５に該プログラムの管理情報のエントリーが存在するか否かを判定する。存在する場合にはステップＳＢ０３へ進み、存在しない場合にはステップＳＢ０２へ進む。
●［ステップＳＢ０２］プログラム管理部１２０は、管理情報記憶部１２５に、登録するプログラムの管理情報のエントリーを作成し、ステップＳＢ１０へ進む。
【００２９】
●［ステップＳＢ０３］登録するプログラムの管理情報のエントリーのデバイス名が空であるか否かを判定する。空である場合にはステップＳＢ０８へ進み、空である場合にはステップＳＢ０４へ進む。
●［ステップＳＢ０４］登録するプログラムの管理情報のエントリーが管理情報記憶部１２５に既に存在し、該エントリーのデバイス名が空でないのは、同名のプログラムを再登録（プログラムを変更）する場合であるから、登録するプログラムのプログラム名と同名のプログラムを該エントリーに登録されているデバイス名のデバイスから削除する。
【００３０】
●［ステップＳＢ０５］登録するプログラムの管理情報のエントリーのサブプログラムリスト上の各プログラムについて、呼び出し元のプログラムが無くなったので、これら各プログラムの管理情報のエントリーのサブプログラムカウンタの値を１減らす。
●［ステップＳＢ０６］登録するプログラムの管理情報のエントリーの繰返し呼出しリスト上の各プログラムについて、呼び出し元のプログラムが無くなったので、これら各プログラムの管理情報のエントリーのサブプログラムカウンタの値を１減らす。
【００３１】
●［ステップＳＢ０７］登録するプログラムの管理情報のエントリーの高速フラグを「Ｎｏ」に設定し、また、サブプログラムリストと繰返し呼出しリストを空にする。
●［ステップＳＢ０８］登録するプログラムの管理情報のエントリーにおいて、サブプログラムカウンタの値または繰返し呼び出しカウンタの値のいずれかが１以上であるか否かを判定する。いずれかが１以上である場合にはステップＳＢ０９へ進み、いずれも０である場合にはステップＳＢ１０へ進む。
【００３２】
●［ステップＳＢ０９］サブプログラムカウンタの値または繰返し呼び出しカウンタの値のいずれかが１以上である場合には、高速な読み出しが必要とされるので高速デバイスを選択する。
●［ステップＳＢ１０］サブプログラムカウンタの値または繰返し呼び出しカウンタの値のいずれかが１以上である場合、または新規登録である場合には、現段階では高速な読み出しが必要ないとみなして低速デバイスを選択する。
【００３３】
図６は、図４におけるステップＳＡ０３で実行されるプログラム解析処理のフローチャートである。本処理は、プログラム解析部１３０により実行される。
●［ステップＳＣ０１］プログラム解析部１３０は、解析情報記憶部１３５を参照して高速運転命令の一覧を読み出す。
●［ステップＳＣ０２］ステップＳＣ０１で読み出した高速運転命令が、プログラム登録処理において登録されたプログラム（以下、メインプログラム）内に存在するか判定する。存在する場合にはステップＳＣ０３へ進み、存在しない場合にはステップＳＣ０４へ進む。
●［ステップＳＣ０３］メインプログラムの管理情報のエントリーの高速フラグを「Ｙｅｓ」に設定する。
【００３４】
●［ステップＳＣ０４］メインプログラムを解析し、メインプログラムが呼び出すサブプログラムのプログラム名を抽出する。
●［ステップＳＣ０５］ステップＳＣ０４で抽出したサブプログラムについて、該サブプログラムの管理情報のエントリーが管理情報記憶部１２５に登録されていない場合、該サブプログラムの管理情報のエントリーを追加する。
【００３５】
●［ステップＳＣ０６］メインプログラムを解析し、メインプログラムの高速運転中に呼び出されているサブプログラムが存在するか否かを判定する。高速運転中にサブプログラムが呼び出されている場合にはステップＳＣ０７へ進み、そうでない場合にはステップＳＣ０９へ進む。
●［ステップＳＣ０７］ステップＳＣ０６でメインプログラムの高速運転中に呼び出されていると判定されたサブプログラムを、メインプログラムの管理情報のエントリーのサブプログラムリストに追加する。
●［ステップＳＣ０８］ステップＳＣ０６でメインプログラムの高速運転中に呼び出されていると判定されたサブプログラムの管理情報のエントリーのサブプログラムカウンタの値を１増やす。
【００３６】
●［ステップＳＣ０９］メインプログラムを解析し、メインプログラムから繰返し呼出されているサブプログラムが存在するか否かを判定する。繰返し呼出されているサブプログラムが存在する場合にはステップＳＣ１０へ進み、そうでない場合には本処理を終了する。
●［ステップＳＣ１０］ステップＳＣ０９でメインプログラムから繰返し呼出されている判定されたサブプログラムを、メインプログラムの管理情報のエントリーの繰返し呼出しリストに追加する。
●［ステップＳＣ１１］ステップＳＣ０９でメインプログラムから繰返し呼出されている判定されたサブプログラムの管理情報のエントリーの繰返し呼出しカウンタの値を１増やす。
【００３７】
図７は、図４におけるステップＳＡ０４で実行されるファイル移動処理のフローチャートである。本処理は、プログラム管理部１２０により実行される。
●［ステップＳＤ０１］プログラム管理部１２０は、管理情報記憶部１２５に記憶されている管理情報の各エントリーについて、以下のステップＳＤ０２〜ステップＳＤ０６を繰返し実行する。
●［ステップＳＤ０２］管理情報のエントリーについて、高速フラグ、サブプログラムカウンタ、繰返し呼出しカウンタの各値を参照し、高速フラグがＹｅｓか、サブプログラムカウンタまたは繰返し呼出しカウンタの何れかが１以上である場合には高速デバイスに格納するべきと判断しステップＳＤ０３へ進み、上記条件に該当しない場合には低速デバイスに格納するべきと判断しステップＳＤ０５へ進む。
【００３８】
●［ステップＳＤ０３］管理情報のエントリーについて、格納先デバイスの値を参照し、低速デバイスに格納されているか否かを判定する。低速デバイスに格納されている場合にはステップＳＤ０４へ進み、そうでない場合にはステップＳＤ０７へ進む。
●［ステップＳＤ０４］管理情報のエントリーのプログラムを低速デバイスから高速デバイスへとコピーして、低速デバイスから削除し、管理情報のエントリーの格納先デバイスを高速デバイスへと変更する。
【００３９】
●［ステップＳＤ０５］管理情報のエントリーについて、格納先デバイスの値を参照し、高速デバイスに格納されているか否かを判定する。高速デバイスに格納されている場合にはステップＳＤ０６へ進み、そうでない場合にはステップＳＤ０７へ進む。
●［ステップＳＤ０６］管理情報のエントリーのプログラムを高速デバイスから低速デバイスへとコピーして、高速デバイスから削除し、管理情報のエントリーの格納先デバイスを低速デバイスへと変更する。
●［ステップＳＤ０７］次の管理情報のエントリーがある場合には該エントリーを処理対象としてＳＤ０２へ戻ってループを繰返し、次の管理情報のエントリーが無い場合には本処理を終了する。
【００４０】
なお、上記したデバイス選択処理において、登録するプログラム管理情報のエントリーが既に管理情報記憶部１２５に存在し、該エントリーの格納先デバイスが空となっているのは（図５のフローチャートのステップＳＢ０３においてＹｅｓの流れ）、他のプログラムの登録時にサブプログラムとしてエントリーが作られた場合である。このような場合にはファイルの削除処理は不要であるため、ステップＳＢ０８へ進んでデバイスの選択を行う。デバイス選択後の処理は、プログラムを新規登録する場合と同様である。
【００４１】
以上の処理により、各プログラムの管理情報のエントリーが作成された上で、各プログラムの格納先が決定される。このように格納されたプログラムに基づいて数値制御装置が機械の運転制御を行う際には、プログラム管理部１２０が、管理情報記憶部１２５を参照して読出し対象となるプログラムの管理情報のエントリーから格納先デバイスに登録されているデバイス名を参照し、該デバイス名の記憶装置からプログラムのファイルを読み出し、該プログラムに基づいて機械の運転制御が実行される。
【００４２】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【００４３】
例えば、上記実施形態で示した管理情報、解析情報が備えるデータ項目は、本発明を実施するための一例にすぎず、それぞれ必要に応じて他の適切なデータ項目を設けるようにしてもよい。
【００４４】
また、上記した解析情報として示されている高速運転が必要な命令についても、図２で示した命令は一例にすぎず、読出しに高速性が要求される命令（外部記憶装置の読み出し速度では、実行時のプログラム読み出しに間に合わなく命令または命令群）は全て高速運転命令として取り扱うようにしてもよい。更に、上記実施形態では解析情報記憶部１３５に高速運転命令に係る解析情報を記憶しておき、該解析情報に基づいてプログラムの読み出しに高速性が要求されるかを判定していたが、例えばシミュレーションなどを用いてプログラムの各命令の処理に必要な速度を算出し、算出した結果に基づいて必要なプログラムの読み出し速度を求めることで、プログラムの読み出しに高速性が要求されるかを判定するようにしてもよい。
【符号の説明】
【００４５】
１００  数値制御装置
１１０  プログラム入力部
１２０  プログラム管理部
１２５  管理情報記憶部
１３０  プログラム解析部
１３５  解析情報記憶部
１４０  不揮発性メモリ
１５０  ネットワーク制御部
２００  サーバー
２１０  ハードディスク
【図１】
2017016233.tif 000003
【図２】
2017016233.tif 000004
【図３】
2017016233.tif 000005
【図４】
2017016233.tif 000006
【図５】
2017016233.tif 000007
【図６】
2017016233.tif 000008
【図７】
2017016233.tif 000009