以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わされてもよい。
<A.工作機械10の外観>
図1を参照して、実施の形態に従う工作機械10について説明する。図1は、工作機械10の外観を示す図である。
以下では、工作機械10の一例として、予め定められたスケジュールに従って加工対象のワークを自動で搬送する機能を有するパレット搬送システムについて説明を行うが、工作機械10は、パレット搬送システムに限定されない。工作機械10は、たとえば、ワークの自動搬送機能を有さない加工機であってもよいし、パレット搬送機能の代わりにアームロボットを備える加工機であってもよい。
パレット搬送システムとしての工作機械10は、1つ以上の制御装置50と、1つ以上の収納部200と、1つ以上の搬送装置300と、1つ以上の加工機400と、1つ以上の作業ステーション500とを含む。
収納部200は、搬送装置300によるパレットPLの搬送先の1つであり、パレットPLを収納するための場所である。収納部200には、複数のパレットPLが収納され得る。収納部200には、ワークが取り付けられる前の空のパレットや、加工前のワークが取り付けられているパレットや、加工途中のワークが取り付けられているパレットや、加工済みのワークが取り付けられたパレットなどが収納される。
搬送装置300は、指定されたパレットPLを指定された場所に搬送する。より具体的には、搬送装置300は、レール330と、台車331とを含む。台車331は、レール330と直交方向(すなわち、台車331の走行方向に直交する方向)に駆動可能に構成されるフォーク部333を有する。台車331は、たとえば、後述のサーボモータ335(図2参照)によってレール330に沿って移動可能に構成される。台車331は、レール330に沿って搬送対象のパレットPLの位置まで移動し、フォーク部333を用いて搬送対象のパレットPLを台車331上に載せる。その後、台車331は、レール330に沿って指定された搬送先まで移動し、フォーク部333を用いて搬送対象のパレットPLを搬送先に搬入する。
加工機400は、搬送装置300によるパレットPLの搬送先の1つである。加工機400は、予め設計された加工プログラムに従って、搬入されたパレットPLに取り付けられているワークを加工する。ワークの加工が完了すると、加工機400内のパレットPLは、搬送装置300によって収納部200または作業ステーション500に搬送される。また、加工機400には、加工機400に対する種々の操作を受け付ける操作盤430が設けられている。
作業ステーション500は、搬送装置300によるパレットPLの搬送先の1つである。作業ステーション500は、搬入されてきたパレットPLに対して作業者が種々の作業を行うための作業エリアである。作業ステーション500において、作業者は、搬入されたパレットPLに対して加工対象のワークを取り付ける作業や、加工が完了したワークをパレットPLから取り外す作業や、作業エリアの清掃などを行う。作業者は、パレットPLに対する作業が完了すると、作業完了を指示するための操作を行う。これに基づいて、作業ステーション500内のパレットPLは、搬送装置300によって収納部200または加工機400に搬送される。
<B.工作機械10の装置構成>
図2は、工作機械10の装置構成の一例を示す図である。図2を参照して、工作機械10の装置構成の一例について説明する。
図2に示されるように、工作機械10は、制御装置50と、リモートI/O(Input/Output)ユニット61~64と、搬送装置300と、加工機400と、作業ステーション500とを含む。
本明細書でいう「制御装置50」とは、工作機械10を制御する装置を意味する。制御装置50の装置構成は、任意である。制御装置50は、単体の制御ユニットで構成されてもよいし、複数の制御ユニットで構成されてもよい。図2の例では、制御装置50は、コントロールシステム100と、制御盤150とで構成されている。
制御盤150は、加工工程を自動化するための種々の産業用機器を制御する。制御盤150は、PLC151を含む。
コントロールシステム100およびPLC151は、ネットワークNW1に接続される。コントロールシステム100およびPLC151は、有線で通信接続されてもよいし、無線で通信接続されてもよい。ネットワークNW1には、EtherNET(登録商標)などが採用される。コントロールシステム100は、ネットワークNW1を介して、PLC151に制御指令を送る。コントロールシステム100は、当該制御指令によって、搬送対象のパレットPLの指定や、搬送対象のパレットPLの搬送先の指定や、搬送対象のパレットPLの搬送開始/停止の指定、加工機400による加工の加工開始/停止の指定などを行う。
リモートI/Oユニット61~64およびPLC151は、ネットワークNW2に接続されている。ネットワークNW2には、定周期通信を行うフィールドネットワークを採用することが好ましい。フィールドネットワークは、データの到達時間が保証されているネットワークの通称である。フィールドネットワークとして、EtherCAT(登録商標)、EtherNet/IP(登録商標)、CC-Link(登録商標)、またはCompoNet(登録商標)などが採用される。
搬送装置300は、1つ以上のサーボドライバ334と、1つ以上のサーボモータ335とを含む。搬送装置300内または搬送装置300周辺には、リモートI/Oユニット61が設置される。リモートI/Oユニット61は、搬送装置300内の各種駆動ユニット(たとえば、サーボドライバ334)と、PLC151との間のデータのやり取りを仲介する。サーボドライバ334は、リモートI/Oユニット61を介してPLC151からの制御指令を一定周期ごとに受け、当該制御指令に従って、サーボモータ335を駆動制御する。一例として、一つのサーボモータ335は、上述の台車331(図1参照)を駆動制御し、もう一つのサーボモータ335は、上述のフォーク部333(図1参照)を駆動制御する。
加工機400は、CNC(Computer Numerical Control)401と、サーボドライバ411と、サーボモータ412と、操作盤430とを含む。加工機400内または加工機400周辺には、リモートI/Oユニット62が設置される。リモートI/Oユニット62は、加工機400内の各種駆動ユニット(たとえば、CNC401や操作盤430)と、PLC151との間のデータのやり取りを仲介する。サーボドライバ411は、リモートI/Oユニット62を介してPLC151からの制御指令を一定周期ごとに受け、当該制御指令に従って、サーボモータ412を駆動制御する。操作盤430は、作業者から受けた操作入力をリモートI/Oユニット62を介してPLC151に送信する。
作業ステーション500は、人感センサ530と、その他の各種センサ550とを含む。作業ステーション500内または作業ステーション500周辺には、リモートI/Oユニット63,64が設置される。
リモートI/Oユニット63は、人感センサ530とPLC151との間のデータのやり取りを仲介する。人感センサ530は、作業ステーション500にいる作業者の動作状態を検出する。図2の例では、人感センサ530は、画像処理装置532と、カメラ534とで構成される。人感センサ530による作業者の動作状態を検出する方法の詳細については後述する。画像処理装置532は、検出した動作状態をリモートI/Oユニット63を介してPLC151に一定周期ごとに送る。
なお、図2には、人感センサ530が画像処理装置532とカメラ534とで構成される例が示されているが、人感センサ530は、図2の例に限定されず、作業者の動作状態を検出することが可能な任意の人感センサで代用され得る。一例として、人感センサ530は、作業ステーション500の床下の各箇所に配置されるロードセルであってもよい。ロードセルは、作業ステーション500の床に与えられる力を検出する。ロードセルの検出値が所定値を超えた場合、当該ロードセルの上に作業者がいることを意味する。各箇所のロードセルの検出結果が総合的に分析されることで、作業者の動作状態が検出され得る。
リモートI/Oユニット64は、各種センサ550とPLC151との間のデータのやり取りを仲介する。各種センサ550は、工作機械10の状態を検出するための任意のセンサである。各種センサ550は、たとえば、後述の開閉センサ541(図5および図6参照)や、後述のクランプセンサ543(図5および図6参照)や、後述のエリアセンサ545(図5参照)などを含む。各種センサ550の検出値は、リモートI/Oユニット64介してPLC151に一定周期ごとに送られる。
<C.行動判別機能>
工作機械の稼働状況を正確に分析するためには、作業者が各作業工程で要した作業時間を収集する必要がある。そのためには、作業者が作業ステーション500で行った行動種別をより細かく判別する必要がある。本実施の形態に従う工作機械10は、工作機械10の状態を示す状態値(以下、「工作機械状態値」ともいう。)を取得し、当該工作機械状態値と、上述の人感センサ530の出力値とに基づいて、作業ステーション500に存在する作業者の行動種別を判別する。
ここでいう「工作機械状態値」とは、稼働中の工作機械10がどのような状態にあるかを特定するための任意の指標である。典型的には、工作機械状態値は、工作機械10に対する作業者の作業状況や操作指示に応じて変化する物理量、またはプログラム内に規定される各種の変数値(たとえば、加工中/非加工中を示す変数値)である。工作機械状態値の詳細については後述する。
工作機械10は、人感センサ530による作業者の検出結果と工作機械状態値との2つの情報を用いた場合には、1つの情報を用いた場合よりも、当該作業者の行動種別をより細かく分類することができる。このような行動種別の分類結果は、たとえば、作業者が各作業工程に要した作業時間を分析するために用いられる。設計者や管理者は、より細かく分類された作業工程別の作業時間を把握することで工作機械の稼働状況を正確に分析することができ、工作機械の設計思想やワークの生産工程を見直すことができる。
図3は、行動判別機能を実現するための機能構成の一例を示す図である。制御装置50は、機能構成として、取得部152と、行動判別部154とを含む。これらの機能構成は、たとえば、制御装置50を構成するコントロールシステム100またはPLC151に実装される。ある局面において、取得部152および行動判別部154の一方の機能がコントロールシステム100に実装され、他方の機能がPLC151に実装される。他の局面において、取得部152および行動判別部154の両方がコントロールシステム100に実装される。他の局面において、取得部152および行動判別部154の両方がPLC151に実装される。
画像処理装置532は、機能構成として、人物検出部552と、動作解析部554とを含む。なお、人物検出部552および動作解析部554は、画像処理装置532ではなく、制御装置50に実装されてもよい。
以下では、取得部152の機能、人物検出部552の機能、動作解析部554の機能、および、行動判別部154の機能について順に説明する。
(C1.取得部152)
まず、取得部152の機能について説明する。取得部152は、上述の各種センサ550(図2参照)から、工作機械10の状態を示す状態値(すなわち、工作機械状態値)を取得する。取得部152は、1種類の工作機械状態値を取得するように構成されてもよいし、複数種類の工作機械状態値を取得するように構成されてもよい。取得された工作機械状態値は、行動判別部154に出力される。
以下では、取得部152によって取得される工作機械状態値の具体例1~4について順に説明する。
(a)工作機械状態値の具体例1
まず、図4を参照して、工作機械状態値の具体例1について説明する。図4は、工作機械10を構成する加工機400と、作業者U1とを示す図である。
図4に示されるように、加工機400には、操作盤430(操作部)が設けられている。操作盤430は、加工機400に対する種々の操作を受け付ける。図4の例では、操作盤430は、作業者U1によって操作されている。
取得部152は、作業者U1による操作盤430の操作状態を工作機械状態値として取得する。典型的には、取得部152は、操作盤430に入力された操作内容を操作盤430から取得し、操作盤430が操作中であるか非操作中であるかを判断する。一例として、取得部152は、操作盤430に対する操作入力が一定時間以上ない場合に非操作中であると判断し、そうでない場合には操作中であると判断する。これにより、取得部152は、操作中または非操作中を示す操作状態を工作機械状態値として取得する。
(b)工作機械状態値の具体例2
次に、図5および図6を参照して、工作機械状態値の具体例2について説明する。図5は、作業ステーション500内の様子を上から表わした図である。図6は、作業ステーション500内の様子を正面から表わした図である。
図5および図6に示されるように、搬送装置300によって作業ステーション500に搬送されたワークの設置場所と、作業者U2が段取り作業を行う作業エリアとの間を区切るように、ドアDRが設けられる。段取り作業とは、加工対象のワークをパレットに取り付ける作業や、加工済みのワークをパレットから取り外す作業などを意味する。
取得部152は、ドアDRの開閉状態を工作機械状態値として取得する。より具体的には、作業者U2は、空のパレットPLが作業ステーション500に搬入されたことに基づいてドアDRを開け、ワークWの取り付け作業を開始する。ワークWの取り付け作業が完了すると、作業者U2は、ドアDRを閉め、作業完了ボタンBTを押下する。作業完了ボタンBTが押下されたことに基づいて、パレットPLは、作業ステーション500から搬出される。このように、作業者U2は、ワークWの取り付け作業中にはドアDRを開け、ワークWの取り付け作業が完了したことに基づいてドアDRを閉める。
また、作業者U2は、加工済みのワークを搭載するパレットPLが作業ステーション500に搬入されたことに基づいてドアDRを開け、ワークWの取り外し作業を開始する。ワークWの取り外し作業が完了すると、作業者U2は、ドアDRを閉め、作業完了ボタンBTを押下する。作業完了ボタンBTが押下されたことに基づいて、空のパレットPLは、作業ステーション500から搬出される。このように、作業者U2は、ワークWの取り外し作業中にはドアDRを開け、ワークWの取り外し作業が完了したことに基づいてドアDRを閉める。
このように、ドアDRの開閉状態は、工作機械10がどのような状態にあるかを特定するための指標(すなわち、工作機械状態値)になり得る。
ドアDRの開閉状態を検出するために、開閉センサ541がドアDRに設けられる。開閉センサ541は、上述の各種センサ550(図2参照)の一例である。開閉センサ541は、無線通信機能を有する。ドアDRが開かれている場合には、開閉センサ541は、開状態を示す信号を上述のリモートI/Oユニット64(図2参照)に出力する。一方で、ドアDRが閉じられている場合には、開閉センサ541は、開状態を示す信号を上述のリモートI/Oユニット64に出力する。リモートI/Oユニット64は、開閉センサ541から受けた開閉状態を上述のネットワークNW2(図2参照)を介して制御装置50に一定周期ごとに送信する。これにより、制御装置50の取得部152は、ドアDRの開閉状態を取得する。
(c)工作機械状態値の具体例3
引き続き図5および図6を参照して、工作機械状態値の具体例3について説明する。取得部152は、パレットPTに取り付けられている治具APに対してワークWが固定されている強度を示す物理量を工作機械状態値として取得する。当該物理量は、たとえば、クランプセンサ543によって検出される。クランプセンサ543は、上述の各種センサ550(図2参照)の一例である。
作業者U2は、固定具FA~FDを用いて治具APにワークWを固定する。クランプセンサ543は、たとえば、固定具FAのクランプ強度を検出する。このとき、ワークWが治具APに取り付けられる前においては、クランプセンサ543によって検出されるクランプ強度が略ゼロとなる。そして、治具APに対するワークWの取り付け作業が進むにつれて、クランプセンサ543によって検出されるクランプ強度が大きくなる。一方で、ワークWの取り外し作業においては、当該取り外し作業が進むにつれて、クランプセンサ543によって検出されるクランプ強度が小さくなる。
このように、クランプ強度は、段取り作業の進行度合いに応じて変化するため、工作機械10がどのような状態にあるかを特定するための指標(すなわち、工作機械状態値)になり得る。
クランプセンサ543は、無線通信機能を有し、検出したクランプ強度を上述のリモートI/Oユニット64(図2参照)に一定周期ごとに送信する。リモートI/Oユニット64は、クランプセンサ543から受けたクランプ強度を上述のネットワークNW2(図2参照)を介して制御装置50に一定周期ごとに送信する。これにより、制御装置50の取得部152は、クランプセンサ543からクランプ強度を取得する。
なお、図5および図6の例では、1つのクランプセンサ543が示されているが、複数のクランプセンサ543が設けられてもよい。この場合、複数のクランプセンサ543のそれぞれは、固定具FA~FDのそれぞれに対して設けられる。
(d)工作機械状態値の具体例4
引き続き図5および図6を参照して、工作機械状態値の具体例4について説明する。取得部152は、エリアセンサ545の出力値を工作機械状態値として取得する。エリアセンサ545は、上述の各種センサ550(図2参照)の一例である。
エリアセンサ545は、投光ユニット545Aと、受光ユニット545Bとを含む。投光ユニット545Aは、受光ユニット545Bに向けて光を発する。受光ユニット545Bは、投光ユニット545Aから発せられる光を受け、当該光の強度を出力する。投光ユニット545Aおよび受光ユニット545Bは、投光ユニット545Aから発される光が作業中の作業者U2によって遮られるように配置される。異なる言い方をすれば、投光ユニット545Aおよび受光ユニット545Bは、投光ユニット545Aから発せられる光が作業ステーション500内におけるワークの搬送場所と作業者U2の作業エリアとの間を通過するように配置される。
段取り作業中においては、作業者U2は、パレットPLの近くにいるため、投光ユニット545Aから発せられる光が作業者U2によって遮られる。段取り作業が完了すると、作業者U2は、作業エリアから離れる。そのため、段取り作業完了後においては、投光ユニット545Aから発せられる光は、作業者U2によって遮られない。受光ユニット545Bが投光ユニット545Aから受ける光の強度は、ワークWの取り付け作業の進行度合いに応じて変化するため、工作機械10がどのような状態にあるかを特定するための指標(すなわち、工作機械状態値)になり得る。
受光ユニット545Bは、投光ユニット545Aからの光が遮断状態であるか否かを上述のリモートI/Oユニット64(図2参照)に出力する。リモートI/Oユニット64は、投光ユニット545Aからの光が遮断状態であるか否かを上述のネットワークNW2(図2参照)を介して制御装置50に一定周期ごとに送信する。
(C2.人物検出部552)
次に、図7を参照して、図3に示される人物検出部552の機能について説明する。図7は、作業ステーション500内の様子を斜めから表わした図である。
図7の例では、パレットPLに治具APが取り付けられている。治具APは、たとえば、イケールである。加工対象のワークWは、作業者U2によって治具APに取り付けられる。
図7に示されるように、作業ステーション500内には、カメラ534が設けられる。カメラ534は、作業ステーション500内の作業エリアを撮影するように設置され、作業ステーション500内で段取り作業を行っている作業者U2を撮影する。カメラ534は、作業ステーション500内において、1台だけ配置されてもよいし、複数台配置されてもよい。カメラ534は、作業エリアを撮影して得られた画像を定期的に画像処理装置532の人物検出部552に送る。
人物検出部552は、カメラ534から得られた画像から作業者を検出する。作業者を検出するための画像処理アルゴリズムには、任意の画像処理プログラムが採用される。
ある局面において、画像処理装置532は、作業者が写っていない背景画像を予め取得しておく。画像処理装置532は、背景画像と同じ視点から作業エリアを撮影して得られた入力画像を取得すると、入力画像から背景画像を差分する。これにより、画像処理装置532は、入力画像から背景を除いた背景差分画像を得ることができる。画像処理装置532は、背景差分画像から所定値以上の画素値を有する領域を抽出し、当該領域を人物領域として検出する。
他の局面において、人物検出部552は、学習済みモデルを用いて画像から作業者を検出する。学習済みモデルは、学習用データセットを用いた学習処理により予め生成されている。学習用データセットは、人物が写っている複数の学習用画像を含む。各学習用画像には、人物が写っているか否かを示すラベルが関連付けられる。学習済みモデルの内部パラメータは、このような学習用データセットを用いた学習処理により予め最適化されている。
学習済みモデルを生成するための学習手法には、種々の機械学習アルゴリズムが採用され得る。一例として、当該機械学習アルゴリズムとして、ディープラーニング、コンボリューションニューラルネットワーク(CNN)、全層畳み込みニューラルネットワーク(FCN)、サポートベクターマシンなどが採用される。
好ましくは、人物検出部552は、カメラ534から得られた画像から、作業者の手や腕などの各部位の座標を検出する。作業者の各部位の検出には、上述の機械学習アルゴリズムが採用される。
以上のような人物検出処理がカメラ534から得られる画像に対して順次実行される。人物検出部552は、人物の検出結果を動作解析部554に順次出力する。
(C3.動作解析部554)
次に、図3に示される動作解析部554の機能について説明する。動作解析部554は、人物検出部552から出力される人物検出結果を順次受けて、作業者の動作状態を解析する。
人物検出部552による人物検出結果は、たとえば、画像内における作業者の座標値で表わされる。好ましくは、当該座標値は、作業者の顔、腕、または手の位置を表わす。動作解析部554は、人物検出部552から順次得られる座標値に基づいて、作業者の動作量と相関のある指標を算出する。当該指標の一例として、動作解析部554は、所定時間内に得られる座標値の分散値(すなわち、移動分散)を順次算出する。
動作解析部554は、算出した移動分散が所定の第1閾値よりも大きい場合に、作業者が動作中であると判別する。動作中とは、作業ステーション500において作業者が何らかの作業を行っている状態を意味する。
また、動作解析部554は、算出した移動分散が所定の第2閾値(≦第1閾値)よりも小さい場合、作業者が行動停止中であると判別する。行動停止中とは、作業者が動作していない状態を意味する。
また、人物検出部552によって人物が検出されなかった場合には、動作解析部554は、作業者の動作解析結果として、人物未検出を出力する。
以上のように、動作解析部554は、作業ステーション500にいる作業者の動作解析結果として、動作中、行動停止中、または人物未検出を出力する。動作解析部554による動作解析結果は、行動判別部154に出力される。
なお、動作解析部554が解析可能な動作状態は、動作中、行動停止中、および人物未検出の3種類に限定されない。一例として、動作解析部554は、作業者の動作量に応じて「動作中」をさらに詳細に区分してもよい。たとえば、「動作中」は、作業者の動作量に応じて「動作中(動作量多)」と「動作中(動作量少)」とに分類されてもよい。
(C4.行動判別部154)
次に、図7~図12を参照して、図3に示される行動判別部154の機能について説明する。図7は、作業ステーション500内の様子を斜めから表わした図である。
行動判別部154は、取得部152によって取得された工作機械状態値と、人感センサ530による作業者の動作状態とに基づいて、作業ステーション500にいる作業者の行動種別を判別する。その際、作業者の行動種別は、工作機械状態値および動作状態の組み合わせごとに行動種別を関連付けている行動種別定義124に基づいて判別される。
行動判別部154が判別可能な行動種別は、たとえば、「段取り作業中」と、「清掃作業中」と、「行動不能状態」と、「非作業状態」を含む。「段取り作業中」とは、加工対象のワークをパレットに取り付ける作業、または、加工済みのワークをパレットから取り外す作業などを作業者が行っていることを意味する。「清掃作業中」とは、作業者が作業エリアの清掃作業を行っていることを意味する。「行動不能状態」とは、作業者が何らかの理由で身動きが取れない状態にあることを意味する。「非作業状態」とは、作業者が作業ステーション500にいない状態であることを意味する。
作業者の行動種別が「行動不能状態」と判別された場合には、工作機械10は、音声や警告音などで警報を出力し、作業者が「行動不能状態」であることを周囲に報知する。
以下では、行動種別定義124に基づく行動種別の判別手法1~5ついて順に説明する。
(a)行動種別の判別手法1
まず、図8を参照して、行動判別部154による行動種別の判別手法1について説明する。図8は、行動種別の判別手法1で用いられる行動種別定義124を示す図である。
図8に示されるように、本例では、操作盤430の操作状態と、人感センサ530による動作解析結果との組み合わせで、作業者の行動種別が判別される。上述の「(a)工作機械状態値の具体例1」で説明したように、操作盤430の操作状態は、工作機械状態値の一例であり、「操作中」または「非操作中」で表わされる。
行動判別部154は、操作盤430の操作状態が「操作中」を示し、かつ、動作解析結果が「動作中」を示す場合、作業者の行動種別が「段取り作業中」であると判別する。
図7に示される作業者U2が作業ステーション500内で何らかの動作を行っており、かつ、図4に示される作業者U1が作業ステーション500外で加工機400の操作盤430を操作している場合には、作業者U2は、段取り作業を行っている可能性が高い。このように、人感センサ530の動作解析結果と操作盤430の操作状態との両方が考慮されることで、段取り作業を確実に検出することが可能になる。
また、行動判別部154は、操作盤430の操作状態が「非操作中」を示し、かつ、動作解析結果が「動作中」を示す場合、作業者の行動種別を「清掃作業中」または「段取り作業中」と判別する。「清掃作業中」または「段取り作業中」は、たとえば、作業者の動作量に応じて区別される。一例として、行動判別部154は、操作状態が「操作中」を示し、かつ、動作解析結果が「動作中(動作量多)」を示す場合、作業者の行動種別を「清掃作業中」と判別する。また、行動判別部154は、操作状態が「操作中」を示し、かつ、動作解析結果が「動作中(動作量少)」を示す場合、作業者の行動種別が「段取り作業中」であると判別する。
また、行動判別部154は、操作盤430の操作状態が「非操作中」を示し、かつ、動作解析結果が「非動作中」を示す場合、作業者の行動種別を「行動不能状態」と判別する。より具体的には、行動判別部154は、操作状態としての工作機械状態値が所定時間内に所定値以上変化せず、かつ、人感センサ530による出力値が所定時間内に所定値以上変化しない場合に、行動種別が「行動不能状態」であると判別する。
また、行動判別部154は、動作解析結果が「人物未検出」を示す場合、作業者の行動種別が「非作業状態」であると判別する。
(b)行動種別の判別手法2
次に、図9を参照して、行動判別部154による行動種別の判別手法2について説明する。図9は、行動種別の判別手法2で用いられる行動種別定義124を示す図である。
図9に示されるように、本例では、上述の開閉センサ541によって検出され得るドアDRの開閉状態と、人感センサ530による動作解析結果との組み合わせで、作業者の行動種別が判別される。上述の「(b)工作機械状態値の具体例2」で説明したように、ドアDRの開閉状態は、工作機械状態値の一例であり、「開状態」または「閉状態」で表わされる。
行動判別部154は、開閉状態が「開状態」を示し、かつ、動作解析結果が「動作中」を示す場合、作業者の行動種別が「段取り作業中」であると判別する。
また、行動判別部154は、開閉状態が「閉状態」を示し、かつ、動作解析結果が「動作中」を示す場合、作業者の行動種別を「清掃作業中」と判別する。
また、行動判別部154は、開閉状態が「閉状態」を示し、かつ、動作解析結果が「非動作中」を示す場合、作業者の行動種別を「行動不能状態」と判別する。より具体的には、行動判別部154は、開閉状態が所定時間内に変化せず、かつ、人感センサ530による出力値が所定時間内に所定値以上変化しない場合に、行動種別が「行動不能状態」であると判別する。
また、行動判別部154は、動作解析結果が「人物未検出」を示す場合、作業者の行動種別が「非作業状態」であると判別する。
(c)行動種別の判別手法3
次に、図10を参照して、行動判別部154による行動種別の判別手法3について説明する。図10は、行動種別の判別手法3で用いられる行動種別定義124を示す図である。
図10に示されるように、本例では、上述のクランプセンサ543によって検出されるクランプ強度の状態と、人感センサ530による動作解析結果との組み合わせで、作業者の行動種別が判別される。クランプ強度は、工作機械状態値の一例である。上述の「(c)工作機械状態値の具体例3」で説明したように、治具に対するワークの取り付け作業が進むにつれて、クランプセンサ543によって検出されるクランプ強度が大きくなる。一方で、ワークの取り外し作業においては、当該取り外し作業が進むにつれて、クランプセンサ543によって検出されるクランプ強度が小さくなる。
この点に着目して、行動判別部154は、クランプ強度が増加しており、かつ、動作解析結果が「動作中」を示す場合、作業者の行動種別が「段取り作業中(取り付け作業中)」であると判別する。一方で、クランプ強度が減少しており、かつ、動作解析結果が「動作中」を示す場合、作業者の行動種別が「段取り作業中(取り外し作業中)」であると判別する。
クランプ強度が増加しているか否かは、たとえば、クランプ強度の変化量に基づいて判断される。より具体的には、行動判別部154は、クランプ強度の移動平均値が前回の値よりも大きい場合、クランプ強度が増加していると判断する。一方で、行動判別部154は、クランプ強度の移動平均値が前回の値よりも小さい場合、クランプ強度が減少していると判断する。
また、行動判別部154は、クランプ強度が未検出であり、かつ、動作解析結果が「動作中」を示す場合、作業者の行動種別が「清掃作業中」であると判別する。あるいは、行動判別部154は、クランプ強度が所定値未満で、かつ、動作解析結果が「動作中」を示す場合、作業者の行動種別が「清掃作業中」であると判別する。
また、行動判別部154は、クランプ強度が変化せず、かつ、動作解析結果が「非動作中」を示す場合、作業者の行動種別を「行動不能状態」と判別する。より具体的には、行動判別部154は、クランプ強度が所定時間内に所定値以上変化せず、かつ、人感センサ530による出力値が所定時間内に所定値以上変化しない場合に、行動種別が「行動不能状態」であると判別する。
また、行動判別部154は、動作解析結果が「人物未検出」を示す場合、作業者の行動種別が「非作業状態」であると判別する。
(d)行動種別の判別手法4
次に、図11を参照して、行動判別部154による行動種別の判別手法4について説明する。図11は、行動種別の判別手法4で用いられる行動種別定義124を示す図である。
図11に示されるように、本例では、上述のエリアセンサ545の出力値と、人感センサ530による動作解析結果との組み合わせで、作業者の行動種別が判別される。上述の「(d)工作機械状態値の具体例4」で説明したように、エリアセンサ545の出力値は、工作機械状態値の一例であり、「遮断状態」または「非遮断状態」で表わされる。
行動判別部154は、エリアセンサ545の出力値が「遮断状態」を示し、かつ、動作解析結果が「動作中」を示す場合、作業者の行動種別が「段取り作業中」であると判別する。
また、行動判別部154は、エリアセンサ545の出力値が「非遮断状態」を示し、かつ、動作解析結果が「動作中」を示す場合、作業者の行動種別を「清掃作業中」と判別する。
また、行動判別部154は、エリアセンサ545の出力値が「非遮断状態」を示し、かつ、動作解析結果が「非動作中」を示す場合、作業者の行動種別を「行動不能状態」と判別する。より具体的には、行動判別部154は、操作状態としての工作機械状態値が所定時間内に変化せず、かつ、人感センサ530による出力値が所定時間内に所定値以上変化しない場合に、行動種別が「行動不能状態」であると判別する。
また、行動判別部154は、動作解析結果が「人物未検出」を示す場合、作業者の行動種別が「非作業状態」であると判別する。
(e)行動種別の判別手法5
上述では、行動判別部154は、1種類の工作機械状態値と、人感センサ530の出力値との組み合わせに基づいて、作業ステーション500にいる作業者の行動種別を判別していたが、行動種別の判別方法は、これに限定されない。たとえば、行動判別部154は、2種類以上の工作機械状態値と、人感センサ530の出力値との組み合わせに基づいて、作業ステーション500にいる作業者の行動種別を判別してもよい。
(C5.作業履歴126)
以下では、図12を参照して、図3に示される作業履歴126について説明する。図12は、作業履歴126のデータ構造の一例を示す図である。
行動判別部154による行動種別の判別結果は、作業履歴126に書き込まれる。作業履歴126は、工作機械10内の記憶装置に格納されてもよいし、外部機器(たとえば、サーバーや外部ハードディスクなど)に格納されてもよい。
図12に示されるように、作業履歴126には、作業者の識別情報(たとえば、作業者ID(Identification))と、行動種別の検出時間と、検出された行動種別とが関連付けられる。
設計者や管理者は、作業履歴126を分析することで工作機械の稼働状況を正確に把握することができ、工作機械の設計思想やワークの生産工程を見直すことができる。
<D.データの共有方法>
図13を参照して、工作機械10を構成する各種機器間でのデータの共有方法について説明する。図13は、工作機械10を構成する各種機器の協働関係を概略的に示す図である。
上述のように、コントロールシステム100およびPLC151は、EtherNETなどのネットワークNW1に接続される。リモートI/Oユニット61~64およびPLC151は、フィールドネットワークであるネットワークNW2に接続される。
ネットワークNW2には、フレーム72が伝送される。フレーム72は、ネットワークNW2上を予め定められた制御周期ごとに周回する。リモートI/Oユニット61~64およびPLC151は、フレーム72を介して各種データを共有する。
フレーム72は、たとえば、PLC151用のデータ領域71Aと、リモートI/Oユニット61に接続される搬送装置300用のデータ領域71Bと、リモートI/Oユニット62に接続される加工機400用のデータ領域71Cと、リモートI/Oユニット63に接続される人感センサ530用のデータ領域71Dと、リモートI/Oユニット64に接続される各種センサ550用のデータ領域71Eとを有する。
フレーム72のデータ領域71Aは、PLC151が各種データを書き込む領域である。データ領域71Aには、パレットPLの搬送指示などが書き込まれる。当該搬送指示には、パレットPLの搬送先が含まれる。当該搬送先は、たとえば、収納部200内の格納場所を示す識別番号(たとえば、格納場所を示すID(Identification))や、加工機400を識別するための識別番号(たとえば、工作機械のID)などで表わされる。PLC151によってデータ領域71Aに書き込まれた各種データは、ネットワークNW2に接続される各種機器に参照され得る。
フレーム72のデータ領域71Bは、リモートI/Oユニット61が搬送装置300に関する各種データを書き込む領域である。データ領域71Bに書き込まれた各種データは、ネットワークNW2に接続される各種機器に参照される。
フレーム72のデータ領域71Cは、リモートI/Oユニット62が加工機400に関する各種データを書き込む領域である。データ領域71Cに書き込まれた各種データは、ネットワークNW2に接続される各種機器に参照される。
フレーム72のデータ領域71Dは、リモートI/Oユニット63が人感センサ530の出力値を書き込む領域である。一例として、フレーム72のデータ領域71Dには、人感センサ530によって検出された上述の動作解析結果が書き込まれる。データ領域71Dに書き込まれた各種データは、ネットワークNW2に接続される各種機器に参照される。上述の行動判別部154(図3参照)は、フレーム72のデータ領域71Dを参照することで人感センサ530による動作解析結果を取得する。
フレーム72のデータ領域71Eは、リモートI/Oユニット64が各種センサ550の出力値を書き込む領域である。一例として、フレーム72のデータ領域71Eには、上述の工作機械状態値が書き込まれる。データ領域71Eに書き込まれた各種データは、ネットワークNW2に接続される各種機器に参照される。上述の取得部152(図3参照)は、フレーム72のデータ領域71Eを参照することで各種の工作機械状態値を取得する。
<E.コントロールシステム100のハードウェア構成>
図14を参照して、コントロールシステム100のハードウェア構成について説明する。図14は、コントロールシステム100のハードウェア構成の一例を示す模式図である。
コントロールシステム100は、プロセッサ101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、通信インターフェイス104と、表示インターフェイス105と、入力インターフェイス107と、記憶装置120とを含む。これらのコンポーネントは、バス110に接続される。
プロセッサ101は、たとえば、少なくとも1つの集積回路によって構成される。集積回路は、たとえば、少なくとも1つのCPU(Central Processing Unit)、少なくとも1つのGPU(Graphics Processing Unit)、少なくとも1つのASIC(Application Specific Integrated Circuit)、少なくとも1つのFPGA(Field Programmable Gate Array)、またはそれらの組み合わせなどによって構成され得る。
プロセッサ101は、行動判別プログラム122やオペレーティングシステムなどの各種プログラムを実行することでコントロールシステム100の動作を制御する。プロセッサ101は、行動判別プログラム122の実行命令を受け付けたことに基づいて、記憶装置120またはROM102からRAM103に行動判別プログラム122を読み出す。RAM103は、ワーキングメモリとして機能し、行動判別プログラム122の実行に必要な各種データを一時的に格納する。
通信インターフェイス104には、LAN(Local Area Network)やアンテナなどが接続される。コントロールシステム100は、通信インターフェイス104を介してネットワークNW1に接続される。これにより、コントロールシステム100は、ネットワークNW1に接続される外部機器とデータをやり取りする。当該外部機器は、たとえば、制御盤150やサーバー(図示しない)などを含む。コントロールシステム100は、当該外部機器から行動判別プログラム122をダウンロードできるように構成されてもよい。
表示インターフェイス105には、ディスプレイ106が接続される。表示インターフェイス105は、プロセッサ101などからの指令に従って、ディスプレイ106に対して、画像を表示するための画像信号を送出する。ディスプレイ106は、たとえば、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、またはその他の表示機器である。なお、ディスプレイ106は、コントロールシステム100と一体的に構成されてもよいし、コントロールシステム100とは別に構成されてもよい。
入力インターフェイス107には、入力デバイス108が接続される。入力デバイス108は、たとえば、マウス、キーボード、タッチパネル、またはユーザの操作を受け付けることが可能なその他の装置である。なお、入力デバイス108は、コントロールシステム100と一体的に構成されてもよいし、コントロールシステム100とは別に構成されてもよい。
記憶装置120は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。記憶装置120は、行動判別プログラム122や、上述の行動種別定義124や、上述の作業履歴126などを格納する。これらの格納場所は、記憶装置120に限定されず、プロセッサ101の記憶領域(たとえば、キャッシュメモリなど)、ROM102、RAM103、外部機器(たとえば、サーバー)などに格納されていてもよい。
行動判別プログラム122は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、行動判別プログラム122による行動判別処理は、任意のプログラムと協働して実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う行動判別プログラム122の趣旨を逸脱するものではない。さらに、行動判別プログラム122によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、少なくとも1つのサーバーが行動判別プログラム122の処理の一部を実行する所謂クラウドサービスのような形態でコントロールシステム100が構成されてもよい。
<F.PLC151のハードウェア構成>
図15を参照して、PLC151のハードウェア構成の一例について説明する。図15は、PLC151の主要なハードウェア構成を示すブロック図である。
PLC151は、プロセッサ161と、ROM(Read Only Memory)162と、RAM(Random Access Memory)163と、通信インターフェイス164,165と、記憶装置170とを含む。
プロセッサ161は、少なくとも1つの集積回路によって構成される。集積回路は、たとえば、少なくとも1つのCPU、少なくとも1つのMPU(Micro Processing Unit)、少なくとも1つのASIC、少なくとも1つのFPGAまたはそれらの組み合わせなどによって構成される。
プロセッサ161は、制御プログラム172など各種プログラムを実行することで搬送装置300や加工機400の動作を制御する。プロセッサ161は、制御プログラム172の実行命令を受け付けたことに基づいて、記憶装置170からROM162に制御プログラム172を読み出す。RAM163は、ワーキングメモリとして機能し、制御プログラム172の実行に必要な各種データを一時的に格納する。
通信インターフェイス164には、LANやアンテナなどが接続される。PLC151は、通信インターフェイス164を介してネットワークNW1に接続される。これにより、PLC151は、ネットワークNW1に接続される外部機器とデータをやり取りする。当該外部機器は、たとえば、コントロールシステム100やサーバー(図示しない)などを含む。
通信インターフェイス165は、フィールドネットワークであるネットワークNW2に接続するためのインターフェイスである。PLC151は、通信インターフェイス165を介してネットワークNW2に接続される各種機器とデータをやり取りする。
記憶装置170は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。記憶装置170は、制御プログラム172などを格納する。制御プログラム172の格納場所は、記憶装置170に限定されず、プロセッサ161の記憶領域(たとえば、キャッシュ領域など)、ROM162、RAM163、外部機器(たとえば、サーバー)などに格納されていてもよい。
<G.加工機400のハードウェア構成>
図16を参照して、加工機400のハードウェア構成の一例について説明する。図16は、加工機400の主要なハードウェア構成を示すブロック図である。
加工機400は、CNC401と、ROM402と、RAM403と、フィールドバスコントローラ404と、サーボドライバ411A~411Dと、サーボモータ412A~412Dと、エンコーダ413A~413Dと、ボールねじ414A,414Bと、工具を取り付けるための主軸415と、操作盤430とを含む。これらの機器は、バス(図示しない)を介して接続されている。
CNC401は、少なくとも1つの集積回路によって構成される。集積回路は、たとえば、少なくとも1つのCPU、少なくとも1つのMPU、少なくとも1つのASIC、少なくとも1つのFPGA、またはそれらの組み合わせなどによって構成される。
CNC401は、加工プログラム422など各種プログラムを実行することでCNC400の動作を制御する。CNC401は、加工プログラム422の実行命令を受け付けたことに基づいて、記憶装置420からROM402に加工プログラム422を読み出す。RAM403は、ワーキングメモリとして機能し、加工プログラム422の実行に必要な各種データを一時的に格納する。
フィールドバスコントローラ404は、リモートI/Oユニット62を介してPLC151との通信を実現するためのインターフェイスである。CNC400は、フィールドバスコントローラ404を介してPLC151との間でデータをやり取りする。
操作盤430は、加工機400に対する各種の操作を受け付ける。また、操作盤430は、ディスプレイ(図示しない)を備え、各種の情報を表示する。当該ディスプレイは、は、たとえば、液晶ディスプレイ、有機ELディスプレイ、またはその他の表示機器である。
CNC400は、加工プログラム422に従ってサーボドライバ411Aを制御する。サーボドライバ411Aは、CNC401から目標回転数(または目標位置)の入力を逐次的に受け、サーボモータ412Aが目標回転数で回転するようにサーボモータ412Aを制御し、ワーク設置台(図示しない)をX軸方向に駆動する。より具体的には、サーボドライバ411Aは、エンコーダ413Aのフィードバック信号からサーボモータ412Aの実回転数(または実位置)を算出し、当該実回転数が目標回転数よりも小さい場合にはサーボモータ412Aの回転数を上げ、当該実回転数が目標回転数よりも大きい場合にはサーボモータ412Aの回転数を下げる。このように、サーボドライバ411Aは、サーボモータ412Aの回転数のフィードバックを逐次的に受けながらサーボモータ412Aの回転数を目標回転数に近付ける。サーボドライバ411Aは、ボールねじ414Aに接続されるワーク設置台をX軸方向に移動し、ワーク設置台をX軸方向の任意の位置に移動する。
同様のモータ制御により、サーボドライバ411Bは、ボールねじ414Bに接続されるワーク設置台をCNC400からの制御指令に従ってY軸方向に移動し、ワーク設置台をY軸方向の任意の位置に移動する。同様のモータ制御を行うことにより、サーボドライバ411Cは、CNC400からの制御指令に従って主軸415をZ軸方向に移動し、主軸415をZ軸方向の任意の位置に移動する。同様のモータ制御を行うことにより、サーボドライバ411Dは、CNC400からの制御指令に従って、主軸415の回転速度を制御する。
記憶装置420は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。記憶装置420は、加工プログラム422などを格納する。加工プログラム422の格納場所は、記憶装置420に限定されず、CNC401の記憶領域(たとえば、キャッシュ領域など)、ROM402、RAM403、外部機器(たとえば、サーバー)などに格納されていてもよい。
<H.画像処理装置532のハードウェア構成>
図17を参照して、画像処理装置532のハードウェア構成について順に説明する。図17は、画像処理装置532のハードウェア構成の一例を示す図である。
画像処理装置532は、プロセッサ501と、ROM502と、RAM503と、通信インターフェイス504,505と、カメラインターフェイス506と、記憶装置520とを含む。これらのコンポーネントは、バス510に接続される。
プロセッサ501は、たとえば、少なくとも1つの集積回路によって構成される。集積回路は、たとえば、少なくとも1つのCPU、少なくとも1つのGPU、少なくとも1つのASIC、少なくとも1つのFPGA、またはそれらの組み合わせなどによって構成され得る。
プロセッサ501は、人物検出機能を有する画像処理プログラム522などの各種プログラムを実行することで画像処理装置532の動作を制御する。プロセッサ501は、各種プログラムの実行命令を受け付けたことに基づいて、記憶装置520またはROM502からRAM503に実行対象のプログラムを読み出す。RAM503は、ワーキングメモリとして機能し、プログラムの実行に必要な各種データを一時的に格納する。
通信インターフェイス504には、LANやアンテナなどが接続される。画像処理装置532は、通信インターフェイス504を介して、サーバーなどの外部機器との間でデータをやり取りする。
通信インターフェイス505は、フィールドネットワークであるネットワークNW2に接続するためのインターフェイスである。画像処理装置532は、通信インターフェイス505を介してネットワークNW2に接続される各種機器とデータをやり取りする。
カメラインターフェイス506は、カメラ534と画像処理装置532とを有線または無線で接続するためのインターフェイスである。カメラ534は、CCD(Charge Coupled Device)カメラであってもよいし、赤外線カメラ(サーモグラフィ)であってもよいし、その他の種類のカメラであってもよい。カメラ534は、作業ステーション500内の作業エリアを撮影するように設置され、作業ステーション500内で段取り作業を行っている作業者を撮影する。
記憶装置520は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。記憶装置520は、たとえば、画像処理プログラム522などを格納する。画像処理プログラム522の格納場所は、記憶装置520に限定されず、プロセッサ501の記憶領域(たとえば、キャッシュメモリなど)、ROM502、RAM503、外部機器(たとえば、サーバー)などに格納されていてもよい。
<I.制御フロー>
図18を参照して、制御装置50の制御フローについて説明する。図18は、制御装置50が実行する処理の一部を表わすフローチャートである。
ステップS110において、制御装置50は、行動判別プログラム122の実行命令を受け付けたか否かを判断する。制御装置50は、行動判別プログラム122の実行命令を受け付けたと判断した場合(ステップS110においてYES)、制御をステップS112に切り替える。そうでない場合には(ステップS110においてNO)、制御装置50は、ステップS110の処理を再び実行する。
ステップS112において、制御装置50は、上述の取得部152(図3参照)として機能し、各種センサ550から工作機械状態値を取得する。工作機械状態値については上述の通りであるので、その説明については繰り返さない。
ステップS114において、制御装置50は、上述の行動判別部154(図3参照)として機能し、作業ステーション500にいる作業者の動作状態を人感センサ530から取得する。動作状態については上述の通りであるので、その説明については繰り返さない。
ステップS116において、制御装置50は、上述の行動判別部154(図3参照)として機能し、ステップS112で取得した工作機械状態値と、ステップS114で取得した作業者の動作状態との組み合わせに基づいて、当該作業者の行動種別を判別する。より具体的には、制御装置50は、工作機械状態値および動作状態の組み合わせごとに作業者の行動種別を関連付けている行動種別定義124を参照して、ステップS112で取得した工作機械状態値と、ステップS114で取得した作業者の動作状態との組み合わせに対応する行動種別を特定する。
ステップS118において、制御装置50は、ステップS116での行動種別の判別結果を、作業者の識別情報(たとえば、作業者ID)と現時刻とを対応付けた上で、上述の作業履歴126(図12参照)に書き込む。作業者の識別情報は、たとえば、作業ステーション500の端末における作業者のログイン情報から特定される。現時刻は、たとえば、外部機器などから受信される。
ステップS120において、制御装置50は、行動判別プログラム122を終了するか否かを判断する。行動判別プログラム122の終了指示は、たとえば、ユーザによる終了操作に基づいて発せられる。制御装置50は、行動判別プログラム122を終了すると判断した場合(ステップS120においてYES)、図18に示される処理を終了する。そうでない場合には(ステップS120においてNO)、制御装置50は、制御をステップS112に戻す。
<J.まとめ>
以上のようにして、工作機械10は、人感センサ530によって検出される作業者の動作状態と、工作機械状態との組み合わせで、当該作業者の行動種別を判別する。人感センサ530による作業者の動作状態と工作機械状態値との2つの情報を用いることで、1つの情報を用いた場合よりも、作業者の行動種別を詳細に分類することができる。
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。