(58)【調査した分野】(Int.Cl.,DB名)
前記制御装置は、前記操作端末からの前記アドレス情報の要求に応答して、前記アドレス情報の要求のブロードキャスト送信を開始するとともに、前記ブロードキャストに対する応答に含まれる情報から前記ネットワーク構成情報を都度構成する、請求項1に記載の制御システム。
前記制御装置は、前記操作端末からの前記アドレス情報の要求に応答して、前記アドレス情報の要求のブロードキャスト送信を開始するとともに、前記ブロードキャストに対する応答に含まれる情報から前記ネットワーク構成情報を都度構成する、請求項5に記載の制御装置。
第1のネットワークに接続される制御装置に対して、前記第1のネットワークとは別の第2のネットワークを介して接続される操作端末であって、前記制御装置は、前記第1のネットワーク上に、IPアドレスの他に名称および型式の少なくとも一方を含むアドレス情報の要求をブロードキャスト送信するとともに、前記ブロードキャストに対する応答から、前記第1のネットワーク上の機器毎のアドレス情報を取得してネットワーク構成情報を構成し、
前記制御装置から送信される前記第1のネットワーク上の機器のネットワーク構成情報を受信するための手段と、
宛先としていずれかの機器のIPアドレスを含むデータを、前記制御装置に送信するための手段とを含み、前記制御装置は、前記操作端末から前記制御装置に送信されたデータを、当該データに宛先として含まれるIPアドレスに該当する機器へ転送する、操作端末。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、たとえば管理上の理由のために、コンピュータをネットワークに直接接続することが制限されるネットワークもある。このようなネットワークにおいては、たとえばプログラマブルロジックコントローラの設定を変更または確認する場合、特定のプログラマブルロジックコントローラをルータとして機能させ、このプログラマブルロジックコントローラを介して、コンピュータと他のプログラマブルロジックコントローラとが通信することが可能である。
【0006】
ルータとして機能する特定のプログラマブルロジックコントローラを介して、コンピュータと他のプログラマブルロジックコントローラとが通信するためには、コンピュータにおいて、ネットワークへの経路情報(ルーティングテーブル)が設定されていなくてはならない。
【0007】
したがって、経路情報が正しく設定されていなければ、通信が確立されないといった問題点がある。また、誤って経路情報が設定された場合には、既存のネットワークとの通信障害が発生し得る。さらに、通信相手であるプログラマブルロジックコントローラのアドレス情報が不明であれば、経路情報そのものの設定が不可能である。これらの問題を回避するためには、プログラマブルロジックコントローラが接続されるネットワークの構成をユーザが詳細に把握しておかなければならない。
【0008】
しかしながら、製造ラインを立ち上げた直後、または、何らかのトラブルが発生した場合などには、アドレス情報が不明であることもある。この場合には、各々のプログラマブルロジックコントローラ毎に、夫々の接続ポートを用いてコンピュータを接続することによって、アドレス情報を1つずつ確認する必要があった。このような作業はユーザにとって煩わしい。
【0009】
一方、ユーザの手作業によらずに経路情報を動的に構築する技術として、RIP(Routing Information Protocol)が知られている。RIPは、ルータ間で経路情報を交換するプロトコルである、RIPの導入は容易である反面、経路情報をネットワーク全体に送信するため、ネットワークの負荷が増大し得る。また、意図せずに経路情報が交換されることによって、ネットワーク障害の原因ともなり得る。
【0010】
本発明は、上述の課題を解決するためになされたものであり、その目的は、ネットワーク上の機器のアドレス情報をユーザが把握していなくても、ネットワーク上の機器と、ネットワーク上にはない操作端末との間で通信を正しく確立することである。
【課題を解決するための手段】
【0011】
制御システムは、第1のネットワークに接続される制御装置と、第1のネットワークとは別の第2ネットワークを介して制御装置と接続される操作端末とを備える。制御装置は、第1のネットワーク上の機器のアドレス情報を取得するための手段と、操作端末に、アドレス情報を送信するための手段とを含む。操作端末は、制御装置からアドレス情報を受信するための手段を含む。
【0012】
第1のネットワークに接続される制御装置は、第1のネットワーク上の機器のアドレス情報を取得するための手段と、第1のネットワークとは別の第2ネットワークを介して制御装置に接続される操作端末に、アドレス情報を送信するための手段とを含む。
【0013】
第1のネットワークとは別の第2ネットワークを介して接続される操作端末は、第1のネットワークに接続される制御装置から、第1のネットワーク上の機器のアドレス情報を受信するための手段を含む。
【0014】
あるプログラムは、第1のネットワークに接続される制御装置に、第1のネットワーク上の機器のアドレス情報を取得するステップと、第1のネットワークとは別の第2ネットワークを介して制御装置に接続される操作端末に、アドレス情報を送信するステップとを実行させる。
【0015】
別のプログラムは、第1のネットワークとは別の第2ネットワークを介して接続される操作端末に、第1のネットワークに接続される制御装置から、第1のネットワーク上の機器のアドレス情報を受信するステップを実行させる。
【発明の効果】
【0016】
制御装置が接続された第1のネットワークとは異なる第2ネットワークを介して制御装置と接続された操作端末は、第1のネットワーク上の機器のアドレス情報を制御装置から受信する。これにより、操作端末は、アドレス情報を利用して、第1のネットワーク上の機器と通信できる。
【発明を実施するための形態】
【0018】
図1を参照して、本実施の形態に係る制御システム10について説明する。制御システム10は、第1プログラマブルロジックコントローラ(以下、第1コントローラと記載する)101と、第2プログラマブルロジックコントローラ(以下、第2コントローラと記載する)102と、第3プログラマブルロジックコントローラ(以下、第3コントローラと記載する)103と、コンピュータ200とを備える。プログラマブルロジックコントローラの数は3つに限られず、1台以上であればいくつでもよい。
【0019】
第1コントローラ101、第2コントローラ102および第3コントローラ103は、制御装置として用いられる。コンピュータ200は、ユーザが操作する操作端末として用いられる。
【0020】
第1コントローラ101、第2コントローラ102および第3コントローラ103は、第1ネットワーク300を介して相互に電気的に接続される。第1コントローラ101、第2コントローラ102および第3コントローラ103を無線で接続してもよい。
【0021】
第1ネットワーク300は、イーサネットを利用して、第1コントローラ101、第2コントローラ102および第3コントローラ103を相互に接続する。イーサネットの通信プロトコルには、たとえばTCP/IP(Transmission Control Protocol/Internet Protocol)またはUDP/IP(User Datagram Protocol/Internet Protocol)が用いられる。なお、イーサネットを利用した接続方法には周知の技術を利用すればよいため、ここではその詳細な説明は繰り返さない。イーサネット以外の通信規格を利用してもよい。
【0022】
第1コントローラ101、第2コントローラ102および第3コントローラ103には、夫々異なる工作機械が接続される。第1コントローラ101、第2コントローラ102および第3コントローラ103は、これらの工作機械の制御装置としての機能を有する。
【0023】
第1ネットワーク300上では、一例として、第1コントローラ101には、IPアドレスとして「10.6.100.1」が割り当てられる。第2コントローラ102には、IPアドレスとして「10.6.100.2」が割り当てられる。第3コントローラ103には、IPアドレスとして「10.6.100.3」が割り当てられる。
【0024】
本実施の形態において第1コントローラ101、第2コントローラ102および第3コントローラ103に割り当てられるIPアドレスは、たとえば製造ラインなどを設計または管理するユーザによって選択された固定のIPアドレスである。これらのIPアドレスは一例であって、割り当てられるIPアドレスはこれらに限定されない。
【0025】
コンピュータ200は、第1ネットワーク300とは別の第2ネットワーク302を介して、第1コントローラ101、第2コントローラ102および第3コントローラ103のうちのいずれか1台と接続される。
図1においては、USB(Universal Serial Bus)を用いてコンピュータ200と第1コントローラ101との間の第2ネットワーク302が確立された例を示す。
【0026】
この第2ネットワーク302において、一例として、コンピュータ200には、アドレスとして、「192168.251.2」が割り当てられる。第1コントローラ101には、アドレスとして「192168.251.2」が割り当てられる。これらのアドレスは、たとえば製造ラインなどを設計または管理するユーザによって選択された固定のアドレスである。これらのアドレスは一例であって、割り当てられるアドレスはこれらに限定されない。
【0027】
コンピュータ200は、たとえば市販されているパーソナルコンピュータである。コンピュータ200は、ノートブックコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA:Personal Digital Assistant)など、任意の形式のコンピュータが用いられ得る。
【0028】
コンピュータ200には、コンピュータ200に所望の機能を実行させるためのプログラムであるエンジニアリングツールがインストールされる。ユーザは、コンピュータ200を操作端末として使用することによって、第1コントローラ101、第2コントローラ102および第3コントローラ103の設定を変更することなどが可能である。
【0029】
コンピュータ200の代わりに、もしくは加えて、プログラマブル表示器と呼ばれる専用の制御装置を用いてもよい。すなわち、操作端末としてプログラマブル表示器を用いてもよい。プログラマブル表示器は、たとえば、第1コントローラ101、第2コントローラ102および第3コントローラ103の作動状態および設定内容などを表示する。プログラマブル表示器は、たとえばタッチパネルを有する。ユーザは、タッチパネルを操作することによって、第1コントローラ101、第2コントローラ102および第3コントローラ103の設定を変更することなどが可能である。
【0030】
プログラマブル表示器を、プログラマブルコントローラの代わりに、もしくは加えて第1ネットワーク300に接続し、制御装置として用いてもよい。
【0031】
図2を参照して、第1コントローラ101、第2コントローラ102、第3コントローラ103およびコンピュータ200の機能について説明する。
【0032】
第1コントローラ101は、接続機能111と、要求機能121と、受信機能131と、保持機能141と、送信機能151と、転送機能161とを含む。これらの機能は、たとえば第1コントローラ101にインストールされるプログラムをCPU(Central Processing Unit)が実行することによって実現される。上記の機能をハードウェアにより実現してもよく、ソフトウェアとハードウェアとの協働により実現してもよい。
【0033】
接続機能111は、第1ネットワーク300との接続(通信)およびUSBによるコンピュータ200との接続(通信)を処理する。
【0034】
要求機能121は、第1ネットワーク300上の第2コントローラ102および第3コントローラ103に、各々のIPアドレスを含むアドレス情報を第1コントローラ101のIPアドレスに対して送信するように要求する。第1ネットワーク300上の全ての機器、すなわち第2コントローラ102および第3コントローラ103に、各々のIPアドレスを含むアドレス情報の要求がブロードキャスト送信される。要求とともに、たとえば、第1コントローラ101のIPアドレスを含むアドレス情報が送信される。
【0035】
第2コントローラ102および第3コントローラ103は、要求を受信すると、各々のアドレス情報を、第1コントローラ101のIPアドレスを宛先として送信する。
【0036】
受信機能131は、第2コントローラ102および第3コントローラ103から送信される、各々のアドレス情報を受信する。保持機能141は、受信した各アドレス情報を保持する。より具体的には、受信された各アドレス情報が第1コントローラ101内に記憶される。なお、アドレス情報を保持しなくてもよい。すなわち、第1コントローラ1010が保持機能141を有さなくてもよい。
【0037】
第1コントローラ101は、各プログラマブルロジックコントローラから受信し、記憶したアドレス情報から、ネットワーク構成情報を作成する。
図3に、一例として第2コントローラ102のアドレス情報を示す。
図4に、ネットワーク構成情報の一例を示す。各プログラマブルロジックコントローラのアドレス情報は、IPアドレスの他、MAC(Media Access Control)アドレス、名称などの付加情報、型式およびユニットバージョンなどを含む。これらの情報は一例であって、情報はこれらに限定されない。
【0038】
ネットワーク構成情報は、各プログラマブルロジックコントローラから受信した情報を統合することによって作成される。
図4に示すネットワーク構成情報は、第1コントローラ101自身のアドレス情報を含む。ネットワーク構成情報は、
図4に示すものに限定されない。
【0039】
図2に戻って、送信機能151は、第1ネットワーク300上の機器のアドレス情報を、第1ネットワーク300とは別の第2ネットワーク302を介してコンピュータ200に送信する。より具体的にはアドレス情報を含む、上述したネットワーク構成情報がコンピュータ200に送信される。
【0040】
転送機能161は、第1コントローラ101がルータとして動作するための機能である。転送機能161は、第1ネットワーク300上の機器、すなわち第2コントローラ102または第3コントローラ103のIPアドレスを宛先としてコンピュータ200から第1コントローラ101に送信されたデータを、宛先として指定された機器に転送する。同様に、転送機能161は、コンピュータ200のIPアドレスを宛先として、第1ネットワーク300上の機器、すなわち第2コントローラ102または第3コントローラ103から第1コントローラ101に送信されたデータを、宛先として指定されたコンピュータ200に転送する。
【0041】
第2コントローラ102は、接続機能112と、送信機能122とを含む。これらの機能は、たとえば第2コントローラ102にインストールされるプログラムをCPUが実行することによって実現される。上記の機能をハードウェアにより実現してもよく、ソフトウェアとハードウェアとの協働により実現してもよい。
【0042】
接続機能112は、第1ネットワーク300との接続(通信)を処理する。送信機能122は、第2コントローラ102のアドレス情報を、第1ネットワーク300を介して第1コントローラ101に送信する。
【0043】
同様に、第3コントローラ103は、接続機能113と、送信機能123とを含む。これらの機能は、たとえば第3コントローラ103にインストールされるプログラムをCPUが実行することによって実現される。上記の機能をハードウェアにより実現してもよく、ソフトウェアとハードウェアとの協働により実現してもよい。
【0044】
接続機能113は、第1ネットワーク300との接続(通信)を処理する。送信機能123は、第3コントローラ103のアドレス情報を、第1ネットワーク300を介して第1コントローラ101に送信する。
【0045】
図2に戻って、コンピュータ200は、接続機能210と、要求機能220と、受信機能230と、送信機能240とを含む。これらの機能は、たとえばコンピュータ200にインストールされるプログラムをCPUが実行することによって実現される。上記の機能をハードウェアにより実現してもよく、ソフトウェアとハードウェアとの協働により実現してもよい。
【0046】
接続機能210は、USBを用いた第2ネットワーク302による第1コントローラ101との接続(通信)を処理する。
【0047】
要求機能220は、第2ネットワーク302によってコンピュータ200が第1コントローラ101と接続された場合に、第1ネットワーク300上の機器のアドレス情報、より具体的にはネットワーク構成情報をコンピュータ200のアドレスに対して送信するように第1コントローラ101に要求する。第1コントローラ101は、要求を受信すると、第1ネットワーク300上の機器のアドレス情報を、コンピュータ200のアドレスを宛先として送信する。
【0048】
受信機能230は、第1コントローラ101から送信される、第1ネットワーク300上の各々の機器のアドレス情報、より具体的にはアドレス情報を含むネットワーク構成情報を受信する。なお、第1コントローラ101からネットワーク構成情報を受信する代わりに、第1コントローラ101から受信したアドレス情報に基いて、コンピュータ200がネットワーク構成情報を作成するようにしてもよい。
【0049】
送信機能240は、第2コントローラ102または第3コントローラ103のIPアドレスが宛先のデータを、第1コントローラ101に送信する。
【0050】
図5を参照して、第1コントローラ101、第2コントローラ102、第3コントローラ103、およびコンピュータ200のハードウェア構成について説明する。
【0051】
図5においては、第1コントローラ101、第2コントローラ102、第3コントローラ103およびのうち、第1コントローラ101のみを示す。第2コントローラ102、第3コントローラ103のハードウェア構成は、第1コントローラ101のハードウェア構成と同じ、もしくは略同じであるため、ここではその詳細な説明は繰り返さない。
【0052】
第1コントローラ101(第2コントローラ102および第3コントローラ103)は、演算装置401、不揮発性記憶装置411、揮発性記憶装置421および通信装置431を含む。
【0053】
演算装置401は、たとえばCPUである。演算装置401は、オペレーティングシステム(OS)を含む、種々のソフトウェア(プログラム)を実行する。不揮発性記憶装置411は、たとえばROM(Read Only Memory)またはHDD(Hard disk drive)である。不揮発性記憶装置411は、演算装置401が実行するソフトウェアの実行モジュールを格納する。
【0054】
揮発性記憶装置421は、たとえばRAM(Random Access Memory)である。揮発性記憶装置421は、たとえば各々のソフトウェアが必要とするワーク領域などを保持するために用いられる。
【0055】
通信装置431は、第1ネットワーク300または第2ネットワーク302を介した通信を制御するために用いられる。通信装置431は、第1コントローラ101の外部の装置であってもよい。
【0056】
コンピュータ200は、演算装置500、不揮発性記憶装置510、揮発性記憶装置520、通信装置530および表示装置540を含む。演算装置500、不揮発性記憶装置510、揮発性記憶装置520および通信装置530は、それぞれ、演算装置401、不揮発性記憶装置411、揮発性記憶装置421および通信装置431と同じ、もしくは略同じである。したがって、ここではその詳細な説明は繰り返さない。
【0057】
表示装置540は、たとえば前述のネットワーク構成情報などの種々の情報を表示する。表示装置540には一般的なモニターなどが用いられる。
【0058】
図6を参照して、第1コントローラ101が、前述した
図4に示されるネットワーク構成情報を作成するために実行するプログラムの制御構造について説明する。なお、以下に説明するプログラムは、たとえば第1コントローラ101が起動したとき、あるいは、第1コントローラ101が、コンピュータ200から、第1ネットワーク300上の機器のアドレス情報の要求を受信したときに実行される。
【0059】
ステップ(以下、ステップをSと略す)100にて、第2コントローラ102および第3コントローラ103に各々のIPアドレスを含むアドレス情報の要求が、第1コントローラ101から第1ネットワーク300上にブロードキャスト送信される。
【0060】
その後、S102にて、第1コントローラ101が各プログラマブルロジックコントローラからアドレス情報を受信すると、S104にて、ネットワーク構成情報が作成される。
【0061】
図7を参照して、第2コントローラ102および第3コントローラ103が、各々のアドレス情報を送信するために実行するプログラムの制御構造について説明する。
【0062】
S200にて、IPアドレスを含むアドレス情報を要求する要求を受信したか否かが判断される。要求を受信すると(S200にてYES)、S202にて、要求の発信元、すなわち第1コントローラ101のIPアドレスに向けて、アドレス情報が送信される。
【0063】
図8を参照して、第1コントローラ101が、第2コントローラ102および第3コントローラ103のアドレス情報をコンピュータ200に送信するために実行するプログラムの制御構造について説明する。
【0064】
S300にて、USBを用いた第2ネットワーク302によって、第1コントローラ101とコンピュータ200とが接続されたか否かが判断される。USBを用いてプログラマブルロジックコントローラとコンピュータ200とが接続されてか否かを判断する方法には周知の一般的な技術を利用すればよいため、ここではその詳細な説明は繰り返さない。
【0065】
USBを用いた第2ネットワーク302によって、第1コントローラ101とコンピュータ200とが接続されると(S300にてYES)、S302にて、コンピュータ200から、第1ネットワーク300上の機器のアドレス情報の要求を受信したか否かが判断される。
【0066】
第1コントローラ101が要求を受信すると(S302にてYES)、S304にて、第1ネットワーク300上の機器、具体的には第2コントローラ102および第3コントローラ103のアドレス情報を第1コントローラ101が保持しているか否かが判断される。
【0067】
第1コントローラ101がアドレス情報を保持していると(S304にてYES)、S306にて、第1ネットワーク300上の機器のアドレス情報がコンピュータ200に送信される。
【0068】
その他、第2コントローラ102および第3コントローラ103のアドレス情報を第1コントローラ101が保持しているか否かに関わらず、第1コントローラ101が、コンピュータ200から、第1ネットワーク300上の機器のアドレス情報の要求を受信すると、前述した
図6に示される処理を実行して第2コントローラ102および第3コントローラ103のアドレス情報を取得し、取得したアドレス情報をコンピュータ200に送信するようにしてもよい。この場合、コンピュータ200からの要求に応じて、取得したアドレス情報を保持するか否かを決定してもよい。
【0069】
図9を参照して、コンピュータ200が、第2コントローラ102または第3コントローラ103と通信するために実行するプログラムの制御構造について説明する。
【0070】
S400にて、USBを用いた第2ネットワーク302によって、コンピュータ200がプログラマブルロジックコントローラと接続されたか否かが判断される。コンピュータ200がプログラマブルロジックコントローラと接続されると(S400にてYES)、S401にて、接続されたプログラマブルロジックコントローラに向けて、接続されたプログラマブルロジックコントローラのアドレス情報を要求する。
【0071】
その後、接続されたプログラマブルロジックコントローラのアドレス情報、たとえば、第1コントローラ101のアドレス情報が受信されると(S402にてYES)、S403にて、受信されたアドレス情報に基いて、コンピュータ200においてルーティングテーブルが自動的に設定される。
【0072】
さらに、コンピュータ200は、S404にて、接続されたプログラマブルロジックコントローラに向けて、第1ネットワーク300上の機器のアドレス情報を要求する。
【0073】
その後、第1ネットワーク300上の機器のアドレス情報、具体的にはネットワーク構成情報が受信されると(S405にてYES)、S406にて、
図10に示すノード一覧情報が表示装置540に表示される。ノード一覧表は、各プログラマブルロジックコントローラのIPアドレスなどを含む。
図10に示すノード一覧情報は一例であって、これに限定されない。ノード一覧情報は、コンピュータ200自身の情報(IPアドレスおよびMACアドレスなど)を含んでもよい。
【0074】
ユーザは、コンピュータ200を操作して、ノード一覧情報に示される機器(プログラマブルロジックコントローラ)の中から接続(通信)先を選択する。
【0075】
図9に戻って、接続先となるプログラマブルロジックコントローラが選択されると(S408にてYES)、接続先として選択されたプログラマブルロジックコントローラとコンピュータ200との間の接続(通信)が確立される。
【0076】
具体的には、S410にて、接続先として選択されたプログラマブルロジックコントローラのIPアドレスを宛先としたデータが、第1コントローラ101、すなわち第1ネットワーク300上のアドレス情報の提供元のプログラマブルコントローラに向けて送信される。
【0077】
なお、ルーティングテーブルは、実際にコンピュータ200と、第1ネットワーク300上の機器(第2コントローラ102ならびに第3コントローラ103)とを接続するときに設定するようにしてもよい。
【0078】
図11を参照して、第1コントローラ101が、コンピュータ200と、第2コントローラ102または第3コントローラ103との通信を中継するために実行するプログラムの制御構造について説明する。
【0079】
USBを用いた第2ネットワーク302によって、第2コントローラ102または第3コントローラ103のIPアドレスを宛先としたデータを、第1コントローラ101がコンピュータ200から受信すると(S500にてYES)、S502にて、第1コントローラ101は、宛先として指定された機器、すなわち第2コントローラ102または第3コントローラ103のIPアドレスに向けて、受信したデータを第1ネットワーク300上で送信する。
【0080】
一方、第1ネットワーク300上で、コンピュータ200のアドレスを宛先としたデータを、第1コントローラ101が、第2コントローラ102または第3コントローラ103から受信すると(S504にてYES)、S506にて、第1コントローラ101は、コンピュータ200のアドレスに向けて、受信したデータを、USBを用いた第2ネットワーク302上で送信する。
【0081】
以上のように、第2コントローラ102および第3コントローラ103が接続された第1ネットワーク300とは異なる第2ネットワーク302を介して第1コントローラ101と接続されたコンピュータ200は、第1ネットワーク300上の第2コントローラ102および第3コントローラ103のアドレス情報を、第1コントローラ101から受信する。これにより、コンピュータ200は、アドレス情報を利用して、第1ネットワーク300上の第2コントローラ102および第3コントローラ103と通信できる。
【0082】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。