IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ DMG森精機株式会社の特許一覧

特開2023-5227工作機械制御装置および工作機械制御方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023005227
(43)【公開日】2023-01-18
(54)【発明の名称】工作機械制御装置および工作機械制御方法
(51)【国際特許分類】
   G05B 19/409 20060101AFI20230111BHJP
   B23Q 15/00 20060101ALI20230111BHJP
   G05B 19/4093 20060101ALI20230111BHJP
【FI】
G05B19/409 C
B23Q15/00 301K
G05B19/4093 F
【審査請求】有
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2021107005
(22)【出願日】2021-06-28
(11)【特許番号】
(45)【特許公報発行日】2022-03-08
(71)【出願人】
【識別番号】000146847
【氏名又は名称】DMG森精機株式会社
(74)【代理人】
【識別番号】100134430
【弁理士】
【氏名又は名称】加藤 卓士
(72)【発明者】
【氏名】真田 彬央
【テーマコード(参考)】
3C269
【Fターム(参考)】
3C269AB31
3C269BB08
3C269CC02
3C269EF39
3C269EF53
3C269EF82
3C269QE18
3C269QE21
3C269QE24
(57)【要約】
【課題】効率的にMDIプログラムを生成する。
【解決手段】工作機械に用意された工具のリストを表示する工具管理画面を生成し、表示する工具管理部と、定型プログラムを呼び出し、工具管理画面で選択された工具の工具情報を定型プログラムに加えて、MDI(Manual Data Input)プログラムを生成するMDIプログラム生成部と、を備えた工作機械制御装置。
【選択図】 図1
【特許請求の範囲】
【請求項1】
工作機械に用意された工具のリストを表示する工具管理画面を生成し、表示する工具管理部と、
定型プログラムを呼び出し、前記工具管理画面で選択された工具の工具情報を定型プログラムに加えて、MDI(Manual Data Input)プログラムを生成するMDIプログラム生成部と、
を備えた工作機械制御装置。
【請求項2】
前記定型プログラムを記憶する記憶部をさらに備え、
前記MDIプログラム生成部は、前記記憶部から前記定型プログラムを読み出して前記MDIプログラムを生成する請求項1に記載の工作機械制御装置。
【請求項3】
前記MDIプログラム生成部は、前記定型プログラムの記述に応じた種別の工具情報を前記工具管理部から取得して、前記定型プログラムに加える請求項1または2に記載の工作機械制御装置。
【請求項4】
前記MDIプログラム生成部は、前記工具管理画面で2つ以上の工具が選択された場合、選択された工具の工具情報を、選択された工具の数に対応する数の前記定型プログラムのそれぞれに加えて連続的に配置することにより、前記MDIプログラムを生成する請求項1から3のいずれか1項に記載の工作機械制御装置。
【請求項5】
前記MDIプログラム生成部は、連続的に配置された前記定型プログラムの間に、オプショナルストップ指令を配置することにより、前記MDIプログラムを生成する請求項1から4のいずれか1項に記載の工作機械制御装置。
【請求項6】
工作機械に用意された工具のリストを表示する工具管理画面を生成し、表示する工具管理ステップと、
定型プログラムを呼び出し、前記工具管理画面で選択された工具の工具情報を定型プログラムに加えて、MDI(Manual Data Input)プログラムを生成するMDIプログラム生成ステップと、
を含む工作機械制御方法。
【請求項7】
工作機械に用意された工具のオフセット値を表示する工具オフセット画面を生成し、表示する工具管理部と、
定型プログラムを呼び出し、前記工具オフセット画面で選択された工具のオフセット値を定型プログラムに加えて、MDI(Manual Data Input)プログラムを生成するMDIプログラム生成部と、
を備えた工作機械制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、工作機械制御装置および工作機械制御方法に関する。
【背景技術】
【0002】
上記技術分野において、特許文献1には、MDIモード運転において、工具選択ボタン図形を操作盤の表示画面に表示して、ボタン操作で工具主軸への工具取り付けを制御する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2002-166335号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記文献に記載の技術では、効率的にMDIプログラムを生成することができなかった。
【0005】
本発明の目的は、上述の課題を解決する技術を提供することにある。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明に係る工作機械制御装置は、
工作機械に用意された工具のリストを表示する工具管理画面を生成し、表示する工具管理部と、
定型プログラムを呼び出し、前記工具管理画面で選択された工具の工具情報を定型プログラムに加えて、MDI(Manual Data Input)プログラムを生成するMDIプログラム生成部と、
を備えた。
【0007】
上記目的を達成するため、本発明に係る工作機械制御方法は、
工作機械に用意された工具のリストを表示する工具管理画面を生成し、表示する工具管理ステップと、
定型プログラムを呼び出し、前記工具管理画面で選択された工具の工具情報を定型プログラムに加えて、MDI(Manual Data Input)プログラムを生成するMDIプログラム生成ステップと、
を含む。
【0008】
上記目的を達成するため、本発明に係る工作機械制御装置は、
工作機械に用意された工具のオフセット値を表示する工具オフセット画面を生成し、表示する工具管理部と、
定型プログラムを呼び出し、前記工具オフセット画面で選択された工具のオフセット値を定型プログラムに加えて、MDI(Manual Data Input)プログラムを生成するMDIプログラム生成部と、
を備えた。
【発明の効果】
【0009】
本発明によれば、効率的にMDIプログラムを生成することができる。
【図面の簡単な説明】
【0010】
図1】第1実施形態に係る工作機械制御装置の構成を示すブロック図である。
図2A】第2実施形態に係る工作機械制御装置の表示操作部を示す図である。
図2B】第2実施形態に係る工作機械制御装置の表示操作部の遷移を示す図である。
図3A】第2実施形態に係る工作機械制御装置を含む工作機械の構成を示す図である。
図3B】第2実施形態に係る工作機械制御装置を含む工作機械の機能構成を説明する図である。
図3C】第2実施形態に係る工作機械制御装置の動作概要を示す図である。
図4A】第2実施形態に係る工作機械制御装置の工具管理モジュールの構成を示すブロック図である。
図4B】第2実施形態に係る工具情報テーブルと生成定義テーブルとの構成を示す図である。
図5A】第2実施形態に係る工作機械制御装置のMDI転送モジュールの構成を示すブロック図である。
図5B】第2実施形態に係るプログラム生成定義保管部とスニペット保管部との構成を示す図である。
図6】第2実施形態に係る工作機械制御装置のMDI転送モジュールの処理手順を示すフローチャートである。
図7】第2実施形態に係るプログラム生成処理の手順を示すフローチャートである。
図8A】第2実施形態に係るパラメータ部分探索処理の手順を示すフローチャートである。
図8B】第2実施形態に係る手動入力処理の手順を示すフローチャートである。
図9A】第2実施形態に係るパラメータ部分の書式の一例を示す図である。
図9B】第2実施形態に係るパラメータ部分の書式を用いたMDIプログラムの例の表を示す図である。
図10A】第2実施形態に係るマシニングセンタにおけるMDIプログラムの例921を示す図である。
図10B】第2実施形態に係るマシニングセンタにおけるMDIプログラムの例922を示す図である。
図10C】第2実施形態に係るマシニングセンタにおけるMDIプログラムの例923を示す図である。
図10D】第2実施形態に係るマシニングセンタにおけるMDIプログラムの例924を示す図である。
図10E】第2実施形態に係るマシニングセンタにおけるMDIプログラムの例925を示す図である。
図10F】第2実施形態に係るマシニングセンタにおけるMDIプログラムの例926を示す図である。
図10G】第2実施形態に係るマシニングセンタにおけるMDIプログラムの例927を示す図である。
図10H】第2実施形態に係るマシニングセンタにおけるMDIプログラムの例928を示す図である。
図11A】第2実施形態に係るターニングセンタにおけるMDIプログラムの例931の表示を示す図である。
図11B】第2実施形態に係るターニングセンタにおけるMDIプログラムの例932を示す図である。
図11C】第2実施形態に係るターニングセンタにおける工具管理画面の例を示す図である。
図12A】第2実施形態に係る工具オフセットにおけるMDIプログラムの例941の表示を示す図である。
図12B】第2実施形態に係る工具オフセットにおけるMDIプログラムの例942を示す図である。
図13A】第3実施形態に係る工作機械制御装置の表示操作部を示す図である。
図13B】第3実施形態に係る工作機械制御装置の工具管理画面の例を示す図である。
図13C】第3実施形態に係る工作機械制御装置のスニペット生成画面を示す図である。
図13D】第3実施形態に係る工作機械制御装置のスニペット編集画面を示す図である。
図14】第3実施形態に係る工作機械制御装置のMDI転送モジュールの構成を示すブロック図である。
図15】第3実施形態に係るスニペット編集用データ保管部の構成を示す図である。
図16A】第3実施形態に係る工作機械制御装置のスニペットの生成編集処理の手順を示すフローチャートである。
図16B】第3実施形態に係るパラメータ部分の記述挿入処理の手順を示すフローチャートである。
図17】第4実施形態に係る工作機械制御装置のプログラム定義の生成編集手順を示す図である。
図18】第4実施形態に係る工作機械制御装置のMDI転送モジュールの構成を示すブロック図である。
図19A】第4実施形態に係る工作機械制御装置のプログラム定義生成編集処理の手順を示すフローチャートである。
図19B】第4実施形態に係るスニペット変更処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。なお、本実施形態で使用する文言「スニペット」は、再利用可能な短いプログラムであり、プログラムの作成や編集に用いられる。例えば、NCプログラムでは、短いプログラムのことを言う。「スニペット」は、請求項における「定型プログラム」に相当する。
【0012】
[第1実施形態]
本発明の第1実施形態としての工作機械制御装置100について、図1を用いて説明する。工作機械制御装置100は、工作機械を制御する装置である。
【0013】
図1に示すように、工作機械制御装置100は、工具管理部101と、MDI(Manual Data Input)プログラム生成部102と、を含む。工具管理部101は、工作機械に用意された工具のリストを表示する工具管理画面111を生成し、表示する。MDIプログラム生成部102は、定型プログラム121を呼び出し、工具管理画面111で選択された工具の工具情報112を定型プログラム121に加えて、MDIプログラム122を生成する。
【0014】
本実施形態によれば、効率的にMDIプログラムを生成することができる。
【0015】
[第2実施形態]
次に、本発明の第2実施形態に係る工作機械制御装置200について説明する。工作機械制御装置200は、作業者が指定した単一または複数の工具/ポット/ST(ステーション)の工具情報をパラメータとしてスニペットへ与えてMDI機能へ転送する。
【0016】
工作機械制御装置200は、プログラム生成定義に従って、少なくとも1つのスニペットを含むMDIプログラムを生成する。ここで、プログラム生成定義とは、スニペットによらない部分とスニペットによる部分とを用いてプログラムを生成するロジックである。
【0017】
スニペットは、工具情報をパラメータとして入力するためのパラメータ部分を含んでも良く、パラメータ部分に特定のフォーマットで変数を記述することで、何の情報を受け取るのかを指定する。パラメータ部分は、パラメータを自動で入力する自動入力パラメータ部分と、ユーザに手動入力させる手動入力パラメータ部分に分類することができる。手動入力パラメータ部分を含むスニペットがプログラム生成定義に指定されている場合には、MDI転送ボタンをタッチしたときにパラメータ手動入力画面が表示され、作業者がパラメータを入力することでその値を反映したMDIプログラムが生成される。工具管理画面で複数の工具/ポット/ST情報が指定された場合、それぞれの情報に基づいて複数のスニペットが合成される。その際、プログラム生成定義に応じてスニペット間にオプショナルストップなど任意の指令を挟むことができる。
【0018】
ここで、3つの簡単なスニペット例について説明する。
1つ目のスニペット例は、
T?TOOL:Q1?;
G30X0.Y0.Z0.;
M6;
で記述される自動入力の例である。
ここで、1行目は、Q1番の工具をATC位置へ割り出し、2行目は、原点復帰、3行目は、ATC、を表し、全体として、選択された工具の交換位置における交換の例である。ここで、TOOLは、続くパラメータ識別子Q1で示される工具番号に置き換えられる記述である。
【0019】
2つ目のスニペット例は、
G324H#149B300.M0X?TOOL:Q1102?;
で記述される自動工具長測定(G324)における径補正形状補正値の自動入力の例である。
ここでQ1102は径補正形状補正値を示すパラメータ識別子である。
【0020】
3つ目のスニペット例は、
G324H#149B300.M0X?MANUALINPUT:G324X=TOOL:Q1102?;
で記述される、自動工具長測定(G324)における径補正形状補正値の手動入力の例である。
【0021】
<工作機械制御装置の操作手順>
以下、図2A図2Dを参照して、工作機械250に組み込まれた工作機械制御装置200の表示操作部について説明する。
【0022】
図2Aは、工作機械250が有する工作機械制御装置200の表示操作部201における操作手順を説明するための図である。不図示のスイッチを用いて、MDIプログラムを生成および実行させるためのMDIモードに設定されると、図2Aのように、表示操作部201に、工具管理画面210とMDI画面220とが表示される。ユーザが、工具管理画面210で工具211を選択し、次に、ボタン216、217のいずれかにタッチすることで、各ボタンに対応するMDIプログラムの生成定義が読み出される。そして、読み出された生成定義で指定されたスニペットが読み出される。読み出されたスニペットには特定のフォーマットで記述されたパラメータ部分225が含まれており、そのパラメータ部分225に工具211の工具情報(ここでは一例として工具番号10002)が加えられて、MDIプログラムが生成される。生成されたMDIプログラムはMDI画面220に表示される。ここで、工具情報とは、工具の識別情報(工具番号)の他、工具長形状、工具長摩耗、工具径形状、工具径摩耗、または補正値といったパラメータなど、工具に関する情報であればどのような情報をも含みうる概念である。
【0023】
工具管理画面210には、MDI転送ボタン216、217が表示されている。各ボタンがタッチされた場合の処理について、図2Bを用いて説明する。
【0024】
MDI転送(呼出し)ボタン216がタッチされた場合、表示操作部201は、ボタン216に紐付けられたプログラム生成定義を呼出し、プログラム生成定義によって指定されたスニペットを組み合わせて生成したMDIプログラムをMDI画面226を表示する。この際、スニペットのパラメータ部分を工具管理画面210で選択された工具213の特定の工具情報(工具番号やパラメータなど)に置換する。また、複数のスニペット間には、オプショナルストップ(M機能=M01)228を自動挿入する。
【0025】
一方、MDI転送(計測)ボタン217がタッチされた場合には、表示操作部201は、MDI転送(測定)ボタン217に紐付けられたプログラム生成定義を呼び出す。MDI転送(測定)ボタン217に紐付けられたプログラム生成定義には、計測を伴うGコード(ここではG324)を含むスニペット“G324H#149B300.M0X?MANUALINPUT…?”229が指定されている。このスニペット229は、変数の手動入力を要するものであるため、MDI転送(測定)ボタン217のタッチと同時に、手動入力画面230が表示される。ユーザは、MDIプログラムのプレビュー231を参照して、手動入力欄232に数値を入力した後、MDI転送ボタン233をタッチすることで、スニペット229のパラメータの手動入力が実現する。
【0026】
<工作機械の構成および動作>
図3Aに示すように、工作機械250は、工作機械制御装置200と、工作機械制御装置200により制御されるマシニングセンタ302とを備える。図3Aのマシニングセンタ302は立形マシニグセンタの例であるが、他に横形や門形などがある。立形では、図3Aのように、X軸、Y軸、Z軸が定義される。
【0027】
工作機械制御装置200は、表示操作部201と、入力キー群303と、制御キー群304とを有する。工作機械制御装置200は、使用する工具を管理する工具管理モジュールを有する。また、工作機械制御装置200は、MDI(Manual Data Input)モードを有し、MDIプログラムで動作するMDI機能モジュールを有する。制御キー群304のモード選択キーにはMDIモードキー305が含まれる。
【0028】
MDIモードにおいては、図3Bのような機能命令が定義されており、かかる機能命令によりMDIプログラムが記述される。機能命令の分類や基本的な機能命令は共有されているが、一部にはオプショナルな専用機能命令も使用される。
【0029】
(機能構成概要)
工作機械制御装置200は、図3Cに示すように、工具管理モジュール310と、MDI転送モジュール320と、MDI機能モジュール330と、を含む。工具管理モジュール310は、工具管理部311と、工具情報保管部312と、を有する。また、工具管理モジュール310は、工具管理画面210を管理する。MDI転送モジュール320は、MDIプログラム生成部321と、プログラム生成定義保管部322と、スニペット保管部323と、パラメータ手動入力部324と、を有する。また、MDI転送モジュール320は、パラメータ手動入力の場合に、パラメータ手動入力画面230を管理する。MDI機能モジュール330は、NCのMDI機能部331を有する。また、MDI機能モジュール330は、MDI画面220を管理する。
【0030】
工具管理モジュール310の工具管理部311は、工具情報保管部312に保管された工具情報を参照して、工具管理画面210に工具情報を表示すると共に、工具管理画面210に入力された工具情報を工具情報保管部312に保管する。また、工具管理部311は、工具管理画面210で選択された1つまたは複数の工具の識別子と、選択されたプログラム生成定義の識別子とをMDI転送モジュール320に送る(図3C中の(#1)参照)。
【0031】
工具管理部311は、MDIプログラム生成部321からの、スニペットに記述されているパラメータ部分を置き換える工具情報の要求を待つ。工具管理部311は、パラメータ部分を置き換える工具情報を示す工具の識別子と特定の工具情報の識別子(例えばQ0)とを含む。情報送付の要求を受信すると(図3C中の(#3)参照)、工具管理部311は、選択された各工具に関する全ての工具情報(全工具情報)のうちの特定の工具情報(例えば、Q0であれば工具番号)を抽出する。工具管理部311が、抽出された特定の工具情報をMDIプログラム生成部321へ渡すことで(図3C中の(#4)参照)、MDIプログラム生成部321がスニペットの所定のパラメータ部分を抽出された特定の工具情報に置き換えてMDIプログラムを生成する。図3C中の(#3)と(#4)の特定の工具情報のやり取りは、(選択した工具の数×自動入力のパラメータ部分の数)の回数だけ繰り返される。なお、ここでは、工具管理モジュール310内で、特定の工具情報を抽出することとしたが、MDIプログラム生成部321が工具情報保管部312にアクセスして、パラメータ部分の置き換えに必要となる特定の工具情報を抽出してもよい。
【0032】
MDI転送モジュール320のMDIプログラム生成部321は、工具管理部311から受信したプログラム生成定義の識別子を用いて、プログラム生成定義保管部322から押下されたボタンに対応するプログラム生成定義を読み出す(図3C中の(#2)参照)。次に、MDIプログラム生成部321は、読み出したプログラム生成定義に記述されたスニペット識別子を探索する。そして、スニペット識別子を用いて、スニペット保管部323からスニペットを読み出す(図3C中の(#2)参照)。MDIプログラム生成部321は、読み出したスニペットに特定フォーマットのパラメータ部分を見つけると、その特定フォーマットを解析してパラメータ部分の属性を特定する。MDIプログラム生成部321は、特定されたパラメータ部分が選択された工具の工具情報の自動入力と確認されれば、スニペットに記述されているパラメータ部分を置き換える特定の工具情報を工具管理部311に要求する。すなわち、工具の識別子および特定の工具情報の識別子(例えばQ0)を含む情報送付の要求を工具管理部311に送信する(図3C中の(#3)参照)。MDIプログラム生成部321は、工具管理部311から、選択された各工具に関する全工具情報のうちの特定の工具情報(例えば、Q0であれば工具番号)を受信して(図3C中の(#4)参照)、このパラメータ部分を選択された工具の受信した特定の工具情報で置き換える。なお、図3C中の(#3)と(#4)の特定の工具情報のやり取りは、(選択した工具の数×自動入力のパラメータ部分の数)の回数だけ繰り返される。また、MDIプログラム生成部321が工具情報保管部312にアクセスして、パラメータ部分の置き換えに必要となる特定の工具情報を抽出してもよい。一方、MDIプログラム生成部321は、特定されたパラメータ部分が選択された工具の工具情報の手動入力と確認されれば、このパラメータ部分をユーザがパラメータ手動入力画面230から入力した工具情報で置き換える。このMDIプログラム生成手順をプログラム生成定義に従って実行することにより、プログラム中のパラメータ部分が特定の工具情報に置き換えられた(パラメータが確定した)、MDIプログラムが生成される。
【0033】
生成されたMDIプログラムは、MDIプログラム生成部321からMDI機能モジュール330のNCのMDI機能部331に送られて、MDIプログラムが実行される。また、生成されたMDIプログラムやその実行状態は、MDI画面220に表示される。なお、ここではMDIプログラム生成の際にMDI画面220を表示しているが、本発明はこれに限定されない。生成したプログラムをNCのMDI機能へセットするため、その状態でMDI画面220を表示すればよい。また、MDI画面220を表示せずに内部的にMDI機能を利用してもよい。
【0034】
<工具管理モジュールの構成>
図4Aにおいて、工具管理モジュール310は、モジュールインタフェース401と、入出力インタフェース402と、工具情報取得保管部403と、表示制御部404と、操作制御部405と、を備える。また、工具管理モジュール310は、工具情報取得部406と、工具識別子送信部407と、生成定義識別子取得部408と、生成定義識別子送信部409と、工具情報用のパラメータ自動入力部411と、データベース410と、を備える。なお、図4Aにおいて、(#1),(#3),(#4)は図3Cにおける処理と同様の処理を示す。
【0035】
モジュールインタフェース401は、工具管理モジュール310とMDI転送モジュール320とのデータ交換を制御するインタフェースである。入出力インタフェース402は、工具管理モジュール310と、内部および外部の周辺機器とのデータ交換を制御するインタフェースである。本実施形態においては、内部の周辺機器として記憶部としてのデータベース410を接続し、外部の周辺機器として表示操作部201を接続しているが、これに限定されない。
【0036】
工具情報取得保管部403は、表示操作部201から入力された工具情報を取得して、データベース410の工具情報保管部312に保管する。表示制御部404は、表示操作部201への工具情報の表示を制御する。操作制御部405は、表示操作部201からのユーザの入力操作を制御する。例えば、操作制御部405は、表示操作部201に表示された工具からユーザにより選択された工具の識別子を取得し、表示操作部201に表示されたボタンをユーザが押した場合に対応するプログラム生成定義の識別子を取得するよう制御する。
【0037】
工具識別子送信部407は、操作制御部405が取得した工具識別子をMDI転送モジュール320に送信する(図4Aの(#1)参照)。生成定義識別子取得部408は、生成定義識別子テーブル481を有し、生成定義識別子テーブル481を用いて、操作制御部405の制御に基づき表示操作部201からユーザが指示したプログラム生成定義の識別子を取得する。なお、プログラム生成定義の識別子は、本実施形態により工具管理画面210に追加表示されたソフトウェアボタンを押すことにより入力される。生成定義識別子送信部409は、生成定義識別子取得部408が取得したプログラム生成定義の識別子をMDI転送モジュール320に送信する。また、表示操作部201からからスニペットを直接選択可能な場合は、スニペット識別子491を含んでもよい。
【0038】
工具情報用のパラメータ自動入力部411は、工具情報のパラメータテーブル412を有する。工具情報用のパラメータ自動入力部411は、MDI転送モジュール320からスニペットのパラメータ部分に加える特定の工具情報を選定するための、工具の識別子と特定の工具情報の識別子とを受信する(図4Aの(#3)参照)。そして、工具情報用のパラメータ自動入力部411は、工具の識別子を工具情報取得部406に渡して、工具の識別子に対応する全工具情報を工具情報保管部312から取得するように指示する。工具情報取得部406は、工具情報テーブル461を有し、工具情報テーブル461を用いて、工具情報用のパラメータ自動入力部411からの要求に基づき表示操作部201からユーザが指示した工具の全工具情報を取得する。
【0039】
工具情報用のパラメータ自動入力部411は、工具情報のパラメータテーブル412を用いて、工具情報取得部406が取得した工具の識別子に対応する全工具情報から特定の工具情報の識別子に対応する特定の工具情報を抽出して、MDI転送モジュール320に返信する(図4Aの(#4)参照)。
【0040】
(工具情報テーブル)
図4Bの工具情報テーブル461は、工具情報用のパラメータ自動入力部411から要求された、工具の識別子に対応する全工具情報を工具情報保管部312から取得するために使用される。工具情報テーブル461は、工具情報用のパラメータ自動入力部411が要求する工具識別子421に対応付けて、工具情報保管部312から取得した全工具情報422として記憶する。そして、指示画面位置432のそれぞれに対応付けて工具識別子423を記憶する。
【0041】
(工具情報のパラメータテーブル)
図4Bの工具情報のパラメータテーブル412は、工具情報用のパラメータ自動入力部411がMDI転送モジュール320から要求された、スニペットのパラメータ部分に加える工具の特定の情報(パラメータ)を抽出するために使用される。工具情報のパラメータテーブル412は、MDI転送モジュール320から要求された工具の識別子441および特定の工具情報の識別子442に対応付けて、対応する工具情報から抽出した特定の工具情報443を記憶する。
【0042】
(生成定義識別子テーブル)
図4Bの生成定義識別子テーブル481は、生成定義識別子取得部408が工具管理画面210に表示されユーザにより選択されたボタンに対応するプログラム生成定期の識別子を取得するために使用される。生成定義識別子テーブル481は、工具の種別を示す工具管理画面210の表示画面識別子431に対応付けて、少なくとも1つのボタンをそれぞれ表示する位置を指示画面位置432として記憶する。そして、指示画面位置432のそれぞれに対応付けてボタン種類433と、1つのボタンに複数のメニューが含まれる場合(例えば、プルダウンメニュー)はメニュー位置434と、生成定義識別子435とを記憶する。
【0043】
<MDI転送モジュールの構成>
図5Aにおいて、MDI転送モジュール320は、モジュールインタフェース501と、入出力インタフェース502と、工具識別子取得部503と、プログラム生成定義識別子取得部505と、プログラム生成定義取得部506と、を備える。また、MDI転送モジュール320は、スニペット取得部507と、MDIプログラム生成部321と、パラメータ手動入力部324と、データベース510と、を備える。なお、図5Aにおいて、(#1),(#3),(#4)は図3Cおよび図4Aにおける処理と同様の処理を示す。
【0044】
モジュールインタフェース501は、MDI転送モジュール320と、工具管理モジュール310およびMDI機能モジュール330とのデータ交換を制御するインタフェースである。入出力インタフェース502は、MDI転送モジュール320と、内部および外部の周辺機器とのデータ交換を制御するインタフェースである。本実施形態においては、内部の周辺機器として記憶部であるデータベース510を接続し、外部の周辺機器として表示操作部201を接続しているが、これに限定されない。
【0045】
工具識別子取得部503は、工具管理モジュール310から送られた1つまたは複数の工具の識別子を取得して(図5Aの(#1)参照)、MDIプログラム生成部321に送る。プログラム生成定義識別子取得部505は、工具管理モジュール310からボタンに対応して送られたプログラム生成定義識別子を取得する(図5Aの(#1)参照)。プログラム生成定義取得部506は、プログラム生成定義識別子を用いて、データベース510のプログラム生成定義保管部322からプログラム生成定義を取得する。
【0046】
スニペット取得部507は、プログラム生成定義で指定されたスニペットの識別子を用いて、データベース510のスニペット保管部323からスニペットを取得する。MDIプログラム生成部321は、プログラム生成定義に基づいて、パラメータ部分を工具識別子や他の工具情報で置換したスニペットを配置したMDIプログラムを生成して、MDI機能モジュール330に送る。MDIプログラム生成部321は、プログラム生成定義に基づいて、取得したスニペットのパラメータ部分のフォーマットが自動入力を示していれば、パラメータ部分を工具識別子や他の工具情報によって自動的に置換する。一方、取得したスニペットのパラメータ部分のフォーマットが手動入力を示していれば、パラメータ手動入力部324により表示操作部201に手動入力欄を表示して、手動入力データを取得する。そして、パラメータ手動入力部324は、パラメータ部分をユーザが手動入力した工具情報によって置換する。
【0047】
上記パラメータ部分を工具識別子や他の工具情報によって自動的に置換する場合の処理は、以下の通りである。MDIプログラム生成部321は、スニペットのパラメータ部分のフォーマットが自動入力を示す場合、工具情報の要求を工具管理モジュール310に送信して、特定の工具情報を要求する(図5Aの(#3)参照)。工具情報の要求には、工具識別子取得部503が工具管理モジュール310から取得した1つまたは複数の工具の識別子のうちのパラメータ部分を置換する工具の識別子、および特定の工具情報の識別子を含む。そして、MDIプログラム生成部321は、工具管理モジュール310から要求した工具の識別子および特定の工具情報の識別子に対応する特定の工具情報を受信すると、パラメータ部分を受信した特定の工具情報で置換する。
【0048】
(プログラム生成定義保管部とスニペット保管部)
図3Cのプログラム生成定義保管部322は、図5Bに示すように、生成定義識別子531に対応付けてプログラム生成定義532を記憶する。プログラム生成定義532には、少なくとも1つのスニペット識別子とそのスニペットのMDIプログラム中の配置場所(スニペット位置)が紐付けられている(533)。プログラム生成定義532には、スニペット以外のプログラムとその配置場所534も紐付けられている。
【0049】
図3Cのスニペット保管部323は、図5Bに示すように、スニペットを保管し、プログラム生成定義に含まれるスニペット識別子により紐付いたスニペットをMDI転送モジュール320に提供する。つまり、スニペット保管部323の各行がそれぞれスニペットを特定しており、スニペット識別子541に対応付けて、定型部分542と、自動入力パラメータ部分543と、手動入力パラメータ部分544と、を記憶する。
【0050】
<MDI転送モジュールの処理手順>
図6は、MDI転送モジュール320の処理手順を示すフローチャートである。このフローチャートで示された処理は、工作機械制御装置200が備える不図示のCPU(Central Processing Unit)およびRAM(Random Access Memory)を使用して実行され、MDI転送モジュール320の各機能構成を実現する。
【0051】
MDI転送モジュール320は、ステップS601において、MDIモードであるか否かを判定する。MDIモードでない場合は、他の処理を実行する。MDIモードであれば、MDI転送モジュール320は、ステップS607において、工具管理画面210を用いたユーザによる工具選択を待つ。工具選択があれば、MDI転送モジュール320は、ステップS609において、工具管理画面210でのユーザによるMDI転送ボタン216、217へのタッチを待つ。MDI転送ボタン216、217へのタッチがあれば、ステップS611に進み、MDIプログラム生成部321は、タッチされたMDI転送ボタンに対応するプログラム生成定義をプログラム生成定義保管部322から取得する。そして、ステップS613に進み、MDIプログラム生成部321は、選択された工具に関して抽出された工具情報を取得する。さらに、ステップS615に進み、取得したプログラム生成定義に従うMDIプログラム生成処理を実行する。MDI転送モジュール320は、ステップS617において、生成したMDIプログラムをMDI機能モジュール330に出力する。
【0052】
(MDIプログラム生成処理)
図7は、図6のMDIプログラム生成処理S615における処理の流れを詳細に示すフローチャートである。MDIプログラム生成部321は、ステップS701において、プログラム生成定義で指定されたスニペットをスニペット保管部323から読み出す。次に、MDIプログラム生成部321は、ステップS703において、読み出したスニペット内のパラメータ部分探索処理を実行する。そして、MDIプログラム生成部321は、ステップS705において、見つかったパラメータ部分のフォーマットが自動入力であるか手動入力であるかを判定する。自動入力のパラメータ部分であれば、MDIプログラム生成部321は、ステップS707において、ステップS613で取得した工具情報から選定された特定の工具情報をパラメータ部分に入力する。一方、手動入力であれば、MDIプログラム生成部321は、ステップS709において、手動入力処理を実行する。スニペット内の1つのパラメータ部分へのパラメータ入力が終了すると、MDIプログラム生成部321は、ステップS711において、スニペット内のパラメータ部分探索が完了したか否かを判定する。パラメータ部分探索が完了してなければ、MDIプログラム生成部321は、ステップS703に戻ってスニペット内の残るパラメータ部分の置換処理を繰り返す。
【0053】
1つのスニペットのパラメータ部分探索が完了すると、MDIプログラム生成部321は、ステップS713において、全パラメータ部分を置き換えたスニペットをプログラム生成定義に従ってMDIプログラム中に配置する。次に、MDIプログラム生成部321は、ステップS715において、プログラム生成定義で指定された次のスニペットがあるか否かを判定する。さらにスニペットが指定されていれば、MDIプログラム生成部321は、ステップS701に戻ってプログラム生成定義で指定された次のスニペット読み出して、パラメータ部分の探索を始める。
【0054】
一方、他のスニペットが無ければ、MDIプログラム生成部321は、ステップS717において、まだ選択された工具が残っているかを判定する。まだ選択された工具が残っていれば、MDIプログラム生成部321は、ステップS719において、スニペットの後にオプショナルストップ(M機能=M01)を挿入して、ステップS701に戻る。他に選択された工具がなければ、MDIプログラム生成処理を終了する。
【0055】
(パラメータ部分探索処理)
図8Aは、図7のパラメータ部分探索処理S703における処理の流れを詳しく説明するフローチャートである。MDIプログラム生成部321は、ステップS801において、スニペット内のパラメータ部分をそのフォーマットを見付けるべく探索する。本実施形態においては、自動入力のパラメータ部分は“?TOOL”から開始して“?”で終わるパラメータ部分である。また、手動入力のパラメータ部分は“?MANUALINPUT”から開始して“?”で終わるパラメータ部分である。なお、このフォーマットに限定されるものではない。
【0056】
MDIプログラム生成部321は、ステップS811において、“?TOOL”が見付かったか否かを判定する。“?TOOL”が見付かれば、MDIプログラム生成部321は、ステップS813において、特定の工具情報を自動入力するパラメータ部分であることをセットする。“?TOOL”が見付からなければ、MDIプログラム生成部321は、ステップS821において、“?MANUALINPUT”が見付かったか否かを判定する。“?MANUALINPUT”が見付かれば、MDIプログラム生成部321は、ステップS823において、特定の情報を手動入力するパラメータ部分であることをセットする。“?MANUALINPUT”が見付からなければ、MDIプログラム生成部321は、ステップS831において、オプショナルとして従来のパラメータ部分目印である“??”、または、従来の機能選択目印“[[”が見付かったか否かを判定する。いずれかが見付かれば、MDIプログラム生成部321は、既存のキャラクタ単位の手動入力や機能選択を実行する。どちらでもなければ、MDIプログラム生成部321は、ステップS801に戻って、パラメータ部分探索を継続する。
【0057】
(手動入力処理)
図7の手動入力処理S709においては、図8Bのフローチャートに示す処理が行われる。MDIプログラム生成部321は、ステップS843において、パラメータ手動入力画面を生成する。MDIプログラム生成部321は、ステップS845において、パラメータ手動入力画面を工具管理画面210やMDI画面220に表示する。MDI転送モジュール320は、ステップS847において、ユーザによる手動入力を待つ。ユーザによる手動入力があれば、MDIプログラム生成部321は、ステップS849において、入力された入力値(パラメータ)を取得する。そして、MDIプログラム生成部321は、ステップS851において、手動入力のパラメータ部分に入力値を追加する。なお、パラメータ入力欄の初期値として工具情報の特定の値をセットしてもよい。
【0058】
<パラメータ部分の書式>
図9Aは、パラメータ部分の書式(パラメータ部分のフォーマット)910の一例であり、本実施形態において、スニペット内のパラメータ部分は、“?”と“?”とで挟まれたキャラクタ列とする。
【0059】
パラメータ自動入力要求における書式1は、特定のパラメータの値を入力する書式であり、?<パラメータ自動入力部の識別子>:<パラメータ識別子>?で定義される。ここで、<パラメータ自動入力部の識別子>は“TOOL”と定義する。例えば、スニペット内に“T?TOOL:Q0?”との記述があれば、TOOLは工具情報用のパラメータ自動入力部の識別子、Q0は工具番号を示すとして、例えば、工具番号10001に置換されT10001となる。
【0060】
パラメータ自動入力要求における書式2は、特定のパラメータの値に定数値を演算した値を入力する書式であり、?<パラメータ自動入力部の識別子>:<パラメータ識別子><演算子><定数値>?で定義される。例えば、スニペット内に、“G324H#149B?TOOL:Q1101+100.?M0X0.”との記述があれば、Q1101は工具長形状補正値を示すとし、例えば、当該工具の工具長形状補正値が100.だった場合、G324H#149B200.M0X0.に置換される。
【0061】
パラメータ手動入力要求における書式1は、手動入力の入力欄の初期値が空定義であり、?<パラメータ手動入力部の識別子>:<パラメータ識別子>?で定義される。ここで、<パラメータ手動入力部の識別子>は“MAMUALINPUT”と定義する。例えば、スニペット内に、“G324H#149B300.M0X?MANUALINPUT:G324X?”との記載があれば、パラメータ手動入力画面にてG324Xの欄が表示され(初期値は空)、“10.”を入力した場合、G324H#149B300.M0X10.に置換される。
【0062】
パラメータ手動入力要求における書式2は、手動入力の入力欄の初期値が定数値であり、?<パラメータ手動入力部の識別子>:<パラメータ識別子>=<定数値>?で定義される。例えば、スニペット内に、“G324H#149B300.M0X?MANUALINPUT:G324X=0.?”との記述があれば、パラメータ手動入力画面にてG324Xの欄に初期値0.が表示され、“10.”を入力した場合、G324H#149B300.M0X10.に置換される。
【0063】
パラメータ手動入力要求における書式3は、手動入力の入力欄の初期値はパラメータ自動入力の書式1と同様に決定され、?<パラメータ手動入力部の識別子>:<パラメータ識別子>=<パラメータ自動入力部の識別子>:<パラメータ識別子>?で定義される。例えば、スニペット内に、“G324H#149B300.M0X?MANUALINPUT:G324X=TOOL:Q1102?”との記述があれば、パラメータ手動入力画面にてG324Xの欄に初期値として工具径形状補正値が表示され(Q1102は工具径形状補正値を示すとする)、“10.”を入力した場合、G324H#149B300.M0X10.に置換される。
【0064】
パラメータ手動入力要求における書式4は、手動入力の入力欄の初期値はパラメータ自動入力の書式2と同様に決定され、?<パラメータ手動入力部の識別子>:<パラメータ識別子>=<パラメータ自動入力部の識別子>:<パラメータ識別子><演算子><定数値>?で定義される。例えば、“G324H#149B?MANUALINPUT:G324B=TOOL:Q1101+100.?M0X0.”との記述があれば、パラメータ手動入力画面にてG324Bの欄に初期値として工具長形状補正値を+100.した値が表示され(Q1101は工具長形状補正値を示す)、“150.”を入力した場合、G324H#149B250.M0X0.と置換される。
【0065】
図9Aのパラメータ部分の書式(フォーマット)は、一例に過ぎず、種々の変更や組み合わせが可能である。
【0066】
<MDIプログラムの具体例>
図9Bは、パラメータ部分の書式910を用いたMDIプログラムの例921~942の特徴をまとめた表920を示す。具体的には、例921~928(マシニングセンタに対する)、931-932(ターニングセンタに対する)、941-942(工具オフセットにおける)のそれぞれにおいて、使用された書式、工具情報の選択対象、プログラム生成定義の複雑さ、スニペットの複雑さ、などを○で示している。
【0067】
≪マシニングセンタにおける例≫
(例921)
図10Aは、図9Bに示したマシニングセンタにおけるMDIプログラムの例921を説明する図である。工具管理画面210上でチェックボックス1001により、1つの工具が選択され、MDI転送ボタン216が押された場合を説明している。選択された工具は、工具番号が10001である。工具管理画面210での1つの工具選択で1つのスニペットのパラメータ部分を置換する。
【0068】
MDI転送ボタン216がタッチされると、MDIプログラム生成部321は、MDI転送ボタン216に紐付いたプログラム生成定義に従って、スニペット1を挿入する。次に、スニペット1のパラメータ部分を検索する。そして、検索された自動入力するパラメータ部分の?TOOL:Q0?に選択された工具の工具番号10001を入力し、生成されたMDIプログラム1012がMDI画面220に表示される。
【0069】
工具番号は10001である。
スニペット1は、
T?TOOL:Q0?;
G91G30Z0.;
G91G30X0.Y0.;
M6;
である。“T?TOOL:Q0?;”は、図9Aにおけるパラメータ自動入力要求の書式1に対応し、TOOLは工具情報を入力するパラメータ自動入力部を示す識別子(コード列)であり、Q0は特定の工具情報である工具番号を示す識別子である。
【0070】
スニペット1のパラメータ部分“T?TOOL:Q0?;”に対して、工具管理画面210上で選択された工具番号10001が、?TOOL:Q0?の位置に挿入される。
MDIプログラム1012として、
T10001;
G91G30Z0.;
G91G30X0.Y0.;
M6;
が生成される。
ここで、“T10001;”はマガジンで10001番の工具を割り出す命令、“G91G30Z0.;”および“G91G30X0.Y0.;”は主軸を工具交換位置へ移動する命令、“M6;”は工具交換の命令である。
【0071】
(例922)
図10Bは、図9Bに示したマシニングセンタにおけるMDIプログラムの例922を説明する図である。工具管理画面210上でチェックボックスにより、2つの工具が選択され、MDI転送ボタン216が押された場合を説明している。1つ目の工具は、工具番号が10001である。2つ目の工具は、工具番号が10002である。
【0072】
MDI転送ボタン216がタッチされると、MDIプログラム生成部321は、MDI転送ボタン216に紐付いたプログラム生成定義に従って、スニペット1を挿入する。複数工具が選択されているので、複数のスニペット1を並べその間にM1(オプショナルストップ指令)を挿入する。
【0073】
具体的には、1つ目の工具に対しては、スニペット1における自動入力のパラメータ部分?TOOL:Q0?に工具番号10001を入力する(1012)。さらに、2つ目の工具があるので、オプショナルストップ(M01)1025を挿入して、同じスニペット1における自動入力のパラメータ部分?TOOL:Q0?に工具番号10002を入力する(1022)。これらを合成したMDIプログラム1021がMDI画面220に表示される。
【0074】
スニペット1は、
T?TOOL:Q0?;
G91G30Z0.;
G91G30X0.Y0.;
M6;
である。
MDIプログラムとして、
T10001;
G91G30Z0.;
G91G30X0.Y0.;
M6;
M1;
T10002;
G91G30Z0.;
G91G30X0.Y0.;
M6;
が生成される。
ここで、“T10001;”はマガジンで10001番の工具を割り出す命令、“G91G30Z0.;”および“G91G30X0.Y0.;”は主軸を工具交換位置へ移動する命令、“M6;”は工具交換の命令である。オプショナルストップ(M1;)を挟んで、“T10002;”はマガジンで10002番の工具を割り出す命令、“G91G30Z0.;”および“G91G30X0.Y0.;”は主軸を工具交換位置へ移動する命令、“M6;”は工具交換の命令である。
【0075】
(例923)
図10Cは、図9Bに示したマシニングセンタにおけるMDIプログラムの例923を説明する図である。工具管理画面210上でチェックボックスにより3つの工具が選択され、MDI転送ボタン217が押された場合を説明している。1つ目の工具は、ドリル工具であり、工具番号が10001である。2つ目の工具は、エンドミル工具であり、工具番号が10002である。3つ目の工具は、エンドミル工具であり、工具番号が10003である。
【0076】
MDI転送ボタン217がタッチされると、MDIプログラム生成部321は、MDI転送ボタン216に紐付いたプログラム生成定義に従って、スニペット1を挿入した後、工具種がドリルであれば次にスニペット2を挿入し、エンドミルであれば次にスニペット3を挿入する。複数工具が選択されている場合は、スニペット1および2の組と、スニペット1および3の組との間にM1(オプショナルストップ指令)を挿入する。
【0077】
具体的には、1つ目の選択工具については、スニペット1の自動入力パラメータ部分?TOOL:Q0?に1つ目の工具番号10001を入力する(1012)。そして、1つ目の選択工具種がドリルかエンドミルかを判定する。1つ目の選択工具種がドリルなので、スニペット2(工具長計測用マクロの自動呼出し)を挿入する(1035)。オプショナルストップ(M01)1025を挿入の後、スニペット1の自動入力パラメータ部分?TOOL:Q0?に2つ目の工具番号10002を入力する(1022)。そして、2つ目の選択工具種がドリルかエンドミルかを判定する。2つ目の選択工具種がエンドミルなので、スニペット3の自動入力パラメータ部分?TOOL:Q1102?に、選択されたエンドミルの工具径形状補正値(図10Cでは“20.”)を自動設定する(1036)。さらに、オプショナルストップ(M01)1025を挿入の後、スニペット1の自動入力パラメータ部分?TOOL:Q0?に3つ目の工具番号10003を入力する(1032)。そして、3つ目の選択工具種がドリルかエンドミルかを判定する。3つ目の選択工具種がエンドミルなので、スニペット3の自動入力パラメータ部分?TOOL:Q1102?に、選択されたエンドミルの工具径形状補正値(図10Cでは“30.”を自動設定する(1037)。これらのプログラムを合成したMDIプログラム1031がMDI画面220に表示される。
【0078】
スニペット1は、
T?TOOL:Q0?;
G91G30Z0.;
G91G30X0.Y0.;
M6;
である。
スニペット2は、G324H#149;であり、工具長計測用マクロを呼び出す命令である。
スニペット3は、G324H#149B300.M0X?TOOL:Q1102?;であり、工具長計測用マクロを呼び出して、仮工具長を300とし、選択された工具に設定されている工具径形状補正値を、X軸シフト量として入力する命令である。ここで、Q1102は、工具径形状補正値を示すパラメータ識別子である。
MDIプログラムとして、
T10001;
G91G30Z0.;
G91G30X0.Y0.;
M6;
G324H#149;
M1;
T10002;
G91G30Z0.;
G91G30X0.Y0.;
M6;
G324H#149B300.M0X20.;
M1;
T10003;
G91G30Z0.;
G91G30X0.Y0.;
M6;
G324H#149B300.M0X30.;
が生成される。
ここで、“T10001;”から“M6;”までは、工具番号10001の工具によるスニペット1の動作命令である。“G324H#149;”は、工具長計測用マクロを呼び出す命令である。オプショナルストップ(M1;)を挟んで、“T10002;”から“M6;”までは、工具番号10002の工具によるスニペット1の動作命令である。“G324H#149B300.M0X20.;”は、工具長計測用マクロを呼び出し、工具番号10002の工具について、仮工具長をスニペット3の“300.”に指定し、X軸シフト量を工具径形状補正値として自動入力された“20.”に指定する命令である。オプショナルストップ(M1;)を挟んで、“T10003;”から“M6;”までは、工具番号10003の工具によるスニペット1の動作命令である。“G324H#149B300.M0X30.;”は、工具長計測用マクロを呼び出し、工具番号10003の工具について、仮工具長をスニペット3の“300.”に指定し、X軸シフト量を工具径形状補正値として自動入力された“30.”に指定する命令である。
【0079】
(例924)
図10Dは、図9Bに示したマシニングセンタにおけるMDIプログラムの例924を説明する図である。例924は、例923において、スニペット3ではなく、パラメータ自動入力要求の図9Aに示した書式2を含むスニペット4を読み出してMDIプログラム生成する例である。スニペット4においては、工具長計測用マクロを自動に呼出して、仮工具長を自動入力する。なお、図10Dにおいて、スニペット3をスニペット4に変更する以外は図10Cと同様であるので,同じ構成要素には同じ参照番号を付して、同じ処理の説明については重複を避けるため省略する。
【0080】
MDI転送ボタン217がタッチされると、MDIプログラム生成部321は、MDI転送ボタン217に紐付いたプログラム生成定義に従って、スニペット1を挿入した後、工具種がドリルであれば次にスニペット2を挿入し、エンドミルであれば次にスニペット4を挿入する。複数工具が選択されている場合は、スニペット1および2の組と、スニペット1および4の組との間にM1(オプショナルストップ指令)を挿入する。
【0081】
具体的には、選択された2つ目および3つ目の工具がエンドミルなので、スニペット1の次にスニペット4が挿入される。そして、スニペット4の自動入力パラメータ部分?TOOL:Q1101+100.?に、選択された工具に設定されている工具長形状補正値に100を加えた値を入力する(1046,1047)。すなわち、命令1046では自動入力パラメータ部分?TOOL:Q1101+100.?に200.(=100+100)が入力され、命令1046では自動入力パラメータ部分?TOOL:Q1101+100.?に250.(=150+100)が入力される。このように生成されたMDIプログラム1041がMDI画面220に表示される。
【0082】
スニペット4は、G324H#149B?TOOL:Q1101+100.?M0X0.;であり、図9Aのパラメータ自動入力要求の書式2に相当する。スニペット4は、工具長計測用マクロを呼び出して、選択された工具に設定されている工具径形状補正値に100を加算した値を仮工具長として入力し、X軸シフト量として0.を入力する命令である。ここで、Q1101は工具長形状補正値を示すパラメータ識別子である。
MDIプログラムとして、
T10001;
G91G30Z0.;
G91G30X0.Y0.;
M6;
G324H#149;
M1;
T10002;
G91G30Z0.;
G91G30X0.Y0.;
M6;
G324H#149B200.M0X0.;
M1;
T10003;
G91G30Z0.;
G91G30X0.Y0.;
M6;
G324H#149B250.M0X0.;
が生成される。
ここで、 “G324H#149B200.M0X0.;”は、工具長計測用マクロを呼び出し、工具番号10002の工具について、仮工具長を、選択された工具の工具長形状補正値“100”を用いて“200.(=100+100)”に指定し、X軸シフト量をスニペット4の“0.”に指定する命令である。“G324H#149B250.M0X0.;”は、工具長計測用マクロを呼び出し、工具番号10003の工具について、仮工具長を、選択された工具の工具長形状補正値“150”を用いて“250.(=150+100)”に指定し、X軸シフト量をスニペット4の“0.”に指定する命令である。
【0083】
(例925)
図10Eは、図9Bに示したマシニングセンタにおけるMDIプログラムの例925を説明する図である。工具管理画面210上でチェックボックスにより3つの工具が選択され、MDI転送ボタン217が押された場合を説明している。例925は、例923において、スニペット3ではなく、パラメータ手動入力要求の図9Aに示した書式3を含むスニペット5を読み出してMDIプログラム生成する例である。スニペット5においては、工具長計測用マクロを自動に呼出して、X軸シフト量の初期値を選択された工具の工具径形状補正値に設定した後、ユーザがX軸シフト量を手動入力できる。なお、図10Eにおいて、スニペット3をスニペット5に変更する以外は図10Cと同様であるので、同じ構成要素には同じ参照番号を付して、同じ処理の説明については重複を避けるため省略する。
【0084】
MDI転送ボタン217がタッチされると、MDIプログラム生成部321は、MDI転送ボタン217に紐付いたプログラム生成定義に従って、スニペット1を挿入し、工具種がドリルであればスニペット2を、エンドミルであればスニペット5を次に挿入する。複数工具が選択されている場合は、スニペット1および2の組と、スニペット1および3の組との間にM1(オプショナルストップ指令)を挿入する。
【0085】
具体的には、選択された2つ目および3つ目の工具がエンドミルなので、スニペット1の次にスニペット5を挿入する。そして、スニペット5には、X軸シフト量の手動入力を求める?MANUALINPUT:G324X=TOOL:Q1102?が記述されているので、パラメータ手動入力画面230をオープンして、X軸シフト量の手動入力を待つ。スニペット5ではTOOL:Q1102が指定されているので、パラメータ手動入力画面230の手動入力欄232には選択された工具の工具径形状補正値(“20.”と“30.”)が初期値として表示される。ユーザは、パラメータ手動入力画面230中のMDIプログラムのプレビュー231を参照して、手動入力欄232の初期値を維持してもよいし変更してもよい。
【0086】
ユーザが手動入力欄232の変更を入力してMDI転送ボタン233をタッチすることで、スニペット5のパラメータ部分への手動入力が実現する。図10Eにおいては、工具番号10002の手動入力欄232に“21.”が入力されたので、スニペット5の手動入力パラメータ部分?MANUALINPUT:G324X=TOOL:Q1102?に“21.”が入力される(1056)。また、工具番号10003の手動入力欄232に“31.”が入力されたので、スニペット5の手動入力パラメータ部分?MANUALINPUT:G324X=TOOL:Q1102?に“31.”が入力される(1057)。これらを合成したMDIプログラム1051がMDI画面220に表示される。
【0087】
スニペット5は、G324H#149B300.M0X?MANUALINPUT:G324X=TOOL:Q1102?;であり、工具長計測用マクロを呼び出して、X軸シフト量として工具径形状補正値を手動入力する命令である。ここで、Q1102は、選択された工具の工具径形状補正値を示すパラメータ識別子である。
MDIプログラムとして、
T10001;
G91G30Z0.;
G91G30X0.Y0.;
M6;
G324H#149;
M1;
T10002;
G91G30Z0.;
G91G30X0.Y0.;
M6;
G324H#149B300.M0X21.;
M1;
T10003;
G91G30Z0.;
G91G30X0.Y0.;
M6;
G324H#149B300.M0X31.;
が生成される。
ここで、“G324H#149B300.M0X21.;”は、工具長計測用マクロを呼び出し、工具番号10002の工具について、仮工具長をスニペット5の“300.”に指定し、X軸シフト量を手動入力した“21.”に設定する命令である。“G324H#149B300.M0X31.;”は、工具長計測用マクロを呼び出し、工具番号10003の工具について、仮工具長をスニペット5の“300.”に指定し、X軸シフト量を手動入力した“31.”に設定する命令である。
【0088】
(例926)
図10Fは、図9Bに示したマシニングセンタにおけるMDIプログラムの例926を説明する図である。工具管理画面210上でチェックボックスによる3つの工具が選択され、MDI転送ボタン217が押された場合を説明している。例926は、例923において、スニペット3の代わりにスニペット6が用いられる。スニペット6においては、工具長計測用マクロを自動に呼出して、図9Aのパラメータ自動入力要求の書式2に従い仮工具長を自動入力し、パラメータ手動入力要求の書式1に従いX軸シフト量を手動入力する。なお、図10Fにおいて、スニペット3をスニペット6に変更する以外は、図10Cと同様であるので同じ構成要素には同じ参照番号を付して、同じ処理の説明については重複を避けるため省略する。
【0089】
MDI転送ボタン217がタッチされると、MDIプログラム生成部321は、MDI転送ボタン217に紐付いたプログラム生成定義に従って、スニペット1を挿入し、工具種がドリルであればスニペット2を、エンドミルであればスニペット6を次に挿入する。複数工具が選択されている場合は、スニペト1および2の組と、スニペスト1および6の組との間にM1(オプショナルストップ指令)を挿入する。
【0090】
具体的には、選択された2つ目および3つ目の工具がエンドミルなので、スニペット1の次にスニペット6を挿入する。スニペット6には、仮工具長の自動入力を示す?TOOL:Q1101+100.?に対応して、(選択された工具の工具長形状補正値+100)が入力される。また、X軸シフト量の手動入力を求める?MANUALINPUT:G324X?が記述されているので、パラメータ手動入力画面230をオープンして、X軸シフト量の手動入力を待つ。ユーザは、パラメータ手動入力画面230中のMDIプログラムのプレビュー231を参照して、工具径形状補正値の手動入力欄232に手動入力を行ってMDI転送ボタン233をタッチすることで、スニペット6のパラメータ部分への手動入力が実現する。図10Fにおいては、工具番号10002に対して、スニペット6の自動入力パラメータ部分?TOOL:Q1101+100.?に“200.”が入力される。そして、工具番号10002の手動入力欄232に“21.”が入力されたので、手動入力パラメータ部分?MANUALINPUT:G324X?に“21.”が入力される(1066)。また、工具番号10003に対して、スニペット6の自動入力パラメータ部分?TOOL:Q1101+100.?に“200.”が入力される。そして、工具番号10003の手動入力欄232に“31.”が入力されたので、手動入力パラメータ部分?MANUALINPUT:G324X?に“31.”が入力される(1067)。これらのプログラムを合成したMDIプログラム1061がMDI画面220に表示される。
【0091】
スニペット6は、G324H#149B3?TOOL:Q1101+100.?M0X?MANUALINPUT:G324X?;であり、工具長計測用マクロを呼び出して、仮工具長を自動入力してX軸シフト量を手動入力する命令である。ここで、Q1101は、工具長形状補正値を示すパラメータ識別子であり、Q1102は、工具径形状補正値を示すパラメータ識別子である。
MDIプログラムとして、
T10001;
G91G30Z0.;
G91G30X0.Y0.;
M6;
G324H#149;
M1;
T10002;
G91G30Z0.;
G91G30X0.Y0.;
M6;
G324H#149B200.M0X21.;
M1;
T10003;
G91G30Z0.;
G91G30X0.Y0.;
M6;
G324H#149B250.M0X31.;
が生成される。
ここで、“G324H#149B200.M0X21.;”は、工具長計測用マクロを呼び出し、工具番号10002の工具について、仮工具長を、自動入力された工具の工具長形状補正値を用いて“200.(=100+100)”に設定し、X軸シフト量を手動入力した“21.”に設定する命令である。“G324H#149B200.M0X31.;”は、工具長計測用マクロを呼び出し、工具番号10003の工具について、仮工具長を、自動入力された工具の工具長形状補正値を用いて “250.(=150+100)”に設定し、X軸シフト量を手動入力した“31.”に設定する命令である。
【0092】
(例927)
図10Gは、図9Bに示したマシニングセンタにおけるMDIプログラムの例927を説明する図である。工具管理画面210上でチェックボックスによる3つの工具が選択され、MDI転送ボタン217が押された場合を説明している。例927は、例923において、スニペット3の代わりにスニペット7が用いられる。スニペット7においては、計測用マクロを自動に呼出して、図9Aのパラメータ手動入力要求の書式4に従い仮工具長を手動入力し、パラメータ手動入力要求の書式2に従いX軸シフト量を手動入力する。なお、図10Gにおいて、スニペット3をスニペット7に変更する以外は、図10Cと同様であるので同じ構成要素には同じ参照番号を付して、同じ処理の説明については重複を避けるため省略する。
【0093】
MDI転送ボタン217がタッチされると、MDIプログラム生成部321は、MDI転送ボタン217に紐付いたプログラム生成定義に従って、スニペット1を挿入し、工具種がドリルであればスニペット2を、エンドミルであればスニペット7を次に挿入する。複数工具が選択されている場合は、スニペット1および2の組と、スニペット1および7の組との間にM1(オプショナルストップ指令)を挿入する。
【0094】
具体的には、選択された2つ目および3つ目の工具がエンドミルなので、スニペット1の次にスニペット7を挿入する。スニペット7には、仮工具長の手動入力を示す?MANUALINPUT:G324B=TOOL:Q1101+100.?が記述され、また、X軸シフト量の手動入力を求める?MANUALINPUT:G324X=0.?が記述されているので、パラメータ手動入力画面230をオープンして、仮工具長とX軸シフト量との手動入力を待つ。パラメータ手動入力画面230の手動入力欄1072には、工具番号10002に対して初期値として“200.(=100+100)”が入り、手動入力欄232には初期値として“0.”が入っている。また、工具番号10003に対して初期値として“250.(=150+100)”が入り、手動入力欄232には初期値として“0.”が入っている。ユーザは、パラメータ手動入力画面230中のMDIプログラムのプレビュー231を参照して、手動入力欄1072や232の初期値を維持してもよいし変更してもよい。
【0095】
ユーザが初期値を変更して、仮工具長の手動入力欄1072とX軸シフト量の手動入力欄232とに手動入力を行ってMDI転送ボタン233をタッチすることで、スニペット7のパラメータ部分への手動入力が実現する。図10Gにおいては、工具番号10002の手動入力欄1072に“150.”が入力され手動入力欄232に“21.”が入力されたので、スニペット7の手動入力パラメータ部分?MANUALINPUT:G324B=TOOL:Q1101+100.?に“150.”が入力され、手動入力パラメータ部分?MANUALINPUT:G324X=0.?に“21.”が入力される(1076)。また、工具番号10003の手動入力欄1072に“200.”が入力され手動入力欄232に“31.”が入力されたので、スニペット7の?MANUALINPUT:G324B=TOOL:Q1101+100.?に “200”が入力され、手動入力パラメータ部分?MANUALINPUT:G324X=0.?に “31.”が入力される(1077)。これらのプログラムを合成したMDIプログラム1071がMDI画面220に表示される。
【0096】
スニペット7は、G324H#149B3?MANUALINPUT:G324B=TOOL:Q1101+100.?M0X?MANUALINPUT:G324X=0.?;であり、工具長計測用マクロを呼び出して、仮工具長を手動入力しX軸シフト量を手動入力する命令である。ここで、Q1101は、工具長形状補正値を示すパラメータ識別子である。
MDIプログラムとして、
T10001;
G91G30Z0.;
G91G30X0.Y0.;
M6;
G324H#149;
M1;
T10002;
G91G30Z0.;
G91G30X0.Y0.;
M6;
G324H#149B150.M0X21.;
M1;
T10003;
G91G30Z0.;
G91G30X0.Y0.;
M6;
G324H#149B200.M0X31.;
が生成される。
ここで、“G324H#149B250.M0X21.;”は、工具長計測用マクロを呼び出し、工具番号10002の工具について、仮工具長を、手動入力した工具長形状補正値“150.”に設定し、X軸シフト量を手動入力した“21.”に設定する命令である。“G324H#149B300.M0X31.;”は、工具長計測用マクロを呼び出し、工具番号10003の工具について、仮工具長を、手動入力した工具長形状補正値“200.”に設定し、X軸シフト量を手動入力した“31.”に設定する命令である。
【0097】
(例928)
図10Hは、図9Bに示したマシニングセンタにおけるMDIプログラムの例928を説明する図である。例928は、スニペット8を読み出してMDIプログラムを生成する例である。スニペット8では、工具径摩耗補正値をマクロ変数(#100)として読み出して変更し、変更した値を工具径摩耗補正値としてマクロ変数(#100)から書き戻す。
【0098】
MDI転送ボタン216がタッチされると、MDIプログラム生成部321は、MDI転送ボタン216に紐付いたプログラム生成定義に従って、選択された工具の工具番号をスニペット8に挿入する。具体的には、自動入力パラメータ部分?TOOL:Q0?に選択された工具の工具番号を入力する(1082)。生成されたMDIプログラム1081がMDI画面220に表示される。
【0099】
スニペット8は、
G388A100.T?TOOL:Q0?.Q1104;
#100=#100+0.1;
G389A100.T?TOOL:Q0?.Q1104;
である。ここで、G388は工具データ読み出し指令であり、G389は工具データ書き込み指令である。A100は変数番号100を表す。Q1104は工具径摩耗補正値を示すパラメータ識別子である。
MDIプログラムとしては、
G388A100.T10001.Q1104;
#100=#100+0.1;
G389A100.T10001.Q1104;
が生成される。
ここで、G388A100.T10001.Q1104;は、工具管理機能から工具番号10001の工具径摩耗補正値をマクロ変数#100へ読み出す命令である。#100=#100+0.1;は、読み出された工具径摩耗補正値に“0.1”を加える命令である。G369A100.T10001.Q1104;は、工具管理機能の工具番号10001の工具径摩耗補正値へマクロ変数#100の値(すなわち、読み出したマクロ変数#100+0.1)を書き込む命令である。
【0100】
≪ターニングセンタにおける例≫
(例931)
図11Aは、図9Bに示したターニングセンタにおけるMDIプログラムの例931を説明する図である。ターニングセンタにおける工具管理画面1110上で選択された工具1111は、工具情報としてステーション番号と補正番号とを有する。MDI転送ボタン1112がタッチされると、MDIプログラム生成部321は、MDI転送ボタン1112に紐付けされたMDIプログラムのプログラム生成定義に基づいて、選択された工具に対応してスニペット9を挿入する。
【0101】
具体的には、ステーションの割り出しと補正番号の指令を記述するスニペット9が読み出されて、工具1111の工具情報からパラメータ識別子Q1118で示されるTコードがスニペット9に入力されて、生成されたMDIプログラム1114がMDI画面220に表示される。
【0102】
スニペット9は、
T?TOOL:Q1118?;
である。ここで、Q1118はTコードを示すパラメータ識別子である。
MDIプログラムとしては、
T0121;
が生成される。
ターニングセンタのT指令では左2桁がステーション番号(01)、右2桁が補正番号(21)を表し、ステーションの割り出しと補正番号の指令とをまとめて行う。
【0103】
(例932)
図11Bは、図9Bに示したターニングセンタにおけるMDIプログラムの例932を説明する図である。例932は、複数の工具1111、1121を選択していた場合に生成されるMDIプログラムである。MDI転送ボタン1112がタッチされると、MDIプログラム生成部321は、MDI転送ボタン1112に紐付けされたMDIプログラムのプログラム生成定義に基づいて、選択された工具のそれぞれに対応してスニペット9を挿入する。複数工具が選択されている場合はその間に、オプショナルストップ(M1)を挿入する。
【0104】
具体的には、ステーションの割り出しと補正番号の指令を記述するスニペット9が読み出されて、工具1111の工具情報からパラメータ識別子Q1118で示されるTコードがスニペット9に入力される(1114)。また、スニペット9が読み出されて、工具情報1121からパラメータ識別子Q1118で示されるTコードがスニペット9に入力される(1124)。表示されるMDIプログラム1123では、2つの工具1111、1121のスニペット9によるMDIプログラム1114、1124間に、オプショナルストップ(M1)1125が挿入される。
【0105】
選択した複数の工具は、Tコード0121とTコード0222とである。
スニペット9は、
T?TOOL:Q1118?;
である。ここで、Q1118はTコードを示すパラメータ識別子である。
MDIプログラムとして、
T0121;
M1;
T0222;
が生成される。
ターニングセンタのT指令では左2桁がステーション番号、右2桁が補正番号を表し、ステーション01の割り出しと補正番号(21)の指令とをまとめて行った後、ステーション02の割り出しと補正番号(22)の指令とをまとめて行う。
【0106】
なお、タレットのステーションに工具ホルダを付けて、2個や4個など複数の工具を付けることが可能であるが、タレットのステーションに工具ホルダを付けて2個の工具を付けた場合の工具管理画面1130は、図11Cに示すようになる。工具管理画面1130において、例えば、ST1の2本目の工具1131を選択して、MDI転送ボタン1132をタッチすることにより、MDIプログラムを自動生成することができる。
【0107】
≪工具オフセットにおける例≫
(例941)
図12Aは、図9Bに示した工具オフセットにおけるMDIプログラムの具体例941を説明する図である。工具オフセットにおいて用いられる工具オフセット画面1210で選択された工具の工具補正情報1211は、補正番号と工具径形状補正値と工具径摩耗補正値とを有する。そして、工具オフセット画面上で工具オフセット番号が選択されてMDI転送ボタン1212がタッチされると、MDI転送ボタン1212に紐付けされたMDIプログラムのプログラム生成定義に基づいて、MDIプログラム生成部321がスニペット10を挿入する。具体的には、スニペット10が読み出されて、工具オフセットを入力して工具径摩耗補正値を一定量増やすプログラムが生成される(1214)。生成されたプログラム1214がMDIプログラム1213としてMDI画面220に表示される。
【0108】
スニペット10は、
?TOOLOFFSET:DWEARVAR?=?TOOLOFFSET:DWEARVAR?+0.1;
である。ここで、TOOLOFFSETは、工具オフセット情報用のパラメータ自動入力部の識別子、DWEARVARは工具径摩耗補正値のシステム変数を示すパラメータ識別子である。
MDIプログラムとしては、
#12001=#12001+0.1;
が生成される。
ここで、選択された補正番号が1番で工具径摩耗補正値が10であり、MDIプログラム1241によって、システム変数#12001を補正番号が1番の工具径摩耗補正値とし、工具径摩耗補正値を一定量増やすことで逃がすことを行う。一般に、長方向に比べて径方向の方が一般的に加工精度を要求される。例えばネジ穴である。例えば公差が±0.01だとして、その工具・そのワークの組み合わせの初めての加工時に、一旦0.1逃がして加工してワークを計測し、計測結果に基づいて補正値を調整することで、不良品を出さずに済むことになる。
【0109】
(例942)
図12Bは、図9Bに示した工具オフセットにおけるMDIプログラムの例942を説明する図である。図12Aと同様に、工具オフセットにおいて用いられる工具オフセット画面1210で選択された工具の工具補正情報1211は、補正番号と工具径形状補正値と工具径摩耗補正値とを有する。そして、工具オフセット画面上で工具オフセット番号が選択されてMDI転送ボタン1212がタッチされると、MDI転送ボタン1212に紐付けされたMDIプログラムのプログラム生成定義に基づいて、MDIプログラム生成部321がスニペット11を挿入する。具体的には、スニペット11が読み出されて、工具オフセットを入力して工具径摩耗補正値を指定値だけ書き換えるプログラムが生成される(1224)。生成されたプログラム1224がMDIプログラム1223としてMDI画面220に表示される。
【0110】
スニペット11は、G10G90L13P?TOOLOFFSET:NUMBER?R?TOOLOFFSET:DWEAR+0.1?;
である。ここで、NUMBERは補正番号、DWEARは工具径摩耗補正値を示すパラメータ識別子である。
MDIプログラムとして、
G10G90L13P1R10.1;
が生成される。
ここで、G10L13が工具径摩耗補正値の書き換えの指令であり、Pが補正番号、Rが補正値である。
【0111】
以上、本実施形態によれば、定型プログラムに記述されたパラメータ部分を、工具管理画面で選択された工具の特定の工具情報に自動的に置き換えるので、工具番号を含む特定の工具情報を、ユーザによるキー入力なしに自動的に設定してMDIプログラムを生成することができる。また、定型プログラムに記述されたパラメータ部分を、工具オフセット画面で選択された工具のオフセット値に自動的に置き換えるので、工具のオフセット値をユーザによるキー入力なしに自動的に設定してMDIプログラムを生成することができる。
【0112】
すなわち、スニペットに記述されたパラメータ部分は特定のフォーマットにより定義されているので、ユーザによる変更修正によるスニペットの編集が簡単であり、MDIプログラムの生成編集をミスなく実現できる。
【0113】
本実施形態の技術を用いれば、MDIプログラム生成時の手間や操作間違いの危険性を大きく低減できる。特に、複数の工具を連続的に工具主軸へ呼び出す場合に効果的である。
【0114】
[第3実施形態]
次に、本発明の第3実施形態に係る工作機械制御装置について説明する。本実施形態に係る工作機械制御装置は、上記第2実施形態と比べると、ユーザが生成および編集したスニペットを使用できる点で異なる。本実施形態においては、ユーザによる画面での選択指示に従って、特定フォーマットを有するパラメータ部分を自動的に定型プログラムに挿入する。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【0115】
<スニペット生成編集を含む構成>
図13Aに示すように、工具管理画面210において、複数の工具213が選択されて、MDI転送(ユーザ定義A)ボタン1314、MDI転送(ユーザ定義B)ボタン1315がタッチされた場合には、MDI画面1316のように、ユーザが生成し、それぞれのボタンに紐付けられたスニペットに基づいてMDIプログラムが生成される。
【0116】
図13Bは、図13Aのように、複数のMDI転送ボタンを工具管理画面210に表示せず、プルダウンメニュー1318を表示する例を示している。例えば、MDI転送(ユーザ定義)が選択されると、下位のメニュー1319が表示される。
【0117】
<スニペット生成編集手順>
図13Cは、工作機械制御装置のスニペット生成編集画面1320を示す図である。スニペット生成編集画面1320において、まず、スニペット表示画面1321には、スニペットの第1行の最初“T(ATC(Automatic Tool Changer: 自動工具交換装置)位置へ割り出し)”が入力されている。スニペット生成編集ウィンドウ1322において、“パラメータ自動入力”を指示すると、スニペット表示画面1323には、“?TOOL:”が自動的に入力される。次に、スニペット生成編集ウィンドウ1324において、“工具番号”を指示すると、スニペット表示画面1325には、“Q0”が自動的に入力される。そして、スニペット生成編集ウィンドウ1326において、“確定”を指示すると、“T?TOOL:Q?”のスニペットの第1行の入力が完了する。なお、図13Cには、初期入力の例を示したが、既存のスニペットを読み出して編集する場合も、同様の操作で容易に入力が可能となる。
【0118】
図13Dは、工作機械制御装置の他のスニペット生成編集画面1340を示す図である。スニペット生成編集画面1340においては、スニペットを各ラインの命令ごとに生成あるいは編集する。スニペット表示画面1341と、各機能(図ではG28機能)における数値の入力欄1342とを示している。Insertボタン1343のタッチにより入力欄1342の数値がスニペットに挿入される。スニペット生成編集画面1340は、スニペットの簡易な生成編集のために使用される。
【0119】
<工具管理モジュールの構成>
図14は、MDI転送モジュール1420の構成を示すブロック図である。なお、図14において、図5Aと同様の構成要素には同じ参照番号を付して、重複する説明を省略する。
【0120】
MDI転送モジュール1420は、スニペット取得部1421と、スニペット編集用データ取得部1422と、スニペット生成編集部1423と、を備える。また、MDI転送モジュール1420は、スニペット編集用データ保管部1424を有するデータベース1410を備える。スニペット取得部1421は、編集用のスニペットをスニペット識別子によりスニペット保管部323から取得する。スニペット編集用データ取得部1422は、スニペット編集用データ保管部1424から、スニペット編集用データを取得する。スニペット生成編集部1423は、スニペット取得部1421が取得したスニペットを、スニペット編集用データを用いて編集する。なお、取得したスニペットが無い場合は、スニペットの生成を行う。生成あるいは編集されたスニペットはスニペット保管部323に検索可能に保管される。
【0121】
(スニペット編集用データ保管部)
図15は、スニペット編集用データ保管部1424の構成を示す図である。スニペット編集用データ保管部1424は、入力モードテーブル1510と、書式テーブル1520と、入力データテーブル1530と、を有する。入力モードテーブル1510は、パラメータ部分の入力モードが自動入力か手動入力かのユーザ設定1511に対応して、スニペット記述子1412を記憶する。本実施形態においては、自動入力の場合は“?TOOL”が記憶され、手動入力の場合は“?MANUALINPUT”が記憶される。書式テーブル1520には、図9Aに示したような書式番号1521に対応付けて、書式の定義1522と入力記述例1523とを記憶する。入力記述例1523は、ユーザの参照のために表示される。入力データテーブル1530は、入力データ名1531に対応付けて、パラメータ識別子1532と使用する書式番号1533とを記憶する。例えば、入力データ名1531が工具番号であれば、パラメータ識別子1532には“Q0”が記憶される。また、入力データ名1531が工具長補正形状であれば、パラメータ識別子1532には“Q1101”が記憶される。また、入力データ名1531が工具径補正形状であれば、パラメータ識別子1532には“Q1102”が記憶される。
【0122】
<スニペットの生成編集処理手順>
図16Aは、本実施形態に係る工作機械制御装置のスニペットの生成編集処理の手順を示すフローチャートである。MDI転送モジュール1420は、ステップS1601において、スニペットの生成か編集かを判定する。スニペットの生成であれば、MDI転送モジュール1420は、ステップS1611において、新たなスニペット識別子を設定する。MDI転送モジュール1420は、ステップS1613において、スニペットの機能記述を順に入力する。そして、MDI転送モジュール1420は、ステップS1615において、入力パラメータ位置になったことを判定する。入力パラメータ位置になった場合、MDI転送モジュール1420は、ステップS1617において、パラメータ部分の記述挿入処理を実行する。そして、MDI転送モジュール1420は、ステップS1619において、スニペットの生成終了を判定する。スニペットの生成終了でなければ、MDI転送モジュール1420は、ステップS1613に戻って、スニペットの生成を継続する。
【0123】
一方、スニペットの編集であれば、MDI転送モジュール1420は、ステップS1621において、スニペット識別子を入力する。MDI転送モジュール1420は、ステップS1623において、スニペット識別子を用いてスニペットを読み出してMDI画面に表示する。そして、MDI転送モジュール1420は、ステップS1625において、既存のスニペットのどの位置を編集するかを設定する。MDI転送モジュール1420は、ステップS1627において、編集位置がパラメータ部分編集位置であるか否かを判定する。パラメータ部分編集位置であれば、MDI転送モジュール1420は、ステップS1629において、パラメータ部分の記述挿入処理を実行する。一方、パラメータ部分編集位置でなければ、MDI転送モジュール1420は、ステップS1631において、パラメータ部分の機能記述の修正を行う。そして、MDI転送モジュール1420は、ステップS1633において、スニペットの編集終了を判定する。スニペットの編集終了でなければ、MDI転送モジュール1420は、ステップS1625に戻って、スニペットの編集を継続する。
【0124】
スニペットの生成終了またはスニペットの編集終了を判定すると、MDI転送モジュール1420は、ステップS1620において、生成した新規のスニペットあるいは編集した既存のスニペットを保管する。
【0125】
(パラメータ部分の記述挿入処理)
図16Bは、パラメータ部分の記述挿入処理S1617、S1629の手順を示すフローチャートである。MDI転送モジュール1420は、ステップS1641において、自動入力か手動入力かを判定する。自動入力であれば、MDI転送モジュール1420は、ステップS1643において、“?TOOL”をスニペットの入力位置に挿入する。一方、手動入力であれば、MDI転送モジュール1420は、ステップS1643において、“?MANUALINPUT”をスニペットの入力位置に挿入する。
【0126】
次に、MDI転送モジュール1420は、ステップS1647において、次に入力するデータが入力値識別子か否かを判定する。入力値識別子であれば、MDI転送モジュール1420は、ステップS1649において、入力値識別子の入力あるいはプルダウンメニューなどからの選択をする。入力値識別子でなければ、MDI転送モジュール1420は、ステップS1651において、機能識別子か否かを判定する。機能識別子であれば、MDI転送モジュール1420は、ステップS1653において、機能識別子の入力あるいはプルダウンメニューなどからの選択をする。機能識別子でなければ、何もせずに次にすすむ。MDI転送モジュール1420は、ステップS1655において、パラメータ部分の入力終了か否かを判定する。パラメータ部分の入力終了でなければ、MDI転送モジュール1420は、ステップS1647に戻って、パタメータの完成まで処理を繰り返す。
【0127】
パラメータ部分の入力終了になれば、MDI転送モジュール1420は、ステップS1647において、パラメータ部分の最後に“?”を挿入して処理を終了する。
【0128】
本実施形態によれば、ユーザによるキー入力なしに自動的にパラメータ部分を挿入して、スニペットを生成および編集することができる。そして、ユーザが生成および編集したヅニペットを用いてMDIプログラムを効率的に生成することができる。
【0129】
[第4実施形態]
次に、本発明の第4実施形態に係る工作機械制御装置について説明する。本実施形態に係る工作機械制御装置は、上記第2実施形態および第3実施形態と比べると、プログラム生成定義の生成および編集を簡易な操作で実現する点で異なる。本実施形態においては、ユーザによる画面での選択指示に従ってプログラム生成定義内のスニペットを変更および修正して、プログラム生成定義を自動的に編集する。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【0130】
<プログラム定義の生成編集手順>
図17において、工作機械制御装置のプログラム生成定義の生成編集手順を示す。プログラム定義生成編集画面1720において、まず、プログラム定義表示画面1721には、プログラム生成定義の旧スニペットが表示されている。プログラム定義生成編集ウィンドウ1722において“変更”を指示し、次に、プログラム定義生成編集ウィンドウ1724で新しいスニペットを選定すると、プログラム定義表示画面1723には、新しいスニペットが表示される。プログラム定義生成編集ウィンドウ1722において“修正”を指示した場合は、旧スニペットを第3実施形態の記載に従って修正することによって、プログラム生成定義の内容を更新する。
【0131】
<工具管理モジュールの構成>
図18は、工作機械制御装置のMDI転送モジュール1820の構成を示すブロック図である。なお、図18において、図5および図14と同様の構成要素には同じ参照番号を付して、重複する説明を省略する。
【0132】
MDI転送モジュール1820は、プログラム生成定義取得部1821とプログラム生成定義生成編集部1822とを備える。プログラム生成定義取得部1821は、プログラム生成定義識別子を用いて、プログラム生成定義保管部322からプログラム生成定義を取得する。プログラム生成定義生成編集部1822は、取得したプログラム生成定義を、例えばスニペットを取り替える、あるいは、スニペットを変更することにより編集する。また、プログラム生成定義が取得されてなければ、新規なプログラム生成定義を生成する。
【0133】
<プログラム定義生成編集処理手順>
図19Aは、プログラム定義生成編集処理の手順を示すフローチャートである。MDI転送モジュール1820は、ステップS1901において、プログラム生成定義の生成か編集かを判定する。プログラム生成定義の生成であれば、MDI転送モジュール1820は、ステップS1911において、新たなプログラム生成定義識別子を設定する。MDI転送モジュール1820は、ステップS1913において、プログラム生成定義を記述する。そして、MDI転送モジュール1820は、ステップS1915において、スニペット配置位置になったことを判定する。スニペット配置位置になった場合、MDI転送モジュール1820は、ステップS1817において、スニペットの変更処理を実行する。そして、MDI転送モジュール1820は、ステップS1919において、プログラム生成定義の生成終了を判定する。プログラム生成定義の生成終了でなければ、MDI転送モジュール1820は、ステップS1913に戻って、プログラム生成定義の生成を継続する。
【0134】
一方、プログラム生成定義の編集であれば、MDI転送モジュール1820は、ステップS1921において、プログラム生成定義識別子を入力する。MDI転送モジュール1820は、ステップS1923において、プログラム生成定義識別子を用いてプログラム生成定義を読み出してMDI画面に表示する。そして、MDI転送モジュール1820は、ステップS1925において、既存のプログラム生成定義のどの位置を編集するかを設定する。MDI転送モジュール1820は、ステップS1827において、編集位置がスニペット編集位置であるか否かを判定する。スニペット編集位置であれば、MDI転送モジュール1820は、ステップS1929において、スニペットの変更処理を実行する。一方、スニペット編集位置でなければ、MDI転送モジュール1820は、ステップS1931において、プログラム生成定義の記述の修正を行う。そして、MDI転送モジュール1820は、ステップS1933において、プログラム生成定義の編集終了を判定する。プログラム生成定義の編集終了でなければ、MDI転送モジュール1820は、ステップS1925に戻って、プログラム生成定義の編集を継続する。
【0135】
プログラム生成定義の生成終了またはプログラム生成定義の編集終了を判定すると、MDI転送モジュール1820は、ステップS1920において、生成した新規のプログラム生成定義あるいは編集した既存のプログラム生成定義を保管する。
【0136】
(スニペット変更処理)
図19Bは、スニペット変更処理S1917,S1929の手順を示すフローチャートである。MDI転送モジュール1820は、ステップS1941において、スニペットの変更か否かを判定する。スニペットの変更であれば、MDI転送モジュール1820は、ステップS1943において、新たなスニペット識別子を入力する。MDI転送モジュール1820は、ステップS1945において、新たなスニペットを読み出して元のスニペットと置換する。MDI転送モジュール1820は、ステップS1947において、読み出して置換したスニペットを編集するか否かを判定する。スニペットを編集する場合は、第3実施形態におけるスニペット編集を実行する。
【0137】
スニペットの変更でなければ、MDI転送モジュール1820は、ステップS1949において、元のスニペットを編集するか否かを判定する。スニペットを編集する場合は、第3実施形態におけるスニペット編集を実行する。いずれもスニペット編集でなければ、処理を終了する。
【0138】
本実施形態によれば、ユーザによるキー入力なしに自動的にスニペットを変更および修正して、プログラム生成定義を生成および編集することができる。
【0139】
[他の実施形態]
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の技術的範囲で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の技術的範囲に含まれる。
【0140】
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に供給され、内蔵されたプロセッサによって実行される場合にも適用可能である。本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるサーバも、プログラムを実行するプロセッサも本発明の技術的範囲に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体(non-transitory computer readable medium)は本発明の技術的範囲に含まれる。
図1
図2A
図2B
図3A
図3B
図3C
図4A
図4B
図5A
図5B
図6
図7
図8A
図8B
図9A
図9B
図10A
図10B
図10C
図10D
図10E
図10F
図10G
図10H
図11A
図11B
図11C
図12A
図12B
図13A
図13B
図13C
図13D
図14
図15
図16A
図16B
図17
図18
図19A
図19B
【手続補正書】
【提出日】2021-11-30
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
工作機械に用意された工具のリストを表示する工具管理画面を生成し、表示する工具管理部と、
定型プログラムを呼び出し、前記工具管理画面で選択された工具の工具情報を定型プログラムに加えて、MDI(Manual Data Input)プログラムを生成するMDIプログラム生成部と、
を備え
前記MDIプログラム生成部は、前記工具管理画面で2つ以上の工具が選択された場合、選択された工具の工具情報を、選択された工具の数に対応する数の前記定型プログラムのそれぞれに加えて連続的に配置することにより、前記MDIプログラムを生成する工作機械制御装置。
【請求項2】
工作機械に用意された工具のリストを表示する工具管理画面を生成し、表示する工具管理部と、
定型プログラムを呼び出し、前記工具管理画面で選択された工具の工具情報を定型プログラムに加えて、MDI(Manual Data Input)プログラムを生成するMDIプログラム生成部と、
を備え、
前記MDIプログラム生成部は、連続的に配置された前記定型プログラムの間に、オプショナルストップ指令を配置することにより、前記MDIプログラムを生成する工作機械制御装置。
【請求項3】
前記定型プログラムを記憶する記憶部をさらに備え、
前記MDIプログラム生成部は、前記記憶部から前記定型プログラムを読み出して前記MDIプログラムを生成する請求項1または2に記載の工作機械制御装置。
【請求項4】
前記MDIプログラム生成部は、前記定型プログラムの記述に応じた種別の工具情報を前記工具管理部から取得して、前記定型プログラムに加える請求項1から3のいずれか1項に記載の工作機械制御装置。
【請求項5】
工作機械に用意された工具のオフセット値を表示する工具オフセット画面を生成し、表示する工具管理部と、
定型プログラムを呼び出し、前記工具オフセット画面で選択された工具のオフセット値を定型プログラムに加えて、MDI(Manual Data Input)プログラムを生成するMDIプログラム生成部と、
を備えた工作機械制御装置。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0006
【補正方法】変更
【補正の内容】
【0006】
上記目的を達成するため、本発明に係る工作機械制御装置は、
工作機械に用意された工具のリストを表示する工具管理画面を生成し、表示する工具管理部と、
定型プログラムを呼び出し、前記工具管理画面で選択された工具の工具情報を定型プログラムに加えて、MDI(Manual Data Input)プログラムを生成するMDIプログラム生成部と、
を備え
前記MDIプログラム生成部は、前記工具管理画面で2つ以上の工具が選択された場合、選択された工具の工具情報を、選択された工具の数に対応する数の前記定型プログラムのそれぞれに加えて連続的に配置することにより、前記MDIプログラムを生成する
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0007
【補正方法】変更
【補正の内容】
【0007】
上記目的を達成するため、本発明に係る工作機械制御装置は、
工作機械に用意された工具のリストを表示する工具管理画面を生成し、表示する工具管理部と、
定型プログラムを呼び出し、前記工具管理画面で選択された工具の工具情報を定型プログラムに加えて、MDI(Manual Data Input)プログラムを生成するMDIプログラム生成部と、
を備え、
前記MDIプログラム生成部は、連続的に配置された前記定型プログラムの間に、オプショナルストップ指令を配置することにより、前記MDIプログラムを生成する