説明

ネットワークシステムにおけるアドレス設定方法

【課題】ネットワークシステムにおいて、アドレス異常が生じた場合に、簡単に且つオンラインでアドレス異常を復旧するための技術を提供する。
【解決手段】マスター装置が、ネットワーク上のすべてのスレーブ装置から、各スレーブ装置に設定されているアドレス値を取得し、他のスレーブ装置に設定されているアドレス値と重複するアドレス値が設定されているスレーブ装置を、異常スレーブ装置として抽出する。そして、マスター装置は、異常スレーブ装置でないスレーブ装置に対しては各スレーブ装置に設定されていたアドレス値をそのままノードアドレスとして割り当て、異常スレーブ装置に対しては他のスレーブ装置に割り当てられてないアドレス値を仮のノードアドレスとして割り当てる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マスター装置とスレーブ装置を有するネットワークシステムにおけるアドレス設定方法に関する。
【背景技術】
【0002】
FA(Factory Automation)においては、工場内に設置される生産設備のデータ収集及び制御を行う各種のスレーブ装置と、複数のスレーブ装置を集中管理するマスター装置(PLC:Programmable Logic Controller)などから構成されるネットワークシステムにより生産設備の制御が行われる。
【0003】
FAの分野を対象とした産業用ネットワークシステムの一例として、イーサネット(登録商標)の技術を適用した産業用イーサネットと呼ばれる技術の開発が進んでいる。産業用イーサネットは、工業用イーサネットまたはリアルタイムイーサネットとも呼ばれ、イーサネットの技術や機器を様々なレイヤーでFA分野に導入したネットワークである。産業用イーサネットとして様々な団体がオープンな規格を制定し公開しており、ETG(EtherCAT Technology Group)が推進するEtherCAT(Ethernet for Control Automation Technology:登録商標)もその一つである。
【0004】
この種の産業用ネットワークシステムにおいては、ネットワーク上の各スレーブ装置(ネットワークノード)に対して割り当てたネットワークアドレスを用いて、各種のメッセージ通信が行われる。ネットワークアドレスの設定の仕方には、予め設定された静的なアドレスを用いるもの、動的にアドレスを割り当てるものなど、いくつかの方法が知られているが、いずれの場合であっても、各スレーブ装置にアドレスが適切に設定されていることがネットワークシステムの正常運用の前提となる。アドレス異常で最も多いケースは、複数のスレーブ装置に同一のアドレスが割り当てられてしまう「アドレス重複」である。
【0005】
また、産業用ネットワークシステムでは、各スレーブ装置の確実な動作を保証するため、ネットワーク構成を設計する段階で各スレーブ装置に割り当てるアドレスを一元的に決定してしまい、そのアドレス値をスレーブ装置自体に設定しておく、という設計手法が採られることが多い。このような構成にあっては、例えば、スレーブ装置にアドレス値が設定されていない「アドレス未定」や、設計段階で決めたアドレスと異なるアドレス値が設定されたスレーブ装置が存在する「アドレス未知」といったアドレス異常も発生し得る。
【0006】
従来、このようなアドレス異常が発生した場合には、ネットワークシステムを停止し、異常のあるスレーブ装置を特定し、当該スレーブ装置をネットワークから物理的に離脱してアドレスの再設定を行い、ネットワークシステムを再起動する必要があり、この一連の復旧作業に要する労力及び時間が問題となっていた。特に、工場などで既に実運用されているシステムの場合には、復旧作業のために一時的に生産ラインを停めなければならず、それによる生産効率の低下は甚大である。なお、アドレス異常の問題は、EtherCATに限らず、既存の他のネットワークシステム(例えば、TCP/IP、DeviceNet、CompoNetなど)でも同様に生じ得る。
【0007】
アドレス重複の検知や事前防止に関しては、様々な手法が提案されている。例えば、特許文献1では、PCネットワークに接続されたプリンタのアドレス設定を支援するための方法が提案されている。また、特許文献2には、不正なIPアドレスが設定された端末の存在を検知するための方法が開示されている。
【0008】
しかしながら、アドレス異常が生じた場合に、作業者の手を煩わせることなく、自動でアドレス異常を復旧するような仕組みは、従来存在していなかった。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開平11−282644号公報
【特許文献2】特開2008−252924号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
本発明は上記実情に鑑みてなされたものであって、その目的とするところは、マスター装置と複数のスレーブ装置とから構成されるネットワークシステムにおいて、アドレス異常が生じた場合に、簡単に且つオンラインでアドレス異常を復旧するための技術を提供することにある。
【課題を解決するための手段】
【0011】
本発明の第1態様は、マスター装置と複数のスレーブ装置とから構成されるネットワークシステムにおけるアドレス設定方法であって、前記ネットワークシステムは、各スレーブ装置に一意に割り当てられるノードアドレスを用いて通信先のノードを特定した通信を行うモードを有しており、前記ノードアドレスは、前記マスター装置に内蔵され、又は、前記マスター装置に接続された処理装置によって、各スレーブ装置自身に予め設定されているアドレス値に従って自動的に割り当てられるものであり、前記アドレス設定方法は、前記処理装置が、ネットワーク上のすべてのスレーブ装置から、各スレーブ装置に設定されているアドレス値を取得する取得ステップと、前記処理装置が、他のスレーブ装置に設定されているアドレス値と重複するアドレス値が設定されているスレーブ装置を、異常スレーブ装置として抽出する異常抽出ステップと、前記処理装置が、異常スレーブ装置でないスレーブ装置に対しては各スレーブ装置に設定されていたアドレス値をそのままノードアドレスとして割り当て、異常スレーブ装置に対しては他のスレーブ装置に割り当てられてないアドレス値を仮のノードアドレスとして割り当てるアドレス設定ステップと、を含むことを特徴とするアドレス設定方法である。
【0012】
このネットワークシステムにおいては、スレーブ装置自身に予め設定されているアドレス値に従ってノードアドレスが自動的に割り当てられる「静的なアドレス付与」が基本となる。このような静的なアドレス付与の場合、例えば、他のスレーブ装置と重複するアドレス値をもつスレーブ装置をネットワークに加入してしまったりすると、複数のスレーブ装置に同一のノードアドレスを割り当てようとしてアドレス重複によるシステムエラーが発生する。
【0013】
そこで本発明では、最初に、すべてのスレーブ装置のアドレス値を収集して、重複がないかを確認する。そして、重複が検出された場合は、アドレス値をそのままノードアドレスとして割り当てるのではなく、他のアドレス値と重複が生じないように、仮のノードアドレスを割り当てる。これにより、アドレス重複(ノードアドレスの衝突)が自動的に回避され、ノードアドレスを用いた通信(通信先のノードを特定した通信)を行うことが可能となる。
【0014】
本発明のアドレス設定方法においては、前記処理装置が、異常スレーブ装置に設定されているアドレス値を、他のスレーブ装置に設定されているアドレス値と重複しないアドレス値に変更する変更ステップをさらに含むことが好ましい。これにより、アドレス異常が生じていたスレーブ装置に対し、他のスレーブ装置と重複しない適切なアドレス値が設定
される。したがって、少なくとも次回のネットワーク起動時には、変更後の適切なアドレス値が反映され、当該スレーブ装置に対して(「仮」ではない)正式なノードアドレスが割り当てられることとなる。
【0015】
好ましくは、前記変更ステップにより異常スレーブ装置のアドレス値を変更した後、前記処理装置が、前記取得ステップ、前記異常抽出ステップ、及び前記アドレス設定ステップを再び実行するとよい。これにより、自動的かつ速やかに、変更後のアドレス値に従った正式なノードアドレスが各スレーブ装置に割り当てられる。
【0016】
なお、異常スレーブ装置に設定するアドレス値については、処理装置が自動で決定することもできるし、処理装置を操作するユーザが選択(入力)することもできる。また、アドレス値変更後のアドレス設定の再実行に関しても、処理装置が自動で行うのではなく、ユーザの指示により行ってもよい。もちろん全てを自動化するほうが復旧作業に要する労力及び時間をより短縮することができるが、たとえユーザ操作の場合であっても、本発明によれば処理装置からオンラインで指示が可能であるため、システムの停止やスレーブ装置の離脱・設定変更などのオフライン作業を排除でき、復旧作業が格段に効率化される。
【0017】
異常スレーブ装置のアドレス値を変更する処理は、当該異常スレーブ装置に割り当てられた仮のノードアドレスを用いた通信により行われるものであることが好ましい。また、前記ネットワークシステムは、マスター装置から見たときの接続順によって決まるポジションアドレスを用いて通信を行うモードを有しており、ネットワーク上のすべてのスレーブ装置から、各スレーブ装置に設定されているアドレス値を取得する処理は、前記ポジションアドレスを用いた通信により行われることが好ましい。
【0018】
また、前記異常抽出ステップでは、アドレス値が設定されていないスレーブ装置も異常スレーブ装置として抽出されることが好ましい。これにより、所謂「アドレス未定」の異常についても復旧することができる。
【0019】
また、前記処理装置は、ネットワーク上の各スレーブ装置に割り当てるべきノードアドレスが記載されている設定情報を予め記憶しており、前記異常抽出ステップでは、前記設定情報に記載されているノードアドレスに一致するものがないアドレス値が設定されているスレーブ装置も異常スレーブ装置として抽出されることが好ましい。これにより、所謂「アドレス未知」の異常についても復旧することができる。
【0020】
なお、本発明は、上記処理の少なくとも一部を含むアドレス設定方法として特定することもできるし、上記処理を実現する手段の少なくとも一部を含むネットワークシステム又はマスター装置として特定することもできる。上記処理や手段の各々は、技術的な矛盾が生じない限りにおいて、自由に組み合わせることが可能である。
【0021】
例えば、本発明の第2態様は、マスター装置と複数のスレーブ装置とから構成されるネットワークシステムであって、ネットワーク上のすべてのスレーブ装置から、各スレーブ装置に予め設定されているアドレス値を取得する取得手段と、他のスレーブ装置に設定されているアドレス値と重複するアドレス値が設定されているスレーブ装置を、異常スレーブ装置として抽出する異常抽出手段と、異常スレーブ装置でないスレーブ装置に対しては各スレーブ装置に設定されていたアドレス値をそのままノードアドレスとして割り当て、異常スレーブ装置に対しては他のスレーブ装置に割り当てられてないアドレス値を仮のノードアドレスとして割り当てるアドレス設定手段と、前記アドレス設定手段で割り当てられたノードアドレス又は仮のノードアドレスを用いて、通信先のノードを特定した通信を行う通信手段と、を有することを特徴とするネットワークシステムである。
【0022】
また、本発明の第3態様は、マスター装置と複数のスレーブ装置とから構成されるネットワークシステムで用いられるマスター装置であって、ネットワーク上のすべてのスレーブ装置から、各スレーブ装置に予め設定されているアドレス値を取得する取得手段と、他のスレーブ装置に設定されているアドレス値と重複するアドレス値が設定されているスレーブ装置を、異常スレーブ装置として抽出する異常抽出手段と、異常スレーブ装置でないスレーブ装置に対しては各スレーブ装置に設定されていたアドレス値をそのままノードアドレスとして割り当て、異常スレーブ装置に対しては他のスレーブ装置に割り当てられてないアドレス値を仮のノードアドレスとして割り当てるアドレス設定手段と、前記アドレス設定手段で割り当てられたノードアドレス又は仮のノードアドレスを用いて、通信先のノードを特定した通信を行う通信手段と、を有することを特徴とするマスター装置である。
【発明の効果】
【0023】
本発明によれば、マスター装置と複数のスレーブ装置とから構成されるネットワークシステムにおいて、アドレス異常が生じた場合に、簡単に且つオンラインでアドレス異常を復旧することができる。
【図面の簡単な説明】
【0024】
【図1】アドレス設定処理の一例を示す図である。
【図2】産業用ネットワークシステムの構成例を説明するブロック図である。
【図3】ポジションアドレスモードの通信方式を説明する図である。
【図4】マスター装置により実行されるスレーブ情報収集処理の流れを示すフローチャートである。
【図5】(A)はアドレス管理テーブルの一例を示す図であり、(B)は実構成情報の一例を示す図であり、(C)はネットワーク構成情報の一例を示す図である。
【図6】アドレス検査・割当処理の流れを示すフローチャートである。
【図7】エイリアス変更処理の流れを示すフローチャートである。
【図8】アドレス設定処理の変形例を示す図である。
【発明を実施するための形態】
【0025】
以下、図面を参照しつつ、本発明の好適な実施の形態を説明する。以下の実施形態ではEtherCATの規格に即したネットワークシステムにおけるアドレス設定方法を取り上げるが、本発明の対象はこれに限られない。マスター装置と複数のスレーブ装置とから構成され、各スレーブ装置に一意に割り当てられるノードアドレスを用いて通信先のノードを特定した通信を行うモードを有しており、且つ、そのノードアドレスがスレーブ装置の設定値に従って自動的に(静的に)割り当てられる仕組みのネットワークシステムであれば、本発明を適用する対象とすることができる。
【0026】
(産業用ネットワークシステムの構成)
まず、図2を用いて本発明が対象とする産業用ネットワークシステムの構成例を示す。本図において、産業用ネットワークシステム100は、マスター装置200(PLC:Programmable Logic Controller)と複数のスレーブ装置300とが、ケーブル400や装置に備わるI/Oユニット500、ハブ装置700を介して直接的又は間接的に接続されることにより形成される。スレーブ装置300には、電源ユニット,モータユニット,カウンタユニット,画像ユニット,通信ユニット,I/Oユニット等がある。マスター装置200には、ユーザがマスター装置200の動作設定、産業用ネットワークシステム100の動作状態の表示、ネットワークの設計など行うための管理装置600が接続されることもある。管理装置600は設計支援ツールや管理ツールがインストールされたパーソナルコンピュータなどにより構成される。
【0027】
後述するアドレス設定処理は、マスター装置200若しくは管理装置600により実行され、又は、マスター装置200と管理装置600の協働により実行される。すなわち、本実施形態では、マスター装置200及び/又は管理装置600が、本発明のアドレス設定方法の実行主体である処理装置に対応する。
【0028】
ハブ装置700は、マスター装置側を上流としたときに、上流側に接続する1つのポート(INポート)701と、下流側に接続する複数のポート(OUTポート)702a〜702cを有している。利用者は各装置をケーブルやハブ装置を用いて順序や分岐を設定しながら接続することにより、所望のトポロジを作ることができる。分岐構造は、ハブ装置だけではなく、スレーブ装置が下流側に複数のスレーブ装置を接続することによっても作ることができる。
【0029】
EtherCATにおいてはケーブル400に関して、一般のイーサネットの規格で使用されるものの転用や、イーサネット用機器の製造設備での製造が可能である。これにより費用削減を実現している。
【0030】
このような産業用ネットワークシステム100は、例えば工場等に敷設されFAシステムとして利用される。マスター装置200は、プログラムやオペレーションに従い、ネットワークを通じて制御データを含む情報信号を送信する。スレーブ装置300は、情報信号に含まれるマスター装置からのリクエストへの応答として、受信した情報信号に基づく装置動作や、受信した情報信号の書き換えおよび返送処理を行う。産業用ネットワークシステム100を含む工場における生産は、マスター装置が動作の内容やタイミングを制御することによりスレーブ装置全体が連動して作業を分担することにより達成される。
【0031】
なお、産業用ネットワークシステム100を設計する際にはスレーブ装置間の接続順序やハブ装置におけるポート番号といったようなトポロジを意識した設計を行うことが必要になる。しかし通常のユーザがSEやカスタマーエンジニアのような専門知識や経験を有しているとは限らない。そこで、グラフィカルな表示によりトポロジを理解しやすくして設計作業を助けるための設計支援ツールを提供することが好ましい。設計支援ツールは、管理装置600の一機能として提供される。設計支援ツールでは、管理装置600のディスプレイに表示されたGUIを使って、スレーブ装置の機種選択、接続順序や接続ポートの選択(トポロジの設計)、各スレーブ装置に割り当てるノードアドレスの指定などを簡単に行うことのできる設計環境をユーザに提供する。
【0032】
(マスター−スレーブ間通信のモード)
本実施形態の産業用ネットワークシステム100では、マスター装置200とスレーブ装置300との間の通信方式として、ポジションアドレスモード、ノードアドレスモード、論理アドレスモードの3つのモードが用意されている。以下、詳しく説明する。
【0033】
(1)ポジションアドレスモード
このモードは、ポジションアドレスを用いてマスター−スレーブ間通信を行うものである。ポジションアドレスとは、マスター装置から見たときの接続順でアドレッシングされるネットワークアドレスである。
【0034】
図3は、ポジションアドレスモードの通信方式を説明する図である。この例では、説明の簡単のために、マスター装置200に対して4台のスレーブ装置300a〜300dが直列状に接続された単純なトポロジを示している。このようなトポロジの場合、マスター装置200に近い順に、0x0000,0xFFFF,0xFFFE,0xFFFDというポジションアドレスが割り当てられる。
【0035】
ポジションアドレスモードでは、マスター装置200は、宛先となるスレーブ装置のポジションアドレスをメッセージに付加し、メッセージを送信する。各スレーブ装置は、メッセージを受信すると、付加されているアドレスを確認し、それが「0x0000」であれば自分宛てのメッセージであると判断する。一方、自分宛てのメッセージでない場合は、スレーブ装置は、メッセージに付加されているアドレスをインクリメントする(1を足す)。
【0036】
例えば、3番目のスレーブ装置300c宛てにメッセージを送る場合は、「0xFFFE」がメッセージに付加される。そうすると、1番目のスレーブ装置300a、2番目のスレーブ装置300bを通過する過程で、メッセージに付加されているアドレスが順次インクリメントされ、3番目のスレーブ装置300cに到達する際に「0x0000」となる。その結果、スレーブ装置300cが当該メッセージを自分宛てのものとして受信することになる。
【0037】
なお、ポジションアドレスは、スレーブ装置の物理的な接続順で決まるため、アドレス重複などのアドレス異常が発生しないという利点がある。しかし、ポジションアドレスはネットワーク状態(スレーブ装置の接続順や数、トポロジなど)に依存して変動してしまうため、クリティカルな通信を行うのには適していない。したがって、ポジションアドレスによる通信は、例えばネットワーク起動時のスレーブ情報の収集等の低レベルの通信処理にのみ利用され、スレーブ装置の監視や管理に関わる通信処理やタスク実行に関わる通信処理などには、次に述べるノードアドレスや論理アドレスを用いた通信が利用される。
【0038】
(2)ノードアドレスモード
このモードは、マスター装置200が各スレーブ装置300に割り当てるノードアドレスを用いてマスター−スレーブ間通信を行うものである。各スレーブ装置300には、ユーザによって予めアドレス値が設定されており、このアドレス値はスレーブ装置内の不揮発性メモリに保持されている。マスター装置200は、ネットワークの起動時に各スレーブ装置300からアドレス値を読み取り、原則、そのアドレス値と同じ値のノードアドレスを各スレーブ装置300に割り当てる。なお、スレーブ装置に設定されている設定値としてのアドレス値を、スレーブ装置に割り当てられ通信に利用されるノードアドレスのアドレス値と明確に区別するため、設定値としてのアドレス値を以下「エイリアス」と称する。
【0039】
このようにノードアドレスは静的に付与されるアドレスであるため、ネットワーク状態に依存しない通信が可能である(つまり、たとえネットワーク状態が変化してもノードアドレスは変化しない。)。したがって、例えば、スレーブ装置の監視や管理に関わる通信処理など、通信相手先のスレーブ装置(ノード)を特定したイベント型のメッセージ通信が必要な場合に、このモードが利用される。
【0040】
ただし、静的なアドレス付与に関しては、前述したようなアドレス異常が発生する可能性がある。すなわち、ネットワーク上に同じエイリアス設定のスレーブ装置が存在している場合や、稼働中のネットワークに新たに追加したスレーブ装置が他のスレーブ装置と同じエイリアス設定であった場合には、アドレス重複(ノードアドレスの衝突)によるシステムエラーが発生する。また、スレーブ装置にエイリアスが設定されていない場合(アドレス未定)は、スレーブ装置に対しノードアドレスを付与できないというエラーが発生する。
【0041】
(3)論理アドレスモード
このモードは、フレームと呼ばれるデータを用いたサイクリック通信に用いられるものである。フレームは所定長のデータからなり、フレーム内には各スレーブ装置300にそ
れぞれ割り当てられたデータ領域が設けられている。本モードにおける論理アドレスとは、フレーム内の自分のデータ領域を指し示すアドレスに対応するものである。
【0042】
マスター装置200から周期的に発信されるフレームは、すべてのスレーブ装置300を順に通過した後、後端(最下流)のスレーブ装置で折り返され、マスター装置200に戻される。各スレーブ装置300は、フレームが自装置内を通過する際に、フレーム内の自分のデータ領域に対しデータの読み書きを行う。これにより、高速なデータ伝送とリアルタイム性を実現している。タスク実行に関わる通信処理はもっぱら論理アドレスモードで行われる。
【0043】
(アドレス設定処理)
次に、図1、図4〜図7を参照して、本発明の実施形態に係るアドレス設定処理について詳しく説明する。
【0044】
(1)スレーブ情報の収集
図4は、マスター装置200により実行されるスレーブ情報収集処理(ネットワークスキャン処理)の流れを示すフローチャートである。また、図1(A)〜図1(D)は、アドレス設定処理の一例を示す図である。
【0045】
ネットワーク起動時や、ネットワーク構成の変更(スレーブ装置の加入や離脱)があった時などに、図4に示す処理がマスター装置200により実行される。まず、マスター装置200は、ネットワーク上に存在するスレーブ装置の数を確認する(ステップS100)。例えば、マスター装置200から送出されたデータ(初期値=0)を各スレーブ装置300a〜300cでカウントアップし、結果をマスター装置200に返送することで、スレーブ装置の総数を取得可能である。この処理はポジションアドレスモードで実行される。図1(A)の例では、スレーブ数は「3」となる。
【0046】
次に、マスター装置200は、各々のスレーブ装置300a〜300cから、プロファイル情報とスレーブ接続情報を読み出す(ステップS101)。プロファイル情報とは、スレーブ装置を識別するための情報であって、例えば、スレーブ装置のプロダクトコード、ベンダID、リビジョン番号などを含んでいる。また、スレーブ接続情報とは、スレーブ装置の接続構成(トポロジ)を理解するための情報であって、例えば、スレーブ装置の接続先の装置とポートを特定する情報などを含んでいる。これらの情報に基づき、ネットワーク全体の構成要素とそのトポロジを把握することができる。
【0047】
次に、マスター装置200は、各々のスレーブ装置300a〜300cから、スレーブ装置内に設定されているエイリアスを読み出し、アドレス管理テーブルを更新する(ステップS102)。アドレス管理テーブルとは、すべてのスレーブ装置300a〜300cのエイリアスがリストされた情報であり、後述するアドレス異常の判定やノードアドレスの割り当てに利用されるものである。
【0048】
図5(A)は、図1(A)のネットワークから得られたアドレス管理テーブルの例であり、ポジションアドレス順に「0x1,0x2,0x1」のようにエイリアスが記述されている。なお、アドレス管理テーブルは、スレーブ装置のエイリアスの情報に加え、スレーブ装置に割り当てられたノードアドレスの値の情報も含んでいる(ただし、ノードアドレスの割り当てはこの後の処理で行われるため、ステップS102の時点ではノードアドレスの値は空欄となっている。)。ステップS101、S102の処理もポジションアドレスモードで実行される。
【0049】
ステップS101、S102の処理をすべてのスレーブ装置300a〜300cに対し
て実行した後、マスター装置200は、プロファイル情報、スレーブ接続情報、及びアドレス管理テーブルを元に、当該ネットワークの構成を表す実構成情報を作成する(ステップS103)。
【0050】
図5(B)は、図1(A)のネットワークから得られた実構成情報の例である。この例では、1番目のスレーブ装置300aは、「プロダクトコード:a1、ベンダID:A、リビジョン番号:002(a1−A−002)」で識別される装置であり、装置「MASTER」(マスター装置)の「Out1」ポートに接続されており、エイリアス設定が「0x1」であることが示されている。また、2番目のスレーブ装置300bは、「a3−A−000」で識別され、装置「a1−A−002」(スレーブ装置300a)の「Out1」ポートに接続されており、エイリアス設定が「0x2」である。また、3番目のスレーブ装置300cは、「b0−B−005」で識別され、装置「a3−A−000」(スレーブ装置300b)の「Out2」ポートに接続されており、エイリアス設定が「0x1」である。
【0051】
(2)アドレス異常の検査とアドレスの割り当て
図6は、アドレス検査・割当処理の流れを示すフローチャートである。この処理は、図4のスレーブ情報収集処理に続いて、マスター装置200により実行されるものである。
【0052】
マスター装置200は、まず1番目のスレーブ装置300aについて、アドレス管理テーブルを参照することにより、当該スレーブ装置300aのエイリアスが他のスレーブ装置300b、300cのエイリアスと重複していないかを確認する(ステップS200)。重複が無い場合はステップS201の処理、重複が検出された場合はステップS204の処理へ進む。
【0053】
図1(A)、図5(A)に示すように、スレーブ装置300aのエイリアスは「0x1」であり、スレーブ装置300cのエイリアスと同一である。それゆえ、マスター装置200は、ステップS204において、アドレス管理テーブルを参照して他のスレーブ装置に割り当てられていないアドレス値を選び、そのアドレス値を「仮のノードアドレス」としてスレーブ装置300aに設定する。本実施形態では、アドレス管理テーブルに記述されたエイリアス及びノードアドレス(つまり、割り当て予定のアドレス値と割り当て済みのアドレス値)を除いた空きアドレスの中で、最も小さな値のものを、仮のノードアドレスとして選択する。したがって、スレーブ装置300aには、仮のノードアドレス「0x3」が割り当てられる。このノードアドレスの割り当てもポジションアドレスモードで実行される。割り当てられたノードアドレスの値は、図5(A)の右側に示すように、アドレス管理テーブルに書き込まれる。
【0054】
なお、仮のノードアドレスの選び方は上記のアルゴリズムに限られず、他のスレーブ装置とのアドレス重複が回避できさえすればどのようなアルゴリズムを用いてもよい。例えば、空きアドレスの中で最も大きい値のものを選んでもよいし、予め一定数のアドレス値を仮のノードアドレス用に確保しておき、その中から選んでもよい。
【0055】
次に、マスター装置200は、2番目のスレーブ装置300bに対しても同様に、エイリアスの重複がないかを確認する(ステップS200)。図5(A)に示すように、スレーブ装置300bのエイリアスは「0x2」であり、アドレス重複は無い。それゆえ、マスター装置200は、ステップS201に進み、ネットワーク構成情報(設定情報)に記載されているノードアドレスの中にスレーブ装置300bのエイリアスと一致するものが含まれているか否かを確認する。
【0056】
ネットワーク構成情報の一例を図5(C)に示す。ネットワーク構成情報とは、管理装
置600の設計支援ツール又は管理ツールから取得されるデータであって、ネットワークシステムを構成する各スレーブ装置のプロファイル情報、スレーブ接続情報、アドレス情報などが記述されているデータである。ネットワーク構成情報に含まれる情報の種類は、図5(B)に示す実構成情報に含まれるものと実質的に同じであるが、実構成情報が実際のネットワークシステムから収集した情報であるのに対し、ネットワーク構成情報は設計上の情報(ユーザが意図するネットワーク構成を示している情報)である点で異なる。ネットワークシステムが設計通りに組み上げられている場合は両者の内容は同じになるが、スレーブ装置の機種や接続先を間違えたり、エイリアス設定を間違えたりすると、ネットワーク構成情報と実構成情報とが不一致となる。
【0057】
ステップS201において、スレーブ装置のエイリアスと一致するものがネットワーク構成情報に存在しなかった場合(アドレス未知)は、ステップS204の処理に進み、仮のノードアドレスが割り当てられる。またスレーブ装置にエイリアスが設定されていなかった場合(アドレス未定)も、やはりネットワーク構成情報に同じものが存在しないことから、ステップS204の処理に進み、仮のノードアドレスが割り当てられる。
【0058】
スレーブ装置300bのエイリアス「0x2」と一致するものがネットワーク構成情報に含まれていたら、マスター装置200は、プロファイル情報とスレーブ接続情報についても照合する(ステップS202)。図示はしていないが、プロファイル情報やスレーブ接続情報が不一致であった場合は、確認を要する旨のエラーメッセージを管理装置600のディスプレイなどに出力したり、アドレス設定処理を中断したりしてもよい。
【0059】
その後、マスター装置200は、スレーブ装置300bに対して、当該スレーブ装置300bに設定されていたエイリアスと同じ値「0x2」をノードアドレスとして割り当てる(ステップS203)。割り当てられたノードアドレスの値は、アドレス管理テーブルに書き込まれる。
【0060】
次に、マスター装置200は、3番目のスレーブ装置300cに対しても同様に、エイリアスの重複がないかを確認する(ステップS200)。図5(A)に示すように、スレーブ装置300cのエイリアスは「0x1」であり、アドレス重複がある。それゆえ、ステップS204において、仮のノードアドレス「0x4」がスレーブ装置300cに対して割り当てられる。
【0061】
図1(B)は、すべてのスレーブ装置300a〜300cにノードアドレスの設定が完了した状態を示している。上記のように、アドレス重複を起こしていた1番目と3番目のスレーブ装置300a、300cには、エイリアスとは異なる、仮のノードアドレスが設定されていることが分かる。
【0062】
以上の処理によってアドレス重複の無いノードアドレスの割り当てが行われ、以降は、ポジションアドレスモードだけでなく、ノードアドレスモードでのメッセージ通信も行えるようになる。
【0063】
(3)エイリアスの変更
図7は、エイリアス変更処理の流れを示すフローチャートである。この処理は、図6のアドレス検査・割当処理において仮のノードアドレスが割り当てられたスレーブ装置(異常スレーブ装置と称す。)が存在した場合に、各異常スレーブ装置に対して適用される処理である。本実施形態では、マスター装置200に接続された管理装置600によって、以下の処理が実行されるものとする。
【0064】
管理装置600は、異常スレーブ装置のエイリアス設定を、新たなアドレス値に書き換
える(ステップS300)。本実施形態では、管理装置600を操作するユーザによって新たなアドレス値が指定されるものとする。新たなアドレス値は、他のスレーブ装置のエイリアスと重複しない限りどのような値を選んでもよい。もちろん、ユーザが指定するのではなく、管理装置600が自動で決定することもできる(例えば、図6のステップS204で選ばれた仮のノードアドレスをそのまま新たなアドレス値に選んでもよい。)。なお、エイリアス設定を書き換える処理は、仮のノードアドレスを利用したノードアドレスモードの通信により行われる。
【0065】
次に、管理装置600は、異常スレーブ装置に対してmailbox通信設定を行い、mailbox通信状態にする(ステップS301)。そして、管理装置600は、mailbox通信により異常スレーブ装置にスレーブリスタート要求を送信し、異常スレーブ装置を再起動する(ステップS302)。これにより、当該スレーブ装置において、ステップS300で書き換えたエイリアスが有効化される。なお、ステップS302、S303の処理も、仮のノードアドレスを利用したノードアドレスモードの通信により行われる。
【0066】
以上の処理によって、管理装置600からのオンライン作業により、異常スレーブ装置のエイリアス設定を、他のスレーブ装置のエイリアスと重複しない値に変更することができる。図1(C)は、エイリアス変更処理後の各スレーブ装置のエイリアス設定を示している。アドレス重複を起こしていたスレーブ装置300aと300cのエイリアスが別の値に変更されていることが分かる。なお、スレーブ装置のエイリアスを変更した場合には、それに合わせて、管理装置600に記憶されているネットワーク構成情報のアドレス情報も自動又はユーザ操作により更新する。
【0067】
(4)アドレスの再設定
図7で述べた方法により異常スレーブ装置のエイリアス設定を変更した後、マスター装置200は、図6のアドレス検査・割当処理を再実行する。これにより、自動的かつ速やかに、変更後のエイリアス設定に従った正式なノードアドレスが各スレーブ装置300a〜300cに割り当てられる(図1(D)参照)。
【0068】
以上述べたように、本実施形態のアドレス設定方法では、エイリアスの重複が検出された場合は、エイリアスをそのままノードアドレスとして割り当てるのではなく、別のアドレス値を仮のノードアドレスとして割り当てる。これにより、アドレス重複(ノードアドレスの衝突)が自動的に回避され、ノードアドレスモードによる通信を行うことが可能となる。そして、ノードアドレスモードによる通信を利用して、スレーブ装置のエイリアス設定の書き換えとスレーブ装置のリスタートを行うことで、オンラインによりエイリアスの変更(アドレス異常原因の解消)が可能となる。したがって、ネットワークシステムの停止やスレーブ装置の離脱・設定変更などのオフライン作業を排除できるため、従来に比べてアドレス異常の復旧作業が格段に効率化される。
【0069】
(変形例)
上記実施形態では、スレーブ情報収集処理(図4)においてアドレス重複が検出されたすべてのスレーブ装置、すなわち図1(B)の例ではスレーブ装置300aと300cの両方に対して、仮のノードアドレスを割り当てるようにしている。しかし、アドレスが重複しているスレーブ装置のうち、1つはエイリアス設定どおりのノードアドレスを割り当て、残りのものに仮のノードアドレスを割り当てるようにしても、アドレス重複は解消される。
【0070】
例えば、図8(A)に示すように、稼働中のネットワークシステムに対し、重複アドレスをもつ新たなスレーブ装置300cを加入するケースを想定する。このような場合、既
に稼働中の部分(スレーブ装置300a、300b)には影響を及ぼさないようにすべきである。そこで、既に稼働中のスレーブ装置の場合は図6のステップS200をスキップし、新たに加入したスレーブ装置についてのみステップS200のアドレス重複判定を行うようにするとよい。そうすると、図8(B)に示すように、スレーブ装置300a、300bに対してはエイリアスどおりのノードアドレスが割り当てられ、スレーブ装置300cに対してのみ仮のノードアドレス「0x3」が割り当てられることとなる。その後のエイリアス変更処理等は上記実施形態のものと同様である。この方法によれば、稼働中のスレーブ装置のノードアドレスを変更することなく、アドレス重複を回避できるため、生産ライン等に影響を及ぼすリスクを最小限に抑えることができる。
【符号の説明】
【0071】
100:産業用ネットワークシステム
200:マスター装置
300、300a、300b、300c、300d:スレーブ装置
600:管理装置

