本発明は、ロボット制御装置内に記憶するソフトウェアの更新を行なうロボットシステムおよびロボットシステムのソフトウェア更新方法に関するものである。
従来のロボット制御装置のソフトウェア更新方法は、ソフトウェアが書き込まれたPROMを基板上で差し替えることにより行われていた。しかし、昨今は電気的に消去/書き込みが可能なフラッシュメモリなどのEPROM(Erasable Programmable Read Only Memory)の普及に伴い、パソコンなどの外部端末とロボット制御装置を通信ケーブルで接続し、ソフトウェアを外部端末から制御装置に転送し、制御装置内のソフトウェアを書き換える方法が取られる。また、外部端末とロボット制御装置をネットワーク回線で接続し、複数のロボット制御装置に対するソフトウェア更新を1台の外部端末で同時に行うことのできるロボット制御装置が提案されている(例えば、特許文献1参照)。
また、ネットワーク通信機能およびメモリを書き換える機能のシステムプログラムを起動させ、更新もしくは用途変更に伴う新たなシステムプログラムをホストコンピュータから通信ネットワークを介して各々のロボット制御装置に転送する。各ロボット制御装置は、メモリを書き換える機能により、自動的に各々のロボット制御装置のシステムプログラムを、転送された新たなシステムプログラムに書き換えるロボット制御装置も提案されている(例えば、特許文献2参照)。
また、EPROMを備えたロボット制御装置において、複数のロボット制御装置をネットワーク回線で接続し、他のロボット制御装置のEPROMに記憶されたソフトウェアバージョンを確認して、他のロボット制御装置の方が自ロボット制御装置より新規であると確認された場合に、ネットワーク回線を介してソフトウェアを転送する。これにより、ホストコンピュータや外部端末無しにソフトウェア更新を行なう。さらに、ソフトウェアの更新が完了したロボット制御装置が、ネットワーク回線によって接続された他のロボット制御装置に対してソフトウェアを転送し、受信したロボット制御装置が受信完了後に自身のソフトウェア更新を行なう。これを繰り返すことにより、順次ソフトウェア更新作業が伝播していき、複数ロボット制御装置のソフトウェア更新が完了するロボット制御装置が提案されている(例えば、特許文献3参照)。
しかしながら、特許文献1や特許文献2に示す従来のロボット制御装置のソフトウェア更新方法では、ロボット制御装置にソフトウェアを転送するための外部端末やホストコンピュータが必要である。また、これらの外部端末やホストコンピュータとロボット制御装置が同一の通信回線で接続されている必要があり、外部端末を持ち運ぶ必要がある場合や、ホストコンピュータを準備して設置しておく必要がある。また、これらの外部端末やホストコンピュータが故障した場合は、ソフトウェアの更新を実施できない。
また、生産ラインが複数のロボットで構成されている場合、すべてのロボット制御装置のバージョンが同一となっている方が望ましい。もし、ソフトウェアバージョンが異なっていると、操作方法や表示画面がバージョンによって異なってしまい、作業者がとまどってしまう。また、バージョンが異なることによって、ロボットの動作軌跡が異なってしまう場合には、同一の教示プログラムで同一の動作をさせることができず、バージョンごとに動作軌跡、すなわち教示プログラムを教示しなおす必要がある。また、新しいバージョンのソフトウェアに不具合がある場合には、安定動作していた古いバージョンにバージョンダウンするケースもあり、この場合においても、生産ラインを構成する複数のロボット制御装置すべてを古いバージョンに統一することが必要である。
一方、特許文献3に示す従来のホストコンピュータを用いずにソフトウェアを更新する方法では、必ずソフトウェアのバージョンの確認を行う。そして、ソフトウェアのバージョンがすでに新しいバージョンとなっている場合にはソフトウェア更新が行われないようになっており、ソフトウェアのバージョンが統一されない場合が生じる。例えば、ロボット制御装置Aがバージョン1.00、ロボット制御装置Bがバージョン3.00の場合、バージョン2.00のソフトウェアを用いて更新作業を実施した場合、ロボット制御装置Aはバージョン2.00に更新されるが、ロボット制御装置Bはバージョン3.00のままとなる。この場合、2台のロボット制御装置はバージョンが一致しない状態となり、操作方法や表示画面がバージョンによって異なってしまい、作業者がとまどってしまう。また、新しいバージョンのソフトウェアに不具合があり、安定動作していた古いバージョン1.00にバージョンダウンをしたくても、古いバージョンに戻すことはできない。
また、特許文献3に示すホストコンピュータ無しに行うソフトウェア更新方法では、まず1台のロボット制御装置に対して外部接続インターフェースに外部記憶装置を接続し、人為的にソフトウェアの更新作業を行う必要があり、この作業時間が必要となってしまう。また、ソフトウェアの更新が完了したロボット制御装置が、ネットワーク回線によって接続された他のロボット制御装置に対してソフトウェアを転送する。その後、受信したロボット制御装置が受信完了後に自身のソフトウェアの更新を行い、ソフトウェアの更新後に他のロボット制御装置にソフトウェアの送信を行う。これにより、順次ソフトウェア更新作業が伝播していくものである。従って、何らかの原因で自分自身のソフトウェア更新作業が完了しない場合、例えばソフトウェアを格納するEPROMが書き込み不可となった場合などは、他のロボット制御装置へのソフトウェア送信が行われない。そのため、複数のロボット制御装置を同時に更新することができず、全体のソフトウェア更新作業が完了するまでに時間がかかってしまう。特に、ソフトウェアの更新作業を開始したばかりの最初の数台において何らかの原因でロボット制御装置のソフトウェアの更新作業が完了しない場合には、ソフトウェアの更新作業の伝播開始が極端に遅くなるか、もしくは伝播しない事態となってしまう。
また、ソフトウェアの送受信時間に対してEPROMの書き込み時間の方が長い場合についても、ソフトウェアの送受信が短時間で終了してもEPROMの書き込み時間が長いためにソフトウェア更新作業の伝播が遅くなってしまう。特に、ソフトウェアの更新を開始したばかりの最初の数台においては、ソフトウェア更新作業の伝播開始が極端に遅くなってしまう。ここでEPROMについて一般的な特性を述べると、高速な随時読み出し/書き込みが可能なRAMとは異なり、EPROMは消去・書き込みの回数が限られており、少ないものでは100回から300回程度のものもある。また、消去・書き込みが特定のブロックに集中すると、そのブロックのみ書き込み回数限度を超えて消去・書き込み不可能となる可能性もある。また、一度ブロックごとに消去操作を行ってから書き込み操作を行う必要があり、EPROMの読み出し速度に比べると、消去・書き込み速度ははるかに遅い。
一方、ソフトウェア送受信に使用する通信方式として例えばイーサネット(登録商標)規格上のLANネットワークでは通信速度が1ギガビット/秒の規格も存在し、無線LANにおいても300メガビット/秒の規格も存在する。一般的に、ソフトウェアの送受信時間に対してEPROMの消去・書き込み時間の方がはるかに長い。
特許第3034850号公報
特許第3550210号公報
特開2008−139972号公報
本発明は、ソフトウェアを更新するために外部端末やホストコンピュータが不要で、複数のロボット制御装置を古いバージョンにも統一することができ、現在記憶しているバージョンの確認が不要で、速い速度で更新を行なうことができるロボットシステムおよびロボットシステムのソフトウェア更新方法を提供するものである。
本発明のロボットシステムは、更新用ソフトウェアを送信する送信側ロボット制御装置と、送信側ロボット制御装置から更新用ソフトウェアを受信する受信側ロボット制御装置とを有するロボットシステムであって、送信側ロボット制御装置および受信側ロボット制御装置は、それぞれ、ソフトウェア更新処理用プログラムおよびロボット動作制御ソフトウェアを記憶する第1記憶部と、第1記憶部から読み出されたソフトウェア更新処理用プログラムを記憶する第2記憶部と、更新用ソフトウェアを記憶する第3記憶部と、第3記憶部に記憶された更新用ソフトウェアを送受信する通信部とを備えた構成を有する。
また、本発明のロボット制御装置は、ソフトウェア更新処理用プログラムおよびロボット動作制御ソフトウェアを記憶する第1記憶部と、第1記憶部から読み出されたソフトウェア更新処理用プログラムを記憶する第2記憶部と、更新用ソフトウェアを記憶する第3記憶部と、第3記憶部に記憶された更新用ソフトウェアを送受信する通信部とを備えた構成を有する。
また、本発明のロボットシステムのソフトウェア更新方法は、ソフトウェア更新処理用プログラムおよびロボット動作制御ソフトウェアを記憶する第1記憶部と、第1記憶部から読み出されたソフトウェア更新処理用プログラムを記憶する第2記憶部と、更新用ソフトウェアを記憶する第3記憶部と、第3記憶部に記憶された更新用ソフトウェアを送受信する通信部とを有するロボット制御装置を複数備えたロボットシステムのソフトウェア更新方法であって、複数のロボット制御装置のうち更新用ソフトウェアを送信する送信側ロボット制御装置を決定するステップと、複数のロボット制御装置のうち送信側ロボット制御装置から送信された更新用ソフトウェアを受信する受信側ロボット制御装置を決定するステップと、送信側ロボット制御装置が第3記憶部に記憶された更新用ソフトウェアを通信部を介して受信側ロボット制御装置に送信するステップと、送信側ロボット制御装置が第3記憶部に記憶された更新用ソフトウェアにより第1記憶部に記憶されているソフトウェア更新処理用プログラムおよびロボット動作制御ソフトウェアのうち少なくとも一方を更新するステップと、受信側ロボット制御装置が送信側ロボット制御装置から送信された更新用ソフトウェアを前記通信部を介して受信し第3記憶部に記憶するステップと、更新用ソフトウェアを受信した受信側ロボット制御装置が第3記憶部に記憶された更新用ソフトウェアにより第1記憶部に記憶されているソフトウェア更新処理用プログラムおよびロボット動作制御ソフトウェアのうち少なくとも一方を更新するステップとを備えた構成を有する。
かかる構成により、ソフトウェアを更新するために外部端末やホストコンピュータが不要で、複数のロボット制御装置を古いバージョンにも統一することができ、現在記憶しているバージョンの確認が不要で、速い速度で更新を行なうことができる。しかも、1つの送信側ロボット制御装置から複数の受信側ロボット制御装置に対して、同時にソフトウェアの更新をすることができる。
図1は、本発明の一実施の形態におけるロボットシステムを示す構成図である。
図2は、同実施の形態におけるロボットシステムのロボット制御装置を示す概略構成図である。
図3は、同実施の形態におけるロボット制御装置のEPROM内に記憶されたソフトウェアを示す概略構成図である。
図4は、同実施の形態における送信側ロボット制御装置の動作を示すフロー図である。
図5は、同実施の形態における受信側ロボット制御装置の動作を示すフロー図である。
以下、図面を用いて本発明を実施の形態に基づいて説明する。
(実施の形態)
図1は、本発明の一実施の形態におけるロボットシステムを示す構成図である。図1において、複数のロボット制御装置12A〜12Fは、通信線11により接続されている。通信線11としては一般的には電気信号を伝送する通信ケーブルを用いるが、電気信号を伝送できる仕組みであれば無線通信や光通信でもよい。各ロボット制御装置12A〜12Fは、ロボット13A〜13Fに接続されている。各ロボット制御装置12A〜12Fは、それぞれロボット13A〜13Fの動作を制御する。
図2は、同実施の形態におけるロボットシステムのロボット制御装置を示す概略構成図である。ロボット制御装置21には、ロボット教示用操作盤であるティーチングペンダント22とロボット13(マニピュレータともいうが本実施の形態ではロボットと称す)が接続されている。作業者がティーチングペンダント22を操作することにより、ロボット制御装置21を介してロボット13に動作を教示したり、ロボット制御装置21にデータを保存したりする。ロボット制御装置21は、図1におけるロボット制御装置12A〜12Fに該当し、ロボット13は、図1におけるロボット13A〜13Fに該当する。
ロボット制御装置21には、ロボット制御装置21の全体を制御するCPU(中央演算処理装置)23と、ロボット13を制御するためのロボット動作制御ソフトウェア(以下、単にソフトウェアと記す)が格納される第1記憶部であるEPROM27が設けられている。
EPROM27は、電気的に消去/書き込みが可能であり、不揮発性であり、CPU23による読み出し速度は高速であるが、一般的には消去/書き込み速度は読み出し速度よりはるかに低速である。また、EPROM27に書き込まれているソフトウェアはマルチタスク処理が実装されており、複数の処理を切り換えて実行することができ、見かけ上は並列に処理を実行することが可能である。
第2記憶部であるRAM(Random Access Memory)24は、作業者がティーチングペンダント22を用いて教示したプログラムや設定した設定データを記憶するものである。RAM24は、CPU23による高速な随時読み出し/書き込みが可能である。一般的に、RAM24自体は揮発性であるが、バックアップ電池などにより内容が保持されている。または、RAM24は、バックアップ電池がなくとも不揮発性の素子で構成される。
ロボット駆動部25は、ロボット13を駆動する。ロボット13内にある図示しないモータを駆動するための図示しないモータドライバユニットで構成され、CPU23からの命令により駆動される。
通信部28は、通信線11との通信処理を行う。CPU23からの命令により、他のロボット制御装置21へのデータ送信、あるいは他のロボット制御装置21からのデータ受信を行う。
第3記憶部は、外部記憶媒体を着脱自在に保持する着脱部を有する。すなわち、着脱部である記憶メディアスロット26は、記憶メディア26Bが着脱自在に挿入されて保持される。記憶メディアスロット26に保持された記憶メディア26Bは、CPU23による読み出し/書き込みが可能である。なお、記憶メディア26Bは、例えばSDメモリやコンパクトフラッシュ(登録商標)などの市販のNAND型フラッシュメモリなどである。一般に、EPROM27の書き込み速度に比べてNAND型フラッシュメモリの書き込み速度の方がはるかに速い。
ティーチングペンダント22にも同様に、他の着脱部である記憶メディアスロット22Aが設けられている。記憶メディアスロット22Aには、他の記憶メディア22Bが着脱自在に保持される。作業者がソフトウェアの更新作業時にソフトウェアの書き込まれた他の記憶メディア22Bを挿入する。
次に、EPROM27に格納されるソフトウェアの構成について説明する。図3はEPROM27内に記憶されているソフトウェアの構成を表した図である。図3に示すように、EPROM27にはソフトウェア31が格納されている。なお、ソフトウェア31は、CPU23が解釈してロボット13およびロボット制御装置21全体を機能させるためのプログラム群である。例えば、ロボット13の軌跡演算制御、ロボット13内にあるモータを駆動するためのモータ制御、作業者が操作するためのティーチングペンダント22の表示/キー入力制御、作業者が教示したプログラムや設定データのRAM24への書き込み/読み出し制御、通信部28を経由して行う通信の制御、記憶メディアスロット26を経由して行う記憶メディアへの書き込み/読み出し制御などの、いわゆるロボット動作制御ソフトウェアである。すなわち、ロボット装置全体を動作させるために必要なすべての処理がソフトウェア31としてEPROM27に格納されている。
また、図3に示すように、EPROM27にはソフトウェア更新処理用プログラム30が格納されている。このソフトウェア更新処理用プログラム30は、EPROM27自体の消去/書き込みを行うプログラム群である。
ここで、一般に、CPU23がEPROM27に格納されているソフトウェア更新処理用プログラム30を読み出して解釈しながら、EPROM27自体の消去/書き込みを行うことはできない。そのため、EPROM27の消去/書き込みを行う際には、ソフトウェア更新処理用プログラム30をEPROM27からRAM24に一旦コピーし、CPU23がRAM24にコピーされたソフトウェア更新処理用プログラム30を読み出して解釈しながらEPROM27の消去/書き込みを行う。これにより、EPROM27内のソフトウェアの更新が可能となる。
また、EPROM27内のソフトウェア更新処理用プログラム30も、消去/書き込みを行うことが可能であり、ソフトウェア更新処理用プログラム30自体の更新が可能である。
もちろんCPU23がEPROM27に格納されているソフトウェア更新処理用プログラム30を読み出して解釈しながら、EPROM27自体を消去/書き込みを行うことが可能なEPROM27の場合は、ソフトウェア更新処理用プログラム30をRAM24にコピーする処理は不要となる。しかし、この場合はEPROM27内のソフトウェア更新処理用プログラム30自身を消去/書き込みを行うことはできない。
次に、1つのロボット制御装置である送信側ロボット制御装置から他の複数のロボット制御装置である受信側ロボット制御装置にソフトウェアを送信して受信側ロボット制御装置のソフトウェアを更新する例について説明する。なお、始めに送信側ロボット制御装置の処理フローについて説明し、次に、受信側ロボット制御装置の処理フローについて説明する。
先ず、図4を用いて、送信側ロボット制御装置の動作の処理フローについて説明する。図1に示す複数のロボット制御装置12Aから12Fにおいて、いずれか1台が送信側ロボット制御装置とする。どのロボット制御装置を送信側ロボット制御装置にするかは、ソフトウェアの更新作業を行おうとする作業者が任意に選択すればよい。例えば、作業しやすい場所に設置されているロボット制御装置などを任意に選択すればよい。本実施の形態では、図1に示すロボット制御装置12Aを送信側ロボット制御装置12Aとして選択し、他のロボット制御装置12B〜12Fを受信側ロボット制御装置12B〜12Fとして選択したとして説明する。ただし、送信側ロボット制御装置12Aおよび受信側ロボット制御装置12B〜12Fの内部の構成は、いずれも共通に図2を用いて説明する。
作業者は、更新用のソフトウェアが書き込まれた記憶メディア22Bを、送信側ロボット制御装置12Aに接続されたティーチングペンダント22内の記憶メディアスロット22Aに予め挿入しておく。
次に、作業者は、送信側ロボット制御装置12Aに接続されたティーチングペンダント22を用いて、「ソフトウェア更新開始(送信側)の選択」の操作を行う(ステップS41)。この操作は、ティーチングペンダント22の操作画面上で、「ソフトウェア更新(送信側)」というメニューを選択するといった操作で実現される。あるいは、ティーチングペンダント22に設けられた図示しないキースイッチを「ソフトウェア更新(送信側)」に切り換えるといった操作で実現される。これにより送信側ロボット制御装置12Aが決定される。しかし、送信側ロボット制御装置12A内のCPU23が、「ソフトウェア更新(送信側)」であることが選択されたと解釈できればどのような操作でもよい。
ステップS41においてソフトウェア更新(送信側)が選択されると、CPU23はティーチングペンダント22内の記憶メディアスロット22Aに挿入された記憶メディア22B内の更新用のソフトウェアを、送信側ロボット制御装置12A内の記憶メディアスロット26に予め挿入されている記憶メディア26Bにコピーする(ステップS42)。なお、更新用のソフトウェアが書き込まれた記憶メディア26Bを、送信側ロボット制御装置12Aの記憶メディアスロット26に予め挿入しておけば、記憶メディア22Bから記憶メディア26Bへ更新用のソフトウェアをコピーする手順を省くことができる。
次に、CPU23は、送信側ロボット制御装置12Aから全ての受信側ロボット制御装置12B〜12Fへ更新用のソフトウェアの一斉転送を行う(ステップS43)。CPU23は送信側ロボット制御装置12A内の記憶メディアスロット26に挿入された記憶メディア26Bから更新用のソフトウェアを読み出し、通信部28に対してデータ送信処理を行う。これにより、送信側ロボット制御装置12Aから送信されたデータは、通信線11を介して受信側ロボット制御装置12B〜12Fへ送信される。
なお、データ送信は、マルチタスク処理によって実行される。CPU23はこのマルチタスク処理により、複数の受信側ロボット制御装置12B〜12Fに対して並列してソフトウェア送信することができる。従って、複数の受信側ロボット制御装置12B〜12Fは、送信側ロボット制御装置12Aから送信された更新用のソフトウェアを同時に受信することができる。
具体的には、送信側ロボット制御装置12Aが送信パケットを1つの受信側ロボット制御装置12Bに送信したとき、受信側ロボット制御装置12Bは、受信側ロボット制御装置12B内の記憶メディア26Bに受信したパケットを記憶する。受信側ロボット制御装置12Bが受信側ロボット制御装置12B内の記憶メディア26Bに受信したパケットを記憶している間は、送信側ロボット制御装置12Aは受信側ロボット制御装置12Bに対する送信を待たされている状態となる。そして、この待たされている間に、他の受信側ロボット制御装置12C〜12Fに対してパケットを送信することができる。なお、パケットとは、容量の大きなデータを送受信する際に小さな単位に分割して送受信するパケット通信における、分割したデータのかたまりのことである。分割したデータのかたまりとして送受信することにより、ネットワーク負荷および受信側の負荷を軽減することができる。
このように、マルチタスク処理により送信側ロボット制御装置12Aは無駄な時間が発生することがなく、複数の受信側ロボット制御装置12B〜12Fに対して更新用のソフトウェアの送信を行うことができる。すなわち、効率的にソフトウェア送信を行うことができる。したがって、見かけ上は複数の受信側ロボット制御装置12B〜12Fに対して並列してソフトウェアの送信を行うことができる。
送信側ロボット制御装置12Aから全ての受信側ロボット制御装置12B〜12Fへ更新用のソフトウェアの転送が完了すると、次に、送信側ロボット制御装置12Aは、EPROM27の消去/書き込みを実行するため、EPROM27に格納されているソフトウェア更新処理用プログラム30をRAM24にコピーする(ステップS44)。これは前述したように、一般に、CPU23が、EPROM27に格納されているソフトウェア更新処理用プログラム30を読み出して解釈しながらEPROM27自体を消去/書き込みを行うことはできないためである。
次に、ソフトウェア更新処理を行う(ステップS45)。RAM24上にコピーされたソフトウェア更新処理用プログラム30をCPU23が読み出して解釈し、EPROM27の消去を実行する。その後、送信側ロボット制御装置12A内の記憶メディア26Bにコピーされた更新用のソフトウェアをCPU23が読み出し、EPROM27への書き込みを行う。このように、ソフトウェア更新処理用プログラム30をRAM24に一旦コピーし、RAM24上にコピーされたソフトウェア更新処理用プログラム30をCPU23が読み出して解釈して実行させることにより、EPROM27の消去/書き込みが完了する。
次に、図5を用いて、受信側ロボット制御装置の動作の処理フローについて説明する。図1における複数のロボット制御装置12A〜12Fにおいて、いずれか1台が送信側ロボット制御装置になり、その他のロボット制御装置の全てが受信側ロボット制御装置となる。本実施の形態では、上記したように、送信側ロボット制御装置12Aが送信側として選択されたので、受信側ロボット制御装置12B〜12Fが受信側となる。また、本実施の形態では、送信側ロボット制御装置12A以外の全てを受信側ロボット制御装置12B〜12Fとしたが、送信側ロボット制御装置12A以外の任意のロボット制御装置を受信側としてもよい。
作業者は受信側ロボット制御装置12B〜12Fに接続されたティーチングペンダント22を用いて、「ソフトウェア更新開始(受信側)の選択」の操作を行う(ステップS51)。この操作はティーチングペンダント22の操作画面上で、「ソフトウェア更新(受信側)」というメニューを選択するといった操作で実現される。あるいは、ティーチングペンダント22に設けられた図示しないキースイッチを「ソフトウェア更新(受信側)」に切り換えるといった操作で実現される。しかし、受信側ロボット制御装置12B〜12F内のCPU23が、「ソフトウェア更新(受信側)」が選択されたと解釈できればどのような操作でもよい。あるいは、送信側ロボット制御装置12Aから受信側ロボット制御装置12B〜12Fに対して、通信線11を経由して「ソフトウェア更新(受信側)」になる要求を行い、この要求を受信したロボット制御装置12B〜12Fが受信側ロボット制御装置12B〜12Fになるといった操作でもよい。このような操作により受信側ロボット制御装置12B〜12Fが決定される。
ステップS51において「ソフトウェア更新(受信側)」が選択されると、受信側ロボット制御装置12B〜12Fは、送信側ロボット制御装置12Aから送信されてくる更新用のソフトウェアの受信待ち状態となる。
次に、受信側ロボット制御装置12B〜12F内のCPU23は、送信側ロボット制御装置12Aから送信されてくる更新用のソフトウェアの受信処理を行い、さらに受信側ロボット制御装置12B〜12F内の記憶メディア26Bへ更新用のソフトウェアのコピーを行う(ステップS52)。送信側ロボット制御装置12Aからの最初の送信パケットを、受信側ロボット制御装置12B〜12Fが受信完了すると、受信側ロボット制御装置12B〜12F内の記憶メディア26Bへ最初の送信パケットをコピーする。この記憶メディア26Bへのコピーが完了すると、次の送信パケットが受信可能となる。送信側ロボット制御装置12Aからの全てのパケットの受信が完了し、更新用のソフトウェアの受信が完了すると、ソフトウェア更新処理用プログラム30をRAM24にコピーする(ステップS53)。
次に、ソフトウェア更新処理を行う(ステップS54)。まず、RAM24上にコピーされたソフトウェア更新処理用プログラム30をCPU23が読み出して解釈し、EPROM27の記憶内容の消去を実行する。次に、受信側ロボット制御装置12B〜12F内の記憶メディア26Bにコピーされた更新用のソフトウェアをCPU23が読み出し、EPROM27への書き込みを行う。このように、ソフトウェア更新処理用プログラム30を一旦RAM24に格納してから、RAM24内のソフトウェア更新処理用プログラム30を実行することで、EPROM27のソフトウェアを更新する。
受信側ロボット制御装置12B〜12Fは、更新用のソフトウェアの受信さえ完了すれば自動的にソフトウェア更新処理を開始するので、送信側ロボット制御装置12Aは、受信側ロボット制御装置12B〜12Fへの更新用のソフトウェア送信のみを全ての受信側ロボット制御装置12B〜12Fに対して行えばよい。
一般に、EPROM27への消去・書き込み時間に対して、更新用のソフトウェアの送信にかかる時間はごく短いので、全ての受信側ロボット制御装置12B〜12Fに対する更新用のソフトウェアの送信がほぼ同時に完了する。すなわち、全ての受信側ロボット制御装置12B〜12Fのソフトウェア更新がほぼ同時に完了することになり、短時間ですべてのロボット制御装置12A〜12Fのソフトウェアを更新することができる。
以上のように、本実施の形態によれば、外部端末やホストコンピュータ無しに、かつ、複数のロボット制御装置12A〜12Fのソフトウェアを同時に、短時間で更新することができる。
また、送信側ロボット制御装置12Aと受信側ロボット制御装置12B〜12Fの間で相互にソフトウェアのバージョン確認を行うことがない。したがって、すべてのロボット制御装置12A〜12Fのソフトウェアバージョンを、新しいバージョンであっても古いバージョンであっても、同一のものに統一することが可能である。したがって、作業者の操作性やロボット動作を統一することができる。
また、予めソフトウェアが書き込まれた、取り外し可能かつ不揮発性の記憶メディア26Bを送信側ロボット制御装置12A内の記憶メディアスロット26に挿入し、送信側ロボット制御装置12Aは、記憶メディア26B内の更新用のソフトウェアを、全ての受信側ロボット制御装置12B〜12Fへ同時に転送する。このことにより、従来のように最初の1台のロボット制御装置に外部記憶装置を人為的に接続してソフトウェア更新作業を行う必要がない。すなわち、ソフトウェアが書き込まれた記憶メディア26Bを送信側ロボット制御装置12Aに挿入するのみで、複数の受信側ロボット制御装置12B〜12Fのソフトウェアを同時に更新することができる。
また、受信側ロボット制御装置12B〜12Fは、受信した更新用のソフトウェアを受信側ロボット制御装置12B〜12F内の取り外し可能であり不揮発性の記憶メディア26Bに格納した後に、記憶メディア26Bに格納された更新用のソフトウェアをEPROM27へ書き込む。このことにより、受信した更新用のソフトウェアを、一旦記憶メディア26Bにバッファリングすることができる。したがって、万一、EPROM27への書き込みが何らかの理由で中断しても、再度、記憶メディア26Bから更新作業を行って復旧することができる。また、生産ラインで稼働中のロボット制御装置内のソフトウェアが何らかの理由で破壊された場合でも、再度、記憶メディア26Bから更新作業を行って復旧することができる。
また、送信側ロボット制御装置12A内の取り外し可能であり不揮発性の記憶メディア26Bへの更新用のソフトウェアの書き込みは、送信側ロボット制御装置12Aのティーチングペンダント22内の取り外し可能かつ不揮発性の記憶メディア22Bから、更新用のソフトウェアを転送することにより行なう。例えば、ロボット制御装置が工場内の中2階や、屋根裏空間など、容易にアクセスできない場所に格納されている場合でも、送信側ロボット制御装置12Aに接続されたティーチングペンダント22に更新用のソフトウェアが書き込まれた記憶メディア22Bを挿入し、ティーチングペンダント22から送信側ロボット制御装置12A内の記憶メディア26Bに更新用のソフトウェアを転送することにより、複数の受信側ロボット制御装置12B〜12Fのソフトウェアを同時に更新することが可能となる。
なお、本実施の形態における送信側ロボット制御装置12Aと複数の受信側ロボット制御装置12B〜12Fは、ある所定の領域に配置されているものであり、公衆回線を通じずに接続されている。また、ある所定の領域とは、例えば、1つの工場内や、工場内の1設備ライン等のことである。
本発明は、ロボット制御装置内のソフトウェアの更新を行うために外部端末やホストコンピュータを用いる必要はなく、1つのロボット制御装置により、他の複数のロボット制御装置に対して同時にソフトウェアの更新を行うことができる。したがって、例えば、所定の領域に設置された複数のロボット制御装置のソフトウェアの更新を行うロボットシステムとして有用である。
11 通信線
12A〜12F,21 ロボット制御装置
13,13A〜13F ロボット
22 ティーチングペンダント
22A,26 記憶メディアスロット
22B,26B 記憶メディア
23 CPU
24 RAM
25 ロボット駆動部
27 EPROM
28 通信部
30 ソフトウェア更新処理用プログラム
31 ソフトウェア
本発明は、ロボット制御装置内に記憶するソフトウェアの更新を行なうロボットシステムおよびロボットシステムのソフトウェア更新方法に関するものである。
従来のロボット制御装置のソフトウェア更新方法は、ソフトウェアが書き込まれたPROMを基板上で差し替えることにより行われていた。しかし、昨今は電気的に消去/書き込みが可能なフラッシュメモリなどのEPROM(Erasable Programmable Read Only Memory)の普及に伴い、パソコンなどの外部端末とロボット制御装置を通信ケーブルで接続し、ソフトウェアを外部端末から制御装置に転送し、制御装置内のソフトウェアを書き換える方法が取られる。また、外部端末とロボット制御装置をネットワーク回線で接続し、複数のロボット制御装置に対するソフトウェア更新を1台の外部端末で同時に行うことのできるロボット制御装置が提案されている(例えば、特許文献1参照)。
また、ネットワーク通信機能およびメモリを書き換える機能のシステムプログラムを起動させ、更新もしくは用途変更に伴う新たなシステムプログラムをホストコンピュータから通信ネットワークを介して各々のロボット制御装置に転送する。各ロボット制御装置は、メモリを書き換える機能により、自動的に各々のロボット制御装置のシステムプログラムを、転送された新たなシステムプログラムに書き換えるロボット制御装置も提案されている(例えば、特許文献2参照)。
また、EPROMを備えたロボット制御装置において、複数のロボット制御装置をネットワーク回線で接続し、他のロボット制御装置のEPROMに記憶されたソフトウェアバージョンを確認して、他のロボット制御装置の方が自ロボット制御装置より新規であると確認された場合に、ネットワーク回線を介してソフトウェアを転送する。これにより、ホストコンピュータや外部端末無しにソフトウェア更新を行なう。さらに、ソフトウェアの更新が完了したロボット制御装置が、ネットワーク回線によって接続された他のロボット制御装置に対してソフトウェアを転送し、受信したロボット制御装置が受信完了後に自身のソフトウェア更新を行なう。これを繰り返すことにより、順次ソフトウェア更新作業が伝播していき、複数ロボット制御装置のソフトウェア更新が完了するロボット制御装置が提案されている(例えば、特許文献3参照)。
しかしながら、特許文献1や特許文献2に示す従来のロボット制御装置のソフトウェア更新方法では、ロボット制御装置にソフトウェアを転送するための外部端末やホストコンピュータが必要である。また、これらの外部端末やホストコンピュータとロボット制御装置が同一の通信回線で接続されている必要があり、外部端末を持ち運ぶ必要がある場合や、ホストコンピュータを準備して設置しておく必要がある。また、これらの外部端末やホストコンピュータが故障した場合は、ソフトウェアの更新を実施できない。
また、生産ラインが複数のロボットで構成されている場合、すべてのロボット制御装置のバージョンが同一となっている方が望ましい。もし、ソフトウェアバージョンが異なっていると、操作方法や表示画面がバージョンによって異なってしまい、作業者がとまどってしまう。また、バージョンが異なることによって、ロボットの動作軌跡が異なってしまう場合には、同一の教示プログラムで同一の動作をさせることができず、バージョンごとに動作軌跡、すなわち教示プログラムを教示しなおす必要がある。また、新しいバージョンのソフトウェアに不具合がある場合には、安定動作していた古いバージョンにバージョンダウンするケースもあり、この場合においても、生産ラインを構成する複数のロボット制御装置すべてを古いバージョンに統一することが必要である。
一方、特許文献3に示す従来のホストコンピュータを用いずにソフトウェアを更新する方法では、必ずソフトウェアのバージョンの確認を行う。そして、ソフトウェアのバージョンがすでに新しいバージョンとなっている場合にはソフトウェア更新が行われないようになっており、ソフトウェアのバージョンが統一されない場合が生じる。例えば、ロボット制御装置Aがバージョン1.00、ロボット制御装置Bがバージョン3.00の場合、バージョン2.00のソフトウェアを用いて更新作業を実施した場合、ロボット制御装置Aはバージョン2.00に更新されるが、ロボット制御装置Bはバージョン3.00のままとなる。この場合、2台のロボット制御装置はバージョンが一致しない状態となり、操作方法や表示画面がバージョンによって異なってしまい、作業者がとまどってしまう。また、新しいバージョンのソフトウェアに不具合があり、安定動作していた古いバージョン1.00にバージョンダウンをしたくても、古いバージョンに戻すことはできない。
また、特許文献3に示すホストコンピュータ無しに行うソフトウェア更新方法では、まず1台のロボット制御装置に対して外部接続インターフェースに外部記憶装置を接続し、人為的にソフトウェアの更新作業を行う必要があり、この作業時間が必要となってしまう。また、ソフトウェアの更新が完了したロボット制御装置が、ネットワーク回線によって接続された他のロボット制御装置に対してソフトウェアを転送する。その後、受信したロボット制御装置が受信完了後に自身のソフトウェアの更新を行い、ソフトウェアの更新後に他のロボット制御装置にソフトウェアの送信を行う。これにより、順次ソフトウェア更新作業が伝播していくものである。従って、何らかの原因で自分自身のソフトウェア更新作業が完了しない場合、例えばソフトウェアを格納するEPROMが書き込み不可となった場合などは、他のロボット制御装置へのソフトウェア送信が行われない。そのため、複数のロボット制御装置を同時に更新することができず、全体のソフトウェア更新作業が完了するまでに時間がかかってしまう。特に、ソフトウェアの更新作業を開始したばかりの最初の数台において何らかの原因でロボット制御装置のソフトウェアの更新作業が完了しない場合には、ソフトウェアの更新作業の伝播開始が極端に遅くなるか、もしくは伝播しない事態となってしまう。
また、ソフトウェアの送受信時間に対してEPROMの書き込み時間の方が長い場合についても、ソフトウェアの送受信が短時間で終了してもEPROMの書き込み時間が長いためにソフトウェア更新作業の伝播が遅くなってしまう。特に、ソフトウェアの更新を開始したばかりの最初の数台においては、ソフトウェア更新作業の伝播開始が極端に遅くなってしまう。ここでEPROMについて一般的な特性を述べると、高速な随時読み出し/書き込みが可能なRAMとは異なり、EPROMは消去・書き込みの回数が限られており、少ないものでは100回から300回程度のものもある。また、消去・書き込みが特定のブロックに集中すると、そのブロックのみ書き込み回数限度を超えて消去・書き込み不可能となる可能性もある。また、一度ブロックごとに消去操作を行ってから書き込み操作を行う必要があり、EPROMの読み出し速度に比べると、消去・書き込み速度ははるかに遅い。
一方、ソフトウェア送受信に使用する通信方式として例えばイーサネット(登録商標)規格上のLANネットワークでは通信速度が1ギガビット/秒の規格も存在し、無線LANにおいても300メガビット/秒の規格も存在する。一般的に、ソフトウェアの送受信時間に対してEPROMの消去・書き込み時間の方がはるかに長い。
特許第3034850号公報
特許第3550210号公報
特開2008−139972号公報
本発明は、ソフトウェアを更新するために外部端末やホストコンピュータが不要で、複数のロボット制御装置を古いバージョンにも統一することができ、現在記憶しているバージョンの確認が不要で、速い速度で更新を行なうことができるロボットシステムおよびロボットシステムのソフトウェア更新方法を提供するものである。
本発明のロボットシステムは、更新用ソフトウェアを送信する送信側ロボット制御装置と、送信側ロボット制御装置から更新用ソフトウェアを受信する受信側ロボット制御装置とを有するロボットシステムであって、送信側ロボット制御装置および受信側ロボット制御装置は、それぞれ、ソフトウェア更新処理用プログラムおよびロボット動作制御ソフトウェアを記憶する第1記憶部と、第1記憶部から読み出されたソフトウェア更新処理用プログラムを記憶する第2記憶部と、更新用ソフトウェアを記憶する第3記憶部と、第3記憶部に記憶された更新用ソフトウェアを送受信する通信部とを備えた構成を有する。
また、本発明のロボット制御装置は、ソフトウェア更新処理用プログラムおよびロボット動作制御ソフトウェアを記憶する第1記憶部と、第1記憶部から読み出されたソフトウェア更新処理用プログラムを記憶する第2記憶部と、更新用ソフトウェアを記憶する第3記憶部と、第3記憶部に記憶された更新用ソフトウェアを送受信する通信部とを備えた構成を有する。
また、本発明のロボットシステムのソフトウェア更新方法は、ソフトウェア更新処理用プログラムおよびロボット動作制御ソフトウェアを記憶する第1記憶部と、第1記憶部から読み出されたソフトウェア更新処理用プログラムを記憶する第2記憶部と、更新用ソフトウェアを記憶する第3記憶部と、第3記憶部に記憶された更新用ソフトウェアを送受信する通信部とを有するロボット制御装置を複数備えたロボットシステムのソフトウェア更新方法であって、複数のロボット制御装置のうち更新用ソフトウェアを送信する送信側ロボット制御装置を決定するステップと、複数のロボット制御装置のうち送信側ロボット制御装置から送信された更新用ソフトウェアを受信する受信側ロボット制御装置を決定するステップと、送信側ロボット制御装置が第3記憶部に記憶された更新用ソフトウェアを通信部を介して受信側ロボット制御装置に送信するステップと、送信側ロボット制御装置が第3記憶部に記憶された更新用ソフトウェアにより第1記憶部に記憶されているソフトウェア更新処理用プログラムおよびロボット動作制御ソフトウェアのうち少なくとも一方を更新するステップと、受信側ロボット制御装置が送信側ロボット制御装置から送信された更新用ソフトウェアを前記通信部を介して受信し第3記憶部に記憶するステップと、更新用ソフトウェアを受信した受信側ロボット制御装置が第3記憶部に記憶された更新用ソフトウェアにより第1記憶部に記憶されているソフトウェア更新処理用プログラムおよびロボット動作制御ソフトウェアのうち少なくとも一方を更新するステップとを備えた構成を有する。
かかる構成により、ソフトウェアを更新するために外部端末やホストコンピュータが不要で、複数のロボット制御装置を古いバージョンにも統一することができ、現在記憶しているバージョンの確認が不要で、速い速度で更新を行なうことができる。しかも、1つの送信側ロボット制御装置から複数の受信側ロボット制御装置に対して、同時にソフトウェアの更新をすることができる。
本発明の一実施の形態におけるロボットシステムを示す構成図
同実施の形態におけるロボットシステムのロボット制御装置を示す概略構成図
同実施の形態におけるロボット制御装置のEPROM内に記憶されたソフトウェアを示す概略構成図
同実施の形態における送信側ロボット制御装置の動作を示すフロー図
同実施の形態における受信側ロボット制御装置の動作を示すフロー図
以下、図面を用いて本発明を実施の形態に基づいて説明する。
(実施の形態)
図1は、本発明の一実施の形態におけるロボットシステムを示す構成図である。図1において、複数のロボット制御装置12A〜12Fは、通信線11により接続されている。通信線11としては一般的には電気信号を伝送する通信ケーブルを用いるが、電気信号を伝送できる仕組みであれば無線通信や光通信でもよい。各ロボット制御装置12A〜12Fは、ロボット13A〜13Fに接続されている。各ロボット制御装置12A〜12Fは、それぞれロボット13A〜13Fの動作を制御する。
図2は、同実施の形態におけるロボットシステムのロボット制御装置を示す概略構成図である。ロボット制御装置21には、ロボット教示用操作盤であるティーチングペンダント22とロボット13(マニピュレータともいうが本実施の形態ではロボットと称す)が接続されている。作業者がティーチングペンダント22を操作することにより、ロボット制御装置21を介してロボット13に動作を教示したり、ロボット制御装置21にデータを保存したりする。ロボット制御装置21は、図1におけるロボット制御装置12A〜12Fに該当し、ロボット13は、図1におけるロボット13A〜13Fに該当する。
ロボット制御装置21には、ロボット制御装置21の全体を制御するCPU(中央演算処理装置)23と、ロボット13を制御するためのロボット動作制御ソフトウェア(以下、単にソフトウェアと記す)が格納される第1記憶部であるEPROM27が設けられている。
EPROM27は、電気的に消去/書き込みが可能であり、不揮発性であり、CPU23による読み出し速度は高速であるが、一般的には消去/書き込み速度は読み出し速度よりはるかに低速である。また、EPROM27に書き込まれているソフトウェアはマルチタスク処理が実装されており、複数の処理を切り換えて実行することができ、見かけ上は並列に処理を実行することが可能である。
第2記憶部であるRAM(Random Access Memory)24は、作業者がティーチングペンダント22を用いて教示したプログラムや設定した設定データを記憶するものである。RAM24は、CPU23による高速な随時読み出し/書き込みが可能である。一般的に、RAM24自体は揮発性であるが、バックアップ電池などにより内容が保持されている。または、RAM24は、バックアップ電池がなくとも不揮発性の素子で構成される。
ロボット駆動部25は、ロボット13を駆動する。ロボット13内にある図示しないモータを駆動するための図示しないモータドライバユニットで構成され、CPU23からの命令により駆動される。
通信部28は、通信線11との通信処理を行う。CPU23からの命令により、他のロボット制御装置21へのデータ送信、あるいは他のロボット制御装置21からのデータ受信を行う。
第3記憶部は、外部記憶媒体を着脱自在に保持する着脱部を有する。すなわち、着脱部である記憶メディアスロット26は、記憶メディア26Bが着脱自在に挿入されて保持される。記憶メディアスロット26に保持された記憶メディア26Bは、CPU23による読み出し/書き込みが可能である。なお、記憶メディア26Bは、例えばSDメモリやコンパクトフラッシュ(登録商標)などの市販のNAND型フラッシュメモリなどである。一般に、EPROM27の書き込み速度に比べてNAND型フラッシュメモリの書き込み速度の方がはるかに速い。
ティーチングペンダント22にも同様に、他の着脱部である記憶メディアスロット22Aが設けられている。記憶メディアスロット22Aには、他の記憶メディア22Bが着脱自在に保持される。作業者がソフトウェアの更新作業時にソフトウェアの書き込まれた他の記憶メディア22Bを挿入する。
次に、EPROM27に格納されるソフトウェアの構成について説明する。図3はEPROM27内に記憶されているソフトウェアの構成を表した図である。図3に示すように、EPROM27にはソフトウェア31が格納されている。なお、ソフトウェア31は、CPU23が解釈してロボット13およびロボット制御装置21全体を機能させるためのプログラム群である。例えば、ロボット13の軌跡演算制御、ロボット13内にあるモータを駆動するためのモータ制御、作業者が操作するためのティーチングペンダント22の表示/キー入力制御、作業者が教示したプログラムや設定データのRAM24への書き込み/読み出し制御、通信部28を経由して行う通信の制御、記憶メディアスロット26を経由して行う記憶メディアへの書き込み/読み出し制御などの、いわゆるロボット動作制御ソフトウェアである。すなわち、ロボット装置全体を動作させるために必要なすべての処理がソフトウェア31としてEPROM27に格納されている。
また、図3に示すように、EPROM27にはソフトウェア更新処理用プログラム30が格納されている。このソフトウェア更新処理用プログラム30は、EPROM27自体の消去/書き込みを行うプログラム群である。
ここで、一般に、CPU23がEPROM27に格納されているソフトウェア更新処理用プログラム30を読み出して解釈しながら、EPROM27自体の消去/書き込みを行うことはできない。そのため、EPROM27の消去/書き込みを行う際には、ソフトウェア更新処理用プログラム30をEPROM27からRAM24に一旦コピーし、CPU23がRAM24にコピーされたソフトウェア更新処理用プログラム30を読み出して解釈しながらEPROM27の消去/書き込みを行う。これにより、EPROM27内のソフトウェアの更新が可能となる。
また、EPROM27内のソフトウェア更新処理用プログラム30も、消去/書き込みを行うことが可能であり、ソフトウェア更新処理用プログラム30自体の更新が可能である。
もちろんCPU23がEPROM27に格納されているソフトウェア更新処理用プログラム30を読み出して解釈しながら、EPROM27自体を消去/書き込みを行うことが可能なEPROM27の場合は、ソフトウェア更新処理用プログラム30をRAM24にコピーする処理は不要となる。しかし、この場合はEPROM27内のソフトウェア更新処理用プログラム30自身を消去/書き込みを行うことはできない。
次に、1つのロボット制御装置である送信側ロボット制御装置から他の複数のロボット制御装置である受信側ロボット制御装置にソフトウェアを送信して受信側ロボット制御装置のソフトウェアを更新する例について説明する。なお、始めに送信側ロボット制御装置の処理フローについて説明し、次に、受信側ロボット制御装置の処理フローについて説明する。
先ず、図4を用いて、送信側ロボット制御装置の動作の処理フローについて説明する。図1に示す複数のロボット制御装置12Aから12Fにおいて、いずれか1台が送信側ロボット制御装置とする。どのロボット制御装置を送信側ロボット制御装置にするかは、ソフトウェアの更新作業を行おうとする作業者が任意に選択すればよい。例えば、作業しやすい場所に設置されているロボット制御装置などを任意に選択すればよい。本実施の形態では、図1に示すロボット制御装置12Aを送信側ロボット制御装置12Aとして選択し、他のロボット制御装置12B〜12Fを受信側ロボット制御装置12B〜12Fとして選択したとして説明する。ただし、送信側ロボット制御装置12Aおよび受信側ロボット制御装置12B〜12Fの内部の構成は、いずれも共通に図2を用いて説明する。
作業者は、更新用のソフトウェアが書き込まれた記憶メディア22Bを、送信側ロボット制御装置12Aに接続されたティーチングペンダント22内の記憶メディアスロット22Aに予め挿入しておく。
次に、作業者は、送信側ロボット制御装置12Aに接続されたティーチングペンダント22を用いて、「ソフトウェア更新開始(送信側)の選択」の操作を行う(ステップS41)。この操作は、ティーチングペンダント22の操作画面上で、「ソフトウェア更新(送信側)」というメニューを選択するといった操作で実現される。あるいは、ティーチングペンダント22に設けられた図示しないキースイッチを「ソフトウェア更新(送信側)」に切り換えるといった操作で実現される。これにより送信側ロボット制御装置12Aが決定される。しかし、送信側ロボット制御装置12A内のCPU23が、「ソフトウェア更新(送信側)」であることが選択されたと解釈できればどのような操作でもよい。
ステップS41においてソフトウェア更新(送信側)が選択されると、CPU23はティーチングペンダント22内の記憶メディアスロット22Aに挿入された記憶メディア22B内の更新用のソフトウェアを、送信側ロボット制御装置12A内の記憶メディアスロット26に予め挿入されている記憶メディア26Bにコピーする(ステップS42)。なお、更新用のソフトウェアが書き込まれた記憶メディア26Bを、送信側ロボット制御装置12Aの記憶メディアスロット26に予め挿入しておけば、記憶メディア22Bから記憶メディア26Bへ更新用のソフトウェアをコピーする手順を省くことができる。
次に、CPU23は、送信側ロボット制御装置12Aから全ての受信側ロボット制御装置12B〜12Fへ更新用のソフトウェアの一斉転送を行う(ステップS43)。CPU23は送信側ロボット制御装置12A内の記憶メディアスロット26に挿入された記憶メディア26Bから更新用のソフトウェアを読み出し、通信部28に対してデータ送信処理を行う。これにより、送信側ロボット制御装置12Aから送信されたデータは、通信線11を介して受信側ロボット制御装置12B〜12Fへ送信される。
なお、データ送信は、マルチタスク処理によって実行される。CPU23はこのマルチタスク処理により、複数の受信側ロボット制御装置12B〜12Fに対して並列してソフトウェア送信することができる。従って、複数の受信側ロボット制御装置12B〜12Fは、送信側ロボット制御装置12Aから送信された更新用のソフトウェアを同時に受信することができる。
具体的には、送信側ロボット制御装置12Aが送信パケットを1つの受信側ロボット制御装置12Bに送信したとき、受信側ロボット制御装置12Bは、受信側ロボット制御装置12B内の記憶メディア26Bに受信したパケットを記憶する。受信側ロボット制御装置12Bが受信側ロボット制御装置12B内の記憶メディア26Bに受信したパケットを記憶している間は、送信側ロボット制御装置12Aは受信側ロボット制御装置12Bに対する送信を待たされている状態となる。そして、この待たされている間に、他の受信側ロボット制御装置12C〜12Fに対してパケットを送信することができる。なお、パケットとは、容量の大きなデータを送受信する際に小さな単位に分割して送受信するパケット通信における、分割したデータのかたまりのことである。分割したデータのかたまりとして送受信することにより、ネットワーク負荷および受信側の負荷を軽減することができる。
このように、マルチタスク処理により送信側ロボット制御装置12Aは無駄な時間が発生することがなく、複数の受信側ロボット制御装置12B〜12Fに対して更新用のソフトウェアの送信を行うことができる。すなわち、効率的にソフトウェア送信を行うことができる。したがって、見かけ上は複数の受信側ロボット制御装置12B〜12Fに対して並列してソフトウェアの送信を行うことができる。
送信側ロボット制御装置12Aから全ての受信側ロボット制御装置12B〜12Fへ更新用のソフトウェアの転送が完了すると、次に、送信側ロボット制御装置12Aは、EPROM27の消去/書き込みを実行するため、EPROM27に格納されているソフトウェア更新処理用プログラム30をRAM24にコピーする(ステップS44)。これは前述したように、一般に、CPU23が、EPROM27に格納されているソフトウェア更新処理用プログラム30を読み出して解釈しながらEPROM27自体を消去/書き込みを行うことはできないためである。
次に、ソフトウェア更新処理を行う(ステップS45)。RAM24上にコピーされたソフトウェア更新処理用プログラム30をCPU23が読み出して解釈し、EPROM27の消去を実行する。その後、送信側ロボット制御装置12A内の記憶メディア26Bにコピーされた更新用のソフトウェアをCPU23が読み出し、EPROM27への書き込みを行う。このように、ソフトウェア更新処理用プログラム30をRAM24に一旦コピーし、RAM24上にコピーされたソフトウェア更新処理用プログラム30をCPU23が読み出して解釈して実行させることにより、EPROM27の消去/書き込みが完了する。
次に、図5を用いて、受信側ロボット制御装置の動作の処理フローについて説明する。図1における複数のロボット制御装置12A〜12Fにおいて、いずれか1台が送信側ロボット制御装置になり、その他のロボット制御装置の全てが受信側ロボット制御装置となる。本実施の形態では、上記したように、送信側ロボット制御装置12Aが送信側として選択されたので、受信側ロボット制御装置12B〜12Fが受信側となる。また、本実施の形態では、送信側ロボット制御装置12A以外の全てを受信側ロボット制御装置12B〜12Fとしたが、送信側ロボット制御装置12A以外の任意のロボット制御装置を受信側としてもよい。
作業者は受信側ロボット制御装置12B〜12Fに接続されたティーチングペンダント22を用いて、「ソフトウェア更新開始(受信側)の選択」の操作を行う(ステップS51)。この操作はティーチングペンダント22の操作画面上で、「ソフトウェア更新(受信側)」というメニューを選択するといった操作で実現される。あるいは、ティーチングペンダント22に設けられた図示しないキースイッチを「ソフトウェア更新(受信側)」に切り換えるといった操作で実現される。しかし、受信側ロボット制御装置12B〜12F内のCPU23が、「ソフトウェア更新(受信側)」が選択されたと解釈できればどのような操作でもよい。あるいは、送信側ロボット制御装置12Aから受信側ロボット制御装置12B〜12Fに対して、通信線11を経由して「ソフトウェア更新(受信側)」になる要求を行い、この要求を受信したロボット制御装置12B〜12Fが受信側ロボット制御装置12B〜12Fになるといった操作でもよい。このような操作により受信側ロボット制御装置12B〜12Fが決定される。
ステップS51において「ソフトウェア更新(受信側)」が選択されると、受信側ロボット制御装置12B〜12Fは、送信側ロボット制御装置12Aから送信されてくる更新用のソフトウェアの受信待ち状態となる。
次に、受信側ロボット制御装置12B〜12F内のCPU23は、送信側ロボット制御装置12Aから送信されてくる更新用のソフトウェアの受信処理を行い、さらに受信側ロボット制御装置12B〜12F内の記憶メディア26Bへ更新用のソフトウェアのコピーを行う(ステップS52)。送信側ロボット制御装置12Aからの最初の送信パケットを、受信側ロボット制御装置12B〜12Fが受信完了すると、受信側ロボット制御装置12B〜12F内の記憶メディア26Bへ最初の送信パケットをコピーする。この記憶メディア26Bへのコピーが完了すると、次の送信パケットが受信可能となる。送信側ロボット制御装置12Aからの全てのパケットの受信が完了し、更新用のソフトウェアの受信が完了すると、ソフトウェア更新処理用プログラム30をRAM24にコピーする(ステップS53)。
次に、ソフトウェア更新処理を行う(ステップS54)。まず、RAM24上にコピーされたソフトウェア更新処理用プログラム30をCPU23が読み出して解釈し、EPROM27の記憶内容の消去を実行する。次に、受信側ロボット制御装置12B〜12F内の記憶メディア26Bにコピーされた更新用のソフトウェアをCPU23が読み出し、EPROM27への書き込みを行う。このように、ソフトウェア更新処理用プログラム30を一旦RAM24に格納してから、RAM24内のソフトウェア更新処理用プログラム30を実行することで、EPROM27のソフトウェアを更新する。
受信側ロボット制御装置12B〜12Fは、更新用のソフトウェアの受信さえ完了すれば自動的にソフトウェア更新処理を開始するので、送信側ロボット制御装置12Aは、受信側ロボット制御装置12B〜12Fへの更新用のソフトウェア送信のみを全ての受信側ロボット制御装置12B〜12Fに対して行えばよい。
一般に、EPROM27への消去・書き込み時間に対して、更新用のソフトウェアの送信にかかる時間はごく短いので、全ての受信側ロボット制御装置12B〜12Fに対する更新用のソフトウェアの送信がほぼ同時に完了する。すなわち、全ての受信側ロボット制御装置12B〜12Fのソフトウェア更新がほぼ同時に完了することになり、短時間ですべてのロボット制御装置12A〜12Fのソフトウェアを更新することができる。
以上のように、本実施の形態によれば、外部端末やホストコンピュータ無しに、かつ、複数のロボット制御装置12A〜12Fのソフトウェアを同時に、短時間で更新することができる。
また、送信側ロボット制御装置12Aと受信側ロボット制御装置12B〜12Fの間で相互にソフトウェアのバージョン確認を行うことがない。したがって、すべてのロボット制御装置12A〜12Fのソフトウェアバージョンを、新しいバージョンであっても古いバージョンであっても、同一のものに統一することが可能である。したがって、作業者の操作性やロボット動作を統一することができる。
また、予めソフトウェアが書き込まれた、取り外し可能かつ不揮発性の記憶メディア26Bを送信側ロボット制御装置12A内の記憶メディアスロット26に挿入し、送信側ロボット制御装置12Aは、記憶メディア26B内の更新用のソフトウェアを、全ての受信側ロボット制御装置12B〜12Fへ同時に転送する。このことにより、従来のように最初の1台のロボット制御装置に外部記憶装置を人為的に接続してソフトウェア更新作業を行う必要がない。すなわち、ソフトウェアが書き込まれた記憶メディア26Bを送信側ロボット制御装置12Aに挿入するのみで、複数の受信側ロボット制御装置12B〜12Fのソフトウェアを同時に更新することができる。
また、受信側ロボット制御装置12B〜12Fは、受信した更新用のソフトウェアを受信側ロボット制御装置12B〜12F内の取り外し可能であり不揮発性の記憶メディア26Bに格納した後に、記憶メディア26Bに格納された更新用のソフトウェアをEPROM27へ書き込む。このことにより、受信した更新用のソフトウェアを、一旦記憶メディア26Bにバッファリングすることができる。したがって、万一、EPROM27への書き込みが何らかの理由で中断しても、再度、記憶メディア26Bから更新作業を行って復旧することができる。また、生産ラインで稼働中のロボット制御装置内のソフトウェアが何らかの理由で破壊された場合でも、再度、記憶メディア26Bから更新作業を行って復旧することができる。
また、送信側ロボット制御装置12A内の取り外し可能であり不揮発性の記憶メディア26Bへの更新用のソフトウェアの書き込みは、送信側ロボット制御装置12Aのティーチングペンダント22内の取り外し可能かつ不揮発性の記憶メディア22Bから、更新用のソフトウェアを転送することにより行なう。例えば、ロボット制御装置が工場内の中2階や、屋根裏空間など、容易にアクセスできない場所に格納されている場合でも、送信側ロボット制御装置12Aに接続されたティーチングペンダント22に更新用のソフトウェアが書き込まれた記憶メディア22Bを挿入し、ティーチングペンダント22から送信側ロボット制御装置12A内の記憶メディア26Bに更新用のソフトウェアを転送することにより、複数の受信側ロボット制御装置12B〜12Fのソフトウェアを同時に更新することが可能となる。
なお、本実施の形態における送信側ロボット制御装置12Aと複数の受信側ロボット制御装置12B〜12Fは、ある所定の領域に配置されているものであり、公衆回線を通じずに接続されている。また、ある所定の領域とは、例えば、1つの工場内や、工場内の1設備ライン等のことである。
本発明は、ロボット制御装置内のソフトウェアの更新を行うために外部端末やホストコンピュータを用いる必要はなく、1つのロボット制御装置により、他の複数のロボット制御装置に対して同時にソフトウェアの更新を行うことができる。したがって、例えば、所定の領域に設置された複数のロボット制御装置のソフトウェアの更新を行うロボットシステムとして有用である。
11 通信線
12A〜12F,21 ロボット制御装置
13,13A〜13F ロボット
22 ティーチングペンダント
22A,26 記憶メディアスロット
22B,26B 記憶メディア
23 CPU
24 RAM
25 ロボット駆動部
27 EPROM
28 通信部
30 ソフトウェア更新処理用プログラム
31 ソフトウェア