(58)【調査した分野】(Int.Cl.,DB名)
前記生産システムは、前記検出部が前記異常を再び検出した場合に、前記記録部が記録した前記復旧工程情報が示す前記1以上の工程を取得し、当該取得した1以上の工程を実行して前記異常を復旧させる復旧部、
を更に有する請求項1に記載の生産システム。
前記生産システムは、前記検出部が前記異常を検出した場合に、前記複数の工程それぞれの前記工程情報に基づいて、前記複数の工程それぞれの名称を含み、復旧のために実行する工程を指定可能な復旧工程作成画面を表示させる表示制御部を更に有し、
前記受付部は、前記復旧工程作成画面において、前記1以上の工程の指定を受け付ける、
請求項1〜5の何れか1項に記載の生産システム。
前記受付部は、前記検出部が前記異常を検出した前記産業装置と、当該産業装置の前工程を実行する他の産業装置と、のそれぞれの前記工程情報に基づいて、前記産業装置及び前記他の産業装置の少なくとも一方により実行される前記1以上の工程の指定を受け付け、
前記記録部は、前記産業装置及び前記他の産業装置の少なくとも一方により実行される前記1以上の工程を示す前記復旧工程情報を記録する、
請求項1〜6の何れか1項に記載の生産システム。
【発明を実施するための形態】
【0020】
本発明の発明者の見地によれば、複数の工程それぞれを実行する産業装置に異常が発生するたびに、ユーザは手作業で異常を復旧させる必要があり、非常に手間がかかっていた。そこで本発明の発明者は、産業装置に発生した異常を復旧させるための手間を軽減するために鋭意研究開発を行った結果、新規かつ独創的な生産システム等に想到した。以降、本実施形態に係る生産システム等を詳細に説明する。
【0021】
[1.生産システムの全体構成]
図1は、実施形態に係る生産システムの全体構成を示す図である。
図1に示すように、生産システム1は、ユーザ端末10、コントローラ20、産業装置30A,30B、及びサーバ40を含む。これら各装置は、Ethernet(登録商標)又は産業装置専用の通信規格等の任意のネットワークを利用して通信可能に接続される。なお、以降の説明で産業装置30A,30Bを特に区別する必要のないときは、単に産業装置30と記載する。同様に、CPU31A,31B、記憶部32A,32B、及び通信部33A,33Bを特に区別する必要のないときは、単にCPU31、記憶部32、及び通信部33と記載する。
【0022】
ユーザ端末10は、ユーザが操作するコンピュータである。例えば、ユーザ端末10は、パーソナルコンピュータ、携帯端末(タブレット型端末を含む)、又は携帯電話(スマートフォンを含む)である。また、ユーザ端末10は、これらに限られず、オペレータ端末、プログラミングペンダント、又はパネルコントローラ等のHMI(Human Machine Interface)であってもよい。ユーザ端末10は、CPU11、記憶部12、通信部13、操作部14、及び表示部15を含む。なお、
図1では線を省略しているが、ユーザ端末10は、コントローラ20及びサーバ40の各々とも接続可能である。
【0023】
CPU11は、少なくとも1つのプロセッサを含む。記憶部12は、RAMやハードディスクを含み、各種プログラムやデータを記憶する。CPU11は、これらプログラムやデータに基づいて各種処理を実行する。通信部13は、ネットワークカードや各種通信コネクタ等の通信インタフェースを含み、他の装置との通信を行う。操作部14は、マウスやキーボード等の入力デバイスである。表示部15は、液晶ディスプレイ又は有機ELディスプレイ等であり、CPU11の指示により各種画面を表示する。
【0024】
コントローラ20は、少なくとも1つの産業装置30を制御するコンピュータである。例えば、コントローラ20は、PLCと呼ばれるコンピュータであってもよいし、PLCと同等の機能を有する他の名称のコンピュータであってもよい。例えば、コントローラ20と産業装置30の全体は、ラインよりも小さな単位であるセルと呼ばれることがあり、この場合には、コントローラ20は、セルコントローラと呼ばれることもある。
【0025】
コントローラ20は、CPU21、記憶部22、及び通信部23を含む。CPU21、記憶部22、及び通信部23の物理的構成は、それぞれCPU11、記憶部12、及び通信部13と同様であってよい。なお、コントローラ20は、制御装置の一例である。このため、本実施形態でコントローラ20と記載した箇所は、制御装置と読み替えることができる。制御装置は、コントローラ20以外の任意の装置であってよい。コントローラ20は、産業装置30の制御だけではなく、自身の直下に接続されたロボットやモータ等の機器を直接的に制御してもよいし、産業装置30の動作結果を示すデータの解析をサーバ40に依頼してもよい。
【0026】
産業装置30は、工程を実行する装置である。産業装置30は、任意の種類の装置を適用可能であり、例えば、ロボットコントローラ、ロボットコントローラの下位装置、産業用ロボット、モータコントローラ、モータコントローラの下位装置、工作機械、プレス加工機、又は搬送機器などである。PLCも産業装置の一種である。産業装置30は、CPU31、記憶部32、及び通信部33を含む。CPU31、記憶部32、及び通信部33の物理的構成は、それぞれCPU11、記憶部12、及び通信部13と同様であってよい。
【0027】
なお、産業装置30は、他の物理的構成が含まれもよく、例えば、ASICと呼ばれる特定用途向けの集積回路が含まれてもよい。また、産業装置30には、任意の物理的構成が接続されてよく、例えば、モータ等の制御対象の機器、モータ等の動作を検出するためのセンサ、加工対象となるワークの状態を撮影するカメラ、入出力機器、又は他の産業装置などが接続されていてもよい。また、本実施形態では、コントローラ20が2台の産業装置30を制御する場合を説明するが、コントローラ20が制御する産業装置30の台数は、任意の台数であってよく、例えば、1台又は3台以上であってもよい。
【0028】
サーバ40は、サーバコンピュータである。サーバ40は、CPU41、記憶部42、及び通信部43を含む。CPU41、記憶部42、及び通信部43の物理的構成は、それぞれCPU11、記憶部12、及び通信部13と同様であってよい。例えば、サーバ40は、コントローラ20及び産業装置30の動作結果を示すデータを収集したり、収集したデータ基づいて動作解析を行ったりする。
【0029】
なお、記憶部12,22,32,42の各々に記憶されるものとして説明するプログラム及びデータは、ネットワークを介して供給されるようにしてもよい。また、各装置のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、光ディスクドライブやメモリカードスロット)や外部機器と直接的に接続するための入出力部(例えば、USB端子)が含まれていてもよい。この場合、情報記憶媒体に記憶されたプログラムやデータが、読取部又は入出力部を介して供給されるようにしてもよい。
【0030】
[2.生産システムの概要]
本実施形態では、コントローラ20に、産業装置30を制御するためのシステムプログラムが記憶されている。コントローラ20と産業装置30の全体をセルと呼ぶ場合には、システムプログラムはセルプログラムと呼ばれることもある。システムプログラムは、変数を利用して工程の実行順を制御するためのプログラムである。実行順とは工程が実行される順序である。
【0031】
変数は、工程が実行される場合に参照及び変更の少なくとも一方が行われる情報である。本実施形態では、産業装置30の記憶部32に、工程を実行するための工程プログラムが記憶されており、変数は、工程プログラムにおいて参照及び変更の少なくとも一方が行われる。参照は、変数に対応するレジスタが読み出されることである。変更は、変数に対応するレジスタの値を書き換えることである。
【0032】
変数は、工程の実行条件となり、工程ごとに用意される。変数は、産業装置30の動作を示す情報ということもできる。例えば、工程には、工程の開始条件となる開始変数、中断条件(一時停止条件)となる中断変数、又は、終了条件となる終了変数が用意される。これらの変数以外にも、任意の変数が存在してよく、例えば、工程がビジー状態であることを示す変数、工程の実行結果を示す変数、途中計算を示す変数、産業装置30の設定を示す変数、又はセンサの検出結果を示す変数があってもよい。変数は、入出力変数と呼ばれることもある。変数は、産業装置30のレジスタに対応する。変数は、産業装置30又は他の機器(コントローラ20等)によって参照される。
【0033】
工程とは、産業装置30が行う作業又は動作である。工程は、1つの作業又は動作だけから構成されてもよいし、複数の作業又は動作の組み合わせから構成されてもよい。産業装置30は、任意の用途に応じた工程を実行可能であり、例えば、ワークの認識、ワークの把持、扉の開閉、ワークのセット、工作機械にワークを固定する動作、又は工作機械を利用した加工などを工程として実行する。産業装置30は、少なくとも1つの工程を実行する。産業装置30は、1つの工程だけを実行してもよいし、複数の工程を実行してもよい。
【0034】
工程プログラムは、工程における個々の手順が定義されたプログラムである。工程プログラムは、産業装置30の動作を定義したプログラムということもできる。工程プログラムは、任意の言語で作成可能であり、例えば、ラダー言語又はロボット言語によって作成される。産業装置30によって工程プログラムの言語が異なってもよく、例えば、産業装置30Aの工程プログラムがラダー言語であり、産業装置30Bの工程プログラムがロボット言語であってもよい。例えば、工程プログラムは、開始変数が実行開始の条件となるように、ラダーチャートにおける起動スイッチやコイルが記述されていたり、ソースコードにおける条件分岐が記述されていたりする。また例えば、工程プログラムは、工程の最後の処理が終了した場合に、終了変数を変更するように命令が記述されている。また例えば、工程プログラムは、工程の実行中に異常が発生した場合に、中断変数を変更するように命令が記述されている。
【0035】
本実施形態では、工程ごとに工程プログラムが用意されており、工程と工程プログラムは、1対1の関係にある。このため、ある産業装置30がn個(nは自然数)の工程を行うとすると、当該産業装置30は、少なくともn個の工程プログラムを記憶する。なお、工程と工程プログラムは、1対1の関係になくてもよく、例えば、1つの工程プログラムにより複数の工程が実行されてもよいし、1つの工程を実行するために複数の工程プログラムが用意されていてもよい。
【0036】
図2は、コントローラ20が産業装置30を制御する様子を示す図である。本実施形態では、産業装置30Aが工作機械であり、産業装置30Bが産業用ロボットである場合を例に挙げて説明する。例えば、工程は、周期的に繰り返される。
図2では、1サイクル内に実行される工程が示されている。コントローラ20は、システムプログラムを実行し、サイクルの最初の工程として、産業装置30Bに認識工程を実行させる。認識工程は、センサを利用してワークを認識する工程である。
【0037】
先述したように、本実施形態では、工程ごとに変数が用意されており、変数によって工程の開始が制御される。このため、コントローラ20は、認識工程を開始するための開始変数を所定の値に変更する。この値は、工程を開始するための値であり、例えば、1である。開始変数には、初期値(例えば、0)が設定されており、開始変数が初期値から所定の値になった場合に工程が開始される。
【0038】
産業装置30Bは、認識工程の開始変数が所定の値に変更されたことを検出すると、認識工程の工程プログラムを実行し、認識工程を開始する。認識工程が正常に終了すると、産業装置30Bは、認識工程の終了変数を所定の値に変更する。この値は、工程の終了を示す値であり、例えば、1である。終了変数には、初期値(例えば、0)が設定されており、工程が終了すると初期値から所定の値になる。
【0039】
コントローラ20は、認識工程の終了変数が所定の値に変更されたことを検出すると、次の把持工程の開始変数を所定の値に変更する。把持工程は、認識されたワークをロボットハンドで把持して所定の位置に搬送する工程である。産業装置30Bは、把持工程の開始変数が所定の値に変更されたことを検出すると、把持工程の工程プログラムを実行し、把持工程を開始する。把持工程が正常に終了すると、産業装置30Bは、把持工程の終了変数を所定の値に変更する。
【0040】
コントローラ20は、把持工程の終了変数が所定の値に変更されたことを検出すると、次の扉開け工程の開始変数を所定の値に変更する。扉開け工程は、ワークを入れるために産業装置30Aの扉を開く工程である。産業装置30Aは、扉開け工程の開始変数が所定の値に変更されたことを検出すると、扉開け工程の工程プログラムを実行し、扉開け工程を開始する。扉開け工程が正常に終了すると、産業装置30Aは、扉開け工程の終了変数を所定の値に変更する。
【0041】
コントローラ20は、扉開け工程の終了変数が所定の値に変更されたことを検出すると、次のセット工程の開始変数を所定の値に変更する。セット工程は、開けられた扉の中にワークをセットする工程である。産業装置30Bは、セット工程の開始変数が所定の値に変更されたことを検出すると、セット工程の工程プログラムを実行し、セット工程を開始する。セット工程が正常に終了すると、産業装置30Bは、セット工程の終了変数を所定の値に変更する。
【0042】
コントローラ20は、セット工程の終了変数が所定の値に変更されたことを検出すると、次のチャック工程の開始変数を所定の値に変更する。チャック工程は、加工を行うためにワークを固定する工程である。産業装置30Aは、チャック工程の開始変数が所定の値に変更されたことを検出すると、チャック工程の工程プログラムを実行し、チャック工程を開始する。チャック工程が正常に終了すると、産業装置30Aは、チャック工程の終了変数を所定の値に変更する。
【0043】
コントローラ20は、チャック工程の終了変数が所定の値に変更されたことを検出すると、次の加工工程の開始変数を所定の値に変更する。加工工程は、ワークを加工する工程である。産業装置30Aは、加工工程の開始変数が所定の値に変更されたことを検出すると、加工工程の工程プログラムを実行し、加工工程を開始する。加工工程が正常に終了すると、産業装置30Aは、加工工程の終了変数を所定の値に変更する。
【0044】
以上により、1サイクル内の全ての工程が完了する。コントローラ20は、加工工程の終了変数が所定の値に変更されたことを検出すると、次のサイクルを開始するために、認識工程の開始変数を所定の値に変更する。以降、1サイクル目と同様にして、次のサイクルが開始される。なお、各工程の開始変数と終了変数は、サイクル終了時等の所定のタイミングで初期値に戻るものとする。
【0045】
各産業装置30は、自身が実行する工程で異常が発生した場合に、工程の実行を中断し、中断変数を所定の値に変更する。異常発生を検出する処理は、工程プログラムに記述されているものとする。例えば、産業装置30Aは、扉開け工程において扉が開かなかった場合には、扉開く工程の中断変数を所定の値に変更する。また例えば、産業装置30Bは、把持工程においてワークを把持できなかった場合には、把持工程の中断変数を所定の値に変更する。
【0046】
コントローラ20は、何れかの工程の中断変数が所定の値に変更されたことを検出すると、ユーザ端末10に対し、異常が発生したことを示す異常発生通知を送信する。本実施形態では、電子メールを利用して異常発生通知が送信される場合を説明するが、他の媒体を利用して通知が行われてもよい。例えば、プッシュ通知、エンジニアリングツール内の通知、又はメッセージアプリを利用して異常発生通知が行われてもよい。
【0047】
また例えば、異常発生通知は、ユーザ端末10に対する情報の出力に限られず、他の方法で行われるようにしてもよい。例えば、コントローラ20にLEDライト等の発光部を設けておき、発光部を発光させることによって、異常発生通知が行われてもよい。また例えば、異常発生通知は、視覚的な通知に限られず、聴覚的又は触覚的な通知であってもよい。例えば、スピーカから出力されるアラーム音、又は、バイブレータの振動によって異常発生通知が行われてもよい。
【0048】
ユーザは、異常発生通知を確認すると、産業装置30にユーザ端末10を接続して異常を復旧させる。ユーザ端末10と産業装置30とは、有線接続されてもよいし、無線接続されてもよい。本実施形態では、産業装置30Aの加工工程で発生した異常を復旧させる手順を例に挙げて説明する。例えば、ユーザが、ユーザ端末10にインストールされたエンジニアリングツールを起動させると、異常を復旧させるための復旧工程作成画面が表示される。
【0049】
図3は、復旧工程作成画面の一例を示す図である。
図3に示すように、復旧工程作成画面Gには、産業装置30が実行可能な工程のリストLが表示される。例えば、リストLには、産業装置30A及び産業装置30Bの各々が実行可能な全ての工程の名称が表示される。リストLには、サイクル内で実行される工程の名称に限られず、他の工程の名称も表示される。例えば、リストLには、異常復旧のために実行される工程の名称に限られず、異常復旧で特に利用されない工程の名称も表示される。
【0050】
ユーザは、復旧工程作成画面Gから少なくとも1つの工程を指定し、産業装置30に発生した異常を復旧させる。ユーザは、リストL中の任意の工程を指定可能である。例えば、ユーザは、産業装置30A及び産業装置30Bの両方の工程を指定してもよいし、産業装置30A又は産業装置30Bの何れか一方の工程を指定してもよい。産業装置30A及び産業装置30Bの各々は、ユーザが選択した工程を実行する。
【0051】
図4は、ユーザが手動で異常を復旧させる様子を示す図である。
図4に示すように、例えば、ユーザは、復旧工程作成画面Gから、産業装置30Aの扉開け工程、工具逃げ工程、工具退避工程、及びチャックOFF工程を選択する。工具逃げ工程及び工具退避工程の各々は、産業装置30Aに備えられた加工用の工具を移動させる工程である。チャックOFF工程は、チャック状態を解除する工程である。産業装置30Aは、ユーザが指定した順番に各工程を実行する。
【0052】
その後、ユーザは、復旧工程作成画面Gから、産業装置30Bの移動工程を選択する。移動工程は、ロボットハンドを移動させる工程である。産業装置30Bは、ユーザの指示に沿って移動工程を実行する。ユーザは、異常が復旧したことを確認すると、復旧工程作成画面Gから復旧完了ボタンBを選択する。ユーザが復旧完了ボタンBを選択すると、加工工程の中断変数が初期値に戻り、サイクルが再開される。
図2の例では、異常が発生した加工工程の1つ前のチャック工程から再開される場合を示している。
【0053】
本実施形態では、ユーザが手動で異常を復旧させると、その時に指定した工程が復旧工程情報としてサーバ40に記録される。詳細は後述するが、本実施形態の復旧工程情報は、ユーザが指定した工程をその実行順に実行するためのマクロである。サーバ40に記録された復旧工程情報は、産業装置30で再び異常が発生した場合に、コントローラ20によって呼び出される。コントローラ20は、呼び出した復旧工程情報に基づいて、過去にユーザが指定した手順で工程を実行し、異常を復旧させる。なお、自動的に復旧が実行されるのではなく、ユーザに対して復旧するか否かを問い合わせたうえで、復旧が実行されてもよい。
【0054】
図5は、復旧工程情報によって異常が復旧する様子を示す図である。
図5に示すように、産業装置30Aの加工工程で再び異常が発生すると、コントローラ20は、サーバ40に対し、復旧工程情報を要求する。サーバ40は、コントローラ20に対し、過去に登録された復旧工程情報を送信する。コントローラ20は、サーバ40から受信した復旧手順に基づいて、産業装置30Aに扉開け工程、工具逃げ工程、工具退避工程、及びチャックOFF工程を実行させ、産業装置30Bに移動工程を実行させる。その後、コントローラ20は、加工工程の中断変数が初期値に戻ったことを検出すると、チャック工程の開始変数を所定の値に変更し、サイクルを再開させる。
【0055】
以上のように、本実施形態の生産システム1では、サーバ40に復旧工程情報を記録しておき、産業装置30で再び異常が発生した場合にコントローラ20が復旧工程情報を呼び出すことによって、産業装置30に発生した異常を復旧させる際の手間を軽減するようにしている。以降、本実施形態の生産システム1の詳細を説明する。
【0056】
[3.生産システムで実現される機能]
図6は、生産システム1で実現される機能を示す機能ブロック図である。本実施形態では、ユーザ端末10、コントローラ20、産業装置30、及びサーバ40の各々で実現される機能について説明する。なお、産業装置30A,30Bの各々では、同様の機能が実現されるため、
図6では、1つの産業装置30として記載する。
【0057】
[3−1.ユーザ端末で実現される機能]
図6に示すように、ユーザ端末10では、データ記憶部100、表示制御部101、受付部102、及び記録部103が実現される。
【0058】
[データ記憶部]
データ記憶部100は、記憶部12を主として実現される。データ記憶部100は、サーバ40に復旧工程情報を記録するために必要なデータを記憶する。例えば、データ記憶部100は、工程データベースDB1を記憶する。
【0059】
図7は、工程データベースDB1のデータ格納例を示す図である。
図7に示すように、工程データベースDB1は、各工程の工程情報が格納されたデータベースである。例えば、工程データベースDB1には、産業装置30の名称と、当該産業装置30が実行する工程の工程情報と、が格納される。
【0060】
工程情報は、工程の基本的な情報である。工程情報の内容は、ユーザによって指定されてもよいし、工程プログラムPを生成するツールによって設定されてもよい。例えば、新たな工程の工程プログラムPが作成されると、新たな工程の工程情報が工程データベースDB1に登録される。工程情報は、工程データベースDB1への登録後に編集可能であってもよい。
【0061】
本実施形態では、コントローラ20の制御対象となる全ての産業装置30の工程情報が工程データベースDB1に格納される場合を説明するが、一部の産業装置30の工程情報だけが工程データベースDB1に格納されてもよい。また、産業装置30が実行可能な全ての工程の工程情報が工程データベースDB1に格納される場合を説明するが、一部の工程の工程情報だけが工程データベースDB1に格納されてもよい。例えば、工程情報には、工程の名称と変数の名称とが格納される。
【0062】
工程の名称は、工程プログラムPの作成時に指定された名称である。工程の名称は、産業装置30の中で工程を一意に識別可能であればよく、他の産業装置30の工程の名称と同じであってもよい。例えば、工程の名称は、ユーザによって指定されてもよいし、所定のルールに基づいて自動的に付与されてもよい。また、工程の名称は、工程のID等のように工程を一意に特定できるものであってもよい。
【0063】
変数の名称は、工程プログラムPの作成時に設定された名称である。例えば、工程の開始変数、中断変数、及び終了変数の各々の名称が工程情報に格納される。工程に対して任意の変数を指定できるようにしてもよく、この場合には、ユーザが指定した変数の名称が工程情報に格納されるようにしてもよい。本実施形態では、変数の名称は、工程の名称(「A1」等の文字列)と、変数の種類を示す文字列(「Start」等の文字列)と、を含み、工程間で変数の名称が重複しないようになっている。
【0064】
なお、変数の名称は、任意のルールで設定可能であり、本実施形態の例に限られない。例えば、変数の名称は、産業装置30の名称(「EquipA」等の文字列)を含み、どの産業装置30の変数であるかを識別可能であってもよい。また例えば、変数の名称は、産業装置30の名称や工程の名称を特に含まずに、生産システム1又は産業装置30内で変数を一意に識別できるような文字列で定められていてもよい。工程の名称と同様、変数の名称についても、変数のID等のように変数を一意に特定できるものであってもよい。
【0065】
また例えば、コントローラ20が管理する変数の名称と、産業装置30が管理する変数の名称と、が異なってもよい。即ち、コントローラ20が変数を識別する名称と、産業装置30が変数を識別する名称と、が異なってもよい。前者をシステム変数と呼び、後者を装置変数と呼ぶと、データ記憶部100は、システム変数と装置変数を互いに変換するためのテーブル又はデータベースを記憶する。コントローラ20が産業装置30の変数を参照する場合には、システム変数が装置変数に変換されたうえで、当該装置変数に対応するレジスタ読み出しが行われる。コントローラ20が産業装置30の変数を変更する場合も同様に、システム変数が装置変数に変換される。
【0066】
なお、工程情報に含まれる内容は、上記の例に限られない。工程情報には、工程に関する他の情報が含まれていてもよい。例えば、工程情報には、工程の実行に要する想定時間が含まれていてもよい。また例えば、工程情報には、工程の実行順が含まれていてもよい。また例えば、工程情報には、工程の開始条件や各変数の変更条件が含まれていてもよい。
【0067】
また、データ記憶部100が記憶するデータは、上記の例に限られない。例えば、データ記憶部100は、復旧工程作成画面Gに表示される画像の画像データを記憶してもよいし、エンジニアリングツールを記憶してもよい。また例えば、データ記憶部100は、作成済みの工程プログラムPとシステムプログラムQとを記憶してもよい。また例えば、データ記憶部100は、サーバ40に登録済みの復旧工程情報を記憶してもよい。
【0068】
[表示制御部]
表示制御部101は、CPU11を主として実現される。表示制御部101は、検出部202が異常を検出した場合に、複数の工程それぞれの工程情報に基づいて、複数の工程それぞれの名称を含み、復旧のために実行する工程を指定可能な復旧工程作成画面Gを表示させる。本実施形態では、工程データベースに各工程の工程情報が格納されているので、表示制御部101は、工程データベースに基づいて、復旧工程作成画面Gを表示させる。
【0069】
復旧工程作成画面Gは、少なくとも1つの工程の指定を受け付けるユーザインタフェースを有する。別の言い方をすれば、復旧工程作成画面Gは、復旧時に実行する少なくとも1つの工程の指定を受け付ける。本実施形態の復旧工程作成画面Gは、
図3のようなレイアウトを有し、例えば、表示制御部101は、工程データベースを参照し、全ての工程の名称を示すリストLを復旧工程作成画面Gに表示させる。なお、リストLには、工程データベースに工程情報が格納された全ての工程の名称が表示されなくてもよく、一部の工程の名称だけが表示されてもよい。
【0070】
なお、復旧工程作成画面Gは、
図3のレイアウトに限られず、任意のレイアウトであってよい。例えば、復旧工程作成画面Gは、プルダウン形式又はドラムロール形式で工程の選択を受け付けてもよい。また例えば、復旧工程作成画面Gは、フローチャート形式で工程を時系列的に並べるようなレイアウトであってもよいし、表形式で工程の名称の入力を受け付けるようなレイアウトであってもよい。また例えば、復旧工程作成画面Gは、実工程の名称を入力するための入力フォームが並べられていてもよい。
【0071】
[受付部]
受付部102は、CPU11を主として実現される。受付部102は、検出部202が異常を検出した場合に、複数の工程それぞれに対して、少なくとも、工程の名称と、産業装置30の動作を表して工程で実行される工程プログラムPにおいて参照及び変更の少なくとも一方が行われる変数と、が関連付けられた工程情報に基づいて、復旧のために実行する1以上の工程の指定を受け付ける。
【0072】
復旧のために実行する工程とは、検出部202が検出した異常の復旧に必要な工程である。別の言い方をすれば、復旧のために実行する工程は、ユーザが手動で異常を復旧させた際に指定された工程である。復旧のために実行する工程は、1つであってもよいし、複数であってもよい。復旧のために実行する工程は、上限数があってもよいし、特に上限数がなくてもよい。受付部102は、操作部14の検出信号に基づいて、工程の指定を受け付ける。
【0073】
本実施形態では、復旧工程作成画面Gの中から工程が指定されるので、受付部102は、復旧工程作成画面Gにおいて、1以上の工程の指定を受け付ける。例えば、受付部102は、復旧工程作成画面GのリストLに表示された工程の中から、1以上の工程の指定を受け付ける。受付部102は、同じ工程の指定を繰り返し受け付けてもよい。また例えば、受付部102は、1つの産業装置30の工程の指定だけを受け付けてもよいし、複数の産業装置30の各々の工程の指定を受け付けてもよい。
【0074】
例えば、ユーザが複数の工程を指定する場合、受付部102は、複数の工程の実行順の指定を受け付ける。本実施形態では、ユーザがリストL中の工程を繰り返し指定するので、工程を指定した順序が実行順に相当する。即ち、受付部102は、リストL中の工程の指定を繰り返し受け付けることによって、実行順の指定を受け付ける。工程の指定を受け付けた順番がそのまま実行順となる。
【0075】
なお、実行順の指定は、本実施形態の例に限られず、任意の操作によって行われてよい。例えば、受付部102は、実行順を示す数値の入力を受け付けることによって、実行順の指定を受け付けてもよい。また例えば、受付部102は、フローチャート形式の復旧工程作成画面Gであれば、工程の並び順を指定する操作を受け付けることによって、実行順の指定を受け付けてもよい。
【0076】
本実施形態では、異常が発生した産業装置30以外の他の産業装置30についても、復旧時の工程を指定可能である。
図3の例であれば、復旧工程作成画面Gでは、異常が発生した産業装置30Aの加工工程よりも前の工程を担当する産業装置30Bの工程も指定可能である。受付部102は、検出部202が異常を検出した産業装置30Aと、当該産業装置30Aの前工程を実行する他の産業装置30Bと、のそれぞれの工程情報に基づいて、産業装置30A及び他の産業装置30Bの少なくとも一方により実行される1以上の工程の指定を受け付ける。受付部102は、産業装置30A及び産業装置30Bの両方の工程の指定を受け付けてもよいし、産業装置30A又は産業装置30Bの何れか一方のみの工程の指定を受け付けてもよい。
【0077】
[記録部]
記録部103は、CPU11を主として実現される。記録部103は、受付部102が受け付けた1以上の工程を示す復旧工程情報を記録する。復旧工程情報は、異常復旧時にユーザが指定した工程を識別する情報である。別の言い方をすれば、復旧工程情報は、異常を復旧させるための工程の実行結果を示す情報である。本実施形態では、復旧工程情報がマクロ形式のデータである場合を説明するが、復旧工程情報は、任意のデータ形式であってよい。例えば、復旧工程情報は、テキスト形式、ドキュメント形式、又はCSV形式等であってもよい。他にも例えば、ユーザが指定した工程の開始変数を次々と変更するようなプログラムが自動的に生成され、当該プログラムが復旧工程情報として記録されてもよい。
【0078】
本実施形態では、記録部103が、産業装置30を制御するコントローラ20と通信可能な他の装置(例えば、サーバ40)に、復旧工程情報を記録する場合を説明するが、記録部103は、他のコンピュータ又は情報記憶媒体に復旧工程情報を記録してもよい。復旧工程情報が記録される他の装置としては、サーバ40に限られない。例えば、記録部103は、ユーザ端末10、コントローラ20、又は産業装置30に復旧工程情報を記録してもよいし、図示しないデータベースサーバ又はシミュレーションサーバ等の他のコンピュータに復旧工程情報を記録してもよい。
【0079】
例えば、ユーザが複数の工程を指定する場合、記録部103は、受付部102が受け付けた実行順に基づいて、復旧工程情報を記録する。この場合、復旧工程情報には、ユーザが指定した実行順と、各工程の名称と、が関連付けられて格納される。即ち、記録部103は、ユーザが指定した各工程を、ユーザが指定した実行順で実行可能なように、復旧工程情報を記録する。
【0080】
本実施形態では、変数によって工程の実行が制御されるので、記録部103は、ユーザが指定した実行順で各工程の開始変数が所定の値となるように、復旧工程情報を生成する。後述する
図8のデータ格納例であれば、記録部103は、扉開け工程の開始変数を所定の値とするように、復旧工程情報を作成する。また、記録部103は、扉開け工程の終了変数が所定の値になった場合に、次の工具逃げ工程の開始変数を所定の値とするように、復旧工程情報を作成する。以降同様に、記録部103は、ある工程の終了変数が所定の値になった場合に、次の工程の開始変数を所定の値に変更するように、復旧工程情報を作成する。本実施形態では、これら変数の値の変更をするための命令がマクロとして記述された復旧工程情報が生成される。
【0081】
また例えば、記録部103は、産業装置30A及び他の産業装置30Bの少なくとも一方により実行される1以上の工程を示す復旧工程情報を記録する。即ち、ユーザが複数の産業装置30の各々の工程を指定した場合には、記録部103は、ユーザが指定した工程を各産業装置30が実行するように、復旧工程情報を生成する。後述する
図8のデータ格納例であれば、記録部103は、産業装置30Aが扉開け工程等の4つの工程を実行した後に、産業装置30Bが移動工程を実行するように、復旧工程情報を生成する。先述したように、復旧工程情報には、各工程の開始変数を変更するための命令がマクロとして記述される。
【0082】
なお、本実施形態では、記録部103によって復旧工程情報が記録されると、ユーザ端末10は、異常発生時に当該復旧工程情報を呼び出すように、システムプログラムQを変更する。例えば、ユーザ端末10は、異常が発生した場合に、サーバ40に復旧工程情報を要求するための軌道スイッチ又はコイル等をシステムプログラムQのラダーチャートに追加したり、当該要求を示す命令をシステムプログラムQのソースコードに追加したりする。システムプログラムQが変更されることによって、再び異常が発生した場合に、復旧工程情報が呼び出されるようになる。
【0083】
[3−2.コントローラで実現される機能]
図6に示すように、コントローラ20では、データ記憶部200と、システムプログラム実行部201、検出部202、及び復旧部203が実現される。
【0084】
[データ記憶部]
データ記憶部200は、記憶部22を主として実現される。データ記憶部200は、工程の実行順を制御するために必要なデータを記憶する。例えば、データ記憶部200は、システムプログラムQを記憶する。先述したように、システムプログラムQは、予め定められた実行順で各工程の開始変数が所定の値となるように命令が記述される。データ記憶部200に記憶されたシステムプログラムQは、ユーザ端末10によって作成される。また例えば、データ記憶部200は、コントローラ20の制御対象となる産業装置30A,30Bの各々の名称やIPアドレス等の情報を記憶してもよい。また例えば、データ記憶部200は、工程データベースDB1を記憶してもよい。また例えば、データ記憶部200は、各産業装置30の変数の値を記憶してもよい。この場合、データ記憶部200の変数とデータ記憶部300の変数とは、定期的に整合が取られているものとする。
【0085】
[システムプログラム実行部]
システムプログラム実行部201は、CPU21を主として実現される。システムプログラム実行部201は、システムプログラムQに基づいて、工程の実行順を制御する。例えば、システムプログラム実行部201は、ユーザにより指定された実行順で産業装置30が動作するように、各産業装置30に対して各工程の開始指示を送る。例えば、システムプログラム実行部201は、システムプログラムQを実行すると、1番目の工程の開始変数を所定の値に変更する。システムプログラム実行部201は、各産業装置30の終了変数を周期的に参照し、ある工程の変更変数が所定の値になった場合に、次の工程の開始変数を所定の値に変化させる。システムプログラム実行部201は、当該次の工程が開始した後の任意のタイミングで、当該次の工程の開始変数を初期値に戻す。以降、同様の処理によって、工程の実行順が制御される。
【0086】
[検出部]
検出部202は、CPU21を主として実現される。検出部202は、産業装置30に発生した異常を検出する。本実施形態では、各工程で異常が発生すると、工程プログラムPは、当該工程の中断変数を所定の値に変更する。検出部202は、各工程の中断変数の値を参照し、所定の値になったか否かを判定する。検出部202は、中断変数が所定の値になった工程に異常が発生したと判定する。
【0087】
なお、異常の検出方法は、変数を利用した方法に限られない。異常の検出方法自体は、公知の手法を適用可能であり、例えば、検出部202は、ある工程が一定時間の間終了しなかった場合に異常が発生したと判定してもよいし、コントローラ20又は産業装置30に接続されたセンサの検出信号が異常値を示す場合に異常が発生したと判定してもよい。
【0088】
また例えば、産業装置30は、異常が発生した場合に、コントローラ20に対し、所定の異常発生通知を送信してもよい。異常発生通知には、任意の情報が含まれてよく、例えば、異常が発生した産業装置30の名称、異常が発生した工程の名称、発生した異常の種類、及び異常が発生した日時等が含まれていてもよい。検出部202は、産業装置30から異常発生通知を受信したか否かを判定する。検出部202は、異常発生通知を受信した場合に異常が発生したと判定する。
【0089】
[復旧部]
復旧部203は、CPU21を主として実現される。復旧部203は、検出部202が異常を再び検出した場合に、記録部103が記録した復旧工程情報が示す1以上の工程を取得し、当該取得した1以上の工程を実行して異常を復旧させる。本実施形態では、過去の異常発生時にユーザが指定した工程が復旧工程情報に示されているので、復旧部203は、復旧工程情報に記述された手順に沿って工程を実行し、異常を復旧させる。復旧時の工程は、通常の工程と同様、工程プログラムP及び変数によって実行が制御されるので、復旧部203は、復旧工程情報に示された工程の変数に基づいて、工程を実行する。
【0090】
例えば、複数の工程が所定の順序で実行された場合、復旧部203は、1番目の工程の開始変数を所定の値に変更するように、産業装置30に指示を送る。産業装置30は、変数の変化を検知すると1番目の工程を実行する。1番目の工程が正常に終了すると、産業装置30は、当該工程の終了変数を所定の値に変更する。復旧部203は、1番目の工程の終了変数が所定の値になったことを検出すると、2番目の復旧工程の開始変数を所定の値に変更するように、産業装置30に指示を送る。以降同様にして、復旧工程情報に示された最後まで順番に工程が実行される。
【0091】
[3−3.産業装置で実現される機能]
図6に示すように、産業装置30では、データ記憶部300と、工程プログラム実行部301と、が実現される。
【0092】
[データ記憶部]
データ記憶部300は、記憶部32を主として実現される。データ記憶部300は、複数の工程それぞれを実行可能な産業装置30が各工程を実行するために必要なデータを記憶する。例えば、データ記憶部300は、工程プログラムPを記憶する。本実施形態では、工程プログラムPごとに工程情報が用意されるので、データ記憶部300は、工程プログラムPと工程情報を互いに関連付けて記憶してもよい。また、データ記憶部300は、各工程の変数の値を記憶する。先述したように、データ記憶部300の変数と、データ記憶部200の変数と、は整合性が取られているものとする。また、データ記憶部300は、モータを制御する際のパラメータやロボットのティーチングデータ等を記憶してもよい。
【0093】
[工程プログラム実行部]
工程プログラム実行部301は、CPU31を主として実現される。工程プログラム実行部301は、データ記憶部300に記憶された工程プログラムPと変数に基づいて、各工程を実行する。例えば、コントローラ20から受信した指示により各工程の開始変数が所定の値に変化し、工程プログラム実行部301は、その旨を検知した場合に工程を開始する。また例えば、工程プログラム実行部301は、当該工程の工程プログラムPに記述された最後の処理が終了した場合に、当該工程の終了変数を所定の値に変化させる。当該工程の終了変数が所定の値になった旨がシステムプログラムQにより検知されると、次の工程の開始変数が所定の値に変化し、工程プログラム実行部301は、次の工程の工程プログラムPの実行を開始する。以降、同様の処理によって、各工程が順次実行される。
【0094】
[3−4.サーバで実現される機能]
図6に示すように、サーバ40では、データ記憶部400が実現される。データ記憶部400は、記憶部32を主として実現される。データ記憶部400は、復旧工程情報を記憶する。例えば、データ記憶部400は、少なくとも1つの復旧工程情報を格納された復旧工程データベースDB2を記憶する。サーバ40は、ユーザ端末10から復旧工程情報を受信すると、復旧工程データベースDB2に格納する。
【0095】
図8は、復旧工程データベースDB2のデータ格納例を示す図である。
図8に示すように、復旧工程データベースDB2には、復旧工程情報の名称ごとに、復旧工程情報が格納される。例えば、復旧工程情報には、工程の実行順、工程を実行する産業装置30の名称、及び工程の名称が格納される。
図8では復旧工程情報の内容をテーブルで示しているが、本実施形態では、復旧工程情報はマクロ化されているので、これらの関係は、マクロの命令として記述されている。即ち、復旧工程情報には、扉開け工程、工具逃げ工程、工具退避工程、チャックOFF工程、移動工程の順番で開始変数を所定の値に変更するように命令が記述されている。
【0096】
[4.生産システムで実行される処理]
図9及び
図10は、生産システム1で実行される処理を示すフロー図である。
図9及び
図10に示す処理は、CPU11,21,31,41がそれぞれ記憶部12,22,32,42に記憶されたプログラムに従って動作することによって実行される。
図9及び
図10に示す処理は、
図6に示す機能ブロックにより実行される処理の一例である。
【0097】
図9に示すように、コントローラ20がシステムプログラムQを実行し、産業装置30が工程プログラムPを実行することによって、各工程が実行される(S1)。S1においては、コントローラ20は、システムプログラムQを実行し、ある工程の開始変数を所定の値に変更する。当該工程を実行する産業装置30は、当該工程が正常に完了すると、終了変数を所定の値に変更する。コントローラ20は、その旨を検出すると、次の工程の開始変数を所定の値に変更する。以降同様にして、1サイクル内の各工程が実行される。何れかの工程で異常が発生すると、当該工程を実行する産業装置30は、当該工程を中断し、当該工程の中断変数を所定の値に変更する。
【0098】
コントローラ20は、何れかの工程で異常が発生したか否かを判定する(S2)。S2においては、コントローラ20は、各工程の中断変数を参照し、所定の値になった中断変数が存在するか否かを判定する。コントローラ20は、中断変数が所定の値になった工程が1つでも存在すれば、異常が発生したと判定する。
【0099】
異常が発生したと判定された場合(S2;Y)、コントローラ20は、システムプログラムQに基づいて、復旧工程情報が登録済みであるか否かを判定する(S3)。復旧工程情報が登録されると、後述するS12の処理によって、システムプログラムQには、登録された復旧工程情報を取得する命令が記述される。S3においては、コントローラ20は、システムプログラムQに当該命令が記述されているか否かを判定する。
【0100】
復旧工程情報が登録済みであると判定されない場合(S3;N)、コントローラ20は、ユーザ端末10に対し、異常発生通知を送信する(S4)。S4においては、コントローラ20は、電子メール等を利用して、所定フォーマットの異常発生通知を送信する。異常発生通知には、異常が発生した工程の名称、当該工程を実行する産業装置30の名称、及び異常の発生日時といった情報が含まれているものとする。
【0101】
ユーザ端末10は、異常発生通知を受信すると、エンジニアリングツールを起動し(S5)、工程データベースに基づいて、復旧工程作成画面Gを表示させる(S6)。S6においては、ユーザ端末10は、工程データベースを参照し、産業装置30に工程プログラムが記憶された工程を特定し、全ての工程の名称を示すリストLを復旧工程作成画面Gに表示させる。なお、以降の処理が実行されるにあたり、ユーザ端末10と産業装置30A及び産業装置30Bとが通信可能に接続されるものとする。
【0102】
ユーザ端末10は、操作部14の検出信号に基づいて、ユーザによる工程の指定を受け付け(S7)、産業装置30は、当該工程を実行する(S8)。S7においては、ユーザは、リストL中の任意の工程を指定する。ユーザは、複数の工程を指定する場合、その実行順も指定する。ユーザが指定した工程は、時系列的にユーザ端末10に記録されるものとする。ユーザ端末10は、ユーザが工程を指定すると、当該工程の開始変数を所定の値に変更する。産業装置30は、開始変数が所定の値に変更されたことを検出すると、S8において、ユーザが指定した工程を実行する。
【0103】
ユーザ端末10は、操作部14の検出信号に基づいて、復旧完了ボタンBが選択されたか否かを判定する(S9)。復旧完了ボタンBが選択されたと判定されない場合(S9;N)、S7の処理に戻る。この場合、発生した異常が復旧するまでの間、ユーザによる工程の指定が繰り返される。
【0104】
一方、復旧完了ボタンBが選択されたと判定された場合(S9;Y)、ユーザ端末10は、サーバ40に対し、復旧工程情報の記録要求を送信する(S10)。記録要求は、所定形式のデータが送信されることによって行われる。記録要求には、復旧工程情報が含まれるものとする。ユーザ端末10は、ユーザが指定した実行順で、ユーザが指定した工程が実行されるように復旧工程情報を生成し、記録要求に含めて送信する。
【0105】
サーバ40は、記録要求を受信すると、記録要求に含まれる復旧工程情報を復旧工程データベースDB2に格納する(S11)。
図10に移り、ユーザ端末10は、異常が発生した工程で復旧工程情報を呼び出すように、システムプログラムQを更新し(S12)、コントローラ20は、工程を再開する(S13)。S12においては、ユーザ端末10は、異常が発生した場合にサーバ40に復旧工程情報を要求するように、システムプログラムQを更新する。S13においては、ユーザ端末10は、コントローラ20に所定の指示を送信し、コントローラ20は、異常が発生した工程の中断変数を初期値に戻して工程を再開させる。なお、中断変数を初期値に戻す処理は、ユーザ端末10により実行されてもよい。
【0106】
一方、S3において、復旧工程情報が登録済みであると判定された場合(S3;Y)、コントローラ20は、サーバ40に対し、登録済みの復旧工程情報の取得要求を送信する(S14)。取得要求は、所定形式のデータが送信されることによって行われる。例えば、取得要求には、取得対象の復旧工程情報の名称が含まれる。取得対象の復旧工程情報の名称は、S12における更新時にシステムプログラムQに記述されるものとする。
【0107】
サーバ40は、取得要求を受信すると、復旧工程データベースDB2に基づいて、コントローラ20に対し、復旧工程情報を送信する(S15)。コントローラ20は、復旧工程情報を受信すると、復旧工程情報が示す実行順で各工程を実行し、発生した異常を復旧させ(S16)、コントローラ20は、工程を再開する(S17)。S16では、S8の処理が時系列的に実行されることになる。S17の処理は、S13の処理と同様である。
【0108】
一方、S2において、産業装置30で異常が発生したと判定されない場合(S2;N)、コントローラ20は、所定の終了条件が満たされたか否かを判定する(S18)。終了条件は、サイクルを終了するための条件であり、ユーザが所定の操作を行うことや所定の日時が訪れることといった任意の条件を設定可能である。終了条件が満たされたと判定されない場合(S18;N)、S1の処理に戻り、各工程の実行が継続される。一方、終了条件が満たされたと判定された場合(S18;Y)、本処理は終了する。
【0109】
本実施形態の生産システム1によれば、産業装置30に発生した異常が検出された場合に、工程情報に基づいて、復旧のために実行する1以上の工程の指定を受け付けて、復旧工程情報として記録することにより、ラダーチャートなどを利用して復旧プログラムを作成する必要がなくなり、産業装置30に発生した異常を復旧させるための手間を軽減することができる。産業装置30に記憶された工程プログラムPは、変数の値によって実行が制御されるので、ユーザが工程を指定しさえすれば、当該工程の変数を変更するための復旧工程情報を生成すればよいため、復旧プログラムを作成する必要がなくなる。例えば、産業装置30には、種々の異常が発生することがあり、異常ごとに復旧プログラムを作成するのは非常に手間がかかるが、異常の復旧のために実行させる工程を指定して実行結果を記録することにより、このような手間を省くことができる。例えば、工程を任意の順序で組み合わせることによって、種々の異常に対応することができる。
【0110】
また、異常が再び検出された場合に、復旧工程情報が示す1以上の工程を取得し、当該取得した1以上の工程を実行して異常を復旧させることで、産業装置30に発生した異常を容易に復旧させることができる。
【0111】
また、異常が検出された場合に、産業装置30が実行可能な複数の工程それぞれの工程情報に基づいて、複数の工程それぞれの名称を含み、復旧のために実行する工程を指定可能な復旧工程作成画面Gを表示させることで、復旧時の作業を効率化することができる。
【0112】
また、工程を順次実行させなければ異常が復旧しない場合であったとしても、工程の実行順に基づいて復旧工程情報を記録することで、復旧の確実性を高めることができる。
【0113】
また、産業装置30を制御するコントローラ20ではなく、サーバに復旧工程の実行結果を記録することにより、復旧工程の実行結果をサーバで一括管理することができる。
【0114】
また、異常が発生した産業装置30の前工程を担当する他の産業装置30に復旧工程を実行させる必要があったとしても、当該他の産業装置30により実行される工程を復旧工程情報に記録可能とすることで、復旧の確実性を高めることができる。
【0115】
[5.変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【0116】
図11は、変形例における機能ブロック図である。
図11に示すように、以降説明する変形例では、実施形態で説明した機能に加えて、種類取得部104、特定部105、及び状態取得部106が実現される。例えば、これら各機能は、CPU11を主として実現される。
【0117】
(1)例えば、同じ工程であったとしても、発生する異常の種類によって復旧に必要な工程が異なることがある。このため、サーバ40に、発生した異常の種類と復旧工程情報を関連付けて記録しておき、産業装置30に発生した異常の種類に応じた復旧工程情報が呼び出されるようにしてもよい。
【0118】
本変形例のユーザ端末10では、種類取得部104が実現される。種類取得部104は、検出部202が検出した異常の種類を取得する。異常の種類は、エラーコード等の識別情報によって示される。本変形例では、中断変数の値によって異常の種類が特定されるものとする。例えば、工程プログラムPは、異常が発生した場合に、当該異常の種類に応じた値となるように、中断変数を変更する。種類取得部104は、異常が発生した工程の中断変数の値を参照し、異常の種類を取得する。なお、異常の種類の取得方法は、上記の例に限られず、任意の方法を利用可能である。例えば、異常が発生した産業装置30がコントローラ20に異常発生通知を送信する場合、異常発生通知に異常の種類の識別情報が含まれるようにしてもよい。
【0119】
図12は、変形例(1)の復旧工程データベースDB2のデータ格納例を示す図である。
図12に示すように、記録部103は、種類取得部104が取得した異常の種類に関連付けて、復旧工程情報を記録する。復旧工程データベースDB2には、各工程の異常の種類ごとに、復旧工程情報が格納される。例えば、記録部103は、サーバ40に対し、異常の種類の識別情報と復旧工程情報とを送信する。サーバ40は、これらを受信すると互いに関連付けて復旧工程データベースDB2に格納する。
【0120】
復旧部203は、検出部202が異常を再び検出した場合に、当該異常の種類に関連付けられた復旧工程情報が示す1以上の工程を取得し、当該取得した1以上の工程を実行して異常を復旧させる。復旧部203は、復旧工程データベースDB2に格納された復旧工程情報のうち、発生した異常の種類に関連付けられた復旧工程情報を取得する。復旧部203は、当該取得した復旧工程情報に基づいて、異常を復旧させる。復旧工程に基づいて異常を復旧させる手順自体は、実施形態で説明した通りである。
【0121】
変形例(1)によれば、異常が再び検出された場合に、当該異常の種類に関連付けられた復旧工程情報が示す1以上の工程を取得し、当該取得した1以上の工程を実行して異常を復旧させることで、復旧の確実性を高めることができる。
【0122】
(2)また例えば、異常が発生した工程によって復旧に必要な工程が異なることがある。このため、サーバ40に、異常が発生した工程と復旧工程情報を関連付けて記録しておき、異常が発生した工程に応じた復旧工程情報が呼び出されるようにしてもよい。
【0123】
本変形例のユーザ端末10では、特定部105が実現される。特定部105は、検出部202が検出した異常が発生した工程を特定する。例えば、特定部105は、中断変数が所定の値になった工程の名称を、異常が発生した工程の名称として取得する。なお、異常が発生した工程の特定方法は、上記の例に限られず、任意の方法を利用可能である。例えば、異常が発生した産業装置30がコントローラ20に異常発生通知を送信する場合、異常発生通知に異常が発生した工程の名称が含まれるようにしてもよい。
【0124】
図13は、変形例(2)の復旧工程データベースDB2のデータ格納例を示す図である。
図13に示すように、記録部103は、特定部105が特定した工程に関連付けて、復旧工程情報を記録する。復旧工程データベースDB2には、工程ごとに、復旧工程情報が格納される。例えば、記録部103は、サーバ40に対し、異常が発生した工程の名称と復旧工程情報とを送信する。サーバ40は、これらを受信すると互いに関連付けて復旧工程データベースDB2に格納する。
【0125】
復旧部203は、検出部202が異常を再び検出した場合に、当該異常が発生した工程に関連付けられた復旧工程情報が示す1以上の工程を取得し、当該取得した1以上の工程を実行して異常を復旧させる。復旧部203は、復旧工程データベースDB2に格納された復旧工程情報のうち、異常が発生した工程に関連付けられた復旧工程情報を取得する。復旧部203は、当該取得した復旧工程情報に基づいて、異常を復旧させる。復旧工程に基づいて異常を復旧させる手順自体は、実施形態で説明した通りである。
【0126】
変形例(2)によれば、異常が再び発生した場合に、当該異常が発生した工程に関連付けられた復旧工程情報が示す1以上の工程を取得し、当該取得した1以上の工程を実行して異常を復旧させることで、復旧の確実性を高めることができる。
【0127】
(3)また例えば、異常発生時の産業装置30の状態によって復旧に必要な工程が異なることがある。このため、サーバ40に、異常発生時の産業装置30の状態を関連付けて記録しておき、異常発生時の状態に応じた復旧工程情報が呼び出されるようにしてもよい。
【0128】
本変形例のユーザ端末10では、状態取得部106が実現される。状態取得部106は、検出部202が異常を検出したときの産業装置30の状態を取得する状態取得部106を更に有する。状態とは、異常発生時の産業装置30の動作状態であり、例えば、例えば、トルク値、モータの回転速度、温度、ワークの状態、CPU使用率、又は通信量等である。産業装置30の状態は、コントローラ20又は産業装置30に接続されたセンサによって検出されてもよいし、コントローラ20又は産業装置30内分の計算結果によって取得されてもよい。
【0129】
例えば、産業装置30が、自身の状態を示す変数を記憶する場合、状態取得部106は、当該変数の値を参照し、産業装置30の状態を取得する。なお、産業装置30の状態の取得方法は、上記の例に限られず、任意の方法を利用可能である。例えば、異常が発生した産業装置30がコントローラ20に異常発生通知を送信する場合、異常発生通知に産業装置30の状態を示す情報が含まれるようにしてもよい。
【0130】
図14は、変形例(3)の復旧工程データベースDB2のデータ格納例を示す図である。
図14に示すように、記録部103は、状態取得部106が取得した産業装置30の状態に関連付けて、復旧工程情報を記録する。復旧工程データベースDB2には、産業装置30の状態ごとに、復旧工程情報が格納される。例えば、記録部103は、サーバ40に対し、産業装置30の状態と復旧工程情報とを送信する。サーバ40は、これらを受信すると互いに関連付けて復旧工程データベースDB2に格納する。
【0131】
復旧部203は、検出部202が異常を再び検出した場合に、当該異常が発生したときの産業装置の状態に関連付けられた復旧工程情報が示す1以上の工程を取得し、当該取得した1以上の工程を実行して異常を復旧させる。復旧部203は、復旧工程データベースDB2に格納された復旧工程情報のうち、産業装置30の状態に関連付けられた復旧工程情報を取得する。なお、復旧部203は、復旧工程データベースDB2の中に全く同じ状態が存在しない場合には、異常発生時の状態と類似する状態が関連付けられた復旧工程情報を取得する。ここでの類似とは、状態を示す値の差が閾値未満であることを意味する。復旧部203は、当該取得した復旧工程情報に基づいて、異常を復旧させる。復旧工程に基づいて異常を復旧させる手順自体は、実施形態で説明した通りである。
【0132】
変形例(3)によれば、異常が再び発生した場合に、当該異常が発生したときの産業装置30の状態に関連付けられた復旧工程情報が示す1以上の工程を取得し、当該取得した1以上の工程を実行して異常を復旧させることで、復旧の確実性を高めることができる。
【0133】
(4)また例えば、受付部102は、検出部202が検出した異常が復旧した後に再開する工程の指定を受け付けてもよい。再開する工程は、通常のサイクルに含まれる工程のうちの任意の工程であってよく、異常が発生した工程に限られない。例えば、最初からやり直す場合には、1番目に実行される工程が再開工程として指定されてもよいし、異常が発生した工程の前工程が再開工程として指定されてもよい。
【0134】
図15は、変形例(4)の復旧工程データベースDB2のデータ格納例を示す図である。
図15に示すように、記録部103は、復旧工程情報に関連付けて、受付部102が受け付けた再開させる工程を記録する。例えば、記録部103は、サーバ40に対し、ユーザが指定した再開する工程と復旧工程情報とを送信する。サーバ40は、これらを受信すると互いに関連付けて復旧工程データベースDB2に格納する。復旧部203は、復旧工程データベースDB2に格納された工程から再開させる。
【0135】
変形例(4)によれば、復旧工程情報に異常が復旧した後に再開する工程を記録することによって、工程の再開を迅速に行うことができる。
【0136】
(5)また例えば、上記変形例を組み合わせてもよい。
【0137】
また例えば、異常復旧時に実行させる工程の実行条件等の設定をユーザに指定させてもよい。この場合、ユーザが指定した設定が復旧工程情報に格納されるものとする。また例えば、生産システム1は、復旧工程情報を呼び出す処理まで実行し、復旧については、外部のコンピュータに実行させてもよい。また例えば、復旧工程作成画面Gを表示させることなく、工程の指定が受け付けられるようにしてもよい。例えば、ユーザが工程の名称を覚えていたり、手元のリストに記載していたりする場合には、復旧工程作成画面Gを表示させることなく、工程の名称の入力が直接的に受け付けられるようにしてもよい。
【0138】
また例えば、生産システム1が、ユーザ端末10、コントローラ20、産業装置30、及びサーバ40を含む場合を説明したが、生産システム1に含まれるコンピュータは、実施形態で説明した例に限られない。例えば、生産システム1には、コントローラ20とサーバ40が含まれなくてもよい。また例えば、産業装置30以外のシステムを復旧システムと呼んでもよい。復旧システムについても任意のコンピュータによって実現可能であり、例えば、復旧システムは、ユーザ端末10とサーバ40だけから構成されてもよい。また例えば、ユーザ端末10によって主な機能が実現される場合を説明したが、ユーザ端末10によって実現されるものとした機能は、コントローラ20又はサーバ40等の他のコンピュータによって実現されてもよい。また例えば、ユーザ端末10によって実現されるものとして説明した機能は、複数のコンピュータによって分担されてもよい。
【0139】
また例えば、以上説明した実施形態は具体例として示したものであり、本明細書にて開示される発明をこれら具体例の構成やデータ格納例そのものに限定するものではない。当業者はこれら開示された実施形態に種々の変形、例えば、物理的構成の形状や数、データ構造、処理の実行順を変更したりしてもよい。本明細書にて開示される発明の技術的範囲は、そのようになされた変形をも含むものと理解すべきである。
【解決手段】生産システム(1)は、複数の工程それぞれを実行可能な産業装置(30)を有する。生産システム(1)の検出部(202)は、産業装置(30)に発生した異常を検出する。受付部(102)は、検出部(202)が異常を検出した場合に、複数の工程それぞれに対して、少なくとも、工程の名称と、産業装置(30)の動作を表して工程で実行される工程プログラムにおいて参照及び変更の少なくとも一方が行われる変数と、が関連付けられた工程情報に基づいて、復旧のために実行する1以上の工程の指定を受け付ける。記録部(103)は、受付部(102)が受け付けた1以上の工程を示す復旧工程情報を記録する。