(58)【調査した分野】(Int.Cl.,DB名)
前記動作指令プロセスは、正常に動作している状態にあるときは正常動作信号を出力し、且つ正常に動作していないときは前記正常動作信号の出力を停止する第1正常動作信号出力部を有し、
前記データ退避プロセスは、前記動作指令プロセスの前記正常動作信号の出力が停止されると前記動作指令プロセスが正常に動作していないと判定する、請求項1に記載のロボット制御装置。
前記データ退避プロセスは、前記動作指令プロセスが正常に動作しているか否かをコンピュータオペレーティングシステムに問い合わせて、前記動作指令プロセスが正常に動作しているか否かを判定する、請求項1に記載のロボット制御装置。
前記動作指令プロセスは、前記データ退避プロセスが正常に動作しているか否かを判定し、前記データ退避プロセスが正常に動作していないと判定すると前記復旧用データを前記作業用データに一致させる、請求項1乃至4の何れかに記載のロボット制御装置。
前記データ退避プロセスは、正常に動作している状態にあるときは正常動作信号を出力し、且つ正常に動作していないときは前記正常動作信号の出力を停止する第2正常動作信号出力部を有し、
前記動作指令プロセスは、前記データ退避プロセスの前記正常動作信号の出力が停止されると前記データ退避プロセスが正常に動作していないと判定する、請求項5に記載のロボット制御装置。
前記動作指令プロセスは、前記データ退避プロセスが正常に動作しているか否かをコンピュータオペレーティングシステムに問い合わせて、前記データ退避プロセスが正常に動作しているか否かを判定する、請求項5に記載のロボット制御装置。
前記動作指令プロセスは、更に前記ロボットの動作状態を前記作業用データに書き込み前記第1記憶部に記憶させる、請求項1乃至8の何れかに記載のロボット制御装置。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、特許文献1に記載のロボット制御装置は、プログラムのエラー等により動作指示部が停止すると、データ読出・書込部が動作指示部の動作状態や各種データをデータ記憶部に書き込んで記憶させることができず、データが失われることがあるという問題があった。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明のある態様に係るロボット制御装置は、ロボットを制御するロボット制御装置であって、作業用データを記憶する第1記憶部と、復旧用データを記憶する第2記憶部と、前記作業用データを読み込んで前記ロボットに対する動作指令を生成する動作指令プロセスと、前記動作指令プロセスが正常に動作しているか否かを判定し、前記動作指令プロセスが正常に動作していないと判定すると前記復旧用データを前記作業用データに一致させるデータ退避プロセスとを実行する演算部と、前記動作指令に基づき前記ロボットの動作を制御する動作制御部と、を備える。
【0007】
この構成によれば、動作指令プロセスが正常に動作していない状態であっても、ロボットの制御に関するデータの損傷を防止することができる。これによって、ロボットの作業を迅速に再開することができる。
【0008】
前記動作指令プロセスは、正常に動作している状態にあるときは正常動作信号を出力し、且つ正常に動作していないときは前記正常動作信号の出力を停止する第1正常動作信号出力部を有し、前記データ退避プロセスは、前記動作指令プロセスの前記正常動作信号の出力が停止されると前記動作指令プロセスが正常に動作していないと判定してもよい。
【0009】
この構成によれば、動作指令プロセスが正常に動作しているか否かをデータ退避プロセスによって適切に監視することができる。
【0010】
前記正常動作信号は、カウンタリセット信号であり、所定の第1サイクルタイム内に前記カウンタリセット信号が入力されなかった場合にタイムオーバー信号を出力する動作指令プロセス用ウォッチドグタイマを更に有し、前記動作指令プロセスは、前記動作指令プロセス用ウォッチドグタイマに対して前記第1サイクルタイム以下の第2サイクルタイムで前記カウンタリセット信号を出力し、前記データ退避プロセスは、前記動作指令プロセス用ウォッチドグタイマがタイムオーバー信号を出力したときに前記動作指令プロセスが正常に動作していないと判定してもよい。
【0011】
この構成によれば、動作指令プロセスが正常に動作しているか否かをデータ退避プロセスによって適切に監視することができる。
【0012】
前記データ退避プロセスは、前記動作指令プロセスが正常に動作しているか否かをコンピュータオペレーティングシステムに問い合わせて、前記動作指令プロセスが正常に動作しているか否かを判定してもよい。
【0013】
この構成によれば、動作指令プロセスが正常に動作しているか否かをデータ退避プロセスによって適切に監視することができる。
【0014】
前記動作指令プロセスは、前記データ退避プロセスが正常に動作しているか否かを判定し、前記データ退避プロセスが正常に動作していないと判定すると前記復旧用データを前記作業用データに一致させてもよい。
【0015】
この構成によれば、ロボットの制御に関するデータの損傷を更に防止することができる。
【0016】
前記データ退避プロセスは、正常に動作している状態にあるときは正常動作信号を出力し、且つ正常に動作していないときは前記正常動作信号の出力を停止する第2正常動作信号出力部を有し、前記動作指令プロセスは、前記データ退避プロセスの前記正常動作信号の出力が停止されると前記データ退避プロセスが正常に動作していないと判定してもよい。
【0017】
この構成によれば、データ退避プロセスが正常に動作しているか否かを動作指令プロセスによって適切に監視することができる。
【0018】
前記正常動作信号は、カウンタリセット信号であり、所定の第3サイクルタイム内に前記カウンタリセット信号が入力されなかった場合にタイムオーバー信号を出力するデータ退避プロセス用ウォッチドグタイマを更に有し、前記データ退避プロセスは、前記データ退避プロセス用ウォッチドグタイマに対して前記第3サイクルタイム以下の第4サイクルタイムで前記カウンタリセット信号を出力し、前記動作指令プロセスは、前記データ退避プロセス用ウォッチドグタイマがタイムオーバー信号を出力したときに前記データ退避プロセスが正常に動作していないと判定してもよい。
【0019】
この構成によれば、データ退避プロセスが正常に動作しているか否かを動作指令プロセスによって適切に監視することができる。
【0020】
前記動作指令プロセスは、前記データ退避プロセスが正常に動作しているか否かをコンピュータオペレーティングシステムに問い合わせて、前記データ退避プロセスが正常に動作しているか否かを判定してもよい。
【0021】
この構成によれば、データ退避プロセスが正常に動作しているか否かを動作指令プロセスによって適切に監視することができる。
【0022】
前記動作指令プロセスは、更に前記ロボットの動作状態を前記作業用データに書き込み前記第1記憶部に記憶させてもよい。
【0023】
この構成によれば、ロボットの動作に伴って生成される前記ロボットの動作状態を含むデータが失われることを防止することができる。
【0024】
前記第1記憶部は、揮発性の媒体であり、前記第2記憶部は、不揮発性の媒体であってもよい。
【0025】
この構成によれば、ユーザによる第1記憶部のバックアップ作業が実施できない状態においてロボット制御装置の再起動等を余儀なくされた場合であっても、ロボットの制御に関するデータの損傷を防止することができる。
【0026】
入力された一次電源の電力を変換して前記動作制御部及び前記演算部に供給する電力変換部と、前記一次電源の電圧が所定の電圧以下になったことを検知する一次電源電圧低下検知部と、を備え、前記動作指令プロセス及び前記データ退避プロセスの少なくとも何れか一方は、一次電源電圧低下検知部が前記一次電源の電圧が所定の電圧以下になったことを検知すると前記復旧用データを前記作業用データに一致させてもよい。
【0027】
この構成によれば、停電等により電力の供給に問題が生じた状態であっても、ロボットの制御に関するデータの損傷を防止することができる。
【0028】
前記電力変換部に電力を供給する非常用電源を更に備え、前記電力変換部は、一次電源電圧低下検知部が前記一次電源の電圧が所定の電圧以下になったことを検知すると、入力された前記非常用電源の電力を変換して前記動作制御部及び前記演算部に供給してもよい。
【0029】
この構成によれば、急に電力の供給が途絶えても、ロボットの制御に関するデータの損傷を防止することができる。
【0030】
前記作業用データは、前記動作指令プロセスと前記データ退避プロセスとに共有される記憶領域に記憶されてもよい。
【0031】
この構成によれば、作業用データの管理を適切に行うことができる。
【0032】
上記課題を解決するため、本発明のある態様に係るロボットシステムは、ロボットと、前記ロボットを制御するロボット制御装置とを含む。
【0033】
この構成によれば、動作指令プロセスが正常に動作していない状態であっても、ロボットの制御に関するデータの損傷を防止することができる。
【0034】
上記課題を解決するため、本発明のある態様に係るロボットの制御方法は、ロボット制御装置によりロボットを制御するロボットの制御方法であって、前記ロボット制御装置は、作業用データを記憶する第1記憶部と、復旧用データを記憶する第2記憶部と、前記作業用データを読み込んで前記ロボットに対する動作指令を生成する動作指令プロセスと、前記動作指令プロセスが正常に動作しているか否かを判定し、前記動作指令プロセスが正常に動作していないと判定すると前記復旧用データを前記作業用データに一致させるデータ退避プロセスとを実行する演算部と、前記動作指令に基づき前記ロボットの動作を制御する動作制御部と、を備える。
【0035】
この構成によれば、動作指令プロセスが正常に動作していない状態であっても、ロボットの制御に関するデータの損傷を防止することができる。
【発明の効果】
【0036】
本発明は、異常発生後にロボットの作業を迅速に再開することができるという効果を奏する。
【発明を実施するための形態】
【0038】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、本実施の形態によって本発明が限定されるものではない。また、以下では、全ての図を通じて、同一又は相当する要素には同一の参照符号を付して、その重複する説明を省略する。
【0039】
(実施の形態1)
図1は、本発明の実施の形態1に係るロボットシステム100の制御系統の構成例を概略的に示すブロック図である。
【0040】
図1に示すように、ロボットシステム100は、ロボット1と、ロボット制御装置2とを備える。ロボット1は、例えば複数の軸を有する垂直多関節型ロボットアームを有するロボットであるがこれに限られるものではない。ロボット1は、後述する電源部6から電力の供給を受け動作する。
【0041】
[ロボット制御装置の構成例]
ロボット制御装置2は、ロボット1を制御する装置である。ロボット制御装置2は、記憶装置と、演算部4と、動作制御部5と、電源部6と、一次電源電圧低下検知部7とを含み、ロボット1に接続されている。
【0042】
記憶装置は、ロボット1の動作を規定する動作プログラムを記憶する。動作プログラムは、ロボット1の各軸の動作を制御するプログラムである。また、記憶装置は、各種のデータを記憶する。更に、記憶装置は、演算部4と通信可能に接続されている。
【0043】
記憶装置は、複数の装置で構成され、第1記憶部31と、第1記憶部31とは別個の装置である第2記憶部32とを含む。この記憶装置は、電源部6から電力の供給を受け動作する。
【0044】
第1記憶部31は、電源の供給を絶つと記憶内容が失われる揮発性の記憶装置で構成され、詳細は後述する作業用データ10を記憶する。第1記憶部31は、例えば演算部4が直接アクセスすることのできる主記憶装置である。第1記憶部31は、データの読出速度及び書込速度が高速な装置であり、例えばDRAM又はSRAMである。第1記憶部31は、動作指令プロセス42とデータ退避プロセス43とに共有される記憶領域31aを有し、作業用データ10は、この記憶領域31aに記憶されている。
【0045】
第2記憶部32は、電源を供給しなくても記憶内容を保持する不揮発性の記憶装置で構成され、詳細は後述する復旧用データ11を記憶する。第2記憶部32は、例えばインターフェイスを介して接続され、演算部4が直接アクセスできない補助記憶装置である。第2記憶部32は、第1記憶部31に比べてデータの読出速度及び書込速度が低速な装置であり、例えばフラッシュメモリである。
【0046】
演算部4は、例えばCPU等の演算器であり、複数のプロセスを実行する。この複数のプロセスには、動作指令プロセス42とデータ退避プロセス43とが含まれる。また、演算部4は、複数のウォッチドグタイマを有する。これらのウォッチドグタイマには、動作指令プロセス用ウォッチドグタイマ44及びデータ退避プロセス用ウォッチドグタイマ45が含まれる。演算部4は、集中制御する単独の制御器で構成されていてもよく、互いに協働して分散制御する複数の制御器で構成されてもよい。演算部4が実行する複数のプロセスは、互いに独立して処理されるよう構成されており、1のプロセスの応答が停止した場合においても、他のプロセスの処理が停止することのないように構成されている。演算部4は、電源部6から電力の供給を受け動作する。
【0047】
そして、動作指令プロセス42は、動作指令部61と、データ保存部62と、データ変更量監視部67と、データ退避部63と、データ退避プロセス監視部64と、カウンタリセット部66を含む。
【0048】
動作指令部61は、ロボット1に対する動作指令を生成する。すなわち、動作指令部61は、動作プログラムに基づきロボット1の各軸の目標角度位置を決定する。
【0049】
データ保存部62は、ロボット1に関係するデータを作業用データ10に書き込み第1記憶部31に記憶させる。ロボット1に関係するデータには、予め設定された情報、ユーザーが設定した情報、ロボット制御装置2が生成した情報などが含まれる。予め設定された情報とは、例えばロボット機種情報である。ユーザーが設定した情報とは、例えば動作プログラム(教示プログラム)やネットワーク設定情報である。ロボット制御装置2が生成した情報とは、例えばロボット1の各軸の角度やロボット1のハンドの座標等の位置情報(変数情報)、ロボット1の動作中の状態を示す情報等のロボット制御装置2が生成した情報、エラー履歴情報、操作履歴情報である。ロボット1の各軸の角度に係るデータは、例えば、ロボット1の各軸の角度に設けられたエンコーダから出力され、動作制御部5を介して演算部4に入力された信号に基づいて生成されるように構成されている。すなわち、動作指令部61がロボット1の各軸の目標角度位置を決定し、動作制御部5がロボット1の各軸をこの目標角度位置に近づけるようにロボット1を制御する。これによって、各軸の角度位置の変位がエンコーダによって検知され、動作制御部5を介して演算部4に入力される。演算部4に入力されたロボット1の角度位置の変位に係るデータは、演算部4によって所定の加工が施された後、データ保存部62によって作業用データ10として第1記憶部31に記憶される。
【0050】
データ変更量監視部67は、作業用データ10に加えたデータの変更量を監視する。本実施の形態において、データ変更量監視部67は、データの内容を監視しない。
【0051】
データ退避部63は、第2記憶部32に記憶されている復旧用データ11を第1記憶部31に記憶されている作業用データ10に一致させる。すなわち、作業用データ10を複製元として、復旧用データ11を複製先として取り扱う。データ退避部63が復旧用データ11を作業用データ10に一致させるときは、データ退避部63が作業用データ10と復旧用データ11とを比較し、復旧用データ11の相違する部分についてデータを追加したり又は書き換えを行ったりするように構成されている。しかしこれに代えて、復旧用データ11のデータ全体を作業用データ10に係るデータによって上書きしてもよい。
【0052】
データ退避プロセス監視部64は、データ退避プロセス43が正常に動作しているか否かを判定する。すなわち、データ退避プロセス用ウォッチドグタイマ45がタイムオーバー信号を出力したとき、つまりデータ退避プロセス43のカウンタリセット信号の出力が停止されるとデータ退避プロセス43が正常に動作していないと判定する(詳細は後述)。
【0053】
カウンタリセット部(第1正常動作信号出力部)66は、動作指令プロセス42が正常に動作している状態にあるときは動作指令プロセス用ウォッチドグタイマ44に対して所定の第1サイクルタイム以下の第2サイクルタイムでカウンタリセット信号(正常動作信号)を出力する。一方、動作指令プロセス42に異常が発生し、処理が停止すると、動作指令プロセス42のカウンタリセット信号の出力も停止する。
【0054】
次に、データ退避プロセス43は、データ退避部73と、動作指令プロセス監視部74と、一次電源電圧低下監視部75と、カウンタリセット部76を含む。
【0055】
データ退避プロセス43のデータ退避部73は、動作指令プロセス42のデータ退避部63と同様の構成であるので、その詳細な説明を省略する。
【0056】
動作指令プロセス監視部74は、動作指令プロセス42が正常に動作しているか否かを判定する。すなわち、動作指令プロセス用ウォッチドグタイマ44がタイムオーバー信号を出力したとき、つまり動作指令プロセス42のカウンタリセット信号の出力が停止されると、動作指令プロセス42が正常に動作していないと判定する(詳細は後述)。
【0057】
一次電源電圧低下監視部75は、一次電源電圧低下検知部7から出力される電圧低下検知信号を用いてロボットシステム100に供給される一次電源110の電圧低下を監視する。
【0058】
カウンタリセット部76(第2正常動作信号出力部)は、データ退避プロセス43が正常に動作している状態にあるときはデータ退避プロセス用ウォッチドグタイマ45に対して所定の第3サイクルタイム以下の第4サイクルタイムでカウンタリセット信号(正常動作信号)を出力する。一方、データ退避プロセス43に異常が発生し、処理が停止すると、データ退避プロセス43のカウンタリセット信号の出力も停止する。
【0059】
動作指令プロセス用ウォッチドグタイマ44は、所定の第1サイクルタイム内にカウンタリセット信号が入力されなかった場合にタイムオーバー信号を出力するウォッチドグタイマ(WDT)である。データ退避プロセス用ウォッチドグタイマ45は、所定の第3サイクルタイム内にカウンタリセット信号が入力されなかった場合にタイムオーバー信号を出力するウォッチドグタイマ(WDT)である。本実施の形態において、動作指令プロセス用ウォッチドグタイマ44及びデータ退避プロセス用ウォッチドグタイマ45は、ソフトウェアウォッチドグタイマで構成されているが、これに代えてハードウェアウォッチドグタイマで構成してもよい。
【0060】
これらの機能部61〜67、73〜76、44及び45は、記憶装置(第1記憶部31及び/又は第2記憶部32)に格納された所定の制御プログラムを演算部4が実行することにより実現される機能ブロックである。
【0061】
動作制御部5は、動作指令部61の動作指令に基づきロボット1の動作を制御する。動作制御部5は、例えばサーボドライバを含み、動作指令部61が生成した動作指令に基づいてロボット1の各軸を駆動するサーボモータの動作を制御する。動作制御部5は、演算部4と通信可能に接続されている。また、動作制御部5は、電源部6から電力の供給を受け動作する。
【0062】
電源部6は、電力変換部81と、非常用電源82とを含む。
【0063】
電力変換部81は、ロボット制御装置2に入力された一次電源110の電力を変換してロボット制御装置2の内部、すなわち、記憶装置、動作制御部5及び演算部4に供給する。電力変換部81は、例えば外部から一次電源110として供給された交流電源を直流電源に変換し、ロボット制御装置2の内部に例えば16V又は25Vの直流電源を供給する。また、電力変換部81は、ロボット1に対して例えば200Vの直流電源を供給する。
【0064】
非常用電源82は、電力変換部81に電力を供給する。非常用電源82は、例えばコンデンサ(キャパシタ)であり、一次電源110からの電力の供給が途絶えた後、演算部4が後述するデータ退避処理を実行するまでの間、ロボット制御装置2の電力変換部81に電力を供給する。非常用電源82は、例えば350ミリ秒の間、電力変換部81に電力を供給することができるように構成されている。非常用電源82は、コンデンサであるので、例えば2次電池を用いた無停電電源装置(UPS)と比べて、構成を簡素化することができ、製造に有利、且つ、製造コストも安価となる。なお、非常用電源82は、コンデンサに限られるものではなく、例えば無停電電源装置であってもよい。
【0065】
一次電源電圧低下検知部7は、一次電源110の電圧が所定の電圧以下になったことを検知し、電圧低下検知信号を出力する。一次電源電圧低下検知部7は、演算部4と通信可能に接続されている。
【0066】
[動作例]
次に、ロボットシステム100の動作例を説明する。
【0067】
<通常時のデータ退避処理動作>
図2は、ロボットシステム100の動作例を示すフローチャートであり、通常時における作業用データ10の退避処理動作を示す図である。
【0068】
まず、通常時のデータ退避処理について説明する。演算部4は、記憶装置に記憶されている動作プログラムを読み込み、動作プログラムを実行し、動作指令プロセス42及びデータ退避プロセス43を実行する。そして、動作指令プロセス42の動作指令部61は、ロボット1に対する動作指令を生成する。そして、動作制御部5は、この動作指令部61が生成した動作指令に基づきロボット1の動作を制御する。そして、ロボット1の動作に伴って、ロボット1の各軸に設けられたエンコーダがそれぞれ対応する軸の角度に係る信号を出力する。そして、演算部4は、当該信号に基づいてロボット1の位置情報を生成する。
【0069】
次に、動作指令プロセス42のデータ保存部62は、ロボット1の動作状態に係るデータを含むロボット1に関係するデータを作業用データ10に書き込み第1記憶部31に記憶させる。そして、動作指令プロセス42のデータ退避部63は、作業用データ10を復旧用データ11として、第2記憶部32に記憶させる。
【0070】
次に、データ変更量監視部67は、作業用データ10に加えたデータの変更量を監視する。そして、
図2に示すように、データ変更量監視部67は、作業用データ10に加えたデータの変更量が予め規定された変更量を超えた否かを判定し(ステップS11)、作業用データ10に加えたデータの変更量が予め規定された変更量を超えるまで待機する。当該判定処理は、所定のサイクルタイムで実行される。そして、データ変更量監視部67が作業用データ10に加えたデータの変更量が予め規定された変更量を超えたと判定する(ステップS11においてYes)と、データ退避部63は、第2記憶部32に記憶されている復旧用データ11を第1記憶部31に記憶されている作業用データ10に一致させる(ステップS12)。そして、再度上記ステップS11に係る処理を行う。
【0071】
したがって、非常時に第1記憶部31に記憶されている作業用データ10が失われた場合であっても、ロボット1の動作状態に係るデータを含むロボット1の制御に関するデータの損傷を防止することができる。また、データ退避部63が作業用データ10と復旧用データ11とを比較し、相違する部分を追加、修正するよう構成されているので、復旧用データ11の全体を書き換えるのではなく、相違する部分について追加、修正する処理が行われるので、データ退避処理に要する時間を短くすることができる。
【0072】
<動作指令プロセスに異常が発生したときのデータ退避処理動作>
図3は、ロボットシステム100の動作例を示すフローチャートであり、動作指令プロセス42に異常が発生したときのデータ退避処理動作を示す図である。
【0073】
まず、
図3に示すように、演算部4によって実行されるデータ退避プロセス43の動作指令プロセス監視部74は、動作指令プロセス42が正常に動作しているか否かを判定する(ステップS21)。
【0074】
すなわち、動作指令プロセス42が正常に実行されている間、カウンタリセット部66は、動作指令プロセス用ウォッチドグタイマ44に対して第2サイクルタイムでカウンタリセット信号を出力する。これによって、動作指令プロセス用ウォッチドグタイマ44からタイムオーバー信号が出力されず、データ退避プロセス43の動作指令プロセス監視部74は、動作指令プロセス42が正常に動作していると判定する(ステップS21においてYes)。当該判定処理は、所定のサイクルタイムで実行される。
【0075】
一方、動作指令プロセス42に異常が発生し、動作指令プロセス42の処理が停止すると、動作指令プロセス42のカウンタリセット部66からのカウンタリセット信号の出力が停止する。そして、第1サイクルタイムが経過すると、動作指令プロセス用ウォッチドグタイマ44はタイムオーバー信号を出力し、動作指令プロセス監視部74は動作指令プロセス42が正常に動作していない(動作指令プロセス42に異常が発生した)と判定し(ステップS21においてNo)、データ退避プロセス43のデータ退避部73が第2記憶部32に記憶されている復旧用データ11を第1記憶部31に記憶されている作業用データ10に一致させる処理を行う(ステップS22)。作業用データ10は、上述の通り動作指令プロセス42とデータ退避プロセス43とに共有される記憶領域31aに記憶されているので、データ退避プロセス43によって上記退避処理をおこなうことができる。
【0076】
このようにして、動作指令プロセス42が正常に動作していない状態であっても、ロボット1の動作状態に係るデータを含むロボット1の制御に関するデータの損傷を防止することができる。これによって、ロボットシステム100を非常停止させた後、ロボットシステム100の復旧を速やかに行うことができ、ロボット1の作業を迅速に再開することができる。
【0077】
なお、ステップS22に係る処理の前後に、ロボット1の動作を停止させてもよい。
【0078】
<データ退避プロセスに異常が発生したときのデータ退避処理動作>
図4は、ロボットシステム100の動作例を示すフローチャートであり、データ退避プロセス43に異常が発生したときのデータ退避処理動作を示す図である。
【0079】
まず、
図4に示すように、演算部4によって実行される動作指令プロセス42のデータ退避プロセス監視部64は、データ退避プロセス43が正常に動作しているか否かを判定する(ステップS31)。
【0080】
すなわち、データ退避プロセス43が正常に実行されている間、カウンタリセット部76は、データ退避プロセス用ウォッチドグタイマ45に対して第4サイクルタイムでカウンタリセット信号を出力する。これによって、データ退避プロセス用ウォッチドグタイマ45からタイムオーバー信号が出力されず、動作指令プロセス42のデータ退避プロセス監視部64は、データ退避プロセス43が正常に動作していると繰り返し判定する(ステップS31においてYes)。当該判定処理は、所定のサイクルタイムで実行される。
【0081】
一方、データ退避プロセス43に異常が発生し、データ退避プロセス43の処理が停止すると、データ退避プロセス43のカウンタリセット部76からのカウンタリセット信号の出力が停止する。そして、第3サイクルタイムが経過すると、データ退避プロセス用ウォッチドグタイマ45はタイムオーバー信号を出力し、データ退避プロセス監視部64はデータ退避プロセス43が正常に動作していない(データ退避プロセス43に異常が発生した)と判定し(ステップS31においてNo)、動作指令プロセス42のデータ退避部63が第2記憶部32に記憶されている復旧用データ11を第1記憶部31に記憶されている作業用データ10に一致させる処理を行う(ステップS32)。
【0082】
このようにして、動作指令プロセス42及びデータ退避プロセス43は、相互に動作状態が正常か否かを監視するように構成されているので、データ退避プロセス43に加え、その後動作指令プロセス42にも異常が発生した状態に陥り、その結果、ロボット1の動作状態に係るデータを含むロボット1の制御に関するデータの損傷を未然に防ぐことができる。
【0083】
なお、ステップS32に係る処理の前後に、ロボット1の動作を停止させてもよい。
【0084】
<一次電源電圧が低下したときのデータ退避処理動作>
図5は、ロボットシステム100の動作例を示すフローチャートであり、一次電源110の電圧が低下したときのデータ退避処理動作を示す図である。
【0085】
まず、
図5に示すように、データ退避プロセス43の一次電源電圧低下監視部75は、一次電源110の電圧が所定の電圧以下であるか否かを判定する(ステップS41)。
【0086】
すなわち、一次電源110の電圧が所定の電圧以上を維持している場合、一次電源電圧低下検知部7は、電圧低下検知信号を出力しない。一次電源電圧低下監視部75は、一次電源電圧低下検知部7から電圧低下検知信号が出力されていない状態においては、一次電源110の電圧が所定の電圧以下でないと判定する(ステップS41においてNo)。当該判定処理は、所定のサイクルタイムで実行される。
【0087】
一方、一次電源110の異常や、差込プラグがコンセント(outlet, socket)から抜けるなどし、一次電源110の電圧が低下して所定の電圧以下になると、一次電源電圧低下検知部7が電圧低下検知信号を出力し、電源部6は、ロボットシステム100に対する電力の供給を一次電源110から非常用電源82に切り替える。これによって、ロボット制御装置2に対する電力の供給が途絶え、ロボット1の動作状態に係るデータを含むロボット1の制御に関するデータの損傷を防止することができる。また、上記電源の切り替えと同時に、データ退避プロセス43の一次電源電圧低下監視部75は一次電源110の電圧が所定の電圧以下であると判定する(ステップS41においてYes)。
【0088】
次に、演算部4は、ロボット1を停止させる(ステップS42)。これによって、電力の消費を抑えることができる。
【0089】
次に、データ退避プロセス43のデータ退避部73が第2記憶部32に記憶されている復旧用データ11を第1記憶部31に記憶されている作業用データ10に一致させる処理を行う(ステップS43)。
【0090】
このようにして、一次電源110の電圧が低下し、ロボット制御装置2を動作させるために十分な電力が一次電源110から得られない状態となった場合であっても、ロボット1の動作状態に係るデータを含むロボット1の制御に関するデータの損傷を防止することができる。これによって、ロボットシステム100を非常停止させた後、ロボットシステム100の復旧を速やかに行うことができる。
【0091】
また、データ退避部63が作業用データ10と復旧用データ11とを比較し、相違する部分を追加、修正するよう構成されているので、復旧用データ11の全体を書き換えるのではなく、上述の通常時のデータ退避処理動作によってデータを退避させた後、作業用データ10に変更を加えたデータについて追加、修正する処理を行えばよく、データ退避処理に要する時間を短くすることができ、非常用電源82の容量を小さくすることができる。
【0092】
以上に説明したように、本発明のロボットシステム100は、動作指令プロセス42が正常に動作していない状態であっても、データ退避プロセス43が第1記憶部31に記憶されている作業用データ10を第2記憶部32に一致させる処理、すなわち作業用データ10を第2記憶部32に退避させる処理を行うので、ロボット1の動作状態に係るデータを含むロボット1の制御に関するデータの損傷を防止することができる。これによって、ロボットシステム100を復旧させるときは第2記憶部32に記憶されているロボット1の動作状態に係るデータを含むロボット1の制御に関するデータを用いてロボットシステム100の復旧を速やかに行うことができる。これによって、ロボット1の作業を迅速に再開することができる。また、ユーザが第1記憶部31に記憶されているデータのバックアップをとっていない場合であっても、ロボット1の動作を再開することができる。更に、ロボット1の作業後、電源の遮断前に、ロボット1のデータの損傷を防止するためにユーザがデータのバックアップをとる作業を行う必要がなくなり、ロボットシステム100の取り扱いが容易となる。
【0093】
また、動作指令プロセス42及びデータ退避プロセス43は、相互に動作状態が正常か否かを監視するように構成されているので、データ退避プロセス43に加え、その後動作指令プロセス42にも異常が発生した状態に陥り、その結果、ロボット1の動作状態に係るデータを含むロボット1の制御に関するデータの損傷を未然に防ぐことができる。
【0094】
更に、停電等により電力の供給に問題が生じた状態であっても、作業用データ10を第2記憶部32に退避させる処理を実行することができるので、ロボット1の動作状態に係るデータを含むロボット1の制御に関するデータの損傷を防止することができる。
【0095】
(実施の形態2)
上記実施の形態1においては、データ退避プロセス43の一次電源電圧低下監視部75がロボットシステム100に供給される一次電源110の電圧が所定の電圧以下になったことを検知する。
【0096】
これに対し、本実施の形態において、動作指令プロセス42は、
図6に示すように、一次電源電圧低下監視部265を更に備え、動作指令プロセス42の一次電源電圧低下監視部265がロボットシステム100に供給される一次電源110の電圧が所定の電圧以下になったことを検知してもよい。
【0097】
(実施の形態3)
上記実施の形態1においては、データ変更量監視部67は、動作指令プロセス42に含まれるように構成されているが、これに限られるものではない。これに代えてデータ退避プロセス43に含まれていてもよい。
【0098】
(実施の形態4)
上記実施の形態1においては、動作指令プロセス42及びデータ退避プロセス43の一方のプロセスは、他方のプロセスが正常に動作しているか否かをウォッチドグタイマを用いて判定していたがこれに限られるものではない。
【0099】
これに代えて、動作指令プロセス42及びデータ退避プロセス43の一方のプロセスは、他方のプロセスが正常に動作しているか否かをコンピュータオペレーティングシステムに問い合わせて判定してもよい。すなわち、例えば、コンピュータオペレーティングシステムがLinux(登録商標)であればpsコマンドにより実行中のプロセス情報を取得でき、psコマンドを所定のサイクルタイムで実行することにより、対象のプロセスが正常に動作しているか否かを監視してもよい。
【0100】
また、動作指令プロセス42及びデータ退避プロセス43の一方のプロセスは、他方のプロセスが正常に動作しているか否かをソケット通信を用いて直接問い合わせてもよい。
【0101】
更に、動作指令プロセス42及びデータ退避プロセス43の一方のプロセスは、プロセスに異常が発生したときに、プロセスに異常が発生したことを報知する信号を出力し、他方のプロセスは、プロセスに異常が発生したことを報知する信号を受信したときに一方のプロセスに異常が発生した(正常に動作していない)と判定してもよい。
【0102】
(実施の形態5)
上記実施の形態1においては、プロセスに異常が発生したとき及び一次電源110の電圧が低下したときに第1記憶部31に記憶されているデータを第2記憶部32にデータの退避処理を行ったがこれに限られるものではない。これらに代えて又はこれらに加えて、ロボット制御装置2の演算部4等に温度異常が発生したことを検知したとき、NMI(Non-Maskable Interrupt)が発生したとき、及びハードウェア故障を検知したときの少なくとも何れかにおいてデータの退避処理を行ってもよい。
【0103】
上記説明から、当業者にとっては、本発明の多くの改良や他の実施形態が明らかである。従って、上記説明は、例示としてのみ解釈されるべきであり、本発明を実行する最良の態様を当業者に教示する目的で提供されたものである。本発明の精神を逸脱することなく、その構造及び/又は機能の詳細を実質的に変更できる。