(57)【要約】      （修正有）【課題】操作の順番や運転モード等の多岐にわたる組み合わせに対応した非稼働理由を高精度で推論し得る技術を提供する。【解決手段】稼働モニタリング装置は、機械１１の稼働データを時系列で記録する機械稼働データ記録部１２と、稼働データから推論用データを生成する推論用データ生成部１４と、予め学習データを用いて学習され、推論用データを用いて機械１１の非稼働理由を推論する推論部１５を備える。稼働データは、機械１１で発生するイベントを表すイベントデータと、機械１１の状態を表す状態データとを含み、推論部１５は、イベントデータについて任意の時刻に対する過去、現在、未来についてイベントが発生したか否かのデータを含む推論用データと、状態データについて任意の時刻に対する過去、現在、未来について機械１１がどの状態であったかのデータを含む推論用データに基づいて非稼働理由を推論する。【選択図】図１
2019095879.tif 000002
【特許請求の範囲】
【請求項１】
機械の稼働状況をモニタリングする稼働モニタリング装置であって、
前記機械の稼働データを時系列で記録する記録部と、
前記稼働データから推論用データを生成する生成部と、
予め学習データを用いて学習され、前記推論用データを用いて前記機械の非稼働理由を推論する推論部と、
を備え、
前記稼働データは、前記機械で発生するイベントを表すイベントデータと、前記機械の状態を表す状態データとを含み、
前記生成部は、前記イベントデータについて任意の時刻に対する過去、現在、未来の少なくとも２つの期間について前記イベントが発生したか否かのデータを含む第１の推論用データと、前記状態データについて任意の時刻に対する過去、現在、未来の少なくとも２つの時刻について前記機械がどの状態であったかのデータを含む第２の推論用データを生成し、
前記推論部は、前記第１の推論用データと、前記第２の推論用データとに基づいて前記非稼働理由を推論する
ことを特徴とする稼働モニタリング装置。
【請求項２】
前記生成部は、前記イベントデータについて任意の時刻に対する過去、現在、及び未来の期間について前記イベントが発生したか否かのデータを含む前記第１の推論用データと、前記状態データについて任意の時刻に対する過去、現在、及び未来の時刻について前記機械がどの状態であったかのデータを含む前記第２の推論用データを生成する
ことを特徴とする請求項１に記載の稼働モニタリング装置。
【請求項３】
前記生成部は、前記イベントデータが複数種類のイベントを有する場合に、少なくとも２種類の異なるイベントを１つのイベントとみなして前記第１の推論用データを生成する  
ことを特徴とする請求項１，２のいずれかに記載の稼働モニタリング装置。
【請求項４】
前記少なくとも２種類の異なるイベントが任意の文字列を共通して有する場合に１つのイベントとみなす
請求項３に記載の稼働モニタリング装置。
【請求項５】
前記生成部は、前記イベントデータの時系列について、イベント発生間隔の長短に対応したデータを第３の推論用データとしてさらに生成し、
前記推論部は、前記第１の推論用データと、前記第２の推論用データと、前記第３の推論データとに基づいて前記非稼働理由を推論する
ことを特徴とする請求項１〜４のいずれかに記載の稼働モニタリング装置。
【請求項６】
機械の稼働状況をモニタリングするコンピュータに、
前記機械の稼働データを時系列で記憶装置に記録する記録ステップと、
前記稼働データから推論用データを生成する生成ステップと、
予め学習データを用いて学習され、前記推論用データを用いて前記機械の非稼働理由を推論する推論ステップと、
を実行させるプログラムであり、
前記稼働データは、前記機械で発生するイベントを表すイベントデータと、前記機械の状態を表す状態データとを含み、
前記生成ステップでは、前記イベントデータについて任意の時刻に対する過去、現在、未来の少なくとも２つの期間について前記イベントが発生したか否かのデータを含む第１の推論用データと、前記状態データについて任意の時刻に対する過去、現在、未来の少なくとも２つの時刻について前記機械がどの状態であったかのデータを含む第２の推論用データを生成し、
前記推論ステップでは、前記第１の推論用データと、前記第２の推論用データとに基づいて前記非稼働理由を推論する
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、稼働モニタリング装置及びプログラムに関する。特に、機械の操作履歴やアラーム発生履歴、運転モード遷移等の時系列の稼働情報と、時々刻々変化する機械の非稼働理由との関係を学習することにより特定の時刻の非稼働理由を推論する技術に関する。
【背景技術】
【０００２】
機械稼働データを管理する稼働モニタリング装置において、機械稼働データから非稼働理由を決定する際に、特許文献１のように、操作の順番、操作を行ってからの経過時間、機械の運転モード等を用いる一意の決定規則が用いられている。
【０００３】
他方で、特許文献２には、機械の故障箇所を機械学習装置により推論する技術が記載されている。特許文献２に記載の手法では、機械で故障が発生した際に、故障発生時点での機械の部分毎の状態をまとめた１つのデータセットをベイジアンネットワークに入力することで機械の故障箇所の推論を可能としている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６ー１３８９３１号公報
【特許文献２】特開２００５−３０９０７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載された非稼働理由を決定するための決定規則を導くには、機械の操作の順番及び操作を行ってからの経過時間と、機械の運転モードの組み合わせを探索する必要があり、その数は多岐にわたる。また、機械の使われ方を熟知した人でなければ、その組み合わせに対応した適切な非稼働理由を導くことは困難である。
【０００６】
他方、特許文献２に記載された技術では、ベイジアンネットワークを用いた機械学習装置は推論を行う際に現在の機械の状態を入力とする。この機械学習装置を、機械稼働データから非稼働理由を推論するために使用することを考慮する。例えば、オペレータが、自動工具交換装置（ＡＴＣ）を備えない旋盤に対して、
「（１）機内作業により工具を交換し、（２）工具補正の操作を行う」
という作業を行ったとする。（１）、（２）の作業について、
「工具段取を行っていたため、機械が稼働していなかった」
と推論を行いたい。（２）では、
「現在、工具補正に関する操作入力が行われている」
という機械の状態情報から工具段取という非稼働理由を推論可能である。一方、（１）では、
「現在、機械は停止状態であり、操作入力が行われていない」
という機械の状態情報から工具段取という非稼働理由を導くことは困難であり、
「オペレータが機械から離れていたため、機械が停止していた」
等の他の非稼働理由と区別できない問題がある。
【０００７】
本発明の目的は、操作の順番や運転モード、経過時間等の多岐にわたる組み合わせに対応した非稼働理由を高精度で推論し得る技術を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、機械の稼働状況をモニタリングする稼働モニタリング装置であって、前記機械の稼働データを時系列で記録する記録部と、前記稼働データから推論用データを生成する生成部と、予め学習データを用いて学習され、前記推論用データを用いて前記機械の非稼働理由を推論する推論部とを備え、前記稼働データは、前記機械で発生するイベントを表すイベントデータと、前記機械の状態を表す状態データとを含み、前記生成部は、前記イベントデータについて任意の時刻に対する過去、現在、未来の少なくとも２つの期間について前記イベントが発生したか否かのデータを含む第１の推論用データと、前記状態データについて任意の時刻に対する過去、現在、未来の少なくとも２つの時刻について前記機械がどの状態であったかのデータを含む第２の推論用データを生成し、前記推論部は、前記第１の推論用データと、前記第２の推論用データとに基づいて前記非稼働理由を推論することを特徴とする。
【０００９】
本発明の１つの実施形態では、前記生成部は、前記イベントデータについて任意の時刻に対する過去、現在、及び未来の期間について前記イベントが発生したか否かのデータを含む前記第１の推論用データと、前記状態データについて任意の時刻に対する過去、現在、及び未来の時刻について前記機械がどの状態であったかのデータを含む前記第２の推論用データを生成する。
【００１０】
本発明の他の実施形態では、前記生成部は、前記イベントデータが複数種類のイベントを有する場合に、少なくとも２種類の異なるイベントを１つのイベントとみなして前記第１の推論用データを生成する。
【００１１】
本発明のさらに他の実施形態では、前記少なくとも２種類の異なるイベントが任意の文字列を共通して有する場合に１つのイベントとみなす。
【００１２】
本発明のさらに他の実施形態では、前記生成部は、前記イベントデータの時系列について、イベント発生間隔の長短に対応したデータを第３の推論用データとしてさらに生成し、前記推論部は、前記第１の推論用データと、前記第２の推論用データと、前記第３の推論データとに基づいて前記非稼働理由を推論する。
【００１３】
また、本発明は、機械の稼働状況をモニタリングするコンピュータに、前記機械の稼働データを時系列で記憶装置に記録する記録ステップと、前記稼働データから推論用データを生成する生成ステップと、予め学習データを用いて学習され、前記推論用データを用いて前記機械の非稼働理由を推論する推論ステップとを実行させるプログラムであり、前記稼働データは、前記機械で発生するイベントを表すイベントデータと、前記機械の状態を表す状態データとを含み、前記生成ステップでは、前記イベントデータについて任意の時刻に対する過去、現在、未来の少なくとも２つの期間について前記イベントが発生したか否かのデータを含む第１の推論用データと、前記状態データについて任意の時刻に対する過去、現在、未来の少なくとも２つの時刻について前記機械がどの状態であったかのデータを含む第２の推論用データを生成し、前記推論ステップでは、前記第１の推論用データと、前記第２の推論用データとに基づいて前記非稼働理由を推論する。  
【発明の効果】
【００１４】
本発明では、生成部が任意の時刻について、推論対象の時刻だけでなく、過去あるいは未来の前後の時間帯についても機械のイベントや状態を推論用データに反映して推論用データを生成し、推論部がこれらの推論データを用いて非稼働理由を推論する。これにより、操作の順番、運転モード、経過時間等の多岐にわたる組み合わせに対応した非稼働理由を高精度で推論し得る。
【図面の簡単な説明】
【００１５】
【図１】実施形態における稼働モニタリング装置の機能ブロック図である。
【図２Ａ】実施形態における非稼働理由推論用データの生成フローチャートその１である。
【図２Ｂ】実施形態における非稼働理由推論用データの生成フローチャートその２である。
【図３】実施形態におけるイベントデータの例を示す図である。
【図４】実施形態における状態データの例を示す図である。
【図５】実施形態における推論用データの例を示す図である。
【図６】実施形態における処理を示すタイミングチャートである。
【発明を実施するための形態】
【００１６】
以下、図面に基づき本発明の実施形態について説明する。なお、以下の説明では、機械１１の操作者を「オペレータ」、稼働モニタリング装置の操作者を「ユーザ」と称する。
【００１７】
＜実施形態１＞
＜構成＞
図１に、本実施形態における稼働モニタリング装置の機能ブロック図を示す。稼働モニタリング装置は、機械１１の稼働状況をモニタリングするものであり、機械稼働データ記録部１２と、推論開始・終了時刻指定部１３と、推論用データ生成部１４と、推論部１５と、推論結果表示部１６を備える。
【００１８】
機械１１は、モニタリング対象であり、機械稼働データ記録部１２と接続されている。機械稼働データ記録部１２と接続される機械１１は、１つでもよいし複数でもよい。機械１１は、常時、機械稼働データ記録部１２に機械稼働データを送信する。機械稼働データは、
「機械のどのボタンが、いつ押されたか」
「機械でどのアラームが、いつ発生したか」
等の機械で発生するイベントを逐次時系列で記録した「イベントデータ」と、
「機械の運転モードは何が選択されていたか」
等の機械の状態を示す情報を一定周期毎に記録した「状態データ」の２種類のデータから構成される。ここで、運転モードは、機械１１の運転方法の種別を示すものである。例えば、機械１１が工作機械である場合、運転モードには、「自動運転モード」、「手動運転モード」、「ＭＤＩ（Manual Data Input）運転モード」等が含まれる。なお、状態データには、上述した運転モードに加えて、または、替えて、操作モード、機械１１の運転状態を示す情報を含んでもよい。例えば、機械１１が工作機械である場合、操作モードには、プログラムを編集する「プログラム操作モード」、各種パラメータを設定する「パラメータ設定モード」、工具データを設定する「工具データ設定モード」等が含まれ、機械１１の運転状態を示す情報には、工作機械が備えるいずれかの軸がリミット位置にある「リミット状態」、プログラム運転中である「プログラム実行中」、プログラム中で停止を指令されている「プログラム停止中」、一時停止ボタンの押下で停止している「一時停止中」等が含まれる。
【００１９】
推論開始・終了時刻指定部１３は、推論開始時刻及び推論終了時刻を指定する。
推論用データ生成部１４は、推論開始・終了時刻指定部１３が指定する開始時刻から終了時刻までの機械の非稼働理由を推論するため、機械稼働データ記録部１２から機械稼働データを取得する。推論用データ生成部１４が機械稼働データから推論用データを生成するための内部処理については後述する。
【００２０】
推論部１５は、推論用データ生成部１４から受け取った推論用データから機械１１の非稼働理由を推論する。ここで、非稼働理由の推論を行うためには、予め、教師あり学習データから学習モデルを生成し、推論部１５に組み込んでおく必要がある。教師あり学習データとは、推論用データに、非稼働理由を教師データとして付加したものである。学習手法及び推論手法には、ディープラーニングやベイジアンネットワーク等に代表される公知の機械学習手法を使用し得る。
【００２１】
推論結果表示部１６は、推論部１５から受け取った非稼働理由を、ユーザが所望する任意の形式で表示する。
【００２２】
稼働モニタリング装置は、具体的には、１又は複数のＣＰＵ（あるいはＧＰＵ）、ＲＯＭやＥＥＰＲＯＭ等のプログラムメモリ、ＲＡＭ等のワーキングメモリ、入出力インターフェイス、通信インターフェイス、ＨＤＤやＳＳＤ等の記憶装置、キーボードやマウス、タッチスイッチ等の入力装置、及び液晶ディスプレイや有機ＥＬディスプレイ等の表示装置を備えるコンピュータで構成され得る。コンピュータは、入出力インターフェイスを介して機械１１に接続される。１又は複数のＣＰＵにより、プログラムメモリに記憶された処理プログラム（あるいはファームウェア）を実行することで図１に示す推論用データ生成部１４及び推論部１５が実現される。記憶装置により、機械稼働データ記録部１２が実現される。１又は複数のＣＰＵは、機械１１から取得した稼働データを記憶装置に順次格納する。また、１又は複数のＣＰＵは、入力装置から入力された推論開始・終了時刻を用いて記憶装置にアクセスし、稼働データから推論用データを生成し、推論用データを用いて機械１１の非稼働理由を推論する。１又は複数のＣＰＵは、推論結果を表示装置に表示して出力する。入力装置により、推論開始・終了時刻指定部１３が実現される。表示装置により、推論結果表示部１６が実現される。
【００２３】
推論部１５は、既述したように予め学習されるが、学習には例えばニューラルネットワークが用いられ得る。ニューラルネットワークは、具体的には、プロセッサと、メモリから構成される。メモリは、ニューラルネットワークを格納する。ニューラルネットワークは、例えばディープニューラルネットワークである。メモリは、具体的には揮発性メモリあるいは不揮発性メモリで構成される。プロセッサは、メモリに格納されたディープニューラルネットワークを用いて入力信号を処理し、処理結果を出力信号として出力する。入力信号は、入出力インターフェイスを介してプロセッサに供給され、出力信号は、入出力インターフェイスを介して外部に出力される。出力信号は、外部コンピュータに供給されてもよく、あるいは通信ネットワークを介して外部のサーバ等に供給されてもよい。プロセッサは、例えばＧＰＵで構成される。プロセッサとして、ＧＰＧＰＵ（General-purpose computing on graphics processing units; GPUによる汎用計算）を用いてもよい。
【００２４】
ディープニューラルネットワークは公知であるが、以下、簡単に説明する。ディープニューラルネットワークは、入力層、中間層、及び出力層を備える。入力層は入力信号が入力される。中間層は複数層から構成され、入力信号を順次処理する。出力層は、中間層からの出力に基づいて出力信号を出力する。各層は、複数のニューロン（ユニット）を備え、活性化関数ｆで活性化ニューロンとされる。
【００２５】
ディープニューラルネットワークの学習は、学習データを入力し、学習データに対応する目標値と出力値との差によってロスを算出する。算出されたロスをニューラルネットワークで逆伝播させてディープニューラルネットワークのパラメータ、すなわち重みベクトルを調整する。重みが調整されたディープニューラルネットワークに次の学習データを入力し、新しく出力された出力値と目標値との差により再びロスを算出する。再算出されたロスとニューラルネットワークで逆伝播させてディープニューラルネットワークの重みベクトルを再調整する。以上の処理を繰り返すことでディープニューラルネットワークの重みベクトルを最適化する。重みベクトルは、当初は適当な値に初期化され、その後、学習を繰り返すことで最適値に収束される。
【００２６】
処理プログラムは、ＤＶＤ−ＲＯＭ等の記録媒体に格納されてプログラムメモリにインストールされてもよい。あるいは、コンピュータが通信インターフェイスを介してネットワークサーバに接続され、ネットワークサーバから処理プログラムがダウンロードされてプログラムメモリにインストールされてもよい。
【００２７】
なお、機械稼働データ記録部１２、推論開始・終了時刻指定部１３、推論結果表示部１６は、必ずしも稼働モニタリング装置と物理的に一体として構成されている必要はなく、通信ネットワークを介して接続されていてもよい。
【００２８】
＜処理＞
ある機械１１について、一例として工場やオフィスでの始業時刻から終業時刻までの非稼働理由の時系列を、終業時刻後に振り返って推論することを考える。
【００２９】
図２Ａ及び図２Ｂは、推論用データ生成部１４での処理フローチャートを示す。推論用データ生成部１４は、推論開始・終了時刻指定部１３が指定する、推論の開始時刻Tstartから終了時刻Tendまでを、例えば1分毎等の一定周期の時間分解能で分割する。開始時刻Tstartから終了時刻Tendまでのうち、任意の時刻をTとしたとき、すべての時刻Tについて、推論用データを生成する（Ｓ２０１，Ｓ２０２，Ｓ２１６）。
【００３０】
推論用データ生成部１４が、時刻Tにおいて機械稼働データから推論用データI(T)を生成する方法について、次に説明する。
【００３１】
機械１１の機械稼働データは、既述したとおり、「イベントデータ」と「状態データ」の２つの状態データから構成される。推論用データセットを生成する際、「イベントデータ」と「状態データ」についてそれぞれ別の処理を行い、第１の推論用データ及び第２の推論用データを生成する。
【００３２】
時刻Ｔにおいて、イベントデータを第１の推論用データに変換したものをe0 (T), e1 (T), e2 (T)とする。イベントデータとして、例えば、
「機械の実行ボタンを押した」
というイベントが、時系列E(t)として機械稼働データ記録部１２に記録されているとする。推論用データ生成部１４は、時刻t-t1から t+t6まで、イベントEの時系列を取得し、推論用データe0 (T), e1(T), e2 (T)を、以下の通りに定める(Ｓ２０４〜Ｓ２１２)。
【００３３】
【数１】
2019095879.tif 000003
【００３４】
ここで、e0 (T)は「時刻Tから、t1だけ前」から「時刻Tから、t2だけ前」までの過去の時間帯についてイベントが発生したか否かを示し、e1 (T)は「時刻Tから、t3だけ前」から「時刻Tから、t4だけ後」までの現在の時間帯についてイベントが発生したか否かを示し、e2 (T)は「時刻Tから、t5だけ後」から、「時刻Tから、t6だけ後」までの未来の時間帯についてイベントが発生したか否かを示す。t2とt3、t4とt5については、その大小は問わない。例えば、t2<t3として、時間帯をオーバラップさせてもよい。
【００３５】
なお、推論したい時刻Tよりも後の、未来のイベントを示すe2 (T)を、推論部１５への入力に使用しているが、これは非稼働理由の時系列を終業時刻後に振り返って推論するため可能である。
【００３６】
時刻Tにおいて、状態データを第２の推論用データに変換したものを、s0(T), s1 (T), s2 (T)とする。状態データとして、例えば、機械１１の運転モード(自動運転モードか、手動運転モードか等)の時系列が、M(t)として、機械稼働データ記録部１２に記録されているとする。推論用データ生成部１４は、時刻T-ta、時刻T、時刻T+tbにおける、機械１１の運転モードMを機械稼働データ記録部１２から取得し、推論用データs0 (T), s1 (T),s2 (T)を、下記の通りに定める（Ｓ２１３，Ｓ２１４）。
【００３７】
【数２】
2019095879.tif 000004
【００３８】
ここで、s0 (T)は、時刻Tからtaだけ過去の機械１１の状態を示し、s1(T)は、現在の機械１１の状態を示し、s2 (T)は、時刻Tからtbだけ未来の機械１１の状態を示す。
【００３９】
なお、推論したい時刻Tよりも後の未来の状態s2 (T)を推論部１５への入力に使用しているが、これは非稼働理由の時系列を終業時刻後に振り返って推論するため可能である。
【００４０】
以上の処理により得られた第１の推論データであるe0 (T), e1 (T), e2 (T), 及び第２の推論データであるs0 (T), s1 (T), s2 (T)を用いて、時刻Tにおける推論用データセットI(T)を
I(T)=(e0(T), e1 (T), e2 (T), s0 (T), s1(T), s2 (T))
とする（Ｓ２１５）。以上により、開始時刻Tstartから終了時刻Tendまでのすべての時刻Tについて、推論用データが得られる。生成した推論用データIを推論部１５に入力することで、各時刻における機械１１の非稼働理由の推論が可能となる（Ｓ２１７）。
【００４１】
以上の処理では、終業時刻後に振り返って各時刻における「過去」「現在」「未来」の情報を使用して機械１１の非稼働理由を推論することを説明したが、これをリアルタイムでの推論に適用する場合は、e2(T)やs2(T)を省き、「過去」「現在」のみから学習および推論を実施すればよい。
【００４２】
また、動作モードM、イベントEは、１種類に限らず、複数種類を設定し、それぞれ異なるt1, t2,..., t6, ta, tbを設けてもよい。また、「過去」や「未来」を表す時間帯や時刻は１通りに限らず、「過去１」から、更に前の時間に遡った「過去２」など、複数の時間帯や時刻からなるデータを設けて推論に使用してもよい。
【００４３】
次に、フローチャートに従って、イベントデータと、状態データを推論用データに変換する手順を具体的に説明する。
【００４４】
イベントEとして、
「タレット旋回ボタンを押下」
「工具データ設定ボタンを押下」
「数値入力行った」
の３つを採用し、各イベントについて共通で、
t1= 360秒
t2= 120秒
t3= 119秒
t4= 119秒
t5= 120秒
t6= 360秒
とする。状態Mとして、「運転モード」を採用し、ta = 180秒、tb = 180秒とする。開始時刻Tstart=12:00:00、終了時刻Tend=12:10:00として、1分ごとの時刻Tについて、推論用データを生成する（Ｓ２０１）。
【００４５】
図３は、イベントデータとして操作履歴の時系列を示す。操作履歴は、機械稼働データ記録部１２が11:54:00から12:16:00までの期間に記録したものである。
【００４６】
なお、この時刻は、推論対象の開始時刻Tstart=12:00:00及び終了時刻Tend=12:10:00と、t1=360秒、t6=360秒により決定している。
【００４７】
図４は、状態データとして、運転モードの遷移を示す。運転モードは、機械稼働データ記録部１２が、11:57:00から12:13:00までの期間に、1分ごとに運転モードとして何が選択されているかを記録したものである。T=12:00:00において、推論用データを生成する（Ｓ２０２）。イベントデータについて、11:54:00から11:58:00までが「過去」である。図３において、この時間帯にはいずれのイベントも発生していない。このとき、T=12:00:00の「過去」の推論用データは、
「タレット旋回ボタン押下」
「工具データ設定ボタン押下」
「数値入力」
について、イベントが発生していないことを表す「０」を設定する（Ｓ２０３〜Ｓ２０６）。
【００４８】
イベントデータについて、11:58:01から12:01:59までが「現在」である。図３において、この時間帯には、
「タレット旋回ボタン押下」
が発生している。このとき、T=12:00:00の「現在」の推論用データは、
「タレット旋回ボタン押下」
について、イベントが少なくとも１回発生していることを表す「１」を設定する。その他のイベントは発生していないため、「０」を設定する（Ｓ２０７〜Ｓ２０９）。
【００４９】
イベントデータについて、12:02:00から12:06:00までが「未来」である。図３において、この時間帯には、
「工具データ設定ボタン押下」
が発生している。このとき、T=12:00:00の「未来」の推論用データは、
「工具データ設定ボタン押下」
について、「１」を設定し、その他のイベントは発生していないため、「０」を設定する（Ｓ２１０〜Ｓ２１２）。
【００５０】
状態データについて、11:57:00が「過去」である。この時刻について、図４から、運転モードは自動運転モードであったので、推論用データは自動運転モードを表す
「Auto」
とする。
【００５１】
状態データについて、12:00:00が「現在」である。この時刻について、図４から、運転モードは手動運転モードであったので、推論用データは手動運転モードを表す
「Man」
とする。
【００５２】
状態データについて、12:03:00は「未来」である。この時刻について、図４から、運転モードは手動運転モードであったので、推論用データは
「Man」
とする（Ｓ２１３〜Ｓ２１４）。
【００５３】
以上のようにして、T=12:00:00における推論用データが生成される（Ｓ２１５）。
【００５４】
図５は、T=12:01:00以降の時刻についても同様に処理を行い、推論用データを生成した結果を示す（Ｓ２１６）。
【００５５】
推論部１５は、T=12:00:00の非稼働理由を推論する際、
「現在、タレット旋回ボタンが押下されている」
「このあと、工具データ設定ボタンが押下される」
「過去のモードは自動運転モードだったが、現在と未来は手動運転モードである」
という情報から、
「オペレータがタレット上の所望の位置を指定して、工具交換を行う」
と推論して、機械１１の非稼働理由を「工具段取」と推論できる。
【００５６】
なお、タレット旋回動作中は機械が動作しているから、非稼働状態ではないと推論することもできるが、T=12:00:00の手動運転モードにおけるタレット旋回は、ワークを切削する状態ではないため、本実施形態では非稼働状態に含めるとしている。
【００５７】
また、T=12:03:00の非稼働理由を推論する際、
「過去にタレット旋回ボタンが押されている」
「このあと、工具データが入力される」
「このあと、数値入力が行われる」
「運転モードは、手動運転モードで継続している」
という情報から、
「オペレータは工具を交換しており、この後、工具の補正値を入力する」
と推論して、機械の非稼働理由を「工具段取」と推論できる。従来技術では、T=12:00:00及びT=12:03:00の例のいずれも、現在のデータしか使用していないことから、機械１１の非稼働理由を「工具交換」と決定することは困難である。これに対し、本実施形態では、現在に加えて過去や未来の情報を推論に使用することが可能であることによる非稼働理由の推論精度向上の効果は極めて大きいといえる。
【００５８】
以上、本発明の実施形態について説明したが、本発明はこれに限定されず、種々の変形が可能である。以下、変形例について説明する。
【００５９】
＜変形例１＞
機械１１の操作履歴をイベントデータとして用いる場合、操作履歴として残る文字列の種類は多岐にわたり、その全てについて非稼働理由との関連を学習しようというのは困難である。そこで、少なくとも２種類の異なるイベントを１つのイベントとみなす。例えば、操作履歴に「工具取付」と「工具長補正」がある場合に、どちらも‘工具’を含む操作という１つのイベントとみなす。これにより、操作履歴として残る文字列の種類が多岐にわたる場合でも、学習や推論を行うことができ、また、学習モデルを生成した後で、機械１１のアップデート等により未知の操作履歴が発生するようになった場合でも、操作履歴に‘工具’という文字列さえ含まれていれば、推論を行うことが可能である。
【００６０】
＜変形例２＞
図６は、イベントが時刻t=0及びt=Tで発生している場合について示す。２つのイベントの時間差Tについて、T>t1+t6を満たす場合、t1≦t≦T‐t6の時間帯について、イベントデータの値が全て「０」となる。このとき、Tがどれだけ長くなろうとも、推論用データは「０」が繰り返されるのみであり、Tの長さは推論用データとして表されない。そこで、イベントの時間差Tについて、その大小を推論用データTgapとして設ける。例えば、Tが1分未満の場合にはTgap=0、1分以上5分未満の場合にはTgap=1、5分以上10分未満の場合にはTgap=2、10分以上の場合にはTgap=3のように、閾値によりTgapを決定し、推論用データセットI(T)に付加する。
【００６１】
イベントの時間差Tgapを設けることにより、例えば、旋盤でオペレータが他の機械の操作のため長時間不在となり、長時間機械を操作しない場合と、オペレータが機械内部の清掃作業のため短時間だけ機械の操作を行わない場合について、その区別を明確化することが可能となる。
【符号の説明】
【００６２】
１１  機械、１２  機械稼働データ記録部、１３  推論開始・終了時刻指定部、１４  推論用データ生成部、１５  推論部、１６  推論結果表示部。
【図１】
2019095879.tif 000005
【図２Ａ】
2019095879.tif 000006
【図２Ｂ】
2019095879.tif 000007
【図３】
2019095879.tif 000008
【図４】
2019095879.tif 000009
【図５】
2019095879.tif 000010
【図６】
2019095879.tif 000011