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