以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わされてもよい。
<A.工作機械100の構成>
まず、図1を参照して、工作機械100の構成について説明する。図1は、工作機械100の外観を示す図である。
工作機械100は、ワークの加工機である。一例として、工作機械100は、ワークの除去加工(SM(Subtractive manufacturing)加工)を行う工作機械である。あるいは、工作機械100は、ワークの付加加工(AM(Additive manufacturing)加工)を行う工作機械であってもよい。また、工作機械100は、立形のマシニングセンタや横形のマシニングセンタやターニングセンタであってもよい。あるいは、工作機械100は、旋盤であってもよいし、その他の切削機械や研削機械であってもよい。さらに、工作機械は、これらを複合した複合機であってもよい。
工作機械100には、操作盤500が設けられている。操作盤500は、作業者Uによる操作を受け付ける。操作盤500は、加工に関する各種情報を表示するためのディスプレイ505と、工作機械100に対する各種操作を受け付ける操作キー506とを含む。
工作機械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と、撮影部140と、ATC160とを含む。
本明細書でいう「制御部50」とは、工作機械100を制御する装置を意味する。制御部50の装置構成は、任意である。制御部50は、単体の制御ユニットで構成されてもよいし、複数の制御ユニットで構成されてもよい。図2の例では、制御部50は、CPUユニット20と、CNCユニット30と、情報処理装置40とで構成されている。
CPUユニット20およびCNCユニット30は、たとえば、バスBを介して互いに通信を行う。CNCユニット30および情報処理装置40は、たとえば、通信経路NW(たとえば、無線LAN、有線LAN、フィールドネットワークなど)を介して互いに通信を行う。
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軸を中心とした回転方向の任意の回転角度にアーム166を駆動する。
ATC160は、工具の交換命令を受けたことに基づいて、マガジン170から次使用工具TBを取得する。その後、ATC160は、使用済工具TAを主軸132から抜き取るとともに、次使用工具TBを主軸132に装着する。その後、ATC160は、主軸132から抜き取った使用済工具TAをマガジン170に収納する。
CNCユニット30は、CPUユニット20からの加工開始指令を受けたことに基づいて、予め設計されている加工プログラムの実行を開始する。当該加工プログラムは、たとえば、NC(Numerical Control)プログラムで記述されている。CNCユニット30は、当該加工プログラムに従って、回転駆動部110Aおよび位置駆動部110Bを制御し、主軸頭130を駆動する。
主軸頭130は、主軸筒131と、主軸132とを含む。主軸132は、主軸筒131により回転可能に支持されている。主軸132にはマガジン170から選択された一の工具が装着される。工具は、主軸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の回転速度を調整する。
サーボドライバ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の測定結果に基づいて、種々の処理を実行する。
また、情報処理装置40は、撮影部140と通信を行う。情報処理装置40には、画像処理プログラムがインストールされており、撮影部140から取得した画像に対して種々の画像処理を実行する。
<C.概要>
工作機械100は、ワークの加工処理だけでなく、ワークの加工処理に直接的に関係が無い間接的な監視処理も実行する。当該監視処理の一例としては、ワーク形状の測定処理や、工具の摩耗度合いの測定処理などが挙げられる。
工作機械100の周囲に作業者がいる場合には、ワークおよび工具を目視で確認することができるため、監視処理が頻繁に実行される必要はない。そこで、工作機械100は、工作機械100の周囲に作業者がいる場合における監視処理の実行頻度を、工作機械100の周囲に作業者がいない場合における監視処理の実行頻度よりも少なくする。「実行頻度」とは、所定の単位時間(たとえば、1時間)当たりに実行される監視処理の実行回数を示す。
図3を参照して、監視処理の実行タイミングの一例について説明する。図3は、工作機械100の周囲に作業者がいない場合における監視処理の実行タイミングと、工作機械100の周囲に作業者がいる場合における監視処理の実行タイミングとをグラフで示す図である。
まず、工作機械100は、監視処理の実行前に、工作機械100の周囲に作業者がいるか否かを判断する。作業者の検知方法については後述する。作業者が検知されなかった場合には、工作機械100は、タイミングT1〜T6において監視処理を実行する。一方で、作業者が検知された場合には、工作機械100は、タイミングT1,T3,T5において監視処理を実行し、タイミングT2,T4,T6においては監視処理を実行しない。このように、工作機械100は、作業者が検知された場合における監視処理の実行頻度を、作業者が検知されなかった場合における監視処理の実行頻度よりも少なくする。これにより、工作機械100は、工具やワークに生じた異常を見逃す可能性を抑えつつ、処理時間を短縮することができる。また、工作機械100の消費電力を削減することもできる。
なお、作業者が周囲にいる場合における監視処理の実行頻度が、作業者が周囲にいない場合における監視処理の実行頻度よりも結果的に少なくなれば、監視処理の実行回数を減らす方法は任意である。一例として、工作機械100は、作業者が検知された場合には、複数回に1回の頻度で監視処理を実行してもよい。あるいは、作業者が検知された場合には、監視処理の実行処理をスキップするようにプログラムが規定されてもよい。
また、図3では、作業者が検知された場合には、タイミングT1,T3,T5において監視処理が実行される例について説明を行ったが、工作機械100は、作業者を検知している間、監視処理を実行しなくてもよい。
<D.測定工具10の内部構成>
次に、図4を参照して、図2に示される測定工具10の内部構成について説明する。図4は、測定工具10の内部構造を示す断面図である。
図4を参照して、測定工具10は、筐体150を含む。筐体150は、その内部に、制御回路101と、レーザ発振器161と、CCDカメラ162と、プリズム163と、反射鏡164と、絞り167と、凸レンズ168,169とを有する。筐体150の上端には、主軸132との接続機構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との間に配置される。
<E.工具の測定機構>
次に、図5を参照して、工具の摩耗量を測定するための測定機構について説明する。図5は、当該測定機構の一例を示す図である。
図5に示されるように、主軸頭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から得られる。
<F.工作機械100の機能構成>
図6および図7を参照して、工作機械100の機能構成について説明する。図6は、工作機械100の機能構成の一例を示す図である。
工作機械100は、機能構成として、検知部51と、実行部60とを含む。以下では、これらの機能構成について順に説明する。
なお、各機能構成の配置は、任意である。一例として、検知部51は、上述のCPUユニット20(図2参照)に実装されてもよいし、上述のCNCユニット30(図2参照)に実装されてもよいし、上述の情報処理装置40(図2参照)に実装されてもよい。また、実行部60は、CPUユニット20に実装されてもよいし、CNCユニット30に実装されてもよいし、情報処理装置40に実装されてもよい。あるいは、図3に示される機能構成の一部は、サーバーなどの外部装置に実装されてもよいし、専用のハードウェアに実装されてもよい。
(F1.検知部51)
まず、図7を参照して、図6に示される検知部51の機能について説明する。図7は、作業者による作業の様子を示す図である。
検知部51は、たとえば、画像を用いて工作機械100の周囲にいる作業者を検知する。より具体的には、工作機械100には、カメラ410が設けられる。カメラ410は、作業者Uの作業エリアを撮影するように設置される。一例として、カメラ410は、工作機械100の外カバー上に設けられる。カメラ410は、1台だけ設置されてもよいし、複数台設置されてもよい。カメラ410は、作業者Uを撮影して得られた画像を検知部51に定期的に送る。
検知部51は、カメラ410から得られた画像を用いて作業者を検知する。作業者Uを検知するための画像処理アルゴリズムには、任意の画像処理プログラムが採用される。
一例として、検知部51は、学習済みモデルを用いて作業者を検知する。学習済みモデルは、学習用データセットを用いた学習処理により予め生成されている。学習用データセットは、人物が写っている複数の学習用画像を含む。各学習用画像には、人物の有無がラベルとして関連付けられる。学習済みモデルの内部パラメータは、このような学習用データセットを用いた学習処理により予め最適化されている。これにより、学習済みモデルは、画像の入力を受けると、当該画像に人物が写っている確率を出力する。
学習済みモデルを生成するための学習手法には、種々の機械学習アルゴリズムが採用され得る。一例として、当該機械学習アルゴリズムとして、ディープラーニング、コンボリューションニューラルネットワーク(CNN)、全層畳み込みニューラルネットワーク(FCN)、サポートベクターマシンなどが採用される。
検知部51は、カメラ410から得られた画像上で所定の矩形領域をずらしながら、当該矩形領域内の部分画像を学習済モデルに順次入力する。当該学習済みモデルは、部分画像の入力を受け付けると、当該部分画像に人物が写っている確率を出力する。検知部51は、当該確率が所定値を超えたことに基づいて、作業者を検知する。
なお、検知部51による作業者の検知方法は、画像を用いた上述の方法に限定されず、種々の方法が採用される。他の例として、検知部51は、指紋認証、虹彩認証、静脈認証、声紋認証、およびその他の生体認証を用いて、作業者を検知してもよい。
さらに他の例として、検知部51は、操作盤500へのログイン情報を用いて作業者を検知してもよい。より具体的には、作業者は、自身の個人識別情報を格納するハードウェアキーを工作機械100の操作盤500に差し込むことで工作機械100へのログイン操作を行う。検知部51は、ハードウェアキーが操作盤500に差し込まれたことに基づいて、作業者を検知する。
(F2.実行部60)
次に、図6に示される実行部60の機能について説明する。
実行部60は、ワークの加工処理に直接的に関係が無い間接的な処理(監視処理)の実行を許可するか禁止するかを決定する機能モジュールである。当該監視処理は、ワークの形状を測定するためのワーク測定処理と、工具の状態を測定するための工具測定処理と、の少なくとも一方を含む。ワーク測定処理の詳細と、工具測定処理の詳細とについては後述する。
ワーク測定処理および工具測定処理の実行コードは、たとえば、プログラム80に規定されている。プログラム80は、後述の制御プログラム222(図9参照)、後述の制御プログラム322(図10参照)、後述の加工プログラム324(図10参照)、または、後述の制御プログラム422(図11参照)である。
実行部60は、検知部51によって作業者が検知されたか否かに応じて、プログラム80に規定されている監視処理を実行するか否かを判断する。より具体的には、実行部60は、作業者が検知されなかった場合には、監視処理の実行を許可する。実行部60は、作業者が検知されている間は、複数回に1回の頻度で監視処理を実行する。あるいは、実行部60は、作業者が検知されている間は、監視処理の実行を禁止してもよい。
<G.ワーク測定処理>
次に、上述の図2および図4を参照して、監視処理の一例であるワーク測定処理について説明する。
ワーク測定処理は、測定工具10を用いてワークの形状を測定するための処理である。ワーク測定処理が定期的に実行されることで、ワークの加工に異常が生じていることなどが検知される。
ワーク測定処理は、測定工具10を主軸132に装着するようにATC160を制御する処理と、ワークWの形状を測定工具10に測定させる処理と、測定工具10をマガジン170(図1参照)に戻すようにATC160を制御する処理との一連の処理を含む。当該ワーク測定処理が頻繁に実行されると、処理時間が増えてしまう。一方で、ワーク測定処理が長期間実行されないと、ワークが意図した通りの形状に加工されない可能性がある。工作機械100は、作業者が近くにいる場合には、ワーク測定処理の実行回数を減らすことで、処理時間を短縮しつつ、ワークの加工異常を逃す可能性を抑える。
具体的なワーク測定処理として、まず、上述の実行部60によってワーク測定処理の実行が許可されたことに基づいて、工作機械100の制御部50は、位置駆動部110Bを制御し、所定の工具交換位置に主軸頭130を移動する。その後、制御部50は、測定工具10を主軸132に装着するようにATCドライバ111Nに制御指令を出力する。これにより、測定工具10が主軸132に装着される。
その後、制御部50は、上述の駆動制御部110を制御して、予め設定されている経路に沿って測定工具10を駆動し、測定工具10にワークWの表面までの距離を順次取得する。
より具体的には、測定工具10の制御回路101は、CCDカメラ162によって生成された2次元画像データに基づいて、ワークWの表面と測定工具10との間の距離(すなわち、ワークWの表面におけるレーザ光の照射点PとCCDカメラ162の撮像面162Aとの間の距離)を算出する。制御回路101は、算出した距離に係る距離データを後述の通信インターフェイス104(図8参照)を介して情報処理装置40に送信する。
情報処理装置40は、予め設定されている経路に沿って測定工具10を駆動しながら当該測定工具10から距離データを順次取得することで、時系列の距離データ(以下、「プロファイルデータ」ともいう。)を取得する。当該プロファイルデータは、ワークWのある断面の外形を示す。情報処理装置40は、予め取得しているワークのCADデータから対応箇所の外形情報を取得し、当該外形情報と、取得したプロファイルデータとの類似度を算出する。
情報処理装置40は、当該算出した類似度が所定閾値よりも低い場合には、予め定められた異常対処処理を実行する。当該異常対処処理は、たとえば、警告を出力する処理である。当該警告により、ワークの加工に異常が発生していることが報知される。警告の出力態様は、任意である。一例として、当該警告は、工作機械100のディスプレイ上に表示されてもよいし、音声で出力されてもよいし、レポート形式でデータとして出力されてもよい。警告が出力されることで、作業者は、ワークが意図した通りに加工されていないことに気付くことができる。
制御部50は、ワークの計測処理が終了したことに基づいて、上述の位置駆動部110Bを制御し、予め定められた工具交換位置に主軸頭130を移動する。次に、制御部50は、主軸132に装着されている測定工具10をマガジン170に収納するようにATCドライバ111Nに制御指令を出力する。これにより、ATC160は、測定工具10をマガジン170に収納する。
なお、上述では、非接触型の距離センサとして機能する測定工具10について説明を行ったが、測定工具10は、非接触型の距離センサに限定されない。一例として、測定工具10は、接触型の距離センサであってもよい。あるいは、測定工具10は、温度センサであってもよいし、画像を取得するためのカメラであってもよい。
<H.工具測定処理>
次に、上述の図2および図5を参照して、監視処理の一例である工具測定処理について説明する。
工具測定処理は、工具の摩耗の度合いを測定するための処理である。工具測定処理が定期的に実行されることで、工具の摩耗量が限界に達していることが検知される。工具の摩耗量が限界に達している場合には、工作機械100は、作業者に工具の交換を促す。
工具測定処理は、測定対象の工具134がカメラ141の撮影視野CRに含まれるように主軸132を駆動する処理と、工具134を写す工具画像をカメラ141から取得する処理と、当該工具画像に基づいて工具摩耗量を推定する処理との一連の処理を含む。工具測定処理が頻繁に実行されると、処理時間が増えてしまう。一方で、工具測定処理が長期間実行されないと、工具の寿命が到来していることを逃す可能性がある。工作機械100は、作業者が近くにいる場合には、工具測定処理の実行回数を減らす。これにより、工作機械100は、処理時間を短縮しつつ、工具の交換時期を逃す可能性を抑えることができる。
具体的な工具測定処理として、まず、工作機械100の制御部50は、上述の実行部60によって工具測定処理の実行が許可されたことに基づいて、上述の位置駆動部110Bを制御し、所定の位置に主軸頭130を移動する。主軸頭130が当該所定の位置に移動されることで、工具134がカメラ141の撮影視野CRに含まれる。このとき、カメラ141の撮影視野CRには、工具134のみが含まれていてもよいし、主軸132および工具134の両方が含まれていてもよい。
その後、制御部50は、カメラ141に撮影指示を出力する。これにより、制御部50は、工具134を写した工具画像をカメラ141から取得する。
典型的には、制御部50は、光源145をオンにし、かつ光源147をオフにした状態でカメラ141に撮影指示を出力し、工具画像を取得する。これにより、カメラ方向から工具134を照らした状態で工具画像が得られる。
あるいは、制御部50は、光源145をオフにし、かつ光源147をオンにした状態でカメラ141に撮影指示を出力し、工具134のシルエット画像を工具画像として取得してもよい。
次に、制御部50は、カメラ141から得られた工具画像に基づいて、工具134の摩耗量を測定する。工具画像を用いた摩耗量の測定処理には、種々の画像処理アルゴリズムが用いられ得る。一例として、制御部50は、学習済モデルを用いて工具摩耗量を検知する。
当該学習済みモデルは、学習用データセットを用いた学習処理により予め生成されている。学習用データセットは、工具が写っている複数の学習用画像を含む。各学習用画像には、工具の摩耗量を示すラベルが関連付けられる。学習済みモデルの内部パラメータは、このような学習用データセットを用いた学習処理により予め最適化されている。
学習済みモデルを生成するための学習手法には、種々の機械学習アルゴリズムが採用され得る。一例として、当該機械学習アルゴリズムとして、ディープラーニング、コンボリューションニューラルネットワーク(CNN)、全層畳み込みニューラルネットワーク(FCN)、サポートベクターマシンなどが採用される。
制御部50は、所定の矩形領域を工具画像上に設定し、当該矩形領域を工具画像上でずらしながら当該矩形領域内の部分画像を学習済モデルに順次入力する。その結果、当該学習済モデルは、工具摩耗量をスコアとして出力する。制御部50は、当該工具摩耗量が所定値を超え、かつ、当該工具摩耗量が最大となった部分画像を特定し、当該部分画像について出力された工具摩耗量を測定結果として採用する。
好ましくは、学習用データセットに含まれる学習用画像にはさらに工具の種別が関連付けられ、学習済みモデルは、工具の種別に生成される。この場合、制御部50は、加工プログラムなどから測定対象の工具の種別を取得し、当該種別に対応する学習済みモデルを用いて、工具の摩耗量を推定する。
なお、工具摩耗量の測定方法は、学習済モデルを用いた上述の方法に限定されず、ルールベースに基づく画像処理が採用されてもよい。あるいは、工具摩耗量は、作業者によって入力されてもよい。この場合、作業者は、測定具などを用いて工具摩耗量を測定する。
制御部50は、推定された工具摩耗量が所定閾値を超えている場合には、所定の異常対処処理を実行する。当該異常対処処理は、たとえば、工具交換を作業者に促すための警告を出力する処理である。当該警告により、工具の摩耗が限界に達していること、または、工具の摩耗が限界に近付いていることが作業者に報知される。警告の出力態様は、任意である。一例として、当該警告は、工作機械100のディスプレイ上に表示されてもよいし、音声で出力されてもよいし、レポート形式でデータとして出力されてもよい。好ましくは、当該警告は、交換すべき工具の種別や工具の格納場所を含む。警告が出力されることで、作業者は、工具を新品に交換することができる。
<I.測定工具10のハードウェア構成>
次に、図8を参照して、図2に示される測定工具10のハードウェア構成について説明する。図8は、測定工具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参照)などで構成される。
<J.CPUユニット20のハードウェア構成>
次に、図9を参照して、図2に示されるCPUユニット20のハードウェア構成について説明する。図9は、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を介して、ATCドライバ111N(図2参照)などの外部機器との通信を実現する。
通信インターフェイス205は、フィールドバスに接続される各種ユニットとの通信を実現するための通信ユニットである。当該フィールドバスに接続されるユニットの一例として、CNCユニット30やI/Oユニット(図示しない)などが挙げられる。
補助記憶装置220は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。補助記憶装置220は、制御プログラム222などを格納する。制御プログラム222の格納場所は、補助記憶装置220に限定されず、制御回路201の記憶領域(たとえば、キャッシュメモリ)、ROM202、RAM203、外部機器(たとえば、サーバー)などに格納されていてもよい。
なお、制御プログラム222は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、本実施の形態に従う各種の処理は、任意のプログラムと協働して実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う制御プログラム222の趣旨を逸脱するものではない。さらに、制御プログラム222によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、少なくとも1つのサーバーが制御プログラム222の処理の一部を実行する所謂クラウドサービスのような形態でCPUユニット20が構成されてもよい。
<K.CNCユニット30のハードウェア構成>
次に、図10を参照して、図2に示されるCNCユニット30のハードウェア構成について説明する。図10は、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が構成されてもよい。
<L.情報処理装置40のハードウェア構成>
次に、図11を参照して、図2に示される情報処理装置40のハードウェア構成について説明する。図11は、情報処理装置40のハードウェア構成の一例を示す図である。
情報処理装置40は、制御回路401と、ROM402と、RAM403と、通信インターフェイス404〜407と、補助記憶装置420とを含む。これらのコンポーネントは、内部バスB4に接続される。
制御回路401は、たとえば、少なくとも1つの集積回路によって構成される。集積回路は、たとえば、少なくとも1つのCPU、少なくとも1つのGPU、少なくとも1つのASIC、少なくとも1つのFPGA、またはそれらの組み合わせなどによって構成され得る。
制御回路401は、制御プログラム422などの各種プログラムを実行することで情報処理装置40の動作を制御する。制御回路401は、各種プログラムの実行命令を受け付けたことに基づいて、補助記憶装置420またはROM402からRAM403に実行対象のプログラムを読み出す。RAM403は、ワーキングメモリとして機能し、プログラムの実行に必要な各種データを一時的に格納する。
通信インターフェイス404〜407には、LAN、WLAN、またはBluetoothなどを用いた通信を実現するための通信ユニットである。情報処理装置40は、通信インターフェイス404を介して外部機器(たとえば、CNCユニット30)とデータをやり取りする。また、情報処理装置40は、通信インターフェイス405を介して外部機器(たとえば、測定工具10)とデータをやり取りする。また、情報処理装置40は、通信インターフェイス406を介して外部機器(たとえば、カメラ141)とデータをやり取りする。また、情報処理装置40は、通信インターフェイス407を介して外部機器(たとえば、カメラ410)とデータをやり取りする。
補助記憶装置420は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。補助記憶装置420は、制御プログラム422などを格納する。制御プログラム422の格納場所は、補助記憶装置420に限定されず、制御回路401の記憶領域(たとえば、キャッシュメモリなど)、ROM402、RAM403、外部機器(たとえば、サーバー)などに格納されていてもよい。
なお、制御プログラム422は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、任意のプログラムと協働して本実施の形態に従う処理が実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う工作機械100の趣旨を逸脱するものではない。さらに、本実施の形態に従う制御プログラム422によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、工作機械100とサーバーとが協働して、本実施の形態に従う処理を実現するようにしてもよい。さらに、少なくとも1つのサーバーが本実施の形態に従う処理を実現する、所謂クラウドサービスの形態で情報処理装置40が構成されてもよい。
<M.監視処理の実行制御のフロー>
次に、図12を参照して、工作機械100の制御構造について説明する。図12は、上述の監視処理の実行制御の流れを示すフローチャートである。
図12に示される処理は、工作機械100の制御部50が上述の制御プログラム222,322,422の少なくとも1つを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
ステップS110において、制御部50は、監視処理の実行タイミングが到来したか否かを判断する。一例として、制御部50は、実行中のプログラムにおいて監視処理が実行されたことに基づいて、監視処理の実行タイミングが到来したと判断する。ステップS110で判断対象となる監視処理は、たとえば、予め登録されている。制御部50は、監視処理の実行タイミングが到来したと判断した場合(ステップS110においてYES)、制御をステップS112に切り替える。そうでない場合には(ステップS110においてNO)、制御部50は、ステップS110の処理を再び実行する。
ステップS112において、制御部50は、上述の検知部51(図6参照)として機能し、工作機械100の周囲にいる作業者の検知処理を実行する。検知部51の機能については上述の通りであるので、その説明については繰り返さない。
ステップS120において、制御部50は、上述の実行部60(図6参照)として機能し、ステップS112での作業者の検知結果に基づいて、監視処理を実行するか否かを判断する。一例として、制御部50は、ステップS112で作業者が検知された場合には、複数回に1回の頻度で監視処理を実行すると判断する。他の例として、制御部50は、ステップS112で作業者が検知された場合には、監視処理を実行しないと判断する。制御部50は、監視処理を実行すると判断した場合(ステップS120においてYES)、制御をステップS122に切り替える。そうでない場合には(ステップS120においてNO)、制御部50は、制御をステップS110に戻す。
ステップS122において、制御部50は、上述の実行部60として機能し、ステップS110で実行を指示された監視処理を実行する。
<N.変形例1>
次に、図13および図14を参照して、変形例1に従う工作機械100について説明する。
上述の工作機械100は、周囲に作業者がいるか否かに応じて、監視処理の実行頻度を調整していた。これに対して、本変形例に従う工作機械100は、周囲にいる作業者の熟練度に応じて、監視処理の実行頻度を調整する。
図13は、変形例1に従う工作機械100の機能構成の一例を示す図である。図13に示されるように、本変形例に従う工作機械100は、機能構成として、検知部51と、情報取得部54と、特定部55と、実行部60Aとを含む。検知部51は、個人識別部53を含む。以下では、これらの機能について順に説明する。
(N1.個人識別部53)
まず、図13に示される個人識別部53の機能について説明する。
本変形例では、検知部51は、工作機械100の周囲にいる作業者を検知する機能だけでなく、作業者を識別する機能をさらに有する。
個人識別部53は、たとえば、画像を用いて作業者を識別する。個人識別部53は、カメラ410(図7参照)から得られた画像から作業者を識別する。作業者を識別するための画像処理アルゴリズムには、任意の画像処理プログラムが採用される。
一例として、個人識別部53は、学習済みモデルを用いて画像に写る作業者を識別する。学習済みモデルは、学習用データセットを用いた学習処理により予め生成されている。学習用データセットは、作業者が写っている複数の学習用画像を含む。各学習用画像には、作業者を一意に特定するための個人識別情報がラベルとして関連付けられる。当該個人識別情報は、たとえば、作業者ID(Identification)または作業者名である。学習済みモデルの内部パラメータは、このような学習用データセットを用いた学習処理により予め最適化されている。これにより、学習済みモデルは、画像の入力を受けると、当該画像に写っている人物と、ラベル付けされた各作業者との類似度を出力する。
学習済みモデルを生成するための学習手法には、種々の機械学習アルゴリズムが採用され得る。一例として、当該機械学習アルゴリズムとして、ディープラーニング、コンボリューションニューラルネットワーク(CNN)、全層畳み込みニューラルネットワーク(FCN)、サポートベクターマシンなどが採用される。
個人識別部53は、カメラ410から得られた画像上で所定の矩形領域をずらしながら、当該矩形領域内の部分画像を学習済モデルに順次入力する。当該学習済みモデルは、部分画像の入力を受け付けると、当該部分画像に写っている人物と、ラベル付けされた各作業者との類似度を出力する。個人識別部53は、学習済みモデルから出力される類似度の中から最大値を特定し、当該最大値が所定閾値を超えている場合には、当該最大値に対応する個人識別情報を出力する。
なお、個人識別部53による作業者の識別方法は、画像を用いた上述の識別方法に限定されず、種々の方法が採用される。他の例として、個人識別部53は、指紋認証、虹彩認証、静脈認証、声紋認証、およびその他の生体認証を用いて、作業者を識別してもよい。
さらに他の例として、個人識別部53は、操作盤500へのログイン情報を用いて作業者を識別してもよい。より具体的には、作業者は、自身の個人識別情報を格納するハードウェアキーを工作機械100の操作盤500に差し込むことでログイン操作を行う。個人識別部53は、差し込まれたハードウェアキーから作業者の個人識別情報を読み取り、当該個人識別情報に基づいて、ログインした作業者を識別する。
(N2.情報取得部54)
次に、図14を参照して、図13に示される情報取得部54の機能について説明する。
情報取得部54は、図14に示される熟練度情報424を取得する。図14は、熟練度情報424のデータ構造の一例を示す図である。
熟練度情報424は、たとえば、情報処理装置40の補助記憶装置420(図11参照)に記憶されている。熟練度情報424には、作業者の熟練度が作業者別に規定されている。各作業者の熟練度は、ユーザによって任意に設定される。作業者の熟練度とは、工作機械100における作業者の作業効率を表わす指標である。当該熟練度は、その値が高いほど作業者の経験値が高いことを示し、その値が低いほど作業者の経験値が低いことを示す。
作業者の熟練度は、たとえば、設定画面(図示しない)を用いて登録される。より具体的には、工作機械100は、熟練度の設定画面の呼び出し操作を受け付けたことに基づいて、当該設定画面を工作機械100のディスプレイ上に表示する。当該設定画面は、登録対象の作業者情報の入力と、当該作業者の熟練度の入力とを受け付けるように構成される。当該設定画面に入力された情報は、確定操作に基づいて、熟練度情報424に書き込まれる。
(N3.特定部55)
引き続き、図14を参照して、図13に示される特定部55の機能について説明する。
特定部55は、熟練度情報424に基づいて、工作機械100の周囲にいる作業者の熟練度を特定する。より具体的には、特定部55は、熟練度情報424に規定される熟練度の中から、個人識別部53によって特定された個人識別情報に対応付けられている熟練度を取得する。これにより、個人識別部53によって識別された作業者の熟練度が特定される。
なお、上述では、熟練度情報424に基づいて作業者の熟練度が特定される例について説明を行ったが、作業者の熟練度は、推定されてもよい。
より具体的には、まず、工作機械100は、作業者の作業内容をモニターし、当該作業内容を特定するための情報(以下、「作業内容情報」ともいう。)をデータベース上に蓄積しておく。収集対象の作業内容は、たとえば、工作機械100内の扉の開閉動作や、操作盤500の画面の切り替え操作などである。
特定部55は、当該評価用データベースに格納されるデータに基づいて、各作業者の熟練度を算出する。熟練度は、たとえば、予め定められた算出式に基づいて算出される。当該算出式は、所定の入力値を説明変数とし、熟練度を目的変数とする。
一例として、上記説明変数は、工作機械100に設けられている扉の開回数を含む。当該開回数は、一期間当たりの開回数であってもよいし、異なる各期間の開回数の平均値であってもよい。当該開回数が多いほど、作業者の熟練度は低くなる。異なる言い方をすれば、当該開回数が少ないほど、作業者の熟練度は高くなる。
さらに他の例として、上記説明変数は、工作機械100に設けられている扉の閉回数を含む。当該閉回数は、一期間当たりの閉回数であってもよいし、異なる各期間の閉回数の平均値であってもよい。当該閉回数が多いほど、作業者の熟練度は低くなる。異なる言い方をすれば、当該閉回数が少ないほど、作業者の熟練度は高くなる。
さらに他の例として、上記説明変数は、工作機械100に設けられている扉の開時間を含む。当該開時間は、一期間当たりの開時間であってもよいし、異なる各期間の開時間の平均値であってもよい。当該開時間が長いほど、作業者の熟練度は低くなる。異なる言い方をすれば、当該開時間が短いほど、作業者の熟練度は高くなる。
さらに他の例として、上記説明変数は、操作盤500の画面切替回数を含む。当該画面切替回数は、一期間当たりの画面切替回数であってもよいし、各期間の画面切替回数の平均値であってもよい。当該画面切替回数が多いほど、作業者の熟練度は低くなる。異なる言い方をすれば、当該画面切替回数が少ないほど、作業者の熟練度は高くなる。
さらに他の例として、上記説明変数は、工具の登録画面を開いている時間、工具長の設定に要した時間、工具振れの調整回数などを含んでもよい。
(N4.実行部60A)
引き続き、図14を参照して、図13に示される実行部60Aの機能について説明する。
実行部60Aは、特定部55によって特定された作業者の熟練度に基づいて、プログラム80に規定されている監視処理を実行するか否かを判断する。典型的には、実行部60Aは、特定部55によって特定された熟練度が高いほど、監視処理の実行頻度を少なくする。異なる言い方をすれば、特定部55によって特定された熟練度が低いほど、監視処理の実行頻度を多くする。
なお、作業者の熟練度が低い場合における監視処理の実行頻度が、作業者の熟練度が高い場合における監視処理の実行頻度よりも結果的に少なくなれば、監視処理の実行回数を減らす方法は任意である。
ある局面において、実行部60Aは、作業者の熟練度に応じて、所定回数に1回の頻度で監視処理を実行する。当該所定回数は、たとえば、2回以上である。当該所定回数は、作業者の熟練度が高いほど大きくなるように設定される。異なる言い方をすれば、当該所定回数は、作業者の熟練度が低いほど小さくなるように設定される。
他の局面において、実行部60Aは、作業者の熟練度が所定閾値を超えている場合には、監視処理を実行しなくてもよい。これにより、工作機械100は、処理時間をより短縮することができる。
さらに他の局面において、作業者の熟練度が所定閾値を超えている場合には、監視処理の実行処理をスキップするようにプログラムが規定されてもよい。
<O.変形例2>
次に、図15を参照して、変形例2に従う工作機械100について説明する。
変形例1に従う工作機械100は、周囲にいる作業者の熟練度に応じて、監視処理の実行頻度を調整していた。これに対して、本変形例に従う工作機械100は、周囲にいる作業者の熟練度に応じて、監視処理の実行頻度を調整する。
図15は、変形例2に従う工作機械100の機能構成の一例を示す図である。図15に示されるように、本変形例に従う工作機械100は、機能構成として、検知部51と、算出部58と、実行部60Bとを含む。検知部51は、健康指標取得部57を含む。以下では、これらの機能について順に説明する。
(O1.健康指標取得部57)
まず、図15に示される健康指標取得部57の機能について説明する。
健康指標取得部57は、作業者が保持するポータブルデバイスから、作業者の調子を表わす指標(以下、「健康指標」ともいう。)を取得する。当該ポータブルデバイスは、たとえば、スマートフォン、タブレット端末、スマートウォッチなどのウェラブル端末、または、作業者の健康指標を取得する機能を有するその他のデバイスである。当該ポータブルデバイスによって検知される健康指標は、たとえば、作業者の体温、作業者の血圧、作業者の脈拍、作業者の前日の睡眠時間などである。
より具体的な処理として、工作機械100は、近距離無線通信を行う機能を有し、作業者が工作機械100の通信可能範囲に入ったことに基づいて、作業者のポータブルデバイスと無線通信を開始する。当該近距離無線通信の実現には、たとえば、赤外線通信やBluthtoothなどの無線通信技術が用いられる。検知部51は、当該ポータブルデバイスとの通信が確立されたことに基づいて、工作機械100の周囲に作業者がいると判断する。
また、健康指標取得部57は、作業者のポータブルデバイスとの通信が確立されたことに基づいて、当該ポータブルデバイスから作業者の健康指標を受信する。当該受信した健康指標は、算出部58に出力される。
(O2.算出部58)
次に、図15に示される算出部58の機能について説明する。
算出部58は、健康指標取得部57が取得した健康指標に基づいて、作業者の調子を示す状態スコアを算出する。当該状態スコアは、作業者の調子の良し悪しを示すスコアである。作業者の状態スコアは、その値が高いほど作業者の調子が良いことを示し、その値が低いほど作業者の調子が悪いことを示す。
作業者の状態スコアは、たとえば、予め定められた算出式に基づいて算出される。当該算出式は、所定の入力値を説明変数とし、状態スコアを目的変数とする。
一例として、上記説明変数は、作業者の体温を含む。作業者の体温が予め定められた基準値から離れるほど、作業者の状態スコアは低くなる。異なる言い方をすれば、作業者の体温が予め定められた基準値に近いほど、作業者の状態スコアは高くなる。
他の例として、上記説明変数は、作業者の血圧を含む。作業者の血圧が予め定められた基準値から離れるほど、作業者の状態スコアは低くなる。異なる言い方をすれば、作業者の血圧が予め定められた基準値に近いほど、作業者の状態スコアは高くなる。
さらに他の例として、上記説明変数は、作業者の脈拍を含む。作業者の脈拍が予め定められた基準値から離れるほど、作業者の状態スコアは低くなる。異なる言い方をすれば、作業者の脈拍が予め定められた基準値に近いほど、作業者の状態スコアは高くなる。
さらに他の例として、上記説明変数は、作業者の前日の睡眠時間を含む。作業者の前日の睡眠時間が短いほど、作業者の状態スコアは低くなる。異なる言い方をすれば、作業者の前日の睡眠時間が長いほど、作業者の状態スコアは高くなる。
(O3.実行部60B)
次に、図15に示される実行部60Bの機能について説明する。
実行部60Bは、算出部58によって算出された作業者の状態スコアに応じて、プログラム80に規定されている監視処理を実行するか否かを判断する。典型的には、実行部60Bは、算出部58によって算出された状態スコアが高いほど、監視処理の実行頻度を少なくする。
なお、作業者の状態スコアが低い場合における監視処理の実行頻度が、作業者の状態スコアが高い場合における監視処理の実行頻度よりも結果的に少なくなれば、監視処理の実行回数を減らす方法は任意である。
ある局面において、実行部60Bは、作業者の状態スコアに応じて、所定回数に1回の頻度で監視処理を実行する。当該所定回数は、たとえば、2回以上である。当該所定回数は、作業者の状態スコアが高いほど大きくなるように設定される。異なる言い方をすれば、当該所定回数は、作業者の状態スコアが低いほど小さくなるように設定される。
他の局面において、実行部60Bは、作業者の状態スコアが所定閾値を超えている場合には、監視処理を実行しなくてもよい。これにより、工作機械100は、処理時間をより短縮することができる。
さらに他の局面において、状態スコアが所定閾値を超えている場合には、監視処理の実行処理をスキップするようにプログラムが規定されてもよい。
<P.まとめ>
以上のようにして、工作機械100は、周囲に作業者がいる場合における監視処理の実行頻度を、周囲に作業者がいない場合における監視処理の実行頻度よりも少なくする。これにより、工作機械100は、工具やワークに生じた異常を見逃す可能性を抑えつつ、処理時間を短縮することができる。
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。