以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わされてもよい。
<A.工作機械100の構成>
まず、図1を参照して、工作機械100の構成について説明する。図1は、工作機械100の外観を示す図である。
工作機械100は、ワークの加工機である。一例として、工作機械100は、ワークの除去加工(SM(Subtractive manufacturing)加工)を行う工作機械である。あるいは、工作機械100は、ワークの付加加工(AM(Additive manufacturing)加工)を行う工作機械であってもよい。また、工作機械100は、立形のマシニングセンタであってもよいし、横形のマシニングセンタであってもよいし、ターニングセンタであってもよい。あるいは、工作機械100は、旋盤であってもよいし、その他の切削機械や研削機械であってもよい。さらに、工作機械は、これらを組み合わせた複合機であってもよい。
工作機械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と、ATCドライバ111Nと、主軸頭130と、ATC160とを含む。
本明細書でいう「制御部50」とは、工作機械100を制御する装置を意味する。制御部50の装置構成は、任意である。制御部50は、単体の制御ユニットで構成されてもよいし、複数の制御ユニットで構成されてもよい。図2の例では、制御部50は、CPUユニット20と、CNCユニット30と、情報処理装置40とで構成されている。
CPUユニット20およびCNCユニット30は、たとえば、バスBを介して互いに通信を行う。CNCユニット30および情報処理装置40は、たとえば、通信経路NW(たとえば、無線LAN、有線LAN、フィールドネットワークなど)を介して互いに通信を行う。
主軸頭130は、主軸筒131と、主軸132とを含む。主軸132は、主軸筒131により回転可能に支持されている。主軸132にはマガジン170から選択された一の工具が装着される。工具は、主軸132と連動して回転する。
CPUユニット20は、PLC(Programmable Logic Controller)である。CPUユニット20は、予め設計されているPLCプログラムに従って、制御部50を構成する各種ユニットを制御する。当該PLCプログラムは、たとえば、ラダープログラムで記述されている。CPUユニット20は、当該PLCプログラムに従ってATCドライバ111Nを制御し、ATC160の送り駆動および回転駆動を制御する。
ATC160は、中心軸165と、アーム166とを含む。図2の例では、中心軸165は、Z軸に平行に設けられている。アーム166は、中心軸165の軸方向に直交する一方向に中心軸165から延出している工具把持部166Aと、当該一方向の反対方向に中心軸165から延出している工具把持部166Bとを含む。
ATCドライバ111Nは、たとえば、2軸一体型のドライバであり、ATC160に接続される第1,第2サーボモータ(図示しない)の駆動を制御する。より具体的には、ATCドライバ111Nは、第1サーボモータの目標回転速度の入力と、第2サーボモータの目標回転速度の入力とのそれぞれをCPUユニット20から受け、第1,第2サーボモータのそれぞれを制御する。
上記第1サーボモータは、ATCドライバ111Nからの出力電流に従ってATC160のアーム166を送り駆動し、Z軸方向の任意の位置にアーム166を駆動する。上記第2サーボモータは、ATCドライバ111Nからの出力電流に従ってATC160のアーム166を回転駆動し、Z軸を中心とした回転方向(すなわち、C軸方向)の任意の回転角度にアーム166を駆動する。
ATC160は、工具の交換命令を受けたことに基づいて、マガジン170から次使用工具T2を取得する。その後、ATC160は、使用済工具T1を主軸132から抜き取るとともに、次使用工具T2を主軸132に装着する。その後、ATC160は、主軸132から抜き取った使用済工具T1をマガジン170に収納する。
CNCユニット30は、CPUユニット20からの加工開始指令を受けたことに基づいて、予め設計されている加工プログラムの実行を開始する。当該加工プログラムは、たとえば、NC(Numerical Control)プログラムで記述されている。CNCユニット30は、当該加工プログラムに従って、回転駆動部110Aおよび位置駆動部110Bを制御する。
回転駆動部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の回転速度を調整する。
サーボドライバ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つ以上のモータドライバで構成されてもよい。
情報処理装置40は、汎用のコンピュータである。一例として、情報処理装置40は、デスクトップ型のコンピュータであってもよいし、ノート型のコンピュータであってもよいし、タブレット端末であってもよい。
情報処理装置40は、ワークの形状を測定するための測定工具10と無線で通信を行う。測定工具10は、非使用時にはマガジン170(図1参照)に収納されており、使用時にはATC160によって主軸132に装着される。測定工具10は、ワークの加工前、ワークの加工中、およびワークの加工後において、主軸132に装着された状態でワークの形状を測定する。
一例として、測定工具10は、距離センサとして機能する。より具体的には、測定工具10は、レーザ光をワークの表面に向けて照射し、ワークWの表面により反射されたレーザ光を受光してワークWの表面との間の距離を算出する。測定工具10による測定結果は、情報処理装置40に送信される。情報処理装置40は、測定工具10の測定結果に基づいて、種々の処理を実行する。
<C.測定工具10の充電処理の概要>
引き続き図2を参照して、測定工具10の充電処理の概要について説明する。
図2に示されるように、主軸132には、送電コイル135が設けられている。送電コイル135には、後述の交流電源134(図3参照)が電気的に接続されている。
測定工具10は、受電コイル136と、バッテリー137とを有する。受電コイル136は、バッテリー137に電気的に接続されている。バッテリー137は、測定工具10内の各種ユニットに電力を供給する。
交流電源134は、測定工具10が主軸132に装着されているときに送電コイル135に交流電流を印加することで受電コイル136に誘導起電力を発生させ、当該誘導起電力によってバッテリー137を充電する。これにより、測定工具10は、主軸132に装着されているときに非接触で充電される。
測定工具10は、非使用時にはマガジン170に収納されている。このとき、測定工具10の充電量は、放電により徐々に減っていく。測定工具10の充電が尽きると、測定工具10は、充電のために主軸132を長時間占有することになる。そのため、工作機械100は、充電が尽きる前に測定工具10を定期的に主軸132に装着し、測定工具10を充電する必要がある。
工作機械100は、測定工具10を充電するためには、ワークの加工を中断しなければならない。ワークの加工が中断されると、加工効率が低下してしまう。そこで、工作機械100は、ワークの加工が行われていない隙間時間を利用して測定工具10を充電する。これにより、工作機械100は、加工効率を低下させずに、測定工具10の充電が尽きることを防ぐことができる。
具体的な充電処理として、ステップS1において、工作機械100の制御部50は、ワークの非加工中を示す第1条件が満たされたか否かを判断する。当該第1条件の詳細については後述する。
制御部50は、当該第1条件が満たされたと判断した場合、ステップS2において、測定工具10を主軸132に装着するようにATC160に装着指令を出力する。一例として、当該装着指令は、NCプログラムに規定されるMコード「M06」である。当該コードで測定工具10が指定されることで、主軸132への測定工具10の装着が実現される。
ステップS3において、制御部50は、測定工具10が主軸132に装着されたことに基づいて、交流電源から送電コイル135への交流電流の印加を開始する。これにより、誘導起電力が受電コイル136に発生し、バッテリー137が充電される。
以上のように、工作機械100は、ワークの加工が行われていない隙間時間を利用して測定工具10を充電する。これにより、工作機械100は、加工効率を低下させずに、測定工具10の充電が尽きることを防ぐことができる。
<D.測定工具10の充電構成>
次に、図3を参照して、測定工具10を充電するための構成について説明する。図3は、主軸132に装着されている測定工具10を示す断面図である。
図3に示されるように、主軸132は、テーパ穴132Aを有する。テーパ穴132A内には、コレット140およびドローバ141などが設けられる。コレット140は、装着部材146が主軸132のテーパ穴132Aに挿入された際に、測定工具10のプルスタッド146Aを把持する。ドローバ141は、コレット140に係合して設けられている。コレット140およびドローバ141が主軸132の軸方向に移動することによって測定工具10の着脱が可能になる。
また、工作機械100は、非接触充電を実現するための非接触給電装置145を有する。非接触給電装置145は、交流電源134と、送電コイル135と、受電コイル136とを含む。
交流電源134は、工作機械100側に設けられる1次側の送電コイル135に電気的に接続され、交流電流を送電コイル135に供給する。
送電コイル135は、主軸頭130を構成するハウジング131Aの先端面であり、かつ主軸132の先端の近傍位置に取付部材135Aを介して設けられる。
受電コイル136は、測定工具10の筐体150の上端に取付部材136Aを介して設けられる。取付部材136Aは、筐体150の径方向に突出するように形成され、その突出端に受電コイル136が設けられている。
送電コイル135および受電コイル136は、測定工具10が主軸132に装着された際に一定間隔を隔てて対向するように構成される。送電コイル135と受電コイル136とが一定間隔を隔てて対向した状態で、交流電圧が送電コイル135に印加されると、送電コイル135に磁束が発生する。当該磁束の変化により、受電コイル136に誘導起電力が生じる。これにより、送電コイル135から受電コイル136に電力が供給され、測定工具10が充電される。
<E.測定工具10の内部構成>
次に、図4を参照して、測定工具10の内部構成について説明する。図4は、測定工具10の内部構造を示す断面図である。
図4を参照して、測定工具10は、筐体150を含む。筐体150は、その内部に、制御回路101と、レーザ発振器161と、CCDカメラ162と、プリズム163と、反射鏡164と、絞り167と、凸レンズ168,169とを有する。筐体150の上端には、加工工具の主軸装着部分と同形状をした装着部材146が設けられる。
レーザ発振器161は、ワークWの表面にレーザ光を照射する。CCDカメラ162は、レーザ発振器161から照射されワークWの表面で反射したレーザ光を受光して2次元画像データを生成する。プリズム163および反射鏡164は、レーザ発振器161とワークWとの間に配置され、レーザ発振器161からのレーザ光をワークWの表面に導く。凸レンズ168,169は、CCDカメラ162とワークWとの間に配置され、ワークWの表面で反射したレーザ光をCCDカメラ162の撮像面162A上に結像させる。絞り167は、CCDカメラ162と凸レンズ169との間に配置される。
制御回路101は、CCDカメラ162によって生成された2次元画像データを基にワークWの表面と測定工具10との間のZ軸方向における距離(すなわち、ワークWの表面におけるレーザ光の照射点PとCCDカメラ162の撮像面162Aとの間の距離)を算出する。制御回路101は、算出した距離に係る距離データを後述の通信インターフェイス104(図7参照)を介して情報処理装置40(図2参照)に送信する。
なお、上述では、非接触型の距離センサとして機能する測定工具10について説明を行ったが、測定工具10は、距離センサに限定されない。測定工具10は、ワークWの形状を測定する機能を有し、バッテリー駆動のものであれば任意である。一例として、測定工具10は、接触型の距離センサであってもよいし、温度センサであってもよいし、画像を取得するためのカメラであってもよい。
<F.工作機械100の機能構成>
次に、図5および図6を参照して、測定工具10の充電制御を実現するための機能構成について説明する。図5は、工作機械100の機能構成の一例を示す図である。
工作機械100は、機能構成として、第1条件判断部52と、第2条件判断部54と、ATC制御部56と、充電制御部58とを含む。以下では、これらの構成について順に説明する。
なお、各機能構成の配置は、任意である。一例として、図5に示される機能構成の全ては、上述のCPUユニット20(図2参照)に実装されてもよいし、上述のCNCユニット30(図2参照)に実装されてもよいし、上述の情報処理装置40(図2参照)に実装されてもよい。あるいは、図5に示される機能構成の一部がCPUユニット20に実装され、残りの機能構成の一部がCNCユニット30に実装され、残りの機能構成が情報処理装置40に実装されてもよい。あるいは、図5に示される機能構成の一部は、サーバーなどの外部装置に実装されてもよいし、専用のハードウェアに実装されてもよい。
(F1.第1条件判断部52)
まず、図5に示される第1条件判断部52の機能について説明する。
上述のように、工作機械100は、ワークの加工が行われていない隙間時間を利用して測定工具10を充電する。当該隙間時間が到来しているか否かを判断するために、第1条件判断部52は、ワークの非加工中を示す第1条件が満たされたか否かを判断する。以下では、第1条件の具体例について説明する。
(a)第1条件の具体例1
工作機械100の主軸132が停止している場合には、ワークは、非加工中である。この点に着目して、本具体例では、第1条件判断部52は、工作機械100の主軸132が停止している場合に、第1条件が満たされたと判断する。一方で、第1条件判断部52は、工作機械100の主軸132が駆動中である場合に、第1条件が満たされていないと判断する。
ある局面において、主軸132が停止しているか否かは、後述の加工プログラム324(図9参照)に基づいて判断される。加工プログラム324は、主軸132の駆動に係る種々の命令コードを含む。当該命令コードは、主軸132の駆動のオン/オフを指定するための命令コード、主軸132の回転速度を指定するための命令コード、および、主軸132の移動先を指定するための命令コードなどを含む。第1条件判断部52は、主軸132の駆動が停止していることを示す特定の命令コードが実行されていることに基づいて、第1条件が満たされたと判断する。
他の局面において、主軸132が停止しているか否かは、主軸132の振動を検知するための振動センサ(図示しない)の出力値に基づいて判断される。当該振動センサは、たとえば、主軸頭130の内部に設けられており、主軸132の振動を検知する。当該振動センサは、たとえば、加速度センサ、速度センサ、位置センサ、角加速度センサ、角速度センサ、または、主軸132の振動を検知することが可能なその他のセンサである。第1条件判断部52は、振動センサの出力値が所定値を下回っている時間が所定時間以上継続した場合に、第1条件が満たされたと判断する。
他の局面において、主軸132が停止しているか否かは、主軸132を撮影するように配置されているカメラ(図示しない)を用いて判断される。より具体的には、第1条件判断部52は、当該カメラから順次得られる時系列の画像を取得し、撮影時刻が隣り合う画像同士を差分する(いわゆる、フレーム間差分)。次に、第1条件判断部52は、当該差分画像に基づいて、移動体が存在するか否かを判断する。第1条件判断部52は、移動体が存在しないと判断した場合、第1条件が満たされたと判断する。
他の局面において、主軸132が停止しているか否かは、工作機械100内の作業エリアを撮影するように配置されているカメラ(図示しない)を用いて判断される。当該作業エリアにおいて、作業者は、ワーク加工のための段取り作業を行う。当該段取り作業は、たとえば、加工対象のワークをパレットに装着する作業や、加工済みワークをパレットから取り外す作業などを含む。第1条件判断部52は、カメラから得られた画像に対して所定の画像処理を施すことで、作業者が段取り作業を行っているか否かを判断する。第1条件判断部52は、作業者が段取り作業を行っていると判断した場合、第1条件が満たされたと判断する。
(b)第1条件の具体例2
工作機械100の主電源がオフである場合には、ワークは、非加工中である。この点に着目して、本具体例では、第1条件判断部52は、工作機械100の主電源がオフである場合において、外部機器から充電命令を受信したときに、第1条件が満たされたと判断する。一方で、第1条件判断部52は、工作機械100の主電源がオンである場合には、第1条件が満たされていないと判断する。
図6は、加工システム1000の装置構成の一例を示す図である。加工システム1000は、1つ以上の工作機械と、1つ以上の情報処理装置とを含む。図6の例では、加工システム1000は、工作機械100Aと、工作機械100Bと、情報処理装置500とで構成されている。
工作機械100Aおよび工作機械100Bは、同一種類の工作機械であってもよいし、異なる種類の工作機械であってもよい。以下では、工作機械100A,100Bを特に区別しない場合には、工作機械100A,100Bのいずれか1つを工作機械100ともいう。
情報処理装置500は、たとえば、サーバー機能を有するコンピュータなどの情報処理装置である。一例として、情報処理装置500は、デスクトップ型のコンピュータであってもよいし、ノート型のコンピュータであってもよいし、タブレット端末であってもよい。あるいは、情報処理装置500は、分散型サーバーのような複数のコンピュータで構成されてもよい。
工作機械100および情報処理装置500は、互いに通信可能に構成される。工作機械100および情報処理装置500は、無線で接続されてもよいし、有線で接続されてもよい。一例として、工作機械100および情報処理装置500の通信規格には、EtherNET(登録商標)が採用される。
工作機械100の内部には、主電源180が設けられている。主電源180は、工作機械100内の各種ユニットに電力を供給する。
本具体例の処理として、ステップS10において、情報処理装置500は、工作機械100A,100Bの稼働状況を逐次的に確認する。一例として、情報処理装置500は、工作機械100Aとの通信が不可能であることに基づいて、工作機械100Aの主電源180がオフであると判断する。
ステップS11において、情報処理装置500は、工作機械100Aの主電源180がオフであると判断した場合、工作機械100Aに起動命令を送信する。当該起動命令の送信には、WOL(Wake On Lan)などの技術が応用される。工作機械100Aは、情報処理装置500から起動命令を受信すると、主電源180をオンにする。これにより、工作機械100Aが遠隔から起動される。
ステップS12において、情報処理装置500は、工作機械100Aが起動したことに基づいて、測定工具10の充電命令を工作機械100Aに送信する。第1条件判断部52は、情報処理装置500から充電命令を受信したことに基づいて、第1条件が満たされたと判断する。
(F2.第2条件判断部54)
次に、図5に示される第2条件判断部54の機能について説明する。
測定工具10の残電力が十分ある場合には、測定工具10を充電する必要がない。そのため、第2条件判断部54は、測定工具10のバッテリーの残電力が尽きそうであるか否かを第2条件として判断する。以下では、第2条件の具体例について説明する。
(a)第2条件の具体例1
本具体例では、第2条件判断部54は、測定工具10のバッテリー137の残電力に基づいて、第2条件が満たされたか否かを判断する。
バッテリー137の残電力の検知方法には、種々の方法が採用され得る。一例として、バッテリー137の残電力が少なくなるにつれてバッテリー137の出力電流または出力電圧が減ることに着目して、第2条件判断部54は、バッテリー137の出力電圧または出力電流に基づいてバッテリー137の残電力を算出する。説明の便宜のため、以下では、バッテリー137の出力電圧または出力電流を単に「バッテリー137の出力」ともいう。
より具体得な処理として、まず、第2条件判断部54は、バッテリー137の出力の大きさを取得する。バッテリー137の出力の大きさは、たとえば、バッテリー137に電気的に接続されるセンサによって検知される。次に、第2条件判断部54は、バッテリー137の出力とバッテリー137の残電力との予め定められた相関関係を参照して、バッテリー137の検知された出力からバッテリー137の現在の残電力を算出する。
当該相関関係は、バッテリー137の出力値ごとにバッテリー137の残電力を対応付けたテーブル形式で規定されてもよいし、バッテリー137の出力を説明変数とし、バッテリー137の残電力を目的変数とする相関式で規定されてもよい。
第2条件判断部54は、上記相関関係を参照して、バッテリー137の現在の出力の大きさに対応する残電力を取得する。そして、第2条件判断部54は、当該残電力が所定値を下回っている場合に、第2条件が満たされたと判断する。一方で、第2条件判断部54は、当該残電力が所定値以上である場合には、第2条件が満たされていないと判断する。
(b)第2条件の具体例2
本具体例では、第2条件判断部54は、測定工具10による測定処理が完了するまでにかかる測定予定時間に基づいて、第2条件が満たされたか否かを判断する。
測定予定時間の推定方法には、種々の推定方法が採用され得る。ある局面において、第2条件判断部54は、後述の加工プログラム324(図9参照)に規定される命令コードを解析して、測定工具10の使用開始時から測定工具10の使用終了時までの測定予定時間を推定する。より具体的には、第2条件判断部54は、加工プログラム324に規定される測定工具10の駆動命令を参照し、測定工具10の送り速度と、測定工具10の移動距離とを特定する。次に、第2条件判断部54は、当該移動距離を当該送り速度で除算し、当該除算結果を測定予定時間として算出する。
他の局面において、第2条件判断部54は、測定工具10の使用履歴から、測定予定時間を推定する。工作機械100は、順次搬送されるワークを繰り返し加工する。そのため、測定工具10の使用時間は、同じ加工工程ではそれほど変わらない。このような場合には、第2条件判断部54は、測定工具10の使用時間を加工工程ごとに履歴として記憶しておき、当該履歴から次の測定に要する測定予定時間を推定する。
第2条件判断部54は、推定された測定予定時間が所定時間よりも短い場合に、第2条件が満たされていないと判断する。一方で、第2条件判断部54は、推定された測定予定時間が所定時間以上である場合には、第2条件が満たされたと判断する。
(c)第2条件の具体例3
本具体例では、第2条件判断部54は、ワークの加工が完了するまでにかかる加工予定時間に基づいて、第2条件が満たされたか否かを判断する。
加工予定時間の推定方法には、種々の推定方法が採用され得る。ある局面において、第2条件判断部54は、後述の加工プログラム324(図9参照)に規定される命令コードを解析して、主軸132の使用開始時から主軸132の使用終了時までの加工予定時間を推定する。より具体的には、第2条件判断部54は、加工プログラム324に規定される主軸132の駆動命令を参照し、主軸132の送り速度と、主軸132の移動距離とを特定する。次に、第2条件判断部54は、当該移動距離を当該送り速度で除算し、当該除算結果を加工予定時間として算出する。
他の局面において、第2条件判断部54は、主軸132の使用履歴から、加工予定時間を推定する。工作機械100は、順次搬送されるワークを繰り返し加工する。そのため、主軸132の使用時間は、同じ加工工程ではそれほど変わらない。このような場合には、第2条件判断部54は、主軸132の使用時間を加工工程ごとに履歴として記憶しておき、当該履歴から次の加工に要する加工予定時間を推定する。
第2条件判断部54は、推定された加工予定時間が所定時間よりも短い場合に、第2条件が満たされたと判断する。一方で、第2条件判断部54は、推定された加工予定時間が所定時間以上である場合には、第2条件が満たされていないと判断する。
(F3.ATC制御部56)
次に、図5に示されるATC制御部56の機能について説明する。
ATC制御部56は、第1条件判断部52が上記第1条件を満たしたと判断した場合、および、第2条件判断部54が上記第2条件を満たしたと判断した場合の少なくとも一方の場合において、測定工具10を主軸132に装着するようにATC160に装着指令を出力する。すなわち、当該装着指令は、第1条件のみが満たされた場合に出力されてもよいし、第2条件のみが満たされた場合に出力されてもよいし、第1条件および第2条件の両方が満たされた場合に出力されてもよい。
好ましくは、ATC制御部56は、上記第1条件および上記第2条件の両方が満たされた場合に、測定工具10の装着指令をATC160に出力する。これにより、工作機械100は、ワークの加工が行われていない隙間時間において、かつ、測定工具10の残電力が不足している場合において、測定工具10を充電することができる。
(F4.充電制御部58)
次に、図5に示される充電制御部58の機能について説明する。
充電制御部58は、主軸132への測定工具10の装着が完了したことに基づいて、上述の交流電源134(図3参照)に交流電流を出力させる。これにより、測定工具10の充電が開始する。
その後、充電制御部58は、測定工具10の残電力が満充電を示す所定値を超えたことに基づいて、交流電源134に交流電流の出力を停止させる。これにより、測定工具10の充電処理が終了する。
好ましくは、充電制御部58は、測定工具10の充電中においてワークの加工開始指令を受けた場合には、交流電源134を停止させる。これにより、測定工具10の充電が中断され、ワークの加工が優先される。
<G.測定工具10のハードウェア構成>
次に、図7を参照して、図2に示される測定工具10のハードウェア構成について説明する。図7は、測定工具10のハードウェア構成の一例を示す図である。
測定工具10は、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、通信インターフェイス104と、測定部105とを含む。これらのコンポーネントは、内部バスB1に接続される。
制御回路101は、たとえば、少なくとも1つの集積回路によって構成される。集積回路は、たとえば、少なくとも1つのCPU、少なくとも1つのGPU(Graphics Processing Unit)、少なくとも1つのASIC(Application Specific Integrated Circuit)、少なくとも1つのFPGA(Field Programmable Gate Array)、またはそれらの組み合わせなどによって構成され得る。
制御回路101は、制御プログラム122などの各種プログラムを実行することで測定工具10の動作を制御する。より具体的には、制御回路101は、制御プログラム122の実行命令を受け付けたことに基づいて、ROM102からRAM103に制御プログラム122を読み出す。RAM103は、ワーキングメモリとして機能し、制御プログラム122の実行に必要な各種データを一時的に格納する。
通信インターフェイス104は、WLAN(Wireless LAN)、またはBluetooth(登録商標)などを用いた無線通信を実現するための通信ユニットである。一例として、測定工具10は、通信インターフェイス204を介して、情報処理装置40(図2参照)などの外部機器との通信を実現する。測定工具10による測定結果は、たとえば、通信インターフェイス104を介して情報処理装置40に送信される。
測定部105は、ワークの形状の測定機構である。一例として、測定部105は、上述のレーザ発振器161(図4参照)や上述のCCDカメラ162(図4参照)などで構成される。
<H.CPUユニット20のハードウェア構成>
次に、図8を参照して、図2に示されるCPUユニット20のハードウェア構成について説明する。図8は、CPUユニット20のハードウェア構成の一例を示す図である。
CPUユニット20は、制御回路201と、ROM202と、RAM203と、通信インターフェイス204,205と、補助記憶装置220とを含む。これらのコンポーネントは、内部バスB2に接続される。
制御回路201は、たとえば、少なくとも1つの集積回路によって構成される。集積回路は、たとえば、少なくとも1つのCPU、少なくとも1つのGPU、少なくとも1つのASIC、少なくとも1つのFPGA、またはそれらの組み合わせなどによって構成され得る。
制御回路201は、制御プログラム222などの各種プログラムを実行することでCPUユニット20の動作を制御する。制御プログラム222は、工作機械100内の各種装置を制御するための命令を規定している。制御回路201は、制御プログラム222の実行命令を受け付けたことに基づいて、補助記憶装置220またはROM202からRAM203に制御プログラム222を読み出す。RAM203は、ワーキングメモリとして機能し、制御プログラム222の実行に必要な各種データを一時的に格納する。
通信インターフェイス204は、LAN(Local Area Network)ケーブル、WLAN、またはBluetoothなどを用いた通信を実現するための通信ユニットである。一例として、CPUユニット20は、通信インターフェイス204を介して、モータドライバ111M(図2参照)およびATCドライバ111N(図2参照)などの外部機器との通信を実現する。
通信インターフェイス205は、フィールドバスに接続される各種ユニットとの通信を実現するための通信ユニットである。当該フィールドバスに接続されるユニットの一例として、CNCユニット30やI/Oユニット(図示しない)などが挙げられる。
補助記憶装置220は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。補助記憶装置220は、制御プログラム222などを格納する。制御プログラム222の格納場所は、補助記憶装置220に限定されず、制御回路201の記憶領域(たとえば、キャッシュメモリ)、ROM202、RAM203、外部機器(たとえば、サーバー)などに格納されていてもよい。
なお、制御プログラム222は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、本実施の形態に従う各種の処理は、任意のプログラムと協働して実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う制御プログラム222の趣旨を逸脱するものではない。さらに、制御プログラム222によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、少なくとも1つのサーバーが制御プログラム222の処理の一部を実行する所謂クラウドサービスのような形態でCPUユニット20が構成されてもよい。
<I.CNCユニット30のハードウェア構成>
次に、図9を参照して、図2に示されるCNCユニット30のハードウェア構成について説明する。図9は、CNCユニット30のハードウェア構成の一例を示す図である。
CNCユニット30は、制御回路301と、ROM302と、RAM303と、通信インターフェイス304,305と、フィールドバスコントローラ306と、補助記憶装置320とを含む。これらのコンポーネントは、内部バスB3に接続される。
制御回路301は、たとえば、少なくとも1つの集積回路によって構成される。集積回路は、たとえば、少なくとも1つのCPU、少なくとも1つのGPU、少なくとも1つのASIC、少なくとも1つのFPGA、またはそれらの組み合わせなどによって構成され得る。
制御回路301は、制御プログラム322や加工プログラム324などの各種プログラムを実行することでCNCユニット30の動作を制御する。制御回路301は、制御プログラム322の実行命令を受け付けたことに基づいて、ROM302からRAM303に制御プログラム322を読み出す。RAM303は、ワーキングメモリとして機能し、制御プログラム322の実行に必要な各種データを一時的に格納する。
通信インターフェイス304,305には、LAN、WLAN、またはBluetoothなどを用いた通信を実現するための通信ユニットである。CNCユニット30は、通信インターフェイス304を介して外部機器(たとえば、CPUユニット20)とデータをやり取りする。また、CNCユニット30は、通信インターフェイス305を介して外部機器(たとえば、情報処理装置40)とデータをやり取りする。
フィールドバスコントローラ306は、フィールドバスに接続される各種ユニットとの通信を実現するための通信ユニットである。当該フィールドバスに接続されるユニットの一例として、上述の回転駆動部110A(図2参照)や上述の位置駆動部110B(図2参照)などが挙げられる。
補助記憶装置320は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。補助記憶装置320は、制御プログラム322および加工プログラム324などを格納する。制御プログラム322および加工プログラム324の格納場所は、補助記憶装置320に限定されず、制御回路301の記憶領域(たとえば、キャッシュメモリ)、ROM302、RAM303、外部機器(たとえば、サーバー)などに格納されていてもよい。
なお、制御プログラム322は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、本実施の形態に従う各種の処理は、任意のプログラムと協働して実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う制御プログラム322の趣旨を逸脱するものではない。さらに、制御プログラム322によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、少なくとも1つのサーバーが制御プログラム322の処理の一部を実行する所謂クラウドサービスのような形態でCNCユニット30が構成されてもよい。
<J.情報処理装置40のハードウェア構成>
次に、図10を参照して、図2に示される情報処理装置40のハードウェア構成について説明する。図10は、情報処理装置40のハードウェア構成の一例を示す図である。
情報処理装置40は、制御回路401と、ROM402と、RAM403と、通信インターフェイス404,405と、補助記憶装置420とを含む。これらのコンポーネントは、内部バスB4に接続される。
制御回路401は、たとえば、少なくとも1つの集積回路によって構成される。集積回路は、たとえば、少なくとも1つのCPU、少なくとも1つのGPU、少なくとも1つのASIC、少なくとも1つのFPGA、またはそれらの組み合わせなどによって構成され得る。
制御回路401は、制御プログラム422などの各種プログラムを実行することで情報処理装置40の動作を制御する。制御回路401は、各種プログラムの実行命令を受け付けたことに基づいて、補助記憶装置420またはROM402からRAM403に実行対象のプログラムを読み出す。RAM403は、ワーキングメモリとして機能し、プログラムの実行に必要な各種データを一時的に格納する。
通信インターフェイス404,405には、LAN、WLAN、またはBluetoothなどを用いた通信を実現するための通信ユニットである。情報処理装置40は、通信インターフェイス404を介して外部機器(たとえば、CNCユニット30)とデータをやり取りする。また、情報処理装置40は、通信インターフェイス405を介して外部機器(たとえば、測定工具10)とデータをやり取りする。
補助記憶装置420は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。補助記憶装置420は、制御プログラム422などを格納する。制御プログラム422の格納場所は、補助記憶装置420に限定されず、制御回路401の記憶領域(たとえば、キャッシュメモリなど)、ROM402、RAM403、外部機器(たとえば、サーバー)などに格納されていてもよい。
なお、制御プログラム422は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、任意のプログラムと協働して本実施の形態に従う処理が実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う工作機械100の趣旨を逸脱するものではない。さらに、本実施の形態に従う制御プログラム422によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、工作機械100とサーバーとが協働して、本実施の形態に従う処理を実現するようにしてもよい。さらに、少なくとも1つのサーバーが本実施の形態に従う処理を実現する、所謂クラウドサービスの形態で情報処理装置40が構成されてもよい。
<K.充電の制御フロー>
次に、図11を参照して、工作機械100の制御構造について説明する。図11は、測定工具10の充電制御の流れを示すフローチャートである。
図11に示される処理は、工作機械100の制御部50が上述の制御プログラム222,322,422の少なくとも1つを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
ステップS110において、制御部50は、上述の第1条件判断部52(図5参照)として機能し、ワークの非加工中を示す第1条件が満たされたか否かを判断する。「第1条件」については上述の通りであるので、その説明については繰り返さない。制御部50は、当該第1条件が満たされたと判断した場合(ステップS110においてYES)、制御をステップS120に切り替える。そうでない場合には(ステップS110においてNO)、制御部50は、図11に示される処理を終了する。
ステップS120において、制御部50は、上述の第2条件判断部54(図5参照)として機能し、測定工具10のバッテリー137の残電力が尽きそうであることを示す第2条件が満たされたか否かを判断する。「第2条件」については上述の通りであるので、その説明については繰り返さない。制御部50は、当該第2条件が満たされたと判断した場合(ステップS120においてYES)、制御をステップS122に切り替える。そうでない場合には(ステップS120においてNO)、制御部50は、図11に示される処理を終了する。
ステップS122において、制御部50は、上述のATC制御部56(図5参照)として機能し、測定工具10を主軸132に装着するようにATC160に装着指令を出力する。ATC制御部56の機能については上述の通りであるので、その説明については繰り返さない。
ステップS124において、制御部50は、上述の充電制御部58(図5参照)として機能し、上述の交流電源134(図3参照)に交流電流を出力させる。ATC制御部56の機能については上述の通りであるので、その説明については繰り返さない。ステップS124の処理により、測定工具10の充電が開始される。
ステップS130において、制御部50は、測定工具10の残電力が所定値を超えたか否かを判断する。制御部50は、測定工具10のバッテリー137の残電力が所定値を超えたと判断した場合(ステップS130においてYES)、図11に示される処理を終了する。そうでない場合には(ステップS130においてNO)、制御部50は、ステップS130の処理を再び実行する。
<L.まとめ>
以上のように、工作機械100は、ワークの加工が行われていない隙間時間を利用して測定工具10を充電する。これにより、工作機械100は、加工効率を低下させずに、測定工具10の充電が尽きることを防ぐことができる。
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。