(57)【要約】【課題】  変換元と変換先の指令が一対一で対応していない場合であっても、プログラムの変換を可能とし、変換元のブロックと変換先のブロックとの対応関係を良好に把握する。【解決手段】  第１の加工機の第１のＮＣプログラムを第２の加工機の第２のＮＣプログラムに変換するプログラム変換装置であって、第１のＮＣプログラムを解析する解析手段103と、解析手段に解析結果に基づいて第２のＮＣプログラムに変換する変換手段105を備える。解析手段103は、第１のプログラムの１又は複数のブロックを解析する。第１のプログラムを１ブロックずつ解析してブロックが指令する機能を抽出し、第２のプログラムにおいてこの機能に対応する指令を抽出する。変換手段105は、解析手段103で抽出した指令を用いて第１のプログラムのブロックを第２のプログラムのブロックに変換する。変換元のブロックと変換先のブロックとについて、空白行を付加して同じ画面に対照表示する。【選択図】  図１２
2006293744.tif 000002
【特許請求の範囲】
【請求項１】
第１の加工機でワークを加工するための第１のＮＣプログラムを第２の加工機でワークを加工するための第２のＮＣプログラムに変換するプログラム変換装置であって、
前記第１のＮＣプログラムを解析する解析手段と、
前記解析手段に解析結果に基づいて前記第２のＮＣプログラムに変換する変換手段を具備し、
前記解析手段は、前記第１のＮＣプログラムの１又は複数のブロックを解析し、
前記変換手段は前記１又は複数のブロックに対応する前記第２のＮＣプログラムの１又は複数のブロックに変換することを特徴とするプログラム変換装置。
【請求項２】
前記解析手段は、前記第１のＮＣプログラムを１ブロックずつ解析してブロックが指令する機能を抽出し、第２のＮＣプログラムにおいて前記機能に対応する指令を抽出し、
前記変換手段は、抽出した前記指令を用いて第１のＮＣプログラムのブロックを第２のＮＣプログラムのブロックに変換することを特徴とする、請求項１に記載のプログラム変換装置。
【請求項３】
前記変換前の第１のＮＣプログラムと前記変換後のＮＣプログラムを表示する表示手段を具備し、
前記表示手段は変換前の第１のＮＣプログラムの１又は複数のブロックと、当該ブロックに対応する変換後の第２のＮＣプログラムの１又は複数のブロックとを、表示画面上において対応させて表示することを特徴とする請求項１又は２に記載のプログラム変換装置。
【請求項４】
前記表示手段は、変換前の第１のＮＣプログラムの１ブロックと変換後の第２のＮＣプログラムの複数ブロックとが対応する場合、
前記１ブロックの表示位置と前記複数ブロックの最初のブロックの表示位置とを表示画面上において同一レベルで表示するとともに、前記変換前の第１のＮＣプログラムの１ブロックに続くブロックは少なくとも前記変換後の第２のＮＣプログラムの複数ブロックに相当する分だけ空白行を表示することを特徴とする請求項３に記載のプログラム変換装置。
【請求項５】
前記表示手段は、変換前の第１のＮＣプログラムの複数ブロックと変換後の第２のＮＣプログラムの１ブロックとが対応する場合、
前記複数ブロックの最初のブロックの表示位置と前記１ブロックの表示位置とを表示画面上において同一レベルで表示するとともに、前記変換後の第２のＮＣプログラムの１ブロックに続くブロックは少なくとも前記変換前の第１のＮＣプログラムの複数ブロックに相当する分だけ空白行を表示することを特徴とする請求項３に記載のプログラム変換装置。
【請求項６】
前記表示手段は、変換前の第１のＮＣプログラムの複数ブロックと変換後の第２のＮＣプログラムの複数ブロックとが対応する場合、
前記変換前の複数ブロックの最初のブロックの表示位置と前記変換後の複数のブロックの最初のブロックの表示位置とを表示画像上において同一レベルで表示するとともに、変換前のブロック又は変換後のブロックの何れかのブロック数が少ないブロックに、当該ブロック数に相当する部分の空白行を表示することを特徴とする請求項２に記載のプログラム変換装置。
【請求項７】
前記解析手段は、変換後の第２のＮＣプログラムのブロックを生成するための各種指令コードが、変換前の第１のＮＣプログラムのブロックに含まれる機能又は等価な機能を有さないとき、前記表示手段に当該ブロックについてエラーを表示させることを特徴とする請求項３に記載のプログラム変換装置。
【請求項８】
前記解析変換手段は、変換前の第１のＮＣプログラムのブロックのプログラム内容と、変換後の第２のＮＣプログラムのブロックのプログラム内容が異なり、かつ、変換前の第１のＮＣプログラムのブロックの機能と、変換後の第２のＮＣプログラムのブロックの機能が等価であるとき、前記表示手段に前記少なくとも何れかのブロックに、プログラム内容が相違することをメッセージ表示させることを特徴とする請求項３に記載のプログラム変換装置。
【請求項９】
前記表示手段は、前記エラー又はメッセージの表示を、表示内容に応じた表示態様で表示することを特徴とする請求項７又は請求項８に記載のプログラム変換装置。
【請求項１０】
前記表示手段は、前記第１のＮＣプログラム及び／又は第２のＮＣプログラムを、指令コードに応じた表示態様で表示することを特徴とする請求項３に記載のプログラム変換装置。
【請求項１１】
前記変換後の第２のＮＣプログラムは編集可能であり、
前記表示手段は、編集後の第２のＮＣプログラムを前記変換前の第１のＮＣプログラムと対比して表示することを特徴とする請求項３乃至１０の何れかに記載のプログラム変換装置。
【請求項１２】
プログラム変換装置は、放電加工機に組み込まれることを特徴とする請求項１乃至１１の何れかに記載のプログラム変換装置。
【請求項１３】
プログラム変換装置は汎用パソコンに組み込まれることを特徴とする請求項１乃至１１の何れかに記載のプログラム変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム変換装置に関し、ワイヤカット放電加工機等の加工機に用いる加工プログラムを変換するプログラム変換装置に関する。
【背景技術】
【０００２】
ワイヤカット放電加工機等の加工機は、その加工動作をＮＣプログラムによって指令している。この加工動作を指令するＮＣプログラムはワイヤカット放電加工機メーカごとに異なり、それぞれ互換性を有していない。従って、複数メーカのワイヤ放電加工機を所有するユーザは、メーカごとにＮＣプログラムを用意しなければならない。
【０００３】
このような問題を解決する方法として、従来からＮＣプログラムを変換する機能が知られているが、メーカごとにＮＣプログラムの指令形式が大きく異なっているため、このＮＣプログラムの変換は十分なものではなく、広く活用されるに至っていない。
【０００４】
従来知られているプログラム変換として、タレットパンチプレス用の加工プログラムを、レーザー加工用の加工プログラムに変換することが知られている。このプログラム変換では、予め加工形状が設定されているタレットパンチプレスを用いた加工プログラムを、同加工をレーザー加工で行わせるための加工プログラムに変換するもので、加工プログラムに応じたレーザー加工の加工経路を生成するものであり、タレットパンチプレスの加工に対応してプログラム変換のためのサブルーチンを用意しておくものである（特許文献１参照）。
【０００５】
また、ＮＣ工作機械において、旧機種用のプログラムを新機種用のプログラムに変換することによって、類似機種間でプログラムに互換性を持たせることが開示されている。この変換では、機械名や指令をテーブルメモリに対応させて格納しておき、文字列変換によって変換元のプログラムを変換先のプログラムに変換している。また、このプログラム変換において、変換元と変換結果のプログラムを並べて対照表示することが開示されている（特許文献２参照）。
【０００６】
また、変換テーブルを用いて、ＮＣデータフォーマットが異なる数値制御装置において、変換テーブルを用いて実行形式のＮＣデータを別のタイプのＮＣデータに変換することが知られている（特許文献３参照）。
【０００７】
【特許文献１】特開昭６２−２９２２９０号公報
【特許文献２】特開昭６１−２５２１２号公報
【特許文献３】特開昭６２−２６７８０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従来提案されているプログラム変換は、変換テーブル等を用いてある文字列を他の文字列に変換するという方法であり、変換元のプログラムの指令が変換先のプログラムの指令に単に置き換えられるものである。そのため、変換元のプログラムに用いられる指令形成と変換先のプログラムに用いられる指令形式が一対一で対応している場合には良好に変換を行うことができるが、通常、変換元と変換先の指令形成が一対一で対応しているとは限らず、単に指令を置き換えるといった単純な操作では十分な変換を行うことができないという問題がある。
【０００９】
例えば、変換元の一指令は、変換先において複数の指令を組み合わせてはじめて実行できる場合、逆に、変換元の複数の指令が変換先では一指令で実行することができるといったように、単純な指令の置き換えでは対応することができない。
【００１０】
また、プログラム変換は、多くはその結果のみを画面上に表示することで変換を確認している。このように、単に変換結果のみを表示した場合には、変換元と変換先とを比較して変換状態を把握することができないという問題がある。
【００１１】
このようなプログラム変換における表示において、前記した特許文献２では、変換元と変換結果のプログラムを並べて対照表示することが示されている。しかしながら、この対照表示では、２つのプログラムを並べて表示するに過ぎない。
【００１２】
プログラムを変換した場合、変換元の指令を記述するブロック数と変換先の指令を記述するブロック数とは必ずしも一致するとは限らない。例えば、１ブロックが複数ブロックに変換される場合、複数ブロックが１ブロックに変換される場合、あるいは、複数ブロックが異なる数の複数ブロックに変換される場合等がある。このように、変換元と変換結果とでプログラムのブロック数が変化した場合には、同じ内容の指令について変換元と変換先との対応関係を確認することが困難であるという問題がある。
【００１３】
そこで、本発明は、変換元と変換先の指令が一対一で対応していない場合であっても、プログラムの変換を可能とすることを目的とする。
また、プログラム変換において、変換元のブロックと変換先のブロックとの対応関係を良好に把握することを目的とする。
【課題を解決するための手段】
【００１４】
本発明のプログラム変換装置では、単に指令間の置き換えではなく、変換元のプログラムに記述される指令の機能を解析し、その機能を変換先で実現する指令を抽出することによって変換先の形式によるＮＣプログラムに変換する。
【００１５】
本発明のプログラム変換装置は、第１の加工機でワークを加工するための第１のＮＣプログラムを第２の加工機でワークを加工するための第２のＮＣプログラムに変換するプログラム変換装置であって、第１のＮＣプログラムを解析する解析手段と、解析手段に解析結果に基づいて第２のＮＣプログラムに変換する変換手段を備える。
【００１６】
解析手段は、第１のＮＣプログラムの１又は複数のブロックを解析する。この解析において、解析手段は第１のＮＣプログラムを１ブロックずつ解析してブロックが指令する機能を抽出し、第２のＮＣプログラムにおいてこの機能に対応する指令を抽出する。変換手段は、解析手段で抽出した指令を用いて第１のＮＣプログラムのブロックを第２のＮＣプログラムのブロックに変換する。
【００１７】
また、本発明のプログラム変換装置は、変換元のブロックと変換結果である変換先のブロックとについて、空白行を付加して同じ画面に対照して表示する。
プログラム変換装置は、変換前の第１のＮＣプログラムと変換後のＮＣプログラムを表示する表示手段を備える。
【００１８】
本発明の表示手段は、変換前の第１のＮＣプログラムの１又は複数のブロックと、このブロックに対応する変換後の第２のＮＣプログラムの１又は複数のブロックとを、表示画面上において対応させて表示する。
【００１９】
対応表示の第１の形態は、変換前の第１のＮＣプログラムの１ブロックと変換後の第２のＮＣプログラムの複数ブロックとが対応する場合において、１ブロックの表示位置と複数ブロックの最初のブロックの表示位置とを表示画面上において同一レベルで表示するとともに、変換前の第１のＮＣプログラムの１ブロックに続くブロックは少なくとも変換後の第２のＮＣプログラムの複数ブロックに相当する分だけ空白行を表示する。
【００２０】
対応表示の第２の形態は、変換前の第１のＮＣプログラムの複数ブロックと変換後の第２のＮＣプログラムの１ブロックとが対応する場合において、複数ブロックの最初のブロックの表示位置と前記１ブロックの表示位置とを表示画面上において同一レベルで表示するとともに、変換後の第２のＮＣプログラムの１ブロックに続くブロックは少なくとも変換前の第１のＮＣプログラムの複数ブロックに相当する分だけ空白行を表示する。
【００２１】
対応表示の第３の形態は、変換前の第１のＮＣプログラムの複数ブロックと変換後の第２のＮＣプログラムの複数ブロックとが対応する場合において、変換前の複数ブロックの最初のブロックの表示位置と前記変換後の複数のブロックの最初のブロックの表示位置とを表示画像上において同一レベルで表示するとともに、変換前のブロック又は変換後のブロックの何れかのブロック数が少ないブロックに、そのブロック数に相当する部分の空白行を表示する。
また、本発明の解析手段は、表示手段にエラー表示あるいはメッセージ表示を行わせる。
【００２２】
解析手段は、変換後の第２のＮＣプログラムのブロックを生成するための各種指令コードが、変換前の第１のＮＣプログラムのブロックに含まれる機能又は等価な機能を有さないとき、そのブロックは加工が行われないブロック又は加工が正しく行われないブロックであると判定して、表示手段にそのブロックについてエラーを表示させる。
【００２３】
また、変換前の第１のＮＣプログラムのブロックの機能と、変換後の第２のＮＣプログラムのブロックの機能が等価であり、正しく加工が行われるが、変換前の第１のＮＣプログラムのブロックのプログラム内容と、変換後の第２のＮＣプログラムのブロックのプログラム内容が異なる場合がある。この場合には、解析変換手段は、表示手段に変換前のブロック及び／又は変換後のブロックに、正しく加工は行われるが変換後のプログラム内容は異なるものであることのメッセージを表示させる。
【００２４】
また、表示手段は、エラー又はメッセージの表示を、他の表示とは異なる表示態様で表示する。表示態様は、色、フォント、文字サイズ、文字の装飾、あるいはこれらの組み合わせとすることができ、表示属性を付与することで指示する。
【００２５】
この表示属性は、エラーやメッセージ等の表示内容に付与することで、表示内容に応じた表示態様とする他、指令コードに付与することで、指令コードに応じた表示態様とすることができる。
【００２６】
また、変換後の第２のＮＣプログラムは編集可能とすることができ、表示手段は、第２のＮＣプログラムについて編集前及び編集後の状態を変換前の第１のＮＣプログラムと対比して表示する。
プログラム変換装置は、放電加工機に組み込むことができる他、汎用パソコンに組み込むことができる。
【発明の効果】
【００２７】
本発明によれば、プログラムを解析して得られた機能を介して変換を行うことにより、変換元と変換先の指令が一対一で対応していない場合であっても、プログラムの変換を可能とする。また、変換先に対応する機能が無い場合は、その旨を表示等で通知することで確認することができる。
【００２８】
また、本発明によれば、変換元のブロックと変換結果である変換先のブロックとについて、空白行を付加して同じ画面に対照して表示すことによって、ブロックごとの対応の把握を容易とすることができ、一対一の変換はもとより、１ブロックが複数ブロックに変換された場合、複数ブロックが１ブロックに変換される場合、あるいは、複数ブロックが異なる数の複数ブロックに変換される場合などにおいても、変換元と変換結果を機能ごとに対応して確認することができる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の実施の形態について、図を参照しながら詳細に説明する。  
図１は本発明のプログラム変換装置によるプログラム変換の動作を説明するためのフローチャートである。
本発明のプログラム変換装置は、以下の概略動作によって変換元のＮＣプログラムを変換して変換後のＮＣプログラムを生成する。
【００３０】
プログラム変換装置は、変換元のＮＣプログラムを選択すると共に、変換先の加工機で使用するＮＣプログラムのタイプを選択する(S1)。プログラム変換装置は、入力した変換元のプログラムの各ブロックを解析して記述される機能を抽出し、変換先のプログラムタイプに対応する機能を抽出し、変換先の形式によってＮＣプログラムを生成することでプログラム変換を行う(S2)。変換したＮＣプログラムは、表示手段に表示する。この表示において、変換前のＮＣプログラムと変換後のＮＣプログラムとを対照表示させることによって、変換の確認を行う(S3)。変換結果である変換後のＮＣプログラムは、必要に応じて編集を行う(S4)。
【００３１】
ここで、本発明のプログラム変換装置は、S2の変換動作工程において、変換元のプログラムの各ブロックを解析して機能を抽出し、この機能に基づいて変換先のプログラムに変換することを第１の特徴とする。これによって、単に指令コードを一対一的で置き換えることでは、対応できなかった一対多、多対一、あるいは多対多の指令コードの対応であってもプログラム変換を行うことができる。
【００３２】
また、本発明のプログラム変換装置は、S3の対照表示工程において、表示画面上において、対応する機能について、変換元のプログラムのブロックと変換先のプログラムのブロックとのレベルを合わせることを第２の特徴とする。これによって、プログラムの機能毎に変換元と変換先とのブロックの対応関係の把握が容易となる。
【００３３】
以下、図２〜図６を用いて、前記した本発明の第１の特徴である変換の各形態について説明し、図７〜図１０を用いて、前記した本発明の第２の特徴である対照表示の各形態について説明する。
【００３４】
プログラム変換装置は、プログラム変換の対象となる各プログラムについて、そのプログラムに使用される指令コードとその機能を格納する。例えば、変換元のプログラムをプログラムＰとし、変換先のプログラムをプログラムＱとする場合、プログラム変換装置は、プログラムＰとプログラムＱについて各指令コードと機能を対応させて記憶手段等に格納している。
【００３５】
プログラム変換装置は、指令コードと機能との対応関係を用いて、変換元プログラムのブロックを変換先プログラムのブロックに変換する。このブロック変換において、変換元の１ブロックと変換先の１ブロックが一対一で変換される場合、変換元の１ブロックが変換先の複数ブロックに一対多で変換される場合、変換元の複数ブロックが変換先の１ブロックに多対一で変換される場合、変換元の複数ブロックが変換先の複数ブロックに多対多で変換される場合等がある。
【００３６】
図２は本発明によるプログラム変換の第１の解析形態を説明するための図である。第１の解析形態は、変換元の１ブロックが変換先の１ブロックに一対一で変換される場合である。
【００３７】
変換元のプログラム（ここでは、変換元プログラムＰとする）中の１ブロックを解析し、そのブロックに指令コード（ここでは指令コードP1とする）が記述される場合には、そのプログラムに使用される指令コードと機能との対応関係から、指令コードP1が意味する機能（ここでは機能１とする）を抽出する。
【００３８】
次に、抽出した機能１について、変換先のプログラムに使用される指令コードと機能との対応関係から、機能１に対応する指令コード（ここでは指令コードQ1）を抽出する。このとき、変換元の指令コードP1と変換先の指令コードQ1とが機能１を介して一対一で対応しているため、指令コードQ1によって変換先のブロックを生成する。これによって、変換元のプログラムのブロックが変換先のプログラムのブロックに変換される。
【００３９】
図３は本発明によるプログラム変換の第２の解析形態を説明するための図である。第２の解析形態は、変換元の１ブロックが変換先の複数ブロックに一対多で変換される場合である。
【００４０】
変換元のプログラムＰ中の１ブロックを解析し、そのブロックに指令コードP1が記述される場合には、そのプログラムに使用される指令コードと機能との対応関係から、指令コードP1が意味する機能１を抽出する。
【００４１】
次に、抽出した機能１について、変換先のプログラムに使用される指令コードと機能との対応関係から、機能１に対応する指令コード（ここでは指令コードQ1-1と指令コードQ1-2）を抽出する。このとき、変換元の指令コードP1と変換先の指令コードQ1-1及び指令コードQ1-2とが機能１を介して一対多で対応しているため、指令コードQ1-1及び指令コードQ1-2によって変換先のブロックを生成する。これによって、変換元のプログラムのブロックが変換先のプログラムのブロックに変換される。
【００４２】
図４は本発明によるプログラム変換の第３の解析形態を説明するための図である。第３の解析形態は、変換元の複数ブロックが変換先の１ブロックに多対一で変換される場合である。
【００４３】
変換元のプログラムＰ中の２ブロックを解析し、その２ブロックに指令コードP1-1と指令コードP1-2が記述される場合には、そのプログラムに使用される指令コードと機能との対応関係から、指令コードP1-1及び指令コードP1-2が意味する機能１を抽出する。
【００４４】
次に、抽出した機能１について、変換先のプログラムに使用される指令コードと機能との対応関係から、機能１に対応する指令コードQ1を抽出する。このとき、変換元の指令コードP1-1及び指令コードP1-2と変換先の指令コードQ1とが機能１を介して多対一で対応しているため、指令コードQ1によって変換先のブロックを生成する。これによって、変換元のプログラムのブロックが変換先のプログラムのブロックに変換される。
【００４５】
図５は本発明によるプログラム変換の第４の解析形態を説明するための図である。第４の解析形態は、変換元の複数ブロックが変換先の複数ブロックに多対多で変換される場合である。
【００４６】
変換元のプログラムＰ中の３ブロックを解析し、その３ブロックに指令コードP1-1，指令コードP1-2，指令コードP1-3が記述される場合には、そのプログラムに使用される指令コードと機能との対応関係から、指令コードP1-1，指令コードP1-2，及び指令コードP1-3が意味する機能１を抽出する。
【００４７】
次に、抽出した機能１について、変換先のプログラムに使用される指令コードと機能との対応関係から、機能１に対応する指令コードQ1-1及び指令コードQ1-2を抽出する。このとき、変換元の指令コードP1-1，指令コードP1-2，及び処理コードP1-3と、変換先の指令コードQ1-1及び指令コードQ1-2とが機能１を介して多対多で対応しているため、指令コードQ1-1及び指令コードQ1-2によって変換先のブロックを生成する。これによって、変換元のプログラムのブロックが変換先のプログラムのブロックに変換される。
【００４８】
図６は本発明によるプログラム変換において、変換先で対応する機能が無い場合の動作を説明するための図である。
変換元のプログラムＰ中のブロックを解析し、そのブロックに指令コードPkが記述される場合には、そのプログラムに使用される指令コードと機能との対応関係から、指令コードPkが意味する機能kを抽出する。
【００４９】
次に、抽出した機能１について、変換先のプログラムに使用される指令コードと機能との対応関係から、機能１に対応する指令コードを検索する。このとき、対応する機能が存在しない場合がある。この場合には、対応する指令コードを抽出することができないため、変換先のプログラムに対応する機能が無いとしてエラー表示を行い、オペレータに通知する。
【００５０】
次に、本発明の対照表示の各形態について説明する。
プログラム変換装置は、前記した各ブロック変換での各形態に対応して、変換元ブロックと変換先ブロックを対照表示する。
【００５１】
対照表示では、変換元の１ブロックが変換先の複数ブロックに一対多で変換される場合、変換元の複数ブロックが変換先の１ブロックに多対一で変換される場合、変換元の複数ブロックが変換先の複数ブロックに多対多で変換される場合において、対応するブロックが表示面上でのレベルが一致するように空白行を付加して表示する。以下、各場合について説明する。
【００５２】
図７は本発明によるプログラム変換の第１の対照表示形態を説明するための図である。第１の対照表示形態は、変換元の１ブロックが変換先の１ブロックに一対多で変換される場合を示している。
【００５３】
変換元のプログラムのブロックＡが変換先のプログラムにおいてブロックa1，a2，a3に変換された場合（図７（ａ）に示す）、表示面上において、変換元プログラムのブロックＡと変換先プログラムのブロックa1，a2，a3を並列させて表示する。このとき、変換元のブロック数は“１”であるのに対して、変換先のブロック数は“３”であるため、ブロック数の少ない変換元のブロックＡに空白行を付加して表示させる（図７（ｂ）に示す）。
【００５４】
図８は本発明によるプログラム変換の第２の対照表示形態を説明するための図である。第２の対照表示形態は、変換元の３ブロックが変換先の１ブロックに一対多で変換される例を示している。
【００５５】
変換元のプログラムのブロックA1，A2，A3が変換先のプログラムにおいてブロックａに変換された場合（図８（ａ）に示す）、表示面上において、変換元プログラムのブロックA1，A2，A3と変換先プログラムのブロックａを並列させて表示する。このとき、変換元のブロック数は“３”であるのに対して、変換先のブロック数は“１”であるため、ブロック数の少ない変換先のブロックａに空白行を付加して表示させる（図８（ｂ）に示す）。
【００５６】
図９は本発明によるプログラム変換の第３の対照表示形態を説明するための図である。第３の対照表示形態は、変換元の３ブロックが変換先の４ブロックに多対多で変換される例を示している。
【００５７】
変換元のプログラムのブロックＡが変換先のプログラムにおいてブロック1,2,3に変換され、変換元のプログラムのブロックＢが変換先のプログラムにおいてブロック2,4に変換され、変換元のプログラムのブロックＣが変換先のプログラムにおいてブロック4，5に変換された場合（図９（ａ）に示す）、表示面上において、変換元プログラムのブロックＡ，Ｂ，Ｃと変換先プログラムのブロック1〜5を並列させて表示する。このとき、変換元のブロック数は“３”であるのに対して、変換先のブロック数は“５”であるため、ブロック数の少ない変換元のブロックＡ，Ｂ，Ｃに空白行を付加して表示させる（図９（ｂ）に示す）。
【００５８】
図１０は本発明によるプログラム変換の第１〜第３の対照表示形態を組み合わせた状態を説明するための図である。ここでは、ブロックＡがブロックa1〜a3に変換され、ブロックＢがブロックｂに変換され、ブロックＣ，Ｄがブロックcdに変換され、ブロックＥがブロックｅに変換された場合を示している。
この対照表示例では、ブロックＡとブロックa1〜a3との対応関係を表すために変換元のブロックＡに空白行を付加し、ブロックＣ，Ｄとブロックcdとの対応関係を表すために変換先のブロックcdに空白行を付加して表示している（図１０（ｂ）に示す）。
【００５９】
次に、本発明のプログラム変換装置の構成について、図１１のブロック図を用いて説明する。
図１１において、プロセッサ（ＣＰＵ）１０には、ＲＯＭ１１，ＲＡＭ１２，表示制御装置（グラフィック制御装置）１３，キーボード１５，ハードディスクドライブ（ＨＤＤ）１６，フロッピィディスクドライブ（ＦＤＤ）１７，コンパクトディスクドライブ（ＣＤＤ）１９がバス２１で接続され、プロセッサ（ＣＰＵ）１０は、ＲＯＭ１１に格納されたシステムプログラムに基づいてこのプログラム変換装置を制御する。ＲＡＭ１２はデータの一次記憶及び変換元プログラム、変換先プログラムの記憶に用いられる。
【００６０】
表示制御装置１３は、プロセッサ（ＣＰＵ）１０からの表示データを表示信号に変換し、表示装置１４に送る。表示装置１４はこの表示信号を受けて画面表示を行う。この表示装置１４には、ＣＲＴ、液晶表示装置などが使用される。キーボード１５はデータ入力や指令入力に使用される操作キーや、ファンクションキー等と備える。ハードディスクドライブ（ＨＤＤ）１６は変換されたプログラムなどの電源遮断後も保存すべきデータが格納される。又、フロッピィディスクドライブ（ＦＤＤ）１７は、フロッピィディスク１８に記憶されたデータを読み込んだり、変換したプログラムを書き込む。また、ＣＤドライブ（ＣＤＤ）はＣＤ−Ｒ又はＣＤ−ＲＷ等のコンパクトディスク２０に変換されたプログラムを書き込む。
【００６１】
また、図１２は、本発明のプログラム変換が行う解析、変換等の動作を説明するための機能ブロック図である。
図１２において、入力された変換元プログラムは記憶手段１０１に格納される。記憶手段１０１から、変換元プログラムをブロック単位で読み出す。なお、このとき、各ブロックは、記憶手段１０１から各ブロックを順次を読み出すほか、バッファメモリ１０２を介して順次読み出してもよい。
【００６２】
解析手段１０３は読み出したブロックを解析する。解析では、ブロック中に記述される指令コードや指定機械やパラメータや数値を抽出する。解析手段１０３は、抽出した指令コードが意味している機能を、記憶手段１０４に格納しておいた変換元のプログラムに用いられる指令コードと機能との対応関係を参照して抽出する。
さらに、記憶手段１０４に格納しておいた変換先のプログラムに用いられる指令コードと機能との対応関係を参照して、抽出した機能に対応する指令コードを検索する。
【００６３】
変換手段１０５は、解析手段１０３で抽出した変換先のプログラムに用いる指令コードを用い、さらに、パラメータや数値の変換が必要な場合には所定の演算を行って、対応するブロックを生成して変換を行う。
【００６４】
変換されたブロックは、バッファメモリ１０６に順次格納される。表示レイアウト生成手段１０７は、バッファメモリ１０６に順次格納された変換先ブロックと、バッファメモリ１０２に格納されている変換元ブロックとを表示手段に対照表示するためレイアウト生成を行う。この際、ブロック単位で対応を行うために、不足するブロック側には空白行を付与する。表示レイアウト生成手段１０７は、変換元プログラムと変換先プログラムを表示手段１０９に対照表示する。
【００６５】
記憶手段１０８は、変換手段１０５あるいはバッファメモリ１０６から変換されたブロックを取り込んで、変換先プログラムとして記憶する。
なお、文字の表示だけでなく、変換結果のＮＣプログラムの加工動作、つまり、工作機械の工具経路やワイヤカット放電加工機のワイヤ経路などの描画も可能であり、また、キーボードの操作で、表示された変換結果の編集も可能である。
【００６６】
図１３は、本発明のプログラム変換装置の解析、変換動作、及び対照表示動作を説明するためのフローチャートである。
変換元のプログラムから１ブロックを読み込み(S11)、読み込んだ１ブロックを解析する(S12)。解析により１ブロックに記述される指令コードを読み出し、指令に対応する機能を抽出する(S13)。この機能が変換元の複数ブロックで形成される場合には、S11,S12に戻って次の変換元ブロックを読み込んで解析する(S14)。
【００６７】
抽出した機能が変換先のプログラムで使用する指令コードにあるか否かを判定する(S15)。この判定において、対応する機能が無い場合には、エラー表示やメッセージ表示を行う（S26）。
【００６８】
S14の判定で、変換先において対応する機能がある場合には、その変換先において、機能に対応する指令コードを読み出す(S16)。また、ブロック中に記述される数値やパラメータ等による演算が必要である場合には(S17)、その演算を行って演算結果を算出する(S18)。
抽出した変換先の指令コード及び演算結果を用いて変換先のブロックを形成する(S19)。
変換したブロックについて、以下のS20〜S25によって対照表示のための処理を行う。共通する機能において、変換元のブロック数と変換先のブロック数とを比較する(S20)。
【００６９】
ブロック数の比較において、変換元のブロック数が変換先のブロック数よりも多い場合にはそのブロック数の差を求め、変換先のブロックに差のブロックに相当する空白行を付加し(S21)、変換先のブロック数が変換元のブロック数よりも多い場合にはそのブロック数の差を求め、変換元のブロックに差のブロックに相当する空白行を付加する(S22)。
【００７０】
また、指令コードに表示属性が設定されている場合には(S23)、その表示属性を反映させ(S24)、表示レイアウトを形成する（S25）。
【００７１】
これによって、変換元のプログラムと変換先のプログラムとを、それぞれ対応する機能を有するブロックを単位として対照表示させることができ、また、指令コード等の表示属性が設定されている場合には、その表示属性に基づいて、色、フォント、文字サイズや文字の太さ、文字の装飾（斜線や下線）、あるいはこれらの組み合わせにより表示することができる。
【００７２】
また、エラー表示やメッセージ表示においても表示属性が設定されている場合には、その設定された表示属性で表示を行う。表示属性の初期値は、例えば、「緑色／標準の太さ」を設定しておき、必要に応じて、色、フォント、文字サイズや文字の太さ、文字の装飾（斜線や下線）などの表示属性を変更することができる。
なお、以下の表１は表示属性の一例である。
【００７３】
【表１】
2006293744.tif 000003
次に、変換例について説明する。以下では変換例として、テーパ加工によって、上下で同一のコーナ半径Ｒを加工する例について、図１４を用いて説明する。
【００７４】
以下は、変換元プログラムの一例である。
【００７５】
Ｎ２  Ｇ９０  Ｇ０１  Ｇ４２  Ｘ０．      Ｙ５．
Ｎ３  Ｘ７．５    Ｙ５．
Ｎ４  Ｇ０３  Ｘ１０．  Ｙ７．５  Ｉ０．  Ｊ２．５  Ａ−１０．  Ｇ８７
Ｎ５  Ｇ０１  Ｘ１０．  Ｙ２２．５  
・・
上記した変換元プログラムにおいて、
Ｎ２のブロックにおいて、絶対値指令コード(Ｇ９０)で指定されたＸ＝０，Ｙ＝５の位置まで、指令コード(Ｇ０１)で直線補間により加工を行い、同時に、Ｇ４２の指令コードでワイヤを進行方向を見て右側へワイヤの半径分オフセットする。なお、ここでは、オフセット量は別途指定されているものとしている。
【００７６】
次に、Ｎ３のブロックにおいて、直線補間の指令コード(Ｇ０１)によってＸ＝７．５、Ｙ＝５の位置まで加工する。なお。このブロックでは、指令コードＧ９０、Ｇ０１、Ｇ４２はモーダル(連続して有効)なので省略されている。
【００７７】
次に、Ｎ４のブロックにおいて、円弧補間左回りの指令コード(Ｇ０３)によってＸ＝１０，Ｙ＝７．５の位置まで加工する。なお、Ｉ０．及びＪ２．５の指令コードは、円弧の始点から見た中心位置を相対値で指令するものであり、ＩはＸ軸沿いの指令コードであり、ＪはＹ軸沿いの指令コードである。つまり、始点位置Ｘ＝7.5、Ｙ＝５からＹ軸のプラス方向に２．５だけずれた点Ｘ＝７．５、Ｙ＝７．５が円弧の中心となる。なお、半径は２．５である。
【００７８】
さらに、Ａ−１０．によってテーパ角度１０度が指令されている。このテーパ角がマイナスの値の場合には、ワイヤの上側が左に傾くよう制御される。
【００７９】
さらに、指令コードＧ８７によって上下同一半径Ｒが指定されているので、上面も下面も同じ半径２．５の円弧の形状となる。指令コードＧ８７の代わりに、アドレスＱで、例えばＱ３．５などと指令して下面の半径を３．５とすることも可能である。
【００８０】
次に、Ｎ５のブロックにおいて、直線補間の指令コード(Ｇ０１)でＸ＝１０、Ｙ＝２２．５の位置まで加工する。
【００８１】
上記した変換元プログラムを変換した変換結果の変換先プログラム例を以下に示す。
Ｎ２  Ｇ９０  Ｇ０１  Ｇ４２  Ｇ５２  Ｘ０．  Ｙ５．
（なお、Ｇ５２は後で追加される）
Ｎ３  Ｘ１０．  Ｇ６０  Ｒ２．５
Ｎ５  Ｙ２２．５  Ｔ−１０．
上記した変換先プログラムにおいて、
Ｎ２のブロックにおいて、“Ｇ９０  Ｇ０１  Ｇ４２  Ｘ０．Ｙ５．”については、変換対象のワイヤカット機も同じ指令を受け付けるため、変換元プログラムと変わりはない。
【００８２】
ただし、変換対象のワイヤカット機の場合、指令コードＧ４２と同じブロックにテーパの傾斜方向も指令コードＧ５１、または指令コードＧ５２で指令するため、Ｎ４のブロックの変換時にテーパ角度がＡ−１０．で指令されているのを検出し、テーパ傾斜の指令コードＧ５２を、遡ってＮ２に出力する。
【００８３】
指令コードＧ５１は進行方向を見てワイヤの上側を左に傾ける指令であり、指令コードＧ５２は右に傾ける指令である。この場合、指令コードＧ５２で右に傾ける指令を使用し、角度をマイナスの値としているため、結果的にワイヤは上側が左側に傾斜することになる。なお、変換結果として、指令コードＧ５１を出力し、角度の符号を元のマイナス角度をプラス角度に変換してもよい。
【００８４】
次に、Ｎ３のブロックにおいて、変換対象のワイヤカット機の場合には、角の位置(Ｘ１０．Ｙ５．)を指令し、円弧の半径をアドレスＲで指令するため、プログラム変換による変換結果は、“Ｘ１０．Ｒ２．５”となる。なお、指令コードＧ９０、Ｇ０１、Ｇ４２、Ｇ５２はモーダル(連続して有効)なので省略している。また、Ｙ軸の位置“５．”も変化がないので省略している。
なお、上下同一の半径Ｒの意味の指令として、指令コードＧ６０を出力している。
【００８５】
次に、Ｎ４のブロックにおいては、変換対象機では不要なため出力されない。
次に、Ｎ５のブロックにおいて、Ｙ＝２２．５までの移動指令コードを出力する。また、指令コードＧ９０、Ｇ０１、Ｇ４２、Ｇ５２はモーダル（連続して有効)なので省略し、Ｘ軸の位置も変化がないので省略している。
【００８６】
また、テーパ角度指令として、“Ｔ−１０．”を出力する。なお、変換対象機では、アドレスがＡでなくＴであり、変換対象機ではこのブロックにＴが必要となる。
【００８７】
上記プログラム変換の例では、異なるメーカの加工機間でＮＣプログラムの変換を行うことによってブロック数が変化する。つまり、変換元プログラムのＮ３とＮ４の２ブロックは、変換結果である変換先プログラムでは、Ｎ３の１ブロックに相当する。
【００８８】
また、変換元プログラムのＮ４のブロックで、テーパ角度が“Ａ−１０．”で指令されているのを検出し、変換先のプログラムではテーパ傾斜方向を右の指令する指令コードＧ５２を、Ｎ４のブロックから遡ってブロックＮ２に出力している。
【００８９】
従来のプログラム変換では、異なる加工機メーカのＮＣプログラムの変換において、ある文字列を他の文字列に変換するだけであるため、変換元プログラムと変換先プログラムとでブロック数が変化することはない。また、ある指令コードを検出し、検出した指令コードが説明されたブロック位置よりも遡って出力指令コードを設定することはない。
【００９０】
本発明のプログラム変換では、プログラム中の指令を解釈してその機能に対応する変換対象の機械に最適なプログラムの形式に変換するため、ブロック数が変化する変換についても対応することができ、また、遡って指令を出力することができる。
【００９１】
このようにブロック数が変わる場合には、変換元プログラムと変換結果の変換先プログラムを対照させて判りやすく表示することが必要となる。特に、同じワイヤカット放電加工機同士では、同等の加工が行われるかどうかを確認するために対照表示の必要度が高い。
【００９２】
なお、上記した例では、複数ブロックが１ブロックに変換されたが、１ブロックが複数ブロックに変換される場合や、複数ブロックが異なる数の複数ブロックに変換される場合もある。
【００９３】
次に、対照表示について、変換元と変換先の対応するブロック数の関係による各形態について図１５、図１６を用いて説明する。
はじめに、図１５に示すように、変換元のプログラムの全てのブロックに異なる行番号を割り付けておく。対照表示において、必ずしも行番号を表示する必要は無い。
【００９４】
変換元の１ブロックを１ブロックに変換する場合について説明する。この場合は、変換元のブロックに割り付けられた行番号をｉとし、変換結果の変換先のブロックにも行番号ｉを割り付け、変換元の行番号ｉのブロックと変換先の行番号ｉのブロックを対応する位置に表示する。図１５中のブロック“００００１”〜“００００４”はこの状態を示している。
【００９５】
次に、変換元の１ブロックを複数ブロックに変換する場合について説明する。なお、変換結果である変換先がＮブロックあるとする（Ｎ≧２）。この場合には、変換元のブロックに割り付けられた行番号をｉとし、変換結果である変換先のＮブロックに行番号ｉを割り付け、変換元のブロックと変換結果の先頭のブロックを対応する位置に表示する。
【００９６】
変換結果の２番目のブロックから変換結果のＮ番目のブロックまで、変換結果の最初のブロックの下に続けて表示する。この間、対応する変換元の表示位置には空白を表示する。図１５中のブロック“００００５”はこの状態を示している。なお、図１５の変換結果の“００００５”の行は、図示するように３行すべてに“００００５”と行番号を割り付けもよいし、それぞれ、“００００５−１”、“００００５−２”、“００００５−３”としてもよい。
【００９７】
次に、変換元の複数ブロックを１ブロックに変換する場合について説明する。ここで、変換元の行番号ｉから行番号ｋまでのブロックが、１ブロックに変換されたとする（ｋ≧ｉ＋１）。
変換元の複数ブロックの最初の行番号ｉを変換結果のブロックに割り付け、変換元の複数ブロックの最初のブロックと変換結果のブロックを対応する位置に表示する。変換元のブロックの行番号（ｉ＋１）から行番号ｋまで、変換元のブロックｉの下に続けて表示する。この間、対応する変換結果の表示位置には空白を表示する。図１５中のブロック“００００６”はこの状態を示している。
【００９８】
次に、変換元の複数ブロックを複数ブロックに変換する場合について説明する。ここで、変換元の行番号ｉから行番号ｋまでのブロックが、Ｎブロックに変換されたとする（ｋ≧ｉ＋１、Ｎ≧２）。
【００９９】
変換元の複数ブロックの最初の行番号ｉを変換結果の複数ブロックの最初の行に割り付け、変換元の行番号ｉのブロックと、Ｎブロックの変換結果のうちの最初のブロックを対応する位置に表示する。変換元の行番号（ｉ＋１）のブロックと変換結果の２番目のブロックを、それぞれ変換元の行番号ｉのブロックと、変換結果の最初のブロックの下に続けて表示する。
【０１００】
以下、変換元の行番号（ｉ＋ｊ）と変換結果の（ｊ＋１）番目のブロックとを、それぞれ変換元の行番号（ｉ＋ｊ−１）のブロックと変換結果のｊ番目のブロックの下に続けて表示することを繰り返す。この繰返しは、ｉ＋ｊ＞ｋかつｊ＞Ｎとなるまで行う。この間、ｉ＋ｊ＞ｋとなったら、変換元の表示位置に空白行を表示し、ｊ＞Ｎとなったら、変換結果の表示位置に空白行を表示する。図１５中のブロック“０００２５”〜“０００２７”はこの状態を示している。
【０１０１】
なお、上記で、変換結果のブロックに行番号を割り付ける処理は、配列に格納して処理する方法も含んでおり、例えば、１ブロックを複数ブロック(Ｎブロック)に変換した場合、２次元配列を用意して、変換結果（ｉ，１）〜変換結果（ｉ，Ｎ）に格納する。
【０１０２】
図１６は、図１５で整理したブロックを用いて、対照表示した状態を示している。
なお、この表示において、エラーや警告（あるいはメッセージ）は、表示属性を変えることで異なる表示状態とすることができる。例えば、エラーは、斜体(イタリック)で表示し、警告（メッセージ）は下線(アンダライン)で表示することができる。
【０１０３】
なお、ここで、エラーは、正しく加工できない可能性がある場合を表し、例えば、変換前と結果で機械の動作が異なる場合が相当し、ＸＹＺの同時３軸移動が指令されたが、変換先の機械がＺ軸単独のみ動作可能である場合には、Ｚ軸とＸＹ軸の移動に分解して行う。このような場合には、変換先において加工が保証されるものではない。
【０１０４】
また、警告（メッセージ）は、加工は正しくできるが、変換元と結果が異なっているため注意を促す場合に警告とする。例えば、変換元の加工送り速度に関するＭコード(Ｍ９１)は、変換先の機械では不要である。変換先の機械では、実際の機械の加工速度を監視して最適な送り速度に自動調整している。
【０１０５】
この警告表示は不要ではあるが、元のプログラムが判るように括弧でくくってコメントとして出力する。
【０１０６】
なお、本発明において「対応する位置に表示」とは、図１６に示すように、必ずしも変換元と変換結果を同じ大きさで並べて表示し、機能的に同じ意味のプログラムを縦方向の同じ高さの位置に表示するとは限らず、図１７に示すように、異なる大きさで、離して表示してもよい。本発明では、変換元の表示内の相対表示位置と変換結果の表示内の相対表示位置とが等しい場合についても、「対応する位置に表示」に相当するものとする。
【産業上の利用可能性】
【０１０７】
本発明の技術は、ワイヤカット放電加工機に限らず、ＮＣプログラム等の加工プログラムによって加工を行う加工装置に適用することができる。
【図面の簡単な説明】
【０１０８】
【図１】本発明のプログラム変換装置によるプログラム変換の動作を説明するためのフローチャートである。
【図２】本発明によるプログラム変換の第１の解析形態を説明するための図である。
【図３】本発明によるプログラム変換の第２の解析形態を説明するための図である。
【図４】本発明によるプログラム変換の第３の解析形態を説明するための図である。
【図５】本発明によるプログラム変換の第４の解析形態を説明するための図である。
【図６】本発明によるプログラム変換において、変換先で対応する機能が無い場合の動作を説明するための図である。
【図７】本発明によるプログラム変換の第１の対照表示形態を説明するための図である。
【図８】本発明によるプログラム変換の第２の対照表示形態を説明するための図である。
【図９】本発明によるプログラム変換の第３の対照表示形態を説明するための図である。
【図１０】本発明によるプログラム変換の第１〜第３の対照表示形態を組み合わせた状態を説明するための図である。
【図１１】本発明のプログラム変換装置の構成を説明するためのブロック図である。
【図１２】本発明のプログラム変換が行う解析、変換等の動作を説明するための機能ブロック図である。
【図１３】本発明のプログラム変換装置の解析、変換動作、及び対照表示動作を説明するためのフローチャートである。
【図１４】加工例を説明するための図である。
【図１５】変換元プログラムと変換先プログラムを示す図である。
【図１６】対照表示した状態を示す図である。
【図１７】対照表示した状態を示す図である。
【符号の説明】
【０１０９】
１０  ＣＰＵ
１１  ＲＯＭ
１２  ＲＡＭ
１３  表示（グラフィック）制御装置
１４  表示装置
１５  キーボード
１６  ハーディスクドライブ（ＨＤＤ）
１７  フロッピィディスクドライブ（ＦＤＤ）
１８  フロッピィディスク
１９  コンパクトディスクドライブ（ＣＤＤ）
２０  コンパクトディスク
２１  バス
１０１  記憶手段
１０２  バッファメモリ
１０３  解析手段
１０４  記憶手段
１０５  変換手段
１０６  バッファメモリ
１０７  表示レイアウト生成手段
１０８  記憶手段
１０９  表示手段
【図１】
2006293744.tif 000004
【図２】
2006293744.tif 000005
【図３】
2006293744.tif 000006
【図４】
2006293744.tif 000007
【図５】
2006293744.tif 000008
【図６】
2006293744.tif 000009
【図７】
2006293744.tif 000010
【図８】
2006293744.tif 000011
【図９】
2006293744.tif 000012
【図１０】
2006293744.tif 000013
【図１１】
2006293744.tif 000014
【図１２】
2006293744.tif 000015
【図１３】
2006293744.tif 000016
【図１４】
2006293744.tif 000017
【図１５】
2006293744.tif 000018
【図１６】
2006293744.tif 000019
【図１７】
2006293744.tif 000020