(57)【要約】【課題】データ量の増大に伴う通信負荷の増大を抑制する。【解決手段】制御システムは、制御手段と、送信手段と、アプリケーション実行手段と、送信手段とアプリケーション実行手段との間で遣り取りされるデータセットを調停する調停手段とを含む。調停手段は、制御手段が管理する複数のプロセスデータに関する情報を取得する第１取得手段と、アプリケーション実行手段で実行されているアプリケーションの情報を取得する第２取得手段と、第１取得手段が取得した複数のプロセスデータに関する情報および第２取得手段が取得した実行されているアプリケーションの情報に基づいて、データセットに含めるべきプロセスデータを決定する決定手段と、決定手段が決定したデータセットに含めるべきプロセスデータの内容を送信手段およびアプリケーション実行手段の各々に通知する通知手段とを含む。【選択図】図１
2020149632.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御手段と、
前記制御手段が管理する前記複数のプロセスデータの少なくとも一部のプロセスデータの値を含むデータセットを生成して送信する送信手段と、
前記送信手段により送信されるデータセットを参照してアプリケーションを実行するアプリケーション実行手段と、
前記送信手段と前記アプリケーション実行手段との間で遣り取りされるデータセットを調停する調停手段とを備え、
前記調停手段は、
前記制御手段が管理する前記複数のプロセスデータに関する情報を取得する第１取得手段と、
前記アプリケーション実行手段で実行されているアプリケーションの情報を取得する第２取得手段と、
前記第１取得手段が取得した前記複数のプロセスデータに関する情報および前記第２取得手段が取得した前記実行されているアプリケーションの情報に基づいて、前記データセットに含めるべきプロセスデータを決定する決定手段と、
前記決定手段が決定した前記データセットに含めるべきプロセスデータの内容を前記送信手段および前記アプリケーション実行手段の各々に通知する通知手段とを含む、制御システム。
【請求項２】
前記第２取得手段は、前記アプリケーション実行手段で実行されているアプリケーションが変更される毎に、変更後のアプリケーションが利用するプロセスデータを特定するための情報を取得する、請求項１に記載の制御システム。
【請求項３】
前記決定手段は、前記第２取得手段により取得されたアプリケーションの情報に基づいて、通信負荷に関する予め定められた評価基準に従って、前記データセットに含めるべきプロセスデータを決定する、請求項１または２に記載の制御システム。
【請求項４】
前記評価基準は、前記複数のプロセスデータの各々が前記アプリケーション実行手段において実行されるアプリケーションにおいて利用される頻度、および、前記複数のプロセスデータの各々に設定された重要度の少なくとも一方に基づく、請求項３に記載の制御システム。
【請求項５】
前記決定手段は、前記データセットに含めるべきプロセスデータを都度決定する、請求項１〜４のいずれか１項に記載の制御システム。
【請求項６】
前記決定手段は、予め定められた複数のデータセットのうちから、データセットに含めるべきと決定されたプロセスデータに対応するデータセットを選択する、請求項１〜４のいずれか１項に記載の制御システム。
【請求項７】
前記制御システムは、制御装置および表示装置を備え、
前記調停手段は、前記制御装置および前記表示装置とは独立して配置される、請求項１〜６のいずれか１項に記載の制御システム。
【請求項８】
前記制御システムは、第１アプリケーション実行手段および第２アプリケーション実行手段を含む複数の前記アプリケーション実行手段を備え、
前記通知手段は、前記決定手段が前記第１アプリケーション実行手段から取得した情報に基づいて新たに決定されたプロセスデータの内容を、前記第２アプリケーション実行手段にも通知する、請求項１〜７のいずれか１項に記載の制御システム。
【請求項９】
制御システムに配置された中継装置であって、
前記制御システムは、
制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御手段と、
前記制御手段が管理する前記複数のプロセスデータの少なくとも一部のプロセスデータの値を含むデータセットを生成して送信する送信手段と、
前記送信手段により送信されるデータセットを参照してアプリケーションを実行するアプリケーション実行手段とを備え、
前記中継装置は、送信手段と前記アプリケーション実行手段との間で遣り取りされるデータセットを調停するように構成され、
前記中継装置は、
前記制御手段が管理する前記複数のプロセスデータに関する情報を取得する第１取得手段と、
前記アプリケーション実行手段で実行されているアプリケーションの情報を取得する第２取得手段と、
前記第１取得手段が取得した前記複数のプロセスデータに関する情報および前記第２取得手段が取得した前記実行されているアプリケーションの情報に基づいて、前記データセットに含めるべきプロセスデータを決定する決定手段と、
前記決定手段が決定した前記データセットに含めるべきプロセスデータの内容を前記送信手段および前記アプリケーション実行手段の各々に通知する通知手段とを含む、中継装置。
【請求項１０】
制御システムに配置された情報処理装置で実行される中継プログラムであって、
前記制御システムは、
制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御手段と、
前記制御手段が管理する前記複数のプロセスデータの少なくとも一部のプロセスデータの値を含むデータセットを生成して送信する送信手段と、
前記送信手段により送信されるデータセットを参照してアプリケーションを実行するアプリケーション実行手段とを備え、
前記中継プログラムは、前記情報処理装置を、前記送信手段と前記アプリケーション実行手段との間で遣り取りされるデータセットを調停する中継装置として機能させ、
前記中継プログラムは、前記情報処理装置に、
前記制御手段が管理する前記複数のプロセスデータに関する情報を取得するステップと、
前記アプリケーション実行手段で実行されているアプリケーションの情報を取得するステップと、
前記取得された複数のプロセスデータに関する情報および前記取得された実行されているアプリケーションの情報に基づいて、前記データセットに含めるべきプロセスデータを決定するステップと、
前記決定された前記データセットに含めるべきプロセスデータの内容を前記送信手段および前記アプリケーション実行手段の各々に通知するステップとを実行させる、中継プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセスセータの値を含むデータセットが送信される制御システム、当該制御システムに含まれる中継装置、ならびに、当該中継装置で実行される中継プロセスに関する。
【背景技術】
【０００２】
様々な製造現場において、ＰＬＣ（Programmable Logic Controller）などの制御装置が導入されている。このような制御装置は、一種のコンピュータであり、製造装置または製造設備などに応じて設計された制御プログラムが実行される。このような制御装置は、ＨＭＩ（Human Machine Interface）などの情報処理装置と通信可能に接続される。
【０００３】
情報処理装置は、たとえば、制御装置からの情報を利用して、制御装置の制御対象の稼働状況などをグラフィカルに表示したり、あるいは、制御装置からの情報を利用して、表示するアプリケーションとは異なるアプリケーションを実行したりする。
【０００４】
たとえば、特開２０１７−１４６８０３号公報（特許文献１）は、ＰＬＣと接続される情報処理装置の一例としてプログラマブル表示器を開示する。このプログラマブル表示器は、表示画面に表示される一画面を一ページとした場合に、ページ単位で当該ページに表示される機能部品のレイアウト、および、機能の割り当て等がされている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１７−１４６８０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示されるようなプログラマブル表示器はＰＬＣが保持する情報を所定周期毎に更新して表示する。このようなプログラマブル表示器をＰＬＣとネットワーク接続した場合には、ネットワーク上を所定周期毎にデータが送信されることになる。
【０００７】
このような所定周期毎に送信されるデータが増大すると通信負荷が大きくなる。本発明は、このような送信されるデータ量の増大に伴う通信負荷の増大を抑制する技術を提供することを一つの目的とする。
【課題を解決するための手段】
【０００８】
本開示の一例に従う制御システムは、制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御手段と、制御手段が管理する複数のプロセスデータの少なくとも一部のプロセスデータの値を含むデータセットを生成して送信する送信手段と、送信手段により送信されるデータセットを参照してアプリケーションを実行するアプリケーション実行手段と、送信手段とアプリケーション実行手段との間で遣り取りされるデータセットを調停する調停手段とを含む。調停手段は、制御手段が管理する複数のプロセスデータに関する情報を取得する第１取得手段と、アプリケーション実行手段で実行されているアプリケーションの情報を取得する第２取得手段と、第１取得手段が取得した複数のプロセスデータに関する情報および第２取得手段が取得した実行されているアプリケーションの情報に基づいて、データセットに含めるべきプロセスデータを決定する決定手段と、決定手段が決定したデータセットに含めるべきプロセスデータの内容を送信手段およびアプリケーション実行手段の各々に通知する通知手段とを含む。
【０００９】
本開示によれば、複数のプロセスデータに関する情報および実行されているアプリケーションの情報に基づいて、データセットに含めるべきプロセスデータを決定するので、状況に応じて適切なプロセスデータを含むデータセットが生成および送信されることになる。これによって、通信負荷の増大を抑制できる。
【００１０】
上述の開示において、第２取得手段は、アプリケーション実行手段で実行されているアプリケーションが変更される毎に、変更後のアプリケーションが利用するプロセスデータを特定するための情報を取得するようにしてもよい。この構成によれば、各アプリケーションにおいて利用されるプロセスデータを特定することができ、これらの情報によって、データセットを効率的に決定できる。
【００１１】
上述の開示において、決定手段は、第２取得手段により取得されたアプリケーションの情報に基づいて、通信負荷に関する予め定められた評価基準に従って、データセットに含めるべきプロセスデータを決定するようにしてもよい。この構成によれば、評価基準に基づいて、通信負荷の観点で最適なデータセットを決定できる。
【００１２】
上述の開示において、評価基準は、複数のプロセスデータの各々がアプリケーション実行手段において実行されるアプリケーションにおいて利用される頻度、および、複数のプロセスデータの各々に設定された重要度の少なくとも一方に基づくようにしてもよい。この構成によれば、アプリケーションにおいて利用される頻度および複数のプロセスデータの各々に設定された重要度といった、通信負荷に影響を与えるファクタを考慮して、通信負荷の観点で最適なデータセットを決定できる。
【００１３】
上述の開示において、決定手段は、データセットに含めるべきプロセスデータを都度決定するようにしてもよい。この構成によれば、状況に応じて、最適なプロセスデータを動的に決定できる。
【００１４】
上述の開示において、決定手段は、予め定められた複数のデータセットのうちから、データセットに含めるべきと決定されたプロセスデータに対応するデータセットを選択するようにしてもよい。この構成によれば、状況が変化した場合であっても、データセットに含めるべきプロセスデータを都度計算する必要がないので、計算に係る処理負荷を軽減できる。
【００１５】
上述の開示において、制御システムは、制御装置および表示装置を含み、調停手段は、制御装置および表示装置とは独立して配置されるようにしてもよい。この構成によれば、制御装置および表示装置が複数存在する場合であっても、状況に応じて適切なプロセスデータを含むデータセットを決定できる。
【００１６】
上述の開示において、制御システムは、第１アプリケーション実行手段および第２アプリケーション実行手段を含む複数のアプリケーション実行手段を含み、通知手段は、決定手段が第１アプリケーション実行手段から取得した情報に基づいて新たに決定されたプロセスデータの内容を、第２アプリケーション実行手段にも通知するようにしてもよい。この構成によれば、複数のアプリケーション実行手段が存在する構成においても、本開示に従うデータセットの送信方式を適用できる。
【００１７】
本開示の別の一例によれば、制御システムに配置された中継装置が提供される。制御システムは、制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御手段と、制御手段が管理する複数のプロセスデータの少なくとも一部のプロセスデータの値を含むデータセットを生成して送信する送信手段と、送信手段により送信されるデータセットを参照してアプリケーションを実行するアプリケーション実行手段とを含む。中継装置は、送信手段とアプリケーション実行手段との間で遣り取りされるデータセットを調停するように構成される。中継装置は、制御手段が管理する複数のプロセスデータに関する情報を取得する第１取得手段と、アプリケーション実行手段で実行されているアプリケーションの情報を取得する第２取得手段と、第１取得手段が取得した複数のプロセスデータに関する情報および第２取得手段が取得した実行されているアプリケーションの情報に基づいて、データセットに含めるべきプロセスデータを決定する決定手段と、決定手段が決定したデータセットに含めるべきプロセスデータの内容を送信手段およびアプリケーション実行手段の各々に通知する通知手段とを含む。
【００１８】
本開示のさらに別の一例によれば、制御システムに配置された情報処理装置で実行される中継プログラムが提供される。制御システムは、制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御手段と、制御手段が管理する複数のプロセスデータの少なくとも一部のプロセスデータの値を含むデータセットを生成して送信する送信手段と、送信手段により送信されるデータセットを参照してアプリケーションを実行するアプリケーション実行手段とを含む。中継プログラムは、情報処理装置を、送信手段とアプリケーション実行手段との間で遣り取りされるデータセットを調停する中継装置として機能させる。中継プログラムは、情報処理装置に、制御手段が管理する複数のプロセスデータに関する情報を取得するステップと、アプリケーション実行手段で実行されているアプリケーションの情報を取得するステップと、取得された複数のプロセスデータに関する情報および取得された実行されているアプリケーションの情報に基づいて、データセットに含めるべきプロセスデータを決定するステップと、決定されたデータセットに含めるべきプロセスデータの内容を送信手段およびアプリケーション実行手段の各々に通知するステップとを実行させる。
【発明の効果】
【００１９】
本発明によれば、データ量の増大に伴う通信負荷の増大を抑制できる。
【図面の簡単な説明】
【００２０】
【図１】制御システム１ａの適用場面を示す模式図である。
【図２】本実施の形態に係る、制御システム１の概要を示す図である。
【図３】ＰｕｂＳｕｂ通信の概要を説明するための図である。
【図４】サブスクライバーとして機能するＨＭＩ２００−１の概要を説明するための図である。
【図５】パブリッシャーとして機能するコントローラ１００の概要を説明するための図である。
【図６】中継装置６０の機能構成を示す図である。
【図７】決定手段３４０が実行する演算の一例を示す図である。
【図８】ＨＭＩ情報３７６を受け付けるユーザインターフェイス７００の一例を示す図である。
【図９】優先度情報３５８を受け付けるユーザインターフェイス９００の一例を示す図である。
【図１０】中継装置６０による一連の処理の流れを示すシーケンス図である。
【図１１】中継装置６０による一連の処理の流れを示すシーケンス図である。
【図１２】中継装置６０による一連の処理の流れを示すシーケンス図である。
【図１３】中継装置６０のハードウェア構成の一例を示す模式図である。
【図１４】ＨＭＩ２００のハードウェア構成の一例を示す模式図である。
【図１５】コントローラ１００のハードウェア構成の一例を示す模式図である。
【図１６】変形例における中継装置６０ａの機能構成を示す図である。
【図１７】変形例における制御システム１ｂの概要を示す図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わせてもよい。
【００２２】
§１．適用例
図１は、制御システム１ａの適用場面を示す模式図である。制御システム１ａは、制御手段１０２ａと、通信処理部８０ａと、アプリケーション実行手段２００ａと、調停手段３００ａとを含む。
【００２３】
制御手段１０２ａは、制御対象を制御するための制御プログラム１２０ａを実行するとともに、制御プログラム１２０ａにおいて参照または更新される複数のプロセスデータ５２を管理する。制御手段１０２ａは、たとえば、製造現場において利用されるＰＬＣおよびマシンコントローラといった、コントローラによって実現される。
【００２４】
制御対象は、生産工程を自動化するための種々の産業用機器を含み、製造装置や生産ラインなど（以下、「フィールド」とも総称する。）に対して何らかの物理的な作用を与える装置と、フィールドとの間で情報を遣り取りする入出力装置とを含む。図１に示す例では、制御対象として、フィールドデバイス５００が例示されている。
【００２５】
本明細書において、「プロセスデータ」は、制御手段１０２ａ（後述するように、典型的にはコントローラ１００として具現化される）またはアプリケーション実行手段２００ａ（後述するように、典型的にはＨＭＩ２００として具現化される）が参照可能な任意のデータを包含する用語である。より具体的には、「プロセスデータ」は、フィールドデバイスから取得する入力データ、制御演算によって算出されてフィールドデバイスへ与えられる出力データ（指令値）、制御演算を実行するための一時的に算出されるデータ、ユーザによる操作内容を示すデータなどを含み得る。
【００２６】
プロセスデータ５２は、フィールドデバイス５００から制御手段１０２ａに入力されるデータと、制御手段１０２ａからフィールドデバイス５００に出力されるデータと、制御プログラム１２０ａの実行または制御手段１０２ａが搭載されたコントローラの状態管理に用いられるデータとを含む。プロセスデータ５２は、制御プログラム１２０ａの実行に伴って、周期的に更新される。
【００２７】
通信処理部８０ａは、送信手段の具現化例であって、１または複数のデータセット５０を周期的に送信する。各データセット５０は、制御手段１０２ａが管理する複数のプロセスデータ５２の少なくとも一部のプロセスデータ５２の値を含む。通信処理部８０は、調停手段３００により決定される送信設定４００に従い、データセット５０を生成して送信する。
【００２８】
アプリケーション実行手段２００ａは、１または複数のアプリケーション２２０ａを実行する。アプリケーション２２０ａは、通信処理部８０ａにより送信されるデータセット５０（データセット５０に含まれるプロセスデータ５２）を参照してアプリケーションを実行する。
【００２９】
アプリケーション実行手段２００ａは、制御プログラム１２０の実行によって得られる各種情報をオペレータへ提示するＨＭＩ（Human Machine Interface）や、プロセス制御と集中監視とを行うＳＣＡＤＡ（Supervisory Control And Data Acquisition）装置、ロボットを制御するロボットコントローラ、アクチュエータ、および他のコントローラなどによって実現される。なお、アプリケーション実行手段２００ａは、制御システム１ａにおいて実行され得るアプリケーションの実行主体全体を含み得る。たとえば、アプリケーション実行手段２００ａは、複数のＨＭＩによって構成されてもよい。
【００３０】
図１に示す例では、アプリケーション実行手段２００ａは、アプリケーションＡ，Ｂ，Ｃ，Ｄを実行可能である。アプリケーションＡ〜Ｄの各々において利用されるプロセスデータの種類は予め指定されている。
【００３１】
図１においては、各アプリケーションで利用されるプロセスデータの種類が、アプリケーションの名称の下にアルファベットで記載されている。具体的には、アプリケーションＡは、プロセスデータＡ，Ｂを利用する。アプリケーションＢは、プロセスデータＣ，Ｄを利用する。アプリケーションＣは、プロセスデータＸを利用する。アプリケーションＤは、プロセスデータＡ，Ｄを利用する。
【００３２】
調停手段３００ａは、アプリケーション実行手段２００ａと通信処理部８０ａとの間で遣り取りされるデータセット５０を調停する。具体的には、調停手段３００ａは、アプリケーション実行手段２００ａが実行しているアプリケーション２２０ａに利用されるプロセスデータ５２が通信処理部８０ａから送信されるようにデータセット５０に含ませるべきプロセスデータ５２の種類を決定し、送信設定４００として通信処理部８０ａに通知する。また、調停手段３００ａは、アプリケーション実行手段２００ａが実行対象のアプリケーション２２０ａに利用するプロセスデータ５２の値を、通信処理部８０ａから送信されるデータセット５０から読み出せるようにアプリケーション実行手段２００ａに向けて送信されるデータに関する情報をリンク情報９８ａとして通知する。
【００３３】
調停手段３００ａは、アプリケーション情報取得手段３２０ａと、プロセスデータ取得手段３３０ａと、決定手段３４０ａと、通知手段３５０ａとを含む。
【００３４】
アプリケーション情報取得手段３２０ａは、アプリケーション実行手段２００ａで実行されているアプリケーション２２０ａの情報（アプリケーション情報６１２ａ）を取得する。具体的には、アプリケーション情報取得手段３２０ａは、アプリケーション実行手段２００ａにおいて実行されているアプリケーション２２０ａに利用されるプロセスデータ５２を特定する。
【００３５】
アプリケーション情報取得手段３２０ａは、制御システム１ａにおいて実行されているアプリケーション２２０ａに利用されるプロセスデータ５２を特定できればよく、たとえば、アプリケーション２２０ａ毎に利用されるプロセスデータ５２の情報を有している場合は、アプリケーション実行手段２００ａから実行するアプリケーション２２０ａを特定可能な情報を取得すればよい。
【００３６】
複数のアプリケーション２２０ａが実行可能になっている場合には、アプリケーション情報取得手段３２０ａは、アプリケーション実行手段２００ａで実行されているアプリケーションが変更される毎に、変更後のアプリケーションが利用するプロセスデータを特定するための情報（アプリケーション情報６１２ａ）を取得するようにしてもよい。
【００３７】
図１に示す例では、アプリケーション実行手段２００ａは、アプリケーションＡおよびアプリケーションＤを実行しているものとする。アプリケーション情報取得手段３２０ａは、アプリケーション情報６１２ａとして、アプリケーション実行手段２００ａの要求するプロセスデータがプロセスデータＡ，Ｂ，Ｄであることを特定する。
【００３８】
プロセスデータ取得手段３３０ａは、制御手段１０２ａが管理する複数のプロセスデータ５２に関する情報（プロセスデータリスト６２２ａ）を取得する。具体的には、プロセスデータ取得手段３３０ａは、制御手段１０２ａが管理するプロセスデータ５２の種類を特定する。
【００３９】
決定手段３４０ａは、アプリケーション情報取得手段３２０ａが取得したアプリケーション情報６１２ａと、プロセスデータ取得手段３３０ａが取得したプロセスデータリスト６２２ａとに基づいて、データセット５０に含めるべきプロセスデータ５２を決定する。具体的には、アプリケーション情報６１２ａに基づいて、通信処理部８０ａから送信することが必要なプロセスデータ５２の種類を特定し、特定した必要なプロセスデータ５２をいずれのデータセットに割り当てて送信するかを決定する。
【００４０】
決定手段３４０ａは、後述するような評価指標を用いてデータセットの数およびデータセットに割り当てるプロセスデータ５２の種類を決定する。決定手段３４０ａは、データセットに含めるべきプロセスデータを都度決定するようにしてもよい（動的決定）。あるいは、決定手段３４０ａは、事前に複数のデータセットを用意しておき、必要なプロセスデータに応じて適切なデータセットを選択するようにしてもよい（静的設定）。すなわち、決定手段３４０ａは、予め定められた複数のデータセットのうちから、データセットに含めるべきと決定されたプロセスデータに対応するデータセットを選択するようにしてもよい。
【００４１】
通知手段３５０ａは、決定手段３４０ａが決定したデータセット５０に含ませるべきプロセスデータ５２の内容を通信処理部８０ａに送信設定として、アプリケーション実行手段２００ａにリンク情報９８ａとして通知する。
【００４２】
このようにすることで、複数のプロセスデータに関する情報および実行されているアプリケーションの情報に基づいて、データセットに含めるべきプロセスデータを決定するので、状況に応じて適切なプロセスデータを含むデータセットが生成および送信されることになる。これによって、通信負荷の増大を抑制できる。
【００４３】
§２．具体例
以下、上記適用例において説明した制御システム１の具体例について説明する。
【００４４】
＜Ａ．システム構成＞
図２は、本実施の形態に係る、制御システム１の概要を示す図である。制御システム１は、制御装置の一例である１つのコントローラ１００と、表示装置の一例である複数のＨＭＩ２００（２００−１，２００−２）と、中継装置６０とを含む。
【００４５】
中継装置６０は、コントローラ１００とＨＭＩ２００との間の通信を中継する装置であって、調停手段の具現化例である。本実施の形態において、コントローラ１００と中継装置６０、および中継装置６０と各ＨＭＩ２００とは、情報系ネットワーク２によって互いに通信可能に接続されている。すなわち、調停手段を具現化する中継装置６０は、コントローラ１００およびＨＭＩ２００とは独立して配置されてもよい。なお、後述するように、中継装置６０に相当する機能をコントローラ１００およびＨＭＩ２００のいずれかに組み入れるようにしてもよい。
【００４６】
情報系ネットワーク２は、たとえば、ベンダやＯＳ（Operating System）の種類などに依存することなくデータ交換を実現することができる通信規格に従ったネットワークである。このような通信規格としては、たとえば、ＯＰＣ  ＵＡ（Object Linking and Embedding for Process Control Unified Architecture）などが知られている。
【００４７】
なお、情報系ネットワーク２に採用される通信規格は、ＯＰＣ  ＵＡに限定されるわけではない。たとえば、情報系ネットワーク２は、特定のベンダまたはＯＳ特有の通信規格に従ったネットワークであってもよく、また、Ｅｔｈｅｒｎｅｔ（登録商標）上に制御用プロトコルを実装した産業用オープンネットワークであるＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）に従ったネットワークであってもよい。
【００４８】
図２に示す例では、ＨＭＩ２００とコントローラ１００との間の通信は、中継装置６０を中継して行われるものの、ＯＰＣ  ＵＡのパブリッシュ・サブスクライブ（Publish-Subscribe）型の通信方式により行われる。なお、以下、ＯＰＣ  ＵＡのパブリッシュ・サブスクライブ（Publish-Subscribe）型の通信方式が適用された通信をＰｕｂＳｕｂ通信ともいう。
【００４９】
制御システム１は、複数のコントローラ１００を含む構成であってもよい。また、制御システム１は、複数のＨＭＩ２００を含む構成であってもよい。また、制御システム１は、１のコントローラ１００に対して１のＨＭＩ２００が通信可能に接続された構成でもよく、複数のコントローラ１００に対して１のＨＭＩ２００が通信可能に接続された構成でもよく、１のコントローラ１００に対して複数のＨＭＩ２００が通信可能に接続された構成でもよく、また、複数のコントローラ１００に対して複数のＨＭＩ２００が通信可能に接続された構成でもよい。図２に示す例では、制御システム１は、１のコントローラ１００に対して２つのＨＭＩ２００（ＨＭＩ２００−１，２００−２）が通信可能に接続された構成である。以下では、複数のＨＭＩ２００を互いに区別する場合に、ＨＭＩ２００−１，２００−２と称する。
【００５０】
コントローラ１００は、制御手段１０２と、通信処理部８０とを含む。制御手段１０２は、制御対象であるフィールドデバイス５００を制御するための制御プログラム１２０を実行するとともに、当該制御プログラム１２０において参照または更新される複数のプロセスデータ５２を管理する。制御手段１０２は、たとえば、コントローラ１００の基本的な機能を実現するためのシステムプログラムをプロセッサが実行することにより実現される。
【００５１】
フィールドデバイス５００は、生産工程を自動化するための種々の産業用機器を含み、製造装置や生産ラインなど（以下、「フィールド」とも総称する。）に対して何らかの物理的な作用を与える装置と、フィールドとの間で情報を遣り取りする入出力装置とを含む。たとえば、フィールドデバイス５００は、サーボモータを制御するサーボドライバ、ロボットを制御するロボットコントローラ、データを収集する装置であるセンサ、コンベヤを動かすアクチュエータ、または、リモートＩ／Ｏ（Input/Output）装置などを含む。
【００５２】
コントローラ１００とフィールドデバイス５００とは、図２に示す例において、制御系ネットワーク４により通信可能に接続される。制御系ネットワーク４には、データの到達時間が保証される、定周期通信を行うネットワークを採用することが好ましい。このような定周期通信を行うネットワークとしては、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＤｅｖｉｃｅＮｅｔ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などが知られている。
【００５３】
プロセスデータ５２は、フィールドデバイス５００からコントローラ１００に入力されるデータと、コントローラ１００からフィールドデバイス５００に出力されるデータと、制御プログラム１２０の実行またはコントローラ１００の状態管理に用いられるデータとを含む。プロセスデータ５２は、制御プログラム１２０の実行に伴って、周期的に更新される。
【００５４】
通信処理部８０は、制御手段１０２が管理する複数のプロセスデータ５２の値を含む複数のデータセット５０を送信可能に構成されている。具体的には、通信処理部８０は、各データセット５０に格納されるプロセスデータ５２の組み合わせを規定する送信設定４００を参照して、データセット５０を送信する。
【００５５】
各ＨＭＩ２００は、通信処理部８０が送信したデータセット５０に含まれるプロセスデータ５２を利用して、各アプリケーション２２０を実行する。図１に示す例では、ＨＭＩ２００−１は、プロセスデータ５２Ａ，５２Ｂを利用するアプリケーション２２０−１ａと、プロセスデータ５２Ｘを利用するアプリケーション２２０−１ｂとを実行可能である。ＨＭＩ２００−２は、プロセスデータ５２Ａ，５２Ｄを利用するアプリケーション２２０−２ａと、プロセスデータ５２Ｃを利用するアプリケーション２２０−２ｂとを実行可能である。
【００５６】
＜Ｂ．ＰｕｂＳｕｂ通信＞
図３は、ＰｕｂＳｕｂ通信の概要を説明するための図である。以下の説明では、データを配信する側を「パブリッシャー」と称し、パブリッシャーが配信したデータを購読する側を「サブスクライバー」と称する。本実施の形態に係る制御システム１において、コントローラ１００は、データを配信するパブリッシャーに相当する。一方、ＨＭＩ２００は、コントローラ１００が配信したデータを購読するサブスクライバーに相当する。
【００５７】
パブリッシャーは、１または複数のデータを格納したデータセットを生成して配信する。パブリッシャーは、送信先を特定することなく、パブリッシャーおよびサブスクライバーを含むネットワークにデータセットを送信する。この送信形態は、マルチキャストであってもよいし、ユニキャストであってもよい。状況によって、ブロードキャストであってもよい。
【００５８】
サブスクライバーは、サブスクライバーがアクセスすることのできるネットワーク上に配信されるデータセットのうち、いずれのデータセットを購読対象とするかを管理する。たとえば、図４に示す例では、サブスクライバーは、データセット１〜データセット３のうち、データセット１およびデータセット３を購読対象としている。そのため、サブスクライバーは、パブリッシャーが配信するデータセット１〜３のうち、データセット１およびデータセット３のみを受信する。サブスクライバーは、購読対象を変更すると、受信対象を変更する。
【００５９】
サブスクライバーは購読対象ではないデータセットを受信してもよく、この場合、サブスクライバーは、購読対象ではないデータセットを破棄する処理をしてもよい。
【００６０】
サブスクライバーが購読対象を管理する方法は、図４に示す方法に限られない。たとえば、データ毎に購読するか否かを管理してもよい。その他の方法としては、データセットとは異なるデータの集合毎に購読するか否かを管理してもよい。
【００６１】
図４および図５を参照して、ＨＭＩ２００とコントローラ１００との間のＰｕｂＳｕｂ通信の概要について説明する。図４は、サブスクライバーとして機能するＨＭＩ２００−１の概要を説明するための図である。図５は、パブリッシャーとして機能するコントローラ１００の概要を説明するための図である。図４においては、ＨＭＩ２００−１を例に説明するものとするが、ＨＭＩ２００−２においても、ＨＭＩ２００−１と同様の構成を備えているものとする。
【００６２】
図４を参照して、ＨＭＩ２００−１は、表示部２４２と、複数のアプリケーション２２０（２２０−１ａ，２２０−１ｂ…）と、ＯＰＣ  ＵＡクライアントである通信処理部９０とを備える。各アプリケーション２２０は、表示部２４２に特定のページを表示するためのプログラムである。図４には、表示部２４２にページ１を表示するためのアプリケーション１が実行されている例が示されている。
【００６３】
各ページは、複数のオブジェクト５４を含む。たとえば、ページ１は、オブジェクト５４ａ〜オブジェクト５４ｄを含む。オブジェクト５４の表示は、プログラムに含まれる変数の値に応じて更新される。たとえば、オブジェクト５４ａの表示は、変数１の値に応じて更新される。同様に、オブジェクト５４ｂの表示は変数２の値に、オブジェクト５４ｃの表示は変数１の値に、オブジェクト５４ｄの表示は変数２の値に応じて更新される。
【００６４】
アプリケーション２２０は、マッピング情報２２２を参照することで、変数の値を更新する。マッピング情報２２２は、変数とプロセスデータとを紐づけた情報である。たとえば、変数１の値は、プロセスデータ５２Ａの値に従って更新される。各プロセスデータの値が更新される周期は、アプリケーション２２０の作成に応じてユーザが設定してもよく、また、プロセスデータを管理するコントローラ１００の更新周期に応じて決定されるものでもよい。
【００６５】
通信処理部９０は、ＯＰＣ  ＵＡクライアントであって、ＨＭＩ２００をサブスクライバーとして機能させる。通信処理部９０は、購読管理手段９２と通信ドライバ９６とを含む。
【００６６】
購読管理手段９２は、実行中のアプリケーション２２０に応じて購読対象を管理する。具体的には、購読管理手段９２は、アプリケーション２２０とマッピング情報２２２とに基づいて生成される購読管理情報９４を参照して購読対象を特定し、通信ドライバ９６に向けて、購読対象を通知する。通信ドライバ９６は、購読対象のプロセスデータ５２を含むデータセット５０を受信し、アプリケーション２２０で利用されるプロセスデータ５２の値を更新する。
【００６７】
購読管理情報９４は、アプリケーション２２０と、当該アプリケーション２２０で利用されるプロセスデータ５２とを対応付けた情報であって、アプリケーション２２０とマッピング情報２２２とに基づいて生成される。
【００６８】
購読管理手段９２は、たとえば、アプリケーション１を実行している場合、購読管理情報９４を参照して、プロセスデータ５２Ａ，５２Ｂがアプリケーション１の実行に利用されることを特定する。購読管理手段９２は、プロセスデータ５２Ａ、５２Ｂの購読開始を通信ドライバ９６に向けて通知する。購読管理手段９２は、アプリケーションの実行対象が切り替わった場合、購読を停止するプロセスデータ５２に関する情報も、購読を開始するプロセスデータ５２に関する情報とともに通信ドライバ９６に向けて通知する。
【００６９】
通信ドライバ９６は、コントローラ１００が配信する複数のデータセット５０の中から、購読対象のプロセスデータ５２を含むデータセット５０を読み取る。より具体的には、通信ドライバ９６は、各データセット５０に格納されたプロセスデータ５２を特定するためのリンク情報９８を参照して、コントローラ１００が中継装置６０を中継して配信する複数のデータセット５０の中から、購読対象のプロセスデータ５２を含むデータセット５０を特定する。
【００７０】
本実施の形態においては、ＨＭＩ２００から中継装置６０に向けて購読対象の要求がされ、当該要求を受けて中継装置６０は送信設定４００を生成してコントローラ１００に向けて通知する。また、中継装置６０は、送信設定４００の生成と併せて、リンク情報９８を生成し、各ＨＭＩ２００に通知する。
【００７１】
図５を参照して、コントローラ１００は、制御手段１０２と、制御系ネットワークインターフェイス（ＩＦ）１９１と、ＯＰＣ  ＵＡサーバである通信処理部８０とを含む。
【００７２】
制御手段１０２は、制御プログラム１２０を実行することで、フィールドデバイス５００を制御する。たとえば、制御プログラム１２０は、制御系ネットワークＩＦ１９１を介して入力されたフィールドデバイス５００の状態値を利用してプロセスデータ５２の値を更新し、更新したプロセスデータ５２の値を参照して制御演算を実行する。制御プログラム１２０は、実行した制御演算の結果に応じてプロセスデータ５２の値を更新し、制御系ネットワークＩＦ１９１を介してフィールドデバイス５００に向けて、更新したプロセスデータ５２の値を制御値として出力する。
【００７３】
通信処理部８０は、ＯＰＣ  ＵＡサーバであって、コントローラ１００をパブリッシャーとして機能させる。通信処理部８０は、データセット５０を生成するデータセット生成手段８２と、データセット５０を送信する通信ドライバ８４とを含む。
【００７４】
データセット生成手段８２は、送信設定４００を参照して、１または複数のプロセスデータ５２を格納したデータセット５０を生成する。データセット５０は、プロセスデータ５２の集合をいうこともあれば、情報系ネットワーク２上に出力することが可能な形式にしたものをいうこともある。
【００７５】
送信設定４００は、一のデータセット５０に格納されるプロセスデータ５２を特定する情報である。なお、一のデータセット５０には、１のプロセスデータ５２だけが格納されるように規定されていてもよく、また、複数のプロセスデータ５２が格納されるように規定されていてもよい。すなわち、「データセット」という用語は、データセット５０に格納される１または複数のプロセスデータ５２の組み合わせを意味する。この送信設定４００は、ＨＭＩ２００からの要求を受けて中継装置６０が生成してコントローラ１００に通知したものである。
【００７６】
通信ドライバ８４は、データセット生成手段８２が生成したデータセット５０を、中継装置６０に送る。中継装置６０は送られたデータセット５０を核ＨＭＩ２００に向けて送信する。
【００７７】
図５を参照して、ＨＭＩ２００−１の購読対象がプロセスデータ５２Ａおよび５２Ｂであり、ＨＭＩ２００−２の購読対象がプロセスデータ５２Ａおよび５２Ｄであるときの、ＨＭＩ２００とコントローラ１００との間のデータの遣り取りについて説明する。なお、図５中、プロセスデータ５２Ａ，５２Ｂ，５２Ｄについて、一部、符号等を省略して記載している。また、以下では、プロセスデータ５２Ａ，５２Ｂ，５２Ｄ，４２Ｘを単にプロセスデータＡ，Ｂ，Ｄ，Ｘともいう。
【００７８】
図５に示す例では、データセット１にプロセスデータＡ，Ｂ，Ｄを格納することが送信設定４００により規定されている。コントローラ１００は、データセット１を周期的に生成して中継装置６０に送信する。
【００７９】
ＨＭＩ２００−１は、コントローラ１００から中継装置６０を中継して配信されるデータセット１を取得する。データセット１は周期的に送信されるため、ＨＭＩ２００−１は、データセット１を周期的に取得する。これにより、ＨＭＩ２００−１は、プロセスデータ５２Ａおよびプロセスデータ５２Ｂに対応する変数を周期的に更新することができ、当該変数に更新に応じてオブジェクト５４の表示も更新する。
【００８０】
ＨＭＩ２００−２は、コントローラ１００から中継装置６０を中継して配信されるデータセット１を取得する。データセット１は周期的に送信されるため、ＨＭＩ２００−２は、データセット１を周期的に取得する。これにより、ＨＭＩ２００−２は、プロセスデータ５２Ａおよびプロセスデータ５２Ｄに対応する変数を周期的に更新することができ、当該変数に更新に応じてオブジェクト５４の表示も更新する。
【００８１】
＜Ｃ．中継装置の機能構成＞
図６を参照して、調停手段として機能する中継装置６０が実行する処理の一例を説明する。図６は、中継装置６０の機能構成を示す図である。なお、図６においては、ＨＭＩ２００−１およびＨＭＩ２００−２を総じてＨＭＩ２００としている。
【００８２】
図６を参照して、中継装置６０は、調停手段３００と、送受信管理手段６８０とを含む。調停手段３００は、コントローラ１００とＨＭＩ２００との間で遣り取りされるデータセット５０を調停する。送受信管理手段６８０は、コントローラ１００から送信されるデータセット５０を各ＨＭＩ２００−１，２００−２に向けて送信する。コントローラ１００から送信されるデータセット５０に格納するプロセスデータ５２の種類は、調停手段３００により決定される。また、コントローラ１００が送信される各データセット５０の送信先についても、調停手段３００によって決定される。
【００８３】
調停手段３００は、購読リスト管理手段３２０と、プロセスデータ取得手段３３０と、決定手段３４０と、通知手段３５０とを含む。
【００８４】
購読リスト管理手段３２０は、中継装置６０に接続されているＨＭＩ２００−１，２００−２の各々で実行されているアプリケーション２２０の情報を取得する。アプリケーション２２０の情報は、当該アプリケーション２２０に利用されるプロセスデータ５２を特定可能な情報である。たとえば、購読リスト管理手段３２０は、ＨＭＩ２００からの購読要求を解析して、ＨＭＩ２００で実行されているアプリケーション２２０の情報を取得する。ここで、購読リスト管理手段３２０は、取得手段の具現化例に相当する。
【００８５】
ＨＭＩ２００は、実行するアプリケーション２２０に変更が生じた場合に、購読要求を中継装置６０に向けて行う。購読要求には、購読を開始するサブスクリプション開始要求と、購読を停止するサブスクリプション停止要求とが含まれる。サブスクリプション開始要求およびサブスクリプション停止要求は、実行対象のアプリケーション２２０が切り替わったタイミングで、通信処理部９０から出力される。
【００８６】
購読リスト管理手段３２０は、制御システム１において購読対象とされているプロセスデータ５２と、当該プロセスデータを購読対象としているＨＭＩ２００とを特定可能な購読リスト６１２を管理する。購読リスト管理手段３２０は、ＨＭＩ２００からの購読要求に基づいてＨＭＩ２００で実行されているアプリケーション２２０に利用されるプロセスデータ５２を特定し、当該プロセスデータを購読対象として購読リスト６１２に登録（更新）する。購読リスト管理手段３２０は、ＨＭＩ２００からの購読要求に基づいて、購読が停止されたプロセスデータを特定し、購読の停止を購読リスト６１２に反映（更新）する。購読リスト管理手段３２０は、購読リスト６１２を更新した場合に、決定手段３４０に通知する（図中の更新通知）。
【００８７】
プロセスデータ取得手段３３０は、プロセスデータ５２と、プロセスデータ５２を配信するコントローラ１００との対応関係を規定するプロセスデータリスト６２２を管理する。プロセスデータ取得手段３３０は、中継装置６０とコントローラ１００との通信が確立すると、コントローラ１００に対して、管理しているプロセスデータ５２を示す情報の送信を要求する。プロセスデータ取得手段３３０は、プロセスデータ５２を示す情報（図６中のプロセスデータ情報）を受けて、コントローラ１００とコントローラ１００が管理するプロセスデータ５２との対応関係が、プロセスデータリスト６２２に登録されているか否かを確認し、登録されていなければ、コントローラ１００とコントローラ１００が管理するプロセスデータ５２との対応関係をプロセスデータリスト６２２に登録（更新）する。
【００８８】
決定手段３４０は、購読リスト管理手段３２０からの更新通知を受けて、購読対象のプロセスデータ５２を送信するための送信設定４００を決定する。決定手段３４０は、購読リスト６１２に基づいて実行中のアプリケーション２２０に利用されるプロセスデータ５２を特定する。決定手段３４０は、プロセスデータリスト６２２に基づいて特定したプロセスデータについて、当該プロセスデータを管理するコントローラ１００毎にグループ化する。決定手段３４０は、グループ化された一群のプロセスデータ５２毎に、一群のプロセスデータ５２を管理するコントローラ１００の送信設定４００を決定する。送信設定４００は、各データセット５０に含ませるべきプロセスデータ５２を規定する。送信設定４００の決定方法は、後述する。また、決定手段３４０は、既に送信設定４００およびリンク情報９８を生成している場合は、送信設定４００を決定するタイミングまでに蓄積されている蓄積情報６２３をさらに参照して、各データセット５０に含ませるべきプロセスデータ５２を規定してもよい。
【００８９】
決定手段３４０は、決定した各コントローラ１００の送信設定４００に基づいて各ＨＭＩ２００のリンク情報９８を生成する。リンク情報９８は、上述したように、各データセット５０に格納されたプロセスデータ５２を特定するための情報である。なお、リンク情報９８は、ＨＭＩ２００の通信処理部９０が受信可能なデータのうち、購読対象としているプロセスデータ５２を格納しているデータおよび、当該データのいずれの格納先に購読対象としているプロセスデータ５２が格納されているかをＨＭＩ２００の通信処理部９０が特定できる情報であればよい。たとえば、コントローラ１００が送信したデータセット５０のヘッダ（名称）を中継装置６０が変更する場合は、中継装置６０により変更された後のヘッダと、そのヘッダのデータに格納されるプロセスデータ５２種類とを対応付けた情報がリンク情報９８となる。
【００９０】
決定手段３４０は、決定した送信設定４００およびリンク情報９８を蓄積情報６２３として保存してもよい。また、決定手段３４０は、送信設定４００に加えて当該送信設定４００を決定したときの購読リスト６１２を合わせて蓄積情報６２３として保存してもよい。すなわち、蓄積情報６２３は、購読対象のプロセスデータと、当該プロセスデータを配信するための送信設定とを紐づけた情報である。
【００９１】
蓄積情報６２３が増えることで、決定手段３４０の演算が容易になるとともに、利用状況に応じた適当な送信設定４００を設計することもできる。
【００９２】
通知手段３５０は、決定手段３４０により得られた送信設定４００をコントローラ１００に、リンク情報９８をＨＭＩ２００に通知する。なお、リンク情報９８をＨＭＩ２００毎に生成した場合は、各リンク情報９８を対応するＨＭＩ２００に送信する。
【００９３】
通知手段３５０は、送信設定４００および購読リスト６１２に基づいて、各データセット５０の送信先を規定するトピックリスト６８２の情報を更新する。
【００９４】
送受信管理手段６８０は、トピックリスト６８２を参照して、コントローラ１００から配信された各データセット５０を、当該データセット５０に含まれるプロセスデータ５２を購読対象とするＨＭＩ２００に送信する。
【００９５】
＜Ｄ．決定手段３４０の機能構成＞
図７を参照して、決定手段３４０が実行する演算方法の一例を説明する。図７は、決定手段３４０が実行する演算の一例を示す図である。図７に示す例では、決定手段３４０は、プロセスデータ５２の組み合わせを求めるための問題を「ナップサック問題」として送信するプロセスデータ５２の組み合わせ候補を求める。決定手段３４０は、求めた候補が複数存在する場合に、各候補を「ナップサック問題」に組み込まれていない評価指標に従って評価する。
【００９６】
本実施の形態においては、典型例として、通信負荷に関する予め定められた評価基準に従って、データセット５０に含めるべきプロセスデータ５２を決定する。
【００９７】
図７を参照して、決定手段３４０は、価値決定手段３４２と、候補算出手段３４４と、評価手段３４６と、判定手段３４８を含む。
【００９８】
価値決定手段３４２は、プロセスデータ５２の価値を決定する。たとえば、価値決定手段３４２は、システム全体におけるプロセスデータ５２の重要性を価値に変換する。具体的には、価値決定手段３４２は、購読リスト６１２を参照して、各ＨＭＩ２００において実行されているアプリケーション２２０毎に必要なプロセスデータ５２を特定し、各プロセスデータ５２の価値を決定し、プロセスデータ５２の各々の価値を示す価値情報３７０を生成する。
【００９９】
価値決定手段３４２は、たとえば、プロセスデータ５２が利用される頻度と、プロセスデータ５２を利用するＨＭＩ２００のシステムにおける重要性とからプロセスデータ５２の価値を概算する。すなわち、複数のプロセスデータ５２の各々が各アプリケーションにおいて利用される頻度、および、複数のプロセスデータ５２の各々に設定された重要度の少なくとも一方に基づく評価基準が用いられてもよい。
【０１００】
プロセスデータ５２を利用するＨＭＩ２００のシステムにおける重要性は、たとえば、ＨＭＩ情報３７６から算出される。ＨＭＩ情報３７６は、たとえば、いずれのＨＭＩ２００が親機として登録されており、いずれのＨＭＩ２００が補機として登録されているかを特定可能な情報を含む。ＨＭＩ情報３７６は、ＨＭＩ２００の利用頻度を示す稼働状況を含んでもよい。本実施の形態においては、ＨＭＩ情報３７６は、親機と補機とを示す情報とする。
【０１０１】
本実施の形態に係るＨＭＩ２００−１は、制御システム１において親機（メインで利用されるＨＭＩ）であり、ＨＭＩ２００−２は、制御システム１において補機（サブで利用されるＨＭＩ）である。当該情報が、ＨＭＩ情報３７６として登録されている。ＨＭＩ情報３７６は、たとえば、ＨＭＩ２００にアプリケーション２２０をインストールするとき、または、アプリケーション２２０を開発するとき等にユーザによって登録される。
【０１０２】
たとえば、一のプロセスデータ５２の価値ｐは、次の式（１）で算出される。
【０１０３】
【数１】
2020149632.tif 000003
【０１０４】
ここで、ｉは、ＨＭＩ２００の種類を特定するものであって、ｉ＝１は、ＨＭＩ２００−１を示し、ｉ＝２は、ＨＭＩ２００−２を示す。αは、ＨＭＩ情報３７６から得られるＨＭＩ２００のシステムにおける重要性である。ｎは、ＨＭＩ２００で実行されるアプリケーション２２０において当該プロセスデータ５２が利用される頻度を示す。たとえば、ＨＭＩ２００が５つのアプリケーション２２０を実行可能であり、その５つのアプリケーション２２０のうちの３つのアプリケーション２２０で特定のプロセスデータ５２が利用される場合、当該プロセスデータ５２が利用される頻度ｎは、３／５となる。なお、頻度ｎに、アプリケーションの利用頻度の実測値を反映させてもよい。
【０１０５】
なお、価値の算出方法は一例であって、たとえば、上記式（１）に、さらに、プロセスデータ５２そのものの価値を反映させてもよい。たとえば、エラーの発生の判定に利用されるプロセスデータ５２へは高い価値を付与し、ロギングに利用されるプロセスデータ５２へはエラーの発生の判定に利用されるプロセスデータ５２よりも低い価値を付与してもよい。
【０１０６】
図７中のｐＡは、プロセスデータ５２Ａの価値を、ｐＢは、プロセスデータ５２Ａの価値を、ｐＣは、プロセスデータ５２Ｃの価値を各々示しているものとする。なお、価値情報３７０は、予め定められているものであってもよい。すなわち、価値決定手段３４２は、購読リスト管理手段３２０が取得した各ＨＭＩ２００において実行されているアプリケーション２２０毎に必要なプロセスデータの各々の価値を予め定められた価値情報３７０に基づいて決定してもよい。
【０１０７】
候補算出手段３４４は、プロセスデータ５２のデータサイズを「重さ」、価値決定手段３４２が概算したプロセスデータ５２の価値を「価値」、一のパケットのデータ容量を「ナップサックの容量」として、一のパケットに格納したプロセスデータ５２の価値の和を最大化するプロセスデータ５２の組み合わせを決定する。
【０１０８】
プロセスデータ５２のデータサイズは、予め定められている。たとえば、データサイズに関する情報は、コントローラ１００が送信するプロセスデータ情報に含まれる。
【０１０９】
パケットのデータ容量は、容量情報３７２として得られる。容量情報３７２は、情報系ネットワーク２の性能として予め定められた情報であってもよく、また、ユーザが仮の値として設定した情報であってもよい。
【０１１０】
候補算出手段３４４は、決定した組み合わせを一のデータセットに含ませるべきプロセスデータ５２として候補データ３７４に格納する。候補算出手段３４４は、パケットに格納するプロセスデータ５２の候補の中から、候補データ３７４に格納したプロセスデータ５２を除外して、再度、一のパケットに格納したプロセスデータ５２の価値の和を最大化するプロセスデータ５２の組み合わせを決定する。
【０１１１】
すなわち、候補算出手段３４４は、評価基準として、データセットに含めるプロセスデータの価値を評価するための指標を含めて、プロセスデータ５２の組み合わせを決定する。その結果、たとえば、価値の高いプロセスデータ５２を優先して送信することができるような送信設定４００を設計できる。
【０１１２】
具体的には、決定した各データセット５０の価値を、当該データセット５０に含まれるプロセスデータ５２の価値に基づいて決定し、価値の高いデータセット５０を優先的に送信するような送信設定４００を設計することができる。
【０１１３】
候補算出手段３４４は、プロセスデータ５２の組み合わせの決定、決定した組み合わせの候補データ３７４への格納、およびパケットに格納するプロセスデータ５２の候補の中からの候補データ３７４に格納したプロセスデータ５２の除外を、パケットに格納するプロセスデータ５２の候補がなくなるまで繰り返す。
【０１１４】
候補算出手段３４４は、パケットに格納するプロセスデータ５２の候補がなくなるまでの一連の処理を複数回行い、複数の候補データ（第１候補データ３７４ａ，第２候補データ３７４ｂ・・・）を取得してもよい。一連の処理を複数回行う場合に、候補算出手段３４４は、一のパケットに格納したプロセスデータ５２の価値の和を最大化するプロセスデータ５２の組み合わせを決定するアルゴリズムを都度変更してもよい。アルゴリズムは、特に限定されるものではないが、たとえば、動的計画法、貪欲法、遺伝アルゴリズムなどがあげられる。
【０１１５】
また、同じアルゴリズムで一連の処理を実行した場合であっても、複数の解が得られたときには、複数の候補データが得られる。なお、一の候補データが得られた時点で、候補算出手段３４４の処理を終了するようにしてもよい。以下では、複数の候補データ３７４が得られたものとして説明する。
【０１１６】
評価手段３４６は、複数の候補データ３７４の各々を予め定められた指標に基づいて評価する。図７に示す例では、評価手段３４６は、通信負荷指標３５２、通信性能指標３５４、通信効率指標３５６、および変更負荷指標３５７の各々の指標に基づいて複数の候補データ３７４の各々を評価する。
【０１１７】
通信負荷指標３５２は、コントローラ１００がデータセット５０を送信する際の負荷を評価するための指標である。たとえば、通信負荷指標３５２は、候補データ３７４に含まれるデータセットの数、一のデータセットに格納するプロセスデータの数、一のデータセットのデータサイズなどを指標とする。
【０１１８】
候補データ３７４に含まれるデータセットの数が少ないと、コントローラ１００がデータセット５０を送信する回数を減らすことができ、データセットを送信する間隔を空けることができ、コントローラ１００への通信負荷を減らすことができる。
【０１１９】
すなわち、評価手段３４６は、通信負荷指標３５２に従って評価した場合、候補データ３７４に含まれるデータセットの数、一のデータセットに格納するプロセスデータの数、一のデータセットのデータサイズの各々が小さいほど、評価対象の候補データ３７４の評価を高くする。その結果、コントローラ１００にかかる負荷が小さくなるような送信設定４００を設計することができる。
【０１２０】
通信性能指標３５４は、ＨＭＩ２００へデータを配信する性能を評価するための指標であって、所定期間の間にＨＭＩ２００が受信可能な、当該ＨＭＩ２００において実行するアプリケーションにおいて利用するプロセスデータの種類を評価する指標である。たとえば、通信性能指標３５４は、ＨＭＩ２００に向けてデータセットが送付される周期、ＨＭＩ２００に向けて配信されるデータセット５０に含まれるプロセスデータ５２のうちのＨＭＩ２００において実行されるアプリケーションで利用されるプロセスデータ５２の種類などを指標とする。
【０１２１】
評価手段３４６は、通信性能指標３５４に従って評価した場合、所定期間の間にＨＭＩ２００に向けて配信されるデータセット５０に含まれるプロセスデータ５２の種類が多いほど、評価対象の候補データ３７４の評価を高くする。ただし、単に種類が多いのではなく、ＨＭＩ２００において利用されるプロセスデータ５２の種類が多いほど評価対象の候補データ３７４の評価は高くなる。その結果、プロセスデータ５２の値が更新されるタイミングと、アプリケーション２２０で利用されるタイミングとの間で生じるタイムラグを小さくすることのできる送信設定４００を設計することができる。すなわち、コントローラ１００の状態を正確にＨＭＩ２００が把握することができる。
【０１２２】
通信効率指標３５６は、コントローラ１００とＨＭＩ２００との間の通信効率を評価するための指標である。たとえば、通信効率指標３５６は、コントローラ１００とＨＭＩ２００とを通信可能に接続させる情報系ネットワーク２にかかる負荷として、所定期間に送付しなければならないデータ数（ｐｐｓ（packet per second）、ｂｐｓ（bit per second））などを指標とする。
【０１２３】
評価手段３４６は、通信効率指標３５６に従って評価した場合、所定期間に送付しなければならないデータ数が少ないほど、評価対象の候補データ３７４の評価を高くする。その結果、通信効率の良い送信設定４００を設計することができる。より具体的には、トラフィックを小さくすることができる。
【０１２４】
変更負荷指標３５７は、実行対象のアプリケーション２２０が変更されて、送信設定４００を変更することに伴う通信処理部８０の処理負担、各ＨＭＩ２００の処理負担、および調停手段３００の処理負担を評価するための指標である。
【０１２５】
判定手段３４８は、評価手段３４６が複数の指標に従って各々の候補データ３７４を評価した結果と優先度情報３５８とに基づいて、複数の候補データ３７４のうちのいずれの候補データ３７４が適当であるかを判定し、適当な候補データ３７４を決定結果とする。
【０１２６】
優先度情報３５８は、ユーザにより入力される情報であって、通信負荷、通信性能、および通信効率の優先度（重みづけ）を規定する。評価手段３４６によって各々の指標に従って複数の候補データ３７４を評価した場合であっても、すべての指標が最適となる候補データが存在しない場合もある。その場合に、優先度情報３５８を用いて各指標の優先度が規定されることにより、すべての指標が最適となる候補データが存在しない場合であっても、最適と考えられる候補データを決定できる。
【０１２７】
なお、図７に示した演算順序は一例であって、候補算出手段３４４は、評価手段３４６が参照する通信負荷指標３５２、通信性能指標３５４、および通信効率指標３５６のうちの少なくとも一の指標を考慮してプロセスデータ５２の組み合わせを決定してもよい。すなわち、複数の候補データ３７４を算出して各候補データ３７４を評価して送信設定４００を決定するという方法は一例であって、候補データ３７４を算出することなく、送信設定４００を決定してもよい。
【０１２８】
図７に示す例では、購読リスト管理手段３２０によって取得された購読対象の各プロセスデータ５２を送信可能な通信処理部８０は１つであるものとして説明した。なお、購読対象の各プロセスデータ５２が互いに異なる通信処理部８０から送信される場合、プロセスデータ取得手段３３０によって得られた情報に基づいて、購読対象の各プロセスデータ５２を通信処理部８０の種類毎にグループ化する。決定手段３４０は、グループごとに、データセットに含ませるべきプロセスデータの種類を決定する。
【０１２９】
＜Ｅ．ユーザインターフェイス＞
（Ｅ１．ＨＭＩ情報）
図８は、ＨＭＩ情報３７６を受け付けるユーザインターフェイス７００の一例を示す図である。ユーザインターフェイス７００は、ネットワーク構成を示すネットワーク構成領域７２０と、ＨＭＩ情報３７６を受け付ける受付領域７４０とを含む。ネットワーク構成領域７２０は、コントローラ１００（図中のＭａｓｔｅｒ）に接続されているＨＭＩ２００を示す。
【０１３０】
受付領域７４０は、コントローラ１００に接続されているＨＭＩ２００の優先度の指定を受け付ける。図８に示す例では、タブ７４２を操作することで「Ｈｉｇｈ」と「Ｌｏｗ］とのうちのいずれか一方を選択可能である。これにより、コントローラ１００の情報を表示可能な複数のＨＭＩ（ＨＭＩ−１，ＨＭＩ−２，ＨＭＩ−３）のうちのいずれのＨＭＩにプロセスデータ５２を優先して送付するかを規定できる。たとえば、複数のＨＭＩのうち、親機として機能するＨＭＩの優先度を高くし、他のＨＭＩの優先度は低くするようにして、親機と補機とを区別できるように登録してもよい。
【０１３１】
このように、各ＨＭＩの重要度をプロセスデータ５２の価値に反映することができ、たとえば、ユーザが指定した任意のＨＭＩ２００が実行するアプリケーションで利用されるプロセスデータを優先して配信できるような送信設定４００を設計できる。
【０１３２】
（Ｅ２．優先度情報）
図９は、優先度情報３５８を受け付けるユーザインターフェイス９００の一例を示す図である。ユーザインターフェイス９００は、送信設定４００を決定するためのパラメータの一つとして、通信処理部８０とＨＭＩ２００との通信を開始する前であって、管理手段のパラメータを設計する段階で提供される。
【０１３３】
ユーザインターフェイス９００は、評価指標を示す指標領域９２０と、評価指標の優先度の入力を受け付ける優先度受付領域９６０とを含む。優先度受付領域９６０のタブ９６２を操作して、各評価指標の優先度を入力する。
【０１３４】
すなわち、ユーザインターフェイス９００は、評価指標が複数設けられている場合に、各評価指標の重要度を受け付ける手段として機能する。ユーザインターフェイス９００により、ユーザは、各評価指標の重要度を変えることで、任意の送信設定４００を設計できる。たとえば、コントローラ１００が制御プログラム１２０を実行する処理速度を重要視するような場合には、コントローラ１００への処理負荷に関する指標の重要度を高くすればよい。一方、コントローラ１００の性能が十分に高く、コントローラ１００への処理負荷を十分に考慮しなくとも、コントローラ１００が制御プログラム１２０を十分に実行できるような場合、コントローラ１００への処理負荷に関する指標の重要度を下げるようにしてもよい。
【０１３５】
＜Ｆ．シーケンス＞
図１０〜図１２は、中継装置６０による一連の処理の流れを示すシーケンス図である。以下、ステップを単に「Ｓ」と示す。
【０１３６】
Ｓ１０２において、コントローラ１００は、制御手段１０２が管理するプロセスデータ５２の種類を示す情報の登録を行う。
【０１３７】
Ｓ１０４において、中継装置６０は、コントローラ１００によって登録された情報に基づいて、プロセスデータリスト６２２を生成または更新する。
【０１３８】
Ｓ１０６において、ＨＭＩ２００−１がアプリケーション２２０−１ａの実行を開始したとする。
【０１３９】
Ｓ１０８において、ＨＭＩ２００−１は、アプリケーション２２０−１ａの実行開始に伴って、購読管理情報９４を参照して、アプリケーション２２０−１ａの実行に必要なプロセスデータ５２を特定する（購読対象の特定）。
【０１４０】
Ｓ１１０において、ＨＭＩ２００−１は、購読の開始を中継装置６０に向けて通知する（サブスクリプション開始要求）。Ｓ１１０におけるサブスクリプション開始要求には、購読対象のプロセスデータ５２を特定可能な情報が含まれる。図１０に示す例では、プロセスデータＡ，Ｂの購読を開始する旨の通知がされる。
【０１４１】
Ｓ１１１において、中継装置６０は、サブスクリプション開始要求に基づいて、購読リスト６１２を更新する。
【０１４２】
Ｓ１１２において、中継装置６０は、送信設定４００を決定するための演算を行う。具体的には、中継装置６０は、購読リスト６１２とプロセスデータリスト６２２とを参照して、プロセスデータＡ，Ｂの各々について、プロセスデータＡ，Ｂの各々が送信されるようにデータセット５０に格納するプロセスデータの種類を決定する。
【０１４３】
図１０に示す例では、Ｓ１１２において、データセット１にプロセスデータＡ、Ｂを格納することが決定される。
【０１４４】
Ｓ１１３において、中継装置６０は、リンク情報９８を生成する。具体的には、中継装置６０は、データセットのヘッダと、当該ヘッダの付されたデータ内のいずれの位置にいずれの種類のプロセスデータ５２を格納するべきかを決定する。データ内の各位置は、タグ名によって特定できる。たとえば、中継装置６０は、ヘッダ名と、タグ名と、当該タグ名の格納先に格納されているプロセスデータの種類とを特定可能なリンク情報９８を生成する。
【０１４５】
Ｓ１１４において、中継装置６０は、データセット１にプロセスデータＡ、Ｂを格納することを規定する送信設定４００をコントローラ１００に送信する。
【０１４６】
Ｓ１１６において、コントローラ１００は、送られた送信設定４００を登録する。
Ｓ１１８において、中継装置６０は、リンク情報９８をＨＭＩ２００−１に送信する。
【０１４７】
Ｓ１２０において、ＨＭＩ２００−１はリンク情報９８を更新する。図１０に示す例では、ヘッダ名がデータセット１のデータセットのうち、タグ１に格納されたデータがプロセスデータＡであり、タグ２に格納されたデータがプロセスデータＢであることがリンク情報９８として登録される。
【０１４８】
Ｓ１２１において、中継装置６０は、トピックリスト６８２を更新する。さらに、中継装置６０は、決定した送信設定４００および当該送信設定４００の決定時の購読リスト６１２を蓄積情報６２３として保存してもよい。
【０１４９】
Ｓ１２２において、コントローラ１００は、送信設定４００に従い、プロセスデータＡの値およびプロセスデータＢの値を格納してデータセット１を生成するとともに生成したデータセット１の送信（パブリッシュ）を開始する。データセット１は、たとえば、周期的に送信される。
【０１５０】
Ｓ１２４において、中継装置６０は、トピックリスト６８２を参照してコントローラ１００から送信されたデータセット１をＨＭＩ２００−１に向けて送信する。
【０１５１】
Ｓ１２６において、ＨＭＩ２００−１は、送信されたデータセット１を読み込み、プロセスデータＡおよびプロセスデータＢの値を取得して、アプリケーション２２０−１ａの実行に利用する。
【０１５２】
Ｓ１２２〜Ｓ１２６の処理（Ｓ１２２０とする）は、データセット１に関する送信設定４００が変更されるまで、周期的に繰り返される。
【０１５３】
図１１を参照して、新たにアプリケーションの実行が開始したときの処理について説明する。図１１に示す例では、ＨＭＩ２００−２において新たにアプリケーション２２０−２ａの実行が開始されたものとする。なお、図１１の処理は、図１０の処理の続きであるとする。
【０１５４】
Ｓ１２８において、ＨＭＩ２００−２がアプリケーション２２０−２ａの実行を開始したとする。
【０１５５】
Ｓ１３０において、ＨＭＩ２００−２は、アプリケーション２２０−２ａの実行開始に伴って、購読管理情報９４を参照して、アプリケーション２２０−２ａの実行に必要なプロセスデータ５２を特定する（購読対象の特定）。
【０１５６】
Ｓ１３２において、ＨＭＩ２００−２は、購読の開始を中継装置６０に向けて通知する（サブスクリプション開始要求）。Ｓ１３２におけるサブスクリプション開始要求には、購読対象のプロセスデータ５２を特定可能な情報が含まれる。図１１に示す例では、プロセスデータＡ，Ｄの購読を開始する旨の通知がされる。
【０１５７】
Ｓ１３３において、中継装置６０は、サブスクリプション開始要求に基づいて、購読リスト６１２を更新する。
【０１５８】
Ｓ１３４において、中継装置６０は、送信設定４００を決定するための演算を行う。具体的には、中継装置６０は、購読リスト６１２とプロセスデータリスト６２２と蓄積情報６２３とを参照して、購読対象のプロセスデータ５２をコントローラ１００から送信するための送信設定４００を決定する。中継装置６０は、ＨＭＩ２００−１がプロセスデータＡ，Ｂの購読を継続していること、および、現在の送信設定４００を踏まえて、送信設定４００を決定するための演算を行う。すなわち、中継装置６０は、プロセスデータＡ，ＢをＨＭＩ２００−１に、プロセスデータＡ，ＤをＨＭＩ２００−２に、それぞれ送信できるように送信設定４００を決定する。
【０１５９】
図１１に示す例では、Ｓ１３４において、データセット１にプロセスデータＡ，Ｂ，Ｄを格納することが決定される。
【０１６０】
Ｓ１３５において、中継装置６０は、リンク情報９８を生成する。
Ｓ１３６において、中継装置６０は、データセット１にプロセスデータＡ，Ｂ，Ｄを格納することを規定する送信設定４００をコントローラ１００に送信する。
【０１６１】
Ｓ１３８において、コントローラ１００は、送られた送信設定４００を登録する。
Ｓ１４０において、中継装置６０は、リンク情報９８をＨＭＩ２００−１に送信する。
【０１６２】
Ｓ１４２において、ＨＭＩ２００−１はリンク情報９８を更新する。図１１に示す例では、ヘッダ名がデータセット１のデータセットのうち、タグ１に格納されたデータがプロセスデータＡであり、タグ２に格納されたデータがプロセスデータＢであり、タグ３に格納されたデータがダミーデータであることがリンク情報９８として登録される。ここで、ダミーデータとは、ＨＭＩ２００−１が購読対象としていないプロセスデータのことを意味する。
【０１６３】
Ｓ１４４において、中継装置６０は、リンク情報９８をＨＭＩ２００−２に送信する。
Ｓ１４６において、ＨＭＩ２００−２はリンク情報９８を更新する。図１１に示す例では、ヘッダ名がデータセット１のデータセットのうち、タグ１に格納されたデータがプロセスデータＡであり、タグ２に格納されたデータがダミーデータであり、タグ３に格納されたデータがプロセスデータＤであることがリンク情報９８として登録される。
【０１６４】
Ｓ１４７において、中継装置６０は、トピックリスト６８２を更新する。さらに、中継装置６０は、決定した送信設定４００および当該送信設定４００の決定時の購読リスト６１２を蓄積情報６２３として保存してもよい。
【０１６５】
Ｓ１４８において、コントローラ１００は、送信設定４００に従い、プロセスデータＡの値、プロセスデータＢの値、およびプロセスデータＤの値を格納してデータセット１を生成するとともに生成したデータセット１の送信（パブリッシュ）を開始する。データセット１は、たとえば、周期的に送信される。
【０１６６】
Ｓ１５０において、中継装置６０は、トピックリスト６８２を参照してコントローラ１００から送信されたデータセット１をＨＭＩ２００−１に向けて送信する。
【０１６７】
Ｓ１５２において、ＨＭＩ２００−１は、送信されたデータセット１を読み込み、プロセスデータＡおよびプロセスデータＢの値を取得して、アプリケーション２２０−１ａの実行に利用する。
【０１６８】
Ｓ１５４において、中継装置６０は、トピックリスト６８２を参照してコントローラ１００から送信されたデータセット１をＨＭＩ２００−２に向けて送信する。
【０１６９】
Ｓ１５６において、ＨＭＩ２００−２は、送信されたデータセット１を読み込み、プロセスデータＡおよびプロセスデータＤの値を取得して、アプリケーション２２０−２ａの実行に利用する。
【０１７０】
このように、中継装置６０は、ＨＭＩ２００−２から取得したＨＭＩ２００−２で実行されるアプリケーションが利用するプロセスデータを特定するための情報に基づいて、新たに決定されたプロセスデータの内容をＨＭＩ２００−２だけではなく、ＨＭＩ２００−１にも通知する。これによって、ＨＭＩ２００−１およびＨＭＩ２００−２は、それぞれで実行されているアプリケーションに必要なプロセスデータを取得できる。
【０１７１】
Ｓ１４８〜Ｓ１５６の処理（Ｓ１４８０とする）は、データセット１に関する送信設定４００が変更されるまで、周期的に繰り返される。すなわち、Ｓ１２２０の処理は、Ｓ１３８において送信設定４００が更新されると、実行されなくなる。
【０１７２】
図１２を参照して、実行対象のアプリケーション２２０が切り替わったときの処理について説明する。図１２に示す例では、ＨＭＩ２００−１においてページの切り替えが行われて、実行対象のアプリケーション２２０がアプリケーション２２０−１ａからアプリケーション２２０−１ｂに切り替わったとする。図１２の処理は、図１１の処理の続きであるとする。
【０１７３】
Ｓ１６０において、ＨＭＩ２００−１は、アプリケーション２２０−１ａの実行を停止し、Ｓ１６２において、アプリケーション２２０−１ｂの実行を開始する。
【０１７４】
Ｓ１０８において、ＨＭＩ２００−１は、アプリケーション２２０−１ａの実行停止およびアプリケーション２２０−１ｂの実行開始に伴って、購読を停止するプロセスデータ５２と、購読を開始するプロセスデータ５２とを、購読管理情報９４を参照して特定する（購読対象の特定）。
【０１７５】
Ｓ１６６において、ＨＭＩ２００−１は、購読の停止を中継装置６０に向けて通知する（サブスクリプション停止要求）。Ｓ１６６におけるサブスクリプション停止要求には、購読を停止するプロセスデータ５２を特定可能な情報が含まれる。図１２に示す例では、プロセスデータＡ，Ｂの購読を停止する旨の通知がされる。
【０１７６】
Ｓ１６８において、ＨＭＩ２００−１は、購読の開始を中継装置６０に向けて通知する（サブスクリプション開始要求）。図１２に示す例では、プロセスデータＸの購読を停止する旨の通知がされる。
【０１７７】
Ｓ１６９において、中継装置６０は、サブスクリプション停止要求およびサブスクリプション開始要求に基づいて、購読リスト６１２を更新する。
【０１７８】
Ｓ１７０において、中継装置６０は、送信設定４００を決定するための演算を行う。具体的には、中継装置６０は、購読リスト６１２とプロセスデータリスト６２２と蓄積情報６２３とを参照して、購読対象のプロセスデータ５２をコントローラ１００から送信するための送信設定４００を決定する。中継装置６０は、ＨＭＩ２００−２がプロセスデータＡ，Ｄの購読を継続していること、および、現在の送信設定４００を踏まえて、送信設定４００を決定するための演算を行う。すなわち、中継装置６０は、プロセスデータＸをＨＭＩ２００−１に、プロセスデータＡ，ＤをＨＭＩ２００−２に、それぞれ送信できるように送信設定４００を決定する。
【０１７９】
図１２に示す例では、Ｓ１７０において、データセット１にプロセスデータＡ，Ｂ，Ｄを、データセット２にプロセスデータＸを格納することが決定される。すなわち、データセット１に格納するプロセスデータ５２の種類を変更することなく、新たにデータセット２の送信を開始することを、中継装置６０は決定する。
【０１８０】
Ｓ１７１において、中継装置６０は、リンク情報９８を生成する。なお、図１２に示す例では、送信設定４００の変更により、データセット１のＨＭＩ２００−１への送信を停止し、新たにデータセット２のＨＭＩ２００−１への送信を開始することが変更されるだけであり、データセット１のＨＭＩ２００−１への送信に変更はない。そのため、中継装置６０は、Ｓ１７１において、ＨＭＩ２００−１に対するリンク情報９８を生成する。
【０１８１】
Ｓ１７２において、中継装置６０は、コントローラ１００に向けて、プロセスデータＸを格納したデータセット２を、新たに送信する旨の通知を行う（送信設定）。
【０１８２】
Ｓ１７４において、コントローラ１００は、送られた送信設定を登録する。具体的には、データセット１に対する設定を変更することなく、新たにデータセット２を生成する旨の内容を送信設定４００として登録する。
【０１８３】
Ｓ１７６において、中継装置６０は、リンク情報９８をＨＭＩ２００−１に送信する。Ｓ１７８において、ＨＭＩ２００−１はリンク情報９８を更新する。図１２に示す例では、ヘッダ名がデータセット２のデータセットのうち、タグ１に格納されたデータがプロセスデータＸであることがリンク情報９８として登録される。ここで、データセット１に格納されるプロセスデータ５２をＨＭＩ２００−１がアプリケーション２２０−２ｂの実行に利用しないため、既に登録されているデータセット１に関する情報は破棄されてもよい。
【０１８４】
また、中継装置６０は、ＨＭＩ２００−２に向けてはリンク情報９８を新たに送信しなくともよい。ＨＭＩ２００−２がアプリケーション２２０−２ｂの実行に利用するデータセット１を生成するための設定に変更はない。また、新たに生成されるデータセット２に格納されるプロセスデータＸをＨＭＩ２００−２がアプリケーション２２０−２ｂの実行に利用しない。すなわち、ＨＭＩ２００−２は、新たに、データセット２に関する情報を取得する必要がなく、データセット１を特定することができればアプリケーション２２０−２ｂを実行できる。
【０１８５】
Ｓ１７９において、中継装置６０は、トピックリスト６８２を更新する。また、中継装置６０は、決定した送信設定４００および当該送信設定４００の決定時の購読リスト６１２を蓄積情報６２３として保存する。
【０１８６】
Ｓ１８０において、コントローラ１００は、送信設定４００に従い、プロセスデータＡの値、プロセスデータＢの値、およびプロセスデータＤの値を格納してデータセット１を生成するとともに生成したデータセット１の送信（パブリッシュ）を行う。
【０１８７】
Ｓ１８２において、中継装置６０は、コントローラ１００から送信されたデータセット１をＨＭＩ２００−２に向けて送信する。
【０１８８】
Ｓ１８４において、ＨＭＩ２００−２は、送信されたデータセット１を読み込み、プロセスデータＡおよびプロセスデータＤの値を取得して、アプリケーション２２０−２ａの実行に利用する。
【０１８９】
Ｓ１８６において、コントローラ１００は、送信設定４００に従い、プロセスデータＸの値を格納してデータセット２を生成するとともに生成したデータセット２の送信（パブリッシュ）を行う。
【０１９０】
Ｓ１８８において、中継装置６０は、コントローラ１００から送信されたデータセット２をＨＭＩ２００−１に向けて送信する。
【０１９１】
Ｓ１９０において、ＨＭＩ２００−１は、送信されたデータセット２を読み込み、プロセスデータＸの値を取得して、アプリケーション２２０−１ｂの実行に利用する。
【０１９２】
ここで、Ｓ１８０〜Ｓ１８４の処理をＳ１８００とし、図１１に示したＳ１４８０の処理と比較する。Ｓ１８００とＳ１４８０とを比較すると、中継装置６０がＨＭＩ２００−１に向けてデータセット１を送信する処理（Ｓ１５０）および、ＨＭＩ２００−１が送信されたデータセット１のデータを読み込む処理（Ｓ１５２）をＳ１８００では行わない点で異なる以外、残りの処理は共通している。
【０１９３】
すなわち、中継装置６０の処理が変更されるのみで、コントローラ１００およびＨＭＩ２００−２の処理に変更はない。
【０１９４】
＜Ｇ．ハードウェア構成＞
以下、制御システム１に含まれる各装置のハードウェア構成の一例を説明する。
【０１９５】
（Ｇ１．中継装置６０のハードウェア構成）
図１３は、中継装置６０のハードウェア構成の一例を示す模式図である。図１３を参照して、中継装置６０は、プロセッサ６１と、揮発性メモリ６４と、不揮発性メモリ６５と、通信ＩＦ６７とを含む。これらのコンポーネントは、プロセッサバス６８を介して接続されている。
【０１９６】
プロセッサ６１は、ＣＰＵ（Central Processing Unit）やＧＰＵ（Graphical Processing Unit）などで構成され、不揮発性メモリ６５に格納されたプログラムを読出して、揮発性メモリ６４に展開して実行することで、コントローラ１００とＨＭＩ２００との間の通信を中継するとともに、送信設定４００を決定するための機能を提供する。
【０１９７】
揮発性メモリ６４は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などで構成される。不揮発性メモリ６５は、たとえば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などで構成される。
【０１９８】
不揮発性メモリ６５は、基本的な機能を実現するためのＯＳ（図示省略）に加えて、中継プログラム１３１０、購読リスト６１２、プロセスデータリスト６２２、蓄積情報６２３、トピックリスト６８２、評価情報１３２０、および性能情報１３４０を格納する。
【０１９９】
中継プログラム１３１０は、コントローラ１００とＨＭＩ２００との間の通信を中継するとともに、送信設定４００を決定するためのプログラムであって、プロセッサ６１により実行されることで、図６および図７に示した各種手段の機能を提供する。中継プログラム１３１０は、調停手段３００として機能する調停プログラム１３１２と、送受信管理手段６８０として機能する通信プログラム１３１４とを含む。
【０２００】
評価情報１３２０は、図７に示した通信負荷指標３５２、通信性能指標３５４、通信効率指標３５６、および変更負荷指標３５７を含む。評価情報１３２０は、ＨＭＩ情報３７６および優先度情報３５８を含んでもよい。すなわち、評価情報１３２０は、決定手段３４０が参照する評価基準３６０に関する情報である。
【０２０１】
性能情報１３４０は、容量情報３７２を含む情報であって、コントローラ１００、情報系ネットワーク２、およびＨＭＩ２００の性能を示す情報である。
【０２０２】
なお、プロセッサ６１がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（たとえば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）など）を用いて実装してもよい。また、中継装置６０が提供する機能は、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【０２０３】
不揮発性メモリ６５に格納された各種プログラムは、コンピュータ読取可能な記録媒体を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。
【０２０４】
通信ＩＦ６７は、情報系ネットワーク２に接続された各装置（コントローラ１００、ＨＭＩ２００）との間のデータの遣り取りを担当する。
【０２０５】
以上のように、中継装置６０は、あるタイミングにおける最適な送信設定４００を暫定的に決定し、ネットワーク上で実行されるアプリケーション２２０の変更に応じて、送信設定４００を変更する。なお、最適な送信設定４００とは、決定手段３４０により求められた送信設定４００であって、何を以て「最適な送信設定４００」というかは、決定手段３４０が参照する評価基準３６０に応じて異なる。
【０２０６】
中継装置６０の利用場面は幅広く、中継装置６０は、ＨＭＩ２００とコントローラ１００との通信を開始するときから終了するときまで、一貫して利用可能され得る。
【０２０７】
（Ｇ２．ＨＭＩのハードウェア構成）
図１４は、ＨＭＩ２００のハードウェア構成の一例を示す模式図である。ＨＭＩ２００は、一例として、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコン）を用いて実現される。ＨＭＩ２００は、据え置き型でもよいし、コントローラ１００が配置される製造現場では可搬性に優れたノート型のパーソナルコンピュータの形態で提供されてもよい。図１４を参照して、ＨＭＩ２００は、プロセッサ２１０と、タッチパネル２４０と、揮発性メモリ２５０と、不揮発性メモリ２７０と、通信ＩＦ２９２と、ＵＳＢコントローラ２９４とを含む。これらのコンポーネントは、プロセッサバス２９６を介して接続されている。
【０２０８】
プロセッサ２１０は、ＣＰＵやＧＰＵなどで構成され、不揮発性メモリ２７０に格納されたプログラムを読み出して、揮発性メモリ２５０に展開して実行することで、制御プログラム１２０の実行によって得られる各種情報をタッチパネル２４０に出力する。
【０２０９】
揮発性メモリ２５０は、ＤＲＡＭやＳＲＡＭなどで構成される。不揮発性メモリ２７０は、たとえば、ＨＤＤやＳＳＤなどで構成される。
【０２１０】
不揮発性メモリ２７０は、基本的な機能を実現するためのＯＳ（図示省略）に加えて、ＯＰＣ  ＵＡプログラム２６０と、購読管理情報９４と、リンク情報９８と、１または複数のアプリケーション２２０と、マッピング情報２２２とを格納する。
【０２１１】
ＯＰＣ  ＵＡプログラム２６０は、ＨＭＩ２００をサブスクライバーとして機能させるためのプログラムであって、コントローラ１００とＨＭＩ２００との間で、ＯＰＣ  ＵＡに従った通信を行うためのプログラムである。プロセッサ２１０がＯＰＣ  ＵＡプログラム２６０を実行することで、図４に示した通信処理部９０に係る機能が提供される。ＯＰＣ  ＵＡプログラム２６０は、たとえば、他の外部記憶媒体（たとえばメモリカード、ネットワーク上のサーバ装置）から、不揮発性メモリ２７０にインストールされる。
【０２１２】
なお、プロセッサ２１０がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。また、ＨＭＩ２００が提供する機能は、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【０２１３】
タッチパネル２４０は、ディスプレイである表示部２４２と、遊技者の操作を受け付ける入力部２４４とを含む。なお、表示部２４２と入力部２４４とが別体で構成されていてもよい。
【０２１４】
通信ＩＦ２９２は、コントローラ１００とのデータの遣り取りを担当する。ＵＳＢコントローラ２９４は、ＵＳＢ接続を介して、任意の情報処理装置との間のデータの遣り取りを担当する。
【０２１５】
（Ｇ３．コントローラ１００のハードウェア構成）
図１５は、コントローラ１００のハードウェア構成の一例を示す模式図である。図１５を参照して、コントローラ１００は、主たるコンポーネントとして、プロセッサ１１０と、チップセット１９６と、不揮発性メモリ１７０と、揮発性メモリ１５０と、制御系ネットワークＩＦ１９１と、情報系ネットワークＩＦ１９２と、ＵＳＢコントローラ１９３と、メモリカードＩＦ１９４と、内部バスコントローラ１９５とを含む。
【０２１６】
プロセッサ１１０は、ＣＰＵやＧＰＵなどで構成され、不揮発性メモリ１７０に格納された各種プログラムを読み出して、揮発性メモリ１５０に展開して実行することで、フィールドデバイス５００の制御および、パブリッシャーとしての機能を実現する。チップセット１９６は、プロセッサ１１０と各コンポーネントとの間のデータの遣り取りを仲介することで、コントローラ１００全体としての処理を実現する。
【０２１７】
不揮発性メモリ１７０には、システムプログラム１７２と、制御プログラム１２０と、ＯＰＣ  ＵＡプログラム１８０と、送信設定４００とが格納される。
【０２１８】
システムプログラム１７２は、コントローラ１００の基本的な機能を提供するプログラムである。制御プログラム１２０は、典型的には、ユーザがサポート装置を操作して設計することで生成されるユーザプログラムである。制御プログラム１２０とシステムプログラム１７２とが協働してユーザにおける制御目的を実現することで、フィールドデバイス５００が制御される。プロセッサ１１０が、システムプログラム１７２を実行することで、制御手段１０２の機能が提供され、制御プログラム１２０の実行と、制御プログラム１２０の実行に伴うプロセスデータ５２の更新を行う。
【０２１９】
ＯＰＣ  ＵＡプログラム１８０は、コントローラ１００をパブリッシャーとして機能させるためのプログラムであって、コントローラ１００とＨＭＩ２００との間で、ＯＰＣ  ＵＡに従った通信を行うためのプログラムである。プロセッサ１１０が、ＯＰＣ  ＵＡプログラム１８０を実行することで、図５に示した通信処理部８０に係る機能が提供される。ＯＰＣ  ＵＡプログラム１８０は、たとえば、システムプログラムの一種として予めコントローラ１００にインストールされていてもよく、また、他の外部記憶媒体（たとえばメモリカード１９４Ａ、ネットワーク上のサーバ装置）から、不揮発性メモリ１７０にインストールされてもよい。
【０２２０】
なお、プロセッサ１１０がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。また、コントローラ１００の主要部を、汎用的なアーキテクチャに従うハードウェア（たとえば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳを並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【０２２１】
制御系ネットワークＩＦ１９１は、フィールドデバイス５００との間のデータの遣り取りを担当する。
【０２２２】
情報系ネットワークＩＦ１９２は、中継装置６０との間のデータの遣り取りを担当する。
【０２２３】
ＵＳＢコントローラ１９３は、ＵＳＢ接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。
【０２２４】
メモリカードＩＦ１９４は、メモリカード１９４Ａを着脱可能に構成されており、メモリカード１９４Ａに対して制御プログラムや各種設定などのデータを書込み、あるいは、メモリカード１９４Ａから制御プログラムや各種設定などのデータを読出すことが可能になっている。
【０２２５】
内部バスコントローラ１９５は、コントローラ１００に搭載される図示しないＩ／Ｏユニットなどとの間でデータを遣り取りするインターフェイスである。内部バスには、メーカ固有の通信プロトコルを用いてもよいし、いずれかの産業用ネットワークプロトコルと同一あるいは準拠した通信プロトコルを用いてもよい。
【０２２６】
＜Ｈ．中継装置の変形例＞
上記実施の形態の中継装置６０は、評価基準３６０が変動しないものとして説明した。アプリケーションの利用頻度、情報系ネットワーク２の通信帯域の利用状況、コントローラ１００のプロセッサ１１０にかかる負荷の状況などに応じて、評価基準３６０ａを更新してもよい。
【０２２７】
図１６は、変形例における中継装置６０ａの機能構成を示す図である。図１６においては、上記実施の形態に係る中継装置６０の機能と異なる部分だけを示している。
【０２２８】
中継装置６０ａは、監視手段３６２、更新手段３６４をさらに含む。監視手段３６２は、アプリケーションの利用頻度、情報系ネットワーク２の通信帯域の利用状況、およびコントローラ１００にかかる負荷の状況を監視する。なお、監視手段３６２は、蓄積情報６２３に基づいて、アプリケーション２２０の利用頻度を特定してもよい。
【０２２９】
更新手段３６４は、監視手段３６２の監視結果に評価基準３６０ａに関する情報を更新する。更新手段３６４は、評価基準３６０ａに関する情報に加えて、コントローラ１００、情報系ネットワーク２、およびＨＭＩ２００の性能などを更新してもよい。
【０２３０】
決定手段３４０は、更新手段３６４によって更新された評価基準３６０ａに従って、各データセット５０に含ませるべきプロセスデータ５２を決定して、送信設定４００を決定する。
【０２３１】
＜Ｉ．制御システムの変形例＞
上記実施の形態において、制御システム１は中継装置６０により調停手段が実装されるものとした。なお、調停手段は、コントローラにより実装されてもよい。図１７は、変形例における制御システム１ｂの概要を示す図である。
【０２３２】
制御システム１ｂは、コントローラ１００ｂと、複数のＨＭＩ２００（２００−１，２００−２）とを含む。コントローラ１００ｂと各ＨＭＩ２００とは、互いに情報系ネットワーク２を介して通信可能に接続されている。
【０２３３】
コントローラ１００ｂは、調停手段３００ｂを含む点でコントローラ１００と異なる。調停手段３００ｂは、購読リスト管理手段３２０ｂと、決定手段３４０ｂと、通知手段３５０ｂとを含む。コントローラ１００ｂに含まれる制御手段１０２は、プロセスデータ５２を管理するため、上記実施の形態におけるプロセスデータ取得手段３３０の機能を果たす。
【０２３４】
購読リスト管理手段３２０ｂは、各ＨＭＩ２００からのサブスクリプション停止要求およびサブスクリプション開始要求に基づいて購読リスト６１２ｂを更新する。購読リスト６１２ｂは、ＨＭＩ２００と、当該ＨＭＩ２００が購読対象としているプロセスデータ５２とを対応させて記憶する必要はなく、制御システム１ｂ全体で購読対象となっているプロセスデータ５２を特定可能な情報であればよい。
【０２３５】
決定手段３４０ｂは、制御手段１０２が管理するプロセスデータ５２の種類と、購読リスト６１２ｂとに基づいて、送信設定４００を決定する。また、決定手段３４０ｂは、送信設定４００に従い、各データセット５０のヘッダ名と、タグ名と、当該タグ名の格納先に格納されているプロセスデータの種類とを特定可能なリンク情報９８を生成する。
【０２３６】
通知手段３５０ｂは、生成したリンク情報９８をマルチキャストで各ＨＭＩ２００に向けて配信する。
【０２３７】
コントローラ１００ｂの通信処理部８０は、決定手段３４０ｂが決定した送信設定４００に従いデータセット５０を生成して、マルチキャストで各ＨＭＩ２００に向けて送信する。
【０２３８】
各ＨＭＩ２００は、リンク情報９８に基づき、配信されたデータセット５０から購読対象のプロセスデータ５２の値を取得する。
【０２３９】
なお、制御システム１ｂは、複数のコントローラ１００ｃを含んでいてもよい。各コントローラ１００ｃは、購読リスト６１２において購読対象となっているプロセスデータ５２のうち、当該コントローラ１００ｃにおいて管理しているプロセスデータ５２を特定し、当該プロセスデータ５２を送信するための送信設定４００の決定および、決定した送信設定４００に基づくリンク情報９８の生成を行う。各ＨＭＩ２００は、各コントローラ１００ｃのリンク情報９８を有し、各リンク情報９８に基づき、配信されたデータセット５０から購読対象のプロセスデータ５２の値を取得する。
【０２４０】
＜Ｊ．その他の変形例＞
（Ｊ１．ＨＭＩ２００が送信する情報）
ＨＭＩ２００は、サブスクリプション開始要求とサブスクリプション停止要求として、購読の開始または停止するプロセスデータを中継装置６０に向けて通知するものとした。
【０２４１】
なお、中継装置が各ＨＭＩの購読管理情報９４を含んでいる場合、各ＨＭＩ２００からは、実行を開始したアプリケーション２２０と、実行を停止したアプリケーション２２０とを特定可能な情報が中継装置に向けて通知されればよい。
【０２４２】
中継装置が購読管理情報９４を含んでいる場合、送信設定４００の生成を繰り返す毎に、各アプリケーションを実行するために生成されるべきデータセットが決まっていくこととなり、送信設定４００の生成に要する演算を容易にすることができる。
【０２４３】
（Ｊ３．調停手段の実装方法の変形例）
上記実施の形態において、調停手段は、コントローラ１００とＨＭＩ２００との間のデータの遣り取りを中継する中継装置６０を含むものとして説明した。なお、調停手段は、調停手段のみを含む設定装置として実装されてもよい。設定装置は、各コントローラ１００と、各ＨＭＩ２００と通信可能に接続されていればよい。
【０２４４】
たとえば、設定装置は、コントローラ１００とＨＭＩ２００との間のデータの遣り取りを中継しないため、コントローラ１００に向けて送信設定４００を通知し、コントローラ１００が生成するデータセットに付すヘッダおよび、当該ヘッダ内のいずれの位置にいずれのプロセスデータを格納するかを示す情報を当該コントローラ１００から受けたのち、リンク情報９８を生成してもよい。
【０２４５】
また、調停手段にかかる機能を、ＨＭＩが備えていてもよい。調停手段にかかる機能は、パブリッシャーとサブスクライバーとで構成されたネットワーク上の装置のうち、いずれの装置が備えていてもよい。たとえば、サブスクライバーとして機能する装置が複数ある場合に、当該複数の装置のうちの一の装置だけが調停手段にかかる機能を備えていてもよい。また、パブリッシャーとして機能する装置が複数ある場合に、当該複数の装置のうちの一の装置だけが調停手段にかかる機能を備えていてもよい。
【０２４６】
（Ｊ４．ＨＭＩおよびコントローラの変形例）
上記実施の形態においては、ＨＭＩがサブスクライバー、コントローラがパブリッシャーであるとして説明した。ＨＭＩおよびコントローラの各々がサブスクライバーとパブリッシャーとの機能両方を含んでいてもよい。
【０２４７】
この場合、制御プログラムは、ＨＭＩから配信されるデータを利用可能に構成される。ＨＭＩの送信設定は、制御プログラムに応じて、調停手段によって決定してもよい。ＨＭＩの送信設定の決定方法には、上記で説明した、コントローラ１００の送信設定４００の決定方法を利用できる。また、この場合に、ＨＭＩが調停手段を備えてもよい。
【０２４８】
（Ｊ５．送信設定の決定方法に関する変形例）
一のデータセット５０に含まれるすべてのプロセスデータ５２を一のアプリケーションが利用するように送信設定４００を生成する必要はない。この場合、評価基準３６０に、データセット５０の中からアプリケーション２２０に利用するプロセスデータ５２を仕分けるための処理にかかる負荷に関する指標を含めてもよい。
【０２４９】
また、プロセスデータ５２がコントローラ１００で更新される周期、および、アプリケーション２２０において利用される周期を考慮して送信設定４００を生成してもよい。
【０２５０】
§３．付記
以上のように、上記の実施の形態は以下のような開示を含む。
【０２５１】
＜構成１＞
制御対象を制御するための制御プログラム（１２０ａ）を実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータ（５２）を管理する制御手段（１０２ａ）と、
前記制御手段が管理する前記複数のプロセスデータの少なくとも一部のプロセスデータの値を含むデータセット（５０）を生成して送信する送信手段（８０ａ）と、
前記送信手段により送信されるデータセットを参照してアプリケーションを実行するアプリケーション実行手段（２００ａ）と、
前記送信手段と前記アプリケーション実行手段との間で遣り取りされるデータセットを調停する調停手段（３００ａ）とを備え、
前記調停手段は、
前記制御手段が管理する前記複数のプロセスデータに関する情報を取得する第１取得手段（３２０ａ）と、
前記アプリケーション実行手段で実行されているアプリケーションの情報を取得する第２取得手段（３３０ａ）と、
前記第１取得手段が取得した前記複数のプロセスデータに関する情報および前記第２取得手段が取得した前記実行されているアプリケーションの情報に基づいて、前記データセットに含めるべきプロセスデータを決定する決定手段（３４０ａ）と、
前記決定手段が決定した前記データセットに含めるべきプロセスデータの内容を前記送信手段および前記アプリケーション実行手段の各々に通知する通知手段（３５０ａ）とを含む、制御システム。
【０２５２】
＜構成２＞
前記第２取得手段は、前記アプリケーション実行手段で実行されているアプリケーションが変更される毎に、変更後のアプリケーションが利用するプロセスデータを特定するための情報を取得する（Ｓ１０６〜Ｓ１１０；Ｓ１２８〜Ｓ１３２）、構成１に記載の制御システム。
【０２５３】
＜構成３＞
前記決定手段は、前記第２取得手段により取得されたアプリケーションの情報に基づいて、通信負荷に関する予め定められた評価基準（３６０）に従って、前記データセットに含めるべきプロセスデータを決定する、構成１または２に記載の制御システム。
【０２５４】
＜構成４＞
前記評価基準は、前記複数のプロセスデータの各々が前記アプリケーション実行手段において実行されるアプリケーションにおいて利用される頻度、および、前記複数のプロセスデータの各々に設定された重要度の少なくとも一方に基づく、構成３に記載の制御システム。
【０２５５】
＜構成５＞
前記決定手段は、前記データセットに含めるべきプロセスデータを都度決定する、構成１〜４のいずれか１項に記載の制御システム。
【０２５６】
＜構成６＞
前記決定手段は、予め定められた複数のデータセットのうちから、データセットに含めるべきと決定されたプロセスデータに対応するデータセットを選択する、構成１〜４のいずれか１項に記載の制御システム。
【０２５７】
＜構成７＞
前記制御システムは、制御装置（１００）および表示装置（２００）を備え、
前記調停手段は、前記制御装置および前記表示装置とは独立して配置される、構成１〜６のいずれか１項に記載の制御システム。
【０２５８】
＜構成８＞
前記制御システムは、第１アプリケーション実行手段および第２アプリケーション実行手段を含む複数の前記アプリケーション実行手段を備え、
前記通知手段は、前記決定手段が前記第１アプリケーション実行手段から取得した情報に基づいて新たに決定されたプロセスデータの内容を、前記第２アプリケーション実行手段にも通知する（Ｓ１４０，Ｓ１４４）、構成１〜７のいずれか１項に記載の制御システム。
【０２５９】
＜構成９＞
制御システム（１）に配置された中継装置（６０）であって、
前記制御システムは、
制御対象を制御するための制御プログラム（１２０ａ）を実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御手段（１０２ａ）と、
前記制御手段が管理する前記複数のプロセスデータの少なくとも一部のプロセスデータの値を含むデータセット（５０）を生成して送信する送信手段（８０ａ）と、
前記送信手段により送信されるデータセットを参照してアプリケーションを実行するアプリケーション実行手段（２００ａ）とを備え、
前記中継装置は、送信手段と前記アプリケーション実行手段との間で遣り取りされるデータセットを調停するように構成され、
前記中継装置は、
前記制御手段が管理する前記複数のプロセスデータに関する情報を取得する第１取得手段（３２０ａ）と、
前記アプリケーション実行手段で実行されているアプリケーションの情報を取得する第２取得手段（３３０ａ）と、
前記第１取得手段が取得した前記複数のプロセスデータに関する情報および前記第２取得手段が取得した前記実行されているアプリケーションの情報に基づいて、前記データセットに含めるべきプロセスデータを決定する決定手段（３４０ａ）と、
前記決定手段が決定した前記データセットに含めるべきプロセスデータの内容を前記送信手段および前記アプリケーション実行手段の各々に通知する通知手段（３５０ａ）とを含む、中継装置。
【０２６０】
＜構成１０＞
制御システムに配置された情報処理装置で実行される中継プログラム（１３１０）であって、
前記制御システムは、
制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御手段（１０２ａ）と、
前記制御手段が管理する前記複数のプロセスデータの少なくとも一部のプロセスデータの値を含むデータセット（５０）を生成して送信する送信手段（８０ａ）と、
前記送信手段により送信されるデータセットを参照してアプリケーションを実行するアプリケーション実行手段（２００ａ）とを備え、
前記中継プログラムは、前記情報処理装置を、前記送信手段と前記アプリケーション実行手段との間で遣り取りされるデータセットを調停する中継装置として機能させ、
前記中継プログラムは、前記情報処理装置に、
前記制御手段が管理する前記複数のプロセスデータに関する情報を取得するステップと、
前記アプリケーション実行手段で実行されているアプリケーションの情報を取得するステップ（Ｓ１１０）と、
前記取得された複数のプロセスデータに関する情報および前記取得された実行されているアプリケーションの情報に基づいて、前記データセットに含めるべきプロセスデータを決定するステップ（Ｓ１１１〜Ｓ１１３）と、
前記決定された前記データセットに含めるべきプロセスデータの内容を前記送信手段および前記アプリケーション実行手段の各々に通知するステップ（Ｓ１１４，Ｓ１１８）とを実行させる、中継プログラム。
【０２６１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組み合わせても、実施することが意図される。
【符号の説明】
【０２６２】
１，１ａ，１ｂ  制御システム、２  情報系ネットワーク、４  制御系ネットワーク、５０  データセット、５２  プロセスデータ、５４  オブジェクト、６０，６０ａ  中継装置、６１，１１０，２１０  プロセッサ、６４，１５０，２５０  揮発性メモリ、６５，１７０，２７０  不揮発性メモリ、６８，２９６  プロセッサバス、８０，８０ａ，９０  通信処理部、８２  データセット生成手段、８４，９６  通信ドライバ、９２  購読管理手段、９４  購読管理情報、９８，９８ａ  リンク情報、１００，１００ｂ，１００ｃ  コントローラ、１０２，１０２ａ  制御手段、１２０，１２０ａ  制御プログラム、１７２  システムプログラム、１８０，２６０  ＯＰＣ  ＵＡプログラム、１９１  制御系ネットワークＩＦ、１９２  情報系ネットワークＩＦ、１９３，２９４  ＵＳＢコントローラ、１９４  メモリカードＩＦ、１９４Ａ  メモリカード、１９５  内部バスコントローラ、１９６  チップセット、２００  ＨＭＩ、２００ａ  アプリケーション実行手段、２２０  アプリケーション、２２２  マッピング情報、２４０  タッチパネル、２４２  表示部、２４４  入力部、３００，３００ａ，３００ｂ  調停手段、３２０，３２０ｂ  購読リスト管理手段、３２０ａ  アプリケーション情報取得手段、３３０，３３０ａ  プロセスデータ取得手段、３４０，３４０ａ，３４０ｂ  決定手段、３４２  価値決定手段、３４４  候補算出手段、３４６  評価手段、３４８  判定手段、３５０，３５０ａ，３５０ｂ  通知手段、３５２  通信負荷指標、３５４  通信性能指標、３５６  通信効率指標、３５７  変更負荷指標、３５８  優先度情報、３６０，３６０ａ  評価基準、３６２  監視手段、３６４  更新手段、３７０  価値情報、３７２  容量情報、３７４  候補データ、３７６  ＨＭＩ情報、４００  送信設定、５００  フィールドデバイス、６１２，６１２ｂ  購読リスト、６１２ａ  アプリケーション情報、６２２，６２２ａ  プロセスデータリスト、６２３  蓄積情報、６８０  送受信管理手段、６８２  トピックリスト、７００，９００  ユーザインターフェイス、７２０  ネットワーク構成領域、７４０  受付領域、７４２，９６２  タブ、９２０  指標領域、９６０  優先度受付領域、１３１０  中継プログラム、１３１２  調停プログラム、１３１４  通信プログラム、１３２０  評価情報、１３４０  性能情報。
【図１】
2020149632.tif 000004
【図２】
2020149632.tif 000005
【図３】
2020149632.tif 000006
【図４】
2020149632.tif 000007
【図５】
2020149632.tif 000008
【図６】
2020149632.tif 000009
【図７】
2020149632.tif 000010
【図８】
2020149632.tif 000011
【図９】
2020149632.tif 000012
【図１０】
2020149632.tif 000013
【図１１】
2020149632.tif 000014
【図１２】
2020149632.tif 000015
【図１３】
2020149632.tif 000016
【図１４】
2020149632.tif 000017
【図１５】
2020149632.tif 000018
【図１６】
2020149632.tif 000019
【図１７】
2020149632.tif 000020