(57)【要約】【課題】産業機器の状態を解析するために有益なデータを取得する。【解決手段】トレースデータ取得システム（１）の複数の産業機器（２０）は、対象物に対して順番に加工を行う。判定部（２０１）は、産業機器（２０）が特定の条件を満たしたか否かを判定する。要求部（１０１）は、産業機器（２０）が条件を満たしたと判定された場合に、他の産業機器（２０）にトレースデータの取得を要求する。【選択図】図２
2020123230.tif 000002
【特許請求の範囲】
【請求項１】
対象物に対して順番に加工を行う複数の産業機器と、
前記産業機器が特定の条件を満たしたか否かを判定する判定部と、
前記産業機器が前記条件を満たしたと判定された場合に、他の産業機器にトレースデータの取得を要求する要求部と、
を有するトレースデータ取得システム。
【請求項２】
前記条件を満たした産業機器のトレースデータと、前記他の産業機器が収集したトレースデータと、を取得する取得部を有する、
請求項１に記載のトレースデータ取得システム。
【請求項３】
前記条件は、前記産業機器にアラームが発生することであり、
前記要求部は、前記産業機器で前記アラームが発生したと判定された場合に、前記他の産業機器にトレースデータの取得を要求する、
請求項１又は２に記載のトレースデータ取得システム。
【請求項４】
前記条件を満たした産業機器のトレースデータと、前記他の産業機器が収集したトレースデータと、を取得し、前記発生したアラームに関するアラーム情報に関連付けて、前記取得したトレースデータを記憶部に記録する取得部を有する、
請求項３に記載のトレースデータ取得システム。
【請求項５】
前記トレースデータ取得システムは、前記複数の産業機器を管理する上位装置を更に有し、
前記複数の産業機器の各々は、前記上位装置に自身のトレースデータを送信する送信部を有する、
請求項１〜４の何れかに記載のトレースデータ取得システム。
【請求項６】
前記要求部は、前記上位装置により実現され、
前記上位装置の前記要求部は、前記条件を満たした産業機器と、前記他の産業機器と、の各々に、トレースデータの取得を要求する、
請求項５に記載のトレースデータ取得システム。
【請求項７】
前記判定部は、前記複数の産業機器の各々により実現され、
前記複数の産業機器の各々の前記判定部は、自身が前記条件を満たしたか否かを判定する、
請求項１〜６の何れかに記載のトレースデータ取得システム。
【請求項８】
前記要求部は、前記複数の産業機器のうち、他の全ての産業機器にトレースデータの取得を要求する、
請求項１〜７の何れかに記載のトレースデータ取得システム。
【請求項９】
前記要求部は、前記複数の産業機器のうち、前記条件を満たした産業機器の前工程を担当する産業機器と、前記条件を満たした産業機器の後工程を担当する産業機器と、の少なくとも一方に、トレースデータの取得を要求する、
請求項１〜８の何れかに記載のトレースデータ取得システム。
【請求項１０】
前記複数の産業機器の各々は、少なくとも１つの機器を制御し、
前記要求部は、前記他の産業機器が制御する機器のトレースデータの取得を要求する、
請求項１〜９の何れかに記載のトレースデータ取得システム。
【請求項１１】
前記複数の産業機器の各々は、
予めトレース条件データを記憶する記憶部と、
前記トレース条件データに基づいてトレースデータを生成する生成部と、
を有する請求項１〜１０の何れかに記載のトレースデータ取得システム。
【請求項１２】
前記複数の産業機器の各々は、直近の期間における計測結果を記憶部に記録し、当該期間よりも前の計測結果は前記記憶部から消去し、前記要求部からの要求を受信した場合に、前記記憶部に記録された計測結果に基づいて、トレースデータを生成する生成部を有する、
請求項１〜１１の何れかに記載のトレースデータ取得システム。
【請求項１３】
前記トレースデータ取得システムは、前記対象物の識別情報に関連付けて、前記複数の産業機器の各々により行われた加工に関する加工情報を記録する記録部を有する、
請求項１〜１２の何れかに記載のトレースデータ取得システム。
【請求項１４】
前記トレースデータ取得システムは、前記産業機器が前記条件を満たした場合に加工された対象物の識別情報に関連付けられた加工情報を提供する提供部を有する、
請求項１３に記載のトレースデータ取得システム。
【請求項１５】
前記トレースデータは、時刻情報を含む、
請求項１〜１４の何れかに記載のトレースデータ取得システム。
【請求項１６】
対象物に対して順番に加工を行う複数の産業機器の少なくとも１つが特定の条件を満たしたか否かを判定し、
前記産業機器が前記条件を満たしたと判定された場合に、他の産業機器にトレースデータの取得を要求する、
トレースデータ取得方法。
【請求項１７】
対象物に対して順番に加工を行う複数の産業機器の少なくとも１つが特定の条件を満たした場合に、他の産業機器にトレースデータの取得を要求する要求部、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トレースデータ取得システム、トレースデータ取得方法、及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、産業機器にアラームが発生した場合に、クラウドサーバに当該産業機器のトレースデータをアップロードし、解析者に当該トレースデータを提供してアラームが発生した原因を解析させるシステムが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１５−０６８２１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、例えば、産業機器の状態を解析するために有益なデータを取得することである。
【課題を解決するための手段】
【０００５】
本発明の一側面に係るトレースデータ取得システムは、対象物に対して順番に加工を行う複数の産業機器と、前記産業機器が特定の条件を満たしたか否かを判定する判定部と、前記産業機器が前記条件を満たしたと判定された場合に、他の産業機器にトレースデータの取得を要求する要求部と、を有する。
【０００６】
本発明の一側面に係るトレースデータ取得方法は、対象物に対して順番に加工を行う複数の産業機器の少なくとも１つが特定の条件を満たしたか否かを判定し、前記産業機器が前記条件を満たしたと判定された場合に、他の産業機器にトレースデータの取得を要求する。
【０００７】
本発明の一側面に係るプログラムは、対象物に対して順番に加工を行う複数の産業機器の少なくとも１つが特定の条件を満たした場合に、他の産業機器にトレースデータの取得を要求する要求部、としてコンピュータを機能させる。
【０００８】
本発明の一側面に係るトレースデータ取得システムは、前記条件を満たした産業機器のトレースデータと、前記他の産業機器が収集したトレースデータと、を取得する取得部を有する。
【０００９】
本発明の一側面に係るトレースデータ取得システムは、前記条件は、前記産業機器にアラームが発生することであり、前記要求部は、前記産業機器で前記アラームが発生したと判定された場合に、前記他の産業機器にトレースデータの取得を要求する。
【００１０】
本発明の一側面に係るトレースデータ取得システムは、前記条件を満たした産業機器のトレースデータと、前記他の産業機器が収集したトレースデータと、を取得し、前記発生したアラームに関するアラーム情報に関連付けて、前記取得したトレースデータを記憶部に記録する取得部を有する。
【００１１】
本発明の一側面に係るトレースデータ取得システムは、前記トレースデータ取得システムは、前記複数の産業機器を管理する上位装置を更に有し、前記複数の産業機器の各々は、前記上位装置に自身のトレースデータを送信する送信部を有する。
【００１２】
本発明の一側面に係るトレースデータ取得システムは、前記要求部は、前記上位装置により実現され、前記上位装置の前記要求部は、前記条件を満たした産業機器と、前記他の産業機器と、の各々に、トレースデータの取得を要求する。
【００１３】
本発明の一側面に係るトレースデータ取得システムは、前記判定部は、前記複数の産業機器の各々により実現され、前記複数の産業機器の各々の前記判定部は、自身が前記条件を満たしたか否かを判定する。
【００１４】
本発明の一側面に係るトレースデータ取得システムは、前記要求部は、前記複数の産業機器のうち、他の全ての産業機器にトレースデータの取得を要求する。
【００１５】
本発明の一側面に係るトレースデータ取得システムは、前記要求部は、前記複数の産業機器のうち、前記条件を満たした産業機器の前工程を担当する産業機器と、前記条件を満たした産業機器の後工程を担当する産業機器と、の少なくとも一方に、トレースデータの取得を要求する。
【００１６】
本発明の一側面に係るトレースデータ取得システムは、前記複数の産業機器の各々は、少なくとも１つの機器を制御し、前記要求部は、前記他の産業機器が制御する機器のトレースデータの取得を要求する。
【００１７】
本発明の一側面に係るトレースデータ取得システムは、前記複数の産業機器の各々は、予めトレース条件データを記憶する記憶部と、前記トレース条件データに基づいてトレースデータを生成する生成部と、を有する。
【００１８】
本発明の一側面に係るトレースデータ取得システムは、前記複数の産業機器の各々は、直近の期間における計測結果を記憶部に記録し、当該期間よりも前の計測結果は前記記憶部から消去し、前記要求部からの要求を受信した場合に、前記記憶部に記録された計測結果に基づいて、トレースデータを生成する生成部を有する。
【００１９】
本発明の一側面に係るトレースデータ取得システムは、前記トレースデータ取得システムは、前記対象物の識別情報に関連付けて、前記複数の産業機器の各々により行われた加工に関する加工情報を記録する記録部を有する。
【００２０】
本発明の一側面に係るトレースデータ取得システムは、前記トレースデータ取得システムは、前記産業機器が前記条件を満たした場合に加工された対象物の識別情報に関連付けられた加工情報を提供する提供部を有する。
【００２１】
本発明の一側面に係るトレースデータ取得システムは、前記トレースデータは、時刻情報を含む。
【発明の効果】
【００２２】
上記発明によれば、例えば、産業機器の状態を解析するために有益なデータを取得することである。
【図面の簡単な説明】
【００２３】
【図１】実施形態に係るトレースデータ取得システムの全体構成の一例を示す図である。
【図２】トレースデータ取得システムで実現される機能を示す機能ブロック図である。
【図３】トレース条件データベースのデータ格納例を示す図である。
【図４】アラーム履歴データベースのデータ格納例を示す図である。
【図５】トレースデータ取得システムで実行される処理を示すフロー図である。
【図６】変形例の機能ブロック図である。
【図７】加工情報データベースのデータ格納例を示す図である。
【発明を実施するための形態】
【００２４】
［１．トレースデータ取得システムの全体構成］
本発明の発明者の見地によれば、対象物に対して順番に加工を行う複数の産業機器を有するシステムでは、複数の産業機器の各々が他の産業機器に影響を与えていることがあり、ある産業機器が特定の条件を満たした場合に、他の産業機器が原因になっている可能性がある。この場合、当該条件を満たした産業機器のトレースデータだけを参照しても、原因を特定することができず、産業機器の状態を解析するために十分ではないことがある。そこで本発明の発明者は、産業機器の状態を解析するのに有益なデータを取得するために鋭意研究開発を行った結果、新規かつ独創的なトレースデータ取得システム等に想到した。以降、本実施形態に係るトレースデータ取得システム等を詳細に説明する。
【００２５】
図１は、実施形態に係るトレースデータ取得システムの全体構成の一例を示す図である。図１に示すように、トレースデータ取得システム１は、データ収集装置１０、コントローラ２０Ａ〜２０Ｃ、及びモータ制御装置３０Ａ１〜３０Ａ５，３０Ｂ１〜３０Ｂ６，３０Ｃ１〜３０Ｃ４を含む。以降、コントローラ２０Ａ〜２０Ｃの各々を区別する必要のないときは、単にコントローラ２０と記載し、モータ制御装置３０Ａ１〜３０Ａ５，３０Ｂ１〜３０Ｂ６，３０Ｃ１〜３０Ｃ４の各々を区別する必要のないときは、単にモータ制御装置３０と記載する。
【００２６】
データ収集装置１０は、トレースデータを収集するコンピュータである。トレースデータとは、機器の状態を時系列的に示すデータである。別の言い方をすれば、トレースデータは、センサの検出信号を時系列的に数値化したデータである。トレースデータは、動作のログ（履歴）を示すのでロギングデータと呼ばれることもある。例えば、トレースデータには、トルク信号、温度情報、モータのフィードバック速度、位置偏差、速度偏差、又は電流偏差などの内部情報が時系列的に示されている。
【００２７】
また、トレースデータには、時刻情報（タイムスタンプ）が含まれている。時刻情報は、トレースデータの収集時刻又は取得時刻に関する情報であり、例えば、生産しているワークの製品シリアルナンバー、各コントローラ２０を識別するコントローラＩＤ、ある作業工程であること識別する工程ＩＤ、オペレータＩＤなどの情報と関連づけられている。「工程」は、１又は複数の産業機器毎にグルーピングされたものとして定義される。例えば、時刻情報は、トレースデータの取得開始時刻、イベントごとのタイムスタンプ、トレースデータの取得終了時刻、トレースデータの送信時刻、又はトレースデータの受信時刻などを示す。
【００２８】
本実施形態では、データ収集装置１０は、上位装置の一例である。上位装置とは、複数のコントローラ２０を管理する装置である。ここでの管理とは、トレースデータを収集する主体になることであり、各コントローラ２０がトレースデータを送信する送信先になることを意味する。なお、上位装置は、データ収集装置１０以外の装置であってもよく、例えば、コントローラ２０又はモータ制御装置３０の設定をするためのエンジニアリングツールがインストールされたコンピュータ、工場などの施設内のサーバコンピュータ、又はインターネット上のクラウドサーバなどが上位装置に相当してもよい。
【００２９】
例えば、データ収集装置１０は、サーバコンピュータ、パーソナルコンピュータ、携帯電話（スマートフォンを含む）、又は携帯端末（タブレット型端末を含む）である。データ収集装置１０は、ＣＰＵ１１、記憶部１２、通信部１３、操作部１４、及び表示部１５を含む。
【００３０】
ＣＰＵ１１は、少なくとも１つのプロセッサを含む。記憶部１２は、ＲＡＭ、ＥＥＰＲＯＭ、及びハードディスクを含み、各種プログラムやデータを記憶する。ＣＰＵ１１は、これらプログラムやデータに基づいて各種処理を実行する。通信部１３は、ネットワークカードや各種通信コネクタ等の通信インタフェースを含み、他の装置との通信を行う。操作部１４は、マウスやキーボード等の入力デバイスである。表示部１５は、液晶ディスプレイ又は有機ＥＬディスプレイ等であり、ＣＰＵ１１の指示により各種画面を表示する。
【００３１】
コントローラ２０は、少なくとも１台のモータ制御装置３０を制御する装置である。本実施形態では、コントローラ２０は、産業機器の一例である。ここでの産業機器とは、対象物に対して順番に加工を行うための機器である。対象物とは、加工の対象となる物であり、例えば、自動車やバイクなどの部品、電気製品、セラミックスや樹脂などの材料、又は食品などである。例えば、対象物は、ベルトコンベアなどの搬送装置に載せられて移動し、所定の順番で加工が行われる。なお、産業機器は、コントローラ２０以外の装置であってもよく、例えば、モータ制御装置３０がコントローラ２０に相当してもよいし、ロボットコントローラ、工作機械、又はＰＬＣなどが産業機器に相当してもよい。
【００３２】
例えば、コントローラ２０は、ＣＰＵ２１、記憶部２２、及び通信部２３を含む。ＣＰＵ２１、記憶部２２、及び通信部２３の物理的構成は、それぞれＣＰＵ１１、記憶部１２、及び通信部１３と同様である。なお、通信部２３は、モータ制御などの特定用途向けの集積回路を有していてもよい。また、図１では、コントローラ２０Ａ〜２０Ｃの各々の構成を区別して、ＣＰＵ２１Ａ，２１Ｂ，２１Ｃ、記憶部２２Ａ，２２Ｂ，２２Ｃ、及び通信部２３Ａ，２３Ｂ，２３Ｃといったように、数値の後にアルファベットを付した符号で記載しているが、これらを区別しないときは、末尾のアルファベットを省略する。
【００３３】
モータ制御装置３０は、少なくとも１つのモータを制御する装置である。モータ制御装置３０は、サーボアンプ又はサーボパック（登録商標）と呼ばれることもある。例えば、モータ制御装置３０は、ＣＰＵ、通信回路、ＤＲＡＭ、及びＥＥＰＲＯＭ等を含み、コントローラ２０から受信した指令に基づいて、モータに対する電圧を制御する。モータは、回転式であってもよいしリニア式であってもよい。例えば、モータ制御装置３０には、モータエンコーダ、トルクセンサ、及び温度センサといった種々のセンサ類が接続されている。モータ制御装置３０は、各センサの検出信号を取得し、任意のタイミングでコントローラ２０に送信する。
【００３４】
なお、本実施形態では、データ収集装置１０及びコントローラ２０を接続するネットワーク（上位側のネットワーク）と、コントローラ２０及びモータ制御装置３０を接続するネットワーク（下位側のネットワーク）と、は共に産業機器用に開発された通信プロトコルであるものとするが、これらのネットワークの通信プロトコルとしては、種々の通信プロトコルを適用可能である。
【００３５】
また、本実施形態では、トレースデータ取得システム１が３台のコントローラ２０を含む場合を説明するが、トレースデータ取得システム１には、複数のコントローラ２０が含まれていればよく、２台であってもよいし、４台以上であってもよい。また、１台のコントローラ２０に接続されるモータ制御装置３０の台数は、任意の台数であってよく、１台だけであってもよい。また、コントローラ２０には、モータ制御装置３０以外にも、温度センサなどのセンサや加工の様子を撮影するカメラなどが接続されていてもよい。
【００３６】
また、データ収集装置１０、コントローラ２０、及びモータ制御装置３０の各々に記憶されるものとして説明するプログラム及びデータは、ネットワークを介して供給されるようにしてもよい。また、データ収集装置１０、コントローラ２０、及びモータ制御装置３０の各々のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部（例えば、光ディスクドライブやメモリカードスロット）や外部機器と直接的に接続するための入出力部（例えば、ＵＳＢ端子）が含まれていてもよい。この場合、情報記憶媒体に記憶されたプログラムやデータが読取部又は入出力部を介して供給されるようにしてもよい。
【００３７】
［２．トレースデータ取得システムの概要］
トレースデータ取得システム１では、複数のコントローラ２０の各々が、自身に接続されたモータ制御装置３０に対して指令を送信し、モータ制御装置３０が、指令に基づいてモータを動作させることによって、対象物に対して順番に加工が行われる。本実施形態では、コントローラ２０Ａ，２０Ｂ，２０Ｃの順番で、対象物への加工が行われるものとして説明する。
【００３８】
例えば、各コントローラ２０は、モータ制御装置３０からトルク信号や温度情報など受信し、アラームが発生したか否かを判定する。例えば、コントローラ２０は、トルク信号のピーク値が閾値以上になったり、温度情報が閾値以上になったりした場合に、アラームが発生したと判定する。例えば、何れかのコントローラ２０でアラームが発生すると、当該コントローラ２０だけでなく、他のコントローラ２０の動作も停止する。その後、作業員などによってアラームの発生原因が解消すると、各コントローラ２０の動作が再開される。
【００３９】
アラームが発生する原因は多岐に渡るので、その原因を解析するために有効なトレースデータを取得することは非常に重要である。本実施形態のように、複数のコントローラ２０が同じ対象物に対して順番に加工をする場合、互いの動作が密接に関連しているので、あるコントローラ２０で発生したアラームの原因が、他のコントローラ２０に存在することもある。このような場合、アラームが発生したコントローラ２０のトレースデータだけを取得しても、アラームの原因を特定することはできない。
【００４０】
そこで、本実施形態では、何れかのコントローラ２０でアラームが発生した場合に、コントローラ２０全体に対してブロードキャストでトレースデータの取得が要求され、データ収集装置１０に、全てのコントローラ２０のトレースデータを取得させるようにしている。例えば、コントローラ２０Ｂでアラームが発生したとすると、その原因がコントローラ２０Ａ又は２０Ｃに存在する可能性があるので、データ収集装置１０は、コントローラ２０Ｂのトレースデータだけでなく、アラームが発生していないコントローラ２０Ａと２０Ｃのトレースデータも取得するようにしている。これにより、コントローラ２０の状態を解析するために有益なデータを取得することが可能となる。以降、トレースデータ取得システム１の詳細を説明する。
【００４１】
［３．トレースデータ取得システムで実現される機能］
図２は、トレースデータ取得システム１で実現される機能を示す機能ブロック図である。ここでは、データ収集装置１０及びコントローラ２０の各々において実現される機能について説明する。
【００４２】
［３−１．データ収集装置において実現される機能］
図２に示すように、データ収集装置１０では、データ記憶部１００、要求部１０１、及び取得部１０２が実現される。データ記憶部１００は、記憶部１２を主として実現され、要求部１０１と取得部１０２は、ＣＰＵ１１を主として実現される。
【００４３】
［データ記憶部］
データ記憶部１００は、トレースデータＤＴ２を収集するために必要なデータを記憶する。例えば、データ記憶部１００は、トレース条件データベースＤＢ１と、アラーム履歴データベースＤＢ２と、を記憶する。
【００４４】
図３は、トレース条件データベースＤＢ１のデータ格納例を示す図である。図３に示すように、トレース条件データベースＤＢ１は、各コントローラ２０のトレース条件データが格納されたデータベースであり、例えば、コントローラ２０を一意に識別するコントローラＩＤと、トレース条件データと、が格納されている。なお、コントローラ２０を識別する情報としては、コントローラの名前やＩＰアドレスといった他の情報が利用されてもよい。
【００４５】
トレース条件とは、トレースデータＤＴ２を生成する際の計測条件であり、例えば、トレース対象となる軸、トレース対象となる信号の種類、サンプリング周期、又はトレースを行う時間帯などである。トレース条件データは、これらのトレース条件を示すデータであり、例えば、データ収集装置１０を操作するユーザなどによって内容が設定される。例えば、トレース条件データベースＤＢ１に格納されたトレース条件データは、電源投入時などのタイミングでコントローラ２０に展開される。
【００４６】
なお、トレース条件データは、各コントローラ２０に予め記憶されてもよいし、電源投入時以外の任意のタイミングで展開されてもよい。また、本実施形態では、コントローラ２０ごとにトレース条件データが用意されている場合を説明するが、複数のコントローラ２０で共通のトレース条件が設定されてもよい。例えば、全てのコントローラ２０で共通のトレース条件が設定されてもよいし、一部のコントローラ２０で共通のトレース条件が設定されてもよい。
【００４７】
図４は、アラーム履歴データベースＤＢ２のデータ格納例を示す図である。図４に示すように、アラーム履歴データベースＤＢ２は、アラーム発生時に収集されたトレースデータＤＴ２が格納されたデータベースであり、例えば、アラームの発生日時、アラームコード、アラームが発生したコントローラ２０のコントローラＩＤ、及びトレースデータＤＴ２が格納される。
【００４８】
アラームの発生日時は、アラームが発生した時点又はその前後の時点であり、例えば、コントローラ２０がアラームを検出した日時であってもよいし、データ収集装置１０がアラーム発生通知を受信した日時であってもよい。アラームコードは、発生したアラームの種類を示し、トルク異常や温度異常といった複数のコードの中の何れかの値となる。アラームコードとアラームの内容の関係については、データ記憶部１００に予め定義されているものとする。
【００４９】
本実施形態では、何れかのコントローラ２０でアラームが発生した場合、同じネットワーク上に存在する全てのコントローラ２０のトレースデータＤＴ２が収集されるので、アラーム履歴データベースＤＢ２には、各アラームの発生日時に収集された全てのコントローラ２０のトレースデータＤＴ２が格納される。アラーム履歴データベースＤＢ２に格納された情報は、任意のタイミングでユーザに提供される。例えば、ある特定のアラームコードに関連付けられたトレースデータＤＴ２が比較可能にユーザの端末に表示されてもよいし、ある特定の期間に発生したアラームに関連付けられたトレースデータＤＴ２がユーザの端末に表示されてもよい。
【００５０】
なお、データ記憶部１００が記憶するデータは、上記の例に限られない。例えば、データ記憶部１００は、コントローラ２０に接続されたモータ制御装置３０やセンサ類などの構成を示す機器情報を記憶してもよいし、各コントローラ２０の名前やＩＰアドレスを記憶してもよい。また例えば、データ記憶部１００は、コントローラ２０が担当する工程（対象物に加工を行う順番）を識別する情報を記憶してもよい。また例えば、データ記憶部１００は、データ収集装置１０とコントローラ２０を接続する通信路におけるブロードキャストアドレスを記憶してもよい。
【００５１】
［要求部］
要求部１０１は、後述する判定部によりコントローラ２０が特定の条件を満たしたと判定された場合に、他のコントローラ２０にトレースデータＤＴ２の取得を要求する。特定の条件は、予め定められた条件であればよく、コントローラ２０が所定の状態になること、又は、コントローラ２０が所定の動作をすることである。別の言い方をすれば、特定の条件は、トレースデータＤＴ２を収集すべきか否かを示す条件である。
【００５２】
ここでの「トレースデータＤＴ２の取得」とは、取得可能なデータをコントローラ２０に確保させることである。本実施形態のように、コントローラ２０がリングバッファを利用してデータを記録する場合には、別の記憶領域や外部メモリなどにデータをコピーする等してデータを確保することは、トレースデータＤＴ２を取得することに相当する。コントローラ２０がリングバッファを利用しない場合には、例えば、データを上書きや消去しないことがトレースデータＤＴ２を取得することに相当する。例えば、コントローラ２０が要求部１０１による要求後にトレースデータＤＴ２を取得する場合には、コントローラ２０のデータ記憶部２００にトレースデータＤＴ２を保存する処理は、トレースデータＤＴ２を取得する処理に相当する。
【００５３】
要求部１０１による要求は、コントローラ２０にトレースデータＤＴ２を取得させるためのトリガとなる。要求は、所定形式の情報が送信されることによって、行われるようにすればよい。本実施形態では、コントローラ２０は、要求を受信したからといって、すぐにトレースデータＤＴ２を取得するとは限らない。例えば、コントローラ２０は、要求を受信した後に、トレースデータＤＴ２を取得するための条件が満たされた場合に、トレースデータＤＴ２を取得する。この条件は、任意の条件であってよく、例えば、トルク信号が所定の波形を示すこと、モータのフィードバック速度が所定範囲になること等である。なお、データ収集装置１０とコントローラ２０との間で同期通信が可能であり、要求部１０１による要求が同期通信で送信される場合（即ち、要求が同期タスクとして処理される場合）には、コントローラ２０は、要求を受信してすぐにトレースデータＤＴ２を取得してもよい。
【００５４】
本実施形態では、アラームが発生することが特定の条件を満たすことに相当する場合を説明するが、特定の条件は、任意の条件を適用可能であり、例えば、コントローラ２０内の特定のスイッチがオンになること、当該スイッチがオフになること、又はアラームの発生条件は満たさないが（即ち、加工物に対する加工が停止されるわけではないが）、センサの検出信号が所定の特徴を示すことなどである。なお、所定の特徴は、トレースデータＤＴ２を収集する必要がある特徴としてユーザが指定した特徴であればよく、例えば、トルク信号の波形に乱れが生じること、整定時間が閾値以上になること、トルク信号のピーク値又は収束値が許容範囲を超えることなどである。
【００５５】
要求部１０１は、コントローラ２０でアラームが発生したと判定された場合に、他のコントローラ２０にトレースデータＤＴ２の取得を要求する。他のコントローラ２０とは、アラームが発生していないコントローラ２０である。要求部１０１は、少なくとも１台の他のコントローラ２０に対し、トレースデータＤＴ２の取得を要求すればよい。
【００５６】
本実施形態では、要求部１０１は、あるコントローラ２０でアラームが発生した場合に、同じネットワークに存在する全てのコントローラ２０に対し、トレースデータＤＴ２の取得を要求する場合を説明する。即ち、要求部１０１は、アラームが発生したコントローラ２０と、他のコントローラ２０と、の各々に、トレースデータＤＴ２の取得を要求する。ただし、アラームが発生したコントローラ２０が自発的にトレースデータＤＴ２を送信する場合には、要求部１０１は、アラームが発生したコントローラ２０については、トレースデータＤＴ２の取得を要求する必要がないので、トレースデータＤＴ２の取得を要求しなくてよい。また、後述する変形例のように、要求部１０１は、他のコントローラ２０の全てではなく一部に対し、トレースデータＤＴ２の取得を要求してもよい。
【００５７】
例えば、要求部１０１は、全てのコントローラ２０に対し、トレースデータＤＴ２の取得を要求することを示す識別子を含むパケットを送信することによって、トレースデータＤＴ２の取得を要求する。要求部１０１は、ブロードキャストアドレス宛てに当該パケットを送信してもよいし、個々のコントローラ２０のＩＰアドレス宛てに当該パケットを送信してもよい。
【００５８】
なお、本実施形態では、コントローラ２０Ａ〜２０Ｃの３つが同じグループに属しており、共通の対象物に対して加工が行われるが、工場などの施設には、複数のグループが存在することもある。このグループは、ライン又はセルと呼ばれることもある。この場合、グループごとにネットワークを分けておき、グループごとにトレースデータＤＴ２を収集できるようにしてもよい。要求部１０１は、あるグループでアラームが発生した場合に、他のグループに対してもトレースデータＤＴ２の取得を要求してもよいが、グループが異なるとアラームとの関連性は薄いので、本実施形態では、他のグループについてはトレースデータＤＴ２の取得を要求しないものとする。即ち、要求部１０１は、あるグループのコントローラ２０でアラームが発生したと判定された場合に、当該グループの全てのコントローラ２０にトレースデータＤＴ２の取得を要求し、他のグループについてはトレースデータＤＴ２の取得を要求しない。
【００５９】
また、要求部１０１は、アラームが発生時以外のときに、コントローラ２０に対し、トレースデータＤＴ２の取得を要求してもよい。例えば、データ収集装置１０のユーザが所定の操作をした場合、又は、データ収集装置１０が実行するアプリケーションで所定の条件が満たされた場合などに、要求部１０１は、コントローラ２０に対し、トレースデータＤＴ２の取得を要求してもよい。
【００６０】
［取得部］
取得部１０２は、特定の条件を満たしたコントローラ２０のトレースデータＤＴ２と、他のコントローラ２０のトレースデータＤＴ２と、を取得する。本実施形態では、アラームが発生することが特定の条件を満たすことに相当するので、取得部１０２は、アラームが発生したコントローラ２０のトレースデータＤＴ２と、他のコントローラ２０のトレースデータＤＴ２と、を取得する。また、本実施形態では、要求部１０１により全てのコントローラ２０にトレースデータＤＴ２の取得が要求されるので、取得部１０２は、要求部１０１の要求に応じて各コントローラ２０が送信したトレースデータＤＴ２を取得することになる。
【００６１】
なお、アラームが発生したコントローラ２０が自発的にトレースデータＤＴ２を送信する場合には、取得部１０２は、当該自発的に送信されたトレースデータＤＴ２を取得する。また、ユーザの操作やデータ収集装置１０が実行するアプリケーションの処理によってトレースデータＤＴ２の取得が要求される場合には、取得部１０２は、当該要求に応じて送信されたトレースデータＤＴ２を取得する。更に、コントローラ２０内で所定のトリガ条件が満たされた場合にトレースデータＤＴ２が送信される場合には、取得部１０２は、トリガ条件が満たされたことに応じて送信されたトレースデータＤＴ２を取得する。
【００６２】
本実施形態では、取得部１０２は、発生したアラームに関するアラーム情報に関連付けて、取得したトレースデータＤＴ２を記憶部に記録する。アラーム情報は、アラームに関連する任意の情報であってよく、例えば、アラームの発生日時、アラームコード、又はアラームが発生したコントローラ２０のコントローラＩＤである。なお、アラーム情報には、アラーム発生時のコントローラ２０又はモータ制御装置３０のパラメータなどの設定情報が含まれていてもよい。
【００６３】
また、本実施形態では、アラームが発生したコントローラ２０だけでなく、他のコントローラ２０の全てに対してトレースデータＤＴ２の取得が要求されるので、取得部１０２は、複数のコントローラ２０の全てのトレースデータＤＴ２を取得する。このため、アラーム履歴データには、１回のアラームに対し、全てのコントローラ２０のトレースデータＤＴ２が格納される。先述したように、ここでの全てのコントローラ２０とは、アラームが発生したコントローラ２０と同じネットワーク上にいる全てのコントローラ２０という意味であり、他のネットワーク上のコントローラ２０は含まれない。
【００６４】
本実施形態では、複数のコントローラ２０の各々は、少なくとも１つのモータ制御装置３０を制御するので、取得部１０２は、アラームが発生したコントローラ２０が制御するモータ制御装置３０のトレースデータＤＴ２と、他のコントローラ２０が制御するモータ制御装置３０のトレースデータＤＴ２と、を取得する。図１の構成例であれば、取得部１０２は、モータ制御装置３０Ａ１〜３０Ａ５，３０Ｂ１〜３０Ｂ６，３０Ｃ１〜３０Ｃ４の全てのトレースデータＤＴ２を取得することになる。なお、トレース条件データに、トレース対象の軸として指定されていない場合には、トレースデータＤＴ２の取得対象から除外される。
【００６５】
なお、取得部１０２がトレースデータＤＴ２を取得するのは、任意のタイミングであってよく、例えば、ネットワークの通信量が比較的少なく通信の余力があるときであってもよいし、データ収集装置１０及びコントローラ２０の少なくとも一方の都合のよいタイミングであってもよい。都合のよいタイミングとは、例えば、処理負荷が比較的少ないタイミング、重要な同期タスクを処理していないタイミングなどである。他にも例えば、コントローラ２１にトレースデータＤＴ２を保存しておき、ユーザがトレースデータＤＴ２を解析するための操作をした場合に、取得部１０２がトレースデータＤＴ２を取得してもよいし、予め定められた収集時刻が訪れた場合に、取得部１０２がトレースデータＤＴ２を取得してもよい。
【００６６】
［３−２．コントローラにおいて実現される機能］
図２に示すように、コントローラ２０では、データ記憶部２００、判定部２０１、生成部２０２、及び送信部２０３が実現される。なお、本実施形態では、全てのコントローラ２０が同様の機能を有するので、図２では、簡略化のために、コントローラ２０を１つだけ示している。データ記憶部２００は、記憶部２２を主として実現され、判定部２０１、生成部２０２、及び送信部２０３は、ＣＰＵ２１を主として実現される。
【００６７】
［データ記憶部］
データ記憶部２００は、データ収集装置１０にトレースデータＤＴ２を送信するために必要なデータを記憶する。例えば、データ記憶部２００は、トレース条件データＤＴ１を記憶する。本実施形態では、コントローラ２０の電源投入時にトレース条件データＤＴ１が展開されるので、データ記憶部２００は、当該展開されたトレース条件データＤＴ１を記憶する。
【００６８】
また例えば、データ記憶部２００は、トレース条件データＤＴ１に基づいて生成されたトレースデータＤＴ２を記憶する。トレースデータＤＴ２は、データ記憶部２００の任意の記憶領域に格納されてよく、本実施形態では、いわゆるリングバッファと呼ばれる記憶領域に格納される場合を説明する。例えば、リングバッファは、直近の期間における計測結果を記憶し、当該期間よりも前の計測結果は消去される。トレースデータＤＴ２に計測結果が含まれる期間は、リングバッファのメモリサイズに応じて決定される。
【００６９】
なお、データ記憶部２００が記憶するデータは、上記の例に限られない。例えば、データ記憶部２００は、コントローラ２０に接続されたモータ制御装置３０やセンサ類などの構成を示す機器情報、モータ制御装置３０の名前やＩＰアドレス、及びモータ制御装置３０のパラメータなどを記憶してもよい。また例えば、データ記憶部２００は、データ収集装置１０のＩＰアドレスやデータ収集装置１０とコントローラ２０を接続する通信路におけるブロードキャストアドレスを記憶してもよい。
【００７０】
［判定部］
判定部２０１は、コントローラ２０が特定の条件を満たしたか否かを判定する。本実施形態では、複数のコントローラ２０の各々により判定部２０１が実現されるので、複数のコントローラ２０の各々の判定部２０１は、自身が特定の条件を満たしたか否かを判定することになる。
【００７１】
判定部２０１は、コントローラ２０が取得したセンサやスイッチの検出信号などに基づいて、特定の条件を満たしたか否かを判定する。例えば、判定部２０１は、モータ制御装置３０に接続されたモータエンコーダ又はトルクセンサなどの検出信号に基づいて、特定の条件を満たしたか否かを判定する。また例えば、判定部２０１は、コントローラ２０に接続された温度センサの検出信号に基づいて、特定の条件を満たしたか否かを判定する。また例えば、判定部２０１は、コントローラ２０内部のスイッチのオン／オフの検出信号に基づいて、特定の条件を満たしたか否かを判定する。
【００７２】
本実施形態では、コントローラ２０にアラームが発生することが特定の条件を満たすことに相当するので、判定部２０１は、コントローラ２０がアラームの発生条件を満たしたか否かを判定する。例えば、アラームコードごとに、アラームの発生条件が定められており、判定部２０１は、コントローラ２０が取得したセンサの検出信号が示す値が発生条件を満たすか否かを判定する。判定部２０１は、発生条件が満たされたアラームコードのアラームを発生させ、例えば、データ収集装置１０に対し、アラームの発生日時と、発生したアラームのアラームコードと、を送信する。
【００７３】
［生成部］
生成部２０２は、トレース条件データＤＴ１に基づいてトレースデータＤＴ２を生成する。例えば、生成部２０２は、トレース条件データＤＴ１に基づいて計測された計測結果を含むトレースデータＤＴ２を生成する。本実施形態では、トレース条件データＤＴ１に、トレース対象となる軸、トレース対象となる信号の種類、サンプリング周期、又はトレースを行う時間帯といった情報が示されているので、生成部２０２は、これらの情報に基づいてトレースデータＤＴ２を生成する。なお、本実施形態のように、トレースデータＤＴ２に時刻情報を含める場合には、生成部２０２は、リアルタイムクロック等により日時を取得し、トレースデータＤＴ２に含めるようにすればよい。
【００７４】
本実施形態では、トレースデータＤＴ２がリングバッファに格納されるので、生成部２０２は、直近の期間における計測結果をデータ記憶部２００に記録し、当該期間よりも前の計測結果はデータ記憶部２００から消去する。そして、生成部２０２は、要求部１０１からの要求を受信した場合に、データ記憶部２００に記録された計測結果に基づいて、トレースデータＤＴ２を生成する。即ち、生成部２０２は、要求部１０１から要求を受信した時点でのトレースデータＤＴ２をキャプチャし、送信用のトレースデータＤＴ２として取得する。
【００７５】
なお、アラームが発生したコントローラ２０が自発的にトレースデータＤＴ２を送信する場合には、生成部２０２は、アラームが発生した時点でのトレースデータＤＴ２をキャプチャし、送信用のトレースデータＤＴ２として取得すればよい。また、アラーム発生以外のタイミングでトレースデータＤＴ２が送信される場合には、生成部２０２は、当該タイミングにおけるトレースデータＤＴ２をキャプチャし、送信用のトレースデータＤＴ２として取得すればよい。
【００７６】
［送信部］
送信部２０３は、データ収集装置１０に自身のトレースデータＤＴ２を送信する。本実施形態では、送信部２０３は、データ収集装置１０の要求部１０１からトレースデータＤＴ２の取得が要求された場合に、生成部２０２により生成されたトレースデータＤＴ２を送信する。なお、アラームが発生したコントローラ２０が自発的にトレースデータＤＴ２を送信する場合には、送信部２０３は、アラームが発生した場合に、生成部２０２により生成されたトレースデータＤＴ２を送信する。また、アラーム発生以外のタイミングでトレースデータＤＴ２が送信される場合には、送信部２０３は、当該タイミングが訪れた場合に、生成部２０２により生成されたトレースデータＤＴ２を送信する。
【００７７】
［４．トレースデータ取得システムで実行される処理］
図５は、トレースデータ取得システム１で実行される処理を示すフロー図である。図５に示す処理は、ＣＰＵ１１，２１がそれぞれ記憶部１２，２２に記憶されたプログラムに従って動作することによって実行される。以降説明する処理は、図２に示す機能ブロックにより実行される処理の一例である。なお、本実施形態では、トレースデータＤＴ２を生成して送信する処理自体は、全てのコントローラ２０で共通するので、図５では、簡略化のために、コントローラ２０を１つだけ示している。
【００７８】
図５に示すように、コントローラ２０などの電源が投入されると、データ収集装置１０においては、ＣＰＵ１１は、トレース条件データベースＤＢ１に基づいて、複数のコントローラ２０の各々に対し、トレース条件データＤＴ１を展開する（Ｓ１）。Ｓ１においては、ＣＰＵ１１は、記憶部１２に記憶されたコントローラ２０のＩＰアドレスを参照し、データ収集装置１０の配下に接続されているコントローラ２０を特定する。そして、ＣＰＵ１１は、当該特定されたコントローラ２０に対し、トレース条件データベースＤＢ１に格納されたトレース条件データＤＴ１を送信する。
【００７９】
各コントローラ２０においては、トレース条件データＤＴ１を受信すると、ＣＰＵ２１は、受信したトレース条件データＤＴ１を記憶部２２に記録する（Ｓ２）。Ｓ２の処理により、トレース対象となる軸や情報の種類などが設定されることになる。以降、コントローラ２０はモータ制御装置３０に対して指令を送信し、モータ制御装置３０は当該指令に応じてモータを制御する。モータ制御装置３０は、トルクセンサ、モータエンコーダ、及び温度センサなどの検出結果をコントローラ２０に送信する。
【００８０】
ＣＰＵ２１は、モータ制御装置３０からトルクセンサなどの検出結果を取得し、記憶部２２のリングバッファに格納する（Ｓ３）。リングバッファには、直近の一定期間の検出結果が格納されるので、Ｓ３においては、ＣＰＵ２１は、モータ制御装置３０から取得した検出結果をリングバッファに格納し、最も古い検出結果をリングバッファから消去する。
【００８１】
ＣＰＵ２１は、モータ制御装置３０から取得したトルクセンサなどの検出結果に基づいて、アラームが発生したか否かを判定する（Ｓ４）。例えば、記憶部２２には、アラームコードごとにアラームの発生条件が定義されており、Ｓ４においては、ＣＰＵ２１は、各アラームコードの発生条件が満たされたか否かを判定する。
【００８２】
アラームが発生したと判定されない場合（Ｓ４；Ｎ）、Ｓ３の処理に戻り、トルクセンサなどの検出結果がリングバッファに格納される。一方、アラームが発生したと判定された場合（Ｓ４；Ｙ）、ＣＰＵ２１は、データ収集装置１０に対し、アラーム発生通知を送信する（Ｓ５）。Ｓ５においては、ＣＰＵ２１は、自身のコントローラＩＤ、アラームの発生日時（即ち、現在日時）、及び発生したアラームのアラームコードを含むアラーム発生通知を送信する。
【００８３】
データ収集装置１０においては、ＣＰＵ１１は、アラーム発生通知を受信すると、全てのコントローラ２０に対し、ブロードキャストでトレースデータＤＴ２の取得を要求する（Ｓ６）。Ｓ６においては、ＣＰＵ１１は、アラーム発生通知を送信したコントローラ２０が接続されたネットワークのブロードキャストアドレスに対し、トレースデータＤＴ２の取得を要求する旨の識別子を含むパケットを送信する。これにより、アラームが発生したことが全てのコントローラ２０で共有され、各コントローラ２０は、動作を停止する。
【００８４】
各コントローラ２０においては、トレースデータＤＴ２の取得の要求を受信すると、ＣＰＵ２１は、トレースデータＤＴ２を生成し（Ｓ７）、データ収集装置１０に、Ｓ７で生成したトレースデータＤＴ２を送信する（Ｓ８）。Ｓ７においては、ＣＰＵ２１は、記憶部２２のリングバッファの現在の状態をキャプチャし、トレースデータＤＴ２として取得する。Ｓ８においては、ＣＰＵ２１は、トレースデータＤＴ２の取得の要求に対する応答として、当該取得されたトレースデータＤＴ２を送信する。
【００８５】
データ収集装置１０においては、各コントローラ２０からトレースデータＤＴ２を受信すると、ＣＰＵ２１は、アラーム情報に関連付けて、受信したトレースデータＤＴ２をアラーム履歴データベースＤＢ２に格納し（Ｓ９）、本処理は終了する。Ｓ９においては、ＣＰＵ２１は、アラーム履歴データベースＤＢ２に新たなレコード作成し、Ｓ６で受信したアラームの発生日時及びアラームコードと、Ｓ６で受信したアラーム発生通知を送信したコントローラのコントローラＩＤと、を格納する。また、ＣＰＵ２１は、当該レコードに、全てのコントローラ２０から受信したトレースデータＤＴ２を格納する。作業員などによりコントローラ２０の動作が再開した場合には、再びＳ１又はＳ３の処理から実行される。
【００８６】
トレースデータ取得システム１によれば、複数のコントローラ２０の各々の制御により、対象物に対して順番に加工が行われる場合に、アラーム発生などの特定の条件を満たしたコントローラ２０だけでなく、他のコントローラ２０（特定の条件を満たしていないコントローラ２０）についてもトレースデータＤＴ２の取得を要求することで、コントローラ２０の状態を解析するために有益なデータを取得することができる。これにより、作業員などの解析者による解析作業を支援したり、ＡＩなどに解析させたりすることができ、解析の精度を高めることができる。例えば、あるコントローラ２０が特定の条件を満たした場合に、当該コントローラ２０の状態が原因のこともあるし、他のコントローラ２０の状態が原因のこともある。この点、他のコントローラ２０についてもトレースデータＤＴ２を取得することで、何れの場合であったとしても原因の解析をすることができる。また例えば、コントローラ２０が特定の条件を満たしたときに自動的にトレースデータＤＴ２を取得するようにした場合、他のコントローラ２０については特定の条件を満たしておらず、自動的にトレースデータＤＴ２を取得することはできないが、要求部１０１にトレースデータＤＴ２の取得を要求させることで、他のコントローラ２０についても確実にトレースデータＤＴ２を取得することができる。また、データ収集装置１０が常にトレースデータＤＴ２を収集する場合には、メモリ使用量が増大してしまうが、特定の条件が満たされた場合のトレースデータＤＴ２を取得することで、メモリ使用量を抑えることができる。
【００８７】
また、データ収集装置１０に、アラームが発生したコントローラ２０のトレースデータＤＴ２と、他のコントローラ２０のトレースデータＤＴ２と、を取得させることにより、データ収集装置１０でトレースデータＤＴ２を一括して管理することができる。
【００８８】
また、アラームの発生が特定の条件として利用される場合に、アラームが発生したコントローラ２０だけでなく、他のコントローラ２０（アラームが発生していないコントローラ２０）についてもトレースデータＤＴ２を取得することで、コントローラ２０の状態を解析するために有益なデータを取得することができる。これにより、作業員などの解析者による解析作業を支援したり、ＡＩなどに解析させたりすることができ、アラーム発生の解析精度を高めることができる。例えば、あるコントローラ２０にアラームが発生した場合に、当該コントローラ２０の状態が原因のこともあるし、他のコントローラ２０の状態が原因のこともある。この点、他のコントローラ２０についてもトレースデータＤＴ２を取得することで、何れの場合であったとしてもアラーム発生の原因を解析することができる。また例えば、コントローラ２０にアラームが発生したときに自動的にトレースデータＤＴ２を取得するようにした場合、他のコントローラ２０についてはアラームが発生しておらず、自動的にトレースデータＤＴ２を取得することはできないが、要求部１０１にトレースデータＤＴ２の取得を要求させることで、他のコントローラ２０についても確実にトレースデータＤＴ２を取得することができる。また、データ収集装置１０が常にトレースデータＤＴ２を収集する場合には、メモリ使用量が増大してしまうが、アラームが発生した場合のトレースデータＤＴ２を取得することで、メモリ使用量を抑えることができる。
【００８９】
また、アラーム情報に関連付けてトレースデータＤＴ２を記録することで、アラーム発生の原因解析を効果的に支援することができる。例えば、アラームの種類ごとにトレースデータＤＴ２を解析者に解析させることで、解析者は原因の分析作業をしやすくなる。また例えば、アラームの種類ごとに機械学習の教師データを作成することで、精度の高い学習器を作成することができ、ＡＩによる解析の精度を向上させることができる。
【００９０】
また、アラームが発生したコントローラ２０のトレースデータＤＴ２と、他のコントローラ２０のトレースデータＤＴ２と、をデータ収集装置１０に取得させることで、データ収集装置１０でトレースデータＤＴ２を一括して管理させ、データの管理を容易にすることができる。
【００９１】
また、トレースデータＤＴ２の取得を要求する構成をデータ収集装置１０に持たせることで、個々のコントローラ２０がトレースデータＤＴ２の取得を要求する処理を実行せずに済み、コントローラ２０の処理負荷を軽減することができる。
【００９２】
また、データ収集装置１０で各コントローラ２０のアラーム発生を判定するのではなく、個々のコントローラ２０にアラーム発生の判定処理を分散させることで、アラームが発生したことをより迅速に検知し、トレースデータＤＴ２をより迅速に取得することができる。迅速にトレースデータＤＴ２を取得することで、アラームの発生時点により近いトレースデータＤＴ２を取得することができ、より有益なデータを取得することができる。また、データ収集装置１０が存在する場合に、上記構成を個々のコントローラ２０に分散させることで、データ収集装置１０の処理負荷を軽減することもできる。
【００９３】
また、アラームが発生したコントローラ２０だけでなく、他の全てのコントローラ２０についてもトレースデータＤＴ２を取得することで、トレースデータＤＴ２を網羅的に取得し、コントローラ２０の状態を解析するために有益なデータを取得することができる。例えば、あるコントローラ２０が条件を満たした場合に、その原因がどのコントローラ２０にあったとしても、トレースデータＤＴ２を網羅的に取得することで、原因の解析をすることができる。
【００９４】
また、複数のコントローラ２０の各々が少なくとも１つのモータ制御装置３０を制御する場合に、個々のコントローラ２０のトレースデータＤＴ２だけでなく、個々のコントローラ２０が制御するモータ制御装置３０のトレースデータＤＴ２も取得することで、コントローラ２０の状態を解析するために有益なデータを取得することができる。例えば、あるコントローラ２０でアラームが発生したときの原因が、制御対象の何れかのモータ制御装置３０が原因のことがある。この点、制御対象のモータ制御装置３０についてトレースデータＤＴ２を取得することで、原因の解析をすることができる。
【００９５】
また、個々のコントローラ２０にトレース条件データＤＴ１を予め記憶させておき、トレース条件データＤＴ１に基づいてトレースデータＤＴ２を生成することで、個々のコントローラ２０にあったトレースデータＤＴ２を生成することができる。
【００９６】
また、個々のコントローラ２０は、過去の全ての期間における計測結果を自身の記憶部２２に記録しておくのではなく、リングバッファを利用して、直近の期間の計測結果を記録しておくことで、メモリ消費量を抑えることができる。
【００９７】
また、トレースデータＤＴ２に時刻情報を含めておくことで、ユーザは、トレースデータＤＴ２を参照するだけで、どの時点のトレースデータＤＴ２なのかを特定することができ、ユーザによる解析を効果的に支援することができる。
【００９８】
［５．変形例］
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【００９９】
図６は、変形例の機能ブロック図である。図６に示すように、以降説明する変形例では、データ収集装置１０において記録部１０３と提供部１０４が実現される。これらは、ＣＰＵ１１を主として実現される。
【０１００】
（１）例えば、実施形態では、アラームが発生したコントローラ２０と同じネットワークの全てのコントローラ２０のトレースデータＤＴ２が取得される場合を説明したが、アラームの発生原因となるのは、アラームが発生したコントローラ２０と、その前後の工程を担当するコントローラ２０と、が関係していることが多い。
【０１０１】
例えば、５台のコントローラ２０の各々の制御により、対象物に対して５つの工程の加工が順番に行われたとする。この場合に、３台目のコントローラ２０（３番目の工程を担当するコントローラ２０）でアラームが発生したとすると、その原因は、直近の２台目又は４台目のコントローラ（直近の２番目又は４番目の工程を担当するコントローラ２０）が関係していることがあり、１台目又は５台目のコントローラ（１番目又は５番目の工程を担当するコントローラ２０）が関係していることは少ない。このため、５台全てのトレースデータＤＴ２を取得するのではなく、２台目〜４台目の３台のみトレースデータＤＴ２を取得してもよい。
【０１０２】
本変形例の要求部１０１は、複数のコントローラ２０のうち、アラームが発生したコントローラ２０の前工程を担当するコントローラ２０と、条件を満たしたコントローラ２０の後工程を担当するコントローラ２０と、の少なくとも一方に、トレースデータＤＴ２の取得を要求する。ここでは、要求部１０１は、前工程を担当するコントローラ２０と、後工程を担当するコントローラ２０と、の両方にトレースデータＤＴ２の取得を要求する場合を説明するが、何れか一方のみにトレースデータＤＴ２の取得を要求してもよい。
【０１０３】
例えば、データ記憶部１００に、各工程を担当するコントローラ２０のコントローラＩＤが格納されており、要求部１０１は、アラーム発生通知に含まれるコントローラＩＤに基づいて、前後の工程を担当するコントローラ２０を特定する。要求部１０１は、アラームが発生していないコントローラ２０のうち、当該特定したコントローラ２０にトレースデータＤＴ２の取得を要求し、それ以外のコントローラ２０にはトレースデータＤＴ２の取得を要求しない。
【０１０４】
取得部１０２は、アラームが発生したコントローラ２０のトレースデータＤＴ２と、前工程を担当するコントローラ２０のトレースデータＤＴ２及び後工程を担当するコントローラ２０のトレースデータＤＴ２の少なくとも一方と、を取得する。各コントローラ２０が要求部１０１からの要求に応じてトレースデータＤＴ２を送信する点については、実施形態で説明した通りである。本変形例では、前工程を担当するコントローラ２０と、後工程を担当するコントローラ２０と、の両方にトレースデータＤＴ２の取得が要求されるので、取得部１０２は、これらの両方からトレースデータＤＴ２を取得し、アラーム履歴データベースＤＢ２に格納する。
【０１０５】
変形例（１）によれば、あるコントローラ２０でアラームが発生した場合に、その原因は、前工程及び後工程の少なくとも一方で発生していることが多いので、これら少なくとも一方のトレースデータＤＴ２を取得することで、解析に有用なデータを取得することができる。また、実施形態で説明したように、全てのトレースデータＤＴ２を網羅的に取得する場合に比べて、特に重要度の高いデータに絞って取得するので、トレースデータ取得システム１全体の処理負荷及び通信負荷を軽減し、メモリ消費量を抑制することもできる。
【０１０６】
（２）また例えば、トレースデータ取得システム１では、ある対象物に対する加工が終了すると、次の対象物に対する加工が開始され、複数の対象物の各々に対して次々と加工が行われる。この場合、各対象物に関連付けて、どのような状態で加工が行われたかを示す加工情報を記録しておき、出荷後などにおいて追跡可能にすることでトレーサビリティを高めるようにしてもよい。
【０１０７】
本変形例のデータ記憶部１００は、加工情報データベースＤＢ３を記憶する。図７は、加工情報データベースＤＢ３のデータ格納例を示す図である。図７に示すように、加工情報データベースＤＢ３には、対象物を一意に識別する対象物ＩＤと加工情報とが格納される。なお、対象物ＩＤは、対象物の識別情報の一例であり、当該識別情報としては、シリアル番号又は個体識別情報と呼ばれる情報であってもよい。
【０１０８】
加工情報は、対象物が加工されたときの加工状況を示す。対象物は、複数の工程により加工が行われるので、加工情報は、個々の工程を示す情報ということもできる。例えば、加工情報には、対象物に対する加工の開始時点及び終了時点、又は、加工をしたコントローラ２０及びモータ制御装置３０の情報といった情報が格納される。他にも例えば、加工情報は、加工をしたコントローラ２０及びモータ制御装置３０の各々の部品やモータのシリアル番号などの情報が含まれていてもよいし、トルクセンサなどの検出信号の波形が示されていてもよい。他にも例えば、対象物が加工される様子をカメラで撮影する場合には、加工情報として、当該カメラで撮影された静止画又は動画が含まれていてもよい。
【０１０９】
本変形例では、記録部１０３が実現される。記録部１０３は、対象物ＩＤに関連付けて、複数のコントローラ２０の各々により行われた加工に関する加工情報を記録する。例えば、各コントローラ２０は、対象物に対する加工が完了するたびに、当該対象物の加工情報を生成してデータ収集装置１０に送信する。データ収集装置１０は、各コントローラ２０から加工情報を受信すると、対象物ＩＤに関連付けて加工情報データベースＤＢ３に格納する。加工情報データベースＤＢ３に格納された加工情報は、データ収集装置１０の表示部１５等に表示させることができる。例えば、ユーザが対象物ＩＤを指定すると、当該対象物ＩＤに関連付けられた加工情報が表示される。
【０１１０】
変形例（２）によれば、対象物ＩＤに関連付けて、個々のコントローラ２０の加工情報を記録しておくことで、対象物が加工されたときの状態を特定することができる。例えば、対象物が出荷された後などであっても、対象物がどのような条件で加工されたかを特定することができる。
【０１１１】
（３）また例えば、変形例（２）で記録された加工情報は、アラームが発生した原因を分析するための学習器の学習で使用されるなどの用途で使用されてもよいし、アラームが発生した原因を解析させるための情報として提供されてよい。
【０１１２】
本変形例では、提供部１０４が実現される。提供部１０４は、コントローラ２０でアラームが発生した場合に加工された対象物の対象物ＩＤに関連付けられた加工情報を提供する。アラームが発生した場合に加工された対象物とは、アラームが発生したときに加工対象となっていた対象物である。加工情報が示す開始時点から終了時点までの間にアラームの発生時点が含まれる対象物は、アラームが発生した場合に加工された対象物である。
【０１１３】
加工情報は、任意の相手に提供可能であり、例えば、データ収集装置１０を使用するユーザに提供されてもよいし、加工情報へのアクセスが許可されたユーザに提供されてもよい。例えば、ユーザが対象物ＩＤを指定すると、提供部１０４は、加工情報データベースＤＢ３を参照し、当該指定された対象物ＩＤに関連付けられた加工情報を取得し、当該ユーザに提供する。なお、提供とは、加工情報の閲覧又はアクセスを許可することであり、提供部１０４は、ユーザの端末に対し、加工情報を送信する。加工情報は、ユーザの端末で表示されたり、ユーザの端末のメモリに記録されたりする。
【０１１４】
変形例（３）によれば、コントローラ２０にアラームが発生した場合の加工情報を提供することで、コントローラ２０の状態を解析するために有益な情報を提供することができる。
【０１１５】
（４）また例えば、上記変形例を組み合わせてもよい。
【０１１６】
また例えば、実施形態では、コントローラ２０のリングバッファにセンサの検出結果が格納される場合を説明したが、特にリングバッファではなく、メモリサイズが可変の記憶領域に検出結果が格納されてもよい。また例えば、コントローラ２０のトレースデータについて説明したが、トレースデータ取得システム１は、ロボットコントローラなどの任意のトレースデータを収集可能である。
【０１１７】
また例えば、上位装置であるデータ収集装置１０が特に存在しなくてもよい。この場合、コントローラ２０が主体となって、トレースデータＤＴ２の収集が行われるようにしてもよい。例えば、要求部１０１は、コントローラ２０で実現されてもよい。この場合、アラームが発生したコントローラ２０の要求部１０１は、ブロードキャストでトレースデータＤＴ２の取得を要求する。他にも例えば、コントローラ２０のデータ記憶部２００に、他のコントローラ２０のＩＰアドレスを記憶させておき、アラームが発生したコントローラ２０の要求部１０１は、他のコントローラのＩＰアドレスに基づいて、トレースデータＤＴ２の取得を要求する。
【０１１８】
また例えば、取得部１０２は、コントローラ２０で実現されてもよい。この場合、アラームが発生したコントローラ２０の要求部１０１の要求に応じて他のコントローラ２０が送信したトレースデータＤＴ２を、アラームが発生したコントローラ２０の取得部１０２が取得することになる。当該コントローラ２０は、自身でトレースデータＤＴ２を記憶しておいてもよいし、任意のタイミングでデータ収集装置１０に送信してもよい。他にも例えば、取得部１０２は、データ収集装置１０及びコントローラ２０以外のコンピュータ（例えば、サーバコンピュータ）により実現され、トレースデータ取得システム１で要求部１０１と判定部２０１だけが実現されてもよい。また例えば、判定部２０１は、データ収集装置１０で実現されてもよい。この場合、コントローラ２０は、自身の動作状況をデータ収集装置１０に送信し、データ収集装置１０の判定部２０１は、各コントローラ２０から受信した動作状況に基づいて、アラームが発生したか否かを判定すればよい。
【０１１９】
また、以上説明した実施形態は具体例として示したものであり、本明細書にて開示される発明をこれら具体例の構成やデータ格納例そのものに限定するものではない。当業者はこれら開示された実施形態に種々の変形、例えば、物理的構成の形状や数、データ構造、処理の実行順を変更したりしてもよい。本明細書にて開示される発明の技術的範囲は、そのようになされた変形をも含むものと理解すべきである。
【符号の説明】
【０１２０】
１  トレースデータ取得システム、１０  データ収集装置、１１，２１  ＣＰＵ、１２，２２  記憶部、１３，２３  通信部、１４  操作部、１５  表示部、２０  コントローラ、３０  モータ制御装置、１００  データ記憶部、１０１  要求部、１０２  取得部、１０３  記録部、１０４  提供部、２００  データ記憶部、２０１  判定部、２０２  生成部、２０３  送信部、ＤＢ１  トレース条件データベース、ＤＢ２  アラーム履歴データベース、ＤＢ３  加工情報データベース、ＤＴ１  トレース条件データ、ＤＴ２  トレースデータ。
【図１】
2020123230.tif 000003
【図２】
2020123230.tif 000004
【図３】
2020123230.tif 000005
【図４】
2020123230.tif 000006
【図５】
2020123230.tif 000007
【図６】
2020123230.tif 000008
【図７】
2020123230.tif 000009