(57)【要約】【課題】数値制御装置のシステムソフトウエアの一部をユーザが独自に簡単に変更することができる数値制御装置のカスタマイズ方法および数値制御装置を提供する。【解決手段】システムソフトウエアで実現されている機能の関数単位で、前記システムソフトウエアの処理に代えて、前記ユーザが作成した前記ユーザ関数を有効とするユーザ関数選択パラメータを備え、該ユーザ関数選択パラメータにより、前記ユーザ関数が有効かどうかを判別し（ステップＳＴ２）、判別した結果前記ユーザ関数が有効でなければ前期システムソフトウエアの処理を実行し（ステップＳＴ３）、判別した結果前期ユーザ関数が有効であれば前記システムソフトウエアの処理に代えて前記ユーザ関数を実行する（ステップＳＴ４）。【選択図】    図１
2005234639.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが作成するユーザ関数を組み込むことができる数値制御装置のカスタマイズ方法において、
システムソフトウエアで実現されている機能の関数単位で前記システムソフトウエアの処理に代えて前記ユーザが作成したユーザ関数を有効とするユーザ関数選択パラメータを備え、
該ユーザ関数選択パラメータにより前記ユーザ関数が有効かどうかを判別し、
判別した結果前記ユーザ関数が有効でなければ前期システムソフトウエアの処理を実行し、
判別した結果前期ユーザ関数が有効であれば前記システムソフトウエアの処理に代えて前記ユーザ関数を実行することを特徴とする数値制御装置のカスタマイズ方法。
【請求項２】
ユーザアプリケーションプログラムを実行するアプリケーションプログラム実行部と、
サーボモータに単位時間あたりの移動量を発生させると共に前記サーボモータの位置情報を現在位置に変換する位置指令作成管理部と、
位置ループ、速度ループを含み前記サーボモータを制御するサーボ制御部と、
アラームを処理するアラーム処理部とを備え、
前記位置指令作成管理部と前記サーボ制御部と前記アラーム処理部のそれぞれにユーザが作成するユーザ関数を組み込むことができる数値制御装置において、
システムソフトウエアで実現されている機能の関数単位で前記システムソフトウエアの処理に代えて前記ユーザが作成したユーザ関数を有効とするユーザ関数選択パラメータを備え、
該ユーザ関数選択パラメータの値により前記システムソフトウエアの処理に代えて前記ユーザ関数を実行するソフトウエア実行手段を備えたことを特徴とする数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザが作成するユーザ関数を組み込むことのできる数値制御装置のカスタマイズ方法および数値制御装置に関する。
【背景技術】
【０００２】
図６は、従来の数値制御装置の構成を示すブロック図である。６１は数値制御装置、６２はサーボモータの動作指令が記述されたＮＣ加工プログラム、６３はユーザが作成するユーザアプリケーションプログラムであり、６４はユーザアプリケーションプログラムを実行するアプリケーションプログラム実行部である。６５はＮＣプログラムに指令された移動速度と移動量を解析し、サーボモータに単位時間あたりの移動量を発生させると共に、サーボモータの位置情報を現在位置に変換する位置指令作成管理部である。６６は位置ループ、速度ループを含みサーボモータを制御するサーボ制御部であり、６７はサーボモータである。６８はアラームを処理するアラーム処理部である。７１、７２は位置指令作成管理部６５に、７３、７４はサーボ制御部６６に、７５、７６はアラーム処理部６８に埋め込まれたユーザ関数である。（例えば特許文献１参照）
【０００３】
以下に各部の処理の概要を示す。アプリケーションプログラム実行部６４は、ユーザアプリケーションプログラム６３に記述されたＮＣプログラム解析機能を実行すると、ＮＣ加工プログラム６２を読み込み解析し、サーボモータ６７を動作させる指令を作成し、位置指令作成管理部６５に出力する。位置指令作成管理部６５では、その指令を解析し、位置指令を作成する。また、サーボモータ６７の位置情報を現在位置に変換し、その情報をアプリケーションプログラム実行部６４に出力する。位置指令作成管理部６５により作成された単位時間あたりの移動量はサーボ制御部６６に出力される。サーボ制御部６６は、その単位時間あたりの移動量により、サーボモータ６７を駆動する。サーボモータ６７の位置情報は位置指令作成管理部６５でアプリケーションプログラムが表示できる現在位置のデータに変換され、アプリケーションプログラム実行部６４に出力される。アプリケーションプログラム実行部６４では、ユーザアプリケーションプログラム６３に記述された現在位置表示機能を実行することにより、現在位置表示を行う。また、何らかのアラームが発生した場合、アラーム処理部６８により、アラーム内容の加工、分析が行われ、アプリケーションプログラム実行部６４に出力される。アプリケーションプログラム実行部６４では、ユーザアプリケーションプログラム６３に記述されたアラーム機能を実行することにより、アラーム表示、サーボモータの停止処理等を行う。このように、ユーザのアプリケーションの中で、ＮＣ加工プログラムを解析する処理や各種データを表示する処理は、位置指令作成管理部６５やアラーム処理部６８とインターフェイスをとりながら、アプリケーションプログラム実行部６４で実行される。しかし、システムの基本部で処理するような一部のアラーム処理や、位置データを監視しながらする必要のあるピッチエラー補正等の処理は、処理するタイミングの関係でアプリケーションプログラム実行部６４では実行できない。そのため、各処理部にユーザ関数という形で処理するように、あらかじめユーザが処理を追加したいであろうというタイミングに、処理内容を記載していない無処理のユーザ関数（７１〜７６）を埋め込んである。図６では、ユーザ関数（７１〜７６）は各処理部に２ヶ例示してあるが、２ヶに限定されるものではない。
【０００４】
図７は、従来の数値制御装置が、ユーザ関数を含む１つの機能Ａを実行するときのフローである。これは、例えば図６の位置指令作成管理部６５を修正するということを想定したときのフローチャートである。この例では、処理はシステム処理１、システム処理２、システム処理３の３つの関数で構成されている。ここで、システム処理１〜３は、システムソフトウエアで実現されている。システムソフトウエアとは、リアルタイム性があったり、ハードウエアやＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）に依存していたりするシステムの根幹となるソフトウエアであり、一般的にはユーザでは修正は行えない。また、この例では、ユーザ関数はシステム処理１の直前と、システム処理３の直前で実行するものがあらかじめ準備されていて、それぞれをユーザ関数１、ユーザ関数２とする。
【０００５】
まず、ステップＳＴ７１で、機能Ａが有効かどうかを、機能選択パラメータでチェックし、有効でない場合は処理を終了する。有効な場合、ステップＳＴ７２で、ユーザ関数１が有効かどうかをユーザ関数実行パラメータでチェックする。もし有効なら、システム処理１の直前で、ユーザ関数１を実行する（ステップＳＴ７３）。ステップＳＴ７４でシステム処理１を実行し、ステップＳＴ７５でシステム処理２を実行する。そして、ステップＳＴ７６でユーザ関数２が有効かどうかをユーザ関数実行パラメータでチェックする。もし有効なら、システム処理３の直前でユーザ関数２を実行する（ステップＳＴ７７）。その後ステップＳＴ７８でシステム処理３を実行する。このように、従来の数値制御装置のカスタマイズ方法では、数値制御装置メーカから見てユーザが望むであろうと想定される場所にユーザ関数が起動できるように埋め込まれている。さらに、その関数を実行するかどうかのパラメータを持っており、実行するように選択されているユーザ関数のみが起動される仕組みとなっている。
【０００６】
あらかじめ埋め込まれているユーザ関数を使用する為の入出力とユーザ関数内で使用できるＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）は公開されており、ユーザは、実行したいタイミングのユーザ関数を、仕様書に沿って、公開されたＡＰＩを使用しながら独自処理を記述し、機能が追加されたユーザ専用の実行モジュールを作成できる。
【０００７】
図８は従来のシステム処理の概念図である。８２は１つの機能を実現するときのソフトウエアのメインとなるメインプログラムであり、ここからシステム処理１（８３）〜システム処理３（８５）が順次呼び出されて実行していく。各システム処理で使用するデータは一部はメインプログラム８２から引数として渡されるが、一部はシステム処理１（８３）〜システム処理３（８５）で共通にアクセスできるデータ領域であるグローバル変数領域８１にあり、そのデータは各処理の中から直接アクセスしている。このため、各システム処理のソフトウエアがグローバル変数のアドレスに依存するため独立性が無くなる。すなわち、あるシステム処理に変更が無くとも、他のシステム処理で使用するグローバル変数に増減があったりした場合、グローバル変数のアドレスがずれることになり、再度コンパイル、リンクを行う必要がある。
【０００８】
図９は、従来の数値制御装置のユーザ関数選択手段のブロック図である。これは、図６の位置指令作成管理部６５が３つのシステム処理と２つの関数で構成されている場合の例で、システム処理１〜３（９２〜９４）、ユーザ関数１〜２（９７〜９８）は共にソフトウエア実行手段９６で実行される。ソフトウエア実行手段９６は数値制御装置６１内にあり（図示せず）、位置指令作成管理部６５、サーボ制御部６６、アラーム処理部６７のソフトウエアを実行する。また、このブロック図では、ソフトウエア実行手段は図の上部に入力されたものから順に実行していくことを示しており、ユーザ関数１、システム処理１、システム処理２の順に実行していく。システム処理１〜３は無条件に実行されるが、ユーザ関数１〜２はユーザ関数実行パラメータ９５の値により実行するかどうかが決定される。
【０００９】
このように従来の数値制御装置では、あらかじめ準備されたユーザ関数である程度のユーザ処理は実現できるが、準備されているユーザ関数のタイミングと異なるタイミングで実行したいユーザ処理が発生した場合は、数値制御装置メーカへ依頼し、ユーザ関数の追加をしてもらう必要がある。例えば、システムソフト内のサーボモータの減速処理開始と同時に何か処理したいような場合には、そのタイミングで起動されるユーザ関数が準備されていないため、ユーザ関数で処理することはできない。
【００１０】
例えば図７の場合、機能Ａを構成する処理はシステム処理１、２、３の３つに分類されているが、ユーザは機能Ａのシステム処理１のみを変更すれば満足できる場合でも、システムソフトウエアの一部を変更してレベルアップできないため対応できない。
【特許文献１】特開２００２−１３２３１６号公報（第５−８頁、第３図）
【発明の開示】
【発明が解決しようとする課題】
【００１１】
従来の数値制御装置では、システムソフトウエアの機能の一部に変更の必要性が生じた場合には、ユーザはその都度数値制御装置メーカに処理変更の依頼を行なわなければならず、簡単に変更することができない。
そこで、本発明は数値制御装置のシステムソフトウエアの一部をユーザが独自に簡単に変更することができる数値制御装置のカスタマイズ方法および数値制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記問題を解決するため、本発明の数値制御装置のカスタマイズ方法は、ユーザが作成するユーザ関数を組み込むことができる数値制御装置のカスタマイズ方法において、システムソフトウエアで実現されている機能の関数単位で前記システムソフトウエアの処理に代えて前記ユーザが作成したユーザ関数を有効とするユーザ関数選択パラメータを備え、該ユーザ関数選択パラメータにより前記ユーザ関数が有効かどうかを判別し、判別した結果前記ユーザ関数が有効でなければ前期システムソフトウエアの処理を実行し、判別した結果前期ユーザ関数が有効であれば前記システムソフトウエアの処理に代えて前記ユーザ関数を実行することを特徴としている。
【００１３】
また、本発明の数値制御装置は、ユーザアプリケーションプログラムを実行するアプリケーションプログラム実行部と、サーボモータに単位時間あたりの移動量を発生させると共に前記サーボモータの位置情報を現在位置に変換する位置指令作成管理部と、位置ループ、速度ループを含み前記サーボモータを制御するサーボ制御部と、アラームを処理するアラーム処理部とを備え、前記位置指令作成管理部と前記サーボ制御部と前記アラーム処理部のそれぞれにユーザが作成するユーザ関数を組み込むことができる数値制御装置において、システムソフトウエアで実現されている機能の関数単位で前記システムソフトウエアの処理に代えて前記ユーザが作成したユーザ関数を有効とするユーザ関数選択パラメータを備え、該ユーザ関数選択パラメータの値により前記システムソフトウエアの処理に代えて前記ユーザ関数を実行するソフトウエア実行手段を備えたことを特徴としている。このようになっているため、システムソフトウエアの一部分をユーザが簡単に変更ができるのである。
【発明の効果】
【００１４】
本発明によれば、システムソフトウエアの各関数の呼び出し先をユーザ処理にするようにユーザ関数選択パラメータにより選択できるようにしたため、システムソフトウエアの処理の一部をユーザ独自の関数へ代えることが可能になる。従って、ユーザによる数値制御装置のシステムソフトウエアの一部変更が可能となるため、ユーザ独自の数値制御装置のソフトウエアを簡単に自由に構築できる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の方法の具体的実施例について、図に基づいて説明する。
【実施例１】
【００１６】
図１は本発明の実施例で、１つの機能を実行するときのフローである。機能Ａを構成するそれぞれのシステム処理１〜３は、図４に示すユーザ関数選択パラメータにより、システム処理に代えてユーザが作成したユーザ関数を選択できることを示している。
【００１７】
まずステップＳＴ１で機能Ａが有効かどうかを機能選択パラメータでチェックし、有効でない場合は処理を終了する。有効な場合、ステップＳＴ２で、システム処理１に代わるユーザ関数１が有効かどうかをユーザ関数選択パラメータによりチェックする。もし有効な場合、システム処理１に代わりユーザ関数１が起動される（ステップＳＴ４）。有効でない場合、システム処理１が起動される（ステップＳＴ３）。そしてステップＳＴ５でシステム処理２に代わるユーザ関数２が有効かどうかチェックする。もし有効な場合、システム処理２に代わりユーザ関数２が起動される（ステップＳＴ７）。同様にステップＳＴ８〜ステップＳＴ１０で、システム処理３かユーザ関数３かの選択を行う。
【００１８】
図４はシステムソフトウエアの各関数の処理対象を決定するためのユーザ関数選択パラメータの構成である。ユーザ関数選択パラメータは、数値制御装置のメモリ内に存在し、ユーザ関数１〜３が有効かどうかを定義する。図４の構成の例では、システム処理１〜３のそれぞれの処理を、ユーザ関数と、標準のシステム処理のどちらで実行するかを選択できることを表している。
【００１９】
システム処理１〜３の各処理は、ユーザが作成した処理に置き換えできるように、機能を構成するモジュール毎にソフトウエアを開放できるように、関数への全ての処理依頼を引数にまとめることにより、グローバルな変数を使用せず、モジュールの独立性を高くしている。以下に図に基づき説明する。
【００２０】
図２は本発明のシステム処理の概念図である。メインプログラム２２はシステム処理１（２３）〜システム処理３（２５）を呼び出すとき図にあるようにグローバル変数に相当するものを引数に置き直し、システム処理を呼び出す。そして処理を抜けたところで、再度グローバル変数にコピーする。こうすることで、各システム処理の中はグローバル変数がなくなり、他のシステム処理の影響を受けることなくシステム処理単位でユーザ関数に置き換えられる。
【００２１】
このシステムで、ユーザが独自のユーザ関数を作成して新しいシステムを構築したい場合、標準の機能Ａの処理１、２、３の必要なもののユーザ関数選択パラメータを有効にし、機能Ａを構成する一部の処理を、ユーザ関数として公開された入出力に沿って、開放されているＡＰＩを使用しソフトウエアを作成する。
【００２２】
図３は、そのユーザ関数を開発して数値制御装置に組み込む為の“開発の流れ”を示すフローである。
ユーザはまずステップＳＴ３１でＣ言語等のプログラム言語によって処理を記述したユーザ関数プログラムを作成する。次にステップＳＴ３２でそのプログラムをコンパイルする。そしてステップＳＴ３３で数値制御装置のシステムソフトウアに含まれる位置指令作成部、位置管理部、サーボ制御部、アラーム処理部の各処理の基本部を提供するライブラリ３１とリンクし、ユーザ実行モジュールを作成する。ステップＳＴ３４で、システムソフトウエアに含まれるツールを使用して数値制御装置へユーザ実行モジュールをダウンロードする。ステップＳＴ３５で、システムソフトウエアに含まれるデバッグツールを使い、モニタリングとデバッグを行う。デバッグ終了後のユーザ関数プログラムは、実行を開始すると、ユーザ関数選択パラメータに沿って、標準のシステム処理の代わりとして自動的に呼び出される。
【００２３】
図５は本発明の数値制御装置のユーザ関数選択手段のブロック図である。ソフトウエア実行手段５６は、ユーザ関数選択パラメータにより、システム処理かユーザ関数かのどちらかを選択して実行する。
このように、システムソフトウエアの各関数の呼び出し先をユーザ処理にするようにユーザ関数選択パラメータにより選択できるようにしたため、システムソフトの処理の一部をユーザ独自の関数へ代えることが可能になるのである。
【図面の簡単な説明】
【００２４】
【図１】本発明の数値制御装置の１つの機能実行時のフロー
【図２】本発明のシステム処理の概念図
【図３】本発明の数値制御装置のユーザ関数の開発のフロー
【図４】本発明の数値制御装置のユーザ関数選択パラメータの構成を示す図
【図５】本発明の数値制御装置のユーザ関数選択手段のブロック図
【図６】従来の数値制御装置のブロック図
【図７】従来の数値制御装置の１つの機能実行時のフロー
【図８】従来のシステム処理の概念図
【図９】従来の数値制御装置のユーザ関数選択手段のブロック図
【符号の説明】
【００２５】
１  ユーザ関数選択パラメータ
２  機能選択パラメータ
３  ユーザ関数実行パラメータ
２１、８１  グローバル変数格納領域
２２、８２  システムプログラム
２３、５２、８３、９２  システム処理１
２４、５３、８４、９３  システム処理２
２５、５４、８５、９４  システム処理３
３１  ライブラリ
５１、９１  ユーザ関数選択手段
６１  数値制御装置
５５  ユーザ関数選択パラメータ
５６、９６  ソフトウエア実行手段
５７、７１、９７  ユーザ関数１
５８、７２、９８  ユーザ関数２
５９、７３  ユーザ関数３
６２  ＮＣ加工プログラム
６３  ユーザアプリケーションプログラム
６４  アプリケーションプログラム実行部
６５  位置指令作成管理部
６６  サーボ制御部
６７  サーボモータ
６８  アラーム処理部
７４  ユーザ関数４
７５  ユーザ関数５
７６  ユーザ関数６
９５  ユーザ関数実行パラメータ
【図１】
2005234639.tif 000003
【図２】
2005234639.tif 000004
【図３】
2005234639.tif 000005
【図４】
2005234639.tif 000006
【図５】
2005234639.tif 000007
【図６】
2005234639.tif 000008
【図７】
2005234639.tif 000009
【図８】
2005234639.tif 000010
【図９】
2005234639.tif 000011