(57)【要約】【課題】コントローラ間で同一の制御プログラムを利用する場合であっても通信可能な状態にできる技術を提供する。【解決手段】コントローラは、ＩＰアドレスと識別子との対応関係を含むネットワーク設定と、駆動機器を制御する制御プログラムを格納する記憶装置を備える。制御プログラムは、上記識別子を入力として駆動機器を制御する制御命令を含む。コントローラは、同一のネットワーク上の他のコントローラのＩＰアドレスとは異なるようにＩＰアドレスを生成し、ネットワーク設定のＩＰアドレスを書き換える生成モジュールと、ネットワーク設定のＩＰアドレスに従って同一ネットワーク上の情報処理装置と通信する通信モジュールとを備える。【選択図】図１
2019159631.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが制御対象の駆動機器を制御するための複数のコントローラと、
前記複数のコントローラと同一のネットワークに接続される情報処理装置とを備え、
前記複数のコントローラのそれぞれは、
自コントローラのＩＰ（Internet Protocol）アドレスと当該ＩＰアドレスに代わる識別子との対応関係を含むネットワーク設定と、制御対象の駆動機器を制御するための制御プログラムとを格納する記憶装置を備え、
前記制御プログラムは、自コントローラの前記ネットワーク設定に示される前記識別子を入力として制御対象の駆動機器を制御する制御命令を含み、
前記複数のコントローラのそれぞれは、さらに、
他のコントローラのＩＰアドレスとは異なるように自コントローラのＩＰアドレスを生成し、当該生成したＩＰアドレスで、当該自コントローラの前記ネットワーク設定に示されるＩＰアドレスを書き換えるための生成モジュールと、
自コントローラの前記ネットワーク設定に示されるＩＰアドレスに従って前記情報処理装置と通信するための通信モジュールとを備える、制御システム。
【請求項２】
前記生成モジュールは、自コントローラを一意に識別可能な識別情報に基づいて、当該自コントローラのＩＰアドレスを生成する、請求項１に記載の制御システム。
【請求項３】
前記複数のコントローラのそれぞれは、外部記憶媒体に接続可能に構成されており、
前記外部記憶媒体は、ＩＰアドレスに関する設定値を格納しており、
前記生成モジュールは、前記外部記憶媒体に格納されている前記設定値を読み取り、当該設定値に従って自コントローラのＩＰアドレスを生成する、請求項１または２に記載の制御システム。
【請求項４】
前記生成モジュールは、
生成したＩＰアドレスが前記他のコントローラで既に使用されているか否かを当該他のコントローラに問い合わせ、
当該問い合わせに応答する他のコントローラが存在しない場合、当該生成したＩＰアドレスで自コントローラの前記ネットワーク設定に示されるＩＰアドレスを書き換える、請求項１〜３のいずれか１項に記載の制御システム。
【請求項５】
前記生成モジュールは、前記問い合わせに応答する他のコントローラが存在する場合、先に生成したＩＰアドレスとは異なるＩＰアドレスを再生成する、請求項４に記載の制御システム。
【請求項６】
前記生成モジュールは、前記他のコントローラのＩＰアドレスが自コントローラに既に設定されているか否かを当該他のコントローラから問い合わされた場合、当該ＩＰアドレスとは重複しないように自コントローラのＩＰアドレスを生成する、請求項４または５に記載の制御システム。
【請求項７】
自コントローラに格納される制御プログラムは、他のコントローラに格納される制御プログラムを複製したものである、請求項１〜６のいずれか１項に記載の制御システム。
【請求項８】
駆動機器を制御するためのコントローラであって、
前記コントローラのＩＰアドレスと当該ＩＰアドレスに代わる識別子との対応関係を含むネットワーク設定と、前記駆動機器を制御するための制御プログラムを格納する記憶装置を備え、
前記制御プログラムは、前記ネットワーク設定に示される前記識別子を入力として前記駆動機器を制御する制御命令を含み、さらに、
前記コントローラと同一のネットワークに接続される他のコントローラのＩＰアドレスとは異なるように前記コントローラのＩＰアドレスを生成し、当該生成したＩＰアドレスで、前記ネットワーク設定に示されるＩＰアドレスを書き換えるための生成モジュールと、
前記ネットワーク設定に示されるＩＰアドレスに従って前記コントローラと同一のネットワークに接続される情報処理装置と通信するための通信モジュールとを備える、コントローラ。
【請求項９】
駆動機器を制御するためのコントローラの制御方法であって、
前記コントローラのＩＰアドレスと、当該ＩＰアドレスに代わる識別子との対応関係を含むネットワーク設定と、前記駆動機器を制御するための制御プログラムを前記コントローラの記憶装置から取得するステップを備え、
前記制御プログラムは、前記ネットワーク設定に示される前記識別子を入力として前記駆動機器を制御する制御命令を含み、さらに、
前記コントローラと同一のネットワークに接続される他のコントローラのＩＰアドレスとは異なるように前記コントローラのＩＰアドレスを生成し、当該生成したＩＰアドレスで、前記ネットワーク設定に示されるＩＰアドレスを書き換えるステップと、
前記ネットワーク設定に示されるＩＰアドレスに従って前記コントローラと同一のネットワークに接続される情報処理装置と通信するステップとを備える、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ＩＰ（Internet Protocol）アドレスを制御装置に自動設定するための技術に関する。
【背景技術】
【０００２】
様々な生産現場において、ＰＬＣ（Programmable Logic Controller）やロボットコントローラなどの産業用の制御装置（以下、「コントローラ」ともいう。）が導入されている。コントローラが種々の産業用の駆動機器を制御することで、生産工程が自動化される。
【０００３】
複数のコントローラが同一のネットワークに接続されることがある。これらのコントローラは、上位の情報処理装置と通信可能に構成されている。上位の情報処理装置は、各コントローラと通信することで、各コントローラが制御する駆動機器の情報や各コントローラの情報を収集することができる。情報処理装置が各コントローラと通信するためには、各コントローラに対してネットワーク設定（たとえば、ＩＰアドレスなど）を行う必要がある。
【０００４】
コントローラのネットワーク設定に関する文献として、たとえば、特開２０１３−２４２６２９号公報（特許文献１）と、特開２００８−１５２７９９号公報（特許文献２）と、特開２０１７−１５１９３４号公報（特許文献３）と、特開２００２−３２８７０６号公報（特許文献４）とがある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−２４２６２９号公報
【特許文献２】特開２００８−１５２７９９号公報
【特許文献３】特開２０１７−１５１９３４号公報
【特許文献４】特開２００２−３２８７０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
生産現場における設備を拡大するときに、現在の設備と同じ設備を複製したいというケースがある。この場合、コントローラにダウンロードされている駆動機器の制御プログラムが他のコントローラでも利用される。
【０００７】
制御プログラムがコントローラのＩＰアドレスに依存して駆動機器を制御する場合、制御プログラムが複製されると、ＩＰアドレスが重複してしまい、制御プログラムは、正常に動作しない。また、ネットワーク設定が重複してしまい、上位の情報処理装置は、各コントローラと通信できなくなる。これらの問題を解決するためには、ネットワーク設定や制御プログラムの記述を手動で変更する必要がある。しかしながら、このような変更は、設備の規模が大きくなるほど手間となる。
【０００８】
本開示は上述のような問題点を解決するためになされたものであって、ある局面における目的は、コントローラ間で同一の制御プログラムを利用する場合であっても通信可能な状態にできる技術を提供することである。
【課題を解決するための手段】
【０００９】
本開示の一例では、制御システムは、それぞれが制御対象の駆動機器を制御するための複数のコントローラと、上記複数のコントローラと同一のネットワークに接続される情報処理装置とを備える。上記複数のコントローラのそれぞれは、自コントローラのＩＰ（Internet Protocol）アドレスと当該ＩＰアドレスに代わる識別子との対応関係を含むネットワーク設定と、制御対象の駆動機器を制御するための制御プログラムとを格納する記憶装置を備える。上記制御プログラムは、自コントローラの上記ネットワーク設定に示される上記識別子を入力として制御対象の駆動機器を制御する制御命令を含む。上記複数のコントローラのそれぞれは、さらに、他のコントローラのＩＰアドレスとは異なるように自コントローラのＩＰアドレスを生成し、当該生成したＩＰアドレスで、当該自コントローラの上記ネットワーク設定に示されるＩＰアドレスを書き換えるための生成モジュールと、自コントローラの上記ネットワーク設定に示されるＩＰアドレスに従って上記情報処理装置と通信するための通信モジュールとを備える。
【００１０】
この開示によれば、制御システムは、コントローラ間で同一の制御プログラムを利用する場合であっても情報処理装置と各コントローラとを通信可能な状態にできる。
【００１１】
本開示の一例では、上記生成モジュールは、自コントローラを一意に識別可能な識別情報に基づいて、当該自コントローラのＩＰアドレスを生成する。
【００１２】
この開示によれば、コントローラは、他のコントローラのＩＰアドレスとは重複しないＩＰアドレスを確実に生成することができる。
【００１３】
本開示の一例では、上記複数のコントローラのそれぞれは、外部記憶媒体に接続可能に構成されている。上記外部記憶媒体は、ＩＰアドレスに関する設定値を格納している。上記生成モジュールは、上記外部記憶媒体に格納されている上記設定値を読み取り、当該設定値に従って自コントローラのＩＰアドレスを生成する。
【００１４】
この開示によれば、ユーザは、外部記憶媒体に格納されている設定値を書き換えるだけでコントローラのＩＰアドレスを変えることができる。
【００１５】
本開示の一例では、上記生成モジュールは、生成したＩＰアドレスが上記他のコントローラで既に使用されているか否かを当該他のコントローラに問い合わせ、当該問い合わせに応答する他のコントローラが存在しない場合、当該生成したＩＰアドレスで自コントローラの上記ネットワーク設定に示されるＩＰアドレスを書き換える。
【００１６】
この開示によれば、コントローラは、他のコントローラのＩＰアドレスとは重複しないＩＰアドレスを確実に生成することができる。
【００１７】
本開示の一例では、上記生成モジュールは、上記問い合わせに応答する他のコントローラが存在する場合、先に生成したＩＰアドレスとは異なるＩＰアドレスを再生成する。
【００１８】
この開示によれば、コントローラは、自コントローラのＩＰアドレスが他のコントローラのＩＰアドレスと重複することを回避することができる。
【００１９】
本開示の一例では、上記生成モジュールは、上記他のコントローラのＩＰアドレスが自コントローラに既に設定されているか否かを当該他のコントローラから問い合わされた場合、当該ＩＰアドレスとは重複しないように自コントローラのＩＰアドレスを生成する。
【００２０】
この開示によれば、コントローラは、ランダムにＩＰアドレスを生成するよりも確実に一意のＩＰアドレスを生成することができる。
【００２１】
本開示の一例では、自コントローラに格納される制御プログラムは、他のコントローラに格納される制御プログラムを複製したものである。
【００２２】
この開示によれば、他のコントローラにおける制御プログラムが自コントローラにおける制御プログラムを複製した場合であっても、制御システムは、情報処理装置と各コントローラとを通信可能な状態にできる。
【００２３】
本開示の他の例では、駆動機器を制御するためのコントローラは、上記コントローラのＩＰアドレスと当該ＩＰアドレスに代わる識別子との対応関係を含むネットワーク設定と、上記駆動機器を制御するための制御プログラムを格納する記憶装置を備える。上記制御プログラムは、上記ネットワーク設定に示される上記識別子を入力として上記駆動機器を制御する制御命令を含む。上記コントローラは、さらに、上記コントローラと同一のネットワークに接続される他のコントローラのＩＰアドレスとは異なるように上記コントローラのＩＰアドレスを生成し、当該生成したＩＰアドレスで、上記ネットワーク設定に示されるＩＰアドレスを書き換えるための生成モジュールと、上記ネットワーク設定に示されるＩＰアドレスに従って上記コントローラと同一のネットワークに接続される情報処理装置と通信するための通信モジュールとを備える。
【００２４】
この開示によれば、制御システムは、コントローラ間で同一の制御プログラムを利用する場合であっても情報処理装置と各コントローラとを通信可能な状態にできる。
【００２５】
本開示の他の例では、駆動機器を制御するためのコントローラの制御方法は、上記コントローラのＩＰアドレスと、当該ＩＰアドレスに代わる識別子との対応関係を含むネットワーク設定と、上記駆動機器を制御するための制御プログラムを上記コントローラの記憶装置から取得するステップを備える。上記制御プログラムは、上記ネットワーク設定に示される上記識別子を入力として上記駆動機器を制御する制御命令を含む。上記制御方法は、さらに、上記コントローラと同一のネットワークに接続される他のコントローラのＩＰアドレスとは異なるように上記コントローラのＩＰアドレスを生成し、当該生成したＩＰアドレスで、上記ネットワーク設定に示されるＩＰアドレスを書き換えるステップと、上記ネットワーク設定に示されるＩＰアドレスに従って上記コントローラと同一のネットワークに接続される情報処理装置と通信するステップとを備える。
【００２６】
この開示によれば、制御システムは、コントローラ間で同一の制御プログラムを利用する場合であっても情報処理装置と各コントローラとを通信可能な状態にできる。
【図面の簡単な説明】
【００２７】
【図１】実施の形態に従う制御システムの概略を示す図である。
【図２】実施の形態に従う制御システムのシステム構成を示す図である。
【図３】ＩＰアドレスの自動生成機能を有するファンクションブロックを示す図である。
【図４】各コントローラが自身のＩＰアドレスを生成する過程を示す図である。
【図５】図３に示されるファンクションブロックを組み込んだ制御プログラムの例を示す図である。
【図６】ＩＰアドレスの設定モードを設定するための画面の一例を示す図である。
【図７】コントローラのＩＰアドレスに依存するファンクションブロックを示す図である。
【図８】通知方式によるＩＰアドレスの収集機能の流れを示すシーケンス図である。
【図９】ＩＰアドレスの管理テーブルの一例を示す図である。
【図１０】ポーリング方式によるＩＰアドレスの収集機能の流れを示すシーケンス図である。
【図１１】図３に示されるファンクションブロックの変形例を示す図である。
【図１２】図９に示される管理テーブルの変形例を示す図である。
【図１３】実施の形態に従うコントローラのハードウェア構成例を示すブロック図である。
【図１４】実施の形態に従う情報処理装置のハードウェア構成を示す模式図である。
【発明を実施するための形態】
【００２８】
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
【００２９】
＜Ａ．適用例＞
図１を参照して、本発明の適用例について説明する。図１は、制御システム１の概略を示す図である。
【００３０】
制御システム１は、設備および装置などの制御対象を制御し、生産工程を自動化するためのＦＡ（Factory Automation）システムである。制御システム１は、複数のコントローラと、１または複数の情報処理装置２００と、複数の駆動機器とを含む。図１には、複数のコントローラの例として、２つのコントローラ１００Ａ，１００Ｂが示されている。また、複数の駆動機器の例として、２つの駆動機器３００が示されている。
【００３１】
コントローラ１００Ａ、１００Ｂは、それぞれ、記憶装置１０５と、生成モジュール１５２と、通信モジュール１５４とを含む。以下では、複数のコントローラ（たとえば、コントローラ１００Ａ、１００Ｂ）を総称してコントローラ１００ともいう。
【００３２】
コントローラ１００は、複数のネットワークに接続され得る。図１の例では、コントローラ１００は、ネットワークＮ１とネットワークＮ２とに接続されている。
【００３３】
ネットワークＮ１には、たとえば、ＥｔｈｅｒＮＥＴ（登録商標）が採用される。但し、ネットワークＮ１は、ＥｔｈｅｒＮＥＴに限定されず、任意の通信手段が採用され得る。図１の例では、ネットワークＮ１に情報処理装置２００が接続されている。情報処理装置２００は、たとえば、ＰＣ（Personal Computer）、タブレット端末、スマートフォン、表示器（たとえば、ＨＭＩ（Human Machine Interface））などを含む。
【００３４】
ネットワークＮ２は、ネットワークＮ１よりも下位のネットワークである。ネットワークＮ２には、たとえば、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）などが採用される。図１の例では、ネットワークＮ２に駆動機器３００が接続されている。駆動機器３００は、生産工程を自動化するための種々の産業用機器を含む。一例として、駆動機器３００は、アームロボットや、アームロボットを制御するためのロボットコントローラや、生産工程を搬送されるワークを撮影するための画像センサや、生産工程で利用されるその他の機器などを含む。
【００３５】
記憶装置１０５は、コントローラ１００のネットワーク設定１０８と、駆動機器３００を制御するための制御プログラム１１０とを格納する。
【００３６】
ネットワーク設定１０８は、コントローラ１００のＩＰアドレスと、当該ＩＰアドレスに代わる識別子との対応関係を含む。当該識別子は、制御プログラム１１０で規定されているプログラム変数であってもよいし、コントローラ１００で管理されるシステム変数であってもよいし、各変数の記憶場所を示す物理アドレスであってもよい。
【００３７】
制御プログラム１１０は、駆動機器３００に応じて設計者によって実装されたユーザプログラムである。制御プログラム１１０の開発ツールは、たとえば、ＰＣとしての情報処理装置２００にインストールされている。設計者は、予め規定されている複数種類の命令を開発ツール上で任意に組み合わせることで、駆動機器３００の構成に合わせた制御プログラム１１０を設計することができる。開発ツール上でコンパイルされた制御プログラム１１０は、コントローラ１００にインストールされる。
【００３８】
典型的には、コントローラ１００Ａの制御プログラム１１０は、コントローラ１００Ｂの制御プログラム１１０を複製したものである。本実施の形態に従う制御システム１は、制御プログラムが複製された場合でも、制御プログラムの記述やＩＰアドレスに関する設定を変更することなしにコントローラ１００が動作するような環境を提供する。
【００３９】
より具体的には、制御プログラム１１０は、コントローラ１００のネットワーク設定１０８に示される識別子を入力として制御対象の駆動機器３００を制御する制御命令を含む。当該識別子は、コントローラ１００Ａ，１００Ｂ間で共通している。上述したように、当該識別子は、コントローラの１００Ａ，１００ＢのＩＰアドレスに代わるものである。当該識別子は、コントローラの１００Ａ，１００ＢのＩＰアドレスには連動しない固定値である。このような識別子を入力としてＩＰアドレスが解釈されることで、ＩＰアドレスが変わった場合でも、ユーザは、制御プログラム１１０を書き換える必要がなくなる。
【００４０】
生成モジュール１５２は、他のコントローラのＩＰアドレスとは異なるように自コントローラのＩＰアドレスを生成する。すなわち、生成モジュール１５２は、コントローラ１００Ａ，１００Ｂ間でＩＰアドレスが重複しないように自コントローラのＩＰアドレスを生成する。重複しないようにＩＰアドレスを生成する方法の詳細については後述する。生成モジュール１５２は、自コントローラのネットワーク設定１０８に示されるＩＰアドレスを、生成したＩＰアドレスで書き換える。
【００４１】
通信モジュール１５４は、自コントローラのネットワーク設定１０８に示されるＩＰアドレスに従って情報処理装置２００と通信する。ネットワーク設定１０８に示されるＩＰアドレスは、他のコントローラと重複しないように決定されたものであるので、情報処理装置２００は、コントローラ１００Ａ，１００Ｂと通信することができる。
【００４２】
以上のように、制御プログラム１１０に含まれる、ＩＰアドレスに依存する制御命令は、ＩＰアドレスに代わる識別子に従って制御対象の駆動機器３００を制御する。そのため、ＩＰアドレスが変わった場合であっても、制御プログラム１１０の記述を変える必要がない。その結果、現在使用されている制御プログラムを他のコントローラに流用することが可能になる。
【００４３】
また、コントローラ１００Ａ，１００Ｂは、それぞれ、他のコントローラと重複しないようにＩＰアドレスを生成する機能を有する。そのため、ネットワークＮ１に接続されるコントローラが増えた場合であっても、情報処理装置２００は、各コントローラと通信を継続することができる。その結果、あるコントローラにおける制御プログラムを同一のネットワークに接続される他のコントローラで利用する場合であっても通信可能な状態にできる。これにより、現在の設備を複製する場合に、ＩＰアドレスに関する設定や制御プログラムの記述を手動で変更する必要が無くなる。このような利点は、設備の規模が大きくなるほど顕著となる。
【００４４】
＜Ｂ．制御システム１の装置構成＞
次に、本実施の形態に従う制御システム１の全体構成について説明する。図２は、本実施の形態に従う制御システム１のシステム構成を示す図である。
【００４５】
図２に示されるように、制御システム１は、複数のコントローラ１００と、１または複数の情報処理装置２００と、複数の駆動機器３００とを含む。
【００４６】
コントローラ１００は、複数のネットワークに接続され得る。図２の例では、コントローラ１００は、上位のネットワークＮ１と、下位のネットワークＮ２に接続されている。
【００４７】
上位のネットワークＮ１には、情報処理装置２００が接続されている。情報処理装置２００は、ネットワークＮ１に接続され得る通信機器である。図２に示されるように、情報処理装置２００は、１または複数のサポート装置２００Ａと、１または複数のサーバ装置２００Ｂと、１または複数の表示器２００Ｃとの少なくとも１つで構成される。
【００４８】
サポート装置２００Ａは、制御プログラム１１０を設計するための開発環境を設計者に提供する。サポート装置２００Ａは、たとえば、ノート型ＰＣ、デスクトップ型ＰＣ、タブレット端末、または、スマートフォンなどである。設計者は、サポート装置２００Ａ上で制御プログラム１１０を設計し、当該制御プログラム１１０をネットワークＮ１を介してコントローラ１００にダウンロードすることができる。
【００４９】
サーバ装置２００Ｂは、データベースシステム、製造実行システム（ＭＥＳ：Manufacturing Execution System）などが想定される。製造実行システムは、制御対象の製造装置や設備からの情報を取得して、生産全体を監視および管理するものであり、オーダ情報、品質情報、出荷情報などを扱うこともできる。これらに限らず、情報系サービス（制御対象から各種情報を取得して、マクロ的またはミクロ的な分析などを行う処理）を提供する装置をネットワークＮ１に接続するようにしてもよい。また、サーバ装置２００Ｂは、コントローラ１００や駆動機器３００の動作状態に関するデータをコントローラ１００から収集し、当該収集したデータをデーターベースに書き込む。
【００５０】
表示器２００Ｃは、ユーザからの操作を受けて、コントローラ１００に対してユーザ操作に応じたコマンドなどを出力する。表示器２００Ｃは、コントローラ１００での演算結果などをグラフィカルに表示する。
【００５１】
下位のネットワークＮ２には、駆動機器３００が接続されている。駆動機器３００は、直接的または間接的にワークＷに対して所定の作業を行うための機器の集合である。図２には、駆動機器３００の一例であるアームロボット３２５が示されている。コントローラ１００Ａおよびアームロボット３２５の設備と、コントローラ１００Ｂおよびアームロボット３２５の設備とは、同じである。
【００５２】
コントローラ１００は、複数の物理的な通信ポートを有する。それぞれの通信ポートに異なるネットワークが接続され得る。図２の例では、コントローラ１００は、２つの通信ポートＰ１，Ｐ２を有する。ネットワークＮ１は、ハブ１５０で分離されており、コントローラ１００Ａ，１００Ｂの各々の通信ポートＰ１に接続されている。通信ポートＰ２には、ネットワークＮ２が接続されている。ネットワークＮ２には、データの到達時間が保証される、定周期通信を行うフィールドネットワークを採用することが好ましい。このような定周期通信を行うフィールドネットワークとしては、ＥｔｈｅｒＣＡＴ、ＣｏｍｐｏＮｅｔなどが知られている。コントローラ１００は、制御プログラム１１０（図１参照）に従ってアームロボット３２５に対する制御指令を定周期ごとに生成し、当該制御指令をアームロボット３２５に送信する。
【００５３】
＜Ｃ．ＩＰアドレスの自動生成機能＞
上述のように、コントローラ１００の各々は、他のコントローラと重複しないように自身のＩＰアドレスを生成する。このようなＩＰアドレスの生成機能には、様々な方法が採用され得る。以下では、ＩＰアドレスの自動生成機能の具体例について説明する。
【００５４】
（Ｃ１．ＩＰアドレスの自動生成機能の具体例１）
まず、図３を参照して、ＩＰアドレスの自動生成機能の具体例１について説明する。本具体例では、ＩＰアドレスの自動生成機能がファンクションブロックで提供される。このようなファンクションブロックが上述の制御プログラム１１０（図１参照）に組み込まれることで、ユーザは、ＩＰアドレスを設定する必要が無くなる。図３は、ＩＰアドレスの自動生成機能を有するファンクションブロックＦＢ０を示す図である。ファンクションブロックＦＢ０は、上述の生成モジュール１５２（図１参照）の一例である。
【００５５】
以下では、ＩＰアドレスの自動生成機能がファンクションブロックで規定されている前提で説明を行うが、ＩＰアドレスの自動生成機能は、他のプログラム言語で規定されてもよい。一例として、ＩＰアドレスの自動生成機能は、ラダーダイアグラム（ＬＤ：Ladder Diagram）で規定されてもよいし、命令リスト（ＩＬ：Instruction List）、構造化テキスト（ＳＴ：Structured Text）、および、シーケンシャルファンクションチャート（ＳＦＣ：Sequential Function Chart）のいずれか、あるいは、これらの組み合わせで規定されてもよい。また、ＪａｖａＳｃｒｉｐｔ（登録商標）やＣ言語のような汎用的なプログラミング言語で規定されていてもよい。
【００５６】
図３に示されるように、ファンクションブロックＦＢ０は、ＩＰアドレスの自動生成機能に関する設定を受け付ける入力部１５５Ａ，１５５Ｂと、ＩＰアドレスの自動生成機能の実行結果を出力するための出力部１５７Ａ〜１５７Ｅとを含む。
【００５７】
「Ｅｘｅｃｕｔｅ」として示される入力部１５５Ａは、ＩＰアドレスの自動生成機能を実行するか否かを指定するための設定を受け付ける。一例として、入力部１５５Ａは、「Ｔｒｕｅ」または「Ｆａｌｓｅ」の入力を受け付ける。入力部１５５Ａに「Ｆａｌｓｅ」が入力されている限り、ＩＰアドレスの自動生成機能は、実行されない。一方で、入力部１５５Ａに「Ｔｒｕｅ」が入力された場合には、ＩＰアドレスの自動生成機能が実行される。
【００５８】
「Ｍｅｔｈｏｄ」として示される入力部１５５Ｂは、ＩＰアドレスの自動生成方法の設定を受け付ける。すなわち、ファンクションブロックＦＢ０は、入力部１５５Ｂに入力される値に応じてＩＰアドレスの自動生成機能の方法を切り替える。一例として、入力部１５５Ｂは、「１」〜「３」の入力を受け付ける。
【００５９】
入力部１５５Ｂに「１」が入力された場合、ファンクションブロックＦＢ０は、メモリカードなどの外部記憶装置に格納されている所定の設定値に基づいて、ＩＰアドレスを生成する。典型的には、外部記憶装置には、設定ファイルが予め書き込まれている。当該設定ファイルには、ＩＰアドレスに関する設定値が規定されている。当該設定値は、ＩＰアドレス自体であってもよいし、コントローラ固有の識別情報（たとえば、ＭＡＣ（Media Access Control）やシリアルナンバーなど）であってもよい。ファンクションブロックＦＢ０は、「Ｅｘｅｃｕｔｅ」として示される入力部１５５Ａに「Ｔｒｕｅ」が入力されたことに基づいて、当該外部記憶装置に格納されている設定ファイルから設定値を読み込む。次に、ファンクションブロックＦＢ０は、当該設定値に基づいて、コントローラ１００のＩＰアドレスを生成する。このようなＩＰアドレスの生成方法が提供されることで、ユーザは、既存の制御プログラム１１０を書き換える必要が無くなる。
【００６０】
入力部１５５Ｂに「２」が入力された場合、ファンクションブロックＦＢ０は、自コントローラを一意に識別可能な識別情報に基づいて、当該自コントローラのＩＰアドレスを生成する。当該識別情報は、たとえば、コントローラ１００のＭＡＣ（Media  Access  Control）アドレスである。このような識別情報に基づいてコントローラが生成されることで、コントローラのＩＰアドレスが一意に決定され得る。
【００６１】
入力部１５５Ｂに「３」が入力された場合、ファンクションブロックＦＢ０は、自コントローラを一意に識別可能な識別情報に基づいて、当該自コントローラのＩＰアドレスを生成する。当該識別情報は、たとえば、コントローラ１００のシリアルナンバーである。このような識別情報に基づいてコントローラが生成されることで、コントローラのＩＰアドレスが一意に決定され得る。
【００６２】
ＩＰアドレスが正常に生成された場合には、正常終了を示す信号が、「Ｄｏｎｅ」として示される出力部１５７Ａから出力される。ＩＰアドレスの生成中には、生成処理中を示す信号が、「Ｂｕｓｙ」として示される出力部１５７Ｂから出力される。ＩＰアドレスが正常に生成されなかった場合には、異常終了を示す信号が、「Ｅｒｒｏｒ」として示される出力部１５７Ｃから出力される。この場合には、さらに、エラーの内容を識別するためのエラーＩＤが、「ＥｒｒｏｒＩＤ」として示される出力部１５７Ｄから出力される。ＩＰアドレスが正常に生成された場合には、「ＩＰＡｄｄｒｅｓｓ」として示される出力部１５７Ｃから、生成されたＩＰアドレスが出力される。
【００６３】
なお、ファンクションブロックＦＢ０には、入力部１５５Ａ，１５５Ｂおよび出力部１５７Ａ〜１５７Ｅの他にも様々な入力部および出力部が設けられてもよい。
【００６４】
（Ｃ２．ＩＰアドレスの自動生成機能の具体例２）
次に、図４を参照して、ＩＰアドレスの自動生成機能の具体例２について説明する。本具体例では、ＩＰアドレスの自動生成機能がファンクションブロックとしては提供されずコントローラ１００の基本機能として提供される。当該基本機能は、上述の生成モジュール１５２（図１参照）の一例である。
【００６５】
図４は、各コントローラが自身のＩＰアドレスを生成する過程を示す図である。図４には、３つのコントローラ１００Ａ〜１００Ｃが示されている。コントローラ１００Ａ〜１００Ｃは、ハブ１５０を介して、同一のネットワークＮＷ１に接続されている。初期状態として、コントローラ１００Ａ〜１００Ｃには、ＩＰアドレスが設定されていない状態であるとする。
【００６６】
まず、コントローラ１００Ａの生成モジュール１５２が、自コントローラのＩＰアドレスを生成したとする。コントローラ１００Ａ〜１００ＣのＩＰアドレスが未設定である現段階では、コントローラ１００Ａは、たとえば、自コントローラを一意に識別可能な識別情報に基づいて、当該自コントローラのＩＰアドレスを生成する。当該識別情報は、たとえば、ＭＡＣアドレスおよびシリアルナンバーの少なくとも一方を含む。このような識別情報に基づいてコントローラが生成されることで、コントローラのＩＰアドレスが一意に生成され得る。図４の例では、コントローラ１００ＡのＩＰアドレスとして「１９２．１６８．２５０．１」が生成されている。
【００６７】
ステップＳ１において、コントローラ１００Ａは、生成したＩＰアドレスを他のコントローラ１００Ｂ，１００Ｃにブロードキャストで送信する。生成されたＩＰアドレスは、たとえば、ＡＲＰ（Address Resolution Protocol）パケットで送信される。ＡＲＰは、ＩＰアドレスからＥｔｈｅｒｎｅｔのＭＡＣアドレスの情報を得るための仕組みである。ＡＲＰパケットに対する応答があることは、当該ＡＲＰパケットに含まれるＩＰアドレスが既に利用されていることを示す。
【００６８】
この仕組みを利用して、コントローラ１００Ａの生成モジュール１５２は、生成したＩＰアドレスが他のコントローラで既に使用されているか否かを他のコントローラに問い合わせる。すなわち、コントローラ１００Ａの生成モジュール１５２は、生成したＩＰアドレスをＡＲＰパケットに書き込み、当該ＡＲＰパケットをブロードキャストで他のコントローラ１００Ｂ，１００Ｃに送信する。
【００６９】
ステップＳ２において、他のコントローラ１００Ｂ，１００Ｃは、ＡＲＰパケットによる問い合わせをコントローラ１００Ａから受信したとする。このとき、コントローラ１００Ｂ，１００Ｃは、ＡＲＰパケットに含まれるＩＰアドレスを記憶しておく。コントローラ１００Ｂ，１００Ｃは、ＡＲＰパケットに含まれるＩＰアドレスが自身のＩＰアドレスに一致するか否かを判断する。コントローラ１００Ｂ，１００Ｃは、ＡＲＰパケットに含まれるＩＰアドレスが自身のＩＰアドレスに一致すると判断した場合、自身のＭＡＣアドレスを送信元のコントローラ１００Ａに送信する。そうでない場合には、コントローラ１００Ｂ，１００Ｃは、送信元のコントローラ１００Ａに対して何も送信しない。
【００７０】
ステップＳ３において、ＡＲＰパケットによる問い合わせに応答する他のコントローラが存在しない場合、コントローラ１００Ｂの生成モジュール１５２は、生成したＩＰアドレスで自コントローラのネットワーク設定１０８（図１参照）を書き換える。これにより、コントローラ１００Ａは、一意のＩＰアドレスを確実に生成することができる。
【００７１】
一方で、コントローラ１００Ａの生成モジュール１５２は、ＡＲＰパケットによる問い合わせに応答する他のコントローラが存在する場合、先に生成したＩＰアドレスとは異なるＩＰアドレスを再生成する。これにより、コントローラ１００Ａは、他のコントローラとＩＰアドレスが重複することを回避することができる。ＡＲＰパケットによる問い合わせに対する応答を得なくなるまで、コントローラ１００Ａは、ＩＰアドレスの再生成とＡＲＰパケットによる問い合わせとを繰り返す。
【００７２】
次に、コントローラ１００Ｂの生成モジュール１５２は、自コントローラのＩＰアドレスを生成する。ＡＲＰパケットによる問い合わせを他のコントローラ１００Ａから受信している現段階では、コントローラ１００Ｂの生成モジュール１５２は、当該問い合わせに含まれるＩＰアドレスとは重複しないように自コントローラのＩＰアドレスを生成する。これにより、コントローラ１００Ｂは、ランダムにＩＰアドレスを生成するよりも確実に一意のＩＰアドレスを生成することができる。
【００７３】
一例として、コントローラ１００Ｂは、当該ＩＰアドレスに所定値（たとえば、１）を加算し、当該加算結果を自コントローラのＩＰアドレスとして採用する。図４の例では、コントローラ１００ＢのＩＰアドレスとして「１９２．１６８．２５０．２」が生成されている。ステップＳ４において、コントローラ１００Ｂは、生成したＩＰアドレスをＡＲＰパケットに書き込み、当該ＡＲＰパケットをブロードキャストで他のコントローラ１００Ａ，１００Ｃに送信する。
【００７４】
ステップＳ５において、他のコントローラ１００Ａ，１００Ｃは、ＡＲＰパケットによる問い合わせをコントローラ１００Ｂから受信したとする。このとき、コントローラ１００Ａ，１００Ｃは、ＡＲＰパケットに含まれるＩＰアドレスを記憶しておく。コントローラ１００Ａ，１００Ｃは、ＡＲＰパケットに含まれるＩＰアドレスが自身のＩＰアドレスに一致するか否かを判断する。コントローラ１００Ａ，１００Ｃは、ＡＲＰパケットに含まれるＩＰアドレスが自身のＩＰアドレスに一致すると判断した場合、自身のＭＡＣアドレスを送信元のコントローラ１００Ｂに送信する。そうでない場合には、コントローラ１００Ａ，１００Ｃは、送信元のコントローラ１００Ｂに対して何も送信しない。
【００７５】
ステップＳ６において、ＡＲＰパケットによる問い合わせに応答する他のコントローラが存在しない場合、コントローラ１００Ｂの生成モジュール１５２は、生成したＩＰアドレスで自コントローラのネットワーク設定１０８（図１参照）を書き換える。
【００７６】
一方で、コントローラ１００Ｂの生成モジュール１５２は、ＡＲＰパケットによる問い合わせに応答する他のコントローラが存在する場合、先に生成したＩＰアドレスとは異なるＩＰアドレスを再生成する。これにより、コントローラ１００Ｂは、他のコントローラとＩＰアドレスが重複することを回避することができる。ＡＲＰパケットによる問い合わせに対する応答を得なくなるまで、コントローラ１００Ｂは、ＩＰアドレスの再生成とＡＲＰパケットによる問い合わせとを繰り返す。
【００７７】
次に、コントローラ１００Ｃの生成モジュール１５２は、自コントローラのＩＰアドレスを生成する。ＡＲＰパケットによる問い合わせを他のコントローラ１００Ａ，１００Ｂから受信している現段階では、コントローラ１００Ｃの生成モジュール１５２は、当該問い合わせに含まれるＩＰアドレスとは重複しないように自コントローラのＩＰアドレスを生成する。
【００７８】
一例として、コントローラ１００Ｃは、当該ＩＰアドレスに所定値（たとえば、１）を加算し、当該加算結果を自コントローラのＩＰアドレスとして採用する。図４の例では、コントローラ１００ＣのＩＰアドレスとして「１９２．１６８．２５０．３」が生成されている。ステップＳ７において、コントローラ１００Ｃの生成モジュール１５２は、生成したＩＰアドレスをＡＲＰパケットに書き込み、当該ＡＲＰパケットをブロードキャストで他のコントローラ１００Ａ，１００Ｂに送信する。
【００７９】
ステップＳ８において、他のコントローラ１００Ａ，１００Ｂは、ＡＲＰパケットによる問い合わせをコントローラ１００Ｃから受信したとする。コントローラ１００Ａ，１００Ｂは、ＡＲＰパケットに含まれるＩＰアドレスが自身のＩＰアドレスに一致するか否かを判断する。コントローラ１００Ａ，１００Ｂは、ＡＲＰパケットに含まれるＩＰアドレスが自身のＩＰアドレスに一致すると判断した場合、自身のＭＡＣアドレスを送信元のコントローラ１００Ｃに送信する。そうでない場合には、コントローラ１００Ａ，１００Ｂは、送信元のコントローラ１００Ｃに対して何も送信しない。
【００８０】
ステップＳ９において、ＡＲＰパケットによる問い合わせに応答する他のコントローラが存在しない場合、コントローラ１００Ｃの生成モジュール１５２は、生成したＩＰアドレスで自コントローラのネットワーク設定１０８（図１参照）を書き換える。
【００８１】
一方で、コントローラ１００Ｃの生成モジュール１５２は、ＡＲＰパケットによる問い合わせに応答する他のコントローラが存在する場合、先に生成したＩＰアドレスとは異なるＩＰアドレスを再生成する。これにより、コントローラ１００Ａは、他のコントローラとＩＰアドレスが重複することを回避することができる。ＡＲＰパケットによる問い合わせに対する応答を得なくなるまで、コントローラ１００Ｃは、ＩＰアドレスの再生成とＡＲＰパケットによる問い合わせとを繰り返す。
【００８２】
以上のようにして、本具体例では、コントローラ１００の各々は、生成したＩＰアドレスが他のコントローラで使用されているか否かをＡＲＰパケットによる問い合わせ結果に基づいて判断する。コントローラ１００は、ＡＲＰパケットによる問い合わせを他のコントローラから一度でも受信した段階では、他のコントローラから受信したＡＲＰパケットに含まれるＩＰアドレスと重複しないようにＩＰアドレスを生成する。これにより、コントローラ間のＩＰアドレスの重複が防止される。
【００８３】
好ましくは、ＡＲＰパケットが送信される間隔は、コントローラごとにずらされる。各コントローラは、たとえば、乱数を発生させ、当該乱数に基づいて、ＡＲＰパケットを送信するタイミングを決定する。このように、ＡＲＰパケットを送信するタイミングがコントローラごとにずらされることで、ＡＲＰパケットが同時に送信されることが防止される。
【００８４】
＜Ｄ．プログラム例＞
図５を参照して、図３で説明したファンクションブロックＦＢ０の使用例について説明する。図５は、図３に示されるファンクションブロックＦＢ０を組み込んだ制御プログラムの例を示す図である。
【００８５】
図５の例では、制御プログラム１１０は、ラダープログラムで規定されている。当該制御プログラム１１０は、コントローラ１００のＩＰアドレスを生成する処理、および、生成されたＩＰアドレスをコントローラ１００に設定する処理などを含む。なお、図５に示される制御プログラム１１０は、コントローラ１００における全処理を示しているわけではなく、一部の処理を示している。
【００８６】
図５の例では、制御プログラム１１０は、入力要素ＩＮ０，ＩＮ１と、ファンクションブロックＦＢ０，ＦＢ１と、出力要素ＯＵＴ０，ＯＵＴ１とを含む。
【００８７】
入力要素ＩＮ０，ＩＮ１の値は、割付けられている変数に応じて変化する。より具体的には、入力要素ＩＮ０には、変数「ＡｕｔｏＳｅｔｔｉｎｇ」が割り当てられている。変数「ＡｕｔｏＳｅｔｔｉｎｇ」は、ＢＯＯＬ型であり、初期値は、「Ｆａｌｓｅ」（＝ＯＦＦ）である。図５には示されていないが、変数「ＡｕｔｏＳｅｔｔｉｎｇ」の値は、たとえば、ＩＰアドレスの自動設定モードがＯＮに設定されたことに基づいて、「Ｔｒｕｅ」（＝ＯＮ）に変化する。ＩＰアドレスの設定モードの説明については後述する（図６参照）。ＩＰアドレスの自動設定モードがＯＦＦに設定されている場合、変数「ＡｕｔｏＳｅｔｔｉｎｇ」の値は、「Ｆａｌｓｅ」（＝ＯＦＦ）となる。
【００８８】
入力要素ＩＮ１には、変数「ＣｈａｎｇｅＴｒｉｇｇｅｒ」が割り当てられている。変数「ＣｈａｎｇｅＴｒｉｇｇｅｒ」は、ＢＯＯＬ型であり、初期値は、「Ｆａｌｓｅ」（＝ＯＦＦ）である。図５には示されていないが、変数「ＣｈａｎｇｅＴｒｉｇｇｅｒ」の値は、たとえば、コントローラ１００が起動されたことに基づいて、「Ｔｒｕｅ」（＝ＯＮ）に変化する。その他の場合、変数「ＣｈａｎｇｅＴｒｉｇｇｅｒ」の値は、「Ｆａｌｓｅ」（＝ＯＦＦ）となる。
【００８９】
入力要素ＩＮ２には、変数「Ｄｏｎｅ０」が割り当てられている。変数「Ｄｏｎｅ０」は、ＢＯＯＬ型であり、初期値は、「Ｆａｌｓｅ」（＝ＯＦＦ）である。また、変数「Ｄｏｎｅ０」は、ファンクションブロックＦＢ０の出力「Ｄｏｎｅ」に関連付けられている。上述したように、ＩＰアドレスの生成処理が正常に変更された場合には、ファンクションブロックＦＢ０の出力「Ｄｏｎｅ」からは、正常終了を示す信号「Ｔｒｕｅ」（＝ＯＮ）が出力される。ファンクションブロックＦＢ０の出力「Ｄｏｎｅ」が「Ｔｒｕｅ」（＝ＯＮ）となると、入力要素ＩＮ２の値は、「Ｔｒｕｅ」（＝ＯＮ）となる。一方で、ファンクションブロックＦＢ０の出力「Ｄｏｎｅ」が「Ｆａｌｓｅ」（＝ＯＦＦ）となると、入力要素ＩＮ２の値は、「Ｆａｌｓｅ」（＝ＯＦＦ）となる。
【００９０】
ファンクションブロックＦＢ０は、ＩＰアドレスを生成するためのプログラムである。変数「ＡｕｔｏＳｅｔｔｉｎｇ」が「Ｔｒｕｅ」（＝ＯＮ）になり、かつ、変数「ＣｈａｎｇｅＴｒｉｇｇｅｒ」が「Ｔｒｕｅ」（＝ＯＮ）になったことに基づいて、有効を示す信号「Ｔｒｕｅ」（＝ＯＮ）がファンクションブロックＦＢ０の入力部「Ｅｘｅｃｕｔｅ」に入力される。このことに基づいて、ファンクションブロックＦＢ０は、入力部「Ｍｅｔｈｏｄ」に入力される変数「Ｍｅｔｈｏｄ０」に従ってＩＰアドレスの生成処理を実行する。ＩＰアドレスの生成処理の詳細については図３で説明した通りであるので、その説明については繰り返さない。
【００９１】
ファンクションブロックＦＢ１は、コントローラ１００にＩＰアドレスを設定するためのプログラムである。変数「Ｄｏｎｅ」が「Ｔｒｕｅ」（＝ＯＮ）になったことに基づいて、有効を示す信号「Ｔｒｕｅ」（＝ＯＮ）がファンクションブロックＦＢ１の入力部「Ｅｘｅｃｕｔｅ」に入力される。このことに基づいて、ファンクションブロックＦＢ１は、入力部「ＩＰＡｄｄｒｅｓｓ」に入力される変数「ＩＰＡｄｄｒｅｓｓ０」の値に従ってＩＰアドレスの設定処理を実行する。変数「ＩＰＡｄｄｒｅｓｓ０」は、ファンクションブロックＦＢ０の出力「ＩＰＡｄｄｒｅｓｓ」に関連付けられているので、ファンクションブロックＦＢ０によって生成されたＩＰアドレスがファンクションブロックＦＢ１によって設定される。より具体的には、ファンクションブロックＦＢ１は、コントローラ１００のネットワーク設定１０８（図１参照）に規定されるＩＰアドレスや、システム変数で管理されるＩＰアドレスを、変数「ＩＰＡｄｄｒｅｓｓ０」の値で書き換える。
【００９２】
ＩＰアドレスが正常に設定された場合には、正常終了を示す信号が、ファンクションブロックＦＢ１の出力部「Ｄｏｎｅ」から出力される。ＩＰアドレスの設定中には、設定処理中を示す信号が、ファンクションブロックＦＢ１の出力部「Ｂｕｓｙ」から出力される。ＩＰアドレスが正常に設定されなかった場合には、異常終了を示す信号が、ファンクションブロックＦＢ１の出力部「Ｅｒｒｏｒ」から出力される。この場合には、さらに、エラーの内容を識別するためのエラーＩＤが、ファンクションブロックＦＢ１の出力部「ＥｒｒｏｒＩＤ」から出力される。
【００９３】
出力要素ＯＵＴ１には、変数「Ｄｏｎｅ１」が割付けられており、ファンクションブロックＦＢ１の出力部「Ｄｏｎｅ」に関連付けられている。その結果、出力要素ＯＵＴ１の値は、ファンクションブロックＦＢ１の出力「Ｄｏｎｅ」の値に応じて変化する。
【００９４】
＜Ｅ．ＩＰアドレスの設定モード＞
図６を参照して、ＩＰアドレスの設定モードについて説明する。図６は、ＩＰアドレスの設定モードを設定するための画面の一例を示す図である。
【００９５】
ＩＰアドレスの設定モードは、たとえば、上述のサポート装置２００Ａ（図２参照）に表示される設定画面３０上で設定され得る。設定画面３０は、設定モードの選択を受け付けるラジオボタンＲ１〜Ｒ４と、ＯＫボタン３１と、キャンセルボタン３２とを含む。ＩＰアドレスの設定モードは、たとえば、第１設定モード〜第４設定モードを含む。
【００９６】
ラジオボタンＲ１が選択された場合、ＩＰアドレスの設定モードは、第１設定モードに設定される。第１設定モードでは、ユーザは、コントローラ１００に設定するＩＰアドレスと、サブネットマスクと、デフォルトゲートウェイのＩＰアドレスとを指定することができる。
【００９７】
ラジオボタンＲ２が選択された場合、ＩＰアドレスの設定モードは、第２設定モードに設定される。第２設定モードにおいては、コントローラ１００は、ＢＯＯＴＰ（BOOTstrap Protocol）プロトコルに従ってサーバからＩＰアドレスを取得するように設定される。第２設定モードにおいては、コントローラ１００は、起動される度にＩＰアドレスを動的に設定する。
【００９８】
ラジオボタンＲ３が選択された場合、ＩＰアドレスの設定モードは、第３設定モードに設定される。第３設定モードにおいては、コントローラ１００は、ＢＯＯＴＰプロトコルに従ってサーバからＩＰアドレスを取得するように設定される。第２設定モードにおいては、コントローラ１００は、ＩＰアドレスを静的に設定する。
【００９９】
ラジオボタンＲ４が選択された場合、ＩＰアドレスの設定モードは、第４設定モードに設定される。第４設定モードにおいては、コントローラ１００は、ＩＰアドレスを自動生成し、当該ＩＰアドレスを自身に適用する。ＩＰアドレスの自動生成機能については図３や図４で説明した通りであるので、その説明については繰り返さない。
【０１００】
ＯＫボタン３１が押下されると、サポート装置２００Ａは、選択された設定モードを保存する。サポート装置２００Ａは、設定モードのダウンロード命令を受け付けたことに基づいて、選択された設定モードを、指定されたコントローラ１００に送信する。コントローラ１００は、選択された設定モードに従ってＩＰアドレスを設定する。
【０１０１】
キャンセルボタン３２が押下されると、サポート装置２００Ａは、選択された設定モードを保存せずに、設定画面３０を閉じる。
【０１０２】
＜Ｆ．ＩＰアドレスの設定に依存する制御命令＞
上述のように、制御プログラム１１０（図１参照）は、自コントローラのＩＰアドレスに依存する制御命令を含む。以下では、図７を参照して、自コントローラのＩＰアドレスに依存する制御命令の一例について説明する。図７は、自コントローラのＩＰアドレスに依存するファンクションブロックＦＢ２を示す図である。
【０１０３】
以下では、自コントローラのＩＰアドレスに依存する制御命令の例として、ファンクションブロックＦＢ２を例に挙げて説明を行うが、当該制御命令は、ファンクションブロックＦＢ２に限定されない。たとえば、当該制御命令は、ラダーダイアグラムで規定されるもの、命令リスト、構造化テキスト、および、シーケンシャルファンクションチャートのいずれか、あるいは、これらの組み合わせで規定されるものも含み得る。また、当該制御命令は、ＪａｖａＳｃｒｉｐｔやＣ言語のような汎用的なプログラミング言語で規定されるものも含み得る。
【０１０４】
ファンクションブロックＦＢ２は、指定されたデータを指定された装置に送信するためのプログラムである。ファンクションブロックＦＢ２は、データ送信機能に関する設定を受け付ける入力部１５８Ａ〜１５８Ｄと、データ送信機能の実行結果を出力するための出力部１５９Ａ〜１５９Ｄとを含む。
【０１０５】
「Ｅｘｅｃｕｔｅ」として示される入力部１５８Ａは、データ送信機能を実行するか否かを指定するための設定を受け付ける。一例として、入力部１５８Ａは、「Ｔｒｕｅ」または「Ｆａｌｓｅ」の入力を受け付ける。入力部１５８Ａに「Ｆａｌｓｅ」が入力されている限り、データ送信機能は、実行されない。一方で、入力部１５８Ａに「Ｔｒｕｅ」が入力された場合には、データ送信機能が実行される。
【０１０６】
「Ｓｏｋｅｔ」として示される入力部１５８Ｂは、送信先や送信元に関するネットワーク情報を受け付ける。一例として、当該ネットワーク情報は、送信先の情報処理装置２００のＩＰアドレスや、送信元のコントローラ１００のＩＰアドレスなどを含む。このように、ファンクションブロックＦＢ２は、コントローラ１００のＩＰアドレスに依存する。ＩＰアドレスの代わりとなる上述の識別子（図１参照）が入力部１５８Ｂに入力されるネットワーク情報に書き込まれた上で、当該ネットワーク情報が入力部１５８Ｂに入力されるように制御プログラム１１０が設計される。
【０１０７】
「ＳｅｎｄＤａｔ」として示される入力部１５８Ｃは、送信対象のデータを入力として受け付ける。「Ｓｉｚｅ」として示される入力部１５８Ｄは、送信対象のデータのサイズを入力として受け付ける。
【０１０８】
送信対象のデータが正常に送信された場合には、正常終了を示す信号が、「Ｄｏｎｅ」として示される出力部１５９Ａから出力される。送信対象のデータの送信中には、送信処理中を示す信号が、「Ｂｕｓｙ」として示される出力部１５９Ｂから出力される。送信対象のデータが正常に生成されなかった場合には、異常終了を示す信号が、「Ｅｒｒｏｒ」として示される出力部１５９Ｃから出力される。この場合には、さらに、エラーの内容を識別するためのエラーＩＤが、「ＥｒｒｏｒＩＤ」として示される出力部１５９Ｄから出力される。
【０１０９】
＜Ｇ．ＩＰアドレスの収集機能＞
情報処理装置２００（図１参照）は、上述の自動生成機能により生成されたＩＰアドレスを下位の各コントローラから収集する。この収集機能により、ユーザは、各コントローラに設定されたＩＰアドレスを容易に把握することができる。
【０１１０】
ＩＰアドレスの収集方法には、様々な収取方式が採用され得る。一例として、ＩＰアドレスの収集方法には、コントローラ１００からの通知方式、および情報処理装置２００によるポーリング方式のいずれかが採用される。以下では、図８〜図１０を参照して、当該通知方式および当該ポーリング方式について順に説明する。
【０１１１】
（Ｇ１．通知方式によるＩＰアドレスの収集機能）
まず、図８を参照して、通知方式によるＩＰアドレスの収集機能について説明する。図８は、通知方式によるＩＰアドレスの収集機能の流れを示すシーケンス図である。
【０１１２】
本方式におけるデータ収集機能においては、各コントローラは、自動生成したＩＰアドレスを設定したタイミングで上位の情報処理装置２００に自ら送信する。
【０１１３】
より具体的には、ステップＳ１０において、コントローラ１００が起動されたとする。または、ステップＳ１０において、コントローラ１００は、上述のサポート装置２００Ａなどから各種設定をダウンロードしたとする。当該各種設定は、サポート装置２００Ａで設計された制御プログラム１１０や、上述の設定画面３０（図６参照）で設定された設定モードなどを含む。
【０１１４】
ステップＳ１２において、コントローラ１００は、ＩＰアドレスの自動生成処理を実行する。ＩＰアドレスの自動生成処理については図３および図４で説明した通りであるので、その説明については繰り返さない。コントローラ１００は、生成したＩＰアドレスを自ＩＰアドレスとして設定する。
【０１１５】
ステップＳ２０において、コントローラ１００は、ステップＳ１２で生成したＩＰアドレスを情報処理装置２００に送信する。他のコントローラも同様に、自動生成されたＩＰアドレスを設定したタイミングで当該ＩＰアドレスを情報処理装置２００に送信する。
【０１１６】
ステップＳ２２において、情報処理装置２００は、コントローラ１００からＩＰアドレスを受信したことに基づいて、ＩＰアドレスの管理テーブルを更新する。図９は、ＩＰアドレスの管理テーブルの一例を示す図である。図９には、ＩＰアドレスの管理テーブルの一例として、管理テーブル３５が示されている。
【０１１７】
管理テーブル３５は、たとえば、情報処理装置２００の後述の記憶装置２１０（図１４参照）で管理される。管理テーブル３５において、コントローラの識別情報と、ＩＰアドレスと、シリアルナンバーと、型式とが対応付けられている。コントローラの識別情報は、コントローラ名やＩＤ（Identification）などコントローラを一意に識別可能によって示される。
【０１１８】
ＩＰアドレスの送信元のコントローラに関する情報が管理テーブル３５に規定されていない場合には、情報処理装置２００は、当該送信元のコントローラの識別情報と、当該送信元のコントローラのＩＰアドレスと、当該送信元のコントローラのシリアルナンバーと、当該送信元のコントローラの型式とを管理テーブル３５に追加する。一方で、ＩＰアドレスの送信元のコントローラに関する情報が管理テーブル３５に既に規定されている場合には、当該送信元のコントローラの識別情報に対応付けられているＩＰアドレス、シリアルナンバー、型式を、受信したＩＰアドレス、シリアルナンバー、型式で更新する。
【０１１９】
ユーザは、管理テーブル３５を必要に応じて情報処理装置２００のディスプレイに表示することができる。これにより、ユーザは、各コントローラに設定されたＩＰアドレスを容易に把握することができる。また、シリアルナンバーや型式などが並べて表示されることで、ユーザは、コントローラを区別しやすくなり、どのコントローラにどのようなＩＰアドレスが設定されたのかを容易に把握することができる。
【０１２０】
（Ｇ２．ポーリング方式によるＩＰアドレスの収集機能）
次に、図１０を参照して、ポーリング方式によるＩＰアドレスの収集機能について説明する。図１０は、ポーリング方式によるＩＰアドレスの収集機能の流れを示すシーケンス図である。
【０１２１】
本方式におけるデータ収集機能においては、情報処理装置２００が各コントローラから自動生成されたＩＰアドレスを定期的に収集する。
【０１２２】
より具体的には、ステップＳ５０において、情報処理装置２００は、コントローラ１００の各々にＩＰアドレスの送信命令を送信する。当該送信命令は、情報処理装置２００からコントローラ１００に定期的に送信される。
【０１２３】
ステップＳ５０の時点では、コントローラ１００のＩＰアドレスが未設定であるとする。ＩＰアドレスが未設定の状態である場合、コントローラ１００は、情報処理装置２００から受信した送信命令に対して何も応答しない。
【０１２４】
ステップＳ５４において、コントローラ１００が起動されたとする。または、ステップＳ５４において、コントローラ１００は、上述のサポート装置２００Ａなどから各種設定をダウンロードしたとする。当該各種設定は、サポート装置２００Ａで設計された制御プログラム１１０や、上述の設定画面３０（図６参照）で設定された設定モードなどを含む。
【０１２５】
ステップＳ６０において、情報処理装置２００は、コントローラ１００の各々にＩＰアドレスの送信命令を送信する。ステップＳ５０と同様に、この時点では、情報処理装置２００のＩＰアドレスが未設定であるため、コントローラ１００は、ステップＳ６０で受信した送信命令に対して何も応答しない。
【０１２６】
ステップＳ６４において、コントローラ１００は、ＩＰアドレスの自動生成処理を実行する。ＩＰアドレスの自動生成処理については図３および図４で説明した通りであるので、その説明については繰り返さない。コントローラ１００は、生成したＩＰアドレスを自ＩＰアドレスとして設定する。
【０１２７】
ステップＳ７０において、情報処理装置２００は、コントローラ１００の各々にＩＰアドレスの送信命令を送信する。この時点では、情報処理装置２００のＩＰアドレスが設定されているので、ステップＳ７２において、コントローラ１００は、自身のＩＰアドレスを情報処理装置２００に送信する。
【０１２８】
ステップＳ８０において、情報処理装置２００は、コントローラ１００からＩＰアドレスを受信したことに基づいて、ＩＰアドレスの管理テーブル３５（図９参照）を更新する。管理テーブル３５の更新方法については図９で説明した通りであるので、その説明については繰り返さない。
【０１２９】
＜Ｈ．ＩＰアドレスの決定状態＞
好ましくは、制御システム１は、コントローラ１００のＩＰアドレスが仮決定されている状態か本決定されている状態かを受け付けるように構成される。このような決定状態が設定され得ることで、ユーザは、各コントローラのＩＰアドレスが仮に設定されている状態か真に設定されている状態かを容易に把握することができる。
【０１３０】
一例として、ユーザは、制御システム１のネットワーク環境を構築するときにはコントローラ１００のＩＰアドレスを仮決定状態とする。このような仮決定状態は、とりあえず制御システム１を通信可能な状態にするときなどに採用され得る。ユーザは、制御システム１のネットワーク環境を構築後にはコントローラ１００のＩＰアドレスを真に設定し、当該ＩＰアドレスを本決定状態とする。
【０１３１】
以下では、図１１を参照して、ＩＰアドレスの決定状態を設定する方法について説明する。図１１は、図３に示されるファンクションブロックＦＢ０の変形例を示す図である。図１１には、ファンクションブロックＦＢ０の変形例として、ファンクションブロックＦＢ３が示されている。
【０１３２】
図１１に示されるファンクションブロックＦＢ３は、入力部１５５Ｃをさらに有する点で、図３に示されるファンクションブロックＦＢ０と異なる。その他の点については上述の通りであるので、それらの説明については繰り返さない。
【０１３３】
「Ｓｅｔｔｉｎｇ」として示される入力部１５５Ｃは、ＩＰアドレスの決定状態の設定を受け付ける。一例として、入力部１５５Ｃは、「０」または「１」の入力を受け付ける。
【０１３４】
入力部１５５Ｃに「０」が入力された場合、ファンクションブロックＦＢ３により生成されるＩＰアドレスは、仮決定状態として設定される。入力部１５５Ｃに「１」が入力された場合、ファンクションブロックＦＢ３により生成されるＩＰアドレスは、本決定状態として設定される。
【０１３５】
ＩＰアドレスの決定状態は、たとえば、ＩＰアドレスの自動生成方法に応じて切り替えられる。一例として、コントローラ１００の識別情報（たとえば、ＭＡＣアドレスなど）からＩＰアドレスを生成する方法が入力部１５５Ｂに対して設定された場合には、入力部１５５Ｃには仮決定状態を示す「０」が入力される。また、メモリカードなどの外部記憶装置に格納されている設定値に基づいてＩＰアドレスを生成する方法が入力部１５５Ｂに対して設定された場合には、入力部１５５Ｃには本決定状態を示す「１」が入力される。
【０１３６】
図１２は、図９に示される管理テーブル３５の変形例を示す図である。図１２には、変形例として、管理テーブル３５Ａが示されている。
【０１３７】
管理テーブル３５Ａは、たとえば、情報処理装置２００の後述の記憶装置２１０（図１４参照）で管理される。管理テーブル３５Ａにおいて、コントローラの識別情報と、ＩＰアドレスと、ＩＰアドレスの決定状態とが対応付けられている。コントローラの識別情報は、コントローラ名やＩＤなどコントローラを一意に識別可能によって示される。
【０１３８】
ユーザは、管理テーブル３５Ａを必要に応じて情報処理装置２００のディスプレイに表示することができる。これにより、ユーザは、各コントローラに設定されたＩＰアドレスの決定状態を容易に把握することができる。
【０１３９】
＜Ｉ．コントローラ１００のハードウェア構成＞
図１３は、コントローラ１００のハードウェア構成例を示すブロック図である。図１３を参照して、コントローラ１００は、プロセッサ１０２と、チップセット１０４と、記憶装置１０５と、主メモリ１０６と、ＵＳＢ（Universal Serial Bus）インターフェイス１１２と、メモリカードインターフェイス１１４と、ネットワークインターフェイス１１８と、内部バスコントローラ１２０と、フィールドネットワークコントローラ１３０とを含む。
【０１４０】
プロセッサ１０２は、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＧＰＵ（Graphics Processing Unit）などで構成される。プロセッサ１０２としては、複数のコアを有する構成を採用してもよいし、プロセッサ１０２を複数配置してもよい。このように、コントローラ１００は、１または複数のプロセッサ１０２、および／または、１または複数のコアを有するプロセッサ１０２を有している。チップセット１０４は、プロセッサ１０２および周辺エレメントを制御することで、コントローラ１００全体としての処理を実現する。主メモリ１０６は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などの揮発性記憶装置などで構成される。記憶装置１０５は、たとえば、フラッシュメモリなどの不揮発性記憶装置などで構成される。
【０１４１】
プロセッサ１０２は、記憶装置１０５に格納された各種プログラムを読出して、主メモリ１０６に展開して実行することで、制御対象に応じた制御を実現する。記憶装置１０５には、上述のネットワーク設定１０８やコントローラ１００の制御プログラム１１０が格納されている。制御プログラム１１０は、基本的な処理を実現するためのシステムプログラム１１１Ｂに加えて、制御対象の製造装置や設備に応じて作成されたユーザプログラム１１０Ａを含む。
【０１４２】
ＵＳＢインターフェイス１１２は、ＵＳＢ接続を介した外部装置（たとえば、ユーザプログラムの開発などを行うサポート装置）との間のデータ通信を仲介する。
【０１４３】
メモリカードインターフェイス１１４は、メモリカード１１６が着脱可能に構成されており、メモリカード１１６に対してデータを書き込み、メモリカード１１６から各種データ（ユーザプログラムやトレースデータなど）を読出すことが可能になっている。
【０１４４】
ネットワークインターフェイス１１８は、ネットワークＮ１を介したデータ通信の仲介が可能になっている。
【０１４５】
内部バスコントローラ１２０は、コントローラ１００に装着される機能ユニットとの間のデータ通信を仲介する。フィールドネットワークコントローラ１３０は、ネットワークＮ２を介した他のユニットとの間のデータ通信を仲介する。
【０１４６】
図１３には、プロセッサ１０２がプログラムを実行することで必要な処理が実現される構成例を示したが、これらの提供される処理の一部または全部を、専用のハードウェア回路（たとえば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）またはＦＰＧＡ（Field  Programmable  Gate  Array）など）を用いて実装してもよい。
【０１４７】
＜Ｊ．情報処理装置２００のハードウェア構成＞
図１４を参照して、情報処理装置２００のハードウェア構成について説明する。図１４は、情報処理装置２００のハードウェア構成を示す模式図である。
【０１４８】
情報処理装置２００は、一例として、汎用的なコンピュータアーキテクチャに準じて構成されるコンピュータからなる。情報処理装置２００は、制御装置２０１と、主メモリ２０２と、通信インターフェイス２０３と、操作インターフェイス２０５と、表示インターフェイス２０６と、光学ドライブ２０７と、記憶装置２１０とを含む。これらのコンポーネントは、内部バス２１９を介して互いに通信可能に接続されている。
【０１４９】
制御装置２０１は、たとえば、少なくとも１つの集積回路によって構成される。集積回路は、たとえば、少なくとも１つのＣＰＵ、少なくとも１つのＡＳＩＣ、少なくとも１つのＦＰＧＡ、またはそれらの組み合わせなどによって構成される。制御装置２０１は、プログラムを主メモリ２０２に展開して実行することで、ＩＰアドレスの上述の収集機能など各種処理を実現する。主メモリ２０２は、揮発性メモリにより構成され、制御装置２０１によるプログラム実行に必要なワークメモリとして機能する。
【０１５０】
通信インターフェイス２０３は、外部機器との間でネットワークを介してデータを遣り取りする。当該外部機器は、たとえば、コントローラ１００、サーバ、その他の通信機器などを含む。情報処理装置２００は、通信インターフェイス２０３を介して、情報処理プログラム２１３をダウンロードできるように構成されてもよい。情報処理プログラム２１３は、上述の制御プログラム１１０の統合開発環境を提供するためのプログラムである。
【０１５１】
操作インターフェイス２０５は、操作部２２２に接続され、操作部２２２からのユーザ操作を示す信号を取り込む。操作部２２２は、典型的には、キーボード、マウス、タッチパネル、タッチパッドなどからなり、ユーザからの操作を受け付ける。
【０１５２】
表示インターフェイス２０６は、表示部２２０と接続され、制御装置２０１などからの指令に従って、表示部２２０に対して、画像を表示するための画像信号を送出する。表示部２２０は、ディスプレイ、インジケータなどからなり、ユーザに対して各種情報を提示する。
【０１５３】
光学ドライブ２０７は、光学ディスク２０７Ａなどから、その中に格納されている各種プログラムを読み出して、記憶装置２１０にインストールする。
【０１５４】
図１４には、光学ドライブ２０７を介して必要なプログラムを情報処理装置２００にインストールする構成例が示されているが、これに限られることなく、ネットワーク上のサーバ装置などからダウンロードするようにしてもよい。あるいは、情報処理装置２００上のプログラムは、ＵＳＢ（Universal Serial Bus）メモリ、ＳＤ（Secure Digital）カード、ＣＦ（Compact Flash）などの記憶媒体に書き込まれているプログラムによって書き換えられるように構成されてもよい。
【０１５５】
記憶装置２１０は、たとえば、ハードディスクや外付けの記憶媒体である。一例として、記憶装置２１０は、上述の管理テーブル３５，３５Ａと、情報処理プログラム２１３とを格納する。なお、管理テーブル３５，３５Ａは、必ずしも記憶装置２１０に格納される必要はなく、その他の記憶装置に格納されてもよい。一例として、管理テーブル３５，３５Ａは、主メモリ２０２や外部記憶媒体（たとえば、メモリカードやサーバなど）に格納されてもよい。
【０１５６】
＜Ｋ．まとめ＞
以上のようにして、制御プログラム１１０は、ＩＰアドレスに依存する制御命令を含む。当該制御命令は、コントローラ１００のネットワーク設定１０８に示される識別子を入力として制御対象の駆動機器３００を制御する。当該識別子は、コントローラのＩＰアドレスに代わるものであり、各コントローラで共通している。このような識別子を入力とすることで、ＩＰアドレスが変わった場合でも、ユーザは、制御プログラム１１０を書き換える必要がなくなる。そのため、現在使用されている制御プログラムを他のコントローラに流用することが可能になり、設備の拡大が容易となる。
【０１５７】
また、コントローラ１００は、他のコントローラのＩＰアドレスとは異なるように自コントローラのＩＰアドレスを生成する。これにより、ユーザは、設備を拡大する場合であっても通信可能な環境を容易に構築することができる。
【０１５８】
＜Ｌ．付記＞
以上のように、本実施形態は以下のような開示を含む。
【０１５９】
［構成１］
それぞれが制御対象の駆動機器（３００）を制御するための複数のコントローラ（１００Ａ，１００Ｂ，１００Ｃ）と、
前記複数のコントローラ（１００Ａ，１００Ｂ，１００Ｃ）と同一のネットワークに接続される情報処理装置（２００）とを備え、
前記複数のコントローラ（１００Ａ，１００Ｂ，１００Ｃ）のそれぞれは、
自コントローラのＩＰ（Internet Protocol）アドレスと当該ＩＰアドレスに代わる識別子との対応関係を含むネットワーク設定（１０８）と、制御対象の駆動機器（３００）を制御するための制御プログラム（１１０）とを格納する記憶装置（１０５）を備え、
前記制御プログラム（１１０）は、自コントローラの前記ネットワーク設定（１０８）に示される前記識別子を入力として制御対象の駆動機器（３００）を制御する制御命令を含み、
前記複数のコントローラ（１００Ａ，１００Ｂ，１００Ｃ）のそれぞれは、さらに、
他のコントローラのＩＰアドレスとは異なるように自コントローラのＩＰアドレスを生成し、当該生成したＩＰアドレスで、当該自コントローラの前記ネットワーク設定（１０８）に示されるＩＰアドレスを書き換えるための生成モジュール（１５２）と、
自コントローラの前記ネットワーク設定（１０８）に示されるＩＰアドレスに従って前記情報処理装置（２００）と通信するための通信モジュール（１５４）とを備える、制御システム。
【０１６０】
［構成２］
前記生成モジュール（１５２）は、自コントローラを一意に識別可能な識別情報に基づいて、当該自コントローラのＩＰアドレスを生成する、構成１に記載の制御システム。
【０１６１】
［構成３］
前記複数のコントローラ（１００Ａ，１００Ｂ，１００Ｃ）のそれぞれは、外部記憶媒体に接続可能に構成されており、
前記外部記憶媒体は、ＩＰアドレスに関する設定値を格納しており、
前記生成モジュール（１５２）は、前記外部記憶媒体に格納されている前記設定値を読み取り、当該設定値に従って自コントローラのＩＰアドレスを生成する、構成１または２に記載の制御システム。
【０１６２】
［構成４］
前記生成モジュール（１５２）は、
生成したＩＰアドレスが前記他のコントローラで既に使用されているか否かを当該他のコントローラに問い合わせ、
当該問い合わせに応答する他のコントローラが存在しない場合、当該生成したＩＰアドレスで自コントローラの前記ネットワーク設定（１０８）に示されるＩＰアドレスを書き換える、構成１〜３のいずれか１項に記載の制御システム。
【０１６３】
［構成５］
前記生成モジュール（１５２）は、前記問い合わせに応答する他のコントローラが存在する場合、先に生成したＩＰアドレスとは異なるＩＰアドレスを再生成する、構成４に記載の制御システム。
【０１６４】
［構成６］
前記生成モジュール（１５２）は、前記他のコントローラのＩＰアドレスが自コントローラに既に設定されているか否かを当該他のコントローラから問い合わされた場合、当該ＩＰアドレスとは重複しないように自コントローラのＩＰアドレスを生成する、構成４または５に記載の制御システム。
【０１６５】
［構成７］
自コントローラに格納される制御プログラム（１１０）は、他のコントローラに格納される制御プログラム（１１０）を複製したものである、構成１〜６のいずれか１項に記載の制御システム。
【０１６６】
［構成８］
駆動機器（３００）を制御するためのコントローラ（１００Ａ）であって、
前記コントローラ（１００Ａ）のＩＰアドレスと当該ＩＰアドレスに代わる識別子との対応関係を含むネットワーク設定（１０８）と、前記駆動機器（３００）を制御するための制御プログラム（１１０）を格納する記憶装置（１０５）を備え、
前記制御プログラム（１１０）は、前記ネットワーク設定（１０８）に示される前記識別子を入力として前記駆動機器（３００）を制御する制御命令を含み、さらに、
前記コントローラ（１００Ａ）と同一のネットワークに接続される他のコントローラ（１００Ｂ，１００Ｃ）のＩＰアドレスとは異なるように前記コントローラ（１００Ａ）のＩＰアドレスを生成し、当該生成したＩＰアドレスで、前記ネットワーク設定（１０８）に示されるＩＰアドレスを書き換えるための生成モジュール（１５２）と、
前記ネットワーク設定（１０８）に示されるＩＰアドレスに従って前記コントローラ（１００Ａ）と同一のネットワークに接続される情報処理装置（２００）と通信するための通信モジュール（１５４）とを備える、コントローラ。
【０１６７】
［構成９］
駆動機器（３００）を制御するためのコントローラ（１００Ａ）の制御方法であって、
前記コントローラ（１００Ａ）のＩＰアドレスと、当該ＩＰアドレスに代わる識別子との対応関係を含むネットワーク設定（１０８）と、前記駆動機器（３００）を制御するための制御プログラム（１１０）を前記コントローラ（１００Ａ）の記憶装置から取得するステップを備え、
前記制御プログラム（１１０）は、前記ネットワーク設定（１０８）に示される前記識別子を入力として前記駆動機器（３００）を制御する制御命令を含み、さらに、
前記コントローラ（１００Ａ）と同一のネットワークに接続される他のコントローラ（１００Ｂ，１００Ｃ）のＩＰアドレスとは異なるように前記コントローラ（１００Ａ）のＩＰアドレスを生成し、当該生成したＩＰアドレスで、前記ネットワーク設定（１０８）に示されるＩＰアドレスを書き換えるステップと、
前記ネットワーク設定（１０８）に示されるＩＰアドレスに従って前記コントローラ（１００Ａ）と同一のネットワークに接続される情報処理装置（２００）と通信するステップとを備える、制御方法。
【０１６８】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０１６９】
１  制御システム、３０  設定画面、３１  ＯＫボタン、３２  キャンセルボタン、３５，３５Ａ  管理テーブル、１００，１００Ａ，１００Ｂ，１００Ｃ  コントローラ、１０２  プロセッサ、１０４  チップセット、１０５，２１０  記憶装置、１０６，２０２  主メモリ、１０８  ネットワーク設定、１１０  制御プログラム、１１０Ａ  ユーザプログラム、１１１Ｂ  システムプログラム、１１２  ＵＳＢインターフェイス、１１４  メモリカードインターフェイス、１１６  メモリカード、１１８  ネットワークインターフェイス、１２０  内部バスコントローラ、１３０  フィールドネットワークコントローラ、１５０  ハブ、１５２  生成モジュール、１５４  通信モジュール、１５５Ａ，１５５Ｂ，１５５Ｃ，１５８Ａ，１５８Ｂ，１５８Ｃ，１５８Ｄ  入力部、１５７Ａ，１５７Ｂ，１５７Ｃ，１５７Ｄ，１５７Ｅ，１５９Ａ，１５９Ｂ，１５９Ｃ，１５９Ｄ  出力部、２００  情報処理装置、２００Ａ  サポート装置、２００Ｂ  サーバ装置、２００Ｃ  表示器、２０１  制御装置、２０３  通信インターフェイス、２０５  操作インターフェイス、２０６  表示インターフェイス、２０７  光学ドライブ、２０７Ａ  光学ディスク、２１３  情報処理プログラム、２１９  内部バス、２２０  表示部、２２２  操作部、３００  駆動機器、３２５  アームロボット。
【図１】
2019159631.tif 000003
【図２】
2019159631.tif 000004
【図３】
2019159631.tif 000005
【図４】
2019159631.tif 000006
【図５】
2019159631.tif 000007
【図６】
2019159631.tif 000008
【図７】
2019159631.tif 000009
【図８】
2019159631.tif 000010
【図９】
2019159631.tif 000011
【図１０】
2019159631.tif 000012
【図１１】
2019159631.tif 000013
【図１２】
2019159631.tif 000014
【図１３】
2019159631.tif 000015
【図１４】
2019159631.tif 000016