(57)【要約】【課題】デバイスとの間でデータを遣り取りする周期の設定可能な範囲を容易に決定できる構成を提供する。【解決手段】制御装置および制御装置と通信可能なデバイスとを含む制御システムが提供される。制御システムは、制御対象を制御するための制御演算を周期的に実行する制御手段と、デバイスとの間でデータを周期的に遣り取りするための通信処理を実行する通信処理手段と、制御手段により実行される処理内容の構築、および、通信処理手段による通信処理に係る設定、の少なくとも一部を行うための開発環境を提供する提供手段と、提供手段により提供される開発環境において設定された内容に基づいて、デバイスとの間でデータを遣り取りする周期の設定可能な範囲を決定する決定手段とを含む。【選択図】図１
2020149439.tif 000002
【特許請求の範囲】
【請求項１】
制御装置および前記制御装置と通信可能なデバイスとを備える制御システムであって、
制御対象を制御するための制御演算を周期的に実行する制御手段と、
前記デバイスとの間でデータを周期的に遣り取りするための通信処理を実行する通信処理手段と、
前記制御手段により実行される処理内容の構築、および、前記通信処理手段による通信処理に係る設定、の少なくとも一部を行うための開発環境を提供する提供手段と、
前記提供手段により提供される開発環境において設定された内容に基づいて、前記デバイスとの間でデータを遣り取りする周期の設定可能な範囲を決定する決定手段とを備える、制御システム。
【請求項２】
前記決定手段は、前記制御手段により実行される処理内容に応じて決定される制約要因、および、前記通信処理手段による通信処理に係る設定に応じて決定される制約要因の両方を反映して、前記設定可能な範囲を決定する、請求項１に記載の制御システム。
【請求項３】
前記決定手段は、前記デバイスとの間で遣り取りされるデータのコネクション数およびデータサイズの少なくとも一方に基づいて、前記設定可能な範囲を決定する、請求項１または２に記載の制御システム。
【請求項４】
前記決定手段は、前記制御手段において実行される前記制御演算の周期に基づいて、前記設定可能な範囲を決定する、請求項１〜３のいずれか１項に記載の制御システム。
【請求項５】
前記決定手段は、前記制御手段において実行される前記制御演算に設定されている優先度に基づいて、前記設定可能な範囲を決定する、請求項１〜４のいずれか１項に記載の制御システム。
【請求項６】
前記決定手段は、前記制御装置の処理能力に基づいて、前記設定可能な範囲を決定する、請求項１〜５のいずれか１項に記載の制御システム。
【請求項７】
前記決定手段は、前記制御装置がデータを遣り取りするデバイス毎に、前記設定可能な範囲を決定する、請求項１〜６のいずれか１項に記載の制御システム。
【請求項８】
前記デバイスとの間でデータを遣り取りする周期の設定値が前記決定手段により決定された設定可能な範囲外である場合に、通知を行う通知手段をさらに備える、請求項１〜７のいずれか１項に記載の制御システム。
【請求項９】
制御装置および前記制御装置と通信可能なデバイスとを備える制御システムに向けられたサポート装置であって、
前記制御装置は、
制御対象を制御するための制御演算を周期的に実行する制御手段と、
前記デバイスとの間でデータを周期的に遣り取りするための通信処理を実行する通信処理手段とを備え、
前記サポート装置は、
前記制御手段により実行される処理内容の構築、および、前記通信処理手段による通信処理に係る設定、の少なくとも一部を行うための開発環境を提供する提供手段と、
前記提供手段により提供される開発環境において設定された内容に基づいて、前記デバイスとの間でデータを遣り取りする周期の設定可能な範囲を決定する決定手段とを備える、サポート装置。
【請求項１０】
制御装置および前記制御装置と通信可能なデバイスとを備える制御システムに向けられたサポート装置用のプログラムであって、
前記制御装置は、
制御対象を制御するための制御演算を周期的に実行する制御手段と、
前記デバイスとの間でデータを周期的に遣り取りするための通信処理を実行する通信処理手段とを備え、
前記プログラムは、コンピュータにより実行されると、前記コンピュータに
前記制御手段により実行される処理内容の構築、および、前記通信処理手段による通信処理に係る設定、の少なくとも一部を行うための開発環境を提供するステップと、
前記開発環境において設定された内容に基づいて、前記デバイスとの間でデータを遣り取りする周期の設定可能な範囲を決定するステップとを実行させる、サポート装置用のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを周期的に遣り取りする制御システム、サポート装置およびサポート装置用のプログラムに関する。
【背景技術】
【０００２】
設備や機械などを制御するための制御装置として、ＰＬＣ（プログラマブルロジックコントローラ）が用いられる。さらに、ＰＬＣに加えて、セーフティコントローラおよび各種セーフティコンポーネントからなるセーフティシステムが配置されることもある。
【０００３】
ＩＣＴ（Information and Communication Technology）の進歩に伴って、このような産業用コントローラについてもネットワーク化が進行しつつある。公知の構成においては、例えば、特許文献１（特開２００９−２２３３９８号公報）に開示されるように、演算処理を実行するＣＰＵユニットに加えて、通信処理を担当する通信ユニットが装着される。特許文献２（特開２０１７−０２７５３９号公報）に開示されるように、ＣＰＵモジュールとは別に、ＩＯモジュールの一例である通信モジュールを装着して、通信処理を行う構成が一般的である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２２３３９８号公報
【特許文献２】特開２０１７−０２７５３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
通常、設備や機械などの制御対象を制御するための制御演算においては、ＩＯデータ（入出力データ）を周期的に更新する必要がある。このようなＩＯデータを周期的に更新するためには、ＩＯデータの収集先であるデバイスとの間でデータを周期的に遣り取りする必要がある。
【０００６】
しかしながら、ネットワーク上でデータを周期的に遣り取りする場合には、様々な制約要因が存在するため、通信周期をどのような値に設定すべきかを決定するのかは容易ではない。
【０００７】
本発明は、デバイスとの間でデータを遣り取りする周期の設定可能な範囲を容易に決定できる構成を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明のある実施の形態に従えば、制御装置および制御装置と通信可能なデバイスとを含む制御システムが提供される。制御システムは、制御対象を制御するための制御演算を周期的に実行する制御手段と、デバイスとの間でデータを周期的に遣り取りするための通信処理を実行する通信処理手段と、制御手段により実行される処理内容の構築、および、通信処理手段による通信処理に係る設定、の少なくとも一部を行うための開発環境を提供する提供手段と、提供手段により提供される開発環境において設定された内容に基づいて、デバイスとの間でデータを遣り取りする周期の設定可能な範囲を決定する決定手段とを含む。
【０００９】
この実施の形態によれば、制御手段により実行される処理内容および通信処理に係る設定に基づいて、デバイスとの間でデータを遣り取りする周期の設定可能な範囲が決定されるので、知識の少ないユーザであっても適切な周期を設定できる。
【００１０】
決定手段は、制御手段により実行される処理内容に応じて決定される制約要因、および、通信処理手段による通信処理に係る設定に応じて決定される制約要因の両方を反映して、設定可能な範囲を決定するようにしてもよい。この構成によれば、制御手段により実行される処理内容に応じて決定される制約要因、および、通信処理手段による通信処理に係る設定に応じて決定される制約要因の両方が反映された、適切な範囲を決定できる。
【００１１】
決定手段は、デバイスとの間で遣り取りされるデータのコネクション数およびデータサイズの少なくとも一方に基づいて、設定可能な範囲を決定するようにしてもよい。この構成によれば、デバイスとの間で遣り取りされるデータに応じて適切な範囲を決定できる。
【００１２】
決定手段は、制御手段において実行される制御演算の周期に基づいて、設定可能な範囲を決定するようにしてもよい。この構成によれば、制御演算の周期に応じて適切な範囲を決定できる。
【００１３】
決定手段は、制御手段において実行される制御演算に設定されている優先度に基づいて、設定可能な範囲を決定するようにしてもよい。この構成によれば、制御演算に設定されている優先度に応じて適切な範囲を決定できる。
【００１４】
決定手段は、制御装置の処理能力に基づいて、設定可能な範囲を決定するようにしてもよい。この構成によれば、制御装置の処理能力に応じて適切な範囲を決定できる。
【００１５】
決定手段は、制御装置がデータを遣り取りするデバイス毎に、設定可能な範囲を決定するようにしてもよい。この構成によれば、複数のデバイスとの間でデータを遣り取りする場合であっても、それぞれのデバイスについて適切な範囲を決定できる。
【００１６】
デバイスとの間でデータを遣り取りする周期の設定値が決定手段により決定された設定可能な範囲外である場合に、通知を行う通知手段をさらに含んでいてもよい。この構成によれば、現在の設定値が周期の設定可能な範囲外である場合に、適切な変更をユーザに促すことができる。
【００１７】
本発明の別の実施の形態に従えば、制御装置および制御装置と通信可能なデバイスとを含む制御システムに向けられたサポート装置が提供される。制御装置は、制御対象を制御するための制御演算を周期的に実行する制御手段と、デバイスとの間でデータを周期的に遣り取りするための通信処理を実行する通信処理手段とを含む。サポート装置は、制御手段により実行される処理内容の構築、および、通信処理手段による通信処理に係る設定、の少なくとも一部を行うための開発環境を提供する提供手段と、提供手段により提供される開発環境において設定された内容に基づいて、デバイスとの間でデータを遣り取りする周期の設定可能な範囲を決定する決定手段とを含む。
【００１８】
本発明のさらに別の実施の形態に従えば、制御装置および制御装置と通信可能なデバイスとを含む制御システムに向けられたサポート装置用のプログラムが提供される。制御装置は、制御対象を制御するための制御演算を周期的に実行する制御手段と、デバイスとの間でデータを周期的に遣り取りするための通信処理を実行する通信処理手段とを含む。プログラムは、コンピュータにより実行されると、コンピュータに、制御手段により実行される処理内容の構築、および、通信処理手段による通信処理に係る設定、の少なくとも一部を行うための開発環境を提供するステップと、開発環境において設定された内容に基づいて、デバイスとの間でデータを遣り取りする周期の設定可能な範囲を決定するステップとを実行させる。
【発明の効果】
【００１９】
本発明によれば、デバイスとの間でデータを遣り取りする周期の設定可能な範囲を容易に決定できる。
【図面の簡単な説明】
【００２０】
【図１】本実施の形態に従う制御システムにおける処理概要を説明するための図である。
【図２】本実施の形態に従う制御システムの構成例を示す模式図である。
【図３】本実施の形態に従う制御システムに含まれる標準制御ユニットのハードウェア構成例を示す模式図である。
【図４】本実施の形態に従う制御システムに含まれるセーフティ制御ユニットのハードウェア構成例を示す模式図である。
【図５】本実施の形態に従う制御システムに含まれるサポート装置のハードウェア構成例を示す模式図である。
【図６】本実施の形態に従う制御システムにおけるＦＳｏＥを説明するための模式図である。
【図７】本実施の形態に従う制御システムにおけるＣＩＰＳａｆｅｔｙを説明するための模式図である。
【図８】本実施の形態に従う制御装置におけるＣＩＰＳａｆｅｔｙを実現するための機能構成例を示す模式図である。
【図９】図８に示す機能構成の実装例を示す模式図である。
【図１０】本実施の形態に従う制御装置におけるＣＩＰＳａｆｅｔｙの設定内容の一例を説明するための模式図である。
【図１１】本実施の形態に従う制御装置におけるＣＩＰＳａｆｅｔｙ通信サービスの実行例を説明するための模式図である。
【図１２】本実施の形態に従う制御システムにおいて設定可能なＥＰＩの最小値を算出するために用いられるパラメータテーブルの一例を示す図である。
【図１３】本実施の形態に従う制御システムにおいて設定可能なＥＰＩの最小値を再算出する処理を説明するための図である。
【図１４】本実施の形態に従う制御システムに含まれるサポート装置の機能構成の一例を示すブロック図である。
【図１５】本実施の形態に従う制御システムが提供するユーザインターフェイス画面の一例を示す図である。
【図１６】本実施の形態に従う制御システムが提供するユーザインターフェイス画面の別の一例を示す図である。
【図１７】本実施の形態に従う制御システムが提供するユーザインターフェイス画面のさらに別の一例を示す図である。
【図１８】本実施の形態に従う制御システムに含まれるサポート装置において実行される処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００２１】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００２２】
＜Ａ．適用例＞
まず、図１を参照して、本発明が適用される場面の一例について説明する。
【００２３】
図１は、本実施の形態に従う制御システム１における処理概要を説明するための図である。図１を参照して、制御装置２は、プロセスネットワーク１０を介して、１または複数のデバイスと接続されている。プロセスネットワーク１０には、ハブ８が配置されていてもよい。
【００２４】
制御装置２は、制御対象を制御するための制御演算を周期的に実行する。また、制御装置２は、デバイスとの間でデータを周期的に遣り取りするための通信処理を実行する。すなわち、制御装置２とデバイスとの間では、データが周期的に遣り取りされる。
【００２５】
このような通信処理を考慮して、制御装置２は、デバイスとの間でデータを遣り取りする周期（通信周期）の設定可能な範囲を決定することができる。具体的には、制御装置２は、制御装置２で実行される処理、および、通信処理に係る設定などに応じて、設定可能な通信周期が算出される。
【００２６】
この設定可能な通信周期の算出には、以下のような制約要因に基づいてもよい。
・制御装置（ユニット）の各種設定
・通信の設定内容
・制御装置（ユニット）の処理能力（スペック）
・制御装置（ユニット）が提供する他のサービス
・制御装置（ユニット）における優先度
このような制約要因については、後述するようなサポート装置が提供する開発環境において設定された内容に基づいて決定されるとともに、当該決定された制約要因から設定可能な通信周期が算出されてもよい。
【００２７】
ここで、「設定可能な範囲」とは、対象となる値を有効に設定できる範囲を包含する用語であり、上限および下限の両方を規定する場合に加えて、下限のみあるいは上限のみを規定する場合を含み得る。特に、本実施の形態においては、下限（最小値）の決定に着目する。
【００２８】
本明細書においては、制御装置と各デバイスとの間で送受信される主たるデータを「フレーム」として説明する。但し、「フレーム」との用語に基づいて、送受信されるデータを限定的に解釈すべきではなく、例えば、「パケット」の単位で送受信される場合や、より長いデータ列の単位で送受信されるような場合も含み得る。
【００２９】
本明細書においては、「標準制御」および「セーフティ制御」の用語を対比的に用いる。「標準制御」は、予め定められた要求仕様に沿って、制御対象を制御するための処理の総称である。一方、「セーフティ制御」は、設備や機械などによって人の安全が脅かされることを防止するための処理を総称する。「セーフティ制御」は、ＩＥＣ  ６１５０８などに規定されたセーフティ機能を実現するための要件を満たすように設計される。
【００３０】
＜Ｂ．システム構成例＞
まず、本実施の形態に従う制御システム１の構成例について説明する。図２は、本実施の形態に従う制御システム１の構成例を示す模式図である。
【００３１】
図２を参照して、制御システム１は、一例として、制御装置２と、１または複数のリモートＩＯ装置４と、１または複数のスレーブデバイスとを含む。
【００３２】
制御装置２は、制御演算を実行する処理主体であり、標準制御ユニット１００と、セーフティ制御ユニット２００と、１または複数の機能ユニット３５０とを含む。標準制御ユニット１００は、標準制御および後述するような通信処理に係る制御演算を実行する。セーフティ制御ユニット２００は、セーフティ制御に係る制御演算を実行する。機能ユニット３５０の各々は、各ユニットに実装されている機能（例えば、入出力機能、位置制御機能、ＰＩＤ制御機能など）に応じた処理を実行する。なお、セーフティ制御ユニット２００は、機能ユニット３５０の一類型とみなすこともできる。
【００３３】
標準制御ユニット１００と、セーフティ制御ユニット２００および機能ユニット３５０との間は、内部バス１８を介して電気的に接続されている。
【００３４】
制御装置２（標準制御ユニット１００）は、フィールドネットワーク６を介して、リモートＩＯ装置４と電気的に接続されている。制御装置２は、さらに、プロセスネットワーク１０およびハブ８を介して、スレーブデバイスの一例であるセーフティドライバ１２と通信可能に接続されている。
【００３５】
フィールドネットワーク６は、ＦＡ（Factory Automation）用のデータ伝送を実現するための通信媒体である。フィールドネットワーク６においては、予め定められた周期でフレーム伝送が可能になっており、ネットワーク内の各ノードに対するデータ到着時間が保証される。このようなデータ到着時間が保証されるプロトコルの一例として、本実施の形態に従う制御システム１においては、フィールドネットワーク６にはＥｔｈｅｒＣＡＴ（登録商標）を採用する。さらに、後述するようなセーフティ制御に用いられるデータは、ＥｔｈｅｒＣＡＴを利用したＦＳｏＥ（Functional Safety over EtherCAT）により伝送されてもよい。
【００３６】
プロセスネットワーク１０は、フィールドネットワーク６と同様に、ＦＡ用のデータ伝送を実現するための通信媒体である。本実施の形態に従う制御システム１においては、プロセスネットワーク１０にはＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）を採用する。さらに、後述するようなセーフティ制御に用いられるデータは、ＥｔｈｅｒＮｅｔ／ＩＰを利用したＣＩＰＳａｆｅｔｙにより伝送されてもよい。
【００３７】
制御装置２（標準制御ユニット１００）は、さらに上位ネットワーク２０に接続されていてもよい。上位ネットワーク２０には、ゲートウェイやデータベースサーバといった任意の情報処理装置が接続されていてもよい。
【００３８】
リモートＩＯ装置４は、カプラユニット３００と、１または複数の機能ユニット３５０とを含む。リモートＩＯ装置４は、制御対象から各種情報を収集して制御装置２へ送信するとともに、制御装置２からのデータに含まれる指令に従って制御装置に対する信号出力や処理を実行する。
【００３９】
カプラユニット３００は、制御装置２（標準制御ユニット１００）と機能ユニット３５０との間のデータの遣り取りを仲介する。併せて、カプラユニット３００は、フレームを介して受信したデータを機能ユニット３５０へ送信するとともに、機能ユニット３５０からデータを受信すると、当該受信したデータを次に到着するフレームに格納する準備を行う。
【００４０】
機能ユニット３５０は、制御装置２に含まれる機能ユニット３５０と実質的に同一であり、各ユニットに実装されている機能（例えば、入出力機能、位置制御機能、ＰＩＤ制御機能など）に応じた処理を実行する。
【００４１】
カプラユニット３００は、機能ユニット３５０の一例として、セーフティ機能ユニット３６０を含む場合もある。図２には、１つのリモートＩＯ装置４がセーフティ機能ユニット３６０を含む例を示す。セーフティ機能ユニット３６０は、セーフティ制御に係る機能を有している。一例として、セーフティ機能ユニット３６０は、セーフティＩＯユニットである。セーフティＩＯユニットは、非常停止ボタン、セーフティドアスイッチ、ライトカーテンなどのセーフティコンポーネント１６からの信号を受け付ける入力機能、および／または、セーフティコンポーネント１６への信号を出力する出力機能を有する。
【００４２】
セーフティ制御ユニット２００とセーフティ機能ユニット３６０との間では、フィールドネットワーク６を周期的に伝送されるフレームを利用した一種のピアトゥピア通信であるＦＳｏＥを用いて、データが遣り取りされてもよい。
【００４３】
図２には、スレーブデバイスとして、モータ１４を駆動するセーフティドライバ１２を示す。セーフティドライバ１２は、制御装置２（標準制御ユニット１００）からの指令に従って、接続されているモータ１４を駆動するとともに、モータ１４の駆動に係るセーフティコンポーネントとしての機能も含む。なお、モータ１４は、サーボモータ、誘導モータ、同期モータ、リニアモータなどの任意の運動体である。
【００４４】
セーフティドライバ１２は、制御装置２（標準制御ユニット１００）との間で確立されるコネクションを利用して、データを遣り取りする。以下では、このデータを遣り取りするプロトコルとして、ＣＩＰＳａｆｅｔｙを用いる場合について説明する。
【００４５】
サポート装置５００は、制御システム１に向けられたものであり、制御装置２（標準制御ユニット１００およびセーフティ制御ユニット２００）で実行されるプログラムの作成およびデバッグならびに各種設定の支援するための環境をユーザに提供する。
【００４６】
＜Ｃ．ハードウェア構成例＞
次に、制御システム１に含まれる主要な装置のハードウェア構成例について説明する。
【００４７】
（ｃ１：標準制御ユニット）
図３は、本実施の形態に従う制御システム１に含まれる標準制御ユニット１００のハードウェア構成例を示す模式図である。図３を参照して、標準制御ユニット１００は、プロセッサ１０２と、チップセット１０４と、主メモリ１０６と、ストレージ１０８と、ネットワークコントローラ１１０と、ＵＳＢ（Universal Serial Bus）コントローラ１１２と、メモリカードインターフェイス１１４と、内部バスコントローラ１１８と、フィールドネットワークコントローラ１２０と、プロセスネットワークコントローラ１２２と、カウンタ１２６と、ＲＴＣ（Real Time Clock）１２８とを含む。
【００４８】
プロセッサ１０２は、制御演算などを実行する演算処理部に相当し、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＧＰＵ（Graphics Processing Unit）などで構成される。具体的には、プロセッサ１０２は、ストレージ１０８に格納されたプログラム（一例として、システムプログラムおよび標準制御プログラム（ユーザプログラム））を読み出して、主メモリ１０６に展開して実行することで、標準制御および後述するような通信処理に係る演算を実行する。ストレージ１０８は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などの不揮発性記憶装置などで構成される。主メモリ１０６は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などの揮発性記憶装置などで構成される。
【００４９】
チップセット１０４は、プロセッサ１０２と各デバイスとのデータ遣り取りを仲介することで、標準制御ユニット１００全体としての処理を実現する。
【００５０】
ストレージ１０８には、基本的な機能を実現するためのシステムプログラムに加えて、設備や機械などの制御対象に応じて作成される標準制御を実現するための標準制御プログラムが格納される。
【００５１】
ネットワークコントローラ１１０は、上位ネットワーク２０を介して、ゲートウェイやデータベースサーバといった任意の情報処理装置との間でデータを遣り取りする。
【００５２】
ＵＳＢコントローラ１１２は、ＵＳＢ接続を介して、サポート装置５００との間でデータを遣り取りする。
【００５３】
メモリカードインターフェイス１１４は、メモリカード１１６を着脱可能に構成されており、メモリカード１１６に対してデータを書き込み、メモリカード１１６から各種データ（標準制御プログラムやトレースデータなど）を読み出すことが可能になっている。
【００５４】
内部バスコントローラ１１８は、内部バス１８を介して、標準制御ユニット１００と、セーフティ制御ユニット２００および機能ユニット３５０とを電気的に接続するための通信インターフェイスに相当する。内部バスコントローラ１１８は、内部バス１８を介して定周期通信を行うための通信マスタとして機能する。
【００５５】
フィールドネットワークコントローラ１２０は、フィールドネットワーク６を介して、標準制御ユニット１００とリモートＩＯ装置４とを電気的に接続するための通信インターフェイスに相当する。フィールドネットワークコントローラ１２０は、フィールドネットワーク６を介して定周期通信を行うための通信マスタとして機能する。
【００５６】
プロセスネットワークコントローラ１２２は、プロセスネットワーク１０を介して、標準制御ユニット１００とセーフティドライバ１２とを電気的に接続するための通信インターフェイスに相当する。プロセスネットワークコントローラ１２２は、プロセスネットワーク１０を介して、予め定められた周期でデータを遣り取りするための通信制御を担当する。
【００５７】
カウンタ１２６は、標準制御ユニット１００で実行される各種プログラムの実行タイミングを管理するための時刻基準として用いられる。ＲＴＣ１２８は、計時機能を有する一種のカウンタであり、現在時刻をプロセッサ１０２などへ提供する。
【００５８】
図３には、プロセッサ１０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣやＦＰＧＡなど）を用いて実装してもよい。あるいは、標準制御ユニット１００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳ（Operating System）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。さらに、標準制御ユニット１００に表示装置やサポート装置などの機能を統合した構成を採用してもよい。
【００５９】
（ｃ２：セーフティ制御ユニット）
図４は、本実施の形態に従う制御システム１に含まれるセーフティ制御ユニット２００のハードウェア構成例を示す模式図である。図４を参照して、セーフティ制御ユニット２００は、内部バスコントローラ２１８と、メインコントローラ２１０とを含む。
【００６０】
内部バスコントローラ２１８は、内部バス１８を介して標準制御ユニット１００とセーフティ制御ユニット２００とを電気的に接続するための通信インターフェイスに相当する。内部バスコントローラ２１８は、内部バス１８を介したデータ通信に参加するための通信スレーブとして機能する。
【００６１】
メインコントローラ２１０は、プロセッサ２０２と、主メモリ２０４と、ストレージ２０８とを含む。プロセッサ２０２は、制御演算や通信処理などを実行する演算処理部に相当し、ＣＰＵ、ＭＰＵ、ＧＰＵなどで構成される。具体的には、プロセッサ２０２は、ストレージ２０８に格納されたセーフティプログラム２２０を読み出して、主メモリ２０４に展開して実行することで、セーフティ制御などを実現する。
【００６２】
図４には、プロセッサ２０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣやＦＰＧＡなど）を用いて実装してもよい。
【００６３】
（ｃ３：サポート装置）
図５は、本実施の形態に従う制御システム１に含まれるサポート装置５００のハードウェア構成例を示す模式図である。サポート装置５００は、一例として、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコン）を用いて実現される。
【００６４】
図５を参照して、サポート装置５００は、プロセッサ５０２と、メインメモリ５０４と、入力部５０６と、出力部５０８と、ストレージ５１０と、光学ドライブ５１２と、ＵＳＢコントローラ５２０とを含む。これらのコンポーネントは、プロセッサバス５１８を介して接続されている。
【００６５】
プロセッサ５０２は、ＣＰＵ、ＭＰＵ、ＧＰＵなどで構成され、ストレージ５１０に格納されたプログラム（一例として、ＯＳ５１０２およびサポートプログラム５１０４）を読み出して、メインメモリ５０４に展開して実行することで、後述するような各種処理を実現する。
【００６６】
メインメモリ５０４は、ＤＲＡＭやＳＲＡＭなどの揮発性記憶装置などで構成される。ストレージ５１０は、例えば、ＨＤＤやＳＳＤなどの不揮発性記憶装置などで構成される。
【００６７】
ストレージ５１０には、基本的な機能を実現するためのＯＳ５１０２に加えて、サポート装置５００としての機能を提供するためのサポートプログラム５１０４が格納される。サポートプログラム５１０４は、標準制御ユニット１００により実行される処理内容の構築、および、通信処理に係る設定、の少なくとも一部を行うための開発環境を提供する。
【００６８】
さらに、ストレージ５１０には、サポートプログラム５１０４が実行されることで提供される開発環境においてユーザにより作成されるプロジェクトデータ５１０６が格納される。
【００６９】
サポート装置５００は、制御システム１に含まれる各デバイスに対する設定および各デバイスで実行されるプログラムの作成が統合的に可能な開発環境を提供する。プロジェクトデータ５１０６は、このような統合的な開発環境によって生成されるデータを含む。典型的には、プロジェクトデータ５１０６は、標準制御ソースプログラム５１０８と、標準コントローラ設定情報５１１０と、セーフティソースプログラム５１１２と、セーフティコントローラ設定情報５１１４と、セーフティドライバ設定情報５１１６とを含む。
【００７０】
標準制御ソースプログラム５１０８は、オブジェクトコードに変換された上で、標準制御ユニット１００へ送信され、標準制御プログラム１１０４として格納される。同様に、標準コントローラ設定情報５１１０についても標準制御ユニット１００へ送信される。
【００７１】
セーフティソースプログラム５１１２は、オブジェクトコードに変換された上で、セーフティ制御ユニット２００へ送信され、セーフティプログラム２２０（図４参照）として格納される。同様に、セーフティコントローラ設定情報５１１４についてもセーフティ制御ユニット２００へ送信される。
【００７２】
セーフティドライバ設定情報５１１６は、セーフティドライバ１２へ送信される。
入力部５０６は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。出力部５０８は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ５０２からの処理結果などを出力する。
【００７３】
ＵＳＢコントローラ５２０は、ＵＳＢ接続を介して、標準制御ユニット１００などとの間のデータを遣り取りする。
【００７４】
サポート装置５００は、光学ドライブ５１２を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体５１４（例えば、ＤＶＤ（Digital Versatile Disc）などの光学記録媒体）から、その中に格納されたプログラムが読取られてストレージ５１０などにインストールされる。
【００７５】
サポート装置５００で実行されるサポートプログラム５１０４などは、コンピュータ読取可能な記録媒体５１４を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置５００が提供する機能は、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【００７６】
図５には、プロセッサ５０２がプログラムを実行することで、サポート装置５００として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【００７７】
なお、制御システム１が稼動中において、サポート装置５００は、標準制御ユニット１００から取り外されていてもよい。
【００７８】
＜Ｄ．制御装置２における通信処理＞
次に、制御装置２における通信処理について説明する。
【００７９】
（ｄ１：フィールドネットワーク上のＦＳｏＥ）
図６は、本実施の形態に従う制御システム１におけるＦＳｏＥを説明するための模式図である。図６には、フィールドネットワーク６を介して標準制御ユニット１００とカプラユニット３００とが接続された構成において、カプラユニット３００にバス接続されるセーフティ機能ユニット３６０が収集したデータをセーフティ制御ユニット２００へ送信する例を示す。
【００８０】
フィールドネットワーク６にはＥｔｈｅｒＣＡＴに従うフレームが周期的に伝送されている。標準制御ユニット１００は、フィールドネットワーク６を周期的に伝送されるフレームを介して、機能ユニットが収集した入力データを取得する。標準制御ユニット１００は、取得した入力データに基づいて制御演算を実行するとともに、フレームを介して、制御演算の実行により得られる制御指令（出力データ）を機能ユニットへ送信する。
【００８１】
より具体的には、標準制御ユニット１００は、フィールドネットワーク６におけるフレームの伝送周期に対応して、制御タスク１５０を周期的に実行する。すなわち、制御装置２を構成する標準制御ユニット１００は、制御対象を制御するための制御演算を周期的に実行する。制御タスク１５０の各実行周期（タスク周期）において、ＩＯリフレッシュ処理１５２、シーケンス演算などのユーザプログラム実行処理１５４、モーションプログラム実行処理１５６などが実行される。ＩＯリフレッシュ処理１５２は、フィールドネットワーク６上を伝送されるフレームに含まれるデータを標準制御ユニット１００において参照可能な状態に更新する処理である。通常、フレームの伝送周期は、標準制御ユニット１００におけるタスク周期と一致するように設定されている。
【００８２】
ＦＳｏＥにより送信されるデータは、フィールドネットワーク６上を伝送されるフレームにより標準制御ユニット１００に送信された後、標準制御ユニット１００により内部バス１８（図３および図４など参照）を介してセーフティ制御ユニット２００へ転送される。すなわち、ＦＳｏＥを実現するために、標準制御ユニット１００はデータを仲介する。
【００８３】
このようなフィールドネットワーク６を介して伝送されたデータをセーフティ制御ユニット２００へ転送する処理、および、セーフティ制御ユニット２００から送信されるデータをフレームに格納してフィールドネットワーク６を介して送出する処理（これらの処理は、以下では「ＦＳｏＥデータの折り返し処理」とも称す。）は、制御タスク１５０に含まれるＩＯリフレッシュ処理１５２の一部として実行される。
【００８４】
ＦＳｏＥデータの折り返し処理がＩＯリフレッシュ処理１５２の一部として実行されることで、ＦＳｏＥの応答性を確保できる。すなわち、ＦＳｏＥでのデータの遣り取りに要する時間は、タスク周期（すなわち、伝送周期）に応じて定まる時間に保証される。
【００８５】
（ｄ２：プロセスネットワーク上のＣＩＰＳａｆｅｔｙ）
図７は、本実施の形態に従う制御システム１におけるＣＩＰＳａｆｅｔｙを説明するための模式図である。図７には、プロセスネットワーク１０を介して標準制御ユニット１００とスレーブデバイスの一例であるセーフティドライバ１２とが接続された構成において、セーフティ制御ユニット２００とセーフティドライバ１２との間でデータを遣り取りする例を示す。
【００８６】
ＣＩＰＳａｆｅｔｙにおいては、標準制御ユニット１００と各スレーブデバイス（図７に示す例では、セーフティドライバ１２）との間に予め定義されたコネクション毎にフレーム（ＣＩＰＳａｆｅｔｙフレーム）が遣り取りされる。各コネクションのフレームの遣り取りを完了できる周期として、ＥＰＩ（Expected Packet Interval）が予め設定されている。すなわち、各コネクションに対応するすべてのＣＩＰＳａｆｅｔｙフレームは、対応するＥＰＩ内で、少なくとも一回は生成および送信されることになる。ＥＰＩは、通信先のデバイス（ターゲットデバイス）毎にそれぞれ設定されてもよい。
【００８７】
標準制御ユニット１００は、各スレーブデバイスから受信したフレームを、内部バス１８を介してセーフティ制御ユニット２００へ転送する。すなわち、標準制御ユニット１００は、各スレーブデバイスとセーフティ制御ユニット２００との間のフレーム転送を仲介するブリッジとして機能する。このブリッジとして機能は、制御タスク１５０とは独立した通信処理１６０として実行される。
【００８８】
通信処理１６０において、ＣＩＰＳａｆｅｔｙのＣＩＰＳａｆｅｔｙフレームを処理するＣＩＰＳａｆｅｔｙ通信サービス１６２が実行される。
【００８９】
通信処理１６０を制御タスク１５０から分離することで、制御タスク１５０において実行されるユーザプログラム実行処理１５４が要する時間に影響されることなく、ＣＩＰＳａｆｅｔｙの応答性を確保できる。すなわち、制御タスク１５０および通信処理１６０を互いに独立させて実行することで、標準制御ユニット１００における標準制御プログラム（ユーザプログラム）の実行周期の短縮、および、ＣＩＰＳａｆｅｔｙの応答性向上を両立できる。
【００９０】
＜Ｅ．ＣＩＰＳａｆｅｔｙの実装例＞
次に、制御装置２におけるＣＩＰＳａｆｅｔｙの実装例について説明する。
【００９１】
図８は、本実施の形態に従う制御装置２におけるＣＩＰＳａｆｅｔｙを実現するための機能構成例を示す模式図である。図８を参照して、制御装置２は、ＣＩＰＳａｆｅｔｙに関する機能として、ＣＩＰＳａｆｅｔｙ通信サービス１６２と、ＣＩＰＳａｆｅｔｙプロトコルスタック１６４と、セーフティ制御実行部２５０とを含む。
【００９２】
ＣＩＰＳａｆｅｔｙ通信サービス１６２は、ＣＩＰＳａｆｅｔｙフレームを処理する処理モジュールに相当する。具体的には、ＣＩＰＳａｆｅｔｙ通信サービス１６２は、スレーブデバイスからＣＩＰＳａｆｅｔｙフレームを受信して、その受信したＣＩＰＳａｆｅｔｙフレームをＣＩＰＳａｆｅｔｙプロトコルスタック１６４へ出力する。また、ＣＩＰＳａｆｅｔｙ通信サービス１６２は、ＣＩＰＳａｆｅｔｙプロトコルスタック１６４からの指令に従って、ＣＩＰＳａｆｅｔｙフレームを宛先のスレーブデバイスへ送信する。
【００９３】
ＣＩＰＳａｆｅｔｙプロトコルスタック１６４は、ＣＩＰＳａｆｅｔｙに従うＣＩＰＳａｆｅｔｙフレームの遣り取りを管理する。具体的には、ＣＩＰＳａｆｅｔｙプロトコルスタック１６４は、入力されたＣＩＰＳａｆｅｔｙフレームを解析し、その中に含まれるデータ（入力データ）をセーフティ制御実行部２５０へ出力する。また、ＣＩＰＳａｆｅｔｙプロトコルスタック１６４は、セーフティ制御実行部２５０からの制御指令（出力データ）に従って、ＣＩＰＳａｆｅｔｙフレーム生成して、ＣＩＰＳａｆｅｔｙ通信サービス１６２へ出力する。
【００９４】
セーフティ制御実行部２５０は、ＣＩＰＳａｆｅｔｙプロトコルスタック１６４からの入力データに基づいてセーフティ制御に係る制御演算することで、制御指令（出力データ）を算出する。
【００９５】
図９は、図８に示す機能構成の実装例を示す模式図である。図９（ａ）には、標準制御ユニット１００およびセーフティ制御ユニット２００からなる構成例を示す。この構成例において、標準制御ユニット１００には、ＣＩＰＳａｆｅｔｙ通信サービス１６２が実装され、セーフティ制御ユニット２００には、ＣＩＰＳａｆｅｔｙプロトコルスタック１６４およびセーフティ制御実行部２５０が実装される。
【００９６】
一方、図９（ｂ）には、すべての機能がセーフティ制御ユニット２００に実装される構成例を示す。構成例においては、ＣＩＰＳａｆｅｔｙ通信サービス１６２、ＣＩＰＳａｆｅｔｙプロトコルスタック１６４およびセーフティ制御実行部２５０がセーフティ制御ユニット２００に実装される。
【００９７】
なお、図９（ａ）および図９（ｂ）に示す構成例に限らず、どのような実装形態を採用してもよい。
【００９８】
このように、制御装置２を構成する標準制御ユニット１００またはセーフティ制御ユニット２００は、スレーブデバイスとの間でデータを周期的に遣り取りするための通信処理を実行する。
【００９９】
＜Ｆ．ＣＩＰＳａｆｅｔｙの応答性＞
次に、ＣＩＰＳａｆｅｔｙの応答性（ＥＰＩの最小値）について説明する。
【０１００】
（ｆ１：ＣＩＰＳａｆｅｔｙの応答性を決定する要素）
ＥＰＩが短いほどデータの更新周期が短いことを意味する。そのため、制御性能などを考慮すると、ＥＰＩは可能な限り短く設定することが好ましい。しかしながら、以下に示すような制約により、設定可能なＥＰＩは決定されることになる。
【０１０１】
（１）ＣＩＰＳａｆｅｔｙの応答性に影響を及ぼすユニットの各種設定
（２）ＣＩＰＳａｆｅｔｙの設定内容
（３）ＣＩＰＳａｆｅｔｙ通信サービス１６２を提供するユニットの処理能力（スペック）
（４−１）ＣＩＰＳａｆｅｔｙ通信サービス１６２を提供するユニットが提供する他のサービス
（４−２）ＣＩＰＳａｆｅｔｙ通信サービス１６２を提供するユニットにおける優先度
このような制約要因の少なくとも一部に基づいてＥＰＩの設定可能な範囲が決定される。以下、各制約要因について説明する。
【０１０２】
（ｆ２：ＣＩＰＳａｆｅｔｙの応答性に影響を及ぼすユニットの各種設定）
ＣＩＰＳａｆｅｔｙの応答性に影響を及ぼすユニットの各種設定としては、制御タスク１５０の各実行周期（タスク周期）などを含む。そのため、本実施の形態に従う制御システム１においては、標準制御ユニット１００において実行される制御演算の周期（タスク周期）に基づいて、ＥＰＩの設定可能な範囲を決定するようにしてもよい。
【０１０３】
（ｆ３：ＣＩＰＳａｆｅｔｙの設定内容）
ＣＩＰＳａｆｅｔｙの設定内容としては、ＣＩＰＳａｆｅｔｙのコネクション数およびデータサイズを含む。ＣＩＰＳａｆｅｔｙのコネクション数とは、制御システム１が固有にサポートしているコネクション数（最大数）、および、ユーザにより任意に設定されるコネクション数の両方を含み得る。また、ＣＩＰＳａｆｅｔｙのデータサイズとは、各コネクションに割り当てられているデータの大きさ、および、すべてのコネクションに割り当てられているデータの合計の両方を含み得る。
【０１０４】
図１０は、本実施の形態に従う制御装置２におけるＣＩＰＳａｆｅｔｙの設定内容の一例を説明するための模式図である。図１０（ａ）には、コネクションＣ１〜Ｃ１００が設定されている例を示し、図１０（ｂ）には、コネクションＣ１〜Ｃ１０が設定されている例を示す。
【０１０５】
図１０（ａ）と図１０（ｂ）とを比較すると分かるように、コネクション数が多いほど、ＥＰＩが長くなることが分かる。同様に、データサイズが大きくなるほど、ＥＰＩは長くなる。
【０１０６】
このように、ＣＩＰＳａｆｅｔｙの設定内容に応じて、ＣＩＰＳａｆｅｔｙの応答性（すなわち、ＥＰＩの最小値）は変化することになる。そのため、本実施の形態に従う制御システム１においては、スレーブデバイスとの間で遣り取りされるデータのコネクション数およびデータサイズの少なくとも一方に基づいて、ＥＰＩの設定可能な範囲を決定するようにしてもよい。
【０１０７】
なお、通信先のデバイス（ターゲットデバイス）毎に１または複数のコネクションを設定できるので、ターゲットデバイス毎にＥＰＩを設定することも可能である。すなわち、制御装置２がデータを遣り取りするデバイス毎に、ＥＰＩの設定可能な範囲を決定するようにしてもよい。
【０１０８】
（ｆ４：ＣＩＰＳａｆｅｔｙ通信サービス１６２を提供するユニットの処理能力）
ＣＩＰＳａｆｅｔｙ通信サービス１６２を提供するユニットの処理能力（スペック）は、ＣＩＰＳａｆｅｔｙ通信サービス１６２が実装されたユニット（図９に示すように、標準制御ユニット１００またはセーフティ制御ユニット２００）のハードウェア性能を意味する。このような処理能力（スペック）は、ユニットに実装されたプロセッサの性能、メモリ容量、データ伝送速度などに依存する。
【０１０９】
そのため、本実施の形態に従う制御システム１においては、制御装置２（標準制御ユニット１００およびセーフティ制御ユニット２００）の処理能力に基づいて、ＥＰＩの設定可能な範囲を決定するようにしてもよい。
【０１１０】
（ｆ５：ＣＩＰＳａｆｅｔｙ通信サービス１６２を提供するユニットが提供する他のサービス、および、ＣＩＰＳａｆｅｔｙ通信サービス１６２を提供するユニットにおける優先度）
図１１は、本実施の形態に従う制御装置２におけるＣＩＰＳａｆｅｔｙ通信サービスの実行例を説明するための模式図である。図１１には、ＣＩＰＳａｆｅｔｙ通信サービス１６２を提供するユニット（標準制御ユニット１００またはセーフティ制御ユニット２００）における実行例を示す。
【０１１１】
図１１（ａ）および図１１（ｂ）のいずれにおいても、共通のリソースを用いて、ＣＩＰＳａｆｅｔｙ通信サービス１６２に加えて、サービスＸ１６６およびサービスＹ１６７が実行される。図１１（ａ）には、ＣＩＰＳａｆｅｔｙ通信サービス１６２が他のサービスに比較して高い優先度で実行される例を示し、図１１（ｂ）には、ＣＩＰＳａｆｅｔｙ通信サービス１６２が他のサービスに比較して低い優先度で実行される例を示す。
【０１１２】
より具体的には、図１１（ａ）に示すように、他のサービスに比較して、ＣＩＰＳａｆｅｔｙ通信サービス１６２に対してより高い優先度が設定されている場合には、ＣＩＰＳａｆｅｔｙ通信サービス１６２が優先的に実行されるために、ＥＰＩを短くすることができる。
【０１１３】
これに対して、図１１（ｂ）に示すように、ＣＩＰＳａｆｅｔｙ通信サービス１６２に比較して、他のサービスに対してより高い優先度が設定されている場合には、ＣＩＰＳａｆｅｔｙ通信サービス１６２の実行周期が長くなるので、これに伴って、ＥＰＩも長くせざるを得ない。
【０１１４】
このように、ＣＩＰＳａｆｅｔｙ通信サービス１６２を提供するユニットで実行されるサービス内容、および、各サービスに設定される優先度に応じて、ＣＩＰＳａｆｅｔｙの応答性（すなわち、ＥＰＩの最小値）は変化することになる。そのため、本実施の形態に従う制御システム１においては、標準制御ユニット１００において実行される制御演算に設定されている優先度に基づいて、ＥＰＩの設定可能な範囲を決定するようにしてもよい。
【０１１５】
通常、ＣＩＰＳａｆｅｔｙ通信サービス１６２を提供するユニットが提供する他のサービスの各々については、実行の有効または無効を予め設定することができる。但し、一部のサービスについては、無効とすることができず、実行が固定されていることもある。
【０１１６】
また、ＣＩＰＳａｆｅｔｙ通信サービス１６２を提供するユニットにおける優先度については、任意に設定することができる。但し、一部のサービスの優先度については、設計値に固定されていることもある。
【０１１７】
（ｆ６：小括）
上述したように、ＣＩＰＳａｆｅｔｙの応答性を可能な限り高めて（すなわち、ＥＰＩをより短く設定して）、制御性能を向上させることが好ましいが、様々な制約により、ＥＰＩの長さを短縮することが難しい場合もある。そこで、本実施の形態に従う制御システム１においては、制御装置２を構成する標準制御ユニット１００およびセーフティ制御ユニット２００により実行される処理内容に応じて決定される制約要因（一例として、上述の（１），（４−１），（４−２））、および、通信処理に係る設定に応じて決定される制約要因（一例として、上述の（２））の両方を反映して、ＥＰＩの設定可能な範囲を決定するようにしてもよい。
【０１１８】
＜Ｇ．ＣＩＰＳａｆｅｔｙの設定支援＞
本実施の形態に従う制御システム１は、上述したような制約要素を反映した上で、ＣＩＰＳａｆｅｔｙの応答性（ＥＰＩの長さ）の設定を支援する機能を提供することもできる。以下、ＣＩＰＳａｆｅｔｙの応答性（ＥＰＩの長さ）の設定を支援する機能について説明する。すなわち、本実施の形態に従う制御システム１は、ユニットの性能および現在の設定に応じて決定される、設定可能なＥＰＩの最小値を自動的に算出できる。
【０１１９】
（ｇ１：ＥＰＩの最小値の算出方法）
まず、設定可能なＥＰＩの最小値を算出する方法の一例について説明する。
【０１２０】
図１２は、本実施の形態に従う制御システム１において設定可能なＥＰＩの最小値を算出するために用いられるパラメータテーブル１７０の一例を示す図である。図１２を参照して、パラメータテーブル１７０は、一例として、コントローラ（典型的には、標準制御ユニット１００）の種別別に、第１パラメータ１７２、第２パラメータ１７４および第３パラメータ群１７６の各パラメータ値を含む。
【０１２１】
第１パラメータ１７２は、「（１）ＣＩＰＳａｆｅｔｙの応答性に影響を及ぼすユニットの各種設定」の制約要因を反映する。
【０１２２】
第２パラメータ１７４は、「（２）ＣＩＰＳａｆｅｔｙの設定内容」の制約要因を反映する。
【０１２３】
第３パラメータ群１７６は、「（４−１）ＣＩＰＳａｆｅｔｙ通信サービス１６２を提供するユニットが提供する他のサービス」および「（４−２）ＣＩＰＳａｆｅｔｙ通信サービス１６２を提供するユニットにおける優先度」の制約要因を反映する。
【０１２４】
第１パラメータ１７２、第２パラメータ１７４および第３パラメータ群１７６は、いずれも、「（３）ＣＩＰＳａｆｅｔｙ通信サービス１６２を提供するユニットの処理能力（スペック）」の制約要因を反映する。
【０１２５】
図１２に示すように、対象のコントローラの種別が決定されると、パラメータテーブル１７０から対応する５つのパラメータ値が読み出される。読み出されたパラメータ値および設定内容に基づいて、以下に示すような（１）式に従って、設定可能なＥＰＩの最小値が算出される。
【０１２６】
設定可能なＥＰＩの最小値＝ａ×Ｔｓ＋ｂ×Ｓｃ＋ｃ＋ｄ＋ｅ  ・・・（１）
ここで、設定値Ｔｓは、制御タスク１５０の各実行周期（タスク周期）を意味する。すなわち、設定値Ｔｓは、ＩＯリフレッシュ周期を意味する。また、設定値Ｓｃは、ＣＩＰＳａｆｅｔｙのコネクション数を意味する。なお、設定値Ｓｃとして、ＣＩＰＳａｆｅｔｙのデータサイズを用いてもよい。
【０１２７】
第３パラメータ群１７６のパラメータ値（パラメータ値ｃ，ｄ，ｅ）は、実行されるサービスおよび優先度などを反映する。そのため、対象のコントローラにおいて実行されるサービスや優先度が変更された場合には、その変更後の設定内容に応じて、設定可能なＥＰＩの最小値を再算出するようにしてもよい。
【０１２８】
図１３は、本実施の形態に従う制御システム１において設定可能なＥＰＩの最小値を再算出する処理を説明するための図である。図１３を参照して、対象のコントローラにおいて実行されるサービスの内容あるいはサービスに設定される優先度が変更された場合には、適用するパラメータを再度選択して、設定可能なＥＰＩの最小値を再算出してもよい。
【０１２９】
図１３に示す例では、ＣＩＰＳａｆｅｔｙ通信サービス１６２は、サービスＸ１６６の次に高い優先度が設定されている。一方、サービスＹ１６７およびサービスＺ１６８には、ＣＩＰＳａｆｅｔｙ通信サービス１６２より低い優先度が設定されている。
【０１３０】
このような場合においては、ＣＩＰＳａｆｅｔｙ通信サービス１６２の実行に影響を与えるのは実質的にサービスＸ１６６だけである。そのため、設定可能なＥＰＩの最小値を算出するにあたっては、サービスＸ１６６に対応するパラメータ値のみを反映してもよい。例えば、第３パラメータ群１７６に含まれるパラメータ値ｃ，ｄ，ｅがサービスＸ１６６、サービスＹ１６７、サービスＺ１６８にそれぞれ対応する場合には、パラメータ値ｃのみが反映されることになる。すなわち、設定可能なＥＰＩの最小値は、以下に示すような（２）式に従って算出される。
【０１３１】
設定可能なＥＰＩの最小値＝ａ×Ｔｓ＋ｂ×Ｓｃ＋ｃ  ・・・（２）
このように、対象のコントローラにおいて実行されるサービスのうち、ＣＩＰＳａｆｅｔｙ通信サービス１６２より高い優先度が設定されているサービスに関連付けられるパラメータのみを反映するようにしてもよい。
【０１３２】
なお、ＥＰＩの最大値に対する本質的な制約要因は存在しないので、予め定められた値をＥＰＩの最大値としてもよい。あるいは、通信エラー（タイムアウト）と判断される時間未満の任意の値をＥＰＩの最大値としてもよい。
【０１３３】
（ｇ２：機能構成）
上述したような設定可能なＥＰＩの最小値を算出する機能は、典型的には、サポート装置５００に実装される。以下、サポート装置５００に実装される場合の機能構成について説明する。
【０１３４】
図１４は、本実施の形態に従う制御システム１に含まれるサポート装置５００の機能構成の一例を示すブロック図である。図１４に示す主要機能は、サポート装置５００のプロセッサ５０２がサポートプログラム５１０４を実行することで実現される（図５）。
【０１３５】
図１４を参照して、サポート装置５００は、プログラム開発部５４０と、ＥＰＩ算出部５５０とを含む。
【０１３６】
プログラム開発部５４０は、制御装置２で実行されるプログラムの開発、および、必要な設定を行うためのインターフェイスを提供する。プログラム開発部５４０は、ユーザ操作に従って、標準制御ソースプログラム５１０８、標準コントローラ設定情報５１１０、セーフティソースプログラム５１１２、セーフティコントローラ設定情報５１１４、および、セーフティドライバ設定情報５１１６などを含むプロジェクトデータ５１０６（図５など参照）を生成する。
【０１３７】
このように、プログラム開発部５４０は、制御装置２を構成する標準制御ユニット１００およびセーフティ制御ユニット２００により実行される処理内容の構築、および、通信処理に係る設定、の少なくとも一部を行うための開発環境を提供する。
【０１３８】
ＥＰＩ算出部５５０は、プログラム開発部５４０により生成される設定情報５４２（標準コントローラ設定情報５１１０およびセーフティコントローラ設定情報５１１４などを含む）と、パラメータテーブル１７０（図１２参照）とに基づいて、設定可能なＥＰＩの最小値を算出する。ＥＰＩ算出部５５０により算出された設定可能なＥＰＩの最小値は、ディスプレイなどの出力部５０８（図５など参照）を介してユーザに提示されてもよい。
【０１３９】
このように、ＥＰＩ算出部５５０は、プログラム開発部５４０により提供される開発環境において設定された内容に基づいて、スレーブデバイスとの間でデータを遣り取りする周期（ＥＰＩ）の設定可能な範囲を決定する。
【０１４０】
（ｇ３：ユーザインターフェイス画面例）
次に、上述したような設定可能なＥＰＩの最小値の算出結果をユーザに提示するためのユーザインターフェイス画面例について説明する。
【０１４１】
図１５は、本実施の形態に従う制御システム１が提供するユーザインターフェイス画面の一例を示す図である。図１５に示すユーザインターフェイス画面５７０は、典型的には、サポート装置５００上に表示されてもよい。
【０１４２】
図１５を参照して、ユーザインターフェイス画面５７０は、設定情報５７４に対応付けられたＥＰＩの設定可能範囲５７２を含む。設定情報５７４は、設定項目として、タスク周期５７５（設定Ｔｓ）と、コネクション数５７６（設定Ｓｃ）と、種別情報５７７とを含む。
【０１４３】
このように、サポート装置５００上は、設定可能なＥＰＩの最小値を算出し、当該ＥＰＩの算出に対応する設定情報とともにユーザに提示する。
【０１４４】
図１６は、本実施の形態に従う制御システム１が提供するユーザインターフェイス画面の別の一例を示す図である。図１６（ａ）に示すユーザインターフェイス画面５８０においては、現在のＥＰＩの設定値５８２がターゲットデバイス５８８毎に表示されている。ターゲットデバイス５８８毎のＥＰＩの設定値５８２に対応付けて、設定情報５８４（タスク周期５８５（設定Ｔｓ）、コネクション数５８６（設定Ｓｃ）、種別情報５８７）が表示されている。
【０１４５】
ＥＰＩの設定値５８２が対応する設定情報５８４に基づいて算出される設定可能なＥＰＩの最小値を下回っている場合（すなわち、設定可能範囲外である場合）には、エラーであることをユーザに提示するようにしてもよい。このエラーの提示はどのような形態で行ってもよいが、例えば、該当するＥＰＩの設定値５８２の文字あるいは背景の色を通常の表示態様とは異なるものにする態様を採用してもよい。図１６には、ＥＰＩの設定値５８２に対して、エラーを提示するためのアテンション表示５８９がなされている例を示す。あるいは、該当するＥＰＩの設定値５８２を点滅させたり、音声などを用いた通知を行ったりしてもよい。
【０１４６】
さらに、図１６（ｂ）に示すように、エラーが発生したＥＰＩの設定値５８２に対しては、設定可能範囲内となるように、設定情報５８４の設定内容の変更を示唆するメッセージ５７９を表示するようにしてもよい。図１６（ｂ）に示す例では、コネクション数５８６（設定Ｓｃ）を低減することでＥＰＩの設定値５８２が設定可能範囲内となり得ることが提示されている。メッセージ５７９に含まれる設定内容の変更を示唆する内容は、サポート装置５００が設定情報５８４を異ならせたいくつかの候補を生成し、各候補について設定可能なＥＰＩの最小値をそれぞれ算出することで決定される。
【０１４７】
なお、コネクション数５８６に限らず、他の設定内容を変更することを示唆するようにしてもよい。
【０１４８】
図１７は、本実施の形態に従う制御システム１が提供するユーザインターフェイス画面のさらに別の一例を示す図である。図１７に示すユーザインターフェイス画面５９０は、ＣＩＰＳａｆｅｔｙに係る設定用のインターフェイスを提供する。ユーザインターフェイス画面５９０は、設定対象のポートに設定されているコネクションの情報を含む。
【０１４９】
より具体的には、ユーザインターフェイス画面５９０は、コネクション設定の有効無効を選択するためのフラグ５９２と、対象のコネクションに割り当てられているデータの設定５９３と、対応する設定可能なＥＰＩの最小値５９４と、通信先のデバイス（ターゲットデバイス）との間のネットワーク応答時間５９６とを含む。なお、ネットワーク応答時間５９６については、シミュレーションによって算出された値であってもよいし、実際に測定された値（実測値）であってもよい。
【０１５０】
このような設定インターフェイスにおいて、ＥＰＩの設定値が設定可能範囲外である場合には、設定可能範囲を含むエラーメッセージ５９５を表示するようにしてもよい。
【０１５１】
また、サポート装置５００の開発環境において、プロジェクトデータ５１０６から各ユニットに転送される実行形式のプログラムを生成する際に、設定されているＥＰＩが設定可能範囲内であるか否かを判断し、設定可能範囲外である場合には、エラーメッセージを提示するようにしてもよい。
【０１５２】
上述の図１６および図１７に示すように、サポート装置５００は、スレーブデバイスとの間でデータを遣り取りする周期の設定値がＥＰＩの設定可能な範囲外である場合に、通知を行う通知機能を有していてもよい。
【０１５３】
（ｇ４：フローチャート）
次に、上述したような設定可能なＥＰＩの最小値を算出する処理を実現するための処理手順について説明する。
【０１５４】
図１８は、本実施の形態に従う制御システム１に含まれるサポート装置５００において実行される処理手順の一例を示すフローチャートである。図１８に示す各ステップは、サポート装置５００のプロセッサ５０２がサポートプログラム５１０４を実行することで実現される（図５）。
【０１５５】
図１８を参照して、サポート装置５００は、ユーザ操作に応じて、開発環境の提供を開始する（ステップＳ１００）。すなわち、サポート装置５００は、標準制御ユニット１００により実行される処理内容の構築、および、通信処理に係る設定、の少なくとも一部を行うための開発環境を提供する処理を実行する。
【０１５６】
サポート装置５００は、ユーザ操作に応じて、プログラムを生成および各種の設定情報を決定する（ステップＳ１０２）。そして、サポート装置５００は、設定可能なＥＰＩの最小値の算出に必要な情報が用意されているか否かを判断する（ステップＳ１０４）。設定可能なＥＰＩの最小値の算出に必要な情報が用意されていなければ（ステップＳ１０４においてＮＯ）、サポート装置５００は、ステップＳ１０２以下の処理を繰り返す。
【０１５７】
設定可能なＥＰＩの最小値の算出に必要な情報が用意されていれば（ステップＳ１０４においてＹＥＳ）、サポート装置５００は、算出対象となるデバイス（ターゲットデバイス）を一つ選択し（ステップＳ１０６）、関連する設定情報に基づいて、設定可能なＥＰＩの最小値を算出する（ステップＳ１０８）。すなわち、サポート装置５００は、開発環境において設定された内容に基づいて、スレーブデバイスとの間でデータを遣り取りする周期であるＥＰＩの設定可能な範囲を決定する処理を実行する。
【０１５８】
続いて、サポート装置５００は、算出対象となるデバイスのすべてについて、設定可能なＥＰＩの最小値を算出したか否かを判断する（ステップＳ１１０）。設定可能なＥＰＩの最小値を算出していないデバイスが残っている場合（ステップＳ１１０においてＮＯ）、サポート装置５００は、ステップＳ１０６以下の処理を繰り返す。
【０１５９】
一方、算出対象となるデバイスのすべてについて、設定可能なＥＰＩの最小値を算出していれば（ステップＳ１１０においてＹＥＳ）、サポート装置５００は、現在設定されている１または複数のＥＰＩのうち、対応する設定可能なＥＰＩの最小値を下回っているものがあるか否かを判断する（ステップＳ１１２）。
【０１６０】
現在設定されている１または複数のＥＰＩのうち、対応する設定可能なＥＰＩの最小値を下回っているものがあれば（ステップＳ１１２においてＹＥＳ）、サポート装置５００は、設定可能なＥＰＩの最小値を下回っているＥＰＩを特定する（ステップＳ１１４）。なお、設定可能なＥＰＩの最小値を下回っているＥＰＩがなければ（ステップＳ１１２においてＮＯ）、ステップＳ１１４の処理はスキップされる。
【０１６１】
そして、サポート装置５００は、算出した設定可能なＥＰＩの最小値、および、設定可能なＥＰＩの最小値を下回っているＥＰＩについてのエラーをユーザに提示する（ステップＳ１１６）。そして、処理は終了する。
【０１６２】
＜Ｈ．変形例＞
上述の説明においては、主として、サポート装置５００が設定可能なＥＰＩの最小値を算出する構成例について説明したが、サポート装置５００に限らず、任意の処理主体において算出できる。例えば、コントローラ（標準制御ユニット１００またはセーフティ制御ユニット２００）で実行するようにしてもよいし、サポート装置５００から出力される設定情報に基づいてクラウド上に配置されたコンピュータで実行するようにしてもよい。すなわち、本実施の形態に従う設定可能なＥＰＩの最小値の算出方法は、どのような処理主体で実行されてもよい。
【０１６３】
また、上述の説明においては、主として、ＣＩＰＳａｆｅｔｙについて詳述したが、本発明は、ＣＩＰＳａｆｅｔｙに限らず、１または複数の通信先との間で、予め定められたデータサイズのデータを周期的に遣り取りするデータ通信に広く適用可能である。例えば、ＥｔｈｅｒＮｅｔ／ＩＰによる通常のフレーム伝送などに適用できる。
【０１６４】
また、上述の説明においては、互いに独立した標準制御ユニット１００およびセーフティ制御ユニット２００を含む制御装置２を例示したが、このような構成に限定されることなく、両ユニットの機能を統合した単一のコントローラとして実現してもよい。さらに、本発明の本質は通信処理であるので、必ずしも標準制御ユニット１００およびセーフティ制御ユニット２００の両方を含む制御装置２を用いる必要はなく、いずれか一方のユニットのみからなる制御装置の構成であってもよい。
【０１６５】
＜Ｉ．付記＞
上述したような本実施の形態は、以下のような技術思想を含む。
［構成１］
制御装置（２）および前記制御装置と通信可能なデバイス（１２）とを備える制御システム（１）であって、
制御対象を制御するための制御演算（１５０）を周期的に実行する制御手段（１００）と、
前記デバイスとの間でデータを周期的に遣り取りするための通信処理（１６０）を実行する通信処理手段（１００；２００）と、
前記制御手段により実行される処理内容の構築、および、前記通信処理手段による通信処理に係る設定、の少なくとも一部を行うための開発環境を提供する提供手段（５００；５４０）と、
前記提供手段により提供される開発環境において設定された内容に基づいて、前記デバイスとの間でデータを遣り取りする周期の設定可能な範囲を決定する決定手段（５００；５５０）とを備える、制御システム。
［構成２］
前記決定手段は、前記制御手段により実行される処理内容に応じて決定される制約要因、および、前記通信処理手段による通信処理に係る設定に応じて決定される制約要因の両方を反映して、前記設定可能な範囲を決定する、構成１に記載の制御システム。
［構成３］
前記決定手段は、前記デバイスとの間で遣り取りされるデータのコネクション数およびデータサイズの少なくとも一方に基づいて、前記設定可能な範囲を決定する、構成１または２に記載の制御システム。
［構成４］
前記決定手段は、前記制御手段において実行される前記制御演算の周期に基づいて、前記設定可能な範囲を決定する、構成１〜３のいずれか１項に記載の制御システム。
［構成５］
前記決定手段は、前記制御手段において実行される前記制御演算に設定されている優先度に基づいて、前記設定可能な範囲を決定する、構成１〜４のいずれか１項に記載の制御システム。
［構成６］
前記決定手段は、前記制御装置の処理能力に基づいて、前記設定可能な範囲を決定する、構成１〜５のいずれか１項に記載の制御システム。
［構成７］
前記決定手段は、前記制御装置がデータを遣り取りするデバイス毎に、前記設定可能な範囲を決定する、構成１〜６のいずれか１項に記載の制御システム。
［構成８］
前記デバイスとの間でデータを遣り取りする周期の設定値が前記決定手段により決定された設定可能な範囲外である場合に、通知を行う通知手段（５００）をさらに備える、構成１〜７のいずれか１項に記載の制御システム。
［構成９］
制御装置（２）および前記制御装置と通信可能なデバイス（１２）とを備える制御システム（１）に向けられたサポート装置（５００）であって、
前記制御装置は、
制御対象を制御するための制御演算（１５０）を周期的に実行する制御手段（１００）と、
前記デバイスとの間でデータを周期的に遣り取りするための通信処理（１６０）を実行する通信処理手段（１００；２００）とを備え、
前記サポート装置は、
前記制御手段により実行される処理内容の構築、および、前記通信処理手段による通信処理に係る設定、の少なくとも一部を行うための開発環境を提供する提供手段（５００；５４０）と、
前記提供手段により提供される開発環境において設定された内容に基づいて、前記デバイスとの間でデータを遣り取りする周期の設定可能な範囲を決定する決定手段（５００；５５０）とを備える、サポート装置。
［構成１０］
制御装置（２）および前記制御装置と通信可能なデバイス（１２）とを備える制御システム（１）に向けられたサポート装置用（５００）のプログラム（５１０４）であって、
前記制御装置は、
制御対象を制御するための制御演算（１５０）を周期的に実行する制御手段（１００）と、
前記デバイスとの間でデータを周期的に遣り取りするための通信処理（１６０）を実行する通信処理手段（１００；２００）とを備え、
前記プログラムは、コンピュータにより実行されると、前記コンピュータに
前記制御手段により実行される処理内容の構築、および、前記通信処理手段による通信処理に係る設定、の少なくとも一部を行うための開発環境を提供するステップ（Ｓ１００）と、
前記開発環境において設定された内容に基づいて、前記デバイスとの間でデータを遣り取りする周期の設定可能な範囲を決定するステップ（Ｓ１０８）とを実行させる、サポート装置用のプログラム。
【０１６６】
＜Ｊ．まとめ＞
本実施の形態によれば、制御装置２により実行される処理内容および通信処理に係る設定に基づいて、制御装置２とスレーブデバイスとの間でデータを遣り取りする周期（ＥＰＩ）の設定可能な範囲を決定できる。そのため、知識の少ないユーザであっても適切な周期を設定できる。これによって、様々な種類が存在し、また制御対象に応じて様々な設定がなされる制御装置において、周期超過などによる通信の切断といった不具合の発生を防止できる。
【０１６７】
また、本実施の形態によれば、データを遣り取りする周期（ＥＰＩ）の設定可能な範囲を算出できるので、その算出された範囲内で適切な周期を見つけるためのチューニングを容易に実現できる。
【０１６８】
また、本実施の形態によれば、現実の制御装置２が存在しなくても、データを遣り取りする周期（ＥＰＩ）の設定可能な範囲を事前に知ることができるので、装置設計を容易に実現できる。
【０１６９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１７０】
１  制御システム、２  制御装置、４  リモートＩＯ装置、６  フィールドネットワーク、８  ハブ、１０  プロセスネットワーク、１２  セーフティドライバ、１４  モータ、１６  セーフティコンポーネント、１８  内部バス、２０  上位ネットワーク、１００  標準制御ユニット、１０２，２０２，５０２  プロセッサ、１０４  チップセット、１０６，２０４  主メモリ、１０８，２０８，５１０  ストレージ、１１０  ネットワークコントローラ、１１２，５２０  ＵＳＢコントローラ、１１４  メモリカードインターフェイス、１１６  メモリカード、１１８，２１８  内部バスコントローラ、１２０  フィールドネットワークコントローラ、１２２  プロセスネットワークコントローラ、１２６  カウンタ、１２８  ＲＴＣ、１５０  制御タスク、１５２  リフレッシュ処理、１５４  ユーザプログラム実行処理、１５６  モーションプログラム実行処理、１６０  通信処理、１６２  通信サービス、１６４  プロトコルスタック、１６６  サービスＸ、１６７  サービスＹ、１６８  サービスＺ、１７０  パラメータテーブル、１７２  第１パラメータ、１７４  第２パラメータ、１７６  第３パラメータ群、２００  セーフティ制御ユニット、２１０  メインコントローラ、２２０  セーフティプログラム、２５０  セーフティ制御実行部、３００  カプラユニット、３５０  機能ユニット、３６０  セーフティ機能ユニット、５００  サポート装置、５０４  メインメモリ、５０６  入力部、５０８  出力部、５１２  光学ドライブ、５１４  記録媒体、５１８  プロセッサバス、５４０  プログラム開発部、５４２，５７４，５８４  設定情報、５５０  ＥＰＩ算出部、５７０，５８０，５９０  ユーザインターフェイス画面、５７２  設定可能範囲、５７５，５８５  タスク周期、５７６，５８６  コネクション数、５７７，５８７  種別情報、５７９  メッセージ、５８２  ＥＰＩの設定値、５８８  ターゲットデバイス、５８９  アテンション表示、５９２  フラグ、５９３  データの設定、５９４  ＥＰＩの最小値、５９５  エラーメッセージ、５９６  ネットワーク応答時間、１１０４  標準制御プログラム、５１０２  ＯＳ、５１０４  サポートプログラム、５１０６  プロジェクトデータ、５１０８  標準制御ソースプログラム、５１１０  標準コントローラ設定情報、５１１２  セーフティソースプログラム、５１１４  セーフティコントローラ設定情報、５１１６  セーフティドライバ設定情報。
【図１】
2020149439.tif 000003
【図２】
2020149439.tif 000004
【図３】
2020149439.tif 000005
【図４】
2020149439.tif 000006
【図５】
2020149439.tif 000007
【図６】
2020149439.tif 000008
【図７】
2020149439.tif 000009
【図８】
2020149439.tif 000010
【図９】
2020149439.tif 000011
【図１０】
2020149439.tif 000012
【図１１】
2020149439.tif 000013
【図１２】
2020149439.tif 000014
【図１３】
2020149439.tif 000015
【図１４】
2020149439.tif 000016
【図１５】
2020149439.tif 000017
【図１６】
2020149439.tif 000018
【図１７】
2020149439.tif 000019
【図１８】
2020149439.tif 000020