(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
自動化された工場などにおいて製造機械の制御装置として用いられるプログラマブルロジックコントローラ(PLC)が知られている。たとえば、プログラマブルロジックコントローラは、ツールと呼ばれるソフトウェアがインストールされたコンピュータ(市販のパーソナルコンピュータなど)またはプログラマブルロジックコントローラの設定などに用いられる表示器を用いて管理される。
【0003】
プログラマブルロジックコントローラ、コンピュータおよび表示器を接続するネットワークの中には、イーサネット(登録商標)を利用するものがある。イーサネットを利用した場合には、機器間での通信のために、プログラマブルロジックコントローラ、コンピュータおよび表示器などに対してアドレス(たとえばIP(Internet Protocol)アドレス)をユーザが定め、定めたIPアドレスをプログラマブルロジックコントローラ、コンピュータおよび表示器において設定する必要がある。機器間での通信の際には、設定ツールなどを利用して通信先のIPアドレスを指定し、接続を確立させる必要がある。したがって、IPアドレス等が誤って設定されると、接続が確立されないといった問題があり得る。
【0004】
また、イーサネットの特性上、接続先の機器が属するネットワークのネットワークアドレスをユーザが知らなければ接続(通信)が確立されないという問題、または、異なるネットワーク間では通信できないという問題もあり得る。
【0005】
これらの問題を回避するためには、プログラマブルロジックコントローラ、コンピュータおよび表示器を接続するネットワークの構成をユーザが詳細に把握しておかなければならない。
【0006】
しかしながら、製造ラインを立ち上げた直後、または、何らかのトラブルが発生した場合などには、各機器のIPアドレスが不明であることもある。
【0007】
このような課題に関連する技術として、特開2007−243825号公報(特許文献1)は、エンジニアリングツールが、同一ネットワークに接続する全てのノードに対して情報要求コマンドをブロードキャスト送信し、プログラマブルコントローラ(プログラマブルロジックコントローラ)が、情報要求コマンドに対して自局の機器情報およびIPアドレスをレスポンスとして返信することを開示する。
【0008】
特開2007−243825号公報に記載の技術によれば、エンジニアリングツールおよびプログラマブルコントローラの各々のIPアドレスを設定した後、エンジニアリングツールから各プログラマブルコントローラのIPアドレスを参照することができる。よって、接続したいプログラマブルコントローラを簡単に指定することができる。
【発明を実施するための形態】
【0018】
図1を参照して、本実施の形態に係る制御システム10について説明する。制御システム10は、第1プログラマブルロジックコントローラ(以下、第1コントローラと記載する)101と、第2プログラマブルロジックコントローラ(以下、第2コントローラと記載する)102と、第3プログラマブルロジックコントローラ(以下、第3コントローラと記載する)103と、第4プログラマブルロジックコントローラ(以下、第1コントローラと記載する)104と、コンピュータ200とを備える。プログラマブルロジックコントローラの数は4つに限られず、1台以上であればいくつでもよい。
【0019】
第1コントローラ101、第2コントローラ102、第3コントローラ103および第4コントローラ104は、制御装置として用いられる。コンピュータ200は、ユーザが操作する操作端末として用いられる。
【0020】
第1コントローラ101、第2コントローラ102、第3コントローラ103、第4コントローラ104およびコンピュータ200は、ネットワーク300を介して相互に電気的に接続される。
【0021】
第1コントローラ101、第2コントローラ102、第3コントローラ103、第4コントローラ104およびコンピュータ200は、夫々、ネットワーク300上に設けられたハブ302に通信ケーブルによって接続される。第1コントローラ101、第2コントローラ102、第3コントローラ103、第4コントローラ104およびコンピュータ200を無線で接続してもよい。
【0022】
ネットワーク300は、イーサネットを利用して、第1コントローラ101、第2コントローラ102、第3コントローラ103、第4コントローラ104およびコンピュータ200を相互に接続する。なお、イーサネットを利用した接続方法には周知の技術を利用すればよいため、ここではその詳細な説明は繰り返さない。イーサネット以外の通信規格を利用してもよい。
【0023】
第1コントローラ101、第2コントローラ102、第3コントローラ103および第4コントローラ104には、夫々異なる工作機械が接続される。第1コントローラ101、第2コントローラ102、第3コントローラ103および第4コントローラ104は、これらの工作機械の制御装置としての機能を有する。
【0024】
コンピュータ200は、たとえば市販されているパーソナルコンピュータである。コンピュータ200は、ノートブックコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA:Personal Digital Assistant)など、任意の形式のコンピュータが用いられ得る。
【0025】
コンピュータ200には、コンピュータ200に所望の機能を実行させるためのプログラムであるエンジニアリングツールがインストールされる。ユーザは、コンピュータ200を操作することによって、第1コントローラ101、第2コントローラ102および第3コントローラ103の設定を変更することなどが可能である。
【0026】
コンピュータ200の代わりに、もしくは加えて、プログラマブル表示器と呼ばれる専用の制御装置をネットワーク300に接続してもよい。すなわち、操作端末としてプログラマブル表示器を用いてもよい。プログラマブル表示器は、たとえば、第1コントローラ101、第2コントローラ102、第3コントローラ103および第4コントローラ104の作動状態および設定内容などを表示する。プログラマブル表示器は、たとえばタッチパネルを有する。ユーザは、タッチパネルを操作することによって、第1コントローラ101、第2コントローラ102、第3コントローラ103および第4コントローラ104の設定を変更することなどが可能である。
【0027】
プログラマブル表示器を、プログラマブルコントローラの代わりに、もしくは加えてネットワーク300に接続し、制御装置として用いてもよい。
【0028】
第1コントローラ101、第2コントローラ102、第3コントローラ103、第4コントローラ104およびコンピュータ200の夫々には、IPアドレスが割り当てられる。割り当てられたIPアドレスの各々は、専用のツールなどを用いて第1コントローラ101、第2コントローラ102、第3コントローラ103、第4コントローラ104およびコンピュータ200に夫々登録(記憶)される。
【0029】
一例として、第1コントローラ101には、IPアドレスとして「192.168.250.1」が割り当てられる。第2コントローラ102には、DHCP(Dynamic Host Configuration Protocol)を利用してIPアドレスが割り当てられる。ただし、
図1に示す例ではDHCPサーバが存在しないため、第2コントローラ102にIPアドレスを割り当てることができない。その結果、「0.0.0.0」が第2コントローラ102のIPアドレスとして示される。
【0030】
第3コントローラ103には、IPアドレスとして「192.168.70.2」が割り当てられる。第4コントローラ104には、IPアドレスとして「192.168.250.1」が割り当てられる。ただし、このIPアドレスは誤って設定されたものであって、正しくは、IPアドレスとしてたとえば「192.168.250.2」が割り当てられべきである。
【0031】
コンピュータ200には、IPアドレスとして「192.168.70.1」が割り当てられる。本実施の形態において第1コントローラ101、第3コントローラ103、第4コントローラ104およびコンピュータ200に割り当てられるIPアドレスは、たとえば製造ラインなどを設計または管理するユーザによって選択された固定のIPアドレスである。これらのIPアドレスは一例であって、割り当てられるIPアドレスはこれらに限定されない。
【0032】
第1コントローラ101、第2コントローラ102、第3コントローラ103、第4コントローラ104およびコンピュータ200は、夫々、IPアドレスとは別のリンクローカルアドレスを自動的に設定する。リンクローカルアドレスは、エイリアスとして用いられ得る。このように、複数のアドレスが割当てられる機能のことをIPエイリアスと呼ぶ。このIPエイリアスの機能はイーサネット利用技術の1つとして知られている。
【0033】
一例として、第1コントローラ101は、自己のリンクローカルアドレスに「169.254.30.1」を設定する。第2コントローラ102は、自己のリンクローカルアドレスに「169.254.78.35」を設定する。第3コントローラ103は、自己のリンクローカルアドレスに「169.254.60.57」を設定する。第4コントローラ104は、自己のリンクローカルアドレスに「169.254.78.12」を設定する。コンピュータ200は、自己のリンクローカルアドレスに「169.254.30.3」を設定する。これらのリンクローカルアドレスは一例であって、リンクローカルアドレスはこれらに限定されない。
【0034】
第1コントローラ101、第2コントローラ102、第3コントローラ103、第4コントローラ104およびコンピュータ200は、他の機器において設定されたリンクローカルアドレスとは異なるリンクローカルアドレスを設定する。すなわち、第1コントローラ101、第2コントローラ102、第3コントローラ103、第4コントローラ104およびコンピュータ200の夫々には、異なるリンクローカルアドレスが設定される。
【0035】
図2を参照して、第1コントローラ101、第2コントローラ102、第3コントローラ103、第4コントローラ104およびコンピュータ200の機能について説明する。
図2においては、第1コントローラ101、第2コントローラ102、第3コントローラ103および第4コントローラ104のうち、第1コントローラ101のみを示す。第2コントローラ102、第3コントローラ103および第4コントローラ104の機能は、第1コントローラ101の機能と同じ、もしくは略同じであるため、ここではその詳細な説明は繰り返さない。
【0036】
第1コントローラ101(第2コントローラ102、第3コントローラ103および第4コントローラ104)は、アドレス設定機能111、接続機能121および送信機能131を含む。アドレス設定機能111は、上述したリンクローカルアドレスを設定する。接続機能121は、ネットワーク300との接続(通信)を処理する。
【0037】
送信機能131は、第1コントローラ101の情報141を、ネットワーク300を介して送信する。これらの機能は、たとえば第1コントローラ101にインストールされるプログラムをCPU(Central Processing Unit)が実行することによって実現される。
【0038】
図3に、第1コントローラ101の情報141の一例を示す。第1コントローラ101の情報141は、リンクローカルアドレス、IPアドレス、MAC(Media Access Control)アドレス、名称などの付加情報、型式およびユニットバージョンなどを含む。これらの情報は一例であって、第1コントローラ101の情報141はこれらに限定されない。
【0039】
図2に戻って、コンピュータ200は、アドレス設定機能210、接続機能220、要求機能230および受信機能240を含む。アドレス設定機能210は、上述したリンクローカルアドレスを設定する。接続機能220は、ネットワーク300との接続(通信)を処理する。
【0040】
要求機能230は、第1コントローラ101、第2コントローラ102、第3コントローラ103および第4コントローラ104に各々のIPアドレスを含む情報をコンピュータ200のリンクローカルアドレスに対して送信するように要求する。第1コントローラ101、第2コントローラ102、第3コントローラ103および第4コントローラ104に各々のIPアドレスを含む情報の要求がブロードキャスト送信される。第1コントローラ101、第2コントローラ102、第3コントローラ103および第4コントローラ104は、要求を受信すると、各々の情報を、コンピュータ200のリンクローカルアドレスを宛先として送信する。
【0041】
受信機能240は、第1コントローラ101、第2コントローラ102、第3コントローラ103および第4コントローラ104から送信される、各々の情報を受信する。これらの機能は、たとえばコンピュータ200にインストールされるプログラムであるエンジニアリングツールをCPUが実行することによって実現される。
【0042】
第1コントローラ101、第2コントローラ102、第3コントローラ103または第4コントローラ104が、コンピュータ200の要求機能230および受信機能240を有するようにしてもよい。
【0043】
コンピュータ200は、各プログラマブルロジックコントローラから受信した情報から、ネットワーク構成情報250を作成する。
図4に、ネットワーク構成情報250の一例を示す。ネットワーク構成情報250は、各プログラマブルロジックコントローラから受信した情報を統合することによって作成される。ネットワーク構成情報250は、コンピュータ200自身の情報(IPアドレスおよびリンクローカルアドレスなど)を含んでもよい。
【0044】
図5を参照して、第1コントローラ101、第2コントローラ102、第3コントローラ103、第4コントローラ104およびコンピュータ200のハードウェア構成について説明する。
【0045】
図5においては、第1コントローラ101、第2コントローラ102、第3コントローラ103および第4コントローラ104のうち、第1コントローラ101のみを示す。第2コントローラ102、第3コントローラ103および第4コントローラ104のハードウェア構成は、第1コントローラ101のハードウェア構成と同じ、もしくは略同じであるため、ここではその詳細な説明は繰り返さない。
【0046】
第1コントローラ101(第2コントローラ102、第3コントローラ103および第4コントローラ104)は、演算装置151、不揮発性記憶装置161、揮発性記憶装置171および通信装置181を含む。
【0047】
演算装置151は、たとえばCPUである。演算装置151は、オペレーティングシステム(OS)を含む、種々のソフトウェア(プログラム)を実行する。不揮発性記憶装置161は、たとえばROM(Read Only Memory)またはHDD(Hard disk drive)である。不揮発性記憶装置161は、演算装置151が実行するソフトウェアの実行モジュールを格納する。
【0048】
揮発性記憶装置171は、たとえばRAM(Random Access Memory)である。揮発性記憶装置171は、たとえば各々のソフトウェアが必要とするワーク領域などを保持するために用いられる。
【0049】
通信装置181は、ネットワーク300を介した通信を制御するために用いられる。通信装置181は、第1コントローラ101の外部の装置であってもよい。
【0050】
コンピュータ200は、演算装置260、不揮発性記憶装置270、揮発性記憶装置280、通信装置290および表示装置292を含む。演算装置260、不揮発性記憶装置270、揮発性記憶装置280および通信装置290は、それぞれ、演算装置151、不揮発性記憶装置161、揮発性記憶装置171および通信装置181と同じ、もしくは略同じである。したがって、ここではその詳細な説明は繰り返さない。
【0051】
表示装置292は、たとえば前述のネットワーク構成情報250などの種々の情報を表示する。表示装置292には一般的なモニターなどが用いられる。
【0052】
図6を参照して、第1コントローラ101、第2コントローラ102、第3コントローラ103、第4コントローラ104およびコンピュータ200が、リンクローカルアドレスを設定するときに実行するプログラムの制御構造について説明する。以下に説明するプログラムは、第1コントローラ101、第2コントローラ102、第3コントローラ103、第4コントローラ104およびコンピュータ200の各々において実行される。このプログラムは、たとえば、LAN(Local Area Network)ケーブルなどの通信ケーブルが、第1コントローラ101、第2コントローラ102、第3コントローラ103、第4コントローラ104またはコンピュータ200のポートに挿入されたときに実行される。
【0053】
ステップ(以下、ステップをSと略す)100にて、MACアドレスに基づいて、リンクローカルアドレスが生成される。周知の通り、MACアドレスは、各々の機器に取り付けられたイーサネットカードに固有のID番号である。MACアドレスは、製造者ごとに定められた固有の番号と、製造者が独自に割り当てることができる任意の番号との組み合わせによって表される。したがって、一例として、リンクローカルアドレスは、MACアドレスにおける製造者の固有の番号と、MACアドレスと重複しない範囲で無作為に定められる任意の番号との組み合わせとして生成される。リンクローカルアドレスの作成方法はこれに限定されない。
【0054】
リンクローカルアドレスが生成された後、S102にて、生成されたリンクローカルアドレスと同じリンクローカルアドレスがネットワーク300上に存在するか否かを確認するため、生成されたリンクローカルアドレスが宛先としてセットされたアドレス解決プロトコル(ARP)リクエストがブロードキャストで送信される。
【0055】
ARPリクエストに対して応答がある場合、すなわち生成されたリンクローカルアドレスと同じリンクローカルアドレスを有する機器がネットワーク300上に存在する場合(S104にてYES)、リンクローカルアドレスが再度作成される(S100)。
【0056】
ARPリクエストに対して応答がない場合、すなわち生成されたリンクローカルアドレスと同じリンクローカルアドレスを有する機器がネットワーク300上に存在しない場合(S104にてNO)、作成されたリンクローカルアドレスが自己のリンクローカルアドレスとして確定される(S106)。その後、S108にて、確定されたリンクローカルアドレスが、エイリアスとして登録される。
【0057】
図7を参照して、コンピュータ200が、前述した
図4に示されるネットワーク構成情報250を作成するために実行するプログラムの制御構造について説明する。本実施の形態において、以下に説明するプログラムは、コンピュータ200によって実行される。
【0058】
S200にて、第1コントローラ101、第2コントローラ102、第3コントローラ103および第4コントローラ104に各々のIPアドレスを含む情報の要求が、コンピュータ200からブロードキャスト送信される。
【0059】
その後、S202にて、各プログラマブルロジックコントローラから受信した情報から、ネットワーク構成情報250が作成される。
【0060】
図8を参照して、第1コントローラ101、第2コントローラ102、第3コントローラ103または第4コントローラ104が、各々の情報を送信するために実行するプログラムの制御構造について説明する。
【0061】
S300にて、プログラマブルロジックコントローラの、IPアドレスを含む情報を要求する要求を受信したか否かが判断される。要求を受信すると(S300にてYES)、S302にて、コンピュータ200のリンクローカルアドレスに向けて、プログラマブルロジックコントローラの情報を送信する。
【0062】
図9および
図10を参照して、コンピュータ200が、第1コントローラ101、第2コントローラ102、第3コントローラ103または第4コントローラ104と通信するために実行するプログラムの制御構造について説明する。本実施の形態において、以下に説明するプログラムは、コンピュータ200によって実行される。
【0063】
S400にて、前述した
図4に示されるネットワーク構成情報250が作成される。S402にて、ネットワーク構成情報250に基づいて、
図11に示すノード一覧情報が表示装置292に表示される。ノード一覧表は、各プログラマブルロジックコントローラのIPアドレスなどを含む。
図11に示すノード一覧情報は一例であって、これに限定されない。ノード一覧情報は、コンピュータ200自身の情報(IPアドレスおよびMACアドレスなど)を含んでもよい。
【0064】
ユーザは、コンピュータ200を操作して、ノード一覧情報に示される機器(プログラマブルロジックコントローラ)の中から接続(通信)先を選択する。
【0065】
図9に戻って、S404にて、接続先として選択されたプログラマブルロジックコントローラのIPアドレスと同じIPアドレスを他のプログラマブルロジックコントローラが有するかを判断する。接続先として選択されたプログラマブルロジックコントローラのIPアドレスと同じIPアドレスを他のプログラマブルロジックコントローラが有していなければ(S404にてNO)、S406にて、接続先として選択されたプログラマブルロジックコントローラとコンピュータ200との間の接続(通信)が確立される。
【0066】
接続先として選択されたプログラマブルロジックコントローラのIPアドレスと同じIPアドレスを他のプログラマブルロジックコントローラが有していれば(S404にてYES)、S408にて、IPアドレスが重複していることがユーザに通知される。たとえば、IPアドレスが重複していることを示す警告が表示装置292に表示される。
【0067】
接続(通信)がキャンセルされると(S410にてキャンセル)、接続(通信)が確立されることなく処理が終了する。
【0068】
リンクローカルアドレスを用いて接続(通信)するメンテナンスモードが選択されると(S410にてメンテナンスモード)、S412にて、リンクローカルアドレスを用いて、接続(通信)先として選択されたプログラマブルロジックコントローラとコンピュータ200との間で接続(通信)が確立される。
【0069】
たとえば、コンピュータ200上で、接続(通信)先として選択されたプログラマブルロジックコントローラのIPアドレスが変更されると(S410にて変更)、S414にて、リンクローカルアドレスを用いて、接続先として選択されたプログラマブルロジックコントローラとコンピュータ200との間で接続が確立される。
【0070】
その後、S416にて、接続先として選択されたプログラマブルロジックコントローラに、変更されたIPアドレスが登録される。IPアドレスが再登録された後、S418にて、IPアドレスを用いて、接続先として選択されたプログラマブルロジックコントローラとコンピュータ200との間で接続(通信)が確立される。
【0071】
以上のように、ユーザによって割り当てられるIPアドレスとは別に、リンクローカルアドレスが設定される。よって、IPアドレスが重複していても、リンクローカルアドレスを用いて通信できる。さらに、複数のプログラマブルロジックコントローラは、設定されたリンクローカルアドレスに対して各々のIPアドレスを含む情報を送信するように要求される。したがって、同じIPアドレスが誤って重複して設定されていても、リンクローカルアドレスを用いることによって、複数のプログラマブルロジックコントローラから各々のIPアドレスを受信できる。IPアドレス同士を比較することによって、各機器に対して割り当てられたIPアドレスを検証できる。よって、IPアドレスが重複している場合には、誤りを訂正することができる。その結果、適切に修正されたIPアドレスを用いて通信できる。プログラマブルロジックコントローラに対してIPアドレスが設定されていない場合も同様に、リンクローカルアドレスを用いて通信できる。
【0072】
また、IPアドレスに加えてリンクローカルアドレスが設定されるため、IPアドレスを維持したまま、リンクローカルアドレスを用いて通信が可能である。したがって、ユーザによって割り当てられたIPアドレスがプログラマブルロジックコントローラまたはコンピュータによって変更されることを回避できる。そのため、ユーザによるIPアドレスの管理が妨げられない。
【0073】
以下、
図12に示すように、1台のコンピュータ200と、1台のプログラマブルロジックコントローラ105とがイーサネットを利用してハブを介さずに接続された実施例について説明する。なお、この実施例においては、プログラマブルロジックコントローラ105の代わりにプログラマブル表示器をコンピュータ200にハブを介さずに接続してもよい。
【0074】
図13を参照して、1台のコンピュータ200と、1台のプログラマブルロジックコントローラ105とがイーサネットを利用して、ハブを介さずに接続された場合に、コンピュータ200がプログラマブルロジックコントローラ105と通信するために実行するプログラムの制御構造について説明する。
【0075】
S500にて、ネットワーク構成情報250が作成される。S502にて、ネットワーク構成情報250に基づいて、コンピュータ200にイーサネットを利用して接続された機器が一台であるか否かが判定される。コンピュータ200にイーサネットを利用して接続された機器が一台であると(S502にてYES)、S504にて、コンピュータ200に接続されたプログラマブルロジックコントローラ105のリンクローカルアドレスを用いて通信が確立される。
【0076】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。