(57)【特許請求の範囲】
【請求項１】
加工プログラムによって工作機械を制御しワークの加工を行う数値制御装置と、この数値制御装置へ前記加工プログラムを提供する外部処理装置とを備えた数値制御システムであって、
前記外部処理装置は、
前記加工プログラムの実行を開始する行番号である実行開始行番号を取得するとともに、前記加工プログラムの先頭からのバイト数であって前記実行開始行番号に対応するファイルオフセットを把握するユーザインタフェース部と、
前記ファイルオフセットに基づいて前記加工プログラムのファイルをオープンし、前記実行開始行番号で指定された位置からの前記加工プログラムを前記数値制御装置へ提供する加工プログラム読出部と
を有している、数値制御システム。
【請求項２】
前記外部処理装置は、
前記実行開始行番号とともに、前記実行開始行番号に対応するファイルオフセットを開始データとして、前記数値制御装置へ送信する開始データ送信部を有しており、
前記数値制御装置は、
前記開始データに含まれるファイルオフセットを前記加工プログラム読出部へ送信するとともに、前記加工プログラム読出部から前記実行開始行番号で指定された位置からの前記加工プログラムを取得する加工プログラム取得部を有している、請求項１に記載の数値制御システム。
【請求項３】
前記外部処理装置は、前記加工プログラム読出部が前記加工プログラムのファイルをオープンすると同時に、前記加工プログラムの全行数のカウントを開始し、最終行番号または最終行に対応するファイルオフセットを前記数値制御装置へ送信する最終行番号送信部を有している、請求項１または請求項２に記載の数値制御システム。
【請求項４】
前記数値制御装置は、指定された行番号にジャンプする無条件分岐命令（ＧＯＴＯ文）を含む前記加工プログラムに対して、前記行番号を上方向または下方向にサーチする行サーチ部を有しており、
前記行サーチ部は、前記加工プログラムを上方向にサーチして現在行が先頭行に到達した場合、前記最終行番号送信部から取得した前記最終行番号または最終行に対応するファイルオフセットに基づいて前記加工プログラムの最終行へジャンプしてサーチを続行する、請求項３に記載の数値制御システム。
【請求項５】
前記行サーチ部は、前記最終行番号に基づいて前記最終行へジャンプする場合、前記最終行番号を現在行としてセットし、前記現在行をデクリメントすることで上方向へサーチを続行する、請求項４に記載の数値制御システム。
【請求項６】
前記数値制御装置は、指定された行番号にジャンプする無条件分岐命令（ＧＯＴＯ文）を含む前記加工プログラムに対して、前記行番号を上方向または下方向にサーチする行サーチ部を有しており、
前記行サーチ部は、前記加工プログラムを上方向にサーチして現在行が先頭行に到達した場合、現在実行中の実行行へジャンプした後、下方向にサーチを続行し、前記加工プログラムを下方向にサーチして現在行が最終行に到達した場合、現在実行中の実行行へジャンプした後、上方向にサーチを続行する、請求項１または請求項２に記載の数値制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械を制御する数値制御装置と、この数値制御装置へ加工プログラムを提供する外部処理装置とを備えた数値制御システムに関するものである。
【背景技術】
【０００２】
従来、数値制御装置で用いられる加工プログラムは、パーソナルコンピュータ等の外部処理装置から提供されている。例えば、特開平８−２４９０４０号公報には、ＣＮＣ（数値制御装置）からの送信要求に応じて、必要なＮＣプログラムを管理装置が送信するＮＣプログラム送信方式が提案されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−２４９０４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記特許文献１において、ＮＣプログラムの一部を途中から実行するような場合、ＣＮＣは管理装置に対して、実行を開始するシーケンス番号（行番号）で要求するようになっている（段落［００３３］）。しかしながら、シーケンス番号は、ユーザがＮＣプログラム内の位置を把握するのに便利ではあるが、管理装置では、当該シーケンス番号からＮＣプログラム内の位置を直接把握することができない。
【０００５】
このため、管理装置は、ＣＮＣの要求を受けてからＮＣプログラムをオープンし、シーケンス番号に対応するファイルオフセット（加工プログラムの先頭からのバイト数）をサーチしなければならず、時間がかかるという問題がある。特に、近年、ＮＣプログラムは、加工処理の複雑化に伴いファイルサイズが飛躍的に増大しており、当該ファイルサイズが大きいほど上記サーチに要する時間がかかってしまうという問題がある。
【０００６】
本発明は、このような問題点を解決するためになされたものであって、大きなファイルサイズの加工プログラムを途中から実行する際のサーチ時間が顕著になるのを抑制して、迅速に加工プログラムの実行を開始することができる数値制御システムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
本発明に係る数値制御システムは、加工プログラムによって工作機械を制御しワークの加工を行う数値制御装置と、この数値制御装置へ前記加工プログラムを提供する外部処理装置とを備えた数値制御システムであって、前記外部処理装置は、前記加工プログラムの実行を開始する行番号である実行開始行番号とともに、前記実行開始行番号に対応するファイルオフセットを前記数値制御装置へ送信する開始データ送信部と、前記ファイルオフセットに基づいて前記加工プログラムのファイルをオープンする加工プログラム読出部とを有している。
【０００８】
また、本発明の一態様として、前記外部処理装置は、前記加工プログラム読出部が前記加工プログラムのファイルをオープンすると同時に、前記加工プログラムの全行数のカウントを開始し、最終行番号または最終行に対応するファイルオフセットを前記数値制御装置へ送信する最終行番号送信部を有していてもよい。
【０００９】
さらに、本発明の一態様として、前記数値制御装置は、指定された行番号にジャンプする無条件分岐命令（ＧＯＴＯ文）を含む前記加工プログラムに対して、前記行番号を上方向または下方向にサーチする行サーチ部を有しており、
前記行サーチ部は、前記加工プログラムを上方向にサーチして現在行が先頭行に到達した場合、前記最終行番号送信部から取得した前記最終行番号または最終行に対応するファイルオフセットに基づいて前記加工プログラムの最終行へジャンプしてサーチを続行してもよい。
【００１０】
また、本発明の一態様として、前記行サーチ部は、前記最終行番号に基づいて前記最終行へジャンプする場合、前記最終行番号を現在行としてセットし、前記現在行をデクリメントすることで上方向へサーチを続行してもよい。
【００１１】
さらに、本発明の一態様として、前記数値制御装置は、指定された行番号にジャンプする無条件分岐命令（ＧＯＴＯ文）を含む前記加工プログラムに対して、前記行番号を上方向または下方向にサーチする行サーチ部を有しており、前記行サーチ部は、前記加工プログラムを上方向にサーチして現在行が先頭行に到達した場合、現在実行中の実行行へジャンプした後、下方向にサーチを続行し、前記加工プログラムを下方向にサーチして現在行が最終行に到達した場合、現在実行中の実行行へジャンプした後、上方向にサーチを続行してもよい。
【発明の効果】
【００１２】
本発明によれば、大きなファイルサイズの加工プログラムを途中から実行する際のサーチ時間が顕著になるのを抑制して、迅速に加工プログラムの実行を開始することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明に係る数値制御システムの第１実施形態を示すブロック図である。
【図２】表示手段に表示された加工プログラムの一例を示す図である。
【図３】本第１実施形態において、数値制御システムの動作を示すフローチャートである。
【図４】本第１実施形態の数値制御装置における上方向の行サーチ処理を示すフローチャートである。
【図５】本第１実施形態の数値制御装置における下方向の行サーチ処理を示すフローチャートである。
【図６】本発明に係る数値制御システムの第２実施形態を示すブロック図である。
【図７】本第２実施形態の数値制御装置における上方向の行サーチ処理を示すフローチャートである。
【図８】本第２実施形態の数値制御装置における下方向の行サーチ処理を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明に係る数値制御システムの第１実施形態について図面を用いて説明する。本第１実施形態の数値制御システム１Ａは、図１に示すように、加工プログラム３ｃによって工作機械１０を制御しワークの加工を行う数値制御装置２と、この数値制御装置２へ加工プログラム３ｃを提供する外部処理装置３とを備えている。以下、各構成について詳細に説明する。
【００１５】
工作機械１０は、旋盤、ボール盤、中ぐり盤、フライス盤、歯切り盤、研削盤等のように、金属、木材、石材、樹脂等のワークに対して、切断、穿孔、研削、研磨、圧延、鍛造、折り曲げ等の加工を施すための機械である。本第１実施形態において、工作機械１０は、数値制御装置２から供給される命令信号を増幅するサーボアンプや、このサーボアンプから出力される駆動信号に基づいて工具やテーブルを駆動するサーボモータ等から構成されるサーボ機構（図示せず）を有している。
【００１６】
外部処理装置３は、一般的なオペレーティングシステムが搭載されたパーソナルコンピュータ等のコンピュータによって構成されている。本第１実施形態において、外部処理装置３は、図１に示すように、各種のデータを記憶するとともに、外部側制御手段７が演算処理を行う際のワーキングエリアとして機能する外部側記憶手段６と、各種の演算処理を実行する外部側制御手段７とを有している。
【００１７】
外部側記憶手段６は、ハードディスク、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、フラッシュメモリ、メモリカード等で構成されており、図１に示すように、プログラム記憶部６１を有している。
【００１８】
プログラム記憶部６１には、図１に示すように、外部処理装置３にユーザインタフェース機能を持たせるためのＵＩ用プログラム３ａと、外部処理装置３に加工プログラム３ｃ提供機能を持たせるための提供用プログラム３ｂとがインストールされている。そして、外部側制御手段７が、各プログラム３ａ，３ｂを実行することにより、コンピュータを後述する各構成部としてとして機能させるようになっている。また、プログラム記憶部６１には、別途、数値制御装置２へ提供するための加工プログラム３ｃが記憶されている。
【００１９】
外部側制御手段７は、ＣＰＵ（Central Processing Unit）等によって構成されており、外部側記憶手段６にインストールされたＵＩ用プログラム３ａを実行することにより、図１に示すように、ユーザインタフェース機能を司る、ユーザインタフェース部７１と、開始データ送信部７２として機能する。また、外部側制御手段７は、提供用プログラム３ｂを実行することにより、加工プログラム３ｃ提供機能を司る、加工プログラム読出部７３と、最終行番号送信部７４として機能するようになっている。
【００２０】
ユーザインタフェース部７１は、外部処理装置３とユーザとの間で情報をやりとりさせるためのものである。本第１実施形態において、ユーザインタフェース部７１は、プログラム記憶部６１内の加工プログラム３ｃをオープンし、図２に示すように、行番号ごとにタッチパネル等の表示手段（図示せず）に表示させる。この表示処理を実行した時点で、ユーザインタフェース部７１は、加工プログラム３ｃを一度オープンしているため、各行番号に対応するファイルオフセット（加工プログラム３ｃの先頭からのバイト数）を保有することとなる。
【００２１】
また、本第１実施形態において、ユーザインタフェース部７１は、タッチパネルやキーボード等の入力手段（図示せず）を介して、ユーザからの指示や命令を取得する。具体的には、ユーザが加工プログラム３ｃの実行を途中から開始したい場合、ユーザインタフェース部７１は、ユーザによって指定された実行開始行番号を取得する。なお、本発明において、実行開始行番号とは、加工プログラム３ｃの実行を開始する行番号をいうものとする。また、ユーザインタフェース部７１が取得する情報は、実行開始行番号に限定されるものではなく、ユーザが加工プログラム３ｃを編集等する際には、当該編集に係る各種の命令を取得する。
【００２２】
さらに、本第１実施形態において、ユーザインタフェース部７１は、表示手段に表示させた加工プログラム３ｃにおいて、現在実行中の行番号にカーソル等を表示し、ユーザに視認させるようになっている。そして、数値制御装置２側で処理が実行されている間、後述する加工プログラム解析部５１から現在実行中の行番号を取得し、当該行番号にカーソルを移動させるとともに、加工プログラム３ｃの表示を更新するようになっている。
【００２３】
開始データ送信部７２は、加工プログラム３ｃを途中から開始するための開始データを数値制御装置２へ送信するものである。本第１実施形態において、開始データ送信部７２は、ユーザインタフェース部７１が取得した実行開始行番号ととともに、当該実行開始行番号に対応するファイルオフセットを開始データとして、後述する加工プログラム解析部５１へ送信する。なお、当該ファイルオフセットは、上述したとおり、ユーザインタフェース部７１によって既知になっているものである。
【００２４】
加工プログラム読出部７３は、数値制御装置２からの要求に応じて加工プログラム３ｃを読み出し、数値制御装置２へ提供するものである。本第１実施形態において、加工プログラム読出部７３は、後述する加工プログラム取得部５３からの要求としてファイルオフセットを取得すると、当該ファイルオフセットに基づいて加工プログラム３ｃのファイルを直接オープンする。このため、加工プログラム読出部７３は、加工プログラム３ｃをサーチする必要がなく、直ちにユーザが行番号で指定した位置から加工プログラム３ｃを加工プログラム取得部５３へ提供する。
【００２５】
なお、加工プログラム読出部７３がファイルオフセットを取得する取得先としては、数値制御装置２に限定されるものではなく、ユーザインタフェース部７１から直接取得してもよい。ただし、本第１実施形態では、図１に示すように、ユーザインタフェース部７１と、加工プログラム読出部７３とが互いに異なるプログラム３ａ，３ｂによって機能されている。このため、加工プログラム読出部７３が、ファイルオフセットをユーザインタフェース部７１から直接取得しうるように外部処理装置３を最適化する必要がある。
【００２６】
最終行番号送信部７４は、後述する行サーチ処理を高速化するため、加工プログラム３ｃの最終行の番号である最終行番号を数値制御装置２へ送信するものである。本第１実施形態において、最終行番号送信部７４は、加工プログラム読出部７３が加工プログラム３ｃのファイルをオープンすると同時に、加工プログラム３ｃの全行数のカウントを開始する。そして、当該カウントが終了次第、直ちに最終行番号を数値制御装置２へ送信するようになっている。
【００２７】
なお、本第１実施形態では、最終行番号送信部７４が、カウントした最終行番号をそのまま数値制御装置２へ送信しているが、この構成に限定されるものではなく、最終行に対応するファイルオフセットをサーチした後、当該ファイルオフセットを数値制御装置２へ送信するようにしてもよい。また、最終行番号送信部７４は、加工プログラム３ｃ内の改行の数によって、行数をカウントするようになっている。
【００２８】
一方、数値制御装置２は、加工プログラム３ｃに基づいて工作機械１０を制御しワークの加工を行うものであり、図１に示すように、各種のデータを記憶するとともに、ＮＣ側制御手段５が演算処理を行う際のワーキングエリアとして機能するＮＣ側記憶手段４と、各種の演算処理を実行するＮＣ側制御手段５とを有している。なお、本発明に係る数値制御装置２は、いわゆるコンピュータ数値制御（ＣＮＣ：Computerized Numerical Control）等の数値制御処理を実行可能な全ての装置を含む概念である。
【００２９】
ＮＣ側記憶手段４は、ハードディスク、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、フラッシュメモリ、メモリカード等で構成されており、図１に示すように、プログラム記憶部４１と、最終行番号記憶部４２とを有している。
【００３０】
プログラム記憶部４１には、リアルタイムオペレーティングシステム（ＲＴＯＳ）が搭載されているとともに、本第１実施形態の数値制御装置２を制御するための数値制御装置用プログラム２ａがインストールされている。そして、ＮＣ側制御手段５が、当該数値制御装置用プログラム２ａを実行することにより、コンピュータを後述する各構成部としてとして機能させるようになっている。
【００３１】
最終行番号記憶部４２は、数値制御装置２が行サーチ処理を実行する際に備えて、最終行番号を記憶するものである。行サーチ処理は、後述する行サーチ部５４によって実行されるものであり、加工プログラム３ｃに無条件分岐命令（ＧＯＴＯ文）が含まれていた場合、当該無条件分岐命令によって指定された行番号を行サーチしてジャンプする処理である。本第１実施形態において、最終行番号記憶部４２は、最終行番号送信部７４から送信された最終行番号、または当該最終行番号に対応するファイルオフセットを記憶する。
【００３２】
ＮＣ側制御手段５は、ＣＰＵ（Central Processing Unit）等によって構成されており、ＮＣ側記憶手段４にインストールされた数値制御装置用プログラム２ａを実行することにより、図１に示すように、加工プログラム解析部５１と、命令信号補間部５２と、加工プログラム取得部５３と、行サーチ部５４として機能するようになっている。以下、各構成部についてより詳細に説明する。
【００３３】
加工プログラム解析部５１は、加工プログラム３ｃを解析するためのものである。本第１実施形態において、加工プログラム解析部５１は、開始データ送信部７２から開始データを受信すると、当該開始データに含まれるファイルオフセットを加工プログラム取得部５３へ渡し、外部処理装置３へ要求させる。また、加工プログラム解析部５１は、加工プログラム取得部５３によって取得された加工プログラム３ｃを解析し、その解析結果としてのブロックをブロックバッファ（図示せず）へ順次格納するようになっている。さらに、本第１実施形態において、加工プログラム解析部５１は、現在実行中の行番号を逐一ユーザインタフェース部７１へと送信して表示させ、ユーザに視認させるようになっている。
【００３４】
命令信号補間部５２は、工作機械１０を動作させるサーボ機構（図示せず）への命令信号を補間するものである。本第１実施形態において、命令信号補間部５２は、ブロックバッファからブロックを順次１つずつ取得するとともに、切削指令や位置決め指令等の命令信号を補間してサーボ機構へ出力するようになっている。
【００３５】
加工プログラム取得部５３は、加工プログラム解析部５１からの要求に応じて、加工プログラム３ｃを外部処理装置３へ要求し取得するものである。本第１実施形態において、加工プログラム取得部５３は、開始データを受信した加工プログラム解析部５１からファイルオフセットを取得すると、当該ファイルオフセットを加工プログラム読出部７３へ送信する。このため、加工プログラム取得部５３は、ユーザが行番号で指定した位置からの加工プログラム３ｃを加工プログラム読出部７３から直ちに取得する。
【００３６】
行サーチ部５４は、加工プログラム３ｃに含まれる無条件分岐命令（ＧＯＴＯ文）に従って、行番号を上方向または下方向にサーチするものである。本第１実施形態において、行サーチ部５４は、現在実行中の実行行が無条件分岐命令であれば、当該無条件分岐命令で指定されたラベルの行へジャンプさせた後、当該行から処理を続行させるようになっている。
【００３７】
具体的には、行サーチ部５４は、ジャンプ先のラベルをサーチする際、加工プログラム３ｃを下方向にサーチして現在行が最終行に到達した場合、先頭行（行番号１）へジャンプしてサーチを続行する。一方、行サーチ部５４は、加工プログラム３ｃを上方向にサーチして現在行が先頭行に到達した場合、最終行へジャンプしてサーチを続行する。
【００３８】
ただし、上述した上方向へのサーチに関し、従来の数値制御装置２では、加工プログラム３ｃに含まれる全行数をカウントしなければ最終行を把握できないため、最終行へジャンプすることになってから、数値制御装置２側で加工プログラム３ｃの全行数をカウントしている。このため、上方向への行サーチ処理を実行すると、最終行へジャンプする際に時間がかかる場合があった。
【００３９】
そこで、本第１実施形態では、数値制御装置２とは非同期に予め外部処理装置３側で加工プログラム３ｃの全行数をカウントさせておくことで、上方向への行サーチ処理を高速化している。具体的には、上述したとおり、加工プログラム読出部７３が加工プログラム３ｃをオープンすると同時に、最終行番号送信部７４が加工プログラム３ｃの全行数のカウントを開始する。そして、当該カウントが終了次第、直ちに最終行番号を数値制御装置２へ送信し、最終行番号記憶部４２へ格納させるようになっている。
【００４０】
このため、上方向の行サーチ処理が先頭行に到達した時点で、既に最終行番号送信部７４から最終行番号が送信されている場合には、最終行へジャンプする際のタイムラグが全く発生しない。また、仮に、上方向の行サーチ処理が先頭行に到達した時点で、最終行番号送信部７４でのカウントが終わっていなくても、数値制御装置２側でカウントするよりは早く終了するためタイムラグが最小限に抑えられる。
【００４１】
また、本第１実施形態において、行サーチ部５４は、最終行番号に基づいて最終行へジャンプしたとき、最終行番号を現在行としてセットする。そして、当該現在行をデクリメントすることで上方向へのサーチを続行するようになっている。このように、行番号を用いて行サーチを実行した場合、サーチ過程またはサーチ中にエラーが発生したとき、数値制御装置２がどこまでサーチしているかを外部処理装置３側で把握することが可能となる。
【００４２】
なお、本第１実施形態において、行サーチ部５４は、最終行番号に基づいてジャンプしているが、この構成に限定されるものではなく、上述したとおり、最終行に対応するファイルオフセットに基づいて最終行へジャンプしてもよい。また、行サーチ部５４によるサーチ方向は、ユーザによって上方向または下方向に適宜選択される。具体的には、ユーザは、所定の入力手段を用いてサーチ方向を選択すると、ユーザインタフェース部７１が当該選択情報を取得し、行サーチ部５４によるサーチ方向を設定するようになっている。
【００４３】
つぎに、本第１実施形態の数値制御システム１Ａによる作用について説明する。
【００４４】
本第１実施形態の数値制御システム１Ａによって工作機械１０を制御しワークの加工を行う場合、図３に示すように、外部処理装置３側において、ユーザインタフェース部７１が行番号および加工プログラム３ｃを表示手段に表示する（ステップＳ１）。このとき、ユーザインタフェース部７１は、加工プログラム３ｃを一度オープンするため、各行番号に対応するファイルオフセット（加工プログラム３ｃの先頭からのバイト数）を把握する。
【００４５】
ユーザが、表示手段に表示された加工プログラム３ｃに基づき、所望の実行開始行番号を指定すると、ユーザインタフェース部７１が当該実行開始行番号を取得する（ステップＳ２）。そして、開始データ送信部７２が、ユーザインタフェース部７１が取得した実行開始行番号ととともに、当該実行開始行番号に対応するファイルオフセットを開始データとして、数値制御装置２側の加工プログラム解析部５１へ送信する（ステップＳ３）。
【００４６】
外部処理装置３から開始データを受信した数値制御装置２では、加工プログラム解析部５１が、当該開始データに含まれるファイルオフセットを加工プログラム取得部５３へ渡すと、当該加工プログラム取得部５３が当該ファイルオフセットを外部処理装置３側の加工プログラム読出部７３へ送信する（ステップＳ４）。
【００４７】
このように、本第１実施形態では、数値制御装置２を経由して、ユーザインタフェース部７１で特定されたファイルオフセットを加工プログラム読出部７３へ送信している。このため、本第１実施形態の外部処理装置３は、本第１実施形態の数値制御装置２のみならず、既存の数値制御装置２との間でも互換性が確保される。ただし、加工プログラム読出部７３が、ユーザインタフェース部７１から直接ファイルオフセットを取得するように構成してもよい。
【００４８】
つづいて、加工プログラム取得部５３からファイルオフセットを受信した加工プログラム読出部７３は、当該ファイルオフセットに基づいて加工プログラム３ｃのファイルを直接オープンする（ステップＳ６）。このため、外部処理装置３では、加工プログラム３ｃをサーチする時間が一切必要なく、ユーザが行番号で指定した位置からの加工プログラム３ｃを直ちに加工プログラム取得部５３へ提供する（ステップＳ８）。
【００４９】
また、本第１実施形態では、上記ステップＳ６において、加工プログラム読出部７３が加工プログラム３ｃのファイルをオープンすると同時に、最終行番号送信部７４が、加工プログラム３ｃの全行数のカウントを開始する（ステップＳ７）。そして、当該カウントが終了次第（ステップＳ９：ＹＥＳ）、直ちに最終行番号を数値制御装置２へ送信し（ステップＳ１０）、最終行番号記憶部４２に記憶させる。
【００５０】
つぎに、外部処理装置３から加工プログラム３ｃを取得した数値制御装置２では、加工プログラム解析部５１が加工プログラム３ｃを解析して実行を開始する（ステップＳ１１）。そして、加工プログラム３ｃ中に無条件分岐命令（ＧＯＴＯ文）がある場合（ステップＳ１２：ＹＥＳ）、行サーチ部５４が、当該無条件分岐命令で指定されたラベルの行へジャンプさせる（ステップＳ１３）。
【００５１】
具体的には、図４に示すように、まず、行サーチ部５４はサーチ方向を確認し、上方向に設定されている場合（ステップＳ２１：上方向）、現在サーチしている現在行が先頭行か否かを判定する（ステップＳ２２）。そして、現在行が先頭行でなければ（ステップＳ２２：ＮＯ）、当該現在行をデクリメントすることで（ステップＳ２５）、１行上に移動させる。このように、行サーチ処理に行番号を用いることで、サーチ過程またはサーチ中にエラーが発生したとき、どこまでサーチしたかを外部処理装置３側で把握することが可能となる。
【００５２】
一方、現在行が先頭行に到達した場合（ステップＳ２２：ＹＥＳ）、行サーチ部５４は、最終行番号記憶部４２に最終行番号が格納され次第（ステップＳ２３：ＹＥＳ）、当該最終行番号を現在行としてセットし、最終行へジャンプする（ステップＳ２４）。このように、最終行へジャンプすることになってから、数値制御装置２側で加工プログラム３ｃの行数をカウントする従来技術と比較して、外部処理装置３側で予めカウントさせるため、最終行へジャンプする際のタイムラグが全く発生しないか、発生したとしても最小限に抑えられる。
【００５３】
上記ステップＳ２４で最終行へジャンプした後、または上記ステップＳ２５で現在行がデクリメントされた後、行サーチ部５４は、現在行のラベルが無条件分岐命令で指定されたラベルに一致するか否かを確認する（ステップＳ２６）。そして、両者が一致しない限り（ステップＳ２６：ＮＯ）、ステップＳ２２へと戻り、上述した上方向へのサーチを続行する。
【００５４】
一方、現在行のラベルが無条件分岐命令で指定されたラベルと一致した場合（ステップＳ２６：ＹＥＳ）、行サーチ部５４は、当該ラベルの行へジャンプさせ（ステップＳ２７）、行サーチ処理を終了する。
【００５５】
なお、図５に示すように、サーチ方向が下方向に設定されている場合（ステップＳ２１：下方向）、行サーチ部５４は、現在サーチしている現在行が最終行か否かを判定する（ステップＳ２８）。そして、現在行が最終行でなければ（ステップＳ２８：ＮＯ）、当該現在行をインクリメントすることで（ステップＳ３０）、１行下に移動させる。
【００５６】
一方、現在行が最終行に到達した場合（ステップＳ２８：ＹＥＳ）、行サーチ部５４は、現在行を１にセットし、先頭行（行番号１）へジャンプする（ステップＳ２９）。そして、現在行のラベルが無条件分岐命令で指定されたラベルと一致しない限り（ステップＳ３１：ＮＯ）、ステップＳ２８へと戻り、上述した下方向へのサーチを続行する。一方、現在行のラベルが無条件分岐命令で指定されたラベルと一致した場合（ステップＳ３１：ＹＥＳ）、行サーチ部５４は、当該ラベルの行へジャンプさせ（ステップＳ３２）、行サーチ処理を終了する。
【００５７】
つづいて、図３に戻り、加工プログラム３ｃ中に無条件分岐命令（ＧＯＴＯ文）がない場合（ステップＳ１２：ＮＯ）、または行サーチ処理（ステップＳ１３）が終了すると、命令信号補間部５２が現在行を実行するとともに（ステップＳ１４）、加工プログラム解析部５１が現在実行中の行番号とともに加工プログラム３ｃをユーザインタフェース部７１へと送信し（ステップＳ１５）、次の行番号へと処理を進める（ステップＳ１６）。
【００５８】
そして、加工プログラム３ｃが終了しない限り（ステップＳ１７：ＮＯ）、ステップＳ１２へと戻り、上述した処理を繰り返すようになっている。なお、加工プログラム解析部５１から現在実行中の行番号と加工プログラム３ｃを受信したユーザインタフェース部７１は、表示手段における表示を更新し（ステップＳ１８）、現在実行中の行番号や加工処理をユーザに認識させる。
【００５９】
以上のような本第１実施形態によれば、以下のような効果を奏する。
１．大きなファイルサイズの加工プログラム３ｃを途中から実行する際のサーチ時間が顕著になるのを抑制して、迅速に加工プログラム３ｃの実行を開始することができる。
２．従来と比較して、最終行番号のカウント処理を迅速に終了させることができる。
３．上方向への行サーチ処理において、先頭行から最終行へジャンプするときのタイムラグをゼロにするか、少なくとも短縮することができる。
４．行サーチ処理に行番号を用いることで、サーチ過程またはサーチ中にエラーが発生しても、どこまでサーチしたかを外部処理装置３側で把握することができる。
【００６０】
つぎに、本発明に係る数値制御システム１Ｂの第２実施形態について説明する。なお、本第２実施形態のうち、上述した第１実施形態の構成やステップと同一若しくは相当する構成やステップについては、同一の符号を付して再度の説明を省略する。
【００６１】
本第２実施形態の特徴は、行サーチ処理において、上方向のサーチが先頭行に到達した場合、あるいは下方向のサーチが最終行に到達した場合、現在実行中の実行行へジャンプする点にある。
【００６２】
本第２実施形態において、数値制御システム１Ｂは、図６に示すように、第１実施形態における最終行番号送信部７４および最終行番号記憶部４２を有しておらず、別途、実行行番号記憶部４３を有している点で、第１実施形態の数値制御システム１Ａと異なっている。
【００６３】
実行行番号記憶部４３は、数値制御装置２のＮＣ側記憶手段４に設けられており、行サーチ部５４が行サーチ処理を実行する際に備えて、現在実行中の実行行番号を記憶するものである。本第２実施形態において、加工プログラム解析部５１は、現在実行中の行番号が変わる度に、実行行番号記憶部４３に記憶されている実行行番号の値を更新するようになっている。
【００６４】
また、本第２実施形態において、行サーチ部５４は、加工プログラム３ｃを上方向にサーチして現在行が先頭行に到達した場合、現在実行中の実行行へジャンプした後、下方向にサーチを続行する。一方、行サーチ部５４は、加工プログラム３ｃを下方向にサーチして現在行が最終行に到達した場合、現在実行中の実行行へジャンプした後、上方向にサーチを続行するようになっている。
【００６５】
つぎに、本第２実施形態の数値制御システム１Ｂによる作用について説明する。
【００６６】
まず、数値制御装置２と外部処理装置３との間のやりとりは、上述したステップＳ７、ステップＳ９およびステップＳ１０が行われない点を除き、図３と同一である。一方、行サーチ処理を実行する際は、図７に示すように、第１実施形態と同様、行サーチ部５４がサーチ方向を確認し、上方向に設定されている場合（ステップＳ４１：上方向）、現在サーチしている現在行が先頭行か否かを判定する（ステップＳ４２）。
【００６７】
当該判定の結果、現在行が先頭行でなければ（ステップＳ４２：ＮＯ）、現在行をデクリメントすることで（ステップＳ４３）、１行上に移動させる。そして、現在行のラベルが無条件分岐命令（ＧＯＴＯ文）で指定されたラベルに一致しなければ（ステップＳ４５：ＮＯ）、処理はステップＳ４２へと戻る。一方、現在行のラベルが無条件分岐命令で指定されたラベルに一致すれば（ステップＳ４５：ＹＥＳ）、行サーチ部５４は、当該ラベルの行へジャンプさせ（ステップＳ４６）、行サーチ処理を終了する。
【００６８】
一方、上記ステップＳ４２における判定の結果、現在行が先頭行に到達した場合（ステップＳ４２：ＹＥＳ）、行サーチ部５４は、実行行番号記憶部４３に記憶されている実行行番号を現在行としてセットし（ステップＳ４４）、実行行へジャンプする。その後、図８の「Ａ」へと移動し、当該実行行から下方向にサーチを続行する。
【００６９】
一方、上記ステップＳ４１において、サーチ方向が下方向に設定されている場合（ステップＳ４１：下方向）、図８に示すように、現在サーチしている現在行が最終行か否かを判定する（ステップＳ４７）。
【００７０】
当該判定の結果、現在行が最終行でなければ（ステップＳ４７：ＮＯ）、現在行をインクリメントすることで（ステップＳ４８）、１行下に移動させる。そして、現在行のラベルが無条件分岐命令で指定されたラベルに一致しなければ（ステップＳ５０：ＮＯ）、処理はステップＳ４７へと戻る。一方、現在行のラベルが無条件分岐命令で指定されたラベルに一致すれば（ステップＳ５０：ＹＥＳ）、行サーチ部５４は、当該ラベルの行へジャンプさせ（ステップＳ５１）、行サーチ処理を終了する。
【００７１】
一方、上記ステップＳ４７における判定の結果、現在行が最終行に到達した場合（ステップＳ４７：ＹＥＳ）、行サーチ部５４は、実行行番号記憶部４３に記憶されている実行行番号を現在行としてセットし（ステップＳ４９）、実行行へジャンプする。その後、図７の「Ｂ」へと移動し、当該実行行から上方向にサーチを続行する。
【００７２】
以上のような本第２実施形態によれば、行サーチ処理が先頭行または最終行に到達した後のジャンプ先が、数値制御装置２において常に把握されている実行行であるため、ジャンプする際のタイムラグの発生を確実に防止することができる。
【００７３】
なお、本発明に係る数値制御システム１Ａ，１Ｂは、前述した各実施形態に限定されるものではなく、適宜変更することができる。
【符号の説明】
【００７４】
１Ａ，１Ｂ  数値制御システム
２  数値制御装置
２ａ  数値制御装置用プログラム
３  外部処理装置
３ａ  ＵＩ用プログラム
３ｂ  提供用プログラム
３ｃ  加工プログラム
４  ＮＣ側記憶手段
５  ＮＣ側制御手段
６  外部側記憶手段
７  外部側制御手段
１０  工作機械
４１  プログラム記憶部
４２  最終行番号記憶部
４３  実行行番号記憶部
５１  加工プログラム解析部
５２  命令信号補間部
５３  加工プログラム取得部
５４  行サーチ部
６１  プログラム記憶部
７１  ユーザインタフェース部
７２  開始データ送信部
７３  加工プログラム読出部
７４  最終行番号送信部
【図１】
0006485950.tif 000002
【図２】
0006485950.tif 000003
【図３】
0006485950.tif 000004
【図４】
0006485950.tif 000005
【図５】
0006485950.tif 000006
【図６】
0006485950.tif 000007
【図７】
0006485950.tif 000008
【図８】
0006485950.tif 000009