(57)【特許請求の範囲】
【請求項１】
制御対象に対して基本機能を実行するための基本機能処理がコンパイルされた実行オブジェクトである基本機能処理オブジェクトと、前記制御対象の制御に用いられる加工プログラムとを記憶する第１の記憶部と、
前記制御対象に対して付加機能を実行する付加機能処理がコンパイルされた実行オブジェクトである付加機能処理オブジェクト、および前記基本機能処理オブジェクトをロードし、前記基本機能処理オブジェクトに対応する前記基本機能処理および前記付加機能処理オブジェクトに対応する前記付加機能処理を第２の記憶部上に展開するプロセッサと、
を備え、
前記基本機能処理オブジェクトは、前記加工プログラムを読み出して解析し、解析結果を前記制御対象への指令として出力するオブジェクトであり、
前記付加機能処理オブジェクトは、前記基本機能処理オブジェクトを変更または再コンパイルすることなく付加機能を組み込むことが可能なオブジェクトであり、
前記基本機能処理オブジェクトは、前記付加機能処理を識別する識別子を含み、
前記プロセッサは、前記加工プログラムを前記第２の記憶部上に展開し、前記加工プログラムの実行中において前記識別子に対応する処理を実行する指令があると、前記識別子に対応する前記第２の記憶部上の位置にアクセスし、前記加工プログラムの実行中に前記識別子に対応する前記付加機能処理を実行する、
ことを特徴とする数値制御装置。
【請求項２】
前記付加機能処理オブジェクトは、前記数値制御装置の外部装置で記憶されており、
前記プロセッサは、前記外部装置から前記付加機能処理オブジェクトを読み出して前記第２の記憶部上に展開する、
ことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記第１の記憶部は、複数の前記付加機能処理オブジェクトを記憶し、
前記プロセッサは、ユーザによって選択された前記付加機能処理オブジェクトを前記第１の記憶部からロードする、
ことを特徴とする請求項１または２に記載の数値制御装置。
【請求項４】
前記制御対象は、被加工物を加工する加工機と、前記加工機の動作を制御するサーボモータと、を含み、
前記付加機能は、前記加工機または前記サーボモータに対する付加機能である、
ことを特徴とする請求項１から３の何れか１つに記載の数値制御装置。
【請求項５】
前記制御対象は、ロボットと、前記ロボットの動作を制御するサーボモータと、を含み、
前記付加機能は、前記ロボットまたは前記サーボモータに対する付加機能である、
ことを特徴とする請求項１から３の何れか１つに記載の数値制御装置。
【請求項６】
前記付加機能処理は、前記制御対象の機械構造に応じた座標変換処理である、
ことを特徴とする請求項１から５の何れか１つに記載の数値制御装置。
【請求項７】
前記制御対象は、工作機械であり、
前記付加機能処理オブジェクトは、前記加工プログラムがプログラミングされた座標系での動作を前記工作機械の動作に変換する座標変換処理である、
ことを特徴とする請求項６に記載の数値制御装置。
【請求項８】
前記付加機能処理は、前記加工プログラムのフォーマットに応じたプログラム解析処理である、
ことを特徴とする請求項１から７の何れか１つに記載の数値制御装置。
【請求項９】
前記基本機能処理は、前記加工プログラムのフォーマットを解析する解析処理であり、
前記付加機能処理は、前記基本機能処理オブジェクトによって解析されたフォーマットに応じたプログラム解析処理である、
ことを特徴とする請求項８に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械の動作を制御する数値制御装置に関する。
【背景技術】
【０００２】
産業用ロボットといった機械は、機械メーカで作製され、機械の動作を制御する数値制御装置は、数値制御装置メーカで作製される。機械の機能拡張を行う場合には数値制御装置に対しても機能拡張の設定を行う必要があるので、機械メーカは、機械の機能拡張を行う場合には、数値制御装置メーカに対して機能拡張を依頼している。【０００３】
ところが、機械メーカとしては、数値制御装置に対して独自に機能拡張の設定を行いたい場合がある。例えば、機械メーカは、数値制御装置で独自のデータ変換を行いたい場合がある。特許文献１の制御装置は、画像処理装置から受信した位置データを、アスキーコードから制御装置が扱う２進符号に変換し、制御装置から画像処理装置に送信する位置データ要求信号を、２進符号からアスキーコードに変換している。これにより、特許文献１の制御装置は、ソフトウェアを変更することなく、データ形式の異なる外部装置との間でデータ授受を行うことを可能としている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１８１５２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１の技術では、画像処理装置と制御装置とがデータ形式についての情報を共有していなければ、データ授受を行うことができない。このため、機械メーカは、数値制御装置の機能を選択して処理内容をカスタマイズすることができなかった。【０００６】
本発明は、上記に鑑みてなされたものであって、機械メーカが数値制御装置の機能を選択し、処理内容をカスタマイズすることができる数値制御装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明の数値制御装置は、制御対象に対して基本機能を実行するための基本機能処理がコンパイルされた実行オブジェクトである基本機能処理オブジェクトと、制御対象の制御に用いられる加工プログラムとを記憶する第１の記憶部を備えている。また、本発明の数値制御装置は、制御対象に対して付加機能を実行する付加機能処理がコンパイルされた実行オブジェクトである付加機能処理オブジェクト、および基本機能処理オブジェクトをロードし、基本機能処理オブジェクトに対応する基本機能処理および付加機能処理オブジェクトに対応する付加機能処理を第２の記憶部上に展開するプロセッサを備えている。基本機能処理オブジェクトは、加工プログラムを読み出して解析し、解析結果を制御対象への指令として出力するオブジェクトであり、付加機能処理オブジェクトは、基本機能処理オブジェクトを変更または再コンパイルすることなく付加機能を組み込むことが可能なオブジェクトである。基本機能処理オブジェクトは、付加機能処理を識別する識別子を含んでいる。プロセッサは、加工プログラムを第２の記憶部上に展開し、加工プログラムの実行中において識別子に対応する処理を実行する指令があると、識別子に対応する第２の記憶部上の位置にアクセスし、加工プログラムの実行中に識別子に対応する付加機能処理を実行する。
【発明の効果】
【０００８】
本発明にかかる数値制御装置は、機械メーカが数値制御装置の機能を選択し、処理内容をカスタマイズすることができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１にかかる数値制御装置の構成を示す図
【図２】実施の形態１にかかる数値制御装置の基本機能処理部の詳細構成を示す図
【図３】実施の形態１にかかる数値制御装置の動作手順を示すフローチャート
【図４】実施の形態１にかかる数値制御装置による、数値制御の初期化処理手順を示すフローチャート
【図５】実施の形態２にかかる数値制御装置の構成を示す図
【図６】実施の形態３にかかる数値制御装置の構成を示す図
【図７】実施の形態４にかかる数値制御装置の詳細構成を示す図
【発明を実施するための形態】
【００１０】
以下に、本発明の実施の形態にかかる数値制御装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１１】
実施の形態１．
［装置構成］
図１は、実施の形態１にかかる数値制御装置の構成を示す図である。数値制御装置１Ａは、第１の記憶部である記憶部２Ａと、第２の記憶部であるＲＡＭ（Random  Access  Memory）３と、プロセッサ２０とを備えている。
【００１２】
記憶部２Ａは、数値制御装置１Ａに電力が供給されていなくても内部で記憶されているデータを保持できる不揮発性メモリである。記憶部２Ａは、数値制御装置１Ａに電力が供給された後に、内部に記憶されたデータをプロセッサ２０が読み出すことが可能となっていればよく、必ずしもＲＡＭ３が取り付けられた基板と同じ基板上に取り付けられている必要は無い。記憶部２Ａは、基本機能処理オブジェクト５と、付加機能処理オブジェクト６とを記憶している。なお、記憶部２Ａは、制御対象７の制御に用いられる加工プログラム（後述する加工プログラム１０６）も記憶している。
【００１３】
基本機能処理オブジェクト５は、数値制御の基本機能を処理するオブジェクトである。基本機能処理オブジェクト５は、加工プログラム１０６を読み出して解析し、解析結果を制御対象７への指令として出力するためのオブジェクトである。付加機能処理オブジェクト６は、数値制御の付加機能を処理するオブジェクトである。本実施の形態の付加機能は、加工プログラム１０６に規定されていない機能である。本実施の形態の基本機能は、加工プログラムを解析する機能、軸を動かす機能等であり、例えば、以下の（１）から（５）の処理等がある。
（１）解析結果からなめらかな動作を実現する補間処理
（２）制御対象への出力処理
（３）ヒューマンインターフェースを実現する画面処理
（４）外部機器との通信処理
（５）ラダープログラムを実行するＰＬＣ（Programmable  Logic  Controller）処理
上述した（４）の外部機器の例は、ＳＤ（エスディー）カード、Ethernet（登録商標）機器である。付加機能処理オブジェクト６の例は、制御対象７の機械構造に応じた座標変換処理である。基本機能処理オブジェクト５は、数値制御装置メーカで作成され、付加機能処理オブジェクト６は、機械メーカで作成される。
【００１４】
機械メーカは、付加機能処理オブジェクト６に、所望の付加機能と、この付加機能が格納されるＲＡＭ３上のアドレスと、この付加機能に対応する識別子（後述する識別子１０４）とを対応付けて格納しおく。機械メーカの例は、制御対象７の製造メーカである。付加機能処理をカスタマイズできるのは機械メーカである。機械メーカは、加工プログラムを作ることもあるが、制御対象７といった機械の動作確認時など限られる。エンドユーザは、加工プログラムを作成し、付加機能を使用する。なお、付加機能処理をカスタマイズするのは、機械メーカに限らず、数値制御装置１Ａが制御する装置等を作るメーカでもよい。
【００１５】
また、数値制御装置１Ａは、加工プログラム１０６の実行中に識別子１０４に対応する付加機能を実行する。
【００１６】
ＲＡＭ３は、数値制御装置１Ａが制御対象７に対する制御処理を実行する際にプロセッサ２０がデータを格納する領域である。ＲＡＭ３へは、プロセッサ２０によって種々のデータが格納される。
【００１７】
制御対象７の例は、１つ以上の軸と、これらの軸を駆動するアクチュエータと、を有する装置（機械）である。例えば、制御対象７が工作機械の場合、制御対象７は、工具と工作物との相対位置を変化させる直進軸または回転軸を有している。この直進軸または回転軸を駆動するアクチュエータは、サーボモータである。また、制御対象７が工作機械の場合、制御対象７は、工具または工作物を回転させる主軸を有している。この主軸を回転させる主軸モータがアクチュエータである。
【００１８】
また、制御対象７は、切削加工を行う工作機械以外の装置であってもよい。例えば、制御対象７は、被加工物を加工する加工機と、加工機の動作を制御するサーボモータとを含んでいてもよい。制御対象７は、レーザ加工機、ウォータージェット加工機、放電加工機、金属積層造形（ＡＭ：Additive  Manufacturing）（アディティブマニュファクチャリング）加工機、または木工加工機などであってもよい。
【００１９】
また、制御対象７は、工作機械ではなくロボットであってもよい。例えば、制御対象７は、ロボットと、ロボットの動作を制御するサーボモータと、を含んでいてもよい。制御対象７が、産業用ロボットの場合、制御対象７は、１つ以上の関節軸と、関節軸の各関節角度を変化させるアクチュエータであるサーボモータとを有している。なお、制御対象７が産業用ロボットである場合、産業用ロボットの種類は問わず、例えば垂直多関節ロボット、水平多関節ロボット、パラレルリンクロボットなどであってもよい。
【００２０】
プロセッサ２０は、基本機能処理オブジェクト５および付加機能処理オブジェクト６をＲＡＭ３上に展開するローダ部４の機能と、数値制御の初期化処理機能とを有している。
【００２１】
ローダ部４は、数値制御装置１Ａに電源が供給されると、記憶部２Ａに記憶されている基本機能処理オブジェクト５および付加機能処理オブジェクト６を読み出し、ＲＡＭ３上に基本機能処理部１００および付加機能処理部１０５をそれぞれ展開する。
【００２２】
基本機能処理部１００は、基本機能処理オブジェクト５がＲＡＭ３上に展開されたデータであり、数値制御の基本機能が規定されている。付加機能処理部１０５は、付加機能処理オブジェクト６がＲＡＭ３上に展開されたデータであり、数値制御の付加機能が規定されている。
【００２３】
このように、数値制御装置１Ａは、プロセッサ２０およびメモリで構成されている。すなわち、数値制御装置１Ａを構成する構成要素の一部又は全部の機能は、プロセッサ２０およびメモリにより実現することができる。
【００２４】
プロセッサ２０の例は、ＣＰＵ（Central  Processing  Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、ＤＳＰ（Digital  Signal  Processor）ともいう）またはシステムＬＳＩ（Large  Scale  Integration）である。
【００２５】
数値制御装置１Ａの一部の機能は、記憶部２Ａで記憶されている、数値制御装置１Ａの動作を実行するための加工プログラム１０６、基本機能処理オブジェクト５、および付加機能処理オブジェクト６を、プロセッサ２０が読み出して実行することにより実現される。加工プログラム１０６、基本機能処理オブジェクト５、および付加機能処理オブジェクト６は、動作処理の手順または方法をコンピュータに実行させるものであるともいえる。
【００２６】
なお、数値制御装置１Ａの機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
【００２７】
図２は、実施の形態１にかかる数値制御装置の基本機能処理部の詳細構成を示す図である。基本機能処理オブジェクト５は、数値制御装置１Ａの基本機能を実現するための処理である基本機能処理部１００がプログラミングされ、コンパイルされることによって生成された実行可能オブジェクトである。
【００２８】
基本機能処理部１００は、指令生成部１０１と、指令出力部１０２とを備えている。ローダ部４は、基本機能処理オブジェクト５および付加機能処理オブジェクト６をＲＡＭ３にロードする。
【００２９】
基本機能処理部１００には、付加機能処理オブジェクト６がＲＡＭ３上に展開された後で実行される処理として、グローバルシンボル名で識別子１０４を検索する処理と、付加機能処理部１０５のＲＡＭ３上のアドレスを対応する識別子１０４にセットする処理とが、プログラミングされている。また、基本機能処理部１００には、付加機能処理部１０５を実行させるソースコード上の箇所に、付加機能の処理内容に対応した識別子１０４と、識別子１０４にセットされたＲＡＭ３上のアドレスに記載された処理を実行する処理と、がプログラミングされている。
【００３０】
指令生成部１０１は、加工プログラム１０６の文字列を解析し、制御対象７に対する指示内容を抽出する。指令生成部１０１は、制御対象７に対する指示内容に基づいて、制御対象７への各種指令を生成する。ここで各種指令とは、制御対象７の動作を制御するための指令である。各種指令の例は、サーボモータに対する指令、サーボモータを制御するサーボアンプに対する電流指令、スイッチまたはランプなどの状態を変化させる出力信号などである。指令出力部１０２は、指令生成部１０１が生成した各種指令を制御対象７に出力する。
【００３１】
識別子１０４は、付加機能を識別可能なデータである。すなわち、識別子１０４は、付加機能処理部１０５の処理内容毎に処理内容と１対１で対応している。数値制御装置メーカは、基本機能処理部１００の各処理に識別子１０４を対応付けしておく。識別子１０４には、付加機能処理部１０５がＲＡＭ３上に展開された際の展開領域を示すアドレスが設定される。例えば、Ｃ言語の場合、付加機能処理部１０５が１つの関数であれば、識別子１０４には関数ポインタが設定される。関数ポインタは、ＲＡＭ３上のアドレスを示す情報である。
【００３２】
また、付加機能処理部１０５が複数の関数からなる場合、識別子１０４は、複数の関数ポインタを格納するテーブルといった配列のインデックスとして実装されてもよい。インデックスは、テーブルに配列された関数ポインタの位置を示す情報であり、関数ポインタは、ＲＡＭ３上に配置された関数の位置を示す情報である。なお、インデックスの代わりに、複数の関数ポインタが格納されている構造体における、関数ポインタの配置位置が用いられてもよい。
【００３３】
識別子１０４が「１」などの正数値である場合、何れの関数を呼び出すかは基本機能処理部１００に設定されている。例えば、付加機能処理部１０５が１つの関数である場合、識別子１０４は１つの関数ポインタに対応付けされ、基本機能処理部１００は、関数ポインタに対応する１つの関数を呼び出す。
【００３４】
また、付加機能処理部１０５が複数の関数を含んでいる場合、識別子１０４は１つのテーブルポインタに対応付けされ、基本機能処理部１００は、テーブルポインタに対応するテーブルを呼び出す。この場合、テーブルの要素には、複数の関数を指す関数ポインタが含まれている。すなわち、付加機能処理部１０５が複数の関数を含んでいる場合、基本機能処理部１００は、識別子１０４に対応するテーブルポインタと、テーブル内の関数ポインタ（インデックス）とに基づいて、複数の関数を呼び出す。
【００３５】
付加機能の関数などは、数値制御装置１Ａが起動した際に、ＲＡＭ３上に付加機能処理部１０５としてローディング可能な形式で機械メーカが作成しておく。関数が複数の場合、機械メーカは、テーブルと、テーブルポインタに対応する識別子と、関数と、関数に対応する関数ポインタとを作成しておく。これにより、数値制御装置１Ａが起動した際に、テーブルおよび関数がＲＡＭ３上に付加機能処理部１０５としてローディングされる。
【００３６】
付加機能処理オブジェクト６は、付加したい機能を実現するために必要な処理である付加機能処理部１０５がプログラミングされ、コンパイルされることによって生成された実行可能オブジェクトである。付加機能処理オブジェクト６では、識別子１０４に対して、識別子１０４に対応する付加機能処理部１０５のＲＡＭ３上のアドレスが定義されている。すなわち、付加機能処理オブジェクト６には、識別子１０４に対応する付加機能の、ＲＡＭ３上での格納領域（アドレス）が格納されている。
【００３７】
付加機能処理部１０５が実行する処理の例としては、制御対象７が、直進３軸（Ｘ軸、Ｙ軸、Ｚ軸）または回転２軸（Ａ軸とＢ軸、Ｂ軸とＣ軸、またはＣ軸とＡ軸）とは異なる特殊な構造を持つ工作機械である場合の座標変換処理が挙げられる。例えば、制御対象７がパラレルリンク機構で構成された主軸を持つ工作機械である場合、付加機能処理部１０５が実行する処理の例は、加工プログラム１０６がプログラミングされた座標系での動作をパラレルリンク機構の各軸の動作に変換する座標変換処理である。
【００３８】
なお、制御対象７は、パンタグラフ機構、クランクスライダ機構といったリンク機構を有する工作機械であってもよい。付加機能処理部１０５が上述のような座標変換を実行する場合、識別子１０４は、基本機能処理部１００においてモータ各軸の機械値を工具先端点に変換する順運動学計算の処理、またはこの逆の処理である逆運動学計算の処理を実行する箇所に設定されている。基本機能処理部１００への識別子１０４の設定は数値制御装置メーカが行う。数値制御装置メーカは、設定した識別子１０４に対応する、付加機能の内容および数値制御装置１Ａのインターフェースなどの仕様項目を、リスト化して公開する。数値制御装置１Ａのインターフェースは、数値制御装置１Ａへ入力するデータ項目および数値制御装置１Ａからの出力されるデータ項目を含んでいる。
【００３９】
機械メーカは、公開されたリストを参照し、所望の機能の仕様に合わせて、付加機能処理部１０５を作成する。例えば、付加機能が座標変換の場合、順運動学計算に対応する識別子１０４における仕様項目には、入力がモータ各軸の機械値であり、出力が工具先端点の３次元位置および工具の姿勢であり、機械メーカが入力と出力との間をつなぐ処理を作成すること、といった内容が含まれる。入力と出力との間をつなぐ処理の例は、関数を用いた演算処理である。すなわち、機械メーカが、入力と出力との間をつなぐための関数を設定する。これにより、機械メーカは、所望の関数を独自に設定することが可能となる。
【００４０】
このように、数値制御装置メーカは、識別子１０４のリストを公開し、各識別子１０４がどのようなタイプおよび付加機能処理と対応付けられるよう設けられたものかを機械メーカに説明する。機械メーカは、追加したい付加機能の内容に応じて、適切な識別子１０４を選び、識別子１０４と付加機能処理のアドレス（関数ポインタなど）とを対応付ける。なお、付加機能処理を実行させるために加工プログラム１０６に何らかの手を加えることは必須ではない。数値制御装置１Ａは、付加機能処理を実行するか否かを、付加機能処理オブジェクト６をロードしたか否か、または識別子１０４を発見したか否かに基づいて判定する。すなわち、全く同一の加工プログラム１０６であっても、付加機能処理オブジェクト６の有無で動作が変わる。
【００４１】
付加機能処理部１０５が実行する処理のその他の例としては、制御対象７が切削加工を行う工作機械以外の場合、例えばレーザ加工機、ウォータージェット加工機、放電加工機、ＡＭ加工機、木工加工機などの場合に、それぞれの加工手法に応じて必要となる制御機能を実現する処理が挙げられる。また、付加機能処理部１０５が実行する処理のその他の例としては、機械の調整を目的とした動作を実現する処理、機械の試験を目的とした動作を実現する処理、および機械の保守点検を目的とした動作を実現する処理、データ収集機能を実現する処理がある。
【００４２】
制御対象７がレーザ加工機である場合、付加機能処理部１０５が実行する処理の例は、レーザ光の制御を行う光学駆動装置の制御を行う処理である。また、制御対象７が工作機械ではなく産業用ロボットである場合、付加機能処理部１０５が実行する処理の例は、加工プログラム１０６によって指令された、産業用ロボットの手先の位置および角度を変化させる動作を、産業用ロボットの各関節軸の動作に変換するための座標変換処理である。産業用ロボットは、垂直多関節ロボット、水平多関節ロボット、パラレルリンクロボットなどの何れの構造のロボットであってもよい。付加機能処理部１０５は、処理結果を指令生成部１０１または指令出力部１０２に送る。
【００４３】
加工プログラム１０６は、制御対象７に実行させたい処理内容が記述されたプログラムである。数値制御装置１Ａが、加工プログラム１０６を実行することにより、加工プログラム１０６に記述された処理が制御対象７で実行される。
【００４４】
加工プログラム１０６は、例えば一定のフォーマットに沿って文字列で記述されたデータファイルである。なお、数値制御装置１Ａは、一定のルールに沿って穴が開けられた物理的な紙テープまたはフィルムなどを、加工プログラム１０６としてデータの形で読み込んでもよい。
【００４５】
制御対象７が工作機械の場合の加工プログラム１０６のフォーマットの例としては、ＪＩＳ（Japanese  Industrial  Standards：日本工業規格）  Ｂ  ６３１５−１およびＪＩＳ  Ｂ  ６３１５−２で定められたフォーマットがある。また、制御対象７がロボットである場合の加工プログラム１０６のフォーマットの例としては、ＪＩＳ  Ｂ  ８４３９で定められたプログラム言語ＳＬＩＭがある。
【００４６】
［動作手順］
図３は、実施の形態１にかかる数値制御装置の動作手順を示すフローチャートである。数値制御装置１Ａに電源が投入されることによって、数値制御装置１Ａに電力が供給される（ステップＳ１）。数値制御装置１Ａのローダ部４は、ローダ処理を実行する。すなわち、ローダ部４は、ローダ処理として、記憶部２Ａから基本機能処理オブジェクト５および付加機能処理オブジェクト６をＲＡＭ３上に展開する（ステップＳ２）。これにより、基本機能処理部１００および付加機能処理部１０５がＲＡＭ３上に展開され、基本機能処理部１００および付加機能処理部１０５のＲＡＭ３上のアドレスが確定する。
【００４７】
この後、基本機能処理部１００による処理が開始され、プロセッサ２０が数値制御の初期化処理を行う（ステップＳ３）。ここで、初期化処理の手順について説明する。
【００４８】
図４は、実施の形態１にかかる数値制御装置による、数値制御の初期化処理手順を示すフローチャートである。プロセッサ２０は、基本機能処理部１００に設定されている識別子１０４を１つずつ検索する処理を開始する（ステップＳ１１）。基本機能処理部１００は、未検索の識別子１０４があるか否かを判定する（ステップＳ１２）。
【００４９】
未検索の識別子１０４がある場合（ステップＳ１２、Ｙｅｓ）、プロセッサ２０は、基本機能処理部１００内の未検索の識別子１０４をグローバルシンボル名で検索する（ステップＳ１３）。プロセッサ２０は、検索した識別子１０４に対応する付加機能処理（付加機能処理部１０５）がＲＡＭ３上に展開されているか否かを判定する（ステップＳ１４）。
【００５０】
また、プロセッサ２０は、付加機能処理部１０５が複数の関数からなり、且つ関数ポインタを格納する配列が用いられる場合には、その配列をグローバルシンボル名で検索し、配列の先頭から順にサーチすることによって識別子１０４に対応する関数ポインタを取得することができる。
【００５１】
プロセッサ２０は、識別子１０４の検索を、公開されているリストに記載されている全ての識別子１０４に対して行ってもよいが、予め基本機能処理部１００に対して検索対象とする識別子１０４の情報を通知することによって検索の無駄を省くこともできる。通知方法の例としては、数値制御装置１Ａに備えられたパラメータを用いて識別子１０４の情報を通知する方法、ローダ部４がローダ処理を実行する際に参照する、テキスト形式のスクリプトに識別子１０４の情報を記述する方法などがある。
【００５２】
数値制御装置１Ａに備えられたパラメータを用いて識別子１０４の情報を通知する場合、機械メーカは、用いる識別子１０４に対応するパラメータを記憶部２Ａに格納しておく。機械メーカは、例えば、第１の識別子を用いる場合には、第１の識別子に対応する第１のパラメータに「１」を設定し、第２の識別子を用いる場合には、第２の識別子に対応する第２のパラメータに「１」を設定しておく。プロセッサ２０は、付加機能処理部１０５をＲＡＭ３上に展開する際に、識別子１０４に対応するパラメータをＲＡＭ３上に格納し、ＲＡＭ３上に格納したパラメータの値に基づいて、識別子１０４の有無を判断する。
【００５３】
識別子１０４に対応する付加機能処理部１０５がＲＡＭ３上に展開されている場合（ステップＳ１４、Ｙｅｓ）、プロセッサ２０は、展開されている付加機能処理部１０５のＲＡＭ３上のアドレスを、対応する識別子１０４にセットする（ステップＳ１５）。これにより、識別子１０４に対応する付加機能処理が実行可能となる。
【００５４】
識別子１０４に対応する付加機能処理部１０５がＲＡＭ３上に展開されていない場合（ステップＳ１４、Ｎｏ）、プロセッサ２０は、何れの処理も実行しないダミー処理のＲＡＭ３上のアドレスを、対応する識別子１０４にセットする（ステップＳ１６）。
【００５５】
ステップＳ１５またはステップＳ１６の処理の後、プロセッサ２０は、ステップＳ１２に戻り、未検索の識別子１０４があるか否かを判定する。プロセッサ２０は、全ての識別子１０４を検索するまでステップＳ１２からＳ１６の処理を繰り返す。
【００５６】
全ての識別子１０４の検索が完了しており未検索の識別子１０４が無い場合（ステップＳ１２、Ｎｏ）、プロセッサ２０は、数値制御の初期化処理を終了する。なお、ＲＡＭ３上での付加機能のアドレスは、ローダ部４が、付加機能処理部１０５をＲＡＭ３上に展開する際にローダ部４が設定してもよい。この場合、初期化処理の際にプロセッサ２０が、ローダ部４によって設定された付加機能処理のアドレスを、対応する識別子１０４にセットする。
【００５７】
基本機能処理部１００の初期化処理が完了した後、すなわちステップＳ３の処理の後、プロセッサ２０は、制御対象７への指令内容が記載された加工プログラム１０６を、記憶部２Ａから読み出してＲＡＭ３に保存する（ステップＳ４）。
【００５８】
プロセッサ２０は、加工プログラム１０６を用いた制御対象７への制御開始を、基本機能処理部１００に指示する。これにより、基本機能処理部１００内の指令生成部１０１および指令出力部１０２が制御処理を開始し（ステップＳ５）、数値制御装置１Ａが、加工プログラム１０６の指令内容通りに制御対象７を制御する。
【００５９】
指令生成部１０１は、加工プログラム１０６に沿った制御処理が完了したか否かを判定する（ステップＳ６）。制御処理が完了していない場合（ステップＳ６、Ｎｏ）、指令生成部１０１が、加工プログラム１０６の指令内容を元に、制御対象７に対する指令を生成する（ステップＳ７）。指令出力部１０２は、指令生成部１０１が生成した指令を、制御対象７に対して出力する（ステップＳ８）。
【００６０】
ステップＳ７，Ｓ８では、指令生成部１０１および指令出力部１０２の処理実行時に、識別子１０４にセットされたＲＡＭ３上のアドレスの処理が実行される。すなわち、指令生成部１０１は、加工プログラム１０６の実行中に特定指令の実行を行う順番が来ると、特定指令に対応する識別子１０４を基本機能処理部１００から検索し、検索した識別子１０４に対応する付加機能をＲＡＭ３から読み出す。指令生成部１０１は、ＲＡＭ３から読み出した付加機能に対応する指令を生成し、指令出力部１０２は、生成された指令を制御対象７に出力する。このように、数値制御装置１Ａは、識別子１０４に対応する付加機能処理を実行し、制御対象７に対する指令に付加機能を反映する。
【００６１】
この後、プロセッサ２０は、ステップＳ６に戻る。そして、指令生成部１０１は、加工プログラム１０６に沿った制御処理が完了したか否かを判定する（ステップＳ６）。プロセッサ２０は、制御処理が完了するまで、ステップＳ６からＳ８の処理を繰り返す。制御処理が完了している場合（ステップＳ６、Ｙｅｓ）、プロセッサ２０は、動作処理を完了する。
【００６２】
ところで、加工機またはロボットといった機械を製造している機械メーカは、独自技術の開発またはノウハウの蓄積を通じて、他のメーカにはない機械構造または機能を備えた製品を製造し、他のメーカで製造された製品との差別化を図っている。このように、機械メーカが独自技術またはノウハウを取り入れた機械を製造する場合、数値制御装置メーカが標準で提供している機能以外に、独自にカスタマイズした機能で機能拡張を行いたい場合がある。数値制御装置に対する機能拡張はソフトウェアの変更を伴う場合があるが、これは数値制御装置メーカしか行うことができなかったので、機械メーカは数値制御装置メーカに対して機能開発の依頼を行っていた。
【００６３】
しかしながら、多くの機械メーカがそれぞれに異なった機能拡張を依頼した場合に、数値制御装置メーカは全ての依頼に対応できるとは限らない。また、依頼された機能拡張に対して機械メーカが保有する技術情報が不可欠な場合、技術情報が企業機密であれば、数値制御装置メーカと機械メーカとの間で秘密保持契約を締結するなどの付加的な作業が発生する。こうした状況のために、機械メーカによる開発が遅れることがあった。
【００６４】
本実施の形態では、基本機能処理オブジェクト５が、付加機能処理オブジェクト６で規定される付加機能処理を識別する識別子１０４を含んでいる。また、数値制御装置１Ａのプロセッサ２０は、加工プログラム１０６の実行中において識別子１０４に対応する処理を実行する指令があると、識別子１０４に対応するＲＡＭ３上の位置にアクセスし、識別子１０４に対応する付加機能処理を実行している。これにより、機械メーカといった数値制御装置１Ａのユーザは、数値制御装置メーカに対してソフトウェアの変更を依頼することなく、独自に数値制御装置１Ａの機能をカスタマイズすることができる。すなわち、機械メーカは、付加機能処理オブジェクト６に所望の付加機能処理を設定し、識別子１０４と付加機能処理のＲＡＭ３上のアドレスを結びつける処理を設定し、加工プログラム１０６で付加機能処理を実行させたい箇所に識別子１０４に対応する処理を実行させる特定指令を設定しておくことで、数値制御装置１Ａに対し所望の付加機能処理を実行させることが可能となる。このように、機械メーカは、独自にカスタマイズしたい機能を実現するソフトウェア処理（付加機能処理オブジェクト６）を作成し、数値制御装置１Ａに付加することができる。これにより、各機械メーカが独自の保有技術またはノウハウを活かした加工機またはロボットを市場に投入するスピードが加速される。例えば、機械メーカは、機械構造に関する独自技術またはノウハウを付加機能として実現する付加機能処理オブジェクト６を作成し、数値制御装置１Ａに付加することができる。
【００６５】
[実施の形態１の効果]
このように実施の形態１では、基本機能処理部１００が識別子１０４を含み、プロセッサ２０が、加工プログラム１０６の実行中において識別子１０４に対応する処理を実行する指令があると、識別子１０４に対応するＲＡＭ３上の位置にアクセスし、識別子１０４に対応する付加機能処理を実行している。識別子１０４および付加機能処理は、機械メーカによって任意に設定可能となっている。これにより、基本機能処理オブジェクト５を変更または再コンパイルすることなく、付加機能を数値制御装置１Ａに組み込むことが可能となる。
【００６６】
また、機械メーカは、数値制御装置メーカに基本機能処理オブジェクト５の変更を依頼することなく、独自に付加機能処理オブジェクト６を作成し記憶部２Ａに保存しておくことで、独自に付加機能を追加できる。すなわち、機械メーカが数値制御装置１Ａへの付加機能を独自に追加することができる。また、数値制御装置メーカは、機械メーカから付加機能の追加依頼が減るので、基本機能処理の機能拡張に開発者または費用を投入することができる。
【００６７】
実施の形態２．
つぎに、図５を用いてこの発明の実施の形態２について説明する。実施の形態２では、数値制御装置に接続された外部装置に付加機能処理オブジェクト６を格納しておく。数値制御装置は、外部装置から付加機能処理オブジェクト６を読み出して、制御対象７の制御を実行する。
【００６８】
［装置構成］
図５は、実施の形態２にかかる数値制御装置の構成を示す図である。図５の各構成要素のうち図１に示す実施の形態１の数値制御装置１Ａと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
【００６９】
数値制御装置１Ｂは、記憶部２Ｂと、ＲＡＭ３と、ローダ部４と、ネットワークＩＦ（interface：インターフェース）１２と、入出力ＩＦ１０とを備えている。
【００７０】
ネットワークＩＦ１２は、ローダ部４に接続されている。また、ネットワークＩＦ１２は、数値制御装置１Ｂの外部に配置されたハードディスク１３に接続されている。ハードディスク１３は、付加機能処理オブジェクト６を記憶しており、ネットワークＩＦ１２によって、付加機能処理オブジェクト６が読み出される。
【００７１】
入出力ＩＦ１０は、ローダ部４に接続されている。また、入出力ＩＦ１０は、数値制御装置１Ｂの外部に配置された可搬性記憶媒体１１に接続されている。可搬性記憶媒体１１は、付加機能処理オブジェクト６を記憶しており、入出力ＩＦ１０によって、付加機能処理オブジェクト６が読み出される。
【００７２】
このように、付加機能処理オブジェクト６が記憶される領域は、ネットワークＩＦ１２を経由して接続されたハードディスク１３であってもよいし、入出力ＩＦ１０を経由して接続された可搬性記憶媒体１１であってもよい。なお、付加機能処理オブジェクト６は、ハードディスク１３および可搬性記憶媒体１１の少なくとも一方で記憶されていればよい。
【００７３】
可搬性記憶媒体１１の例は、ＣＦカード（シーエフメモリーカード）、ＳＤカード、ＵＳＢ（Universal  Serial  Bus）メモリなどであるが、入出力ＩＦ１０が対応していればその他の種類の記憶媒体であってもよい。また、ハードディスク１３の例は、ネットワーク上のサーバ内に配置されたハードディスクなどであってもよいし、ネットワーク上のＰＣ（Personal  Computer：パーソナルコンピュータ）内のハードディスクなどであってもよい。
【００７４】
数値制御装置１Ｂの記憶部２Ｂは、基本機能処理オブジェクト５および記憶領域指定情報１４を記憶している。記憶領域指定情報１４は、ローダ部４が記憶部２Ｂ以外の領域から付加機能処理オブジェクト６を読み出す処理に必要な読み出し先情報を含んでいる。すなわち、記憶領域指定情報１４は、付加機能処理オブジェクト６が格納されている格納領域の位置（アドレスなど）を、読み出し先情報として含んでいる。
【００７５】
記憶領域指定情報１４は、機械メーカによって設定される情報である。機械メーカは、所望の外部装置に付加機能処理オブジェクト６を格納し、格納先の外部装置のアドレスを記憶領域指定情報１４に設定しておく。機械メーカの例は、制御対象７の製造メーカである。
【００７６】
記憶領域指定情報１４の一例は、数値制御装置１Ｂに設けられたパラメータである。その他にも、記憶領域指定情報１４は、ローダ部４がロード処理実行前に読み込むスクリプトであってもよい。
【００７７】
本実施の形態のローダ部４は、記憶領域指定情報１４で指定されている読み出し先情報に基づいて、付加機能処理オブジェクト６をハードディスク１３または可搬性記憶媒体１１から読み出し、付加機能処理部１０５としてＲＡＭ３上に展開する。
【００７８】
［動作手順］
数値制御装置１Ｂの動作手順は、実施の形態１の数値制御装置１Ａと同じく図３で説明した通りである。数値制御装置１Ｂの動作手順と数値制御装置１Ａの動作手順との違いは、ステップＳ２のローダ処理である。数値制御装置１Ｂでは、ローダ部４が記憶領域指定情報１４に従って、可搬性記憶媒体１１あるいはハードディスク１３から、付加機能処理オブジェクト６を読み出し、ＲＡＭ３上に展開する。これにより、付加機能処理部１０５のＲＡＭ３上のアドレスが確定する。
【００７９】
[実施の形態２の効果]
このように実施の形態２によれば、ハードディスク１３および可搬性記憶媒体１１といった外部装置に付加機能処理オブジェクト６を格納できるので、付加機能処理オブジェクト６の記憶先が選択可能になる。これにより、数値制御装置１Ｂの使用状況に応じた柔軟な付加機能の実現方法を提供することができる。
【００８０】
実施の形態３．
つぎに、図６を用いてこの発明の実施の形態３について説明する。実施の形態３では、記憶部が複数の付加機能処理オブジェクト６を記憶しておき、ローダ部４が、複数の付加機能処理オブジェクト６の中から機械メーカによって指定された付加機能処理オブジェクト６を選択してＲＡＭ３上に展開する。
【００８１】
[装置構成]
図６は、実施の形態３にかかる数値制御装置の構成を示す図である。図６の各構成要素のうち図１に示す実施の形態１の数値制御装置１Ａと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
【００８２】
数値制御装置１Ｃは、記憶部２Ｃと、ＲＡＭ３と、プロセッサ２０とを備えている。記憶部２Ｃは、基本機能処理オブジェクト５と、複数の異なる付加機能処理オブジェクト６とを記憶している。各付加機能処理オブジェクト６には、それぞれ異なる付加機能が設定されている。また、記憶部２Ｃは、付加機能処理オブジェクト６を指定した付加機能選択情報１５を記憶している。
【００８３】
付加機能選択情報１５は、複数の付加機能処理オブジェクト６の中から機械メーカによって選択された、１つ以上の付加機能処理オブジェクト６を指定した情報を含んでいる。付加機能選択情報１５は、機械メーカによって設定される情報である。機械メーカは、付加機能処理オブジェクト６のうち、使用可能で且つ使用を希望する付加機能処理オブジェクト６を選択して付加機能選択情報１５に設定しておく。機械メーカの例は、制御対象７の製造メーカである。
【００８４】
付加機能選択情報１５の一例としては、数値制御装置１Ｃに設けられたパラメータが挙げられる。付加機能選択情報１５は、ローダ部４がロード処理実行前に読み込むスクリプトでもよい。
【００８５】
本実施の形態のローダ部４は、付加機能選択情報１５で選択されている付加機能処理オブジェクト６を記憶部２Ｃから読み出し、基本機能処理部１００としてＲＡＭ３上に展開する。
【００８６】
［動作手順］
数値制御装置１Ｃの動作手順は、実施の形態１の数値制御装置１Ａと同じく図３で説明した通りである。数値制御装置１Ｃの動作手順と数値制御装置１Ａの動作手順との違いは、ステップＳ２のローダ処理である。数値制御装置１Ｃでは、ローダ部４が付加機能選択情報１５で選択されている１または複数の付加機能処理オブジェクト６を記憶部２Ｃから読み出し、ＲＡＭ３上に展開する。これにより、１または複数の付加機能処理部１０５のＲＡＭ３上のアドレスが確定する。
【００８７】
[実施の形態３の効果]
このように実施の形態３によれば、記憶部２Ｃで記憶されている複数の付加機能処理オブジェクト６の中から必要な付加機能処理オブジェクト６のみを選択して読み出すことができる。これにより、必要となる付加機能が変更されるたびに不要な付加機能処理オブジェクト６を記憶部２Ｃから削除したり、一度削除した付加機能処理オブジェクト６を再び記憶部２Ｃに追加したりする手間を省くことができる。
【００８８】
実施の形態４．
つぎに、図７を用いてこの発明の実施の形態４について説明する。実施の形態４では、基本機能処理部１００が、加工プログラム１０６のフォーマットを解析し、付加機能処理部１０５が、加工プログラム１０６のフォーマットに応じた解析を行う。
【００８９】
[装置構成]
図７は、実施の形態４にかかる数値制御装置の詳細構成を示す図である。図７の各構成要素のうち図１に示す実施の形態１の数値制御装置１Ａと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
【００９０】
数値制御装置１ＤのＲＡＭ３上に展開される指令生成部１０１は、加工プログラム解析部１０３を含んでいる。加工プログラム解析部１０３は、加工プログラム１０６のフォーマットを解析する。
【００９１】
加工プログラム１０６のフォーマットとしては、例えば制御対象７が工作機械の場合、ＪＩＳ  Ｂ  ６３１５−１およびＪＩＳ  Ｂ  ６３１５−２で定められたものがあるが、これら以外にも、数値制御装置メーカ、機械メーカごとに機能拡張されたフォーマットであってもよい。
【００９２】
また、制御対象７がロボットである場合の加工プログラム１０６のフォーマットは、例えばＪＩＳ  Ｂ  ８４３９で定められたプログラム言語ＳＬＩＭであってもよいし、機械メーカごとの独自フォーマットであってもよい。
【００９３】
加工プログラム解析部１０３には、加工プログラム１０６のフォーマットに対応する識別子１０４と、識別子１０４にセットされたＲＡＭ３上のアドレスの処理を実行する処理と、がプログラミングされている。加工プログラム解析部１０３では、識別子１０４と加工プログラム１０６のフォーマットとが対応付けされており、加工プログラム解析部１０３は、加工プログラム１０６のフォーマットに対応する識別子１０４を判定する。
【００９４】
機械メーカは、加工プログラム１０６を所望のフォーマットで作成しておく。また、機械メーカは、所望のフォーマットで作成された加工プログラム１０６を解析する処理を付加機能処理オブジェクト６にプログラミングしておく。また、機械メーカは、識別子１０４と加工プログラム１０６のフォーマットとを対応付ける処理を、付加機能処理オブジェクト６にプログラミングしておく。
【００９５】
加工プログラム解析部１０３が解析する加工プログラム１０６は、数値制御装置メーカまたは機械メーカごとに異なっている。すなわち、加工プログラム１０６は、数値制御装置メーカまたは機械メーカによって独自に機能拡張されたフォーマットあるいは独自のフォーマットで記述されている。付加機能処理部１０５は、加工プログラム１０６の文字列を特定のフォーマットに従って解析し、指令の生成に必要な情報を設定する。指令の生成に必要な情報の例は、制御対象７の位置、速度などである。
【００９６】
［動作手順］
数値制御装置１Ｄの動作手順は、実施の形態１の数値制御装置１Ａと同じく図３で説明した通りである。本実施の形態では、加工プログラム解析部１０３が、加工プログラム１０６のフォーマットを解析し、フォーマットに対応する識別子１０４を判定する。そして、加工プログラム解析部１０３は、識別子１０４に対応する付加機能処理部１０５をＲＡＭ３から読み出し、付加機能処理部１０５が、加工プログラム１０６を解析する。
【００９７】
[実施の形態４の効果]
このように実施の形態４によれば、加工プログラム１０６のフォーマットに依存することのない汎用的な数値制御装置１Ｄを実現することができる。これにより、数値制御装置メーカの違い、機械メーカの違い、および制御対象の違いによる加工プログラム１０６の再作成が不要となる。
【００９８】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００９９】
１Ａ〜１Ｄ  数値制御装置、２Ａ〜２Ｃ  記憶部、３  ＲＡＭ、４  ローダ部、５  基本機能処理オブジェクト、６  付加機能処理オブジェクト、７  制御対象、１０  入出力ＩＦ、１１  可搬性記憶媒体、１２  ネットワークＩＦ、１３  ハードディスク、１４  記憶領域指定情報、１５  付加機能選択情報、２０  プロセッサ、１００  基本機能処理部、１０１  指令生成部、１０２  指令出力部、１０３  加工プログラム解析部、１０４  識別子、１０５  付加機能処理部、１０６  加工プログラム。
【要約】
数値制御装置（１Ａ）が、制御対象（７）に対して基本機能を実行するための基本機能処理がコンパイルされた基本機能処理オブジェクト（５）、および制御対象（７）に対して付加機能を実行する付加機能処理がコンパイルされた付加機能処理オブジェクト（６）をロードし、付加機能処理部（１０５）および基本機能処理部（１００）をＲＡＭ（３）上に展開するプロセッサ（２０）と、を備え、基本機能処理オブジェクト（５）は、付加機能処理を識別する識別子（１０４）を含み、プロセッサ（２０）は、制御対象（７）の制御に用いる加工プログラム（１０６）をＲＡＭ（３）上に展開し、加工プログラム（１０６）の実行中において識別子（１０４）に対応する処理を実行する指令があると、識別子（１０４）に対応するＲＡＭ（３）上の位置にアクセスし、識別子（１０４）に対応する付加機能処理を実行する。【図１】
0006821101.tif 000002
【図２】
0006821101.tif 000003
【図３】
0006821101.tif 000004
【図４】
0006821101.tif 000005
【図５】
0006821101.tif 000006
【図６】
0006821101.tif 000007
【図７】
0006821101.tif 000008