以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わされてもよい。
<A.工作機械100の構成>
まず、図1を参照して、工作機械100の構成について説明する。図1は、工作機械100の外観を示す図である。
工作機械100は、ワークの加工機である。一例として、工作機械100は、ワークの除去加工(SM(Subtractive manufacturing)加工)を行う工作機械である。あるいは、工作機械100は、ワークの付加加工(AM(Additive manufacturing)加工)を行う工作機械であってもよい。また、工作機械100は、立形のマシニングセンタや横形のマシニングセンタやターニングセンタであってもよい。あるいは、工作機械100は、旋盤であってもよいし、その他の切削機械や研削機械であってもよい。さらに、工作機械は、これらを複合した複合機であってもよい。
工作機械100には、操作盤20が設けられている。操作盤20は、加工に関する各種情報を表示するためのディスプレイ205と、工作機械100に対する各種操作を受け付ける操作キー206とを含む。
工作機械100は、加工エリアAR1と、工具エリアAR2とを有する。加工エリアAR1および工具エリアAR2のそれぞれは、カバーによって区画化されている。加工エリアAR1には、主軸頭130が設けられている。工具エリアAR2には、ATC160と、マガジン170とが設けられている。マガジン170は、ワークの加工に用いられる種々の工具を収納する。マガジン170に収納されている工具は、加工エリアAR1と工具エリアAR2との間の仕切に設けられているドアDを介して主軸頭130に取り付けられる。ドアDは、スライド式のドアであり、モータなどの駆動源により開閉される。
<B.工作機械100の駆動機構>
次に、図2を参照して、工作機械100における各種の駆動機構について説明する。図2は、工作機械100における駆動機構の構成例を示す図である。
図2に示されるように、工作機械100は、制御部50と、回転駆動部110Aと、位置駆動部110Bと、主軸頭130と、測定部140とを含む。
本明細書でいう「制御部50」とは、工作機械100を制御する装置を意味する。制御部50の装置構成は、任意である。制御部50は、単体の制御ユニットで構成されてもよいし、複数の制御ユニットで構成されてもよい。図2の例では、制御部50は、操作盤20と、CNCユニット30と、情報処理装置40とで構成されている。
操作盤20およびCNCユニット30は、たとえば、通信経路NW1(たとえば、無線LAN、有線LAN、フィールドネットワークなど)を介して互いに通信を行う。CNCユニット30および情報処理装置40は、たとえば、通信経路NW2(たとえば、無線LAN、有線LAN、フィールドネットワークなど)を介して互いに通信を行う。
CNCユニット30は、加工開始指令を受けたことに基づいて、予め設計されている加工プログラムの実行を開始する。当該加工プログラムは、たとえば、NC(Numerical Control)プログラムで記述されている。CNCユニット30は、当該加工プログラムに従って、回転駆動部110Aおよび位置駆動部110Bを制御し、主軸頭130を駆動する。
情報処理装置40は、汎用のコンピュータである。一例として、情報処理装置40は、デスクトップ型のコンピュータであってもよいし、ノート型のコンピュータであってもよいし、タブレット端末であってもよい。情報処理装置40には、画像処理プログラムがインストールされており、測定部140から取得した画像に対して種々の画像処理を実行する。
主軸頭130は、主軸筒131と、主軸132とを含む。主軸132は、主軸筒131により回転可能に支持されている。主軸132にはマガジン170(図1参照)から選択された一の工具134が装着される。工具134は、主軸132と連動して回転する。
回転駆動部110Aは、主軸132の角度を変えるための駆動機構である。一例として、回転駆動部110Aは、X軸方向を回転軸中心とした回転方向(A軸)、Y軸方向を回転軸中心とした回転方向(B軸)、および、Z軸方向を回転軸中心とした回転方向(C軸)の少なくとも1つの角度を調整する。回転駆動部110Aの装置構成は、任意である。回転駆動部110Aは、単体の駆動ユニットで構成されてもよいし、複数の駆動ユニットで構成されてもよい。図2の例では、回転駆動部110Aは、サーボドライバ111B、111Cで構成されている。
位置駆動部110Bは、主軸132の位置を変えるための駆動機構である。一例として、位置駆動部110Bは、X軸方向、Y軸方向およびZ軸方向の少なくとも1つの位置を調整する。位置駆動部110Bの装置構成は、任意である。位置駆動部110Bは、単体の駆動ユニットで構成されてもよいし、複数の駆動ユニットで構成されてもよい。図2の例では、位置駆動部110Bは、サーボドライバ111X〜111Zで構成されている。
サーボドライバ111Bは、CNCユニット30から目標回転速度の入力を逐次的に受け、B軸方向に主軸頭130を回転駆動するためのサーボモータ(図示しない)を制御する。
より具体的には、サーボドライバ111Bは、当該サーボモータの回転角度を検知するためのエンコーダ(図示しない)のフィードバック信号から当該サーボモータの実回転速度を算出し、当該実回転速度が目標回転速度よりも小さい場合には当該サーボモータの回転速度を上げ、当該実回転速度が目標回転速度よりも大きい場合には当該サーボモータの回転速度を下げる。このように、サーボドライバ111Bは、当該サーボモータの回転速度のフィードバックを逐次的に受けながら当該サーボモータの回転速度を目標回転速度に近付ける。これにより、サーボドライバ111Bは、B軸方向における主軸頭130の回転速度を調整する。
サーボドライバ111Cは、CNCユニット30から目標回転速度の入力を逐次的に受け、主軸132の軸方向を回転中心とした回転方向に主軸132を回転駆動するためのサーボモータ(図示しない)を制御する。
より具体的には、サーボドライバ111Cは、当該サーボモータの回転角度を検知するためのエンコーダ(図示しない)のフィードバック信号から当該サーボモータの実回転速度を算出し、当該実回転速度が目標回転速度よりも小さい場合には当該サーボモータの回転速度を上げ、当該実回転速度が目標回転速度よりも大きい場合には当該サーボモータの回転速度を下げる。このように、サーボドライバ111Cは、当該サーボモータの回転速度のフィードバックを逐次的に受けながら当該サーボモータの回転速度を目標回転速度に近付ける。これにより、サーボドライバ111Cは、主軸132の軸方向を回転中心とした回転方向において主軸132の回転速度を調整する。
サーボドライバ111Xは、CNCユニット30から目標位置の入力を逐次的に受け、サーボモータ(図示しない)を制御する。当該サーボモータは、主軸頭130が取り付けられている移動体をボールネジ(図示しない)を介して送り駆動し、X軸方向の任意の位置に主軸頭130を移動する。サーボドライバ111Xによる当該サーボモータの制御方法は、サーボドライバ111B、111Cと同様であるので、その説明については繰り返さない。
サーボドライバ111Yは、CNCユニット30から目標位置の入力を逐次的に受け、サーボモータ(図示しない)を制御する。当該サーボモータは、主軸頭130が取り付けられている移動体をボールネジ(図示しない)を介して送り駆動し、Y軸方向の任意の位置に主軸132を移動する。サーボドライバ111Yによる当該サーボモータの制御方法は、サーボドライバ111B、111Cと同様であるので、その説明については繰り返さない。
サーボドライバ111Zは、CNCユニット30から目標位置の入力を逐次的に受け、サーボモータ(図示しない)を制御する。当該サーボモータは、主軸頭130が取り付けられている移動体をボールネジ(図示しない)を介して送り駆動し、Z軸方向の任意の位置に主軸132を移動する。サーボドライバ111Zによる当該サーボモータの制御方法は、サーボドライバ111B、111Cと同様であるので、その説明については繰り返さない。
なお、上述では、回転駆動部110Aがサーボドライバで構成されている例について説明を行ったが、回転駆動部110Aは、その他のモータドライバで構成されてもよい。一例として、回転駆動部110Aは、ステッピングモータ用の1つ以上のモータドライバで構成されてもよい。同様に、位置駆動部110Bは、ステッピングモータ用の1つ以上のモータドライバで構成されてもよい。
測定部140は、工具の摩耗量を測定するための測定機構である。一例として、測定部140は、撮像部として機能する。情報処理装置40は、当該撮像部から得られた画像に対して所定の画像処理を実行することで、画像に写る工具の摩耗量を測定する。当該摩耗量の測定方法の詳細については後述する。
<C.測定機構>
次に、図3を参照して、測定部140の測定機構について説明する。図3は、主軸頭130と測定部140とを示す図である。
図3の例では、主軸頭130が加工エリアAR1に設けられており、測定部140および光源145,147が工具エリアAR2に設けられている。測定部140は、カメラ141と、対物レンズ142とで構成されている。
光源145は、たとえば、リング照明であり、対物レンズ142を囲うように設置される。光源145は、カメラ141の撮影視野CR内にある物体に光を照射する。当該物体からの反射光は、対物レンズ142に入射する。これにより、工具134を表わす工具画像がカメラ141から得られる。
光源147は、対物レンズ142および光源145に対向するように設けられる。光源147は、カメラ141の撮影視野CR内にある物体に撮影方向の反対側から光を照射する。その結果、光源147から照射された光は、カメラ141の撮影視野CRに含まれる物体に遮られ、当該物体に遮られなかった光がカメラ141に入射する。これにより、影絵としての工具画像がカメラ141から得られる。
<D.概要>
次に、図4を参照して、測定部140による測定処理の実行回数を減らすための方法について説明する。
工作機械100は、工具の交換時期が到来していることを検知するために、測定部140を用いて工具摩耗量の測定処理を定期的に実行する。当該測定処理は、測定対象の工具が測定部140の撮影視野に含まれるように主軸132を駆動する処理と、当該工具の画像を測定部140から取得する処理と、当該画像に基づいて工具摩耗量を推定する処理とを含む。当該測定処理が頻繁に実行されると、待ち時間が増えてしまう。一方で、工具摩耗量の測定処理が長期間実行されないと、工具の交換時期を逃す可能性がある。
そこで、工作機械100は、工具摩耗量の過去の推移を参考にして、現在の工具に対する摩耗量の測定処理が必要か否かを判断する。そして、工作機械100は、摩耗量の測定処理が必要と判断した場合にのみ、工具摩耗量の測定処理を実行する。これにより、測定部140による測定処理の実行回数が減り、かつ、工具の交換時期を逃す可能性が低減する。
図4は、工具の総使用量に対する工具摩耗量の推移を示す図である。工具の総使用量とは、新品時から現在までの工具の使用量を意味する。ここでいう「量」との用語は、時間、距離、および回数を含む概念である。すなわち、「工具の総使用量」は、現在までの工具の総使用時間と、現在までの工具の総移動距離と、現在までの工具の総使用回数とを含む概念である。
より具体的な処理として、工作機械100は、工具摩耗量の過去の推移情報122を予め取得しておく。推移情報122には、たとえば、工具種別「A」である工具「A1」の総使用量と、工具「A1」の摩耗量との関係が規定されている。図4に示されるように、工具の総使用量が増えるほど、工具摩耗量は増加する。
工具種別「A」についての推移情報122が得られている場合において、工具「A1」(第1工具)と同種の工具「A2」(第2工具)が主軸132に装着されているときには、工作機械100は、推移情報122と、工具「A2」の現総使用量とに基づいて、工具摩耗量の測定処理を実行するか否かを判断する。
より具体的には、工作機械100は、推移情報122を参照して、工具「A2」の現総使用量に対応する工具摩耗量を特定し、当該特定した工具摩耗量を工具「A2」の現摩耗量としてみなす。そして、工作機械100は、当該現摩耗量が所定閾値「th1」以下である場合には、工具摩耗量の測定処理を実行しないと判断する。
一例として、工具「A2」の現総使用量が「T1」である場合には、工作機械100は、推移情報122に従って工具「A2」の現摩耗量を「M1」とみなす。この場合、現摩耗量「M1」は、所定閾値「th1」以下であるので、工作機械100は、工具摩耗量の測定処理を実行しないと判断する。
一方で、工具「A2」の現総使用量が「T2」である場合には、工作機械100は、推移情報122に従って工具「A2」の現摩耗量を「M2」とみなす。この場合、現摩耗量「M2」は、所定閾値「th1」を超えているので、工作機械100は、工具摩耗量の測定処理を実行すると判断する。
なお、上述では、工具摩耗量の測定処理を実行するか否かが閾値「th1」に基づいて判断される例について説明を行ったが、工具摩耗量の測定処理を実行するか否かを判断する方法は、閾値「th1」を用いた方法に限定されない。一例として、工作機械100は、現工具使用量に応じた確率で、工具摩耗量の測定処理を実行すると判断してもよい。当該確率は、現工具使用量が多いほど高くなる。
<E.工作機械100の機能構成>
図5〜図10を参照して、工作機械100の機能構成について説明する。図5は、工作機械100の機能構成の一例を示す図である。
工作機械100は、機能構成として、推移情報取得部52と、監視部54と、推定部56と、実行判断部58と、第1異常処理部60と、許容範囲取得部62と、第2異常処理部64と、更新部66とを含む。以下では、これらの機能構成について順に説明する。
なお、各機能構成の配置は、任意である。一例として、図3に示される機能構成の全ては、上述の操作盤20(図2参照)に実装されてもよいし、上述のCNCユニット30(図2参照)に実装されてもよいし、上述の情報処理装置40(図2参照)に実装されてもよい。あるいは、図3に示される機能構成の一部が操作盤20に実装され、残りの機能構成の一部がCNCユニット30に実装され、残りの機能構成が情報処理装置40に実装されてもよい。あるいは、図3に示される機能構成の一部は、サーバーなどの外部装置に実装されてもよいし、専用のハードウェアに実装されてもよい。
(E1.推移情報取得部52)
まず、図6を参照して、図3に示される推移情報取得部52の機能について説明する。図6は、推移情報122のデータ構造の一例を示す図である。
推移情報取得部52は、上述の推移情報122(図4参照)を取得し、取得した推移情報122を工作機械100の記憶装置120に格納する。図6に示されるように、推移情報122には、工具の識別情報と工具使用量と工具摩耗量との対応関係が工具種別に規定されている。工具の識別情報は、たとえば、工具名や工具ID(Identification)などで示される。
ある局面において、工作機械100は、測定部140による測定処理が実行される度に、測定対象の工具の識別情報と、当該工具の現総使用量と、当該工具の摩耗量の測定結果とを、対応する工具種別の推移情報122に書き込む。これにより、工具使用量と工具摩耗量との関係が履歴として蓄積される。
他の局面において、推移情報122は、工作機械100とは異なる他の工作機械から取得される。これにより、工作機械100は、他の工作機械における測定結果を工作機械100で流用することができる。
なお、図6の推移情報122の例では、工具使用量と工具摩耗量との関係がテーブル形式で示されているが、推移情報122のデータ形式は、これに限定されない。一例として、推移情報122は、工具使用量を説明変数とし、工具摩耗量を目的変数とする算出式で示されてもよい。より具体的には、工作機械100は、工具使用量と工具摩耗量との複数の組み合わせに基づいて、工具使用量と工具摩耗量との相関関係を表わす近似式を当該算出式として生成する。当該近似式は、たとえば、多項式近似または線形近似などによって生成される。
(E2.監視部54)
次に、図7を参照して、図3に示される監視部54の機能について説明する。
監視部54は、加工プログラム323を監視し、各工具について総使用量をカウントする。工具の総使用量は、たとえば、図7に示される使用量情報124に書き込まれる。図7は、使用量情報124のデータ構造の一例を示す図である。図7に示されるように、使用量情報124には、新品時から現在までの工具の総使用量が工具の識別情報に対応付けられている。使用量情報124に規定される総使用量は、監視部54によって更新される。
より具体的には、加工プログラム323は、たとえば、Gコードで規定されており、主軸132に装着する工具を指定するための工具交換命令や、主軸や工具を回転駆動/送り駆動するための駆動命令などを含む。監視部54は、加工プログラム323に規定されている工具交換命令に基づいて、ワークの加工に用いられる工具の識別情報を特定しておく。次に、監視部54は、加工プログラム323に規定されている駆動命令が実行されたことに基づいて、当該工具の使用時間のカウントを開始する。続いて、監視部54は、加工プログラム323に規定されている停止命令または最終行の命令が実行されたことに基づいて、当該工具の使用時間のカウントを停止する。その後、監視部54は、工具使用履歴126を参照して、使用した工具に関連付けられている総使用量に、カウントされた使用時間を加算する。これにより、各工具の総使用時間が管理される。
(E3.推定部56)
次に、図8を参照して、図3に示される推定部56の機能について説明する。図8は、図7に示される推移情報122をグラフで示す図である。
図7に示される推移情報122は、工具種別「A」である工具「A1」の総使用量と、工具「A1」の工具摩耗量との関係を示す。推定部56は、推移情報122に基づいて、工具「A1」と同種である工具「A2」の現摩耗量を推定する。
より具体的には、まず、推定部56は、上述の使用量情報124を参照して、推定対象の工具「A2」に対応付けられている現総使用時間を取得する。その結果、現総使用時間が「T1」であったとする。次に、推定部56は、推移情報122を参照して、現総使用時間「T1」に対応する摩耗量「M1」を取得する。当該摩耗量「M1」は、工具「A2」の現摩耗量とみなされる。摩耗量「M1」は、実行判断部58に出力される。
(E4.実行判断部58)
引き続き図8を参照して、図3に示される実行判断部58の機能について説明する。
実行判断部58は、推定部56による現摩耗量の推定結果に基づいて、測定部140による測定処理を実行するか否かを判断する。一例として、実行判断部58は、工具の現摩耗量が閾値「th1」以下である場合には、測定部140による測定処理を実行しないと判断する。一方で、実行判断部58は、工具の現摩耗量が閾値「th1」を超えている場合には、測定部140による測定処理を実行すると判断する。
閾値「th1」は、予め設定されていてもよいし、作業者によって任意に設定されてもよい。好ましくは、閾値「th1」は、摩耗量の限界値「th2」に基づいて、工具ごとに算出される。
限界値「th2」は、限界の工具摩耗量、あるいは、限界直前の工具摩耗量を示す。限界値「th2」は、予め設定されていてもよいし、作業者によって任意に設定されてもよい。閾値「th1」は、限界値「th2」に所定の割合を乗算することで算出される。当該割合の値は任意であるが、たとえば、95%である。
実行判断部58によって判断処理が実行されるタイミングは、任意である。一例として、実行判断部58は、使用済工具がマガジン170(図1参照)に収納されるタイミングに判断処理を実行する。好ましくは、工具の総使用量が多くなるほど、実行判断部58による判断処理の実行頻度は多くなる。これにより、工具の交換タイミングを逃す可能性をより軽減することができる。なお、実行判断部58による判断処理の実行頻度は、所定の単位使用量当たりにおける判断処理の実行回数を意味する。
一例として、工具使用量が「T1」〜「T3」であるそれぞれのタイミングにおいて、実行判断部58による判断処理が実行されるとする。この場合、工具使用量「T1」〜「T3」は、以下の式(1),(2)の関係を満たす。
T1<T2<T3・・・(1)
T2−T1>T3−T2・・・(2)
工具「A2」の現総使用量が「T1」である場合には、推定部56は、推移情報122に従って工具「A2」の現摩耗量を「M1」とみなす。この場合、現摩耗量「M1」は、所定閾値「th1」以下であるので、実行判断部58は、工具摩耗量の測定処理を実行しないと判断する。
また、工具「A2」の現総使用量が「T2」である場合には、推定部56は、推移情報122に従って工具「A2」の現摩耗量を「M2」とみなす。この場合、現摩耗量「M2」は、所定閾値「th1」を超えているので、実行判断部58は、工具摩耗量の測定処理を実行すると判断する。
また、工具「A2」の現総使用量が「T3」である場合には、推定部56は、推移情報122に従って工具「A2」の現摩耗量を「M3」とみなす。この場合、現摩耗量「M3」は、所定閾値「th1」を超えているので、実行判断部58は、工具摩耗量の測定処理を実行すると判断する。
実行判断部58が工具摩耗量の測定処理を実行すると判断した場合、工作機械100は、測定部140による摩耗量の測定処理を実行する。
より具体的には、まず、工作機械100は、上述の位置駆動部110B(図2参照)を制御し、予め定められた位置に主軸頭130を移動する。主軸頭130が当該予め定められた位置に移動されることで、測定対象の工具「A2」がカメラ141(図3参照)の撮影視野CRに含まれる。次に、工作機械100は、上述の回転駆動部110A(図2参照)を制御することで予め定められた回転角度に主軸132を回転する。これにより、工具「A2」の摩耗部分がカメラ141に向けられる。
その後、工作機械100は、カメラ141に撮影指示を出力する。これにより、監視部54は、工具「A2」を写した工具画像IM1をカメラ141から取得する。
典型的には、工作機械100は、光源145(図3参照)をオンにし、かつ光源147(図3参照)をオフにした状態でカメラ141に撮影指示を出力し、工具画像IM1を取得する。これにより、カメラ方向から工具を照らした状態で工具画像IM1が得られる。
あるいは、監視部54は、光源145をオフにし、かつ光源147をオンにした状態でカメラ141に撮影指示を出力し、工具134のシルエット画像を工具画像IM1として取得してもよい。
次に、工作機械100は、カメラ141から得られた工具画像IM1に基づいて、工具「A2」の摩耗量を測定する。工具画像IM1を用いた摩耗量の測定処理には、種々の画像処理アルゴリズムが用いられ得る。一例として、工作機械100は、学習済モデルを用いて工具摩耗量を検知する。
当該学習済みモデルは、学習用データセットを用いた学習処理により予め生成されている。学習用データセットは、工具が写っている複数の学習用画像を含む。各学習用画像には、工具の種別と工具の摩耗量とを示すラベルが関連付けられる。学習済みモデルの内部パラメータは、このような学習用データセットを用いた学習処理により予め最適化されている。
学習済みモデルを生成するための学習手法には、種々の機械学習アルゴリズムが採用され得る。一例として、当該機械学習アルゴリズムとして、ディープラーニング、コンボリューションニューラルネットワーク(CNN)、全層畳み込みニューラルネットワーク(FCN)、サポートベクターマシンなどが採用される。
工作機械100は、所定の矩形領域を工具画像IM1上に設定し、当該矩形領域を工具画像IM1上でずらしながら当該矩形領域内の部分画像を学習済モデルに順次入力する。その結果、当該学習済モデルは、工具摩耗量をスコアとして出力する。工作機械100は、当該工具摩耗量が所定値を超え、かつ、当該工具摩耗量が最大となった部分画像を特定し、当該部分画像について出力された工具摩耗量を測定結果として採用する。
なお、工具摩耗量の測定方法は、学習済モデルを用いた上述の方法に限定されず、ルールベースに基づく画像処理が採用されてもよい。あるいは、工具摩耗量は、作業者によって入力されてもよい。この場合、作業者は、工具または工具画像を確認し、測定具などを用いて工具摩耗量を測定する。
(E5.第1異常処理部60)
引き続き図8を参照して、図3に示される第1異常処理部60の機能について説明する。
第1異常処理部60は、測定部140による測定結果が異常を示す場合に、所定の異常対処処理(第1異常対処処理)を実施する。所定の異常対処処理を実施するか否かは、たとえば、工具摩耗量の限界値「th2」に基づいて判断される。
一例として、工具使用量が「T2」である時に実行された測定処理では、実際の測定結果として工具摩耗量が「M2’」であったとする。この場合、当該工具摩耗量「M2’」は、限界値「th2」を超えていないので、第1異常処理部60は、異常対処処理を実施しない。
他の例として、工具使用量が「T3」である時に実行された測定処理では、実際の測定結果として工具摩耗量が「M3’」であったとする。この場合、当該工具摩耗量「M3’」は、限界値「th2」を超えているので、第1異常処理部60は、異常対処処理を実施する。
当該異常対処処理は、たとえば、工具交換を作業者に促すための警告を出力する処理である。当該警告は、工具の摩耗が限界に達していること、または、工具の摩耗が限界に近付いていることを示す。警告の出力態様は、任意である。一例として、当該警告は、工作機械100のディスプレイ上に表示されてもよいし、音声で出力されてもよいし、レポート形式でデータとして出力されてもよい。好ましくは、当該警告は、交換すべき工具の種別や工具の格納場所を含む。警告が出力されることで、作業者は、工具を新品に交換することができる。
他の例として、当該異常対処処理は、工作機械100の加工を停止する処理である。これにより、摩耗が進んだ工具が加工に用いられることを防止することができる。
(E6.許容範囲取得部62)
次に、図9を参照して、図3に示される許容範囲取得部62の機能について説明する。図9は、図7に示される推移情報122に許容範囲123を付加した図である。
許容範囲取得部62は、測定部140による測定結果の許容範囲を取得する。より具体的には、推移情報122に規定される工具の摩耗量には、工具の総使用量に応じた許容範囲が対応付けられている。図9の例では、工具種別「A」の工具「A1」の摩耗量について、許容範囲123が対応付けられている。
許容範囲123は、下限123Aと、上限123Bとで規定される。推移情報122が示す工具摩耗量は、下限123Aと上限123Bとの間で推移する。許容範囲123は、工具の総使用量が多くなるほど狭くなる。一例として、工具使用量「T5」における許容範囲ΔRAは、工具使用量「T6」(>T5)における許容範囲ΔRBよりも広い。
より具体的な処理として、許容範囲取得部62は、測定部140による測定処理の実行タイミングにおける工具「A2」の総使用量を取得する。次に、許容範囲取得部62は、推移情報122に基づいて、当該取得した総使用量に対応付けられている許容範囲を取得する。一例として、現総使用量が「T5」である場合、許容範囲取得部62は、現総使用量「T5」における許容範囲ΔRAを取得する。取得された許容範囲は、第2異常処理部64に出力される。
(E7.第2異常処理部64)
引き続き図9を参照して、図3に示される第2異常処理部64の機能について説明する。
第2異常処理部64は、工具摩耗量の実際の測定結果が許容範囲取得部62によって取得された許容範囲から外れている場合に、所定の異常対処処理(第2異常対処処理)を実施する。
一例として、工具使用量が「T5」である時に実行された測定処理では、実際の測定結果として工具摩耗量は「M5’」であったとする。測定値「M5’」は、現総使用量「T5」における許容範囲ΔRAに含まれているので、第2異常処理部64は、正常と判断し、所定の異常対処処理を実施しない。
他の例として、工具使用量が「T6」である時に実行された測定処理では、実際の測定結果として工具摩耗量は「M6’」であったとする。測定値「M6’」は、現総使用量「T5」における許容範囲ΔRBから外れているので、第2異常処理部64は、異常と判断し、所定の異常対処処理を実施する。このように、第2異常処理部64は、工具摩耗量の実際の測定結果が推定結果から大きく外れている場合には、所定の異常対処処理を実施する。
当該異常対処処理は、たとえば、警告を出力する処理である。当該警告は、工作機械100のディスプレイ上に表示されてもよいし、音声で出力されてもよいし、レポート形式でデータとして出力されてもよい。これにより、作業者は、工具摩耗量の実際の測定結果が推定結果から大きく外れている原因を探ることができる。
(E8.更新部66)
次に、図10を参照して、図3に示される更新部66の機能について説明する。
更新部66は、測定部140による工具摩耗量の測定結果に基づいて、推移情報122を更新する。図10は、更新された推移情報122を示す図である。
更新部66は、工具「A1」と同種の工具「A2」について工具摩耗量の測定処理が実行された場合には、当該測定結果を推移情報122に追加する。これにより、工具使用量に対する工具摩耗量の推移が更新され、工作機械100は、より新しい推移情報に基づいて、測定部140による測定処理を実行するか否かを判断することができる。
更新部66は、推移情報122が更新された場合には、更新後の推移情報122に基づいて、工具使用量と工具摩耗量との相関関係を表わす近似式を生成し直す。当該近似式は、たとえば、多項式近似または線形近似などによって生成される。
<F.操作盤20のハードウェア構成>
次に、図11を参照して、図2に示される操作盤20のハードウェア構成について説明する。図11は、操作盤20のハードウェア構成の一例を示す図である。
操作盤20は、制御回路201と、ROM(Read Only Memory)202と、RAM(Random Access Memory)203と、通信インターフェイス204と、ディスプレイ205と、操作キー206と、補助記憶装置220とを含む。これらのコンポーネントは、内部バスB2に接続される。
制御回路201は、たとえば、少なくとも1つの集積回路によって構成される。集積回路は、たとえば、少なくとも1つのCPU(Central Processing Unit)、少なくとも1つのGPU(Graphics Processing Unit)、少なくとも1つのASIC(Application Specific Integrated Circuit)、少なくとも1つのFPGA(Field Programmable Gate Array)、またはそれらの組み合わせなどによって構成され得る。
制御回路201は、制御プログラム222などの各種プログラムを実行することで操作盤20の動作を制御する。制御プログラム222は、操作盤20を制御するための命令を規定している。制御回路201は、制御プログラム222の実行命令を受け付けたことに基づいて、補助記憶装置220またはROM202からRAM203に制御プログラム222を読み出す。RAM203は、ワーキングメモリとして機能し、制御プログラム222の実行に必要な各種データを一時的に格納する。
通信インターフェイス204は、LAN(Local Area Network)ケーブル、WLAN、またはBluetooth(登録商標)などを用いた通信を実現するための通信ユニットである。一例として、操作盤20は、通信インターフェイス204を介して、CNCユニット30などの外部機器との通信を実現する。
ディスプレイ205は、たとえば、液晶ディスプレイ、有機ELディスプレイ、またはその他の表示機器である。ディスプレイ205は、制御回路201などからの指令に従って、ディスプレイ205に対して、画像を表示するための画像信号を送出する。ディスプレイ205は、たとえば、タッチパネルで構成されており、工作機械100に対する各種操作をタッチ操作で受け付ける。
操作キー206は、複数のハードウェアキーで構成され、操作盤20に対する各種のユーザ操作を受け付ける。押下されたキーに応じた信号が制御回路201に出力される。
補助記憶装置220は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。補助記憶装置220は、制御プログラム222などを格納する。制御プログラム222の格納場所は、補助記憶装置220に限定されず、制御回路201の記憶領域(たとえば、キャッシュメモリ)、ROM202、RAM203、外部機器(たとえば、サーバー)などに格納されていてもよい。
なお、制御プログラム222は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、本実施の形態に従う各種の処理は、任意のプログラムと協働して実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う制御プログラム222の趣旨を逸脱するものではない。さらに、制御プログラム222によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、少なくとも1つのサーバーが制御プログラム222の処理の一部を実行する所謂クラウドサービスのような形態で操作盤20が構成されてもよい。
<G.CNCユニット30のハードウェア構成>
次に、図12を参照して、図2に示されるCNCユニット30のハードウェア構成について説明する。図12は、CNCユニット30のハードウェア構成の一例を示す図である。
CNCユニット30は、制御回路301と、ROM302と、RAM303と、通信インターフェイス304,305と、フィールドバスコントローラ306と、補助記憶装置320とを含む。これらのコンポーネントは、内部バスB3に接続される。
制御回路301は、たとえば、少なくとも1つの集積回路によって構成される。集積回路は、たとえば、少なくとも1つのCPU、少なくとも1つのGPU、少なくとも1つのASIC、少なくとも1つのFPGA、またはそれらの組み合わせなどによって構成され得る。
制御回路301は、制御プログラム322や加工プログラム323などの各種プログラムを実行することでCNCユニット30の動作を制御する。制御回路301は、制御プログラム322の実行命令を受け付けたことに基づいて、ROM302からRAM303に制御プログラム322を読み出す。RAM303は、ワーキングメモリとして機能し、制御プログラム322の実行に必要な各種データを一時的に格納する。
通信インターフェイス304,305には、LAN、WLAN、またはBluetoothなどを用いた通信を実現するための通信ユニットである。CNCユニット30は、通信インターフェイス304を介して外部機器(たとえば、操作盤20)とデータをやり取りする。また、CNCユニット30は、通信インターフェイス305を介して外部機器(たとえば、情報処理装置40)とデータをやり取りする。
フィールドバスコントローラ306は、フィールドバスに接続される各種ユニットとの通信を実現するための通信ユニットである。当該フィールドバスに接続されるユニットの一例として、上述の回転駆動部110A(図2参照)や上述の位置駆動部110B(図2参照)などが挙げられる。
補助記憶装置320は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。補助記憶装置320は、制御プログラム322、加工プログラム323、および工具情報326などを格納する。工具情報326には、たとえば、工具長および工具径などの工具に関する各種情報が工具種別に規定される。
制御プログラム322、加工プログラム323、および工具情報326の格納場所は、補助記憶装置320に限定されず、制御回路301の記憶領域(たとえば、キャッシュメモリ)、ROM302、RAM303、外部機器(たとえば、サーバー)などに格納されていてもよい。
なお、制御プログラム322は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、本実施の形態に従う各種の処理は、任意のプログラムと協働して実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う制御プログラム322の趣旨を逸脱するものではない。さらに、制御プログラム322によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、少なくとも1つのサーバーが制御プログラム322の処理の一部を実行する所謂クラウドサービスのような形態でCNCユニット30が構成されてもよい。
<H.情報処理装置40のハードウェア構成>
次に、図13を参照して、図2に示される情報処理装置40のハードウェア構成について説明する。図13は、情報処理装置40のハードウェア構成の一例を示す図である。
情報処理装置40は、制御回路401と、ROM402と、RAM403と、通信インターフェイス404,405と、補助記憶装置420とを含む。これらのコンポーネントは、内部バスB4に接続される。ROM402、RAM403、および補助記憶装置420は、上述の記憶装置120(図5参照)の一例である。
制御回路401は、たとえば、少なくとも1つの集積回路によって構成される。集積回路は、たとえば、少なくとも1つのCPU、少なくとも1つのGPU、少なくとも1つのASIC、少なくとも1つのFPGA、またはそれらの組み合わせなどによって構成され得る。
制御回路401は、制御プログラム422などの各種プログラムを実行することで情報処理装置40の動作を制御する。制御回路401は、各種プログラムの実行命令を受け付けたことに基づいて、補助記憶装置420またはROM402からRAM403に実行対象のプログラムを読み出す。RAM403は、ワーキングメモリとして機能し、プログラムの実行に必要な各種データを一時的に格納する。
通信インターフェイス404には、LAN、WLAN、またはBluetoothなどを用いた通信を実現するための通信ユニットである。情報処理装置40は、通信インターフェイス404を介して外部機器(たとえば、CNCユニット30)とデータをやり取りする。また、情報処理装置40は、通信インターフェイス405を介して外部機器(たとえば、カメラ141)と画像データをやり取りする。
補助記憶装置420は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。補助記憶装置420は、上述の推移情報122(図6参照)と、上述の使用量情報124(図7参照)と、制御プログラム422などを格納する。これらの格納場所は、補助記憶装置420に限定されず、制御回路401の記憶領域(たとえば、キャッシュメモリなど)、ROM402、RAM403、外部機器(たとえば、サーバー)などに格納されていてもよい。
なお、制御プログラム422は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、任意のプログラムと協働して本実施の形態に従う処理が実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う工作機械100の趣旨を逸脱するものではない。さらに、本実施の形態に従う制御プログラム422によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、工作機械100とサーバーとが協働して、本実施の形態に従う処理を実現するようにしてもよい。さらに、少なくとも1つのサーバーが本実施の形態に従う処理を実現する、所謂クラウドサービスの形態で情報処理装置40が構成されてもよい。
<I.工作機械100の制御フロー>
次に、図14を参照して、工作機械100の制御構造について説明する。図14は、工作機械100の制御部50が実行する処理の一部を示すフローチャートである。
図14に示される処理の一部または全部は、上述の制御プログラム222(図11参照)、上述の制御プログラム322(図12参照)、または上述の制御プログラム422(図13参照)に実装される。他の局面において、図14に示される処理の一部または全部が、回路素子またはその他のハードウェアに実装されてもよい。
ステップS150において、制御部50は、測定処理の実行判断のタイミングが到来したか否かを判断する。当該タイミングは、ワークの加工が行われていない空き時間に到来する。一例として、当該タイミングは、主軸132が停止しているときの一タイミングであってもよいし、加工完了後に工具をマガジン170に収納するタイミングであってもよい。制御部50は、測定処理の実行判断のタイミングが到来したと判断した場合(ステップS150においてYES)、制御をステップS152に切り替える。そうでない場合には(ステップS150においてNO)、制御部50は、図14に示される処理を終了する。
ステップS152において、制御部50は、上述の推移情報取得部52(図5参照)として機能し、上述の推移情報122を取得する。推移情報122については図6で説明した通りであるので、その説明については繰り返さない。
ステップS154において、制御部50は、上述の推定部56(図5参照)として機能し、上述の使用量情報124を参照して、測定対象の工具について総使用時間を取得する。使用量情報124については図7で説明した通りであるので、その説明については繰り返さない。
ステップS156において、制御部50は、上述の推定部56として機能し、ステップS152を参照して、ステップS154で取得した現総使用量に対応する現摩耗量を推定結果として取得する。推定部56の機能については上述の通りであるので、その説明については繰り返さない。
ステップS160において、制御部50は、上述の実行判断部58(図5参照)として機能し、ステップS156で取得した推定結果としての現摩耗量が所定閾値「th1」(図8参照)を超えているか否かを判断する。制御部50は、現摩耗量が所定閾値「th1」を超えていると判断した場合(ステップS160においてYES)、制御をステップS162に切り替える。そうでない場合には(ステップS160においてNO)、図14に示される処理を終了する。
ステップS162において、制御部50は、測定部140による測定処理を実行する。当該測定処理については上述の通りであるので、その説明については繰り返さない。ステップS162による測定処理により、実測値としての工具摩耗量が得られる。
ステップS170において、制御部50は、ステップS162での測定処理により得られた現摩耗量が所定閾値「th2」(図8参照)を超えているか否かを判断する。当該所定閾値「th2」は、上記所定閾値「th1」よりも大きい。制御部50は、現摩耗量が所定閾値「th2」を超えていると判断した場合(ステップS170においてYES)、制御をステップS172に切り替える。そうでない場合には(ステップS170においてNO)、制御部50は、制御をステップS174に切り替える。
ステップS172において、制御部50は、上述の第1異常処理部60(図5参照)として機能し、所定の第1異常対処処理を実施する。第1異常処理部60の機能については上述の通りであるので、その説明については繰り返さない。
ステップS174において、制御部50は、上述の許容範囲取得部62(図5参照)として機能し、上述の推移情報122(図9参照)を参照して、ステップS154で取得した現総使用量に対応する許容範囲を取得する。許容範囲取得部62の機能については上述の通りであるので、その説明については繰り返さない。
ステップS180において、制御部50は、ステップS162での測定処理により得られた測定結果の現摩耗量が、ステップS174で得られた許容範囲外であるか否かを判断する。制御部50は、測定結果の現摩耗量が許容範囲外であると判断した場合(ステップS180においてYES)、制御をステップS182に切り替える。そうでない場合には(ステップS180においてNO)、図14に示される処理を終了する。
ステップS182において、制御部50は、上述の第2異常処理部64(図5参照)として機能し、所定の第2異常対処処理を実施する。第2異常処理部64の機能については上述の通りであるので、その説明については繰り返さない。
<J.まとめ>
以上のようにして、工作機械100は、工具摩耗量の過去の推移を参考にして、現在の工具に対する工具摩耗量の測定処理が必要か否かを判断する。そして、工作機械100は、工具摩耗量の測定処理が必要と判断した場合にのみ、工具摩耗量の測定処理を実行する。これにより、測定部140による測定処理の実行回数が減り、かつ、工具の交換時期を逃す可能性が低減する。
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。