【特許請求の範囲】
【請求項1】
マスター装置と複数のスレーブ装置とから構成されるネットワークシステムにおけるアドレス設定方法であって、
前記ネットワークシステムは、各スレーブ装置に一意に割り当てられるノードアドレスを用いて通信先のノードを特定した通信を行うモードを有しており、
前記ノードアドレスは、前記マスター装置に内蔵され、又は、前記マスター装置に接続された処理装置によって、各スレーブ装置自身に予め設定されているアドレス値に従って自動的に割り当てられるものであり、
前記アドレス設定方法は、
前記処理装置が、ネットワーク上のすべてのスレーブ装置から、各スレーブ装置に設定されているアドレス値を取得する取得ステップと、
前記処理装置が、他のスレーブ装置に設定されているアドレス値と重複するアドレス値が設定されているスレーブ装置を、異常スレーブ装置として抽出する異常抽出ステップと、
前記処理装置が、異常スレーブ装置でないスレーブ装置に対しては各スレーブ装置に設定されていたアドレス値をそのままノードアドレスとして割り当て、異常スレーブ装置に対しては他のスレーブ装置に割り当てられてないアドレス値を仮のノードアドレスとして割り当てるアドレス設定ステップと、
を含むことを特徴とするアドレス設定方法。
【請求項2】
前記処理装置が、異常スレーブ装置に設定されているアドレス値を、他のスレーブ装置に設定されているアドレス値と重複しないアドレス値に変更する変更ステップをさらに含むことを特徴とする請求項1に記載のアドレス設定方法。
【請求項3】
前記変更ステップにより異常スレーブ装置のアドレス値を変更した後、前記処理装置が、前記取得ステップ、前記異常抽出ステップ、及び前記アドレス設定ステップを再び実行することを特徴とする請求項2に記載のアドレス設定方法。
【請求項4】
異常スレーブ装置のアドレス値を変更する処理は、当該異常スレーブ装置に割り当てられた仮のノードアドレスを用いた通信により行われることを特徴とする請求項2又は3に記載のアドレス設定方法。
【請求項5】
前記異常抽出ステップでは、アドレス値が設定されていないスレーブ装置も異常スレーブ装置として抽出されることを特徴とする請求項1〜4のうちいずれか1項に記載のアドレス設定方法。
【請求項6】
前記処理装置は、ネットワーク上の各スレーブ装置に割り当てるべきノードアドレスが記載されている設定情報を予め記憶しており、
前記異常抽出ステップでは、前記設定情報に記載されているノードアドレスに一致するものがないアドレス値が設定されているスレーブ装置も異常スレーブ装置として抽出されることを特徴とする請求項1〜5のうちいずれか1項に記載のアドレス設定方法。
【請求項7】
前記ネットワークシステムは、マスター装置から見たときの接続順によって決まるポジションアドレスを用いて通信を行うモードを有しており、
ネットワーク上のすべてのスレーブ装置から、各スレーブ装置に設定されているアドレス値を取得する処理は、前記ポジションアドレスを用いた通信により行われることを特徴とする請求項1〜6のうちいずれか1項に記載のアドレス設定方法。
【請求項8】
マスター装置と複数のスレーブ装置とから構成されるネットワークシステムであって、
ネットワーク上のすべてのスレーブ装置から、各スレーブ装置に予め設定されているアドレス値を取得する取得手段と、
他のスレーブ装置に設定されているアドレス値と重複するアドレス値が設定されているスレーブ装置を、異常スレーブ装置として抽出する異常抽出手段と、
異常スレーブ装置でないスレーブ装置に対しては各スレーブ装置に設定されていたアドレス値をそのままノードアドレスとして割り当て、異常スレーブ装置に対しては他のスレーブ装置に割り当てられてないアドレス値を仮のノードアドレスとして割り当てるアドレス設定手段と、
前記アドレス設定手段で割り当てられたノードアドレス又は仮のノードアドレスを用いて、通信先のノードを特定した通信を行う通信手段と、
を有することを特徴とするネットワークシステム。
【請求項9】
マスター装置と複数のスレーブ装置とから構成されるネットワークシステムで用いられるマスター装置であって、
ネットワーク上のすべてのスレーブ装置から、各スレーブ装置に予め設定されているアドレス値を取得する取得手段と、
他のスレーブ装置に設定されているアドレス値と重複するアドレス値が設定されているスレーブ装置を、異常スレーブ装置として抽出する異常抽出手段と、
異常スレーブ装置でないスレーブ装置に対しては各スレーブ装置に設定されていたアドレス値をそのままノードアドレスとして割り当て、異常スレーブ装置に対しては他のスレーブ装置に割り当てられてないアドレス値を仮のノードアドレスとして割り当てるアドレス設定手段と、
前記アドレス設定手段で割り当てられたノードアドレス又は仮のノードアドレスを用いて、通信先のノードを特定した通信を行う通信手段と、
を有することを特徴とするマスター装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate