(57)【要約】【課題】画面の更新が必要なときに制御装置とティーチペンダント間の通信を行うだけでよく、制御装置側でＧＵＩの主要な処理を行わせることより、ティーチペンダントのリソースを少なくでき、コスト低減が可能であり、ティーチペンダントの消費電力を低減することができるロボット制御システムを提供する。【解決手段】コントローラ２０ＡのＣＰＵ２１は教示データに基づいてＧＵＩ画面データを作成するとともに該ＧＵＩ画面データに更新された部分があるとき、更新された部分を差分画面データとして作成し、差分画面データを有線ＬＡＮを介してティーチペンダント１０に出力する。ティーチペンダント１０のＣＰＵ１１は差分画面データに基づいてＧＵＩ画面データを更新し、更新したＧＵＩ画面データに基づいて液晶ディスプレイ１７の表示画面にＧＵＩ画面を表示する。【選択図】図１
2008080475.tif 000002
【特許請求の範囲】
【請求項１】
教示データを出力する可搬式操作部と、該可搬式操作部とネットワーク手段、又は非有線通信手段を介して前記教示データを送受信するロボット制御用のコントローラを備えたロボット制御システムにおいて、
前記コントローラは、前記教示データを入力データとして、該入力データに基づいてＧＵＩ画面データを作成するＧＵＩ画面データ作成手段と、前記ＧＵＩ画面データに更新された部分があるとき、更新された部分を差分画面データとして作成する差分画面データ生成手段と、前記差分画面データを前記ネットワーク手段、又は非有線通信手段を介して前記可搬式操作部に出力する第１出力手段を備え、
前記可搬式操作部は、前記コントローラから入力された前記差分画面データに基づいてＧＵＩ画面データを更新する更新手段と、更新されたＧＵＩ画面データに基づいて表示画面にＧＵＩ画面を表示する表示手段とを備えたことを特徴とするロボット制御システム。
【請求項２】
前記可搬式操作部は、教示データを入力するためのキー操作手段と、該キー操作手段により入力された教示データを前記ネットワーク手段、又は非有線通信手段を介してコントローラに出力する第２出力手段を備え、
前記コントローラの前記ＧＵＩ画面データ作成手段は、前記可搬式操作部から入力された前記教示データを、前記入力データとして受け入れて、前記ＧＵＩ画面データを作成することを特徴とする請求項１に記載のロボット制御システム。
【請求項３】
前記コントローラは、前記差分画面データを圧縮する圧縮手段を備え、前記第１出力手段は該圧縮手段にて圧縮されたデータを前記可搬式操作部に出力し、
前記可搬式操作部の更新手段は、前記圧縮されたデータを展開する展開手段を含むとともに該展開手段にて展開された差分画面データに基づいてＧＵＩ画面データを更新することを特徴とする請求項１又は請求項２に記載のロボット制御システム。
【請求項４】
前記ＧＵＩ画面データ作成手段と前記差分画面データ生成手段は、接続状態の可搬式操作部との通信が通信エラーにより遮断された際には、遮断された位置からＧＵＩ画面データと、差分画面データをそれぞれ作成するレジューム機能を有することを特徴とする請求項１乃至請求項３のいずれか１項に記載のロボット制御システム。
【請求項５】
前記ＧＵＩ画面データ作成手段と前記差分画面データ生成手段は、接続状態の可搬式操作部との通信が通信エラーにより遮断され、該遮断されたときから所定時間内に前記遮断された可搬式操作部との通信が再開したときは、前記レジューム機能により遮断された位置からＧＵＩ画面データと、差分画面データをそれぞれ作成することを特徴とする請求項４に記載のロボット制御システム。
【請求項６】
前記ＧＵＩ画面データ作成手段と前記差分画面データ生成手段は、接続状態の可搬式操作部との通信が通信エラーにより遮断され、該遮断されたときから所定時間内に前記遮断された可搬式操作部との通信が再開されないときは、データ作成及びデータ生成をそれぞれリセットすることを特徴とする請求項５に記載のロボット制御システム。
【請求項７】
前記コントローラは、遮断後に通信要求のあった可搬式操作部が、遮断された可搬式操作部か否かを判定する判定手段を備え、
該判定手段が、通信要求のあった可搬式操作部が前記遮断された可搬式操作部と判定した際には、前記ＧＵＩ画面データ作成手段と前記差分画面データ生成手段は、前記遮断された位置からＧＵＩ画面データと、差分画面データをそれぞれ作成することを特徴とする請求項４に記載のロボット制御システム。
【請求項８】
前記ＧＵＩ画面データ作成手段と前記差分画面データ生成手段は、前記遮断された可搬式操作部によりレジューム指示があったときは、前記遮断された位置からＧＵＩ画面データと、差分画面データをそれぞれ作成し、前記遮断された可搬式操作部からリセット指示があったときは、データ作成及びデータ生成をそれぞれリセットすることを特徴とする請求項４に記載のロボット制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ティーチペンダントとロボット制御装置（以下、制御装置という）をネットワークや非有線通信手段で接続するロボット制御システムに関する。
【背景技術】
【０００２】
従来、人間がロボットに動作を教示する手段として、ティーチペンダントを用いることが行われている。ティーチペンダントは、人間がロボットを操作したり、各種設定や操作を行うためのボタン等の入力機器を備えるとともに人間がロボット操作を行うために必要な情報をグラフィカルに表示するＧＵＩ（Graphical User Interface）画面を表示するためのディスプレイを備える。これらによりティーチペンダントは、ロボット操作のためのヒューマン・マシン・インターフェイスを実現している。従来は、ティーチペンダントは操作者が手で持って持ち運び、操作する場所を自由に変えられるようにするため、制御装置との間を取回し可能なケーブルにより接続している。
【０００３】
ここで、ロボット制御する際に必要な機能を、制御装置とティーチペンダントにそれぞれに分担させることには、下記のような利点がある。すなわち、全ての入出力演算処理は前記制御装置により行われているため、ティーチペンダントは該制御装置の処理結果を表示する表示機として、又、制御装置を操作するための入力機器として特化することで、該ティーチペンダントを確実に安価な構成で実現することができる。又、前記制御装置によって、全ての演算処理・データ管理が一括して処理されることにより、該制御装置側で複雑かつ膨大な画面機能の一元管理が実現できるため、画面制御に関してエラーが生じにくい利点がある。又、ティーチペンダント側では演算や情報処理の機能を持たせる必要が無く、該ティーチペンダントの軽量化、簡略化、及び低コスト化ができる。
【０００４】
ところで、近年ではネットワーク技術や無線技術が発達し、またＵＳＢ（Universal Serial Bus）やＩＥＥＥ１３９４（Institute of Electrical and Electronic Engineers 1394 ）等に見られるように、電源が入った状態でケーブルの挿抜や接続できる電気的通信手段が確立してきている。このような技術状況において、１台のティーチペンダントを、ロボットが稼働状態の複数台の制御装置につなぎ換えて使用すること、例えばネットワーク化することが考えられる。ネットワーク化した場合の利点には例えばティーチペンダントの数を減らすことによる省スペース化や、ティーチペンダントの数を減らすことによるコスト削減がある。又、無線化した場合には、ネットワーク化した際の利点以外にさらに、ティーチペンダントが長いケーブルのため取り回しが困難で作業性が悪化するという問題が解消されてケーブルレスによる作業性の向上するとともに、断線がなくなるため信頼性向上するという利点がある。
【０００５】
なお、特許文献１はネットワーク上で接続されたホストコンピュータとクライアントコンピュータを用いた分散コンピューティングに関して、ホストコンピュータ上で動作するリモートオブジェクトを、クライアントコンピュータ上でローカルオブジェクトであるかのように操作することが実現されている。
【特許文献１】特開２００２−４１３０９号公報（段落００２５）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、ネットワーク化や、無線技術でティーチペンダントと制御装置とを接続する場合、ティーチペンダントを接続する制御装置を切替えることができるため、接続した制御装置の情報を間違うことなくティーチペンダントのディスプレイに表示し、ティーチペンダントの操作情報を制御装置に対して間違うことなく伝える必要がある。又、制御装置とティーチペンダントをネットワーク上で接続するためには、ティーチペンダントをネットワーク上で１つの独立した機器として成立させなければいけない。従来のティーチペンダントは制御装置の画面やキーボードとしての役割しか持っておらず、簡単にはネットワーク化できない。また制御装置とティーチペンダントとの接続をネットワーク化した場合、次のような課題を解決する必要がある。
【０００７】
制御装置が保有する各種センサーやロボットの状態などの情報を、ネットワーク上で独立したノードであるティーチペンダント上に正しく表示するためには、制御装置とティーチペンダントとが頻繁にネットワーク通信を行うことにより、情報の完全な同期化を行う必要がある。又、従来技術の延長上でティーチペンダントをネットワーク化することは、ネットワーク上におけるデータ転送量を著しく増大化させるため、通信に必要な処理を行うための制御装置とティーチペンダントのリソースや、通信ネットワークの転送容量に対する要求が増大し、コスト増につながる。ティーチペンダントのディスプレイに表示する情報を視覚化する方法として、ティーチペンダントのリソースを用いて演算処理により図形や文字を描画することは、ティーチペンダントのリソースが受け持つ処理が複雑かつ大規模化するため、コスト増や重量増という問題につながる。
【０００８】
なお、特許文献１では上記の問題を解決するための手段については開示されていない。
本発明の目的は、画面の更新が必要なときに制御装置とティーチペンダント間の通信を行うだけでよく、制御装置側でＧＵＩの主要な処理を行わせることより、ティーチペンダントのリソースを少なくでき、この結果、コスト低減が可能であり、又、ティーチペンダントの消費電力を低減することができるロボット制御システムを提供することにある。
【課題を解決するための手段】
【０００９】
上記問題点を解決するために、請求項１に記載の発明は、教示データを出力する可搬式操作部と、該可搬式操作部とネットワーク手段、又は非有線通信手段を介して前記教示データを送受信するロボット制御用のコントローラを備えたロボット制御システムにおいて、前記コントローラは、前記教示データを入力データとして、該入力データに基づいてＧＵＩ画面データを作成するＧＵＩ画面データ作成手段と、前記ＧＵＩ画面データに更新された部分があるとき、更新された部分を差分画面データとして作成する差分画面データ生成手段と、前記差分画面データを前記ネットワーク手段、又は非有線通信手段を介して前記可搬式操作部に出力する第１出力手段を備え、前記可搬式操作部は、前記コントローラから入力された前記差分画面データに基づいてＧＵＩ画面データを更新する更新手段と、更新されたＧＵＩ画面データに基づいて表示画面にＧＵＩ画面を表示する表示手段とを備えたことを特徴とするロボット制御システムを要旨とするものである。
【００１０】
請求項２の発明は、請求項１において、前記可搬式操作部は、データを入力するためのキー操作手段と、該キー操作手段により入力された教示データを前記ネットワーク手段、又は非有線通信手段を介してコントローラに出力する第２出力手段を備え、前記コントローラの前記ＧＵＩ画面データ作成手段は、前記可搬式操作部から入力された前記教示データを、前記入力データとして受け入れて、前記ＧＵＩ画面データを作成することを特徴とする。
【００１１】
請求項３の発明は、請求項１又は請求項２において、前記コントローラは、前記差分画面データを圧縮する圧縮手段を備え、前記第１出力手段は該圧縮手段にて圧縮されたデータを前記可搬式操作部に出力し、前記可搬式操作部の更新手段は、前記圧縮されたデータを展開する展開手段を含むとともに該展開手段にて展開された差分画面データに基づいてＧＵＩ画面データを更新することを特徴とする。
【００１２】
請求項４の発明は、請求項１乃至請求項３のいずれか１項において、前記ＧＵＩ画面データ作成手段と前記差分画面データ生成手段は、接続状態の可搬式操作部との通信が通信エラーにより遮断された際には、遮断された位置からＧＵＩ画面データと、差分画面データをそれぞれ作成するレジューム機能を有することを特徴とする。
【００１３】
請求項５の発明は、請求項４において、前記ＧＵＩ画面データ作成手段と前記差分画面データ生成手段は、接続状態の可搬式操作部との通信が通信エラーにより遮断され、該遮断されたときから所定時間内に前記遮断された可搬式操作部との通信が再開したときは、前記レジューム機能により遮断された位置からＧＵＩ画面データと、差分画面データをそれぞれ作成することを特徴とする。
【００１４】
請求項６の発明は、請求項５において、前記ＧＵＩ画面データ作成手段と前記差分画面データ生成手段は、接続状態の可搬式操作部との通信が通信エラーにより遮断され、該遮断されたときから所定時間内に前記遮断された可搬式操作部との通信が再開されないときは、データ作成及びデータ生成をそれぞれリセットすることを特徴とする。
【００１５】
請求項７の発明は、請求項４において、前記コントローラは、遮断後に通信要求のあった可搬式操作部が、遮断された可搬式操作部か否かを判定する判定手段を備え、該判定手段が、通信要求のあった可搬式操作部が前記遮断された可搬式操作部と判定した際には、前記ＧＵＩ画面データ作成手段と前記差分画面データ生成手段は、前記遮断された位置からＧＵＩ画面データと、差分画面データをそれぞれ作成することを特徴とする。
【００１６】
請求項８の発明は、請求項４において、前記ＧＵＩ画面データ作成手段と前記差分画面データ生成手段は、前記遮断された可搬式操作部によりレジューム指示があったときは、前記遮断された位置からＧＵＩ画面データと、差分画面データをそれぞれ作成し、前記遮断された可搬式操作部からリセット指示があったときは、データ作成及びデータ生成をそれぞれリセットすることを特徴とする。
【発明の効果】
【００１７】
以上詳述したように、請求項１の発明によれば、画面の更新が必要なときにコントローラ（制御装置）とティーチペンダント間の通信を行うだけでよく、コントローラ側でＧＵＩの主要な処理が行われるため、ティーチペンダントのリソースを少なくできる。この結果、請求項１の発明によればコスト低減が可能であり、又、ティーチペンダントの消費電力を低減することができるとともに、稼働時間を長くでき、あるいは電池を小さくできる効果がある。
【００１８】
又、請求項１の発明によれば、ＧＵＩ画面データを作成する際にコントローラ側で使用されるＧＵＩ管理処理プログラムは、従来と同様のものを使用することができることから、ＧＵＩ管理処理プログラムを変更することなく、ティーチペンダントとコントローラとの接続をネットワーク化することができる。又、請求項１の発明によれば、コントローラ側で使用されるＧＵＩ管理処理プログラムは、従来と同様のものを使用することができることから、ティーチペンダントは従来の接続形式のティーチペンダントと切替使用ができる。
【００１９】
請求項２の発明によれば、ネットワーク或いは非有線通信手段を介して可搬式操作部のキー操作により得られた教示データに基づきコントローラ側でＧＵＩ画面データを確実に作成することができる。
【００２０】
請求項３によれば、圧縮された差分画面データがネットワーク手段、或いは非有線通信手段にて送受信されることにより、ネットワーク負荷や、或いは非有線通信手段の負荷を軽減することができる。
【００２１】
請求項４の発明によれば、通信エラー、すなわち、意図しない通信遮断が生じた場合であっても、コントローラ側のＧＵＩ画面データ作成手段と前記差分画面データ生成手段とによってレジューム機能を実現するため、簡単に復旧できる。また、通信が遮断された可搬式操作部が再接続された際に、容易に通信エラー前の状態に戻すことができる。例えば、可搬式操作部において、ティーチング中や、パラメータの設定値変更の途中等で通信エラーにより通信遮断が生じたとき、この効果は大きな利点となる。
【００２２】
請求項５の発明によれば、通信遮断から所定時間内に通信が再開されないときにレジューム機能が発揮できないように制限されているため、通信が遮断された可搬式操作部が所定時間内に再接続された際に、容易に通信エラー前の状態に戻すことができる。
【００２３】
請求項６の発明によれば、通信が遮断されたときから所定時間内に、通信が遮断された可搬式操作部との通信が再開されないときは、データ作成及びデータ生成がそれぞれリセットされるため、通信エラーが生じていなかった正常（通常）の通信開始の状態に戻すことができる。
【００２４】
特に、遮断された可搬式操作部とは異なる可搬式操作部との通信要求があったときは、レジューム機能が働かないため、異なる可搬式操作部の作業者に対して意図していない画面が提供されることがなく迷惑をかけることがない。
【００２５】
請求項７の発明によれば、判定手段により遮断後に通信要求のあった可搬式操作部が通信が遮断された可搬式操作部か否かを判定するため、遮断された可搬式操作部にのみ通信を再開したときに、容易に通信エラー前の状態に戻すことができる。例えば、可搬式操作部において、ティーチング中や、パラメータの設定値変更の途中等で通信エラーにより通信遮断が生じたとき、この効果は大きな利点となる。
【００２６】
請求項８の発明によれば、通信エラーにより通信が遮断された可搬式操作部の作業者は、通信が再開された際、通信エラーの状況に応じてレジューム指示かリセット指示のいずれかを必要に応じて出すことができ、通信再開された後の可搬式操作部に表示される画面を通信エラー前の状態か、或いは通信開始した初期の画面に戻した状態かを選ぶことができる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明を教示装置である可搬式操作部としてのティーチペンダント１０とロボット制御装置としての複数のコントローラ２０Ａ〜２０Ｃとがネットワーク手段としての有線ＬＡＮ（ローカルエリアネットワーク）を介して通信を行うロボット制御システム３０に具体化した第１実施形態を図１〜１１を参照して説明する。
【００２８】
このロボット制御システム３０のコントローラ２０Ａ〜２０Ｃがそれぞれ制御するロボットＲ１〜Ｒ３は、例えば溶接ロボットである、なお、ロボットは、溶接ロボットに限定されるものではなく、例えば搬送ロボット等の他のロボットであってもよい。なお、各コントローラの構成は同じであるため、コントローラ２０Ａの構成について以下では説明し、他のコントローラの説明を省略する。
【００２９】
（１．  ティーチペンダント１０）
図１に示すように可搬式操作部としてのティーチペンダント１０はＣＰＵ（中央処理装置）１１、ＲＯＭ１２、ＲＡＭ１３、ハードディスク１４、ＬＡＮＩ／Ｆ１５、キーボード１６（図２参照）、及び液晶ディスプレイ１７（図２参照）の各部を備えているとともに各部はバス１９を介して接続されている。
【００３０】
ティーチペンダント１０のＲＯＭ１２には、ティーチペンダント１０からのロボットＲ１の操作や通信を実行するための各種制御プログラムとその制御定数が格納される。ＲＡＭ１３は、ＣＰＵ１１のワーキングエリアとして用いられ、計算途中のデータが一時的に格納される。ハードディスク１４には、制御プログラムの実行変数が格納される。ＬＡＮＩ／Ｆ１５はコントローラ２０Ａ〜２０Ｃとの接続に使用される通信機である。キーボード１６はティーチペンダント１０の操作者がロボットの操作を示す教示データを入力するためのインターフェイスとして使用される。液晶ディスプレイ１７はティーチペンダント１０の操作者がロボットの操作条件や動作状態を確認するための表示機として使用される。
【００３１】
本実施形態のＣＰＵ１１は、更新手段、第２出力手段、及び展開手段に相当する。又、キーボード１６はキー操作手段に相当する。液晶ディスプレイ１７は表示手段に相当する。
【００３２】
（２．  コントローラ）
コントローラ２０Ａは、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ハードディスク２４、ＬＡＮＩ／Ｆ２５、タイマ２６、サーボドライバ２７、ビデオＲＡＭ２８の各部を備えているとともに各部はバス３１を介して接続されている。前記ＲＯＭ２２には、該コントローラ２０Ａが制御対象とするロボットＲ１の動作制御を実行するための制御プログラムとその制御定数や、各種プログラムが格納される。ＲＡＭ２３は、ＣＰＵ２１のワーキングエリアとして用いられ、計算途中のデータが一時的に格納される。ハードディスク２４には、ロボットＲ１の作業が教示されたデータや、制御プログラムの実行条件、ならびに各種の制御変数が格納される。なお、ハードディスク２４に代えて、他の書換可能な記憶装置であってもよい。ＬＡＮＩ／Ｆ２５は、ティーチペンダント１０との接続に使用される通信機である。
【００３３】
サーボドライバ２７は、ロボットＲ１の各関節を駆動する図示しないモータに接続され、該モータに通電させる電流を制御する。タイマ２６は、定期時刻ごとに同期信号を発生する。該同期信号は、サーボドライバ２７への指令値の更新タイミングとして使用される。ビデオＲＡＭ２８は、ティーチペンダント１０の液晶ディスプレイ１７に表示するＧＵＩ画面のデータを一時保存するために使用される。
【００３４】
本実施形態では、ティーチペンダント１０のＬＡＮＩ／Ｆ１５、コントローラ２０ＡのＬＡＮＩ／Ｆ２５とにより、有線ＬＡＮからなるネットワーク手段が構成されている。なお、有線ＬＡＮでは通信パケットによりＬＡＮＩ／Ｆ１５，２５間の交信が行われている。
【００３５】
又、コントローラ２０ＡのＣＰＵ２１は、ＧＵＩ画面データ作成手段と、差分画面データ生成手段、第１出力手段、及び圧縮手段に相当する。
（第１実施形態の作用）
さて、上記のように構成されたロボット制御システム３０において、コントローラで作成した画面をネットワーク通信によりティーチペンダント１０の液晶ディスプレイ１７で表示するための制御フローを図３〜１１を参照して説明する。なお、説明の便宜上、ティーチペンダント１０がコントローラ２０Ａに接続された状態であって、ティーチペンダント１０から教示データ、すなわちＧＵＩ画面データを作成するための入力データがキーボード１６により入力されたものとして説明する。
【００３６】
（１−１）  コントローラによる画面作成
図３はＣＰＵ２１の画面作成の制御フローチャートである。コントローラ２０ＡのＣＰＵ２１は、まずＧＵＩ画面を作成する場合、ＲＯＭ２２に格納されたＧＵＩ管理処理プログラム２２ａを実行する（Ｓ１０）。ＣＰＵ２１は、ＧＵＩ管理処理プログラム２２ａに従ってロボットＲ１やコントローラ２０Ａの状態、また外部（例えば、ティーチペンダント１０）からの操作入力情報（すなわち、前記入力データ）に基づき、ＧＵＩ画面に表示する情報の内容を決定する。続いて、ＣＰＵ２１はＲＯＭ２２に格納された画面作成処理プログラム２２ｂを実行する（Ｓ２０）。この画面作成処理プログラム２２ｂにおける処理では、具体的には、ＣＰＵ２１はティーチペンダント１０の液晶ディスプレイ１７に表示するＧＵＩ画面をＳ１０において決定したＧＵＩ画面に表示する情報の内容に基づいて図形や文字の描画により作成し、このＧＵＩ画面データをビデオＲＡＭ２８に格納する。ここまでは従来のＧＵＩ画面処理と同様の処理である。
【００３７】
（１−２）  コントローラ２０Ａによる、画面変化情報の取得
図４は、画面監視処理プログラムのフローチャートである。コントローラ２０ＡのＣＰＵ２１は、ＲＯＭ２２に格納されている画面監視処理プログラム２２ｃを所定の周期で定期的に実行して、ＧＵＩ画面の変化を検出する。具体的にはＣＰＵ２１は、画面データが格納されているビデオＲＡＭ２８を参照し（Ｓ３０）、前回制御周期の取得内容と比較して（Ｓ３２）、データが変化していれば、画面が変化したと判定する（Ｓ３２の判定が「ＹＥＳ」）。そして、ＣＰＵ２１はＧＵＩ画面が更新されていれば、更新された範囲の画面データを差分画面データとして、ＲＡＭ２３の作業領域にコピーする（Ｓ３４）。この差分画面データに対し、ＣＰＵ２１はその差分画面の座標や画面サイズなど、画面の復元を行う時に必要な情報（以下、描画情報という）を付加しておく。前記差分画面データ及び該データに付加された描画情報は画面変化情報となる。
【００３８】
（１−３）  コントローラ２０Ａによる、画面データの送信
図５は、データ送信処理プログラム２２ｄのフローチャートである。ＣＰＵ２１は、前記画面変化情報を取得した場合、ＲＯＭ２２に格納されているデータ送信処理プログラム２２ｄを実行する。すなわち、ＣＰＵ２１はこのデータ送信処理プログラム２２ｄに従ってＬＡＮＩ／Ｆ２５を用いてティーチペンダント１０に画面変化情報（差分画面データ及び描画情報）を送信する（Ｓ４０）。この際、一般的なデータ圧縮の手法により、ＣＰＵ２１は差分画面データの圧縮を行う。このようにＣＰＵ２１は圧縮を行うことにより、更にネットワーク負荷を減らすことができる。
【００３９】
（１−４）  ティーチペンダント１０による画面データの受信
図６は、データ受信処理プログラム１２ａのフローチャートである。ティーチペンダント１０のＣＰＵ１１は、ＲＯＭ１２に格納されたデータ受信処理プログラム１２ａを所定の周期で定期的に実行する。コントローラ２０Ａから差分画面データを含む前記画面変化情報を受信すると（Ｓ５０）、受信した差分画面データを含む前記画面変化情報をＲＡＭの作業領域に保存する（Ｓ５２）。なお、ＣＰＵ１１は差分画面データが圧縮されている場合は、展開処理を行った後、受信した差分画面データをＲＡＭの作業領域に保存する。
【００４０】
（１−５）  ティーチペンダント１０による画面の描画
図７は、画面描画処理プログラム１２ｂのフローチャートである。ＣＰＵ１１は所定の周期で定期的に画面描画処理プログラム１２ｂを実行する。まず、ＣＰＵ１１はＲＡＭ１３内の差分画面データを参照し（Ｓ６０）、コントローラ２０Ａで付加した描画情報を元に、画像データをティーチペンダント１０の液晶ディスプレイ１７の表示画面の所定の位置に貼り付けることにより、コントローラ２０Ａで作成したＧＵＩ画面データを再現する（Ｓ６２）。ＣＰＵ１１はこの再現されたＧＵＩ画面データをティーチペンダント１０の液晶ディスプレイ１７に表示する（Ｓ６４）。
【００４１】
以上の処理により、コントローラ２０Ａで作成したＧＵＩ画面データが、ティーチペンダント１０の液晶ディスプレイ１７に表示される。
次に、ティーチペンダント１０でキー操作が行われた場合に、生成されたキー操作情報をネットワーク通信を介してコントローラ２０Ａに伝達するための制御フローについて説明する。
【００４２】
（２−１）  ティーチペンダント１０によるキー操作状態の監視とデータ化
図８はキー監視処理プログラム１２ｃのフローチャートである。ティーチペンダント１０のＣＰＵ１１はＲＯＭ１２に格納されたキー監視処理プログラム１２ｃを所定の周期で定期的に実行する。そして、Ｓ７０において操作者によるキーボード１６の各キーの状態（すなわち、押下状態又は非押下状態）をＣＰＵ１１は検出すると、その状態をＲＡＭ１３の作業領域に格納する。ここで、キーの押下状態のデータは、教示データとなる。
【００４３】
（２−２）  ティーチペンダント１０によるキーの状態データの送信
図９は、データ送信処理プログラム１２ｄのフローチャートである。ＣＰＵ１１は、ＲＯＭ１２に格納されたデータ送信処理プログラム１２ｄを所定の制御周期で定期的に実行し、ＲＡＭ１３に可能されたキーの状態データをＬＡＮＩ／Ｆ１５を使用して、コントローラ２０Ａに転送する（Ｓ８０）。
【００４４】
（２−３）  コントローラ２０Ａによるキーの状態データの受信
図１０は、データ受信処理プログラム２２ｆのフローチャートである。コントローラ２０ＡのＣＰＵ２１は、ＲＯＭ２２に格納されたデータ受信処理プログラム２２ｆを所定の制御周期で定期的に実行する。そして、ＣＰＵ２１は、ティーチペンダント１０のキーの状態データをティーチペンダント１０から受信すると（Ｓ９０）、ＲＡＭ２３の作業領域に保存する（Ｓ９２）。
【００４５】
（２−４）  コントローラ２０Ａによるキー操作状態の復元
図１１は、キー操作処理プログラム２２ｅのフローチャートである。ＣＰＵ２１はＲＯＭ２２に格納されたキー操作処理プログラム２２ｅを所定の制御周期で実行する。ＣＰＵ２１は、受信したキーの状態データに基づいて、キーの押下状態、すなわちキー入力状態を作り出し（Ｓ１００）、ＧＵＩ管理処理プログラム２２ａに伝達する（Ｓ１０２）。
【００４６】
なお、ＣＰＵ２１が使用しているＯＳがＷｉｎｄｏｗｓ（登録商標）の場合は、ＣＰＵ２１はキー入力をメッセージにより対象のアプリケーション・プログラムに送信することにより、キー入力処理行っている。この場合には、これを利用して、ティーチペンダント１０のキーの状態データ（教示データを含む）に基づき、ＣＰＵ２１は該当するメッセージを作成して対象のアプリケーション・プログラムに送信することにより、キー入力状態を作り出す。上記のようにＣＰＵ２１は、ティーチペンダント１０のキーボード１６のキーの状態データに基づいてキー入力状態を作り出す。
【００４７】
以上のような処理をＣＰＵ２１が行うことにより、ティーチペンダント１０の教示データをＧＵＩ管理処理プログラム２２ａに伝達する。
このようにして、教示データがコントローラ２０ＡのＧＵＩ管理処理プログラム２２ａに伝達されると、（１−１）「コントローラによる画面作成」において、前述したようにＣＰＵ２１がＧＵＩ管理処理プログラム２２ａを実行する。以下、前述した（１−２）〜（１−５）の処理がＣＰＵ２１やＣＰＵ１１にて行われるため、キーボード１６のキー入力によって、ティーチペンダント１０の液晶ディスプレイ１７のＧＵＩ画面が更新される。
【００４８】
さて、本実施形態によれば、以下のような特徴がある。
（１）  本実施形態のロボット制御システム３０において、コントローラ２０Ａ等のＣＰＵ２１は、入力データに基づいてＧＵＩ画面データを作成するとともに、該ＧＵＩ画面データに更新された部分があるとき、更新された部分を差分画面データとして作成し、差分画面データを有線ＬＡＮを介してティーチペンダント１０に出力する。そして、ティーチペンダント１０のＣＰＵ１１は、コントローラ２０Ａから入力された前記差分画面データに基づいてＧＵＩ画面データを更新し、更新したＧＵＩ画面データに基づいて液晶ディスプレイ１７の表示画面にＧＵＩ画面を表示するようにされている。
【００４９】
この結果、画面の更新が必要なときにコントローラ２０Ａ等（制御装置）とティーチペンダント１０間の通信を行うだけでよく、コントローラ２０Ａ等側でＧＵＩの主要な処理が行われるため、ティーチペンダント１０のリソース（すなわち、メモリ）を少なくできる。この結果、本実施形態では、コスト低減が可能であり、又、ティーチペンダント１０の消費電力を低減することができる。さらに、本実施形態によれば、消費電力が低減されることから、ティーチペンダント１０の稼働時間を長くでき、あるいは電池を小さくできる効果がある。
【００５０】
本実施形態では、ＧＵＩ画面データを作成する際にコントローラ２０Ａ等側で使用されるＧＵＩ管理処理プログラムは、従来と同様のものを使用することができることから、ＧＵＩ管理処理プログラムを変更することなく、ティーチペンダント１０とコントローラ２０Ａ等との接続をネットワーク化することができる。さらに、本実施形態では、コントローラ２０Ａ等側で使用されるＧＵＩ管理処理プログラムは、従来と同様のものを使用することができることから、ティーチペンダント１０は従来の接続形式のティーチペンダントと切替使用ができる利点がある。 
【００５１】
（２）  本実施形態では、ティーチペンダント１０は、データを入力するためのキーボード１６と、キーボード１６により入力された教示データを有線ＬＡＮを介してコントローラ２０Ａ等に出力するＣＰＵ１１を備えている。又、コントローラ２０Ａ等は、ＣＰＵ２１はティーチペンダント１０のキーボード１６から入力された教示データを受け入れて、ＧＵＩ画面データを作成するようにしている。この結果、本実施形態ではティーチペンダント１０からの教示データに基づきコントローラ２０Ａ側でＧＵＩ画面データを確実に作成することができる。
【００５２】
（３）  本実施形態では、コントローラ２０ＡのＣＰＵ２１は差分画面データを圧縮するとともに圧縮された差分画面データを有線ＬＡＮを介してティーチペンダント１０に送信するようにした。そして、ティーチペンダント１０のＣＰＵ１１は、圧縮された差分画面データを展開するとともに展開された差分画面データに基づいてＧＵＩ画面データを更新するようにした。この結果、圧縮された差分画面データが有線ＬＡＮにて送受信されることにより、ネットワーク負荷を軽減することができる。
【００５３】
（４）  又、本実施形態では、コントローラ２０Ａ等とティーチペンダント１０をネットワーク上で接続した場合、該ティーチペンダント１０を１つの独立した機器として成立させていることが前提となる。すなわち、ティーチペンダント１０はリモートデスクトップ（以下、ＲＤＰという）を使ったティーチペンダントとなり、ＲＤＰの場合、同時に１つのコントローラに接続できるティーチペンダントは１台に制限されることになる。しかし、ＲＤＰを使ったティーチペンダントであると、クライアント／サーバ型の場合に比較して下記の利点がある。
【００５４】
１）  ティーチペンダントのリソースを削減することができる。例えば、ＧＵＩ機能がコントローラ側で拡張された場合、ティーチペンダントのプログラム保存領域（ＲＯＭ）が増えなくて済む利点がある。ここで、ＧＵＩ機能がコントローラ側で拡張されるとは、例えば、複数言語対応や、画面機能の追加、或いはグラフィカルな説明機能（ヘルプなど）の追加が挙げられる。なお、クライアント／サーバ型の場合には、上記のように挙げられた機能を追加しようとすると、ティーチペンダントのＲＯＭのメモリ容量（保存領域）を増やす必要がある。それに対して、ＲＤＰの場合、画面の表示内容が変化するのみで、ティーチペンダントのＲＯＭの領域は増加させる必要がない利点がある。
【００５５】
２）  画面表示の高速化を行うことができる。例えば、ロボットプログラムをティーチペンダントの液晶ディスプレイに表示する場合、ＲＤＰの方が高速化できる。一方、クライアント／サーバ型の場合、プログラムをサーバからティーチペンダントに全てダウンロードし、その完了後に表示することになるため、時間がかかる。それに対して、ＲＤＰの場合、表示部分のみの画像を取得し表示するだけでよく、画面表示を高速化できる。
【００５６】
３）  異なるプログラムのバージョンの対応ができる。ＲＤＰの場合、ティーチペンダントとコントローラ間のプログラムのバージョン差を気にしなくてすむ利点がある。例えば、特殊機能の有無や、異なる機種間のティーチペンダントの使い回しや、或いはバージョンアップ作業の有無の違いがあっても、ＲＤＰの場合には対応できる。一方、クライアント／サーバ型の場合、機種間でプログラムのバージョンが異なる場合、機種毎に対応できるプログラムを用意する必要がある。
【００５７】
（第２実施形態）
次に、本発明の第２実施形態を図１２及び図１３を参照して説明する。なお、第２実施形態のハード構成は、第１実施形態のハード構成と同じであるため、同一符号を付す。
【００５８】
図１２はロボット制御システムにおけるコントローラのＣＰＵ２１が実現する機能ブロック図である。
同図において、アプリケーション部５０は、第１実施形態で説明したＧＵＩ管理処理プログラム２２ａ、及び画面作成処理プログラム２２ｂに従って実行するＣＰＵ２１の機能を、説明の便宜上１つのブロックとして表わしている。又、同図において、リモートデスクトップサーバ５１は、第１実施形態で説明した、画面監視処理プログラム２２ｃ、キー操作処理プログラム２２ｅ、データ送信処理プログラム２２ｄ及びデータ受信処理プログラム２２ｆに従って実行するＣＰＵ２１の機能を、説明の便宜上１つのブロックとして表わしている。そして、同図において、接続監視部５２は、ＲＯＭ２２に記憶された接続監視プログラムに従って実行するＣＰＵ２１の機能を、説明の便宜上ブロックとして表わしている。
【００５９】
なお、本実施形態において、ネットワーク通信を行うための通信機器は有線のＬＡＮＩ／Ｆ２５を指すが、この構成に限定されるものではなく、無線のＬＡＮＩ／Ｆで構成されていてもよい。
【００６０】
本実施形態は、ＲＯＭ２２に接続監視プログラムが記憶されており、ＣＰＵ２１は同接続監視プログラムを実行してティーチペンダント１０Ａ（すなわち、ユーザＡ），１０Ｂ（すなわち、ユーザＢ）等との通信接続を監視するようにされている。
【００６１】
さて、第２実施形態の作用を説明する。
なお、ここではロボット制御システムのコントローラをコントローラ２０Ａとして説明する。又、接続した後、通信エラーが生じたティーチペンダント１０は、ティーチペンダント１０Ａとする。図１３は、接続監視プログラムのフローチャートであり、コントローラ２０Ａが電源オン時に起動される。
【００６２】
（Ｓ２００）
Ｓ２００では、ティーチペンダント１０Ａとコントローラ２０Ａとが未接続の時、接続監視プログラムにより、接続監視部５２は、リモートデスクトップサーバ５１からの接続通知を待つ。接続監視部５２は、リモートデスクトップサーバ５１を常時監視しており、いずれかのティーチペンダントがリモートデスクトップサーバ５１にログインしたタイミングで、リモートデスクトップサーバ５１から接続監視部５２に対して「接続通知」が通知されるようになっている。Ｓ２００において、リモートデスクトップサーバ５１から「接続通知」があると、Ｓ２０２に移行する。
【００６３】
なお、説明の便宜上、図１３では、リモートデスクトップサーバを「ＲＤＰサーバ」と記載し、ティーチペンダントを「ＴＰ」と記載している。
（Ｓ２０２）
Ｓ２０２では、接続監視部５２は、リモートデスクトップサーバ５１から接続中のティーチペンダント（ここでは、説明の便宜上、ティーチペンダント１０Ａとする）の固有情報（ＩＰアドレス，ＭＡＣアドレスなど）を収集する。
【００６４】
（Ｓ２０４）
Ｓ２０４では、接続監視部５２は、Ｓ２０２で取得した固有情報に基づいて、接続中のティーチペンダント１０Ａ以外のティーチペンダントの接続を禁止するようにリモートデスクトップサーバ５１の接続許可設定を変更する。
【００６５】
図１２において、ユーザＡ，Ｂ，Ｃ，Ｄはそれぞれコントローラ２０Ａに通信接続可能なティーチペンダントを示しており、○は接続許可されたティーチペンダントであり、×は接続禁止されたティーチペンダントを示している。
【００６６】
（Ｓ２０６）
Ｓ２０６では、接続監視部５２は、通常運用処理を行う。この通常運用処理とは、第１実施形態で説明した、ＧＵＩ管理処理プログラム２２ａ、画面作成処理プログラム２２ｂ、画面監視処理プログラム２２ｃに従ってＣＰＵ２１が行う処理を含む。そして、通常運用処理では、その時々に作成された画面変化情報（差分画面データ及び描画情報）を、第１実施形態と同様に接続されたティーチペンダント１０Ａに送信する。
【００６７】
（Ｓ２０７）
接続監視部５２は、その時々において、リモートデスクトップサーバ５１からの「切断通知」を待つようにしている。すなわち、接続監視部５２は、リモートデスクトップサーバ５１を常時監視しており、ティーチペンダント１０Ａとリモートデスクトップサーバ５１との通信が切断されると、リモートデスクトップサーバ５１から接続監視部５２に対して「切断通知」が通知されるようになっている。
【００６８】
ここで、通信が切断される場合、ティーチペンダントからログオフにより切断される場合と、通信エラーにより通信が遮断される場合とがある。いずれの場合にも、リモートデスクトップサーバ５１から、接続監視部５２に対して「切断通知」を出すが、ログオフでない場合には、すなわち、通信エラーにより通信が遮断された場合には、通信エラー情報を含めて「切断通知」を接続監視部５２に対して出すようにされている。
【００６９】
ここで、通信エラーについて説明する。ティーチペンダント１０等とコントローラ２０Ａ等間を有線通信で行っている場合の通信エラーは、例えば、通信ケーブルの断線や、通信ケーブルのコネクタ抜け或いは接触不良や、ノイズ等により生ずる。又、ティーチペンダント１０等とコントローラ２０Ａ等間を無線通信で行っている場合の通信エラーは、例えば電波の混信や、チャンネル共有時のトラフィック増大や、ティーチペンダントの電池切れや、ノイズ等により生ずる。
【００７０】
（Ｓ２０８）
リモートデスクトップサーバ５１から「切断通知」が入力されると、接続監視部５２は、Ｓ２１０に移行する。
【００７１】
（Ｓ２１０）
接続監視部５２は、「切断通知」が通信エラー情報を含んでいる場合には、Ｓ２１０の判定を「ＹＥＳ」と判定して、Ｓ２１２に移行する。
【００７２】
なお、この場合、リモートデスクトップサーバ５１は、アプリケーション部５０に対して、通信エラーがあったことを通知する。
アプリケーション部５０では通信エラーの通知があった時点で作成済の最新の差分画面データ及びＧＵＩ画面データを、記憶手段としてのＲＡＭ２３に記憶する。なお、これらのデータ（情報）は記憶手段としてのハードディスク２４に記憶するようにしてもよい。このようにして、通信エラーによる通信遮断があると、ＣＰＵ２１によりレジューム機能が実現される。
【００７３】
又、接続監視部５２は、「切断通知」が通信エラー情報を含んでいない場合には、Ｓ２１０の判定を「ＮＯ」と判定して、Ｓ２１４に移行する。
（Ｓ２１２）
Ｓ２１２では、接続監視部５２は、所定時間待機してこの所定時間内に通信遮断されたティーチペンダント１０Ａに関する「接続通知」がリモートデスクトップサーバ５１からあるか否かを判定する。
【００７４】
この所定時間待機する理由は次の通りである。
前述したように通信エラーには、種々の原因があるが、通信エラーの原因が短時間で、解決される場合と短時間で解決できない場合とがある。このため、短時間で解決できる場合には、この時間を含むように前記所定時間が予め設定されている。有線通信の場合は、例えば、コネクタ抜け等の場合は短時間で通信エラーが解決できる場合に相当する。又、無線通信の場合には、ティーチペンダントの電池切れの場合には、電池交換すれば短時間で通信エラーが解決できる場合に相当する。因みに、有線通信の場合の接触不良や、無線通信の場合の電波の混信は、復旧が困難な例であり、これらの場合は再発の可能性が高いため、通信エラーの回復のためには長時間を要する。
【００７５】
リモートデスクトップサーバ５１では、前記所定時間内に前記通信が遮断されたティーチペンダント１０Ａからログインされると、ティーチペンダント１０Ａから収集した固有情報に基づいて、通信が遮断されたティーチペンダントか否かが判定できるため、ここでの判定を「ＹＥＳ」として、Ｓ２０６にリターンする。
【００７６】
このようにして、Ｓ２０６にリターンした場合、前述したレジューム機能により、記憶手段にて格納された通信エラーの通知があった時点で最新の差分画面データ及びＧＵＩ画面データを使用して、通常運用処理が実行されることになる。すなわち、Ｓ２０６にリターンした場合、通信エラーにより遮断された位置からＧＵＩ画面データと、差分画面データをそれぞれ作成する通常運用処理を行うことができる。
【００７７】
一方、前記所定時間内に前記通信が遮断されたティーチペンダント１０Ａからログインされない場合には、「接続通知」が入力されないため、接続監視部５２はここでの判定を「ＮＯ」として、Ｓ２１４に移行する。
【００７８】
又、前記所定時間内に通信エラーにより通信が遮断されていない他のティーチペンダントからログインがあった場合には、他のティーチペンダント（すなわち、ティーチペンダント１０Ａ以外のティーチペンダント）の接続は接続許可設定により禁止されているため、通信が成立することはない。
【００７９】
（Ｓ２１４）
Ｓ２１４では、接続監視部５２は、アプリケーション部５０をリセットし、次に、リモートデスクトップサーバ５１の接続許可設定を初期値に戻して、Ｓ２００に戻り、すなわち、新規接続と同様に初期化スタートする。
【００８０】
この状態になると、ティーチペンダント１０Ａは、ＣＰＵ２１のレジューム機能が実現されなくなるため作業継続はできなくなり、全てのティーチペンダントからの接続が可能となる。
【００８１】
さて、上記のように構成された第２実施形態では、下記の効果がある。
（１）  本実施形態では、ＣＰＵ２１（ＧＵＩ画面データ作成手段と差分画面データ生成手段）は、接続状態のティーチペンダント１０Ａ（可搬式操作部）との通信が通信エラーにより遮断された際には、遮断された位置からＧＵＩ画面データと、差分画面データをそれぞれ作成するレジューム機能を実現するようにした。
【００８２】
この結果、通信エラー、すなわち、意図しない通信遮断が生じた場合であっても、コントローラ２０Ａ側のＣＰＵ２１がレジューム機能を実現するため、簡単に復旧できるとともに、通信が遮断されたティーチペンダント１０Ａが再接続された際に、容易に通信エラー前の状態に戻すことができる。例えば、ティーチペンダント１０Ａにおいて、ティーチング中や、パラメータの設定値変更の途中等で通信エラーにより通信遮断が生じたとき、この効果は大きな利点となる。
【００８３】
このように、リモートデスクトップサーバ５１の性格上、データ管理や画面生成は、リモートデスクトップサーバ５１が一括して処理しており、ティーチペンダントはその画面表示を行っているだけである。このように運用中に、通信エラーが発生した場合でも、その画面を描画するための情報はコントローラ２０Ａ側に残るため、ティーチペンダント１０Ａが通信エラー後に再通信を行うと、通信エラーが発生する直前の状態からの作業継続を容易に行うことができる。
【００８４】
（２）  本実施形態では、ＣＰＵ２１は、接続状態のティーチペンダント１０Ａとの通信が通信エラーにより遮断され、該遮断された時から所定時間内にティーチペンダント１０Ａとの通信が再開したときは、レジューム機能により遮断された位置からＧＵＩ画面データと、差分画面データをそれぞれ作成するようにした。
【００８５】
この結果、通信遮断された時から所定時間内に通信が再開されないときにレジューム機能が発揮できないように制限されているため、通信が遮断された可搬式操作部が所定時間内に再接続された際に、容易に通信エラー前の状態に戻すことができる。
【００８６】
（３）  本実施形態では、ＣＰＵ２１（ＧＵＩ画面データ作成手段と差分画面データ生成手段）は、接続状態のティーチペンダント１０Ａとの通信が通信エラーにより遮断され、該遮断されたときから所定時間内にティーチペンダント１０Ａとの通信が再開されないときは、データ作成及びデータ生成をそれぞれリセットするようにした。この結果、通信が遮断された時から所定時間内に、通信が遮断されたティーチペンダント１０Ａとの通信が再開されないときは、データ作成及びデータ生成がそれぞれリセットされるため、通信エラーが生じていなかった正常（通常）の通信開始の状態に戻すことができる。
【００８７】
（第３実施形態）
次に、第３実施形態を図１４〜図１7を参照して説明する。
なお、第３実施形態のハード構成は、第１実施形態のハード構成と同じであるため、同一符号を付す。図１３はロボット制御システムにおけるコントローラのＣＰＵ２１が実現する機能ブロック図である。同図において、アプリケーション部５０及びリモートデスクトップサーバ５１は、第２実施形態と同様の構成である。そして、同図において、接続マネージャ５３は、ＲＯＭ２２に記憶された接続マネージャプログラムに従って実行するＣＰＵ２１の機能を、説明の便宜上ブロックとして表わしている。
【００８８】
なお、本実施形態においても、ネットワーク通信を行うための通信機器は有線のＬＡＮＩ／Ｆ２５を指すが、この構成に限定されるものではなく、無線のＬＡＮＩ／Ｆで構成されていてもよい。
【００８９】
本実施形態は、ＲＯＭ２２に接続マネージャプログラムが記憶されており、ＣＰＵ２１は同接続マネージャプログラムを実行してティーチペンダント１０Ａ（すなわち、ユーザＡ），１０Ｂ（すなわち、ユーザＢ）等との通信接続を監視するようにされている。
【００９０】
さて、第３実施形態の作用を説明する。
なお、ここではロボット制御システムのコントローラをコントローラ２０Ａとして説明する。又、接続した後、通信エラーが生じたティーチペンダント１０は、ティーチペンダント１０Ａとする。
【００９１】
又、本実施形態では、図１７（ａ）に示すように、接続手続を概説すると、ティーチペンダント１０Ａが84p５３にログイン、次に接続マネージャ５３がティーチペンダント１０Ａにリモートデスクトップサーバ５１に接続許可通知を通知、次に、ティーチペンダント１０Ａがリモートデスクトップサーバ５１にログインという手順からなる。
【００９２】
又、正常の切断手続を概説すると、正常の切断手続は図１７（ｂ）に示すようにティーチペンダント１０Ａが接続マネージャ５３からログアウト、次にティーチペンダント１０Ａがリモートデスクトップサーバ５１からログアウトし、リモートデスクトップサーバ５１から切断通知が接続マネージャ５３に通知されるという手順からなっている。これらにより、接続マネージャ５３はティーチペンダント１０Ａと、コントローラとの接続／切断の管理を行うことができるようになっている。
【００９３】
図１５は接続マネージャプログラムの接続処理フローチャートであり、定時割り込みで実行される。
なお、ティーチペンダントとコントローラ２０Ａが未接続のときは、接続マネージャ５３は、リモートデスクトップサーバ５１の接続許可設定を初期化して、全てのティーチペンダントが接続不可の状態にしておくものとする。
【００９４】
（Ｓ３００）
Ｓ３００では、接続マネージャ５３は、ティーチペンダントからログインがあると、Ｓ３０２に移行する。
【００９５】
（Ｓ３０２）
Ｓ３０２では、接続マネージャ５３は、リモートデスクトップサーバ５１から接続中のティーチペンダント（ここでは、説明の便宜上、ティーチペンダント１０Ａとする）の固有情報（ＩＰアドレス，ＭＡＣアドレスなど）を収集する。
【００９６】
（Ｓ３０４）
接続マネージャ５３は、接続履歴情報を参照して、Ｓ３０２で収集した固有情報と、一致しているか否かを判定する。接続履歴情報は、接続エラーがあったときにそのときに通信が遮断されたティーチペンダントの固有情報が記録されているものである。
【００９７】
Ｓ３０４で、接続マネージャ５３は一致していないと判定すると、「ＮＯ」と判定して、すなわち新規接続としてＳ３０６に移行する。
又、Ｓ３０４で、接続マネージャ５３は一致していると判定（「ＹＥＳ」と判定）すると、Ｓ３１２に移行する。
【００９８】
（Ｓ３０６）
Ｓ３０６では、接続マネージャ５３は、Ｓ３０２で取得した固有情報に基づいて、接続中のティーチペンダント１０Ａ以外のティーチペンダントの接続を禁止するようにリモートデスクトップサーバ５１の接続許可設定を変更する。
【００９９】
図１４において、ユーザＡ，Ｂ，Ｃ，Ｄはそれぞれコントローラ２０Ａに通信接続可能なティーチペンダントを示しており、○は接続許可されたティーチペンダントであり、×は接続禁止されたティーチペンダントを示している。
【０１００】
（Ｓ３０８）
Ｓ３０８では、接続マネージャ５３は、アプリケーション部５０に初期化を指示する。この指示により、アプリケーション部５０は初期化を行う。
【０１０１】
（Ｓ３１０）
Ｓ３１０では、接続マネージャ５３は、接続要求のあったティーチペンダント１０Ａに対して接続許可通知を行う。
【０１０２】
なお、Ｓ３１２とＳ３１４の処理については、後述する。
ここまでで接続手続が完了する。
次に、接続マネージャ５３が行う切断手続を図１６を参照して説明する。図１６は、接続マネージャプログラムの切断処理フローチャートであり、定時割り込みで実行される。
【０１０３】
（Ｓ４００）
Ｓ４００では、接続マネージャ５３は、リモートデスクトップサーバ５１から切断通知があったときに接続中のティーチペンダント１０Ａからのログアウトがすでにあったか否かを判定する。ここで、リモートデスクトップサーバ５１から切断通知があったときに接続中のティーチペンダント１０Ａからのログアウトがすでにあった場合には、接続マネージャ５３は判定を「ＹＥＳ」とし、Ｓ４０２で、切断処理を行う。
【０１０４】
又、リモートデスクトップサーバ５１から切断通知があったとき、接続中のティーチペンダント１０Ａからのログアウトがない場合には、接続マネージャ５３は判定を「ＮＯ」、すなわち通信エラーがあったと判定して、Ｓ４０４に移行する。
【０１０５】
（Ｓ４０４）
Ｓ４０４では、接続マネージャ５３は、全てのティーチペンダントを接続不可にするようにリモートデスクトップサーバ５１の接続許可設定を変更して、
アプリケーション部５０は、通信エラー状態のまま、変更しない、すなわち、レジューム待ちの状態とする。
【０１０６】
このレジューム待ちの状態とは、第２実施形態と同様にアプリケーション部５０では通信エラーの通知があった時点で作成済の最新の差分画面データ及びＧＵＩ画面データを、記憶手段としてのＲＡＭ２３に記憶する。なお、これらのデータ（情報）は記憶手段としてのハードディスク２４に記憶するようにしてもよい。このようにして、通信エラーによる通信遮断があると、ＣＰＵ２１によりレジューム機能が実現される。この後、接続マネージャ５３は、Ｓ４０２に移行する。
【０１０７】
（再接続）
さて、ティーチペンダント１０Ａがコントローラ２０Ａに対して再接続を行う場合、正常時と同様に、ティーチペンダント１０Ａは、接続マネージャ５３にログインする。
【０１０８】
図１５に示すように、この場合、Ｓ３００で、「ＹＥＳ」と判定され、Ｓ３０２の処理が行われ、Ｓ３０４では、「ＹＥＳ」と判定される。
（Ｓ３１２）
Ｓ３１２では、接続マネージャ５３は、ティーチペンダント１０Ａに対して、レジューム／リセットの選択画面を送出して、選択させる。
【０１０９】
（Ｓ３１４）
Ｓ３１４において、ティーチペンダント１０Ａからリセットの信号（すなわち、リセット指示）が入力された場合、すなわち、リセットが選択指示された場合には、接続マネージャ５３はＳ３０８に移行する。従って、この場合は、Ｓ３０８において、アプリケーション部５０に初期化が指示されるため、アプリケーション部５０により初期化が行われる。
【０１１０】
又、Ｓ３１４において、ティーチペンダント１０Ａからレジュームの信号（すなわち、レジューム指示）が入力された場合、すなわち、レジュームが選択指示された場合には、接続マネージャ５３はＳ３１０に移行する。従って、この場合は、アプリケーション部５０に初期化が行われないため、レジューム待機状態が維持されることになる。
【０１１１】
このため、この後、Ｓ３１０で、ティーチペンダント１０Ａに接続許可通知が行われて、ティーチペンダント１０Ａからログインがリモートデスクトップサーバ５１にされると、通信エラー直前の状態から作業継続（レジューム）が行われることになる。
【０１１２】
なお、上記再接続の際において、ティーチペンダント１０Ａ以外のティーチペンダントがたまたま、ログインがあったときは、Ｓ３０４での接続履歴情報と同じではないととして判定されるため、この場合は、Ｓ３０６に移行されて、新規接続となる。
【０１１３】
さて、上記のように構成された第３実施形態では、下記の効果がある。
（１）  本実施形態では、ＣＰＵ２１（ＧＵＩ画面データ作成手段と差分画面データ生成手段）は、通信が遮断されたティーチペンダント１０Ａによりレジューム指示があったときは、遮断された位置からＧＵＩ画面データと、差分画面データをそれぞれ作成するようにした。又、通信が遮断されたティーチペンダント１０Ａからリセット指示があったときは、データ作成及びデータ生成をそれぞれリセットするようにした。
【０１１４】
この結果、本実施形態では、通信エラーにより通信が遮断されたティーチペンダント１０Ａの作業者は、通信が再開された際、通信エラーの状況に応じてレジューム指示かリセット指示のいずれかを必要に応じて出すことができる。そして、作業者は通信再開された後のティーチペンダント１０Ａに表示される画面を通信エラー前の状態か、或いは通信開始した初期の画面に戻した状態かを選ぶことができる。
【０１１５】
通信エラーには、通信エラーの原因が短時間で、解決される場合と短時間で解決できない場合とがあり、このため、短時間で解決できた場合には、レジューム指示を出すことにより、ティーチペンダント１０Ａに表示される画面を通信エラー前の状態に復旧させて、次の処理をティーチペンダント１０Ａを使用して出すことができる。
【０１１６】
又、通信エラーがすぐには解決できなかった場合には、リセット指示を出すことにより、リセットして、初期の状態からティーチングや、設定値の入力等を行うことができる。
なお、本発明の実施形態は以下のように変更してもよい。
【０１１７】
○  第１実施形態では、Ｓ２０において、ＣＰＵ２１はＧＵＩ画面に表示する情報の内容に基づいて図形や文字の描画により作成した。これに代えてティーチペンダント１０の液晶ディスプレイ１７に表示するＧＵＩ画面を描画するため、ＣＰＵ２１はＲＯＭ２２に格納した画面描画ＡＰＩ（Application Program Interface）２２ｇ（図１参照）へ描画命令を発行するようにしてもよい。この場合は、ＣＰＵ２１は下記の処理を行う。すなわち、ＣＰＵ２１は、画面描画ＡＰＩ２２ｇを用いてＧＵＩ画面を描画する場合、画面描画ＡＰＩ２２ｇの呼出し部には画面監視処理プログラムが追加されており、ＣＰＵ２１はこのプログラムを用いて画面描画ＡＰＩ２２ｇに対する描画命令をフックすることで、画面の変化を判定する。この場合は画面描画ＡＰＩ２２ｇ呼出しのタイミングが画面変化の発生タイミングとなるため、画面監視のために定期的なビデオＲＡＭ２８のポーリングや、比較による差分検出の処理が必要なく、コントローラ２０ＡのＣＰＵ２１の処理負荷が下がり、処理速度を向上させることができる。
【０１１８】
○  第１実施形態では、有線ＬＡＮでネットワークを構成したが、ネットワーク手段として無線ＬＡＮに代えてもよい。或いは単に無線でティーチペンダント１０と複数のコントローラ２０Ａ〜２０Ｃ間を交信可能としてもよい。又、無線に換えて、赤外線通信、光通信、或いは磁気通信等のワイヤレスで行う伝送方式の非有線通信手段で構成してもよいことは勿論のことである。
【０１１９】
○  前記各実施形態では、表示手段を液晶ディスプレイ１７にて構成したが、液晶ディスプレイ１７に限定されるものではない。プラズマディスプレイや、有機ＥＬディスプレイや、ＣＲＴディスプレイとしてもよい。
【０１２０】
○  第３実施形態では、レジューム／リセットを選択できるようにしたが、Ｓ３１２、Ｓ３１４を省略して、Ｓ３０４が「ＹＥＳ」と判定したときは、すなわち、接続履歴情報を参照して、Ｓ３０２で収集した固有情報と、一致していると判定すると、Ｓ３１０に移行するようにしてもよい。この場合、ＣＰＵ２１は判定手段に相当する。
【０１２１】
そして、このようにした場合には、ＣＰＵ２１（判定手段）が、通信要求のあったティーチペンダント１０Ａが通信が遮断されたティーチペンダント１０Ａと判定した際、ＣＰＵ２１（ＧＵＩ画面データ作成手段と差分画面データ生成手段）は、遮断された位置からＧＵＩ画面データと、差分画面データをそれぞれ作成する。
【０１２２】
この結果、通信が遮断されたティーチペンダントにのみ通信を再開したときに、容易に通信エラー前の状態に戻すことができる。例えば、ティーチペンダントにおいて、ティーチング中や、パラメータの設定値変更の途中等で通信エラーにより通信遮断が生じたとき、この効果は大きな利点となる。
【図面の簡単な説明】
【０１２３】
【図１】本発明の第１実施形態のロボット制御システムのコントローラとティーチペンダントのブロック回路図。
【図２】ティーチペンダントとコントローラの各ノードとの通信関係を示す説明図。
【図３】画面作成の制御フローチャート。
【図４】画面監視処理プログラムのフローチャート。
【図５】データ送信処理プログラム２２ｄのフローチャート。
【図６】データ受信処理プログラム１２ａのフローチャート。
【図７】画面描画処理プログラム１２ｂのフローチャート。
【図８】キー監視処理プログラム１２ｃのフローチャート。
【図９】データ送信処理プログラム１２ｄのフローチャート。
【図１０】データ受信処理プログラム２２ｆのフローチャート。
【図１１】キー操作処理プログラム２２ｅのフローチャート。
【図１２】第２実施形態の構成の機能ブロック図。
【図１３】同じく第２実施形態の接続監視プログラムのフローチャート。
【図１４】第３実施形態の構成の機能ブロック図。
【図１５】同じく第３実施形態の接続マネージャプログラムの接続処理フローチャート。
【図１６】同じく第３実施形態の接続マネージャプログラムの切断処理フローチャート。
【図１７】（ａ）は、第３実施形態の接続マネージャプログラムによる接続処理の説明図、（ｂ）は第３実施形態の接続マネージャプログラムによる切断処理の説明図。
【符号の説明】
【０１２４】
１０…ティーチペンダント（可搬式操作部）、
１１…ＣＰＵ（更新手段、第２出力手段、及び展開手段）、
１６…キーボード（キー操作手段）、１７…液晶ディスプレイ（表示手段）、
２０Ａ，２０Ｂ，２０Ｃ…コントローラ、
２１…ＣＰＵ（ＧＵＩ画面データ作成手段、差分画面データ生成手段、第１出力手段、圧縮手段、及び判定手段）。
【図１】
2008080475.tif 000003
【図２】
2008080475.tif 000004
【図３】
2008080475.tif 000005
【図４】
2008080475.tif 000006
【図５】
2008080475.tif 000007
【図６】
2008080475.tif 000008
【図７】
2008080475.tif 000009
【図８】
2008080475.tif 000010
【図９】
2008080475.tif 000011
【図１０】
2008080475.tif 000012
【図１１】
2008080475.tif 000013
【図１２】
2008080475.tif 000014
【図１３】
2008080475.tif 000015
【図１４】
2008080475.tif 000016
【図１５】
2008080475.tif 000017
【図１６】
2008080475.tif 000018
【図１７】
2008080475.tif 000019