(57)【要約】      （修正有）【課題】マスタデバイスとして機能する制御装置に事前情報が不足している場合であっても、設定機能を含む各種機能を提供できる制御システムを提供する。【解決手段】制御システム１は、マスタデバイス１００と、マスタデバイス１００とフィールドネットワーク４を介して接続される１または複数のスレーブデバイス２００−１、２００−２、・・・とを含む。各スレーブデバイスの記憶部２２０−１、２２０−２、・・・において、ノードアドレス２２２−１、２２２−２、・・・はスレーブデバイスの機種別に固有の領域に配置されている。任意のスレーブデバイスは、記憶部においてノードアドレスが格納されている領域を特定するための情報をマスタデバイス１００へ提供するための情報提供手段を有する。【選択図】図２
2019186617.tif 000002
【特許請求の範囲】
【請求項１】
制御システムであって、
マスタデバイスと、
前記マスタデバイスとフィールドネットワークを介して接続される１または複数のスレーブデバイスとを備え、
前記１または複数のスレーブデバイスの各々は、前記フィールドネットワークにおいて各スレーブデバイスを識別するためのノードアドレスと、各スレーブデバイスの機種を示す形式情報とを格納する記憶部を含んでおり、
前記記憶部において、前記ノードアドレスはスレーブデバイスの機種別に固有の領域に配置されており、
前記マスタデバイスは、前記フィールドネットワークに接続されている任意のスレーブデバイスの前記記憶部へのアクセスが可能になっており、
前記制御システムは、任意のスレーブデバイスについて、前記記憶部において前記ノードアドレスが格納されている領域を特定するための情報を前記マスタデバイスへ提供するための情報提供手段をさらに備える、制御システム。
【請求項２】
前記情報提供手段は、前記マスタデバイスに接続されるサポート装置を含み、
前記サポート装置は、
予め格納されたスレーブデバイスの機種毎のスレーブ情報ファイルのうち、対象のスレーブデバイスから取得された形式情報に対応するスレーブ情報ファイルを検索し、
当該検索されたスレーブ情報ファイルに基づいて、前記ノードアドレスが格納されている領域を特定するための情報を前記マスタデバイスへ提供する、請求項１に記載の制御システム。
【請求項３】
前記マスタデバイスは、
前記サポート装置が検索したスレーブ情報ファイルが前記対象のスレーブデバイスに適合しているか否かを判断し、
適合していないと判断された場合に、スレーブ情報ファイルを管理するスレーブ情報ファイルサーバに前記形式情報を送信することで、前記スレーブ情報ファイルサーバから前記対象のスレーブデバイスに適合したスレーブ情報ファイルを取得する、請求項２に記載の制御システム。
【請求項４】
前記マスタデバイスは、前記サポート装置が検索したスレーブ情報ファイルのファイル名に基づいて、前記対象のスレーブデバイスに適合しているか否かを判断する、請求項３に記載の制御システム。
【請求項５】
前記情報提供手段は、スレーブデバイスの機種毎のスレーブ情報ファイルを管理する機器管理サーバを含み、
前記マスタデバイスは、任意のスレーブデバイスから取得された前記形式情報を前記機器管理サーバへ送信することで、対応するスレーブ情報ファイルに記述された、前記ノードアドレスが格納されている領域を特定するための情報の応答を受ける、請求項１に記載の制御システム。
【請求項６】
前記フィールドネットワークにおいて、ＥｔｈｅｒＣＡＴ（登録商標）に従ってデータが伝送される、請求項２〜５のいずれか１項に記載の制御システム。
【請求項７】
前記スレーブ情報ファイルは、ＥＳＩ（EtherCAT Slave Information）ファイルである、請求項６に記載の制御システム。
【請求項８】
前記スレーブデバイスは、前記ノードアドレスの値を設定するためのハードウェアスイッチを含む、請求項１〜７のいずれか１項に記載の制御システム。
【請求項９】
マスタデバイスと、前記マスタデバイスとフィールドネットワークを介して接続される１または複数のスレーブデバイスとを備える制御システムにおける制御方法であって、
前記１または複数のスレーブデバイスの各々は、前記フィールドネットワークにおいて各スレーブデバイスを識別するためのノードアドレスと、各スレーブデバイスの機種を示す形式情報とを格納する記憶部を含んでおり、
前記記憶部において、前記ノードアドレスはスレーブデバイスの機種別に固有の領域に配置されており、
前記制御方法は、
任意のスレーブデバイスについて、前記記憶部において前記ノードアドレスが格納されている領域を特定するための情報を前記マスタデバイスへ提供するステップと、
前記マスタデバイスが、前記ノードアドレスが格納されている領域を特定するための情報に基づいて、前記フィールドネットワークに接続されている任意のスレーブデバイスの前記記憶部へのアクセスするステップとを備える、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク接続されたスレーブデバイスを含む制御システムおよびその制御システムにおける制御方法に関する。
【背景技術】
【０００２】
ＦＡ（ファクトリオートメーション）分野においては、制御装置と、当該制御装置にネットワーク接続された１または複数のスレーブデバイスとからなる制御システムが普及している。スレーブデバイスとしては、入出力装置やロボット制御や視覚センサといった任意の処理機能を提供する装置などが想定される。通常、制御装置はマスタデバイスとして機能する。
【０００３】
制御装置は、各スレーブデバイスとの間でデータを遣り取りするため、各スレーブデバイスを特定する必要がある。スレーブデバイスを特定するための情報は、ネットワークＩＤ（識別情報）、ネットワークアドレス、ノードアドレスと称される。
【０００４】
制御対象に応じて、スレーブデバイスの数および機種は適宜決定され、また、事後的に追加または変更されることもある。このような場合、各スレーブデバイスを特定するための情報についても、適宜更新する必要がある。
【０００５】
例えば、特開２０１５−１７６３６９号公報（特許文献１）は、サポート装置が提供するグループを設定するためのユーザインターフェイス画面において、各デバイスについて、グループ名、デバイス名、ネットワークアドレスおよびノードアドレスを任意に設定できる構成を開示する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１５−１７６３６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
制御システムにおいては、到達時間が保証される産業用ネットワークが利用されることが多い。このような産業用ネットワークにおいては、制御装置との間で各種情報を遣り取りするための手順が予め定められている。
【０００８】
このような手順に従うためには、マスタデバイスとして機能する制御装置に事前情報が要求されることもあるが、制御装置に格納できる情報量は限られているため、ネットワークを介した設定などが制限される可能性がある。
【０００９】
本発明は、上述したような課題を解決することを一つの目的としており、マスタデバイスに事前情報が不足している場合であっても、設定機能を含む各種機能を提供できる構成を提供する。
【課題を解決するための手段】
【００１０】
本開示の一例に従う制御システムは、マスタデバイスと、マスタデバイスとフィールドネットワークを介して接続される１または複数のスレーブデバイスとを含む。１または複数のスレーブデバイスの各々は、フィールドネットワークにおいて各スレーブデバイスを識別するためのノードアドレスと、各スレーブデバイスの機種を示す形式情報とを格納する記憶部を含んでいる。記憶部において、ノードアドレスはスレーブデバイスの機種別に固有の領域に配置されている。マスタデバイスは、フィールドネットワークに接続されている任意のスレーブデバイスの記憶部へのアクセスが可能になっている。制御システムは、任意のスレーブデバイスについて、記憶部においてノードアドレスが格納されている領域を特定するための情報をマスタデバイスへ提供するための情報提供手段をさらに含む。
【００１１】
この開示によれば、マスタデバイスに事前情報が不足している場合であっても、各スレーブデバイスからノードアドレスを取得することができ、これによって、各種機能を提供できる。
【００１２】
上述の開示において、情報提供手段は、マスタデバイスに接続されるサポート装置を含む。サポート装置は、予め格納されたスレーブデバイスの機種毎のスレーブ情報ファイルのうち、対象のスレーブデバイスから取得された形式情報に対応するスレーブ情報ファイルを検索し、当該検索されたスレーブ情報ファイルに基づいて、ノードアドレスが格納されている領域を特定するための情報をマスタデバイスへ提供する。
【００１３】
この開示によれば、サポート装置からマスタデバイスに対して、ノードアドレスが格納されている領域を特定するための情報を提供できるので、マスタデバイスのリソースが少ない場合であっても、ノードアドレスを利用した各種機能を提供できる。
【００１４】
上述の開示において、マスタデバイスは、サポート装置が検索したスレーブ情報ファイルが対象のスレーブデバイスに適合しているか否かを判断し、適合していないと判断された場合に、スレーブ情報ファイルを管理するスレーブ情報ファイルサーバに形式情報を送信することで、スレーブ情報ファイルサーバから対象のスレーブデバイスに適合したスレーブ情報ファイルを取得するようにしてもよい。
【００１５】
この開示によれば、サポート装置に格納されているスレーブ情報ファイルが古いものであっても、ノードアドレスが格納されている領域を特定するための情報をマスタデバイスへ適切に提供できる。
【００１６】
上述の開示において、マスタデバイスは、サポート装置が検索したスレーブ情報ファイルのファイル名に基づいて、対象のスレーブデバイスに適合しているか否かを判断するようにしてもよい。
【００１７】
この開示によれば、スレーブ情報ファイルの全体を用いるのではなく、スレーブ情報ファイルのファイル名を用いるので、通信トラフィックを低減できるとともに、処理を高速化できる。
【００１８】
上述の開示において、情報提供手段は、スレーブデバイスの機種毎のスレーブ情報ファイルを管理する機器管理サーバを含み、マスタデバイスは、任意のスレーブデバイスから取得された形式情報を機器管理サーバへ送信することで、対応するスレーブ情報ファイルに記述された、ノードアドレスが格納されている領域を特定するための情報の応答を受けるようにしてもよい。
【００１９】
この開示によれば、サポート装置などを用いることなく、複数のマスタデバイスの間で、機器管理サーバを共有することで、システム全体を効率化できる。
【００２０】
上述の開示において、フィールドネットワークにおいて、ＥｔｈｅｒＣＡＴ（登録商標）に従ってデータが伝送されるようにしてもよい。
【００２１】
この開示によれば、到着時間を保証したデータ伝送を実現できる。
上述の開示において、スレーブ情報ファイルは、ＥＳＩ（EtherCAT Slave Information）ファイルである。
【００２２】
この開示によれば、ＥｔｈｅｒＣＡＴの規格に従ったスレーブ情報ファイルを用いることができる。
【００２３】
上述の開示において、スレーブデバイスは、ノードアドレスの値を設定するためのハードウェアスイッチを含むようにしてもよい。
【００２４】
この開示によれば、サポート装置などを用いることなく、各スレーブデバイスに対して任意のノードアドレスを設定できる。
【００２５】
本開示の別に一例によれば、マスタデバイスと、マスタデバイスとフィールドネットワークを介して接続される１または複数のスレーブデバイスとを備える制御システムにおける制御方法が提供される。１または複数のスレーブデバイスの各々は、フィールドネットワークにおいて各スレーブデバイスを識別するためのノードアドレスと、各スレーブデバイスの機種を示す形式情報とを格納する記憶部を含んでいる。記憶部において、ノードアドレスはスレーブデバイスの機種別に固有の領域に配置されている。制御方法は、任意のスレーブデバイスについて、記憶部においてノードアドレスが格納されている領域を特定するための情報をマスタデバイスへ提供するステップと、マスタデバイスが、ノードアドレスが格納されている領域を特定するための情報に基づいて、フィールドネットワークに接続されている任意のスレーブデバイスの記憶部へのアクセスするステップとを含む。
【００２６】
この開示によれば、マスタデバイスに事前情報が不足している場合であっても、各スレーブデバイスからノードアドレスを取得することができ、これによって、各種機能を提供できる。
【発明の効果】
【００２７】
本発明によれば、マスタデバイスに事前情報が不足している場合であっても、設定機能を含む各種機能を提供できる構成を提供できる。
【図面の簡単な説明】
【００２８】
【図１】本実施の形態に係る制御システムの全体構成例を示す模式図である。
【図２】本実施の形態に係る制御システムにおける課題および解決手段を説明するための図である。
【図３】本実施の形態に係る制御システムを構成する制御装置のハードウェア構成例を示す模式図である。
【図４】本実施の形態に係る制御システムを構成するスレーブデバイスのハードウェア構成例を示す模式図である。
【図５】本実施の形態に係る制御システムを構成するサポート装置のハードウェア構成例を示す模式図である。
【図６】本実施の形態に係る制御システムを構成するスレーブデバイスの不揮発性メモリ２２０への情報の格納例を示す模式図である。
【図７】本実施の形態に係る制御システムにおいて利用されるスレーブ情報ファイルの関連する部分を示す図である。
【図８】実施の形態１に係る制御システムにおけるノードアドレスを取得する処理手順を説明するための図である。
【図９】実施の形態１に係る制御システムにおけるノードアドレスを取得する処理手順を示すシーケンス図である。
【図１０】実施の形態２に係る制御システムにおけるノードアドレスを取得する処理手順を説明するための図である。
【図１１】実施の形態２に係る制御システムにおけるノードアドレスを取得する処理手順を示すシーケンス図である。
【図１２】実施の形態３に係る制御システムにおけるノードアドレスを取得する処理手順を説明するための図である。
【図１３】実施の形態３に係る制御システムにおけるノードアドレスを取得する処理手順を示すシーケンス図である。
【発明を実施するための形態】
【００２９】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００３０】
＜Ａ．適用例＞
まず、図１および図２を参照して、本発明が適用される場面の一例について説明する。
【００３１】
図１は、本実施の形態に係る制御システム１の全体構成例を示す模式図である。図１を参照して、制御システム１は、主たるコンポーネントとして、マスタデバイスとして機能する制御装置１００と、制御装置１００とフィールドネットワーク４を介して接続される１または複数のスレーブデバイス２００−１，２００−２，・・・（以下、「スレーブデバイス２００」とも総称する。）とを含む。
【００３２】
本明細書において、「フィールドネットワーク」は、制御用装置間のデータ伝送を実現するための通信媒体を総称するものであり、「フィールドバス」とも称される。フィールドネットワーク４としては、典型的には、ネットワーク内のノード間のデータ到着時間が保証されるプロトコルが採用される。このようなノード間のデータ到着時間が保証されるプロトコルとしては、例えば、ＥｔｈｅｒＣＡＴなどを採用できる。あるいは、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＤｅｖｉｃｅＮｅｔ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などを採用してもよい。
【００３３】
以下の説明においては、一例として、フィールドネットワーク４としてＥｔｈｅｒＣＡＴを採用した場合について説明する。すなわち、フィールドネットワーク４においては、ＥｔｈｅｒＣＡＴに従ってデータが伝送される。
【００３４】
本明細書において、「マスタデバイス」は、注目しているフィールドネットワークにおけるデータ伝送を管理する主体または機能を総称する用語である。「スレーブデバイス」は、マスタデバイスと対になる用語であり、注目しているフィールドネットワークにおいて、当該フィールドネットワークのマスタデバイスの管理下において、データ伝送を行う主体または機能を総称する用語である。
【００３５】
「マスタデバイス」および「スレーブデバイス」との用語は、フィールドネットワークにおけるデータ伝送に関する機能分担を規定する用語であり、データ伝送以外の関係については特に限定されるものではない。
【００３６】
制御装置１００は、後述するような、ユーザプログラムを実行することで、設備や機械などの制御対象に対する制御を実行する。制御装置１００には、機能ユニット１５０が接続されており、制御対象との間で信号を遣り取りする。機能ユニット１５０は、入出力ユニットと、通信ユニットと、特殊ユニット（例えば、ＰＩＤ制御やモーション制御の機能が実装されたユニット）とを含み得る。入出力ユニットは、例えば、制御対象からのデジタル入力信号を受取るＤＩ（Digital Input）機能、制御対象に対してデジタル出力信号を送出するＤＯ（Digital Output）機能、制御対象からのアナログ入力信号を受取るＡＩ（Analog Input）機能、制御対象に対してアナログ出力信号を送出するＡＯ（Analog Output）機能のうち１または複数の機能を有している。
【００３７】
制御装置１００は、さらに情報系ネットワーク８に接続されていてもよい。情報系ネットワーク８には、他の制御装置１００が接続されていてもよいし、ゲートウェイやデータベースサーバといった任意の情報処理装置が接続されていてもよい。また、制御装置１００には、サポート装置５００が接続可能になっている。
【００３８】
スレーブデバイス２００は、制御装置１００とフィールドネットワークを介して接続され、制御対象に対して予め定められた処理を実行する装置を総称する。スレーブデバイス２００は、上述したような機能ユニット１５０に相当する装置であってもよいし、機能ユニット１５０に比較してより高機能な装置であってもよい。
【００３９】
図１に示す構成例においては、スレーブデバイス２００−１は、リモートＩＯ装置であり、スレーブデバイス２００−２，２００−３，２００−４は、モータドライブ装置であり、スレーブデバイス２００−５は、セーフティ入出力ユニットである例を示す。当然のことながら、スレーブデバイス２００としては、任意の装置またはデバイスを採用することができる。
【００４０】
マスタデバイスである制御装置１００は、予め設定されたネットワーク構成情報１３０を保持している。ネットワーク構成情報１３０は、フィールドネットワーク４に接続されている各スレーブデバイス２００について、ノードアドレス１３２と形式情報１３４とを含む。なお、通常、制御装置１００に格納されているネットワーク構成情報１３０と同じネットワーク構成情報１３０がサポート装置５００にも格納されている。
【００４１】
本明細書において、「ノードアドレス」は、フィールドネットワーク４において各スレーブデバイス２００を識別するための特定情報である。「ノードアドレス」は、１つのフィールドネットワーク４内において、互いに重複することなく決定される。
【００４２】
本明細書において、「形式情報」は、各スレーブデバイス２００の機種を示す情報であり、例えば、スレーブデバイス２００のベンダコード（製造者識別情報）、製品型式、リビジョン番号などを含む。
【００４３】
各スレーブデバイス２００は、ノードアドレスおよび形式情報を格納しており、マスタデバイスからその内容の読出しが可能になっている。すなわち、スレーブデバイス２００の各々は、ノードアドレスと形式情報とを格納する記憶部としての不揮発性メモリを有している。
【００４４】
マスタデバイスは、フィールドネットワーク４に接続されている任意のスレーブデバイス２００の記憶部へのアクセスが可能になっている。例えば、マスタデバイスは、各スレーブデバイス２００の記憶部に対して、ノードアドレスを書込むことも可能である。
【００４５】
マスタデバイスは、ネットワーク構成情報１３０に記述された内容と、フィールドネットワーク４に実際に接続されているデバイスの構成（以下、「ネットワーク実構成」とも称す。）との一致を照合する機能を有している。このような照合機能は、ユーザが明示的に指示したことで実施されてもよいし、フィールドネットワーク４を介したデータ伝送が有効化されるときに実施されてもよい。
【００４６】
ネットワーク構成情報１３０とネットワーク実構成との照合においては、各スレーブデバイス２００のノードアドレス１３２および形式情報１３４の両方の一致を判断する。
【００４７】
図２は、本実施の形態に係る制御システム１における課題および解決手段を説明するための図である。図２を参照して、スレーブデバイス２００−１〜２００−５の各々は、自デバイスのノードアドレス２２２−１〜２２２−５（以下、「ノードアドレス２２２」とも総称する。）および形式情報２２４−１〜２２４−５（以下、「形式情報２２４」とも総称する。）を格納する不揮発性メモリ２２０−１〜２２０−５（以下、「不揮発性メモリ２２０」とも総称する。）を有している。
【００４８】
マスタデバイスは、外部からの要求または必要に応じて、スレーブデバイス２００−１〜２００−５のうち任意のスレーブデバイス２００の不揮発性メモリ２２０にアクセスして、不揮発性メモリ２２０に格納されている情報を読出し、あるいは、任意の情報を不揮発性メモリ２２０に書込む。
【００４９】
しかしながら、スレーブデバイス２００の不揮発性メモリ２２０においてノードアドレス２２２が格納される領域は機種毎に異なっている。すなわち、不揮発性メモリ２２０において、ノードアドレス２２２は各スレーブデバイス２００の機種別に固有の領域に配置されている。
【００５０】
図２に示す例においては、スレーブデバイス２００−１の不揮発性メモリ２２０−１における、ノードアドレス２２２−１が格納される領域の先頭アドレスは「ｘ００１０」であり、スレーブデバイス２００−２の不揮発性メモリ２２０−２における、ノードアドレス２２２−２が格納される領域の先頭アドレスは「ｘ００２０」である。
【００５１】
マスタデバイスがアクセス先のスレーブデバイス２００において、ノードアドレス２２２が格納されている領域を知らない場合には、ノードアドレスを読出すことができない。
【００５２】
例えば、図２には、マスタデバイスである制御装置１００は、スレーブデバイス２００−１においてノードアドレスが格納されている領域を知っているものの、スレーブデバイス２００−２においてノードアドレスが格納されている領域を知らない場合を示している。この場合には、マスタデバイスからスレーブデバイス２００−２へのノードアドレス２２２を取得するための読出しはＮＧとなる。
【００５３】
このような課題に対して、本実施の形態に係る制御システム１においては、任意のスレーブデバイス２００について、記憶部においてノードアドレスが格納されている領域を特定するための情報（以下、「固有格納位置情報」とも称す。）をマスタデバイス（制御装置１００）へ提供するための情報提供機能を有している。すなわち、マスタデバイスである制御装置１００に対して、各スレーブデバイス２００の不揮発性メモリ２２０内のどの領域にノードアドレス２２２が格納されているのかという情報（固有格納位置情報）を提供することで、任意のスレーブデバイス２００からノードアドレス２２２を取得できる仕組みを提供する。
【００５４】
以下、本実施の形態に係る制御システム１のより詳細な具体例について説明する。
＜Ｂ．ハードウェア構成例＞
次に、本実施の形態に係る制御システム１を構成する主たる装置のハードウェア構成例について説明する。
【００５５】
（ｂ１：制御装置１００）
図３は、本実施の形態に係る制御システム１を構成する制御装置１００のハードウェア構成例を示す模式図である。図３を参照して、制御装置１００は、プロセッサ１０２と、チップセット１０４と、メインメモリ１０６と、ストレージ１０８と、ネットワークコントローラ１１０と、ＵＳＢ（Universal Serial Bus）コントローラ１１２と、メモリカードインターフェイス１１４と、内部バスコントローラ１１８と、フィールドネットワークコントローラ１２０と、カウンタ１２６と、ＲＴＣ（Real Time Clock）１２８とを含む。
【００５６】
プロセッサ１０２は、制御演算などを実行する演算処理部に相当し、ＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）などで構成される。具体的には、プロセッサ１０２は、ストレージ１０８に格納されたプログラム（一例として、システムプログラムおよびユーザプログラム）を読出して、メインメモリ１０６に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。
【００５７】
メインメモリ１０６は、例えば、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などの揮発性記憶装置などで構成される。ストレージ１０８は、例えば、ＳＳＤ（Solid State Drive）やＨＤＤ（Hard Disk Drive）などの不揮発性記憶装置などで構成される。
【００５８】
チップセット１０４は、プロセッサ１０２と各デバイスを制御することで、制御装置１００全体としての処理を実現する。
【００５９】
ストレージ１０８には、基本的な機能を実現するためのシステムプログラムに加えて、設備や機械などの制御対象に応じて作成されるユーザプログラムが格納される。
【００６０】
ネットワークコントローラ１１０は、情報系ネットワーク８を介して、ゲートウェイやデータベースサーバといった任意の情報処理装置との間でデータを遣り取りする。ＵＳＢコントローラ１１２は、ＵＳＢ接続を介して、サポート装置５００との間でデータを遣り取りする。
【００６１】
メモリカードインターフェイス１１４は、メモリカード１１６を着脱可能に構成されており、メモリカード１１６に対してデータを書込み、メモリカード１１６から各種データを読出すことが可能になっている。
【００６２】
カウンタ１２６は、制御装置１００で実行される各種プログラムの実行タイミングを管理するための時刻基準として用いられる。カウンタ１２６は、プロセッサ１０２を駆動するシステムバス上に配置された、高精度イベントタイマー（ＨＰＥＴ：High Precision Event Timer）などを用いて実装してもよいし、あるいは、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field-Programmable Gate Array）などの専用回路を用いて実装してもよい。
【００６３】
ＲＴＣ１２８は、計時機能を有する一種のカウンタであり、現在時刻をプロセッサ１０２などへ提供する。
【００６４】
内部バスコントローラ１１８は、内部バス６を介して１または複数の機能ユニット１５０−１，１５０−２，・・・（以下、「機能ユニット１５０」とも総称する。）と制御装置１００とを電気的に接続するための通信インターフェイスに相当する。内部バスコントローラ１１８は、内部バス６を介して定周期通信を行うためのマスタデバイスとして機能する。
【００６５】
機能ユニット１５０は、制御装置１００に接続されて、制御対象との間で各種の信号を遣り取りする装置を総称する。機能ユニット１５０は、ＩＯユニットと、通信ユニットと、ＰＩＤ制御やモーション制御といった特殊機能を実装したコントローラユニットとを含み得る。ＩＯユニットは、例えば、制御対象からのデジタル入力信号を受取るＤＩ（Digital Input）機能、制御対象に対してデジタル出力信号を送出するＤＯ（Digital Output）機能、制御対象からのアナログ入力信号を受取るＡＩ（Analog Input）機能、制御対象に対してアナログ出力信号を送出するＡＯ（Analog Output）機能のうち１または複数の機能を有している。
【００６６】
フィールドネットワークコントローラ１２０は、フィールドネットワーク４を介して１または複数のスレーブデバイス２００−１，２００−２，・・・（スレーブデバイス２００）と制御装置１００とを電気的に接続するための通信インターフェイスに相当する。フィールドネットワークコントローラ１２０は、フィールドネットワーク４を介して定周期通信を行うためのマスタデバイスとして機能する。
【００６７】
図３には、プロセッサ１０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。あるいは、制御装置１００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳ（Operating System）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００６８】
また、制御装置１００に表示装置やサポート装置などの機能を統合した構成を採用してもよい。
【００６９】
（ｂ２：スレーブデバイス２００）
図４は、本実施の形態に係る制御システム１を構成するスレーブデバイス２００のハードウェア構成例を示す模式図である。スレーブデバイス２００のノードアドレスを設定する方法は主として２種類ある。１つは、スレーブデバイス２００に設けられているハードウェアスイッチにより設定する方法であり、別の１つは、サポート装置５００などからスレーブデバイス２００の不揮発性メモリ２２０内の特定領域にノードアドレスを書込む方法である。
【００７０】
図４（Ａ）には、ノードアドレスを設定するためのハードウェアスイッチ２０４が設けられた構成を示す。スレーブデバイス２００は、フィールドネットワークコントローラ２０２と、ハードウェアスイッチ２０４と、メインコントローラ２１０と、機能回路２３０とを含む。
【００７１】
フィールドネットワークコントローラ２０２は、フィールドネットワーク４を介して制御装置１００（マスタデバイス）とスレーブデバイス２００とを電気的に接続するための通信インターフェイスに相当する。フィールドネットワークコントローラ２０２は、マスタデバイスの管理下でデータを遣り取りするための通信スレーブとして機能する。
【００７２】
メインコントローラ２１０は、スレーブデバイス２００の主たる制御を担当する回路であり、例えば、プロセッサ２１２と、メインメモリ２１４と、不揮発性メモリ２２０とを含む。
【００７３】
不揮発性メモリ２２０には、プロセッサ２１２により実行されるファームウェア２２６と、ノードアドレス２２２と、形式情報２２４とが格納されている。
【００７４】
ハードウェアスイッチ２０４は、各スレーブデバイス２００のノードアドレスの値を設定するためのデバイスである。例えば、ハードウェアスイッチ２０４は、ロータリスイッチやデップスイッチなどで構成され、ユーザ操作によって、ノードアドレスの設定が可能になっている。メインコントローラ２１０は、ハードウェアスイッチ２０４の設定状態に応じた信号値を取得することで、ユーザにより設定されたノードアドレスを認識する。すなわち、ハードウェアスイッチ２０４は、各スレーブデバイス２００を識別するためのＩＤを決定するための入力デバイスである。
【００７５】
図４（Ｂ）には、ハードウェアスイッチ２０４を省略したスレーブデバイス２００の構成例を示す。図４（Ｂ）に示されるスレーブデバイス２００については、サポート装置５００からノードアドレスの設定が可能である。
【００７６】
機能回路２３０は、スレーブデバイス２００の固有機能を提供する。例えば、スレーブデバイス２００がモータドライブ装置である場合には、機能回路２３０は、インバータ回路や制御回路などを含む。また、スレーブデバイス２００がリモートＩＯ装置である場合には、接続される機能ユニットとの間で内部バスを介してデータを遣り取りするための通信インターフェイスなどを含む。
【００７７】
図４には、プロセッサ２１２を含むメインコントローラ２１０を示すが、メインコントローラ２１０が提供する機能の全部または一部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【００７８】
（ｂ３：サポート装置５００）
図５は、本実施の形態に係る制御システム１を構成するサポート装置５００のハードウェア構成例を示す模式図である。サポート装置５００は、一例として、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコン）を用いてプログラムを実行することで実現される。
【００７９】
図５を参照して、サポート装置５００は、プロセッサ５０２と、メインメモリ５０４と、ストレージ５０６と、入力部５０８と、表示部５１０と、光学ドライブ５１２と、ＵＳＢコントローラ５１６とを含む。これらのコンポーネントは、プロセッサバス５１８を介して接続されている。
【００８０】
プロセッサ５０２は、ＣＰＵやＧＰＵなどで構成され、ストレージ５０６に格納されたプログラム（一例として、ＯＳ５２０およびサポートプログラム５２６）を読出して、メインメモリ５０４に展開して実行することで、後述するような各種処理を実現する。
【００８１】
メインメモリ５０４は、例えば、ＤＲＡＭやＳＲＡＭなどの揮発性記憶装置などで構成される。ストレージ３０６は、例えば、ＨＤＤやＳＳＤなどの不揮発性記憶装置などで構成される。
【００８２】
ストレージ５０６には、基本的な機能を実現するためのＯＳ５２０に加えて、サポート装置５００としての機能を提供するためのサポートプログラム５２６が格納される。さらに、ストレージ５０６には、スレーブ情報ファイル６００およびネットワーク構成情報１３０が格納される。これらの情報の取得および利用については、後述する。
【００８３】
入力部５０８は、キーボードやマウスなどで構成され、ユーザ操作を受付ける。表示部５１０は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ５０２からの処理結果などを出力する。
【００８４】
ＵＳＢコントローラ５１６は、ＵＳＢ接続を介して、制御装置１００などとの間のデータの遣り取りを制御する。
【００８５】
サポート装置５００は、光学ドライブ５１２を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体５１４（例えば、ＤＶＤ（Digital Versatile Disc）などの光学記録媒体）から、その中に格納されたプログラムが読取られてストレージ５０６などにインストールされる。
【００８６】
サポート装置５００で実行されるプログラムは、コンピュータ読取可能な記録媒体５１４を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置５００が提供する機能は、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【００８７】
図５には、プロセッサ５０２がプログラムを実行することで、サポート装置５００として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【００８８】
＜Ｃ．マスタデバイスからスレーブデバイスへのアクセス＞
次に、マスタデバイス（制御装置１００）がスレーブデバイス２００へアクセスして、ノードアドレスを参照する処理について説明する。
【００８９】
図６は、本実施の形態に係る制御システム１を構成するスレーブデバイス２００の不揮発性メモリ２２０への情報の格納例を示す模式図である。
【００９０】
図６（Ａ）には、ノードアドレスを設定するためのハードウェアスイッチ２０４が設けられていないスレーブデバイス２００の不揮発性メモリ２２０の例を示す。図６（Ａ）に示す不揮発性メモリ２２０には、形式情報２２４を格納する領域、および、ＳｔａｔｉｏｎＡｌｉａｓ２２８を格納する領域が規定されている。
【００９１】
ＳｔａｔｉｏｎＡｌｉａｓ２２８は、ハードウェアスイッチ２０４によるハード的に設定されるノードアドレスとは別に用意され、ソフト的に設定されるノードアドレス（代替ノードアドレス）である。ＳｔａｔｉｏｎＡｌｉａｓ２２８は、マスタデバイスまたはマスタデバイスに接続されたサポート装置５００からの指令によって、任意のノードアドレスが設定される。
【００９２】
マスタデバイスは、スレーブデバイス２００において、ＳｔａｔｉｏｎＡｌｉａｓ２２８として設定されているノードアドレスを、当該スレーブデバイス２００のノードアドレスとして認識する。
【００９３】
マスタデバイスは、いずれのスレーブデバイス２００についても、形式情報２２４を格納する領域、および、ＳｔａｔｉｏｎＡｌｉａｓ２２８を格納する領域へアクセス可能になっている。より具体的には、各スレーブデバイス２００の不揮発性メモリ２２０について、形式情報２２４を格納する領域、および、ＳｔａｔｉｏｎＡｌｉａｓ２２８を格納する領域は、いずれのスレーブデバイス２００においても共通（既知）となっている。あるいは、形式情報２２４を格納する領域、および、ＳｔａｔｉｏｎＡｌｉａｓ２２８を格納する領域は、各スレーブデバイス２００のファームウェア２２６によって抽象化された状態で管理されている。抽象化されることで、不揮発性メモリ２２０において各情報が実際に格納される領域が異なっていても、マスタデバイスから見たときに、その領域の違いを吸収することができる。
【００９４】
図６（Ｂ）には、ノードアドレスを設定するためのハードウェアスイッチ２０４が設けられているスレーブデバイス２００の不揮発性メモリ２２０の例を示す。図６（Ｂ）に示す不揮発性メモリ２２０には、図６（Ａ）に示す不揮発性メモリ２２０に比較して、ハードウェアスイッチ２０４による設定値（ノードアドレス２２２）を格納するための領域が設けられている。
【００９５】
本実施の形態に係るスレーブデバイス２００の不揮発性メモリ２２０において、ノードアドレス２２２を格納する領域は、機種依存となっており、機種毎に異なっている。このようなハードウェアスイッチ２０４により設定されるノードアドレス２２２が格納される領域は、機種毎に規定されるスレーブ情報ファイルにより特定可能になっている。
【００９６】
ＥｔｈｅｒＣＡＴにおいて、このようなスレーブ情報ファイルは、ＥｔｈｅｒＣＡＴスレーブ情報（EtherCAT Slave Information）ファイル（ＥＳＩファイル）と呼ばれる。
【００９７】
図７は、本実施の形態に係る制御システム１において利用されるスレーブ情報ファイル６００の関連する部分を示す図である。図７を参照して、スレーブ情報ファイル６００の一例であるＥＳＩファイルは、スレーブデバイス２００に関する情報を記述したものであり、スレーブデバイス２００の機種毎に用意される。ＥＳＩファイルは、典型的には、ＸＭＬ（eXtensible Markup Language）形式で記述される。
【００９８】
図７には、ＥＳＩファイルに記述される、ノードアドレス２２２が格納される領域を特定する固有格納位置情報の記述部分６０２を示す。図７に示すＥＳＩファイルを参照することで、ノードアドレス２２２は、スレーブデバイス２００の不揮発性メモリ２２０のレジスタアドレスが「ｘ００１２」から開始される領域に格納されることが分かる。
【００９９】
本実施の形態に係る制御システム１においては、図７に示されるようなスレーブ情報ファイル６００（典型的には、ＥＳＩファイル）を参照することで、対象のスレーブデバイス２００に設定されているノードアドレス２２２の値を読出すことができる。
【０１００】
但し、ＥＳＩファイルは、スレーブデバイス２００の機種毎に存在し、さらに、同一の機種であっても、リビジョンなどによってそれぞれＥＳＩファイルが用意されることもある。
【０１０１】
リソース制約などによって、マスタデバイスである制御装置１００がすべてのＥＳＩファイルを参照できるようにするのは難しい。その結果、マスタデバイスである制御装置１００は、自装置が管理するフィールドネットワーク４に接続されるスレーブデバイス２００の機種によっては、ノードアドレス２２２を取得することができず、予め規定されたネットワーク構成情報１３０とネットワーク実構成との一致を照合できない場合がある。
【０１０２】
そこで、本実施の形態に係る制御システム１においては、注目しているスレーブデバイス２００が、ハードウェアスイッチ２０４により設定されるノードアドレス２２２を不揮発性メモリ２２０に格納している場合において、そのノードアドレス２２２が格納されている位置（固有格納位置情報）を、マスタデバイスである制御装置１００に提供することで、マスタデバイスからのノードアドレス２２２の読出しを可能にする。
【０１０３】
このような制御装置１００への固有格納位置情報の提供方法は、任意の方法が可能であるが、典型例として、以下の３つの方法を提案する。
【０１０４】
＜Ｄ．実施の形態１＞
まず、実施の形態１として、制御装置１００に接続されたサポート装置５００が固有格納位置情報を制御装置１００へ提供する構成について説明する。すなわち、実施の形態１においては、マスタデバイスである制御装置１００に接続されるサポート装置５００が、固有格納位置情報をマスタデバイスへ提供するための機能を実現する。
【０１０５】
図８は、実施の形態１に係る制御システム１におけるノードアドレスを取得する処理手順を説明するための図である。図８を参照して、制御装置１００にはサポート装置５００が接続されており、サポート装置５００は、１または複数のスレーブ情報ファイル６００を予め格納しているとする。
【０１０６】
まず、サポート装置５００から制御装置１００に対して、ネットワーク実構成の取得が要求されたとする（（１）実構成取得要求）。制御装置１００は、サポート装置５００からの実構成取得要求に応じて、対象のスレーブデバイス２００にアクセスして形式情報２２４を取得する（（２）形式情報）。制御装置１００は、形式情報２２４に加えて、ＳｔａｔｉｏｎＡｌｉａｓ２２８を取得してもよい。そして、制御装置１００は、対象のスレーブデバイス２００から取得した形式情報２２４をサポート装置５００へ送信する（（３）形式情報）。
【０１０７】
サポート装置５００は、制御装置１００からの形式情報２２４をキーとして、予め格納しているスレーブ情報ファイル６００を検索する（（４）スレーブ情報ファイル検索）。形式情報２２４は、各スレーブデバイス２００のベンダコード、製品型式、リビジョン番号などを含む。形式情報２２４に含まれるすべての情報を検索に利用してもよいし、一部のみで検索を行ってもよい。
【０１０８】
サポート装置５００は、キーとされた形式情報に対応するスレーブ情報ファイル６００が見つかると、そのスレーブ情報ファイル６００の内容を参照して、固有格納位置情報を制御装置１００へ送信する（（５）固有格納位置情報）。
【０１０９】
制御装置１００は、サポート装置５００から固有格納位置情報の通知を受けると、その通知された固有格納位置情報に従って、対象のスレーブデバイス２００の不揮発性メモリ２２０からノードアドレスを取得する（（６）ノードアドレス取得）。最終的に、制御装置１００は、取得したノードアドレスをサポート装置５００へ応答する（（７）ノードアドレス応答）。
【０１１０】
以上のように、実施の形態１においては、マスタデバイス（制御装置１００）において取得可能な情報に基づいて、サポート装置５００が固有格納位置情報をマスタデバイスへ提供する。すなわち、サポート装置５００は、予め格納されたスレーブデバイス２００の機種毎のスレーブ情報ファイル６００のうち、対象のスレーブデバイス２００から取得された形式情報に対応するスレーブ情報ファイル６００を検索する。そして、サポート装置５００は、当該検索されたスレーブ情報ファイル６００に基づいて、ノードアドレスが格納されている領域を特定するための情報（固有格納位置情報）をマスタデバイス（制御装置１００）へ提供する。
【０１１１】
このような構成を採用することで、マスタデバイスである制御装置１００におけるリソースの制約が厳しい場合であっても、マスタデバイスに対して、適切な固有格納位置情報を提供できる。
【０１１２】
図９は、実施の形態１に係る制御システム１におけるノードアドレスを取得する処理手順を示すシーケンス図である。図９を参照して、サポート装置５００は、制御装置１００に対して、フィールドネットワーク４に接続されているスレーブデバイス２００についての実構成取得要求を送信する（シーケンスＳＱ１０２）。
【０１１３】
制御装置１００は、サポート装置５００からの実構成取得要求に従って、フィールドネットワーク４に接続されている各スレーブデバイス２００に順次アクセスして、形式情報２２４およびＳｔａｔｉｏｎＡｌｉａｓ２２８を取得し（シーケンスＳＱ１０４）、その取得した結果をサポート装置５００へ応答する（シーケンスＳＱ１０６）。
【０１１４】
サポート装置５００は、予め設定されたネットワーク構成情報１３０の各エントリと、制御装置１００から取得した形式情報２２４およびＳｔａｔｉｏｎＡｌｉａｓ２２８（代替ノードアドレス）とを比較する（シーケンスＳＱ１０８）。
【０１１５】
サポート装置５００は、ネットワーク構成情報１３０に含まれるエントリのうち、制御装置１００から取得した形式情報２２４およびＳｔａｔｉｏｎＡｌｉａｓ２２８（代替ノードアドレス）と一致しないスレーブデバイス２００（すなわち、ネットワーク実構成がネットワーク構成情報１３０と一致しないスレーブデバイス２００）を特定し（シーケンスＳＱ１１０）、スレーブ情報ファイル６００を検索して、当該特定したスレーブデバイス２００の形式情報２２４に対応するスレーブ情報ファイル６００が存在するか否かを判断する（シーケンスＳＱ１１２）。
【０１１６】
当該特定したスレーブデバイス２００の形式情報２２４に対応するスレーブ情報ファイル６００が存在しない場合（シーケンスＳＱ１１２においてＮＯの場合）には、サポート装置５００は、当該特定したスレーブデバイス２００のＳｔａｔｉｏｎＡｌｉａｓ２２８の値をノードアドレスとして、ネットワーク構成情報１３０の値を更新する（シーケンスＳＱ１１４）。そして、シーケンスＳＱ１２４の処理が実行される。
【０１１７】
これに対して、当該特定したスレーブデバイス２００の形式情報２２４に対応するスレーブ情報ファイル６００が存在している場合（シーケンスＳＱ１１２においてＹＥＳの場合）には、サポート装置５００は、当該スレーブ情報ファイル６００に記載されている固有格納位置情報を制御装置１００へ送信する（シーケンスＳＱ１１６）。すると、制御装置１００は、対象のスレーブデバイス２００へアクセスし、サポート装置５００からの固有格納位置情報に従って、不揮発性メモリ２２０に格納されているノードアドレス２２２を読出し（シーケンスＳＱ１１８）、その読出したノードアドレス２２２をサポート装置５００へ応答する（シーケンスＳＱ１２０）。サポート装置５００は、制御装置１００からのサポート装置５００を用いて、ネットワーク構成情報１３０の内容と照合する（シーケンスＳＱ１２２）。
【０１１８】
続いて、サポート装置５００は、ネットワーク実構成がネットワーク構成情報１３０と一致しないスレーブデバイス２００がまだ残っているか否かを判断し（シーケンスＳＱ１２４）、まだ残っている場合（シーケンスＳＱ１２４においてＹＥＳの場合）には、シーケンスＳＱ１１０以下の処理を繰返す。
【０１１９】
一方、もう残っていない場合（シーケンスＳＱ１２４においてＮＯの場合）には、処理を終了する。
【０１２０】
以上のような手順によって、サポート装置５００は、ネットワーク構成情報１３０とネットワーク実構成とを照合することができる。
【０１２１】
＜Ｅ．実施の形態２＞
上述の実施の形態１においては、サポート装置５００に格納されているスレーブ情報ファイル６００を参照して、固有格納位置情報を取得する実施例について説明した。現実には、スレーブデバイス２００のリビジョンなどが更新されている場合もあり、サポート装置５００に格納されているスレーブ情報ファイル６００が常に最新であるとは限らない。
【０１２２】
そこで、実施の形態２においては、スレーブ情報ファイル６００を管理するスレーブ情報ファイルサーバを用意し、そのスレーブ情報ファイルサーバも利用しつつ、固有格納位置情報を取得する実施例について説明する。
【０１２３】
すなわち、サポート装置５００が保持しているスレーブ情報ファイル６００が実際に接続されているスレーブデバイス２００に対して古い場合に、制御装置１００が外部サーバへアクセスして、最新のスレーブ情報ファイル６００を取得するようにしてもよい。このような実施例を採用することで、実際に接続されているスレーブデバイス２００に適した固有格納位置情報を確実に取得できる。
【０１２４】
図１０は、実施の形態２に係る制御システム１におけるノードアドレスを取得する処理手順を説明するための図である。図１０においては、図８に示される処理と同様の処理については、説明を省略している。
【０１２５】
図１０を参照して、制御装置１００にはサポート装置５００が接続されており、サポート装置５００は、１または複数のスレーブ情報ファイル６００を予め格納しているとする。さらに、情報系ネットワーク８には、スレーブ情報ファイル６００を管理するスレーブ情報ファイルサーバ７００が接続されているとする。スレーブ情報ファイルサーバ７００は、スレーブデバイス２００のベンダ（製造者または販売者）が提供するスレーブ情報ファイル６００を適宜収集して格納しているとする。
【０１２６】
まず、制御装置１００がフィールドネットワーク４に接続されているスレーブデバイス２００から取得した形式情報をサポート装置５００へ応答したとする（（１）形式情報）。
【０１２７】
サポート装置５００は、制御装置１００からの形式情報２２４をキーとして、予め格納しているスレーブ情報ファイル６００を検索し（（２）スレーブ情報ファイル検索）、キーとされた形式情報に対応するスレーブ情報ファイル６００が見つかると、そのスレーブ情報ファイル６００を特定する情報（典型的には、ファイル名）を制御装置１００へ送信する（（３）ファイル名）。
【０１２８】
この例においては、スレーブ情報ファイル６００のファイル名は、少なくとも、製品型式およびリビジョン番号の内容を含むものとなっており、ファイル名のみで対応するスレーブデバイス２００を特定できるようになっている。
【０１２９】
制御装置１００は、サポート装置５００からのスレーブ情報ファイル６００のファイル名に基づいて、サポート装置５００が有しているスレーブ情報ファイル６００が対象のスレーブデバイス２００に対応したものであるか否かを判断する（（４）ファイル名確認）。
【０１３０】
サポート装置５００が有しているスレーブ情報ファイル６００が対象のスレーブデバイス２００に対応したものである場合には、制御装置１００は、サポート装置５００に対して、固有格納位置情報の送信を要求する（（５）固有格納位置情報要求）。サポート装置５００は、制御装置１００からの要求に対して、先に検索されているスレーブ情報ファイル６００に記述された固有格納位置情報を制御装置１００へ応答する（（６）固有格納位置情報）。
【０１３１】
これに対して、サポート装置５００が有しているスレーブ情報ファイル６００が対象のスレーブデバイス２００に対応したものではない場合には、制御装置１００は、スレーブ情報ファイルサーバ７００に対して、対象のスレーブデバイス２００に対応したスレーブ情報ファイル６００を要求する（（７）スレーブ情報ファイル要求）。このスレーブ情報ファイル６００の要求においては、対象のスレーブデバイス２００の形式情報２２４などがスレーブ情報ファイルサーバ７００へ送信される。スレーブ情報ファイルサーバ７００は、制御装置１００からの要求に対して、対応するスレーブ情報ファイル６００を制御装置１００へ応答する（（８）スレーブ情報ファイル）。そして、制御装置１００は、スレーブ情報ファイルサーバ７００から取得したスレーブ情報ファイル６００に記述された固有格納位置情報を取得する（（９）固有格納位置情報取得）。
【０１３２】
なお、制御装置１００とスレーブ情報ファイルサーバ７００との間のデータの遣り取りは、ＦＴＰ（File Transfer Protocol）などを用いてもよい。
【０１３３】
このように、実施の形態２においては、マスタデバイス（制御装置１００）は、サポート装置５００が検索したスレーブ情報ファイル６００が対象のスレーブデバイス２００に適合しているか否かを判断する。そして、マスタデバイス（制御装置１００）は、適合していないと判断された場合に、スレーブ情報ファイル６００を管理するスレーブ情報ファイルサーバ７００に形式情報２２４を送信することで、スレーブ情報ファイルサーバ７００から対象のスレーブデバイス２００に適合したスレーブ情報ファイル６００を取得する。典型的には、マスタデバイス（制御装置１００）は、サポート装置５００が検索したスレーブ情報ファイル６００のファイル名に基づいて、対象のスレーブデバイス２００に適合しているか否かを判断する。
【０１３４】
以上のような一連の処理によって取得された固有格納位置情報に基づいて、制御装置１００は、対象のスレーブデバイス２００の不揮発性メモリ２２０からノードアドレスを取得する。これ以降の処理は、上述の実施の形態１と同様であるので、詳細な説明は繰返さない。
【０１３５】
実施の形態２においては、スレーブ情報ファイルサーバ７００を利用することで、常に最新のスレーブ情報ファイル６００を利用できるため、新たなスレーブデバイス２００がフィールドネットワーク４に接続された場合であっても、ノードアドレスを取得できないといった事態を回避できる。
【０１３６】
図１１は、実施の形態２に係る制御システム１におけるノードアドレスを取得する処理手順を示すシーケンス図である。図１１においては、図９に示される処理と同様の処理については、説明を省略している。
【０１３７】
図１１を参照して、制御装置１００は、フィールドネットワーク４に接続されているスレーブデバイス２００にアクセスして形式情報２２４を取得し（シーケンスＳＱ２００）、その取得した結果をサポート装置５００へ応答する（シーケンスＳＱ２０２）。
【０１３８】
サポート装置５００は、予め格納しているスレーブ情報ファイル６００を検索して、制御装置１００からの形式情報２２４に対応するスレーブ情報ファイル６００を特定する（シーケンスＳＱ２０４）。そして、サポート装置５００は、特定したスレーブ情報ファイル６００のファイル名を制御装置１００へ通知する（シーケンスＳＱ２０６）。
【０１３９】
制御装置１００は、サポート装置５００からのスレーブ情報ファイル６００のファイル名に基づいて、サポート装置５００が特定したスレーブ情報ファイル６００が実際に接続されている対象のスレーブデバイス２００に適合するものであるか否かを判断する（シーケンスＳＱ２０８）。
【０１４０】
サポート装置５００が特定したスレーブ情報ファイル６００が実際に接続されている対象のスレーブデバイス２００に適合するものである場合（シーケンスＳＱ２０８においてＹＥＳの場合）には、制御装置１００は、サポート装置５００に対して、当該特定したスレーブ情報ファイル６００に記述された固有格納位置情報を要求する（シーケンスＳＱ２１０）。サポート装置５００は、制御装置１００からの要求に従って、特定したスレーブ情報ファイル６００に記述された固有格納位置情報を制御装置１００へ応答する（シーケンスＳＱ２１２）。そして、シーケンスＳＱ２２２以下の処理が実行される。
【０１４１】
一方、サポート装置５００が特定したスレーブ情報ファイル６００が実際に接続されている対象のスレーブデバイス２００に適合するものではない場合（シーケンスＳＱ２０８においてＮＯの場合）には、制御装置１００は、対象のスレーブデバイス２００から取得した形式情報２２４をスレーブ情報ファイルサーバ７００へ送信する（シーケンスＳＱ２１４）。
【０１４２】
スレーブ情報ファイルサーバ７００は、予め格納しているスレーブ情報ファイル６００を検索して、制御装置１００からの形式情報２２４に対応するスレーブ情報ファイル６００を特定する（シーケンスＳＱ２１６）。そして、スレーブ情報ファイルサーバ７００は、特定したスレーブ情報ファイル６００を制御装置１００へ応答する（シーケンスＳＱ２１８）。
【０１４３】
制御装置１００は、スレーブ情報ファイルサーバ７００からのスレーブ情報ファイル６００に記述された固有格納位置情報を取得する（シーケンスＳＱ２２０）。
【０１４４】
上述のいずれかの方法で固有格納位置情報を取得した制御装置１００は、当該取得した固有格納位置情報に従って、対象のスレーブデバイス２００の不揮発性メモリ２２０に格納されているノードアドレス２２２を読出し（シーケンスＳＱ２２２）、その読出したノードアドレス２２２をサポート装置５００へ応答する（シーケンスＳＱ２２４）。
【０１４５】
以上のような手順によって、制御装置１００は、任意のスレーブデバイス２００からノードアドレスを取得できる。
【０１４６】
＜Ｆ．実施の形態２の変形例＞
上述の実施の形態２においては、制御装置１００がスレーブ情報ファイルサーバ７００へアクセスする実施例を示したが、これに限らず、任意の装置がスレーブ情報ファイルサーバ７００へアクセスするようにしてもよい。
【０１４７】
例えば、サポート装置５００が自装置において格納されているスレーブ情報ファイル６００が対象のスレーブデバイス２００に適合しているか否かを判断し、必要に応じて、スレーブ情報ファイルサーバ７００へアクセスして、最新のスレーブ情報ファイル６００を取得するようにしてもよい。
【０１４８】
＜Ｇ．実施の形態３＞
上述の実施の形態２においては、サポート装置５００に格納されているスレーブ情報ファイル６００の適否を制御装置１００が判断して、必要に応じてスレーブ情報ファイルサーバ７００へスレーブ情報ファイル６００を要求する実施例について説明した。スレーブ情報ファイルサーバ７００に代えて、固有格納位置情報をダイレクトに応答するようなサーバを配置してもよい。
【０１４９】
実施の形態３においては、複数のスレーブ情報ファイル６００を保持するとともに、制御装置１００などからの要求に従って、対象となるスレーブ情報ファイル６００を検索するとともに、その検索されたスレーブ情報ファイル６００の記述から固有格納位置情報を応答する、機器管理サーバ８００を配置した構成を採用する。
【０１５０】
図１２は、実施の形態３に係る制御システム１におけるノードアドレスを取得する処理手順を説明するための図である。図１２においては、図８に示される処理と同様の処理については、説明を省略している。
【０１５１】
図１２を参照して、情報系ネットワーク８には、スレーブ情報ファイル６００を管理する機器管理サーバ８００が接続されているとする。機器管理サーバ８００は、スレーブデバイス２００のベンダ（製造者または販売者）が提供するスレーブ情報ファイル６００を適宜収集して格納しているとする。
【０１５２】
まず、制御装置１００は、フィールドネットワーク４に接続されている任意のスレーブデバイス２００から形式情報を取得し（（１）形式情報取得）、その取得した形式情報を機器管理サーバ８００へ送信する（（２）形式情報）。
【０１５３】
機器管理サーバ８００は、制御装置１００からの形式情報２２４をキーとして、予め格納しているスレーブ情報ファイル６００を検索する（（３）スレーブ情報ファイル検索）。形式情報２２４は、各スレーブデバイス２００のベンダコード、製品型式、リビジョン番号などを含む。形式情報２２４に含まれるすべての情報を検索に利用してもよいし、一部のみで検索を行ってもよい。
【０１５４】
スレーブ情報ファイル６００は、キーとされた形式情報に対応するスレーブ情報ファイル６００を見つけると、そのスレーブ情報ファイル６００の内容を参照して、固有格納位置情報を制御装置１００へ応答する（（４）固有格納位置情報）。
【０１５５】
なお、制御装置１００と機器管理サーバ８００との間のデータの遣り取りは、ＳＱＬなどのデータベース操作言語を用いてもよい。
【０１５６】
このように、実施の形態３においては、スレーブデバイス２００の機種毎のスレーブ情報ファイルを管理する機器管理サーバ８００が制御システム１に配置されている。マスタデバイス（制御装置１００）は、任意のスレーブデバイス２００から取得された形式情報１３４を機器管理サーバ８００へ送信することで、対応するスレーブ情報ファイルに記述された、ノードアドレスが格納されている領域を特定するための情報（固有格納位置情報）の応答を受ける。
【０１５７】
以上のような一連の処理によって取得された固有格納位置情報に基づいて、制御装置１００は、対象のスレーブデバイス２００の不揮発性メモリ２２０からノードアドレスを取得する。これ以降の処理は、上述の実施の形態１と同様であるので、詳細な説明は繰返さない。
【０１５８】
以上のように、実施の形態３においては、機器管理サーバ８００を利用することで、常に最新のスレーブ情報ファイル６００を利用できるため、新たなスレーブデバイス２００がフィールドネットワーク４に接続された場合であっても、ノードアドレスを取得できないといった事態を回避できる。
【０１５９】
図１３は、実施の形態３に係る制御システム１におけるノードアドレスを取得する処理手順を示すシーケンス図である。図１３においては、図９に示される処理と同様の処理については、説明を省略している。
【０１６０】
図１３を参照して、制御装置１００は、フィールドネットワーク４に接続されているスレーブデバイス２００にアクセスして形式情報２２４を取得し（シーケンスＳＱ３００）、その取得した結果を機器管理サーバ８００へ送信する（シーケンスＳＱ３０２）。
【０１６１】
機器管理サーバ８００は、予め格納しているスレーブ情報ファイル６００を検索して、制御装置１００からの形式情報２２４に対応するスレーブ情報ファイル６００を特定し（シーケンスＳＱ３０４）、特定したスレーブ情報ファイル６００に記述された固有格納位置情報を制御装置１００へ応答する（シーケンスＳＱ３０６）。
【０１６２】
制御装置１００は、機器管理サーバ８００からの固有格納位置情報に従って、対象のスレーブデバイス２００の不揮発性メモリ２２０に格納されているノードアドレス２２２を読出し（シーケンスＳＱ３０８）、その読出したノードアドレス２２２をサポート装置５００へ応答する（シーケンスＳＱ３１０）。
【０１６３】
以上のような手順によって、制御装置１００は、任意のスレーブデバイス２００からノードアドレスを取得できる。
【０１６４】
＜Ｈ．実施の形態３の変形例＞
上述の実施の形態３においては、制御装置１００が機器管理サーバ８００へアクセスする実施例を示したが、これに限らず、任意の装置が機器管理サーバ８００へアクセスするようにしてもよい。
【０１６５】
例えば、サポート装置５００が制御装置１００からの形式情報を受けて、機器管理サーバ８００へアクセスすることで、対応するノード固有格納位置情報を取得するようにしてもよい。このような構成を採用することで、サポート装置５００がスレーブ情報ファイル６００を管理する必要性がなくなる。
【０１６６】
＜Ｉ．その他の実施の形態＞
上述の実施の形態１〜３に示す実施例に限定されることなく、アクセス対象のスレーブデバイス２００の固有格納位置情報を取得できない制御装置１００に対して、任意の方法で、固有格納位置情報を提供するものであれば、どのような形態を採用してもよい。
【０１６７】
上述の説明においては、ネットワーク構成情報１３０とネットワーク実構成との照合処理を主として説明したが、これに限らず、各スレーブデバイス２００のノードアドレスの読込みおよび書込みに係る任意の処理に適用可能である。
【０１６８】
＜Ｊ．付記＞
上述したような本実施の形態は、以下のような技術思想を含む。
［構成１］
制御システム（１）であって、
マスタデバイス（１００）と、
前記マスタデバイスとフィールドネットワーク（４）を介して接続される１または複数のスレーブデバイス（２００）とを備え、
前記１または複数のスレーブデバイスの各々は、前記フィールドネットワークにおいて各スレーブデバイスを識別するためのノードアドレス（２２２）と、各スレーブデバイスの機種を示す形式情報（２２４）とを格納する記憶部（２２０）を含んでおり、
前記記憶部において、前記ノードアドレスはスレーブデバイスの機種別に固有の領域に配置されており、
前記マスタデバイスは、前記フィールドネットワークに接続されている任意のスレーブデバイスの前記記憶部へのアクセスが可能になっており、
前記制御システムは、任意のスレーブデバイスについて、前記記憶部において前記ノードアドレスが格納されている領域を特定するための情報を前記マスタデバイスへ提供するための情報提供手段（５００；７００；８００）をさらに備える、制御システム。
［構成２］
前記情報提供手段は、前記マスタデバイスに接続されるサポート装置（５００）を含み、
前記サポート装置は、
予め格納されたスレーブデバイスの機種毎のスレーブ情報ファイル（６００）のうち、対象のスレーブデバイスから取得された形式情報に対応するスレーブ情報ファイルを検索し、
当該検索されたスレーブ情報ファイルに基づいて、前記ノードアドレスが格納されている領域を特定するための情報を前記マスタデバイスへ提供する、構成１に記載の制御システム。
［構成３］
前記マスタデバイスは、
前記サポート装置が検索したスレーブ情報ファイルが前記対象のスレーブデバイスに適合しているか否かを判断し、
適合していないと判断された場合に、スレーブ情報ファイルを管理するスレーブ情報ファイルサーバ（７００）に前記形式情報を送信することで、前記スレーブ情報ファイルサーバから前記対象のスレーブデバイスに適合したスレーブ情報ファイルを取得する、構成２に記載の制御システム。
［構成４］
前記マスタデバイスは、前記サポート装置が検索したスレーブ情報ファイルのファイル名に基づいて、前記対象のスレーブデバイスに適合しているか否かを判断する、構成３に記載の制御システム。
［構成５］
前記情報提供手段は、スレーブデバイスの機種毎のスレーブ情報ファイルを管理する機器管理サーバ（８００）を含み、
前記マスタデバイスは、任意のスレーブデバイスから取得された前記形式情報を前記機器管理サーバへ送信することで、対応するスレーブ情報ファイルに記述された、前記ノードアドレスが格納されている領域を特定するための情報の応答を受ける、構成１に記載の制御システム。
［構成６］
前記フィールドネットワークにおいて、ＥｔｈｅｒＣＡＴ（登録商標）に従ってデータが伝送される、構成２〜５のいずれか１項に記載の制御システム。
［構成７］
前記スレーブ情報ファイルは、ＥＳＩ（EtherCAT Slave Information）ファイルである、構成６に記載の制御システム。
［構成８］
前記スレーブデバイスは、前記ノードアドレスの値を設定するためのハードウェアスイッチ（２０４）を含む、構成１〜７のいずれか１項に記載の制御システム。
［構成９］
マスタデバイス（１００）と、前記マスタデバイスとフィールドネットワーク（４）を介して接続される１または複数のスレーブデバイス（２００）とを備える制御システム（１）における制御方法であって、
前記１または複数のスレーブデバイスの各々は、前記フィールドネットワークにおいて各スレーブデバイスを識別するためのノードアドレスと、各スレーブデバイスの機種を示す形式情報とを格納する記憶部（２２０）を含んでおり、
前記記憶部において、前記ノードアドレスはスレーブデバイスの機種別に固有の領域に配置されており、
前記制御方法は、
任意のスレーブデバイスについて、前記記憶部において前記ノードアドレスが格納されている領域を特定するための情報を前記マスタデバイスへ提供するステップ（ＳＱ１１６；ＳＱ２１２，ＳＱ２１８；ＳＱ３０６）と、
前記マスタデバイスが、前記ノードアドレスが格納されている領域を特定するための情報に基づいて、前記フィールドネットワークに接続されている任意のスレーブデバイスの前記記憶部へのアクセスするステップ（ＳＱ１１８；ＳＱ２２２；ＳＱ３０８）とを備える、制御方法。
【０１６９】
＜Ｋ．利点＞
本実施の形態に係る制御システムにおいては、マスタデバイスに事前情報が不足している場合であっても、各スレーブデバイスからノードアドレスを取得することができ、これによって、各種機能を提供できる。
【０１７０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１７１】
１  制御システム、４  フィールドネットワーク、６  内部バス、８  情報系ネットワーク、１００  制御装置、１０２，２１２，５０２  プロセッサ、１０４  チップセット、１０６，２１４，５０４  メインメモリ、１０８，３０６，５０６  ストレージ、１１０  ネットワークコントローラ、１１２，５１６  ＵＳＢコントローラ、１１４  メモリカードインターフェイス、１１６  メモリカード、１１８  内部バスコントローラ、１２０，２０２  フィールドネットワークコントローラ、１２６  カウンタ、１２８  ＲＴＣ、１３０  ネットワーク構成情報、１３２，２２２  ノードアドレス、１３４，２２４  形式情報、１５０  機能ユニット、２００  スレーブデバイス、２０４  ハードウェアスイッチ、２１０  メインコントローラ、２２０  不揮発性メモリ、２２６  ファームウェア、２３０  機能回路、５００  サポート装置、５０８  入力部、５１０  表示部、５１２  光学ドライブ、５１４  記録媒体、５１８  プロセッサバス、５２０  ＯＳ、５２６  サポートプログラム、６００  スレーブ情報ファイル、６０２  記述部分、７００  スレーブ情報ファイルサーバ、８００  機器管理サーバ。
【図１】
2019186617.tif 000003
【図２】
2019186617.tif 000004
【図３】
2019186617.tif 000005
【図４】
2019186617.tif 000006
【図５】
2019186617.tif 000007
【図６】
2019186617.tif 000008
【図７】
2019186617.tif 000009
【図８】
2019186617.tif 000010
【図９】
2019186617.tif 000011
【図１０】
2019186617.tif 000012
【図１１】
2019186617.tif 000013
【図１２】
2019186617.tif 000014
【図１３】
2019186617.tif 000015