(57)【特許請求の範囲】
【請求項１】
複数の工程それぞれを実行可能であり、前記複数の工程それぞれに関連付けられた開始変数が所定の値に変化したことを検出可能な産業装置と、
前記産業装置に発生した異常を検出する検出部と、
前記検出部が前記異常を検出した場合に、前記複数の工程それぞれに対して、少なくとも、工程の名称と、前記産業装置の動作を表して工程で実行される工程プログラムの開始条件となり、前記所定の値に変化したことが検出されると当該工程プログラムが開始する前記開始変数を含む変数と、が関連付けられた工程情報に基づいて、復旧のために実行する１以上の前記工程の指定を受け付ける受付部と、
前記受付部が受け付けた前記１以上の工程が実行されるように、前記産業装置を制御するコントローラが前記開始変数を前記所定の値に変更するための復旧工程情報を記録する記録部と、
を有する生産システム。
【請求項２】
前記生産システムは、前記検出部が前記異常を再び検出した場合に、前記記録部が記録した前記復旧工程情報が示す前記１以上の工程を取得し、当該取得した１以上の工程を実行して前記異常を復旧させる復旧部、
を更に有する請求項１に記載の生産システム。
【請求項３】
前記生産システムは、前記検出部が検出した前記異常の種類を取得する種類取得部を更に有し、
前記記録部は、前記種類取得部が取得した前記異常の種類に関連付けて、前記復旧工程情報を記録し、
前記復旧部は、前記検出部が前記異常を再び検出した場合に、当該異常の種類に関連付けられた前記復旧工程情報が示す前記１以上の工程を取得し、当該取得した１以上の工程を実行して前記異常を復旧させる、
請求項２に記載の生産システム。
【請求項４】
前記生産システムは、前記検出部が検出した前記異常が発生した工程を特定する特定部を更に有し、
前記記録部は、前記特定部が特定した工程に関連付けて、前記復旧工程情報を記録し、
前記復旧部は、前記検出部が前記異常を再び検出した場合に、当該異常が発生した工程に関連付けられた前記復旧工程情報が示す前記１以上の工程を取得し、当該取得した１以上の工程を実行して前記異常を復旧させる、
請求項２又は３に記載の生産システム。
【請求項５】
前記生産システムは、前記検出部が前記異常を検出したときの前記産業装置の状態を取得する状態取得部を更に有し、
前記記録部は、前記状態取得部が取得した前記産業装置の状態に関連付けて、前記復旧工程情報を記録し、
前記復旧部は、前記検出部が前記異常を再び検出した場合に、当該異常が発生したときの前記産業装置の状態に関連付けられた前記復旧工程情報が示す前記１以上の工程を取得し、当該取得した１以上の工程を実行して前記異常を復旧させる、
請求項２〜４の何れか１項に記載の生産システム。
【請求項６】
前記生産システムは、前記検出部が前記異常を検出した場合に、前記複数の工程それぞれの前記工程情報に基づいて、前記複数の工程それぞれの名称を含み、復旧のために実行する工程を指定可能な復旧工程作成画面を表示させる表示制御部を更に有し、
前記受付部は、前記復旧工程作成画面において、前記１以上の工程の指定を受け付ける、
請求項１〜５の何れか１項に記載の生産システム。
【請求項７】
前記受付部は、前記検出部が前記異常を検出した前記産業装置と、当該産業装置の前工程を実行する他の産業装置と、のそれぞれの前記工程情報に基づいて、前記産業装置及び前記他の産業装置の少なくとも一方により実行される前記１以上の工程の指定を受け付け、
前記記録部は、前記産業装置及び前記他の産業装置の少なくとも一方により実行される前記１以上の工程を示す前記復旧工程情報を記録する、
請求項１〜６の何れか１項に記載の生産システム。
【請求項８】
前記受付部は、複数の前記工程の実行順の指定を受け付け、
前記記録部は、前記受付部が受け付けた実行順に基づいて、前記復旧工程情報を記録する、
請求項１〜７の何れか１項に記載の生産システム。
【請求項９】
前記記録部は、前記産業装置を制御する制御装置と通信可能な他の装置に、前記復旧工程情報を記録する、
請求項１〜８の何れか１項に記載の生産システム。
【請求項１０】
前記受付部は、前記検出部が検出した前記異常が復旧した後に再開する工程の指定を受け付け、
前記記録部は、前記復旧工程情報に関連付けて、前記受付部が受け付けた前記再開させる工程を記録する、
請求項１〜９の何れか１項に記載の生産システム。
【請求項１１】
複数の工程それぞれを実行可能であり、前記複数の工程それぞれに関連付けられた開始変数が所定の値に変化したことを検出可能な産業装置に発生した異常を検出する検出部と、
前記検出部が前記異常を検出した場合に、前記複数の工程それぞれに対して、少なくとも、工程の名称と、前記産業装置の動作を表して工程で実行される工程プログラムの開始条件となり、前記所定の値に変化したことが検出されると当該工程プログラムが開始する前記開始変数を含む変数と、が関連付けられた工程情報に基づいて、復旧のために実行する１以上の前記工程の指定を受け付ける受付部と、
前記受付部が受け付けた前記１以上の工程が実行されるように、前記産業装置を制御するコントローラが前記開始変数を前記所定の値に変更するための復旧工程情報を記録する記録部と、
を有する復旧システム。
【請求項１２】
複数の工程それぞれを実行可能であり、前記複数の工程それぞれに関連付けられた開始変数が所定の値に変化したことを検出可能な産業装置により行われる生産方法であって、
前記産業装置に発生した異常を検出し、
前記異常が検出された場合に、前記複数の工程それぞれに対して、少なくとも、工程の名称と、前記産業装置の動作を表して工程で実行される工程プログラムの開始条件となり、前記所定の値に変化したことが検出されると当該工程プログラムが開始する前記開始変数を含む変数と、が関連付けられた工程情報に基づいて、復旧のために実行する１以上の前記工程の指定を受け付け、
前記１以上の工程が実行されるように、前記産業装置を制御するコントローラが前記開始変数を前記所定の値に変更するための復旧工程情報を記録する、
生産方法。
【請求項１３】
複数の工程それぞれを実行可能であり、前記複数の工程それぞれに関連付けられた開始変数が所定の値に変化したことを検出可能な産業装置に発生した異常を検出する検出部、
前記検出部が前記異常を検出した場合に、前記複数の工程それぞれに対して、少なくとも、工程の名称と、前記産業装置の動作を表して工程で実行される工程プログラムの開始条件となり、前記所定の値に変化したことが検出されると当該工程プログラムが開始する前記開始変数を含む変数と、が関連付けられた工程情報に基づいて、復旧のために実行する１以上の前記工程の指定を受け付ける受付部、
前記受付部が受け付けた前記１以上の工程が実行されるように、前記産業装置を制御するコントローラが前記開始変数を前記所定の値に変更するための復旧工程情報を記録する記録部、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生産システム、復旧システム、生産方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、例えばＰＬＣ（Programmable Logic Controller）のように、複数の産業装置を備えたシステムにおいて複数の工程それぞれを実行させる技術が知られている。例えば、特許文献１には、ＰＬＣの動作をラダーチャートに記述してプログラムを作成する技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１９４６７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、産業装置に発生した異常を復旧させるための手間を軽減することである。
【課題を解決するための手段】
【０００５】
本発明の一側面に係る生産システムは、複数の工程それぞれを実行可能な産業装置と、前記産業装置に発生した異常を検出する検出部と、前記検出部が前記異常を検出した場合に、前記複数の工程それぞれに対して、少なくとも、工程の名称と、前記産業装置の動作を表して工程で実行される工程プログラムにおいて参照及び変更の少なくとも一方が行われる変数と、が関連付けられた工程情報に基づいて、復旧のために実行する１以上の前記工程の指定を受け付ける受付部と、前記受付部が受け付けた前記１以上の工程を示す復旧工程情報を記録する記録部と、を有する。
【０００６】
本発明の一側面に係る復旧システムは、複数の工程それぞれを実行可能な産業装置に発生した異常を検出する検出部と、前記検出部が前記異常を検出した場合に、前記複数の工程それぞれに対して、少なくとも、工程の名称と、前記産業装置の動作を表して工程で実行される工程プログラムにおいて参照及び変更の少なくとも一方が行われる変数と、が関連付けられた工程情報に基づいて、復旧のために実行する１以上の前記工程の指定を受け付ける受付部と、前記受付部が受け付けた前記１以上の工程を示す復旧工程情報を記録する記録部と、を有する。
【０００７】
本発明の一側面に係る生産方法は、複数の工程それぞれを実行可能な産業装置により行われる生産方法であって、前記産業装置に発生した異常を検出し、前記異常が検出された場合に、前記複数の工程それぞれに対して、少なくとも、工程の名称と、前記産業装置の動作を表して工程で実行される工程プログラムにおいて参照及び変更の少なくとも一方が行われる変数と、が関連付けられた工程情報に基づいて、復旧のために実行する１以上の前記工程の指定を受け付け、前記１以上の工程を示す復旧工程情報を記録する。
【０００８】
本発明の一側面に係るプログラムは、複数の工程それぞれを実行可能な産業装置に発生した異常を検出する検出部、前記検出部が前記異常を検出した場合に、前記複数の工程それぞれに対して、少なくとも、工程の名称と、前記産業装置の動作を表して工程で実行される工程プログラムにおいて参照及び変更の少なくとも一方が行われる変数と、が関連付けられた工程情報に基づいて、復旧のために実行する１以上の前記工程の指定を受け付ける受付部、前記受付部が受け付けた前記１以上の工程を示す復旧工程情報を記録する記録部、としてコンピュータを機能させる。
【０００９】
また、本発明の一側面に係る生産システムは、前記生産システムは、前記検出部が前記異常を再び検出した場合に、前記記録部が記録した前記復旧工程情報が示す前記１以上の工程を取得し、当該取得した１以上の工程を実行して前記異常を復旧させる復旧部、を更に有する。
【００１０】
また、本発明の一側面に係る生産システムは、前記生産システムは、前記検出部が検出した前記異常の種類を取得する種類取得部を更に有し、前記記録部は、前記種類取得部が取得した前記異常の種類に関連付けて、前記復旧工程情報を記録し、前記復旧部は、前記検出部が前記異常を再び検出した場合に、当該異常の種類に関連付けられた前記復旧工程情報が示す前記１以上の工程を取得し、当該取得した１以上の工程を実行して前記異常を復旧させる。
【００１１】
また、本発明の一側面に係る生産システムは、前記生産システムは、前記検出部が検出した前記異常が発生した工程を特定する特定部を更に有し、前記記録部は、前記特定部が特定した工程に関連付けて、前記復旧工程情報を記録し、前記復旧部は、前記検出部が前記異常を再び検出した場合に、当該異常が発生した工程に関連付けられた前記復旧工程情報が示す前記１以上の工程を取得し、当該取得した１以上の工程を実行して前記異常を復旧させる。
【００１２】
また、本発明の一側面に係る生産システムは、前記生産システムは、前記検出部が前記異常を検出したときの前記産業装置の状態を取得する状態取得部を更に有し、前記記録部は、前記状態取得部が取得した前記産業装置の状態に関連付けて、前記復旧工程情報を記録し、前記復旧部は、前記検出部が前記異常を再び検出した場合に、当該異常が発生したときの前記産業装置の状態に関連付けられた前記復旧工程情報が示す前記１以上の工程を取得し、当該取得した１以上の工程を実行して前記異常を復旧させる。
【００１３】
また、本発明の一側面に係る生産システムは、前記生産システムは、前記検出部が前記異常を検出した場合に、前記複数の工程それぞれの前記工程情報に基づいて、前記複数の工程それぞれの名称を含み、復旧のために実行する工程を指定可能な復旧工程作成画面を表示させる表示制御部を更に有し、前記受付部は、前記復旧工程作成画面において、前記１以上の工程の指定を受け付ける。
【００１４】
また、本発明の一側面に係る生産システムは、前記受付部は、前記検出部が前記異常を検出した前記産業装置と、当該産業装置の前工程を実行する他の産業装置と、のそれぞれの前記工程情報に基づいて、前記産業装置及び前記他の産業装置の少なくとも一方により実行される前記１以上の工程の指定を受け付け、前記記録部は、前記産業装置及び前記他の産業装置の少なくとも一方により実行される前記１以上の工程を示す前記復旧工程情報を記録する。
【００１５】
また、本発明の一側面に係る生産システムは、前記受付部は、複数の前記工程の実行順の指定を受け付け、前記記録部は、前記受付部が受け付けた実行順に基づいて、前記復旧工程情報を記録する。
【００１６】
また、本発明の一側面に係る生産システムは、前記記録部は、前記産業装置を制御する制御装置と通信可能な他の装置に、前記復旧工程情報を記録する。
【００１７】
また、本発明の一側面に係る生産システムは、前記受付部は、前記検出部が検出した前記異常が復旧した後に再開する工程の指定を受け付け、前記記録部は、前記復旧工程情報に関連付けて、前記受付部が受け付けた前記再開させる工程を記録する。
【発明の効果】
【００１８】
上記発明によれば、産業装置に発生した異常を復旧させるための手間を軽減することができる。
【図面の簡単な説明】
【００１９】
【図１】実施形態に係る生産システムの全体構成を示す図である。
【図２】コントローラが産業装置を制御する様子を示す図である。
【図３】復旧工程作成画面の一例を示す図である。
【図４】ユーザが手動で異常を復旧させる様子を示す図である。
【図５】復旧工程情報によって異常が復旧する様子を示す図である。
【図６】生産システムで実現される機能を示す機能ブロック図である。
【図７】工程データベースのデータ格納例を示す図である。
【図８】復旧工程データベースのデータ格納例を示す図である。
【図９】生産システムで実行される処理を示すフロー図である。
【図１０】生産システムで実行される処理を示すフロー図である。
【図１１】変形例における機能ブロック図である。
【図１２】変形例（１）の復旧工程データベースのデータ格納例を示す図である。
【図１３】変形例（２）の復旧工程データベースのデータ格納例を示す図である。
【図１４】変形例（３）の復旧工程データベースのデータ格納例を示す図である。
【図１５】変形例（４）の復旧工程データベースのデータ格納例を示す図である。
【発明を実施するための形態】
【００２０】
本発明の発明者の見地によれば、複数の工程それぞれを実行する産業装置に異常が発生するたびに、ユーザは手作業で異常を復旧させる必要があり、非常に手間がかかっていた。そこで本発明の発明者は、産業装置に発生した異常を復旧させるための手間を軽減するために鋭意研究開発を行った結果、新規かつ独創的な生産システム等に想到した。以降、本実施形態に係る生産システム等を詳細に説明する。
【００２１】
［１．生産システムの全体構成］
図１は、実施形態に係る生産システムの全体構成を示す図である。図１に示すように、生産システム１は、ユーザ端末１０、コントローラ２０、産業装置３０Ａ，３０Ｂ、及びサーバ４０を含む。これら各装置は、Ｅｔｈｅｒｎｅｔ（登録商標）又は産業装置専用の通信規格等の任意のネットワークを利用して通信可能に接続される。なお、以降の説明で産業装置３０Ａ，３０Ｂを特に区別する必要のないときは、単に産業装置３０と記載する。同様に、ＣＰＵ３１Ａ，３１Ｂ、記憶部３２Ａ，３２Ｂ、及び通信部３３Ａ，３３Ｂを特に区別する必要のないときは、単にＣＰＵ３１、記憶部３２、及び通信部３３と記載する。
【００２２】
ユーザ端末１０は、ユーザが操作するコンピュータである。例えば、ユーザ端末１０は、パーソナルコンピュータ、携帯端末（タブレット型端末を含む）、又は携帯電話（スマートフォンを含む）である。また、ユーザ端末１０は、これらに限られず、オペレータ端末、プログラミングペンダント、又はパネルコントローラ等のＨＭＩ（Human Machine Interface）であってもよい。ユーザ端末１０は、ＣＰＵ１１、記憶部１２、通信部１３、操作部１４、及び表示部１５を含む。なお、図１では線を省略しているが、ユーザ端末１０は、コントローラ２０及びサーバ４０の各々とも接続可能である。
【００２３】
ＣＰＵ１１は、少なくとも１つのプロセッサを含む。記憶部１２は、ＲＡＭやハードディスクを含み、各種プログラムやデータを記憶する。ＣＰＵ１１は、これらプログラムやデータに基づいて各種処理を実行する。通信部１３は、ネットワークカードや各種通信コネクタ等の通信インタフェースを含み、他の装置との通信を行う。操作部１４は、マウスやキーボード等の入力デバイスである。表示部１５は、液晶ディスプレイ又は有機ＥＬディスプレイ等であり、ＣＰＵ１１の指示により各種画面を表示する。
【００２４】
コントローラ２０は、少なくとも１つの産業装置３０を制御するコンピュータである。例えば、コントローラ２０は、ＰＬＣと呼ばれるコンピュータであってもよいし、ＰＬＣと同等の機能を有する他の名称のコンピュータであってもよい。例えば、コントローラ２０と産業装置３０の全体は、ラインよりも小さな単位であるセルと呼ばれることがあり、この場合には、コントローラ２０は、セルコントローラと呼ばれることもある。
【００２５】
コントローラ２０は、ＣＰＵ２１、記憶部２２、及び通信部２３を含む。ＣＰＵ２１、記憶部２２、及び通信部２３の物理的構成は、それぞれＣＰＵ１１、記憶部１２、及び通信部１３と同様であってよい。なお、コントローラ２０は、制御装置の一例である。このため、本実施形態でコントローラ２０と記載した箇所は、制御装置と読み替えることができる。制御装置は、コントローラ２０以外の任意の装置であってよい。コントローラ２０は、産業装置３０の制御だけではなく、自身の直下に接続されたロボットやモータ等の機器を直接的に制御してもよいし、産業装置３０の動作結果を示すデータの解析をサーバ４０に依頼してもよい。
【００２６】
産業装置３０は、工程を実行する装置である。産業装置３０は、任意の種類の装置を適用可能であり、例えば、ロボットコントローラ、ロボットコントローラの下位装置、産業用ロボット、モータコントローラ、モータコントローラの下位装置、工作機械、プレス加工機、又は搬送機器などである。ＰＬＣも産業装置の一種である。産業装置３０は、ＣＰＵ３１、記憶部３２、及び通信部３３を含む。ＣＰＵ３１、記憶部３２、及び通信部３３の物理的構成は、それぞれＣＰＵ１１、記憶部１２、及び通信部１３と同様であってよい。
【００２７】
なお、産業装置３０は、他の物理的構成が含まれもよく、例えば、ＡＳＩＣと呼ばれる特定用途向けの集積回路が含まれてもよい。また、産業装置３０には、任意の物理的構成が接続されてよく、例えば、モータ等の制御対象の機器、モータ等の動作を検出するためのセンサ、加工対象となるワークの状態を撮影するカメラ、入出力機器、又は他の産業装置などが接続されていてもよい。また、本実施形態では、コントローラ２０が２台の産業装置３０を制御する場合を説明するが、コントローラ２０が制御する産業装置３０の台数は、任意の台数であってよく、例えば、１台又は３台以上であってもよい。
【００２８】
サーバ４０は、サーバコンピュータである。サーバ４０は、ＣＰＵ４１、記憶部４２、及び通信部４３を含む。ＣＰＵ４１、記憶部４２、及び通信部４３の物理的構成は、それぞれＣＰＵ１１、記憶部１２、及び通信部１３と同様であってよい。例えば、サーバ４０は、コントローラ２０及び産業装置３０の動作結果を示すデータを収集したり、収集したデータ基づいて動作解析を行ったりする。
【００２９】
なお、記憶部１２，２２，３２，４２の各々に記憶されるものとして説明するプログラム及びデータは、ネットワークを介して供給されるようにしてもよい。また、各装置のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部（例えば、光ディスクドライブやメモリカードスロット）や外部機器と直接的に接続するための入出力部（例えば、ＵＳＢ端子）が含まれていてもよい。この場合、情報記憶媒体に記憶されたプログラムやデータが、読取部又は入出力部を介して供給されるようにしてもよい。
【００３０】
［２．生産システムの概要］
本実施形態では、コントローラ２０に、産業装置３０を制御するためのシステムプログラムが記憶されている。コントローラ２０と産業装置３０の全体をセルと呼ぶ場合には、システムプログラムはセルプログラムと呼ばれることもある。システムプログラムは、変数を利用して工程の実行順を制御するためのプログラムである。実行順とは工程が実行される順序である。
【００３１】
変数は、工程が実行される場合に参照及び変更の少なくとも一方が行われる情報である。本実施形態では、産業装置３０の記憶部３２に、工程を実行するための工程プログラムが記憶されており、変数は、工程プログラムにおいて参照及び変更の少なくとも一方が行われる。参照は、変数に対応するレジスタが読み出されることである。変更は、変数に対応するレジスタの値を書き換えることである。
【００３２】
変数は、工程の実行条件となり、工程ごとに用意される。変数は、産業装置３０の動作を示す情報ということもできる。例えば、工程には、工程の開始条件となる開始変数、中断条件（一時停止条件）となる中断変数、又は、終了条件となる終了変数が用意される。これらの変数以外にも、任意の変数が存在してよく、例えば、工程がビジー状態であることを示す変数、工程の実行結果を示す変数、途中計算を示す変数、産業装置３０の設定を示す変数、又はセンサの検出結果を示す変数があってもよい。変数は、入出力変数と呼ばれることもある。変数は、産業装置３０のレジスタに対応する。変数は、産業装置３０又は他の機器（コントローラ２０等）によって参照される。
【００３３】
工程とは、産業装置３０が行う作業又は動作である。工程は、１つの作業又は動作だけから構成されてもよいし、複数の作業又は動作の組み合わせから構成されてもよい。産業装置３０は、任意の用途に応じた工程を実行可能であり、例えば、ワークの認識、ワークの把持、扉の開閉、ワークのセット、工作機械にワークを固定する動作、又は工作機械を利用した加工などを工程として実行する。産業装置３０は、少なくとも１つの工程を実行する。産業装置３０は、１つの工程だけを実行してもよいし、複数の工程を実行してもよい。
【００３４】
工程プログラムは、工程における個々の手順が定義されたプログラムである。工程プログラムは、産業装置３０の動作を定義したプログラムということもできる。工程プログラムは、任意の言語で作成可能であり、例えば、ラダー言語又はロボット言語によって作成される。産業装置３０によって工程プログラムの言語が異なってもよく、例えば、産業装置３０Ａの工程プログラムがラダー言語であり、産業装置３０Ｂの工程プログラムがロボット言語であってもよい。例えば、工程プログラムは、開始変数が実行開始の条件となるように、ラダーチャートにおける起動スイッチやコイルが記述されていたり、ソースコードにおける条件分岐が記述されていたりする。また例えば、工程プログラムは、工程の最後の処理が終了した場合に、終了変数を変更するように命令が記述されている。また例えば、工程プログラムは、工程の実行中に異常が発生した場合に、中断変数を変更するように命令が記述されている。
【００３５】
本実施形態では、工程ごとに工程プログラムが用意されており、工程と工程プログラムは、１対１の関係にある。このため、ある産業装置３０がｎ個（ｎは自然数）の工程を行うとすると、当該産業装置３０は、少なくともｎ個の工程プログラムを記憶する。なお、工程と工程プログラムは、１対１の関係になくてもよく、例えば、１つの工程プログラムにより複数の工程が実行されてもよいし、１つの工程を実行するために複数の工程プログラムが用意されていてもよい。
【００３６】
図２は、コントローラ２０が産業装置３０を制御する様子を示す図である。本実施形態では、産業装置３０Ａが工作機械であり、産業装置３０Ｂが産業用ロボットである場合を例に挙げて説明する。例えば、工程は、周期的に繰り返される。図２では、１サイクル内に実行される工程が示されている。コントローラ２０は、システムプログラムを実行し、サイクルの最初の工程として、産業装置３０Ｂに認識工程を実行させる。認識工程は、センサを利用してワークを認識する工程である。
【００３７】
先述したように、本実施形態では、工程ごとに変数が用意されており、変数によって工程の開始が制御される。このため、コントローラ２０は、認識工程を開始するための開始変数を所定の値に変更する。この値は、工程を開始するための値であり、例えば、１である。開始変数には、初期値（例えば、０）が設定されており、開始変数が初期値から所定の値になった場合に工程が開始される。
【００３８】
産業装置３０Ｂは、認識工程の開始変数が所定の値に変更されたことを検出すると、認識工程の工程プログラムを実行し、認識工程を開始する。認識工程が正常に終了すると、産業装置３０Ｂは、認識工程の終了変数を所定の値に変更する。この値は、工程の終了を示す値であり、例えば、１である。終了変数には、初期値（例えば、０）が設定されており、工程が終了すると初期値から所定の値になる。
【００３９】
コントローラ２０は、認識工程の終了変数が所定の値に変更されたことを検出すると、次の把持工程の開始変数を所定の値に変更する。把持工程は、認識されたワークをロボットハンドで把持して所定の位置に搬送する工程である。産業装置３０Ｂは、把持工程の開始変数が所定の値に変更されたことを検出すると、把持工程の工程プログラムを実行し、把持工程を開始する。把持工程が正常に終了すると、産業装置３０Ｂは、把持工程の終了変数を所定の値に変更する。
【００４０】
コントローラ２０は、把持工程の終了変数が所定の値に変更されたことを検出すると、次の扉開け工程の開始変数を所定の値に変更する。扉開け工程は、ワークを入れるために産業装置３０Ａの扉を開く工程である。産業装置３０Ａは、扉開け工程の開始変数が所定の値に変更されたことを検出すると、扉開け工程の工程プログラムを実行し、扉開け工程を開始する。扉開け工程が正常に終了すると、産業装置３０Ａは、扉開け工程の終了変数を所定の値に変更する。
【００４１】
コントローラ２０は、扉開け工程の終了変数が所定の値に変更されたことを検出すると、次のセット工程の開始変数を所定の値に変更する。セット工程は、開けられた扉の中にワークをセットする工程である。産業装置３０Ｂは、セット工程の開始変数が所定の値に変更されたことを検出すると、セット工程の工程プログラムを実行し、セット工程を開始する。セット工程が正常に終了すると、産業装置３０Ｂは、セット工程の終了変数を所定の値に変更する。
【００４２】
コントローラ２０は、セット工程の終了変数が所定の値に変更されたことを検出すると、次のチャック工程の開始変数を所定の値に変更する。チャック工程は、加工を行うためにワークを固定する工程である。産業装置３０Ａは、チャック工程の開始変数が所定の値に変更されたことを検出すると、チャック工程の工程プログラムを実行し、チャック工程を開始する。チャック工程が正常に終了すると、産業装置３０Ａは、チャック工程の終了変数を所定の値に変更する。
【００４３】
コントローラ２０は、チャック工程の終了変数が所定の値に変更されたことを検出すると、次の加工工程の開始変数を所定の値に変更する。加工工程は、ワークを加工する工程である。産業装置３０Ａは、加工工程の開始変数が所定の値に変更されたことを検出すると、加工工程の工程プログラムを実行し、加工工程を開始する。加工工程が正常に終了すると、産業装置３０Ａは、加工工程の終了変数を所定の値に変更する。
【００４４】
以上により、１サイクル内の全ての工程が完了する。コントローラ２０は、加工工程の終了変数が所定の値に変更されたことを検出すると、次のサイクルを開始するために、認識工程の開始変数を所定の値に変更する。以降、１サイクル目と同様にして、次のサイクルが開始される。なお、各工程の開始変数と終了変数は、サイクル終了時等の所定のタイミングで初期値に戻るものとする。
【００４５】
各産業装置３０は、自身が実行する工程で異常が発生した場合に、工程の実行を中断し、中断変数を所定の値に変更する。異常発生を検出する処理は、工程プログラムに記述されているものとする。例えば、産業装置３０Ａは、扉開け工程において扉が開かなかった場合には、扉開く工程の中断変数を所定の値に変更する。また例えば、産業装置３０Ｂは、把持工程においてワークを把持できなかった場合には、把持工程の中断変数を所定の値に変更する。
【００４６】
コントローラ２０は、何れかの工程の中断変数が所定の値に変更されたことを検出すると、ユーザ端末１０に対し、異常が発生したことを示す異常発生通知を送信する。本実施形態では、電子メールを利用して異常発生通知が送信される場合を説明するが、他の媒体を利用して通知が行われてもよい。例えば、プッシュ通知、エンジニアリングツール内の通知、又はメッセージアプリを利用して異常発生通知が行われてもよい。
【００４７】
また例えば、異常発生通知は、ユーザ端末１０に対する情報の出力に限られず、他の方法で行われるようにしてもよい。例えば、コントローラ２０にＬＥＤライト等の発光部を設けておき、発光部を発光させることによって、異常発生通知が行われてもよい。また例えば、異常発生通知は、視覚的な通知に限られず、聴覚的又は触覚的な通知であってもよい。例えば、スピーカから出力されるアラーム音、又は、バイブレータの振動によって異常発生通知が行われてもよい。
【００４８】
ユーザは、異常発生通知を確認すると、産業装置３０にユーザ端末１０を接続して異常を復旧させる。ユーザ端末１０と産業装置３０とは、有線接続されてもよいし、無線接続されてもよい。本実施形態では、産業装置３０Ａの加工工程で発生した異常を復旧させる手順を例に挙げて説明する。例えば、ユーザが、ユーザ端末１０にインストールされたエンジニアリングツールを起動させると、異常を復旧させるための復旧工程作成画面が表示される。
【００４９】
図３は、復旧工程作成画面の一例を示す図である。図３に示すように、復旧工程作成画面Ｇには、産業装置３０が実行可能な工程のリストＬが表示される。例えば、リストＬには、産業装置３０Ａ及び産業装置３０Ｂの各々が実行可能な全ての工程の名称が表示される。リストＬには、サイクル内で実行される工程の名称に限られず、他の工程の名称も表示される。例えば、リストＬには、異常復旧のために実行される工程の名称に限られず、異常復旧で特に利用されない工程の名称も表示される。
【００５０】
ユーザは、復旧工程作成画面Ｇから少なくとも１つの工程を指定し、産業装置３０に発生した異常を復旧させる。ユーザは、リストＬ中の任意の工程を指定可能である。例えば、ユーザは、産業装置３０Ａ及び産業装置３０Ｂの両方の工程を指定してもよいし、産業装置３０Ａ又は産業装置３０Ｂの何れか一方の工程を指定してもよい。産業装置３０Ａ及び産業装置３０Ｂの各々は、ユーザが選択した工程を実行する。
【００５１】
図４は、ユーザが手動で異常を復旧させる様子を示す図である。図４に示すように、例えば、ユーザは、復旧工程作成画面Ｇから、産業装置３０Ａの扉開け工程、工具逃げ工程、工具退避工程、及びチャックＯＦＦ工程を選択する。工具逃げ工程及び工具退避工程の各々は、産業装置３０Ａに備えられた加工用の工具を移動させる工程である。チャックＯＦＦ工程は、チャック状態を解除する工程である。産業装置３０Ａは、ユーザが指定した順番に各工程を実行する。
【００５２】
その後、ユーザは、復旧工程作成画面Ｇから、産業装置３０Ｂの移動工程を選択する。移動工程は、ロボットハンドを移動させる工程である。産業装置３０Ｂは、ユーザの指示に沿って移動工程を実行する。ユーザは、異常が復旧したことを確認すると、復旧工程作成画面Ｇから復旧完了ボタンＢを選択する。ユーザが復旧完了ボタンＢを選択すると、加工工程の中断変数が初期値に戻り、サイクルが再開される。図２の例では、異常が発生した加工工程の１つ前のチャック工程から再開される場合を示している。
【００５３】
本実施形態では、ユーザが手動で異常を復旧させると、その時に指定した工程が復旧工程情報としてサーバ４０に記録される。詳細は後述するが、本実施形態の復旧工程情報は、ユーザが指定した工程をその実行順に実行するためのマクロである。サーバ４０に記録された復旧工程情報は、産業装置３０で再び異常が発生した場合に、コントローラ２０によって呼び出される。コントローラ２０は、呼び出した復旧工程情報に基づいて、過去にユーザが指定した手順で工程を実行し、異常を復旧させる。なお、自動的に復旧が実行されるのではなく、ユーザに対して復旧するか否かを問い合わせたうえで、復旧が実行されてもよい。
【００５４】
図５は、復旧工程情報によって異常が復旧する様子を示す図である。図５に示すように、産業装置３０Ａの加工工程で再び異常が発生すると、コントローラ２０は、サーバ４０に対し、復旧工程情報を要求する。サーバ４０は、コントローラ２０に対し、過去に登録された復旧工程情報を送信する。コントローラ２０は、サーバ４０から受信した復旧手順に基づいて、産業装置３０Ａに扉開け工程、工具逃げ工程、工具退避工程、及びチャックＯＦＦ工程を実行させ、産業装置３０Ｂに移動工程を実行させる。その後、コントローラ２０は、加工工程の中断変数が初期値に戻ったことを検出すると、チャック工程の開始変数を所定の値に変更し、サイクルを再開させる。
【００５５】
以上のように、本実施形態の生産システム１では、サーバ４０に復旧工程情報を記録しておき、産業装置３０で再び異常が発生した場合にコントローラ２０が復旧工程情報を呼び出すことによって、産業装置３０に発生した異常を復旧させる際の手間を軽減するようにしている。以降、本実施形態の生産システム１の詳細を説明する。
【００５６】
［３．生産システムで実現される機能］
図６は、生産システム１で実現される機能を示す機能ブロック図である。本実施形態では、ユーザ端末１０、コントローラ２０、産業装置３０、及びサーバ４０の各々で実現される機能について説明する。なお、産業装置３０Ａ，３０Ｂの各々では、同様の機能が実現されるため、図６では、１つの産業装置３０として記載する。
【００５７】
［３−１．ユーザ端末で実現される機能］
図６に示すように、ユーザ端末１０では、データ記憶部１００、表示制御部１０１、受付部１０２、及び記録部１０３が実現される。
【００５８】
［データ記憶部］
データ記憶部１００は、記憶部１２を主として実現される。データ記憶部１００は、サーバ４０に復旧工程情報を記録するために必要なデータを記憶する。例えば、データ記憶部１００は、工程データベースＤＢ１を記憶する。
【００５９】
図７は、工程データベースＤＢ１のデータ格納例を示す図である。図７に示すように、工程データベースＤＢ１は、各工程の工程情報が格納されたデータベースである。例えば、工程データベースＤＢ１には、産業装置３０の名称と、当該産業装置３０が実行する工程の工程情報と、が格納される。
【００６０】
工程情報は、工程の基本的な情報である。工程情報の内容は、ユーザによって指定されてもよいし、工程プログラムＰを生成するツールによって設定されてもよい。例えば、新たな工程の工程プログラムＰが作成されると、新たな工程の工程情報が工程データベースＤＢ１に登録される。工程情報は、工程データベースＤＢ１への登録後に編集可能であってもよい。
【００６１】
本実施形態では、コントローラ２０の制御対象となる全ての産業装置３０の工程情報が工程データベースＤＢ１に格納される場合を説明するが、一部の産業装置３０の工程情報だけが工程データベースＤＢ１に格納されてもよい。また、産業装置３０が実行可能な全ての工程の工程情報が工程データベースＤＢ１に格納される場合を説明するが、一部の工程の工程情報だけが工程データベースＤＢ１に格納されてもよい。例えば、工程情報には、工程の名称と変数の名称とが格納される。
【００６２】
工程の名称は、工程プログラムＰの作成時に指定された名称である。工程の名称は、産業装置３０の中で工程を一意に識別可能であればよく、他の産業装置３０の工程の名称と同じであってもよい。例えば、工程の名称は、ユーザによって指定されてもよいし、所定のルールに基づいて自動的に付与されてもよい。また、工程の名称は、工程のＩＤ等のように工程を一意に特定できるものであってもよい。
【００６３】
変数の名称は、工程プログラムＰの作成時に設定された名称である。例えば、工程の開始変数、中断変数、及び終了変数の各々の名称が工程情報に格納される。工程に対して任意の変数を指定できるようにしてもよく、この場合には、ユーザが指定した変数の名称が工程情報に格納されるようにしてもよい。本実施形態では、変数の名称は、工程の名称（「Ａ１」等の文字列）と、変数の種類を示す文字列（「Ｓｔａｒｔ」等の文字列）と、を含み、工程間で変数の名称が重複しないようになっている。
【００６４】
なお、変数の名称は、任意のルールで設定可能であり、本実施形態の例に限られない。例えば、変数の名称は、産業装置３０の名称（「ＥｑｕｉｐＡ」等の文字列）を含み、どの産業装置３０の変数であるかを識別可能であってもよい。また例えば、変数の名称は、産業装置３０の名称や工程の名称を特に含まずに、生産システム１又は産業装置３０内で変数を一意に識別できるような文字列で定められていてもよい。工程の名称と同様、変数の名称についても、変数のＩＤ等のように変数を一意に特定できるものであってもよい。
【００６５】
また例えば、コントローラ２０が管理する変数の名称と、産業装置３０が管理する変数の名称と、が異なってもよい。即ち、コントローラ２０が変数を識別する名称と、産業装置３０が変数を識別する名称と、が異なってもよい。前者をシステム変数と呼び、後者を装置変数と呼ぶと、データ記憶部１００は、システム変数と装置変数を互いに変換するためのテーブル又はデータベースを記憶する。コントローラ２０が産業装置３０の変数を参照する場合には、システム変数が装置変数に変換されたうえで、当該装置変数に対応するレジスタ読み出しが行われる。コントローラ２０が産業装置３０の変数を変更する場合も同様に、システム変数が装置変数に変換される。
【００６６】
なお、工程情報に含まれる内容は、上記の例に限られない。工程情報には、工程に関する他の情報が含まれていてもよい。例えば、工程情報には、工程の実行に要する想定時間が含まれていてもよい。また例えば、工程情報には、工程の実行順が含まれていてもよい。また例えば、工程情報には、工程の開始条件や各変数の変更条件が含まれていてもよい。
【００６７】
また、データ記憶部１００が記憶するデータは、上記の例に限られない。例えば、データ記憶部１００は、復旧工程作成画面Ｇに表示される画像の画像データを記憶してもよいし、エンジニアリングツールを記憶してもよい。また例えば、データ記憶部１００は、作成済みの工程プログラムＰとシステムプログラムＱとを記憶してもよい。また例えば、データ記憶部１００は、サーバ４０に登録済みの復旧工程情報を記憶してもよい。
【００６８】
［表示制御部］
表示制御部１０１は、ＣＰＵ１１を主として実現される。表示制御部１０１は、検出部２０２が異常を検出した場合に、複数の工程それぞれの工程情報に基づいて、複数の工程それぞれの名称を含み、復旧のために実行する工程を指定可能な復旧工程作成画面Ｇを表示させる。本実施形態では、工程データベースに各工程の工程情報が格納されているので、表示制御部１０１は、工程データベースに基づいて、復旧工程作成画面Ｇを表示させる。
【００６９】
復旧工程作成画面Ｇは、少なくとも１つの工程の指定を受け付けるユーザインタフェースを有する。別の言い方をすれば、復旧工程作成画面Ｇは、復旧時に実行する少なくとも１つの工程の指定を受け付ける。本実施形態の復旧工程作成画面Ｇは、図３のようなレイアウトを有し、例えば、表示制御部１０１は、工程データベースを参照し、全ての工程の名称を示すリストＬを復旧工程作成画面Ｇに表示させる。なお、リストＬには、工程データベースに工程情報が格納された全ての工程の名称が表示されなくてもよく、一部の工程の名称だけが表示されてもよい。
【００７０】
なお、復旧工程作成画面Ｇは、図３のレイアウトに限られず、任意のレイアウトであってよい。例えば、復旧工程作成画面Ｇは、プルダウン形式又はドラムロール形式で工程の選択を受け付けてもよい。また例えば、復旧工程作成画面Ｇは、フローチャート形式で工程を時系列的に並べるようなレイアウトであってもよいし、表形式で工程の名称の入力を受け付けるようなレイアウトであってもよい。また例えば、復旧工程作成画面Ｇは、実工程の名称を入力するための入力フォームが並べられていてもよい。
【００７１】
［受付部］
受付部１０２は、ＣＰＵ１１を主として実現される。受付部１０２は、検出部２０２が異常を検出した場合に、複数の工程それぞれに対して、少なくとも、工程の名称と、産業装置３０の動作を表して工程で実行される工程プログラムＰにおいて参照及び変更の少なくとも一方が行われる変数と、が関連付けられた工程情報に基づいて、復旧のために実行する１以上の工程の指定を受け付ける。
【００７２】
復旧のために実行する工程とは、検出部２０２が検出した異常の復旧に必要な工程である。別の言い方をすれば、復旧のために実行する工程は、ユーザが手動で異常を復旧させた際に指定された工程である。復旧のために実行する工程は、１つであってもよいし、複数であってもよい。復旧のために実行する工程は、上限数があってもよいし、特に上限数がなくてもよい。受付部１０２は、操作部１４の検出信号に基づいて、工程の指定を受け付ける。
【００７３】
本実施形態では、復旧工程作成画面Ｇの中から工程が指定されるので、受付部１０２は、復旧工程作成画面Ｇにおいて、１以上の工程の指定を受け付ける。例えば、受付部１０２は、復旧工程作成画面ＧのリストＬに表示された工程の中から、１以上の工程の指定を受け付ける。受付部１０２は、同じ工程の指定を繰り返し受け付けてもよい。また例えば、受付部１０２は、１つの産業装置３０の工程の指定だけを受け付けてもよいし、複数の産業装置３０の各々の工程の指定を受け付けてもよい。
【００７４】
例えば、ユーザが複数の工程を指定する場合、受付部１０２は、複数の工程の実行順の指定を受け付ける。本実施形態では、ユーザがリストＬ中の工程を繰り返し指定するので、工程を指定した順序が実行順に相当する。即ち、受付部１０２は、リストＬ中の工程の指定を繰り返し受け付けることによって、実行順の指定を受け付ける。工程の指定を受け付けた順番がそのまま実行順となる。
【００７５】
なお、実行順の指定は、本実施形態の例に限られず、任意の操作によって行われてよい。例えば、受付部１０２は、実行順を示す数値の入力を受け付けることによって、実行順の指定を受け付けてもよい。また例えば、受付部１０２は、フローチャート形式の復旧工程作成画面Ｇであれば、工程の並び順を指定する操作を受け付けることによって、実行順の指定を受け付けてもよい。
【００７６】
本実施形態では、異常が発生した産業装置３０以外の他の産業装置３０についても、復旧時の工程を指定可能である。図３の例であれば、復旧工程作成画面Ｇでは、異常が発生した産業装置３０Ａの加工工程よりも前の工程を担当する産業装置３０Ｂの工程も指定可能である。受付部１０２は、検出部２０２が異常を検出した産業装置３０Ａと、当該産業装置３０Ａの前工程を実行する他の産業装置３０Ｂと、のそれぞれの工程情報に基づいて、産業装置３０Ａ及び他の産業装置３０Ｂの少なくとも一方により実行される１以上の工程の指定を受け付ける。受付部１０２は、産業装置３０Ａ及び産業装置３０Ｂの両方の工程の指定を受け付けてもよいし、産業装置３０Ａ又は産業装置３０Ｂの何れか一方のみの工程の指定を受け付けてもよい。
【００７７】
［記録部］
記録部１０３は、ＣＰＵ１１を主として実現される。記録部１０３は、受付部１０２が受け付けた１以上の工程を示す復旧工程情報を記録する。復旧工程情報は、異常復旧時にユーザが指定した工程を識別する情報である。別の言い方をすれば、復旧工程情報は、異常を復旧させるための工程の実行結果を示す情報である。本実施形態では、復旧工程情報がマクロ形式のデータである場合を説明するが、復旧工程情報は、任意のデータ形式であってよい。例えば、復旧工程情報は、テキスト形式、ドキュメント形式、又はＣＳＶ形式等であってもよい。他にも例えば、ユーザが指定した工程の開始変数を次々と変更するようなプログラムが自動的に生成され、当該プログラムが復旧工程情報として記録されてもよい。
【００７８】
本実施形態では、記録部１０３が、産業装置３０を制御するコントローラ２０と通信可能な他の装置（例えば、サーバ４０）に、復旧工程情報を記録する場合を説明するが、記録部１０３は、他のコンピュータ又は情報記憶媒体に復旧工程情報を記録してもよい。復旧工程情報が記録される他の装置としては、サーバ４０に限られない。例えば、記録部１０３は、ユーザ端末１０、コントローラ２０、又は産業装置３０に復旧工程情報を記録してもよいし、図示しないデータベースサーバ又はシミュレーションサーバ等の他のコンピュータに復旧工程情報を記録してもよい。
【００７９】
例えば、ユーザが複数の工程を指定する場合、記録部１０３は、受付部１０２が受け付けた実行順に基づいて、復旧工程情報を記録する。この場合、復旧工程情報には、ユーザが指定した実行順と、各工程の名称と、が関連付けられて格納される。即ち、記録部１０３は、ユーザが指定した各工程を、ユーザが指定した実行順で実行可能なように、復旧工程情報を記録する。
【００８０】
本実施形態では、変数によって工程の実行が制御されるので、記録部１０３は、ユーザが指定した実行順で各工程の開始変数が所定の値となるように、復旧工程情報を生成する。後述する図８のデータ格納例であれば、記録部１０３は、扉開け工程の開始変数を所定の値とするように、復旧工程情報を作成する。また、記録部１０３は、扉開け工程の終了変数が所定の値になった場合に、次の工具逃げ工程の開始変数を所定の値とするように、復旧工程情報を作成する。以降同様に、記録部１０３は、ある工程の終了変数が所定の値になった場合に、次の工程の開始変数を所定の値に変更するように、復旧工程情報を作成する。本実施形態では、これら変数の値の変更をするための命令がマクロとして記述された復旧工程情報が生成される。
【００８１】
また例えば、記録部１０３は、産業装置３０Ａ及び他の産業装置３０Ｂの少なくとも一方により実行される１以上の工程を示す復旧工程情報を記録する。即ち、ユーザが複数の産業装置３０の各々の工程を指定した場合には、記録部１０３は、ユーザが指定した工程を各産業装置３０が実行するように、復旧工程情報を生成する。後述する図８のデータ格納例であれば、記録部１０３は、産業装置３０Ａが扉開け工程等の４つの工程を実行した後に、産業装置３０Ｂが移動工程を実行するように、復旧工程情報を生成する。先述したように、復旧工程情報には、各工程の開始変数を変更するための命令がマクロとして記述される。
【００８２】
なお、本実施形態では、記録部１０３によって復旧工程情報が記録されると、ユーザ端末１０は、異常発生時に当該復旧工程情報を呼び出すように、システムプログラムＱを変更する。例えば、ユーザ端末１０は、異常が発生した場合に、サーバ４０に復旧工程情報を要求するための軌道スイッチ又はコイル等をシステムプログラムＱのラダーチャートに追加したり、当該要求を示す命令をシステムプログラムＱのソースコードに追加したりする。システムプログラムＱが変更されることによって、再び異常が発生した場合に、復旧工程情報が呼び出されるようになる。
【００８３】
［３−２．コントローラで実現される機能］
図６に示すように、コントローラ２０では、データ記憶部２００と、システムプログラム実行部２０１、検出部２０２、及び復旧部２０３が実現される。
【００８４】
［データ記憶部］
データ記憶部２００は、記憶部２２を主として実現される。データ記憶部２００は、工程の実行順を制御するために必要なデータを記憶する。例えば、データ記憶部２００は、システムプログラムＱを記憶する。先述したように、システムプログラムＱは、予め定められた実行順で各工程の開始変数が所定の値となるように命令が記述される。データ記憶部２００に記憶されたシステムプログラムＱは、ユーザ端末１０によって作成される。また例えば、データ記憶部２００は、コントローラ２０の制御対象となる産業装置３０Ａ，３０Ｂの各々の名称やＩＰアドレス等の情報を記憶してもよい。また例えば、データ記憶部２００は、工程データベースＤＢ１を記憶してもよい。また例えば、データ記憶部２００は、各産業装置３０の変数の値を記憶してもよい。この場合、データ記憶部２００の変数とデータ記憶部３００の変数とは、定期的に整合が取られているものとする。
【００８５】
［システムプログラム実行部］
システムプログラム実行部２０１は、ＣＰＵ２１を主として実現される。システムプログラム実行部２０１は、システムプログラムＱに基づいて、工程の実行順を制御する。例えば、システムプログラム実行部２０１は、ユーザにより指定された実行順で産業装置３０が動作するように、各産業装置３０に対して各工程の開始指示を送る。例えば、システムプログラム実行部２０１は、システムプログラムＱを実行すると、１番目の工程の開始変数を所定の値に変更する。システムプログラム実行部２０１は、各産業装置３０の終了変数を周期的に参照し、ある工程の変更変数が所定の値になった場合に、次の工程の開始変数を所定の値に変化させる。システムプログラム実行部２０１は、当該次の工程が開始した後の任意のタイミングで、当該次の工程の開始変数を初期値に戻す。以降、同様の処理によって、工程の実行順が制御される。
【００８６】
［検出部］
検出部２０２は、ＣＰＵ２１を主として実現される。検出部２０２は、産業装置３０に発生した異常を検出する。本実施形態では、各工程で異常が発生すると、工程プログラムＰは、当該工程の中断変数を所定の値に変更する。検出部２０２は、各工程の中断変数の値を参照し、所定の値になったか否かを判定する。検出部２０２は、中断変数が所定の値になった工程に異常が発生したと判定する。
【００８７】
なお、異常の検出方法は、変数を利用した方法に限られない。異常の検出方法自体は、公知の手法を適用可能であり、例えば、検出部２０２は、ある工程が一定時間の間終了しなかった場合に異常が発生したと判定してもよいし、コントローラ２０又は産業装置３０に接続されたセンサの検出信号が異常値を示す場合に異常が発生したと判定してもよい。
【００８８】
また例えば、産業装置３０は、異常が発生した場合に、コントローラ２０に対し、所定の異常発生通知を送信してもよい。異常発生通知には、任意の情報が含まれてよく、例えば、異常が発生した産業装置３０の名称、異常が発生した工程の名称、発生した異常の種類、及び異常が発生した日時等が含まれていてもよい。検出部２０２は、産業装置３０から異常発生通知を受信したか否かを判定する。検出部２０２は、異常発生通知を受信した場合に異常が発生したと判定する。
【００８９】
［復旧部］
復旧部２０３は、ＣＰＵ２１を主として実現される。復旧部２０３は、検出部２０２が異常を再び検出した場合に、記録部１０３が記録した復旧工程情報が示す１以上の工程を取得し、当該取得した１以上の工程を実行して異常を復旧させる。本実施形態では、過去の異常発生時にユーザが指定した工程が復旧工程情報に示されているので、復旧部２０３は、復旧工程情報に記述された手順に沿って工程を実行し、異常を復旧させる。復旧時の工程は、通常の工程と同様、工程プログラムＰ及び変数によって実行が制御されるので、復旧部２０３は、復旧工程情報に示された工程の変数に基づいて、工程を実行する。
【００９０】
例えば、複数の工程が所定の順序で実行された場合、復旧部２０３は、１番目の工程の開始変数を所定の値に変更するように、産業装置３０に指示を送る。産業装置３０は、変数の変化を検知すると１番目の工程を実行する。１番目の工程が正常に終了すると、産業装置３０は、当該工程の終了変数を所定の値に変更する。復旧部２０３は、１番目の工程の終了変数が所定の値になったことを検出すると、２番目の復旧工程の開始変数を所定の値に変更するように、産業装置３０に指示を送る。以降同様にして、復旧工程情報に示された最後まで順番に工程が実行される。
【００９１】
［３−３．産業装置で実現される機能］
図６に示すように、産業装置３０では、データ記憶部３００と、工程プログラム実行部３０１と、が実現される。
【００９２】
［データ記憶部］
データ記憶部３００は、記憶部３２を主として実現される。データ記憶部３００は、複数の工程それぞれを実行可能な産業装置３０が各工程を実行するために必要なデータを記憶する。例えば、データ記憶部３００は、工程プログラムＰを記憶する。本実施形態では、工程プログラムＰごとに工程情報が用意されるので、データ記憶部３００は、工程プログラムＰと工程情報を互いに関連付けて記憶してもよい。また、データ記憶部３００は、各工程の変数の値を記憶する。先述したように、データ記憶部３００の変数と、データ記憶部２００の変数と、は整合性が取られているものとする。また、データ記憶部３００は、モータを制御する際のパラメータやロボットのティーチングデータ等を記憶してもよい。
【００９３】
［工程プログラム実行部］
工程プログラム実行部３０１は、ＣＰＵ３１を主として実現される。工程プログラム実行部３０１は、データ記憶部３００に記憶された工程プログラムＰと変数に基づいて、各工程を実行する。例えば、コントローラ２０から受信した指示により各工程の開始変数が所定の値に変化し、工程プログラム実行部３０１は、その旨を検知した場合に工程を開始する。また例えば、工程プログラム実行部３０１は、当該工程の工程プログラムＰに記述された最後の処理が終了した場合に、当該工程の終了変数を所定の値に変化させる。当該工程の終了変数が所定の値になった旨がシステムプログラムＱにより検知されると、次の工程の開始変数が所定の値に変化し、工程プログラム実行部３０１は、次の工程の工程プログラムＰの実行を開始する。以降、同様の処理によって、各工程が順次実行される。
【００９４】
［３−４．サーバで実現される機能］
図６に示すように、サーバ４０では、データ記憶部４００が実現される。データ記憶部４００は、記憶部３２を主として実現される。データ記憶部４００は、復旧工程情報を記憶する。例えば、データ記憶部４００は、少なくとも１つの復旧工程情報を格納された復旧工程データベースＤＢ２を記憶する。サーバ４０は、ユーザ端末１０から復旧工程情報を受信すると、復旧工程データベースＤＢ２に格納する。
【００９５】
図８は、復旧工程データベースＤＢ２のデータ格納例を示す図である。図８に示すように、復旧工程データベースＤＢ２には、復旧工程情報の名称ごとに、復旧工程情報が格納される。例えば、復旧工程情報には、工程の実行順、工程を実行する産業装置３０の名称、及び工程の名称が格納される。図８では復旧工程情報の内容をテーブルで示しているが、本実施形態では、復旧工程情報はマクロ化されているので、これらの関係は、マクロの命令として記述されている。即ち、復旧工程情報には、扉開け工程、工具逃げ工程、工具退避工程、チャックＯＦＦ工程、移動工程の順番で開始変数を所定の値に変更するように命令が記述されている。
【００９６】
［４．生産システムで実行される処理］
図９及び図１０は、生産システム１で実行される処理を示すフロー図である。図９及び図１０に示す処理は、ＣＰＵ１１，２１，３１，４１がそれぞれ記憶部１２，２２，３２，４２に記憶されたプログラムに従って動作することによって実行される。図９及び図１０に示す処理は、図６に示す機能ブロックにより実行される処理の一例である。
【００９７】
図９に示すように、コントローラ２０がシステムプログラムＱを実行し、産業装置３０が工程プログラムＰを実行することによって、各工程が実行される（Ｓ１）。Ｓ１においては、コントローラ２０は、システムプログラムＱを実行し、ある工程の開始変数を所定の値に変更する。当該工程を実行する産業装置３０は、当該工程が正常に完了すると、終了変数を所定の値に変更する。コントローラ２０は、その旨を検出すると、次の工程の開始変数を所定の値に変更する。以降同様にして、１サイクル内の各工程が実行される。何れかの工程で異常が発生すると、当該工程を実行する産業装置３０は、当該工程を中断し、当該工程の中断変数を所定の値に変更する。
【００９８】
コントローラ２０は、何れかの工程で異常が発生したか否かを判定する（Ｓ２）。Ｓ２においては、コントローラ２０は、各工程の中断変数を参照し、所定の値になった中断変数が存在するか否かを判定する。コントローラ２０は、中断変数が所定の値になった工程が１つでも存在すれば、異常が発生したと判定する。
【００９９】
異常が発生したと判定された場合（Ｓ２；Ｙ）、コントローラ２０は、システムプログラムＱに基づいて、復旧工程情報が登録済みであるか否かを判定する（Ｓ３）。復旧工程情報が登録されると、後述するＳ１２の処理によって、システムプログラムＱには、登録された復旧工程情報を取得する命令が記述される。Ｓ３においては、コントローラ２０は、システムプログラムＱに当該命令が記述されているか否かを判定する。
【０１００】
復旧工程情報が登録済みであると判定されない場合（Ｓ３；Ｎ）、コントローラ２０は、ユーザ端末１０に対し、異常発生通知を送信する（Ｓ４）。Ｓ４においては、コントローラ２０は、電子メール等を利用して、所定フォーマットの異常発生通知を送信する。異常発生通知には、異常が発生した工程の名称、当該工程を実行する産業装置３０の名称、及び異常の発生日時といった情報が含まれているものとする。
【０１０１】
ユーザ端末１０は、異常発生通知を受信すると、エンジニアリングツールを起動し（Ｓ５）、工程データベースに基づいて、復旧工程作成画面Ｇを表示させる（Ｓ６）。Ｓ６においては、ユーザ端末１０は、工程データベースを参照し、産業装置３０に工程プログラムが記憶された工程を特定し、全ての工程の名称を示すリストＬを復旧工程作成画面Ｇに表示させる。なお、以降の処理が実行されるにあたり、ユーザ端末１０と産業装置３０Ａ及び産業装置３０Ｂとが通信可能に接続されるものとする。
【０１０２】
ユーザ端末１０は、操作部１４の検出信号に基づいて、ユーザによる工程の指定を受け付け（Ｓ７）、産業装置３０は、当該工程を実行する（Ｓ８）。Ｓ７においては、ユーザは、リストＬ中の任意の工程を指定する。ユーザは、複数の工程を指定する場合、その実行順も指定する。ユーザが指定した工程は、時系列的にユーザ端末１０に記録されるものとする。ユーザ端末１０は、ユーザが工程を指定すると、当該工程の開始変数を所定の値に変更する。産業装置３０は、開始変数が所定の値に変更されたことを検出すると、Ｓ８において、ユーザが指定した工程を実行する。
【０１０３】
ユーザ端末１０は、操作部１４の検出信号に基づいて、復旧完了ボタンＢが選択されたか否かを判定する（Ｓ９）。復旧完了ボタンＢが選択されたと判定されない場合（Ｓ９；Ｎ）、Ｓ７の処理に戻る。この場合、発生した異常が復旧するまでの間、ユーザによる工程の指定が繰り返される。
【０１０４】
一方、復旧完了ボタンＢが選択されたと判定された場合（Ｓ９；Ｙ）、ユーザ端末１０は、サーバ４０に対し、復旧工程情報の記録要求を送信する（Ｓ１０）。記録要求は、所定形式のデータが送信されることによって行われる。記録要求には、復旧工程情報が含まれるものとする。ユーザ端末１０は、ユーザが指定した実行順で、ユーザが指定した工程が実行されるように復旧工程情報を生成し、記録要求に含めて送信する。
【０１０５】
サーバ４０は、記録要求を受信すると、記録要求に含まれる復旧工程情報を復旧工程データベースＤＢ２に格納する（Ｓ１１）。図１０に移り、ユーザ端末１０は、異常が発生した工程で復旧工程情報を呼び出すように、システムプログラムＱを更新し（Ｓ１２）、コントローラ２０は、工程を再開する（Ｓ１３）。Ｓ１２においては、ユーザ端末１０は、異常が発生した場合にサーバ４０に復旧工程情報を要求するように、システムプログラムＱを更新する。Ｓ１３においては、ユーザ端末１０は、コントローラ２０に所定の指示を送信し、コントローラ２０は、異常が発生した工程の中断変数を初期値に戻して工程を再開させる。なお、中断変数を初期値に戻す処理は、ユーザ端末１０により実行されてもよい。
【０１０６】
一方、Ｓ３において、復旧工程情報が登録済みであると判定された場合（Ｓ３；Ｙ）、コントローラ２０は、サーバ４０に対し、登録済みの復旧工程情報の取得要求を送信する（Ｓ１４）。取得要求は、所定形式のデータが送信されることによって行われる。例えば、取得要求には、取得対象の復旧工程情報の名称が含まれる。取得対象の復旧工程情報の名称は、Ｓ１２における更新時にシステムプログラムＱに記述されるものとする。
【０１０７】
サーバ４０は、取得要求を受信すると、復旧工程データベースＤＢ２に基づいて、コントローラ２０に対し、復旧工程情報を送信する（Ｓ１５）。コントローラ２０は、復旧工程情報を受信すると、復旧工程情報が示す実行順で各工程を実行し、発生した異常を復旧させ（Ｓ１６）、コントローラ２０は、工程を再開する（Ｓ１７）。Ｓ１６では、Ｓ８の処理が時系列的に実行されることになる。Ｓ１７の処理は、Ｓ１３の処理と同様である。
【０１０８】
一方、Ｓ２において、産業装置３０で異常が発生したと判定されない場合（Ｓ２；Ｎ）、コントローラ２０は、所定の終了条件が満たされたか否かを判定する（Ｓ１８）。終了条件は、サイクルを終了するための条件であり、ユーザが所定の操作を行うことや所定の日時が訪れることといった任意の条件を設定可能である。終了条件が満たされたと判定されない場合（Ｓ１８；Ｎ）、Ｓ１の処理に戻り、各工程の実行が継続される。一方、終了条件が満たされたと判定された場合（Ｓ１８；Ｙ）、本処理は終了する。
【０１０９】
本実施形態の生産システム１によれば、産業装置３０に発生した異常が検出された場合に、工程情報に基づいて、復旧のために実行する１以上の工程の指定を受け付けて、復旧工程情報として記録することにより、ラダーチャートなどを利用して復旧プログラムを作成する必要がなくなり、産業装置３０に発生した異常を復旧させるための手間を軽減することができる。産業装置３０に記憶された工程プログラムＰは、変数の値によって実行が制御されるので、ユーザが工程を指定しさえすれば、当該工程の変数を変更するための復旧工程情報を生成すればよいため、復旧プログラムを作成する必要がなくなる。例えば、産業装置３０には、種々の異常が発生することがあり、異常ごとに復旧プログラムを作成するのは非常に手間がかかるが、異常の復旧のために実行させる工程を指定して実行結果を記録することにより、このような手間を省くことができる。例えば、工程を任意の順序で組み合わせることによって、種々の異常に対応することができる。
【０１１０】
また、異常が再び検出された場合に、復旧工程情報が示す１以上の工程を取得し、当該取得した１以上の工程を実行して異常を復旧させることで、産業装置３０に発生した異常を容易に復旧させることができる。
【０１１１】
また、異常が検出された場合に、産業装置３０が実行可能な複数の工程それぞれの工程情報に基づいて、複数の工程それぞれの名称を含み、復旧のために実行する工程を指定可能な復旧工程作成画面Ｇを表示させることで、復旧時の作業を効率化することができる。
【０１１２】
また、工程を順次実行させなければ異常が復旧しない場合であったとしても、工程の実行順に基づいて復旧工程情報を記録することで、復旧の確実性を高めることができる。
【０１１３】
また、産業装置３０を制御するコントローラ２０ではなく、サーバに復旧工程の実行結果を記録することにより、復旧工程の実行結果をサーバで一括管理することができる。
【０１１４】
また、異常が発生した産業装置３０の前工程を担当する他の産業装置３０に復旧工程を実行させる必要があったとしても、当該他の産業装置３０により実行される工程を復旧工程情報に記録可能とすることで、復旧の確実性を高めることができる。
【０１１５】
［５．変形例］
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【０１１６】
図１１は、変形例における機能ブロック図である。図１１に示すように、以降説明する変形例では、実施形態で説明した機能に加えて、種類取得部１０４、特定部１０５、及び状態取得部１０６が実現される。例えば、これら各機能は、ＣＰＵ１１を主として実現される。
【０１１７】
（１）例えば、同じ工程であったとしても、発生する異常の種類によって復旧に必要な工程が異なることがある。このため、サーバ４０に、発生した異常の種類と復旧工程情報を関連付けて記録しておき、産業装置３０に発生した異常の種類に応じた復旧工程情報が呼び出されるようにしてもよい。
【０１１８】
本変形例のユーザ端末１０では、種類取得部１０４が実現される。種類取得部１０４は、検出部２０２が検出した異常の種類を取得する。異常の種類は、エラーコード等の識別情報によって示される。本変形例では、中断変数の値によって異常の種類が特定されるものとする。例えば、工程プログラムＰは、異常が発生した場合に、当該異常の種類に応じた値となるように、中断変数を変更する。種類取得部１０４は、異常が発生した工程の中断変数の値を参照し、異常の種類を取得する。なお、異常の種類の取得方法は、上記の例に限られず、任意の方法を利用可能である。例えば、異常が発生した産業装置３０がコントローラ２０に異常発生通知を送信する場合、異常発生通知に異常の種類の識別情報が含まれるようにしてもよい。
【０１１９】
図１２は、変形例（１）の復旧工程データベースＤＢ２のデータ格納例を示す図である。図１２に示すように、記録部１０３は、種類取得部１０４が取得した異常の種類に関連付けて、復旧工程情報を記録する。復旧工程データベースＤＢ２には、各工程の異常の種類ごとに、復旧工程情報が格納される。例えば、記録部１０３は、サーバ４０に対し、異常の種類の識別情報と復旧工程情報とを送信する。サーバ４０は、これらを受信すると互いに関連付けて復旧工程データベースＤＢ２に格納する。
【０１２０】
復旧部２０３は、検出部２０２が異常を再び検出した場合に、当該異常の種類に関連付けられた復旧工程情報が示す１以上の工程を取得し、当該取得した１以上の工程を実行して異常を復旧させる。復旧部２０３は、復旧工程データベースＤＢ２に格納された復旧工程情報のうち、発生した異常の種類に関連付けられた復旧工程情報を取得する。復旧部２０３は、当該取得した復旧工程情報に基づいて、異常を復旧させる。復旧工程に基づいて異常を復旧させる手順自体は、実施形態で説明した通りである。
【０１２１】
変形例（１）によれば、異常が再び検出された場合に、当該異常の種類に関連付けられた復旧工程情報が示す１以上の工程を取得し、当該取得した１以上の工程を実行して異常を復旧させることで、復旧の確実性を高めることができる。
【０１２２】
（２）また例えば、異常が発生した工程によって復旧に必要な工程が異なることがある。このため、サーバ４０に、異常が発生した工程と復旧工程情報を関連付けて記録しておき、異常が発生した工程に応じた復旧工程情報が呼び出されるようにしてもよい。
【０１２３】
本変形例のユーザ端末１０では、特定部１０５が実現される。特定部１０５は、検出部２０２が検出した異常が発生した工程を特定する。例えば、特定部１０５は、中断変数が所定の値になった工程の名称を、異常が発生した工程の名称として取得する。なお、異常が発生した工程の特定方法は、上記の例に限られず、任意の方法を利用可能である。例えば、異常が発生した産業装置３０がコントローラ２０に異常発生通知を送信する場合、異常発生通知に異常が発生した工程の名称が含まれるようにしてもよい。
【０１２４】
図１３は、変形例（２）の復旧工程データベースＤＢ２のデータ格納例を示す図である。図１３に示すように、記録部１０３は、特定部１０５が特定した工程に関連付けて、復旧工程情報を記録する。復旧工程データベースＤＢ２には、工程ごとに、復旧工程情報が格納される。例えば、記録部１０３は、サーバ４０に対し、異常が発生した工程の名称と復旧工程情報とを送信する。サーバ４０は、これらを受信すると互いに関連付けて復旧工程データベースＤＢ２に格納する。
【０１２５】
復旧部２０３は、検出部２０２が異常を再び検出した場合に、当該異常が発生した工程に関連付けられた復旧工程情報が示す１以上の工程を取得し、当該取得した１以上の工程を実行して異常を復旧させる。復旧部２０３は、復旧工程データベースＤＢ２に格納された復旧工程情報のうち、異常が発生した工程に関連付けられた復旧工程情報を取得する。復旧部２０３は、当該取得した復旧工程情報に基づいて、異常を復旧させる。復旧工程に基づいて異常を復旧させる手順自体は、実施形態で説明した通りである。
【０１２６】
変形例（２）によれば、異常が再び発生した場合に、当該異常が発生した工程に関連付けられた復旧工程情報が示す１以上の工程を取得し、当該取得した１以上の工程を実行して異常を復旧させることで、復旧の確実性を高めることができる。
【０１２７】
（３）また例えば、異常発生時の産業装置３０の状態によって復旧に必要な工程が異なることがある。このため、サーバ４０に、異常発生時の産業装置３０の状態を関連付けて記録しておき、異常発生時の状態に応じた復旧工程情報が呼び出されるようにしてもよい。
【０１２８】
本変形例のユーザ端末１０では、状態取得部１０６が実現される。状態取得部１０６は、検出部２０２が異常を検出したときの産業装置３０の状態を取得する状態取得部１０６を更に有する。状態とは、異常発生時の産業装置３０の動作状態であり、例えば、例えば、トルク値、モータの回転速度、温度、ワークの状態、ＣＰＵ使用率、又は通信量等である。産業装置３０の状態は、コントローラ２０又は産業装置３０に接続されたセンサによって検出されてもよいし、コントローラ２０又は産業装置３０内分の計算結果によって取得されてもよい。
【０１２９】
例えば、産業装置３０が、自身の状態を示す変数を記憶する場合、状態取得部１０６は、当該変数の値を参照し、産業装置３０の状態を取得する。なお、産業装置３０の状態の取得方法は、上記の例に限られず、任意の方法を利用可能である。例えば、異常が発生した産業装置３０がコントローラ２０に異常発生通知を送信する場合、異常発生通知に産業装置３０の状態を示す情報が含まれるようにしてもよい。
【０１３０】
図１４は、変形例（３）の復旧工程データベースＤＢ２のデータ格納例を示す図である。図１４に示すように、記録部１０３は、状態取得部１０６が取得した産業装置３０の状態に関連付けて、復旧工程情報を記録する。復旧工程データベースＤＢ２には、産業装置３０の状態ごとに、復旧工程情報が格納される。例えば、記録部１０３は、サーバ４０に対し、産業装置３０の状態と復旧工程情報とを送信する。サーバ４０は、これらを受信すると互いに関連付けて復旧工程データベースＤＢ２に格納する。
【０１３１】
復旧部２０３は、検出部２０２が異常を再び検出した場合に、当該異常が発生したときの産業装置の状態に関連付けられた復旧工程情報が示す１以上の工程を取得し、当該取得した１以上の工程を実行して異常を復旧させる。復旧部２０３は、復旧工程データベースＤＢ２に格納された復旧工程情報のうち、産業装置３０の状態に関連付けられた復旧工程情報を取得する。なお、復旧部２０３は、復旧工程データベースＤＢ２の中に全く同じ状態が存在しない場合には、異常発生時の状態と類似する状態が関連付けられた復旧工程情報を取得する。ここでの類似とは、状態を示す値の差が閾値未満であることを意味する。復旧部２０３は、当該取得した復旧工程情報に基づいて、異常を復旧させる。復旧工程に基づいて異常を復旧させる手順自体は、実施形態で説明した通りである。
【０１３２】
変形例（３）によれば、異常が再び発生した場合に、当該異常が発生したときの産業装置３０の状態に関連付けられた復旧工程情報が示す１以上の工程を取得し、当該取得した１以上の工程を実行して異常を復旧させることで、復旧の確実性を高めることができる。
【０１３３】
（４）また例えば、受付部１０２は、検出部２０２が検出した異常が復旧した後に再開する工程の指定を受け付けてもよい。再開する工程は、通常のサイクルに含まれる工程のうちの任意の工程であってよく、異常が発生した工程に限られない。例えば、最初からやり直す場合には、１番目に実行される工程が再開工程として指定されてもよいし、異常が発生した工程の前工程が再開工程として指定されてもよい。
【０１３４】
図１５は、変形例（４）の復旧工程データベースＤＢ２のデータ格納例を示す図である。図１５に示すように、記録部１０３は、復旧工程情報に関連付けて、受付部１０２が受け付けた再開させる工程を記録する。例えば、記録部１０３は、サーバ４０に対し、ユーザが指定した再開する工程と復旧工程情報とを送信する。サーバ４０は、これらを受信すると互いに関連付けて復旧工程データベースＤＢ２に格納する。復旧部２０３は、復旧工程データベースＤＢ２に格納された工程から再開させる。
【０１３５】
変形例（４）によれば、復旧工程情報に異常が復旧した後に再開する工程を記録することによって、工程の再開を迅速に行うことができる。
【０１３６】
（５）また例えば、上記変形例を組み合わせてもよい。
【０１３７】
また例えば、異常復旧時に実行させる工程の実行条件等の設定をユーザに指定させてもよい。この場合、ユーザが指定した設定が復旧工程情報に格納されるものとする。また例えば、生産システム１は、復旧工程情報を呼び出す処理まで実行し、復旧については、外部のコンピュータに実行させてもよい。また例えば、復旧工程作成画面Ｇを表示させることなく、工程の指定が受け付けられるようにしてもよい。例えば、ユーザが工程の名称を覚えていたり、手元のリストに記載していたりする場合には、復旧工程作成画面Ｇを表示させることなく、工程の名称の入力が直接的に受け付けられるようにしてもよい。
【０１３８】
また例えば、生産システム１が、ユーザ端末１０、コントローラ２０、産業装置３０、及びサーバ４０を含む場合を説明したが、生産システム１に含まれるコンピュータは、実施形態で説明した例に限られない。例えば、生産システム１には、コントローラ２０とサーバ４０が含まれなくてもよい。また例えば、産業装置３０以外のシステムを復旧システムと呼んでもよい。復旧システムについても任意のコンピュータによって実現可能であり、例えば、復旧システムは、ユーザ端末１０とサーバ４０だけから構成されてもよい。また例えば、ユーザ端末１０によって主な機能が実現される場合を説明したが、ユーザ端末１０によって実現されるものとした機能は、コントローラ２０又はサーバ４０等の他のコンピュータによって実現されてもよい。また例えば、ユーザ端末１０によって実現されるものとして説明した機能は、複数のコンピュータによって分担されてもよい。
【０１３９】
また例えば、以上説明した実施形態は具体例として示したものであり、本明細書にて開示される発明をこれら具体例の構成やデータ格納例そのものに限定するものではない。当業者はこれら開示された実施形態に種々の変形、例えば、物理的構成の形状や数、データ構造、処理の実行順を変更したりしてもよい。本明細書にて開示される発明の技術的範囲は、そのようになされた変形をも含むものと理解すべきである。
【符号の説明】
【０１４０】
１  生産システム、Ｂ  復旧完了ボタン、Ｇ  復旧工程作成画面、Ｌ  リスト、Ｐ  工程プログラム、Ｑ  システムプログラム、１０  ユーザ端末、１２  記憶部、１３  通信部、１４  操作部、１５  表示部、２０  コントローラ、２２  記憶部、２３  通信部、３０  産業装置、３２  記憶部、３３  通信部、４０  サーバ、４２  記憶部、４３  通信部、１００  データ記憶部、１０１  表示制御部、１０２  受付部、１０３  記録部、１０４  種類取得部、１０５  特定部、１０６  状態取得部、２００  データ記憶部、２０１  システムプログラム実行部、２０２  検出部、２０３  復旧部、３００  データ記憶部、３０１  工程プログラム実行部、４００  データ記憶部、ＤＢ１  工程データベース、ＤＢ２  復旧工程データベース。
【要約】
【課題】産業装置に発生した異常を復旧させるための手間を軽減する。
【解決手段】生産システム（１）は、複数の工程それぞれを実行可能な産業装置（３０）を有する。生産システム（１）の検出部（２０２）は、産業装置（３０）に発生した異常を検出する。受付部（１０２）は、検出部（２０２）が異常を検出した場合に、複数の工程それぞれに対して、少なくとも、工程の名称と、産業装置（３０）の動作を表して工程で実行される工程プログラムにおいて参照及び変更の少なくとも一方が行われる変数と、が関連付けられた工程情報に基づいて、復旧のために実行する１以上の工程の指定を受け付ける。記録部（１０３）は、受付部（１０２）が受け付けた１以上の工程を示す復旧工程情報を記録する。
【選択図】図６【図１】
0006813077.tif 000002
【図２】
0006813077.tif 000003
【図３】
0006813077.tif 000004
【図４】
0006813077.tif 000005
【図５】
0006813077.tif 000006
【図６】
0006813077.tif 000007
【図７】
0006813077.tif 000008
【図８】
0006813077.tif 000009
【図９】
0006813077.tif 000010
【図１０】
0006813077.tif 000011
【図１１】
0006813077.tif 000012
【図１２】
0006813077.tif 000013
【図１３】
0006813077.tif 000014
【図１４】
0006813077.tif 000015
【図１５】
0006813077.tif 000016