(57)【要約】【課題】加工プログラムの動的解析機能を有する数値制御装置を提供する。【解決手段】加工プログラムの中でサブプログラムを呼出すサブプログラム呼び出し機能を備えた数値制御装置１は、サブプログラムを呼び出した場合に、サブプログラムの呼び出しに関する情報を通知するプログラム解読部１０１と、プログラム解読部から通知されたサブプログラムの呼び出しに関する情報を集約し、記憶するプログラム呼び出し情報記憶部１０２と、サブプログラムを実行した場合に、サブプログラムの実行に関する情報を通知するプログラム実行部１０３と、プログラム実行部から通知されたサブプログラムの実行に関する情報を集約し、記憶するプログラム実行情報記憶部１０４と、を有することを特徴とする。【選択図】図２
2019153042.tif 000002
【特許請求の範囲】
【請求項１】
加工プログラムの中でサブプログラムを呼出すサブプログラム呼び出し機能を備えた数値制御装置であって、
前記サブプログラムを呼び出した場合に、前記サブプログラムの呼び出しに関する情報を通知するプログラム解読部と、
前記プログラム解読部から通知された前記サブプログラムの呼び出しに関する情報を集約し、記憶するプログラム呼び出し情報記憶部と、
前記サブプログラムを実行した場合に、前記サブプログラムの実行に関する情報を通知するプログラム実行部と、
前記プログラム実行部から通知された前記サブプログラムの実行に関する情報を集約し、記憶するプログラム実行情報記憶部と、を有することを特徴とする数値制御装置。
【請求項２】
前記プログラム呼び出し情報記憶部及び前記プログラム実行情報記憶部で集約した情報をもとに、前記サブプログラムの呼び出し構造をツリー表示するプログラム呼び出し情報表示部を有することを特徴とする
請求項１記載の数値制御装置。
【請求項３】
前記プログラム実行情報記憶部で集約した情報をもとに、実行された前記サブプログラムのリストを出力するプログラム呼び出し情報表示部を有することを特徴とする
請求項１記載の数値制御装置。
【請求項４】
前記プログラム呼び出し情報記憶部及び前記プログラム実行情報記憶部で集約した情報をもとに、呼び出し予約がなされたが実行されなかった前記サブプログラムのリストを出力するプログラム呼び出し情報表示部を有することを特徴とする
請求項１記載の数値制御装置。
【請求項５】
１以上の前記サブプログラムを格納するプログラム管理部と、
前記プログラム管理部が格納する前記サブプログラムのリストと、前記プログラム実行情報記憶部で集約した情報をもとに、実行されなかった前記サブプログラムのリストを出力するプログラム呼び出し情報表示部を有することを特徴とする
請求項１記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は数値制御装置に関し、特に加工プログラムの動的解析機能を有する数値制御装置に関する。
【背景技術】
【０００２】
数値制御装置で使用される加工プログラム（以下、単にプログラム）では、プログラム中で他のプログラムの呼び出しが行われることがある。以降、数値制御装置の運転で最初に実行されるプログラムをメインプログラム、それにともなって呼び出される他のプログラムをサブプログラムと呼称する。例えばメインプログラムの中で、ＭＳＴＢコード（Ｍｘｘｘ，Ｓｘｘｘ，Ｔｘｘｘ，Ｂｘｘｘなどの形式を取るコードの総称。ｘｘｘには呼び出し対象のサブプログラムを指すコードが入る）によるサブプログラム呼び出しや、Ｇコード（Ｇｘｘｘなる形式を取り、ｘｘｘには呼び出し対象のサブプログラムを指すコードが入る）によるサブプログラム呼び出しが行われている。また、サブプログラムの中からサブプログラムを呼び出すなど、呼び出しが多重に実行される場合がある。例えば、加工単位で作成された複数のプログラムをサブプログラムとして作成し、メインプログラムから呼び出す形態のプログラムがある。
【０００３】
上述のような形態においては多くのプログラムが数値制御装置内に存在することとなるため、それらを容易に管理するための手法が種々提案されている。例えば、特許文献１及び２には、多重呼び出しを含むプログラムを静的に解析し、プログラムの階層構造を視覚的に表示する技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−１１３８１８号公報
【特許文献２】特開平８−０６３２１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１及び２に記載されているような静的解析によるプログラムの解析の場合、マクロ変数、パラメータ設定、数値制御装置ソフトウェアの実行条件（内部パラメータ）等が考慮されておらず、数値制御装置において実際にプログラムを動作させたときの状況を確認することができない。
【０００６】
すなわち、プログラムを実際に実行すると、プログラムコードに記載されてはいるものの呼び出されることのないサブプログラムが存在することがある。例えば、上述のマクロ変数、パラメータ及び内部パラメータが分岐条件に含まれており、ある分岐先でサブプログラムの呼び出しが定義されている場合、マクロ変数、パラメータ及び内部パラメータのとる値によっては、実際には呼び出されることがないサブプログラムが存在することがあり得る。
【０００７】
このような事象は、例えばプログラムのテストの場面で問題となる。実際には呼び出されることがないプログラムは不要であるため削除したいが、数値制御装置内に存在するプログラムのうちどれが実際に実行され、又は実行されないかを確認することは容易ではない。これは、テスト漏れの有無を確認することが困難だということでもある。特に、１つの数値制御装置を複数のオペレータが使用するような環境においては、数値制御装置内に多数のプログラムが登録されることが多々あるため、このような問題が発生しやすい。もしどのプログラムが実際に実行され、又は実行されないかを容易に確認できれば、数値制御装置の記憶領域を有効活用できるし、テストの網羅性を確実なものにすることも可能である。
【０００８】
本発明はこのような問題点を解決するためになされたものであって、加工プログラムの動的解析機能を有する数値制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一実施の形態にかかる数値制御装置は、加工プログラムの中でサブプログラムを呼出すサブプログラム呼び出し機能を備えた数値制御装置であって、前記サブプログラムを呼び出した場合に、前記サブプログラムの呼び出しに関する情報を通知するプログラム解読部と、前記プログラム解読部から通知された前記サブプログラムの呼び出しに関する情報を集約し、記憶するプログラム呼び出し情報記憶部と、前記サブプログラムを実行した場合に、前記サブプログラムの実行に関する情報を通知するプログラム実行部と、前記プログラム実行部から通知された前記サブプログラムの実行に関する情報を集約し、記憶するプログラム実行情報記憶部と、を有することを特徴とする。
本発明の一実施の形態にかかる数値制御装置は、前記プログラム呼び出し情報記憶部及び前記プログラム実行情報記憶部で集約した情報をもとに、前記サブプログラムの呼び出し構造をツリー表示するプログラム呼び出し情報表示部を有することを特徴とする。
本発明の一実施の形態にかかる数値制御装置は、前記プログラム実行情報記憶部で集約した情報をもとに、実行された前記サブプログラムのリストを出力するプログラム呼び出し情報表示部を有することを特徴とする。
本発明の一実施の形態にかかる数値制御装置は、前記プログラム呼び出し情報記憶部及び前記プログラム実行情報記憶部で集約した情報をもとに、呼び出し予約がなされたが実行されなかった前記サブプログラムのリストを出力するプログラム呼び出し情報表示部を有することを特徴とする。
本発明の一実施の形態にかかる数値制御装置は、１以上の前記サブプログラムを格納するプログラム管理部と、前記プログラム管理部が格納する前記サブプログラムのリストと、前記プログラム実行情報記憶部で集約した情報をもとに、実行されなかった前記サブプログラムのリストを出力するプログラム呼び出し情報表示部を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、加工プログラムの動的解析機能を有する数値制御装置を提供することが可能である。
【図面の簡単な説明】
【００１１】
【図１】数値制御装置１のハードウェア構成を示すブロック図である。
【図２】数値制御装置１の機能構成を示すブロック図である。
【図３】プログラム呼び出し情報記憶部１０２が記憶するプログラム呼び出し情報の一例を示す図である。
【図４】プログラム実行情報記憶部１０４が記憶するプログラム実行情報の一例を示す図である。
【図５】プログラム呼び出し情報表示部１０５が、プログラム呼び出し情報記憶部１０２及びプログラム実行情報記憶部１０４を統合して作成した情報の一例を示す図である。
【図６】プログラム呼び出し情報表示部１０５が表示する動的解析結果の一例を示す図である。
【図７】プログラム呼び出し情報表示部１０５が表示する動的解析結果の一例を示す図である。
【００１２】
本発明の実施の形態にかかる数値制御装置１の構成について説明する。
図１は、本発明の実施の形態にかかる数値制御装置１の要部の概略的なハードウェア構成図である。
【００１３】
数値制御装置１が備えるＣＰＵ１１は、数値制御装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、不揮発性メモリ１４に格納されたプログラムをバス２０を介して読み出し、プログラムに従って数値制御装置１全体を制御する。
【００１４】
不揮発性メモリ１４は、例えば図示しないバッテリでバックアップされるなどして、数値制御装置１の電源がオフされても記憶状態が保持されるメモリとして構成される。不揮発性メモリ１４に記憶されているプログラム、データは、利用時には揮発性メモリ１３に展開されても良い。揮発性メモリ１３には、不揮発性メモリ１４から展開されたプログラム、データの他、一時的な計算データや表示データ、入力装置を介して入力されたデータ等が格納される。
【００１５】
表示器／ＭＤＩユニット７０はディスプレイやキーボード等を備えたデータ入出力装置である。表示器／ＭＤＩユニット７０のキーボードから入力された指令やデータは、インタフェース１５を介してＣＰＵ１１に渡される。また、ＣＰＵ１１から出力された表示データは、インタフェース１５を介して表示器／ＭＤＩユニット７０のディスプレイに表示される。
【００１６】
図２は、本発明の実施の形態に係る数値制御装置１の概略的な機能構成を示すブロック図である。
【００１７】
数値制御装置１は、プログラム解読部１０１、プログラム呼び出し情報記憶部１０２、プログラム実行部１０３、プログラム実行情報記憶部１０４、プログラム呼び出し情報表示部１０５、プログラム管理部１０６、プログラム探索部１０７、プログラム一覧表示部１０８を有する。このうち、プログラム解読部１０１、プログラム呼び出し情報記憶部１０２、プログラム実行部１０３プログラム実行情報記憶部１０４、プログラム呼び出し情報表示部１０５は、本発明の特徴であるプログラムの動的解析処理を実行する。なおプログラム探索部１０７、プログラム一覧表示部１０８は、本発明の課題解決には直接的には関与しない。プログラム探索部１０７、プログラム一覧表示部１０８は従来技術によりプログラムを静的に解析する。
【００１８】
プログラム管理部１０６は、メインプログラム、サブプログラムを含む複数のプログラムを格納する記憶領域である。
【００１９】
プログラム探索部１０７は、プログラム管理部１０６が管理するプログラムを探索する処理を行う。
【００２０】
プログラム一覧表示部１０８は、プログラム探索部１０７の探索結果を表示する。すなわちプログラムの静的解析処理の実行結果を表示する。
【００２１】
プログラム解読部１０１は、プログラム管理部１０６からプログラムを読み出し、プログラム実行の前処理としてプログラムコードを解釈して、実行すべき命令をプログラム実行部１０３に対し出力する。プログラムコードにマクロ変数、パラメータ及び内部パラメータへの参照が含まれている場合、プログラム解読部１０１は現在のマクロ変数、パラメータ及び内部パラメータを取得したうえでプログラムコードを解釈する。
【００２２】
また、プログラム解読部１０１は、プログラムコードにサブプログラム呼び出しが含まれる場合、呼び出しに用いられた手段、変数、呼び出されるプログラム名などの呼び出しに関する情報をプログラム呼び出し情報記憶部１０２に通知する。
【００２３】
プログラム呼び出し情報記憶部１０２は、通知された情報をもとに、サブプログラムの呼び出し情報としてテーブル化し、記憶する。
図３に、プログラム呼び出し情報記憶部１０２が記憶するプログラム呼び出し情報の一例を示す。この例では、呼び出されたサブプログラム名である「プログラム名」、サブプログラムを呼び出したプログラム名である「呼び元」、サブプログラムを呼び出した際に使用されたコード（命令、変数名など）を示す「手段」、サブプログラムを呼び出した際に使用された変数の値を示す「設定値」等が対応付けられて記憶されている。図３で「手段」カラムに記録されている「Ｍ９８」「Ｍ５０」等の値は命令、命令に続く「＃１００」「Ｐｒｍ６０４２」等の値は変数名を示している。「設定値」カラムに記録されている「＃１００＝１００１」「Ｐｒｍ６０４２＝２００１」等の値はそれぞれ、変数（この場合はマクロ変数）＃１００の値が１００１であったこと、変数（この場合は数値制御装置のパラメータ）Ｐｒｍ６０４２の値が２００１であったことを示している。
【００２４】
プログラム実行部１０３は、プログラム解読部１０１によるプログラムコードの解釈結果を受けて、命令を実行する。この際、プログラム実行部１０３は、実行したプログラム名、プログラムの実行時間などの実行に関する情報をプログラム実行情報記憶部１０４に通知する。
【００２５】
プログラム実行情報記憶部１０４は、通知された情報をもとに、サブプログラムの実行情報としてテーブル化し、記憶する。
図４に、プログラム実行情報記憶部１０４が記憶するプログラム実行情報の一例を示す。この例では、実行されたプログラム名である「プログラム名」、実行されたプログラムが他のプログラムから呼び出されて実行された場合において、呼び出した側のプログラム名を示す「呼び元」、１つの命令によって何回プログラムを実行したかを示す「実行回数」、プログラムを１回実行するのに要した時間を示す「実行時間」（ｓｅｃ／回）等が対応付けられて記憶されている。
【００２６】
図４に示すようなプログラム実行情報の作成手法は種々考えられる。例えば、プログラム実行部１０３が、実際にプログラムを実行した際の情報に基づいて、プログラム実行情報を一から作成することができる。この場合、プログラム実行情報に含まれるレコードは、実際に実行されたプログラムに関するもののみとなる。すなわち「実行回数」が０のレコードは作成されない。
【００２７】
又は、プログラム実行部１０３は、プログラム呼び出し情報記憶部１０２が記憶するプログラム呼び出し情報に情報を付加する形で、プログラム実行情報を作成することもできる。すなわち、プログラム実行部１０３がプログラムを実行したときに、そのプログラムの「実行回数」及び「実行時間」を、プログラム呼び出し情報の該当レコードに追記する。例えば、プログラム解読部１０１がコードを解釈した際にはサブプログラムの呼び出し予約が行われるにとどまり、プログラム実行情報記憶部１０４が外部信号などのトリガを受けたときに実際に呼び出しが実行されるようなケースが存在する。本手法によれば、このようなケースでは、呼び出し予約が行われたものの実際には呼び出しが行われなかったサブプログラムも、プログラム実行情報中に「実行回数」が０のレコードとして現れる。
【００２８】
あるいは、プログラム管理部１０６が保持している全プログラム名のリストを作成し、このリストに追記する形で、プログラム実行部１０３がプログラム実行情報を作成することもできる。この場合も、呼び出し予約が行われたものの実際には呼び出しが行われなかったサブプログラムは、プログラム実行情報中に「実行回数」が０のレコードとして現れる。加えて、呼び出し予約すら行われない、すなわち他のプログラムから呼び出されるケースが存在しないプログラムについても、プログラム実行情報中に「実行回数」が０のレコードとして現れる。
【００２９】
プログラム呼び出し情報表示部１０５は、プログラム呼び出し情報記憶部１０２及びプログラム実行情報記憶部１０４に記録された情報に従って、複数のプログラム間の呼び出し関係を整理して表示する。プログラム呼び出し情報表示部１０５は、プログラム呼び出し情報記憶部１０２及びプログラム実行情報記憶部１０４を統合することにより、実際に呼び出しが行われたサブプログラムを特定することができる。また、実際に呼び出しが行われた際の状況（呼び出しが行われた条件や実際の実行状況など）を特定することもできる。これらの様々な情報を盛り込むことで、プログラム呼び出し情報表示部１０５は従来にない有用な情報をユーザに提供することが可能である。
【００３０】
図５に示すテーブルは、プログラム呼び出し情報表示部１０５が、プログラム呼び出し情報記憶部１０２及びプログラム実行情報記憶部１０４を統合して作成したものである。図５によれば、呼び出された「プログラム名」、そのプログラムを呼び出した「呼び元」、呼び出しが行われた際の条件を示す「手段」及び「設定値」、そしてプログラムの実行状況を示す「実行回数」及び「実行時間」等が一元的に把握可能である。プログラム呼び出し情報表示部１０５は、こうして統合された情報に基づいて、プログラム同士の関係を視覚的に表現することができる。以下に幾つかの表現方法を例示する。
【００３１】
図６に示すグラフは、プログラム呼び出し情報表示部１０５が表示する動的解析結果の一例であって、プログラムの呼び出し関係をツリー構造で表現したものである。この例において、ツリー構造の根にあたるノード「Ｏ０００１」はメインプログラム名である。「Ｏ０００１」を起点として延びる線分は、プログラムの実行に伴う時間経過を示している。この線分から分岐する線分の先にあるノード「Ｏ１００１」「Ｏ１００２」・・・等は、それぞれメインプログラムから呼びされて実際に実行されたサブプログラム名を示している。線分上に記載されている条件「Ｍ９８  ＃１００」「＃１００＝１００１」「＃１００＝１００２」・・・等は、それぞれ当該線分が示す実行ルートが選択されたときの条件（命令や変数の値など）を示している。また、各ノード「Ｏ０００１」「Ｏ１００１」・・・等に併記されている「１００回」「５０回」等は、当該ノードにかかるプログラムが実行された回数を示している。また、分岐先のノード「Ｏ１００１」「Ｏ１００２」・・・等に併記されている実行率「５０％」「５０％」等は、分岐先のノードが複数存在する場合に、各ノードにかかるプログラムが実行される割合がどれほどであったかを示している。
【００３２】
例えば図６からは、「Ｏ０００１（１００回）」という記述から、メインプログラム「Ｏ０００１」が通算１００回実行されたことが分かる。そして、メインプログラム「Ｏ０００１」からサブプログラム「Ｏ１１０１」に至るまでのルート上には、「Ｍ９８  ＃１００」「＃１００＝１００１」という条件が記載されている。ここから、メインプログラム「Ｏ０００１」においてコード「Ｍ９８  ＃１００」が実行され、その際にマクロ変数「＃１００」の値が「＝１００１」であった場合に、サブプログラム「Ｏ１００１」が呼び出されて実行されたことがわかる。同様にして、メインプログラム「Ｏ０００１」においてコード「Ｍ９８  ＃１００」が実行され、その際にマクロ変数「＃１００」の値が「＝１００２」であった場合には、サブプログラム「Ｏ１００２」が呼び出されて実行されたことがわかる。そして「Ｏ１００１（５０回、５０％）」「Ｏ１００２（５０回、５０％）」という記述から、サブプログラム「Ｏ１００１」及び「Ｏ１００２」はいずれも通算５０回実行され、両者の実行回数の比は５０：５０であったことがわかる。
【００３３】
図７に示すグラフも、プログラム呼び出し情報表示部１０５が表示する動的解析結果の一例であって、プログラムの呼び出し関係をツリー構造で表現したものである。プログラムの呼び出し関係をツリー構造で表現したものである。この例において、ツリー構造のルートにあたるノード「Ｏ０００１」はメインプログラム名である。「Ｏ０００１」を起点として延びる線分は、プログラムの実行に伴う時間経過を示している。この線分から分岐する線分の先にあるノード「Ｏ１００１」「Ｏ１００２」は、それぞれメインプログラムから呼びされて実際に実行されたサブプログラム名を示している。そして、サブプログラム「Ｏ１１０１」からさらに延びて分岐した先にあるノード「Ｏ２００１」「Ｏ２００２」は、それぞれサブプログラム「Ｏ１１０１」から呼びされて実際に実行されたサブプログラム名を示している。以下同様にして、プログラムの多重呼び出し構造がツリー状に表現されていく。ツリー構造の末端ノード「Ｏ３００１」「Ｏ３００２」・・・等に併記された時間「５００ｓｅｃ」「４９０ｓｅｃ」・・・等は、それぞれの系列（根ノード「Ｏ０００１」から末端ノードに至るプログラム実行ルート）の実行所要時間を示している。
【００３４】
例えば図７からは、メインプログラム「Ｏ０００１」からサブプログラム「Ｏ１００１」「Ｏ１００２」が呼び出されて実行され、サブプログラム「Ｏ１００１」からさらにサブプログラム「Ｏ２００１」「Ｏ２００２」が呼び出されて実行され、「Ｏ２００１」からは「Ｏ３００１」が呼び出され、「Ｏ３００１」からは「Ｏ３０１１」「Ｏ３０２１」が呼び出されたことがわかる。そして、「Ｏ０００１」から「Ｏ３０１１」までを実行した場合の所要時間は「５００ｓｅｃ」、「Ｏ０００１」から「Ｏ３０２１」までを実行した場合の所要時間は「４９０ｓｅｃ」であったことがわかる。これらの情報は、例えばどのようなプログラムを作成すれば実行時間を短縮できるかを検討するための材料として利用できる。
【００３５】
また、プログラム呼び出し情報表示部１０５は、呼び出されたプログラムのリストや、呼び出されなかったプログラムのリストを作成して表示することもできる。例えば、プログラム呼び出し情報表示部１０５は、プログラム管理部１０６が保持している全プログラム名のリストと、図４に示すプログラム実行情報又は図５に示す統合情報において「実行回数」が１以上であるプログラム名のリストとを比較する。この比較において一致したプログラム名は、呼び出されたプログラムのリストに加えられる。一方、プログラム管理部１０６が保持している全プログラム名のリストにのみ存在するプログラム名は、実行された記録がないのであるから、呼び出されなかったプログラムのリストに加えられる。プログラム呼び出し情報表示部１０５は、このようなリストを例えば一覧表の形でユーザに提示することができる。
【００３６】
さらに、プログラム呼び出し情報表示部１０５は、呼び出し予約が行われたものの実際には呼び出しが行われなかったサブプログラムのリストを作成して表示することもできる。例えば、プログラム呼び出し情報表示部１０５は、プログラム実行部１０３が一から作成したプログラム実行情報（実際に実行されたプログラム名のみが含まれる）と、プログラム呼び出し情報記憶部１０２が記憶するプログラム呼び出し情報と、を比較する。ここでプログラム呼び出し情報内にのみ存在するプログラム名は、実行された記録がないのであるから、呼び出し予約が行われたものの実際には呼び出しが行われなかったプログラムのリストに加えられる。プログラム呼び出し情報表示部１０５は、このようなリストを例えば一覧表の形でユーザに提示することができる。
【００３７】
本実施の形態によれば、数値制御装置１は、実際にプログラムが呼び出された際の条件や実行状況などを記録する。そして、その記録に基づいてプログラム間の現実の呼び出し構造を視覚的に表示したり、実際に呼び出しが行われた又は行われなかったプログラムのリストを表示したり、呼び出し予約が行われたものの実行されなかったプログラムのリストを表示したりすることができる。これらはいずれも、従来の静的解析では知ることのできなかった情報である。
【００３８】
なお、本発明は上述の実施の形態に限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。例えば、上述の実施の形態で示した視覚的表現方法はあくまで一例であり、プログラム呼び出し情報及びプログラム実行情報から得られる種々の情報は、他の任意の手法で提示することが可能である。
【００３９】
また、上述の実施の形態では、プログラム解読部１０１、プログラム呼び出し情報記憶部１０２、プログラム実行部１０３、プログラム実行情報記憶部１０４、プログラム呼び出し情報表示部１０５、プログラム管理部１０６は全て数値制御装置１内に存在するものとして説明したが、本発明はこれに限定されず、１以上の処理部が、数値制御装置１とネットワーク等を介して通信可能に接続された他の装置に存在していても良い。例えば、プログラム呼び出し情報記憶部１０２、プログラム実行情報記憶部１０４、プログラム呼び出し情報表示部１０５等は、数値制御装置１以外の任意の装置内に配置され得る。
【００４０】
あるいは、プログラム解読部１０１、プログラム呼び出し情報記憶部１０２、プログラム実行部１０３、プログラム実行情報記憶部１０４、プログラム呼び出し情報表示部１０５、プログラム管理部１０６は、数値制御装置のシミュレータ内に存在していても構わない。この場合も、１以上の処理部が、シミュレータとネットワーク等を介して通信可能に接続された他の装置に存在していても良い。
【符号の説明】
【００４１】
１  数値制御装置
１１  ＣＰＵ
１３  揮発性メモリ
１４  不揮発性メモリ
１５  インタフェース
２０  バス
７０  表示器／ＭＤＩユニット
１０１  プログラム解読部
１０２  プログラム呼び出し情報記憶部
１０３  プログラム実行部
１０４  プログラム実行情報記憶部
１０５  プログラム呼び出し情報表示部
１０６  プログラム管理部
１０７  プログラム探索部
１０８  プログラム一覧表示部
【図１】
2019153042.tif 000003
【図２】
2019153042.tif 000004
【図３】
2019153042.tif 000005
【図４】
2019153042.tif 000006
【図５】
2019153042.tif 000007
【図６】
2019153042.tif 000008
【図７】
2019153042.tif 000009