ロボット制御システム
【課題】ネットワーク上で制御装置とティーチペンダントとを接続する際、制御装置とティーチペンダントのノード間の接続手続きを簡略化できるとともに、又、間違ったノード間で接続してしまうリスクや、複数のティーチペンダントが重複して接続してしまうリスクを低減できるロボット制御システムを提供する。
【解決手段】
安全ノード14はコントローラ番号に基づく安全ノード14のIPアドレスを有する。安全ノード14は入力されたコントローラ番号に基づき安全ノード24、14及び非安全ノード15のIPアドレスを生成する。安全ノード14にて生成された接続したいコントローラの安全ノード及び非安全ノードのIPアドレスと、安全ノード14と非安全ノードのIPアドレスを使用して接続したいコントローラと接続関係を確立する。
【解決手段】
安全ノード14はコントローラ番号に基づく安全ノード14のIPアドレスを有する。安全ノード14は入力されたコントローラ番号に基づき安全ノード24、14及び非安全ノード15のIPアドレスを生成する。安全ノード14にて生成された接続したいコントローラの安全ノード及び非安全ノードのIPアドレスと、安全ノード14と非安全ノードのIPアドレスを使用して接続したいコントローラと接続関係を確立する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワーク上でティーチペンダントとロボット制御装置(以下、制御装置という)とを接続する際、互いに接続関係を結ぶノードが間違えることなく接続できるロボット制御システムに関する。
【背景技術】
【0002】
従来から有線LAN(ローカル エリア ネットワーク)や無線LAN等のネットワーク上で機器間の接続を確立する場合、一方のノードが事前に接続対象のノードと通信を行い、煩雑なメッセージのやり取りを行うことで接続対象のノードを識別している。又、通信を行う機器のノード間は、前述した煩雑なメッセージのやり取りを行うという同様の手順により、現在の接続状態の確認や、接続が可能かどうかについて確認を行っている。
【0003】
特許文献1では、制御装置に持たせたWebサーバの機能と、ティーチペンダントに持たせたブラウザ機能により、ネットワーク上でティーチペンダントと制御装置とを接続するようにされている。この場合、接続対象の制御装置のURLアドレスを、操作者がティーチペンダント上で入力することにより、ティーチペンダントを接続する制御装置を指定することが行われている。特許文献1では、制御装置はティーチペンダントからの要求に応じるようにされており、制御装置が、接続関係にあるティーチペンダントを認識するための方法については、なんら開示されていない。
【0004】
又、特許文献2では、装置の起動時に、装置種別に応じたIPアドレスを割当てる方法が提案されている。ところで、ネットワーク上のノードに対して、DHCPやARPを用いてIPアドレスを自動的に割り当てる方法は既存技術として公知である。特許文献2では、この既存技術を元に、装置種別を表す装置IDを各ノードに設定しておき、DHCPサーバがIPアドレスを割当てる際、対象ノードの装置IDを参照して、データベース上で装置IDに関連付けられたIPアドレスを検索してIPアドレスの割当てを行うようにしている。このことにより、特定の機器に対して特定のIPアドレスを割当てることができる。このようにして、特許文献2では装置の起動時など、ノードがネットワークに参加する際に行う、IPアドレス割当て方法が行われている。しかし、特許文献2では、ネットワーク上で、制御装置と接続される機器との接続関係を明確化するための方法については開示されていない。
【特許文献1】特開2003−053688号公報
【特許文献2】特開2004−282119号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
ところで、産業用ロボットのティーチペンダントをネットワーク化あるいは無線化するとき、制御装置とティーチペンダントとの間で、制御装置のノードとティーチペンダントのノード間のシリアル通信を成立させる必要がある。
【0006】
しかし、従来は、接続関係になる互いのノードを識別する処理において、煩雑な確認メッセージのやり取りが必要であり、既にティーチペンダントと接続済みの制御装置に対して、他のティーチペンダントが重複して接続を行ってしまう可能性があった。又、従来は、接続関係になる互いのノード間で相手先アドレスを間違うリスクがあり、制御装置がティーチペンダントと接続状態かどうかを確認する処理において、煩雑な確認メッセージのやり取りが必要である。さらに、従来は、ティーチペンダントが制御装置と接続状態かどうか、またどの制御装置と接続しているかを判定する処理が複雑である問題がある。
【0007】
本発明の目的は、ネットワーク上で制御装置とティーチペンダントとを接続する際、制御装置のノードとティーチペンダントのノード間の接続手続きを簡略化できるとともに、又、間違ったノード間で接続してしまうリスクや、複数のティーチペンダントが重複して接続してしまうリスクを低減できるロボット制御システムを提供することにある。
【課題を解決するための手段】
【0008】
上記問題点を解決するために、請求項1に記載の発明は、可搬式操作部と、該可搬式操作部とネットワーク手段、又は非有線通信手段を介して情報を送受信するロボット制御用の複数のコントローラを備えたロボット制御システムにおいて、前記コントローラは、該コントローラの識別情報に基づいて算出された第1ホストアドレス部がネットワーク共通アドレス部に付加された第1ノードアドレスを有し、前記可搬式操作部は、前記コントローラの識別情報を入力するための入力手段と、入力された前記コントローラの識別情報に基づき、前記コントローラの第1ノードアドレスの作成と同じロジックで第1ノードアドレスを作成するとともに、前記第1ホストアドレス部に基づいてユニークな第2ホストアドレス部を生成して、前記ネットワーク共通アドレス部に付加して可搬式操作部の第2ノードアドレスを生成するノードアドレス生成手段を備え、前記ノードアドレス生成手段にて生成された第1ノードアドレス、及び第2ノードアドレスを使用して、接続したいコントローラと接続関係を確立することを特徴とするロボット制御システムを要旨とするものである。
【0009】
なお、非有線通信手段とは、無線通信(通信媒体:電波)、赤外線通信、光通信、或いは磁気通信を含み、いずれもワイヤレスで行う伝送方式のことをいう。
請求項2の発明は、請求項1において、前記可搬式操作部は、前記第2ノードアドレスの使用有無確認のためのARP(Address Ressolution Protocol)要求を前記ネットワーク手段又は前記非有線通信手段を介してブロードキャストする第1送出手段を備え、前記ARP要求に対する応答がない場合、前記ノードアドレス生成手段にて生成された第1ノードアドレス、及び第2ノードアドレスを使用して、前記識別情報が付与されたコントローラと接続関係を確立することを特徴とする。
【0010】
請求項3の発明は、請求項1において、前記コントローラは、前記第1ホストアドレス部に基づいてユニークに生成された第2ホストアドレス部が前記ネットワーク共通アドレス部に付加されてなる可搬式操作部の第2ノードアドレス及び前記第1ノードアドレスを記憶する記憶手段と、DHCPプロトコルに従い、ディスカバーパケットに応答して、前記記憶手段に記憶された第1及び第2ノードアドレスを含むオファーパケットを出力して、前記ディスカバーパケットを送信した可搬式操作部に対して前記第2ノードアドレスを割り当てる割当手段を備え、前記可搬式操作部は、前記ディスカバーパケットを送出するディスカバー送出手段と、前記オファーパケットの第1及び第2ノードアドレスが、前記ノードアドレス生成手段が生成した第1ノードアドレス及び第2ノードアドレスとそれぞれ一致するか否かを判定する判定手段と、前記判定手段の判定が一致したと判定した際、DHCPプロトコルに従いリクエストパケットを送信するリクエスト出力手段を備え、前記可搬式操作部は前記リクエストパケットを送信した後前記オファーパケットを送信したコントローラと接続手続きを進めることを特徴とする。
【0011】
請求項4の発明は、請求項3において、前記割当手段は、自身のコントローラが可搬式操作部と無接続状態にあるときのみ、ディスカバーパケットを受信した際に、該ディスカバーパケットを送信した可搬式操作部に対して前記第1及び第2ノードアドレスを含むオファーパケットを出力し、前記可搬式操作部は、前記リクエストパケットに対する応答のアックパケットを受信した際、該アックパケットを送信したコントローラと接続関係を確立することを特徴とする。
【0012】
請求項5の発明は、請求項3において、前記割当手段は、自身のコントローラが可搬式操作部との接続状態とは無関係に、ディスカバーパケットを受信した際に、該ディスカバーパケットを送信した可搬式操作部に対して前記第1及び第2ノードアドレスを含むオファーパケットを出力し、前記可搬式操作部は、前記リクエストパケットに対する応答のアックパケットを受信した際、ARP要求をブロードキャストする第2送出手段を備え、前記ARP要求に対し、いかなるノードからも応答がない場合、前記オファーパケットにより割り当てられた第2ノードアドレスを使用して、前記アックパケットを出力したコントローラと接続関係を確立することを特徴とする。
【0013】
請求項6の発明は、請求項1乃至請求項5のうちいずれか1項において、前記識別情報は数値であり、前記ロジックは、ノードアドレスの共通部分であるネットワーク共通アドレス部に対して、前記数値を整数倍した値をホストアドレス部として付加して、前記識別情報を有するコントローラのノードのノードアドレスにするものである。
【0014】
請求項7の発明は、請求項6において、前記整数倍の整数は、接続先のコントローラが持つ単数のノードの数と、前記可搬式操作部が持つ複数のノードの数の合計数であり、前記ノードアドレス生成手段は、第1ノードアドレスのホストアドレス部の数値を基にして得られるユニークな数値を第2ホストアドレス部として、ネットワーク共通アドレス部に付加することにより、前記可搬式操作部のノードのノードアドレスを生成することを特徴とする。
【0015】
請求項8の発明は、請求項6において、前記整数倍の整数は、接続先のコントローラが持つ複数のノードの数と、前記可搬式操作部が持つ単数又は複数のノードの数の合計数であり、前記ノードアドレス生成手段は、前記コントローラの1つのノードに対して、前記数値を整数倍した値を第1ホストアドレス部として有する第1ノードアドレスを作成し、前記コントローラの残りの他のノードに対しては、第1ノードアドレスの第1ホストアドレス部の数値を基にして得られるユニークな数値をホストアドレス部として、ネットワーク共通アドレス部に付加することにより、第3ノードアドレスとして作成することを特徴とする。
【0016】
請求項9の発明は、請求項7又は請求項8において、前記複数のノードは、機能別、負荷別、又は安全別に分けられていることを特徴とする。
【発明の効果】
【0017】
以上詳述したように、請求項1の発明によれば、接続したいロボット制御用のコントローラにユニークに割り当てられているコントローラの識別情報を入力手段にて入力するだけで、該コントローラ及び可搬式操作部のIPアドレスを簡単に得ることができる。そして、コントローラ及び可搬式操作部のIPアドレスは、接続したいコントローラの識別情報に基づいて一義的に得られるため、接続したいコントローラと煩雑な確認メッセージのやりとりが必要でなくなる。この結果、ネットワーク上でコントローラ(制御装置)と可搬式操作部とを接続する際、コントローラのノードと可搬式操作部のノード間の接続手続きを簡略化できるとともに、又、間違ったノード間で接続してしまうリスクや、複数のティーチペンダントが重複して接続してしまうリスクを低減できる。
【0018】
請求項2の発明によれば、可搬式操作部と既に接続済みのコントローラに対して、他の可搬式操作部が重複して接続を行うことがなくなるとともに、可搬式操作部とコントローラとの接続のための手続を簡略化することができる。
【0019】
請求項3の発明によれば、ネットワーク上でコントローラ(制御装置)と可搬式操作部とを接続する際、コントローラのノードと可搬式操作部のノード間の接続手続きを簡略化できるとともに、又、間違ったノード間で接続してしまうリスクや、複数のティーチペンダントが重複して接続してしまうリスクを低減できる。
【0020】
請求項4の発明によれば、前記割当手段は、自身のコントローラが可搬式操作部と無接続状態にあるときに、ディスカバーパケットを受信した際に、該ディスカバーパケットを送信した可搬式操作部に対して前記第1及び第2IPアドレスを含むオファーパケットを出力する。この結果、可搬式操作部は、オファーパケットを送信したコントローラが、他の可搬式操作部とは無接続状態にあることが分かるため、ARP要求をブロードキャストする必要がなく、接続関係を結びたいコントローラとは早期に接続関係を確立することができる。すなわち、可搬式操作部と既に接続済みのコントローラに対して、他の可搬式操作部が重複して接続を行うことがなくなるとともに、可搬式操作部とコントローラとの接続のための手続を簡略化することができる。
【0021】
請求項5の発明によれば、ネットワーク上で、コントローラと可搬式操作部とを接続する際、間違った装置間で接続してしまうリスクや、複数の可搬式操作部が重複して接続してしまうことがない。
【0022】
請求項6の発明によれば、接続したいコントローラの識別情報に基づいて得られるホストアドレス部を、ネットワーク手段で使用されるIPアドレスの共通部分であるネットワークアドレス部に付加するだけで該コントローラのIPアドレスを生成することができる。
【0023】
請求項7及び請求項8の発明によれば、コントローラや、ティーチペンダントのノード数がそれぞれ複数存在しても、それぞれのノードに対してアドレスが重複しないノードアドレスを作成することができる。仮に、識別情報の数値を整数倍する際の整数を、接続先のコントローラとティーチペンダントが持つ複数のノードの数の合計数よりも少なくすると、コントローラの数が増加するほど、又、ノード数が増加するほど、各ノードに対して重複したアドレスができてしまい、ユニークなアドレスを作成できなくなる問題がある。
【0024】
請求項9の発明によれば、機能別、負荷別、或いは、安全別にノードを区別すると、区別されたノード同士の交信ができる。このことにより、目的に応じた交信を行うことができる。又、より優先度の高いノードにおいて、いずれかを通信の信頼性を高くするためにコストを高くしても全体としてはコストを低減することができる。
【発明を実施するための最良の形態】
【0025】
(第1実施形態)
以下、本発明を教示装置である可搬式操作部としてのティーチペンダント10とロボット制御装置としての複数のコントローラ20とがネットワーク手段としての無線LANを介して通信を行うロボット制御システム30に具体化した第1実施形態を図1〜6を参照して説明する。
【0026】
このロボット制御システム30のコントローラ20A〜20Cがそれぞれ制御するロボットR1〜R3は、例えば溶接ロボットである、なお、ロボットは、溶接ロボットに限定されるものではなく、例えば搬送ロボット等の他のロボットであってもよい。なお、各コントローラの構成は同じであるため、コントローラ20Aの構成について以下では説明し、他のコントローラの説明を省略する。
【0027】
なお、説明の便宜上、以下の説明ではコントローラ20A〜20Cのいずれかを特定しない場合には、コントローラには20の符号を付す。同様に、ロボットR1〜R3のいずれかを特定しない場合には、ロボットにはRの符号を付す。
【0028】
図1に示すように可搬式操作部としてのティーチペンダント10はCPU11、ROM12、RAM13、安全ノード14、非安全ノード15、キーボード16、液晶ディスプレイ17及び有線・無線変換器18の各部を備えているとともに各部はバス19を介して接続されている。キーボード16は入力手段に相当する。
【0029】
ティーチペンダント10のROM12には、ティーチペンダント10からのロボットR1の操作や通信を実行するための各種制御プログラムとその制御定数が格納される。RAM13は、CPU11のワーキングエリアとして用いられ、計算途中のデータが一時的に格納される。
【0030】
安全ノード14及び非安全ノード15は、コントローラ20との接続に使用される通信部である。安全ノード14及び非安全ノード15の詳細な説明は後述する。又、有線・無線変換器18は、安全ノード14及び非安全ノード15を介して出力されたデータを無線で送信したり、コントローラ20から無線送信されたデータを受信して安全ノード14及び非安全ノード15に該データを出力する。
【0031】
次にコントローラ20Aの構成を説明する。
コントローラ20Aは、CPU21、ROM22、RAM23、安全ノード24、非安全ノード25、サーボドライバ26及び有線・無線変換器28の各部を備えているとともに前記各部はバス29を介して互いに接続されている。前記ROM22には、コントローラ20Aが制御対象とするロボットR1の動作制御を実行するための制御プログラム等の各種プログラムとその制御定数が格納される。なお、RAM23は、CPU21のワーキングエリアとして用いられ、計算途中のデータが一時的に格納される。安全ノード24及び非安全ノード25は、ティーチペンダント10との接続に使用される通信部である。安全ノード24及び非安全ノード25の詳細な説明は後述する。サーボドライバ26は、ロボットR1の各関節を駆動する図示しないモータに接続され、該モータに通電させる電流を制御する。
【0032】
次に、ティーチペンダント10及びコントローラ20が備える安全ノード14,24及び非安全ノード15,25について説明する。図3はノードのブロック図である。各ノードは、略同様の構成を有するため、以下、このノードの説明では、単にノードという。図3に示すようにノードは、LANの制御を行うための機能を持つコンピュータであって、CPU100とLANコントローラ101により、外部I/0103、有線・無線変換器18(或いは有線・無線変換器28)を介してLAN制御を行う。又、メモリ102には自ノードを構成しているネットワーク機器の物理アドレスであるMACアドレス(MediaAccess Control Address)などを保存する。なお、自ノードのネットワーク機器のMACアドレス以外にメモリ102に格納されるIPアドレスについては後述する。MACアドレスは公知のようにネットワーク機器に固有のアドレスである。
【0033】
本実施形態では、IPアドレスは、ノードアドレスに相当する。
そして、ティーチペンダント10の安全ノード14とコントローラ20の安全ノード24とが、交信できるようにされているとともに、ティーチペンダント10の非安全ノード15とコントローラ20の非安全ノード25間が交信できるようにされている。
【0034】
本実施形態では、安全ノード14,24間は、ロボットを非常停止等させる等の安全に関係するデータの信号(以下、安全信号という)の送受信が行われる。この安全信号の中には、後述するティーチペンダント10とコントローラ20との接続処理時に交信される各種信号が含まれる。又、非安全ノード15,25間は、ロボットを制御する場合に、安全に関係しないデータの信号(以下、非安全信号という)が交信される。このように、本実施形態では、非安全信号と安全信号との送受信を行うノードを分けて、別々送受信を行うことにより、非安全信号の送受信に関わりなく、安全ノード間で送受信される安全信号の伝達を確実、かつ高速に行うことが可能とされている。
【0035】
本実施形態では、ティーチペンダント10の安全ノード14、非安全ノード15、及び有線・無線変換器18、並びに、コントローラ20の安全ノード24、非安全ノード25、及び有線・無線変換器28とにより、無線LANからなるネットワーク手段が構成されている。なお、無線LANでは通信パケットによりティーチペンダント10、及びコントローラ20の各ノード間の交信が行われている。なお、本実施形態を含めた以下の各実施形態では、各種メッセージが作成されて交信相手に送信されるが、特段に説明が無くても通信パケットとして各種メッセージが作成されている。
【0036】
ここで、本実施形態で使用するIPアドレスについて説明する。
IP(Internet Protocol)アドレスは、外部ネットワークから特定のネットワーク(LAN)を指定するためのネットワークアドレス部(ネットワーク共通アドレス部)と、1つのネットワーク(LAN)内に接続された特定のコンピュータを指定するためのホストアドレス部とで構成される(図6参照)。ここで、ネットワークアドレス部は、1つのネットワークを指定するためのアドレスであり、そのネットワーク内では共通の値である。ホストアドレス部は、使用されるネットワーク内で使用されるユニークな値を有し、該ネットワークで使用されるノードを指定するためのものである。
【0037】
なお、IPアドレスは、インターネット接続には欠かせないアドレスであり、例えばIPv4では32ビット、IPv6では128ビットという固定長であって、インターネット上でホストを一意に識別することができる。
【0038】
本実施形態では、ノードアドレスとしてIPアドレスを使用しているが、本実施形態では、インターネットではなく、最大でも構内LANに使用される程度のネットワークを使用する。このため、ノードアドレスは、IPアドレスに限定されるものではなく、ネットワーク共通アドレス部と最下位アドレスであるホストアドレス部から構成されたプライベートアドレスで構成されていてもよい。
【0039】
そして、本実施形態では、この無線LANに繋がっている各コントローラ20の本体には識別情報としてのコントローラ番号(=ID)が図4に示すように明記され、ティーチペンダント10の操作者が該コントローラ番号を視認可能にされている。
【0040】
又、このコントローラ番号を基にコントローラ20及びティーチペンダント10の各ノードのIPアドレスが設定されている。具体的には、前記コントローラ番号が整数倍(本実施形態では4倍)された値がホストアドレス部(第1ホストアドレス部)とされるとともにこのホストアドレス部がIPアドレスの共通部分であるネットワークアドレス部に付加されて、コントローラ20の安全ノード24のIPアドレスにされている。このコントローラ20の安全ノード24のIPアドレスは第1ノードアドレスに相当する。コントローラ20の非安全ノード25のIPアドレスは第3ノードアドレスに相当する。又、ティーチペンダント10の安全ノード、及び非安全ノードのIPアドレスは、第2ノードアドレスに相当する。
【0041】
そして、表1に示すようにコントローラ20の安全ノード24のIPアドレスを基点にして、コントローラ20の非安全ノード25のIPアドレスのホストアドレス部は、安全ノード24のIPアドレスのホストアドレス部に数値「1」が加算された値とされている。具体的には、表1のコントローラ番号1では、安全ノード24のIPアドレス「192.168.1.4」を基点に、非安全ノード25のIPアドレス「192.168.1.5」のホストアドレス部「5」は、安全ノード24のIPアドレス「192.168.1.4」のホストアドレス部「4」に数値「1」が加算された値とされている。
【0042】
又、表1に示すようにコントローラ20の安全ノード24のIPアドレスを基点にして、ティーチペンダント10の安全ノード14のIPアドレスのホストアドレス部は、第2ホストアドレス部として、安全ノード24のIPアドレスのホストアドレス部に数値「2」が加算された値とされている。具体的には、表1のコントローラ番号1では、安全ノード24のIPアドレス「192.168.1.4」を基点に、安全ノード14のIPアドレス「192.168.1.6」のホストアドレス部「6」は、安全ノード24のIPアドレス「192.168.1.4」のホストアドレス部「4」に数値「2」が加算された値とされている。
【0043】
【表1】
又、表1に示すようにコントローラ20の安全ノード24のIPアドレスを基点にして、ティーチペンダント10の非安全ノード15のIPアドレスのホストアドレス部は、第2ホストアドレス部として安全ノード24のIPアドレスのホストアドレス部に数値「3」が加算された値とされている。具体的には、表1のコントローラ番号1では、安全ノード24のIPアドレス「192.168.1.4」を基点に、非安全ノード15のIPアドレス「192.168.1.7」のホストアドレス部「7」は、安全ノード24のIPアドレス「192.168.1.4」のホストアドレス部「4」に数値「3」が加算された値とされている。
【0044】
このようにして、コントローラ20の安全ノード24と非安全ノード25のホストアドレス部間は「1」のオフセット値を有する。又、コントローラ20の非安全ノード25とティーチペンダント10の安全ノード14のホストアドレス部間は「1」のオフセット値を有する。さらに、ティーチペンダント10の安全ノード14と非安全ノード15のホストアドレス部間は「1」のオフセット値を有する。このように、オフセット値は、一定となるようにされている。オフセット値はこの「1」に限定されるものではなく、「2」以上であってもよい。
【0045】
なお、前記整数倍の整数は、コントローラ20のノード数と、ティーチペンダント10のノード数の合計数が好ましいが、合計数を越えた整数であってもよい。なお、前記合成数よりも少ないと、ノード数分のホストアドレス部を作成できないため、好ましくない。本実施形態では、前記整数倍の整数は、コントローラ20のノード数「2」と、ティーチペンダント10のノード数「2」の合計数「4」である。
【0046】
そして、コントローラ20の安全ノード24のメモリ102には、該安全ノード24のIPアドレス、接続されるティーチペンダント10の安全ノード14のIPアドレス及び安全ノード24のネットワーク機器のMACアドレスが読み出し自在に予め保存されている。又、コントローラ20の非安全ノード25のメモリ102には、非安全ノード25のIPアドレス、接続されるティーチペンダント10の非安全ノード15のIPアドレス及び非安全ノード25のネットワーク機器のMACアドレスが読み出し自在に予め保存されている。
【0047】
一方、ティーチペンダント10の安全ノード14のメモリ102には、安全ノード14のネットワーク機器のMACアドレスが読み出し自在に保存されている。又、安全ノード14のメモリ102は、該安全ノード14のIPアドレス、及び接続されるコントローラ20の安全ノード24のIPアドレスが書き込み及び読み出し自在に保存される。
【0048】
又、ティーチペンダント10の非安全ノード15のメモリ102には、非安全ノード15のネットワーク機器のMACアドレスが読み出し自在に保存されている。又、ティーチペンダント10の非安全ノード15のメモリ102には、該非安全ノード15のIPアドレス、及び接続されるコントローラ20の非安全ノード25のIPアドレスが書き込み及び読み出し自在に保存される。
【0049】
さて、上記のように構成されたロボット制御システム30において、ティーチペンダント10とコントローラ20の接続処理を図5を参照して説明する。この実施形態は、ティーチペンダント10の安全ノード14、非安全ノード15に対し、ティーチペンダント10自身がIPアドレスの割当てを行うシステムである。
【0050】
1) ティーチペンダント10によるコントローラ20、ティーチペンダント10のIPアドレスの取得
図5は、ティーチペンダント10の安全ノード14のCPU100が実行する接続処理制御プログラムである。
【0051】
このプログラムは、ティーチペンダント10が接続処理モードに切り換えられた状態で、操作者が接続したいコントローラ20のコントローラ番号のキーボード16から入力があった際、CPU11から安全ノード14のCPU100への開始指示で該CPU100により起動される。
【0052】
なお、前記コントローラ番号の入力は、接続したいコントローラ20の本体に明記されているコントローラ番号を操作者が見て行われるため、操作者が接続したいコントローラ20のコントローラ番号を間違えることがない。
【0053】
なお、以下の説明では、説明の便宜上、「ノードのCPU100が処理する(行う)等」の旨を単に「ノードが処理する(行う)等」の形で記載するものとする。
図5の接続処理制御プログラムが起動されると、ティーチペンダント10の安全ノード14は入力された「コントローラ番号」を読み込み(S10)、操作者が接続したいコントローラ20の安全ノード24のIPアドレスに変換する(S12)。なお、図5では説明の便宜上、IPアドレスは「IP」に省略されている。又、ティーチペンダント10は「TP」に省略されている。
【0054】
この変換のロジックを図6に示す。図6の例では、IPアドレスの最下位アドレス(ホストアドレス部)は、「コントローラ番号」が4倍されることで求められている。そして、その他の上位部分は予め設定されたネットワーク共通アドレス部(ネットワークアドレス部)とされている。そして、接続したいコントローラ20の安全ノード24のIPアドレスは、ネットワーク共通アドレス部(ネットワークアドレス部)と「コントローラ番号」を4倍することで求めたホストアドレス部を最下位アドレスとして付加することで算出される。この算出は、前記コントローラ20の安全ノード24の算出と同じロジックである。
【0055】
次に、ティーチペンダント10の安全ノード14は、安全ノード14と非安全ノード15のIPアドレスの算出を行う(S16)。具体的には、コントローラ20において、コントローラ20の非安全ノード25、ティーチペンダント10の安全ノード14、及び非安全ノード15のIPアドレスを予め算出した仕方と同じであるので、説明を省略する。
【0056】
上記のようにしてティーチペンダント10の処理により取得されたコントローラ20の安全ノード24のIPアドレスは固定で、コントローラ20のコントローラ番号の4の倍数が割当てられている。コントローラ20側でもコントローラ20の安全ノード24のIPアドレスは同じロジックで設定されている。このため、IPアドレスを4で割った余りが0であれば、そのアドレスは接続したいコントローラ20の安全ノード24のものであり、例えばティーチペンダント10の非安全ノードのIPアドレスが割当てられているという可能性は無い。以上のことから、接続先のノードを識別するための処理が簡略化できる。
【0057】
2) ティーチペンダント10によるコントローラ20の接続可否確認
ティーチペンダント10は、自身が取得しようとしている安全ノード14と非安全ノード15のための2つのIPアドレスがネットワーク上で使用中でない事をARP要求をブロードキャストすることにより確認する(S18)。
【0058】
このように取得しようとしている2つのIPアドレスについて、安全ノード14はARPパケットをそれぞれブロードキャストして、ARP要求に対する応答を待つ。
ここで、IPアドレス使用状況の確認方法として、ARPによるアドレス検索について説明する。ARP(Address Resolution Protocol)はネットワーク上で、指定したIPアドレスが割当てられているノードのMACアドレスを調査するために使われるプロトコルである。IPアドレスはネットワーク上で各ノードに割り当てられたアドレスであるが、MACアドレスはこれとは無関係に、ノードのネットワーク機器に割当てられた固有IDである。ARPの使用方法は、調査を実行するノードが、調査するIPアドレスを指定したARPパケットを作成し、ネットワーク上のノードに対してブロードキャストを行う。これに対し、該ネットワーク上において、該当するIPアドレスを持つノードは、自らのMACアドレスを返答しなくてはいけないことになっている。すなわち、ARPに対して応答が無い場合は、この時点では該当するIPアドレスを持つノードがネットワーク上に存在しないということを意味している。
【0059】
そして、ARP要求してから所定時間待っても応答が無ければ(S20で「YES」)、ARP要求が行われたIPアドレスについては、安全ノード14は利用可能とみなす。一方、応答があった場合(S20で「NO」)は、該当IPアドレスは使用中であり、安全ノード14は他のティーチペンダント10が接続中のため接続不可と見なし、この制御プログラムを終了する。
【0060】
そして、安全ノード14は、安全ノード14と非安全ノード15のための2つのIPアドレスが使用可能であれば、ティーチペンダント10の安全ノード14及び非安全ノード15のIPアドレスとして、それぞれに前記IPアドレスを割当てる(S22)。このようにして、ティーチペンダント10は取得しようとするIPアドレスが空いていることを確認した上で、自らIPアドレスの割当てを行う。
【0061】
4) ティーチペンダント10とコントローラ20の接続確立
続いて、ティーチペンダント10の各ノードは割当てられたIPアドレスを使用するとともに、S12及びS14で取得されたコントローラ20の各ノードのIPアドレスを送出先のノードアドレスとして使用してティーチペンダント10とコントローラ20の間の接続の開始処理を行い、通信を開始する。このようにして、ティーチペンダント10と、コントローラ20間の接続が確立する。この通信が確立すると、安全ノード同士及び非安全ノード同士が、交信可能に接続され、接続されたコントローラ20が、他のティーチペンダント10と交信不能であることを意味している。
【0062】
なお、前記コントローラ20と1つのティーチペンダント10との接続が確立した状態で他のティーチペンダント10が接続を試みた場合、該接続を試みたティーチペンダント10からのARP要求に対しては接続が確立したティーチペンダント10が返答する。このため、他のティーチペンダント10は、自身のノードに対するIPアドレスを取得できないことになる。
【0063】
5) ティーチペンダント10とコントローラ20の接続切断
接続が確立したティーチペンダント10をコントローラ20から切断する場合、ティーチペンダント10の安全ノード14、非安全ノード15はともに割り当てられたIPアドレスを未設定状態(各ノードのメモリ102のIPアドレスの登録を抹消する。)に戻し、ARPコマンドに応答しないようにする。又、これにより、ティーチペンダント10とコントローラ20との通信は行われなくなる。以上の処理がティーチペンダント10の各ノードが行うことにより、接続が切断される。
【0064】
このように、本実施形態によれば、安全信号の送受信を行う一対のノードと、非安全信号の送受信を行う一対のノードの計4つのノードアドレス(IPアドレス)を、コントローラ20とティーチペンダント10の各ノードのCPUが間違えることなく認識することができる。
【0065】
さて、第1実施形態によれば、以下のような特徴がある。
(1) 本実施形態では、コントローラ20の安全ノード24は、該コントローラ20のコントローラ番号(識別情報)に基づいて算出されたホストアドレス部(第1ホストアドレス部)がネットワークアドレス部(ネットワーク共通アドレス部)に付加されたIPアドレス(第1ノードアドレス)を有するようにしている。
【0066】
又、ティーチペンダント10(可搬式操作部)は、コントローラ20のコントローラ番号を入力するためのキーボード16(入力手段)を備える。
又、ティーチペンダント10の安全ノード14のCPU100は、ノードアドレス生成手段として、入力されたコントローラ20のコントローラ番号に基づきコントローラ20の第1ノードアドレスの作成と同じロジックで安全ノード24のIPアドレス(第1ノードアドレス)を作成する。さらに、安全ノード14のCPU100は、第1ホストアドレス部に基づいてユニークな第2ホストアドレス部を生成して、ネットワーク共通アドレス部に付加して安全ノード14、及び非安全ノード15のIPアドレス(第2ノードアドレス)を生成するようにしている。そして、安全ノード14のCPU100にて生成された接続したいコントローラ20の安全ノード及び非安全ノードのIPアドレスと、ティーチペンダント10の安全ノードと非安全ノードのIPアドレスを使用して、接続したいコントローラ20と接続関係を確立するようにした。
【0067】
この結果、接続したいロボット制御用のコントローラ20にユニークに割り当てられているコントローラ20のコントローラ番号をキーボード16にて入力するだけで、該コントローラ20及びティーチペンダント10のIPアドレスを簡単に得ることができる。そして、コントローラ20及びティーチペンダント10のIPアドレスは、接続したいコントローラ20のコントローラ番号に基づいて一義的に得られるため、接続したいコントローラ20と煩雑な確認メッセージのやりとりが必要でなくなる。この結果、ネットワーク上でコントローラ20とティーチペンダント10とを接続する際、LANコントローラのノードとティーチペンダント10のノード間の接続手続きを簡略化できるとともに、又、間違ったノード間で接続してしまうリスクや、複数のティーチペンダント10が重複して接続してしまうリスクを低減できる。
【0068】
(2) 本実施形態では、ティーチペンダント10の安全ノード14のCPU100は第1送出手段としてティーチペンダント10の安全ノード14、及び非安全ノード15のIPアドレスの使用有無確認のためのARP要求を無線LAN(ネットワーク)を介してブロードキャストするようにした。
【0069】
そして、ティーチペンダント10の安全ノード14のCPU100は、前記ARP要求に対する応答がない場合、接続したいコントローラ20の安全ノード24、及び非安全ノード25、並びにティーチペンダント10の安全ノード14及び非安全ノード15のIPアドレスを使用して、前記コントローラ20と接続関係を確立するようにした。
【0070】
この結果、ティーチペンダント10と、既に接続済みのコントローラ20に対して、他のティーチペンダント10が重複して接続を行うことがなくなるとともに、ティーチペンダント10とコントローラ20との接続のための手続を簡略化することができる。
【0071】
(3) 本実施形態では、コントローラ20の識別情報としてはコントローラ番号の数値としている。そして、ティーチペンダント10の安全ノード14のCPU100は、ノードアドレスの共通部分であるネットワーク共通アドレス部に対して、前記数値を整数倍した値をホストアドレス部として付加して、接続したいコントローラ20のノードのノードアドレスにするようにした。この結果、接続したいコントローラ20のコントローラ番号に基づいて得られるホストアドレス部を、無線LANで使用されるIPアドレスの共通部分であるネットワークアドレス部に付加するだけで該コントローラ20のIPアドレスを容易に生成することができる。
【0072】
(4) 本実施形態では、コントローラ番号の数値を整数倍する際の整数は、接続先のコントローラ20が持つ複数のノードの数と、ティーチペンダント10が持つ複数のノードの数の合計数としている。
【0073】
そして、ティーチペンダント10の安全ノード14のCPU100は、コントローラ20の安全ノード24に対して、前記数値を整数倍した値を、該安全ノードのIPアドレスの第1ホストアドレス部(ホストアドレス部)とした。
【0074】
又、前記安全ノード14のCPU100は、コントローラ20の非安全ノード25のIPアドレス(第3ノードアドレス)を、安全ノード24のIPアドレス(第1ノードアドレス)の第1ホストアドレス部の数値を基にして得られるユニークな数値をホストアドレス部として、ネットワーク共通アドレス部に付加して作成した。
【0075】
この結果、コントローラとCPU100とのノード数がそれぞれ複数存在しても、それぞれのノードに対してアドレスが重複しないノードアドレスを作成することができる。仮に、コントローラ番号の数値を整数倍する際の整数を、接続先のコントローラ20が持つ複数のノードの数と、ティーチペンダント10が持つ複数のノードの数の合計数よりも少なくすると、コントローラ20の数やノード数が増加するほど、各ノードに対して重複したアドレスができてしまい、ユニークなアドレスを作成できなくなる問題がある。
【0076】
(5) 本実施形態では、ティーチペンダント10とコントローラ20とはそれぞれ複数のノードを有するようにし、それぞれのノードは、安全別に分けられている。このようにすると、安全信号専用のノードと、非安全信号専用のノードに分けて各ノード同士が交信でき、例えば安全信号を扱う機器に比較的信頼性の高い通信機器を用意したりすることにより、ロボットの制御をより安全に行うことができるという効果がある。
【0077】
(6) 本実施形態では、安全ノードは非常停止などの安全に関係するデータの送受信を行うためのノードである。非安全ノードは、安全に関係しないデータの送受信を行うためのノードである。安全ノードと非安全ノードとの送受信をノードを独立させることにより、安全ノードで送受信される安全データの伝達を確実かつ高速に行うことが可能になる。
【0078】
(第2実施形態)
次に、第2実施形態を図7及び図8を参照して説明する。第2実施形態のロボット制御システム30のハード構成は、第1実施形態と同一であるため、同一構成には同一符号を付して、その説明を省略し、作用の異なるところを中心にして説明する。
【0079】
第2実施形態のロボット制御システム30は、コントローラ20のノードがティーチペンダント10の安全ノードに対してIPアドレスの割当てを行うシステムである。
なお、第2実施形態の無線LANにおいては、コントローラ20がティーチペンダント10に対してIPアドレスを割当てるようにしている。このため、第2実施形態では、例としてDHCPプロトコルを用いて説明する。ここで、DHCP(Dynamic Host Configuration Protocol)は、接続の開始時に動的にIPアドレスを割り当て、接続の終了時にIPアドレスを回収するためのプロトコルである。アドレス割当てを行うノードをDHCPサーバと呼ぶ。DHCPサーバにアクセスしてIPアドレスを取得するノードをDHCPクライアントと呼ぶ。第2実施形態では、このDHCPサーバ機能はコントローラ20が有するとともにティーチペンダント10のノードはDHCPクライアントとなる。
【0080】
図8は、ティーチペンダント10の安全ノード14のCPU100が実行する接続処理制御プログラムである。該プログラムは、第1実施形態と同様に起動される。又、図8のフローチャートにおいて、S10〜S16までは第1実施形態と同様であるため説明を省略する。
【0081】
なお、以下の説明では、説明の便宜上、「ノードのCPU100が処理する(行う)等」の旨を単に「ノードが処理する(行う)等」の形で記載するものとする。
S30では、ティーチペンダント10の安全ノード14は、無線LANにディスカバー(DISCOVER)パケットをブロードキャストする(図7参照)。なお、図7では、説明の便宜上、無線LAN上では、CPU100、コントローラ20A、20Bのみが図示されている。このパケットには、自ノードのIPアドレスはまだないため、「0.0.0.0」(10進数表記)とするとともに、宛先IPアドレスは、「255,255.255,255」(10進数表記)とする。又、CPU100はこのパケット中の宛先MACアドレスは「FF:FF:FF:FF:FF:FF」とするとともに送信元MACアドレスは自身のMACアドレスとする。続いて、安全ノード14は無線LAN上のコントローラ20からのIPアドレスのオファーパケットの応答を所定時間待つ(S32,図7参照)。
【0082】
コントローラ20の安全ノード24は、ティーチペンダント10に割り当てるティーチペンダント10の安全ノード14のIPアドレス(以下、候補IPアドレスという)と、自身のIPアドレスをメモリ102から読み出す。そして、安全ノード24は、該候補IPアドレスを宛先IPアドレスとするとともに、自身のIPアドレスを送信元IPアドレスとしてオファーパケットに含ませてティーチペンダント10にユニキャストする。
【0083】
なお、前記第1実施形態で説明したように、コントローラ20の安全ノード24のメモリ102には、該安全ノード24のIPアドレス、接続されるティーチペンダント10の安全ノード14のIPアドレス及び安全ノード24のネットワーク機器のMACアドレスが読み出し自在に予め保存されている。
【0084】
このオファーパケットは、前述したように候補IPアドレスを宛先IPアドレスにしてティーチペンダント10の安全ノード14にユニキャストで送られるが、ティーチペンダント10の安全ノード14は、そのアドレスを使用していないため、認識できない。
【0085】
しかし、オファーパケットに含まれる宛先MACアドレスには前記ディスカバーパケットで送信元MACアドレスで使用したティーチペンダント10の安全ノード14のMACアドレスが指定される。この結果、受信側のティーチペンダント10の安全ノード14は、このオファーパケットを正しく受信することができる。
【0086】
続く、S34では、安全ノード14は、オファーパケットの候補IPアドレスが、S16で取得した安全ノード14のIPアドレスと一致するか、及び送信元IPアドレスが、S12で取得したコントローラ20のIPアドレスと一致するかを判定する。ここで、単数又は複数のオファーパケットを受信して、1つのオファーパケットにおいて、両者がともに一致していた場合(S34の判定が「YES」)は、安全ノード14は、S36に移行する。又、安全ノード14は、単数、又は複数のオファーパケットを受信して、いずれのオファーパケットにおいて、前記両者がともに一致していない場合(S34の判定が「NO」)は、この制御プログラムを終了する。すなわち、この場合は、安全ノード14は、IPアドレスの割当候補がなかったとして判断する。
【0087】
S36では、安全ノード14は、正式な割当要求を行うためにリクエストパケットをブロードキャストする(図7参照)。ここで、IPアドレスの正式な割当要求であるリクエストパケットを受けたコントローラ20の安全ノード24は、クライアントであるティーチペンダント10の安全ノード14に対して正式に安全ノード14のIPアドレスを割り当てるために、アック(ACK)パケットをティーチペンダント10の安全ノード14に送出する。
【0088】
安全ノード14は、このアック(ACK)パケットを受信すると(S38の判定が「YES」)、このアックパケットに含まれる安全ノード14のための候補IPアドレスに基づいて安全ノード14は、該候補IPアドレスにオフセット値(「1」)を加算することにより、非安全ノード15のIPアドレスを算出し、非安全ノード15に送信する。そして、非安全ノード15は、受信したIPアドレスをメモリ102に保存する。
【0089】
続いて、安全ノード14は、第1実施形態と同様にS18〜S24の処理を行う。
このように第2実施形態では、コントローラ20にDHCPサーバの機能を持たせてコントローラ20からティーチペンダント10の安全ノード14のIPアドレスを自動で割り当て、ティーチペンダント10がDHCPクライアントとしてコントローラ20からIPアドレスの取得を行う。そして、コントローラ20が、ティーチペンダント10の安全ノード用に割り当て可能なアドレスは、1アドレスだけである。
【0090】
なお、ティーチペンダント10をコントローラ20から切断する場合は、ティーチペンダント10の、安全ノード14及び非安全ノード15は、接続先のコントローラ20にIPアドレスを返却するとともに、IPアドレス未設定状態に戻すことにより、接続が切断される。
【0091】
さて、第2実施形態によれば、第1実施形態の(6)の効果を実現できるとともに、以下のような特徴がある。
(1) 第2実施形態では、コントローラ20の安全ノード24のメモリ102は記憶手段として、ティーチペンダント10の安全ノード14のIPアドレス(第2ノードアドレス)及び安全ノード24のIPアドレス(第1ノードアドレス)を記憶するようにした。又、安全ノード24はDHCPプロトコルに従い、ディスカバーパケットに応答して、前記メモリ102に記憶された安全ノード14のIPアドレス及び安全ノード24のIPアドレスを含むオファーパケットを出力して、前記ディスカバーパケットを送信したティーチペンダント10に対して安全ノード14のIPアドレスを割り当てるようにした。
【0092】
一方、ティーチペンダント10の安全ノード14は、ディスカバー送出手段としてディスカバーパケットを送出するようにし、判定手段としてオファーパケットの安全ノード14のIPアドレス及び安全ノード24のIPアドレスが、S12,S16で取得したIPアドレスとそれぞれ一致するか否かを判定するようにした。そして、安全ノード14はリクエスト出力手段として、一致したと判定した際、DHCPプロトコルに従いリクエストパケットを送信するようにした。又、ティーチペンダント10は、該リクエストパケットを送信した後、前記オファーパケットを送信したコントローラ20と接続手続きを進めるようにした。
【0093】
この結果、無線LANのネットワーク上でコントローラ20とティーチペンダント10とを接続する際、コントローラ20の安全ノード24とティーチペンダント10の安全ノード14間の接続手続きを簡略化できるとともに、又、間違ったノード間で接続してしまうリスクや、複数のティーチペンダント10が重複して接続してしまうリスクを低減できる。
【0094】
(2) 第2実施形態では、コントローラ20の安全ノード24は割当手段として、自身のコントローラ20がティーチペンダント10との接続状態とは無関係に、ディスカバーパケットを受信した際に、該ディスカバーパケットを送信した可搬式操作部に対して前記第1及び第2ノードアドレスを含むオファーパケットを出力するようにした。
【0095】
そして、ティーチペンダント10の安全ノード14は、第2送出手段として、記リクエストパケットに対する応答のアックパケットを受信した際、ARP要求をブロードキャストするようした。そして、安全ノード14は、ARP要求に対し、いかなるノードからも応答がない場合、前記オファーパケットにより割り当てられた候補IPアドレスを使用して、アックパケットを出力したコントローラ20と接続関係を確立するようにした。この結果、無線LANのネットワーク上で、コントローラ20とティーチペンダント10とを接続する際、間違った装置間で接続してしまうリスクや、複数のティーチペンダント10が重複して接続してしまうことがない。
【0096】
なお、本発明の実施形態は以下のように変更してもよい。
○ 第1実施形態、及び第2実施形態では、ティーチペンダント10とコントローラ20にそれぞれ2つのノードを設けて計4につしたが、接続に必要なノードの数は4つでなくとも良い。
【0097】
図9に示すように、コントローラ20に1つのノード40Aが設けられるとともにティーチペンダント10に2つのノード10A,10Bが設けられ、1つのノード40Aに対して、ティーチペンダント10側の2つのノード10A,10Bがそれぞれ交信できるものに具体化することも可能である。この場合、ノード10A,10Bのいずれか1つのノードが、第1又は第2実施形態度と同様に接続関係の最初の処理が行われるようにすればよい。
【0098】
○ 又、図10に示すように、コントローラ20に2つのノード40A,40Bが設けられるとともにティーチペンダント10に1つのノード10Aが設けられ、2つのノード40A,40Bに対して、ティーチペンダント10側の1つのノード10Aが交信できるものに具体化することも可能である。この場合、ノード10Aが、コントローラのいずれか1つのノードに対して第1又は第2実施形態度と同様に接続関係の最初の処理が行われるようにすればよい。
【0099】
○ 又、第1実施形態では、安全ノード24のIPアドレスを基点にして、ホストアドレス部に所定値をそれぞれ加算することにより、第2ノードアドレス及び第3ノードアドレスを作成した。この代わりに基点のIPアドレスのホストアドレス部に所定値をそれぞれ減算して、第2ノードアドレス及び第3ノードアドレスを形成してもよい。
【0100】
或いは、基点のIPアドレスのホストアドレス部に所定値をそれぞれ乗算して、第2ノードアドレス及び第3ノードアドレスを形成してもよい。
○ 第1実施形態、及び第2実施形態では、ノードを安全ノードと非安全ノードに分けたがこれ以外の観点からノードを区別して分けても良い、例えば、機能による分割、負荷の大小関係によってノードを変更してもよい。なお、このように区分けする場合には、少なくとも同一ネットワーク内においては統一する必要がある。
【0101】
機能によってノードを分けた場合は、機能別、又は負荷別に割れると、区別されたノード同士の交信ができる。このことにより、目的に応じた交信を行うことができる。又、より優先度の高いノードにおいて、いずれかを通信の信頼性を高くするためにコストを高くしても全体としてはコストを低減することができる。
【0102】
○ 第2実施形態の構成中、安全ノード24はディスカバーパケットを受信した際、他のティーチペンダント10と接続していない場合のみ、該候補IPアドレスを宛先IPアドレスとするとともに、自身のIPアドレスを送信元IPアドレスとしてオファーパケットに含ませてティーチペンダント10にユニキャストするプロトコルとしてもよい。このようにすると、第2実施形態の図8において、S18〜S20の処理が省略できる。
【0103】
従って、この変形の実施形態では、安全ノード24は、自身のコントローラ20がティーチペンダント10と無接続状態にあるときのみ、ディスカバーパケットを受信した際に、ディスカバーパケットを送信したティーチペンダント10に対して第1及び第2ノードアドレスを含むオファーパケットを出力する割当手段に相当する。
【0104】
この結果、ティーチペンダント10へオファーパケットを送信したコントローラ20が、他のティーチペンダント10とは無接続状態にあることが分かるため、ARP要求をブロードキャストする必要がなく、接続関係を結びたいコントローラ20とは早期に接続関係を確立することができる。すなわち、ティーチペンダント10と既に接続済みのコントローラ20に対して、他のティーチペンダント10が重複して接続を行うことがなくなるとともに、ティーチペンダント10とコントローラ20との接続のための手続を簡略化することができる。
【0105】
○ 前記各実施形態では、コントローラ20の識別情報をコントローラ番号としたが、コントローラ番号に限定されるものではない。
例えば、複数のコントローラ20の本体に、それぞれ識別名を明記し、この識別名の文字数を他のコントローラ20の識別名の数と異なる文字数で構成してもよい。この場合、コントローラ番号の代わりに、この文字数をキーボード16にて入力する。従って、この文字数がコントローラ20の識別情報となる。例えば、第1番目のコントローラ20には「A」、第2番目のコントローラ20には「AA」、第3番目のコントローラ20には「AAA」のように明記する。なお、「A」は、任意の符号(文字、数字、記号等を含む)を示す。
【0106】
○ 前記各実施形態では、ティーチペンダント10と、コントローラ20との接続処理は、安全ノード間で行うようにしたが、非安全ノード間で行うようにしてもよい。
○ 前記各実施形態では、無線LANでネットワークを構成したが、有線LANや、無線通信(通信媒体:電波)、赤外線通信、光通信、或いは磁気通信等のワイヤレスで行う伝送方式の非有線通信手段で構成してもよいことは勿論のことである。
【0107】
○ 前記各実施形態では、ティーチペンダント10とコントローラ20は、それぞれCPU11,21をホストCPUとして使用したが、ティーチペンダント10とコントローラ20のそれぞれが備えるノードのうち、一方のノードのCPUをホストCPUとして機能させてもよい。
【0108】
図11を参照して、具体的に説明する。なお、第1実施形態と同一構成又は相当する構成については同一符号を付す。ティーチペンダント10の安全ノード14は、CPU14a、ROM14b、RAM14c、シリアル通信器14d及び有線ネットワーク14eの各部を備えているとともに前記各部はバス14fを介して互いに接続されている。有線ネットワーク14eは有線・無線変換器18に接続されている。前記ROM14bには、安全ノード14が有線・無線変換器18を介して通信を行うための接続処理プログラム等の各種プログラムとその制御定数が格納される。
【0109】
又、ティーチペンダント10の非安全ノード15は、CPU15a、ROM15b、RAM15c、シリアル通信器15d、有線ネットワーク15e、キーボード15g、及び液晶ディスプレイ15hの各部を備えているとともに前記各部はバス15fを介して互いに接続されている。有線ネットワーク15eは有線・無線変換器18に接続されている。前記ROM15bには、非安全ノード15が有線・無線変換器18を介して通信を行うための接続処理プログラム等の各種プログラムとその制御定数が格納される。そして、この変形例においては、非安全ノード15のCPU15aを、ノードアドレス生成手段、第1送出手段、第2送出手段、ディスカバー送出手段、判定手段、リクエスト出力手段として構成する。
【0110】
一方、コントローラ20の安全ノード24は、CPU24a、ROM24b、RAM24c、シリアル通信器24d、有線ネットワーク24e及びサーボドライバ26に接続されたI/O24gの各部を備えているとともに前記各部はバス24fを介して互いに接続されている。有線ネットワーク24eは有線・無線変換器28に接続されている。前記ROM24bには、安全ノード24が有線・無線変換器28を介して通信を行うための接続処理プログラム等の各種プログラムとその制御定数が格納される。
【0111】
又、コントローラ20の非安全ノード25は、CPU25a、ROM25b、RAM25c、シリアル通信器25d、有線ネットワーク25e、及びサーボドライバ26に接続されたインタフェイス25gの各部を備えているとともに前記各部はバス25fを介して互いに接続されている。有線ネットワーク25eは有線・無線変換器28に接続されている。前記ROM25bには、非安全ノード25が有線・無線変換器28を介して通信を行うための接続処理プログラム等の各種プログラムとその制御定数が格納される。そして、非安全ノード25のCPU25aを割当手段とする。このように構成しても第1実施形態と同様の作用効果を奏することができる。
【図面の簡単な説明】
【0112】
【図1】本発明の第1実施形態のロボット制御システムのコントローラとティーチペンダントのブロック回路図。
【図2】ティーチペンダントとコントローラの各ノードとの通信関係を示す説明図。
【図3】コントローラ、及びティーチペンダントの各ノードのブロック図。
【図4】同じくコントローラ番号をコントローラ20A〜20Cに記名した状態を表す説明図。
【図5】ティーチペンダントの安全ノードのCPUが実行する接続処理制御プログラムのフローチャート。
【図6】IPアドレスの説明図。
【図7】第2実施形態のアドレス割当のシーケンス図。
【図8】第2実施形態のティーチペンダントの安全ノードのCPUが実行する接続処理制御プログラムのフローチャート。
【図9】他の変形の実施形態の図2相当図。
【図10】他の変形の実施形態の図2相当図。
【図11】他の変形の実施形態のロボット制御システムのコントローラとティーチペンダントのブロック回路図。
【符号の説明】
【0113】
10…ティーチペンダント(可搬式操作部)、14…ティーチペンダント10の安全ノード、15…ティーチペンダント10の非安全ノード、24…コントローラ20の安全ノード、25…コントローラ20の非安全ノード、20…コントローラ、100…ティーチペンダント、コントローラの各ノードのCPU(ティーチペンダントの安全ノード14のCPU100は、ノードアドレス生成手段、第1送出手段、第2送出手段、ディスカバー送出手段、判定手段、リクエスト出力手段に相当し、コントローラのCPU100は割当手段に相当する。)、102…メモリ(記憶手段)。
【技術分野】
【0001】
本発明は、ネットワーク上でティーチペンダントとロボット制御装置(以下、制御装置という)とを接続する際、互いに接続関係を結ぶノードが間違えることなく接続できるロボット制御システムに関する。
【背景技術】
【0002】
従来から有線LAN(ローカル エリア ネットワーク)や無線LAN等のネットワーク上で機器間の接続を確立する場合、一方のノードが事前に接続対象のノードと通信を行い、煩雑なメッセージのやり取りを行うことで接続対象のノードを識別している。又、通信を行う機器のノード間は、前述した煩雑なメッセージのやり取りを行うという同様の手順により、現在の接続状態の確認や、接続が可能かどうかについて確認を行っている。
【0003】
特許文献1では、制御装置に持たせたWebサーバの機能と、ティーチペンダントに持たせたブラウザ機能により、ネットワーク上でティーチペンダントと制御装置とを接続するようにされている。この場合、接続対象の制御装置のURLアドレスを、操作者がティーチペンダント上で入力することにより、ティーチペンダントを接続する制御装置を指定することが行われている。特許文献1では、制御装置はティーチペンダントからの要求に応じるようにされており、制御装置が、接続関係にあるティーチペンダントを認識するための方法については、なんら開示されていない。
【0004】
又、特許文献2では、装置の起動時に、装置種別に応じたIPアドレスを割当てる方法が提案されている。ところで、ネットワーク上のノードに対して、DHCPやARPを用いてIPアドレスを自動的に割り当てる方法は既存技術として公知である。特許文献2では、この既存技術を元に、装置種別を表す装置IDを各ノードに設定しておき、DHCPサーバがIPアドレスを割当てる際、対象ノードの装置IDを参照して、データベース上で装置IDに関連付けられたIPアドレスを検索してIPアドレスの割当てを行うようにしている。このことにより、特定の機器に対して特定のIPアドレスを割当てることができる。このようにして、特許文献2では装置の起動時など、ノードがネットワークに参加する際に行う、IPアドレス割当て方法が行われている。しかし、特許文献2では、ネットワーク上で、制御装置と接続される機器との接続関係を明確化するための方法については開示されていない。
【特許文献1】特開2003−053688号公報
【特許文献2】特開2004−282119号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
ところで、産業用ロボットのティーチペンダントをネットワーク化あるいは無線化するとき、制御装置とティーチペンダントとの間で、制御装置のノードとティーチペンダントのノード間のシリアル通信を成立させる必要がある。
【0006】
しかし、従来は、接続関係になる互いのノードを識別する処理において、煩雑な確認メッセージのやり取りが必要であり、既にティーチペンダントと接続済みの制御装置に対して、他のティーチペンダントが重複して接続を行ってしまう可能性があった。又、従来は、接続関係になる互いのノード間で相手先アドレスを間違うリスクがあり、制御装置がティーチペンダントと接続状態かどうかを確認する処理において、煩雑な確認メッセージのやり取りが必要である。さらに、従来は、ティーチペンダントが制御装置と接続状態かどうか、またどの制御装置と接続しているかを判定する処理が複雑である問題がある。
【0007】
本発明の目的は、ネットワーク上で制御装置とティーチペンダントとを接続する際、制御装置のノードとティーチペンダントのノード間の接続手続きを簡略化できるとともに、又、間違ったノード間で接続してしまうリスクや、複数のティーチペンダントが重複して接続してしまうリスクを低減できるロボット制御システムを提供することにある。
【課題を解決するための手段】
【0008】
上記問題点を解決するために、請求項1に記載の発明は、可搬式操作部と、該可搬式操作部とネットワーク手段、又は非有線通信手段を介して情報を送受信するロボット制御用の複数のコントローラを備えたロボット制御システムにおいて、前記コントローラは、該コントローラの識別情報に基づいて算出された第1ホストアドレス部がネットワーク共通アドレス部に付加された第1ノードアドレスを有し、前記可搬式操作部は、前記コントローラの識別情報を入力するための入力手段と、入力された前記コントローラの識別情報に基づき、前記コントローラの第1ノードアドレスの作成と同じロジックで第1ノードアドレスを作成するとともに、前記第1ホストアドレス部に基づいてユニークな第2ホストアドレス部を生成して、前記ネットワーク共通アドレス部に付加して可搬式操作部の第2ノードアドレスを生成するノードアドレス生成手段を備え、前記ノードアドレス生成手段にて生成された第1ノードアドレス、及び第2ノードアドレスを使用して、接続したいコントローラと接続関係を確立することを特徴とするロボット制御システムを要旨とするものである。
【0009】
なお、非有線通信手段とは、無線通信(通信媒体:電波)、赤外線通信、光通信、或いは磁気通信を含み、いずれもワイヤレスで行う伝送方式のことをいう。
請求項2の発明は、請求項1において、前記可搬式操作部は、前記第2ノードアドレスの使用有無確認のためのARP(Address Ressolution Protocol)要求を前記ネットワーク手段又は前記非有線通信手段を介してブロードキャストする第1送出手段を備え、前記ARP要求に対する応答がない場合、前記ノードアドレス生成手段にて生成された第1ノードアドレス、及び第2ノードアドレスを使用して、前記識別情報が付与されたコントローラと接続関係を確立することを特徴とする。
【0010】
請求項3の発明は、請求項1において、前記コントローラは、前記第1ホストアドレス部に基づいてユニークに生成された第2ホストアドレス部が前記ネットワーク共通アドレス部に付加されてなる可搬式操作部の第2ノードアドレス及び前記第1ノードアドレスを記憶する記憶手段と、DHCPプロトコルに従い、ディスカバーパケットに応答して、前記記憶手段に記憶された第1及び第2ノードアドレスを含むオファーパケットを出力して、前記ディスカバーパケットを送信した可搬式操作部に対して前記第2ノードアドレスを割り当てる割当手段を備え、前記可搬式操作部は、前記ディスカバーパケットを送出するディスカバー送出手段と、前記オファーパケットの第1及び第2ノードアドレスが、前記ノードアドレス生成手段が生成した第1ノードアドレス及び第2ノードアドレスとそれぞれ一致するか否かを判定する判定手段と、前記判定手段の判定が一致したと判定した際、DHCPプロトコルに従いリクエストパケットを送信するリクエスト出力手段を備え、前記可搬式操作部は前記リクエストパケットを送信した後前記オファーパケットを送信したコントローラと接続手続きを進めることを特徴とする。
【0011】
請求項4の発明は、請求項3において、前記割当手段は、自身のコントローラが可搬式操作部と無接続状態にあるときのみ、ディスカバーパケットを受信した際に、該ディスカバーパケットを送信した可搬式操作部に対して前記第1及び第2ノードアドレスを含むオファーパケットを出力し、前記可搬式操作部は、前記リクエストパケットに対する応答のアックパケットを受信した際、該アックパケットを送信したコントローラと接続関係を確立することを特徴とする。
【0012】
請求項5の発明は、請求項3において、前記割当手段は、自身のコントローラが可搬式操作部との接続状態とは無関係に、ディスカバーパケットを受信した際に、該ディスカバーパケットを送信した可搬式操作部に対して前記第1及び第2ノードアドレスを含むオファーパケットを出力し、前記可搬式操作部は、前記リクエストパケットに対する応答のアックパケットを受信した際、ARP要求をブロードキャストする第2送出手段を備え、前記ARP要求に対し、いかなるノードからも応答がない場合、前記オファーパケットにより割り当てられた第2ノードアドレスを使用して、前記アックパケットを出力したコントローラと接続関係を確立することを特徴とする。
【0013】
請求項6の発明は、請求項1乃至請求項5のうちいずれか1項において、前記識別情報は数値であり、前記ロジックは、ノードアドレスの共通部分であるネットワーク共通アドレス部に対して、前記数値を整数倍した値をホストアドレス部として付加して、前記識別情報を有するコントローラのノードのノードアドレスにするものである。
【0014】
請求項7の発明は、請求項6において、前記整数倍の整数は、接続先のコントローラが持つ単数のノードの数と、前記可搬式操作部が持つ複数のノードの数の合計数であり、前記ノードアドレス生成手段は、第1ノードアドレスのホストアドレス部の数値を基にして得られるユニークな数値を第2ホストアドレス部として、ネットワーク共通アドレス部に付加することにより、前記可搬式操作部のノードのノードアドレスを生成することを特徴とする。
【0015】
請求項8の発明は、請求項6において、前記整数倍の整数は、接続先のコントローラが持つ複数のノードの数と、前記可搬式操作部が持つ単数又は複数のノードの数の合計数であり、前記ノードアドレス生成手段は、前記コントローラの1つのノードに対して、前記数値を整数倍した値を第1ホストアドレス部として有する第1ノードアドレスを作成し、前記コントローラの残りの他のノードに対しては、第1ノードアドレスの第1ホストアドレス部の数値を基にして得られるユニークな数値をホストアドレス部として、ネットワーク共通アドレス部に付加することにより、第3ノードアドレスとして作成することを特徴とする。
【0016】
請求項9の発明は、請求項7又は請求項8において、前記複数のノードは、機能別、負荷別、又は安全別に分けられていることを特徴とする。
【発明の効果】
【0017】
以上詳述したように、請求項1の発明によれば、接続したいロボット制御用のコントローラにユニークに割り当てられているコントローラの識別情報を入力手段にて入力するだけで、該コントローラ及び可搬式操作部のIPアドレスを簡単に得ることができる。そして、コントローラ及び可搬式操作部のIPアドレスは、接続したいコントローラの識別情報に基づいて一義的に得られるため、接続したいコントローラと煩雑な確認メッセージのやりとりが必要でなくなる。この結果、ネットワーク上でコントローラ(制御装置)と可搬式操作部とを接続する際、コントローラのノードと可搬式操作部のノード間の接続手続きを簡略化できるとともに、又、間違ったノード間で接続してしまうリスクや、複数のティーチペンダントが重複して接続してしまうリスクを低減できる。
【0018】
請求項2の発明によれば、可搬式操作部と既に接続済みのコントローラに対して、他の可搬式操作部が重複して接続を行うことがなくなるとともに、可搬式操作部とコントローラとの接続のための手続を簡略化することができる。
【0019】
請求項3の発明によれば、ネットワーク上でコントローラ(制御装置)と可搬式操作部とを接続する際、コントローラのノードと可搬式操作部のノード間の接続手続きを簡略化できるとともに、又、間違ったノード間で接続してしまうリスクや、複数のティーチペンダントが重複して接続してしまうリスクを低減できる。
【0020】
請求項4の発明によれば、前記割当手段は、自身のコントローラが可搬式操作部と無接続状態にあるときに、ディスカバーパケットを受信した際に、該ディスカバーパケットを送信した可搬式操作部に対して前記第1及び第2IPアドレスを含むオファーパケットを出力する。この結果、可搬式操作部は、オファーパケットを送信したコントローラが、他の可搬式操作部とは無接続状態にあることが分かるため、ARP要求をブロードキャストする必要がなく、接続関係を結びたいコントローラとは早期に接続関係を確立することができる。すなわち、可搬式操作部と既に接続済みのコントローラに対して、他の可搬式操作部が重複して接続を行うことがなくなるとともに、可搬式操作部とコントローラとの接続のための手続を簡略化することができる。
【0021】
請求項5の発明によれば、ネットワーク上で、コントローラと可搬式操作部とを接続する際、間違った装置間で接続してしまうリスクや、複数の可搬式操作部が重複して接続してしまうことがない。
【0022】
請求項6の発明によれば、接続したいコントローラの識別情報に基づいて得られるホストアドレス部を、ネットワーク手段で使用されるIPアドレスの共通部分であるネットワークアドレス部に付加するだけで該コントローラのIPアドレスを生成することができる。
【0023】
請求項7及び請求項8の発明によれば、コントローラや、ティーチペンダントのノード数がそれぞれ複数存在しても、それぞれのノードに対してアドレスが重複しないノードアドレスを作成することができる。仮に、識別情報の数値を整数倍する際の整数を、接続先のコントローラとティーチペンダントが持つ複数のノードの数の合計数よりも少なくすると、コントローラの数が増加するほど、又、ノード数が増加するほど、各ノードに対して重複したアドレスができてしまい、ユニークなアドレスを作成できなくなる問題がある。
【0024】
請求項9の発明によれば、機能別、負荷別、或いは、安全別にノードを区別すると、区別されたノード同士の交信ができる。このことにより、目的に応じた交信を行うことができる。又、より優先度の高いノードにおいて、いずれかを通信の信頼性を高くするためにコストを高くしても全体としてはコストを低減することができる。
【発明を実施するための最良の形態】
【0025】
(第1実施形態)
以下、本発明を教示装置である可搬式操作部としてのティーチペンダント10とロボット制御装置としての複数のコントローラ20とがネットワーク手段としての無線LANを介して通信を行うロボット制御システム30に具体化した第1実施形態を図1〜6を参照して説明する。
【0026】
このロボット制御システム30のコントローラ20A〜20Cがそれぞれ制御するロボットR1〜R3は、例えば溶接ロボットである、なお、ロボットは、溶接ロボットに限定されるものではなく、例えば搬送ロボット等の他のロボットであってもよい。なお、各コントローラの構成は同じであるため、コントローラ20Aの構成について以下では説明し、他のコントローラの説明を省略する。
【0027】
なお、説明の便宜上、以下の説明ではコントローラ20A〜20Cのいずれかを特定しない場合には、コントローラには20の符号を付す。同様に、ロボットR1〜R3のいずれかを特定しない場合には、ロボットにはRの符号を付す。
【0028】
図1に示すように可搬式操作部としてのティーチペンダント10はCPU11、ROM12、RAM13、安全ノード14、非安全ノード15、キーボード16、液晶ディスプレイ17及び有線・無線変換器18の各部を備えているとともに各部はバス19を介して接続されている。キーボード16は入力手段に相当する。
【0029】
ティーチペンダント10のROM12には、ティーチペンダント10からのロボットR1の操作や通信を実行するための各種制御プログラムとその制御定数が格納される。RAM13は、CPU11のワーキングエリアとして用いられ、計算途中のデータが一時的に格納される。
【0030】
安全ノード14及び非安全ノード15は、コントローラ20との接続に使用される通信部である。安全ノード14及び非安全ノード15の詳細な説明は後述する。又、有線・無線変換器18は、安全ノード14及び非安全ノード15を介して出力されたデータを無線で送信したり、コントローラ20から無線送信されたデータを受信して安全ノード14及び非安全ノード15に該データを出力する。
【0031】
次にコントローラ20Aの構成を説明する。
コントローラ20Aは、CPU21、ROM22、RAM23、安全ノード24、非安全ノード25、サーボドライバ26及び有線・無線変換器28の各部を備えているとともに前記各部はバス29を介して互いに接続されている。前記ROM22には、コントローラ20Aが制御対象とするロボットR1の動作制御を実行するための制御プログラム等の各種プログラムとその制御定数が格納される。なお、RAM23は、CPU21のワーキングエリアとして用いられ、計算途中のデータが一時的に格納される。安全ノード24及び非安全ノード25は、ティーチペンダント10との接続に使用される通信部である。安全ノード24及び非安全ノード25の詳細な説明は後述する。サーボドライバ26は、ロボットR1の各関節を駆動する図示しないモータに接続され、該モータに通電させる電流を制御する。
【0032】
次に、ティーチペンダント10及びコントローラ20が備える安全ノード14,24及び非安全ノード15,25について説明する。図3はノードのブロック図である。各ノードは、略同様の構成を有するため、以下、このノードの説明では、単にノードという。図3に示すようにノードは、LANの制御を行うための機能を持つコンピュータであって、CPU100とLANコントローラ101により、外部I/0103、有線・無線変換器18(或いは有線・無線変換器28)を介してLAN制御を行う。又、メモリ102には自ノードを構成しているネットワーク機器の物理アドレスであるMACアドレス(MediaAccess Control Address)などを保存する。なお、自ノードのネットワーク機器のMACアドレス以外にメモリ102に格納されるIPアドレスについては後述する。MACアドレスは公知のようにネットワーク機器に固有のアドレスである。
【0033】
本実施形態では、IPアドレスは、ノードアドレスに相当する。
そして、ティーチペンダント10の安全ノード14とコントローラ20の安全ノード24とが、交信できるようにされているとともに、ティーチペンダント10の非安全ノード15とコントローラ20の非安全ノード25間が交信できるようにされている。
【0034】
本実施形態では、安全ノード14,24間は、ロボットを非常停止等させる等の安全に関係するデータの信号(以下、安全信号という)の送受信が行われる。この安全信号の中には、後述するティーチペンダント10とコントローラ20との接続処理時に交信される各種信号が含まれる。又、非安全ノード15,25間は、ロボットを制御する場合に、安全に関係しないデータの信号(以下、非安全信号という)が交信される。このように、本実施形態では、非安全信号と安全信号との送受信を行うノードを分けて、別々送受信を行うことにより、非安全信号の送受信に関わりなく、安全ノード間で送受信される安全信号の伝達を確実、かつ高速に行うことが可能とされている。
【0035】
本実施形態では、ティーチペンダント10の安全ノード14、非安全ノード15、及び有線・無線変換器18、並びに、コントローラ20の安全ノード24、非安全ノード25、及び有線・無線変換器28とにより、無線LANからなるネットワーク手段が構成されている。なお、無線LANでは通信パケットによりティーチペンダント10、及びコントローラ20の各ノード間の交信が行われている。なお、本実施形態を含めた以下の各実施形態では、各種メッセージが作成されて交信相手に送信されるが、特段に説明が無くても通信パケットとして各種メッセージが作成されている。
【0036】
ここで、本実施形態で使用するIPアドレスについて説明する。
IP(Internet Protocol)アドレスは、外部ネットワークから特定のネットワーク(LAN)を指定するためのネットワークアドレス部(ネットワーク共通アドレス部)と、1つのネットワーク(LAN)内に接続された特定のコンピュータを指定するためのホストアドレス部とで構成される(図6参照)。ここで、ネットワークアドレス部は、1つのネットワークを指定するためのアドレスであり、そのネットワーク内では共通の値である。ホストアドレス部は、使用されるネットワーク内で使用されるユニークな値を有し、該ネットワークで使用されるノードを指定するためのものである。
【0037】
なお、IPアドレスは、インターネット接続には欠かせないアドレスであり、例えばIPv4では32ビット、IPv6では128ビットという固定長であって、インターネット上でホストを一意に識別することができる。
【0038】
本実施形態では、ノードアドレスとしてIPアドレスを使用しているが、本実施形態では、インターネットではなく、最大でも構内LANに使用される程度のネットワークを使用する。このため、ノードアドレスは、IPアドレスに限定されるものではなく、ネットワーク共通アドレス部と最下位アドレスであるホストアドレス部から構成されたプライベートアドレスで構成されていてもよい。
【0039】
そして、本実施形態では、この無線LANに繋がっている各コントローラ20の本体には識別情報としてのコントローラ番号(=ID)が図4に示すように明記され、ティーチペンダント10の操作者が該コントローラ番号を視認可能にされている。
【0040】
又、このコントローラ番号を基にコントローラ20及びティーチペンダント10の各ノードのIPアドレスが設定されている。具体的には、前記コントローラ番号が整数倍(本実施形態では4倍)された値がホストアドレス部(第1ホストアドレス部)とされるとともにこのホストアドレス部がIPアドレスの共通部分であるネットワークアドレス部に付加されて、コントローラ20の安全ノード24のIPアドレスにされている。このコントローラ20の安全ノード24のIPアドレスは第1ノードアドレスに相当する。コントローラ20の非安全ノード25のIPアドレスは第3ノードアドレスに相当する。又、ティーチペンダント10の安全ノード、及び非安全ノードのIPアドレスは、第2ノードアドレスに相当する。
【0041】
そして、表1に示すようにコントローラ20の安全ノード24のIPアドレスを基点にして、コントローラ20の非安全ノード25のIPアドレスのホストアドレス部は、安全ノード24のIPアドレスのホストアドレス部に数値「1」が加算された値とされている。具体的には、表1のコントローラ番号1では、安全ノード24のIPアドレス「192.168.1.4」を基点に、非安全ノード25のIPアドレス「192.168.1.5」のホストアドレス部「5」は、安全ノード24のIPアドレス「192.168.1.4」のホストアドレス部「4」に数値「1」が加算された値とされている。
【0042】
又、表1に示すようにコントローラ20の安全ノード24のIPアドレスを基点にして、ティーチペンダント10の安全ノード14のIPアドレスのホストアドレス部は、第2ホストアドレス部として、安全ノード24のIPアドレスのホストアドレス部に数値「2」が加算された値とされている。具体的には、表1のコントローラ番号1では、安全ノード24のIPアドレス「192.168.1.4」を基点に、安全ノード14のIPアドレス「192.168.1.6」のホストアドレス部「6」は、安全ノード24のIPアドレス「192.168.1.4」のホストアドレス部「4」に数値「2」が加算された値とされている。
【0043】
【表1】
又、表1に示すようにコントローラ20の安全ノード24のIPアドレスを基点にして、ティーチペンダント10の非安全ノード15のIPアドレスのホストアドレス部は、第2ホストアドレス部として安全ノード24のIPアドレスのホストアドレス部に数値「3」が加算された値とされている。具体的には、表1のコントローラ番号1では、安全ノード24のIPアドレス「192.168.1.4」を基点に、非安全ノード15のIPアドレス「192.168.1.7」のホストアドレス部「7」は、安全ノード24のIPアドレス「192.168.1.4」のホストアドレス部「4」に数値「3」が加算された値とされている。
【0044】
このようにして、コントローラ20の安全ノード24と非安全ノード25のホストアドレス部間は「1」のオフセット値を有する。又、コントローラ20の非安全ノード25とティーチペンダント10の安全ノード14のホストアドレス部間は「1」のオフセット値を有する。さらに、ティーチペンダント10の安全ノード14と非安全ノード15のホストアドレス部間は「1」のオフセット値を有する。このように、オフセット値は、一定となるようにされている。オフセット値はこの「1」に限定されるものではなく、「2」以上であってもよい。
【0045】
なお、前記整数倍の整数は、コントローラ20のノード数と、ティーチペンダント10のノード数の合計数が好ましいが、合計数を越えた整数であってもよい。なお、前記合成数よりも少ないと、ノード数分のホストアドレス部を作成できないため、好ましくない。本実施形態では、前記整数倍の整数は、コントローラ20のノード数「2」と、ティーチペンダント10のノード数「2」の合計数「4」である。
【0046】
そして、コントローラ20の安全ノード24のメモリ102には、該安全ノード24のIPアドレス、接続されるティーチペンダント10の安全ノード14のIPアドレス及び安全ノード24のネットワーク機器のMACアドレスが読み出し自在に予め保存されている。又、コントローラ20の非安全ノード25のメモリ102には、非安全ノード25のIPアドレス、接続されるティーチペンダント10の非安全ノード15のIPアドレス及び非安全ノード25のネットワーク機器のMACアドレスが読み出し自在に予め保存されている。
【0047】
一方、ティーチペンダント10の安全ノード14のメモリ102には、安全ノード14のネットワーク機器のMACアドレスが読み出し自在に保存されている。又、安全ノード14のメモリ102は、該安全ノード14のIPアドレス、及び接続されるコントローラ20の安全ノード24のIPアドレスが書き込み及び読み出し自在に保存される。
【0048】
又、ティーチペンダント10の非安全ノード15のメモリ102には、非安全ノード15のネットワーク機器のMACアドレスが読み出し自在に保存されている。又、ティーチペンダント10の非安全ノード15のメモリ102には、該非安全ノード15のIPアドレス、及び接続されるコントローラ20の非安全ノード25のIPアドレスが書き込み及び読み出し自在に保存される。
【0049】
さて、上記のように構成されたロボット制御システム30において、ティーチペンダント10とコントローラ20の接続処理を図5を参照して説明する。この実施形態は、ティーチペンダント10の安全ノード14、非安全ノード15に対し、ティーチペンダント10自身がIPアドレスの割当てを行うシステムである。
【0050】
1) ティーチペンダント10によるコントローラ20、ティーチペンダント10のIPアドレスの取得
図5は、ティーチペンダント10の安全ノード14のCPU100が実行する接続処理制御プログラムである。
【0051】
このプログラムは、ティーチペンダント10が接続処理モードに切り換えられた状態で、操作者が接続したいコントローラ20のコントローラ番号のキーボード16から入力があった際、CPU11から安全ノード14のCPU100への開始指示で該CPU100により起動される。
【0052】
なお、前記コントローラ番号の入力は、接続したいコントローラ20の本体に明記されているコントローラ番号を操作者が見て行われるため、操作者が接続したいコントローラ20のコントローラ番号を間違えることがない。
【0053】
なお、以下の説明では、説明の便宜上、「ノードのCPU100が処理する(行う)等」の旨を単に「ノードが処理する(行う)等」の形で記載するものとする。
図5の接続処理制御プログラムが起動されると、ティーチペンダント10の安全ノード14は入力された「コントローラ番号」を読み込み(S10)、操作者が接続したいコントローラ20の安全ノード24のIPアドレスに変換する(S12)。なお、図5では説明の便宜上、IPアドレスは「IP」に省略されている。又、ティーチペンダント10は「TP」に省略されている。
【0054】
この変換のロジックを図6に示す。図6の例では、IPアドレスの最下位アドレス(ホストアドレス部)は、「コントローラ番号」が4倍されることで求められている。そして、その他の上位部分は予め設定されたネットワーク共通アドレス部(ネットワークアドレス部)とされている。そして、接続したいコントローラ20の安全ノード24のIPアドレスは、ネットワーク共通アドレス部(ネットワークアドレス部)と「コントローラ番号」を4倍することで求めたホストアドレス部を最下位アドレスとして付加することで算出される。この算出は、前記コントローラ20の安全ノード24の算出と同じロジックである。
【0055】
次に、ティーチペンダント10の安全ノード14は、安全ノード14と非安全ノード15のIPアドレスの算出を行う(S16)。具体的には、コントローラ20において、コントローラ20の非安全ノード25、ティーチペンダント10の安全ノード14、及び非安全ノード15のIPアドレスを予め算出した仕方と同じであるので、説明を省略する。
【0056】
上記のようにしてティーチペンダント10の処理により取得されたコントローラ20の安全ノード24のIPアドレスは固定で、コントローラ20のコントローラ番号の4の倍数が割当てられている。コントローラ20側でもコントローラ20の安全ノード24のIPアドレスは同じロジックで設定されている。このため、IPアドレスを4で割った余りが0であれば、そのアドレスは接続したいコントローラ20の安全ノード24のものであり、例えばティーチペンダント10の非安全ノードのIPアドレスが割当てられているという可能性は無い。以上のことから、接続先のノードを識別するための処理が簡略化できる。
【0057】
2) ティーチペンダント10によるコントローラ20の接続可否確認
ティーチペンダント10は、自身が取得しようとしている安全ノード14と非安全ノード15のための2つのIPアドレスがネットワーク上で使用中でない事をARP要求をブロードキャストすることにより確認する(S18)。
【0058】
このように取得しようとしている2つのIPアドレスについて、安全ノード14はARPパケットをそれぞれブロードキャストして、ARP要求に対する応答を待つ。
ここで、IPアドレス使用状況の確認方法として、ARPによるアドレス検索について説明する。ARP(Address Resolution Protocol)はネットワーク上で、指定したIPアドレスが割当てられているノードのMACアドレスを調査するために使われるプロトコルである。IPアドレスはネットワーク上で各ノードに割り当てられたアドレスであるが、MACアドレスはこれとは無関係に、ノードのネットワーク機器に割当てられた固有IDである。ARPの使用方法は、調査を実行するノードが、調査するIPアドレスを指定したARPパケットを作成し、ネットワーク上のノードに対してブロードキャストを行う。これに対し、該ネットワーク上において、該当するIPアドレスを持つノードは、自らのMACアドレスを返答しなくてはいけないことになっている。すなわち、ARPに対して応答が無い場合は、この時点では該当するIPアドレスを持つノードがネットワーク上に存在しないということを意味している。
【0059】
そして、ARP要求してから所定時間待っても応答が無ければ(S20で「YES」)、ARP要求が行われたIPアドレスについては、安全ノード14は利用可能とみなす。一方、応答があった場合(S20で「NO」)は、該当IPアドレスは使用中であり、安全ノード14は他のティーチペンダント10が接続中のため接続不可と見なし、この制御プログラムを終了する。
【0060】
そして、安全ノード14は、安全ノード14と非安全ノード15のための2つのIPアドレスが使用可能であれば、ティーチペンダント10の安全ノード14及び非安全ノード15のIPアドレスとして、それぞれに前記IPアドレスを割当てる(S22)。このようにして、ティーチペンダント10は取得しようとするIPアドレスが空いていることを確認した上で、自らIPアドレスの割当てを行う。
【0061】
4) ティーチペンダント10とコントローラ20の接続確立
続いて、ティーチペンダント10の各ノードは割当てられたIPアドレスを使用するとともに、S12及びS14で取得されたコントローラ20の各ノードのIPアドレスを送出先のノードアドレスとして使用してティーチペンダント10とコントローラ20の間の接続の開始処理を行い、通信を開始する。このようにして、ティーチペンダント10と、コントローラ20間の接続が確立する。この通信が確立すると、安全ノード同士及び非安全ノード同士が、交信可能に接続され、接続されたコントローラ20が、他のティーチペンダント10と交信不能であることを意味している。
【0062】
なお、前記コントローラ20と1つのティーチペンダント10との接続が確立した状態で他のティーチペンダント10が接続を試みた場合、該接続を試みたティーチペンダント10からのARP要求に対しては接続が確立したティーチペンダント10が返答する。このため、他のティーチペンダント10は、自身のノードに対するIPアドレスを取得できないことになる。
【0063】
5) ティーチペンダント10とコントローラ20の接続切断
接続が確立したティーチペンダント10をコントローラ20から切断する場合、ティーチペンダント10の安全ノード14、非安全ノード15はともに割り当てられたIPアドレスを未設定状態(各ノードのメモリ102のIPアドレスの登録を抹消する。)に戻し、ARPコマンドに応答しないようにする。又、これにより、ティーチペンダント10とコントローラ20との通信は行われなくなる。以上の処理がティーチペンダント10の各ノードが行うことにより、接続が切断される。
【0064】
このように、本実施形態によれば、安全信号の送受信を行う一対のノードと、非安全信号の送受信を行う一対のノードの計4つのノードアドレス(IPアドレス)を、コントローラ20とティーチペンダント10の各ノードのCPUが間違えることなく認識することができる。
【0065】
さて、第1実施形態によれば、以下のような特徴がある。
(1) 本実施形態では、コントローラ20の安全ノード24は、該コントローラ20のコントローラ番号(識別情報)に基づいて算出されたホストアドレス部(第1ホストアドレス部)がネットワークアドレス部(ネットワーク共通アドレス部)に付加されたIPアドレス(第1ノードアドレス)を有するようにしている。
【0066】
又、ティーチペンダント10(可搬式操作部)は、コントローラ20のコントローラ番号を入力するためのキーボード16(入力手段)を備える。
又、ティーチペンダント10の安全ノード14のCPU100は、ノードアドレス生成手段として、入力されたコントローラ20のコントローラ番号に基づきコントローラ20の第1ノードアドレスの作成と同じロジックで安全ノード24のIPアドレス(第1ノードアドレス)を作成する。さらに、安全ノード14のCPU100は、第1ホストアドレス部に基づいてユニークな第2ホストアドレス部を生成して、ネットワーク共通アドレス部に付加して安全ノード14、及び非安全ノード15のIPアドレス(第2ノードアドレス)を生成するようにしている。そして、安全ノード14のCPU100にて生成された接続したいコントローラ20の安全ノード及び非安全ノードのIPアドレスと、ティーチペンダント10の安全ノードと非安全ノードのIPアドレスを使用して、接続したいコントローラ20と接続関係を確立するようにした。
【0067】
この結果、接続したいロボット制御用のコントローラ20にユニークに割り当てられているコントローラ20のコントローラ番号をキーボード16にて入力するだけで、該コントローラ20及びティーチペンダント10のIPアドレスを簡単に得ることができる。そして、コントローラ20及びティーチペンダント10のIPアドレスは、接続したいコントローラ20のコントローラ番号に基づいて一義的に得られるため、接続したいコントローラ20と煩雑な確認メッセージのやりとりが必要でなくなる。この結果、ネットワーク上でコントローラ20とティーチペンダント10とを接続する際、LANコントローラのノードとティーチペンダント10のノード間の接続手続きを簡略化できるとともに、又、間違ったノード間で接続してしまうリスクや、複数のティーチペンダント10が重複して接続してしまうリスクを低減できる。
【0068】
(2) 本実施形態では、ティーチペンダント10の安全ノード14のCPU100は第1送出手段としてティーチペンダント10の安全ノード14、及び非安全ノード15のIPアドレスの使用有無確認のためのARP要求を無線LAN(ネットワーク)を介してブロードキャストするようにした。
【0069】
そして、ティーチペンダント10の安全ノード14のCPU100は、前記ARP要求に対する応答がない場合、接続したいコントローラ20の安全ノード24、及び非安全ノード25、並びにティーチペンダント10の安全ノード14及び非安全ノード15のIPアドレスを使用して、前記コントローラ20と接続関係を確立するようにした。
【0070】
この結果、ティーチペンダント10と、既に接続済みのコントローラ20に対して、他のティーチペンダント10が重複して接続を行うことがなくなるとともに、ティーチペンダント10とコントローラ20との接続のための手続を簡略化することができる。
【0071】
(3) 本実施形態では、コントローラ20の識別情報としてはコントローラ番号の数値としている。そして、ティーチペンダント10の安全ノード14のCPU100は、ノードアドレスの共通部分であるネットワーク共通アドレス部に対して、前記数値を整数倍した値をホストアドレス部として付加して、接続したいコントローラ20のノードのノードアドレスにするようにした。この結果、接続したいコントローラ20のコントローラ番号に基づいて得られるホストアドレス部を、無線LANで使用されるIPアドレスの共通部分であるネットワークアドレス部に付加するだけで該コントローラ20のIPアドレスを容易に生成することができる。
【0072】
(4) 本実施形態では、コントローラ番号の数値を整数倍する際の整数は、接続先のコントローラ20が持つ複数のノードの数と、ティーチペンダント10が持つ複数のノードの数の合計数としている。
【0073】
そして、ティーチペンダント10の安全ノード14のCPU100は、コントローラ20の安全ノード24に対して、前記数値を整数倍した値を、該安全ノードのIPアドレスの第1ホストアドレス部(ホストアドレス部)とした。
【0074】
又、前記安全ノード14のCPU100は、コントローラ20の非安全ノード25のIPアドレス(第3ノードアドレス)を、安全ノード24のIPアドレス(第1ノードアドレス)の第1ホストアドレス部の数値を基にして得られるユニークな数値をホストアドレス部として、ネットワーク共通アドレス部に付加して作成した。
【0075】
この結果、コントローラとCPU100とのノード数がそれぞれ複数存在しても、それぞれのノードに対してアドレスが重複しないノードアドレスを作成することができる。仮に、コントローラ番号の数値を整数倍する際の整数を、接続先のコントローラ20が持つ複数のノードの数と、ティーチペンダント10が持つ複数のノードの数の合計数よりも少なくすると、コントローラ20の数やノード数が増加するほど、各ノードに対して重複したアドレスができてしまい、ユニークなアドレスを作成できなくなる問題がある。
【0076】
(5) 本実施形態では、ティーチペンダント10とコントローラ20とはそれぞれ複数のノードを有するようにし、それぞれのノードは、安全別に分けられている。このようにすると、安全信号専用のノードと、非安全信号専用のノードに分けて各ノード同士が交信でき、例えば安全信号を扱う機器に比較的信頼性の高い通信機器を用意したりすることにより、ロボットの制御をより安全に行うことができるという効果がある。
【0077】
(6) 本実施形態では、安全ノードは非常停止などの安全に関係するデータの送受信を行うためのノードである。非安全ノードは、安全に関係しないデータの送受信を行うためのノードである。安全ノードと非安全ノードとの送受信をノードを独立させることにより、安全ノードで送受信される安全データの伝達を確実かつ高速に行うことが可能になる。
【0078】
(第2実施形態)
次に、第2実施形態を図7及び図8を参照して説明する。第2実施形態のロボット制御システム30のハード構成は、第1実施形態と同一であるため、同一構成には同一符号を付して、その説明を省略し、作用の異なるところを中心にして説明する。
【0079】
第2実施形態のロボット制御システム30は、コントローラ20のノードがティーチペンダント10の安全ノードに対してIPアドレスの割当てを行うシステムである。
なお、第2実施形態の無線LANにおいては、コントローラ20がティーチペンダント10に対してIPアドレスを割当てるようにしている。このため、第2実施形態では、例としてDHCPプロトコルを用いて説明する。ここで、DHCP(Dynamic Host Configuration Protocol)は、接続の開始時に動的にIPアドレスを割り当て、接続の終了時にIPアドレスを回収するためのプロトコルである。アドレス割当てを行うノードをDHCPサーバと呼ぶ。DHCPサーバにアクセスしてIPアドレスを取得するノードをDHCPクライアントと呼ぶ。第2実施形態では、このDHCPサーバ機能はコントローラ20が有するとともにティーチペンダント10のノードはDHCPクライアントとなる。
【0080】
図8は、ティーチペンダント10の安全ノード14のCPU100が実行する接続処理制御プログラムである。該プログラムは、第1実施形態と同様に起動される。又、図8のフローチャートにおいて、S10〜S16までは第1実施形態と同様であるため説明を省略する。
【0081】
なお、以下の説明では、説明の便宜上、「ノードのCPU100が処理する(行う)等」の旨を単に「ノードが処理する(行う)等」の形で記載するものとする。
S30では、ティーチペンダント10の安全ノード14は、無線LANにディスカバー(DISCOVER)パケットをブロードキャストする(図7参照)。なお、図7では、説明の便宜上、無線LAN上では、CPU100、コントローラ20A、20Bのみが図示されている。このパケットには、自ノードのIPアドレスはまだないため、「0.0.0.0」(10進数表記)とするとともに、宛先IPアドレスは、「255,255.255,255」(10進数表記)とする。又、CPU100はこのパケット中の宛先MACアドレスは「FF:FF:FF:FF:FF:FF」とするとともに送信元MACアドレスは自身のMACアドレスとする。続いて、安全ノード14は無線LAN上のコントローラ20からのIPアドレスのオファーパケットの応答を所定時間待つ(S32,図7参照)。
【0082】
コントローラ20の安全ノード24は、ティーチペンダント10に割り当てるティーチペンダント10の安全ノード14のIPアドレス(以下、候補IPアドレスという)と、自身のIPアドレスをメモリ102から読み出す。そして、安全ノード24は、該候補IPアドレスを宛先IPアドレスとするとともに、自身のIPアドレスを送信元IPアドレスとしてオファーパケットに含ませてティーチペンダント10にユニキャストする。
【0083】
なお、前記第1実施形態で説明したように、コントローラ20の安全ノード24のメモリ102には、該安全ノード24のIPアドレス、接続されるティーチペンダント10の安全ノード14のIPアドレス及び安全ノード24のネットワーク機器のMACアドレスが読み出し自在に予め保存されている。
【0084】
このオファーパケットは、前述したように候補IPアドレスを宛先IPアドレスにしてティーチペンダント10の安全ノード14にユニキャストで送られるが、ティーチペンダント10の安全ノード14は、そのアドレスを使用していないため、認識できない。
【0085】
しかし、オファーパケットに含まれる宛先MACアドレスには前記ディスカバーパケットで送信元MACアドレスで使用したティーチペンダント10の安全ノード14のMACアドレスが指定される。この結果、受信側のティーチペンダント10の安全ノード14は、このオファーパケットを正しく受信することができる。
【0086】
続く、S34では、安全ノード14は、オファーパケットの候補IPアドレスが、S16で取得した安全ノード14のIPアドレスと一致するか、及び送信元IPアドレスが、S12で取得したコントローラ20のIPアドレスと一致するかを判定する。ここで、単数又は複数のオファーパケットを受信して、1つのオファーパケットにおいて、両者がともに一致していた場合(S34の判定が「YES」)は、安全ノード14は、S36に移行する。又、安全ノード14は、単数、又は複数のオファーパケットを受信して、いずれのオファーパケットにおいて、前記両者がともに一致していない場合(S34の判定が「NO」)は、この制御プログラムを終了する。すなわち、この場合は、安全ノード14は、IPアドレスの割当候補がなかったとして判断する。
【0087】
S36では、安全ノード14は、正式な割当要求を行うためにリクエストパケットをブロードキャストする(図7参照)。ここで、IPアドレスの正式な割当要求であるリクエストパケットを受けたコントローラ20の安全ノード24は、クライアントであるティーチペンダント10の安全ノード14に対して正式に安全ノード14のIPアドレスを割り当てるために、アック(ACK)パケットをティーチペンダント10の安全ノード14に送出する。
【0088】
安全ノード14は、このアック(ACK)パケットを受信すると(S38の判定が「YES」)、このアックパケットに含まれる安全ノード14のための候補IPアドレスに基づいて安全ノード14は、該候補IPアドレスにオフセット値(「1」)を加算することにより、非安全ノード15のIPアドレスを算出し、非安全ノード15に送信する。そして、非安全ノード15は、受信したIPアドレスをメモリ102に保存する。
【0089】
続いて、安全ノード14は、第1実施形態と同様にS18〜S24の処理を行う。
このように第2実施形態では、コントローラ20にDHCPサーバの機能を持たせてコントローラ20からティーチペンダント10の安全ノード14のIPアドレスを自動で割り当て、ティーチペンダント10がDHCPクライアントとしてコントローラ20からIPアドレスの取得を行う。そして、コントローラ20が、ティーチペンダント10の安全ノード用に割り当て可能なアドレスは、1アドレスだけである。
【0090】
なお、ティーチペンダント10をコントローラ20から切断する場合は、ティーチペンダント10の、安全ノード14及び非安全ノード15は、接続先のコントローラ20にIPアドレスを返却するとともに、IPアドレス未設定状態に戻すことにより、接続が切断される。
【0091】
さて、第2実施形態によれば、第1実施形態の(6)の効果を実現できるとともに、以下のような特徴がある。
(1) 第2実施形態では、コントローラ20の安全ノード24のメモリ102は記憶手段として、ティーチペンダント10の安全ノード14のIPアドレス(第2ノードアドレス)及び安全ノード24のIPアドレス(第1ノードアドレス)を記憶するようにした。又、安全ノード24はDHCPプロトコルに従い、ディスカバーパケットに応答して、前記メモリ102に記憶された安全ノード14のIPアドレス及び安全ノード24のIPアドレスを含むオファーパケットを出力して、前記ディスカバーパケットを送信したティーチペンダント10に対して安全ノード14のIPアドレスを割り当てるようにした。
【0092】
一方、ティーチペンダント10の安全ノード14は、ディスカバー送出手段としてディスカバーパケットを送出するようにし、判定手段としてオファーパケットの安全ノード14のIPアドレス及び安全ノード24のIPアドレスが、S12,S16で取得したIPアドレスとそれぞれ一致するか否かを判定するようにした。そして、安全ノード14はリクエスト出力手段として、一致したと判定した際、DHCPプロトコルに従いリクエストパケットを送信するようにした。又、ティーチペンダント10は、該リクエストパケットを送信した後、前記オファーパケットを送信したコントローラ20と接続手続きを進めるようにした。
【0093】
この結果、無線LANのネットワーク上でコントローラ20とティーチペンダント10とを接続する際、コントローラ20の安全ノード24とティーチペンダント10の安全ノード14間の接続手続きを簡略化できるとともに、又、間違ったノード間で接続してしまうリスクや、複数のティーチペンダント10が重複して接続してしまうリスクを低減できる。
【0094】
(2) 第2実施形態では、コントローラ20の安全ノード24は割当手段として、自身のコントローラ20がティーチペンダント10との接続状態とは無関係に、ディスカバーパケットを受信した際に、該ディスカバーパケットを送信した可搬式操作部に対して前記第1及び第2ノードアドレスを含むオファーパケットを出力するようにした。
【0095】
そして、ティーチペンダント10の安全ノード14は、第2送出手段として、記リクエストパケットに対する応答のアックパケットを受信した際、ARP要求をブロードキャストするようした。そして、安全ノード14は、ARP要求に対し、いかなるノードからも応答がない場合、前記オファーパケットにより割り当てられた候補IPアドレスを使用して、アックパケットを出力したコントローラ20と接続関係を確立するようにした。この結果、無線LANのネットワーク上で、コントローラ20とティーチペンダント10とを接続する際、間違った装置間で接続してしまうリスクや、複数のティーチペンダント10が重複して接続してしまうことがない。
【0096】
なお、本発明の実施形態は以下のように変更してもよい。
○ 第1実施形態、及び第2実施形態では、ティーチペンダント10とコントローラ20にそれぞれ2つのノードを設けて計4につしたが、接続に必要なノードの数は4つでなくとも良い。
【0097】
図9に示すように、コントローラ20に1つのノード40Aが設けられるとともにティーチペンダント10に2つのノード10A,10Bが設けられ、1つのノード40Aに対して、ティーチペンダント10側の2つのノード10A,10Bがそれぞれ交信できるものに具体化することも可能である。この場合、ノード10A,10Bのいずれか1つのノードが、第1又は第2実施形態度と同様に接続関係の最初の処理が行われるようにすればよい。
【0098】
○ 又、図10に示すように、コントローラ20に2つのノード40A,40Bが設けられるとともにティーチペンダント10に1つのノード10Aが設けられ、2つのノード40A,40Bに対して、ティーチペンダント10側の1つのノード10Aが交信できるものに具体化することも可能である。この場合、ノード10Aが、コントローラのいずれか1つのノードに対して第1又は第2実施形態度と同様に接続関係の最初の処理が行われるようにすればよい。
【0099】
○ 又、第1実施形態では、安全ノード24のIPアドレスを基点にして、ホストアドレス部に所定値をそれぞれ加算することにより、第2ノードアドレス及び第3ノードアドレスを作成した。この代わりに基点のIPアドレスのホストアドレス部に所定値をそれぞれ減算して、第2ノードアドレス及び第3ノードアドレスを形成してもよい。
【0100】
或いは、基点のIPアドレスのホストアドレス部に所定値をそれぞれ乗算して、第2ノードアドレス及び第3ノードアドレスを形成してもよい。
○ 第1実施形態、及び第2実施形態では、ノードを安全ノードと非安全ノードに分けたがこれ以外の観点からノードを区別して分けても良い、例えば、機能による分割、負荷の大小関係によってノードを変更してもよい。なお、このように区分けする場合には、少なくとも同一ネットワーク内においては統一する必要がある。
【0101】
機能によってノードを分けた場合は、機能別、又は負荷別に割れると、区別されたノード同士の交信ができる。このことにより、目的に応じた交信を行うことができる。又、より優先度の高いノードにおいて、いずれかを通信の信頼性を高くするためにコストを高くしても全体としてはコストを低減することができる。
【0102】
○ 第2実施形態の構成中、安全ノード24はディスカバーパケットを受信した際、他のティーチペンダント10と接続していない場合のみ、該候補IPアドレスを宛先IPアドレスとするとともに、自身のIPアドレスを送信元IPアドレスとしてオファーパケットに含ませてティーチペンダント10にユニキャストするプロトコルとしてもよい。このようにすると、第2実施形態の図8において、S18〜S20の処理が省略できる。
【0103】
従って、この変形の実施形態では、安全ノード24は、自身のコントローラ20がティーチペンダント10と無接続状態にあるときのみ、ディスカバーパケットを受信した際に、ディスカバーパケットを送信したティーチペンダント10に対して第1及び第2ノードアドレスを含むオファーパケットを出力する割当手段に相当する。
【0104】
この結果、ティーチペンダント10へオファーパケットを送信したコントローラ20が、他のティーチペンダント10とは無接続状態にあることが分かるため、ARP要求をブロードキャストする必要がなく、接続関係を結びたいコントローラ20とは早期に接続関係を確立することができる。すなわち、ティーチペンダント10と既に接続済みのコントローラ20に対して、他のティーチペンダント10が重複して接続を行うことがなくなるとともに、ティーチペンダント10とコントローラ20との接続のための手続を簡略化することができる。
【0105】
○ 前記各実施形態では、コントローラ20の識別情報をコントローラ番号としたが、コントローラ番号に限定されるものではない。
例えば、複数のコントローラ20の本体に、それぞれ識別名を明記し、この識別名の文字数を他のコントローラ20の識別名の数と異なる文字数で構成してもよい。この場合、コントローラ番号の代わりに、この文字数をキーボード16にて入力する。従って、この文字数がコントローラ20の識別情報となる。例えば、第1番目のコントローラ20には「A」、第2番目のコントローラ20には「AA」、第3番目のコントローラ20には「AAA」のように明記する。なお、「A」は、任意の符号(文字、数字、記号等を含む)を示す。
【0106】
○ 前記各実施形態では、ティーチペンダント10と、コントローラ20との接続処理は、安全ノード間で行うようにしたが、非安全ノード間で行うようにしてもよい。
○ 前記各実施形態では、無線LANでネットワークを構成したが、有線LANや、無線通信(通信媒体:電波)、赤外線通信、光通信、或いは磁気通信等のワイヤレスで行う伝送方式の非有線通信手段で構成してもよいことは勿論のことである。
【0107】
○ 前記各実施形態では、ティーチペンダント10とコントローラ20は、それぞれCPU11,21をホストCPUとして使用したが、ティーチペンダント10とコントローラ20のそれぞれが備えるノードのうち、一方のノードのCPUをホストCPUとして機能させてもよい。
【0108】
図11を参照して、具体的に説明する。なお、第1実施形態と同一構成又は相当する構成については同一符号を付す。ティーチペンダント10の安全ノード14は、CPU14a、ROM14b、RAM14c、シリアル通信器14d及び有線ネットワーク14eの各部を備えているとともに前記各部はバス14fを介して互いに接続されている。有線ネットワーク14eは有線・無線変換器18に接続されている。前記ROM14bには、安全ノード14が有線・無線変換器18を介して通信を行うための接続処理プログラム等の各種プログラムとその制御定数が格納される。
【0109】
又、ティーチペンダント10の非安全ノード15は、CPU15a、ROM15b、RAM15c、シリアル通信器15d、有線ネットワーク15e、キーボード15g、及び液晶ディスプレイ15hの各部を備えているとともに前記各部はバス15fを介して互いに接続されている。有線ネットワーク15eは有線・無線変換器18に接続されている。前記ROM15bには、非安全ノード15が有線・無線変換器18を介して通信を行うための接続処理プログラム等の各種プログラムとその制御定数が格納される。そして、この変形例においては、非安全ノード15のCPU15aを、ノードアドレス生成手段、第1送出手段、第2送出手段、ディスカバー送出手段、判定手段、リクエスト出力手段として構成する。
【0110】
一方、コントローラ20の安全ノード24は、CPU24a、ROM24b、RAM24c、シリアル通信器24d、有線ネットワーク24e及びサーボドライバ26に接続されたI/O24gの各部を備えているとともに前記各部はバス24fを介して互いに接続されている。有線ネットワーク24eは有線・無線変換器28に接続されている。前記ROM24bには、安全ノード24が有線・無線変換器28を介して通信を行うための接続処理プログラム等の各種プログラムとその制御定数が格納される。
【0111】
又、コントローラ20の非安全ノード25は、CPU25a、ROM25b、RAM25c、シリアル通信器25d、有線ネットワーク25e、及びサーボドライバ26に接続されたインタフェイス25gの各部を備えているとともに前記各部はバス25fを介して互いに接続されている。有線ネットワーク25eは有線・無線変換器28に接続されている。前記ROM25bには、非安全ノード25が有線・無線変換器28を介して通信を行うための接続処理プログラム等の各種プログラムとその制御定数が格納される。そして、非安全ノード25のCPU25aを割当手段とする。このように構成しても第1実施形態と同様の作用効果を奏することができる。
【図面の簡単な説明】
【0112】
【図1】本発明の第1実施形態のロボット制御システムのコントローラとティーチペンダントのブロック回路図。
【図2】ティーチペンダントとコントローラの各ノードとの通信関係を示す説明図。
【図3】コントローラ、及びティーチペンダントの各ノードのブロック図。
【図4】同じくコントローラ番号をコントローラ20A〜20Cに記名した状態を表す説明図。
【図5】ティーチペンダントの安全ノードのCPUが実行する接続処理制御プログラムのフローチャート。
【図6】IPアドレスの説明図。
【図7】第2実施形態のアドレス割当のシーケンス図。
【図8】第2実施形態のティーチペンダントの安全ノードのCPUが実行する接続処理制御プログラムのフローチャート。
【図9】他の変形の実施形態の図2相当図。
【図10】他の変形の実施形態の図2相当図。
【図11】他の変形の実施形態のロボット制御システムのコントローラとティーチペンダントのブロック回路図。
【符号の説明】
【0113】
10…ティーチペンダント(可搬式操作部)、14…ティーチペンダント10の安全ノード、15…ティーチペンダント10の非安全ノード、24…コントローラ20の安全ノード、25…コントローラ20の非安全ノード、20…コントローラ、100…ティーチペンダント、コントローラの各ノードのCPU(ティーチペンダントの安全ノード14のCPU100は、ノードアドレス生成手段、第1送出手段、第2送出手段、ディスカバー送出手段、判定手段、リクエスト出力手段に相当し、コントローラのCPU100は割当手段に相当する。)、102…メモリ(記憶手段)。
【特許請求の範囲】
【請求項1】
可搬式操作部と、該可搬式操作部とネットワーク手段、又は非有線通信手段を介して情報を送受信するロボット制御用の複数のコントローラを備えたロボット制御システムにおいて、
前記コントローラは、該コントローラの識別情報に基づいて算出された第1ホストアドレス部がネットワーク共通アドレス部に付加された第1ノードアドレスを有し、
前記可搬式操作部は、
前記コントローラの識別情報を入力するための入力手段と、入力された前記コントローラの識別情報に基づき、前記コントローラの第1ノードアドレスの作成と同じロジックで第1ノードアドレスを作成するとともに、前記第1ホストアドレス部に基づいてユニークな第2ホストアドレス部を生成して、前記ネットワーク共通アドレス部に付加して可搬式操作部の第2ノードアドレスを生成するノードアドレス生成手段を備え、前記ノードアドレス生成手段にて生成された第1ノードアドレス、及び第2ノードアドレスを使用して、接続したいコントローラと接続関係を確立することを特徴とするロボット制御システム。
【請求項2】
前記可搬式操作部は、
前記第2ノードアドレスの使用有無確認のためのARP(Address Ressolution Protocol)要求を前記ネットワーク手段又は前記非有線通信手段を介してブロードキャストする第1送出手段を備え、
前記ARP要求に対する応答がない場合、前記ノードアドレス生成手段にて生成された第1ノードアドレス、及び第2ノードアドレスを使用して、前記識別情報が付与されたコントローラと接続関係を確立することを特徴とする請求項1に記載のロボット制御システム。
【請求項3】
前記コントローラは、
前記第1ホストアドレス部に基づいてユニークに生成された第2ホストアドレス部が前記ネットワーク共通アドレス部に付加されてなる可搬式操作部の第2ノードアドレス及び前記第1ノードアドレスを記憶する記憶手段と、DHCPプロトコルに従い、ディスカバーパケットに応答して、前記記憶手段に記憶された第1及び第2ノードアドレスを含むオファーパケットを出力して、前記ディスカバーパケットを送信した可搬式操作部に対して前記第2ノードアドレスを割り当てる割当手段を備え、
前記可搬式操作部は、
前記ディスカバーパケットを送出するディスカバー送出手段と、前記オファーパケットの第1及び第2ノードアドレスが、前記ノードアドレス生成手段が生成した第1ノードアドレス及び第2ノードアドレスとそれぞれ一致するか否かを判定する判定手段と、前記判定手段の判定が一致したと判定した際、DHCPプロトコルに従いリクエストパケットを送信するリクエスト出力手段を備え、
前記可搬式操作部は前記リクエストパケットを送信した後前記オファーパケットを送信したコントローラと接続手続きを進めることを特徴とする請求項1に記載のロボット制御システム。
【請求項4】
前記割当手段は、自身のコントローラが可搬式操作部と無接続状態にあるときのみ、ディスカバーパケットを受信した際に、該ディスカバーパケットを送信した可搬式操作部に対して前記第1及び第2ノードアドレスを含むオファーパケットを出力し、
前記可搬式操作部は、前記リクエストパケットに対する応答のアックパケットを受信した際、該アックパケットを送信したコントローラと接続関係を確立することを特徴とする請求項3に記載のロボット制御システム。
【請求項5】
前記割当手段は、自身のコントローラが可搬式操作部との接続状態とは無関係に、ディスカバーパケットを受信した際に、該ディスカバーパケットを送信した可搬式操作部に対して前記第1及び第2ノードアドレスを含むオファーパケットを出力し、
前記可搬式操作部は、
前記リクエストパケットに対する応答のアックパケットを受信した際、ARP要求をブロードキャストする第2送出手段を備え、
前記ARP要求に対し、いかなるノードからも応答がない場合、前記オファーパケットにより割り当てられた第2ノードアドレスを使用して、前記アックパケットを出力したコントローラと接続関係を確立することを特徴とする請求項3に記載のロボット制御システム。
【請求項6】
前記識別情報は数値であり、
前記ロジックは、ノードアドレスの共通部分であるネットワーク共通アドレス部に対して、前記数値を整数倍した値をホストアドレス部として付加して、前記識別情報を有するコントローラのノードの第1ノードアドレスにするものであることを特徴とする請求項1乃至請求項5のうちいずれか1項に記載のロボット制御システム。
【請求項7】
前記整数倍の整数は、接続先のコントローラが持つ単数のノードの数と、前記可搬式操作部が持つ複数のノードの数の合計数であり、
前記ノードアドレス生成手段は、
第1ノードアドレスのホストアドレス部の数値を基にして得られるユニークな数値を第2ホストアドレス部として、ネットワーク共通アドレス部に付加することにより、前記可搬式操作部のノードのノードアドレスを生成する
ことを特徴とする請求項6に記載のロボット制御システム。
【請求項8】
前記整数倍の整数は、接続先のコントローラが持つ複数のノードの数と、前記可搬式操作部が持つ単数又は複数のノードの数の合計数であり、
前記ノードアドレス生成手段は、前記コントローラの1つのノードに対して、前記数値を整数倍した値を第1ホストアドレス部として有する第1ノードアドレスを作成し、
前記コントローラの残りの他のノードに対しては、第1ノードアドレスの第1ホストアドレス部の数値を基にして得られるユニークな数値をホストアドレス部として、ネットワーク共通アドレス部に付加することにより、第3ノードアドレスとして作成することを特徴とする請求項6に記載のロボット制御システム。
【請求項9】
前記複数のノードは、機能別、負荷別、又は安全別に分けられていることを特徴とする請求項7又は請求項8に記載のロボット制御システム。
【請求項1】
可搬式操作部と、該可搬式操作部とネットワーク手段、又は非有線通信手段を介して情報を送受信するロボット制御用の複数のコントローラを備えたロボット制御システムにおいて、
前記コントローラは、該コントローラの識別情報に基づいて算出された第1ホストアドレス部がネットワーク共通アドレス部に付加された第1ノードアドレスを有し、
前記可搬式操作部は、
前記コントローラの識別情報を入力するための入力手段と、入力された前記コントローラの識別情報に基づき、前記コントローラの第1ノードアドレスの作成と同じロジックで第1ノードアドレスを作成するとともに、前記第1ホストアドレス部に基づいてユニークな第2ホストアドレス部を生成して、前記ネットワーク共通アドレス部に付加して可搬式操作部の第2ノードアドレスを生成するノードアドレス生成手段を備え、前記ノードアドレス生成手段にて生成された第1ノードアドレス、及び第2ノードアドレスを使用して、接続したいコントローラと接続関係を確立することを特徴とするロボット制御システム。
【請求項2】
前記可搬式操作部は、
前記第2ノードアドレスの使用有無確認のためのARP(Address Ressolution Protocol)要求を前記ネットワーク手段又は前記非有線通信手段を介してブロードキャストする第1送出手段を備え、
前記ARP要求に対する応答がない場合、前記ノードアドレス生成手段にて生成された第1ノードアドレス、及び第2ノードアドレスを使用して、前記識別情報が付与されたコントローラと接続関係を確立することを特徴とする請求項1に記載のロボット制御システム。
【請求項3】
前記コントローラは、
前記第1ホストアドレス部に基づいてユニークに生成された第2ホストアドレス部が前記ネットワーク共通アドレス部に付加されてなる可搬式操作部の第2ノードアドレス及び前記第1ノードアドレスを記憶する記憶手段と、DHCPプロトコルに従い、ディスカバーパケットに応答して、前記記憶手段に記憶された第1及び第2ノードアドレスを含むオファーパケットを出力して、前記ディスカバーパケットを送信した可搬式操作部に対して前記第2ノードアドレスを割り当てる割当手段を備え、
前記可搬式操作部は、
前記ディスカバーパケットを送出するディスカバー送出手段と、前記オファーパケットの第1及び第2ノードアドレスが、前記ノードアドレス生成手段が生成した第1ノードアドレス及び第2ノードアドレスとそれぞれ一致するか否かを判定する判定手段と、前記判定手段の判定が一致したと判定した際、DHCPプロトコルに従いリクエストパケットを送信するリクエスト出力手段を備え、
前記可搬式操作部は前記リクエストパケットを送信した後前記オファーパケットを送信したコントローラと接続手続きを進めることを特徴とする請求項1に記載のロボット制御システム。
【請求項4】
前記割当手段は、自身のコントローラが可搬式操作部と無接続状態にあるときのみ、ディスカバーパケットを受信した際に、該ディスカバーパケットを送信した可搬式操作部に対して前記第1及び第2ノードアドレスを含むオファーパケットを出力し、
前記可搬式操作部は、前記リクエストパケットに対する応答のアックパケットを受信した際、該アックパケットを送信したコントローラと接続関係を確立することを特徴とする請求項3に記載のロボット制御システム。
【請求項5】
前記割当手段は、自身のコントローラが可搬式操作部との接続状態とは無関係に、ディスカバーパケットを受信した際に、該ディスカバーパケットを送信した可搬式操作部に対して前記第1及び第2ノードアドレスを含むオファーパケットを出力し、
前記可搬式操作部は、
前記リクエストパケットに対する応答のアックパケットを受信した際、ARP要求をブロードキャストする第2送出手段を備え、
前記ARP要求に対し、いかなるノードからも応答がない場合、前記オファーパケットにより割り当てられた第2ノードアドレスを使用して、前記アックパケットを出力したコントローラと接続関係を確立することを特徴とする請求項3に記載のロボット制御システム。
【請求項6】
前記識別情報は数値であり、
前記ロジックは、ノードアドレスの共通部分であるネットワーク共通アドレス部に対して、前記数値を整数倍した値をホストアドレス部として付加して、前記識別情報を有するコントローラのノードの第1ノードアドレスにするものであることを特徴とする請求項1乃至請求項5のうちいずれか1項に記載のロボット制御システム。
【請求項7】
前記整数倍の整数は、接続先のコントローラが持つ単数のノードの数と、前記可搬式操作部が持つ複数のノードの数の合計数であり、
前記ノードアドレス生成手段は、
第1ノードアドレスのホストアドレス部の数値を基にして得られるユニークな数値を第2ホストアドレス部として、ネットワーク共通アドレス部に付加することにより、前記可搬式操作部のノードのノードアドレスを生成する
ことを特徴とする請求項6に記載のロボット制御システム。
【請求項8】
前記整数倍の整数は、接続先のコントローラが持つ複数のノードの数と、前記可搬式操作部が持つ単数又は複数のノードの数の合計数であり、
前記ノードアドレス生成手段は、前記コントローラの1つのノードに対して、前記数値を整数倍した値を第1ホストアドレス部として有する第1ノードアドレスを作成し、
前記コントローラの残りの他のノードに対しては、第1ノードアドレスの第1ホストアドレス部の数値を基にして得られるユニークな数値をホストアドレス部として、ネットワーク共通アドレス部に付加することにより、第3ノードアドレスとして作成することを特徴とする請求項6に記載のロボット制御システム。
【請求項9】
前記複数のノードは、機能別、負荷別、又は安全別に分けられていることを特徴とする請求項7又は請求項8に記載のロボット制御システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2008−59017(P2008−59017A)
【公開日】平成20年3月13日(2008.3.13)
【国際特許分類】
【出願番号】特願2006−231637(P2006−231637)
【出願日】平成18年8月29日(2006.8.29)
【出願人】(000000262)株式会社ダイヘン (990)
【出願人】(000005197)株式会社不二越 (625)
【Fターム(参考)】
【公開日】平成20年3月13日(2008.3.13)
【国際特許分類】
【出願日】平成18年8月29日(2006.8.29)
【出願人】(000000262)株式会社ダイヘン (990)
【出願人】(000005197)株式会社不二越 (625)
【Fターム(参考)】
[ Back to top ]