(58)【調査した分野】(Int.Cl.,DB名)
前記生成部は、前記イベントデータが複数種類のイベントを有する場合に、少なくとも2種類の異なるイベントを1つのイベントとみなして前記第1の推論用データを生成する
ことを特徴とする請求項1,2のいずれかに記載の稼働モニタリング装置。
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載された非稼働理由を決定するための決定規則を導くには、機械の操作の順番及び操作を行ってからの経過時間と、機械の運転モードの組み合わせを探索する必要があり、その数は多岐にわたる。また、機械の使われ方を熟知した人でなければ、その組み合わせに対応した適切な非稼働理由を導くことは困難である。
【0006】
他方、特許文献2に記載された技術では、ベイジアンネットワークを用いた機械学習装置は推論を行う際に現在の機械の状態を入力とする。この機械学習装置を、機械稼働データから非稼働理由を推論するために使用することを考慮する。例えば、オペレータが、自動工具交換装置(ATC)を備えない旋盤に対して、
「(1)機内作業により工具を交換し、(2)工具補正の操作を行う」
という作業を行ったとする。(1)、(2)の作業について、
「工具段取を行っていたため、機械が稼働していなかった」
と推論を行いたい。(2)では、
「現在、工具補正に関する操作入力が行われている」
という機械の状態情報から工具段取という非稼働理由を推論可能である。一方、(1)では、
「現在、機械は停止状態であり、操作入力が行われていない」
という機械の状態情報から工具段取という非稼働理由を導くことは困難であり、
「オペレータが機械から離れていたため、機械が停止していた」
等の他の非稼働理由と区別できない問題がある。
【0007】
本発明の目的は、操作の順番や運転モード、経過時間等の多岐にわたる組み合わせに対応した非稼働理由を高精度で推論し得る技術を提供することにある。
【課題を解決するための手段】
【0008】
本発明は、機械の稼働状況をモニタリングする稼働モニタリング装置であって、前記機械の稼働データを時系列で記録する記録部と、前記稼働データから推論用データを生成する生成部と、予め学習データを用いて学習され、前記推論用データを用いて前記機械の非稼働理由を推論する推論部とを備え、前記稼働データは、前記機械で発生するイベントを表すイベントデータと、前記機械の状態を表す状態データとを含み、前記生成部は、前記イベントデータについて任意の時刻に対する過去、現在、未来の少なくとも2つの
時間帯について
、前記時間帯での前記イベント
の発生の有無を示す2値データを含む第1の推論用データと、前記状態データについて任意の時刻に対する過去、現在、未来の少なくとも2つの時刻について前記機械がどの状態であったか
を示すデータを含む第2の推論用データを生成し、前記推論部は、前記第1の推論用データと、前記第2の推論用データとに基づいて前記非稼働理由を推論することを特徴とする。
【0009】
本発明の1つの実施形態では、前記生成部は、前記イベントデータについて任意の時刻に対する過去、現在、及び未来の
時間帯について
、前記時間帯での前記イベント
の発生の有無を示す2値データを含む前記第1の推論用データと、前記状態データについて任意の時刻に対する過去、現在、及び未来の時刻について前記機械がどの状態であったか
を示すデータを含む前記第2の推論用データを生成する。
【0010】
本発明の他の実施形態では、前記生成部は、前記イベントデータが複数種類のイベントを有する場合に、少なくとも2種類の異なるイベントを1つのイベントとみなして前記第1の推論用データを生成する。
【0011】
本発明のさらに他の実施形態では、前記少なくとも2種類の異なるイベントが任意の文字列を共通して有する場合に1つのイベントとみなす。
【0012】
本発明のさらに他の実施形態では、前記生成部は、前記イベントデータの時系列について、イベント発生間隔の長短に対応したデータを第3の推論用データとしてさらに生成し、前記推論部は、前記第1の推論用データと、前記第2の推論用データと、前記第3の推論データとに基づいて前記非稼働理由を推論する。
【0013】
また、本発明は、機械の稼働状況をモニタリングするコンピュータに、前記機械の稼働データを時系列で記憶装置に記録する記録ステップと、前記稼働データから推論用データを生成する生成ステップと、予め学習データを用いて学習され、前記推論用データを用いて前記機械の非稼働理由を推論する推論ステップとを実行させるプログラムであり、前記稼働データは、前記機械で発生するイベントを表すイベントデータと、前記機械の状態を表す状態データとを含み、前記生成ステップでは、前記イベントデータについて任意の時刻に対する過去、現在、未来の少なくとも2つの
時間帯について、前記
時間帯での前記イベント
の発生の有無を示す2値データを含む第1の推論用データと、前記状態データについて任意の時刻に対する過去、現在、未来の少なくとも2つの時刻について前記機械がどの状態であったか
を示すデータを含む第2の推論用データを生成し、前記推論ステップでは、前記第1の推論用データと、前記第2の推論用データとに基づいて前記非稼働理由を推論する。
【発明の効果】
【0014】
本発明では、生成部が任意の時刻について、推論対象の時刻だけでなく、過去あるいは未来の前後の時間帯についても機械のイベントや状態を推論用データに反映して推論用データを生成し、推論部がこれらの推論データを用いて非稼働理由を推論する。これにより、操作の順番、運転モード、経過時間等の多岐にわたる組み合わせに対応した非稼働理由を高精度で推論し得る。
【発明を実施するための形態】
【0016】
以下、図面に基づき本発明の実施形態について説明する。なお、以下の説明では、機械11の操作者を「オペレータ」、稼働モニタリング装置の操作者を「ユーザ」と称する。
【0017】
<実施形態1>
<構成>
図1に、本実施形態における稼働モニタリング装置の機能ブロック図を示す。稼働モニタリング装置は、機械11の稼働状況をモニタリングするものであり、機械稼働データ記録部12と、推論開始・終了時刻指定部13と、推論用データ生成部14と、推論部15と、推論結果表示部16を備える。
【0018】
機械11は、モニタリング対象であり、機械稼働データ記録部12と接続されている。機械稼働データ記録部12と接続される機械11は、1つでもよいし複数でもよい。機械11は、常時、機械稼働データ記録部12に機械稼働データを送信する。機械稼働データは、
「機械のどのボタンが、いつ押されたか」
「機械でどのアラームが、いつ発生したか」
等の機械で発生するイベントを逐次時系列で記録した「イベントデータ」と、
「機械の運転モードは何が選択されていたか」
等の機械の状態を示す情報を一定周期毎に記録した「状態データ」の2種類のデータから構成される。ここで、運転モードは、機械11の運転方法の種別を示すものである。例えば、機械11が工作機械である場合、運転モードには、「自動運転モード」、「手動運転モード」、「MDI(Manual Data Input)運転モード」等が含まれる。なお、状態データには、上述した運転モードに加えて、または、替えて、操作モード、機械11の運転状態を示す情報を含んでもよい。例えば、機械11が工作機械である場合、操作モードには、プログラムを編集する「プログラム操作モード」、各種パラメータを設定する「パラメータ設定モード」、工具データを設定する「工具データ設定モード」等が含まれ、機械11の運転状態を示す情報には、工作機械が備えるいずれかの軸がリミット位置にある「リミット状態」、プログラム運転中である「プログラム実行中」、プログラム中で停止を指令されている「プログラム停止中」、一時停止ボタンの押下で停止している「一時停止中」等が含まれる。
【0019】
推論開始・終了時刻指定部13は、推論開始時刻及び推論終了時刻を指定する。
推論用データ生成部14は、推論開始・終了時刻指定部13が指定する開始時刻から終了時刻までの機械の非稼働理由を推論するため、機械稼働データ記録部12から機械稼働データを取得する。推論用データ生成部14が機械稼働データから推論用データを生成するための内部処理については後述する。
【0020】
推論部15は、推論用データ生成部14から受け取った推論用データから機械11の非稼働理由を推論する。ここで、非稼働理由の推論を行うためには、予め、教師あり学習データから学習モデルを生成し、推論部15に組み込んでおく必要がある。教師あり学習データとは、推論用データに、非稼働理由を教師データとして付加したものである。学習手法及び推論手法には、ディープラーニングやベイジアンネットワーク等に代表される公知の機械学習手法を使用し得る。
【0021】
推論結果表示部16は、推論部15から受け取った非稼働理由を、ユーザが所望する任意の形式で表示する。
【0022】
稼働モニタリング装置は、具体的には、1又は複数のCPU(あるいはGPU)、ROMやEEPROM等のプログラムメモリ、RAM等のワーキングメモリ、入出力インターフェイス、通信インターフェイス、HDDやSSD等の記憶装置、キーボードやマウス、タッチスイッチ等の入力装置、及び液晶ディスプレイや有機ELディスプレイ等の表示装置を備えるコンピュータで構成され得る。コンピュータは、入出力インターフェイスを介して機械11に接続される。1又は複数のCPUにより、プログラムメモリに記憶された処理プログラム(あるいはファームウェア)を実行することで
図1に示す推論用データ生成部14及び推論部15が実現される。記憶装置により、機械稼働データ記録部12が実現される。1又は複数のCPUは、機械11から取得した稼働データを記憶装置に順次格納する。また、1又は複数のCPUは、入力装置から入力された推論開始・終了時刻を用いて記憶装置にアクセスし、稼働データから推論用データを生成し、推論用データを用いて機械11の非稼働理由を推論する。1又は複数のCPUは、推論結果を表示装置に表示して出力する。入力装置により、推論開始・終了時刻指定部13が実現される。表示装置により、推論結果表示部16が実現される。
【0023】
推論部15は、既述したように予め学習されるが、学習には例えばニューラルネットワークが用いられ得る。ニューラルネットワークは、具体的には、プロセッサと、メモリから構成される。メモリは、ニューラルネットワークを格納する。ニューラルネットワークは、例えばディープニューラルネットワークである。メモリは、具体的には揮発性メモリあるいは不揮発性メモリで構成される。プロセッサは、メモリに格納されたディープニューラルネットワークを用いて入力信号を処理し、処理結果を出力信号として出力する。入力信号は、入出力インターフェイスを介してプロセッサに供給され、出力信号は、入出力インターフェイスを介して外部に出力される。出力信号は、外部コンピュータに供給されてもよく、あるいは通信ネットワークを介して外部のサーバ等に供給されてもよい。プロセッサは、例えばGPUで構成される。プロセッサとして、GPGPU(General-purpose computing on graphics processing units; GPUによる汎用計算)を用いてもよい。
【0024】
ディープニューラルネットワークは公知であるが、以下、簡単に説明する。ディープニューラルネットワークは、入力層、中間層、及び出力層を備える。入力層は入力信号が入力される。中間層は複数層から構成され、入力信号を順次処理する。出力層は、中間層からの出力に基づいて出力信号を出力する。各層は、複数のニューロン(ユニット)を備え、活性化関数fで活性化ニューロンとされる。
【0025】
ディープニューラルネットワークの学習は、学習データを入力し、学習データに対応する目標値と出力値との差によってロスを算出する。算出されたロスをニューラルネットワークで逆伝播させてディープニューラルネットワークのパラメータ、すなわち重みベクトルを調整する。重みが調整されたディープニューラルネットワークに次の学習データを入力し、新しく出力された出力値と目標値との差により再びロスを算出する。再算出されたロスとニューラルネットワークで逆伝播させてディープニューラルネットワークの重みベクトルを再調整する。以上の処理を繰り返すことでディープニューラルネットワークの重みベクトルを最適化する。重みベクトルは、当初は適当な値に初期化され、その後、学習を繰り返すことで最適値に収束される。
【0026】
処理プログラムは、DVD−ROM等の記録媒体に格納されてプログラムメモリにインストールされてもよい。あるいは、コンピュータが通信インターフェイスを介してネットワークサーバに接続され、ネットワークサーバから処理プログラムがダウンロードされてプログラムメモリにインストールされてもよい。
【0027】
なお、機械稼働データ記録部12、推論開始・終了時刻指定部13、推論結果表示部16は、必ずしも稼働モニタリング装置と物理的に一体として構成されている必要はなく、通信ネットワークを介して接続されていてもよい。
【0028】
<処理>
ある機械11について、一例として工場やオフィスでの始業時刻から終業時刻までの非稼働理由の時系列を、終業時刻後に振り返って推論することを考える。
【0029】
図2A及び
図2Bは、推論用データ生成部14での処理フローチャートを示す。推論用データ生成部14は、推論開始・終了時刻指定部13が指定する、推論の開始時刻T
startから終了時刻T
endまでを、例えば1分毎等の一定周期の時間分解能で分割する。開始時刻T
startから終了時刻T
endまでのうち、任意の時刻をTとしたとき、すべての時刻Tについて、推論用データを生成する(S201,S202,S216)。
【0030】
推論用データ生成部14が、時刻Tにおいて機械稼働データから推論用データI(T)を生成する方法について、次に説明する。
【0031】
機械11の機械稼働データは、既述したとおり、「イベントデータ」と「状態データ」の2つの状態データから構成される。推論用データセットを生成する際、「イベントデータ」と「状態データ」についてそれぞれ別の処理を行い、第1の推論用データ及び第2の推論用データを生成する。
【0032】
時刻Tにおいて、イベントデータを第1の推論用データに変換したものをe
0 (T), e
1 (T), e
2 (T)とする。イベントデータとして、例えば、
「機械の実行ボタンを押した」
というイベントが、時系列E(t)として機械稼働データ記録部12に記録されているとする。推論用データ生成部14は、時刻t-t
1から t+t
6まで、イベントEの時系列を取得し、推論用データe
0 (T), e
1(T), e
2 (T)を、以下の通りに定める(S204〜S212)。
【0034】
ここで、e
0 (T)は「時刻Tから、t
1だけ前」から「時刻Tから、t
2だけ前」までの過去の時間帯についてイベントが発生したか否かを示し、e
1 (T)は「時刻Tから、t
3だけ前」から「時刻Tから、t
4だけ後」までの現在の時間帯についてイベントが発生したか否かを示し、e
2 (T)は「時刻Tから、t
5だけ後」から、「時刻Tから、t
6だけ後」までの未来の時間帯についてイベントが発生したか否かを示す。t
2とt
3、t
4とt
5については、その大小は問わない。例えば、t
2<t
3として、時間帯をオーバラップさせてもよい。
【0035】
なお、推論したい時刻Tよりも後の、未来のイベントを示すe
2 (T)を、推論部15への入力に使用しているが、これは非稼働理由の時系列を終業時刻後に振り返って推論するため可能である。
【0036】
時刻Tにおいて、状態データを第2の推論用データに変換したものを、s
0(T), s
1 (T), s
2 (T)とする。状態データとして、例えば、機械11の運転モード(自動運転モードか、手動運転モードか等)の時系列が、M(t)として、機械稼働データ記録部12に記録されているとする。推論用データ生成部14は、時刻T-t
a、時刻T、時刻T+t
bにおける、機械11の運転モードMを機械稼働データ記録部12から取得し、推論用データs
0 (T), s
1 (T),s
2 (T)を、下記の通りに定める(S213,S214)。
【0038】
ここで、s
0 (T)は、時刻Tからt
aだけ過去の機械11の状態を示し、s
1(T)は、現在の機械11の状態を示し、s
2 (T)は、時刻Tからt
bだけ未来の機械11の状態を示す。
【0039】
なお、推論したい時刻Tよりも後の未来の状態s
2 (T)を推論部15への入力に使用しているが、これは非稼働理由の時系列を終業時刻後に振り返って推論するため可能である。
【0040】
以上の処理により得られた第1の推論データであるe
0 (T), e
1 (T), e
2 (T), 及び第2の推論データであるs
0 (T), s
1 (T), s
2 (T)を用いて、時刻Tにおける推論用データセットI(T)を
I(T)=(e
0(T), e
1 (T), e
2 (T), s
0 (T), s
1(T), s
2 (T))
とする(S215)。以上により、開始時刻T
startから終了時刻T
endまでのすべての時刻Tについて、推論用データが得られる。生成した推論用データIを推論部15に入力することで、各時刻における機械11の非稼働理由の推論が可能となる(S217)。
【0041】
以上の処理では、終業時刻後に振り返って各時刻における「過去」「現在」「未来」の情報を使用して機械11の非稼働理由を推論することを説明したが、これをリアルタイムでの推論に適用する場合は、e
2(T)やs
2(T)を省き、「過去」「現在」のみから学習および推論を実施すればよい。
【0042】
また、動作モードM、イベントEは、1種類に限らず、複数種類を設定し、それぞれ異なるt
1, t
2,..., t
6, t
a, t
bを設けてもよい。また、「過去」や「未来」を表す時間帯や時刻は1通りに限らず、「過去1」から、更に前の時間に遡った「過去2」など、複数の時間帯や時刻からなるデータを設けて推論に使用してもよい。
【0043】
次に、フローチャートに従って、イベントデータと、状態データを推論用データに変換する手順を具体的に説明する。
【0044】
イベントEとして、
「タレット旋回ボタンを押下」
「工具データ設定ボタンを押下」
「数値入力行った」
の3つを採用し、各イベントについて共通で、
t
1= 360秒
t
2= 120秒
t
3= 119秒
t
4= 119秒
t
5= 120秒
t
6= 360秒
とする。状態Mとして、「運転モード」を採用し、t
a = 180秒、t
b = 180秒とする。開始時刻T
start=12:00:00、終了時刻T
end=12:10:00として、1分ごとの時刻Tについて、推論用データを生成する(S201)。
【0045】
図3は、イベントデータとして操作履歴の時系列を示す。操作履歴は、機械稼働データ記録部12が11:54:00から12:16:00までの期間に記録したものである。
【0046】
なお、この時刻は、推論対象の開始時刻T
start=12:00:00及び終了時刻T
end=12:10:00と、t
1=360秒、t
6=360秒により決定している。
【0047】
図4は、状態データとして、運転モードの遷移を示す。運転モードは、機械稼働データ記録部12が、11:57:00から12:13:00までの期間に、1分ごとに運転モードとして何が選択されているかを記録したものである。T=12:00:00において、推論用データを生成する(S202)。イベントデータについて、11:54:00から11:58:00までが「過去」である。
図3において、この時間帯にはいずれのイベントも発生していない。このとき、T=12:00:00の「過去」の推論用データは、
「タレット旋回ボタン押下」
「工具データ設定ボタン押下」
「数値入力」
について、イベントが発生していないことを表す「0」を設定する(S203〜S206)。
【0048】
イベントデータについて、11:58:01から12:01:59までが「現在」である。
図3において、この時間帯には、
「タレット旋回ボタン押下」
が発生している。このとき、T=12:00:00の「現在」の推論用データは、
「タレット旋回ボタン押下」
について、イベントが少なくとも1回発生していることを表す「1」を設定する。その他のイベントは発生していないため、「0」を設定する(S207〜S209)。
【0049】
イベントデータについて、12:02:00から12:06:00までが「未来」である。
図3において、この時間帯には、
「工具データ設定ボタン押下」
が発生している。このとき、T=12:00:00の「未来」の推論用データは、
「工具データ設定ボタン押下」
について、「1」を設定し、その他のイベントは発生していないため、「0」を設定する(S210〜S212)。
【0050】
状態データについて、11:57:00が「過去」である。この時刻について、
図4から、運転モードは自動運転モードであったので、推論用データは自動運転モードを表す
「Auto」
とする。
【0051】
状態データについて、12:00:00が「現在」である。この時刻について、
図4から、運転モードは手動運転モードであったので、推論用データは手動運転モードを表す
「Man」
とする。
【0052】
状態データについて、12:03:00は「未来」である。この時刻について、
図4から、運転モードは手動運転モードであったので、推論用データは
「Man」
とする(S213〜S214)。
【0053】
以上のようにして、T=12:00:00における推論用データが生成される(S215)。
【0054】
図5は、T=12:01:00以降の時刻についても同様に処理を行い、推論用データを生成した結果を示す(S216)。
【0055】
推論部15は、T=12:00:00の非稼働理由を推論する際、
「現在、タレット旋回ボタンが押下されている」
「このあと、工具データ設定ボタンが押下される」
「過去のモードは自動運転モードだったが、現在と未来は手動運転モードである」
という情報から、
「オペレータがタレット上の所望の位置を指定して、工具交換を行う」
と推論して、機械11の非稼働理由を「工具段取」と推論できる。
【0056】
なお、タレット旋回動作中は機械が動作しているから、非稼働状態ではないと推論することもできるが、T=12:00:00の手動運転モードにおけるタレット旋回は、ワークを切削する状態ではないため、本実施形態では非稼働状態に含めるとしている。
【0057】
また、T=12:03:00の非稼働理由を推論する際、
「過去にタレット旋回ボタンが押されている」
「このあと、工具データが入力される」
「このあと、数値入力が行われる」
「運転モードは、手動運転モードで継続している」
という情報から、
「オペレータは工具を交換しており、この後、工具の補正値を入力する」
と推論して、機械の非稼働理由を「工具段取」と推論できる。従来技術では、T=12:00:00及びT=12:03:00の例のいずれも、現在のデータしか使用していないことから、機械11の非稼働理由を「工具交換」と決定することは困難である。これに対し、本実施形態では、現在に加えて過去や未来の情報を推論に使用することが可能であることによる非稼働理由の推論精度向上の効果は極めて大きいといえる。
【0058】
以上、本発明の実施形態について説明したが、本発明はこれに限定されず、種々の変形が可能である。以下、変形例について説明する。
【0059】
<変形例1>
機械11の操作履歴をイベントデータとして用いる場合、操作履歴として残る文字列の種類は多岐にわたり、その全てについて非稼働理由との関連を学習しようというのは困難である。そこで、少なくとも2種類の異なるイベントを1つのイベントとみなす。例えば、操作履歴に「工具取付」と「工具長補正」がある場合に、どちらも‘工具’を含む操作という1つのイベントとみなす。これにより、操作履歴として残る文字列の種類が多岐にわたる場合でも、学習や推論を行うことができ、また、学習モデルを生成した後で、機械11のアップデート等により未知の操作履歴が発生するようになった場合でも、操作履歴に‘工具’という文字列さえ含まれていれば、推論を行うことが可能である。
【0060】
<変形例2>
図6は、イベントが時刻t=0及びt=Tで発生している場合について示す。2つのイベントの時間差Tについて、T>t
1+t
6を満たす場合、t
1≦t≦T‐t
6の時間帯について、イベントデータの値が全て「0」となる。このとき、Tがどれだけ長くなろうとも、推論用データは「0」が繰り返されるのみであり、Tの長さは推論用データとして表されない。そこで、イベントの時間差Tについて、その大小を推論用データTgapとして設ける。例えば、Tが1分未満の場合にはTgap=0、1分以上5分未満の場合にはTgap=1、5分以上10分未満の場合にはTgap=2、10分以上の場合にはTgap=3のように、閾値によりTgapを決定し、推論用データセットI(T)に付加する。
【0061】
イベントの時間差Tgapを設けることにより、例えば、旋盤でオペレータが他の機械の操作のため長時間不在となり、長時間機械を操作しない場合と、オペレータが機械内部の清掃作業のため短時間だけ機械の操作を行わない場合について、その区別を明確化することが可能となる。