(57)【要約】【課題】  異常発生後にロボットの作業を迅速に再開することができるロボット制御装置を提供する。【解決手段】  ロボット１を制御するロボット制御装置２であって、作業用データ１０を記憶する第１記憶部３１と、復旧用データ１１を記憶する第２記憶部３２と、作業用データを読み込んでロボットに対する動作指令を生成する動作指令プロセス４２と、動作指令プロセスが正常に動作しているか否かを判定し、動作指令プロセスが正常に動作していないと判定すると復旧用データを作業用データに一致させるデータ退避プロセス４３とを実行する演算部４と、動作指令に基づきロボットの動作を制御する動作制御部５と、を備える。【選択図】      図１
2018130775.tif 000002
【特許請求の範囲】
【請求項１】
ロボットを制御するロボット制御装置であって、
作業用データを記憶する第１記憶部と、
復旧用データを記憶する第２記憶部と、
前記作業用データを読み込んで前記ロボットに対する動作指令を生成する動作指令プロセスと、前記動作指令プロセスが正常に動作しているか否かを判定し、前記動作指令プロセスが正常に動作していないと判定すると前記復旧用データを前記作業用データに一致させるデータ退避プロセスとを実行する演算部と、
前記動作指令に基づき前記ロボットの動作を制御する動作制御部と、を備える、ロボット制御装置。
【請求項２】
前記動作指令プロセスは、正常に動作している状態にあるときは正常動作信号を出力し、且つ正常に動作していないときは前記正常動作信号の出力を停止する第１正常動作信号出力部を有し、
前記データ退避プロセスは、前記動作指令プロセスの前記正常動作信号の出力が停止されると前記動作指令プロセスが正常に動作していないと判定する、請求項１に記載のロボット制御装置。
【請求項３】
前記正常動作信号は、カウンタリセット信号であり、
所定の第１サイクルタイム内に前記カウンタリセット信号が入力されなかった場合にタイムオーバー信号を出力する動作指令プロセス用ウォッチドグタイマを更に有し、
前記動作指令プロセスは、前記動作指令プロセス用ウォッチドグタイマに対して前記第１サイクルタイム以下の第２サイクルタイムで前記カウンタリセット信号を出力し、
前記データ退避プロセスは、前記動作指令プロセス用ウォッチドグタイマがタイムオーバー信号を出力したときに前記動作指令プロセスが正常に動作していないと判定する請求項２に記載のロボット制御装置。
【請求項４】
前記データ退避プロセスは、前記動作指令プロセスが正常に動作しているか否かをコンピュータオペレーティングシステムに問い合わせて、前記動作指令プロセスが正常に動作しているか否かを判定する、請求項１に記載のロボット制御装置。
【請求項５】
前記動作指令プロセスは、前記データ退避プロセスが正常に動作しているか否かを判定し、前記データ退避プロセスが正常に動作していないと判定すると前記復旧用データを前記作業用データに一致させる、請求項１乃至４の何れかに記載のロボット制御装置。
【請求項６】
前記データ退避プロセスは、正常に動作している状態にあるときは正常動作信号を出力し、且つ正常に動作していないときは前記正常動作信号の出力を停止する第２正常動作信号出力部を有し、
前記動作指令プロセスは、前記データ退避プロセスの前記正常動作信号の出力が停止されると前記データ退避プロセスが正常に動作していないと判定する、請求項５に記載のロボット制御装置。
【請求項７】
前記正常動作信号は、カウンタリセット信号であり、
所定の第３サイクルタイム内に前記カウンタリセット信号が入力されなかった場合にタイムオーバー信号を出力するデータ退避プロセス用ウォッチドグタイマを更に有し、
前記データ退避プロセスは、前記データ退避プロセス用ウォッチドグタイマに対して前記第３サイクルタイム以下の第４サイクルタイムで前記カウンタリセット信号を出力し、
前記動作指令プロセスは、前記データ退避プロセス用ウォッチドグタイマがタイムオーバー信号を出力したときに前記データ退避プロセスが正常に動作していないと判定する請求項６に記載のロボット制御装置。
【請求項８】
前記動作指令プロセスは、前記データ退避プロセスが正常に動作しているか否かをコンピュータオペレーティングシステムに問い合わせて、前記データ退避プロセスが正常に動作しているか否かを判定する、請求項５に記載のロボット制御装置。
【請求項９】
前記動作指令プロセスは、更に前記ロボットの動作状態を前記作業用データに書き込み前記第１記憶部に記憶させる、請求項１乃至８の何れかに記載のロボット制御装置。
【請求項１０】
前記第１記憶部は、揮発性の媒体であり、
前記第２記憶部は、不揮発性の媒体である、請求項１乃至９の何れかに記載のロボット制御装置。
【請求項１１】
入力された一次電源の電力を変換して前記動作制御部及び前記演算部に供給する電力変換部と、
前記一次電源の電圧が所定の電圧以下になったことを検知する一次電源電圧低下検知部と、を備え、
前記動作指令プロセス及び前記データ退避プロセスの少なくとも何れか一方は、一次電源電圧低下検知部が前記一次電源の電圧が所定の電圧以下になったことを検知すると前記復旧用データを前記作業用データに一致させる、請求項１０に記載のロボット制御装置。
【請求項１２】
前記電力変換部に電力を供給する非常用電源を更に備え、
前記電力変換部は、一次電源電圧低下検知部が前記一次電源の電圧が所定の電圧以下になったことを検知すると、入力された前記非常用電源の電力を変換して前記動作制御部及び前記演算部に供給する、請求項１１に記載のロボット制御装置。
【請求項１３】
前記作業用データは、前記動作指令プロセスと前記データ退避プロセスとに共有される記憶領域に記憶される、請求項１乃至１２の何れかに記載のロボット制御装置。
【請求項１４】
ロボットと、前記ロボットを制御する前記請求項１乃至１３の何れかに記載のロボット制御装置とを含む、ロボットシステム。
【請求項１５】
ロボット制御装置によりロボットを制御するロボットの制御方法であって、
前記ロボット制御装置は、
作業用データを記憶する第１記憶部と、
復旧用データを記憶する第２記憶部と、
前記作業用データを読み込んで前記ロボットに対する動作指令を生成する動作指令プロセスと、前記動作指令プロセスが正常に動作しているか否かを判定し、前記動作指令プロセスが正常に動作していないと判定すると前記復旧用データを前記作業用データに一致させるデータ退避プロセスとを実行する演算部と、
前記動作指令に基づき前記ロボットの動作を制御する動作制御部と、を備える、ロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御装置、ロボットシステム及びロボットの制御方法に関する。
【背景技術】
【０００２】
従来からロボットを制御するロボット制御装置が知られている（例えば特許文献１参照）。
【０００３】
このロボット制御装置は、データ読出・書込部と、データ記憶部とを有する動作指示部を備える。これによって、電源が遮断されるなど異常が生じたときは、データ読出・書込部が動作指示部の動作状態や各種データをデータ記憶部に書き込んで記憶させる。これによって、動作指示部の動作状態や各種データがダメージを受けることを防ぐことができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−８３８３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に記載のロボット制御装置は、プログラムのエラー等により動作指示部が停止すると、データ読出・書込部が動作指示部の動作状態や各種データをデータ記憶部に書き込んで記憶させることができず、データが失われることがあるという問題があった。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明のある態様に係るロボット制御装置は、ロボットを制御するロボット制御装置であって、作業用データを記憶する第１記憶部と、復旧用データを記憶する第２記憶部と、前記作業用データを読み込んで前記ロボットに対する動作指令を生成する動作指令プロセスと、前記動作指令プロセスが正常に動作しているか否かを判定し、前記動作指令プロセスが正常に動作していないと判定すると前記復旧用データを前記作業用データに一致させるデータ退避プロセスとを実行する演算部と、前記動作指令に基づき前記ロボットの動作を制御する動作制御部と、を備える。
【０００７】
この構成によれば、動作指令プロセスが正常に動作していない状態であっても、ロボットの制御に関するデータの損傷を防止することができる。これによって、ロボットの作業を迅速に再開することができる。
【０００８】
前記動作指令プロセスは、正常に動作している状態にあるときは正常動作信号を出力し、且つ正常に動作していないときは前記正常動作信号の出力を停止する第１正常動作信号出力部を有し、前記データ退避プロセスは、前記動作指令プロセスの前記正常動作信号の出力が停止されると前記動作指令プロセスが正常に動作していないと判定してもよい。
【０００９】
この構成によれば、動作指令プロセスが正常に動作しているか否かをデータ退避プロセスによって適切に監視することができる。
【００１０】
前記正常動作信号は、カウンタリセット信号であり、所定の第１サイクルタイム内に前記カウンタリセット信号が入力されなかった場合にタイムオーバー信号を出力する動作指令プロセス用ウォッチドグタイマを更に有し、前記動作指令プロセスは、前記動作指令プロセス用ウォッチドグタイマに対して前記第１サイクルタイム以下の第２サイクルタイムで前記カウンタリセット信号を出力し、前記データ退避プロセスは、前記動作指令プロセス用ウォッチドグタイマがタイムオーバー信号を出力したときに前記動作指令プロセスが正常に動作していないと判定してもよい。
【００１１】
この構成によれば、動作指令プロセスが正常に動作しているか否かをデータ退避プロセスによって適切に監視することができる。
【００１２】
前記データ退避プロセスは、前記動作指令プロセスが正常に動作しているか否かをコンピュータオペレーティングシステムに問い合わせて、前記動作指令プロセスが正常に動作しているか否かを判定してもよい。
【００１３】
この構成によれば、動作指令プロセスが正常に動作しているか否かをデータ退避プロセスによって適切に監視することができる。
【００１４】
前記動作指令プロセスは、前記データ退避プロセスが正常に動作しているか否かを判定し、前記データ退避プロセスが正常に動作していないと判定すると前記復旧用データを前記作業用データに一致させてもよい。
【００１５】
この構成によれば、ロボットの制御に関するデータの損傷を更に防止することができる。
【００１６】
前記データ退避プロセスは、正常に動作している状態にあるときは正常動作信号を出力し、且つ正常に動作していないときは前記正常動作信号の出力を停止する第２正常動作信号出力部を有し、前記動作指令プロセスは、前記データ退避プロセスの前記正常動作信号の出力が停止されると前記データ退避プロセスが正常に動作していないと判定してもよい。
【００１７】
この構成によれば、データ退避プロセスが正常に動作しているか否かを動作指令プロセスによって適切に監視することができる。
【００１８】
前記正常動作信号は、カウンタリセット信号であり、所定の第３サイクルタイム内に前記カウンタリセット信号が入力されなかった場合にタイムオーバー信号を出力するデータ退避プロセス用ウォッチドグタイマを更に有し、前記データ退避プロセスは、前記データ退避プロセス用ウォッチドグタイマに対して前記第３サイクルタイム以下の第４サイクルタイムで前記カウンタリセット信号を出力し、前記動作指令プロセスは、前記データ退避プロセス用ウォッチドグタイマがタイムオーバー信号を出力したときに前記データ退避プロセスが正常に動作していないと判定してもよい。
【００１９】
この構成によれば、データ退避プロセスが正常に動作しているか否かを動作指令プロセスによって適切に監視することができる。
【００２０】
前記動作指令プロセスは、前記データ退避プロセスが正常に動作しているか否かをコンピュータオペレーティングシステムに問い合わせて、前記データ退避プロセスが正常に動作しているか否かを判定してもよい。
【００２１】
この構成によれば、データ退避プロセスが正常に動作しているか否かを動作指令プロセスによって適切に監視することができる。
【００２２】
前記動作指令プロセスは、更に前記ロボットの動作状態を前記作業用データに書き込み前記第１記憶部に記憶させてもよい。
【００２３】
この構成によれば、ロボットの動作に伴って生成される前記ロボットの動作状態を含むデータが失われることを防止することができる。
【００２４】
前記第１記憶部は、揮発性の媒体であり、前記第２記憶部は、不揮発性の媒体であってもよい。
【００２５】
この構成によれば、ユーザによる第１記憶部のバックアップ作業が実施できない状態においてロボット制御装置の再起動等を余儀なくされた場合であっても、ロボットの制御に関するデータの損傷を防止することができる。
【００２６】
入力された一次電源の電力を変換して前記動作制御部及び前記演算部に供給する電力変換部と、前記一次電源の電圧が所定の電圧以下になったことを検知する一次電源電圧低下検知部と、を備え、前記動作指令プロセス及び前記データ退避プロセスの少なくとも何れか一方は、一次電源電圧低下検知部が前記一次電源の電圧が所定の電圧以下になったことを検知すると前記復旧用データを前記作業用データに一致させてもよい。
【００２７】
この構成によれば、停電等により電力の供給に問題が生じた状態であっても、ロボットの制御に関するデータの損傷を防止することができる。
【００２８】
前記電力変換部に電力を供給する非常用電源を更に備え、前記電力変換部は、一次電源電圧低下検知部が前記一次電源の電圧が所定の電圧以下になったことを検知すると、入力された前記非常用電源の電力を変換して前記動作制御部及び前記演算部に供給してもよい。
【００２９】
この構成によれば、急に電力の供給が途絶えても、ロボットの制御に関するデータの損傷を防止することができる。
【００３０】
前記作業用データは、前記動作指令プロセスと前記データ退避プロセスとに共有される記憶領域に記憶されてもよい。
【００３１】
この構成によれば、作業用データの管理を適切に行うことができる。
【００３２】
上記課題を解決するため、本発明のある態様に係るロボットシステムは、ロボットと、前記ロボットを制御するロボット制御装置とを含む。
【００３３】
この構成によれば、動作指令プロセスが正常に動作していない状態であっても、ロボットの制御に関するデータの損傷を防止することができる。
【００３４】
上記課題を解決するため、本発明のある態様に係るロボットの制御方法は、ロボット制御装置によりロボットを制御するロボットの制御方法であって、前記ロボット制御装置は、作業用データを記憶する第１記憶部と、復旧用データを記憶する第２記憶部と、前記作業用データを読み込んで前記ロボットに対する動作指令を生成する動作指令プロセスと、前記動作指令プロセスが正常に動作しているか否かを判定し、前記動作指令プロセスが正常に動作していないと判定すると前記復旧用データを前記作業用データに一致させるデータ退避プロセスとを実行する演算部と、前記動作指令に基づき前記ロボットの動作を制御する動作制御部と、を備える。
【００３５】
この構成によれば、動作指令プロセスが正常に動作していない状態であっても、ロボットの制御に関するデータの損傷を防止することができる。
【発明の効果】
【００３６】
本発明は、異常発生後にロボットの作業を迅速に再開することができるという効果を奏する。
【図面の簡単な説明】
【００３７】
【図１】本発明の実施の形態１に係るロボットシステムの制御系統の構成例を概略的に示すブロック図である。
【図２】図１のロボットシステムの動作例を示すフローチャートであり、通常時における作業用データの退避処理動作を示す図である。
【図３】図１のロボットシステムの動作例を示すフローチャートであり、動作指令プロセスに異常が発生したときのデータ退避処理動作を示す図である。
【図４】図１のロボットシステムの動作例を示すフローチャートであり、データ退避プロセスに異常が発生したときのデータ退避処理動作を示す図である。
【図５】図１のロボットシステムの動作例を示すフローチャートであり、一次電源の電圧が低下したときのデータ退避処理動作を示す図である。
【図６】本発明の実施の形態２に係るロボットシステムの制御系統の構成例を概略的に示すブロック図である。
【発明を実施するための形態】
【００３８】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、本実施の形態によって本発明が限定されるものではない。また、以下では、全ての図を通じて、同一又は相当する要素には同一の参照符号を付して、その重複する説明を省略する。
【００３９】
（実施の形態１）
図１は、本発明の実施の形態１に係るロボットシステム１００の制御系統の構成例を概略的に示すブロック図である。
【００４０】
図１に示すように、ロボットシステム１００は、ロボット１と、ロボット制御装置２とを備える。ロボット１は、例えば複数の軸を有する垂直多関節型ロボットアームを有するロボットであるがこれに限られるものではない。ロボット１は、後述する電源部６から電力の供給を受け動作する。
【００４１】
［ロボット制御装置の構成例］
ロボット制御装置２は、ロボット１を制御する装置である。ロボット制御装置２は、記憶装置と、演算部４と、動作制御部５と、電源部６と、一次電源電圧低下検知部７とを含み、ロボット１に接続されている。
【００４２】
記憶装置は、ロボット１の動作を規定する動作プログラムを記憶する。動作プログラムは、ロボット１の各軸の動作を制御するプログラムである。また、記憶装置は、各種のデータを記憶する。更に、記憶装置は、演算部４と通信可能に接続されている。
【００４３】
記憶装置は、複数の装置で構成され、第１記憶部３１と、第１記憶部３１とは別個の装置である第２記憶部３２とを含む。この記憶装置は、電源部６から電力の供給を受け動作する。
【００４４】
第１記憶部３１は、電源の供給を絶つと記憶内容が失われる揮発性の記憶装置で構成され、詳細は後述する作業用データ１０を記憶する。第１記憶部３１は、例えば演算部４が直接アクセスすることのできる主記憶装置である。第１記憶部３１は、データの読出速度及び書込速度が高速な装置であり、例えばＤＲＡＭ又はＳＲＡＭである。第１記憶部３１は、動作指令プロセス４２とデータ退避プロセス４３とに共有される記憶領域３１ａを有し、作業用データ１０は、この記憶領域３１ａに記憶されている。
【００４５】
第２記憶部３２は、電源を供給しなくても記憶内容を保持する不揮発性の記憶装置で構成され、詳細は後述する復旧用データ１１を記憶する。第２記憶部３２は、例えばインターフェイスを介して接続され、演算部４が直接アクセスできない補助記憶装置である。第２記憶部３２は、第１記憶部３１に比べてデータの読出速度及び書込速度が低速な装置であり、例えばフラッシュメモリである。
【００４６】
演算部４は、例えばＣＰＵ等の演算器であり、複数のプロセスを実行する。この複数のプロセスには、動作指令プロセス４２とデータ退避プロセス４３とが含まれる。また、演算部４は、複数のウォッチドグタイマを有する。これらのウォッチドグタイマには、動作指令プロセス用ウォッチドグタイマ４４及びデータ退避プロセス用ウォッチドグタイマ４５が含まれる。演算部４は、集中制御する単独の制御器で構成されていてもよく、互いに協働して分散制御する複数の制御器で構成されてもよい。演算部４が実行する複数のプロセスは、互いに独立して処理されるよう構成されており、１のプロセスの応答が停止した場合においても、他のプロセスの処理が停止することのないように構成されている。演算部４は、電源部６から電力の供給を受け動作する。
【００４７】
そして、動作指令プロセス４２は、動作指令部６１と、データ保存部６２と、データ変更量監視部６７と、データ退避部６３と、データ退避プロセス監視部６４と、カウンタリセット部６６を含む。
【００４８】
動作指令部６１は、ロボット１に対する動作指令を生成する。すなわち、動作指令部６１は、動作プログラムに基づきロボット１の各軸の目標角度位置を決定する。
【００４９】
データ保存部６２は、ロボット１に関係するデータを作業用データ１０に書き込み第１記憶部３１に記憶させる。ロボット１に関係するデータには、予め設定された情報、ユーザーが設定した情報、ロボット制御装置２が生成した情報などが含まれる。予め設定された情報とは、例えばロボット機種情報である。ユーザーが設定した情報とは、例えば動作プログラム（教示プログラム）やネットワーク設定情報である。ロボット制御装置２が生成した情報とは、例えばロボット１の各軸の角度やロボット１のハンドの座標等の位置情報（変数情報）、ロボット１の動作中の状態を示す情報等のロボット制御装置２が生成した情報、エラー履歴情報、操作履歴情報である。ロボット１の各軸の角度に係るデータは、例えば、ロボット１の各軸の角度に設けられたエンコーダから出力され、動作制御部５を介して演算部４に入力された信号に基づいて生成されるように構成されている。すなわち、動作指令部６１がロボット１の各軸の目標角度位置を決定し、動作制御部５がロボット１の各軸をこの目標角度位置に近づけるようにロボット１を制御する。これによって、各軸の角度位置の変位がエンコーダによって検知され、動作制御部５を介して演算部４に入力される。演算部４に入力されたロボット１の角度位置の変位に係るデータは、演算部４によって所定の加工が施された後、データ保存部６２によって作業用データ１０として第１記憶部３１に記憶される。
【００５０】
データ変更量監視部６７は、作業用データ１０に加えたデータの変更量を監視する。本実施の形態において、データ変更量監視部６７は、データの内容を監視しない。
【００５１】
データ退避部６３は、第２記憶部３２に記憶されている復旧用データ１１を第１記憶部３１に記憶されている作業用データ１０に一致させる。すなわち、作業用データ１０を複製元として、復旧用データ１１を複製先として取り扱う。データ退避部６３が復旧用データ１１を作業用データ１０に一致させるときは、データ退避部６３が作業用データ１０と復旧用データ１１とを比較し、復旧用データ１１の相違する部分についてデータを追加したり又は書き換えを行ったりするように構成されている。しかしこれに代えて、復旧用データ１１のデータ全体を作業用データ１０に係るデータによって上書きしてもよい。
【００５２】
データ退避プロセス監視部６４は、データ退避プロセス４３が正常に動作しているか否かを判定する。すなわち、データ退避プロセス用ウォッチドグタイマ４５がタイムオーバー信号を出力したとき、つまりデータ退避プロセス４３のカウンタリセット信号の出力が停止されるとデータ退避プロセス４３が正常に動作していないと判定する（詳細は後述）。
【００５３】
カウンタリセット部（第１正常動作信号出力部）６６は、動作指令プロセス４２が正常に動作している状態にあるときは動作指令プロセス用ウォッチドグタイマ４４に対して所定の第１サイクルタイム以下の第２サイクルタイムでカウンタリセット信号（正常動作信号）を出力する。一方、動作指令プロセス４２に異常が発生し、処理が停止すると、動作指令プロセス４２のカウンタリセット信号の出力も停止する。
【００５４】
次に、データ退避プロセス４３は、データ退避部７３と、動作指令プロセス監視部７４と、一次電源電圧低下監視部７５と、カウンタリセット部７６を含む。
【００５５】
データ退避プロセス４３のデータ退避部７３は、動作指令プロセス４２のデータ退避部６３と同様の構成であるので、その詳細な説明を省略する。
【００５６】
動作指令プロセス監視部７４は、動作指令プロセス４２が正常に動作しているか否かを判定する。すなわち、動作指令プロセス用ウォッチドグタイマ４４がタイムオーバー信号を出力したとき、つまり動作指令プロセス４２のカウンタリセット信号の出力が停止されると、動作指令プロセス４２が正常に動作していないと判定する（詳細は後述）。
【００５７】
一次電源電圧低下監視部７５は、一次電源電圧低下検知部７から出力される電圧低下検知信号を用いてロボットシステム１００に供給される一次電源１１０の電圧低下を監視する。
【００５８】
カウンタリセット部７６（第２正常動作信号出力部）は、データ退避プロセス４３が正常に動作している状態にあるときはデータ退避プロセス用ウォッチドグタイマ４５に対して所定の第３サイクルタイム以下の第４サイクルタイムでカウンタリセット信号（正常動作信号）を出力する。一方、データ退避プロセス４３に異常が発生し、処理が停止すると、データ退避プロセス４３のカウンタリセット信号の出力も停止する。
【００５９】
動作指令プロセス用ウォッチドグタイマ４４は、所定の第１サイクルタイム内にカウンタリセット信号が入力されなかった場合にタイムオーバー信号を出力するウォッチドグタイマ（ＷＤＴ）である。データ退避プロセス用ウォッチドグタイマ４５は、所定の第３サイクルタイム内にカウンタリセット信号が入力されなかった場合にタイムオーバー信号を出力するウォッチドグタイマ（ＷＤＴ）である。本実施の形態において、動作指令プロセス用ウォッチドグタイマ４４及びデータ退避プロセス用ウォッチドグタイマ４５は、ソフトウェアウォッチドグタイマで構成されているが、これに代えてハードウェアウォッチドグタイマで構成してもよい。
【００６０】
これらの機能部６１〜６７、７３〜７６、４４及び４５は、記憶装置（第１記憶部３１及び／又は第２記憶部３２）に格納された所定の制御プログラムを演算部４が実行することにより実現される機能ブロックである。
【００６１】
動作制御部５は、動作指令部６１の動作指令に基づきロボット１の動作を制御する。動作制御部５は、例えばサーボドライバを含み、動作指令部６１が生成した動作指令に基づいてロボット１の各軸を駆動するサーボモータの動作を制御する。動作制御部５は、演算部４と通信可能に接続されている。また、動作制御部５は、電源部６から電力の供給を受け動作する。
【００６２】
電源部６は、電力変換部８１と、非常用電源８２とを含む。
【００６３】
電力変換部８１は、ロボット制御装置２に入力された一次電源１１０の電力を変換してロボット制御装置２の内部、すなわち、記憶装置、動作制御部５及び演算部４に供給する。電力変換部８１は、例えば外部から一次電源１１０として供給された交流電源を直流電源に変換し、ロボット制御装置２の内部に例えば１６Ｖ又は２５Ｖの直流電源を供給する。また、電力変換部８１は、ロボット１に対して例えば２００Ｖの直流電源を供給する。
【００６４】
非常用電源８２は、電力変換部８１に電力を供給する。非常用電源８２は、例えばコンデンサ（キャパシタ）であり、一次電源１１０からの電力の供給が途絶えた後、演算部４が後述するデータ退避処理を実行するまでの間、ロボット制御装置２の電力変換部８１に電力を供給する。非常用電源８２は、例えば３５０ミリ秒の間、電力変換部８１に電力を供給することができるように構成されている。非常用電源８２は、コンデンサであるので、例えば２次電池を用いた無停電電源装置（ＵＰＳ）と比べて、構成を簡素化することができ、製造に有利、且つ、製造コストも安価となる。なお、非常用電源８２は、コンデンサに限られるものではなく、例えば無停電電源装置であってもよい。
【００６５】
一次電源電圧低下検知部７は、一次電源１１０の電圧が所定の電圧以下になったことを検知し、電圧低下検知信号を出力する。一次電源電圧低下検知部７は、演算部４と通信可能に接続されている。
【００６６】
［動作例］
次に、ロボットシステム１００の動作例を説明する。
【００６７】
＜通常時のデータ退避処理動作＞
図２は、ロボットシステム１００の動作例を示すフローチャートであり、通常時における作業用データ１０の退避処理動作を示す図である。
【００６８】
まず、通常時のデータ退避処理について説明する。演算部４は、記憶装置に記憶されている動作プログラムを読み込み、動作プログラムを実行し、動作指令プロセス４２及びデータ退避プロセス４３を実行する。そして、動作指令プロセス４２の動作指令部６１は、ロボット１に対する動作指令を生成する。そして、動作制御部５は、この動作指令部６１が生成した動作指令に基づきロボット１の動作を制御する。そして、ロボット１の動作に伴って、ロボット１の各軸に設けられたエンコーダがそれぞれ対応する軸の角度に係る信号を出力する。そして、演算部４は、当該信号に基づいてロボット１の位置情報を生成する。
【００６９】
次に、動作指令プロセス４２のデータ保存部６２は、ロボット１の動作状態に係るデータを含むロボット１に関係するデータを作業用データ１０に書き込み第１記憶部３１に記憶させる。そして、動作指令プロセス４２のデータ退避部６３は、作業用データ１０を復旧用データ１１として、第２記憶部３２に記憶させる。
【００７０】
次に、データ変更量監視部６７は、作業用データ１０に加えたデータの変更量を監視する。そして、図２に示すように、データ変更量監視部６７は、作業用データ１０に加えたデータの変更量が予め規定された変更量を超えた否かを判定し（ステップＳ１１）、作業用データ１０に加えたデータの変更量が予め規定された変更量を超えるまで待機する。当該判定処理は、所定のサイクルタイムで実行される。そして、データ変更量監視部６７が作業用データ１０に加えたデータの変更量が予め規定された変更量を超えたと判定する（ステップＳ１１においてＹｅｓ）と、データ退避部６３は、第２記憶部３２に記憶されている復旧用データ１１を第１記憶部３１に記憶されている作業用データ１０に一致させる（ステップＳ１２）。そして、再度上記ステップＳ１１に係る処理を行う。
【００７１】
したがって、非常時に第１記憶部３１に記憶されている作業用データ１０が失われた場合であっても、ロボット１の動作状態に係るデータを含むロボット１の制御に関するデータの損傷を防止することができる。また、データ退避部６３が作業用データ１０と復旧用データ１１とを比較し、相違する部分を追加、修正するよう構成されているので、復旧用データ１１の全体を書き換えるのではなく、相違する部分について追加、修正する処理が行われるので、データ退避処理に要する時間を短くすることができる。
【００７２】
＜動作指令プロセスに異常が発生したときのデータ退避処理動作＞
図３は、ロボットシステム１００の動作例を示すフローチャートであり、動作指令プロセス４２に異常が発生したときのデータ退避処理動作を示す図である。
【００７３】
まず、図３に示すように、演算部４によって実行されるデータ退避プロセス４３の動作指令プロセス監視部７４は、動作指令プロセス４２が正常に動作しているか否かを判定する（ステップＳ２１）。
【００７４】
すなわち、動作指令プロセス４２が正常に実行されている間、カウンタリセット部６６は、動作指令プロセス用ウォッチドグタイマ４４に対して第２サイクルタイムでカウンタリセット信号を出力する。これによって、動作指令プロセス用ウォッチドグタイマ４４からタイムオーバー信号が出力されず、データ退避プロセス４３の動作指令プロセス監視部７４は、動作指令プロセス４２が正常に動作していると判定する（ステップＳ２１においてＹｅｓ）。当該判定処理は、所定のサイクルタイムで実行される。
【００７５】
一方、動作指令プロセス４２に異常が発生し、動作指令プロセス４２の処理が停止すると、動作指令プロセス４２のカウンタリセット部６６からのカウンタリセット信号の出力が停止する。そして、第１サイクルタイムが経過すると、動作指令プロセス用ウォッチドグタイマ４４はタイムオーバー信号を出力し、動作指令プロセス監視部７４は動作指令プロセス４２が正常に動作していない（動作指令プロセス４２に異常が発生した）と判定し（ステップＳ２１においてＮｏ）、データ退避プロセス４３のデータ退避部７３が第２記憶部３２に記憶されている復旧用データ１１を第１記憶部３１に記憶されている作業用データ１０に一致させる処理を行う（ステップＳ２２）。作業用データ１０は、上述の通り動作指令プロセス４２とデータ退避プロセス４３とに共有される記憶領域３１ａに記憶されているので、データ退避プロセス４３によって上記退避処理をおこなうことができる。
【００７６】
このようにして、動作指令プロセス４２が正常に動作していない状態であっても、ロボット１の動作状態に係るデータを含むロボット１の制御に関するデータの損傷を防止することができる。これによって、ロボットシステム１００を非常停止させた後、ロボットシステム１００の復旧を速やかに行うことができ、ロボット１の作業を迅速に再開することができる。
【００７７】
なお、ステップＳ２２に係る処理の前後に、ロボット１の動作を停止させてもよい。
【００７８】
＜データ退避プロセスに異常が発生したときのデータ退避処理動作＞
図４は、ロボットシステム１００の動作例を示すフローチャートであり、データ退避プロセス４３に異常が発生したときのデータ退避処理動作を示す図である。
【００７９】
まず、図４に示すように、演算部４によって実行される動作指令プロセス４２のデータ退避プロセス監視部６４は、データ退避プロセス４３が正常に動作しているか否かを判定する（ステップＳ３１）。
【００８０】
すなわち、データ退避プロセス４３が正常に実行されている間、カウンタリセット部７６は、データ退避プロセス用ウォッチドグタイマ４５に対して第４サイクルタイムでカウンタリセット信号を出力する。これによって、データ退避プロセス用ウォッチドグタイマ４５からタイムオーバー信号が出力されず、動作指令プロセス４２のデータ退避プロセス監視部６４は、データ退避プロセス４３が正常に動作していると繰り返し判定する（ステップＳ３１においてＹｅｓ）。当該判定処理は、所定のサイクルタイムで実行される。
【００８１】
一方、データ退避プロセス４３に異常が発生し、データ退避プロセス４３の処理が停止すると、データ退避プロセス４３のカウンタリセット部７６からのカウンタリセット信号の出力が停止する。そして、第３サイクルタイムが経過すると、データ退避プロセス用ウォッチドグタイマ４５はタイムオーバー信号を出力し、データ退避プロセス監視部６４はデータ退避プロセス４３が正常に動作していない（データ退避プロセス４３に異常が発生した）と判定し（ステップＳ３１においてＮｏ）、動作指令プロセス４２のデータ退避部６３が第２記憶部３２に記憶されている復旧用データ１１を第１記憶部３１に記憶されている作業用データ１０に一致させる処理を行う（ステップＳ３２）。
【００８２】
このようにして、動作指令プロセス４２及びデータ退避プロセス４３は、相互に動作状態が正常か否かを監視するように構成されているので、データ退避プロセス４３に加え、その後動作指令プロセス４２にも異常が発生した状態に陥り、その結果、ロボット１の動作状態に係るデータを含むロボット１の制御に関するデータの損傷を未然に防ぐことができる。
【００８３】
なお、ステップＳ３２に係る処理の前後に、ロボット１の動作を停止させてもよい。
【００８４】
＜一次電源電圧が低下したときのデータ退避処理動作＞
図５は、ロボットシステム１００の動作例を示すフローチャートであり、一次電源１１０の電圧が低下したときのデータ退避処理動作を示す図である。
【００８５】
まず、図５に示すように、データ退避プロセス４３の一次電源電圧低下監視部７５は、一次電源１１０の電圧が所定の電圧以下であるか否かを判定する（ステップＳ４１）。
【００８６】
すなわち、一次電源１１０の電圧が所定の電圧以上を維持している場合、一次電源電圧低下検知部７は、電圧低下検知信号を出力しない。一次電源電圧低下監視部７５は、一次電源電圧低下検知部７から電圧低下検知信号が出力されていない状態においては、一次電源１１０の電圧が所定の電圧以下でないと判定する（ステップＳ４１においてＮｏ）。当該判定処理は、所定のサイクルタイムで実行される。
【００８７】
一方、一次電源１１０の異常や、差込プラグがコンセント（outlet, socket）から抜けるなどし、一次電源１１０の電圧が低下して所定の電圧以下になると、一次電源電圧低下検知部７が電圧低下検知信号を出力し、電源部６は、ロボットシステム１００に対する電力の供給を一次電源１１０から非常用電源８２に切り替える。これによって、ロボット制御装置２に対する電力の供給が途絶え、ロボット１の動作状態に係るデータを含むロボット１の制御に関するデータの損傷を防止することができる。また、上記電源の切り替えと同時に、データ退避プロセス４３の一次電源電圧低下監視部７５は一次電源１１０の電圧が所定の電圧以下であると判定する（ステップＳ４１においてＹｅｓ）。
【００８８】
次に、演算部４は、ロボット１を停止させる（ステップＳ４２）。これによって、電力の消費を抑えることができる。
【００８９】
次に、データ退避プロセス４３のデータ退避部７３が第２記憶部３２に記憶されている復旧用データ１１を第１記憶部３１に記憶されている作業用データ１０に一致させる処理を行う（ステップＳ４３）。
【００９０】
このようにして、一次電源１１０の電圧が低下し、ロボット制御装置２を動作させるために十分な電力が一次電源１１０から得られない状態となった場合であっても、ロボット１の動作状態に係るデータを含むロボット１の制御に関するデータの損傷を防止することができる。これによって、ロボットシステム１００を非常停止させた後、ロボットシステム１００の復旧を速やかに行うことができる。
【００９１】
また、データ退避部６３が作業用データ１０と復旧用データ１１とを比較し、相違する部分を追加、修正するよう構成されているので、復旧用データ１１の全体を書き換えるのではなく、上述の通常時のデータ退避処理動作によってデータを退避させた後、作業用データ１０に変更を加えたデータについて追加、修正する処理を行えばよく、データ退避処理に要する時間を短くすることができ、非常用電源８２の容量を小さくすることができる。
【００９２】
以上に説明したように、本発明のロボットシステム１００は、動作指令プロセス４２が正常に動作していない状態であっても、データ退避プロセス４３が第１記憶部３１に記憶されている作業用データ１０を第２記憶部３２に一致させる処理、すなわち作業用データ１０を第２記憶部３２に退避させる処理を行うので、ロボット１の動作状態に係るデータを含むロボット１の制御に関するデータの損傷を防止することができる。これによって、ロボットシステム１００を復旧させるときは第２記憶部３２に記憶されているロボット１の動作状態に係るデータを含むロボット１の制御に関するデータを用いてロボットシステム１００の復旧を速やかに行うことができる。これによって、ロボット１の作業を迅速に再開することができる。また、ユーザが第１記憶部３１に記憶されているデータのバックアップをとっていない場合であっても、ロボット１の動作を再開することができる。更に、ロボット１の作業後、電源の遮断前に、ロボット１のデータの損傷を防止するためにユーザがデータのバックアップをとる作業を行う必要がなくなり、ロボットシステム１００の取り扱いが容易となる。
【００９３】
また、動作指令プロセス４２及びデータ退避プロセス４３は、相互に動作状態が正常か否かを監視するように構成されているので、データ退避プロセス４３に加え、その後動作指令プロセス４２にも異常が発生した状態に陥り、その結果、ロボット１の動作状態に係るデータを含むロボット１の制御に関するデータの損傷を未然に防ぐことができる。
【００９４】
更に、停電等により電力の供給に問題が生じた状態であっても、作業用データ１０を第２記憶部３２に退避させる処理を実行することができるので、ロボット１の動作状態に係るデータを含むロボット１の制御に関するデータの損傷を防止することができる。
【００９５】
（実施の形態２）
上記実施の形態１においては、データ退避プロセス４３の一次電源電圧低下監視部７５がロボットシステム１００に供給される一次電源１１０の電圧が所定の電圧以下になったことを検知する。
【００９６】
これに対し、本実施の形態において、動作指令プロセス４２は、図６に示すように、一次電源電圧低下監視部２６５を更に備え、動作指令プロセス４２の一次電源電圧低下監視部２６５がロボットシステム１００に供給される一次電源１１０の電圧が所定の電圧以下になったことを検知してもよい。
【００９７】
（実施の形態３）
上記実施の形態１においては、データ変更量監視部６７は、動作指令プロセス４２に含まれるように構成されているが、これに限られるものではない。これに代えてデータ退避プロセス４３に含まれていてもよい。
【００９８】
（実施の形態４）
上記実施の形態１においては、動作指令プロセス４２及びデータ退避プロセス４３の一方のプロセスは、他方のプロセスが正常に動作しているか否かをウォッチドグタイマを用いて判定していたがこれに限られるものではない。
【００９９】
これに代えて、動作指令プロセス４２及びデータ退避プロセス４３の一方のプロセスは、他方のプロセスが正常に動作しているか否かをコンピュータオペレーティングシステムに問い合わせて判定してもよい。すなわち、例えば、コンピュータオペレーティングシステムがＬｉｎｕｘ（登録商標）であればｐｓコマンドにより実行中のプロセス情報を取得でき、ｐｓコマンドを所定のサイクルタイムで実行することにより、対象のプロセスが正常に動作しているか否かを監視してもよい。
【０１００】
また、動作指令プロセス４２及びデータ退避プロセス４３の一方のプロセスは、他方のプロセスが正常に動作しているか否かをソケット通信を用いて直接問い合わせてもよい。
【０１０１】
更に、動作指令プロセス４２及びデータ退避プロセス４３の一方のプロセスは、プロセスに異常が発生したときに、プロセスに異常が発生したことを報知する信号を出力し、他方のプロセスは、プロセスに異常が発生したことを報知する信号を受信したときに一方のプロセスに異常が発生した（正常に動作していない）と判定してもよい。
【０１０２】
（実施の形態５）
上記実施の形態１においては、プロセスに異常が発生したとき及び一次電源１１０の電圧が低下したときに第１記憶部３１に記憶されているデータを第２記憶部３２にデータの退避処理を行ったがこれに限られるものではない。これらに代えて又はこれらに加えて、ロボット制御装置２の演算部４等に温度異常が発生したことを検知したとき、ＮＭＩ（Non-Maskable Interrupt）が発生したとき、及びハードウェア故障を検知したときの少なくとも何れかにおいてデータの退避処理を行ってもよい。
【０１０３】
上記説明から、当業者にとっては、本発明の多くの改良や他の実施形態が明らかである。従って、上記説明は、例示としてのみ解釈されるべきであり、本発明を実行する最良の態様を当業者に教示する目的で提供されたものである。本発明の精神を逸脱することなく、その構造及び／又は機能の詳細を実質的に変更できる。
【符号の説明】
【０１０４】
１  ロボット
２  ロボット制御装置
４  演算部
５  動作制御部
１０  作業用データ
１１  復旧用データ
３１  第１記憶部
３２  第２記憶部
４１  演算部
４２  動作指令プロセス
４３  データ退避プロセス
６１  動作指令部
６２  データ保存部
６３  データ退避部
７３  データ退避部
７４  動作指令プロセス監視部
１００  ロボットシステム
【図１】
2018130775.tif 000003
【図２】
2018130775.tif 000004
【図３】
2018130775.tif 000005
【図４】
2018130775.tif 000006
【図５】
2018130775.tif 000007
【図６】
2018130775.tif 000008