(57)【要約】【課題】外部装置から与えられる操作指令のセキュア性を確保できるセーフティ制御システムを提供する。【解決手段】本開示の一例に従う機能安全を実現するセーフティ制御システムは、セーフティプログラムを実行する演算処理部と、外部装置からのアクセスを受けて保持する変数を更新するアクセス管理部とを含む。演算処理部は、アクセス管理部により特定の変数が予め定められた値に更新されると、セーフティプログラムの実行を開始する。アクセス管理部は、外部装置との間で、セキュア通信により、変数を更新するための指令を受付ける。【選択図】図１
2019185516.tif 000002
【特許請求の範囲】
【請求項１】
機能安全を実現するセーフティ制御システムであって、
セーフティプログラムを実行する演算処理部と、
外部装置からのアクセスを受けて保持する変数を更新するアクセス管理部とを備え、
前記演算処理部は、前記アクセス管理部により特定の変数が予め定められた値に更新されると、前記セーフティプログラムの実行を開始し、
前記アクセス管理部は、前記外部装置との間で、セキュア通信により、変数を更新するための指令を受付ける、セーフティ制御システム。
【請求項２】
前記セーフティ制御システムは、主として標準制御を担当する標準制御ユニットと、主としてセーフティ制御を担当するセーフティ制御ユニットとを備え、
前記演算処理部は前記セーフティ制御ユニットに設けられ、前記アクセス管理部は前記標準制御ユニットに設けられる、請求項１に記載のセーフティ制御システム。
【請求項３】
前記標準制御ユニットと前記セーフティ制御ユニットとの間は、ローカルバスを介して、変数の更新が反映される、請求項２に記載のセーフティ制御システム。
【請求項４】
前記セーフティ制御システムが管理する変数に対して、１または複数の属性の設定を受付ける属性設定受付部をさらに備え、
前記１または複数の属性は、セキュア性の有効／無効の設定を含む、請求項１〜３のいずれか１項に記載のセーフティ制御システム。
【請求項５】
前記アクセス管理部は、前記セキュア性を有効に設定された変数の値を更新するための指令の遣り取りには、セキュア通信を用いる、請求項４に記載のセーフティ制御システム。
【請求項６】
機能安全を実現するセーフティ制御システムにおける制御方法であって、
外部装置との間で、セキュア通信により、変数値を更新するための指令を受付けるステップと、
前記外部装置からの前記指令を受けて保持する変数を更新するステップと、
特定の変数が予め定められた値に更新されると、セーフティプログラムの実行を開始するステップとを備える、セーフティ制御システムにおける制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機能安全を実現するセーフティ制御システムおよび当該セーフティ制御システムおける制御方法に関する。
【背景技術】
【０００２】
様々な製造現場で使用される設備や機械を安全に使用するためには、ＩＥＣ  ６１５０８などの国際規格に従って機能安全を実現しなければならない。このような機能安全は、セーフティ制御装置にてセーフティプログラムを実行することで実現されることもある。例えば、特開２００５−０３１７７８号公報（特許文献１）は、入力機器からの入力に基づいて、安全出力制御対象に安全出力を与えて機械設備の運転を制御するセーフティコントローラを開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−０３１７７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年のＩＣＴ（Information and Communication Technology）の進展に伴って、例えば、工場設備を遠隔地に配置された制御センターからリモート操作するような形態も実用化されている。このような遠隔地からの制御には、セーフティ制御装置に対する制御も想定される。
【０００５】
このようなセーフティ制御装置に対するリモート操作を実現するにあたっては、遣り取りされる操作指令についてもセキュア性を維持する必要がある。
【０００６】
本発明は、上述したような課題を解決することを一つの目的とし、外部装置から与えられる操作指令のセキュア性を確保できるセーフティ制御システムを提供する。
【課題を解決するための手段】
【０００７】
本開示の一例に従う機能安全を実現するセーフティ制御システムは、セーフティプログラムを実行する演算処理部と、外部装置からのアクセスを受けて保持する変数を更新するアクセス管理部とを含む。演算処理部は、アクセス管理部により特定の変数が予め定められた値に更新されると、セーフティプログラムの実行を開始する。アクセス管理部は、外部装置との間で、セキュア通信により、変数を更新するための指令を受付ける。
【０００８】
本開示によれば、例えば、遠隔地に配置された操作端末などから、セキュア性を維持しつつ、セーフティ制御システムに対して、セーフティプログラムの実行開始を指示できる。これによって、セキュア性を維持しつつ、省力化や省配線化を実現できる。
【０００９】
上述の開示において、セーフティ制御システムは、主として標準制御を担当する標準制御ユニットと、主としてセーフティ制御を担当するセーフティ制御ユニットとを含むようにしてもよい。演算処理部はセーフティ制御ユニットに設けられ、アクセス管理部は標準制御ユニットに設けられてもよい。
【００１０】
本開示によれば、標準制御およびセーフティ制御の間で影響が互いに及ぶことなく、かつ、統合化してシステムを実現できる。
【００１１】
上述の開示において、標準制御ユニットとセーフティ制御ユニットとの間は、ローカルバスを介して、変数の更新が反映されるようにしてもよい。
【００１２】
本開示によれば、標準制御ユニットとセーフティ制御ユニットとの間のデータの遣り取りを、セキュア性が維持されているローカルバスを介して実現できる。
【００１３】
上述の開示において、セーフティ制御システムは、セーフティ制御システムが管理する変数に対して、１または複数の属性の設定を受付ける属性設定受付部をさらに含んでいてもよい。１または複数の属性は、セキュア性の有効／無効の設定を含むようにしてもよい。
【００１４】
本開示によれば、事前にセキュア性の有効／無効の属性を設定することで、セーフティ制御システムで実行されるいずれのプログラムにおいても、セキュア性が保証された変数を利用できる。
【００１５】
上述の開示において、アクセス管理部は、セキュア性を有効に設定された変数の値を更新するための指令の遣り取りには、セキュア通信を用いるようにしてもよい。
【００１６】
本開示によれば、セキュア性を有効に設定するだけで、ユーザが意識することなく、セキュア通信を実現できる。
【００１７】
本開示の別の一例に従う機能安全を実現するセーフティ制御システムにおける制御方法は、外部装置との間で、セキュア通信により、変数値を更新するための指令を受付けるステップと、外部装置からの指令を受けて保持する変数を更新するステップと、特定の変数が予め定められた値に更新されると、セーフティプログラムの実行を開始するステップとを含む。
【００１８】
本開示によれば、例えば、遠隔地に配置された操作端末などから、セキュア性を維持しつつ、セーフティ制御システムに対して、セーフティプログラムの実行開始を指示できる。これによって、セキュア性を維持しつつ、省力化や省配線化を実現できる。
【発明の効果】
【００１９】
本発明によれば、外部装置から与えられる操作指令のセキュア性を確保できる。
【図面の簡単な説明】
【００２０】
【図１】本実施の形態に係るセーフティ制御システムの構成例を示す模式図である。
【図２】本実施の形態に係るセーフティ制御システムのリモート制御装置において提供されるユーザインターフェイス画面の一例を示す模式図である。
【図３】本実施の形態に係る制御装置におけるデータ処理を説明するための模式図である。
【図４】本実施の形態に係る制御装置を構成する標準制御ユニットのハードウェア構成例を示す模式図である。
【図５】本実施の形態に係る制御装置を構成するセーフティ制御ユニットのハードウェア構成例を示す模式図である。
【図６】本実施の形態に係る制御装置を構成するセーフティＩＯユニットのハードウェア構成例を示す模式図である。
【図７】本実施の形態に係る制御装置を構成する通信カプラユニットのハードウェア構成例を示す模式図である。
【図８】本実施の形態に係るセーフティ制御システムにおけるデータ伝送の一例を示すシーケンス図である。
【図９】本実施の形態に係るセーフティ制御ユニットにおいて利用可能な変数を定義するユーザインターフェイス画面を示す。
【図１０】本実施の形態に係る標準制御ユニットにおいて利用可能な変数を定義するユーザインターフェイス画面を示す。
【発明を実施するための形態】
【００２１】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２２】
＜Ａ．適用例＞
まず、本発明が適用される場面の一例について説明する。図１は、本実施の形態に係るセーフティ制御システム１の構成例を示す模式図である。セーフティ制御システム１は、機能安全を実現するためのシステムである。
【００２３】
図１には、一例として、制御装置２を中心とするセーフティ制御システム１を示す。制御装置２は、標準制御およびセーフティ制御が実行可能になっている。
【００２４】
本明細書において、「標準制御」は、典型的には、予め定められた要求仕様に沿って、制御対象を制御するための処理を総称する。一方、「セーフティ制御」は、何らかの不具合によって、何らかの設備や機械などによって人の安全が脅かされることを防止するための処理を総称する。セーフティ制御は、例えば、ＩＥＣ  ６１５０８などに規定された機能安全を実現する。より具体的には、セーフティ制御は、制御対象自体の挙動が本来とは異なっている場合だけではなく、制御装置２自体に何らかの異常が発生したと判断される場合にも、制御対象を停止させるような処理を含む。
【００２５】
標準制御およびセーフティ制御の両方を同一のユニットで実現してもよいが、セーフティ制御システム１においては、主として標準制御を担当する標準制御ユニット１００と、主としてセーフティ制御を担当するセーフティ制御ユニット２００とを用いる構成例を示す。
【００２６】
すなわち、制御装置２は、標準制御ユニット１００およびセーフティ制御ユニット２００からなる。セーフティ制御ユニット２００は、一種のローカルユニットとして、ローカルバス１０を介して標準制御ユニット１００に接続される。
【００２７】
本明細書において、「ローカルユニット」は、ローカルバス１０を介して接続される任意のユニットを総称する。
【００２８】
制御装置２は、さらに、１または複数のセーフティＩＯユニット３００を含む。セーフティＩＯユニット３００は、セーフティコンポーネントからの信号の入力、および／または、セーフティコンポーネントへの信号の出力を司る。本明細書において、「セーフティコンポーネント」は、主として、セーフティ制御に用いられる任意の装置を包含するものであり、例えば、セーフティリレーや各種セーフティセンサなどを含む。
【００２９】
セーフティ制御ユニット２００は、ローカルバス１０を介して、１または複数のセーフティＩＯユニット３００との間でセーフティＩＯデータを遣り取りする。本明細書において、「ＩＯデータ」は、制御対象やセーフティコンポーネントから取得された入力データ、および／または、制御装置やセーフティコンポーネントへ出力される出力データを包含する。「ＩＯデータ」のうち、特にセーフティ制御に用いられるセーフティ入出力データを「セーフティＩＯデータ」と称す。
【００３０】
制御装置２は、さらに配線ＬＮ１を介してリモートＩＯ装置３に接続されている。通常、リモートＩＯ装置３は、制御装置２とは異なる位置に配置され、制御対象やセーフティコンポーネントとの間で信号を遣り取りし、その信号の遣り取りに対応するＩＯデータを標準制御ユニット１００との間で遣り取りする。
【００３１】
より具体的には、リモートＩＯ装置３は、通信カプラユニット４００および１または複数のセーフティＩＯユニット３００からなる。セーフティＩＯユニット３００は、一種のローカルユニットとして、ローカルバス（図示していない）を介して通信カプラユニット４００に接続される。
【００３２】
さらに、制御装置２は、配線ＬＮ２を介して、セーフティコンポーネントを含むロボット５００ともネットワーク接続されている。
【００３３】
本実施の形態に係るセーフティ制御システム１においては、セーフティ制御ユニット２００は、他の制御ユニットおよび／または通信カプラユニット４００との間に、互いに独立した１または複数のコネクションを確立できる。各コネクションにおいては、セーフティＩＯデータを予め定められた周期毎に遣り取りできるようになっている。
【００３４】
例えば、制御装置２のセーフティ制御ユニット２００に着目すると、（１）制御装置２のローカルバス１０を介して接続される１または複数のセーフティＩＯユニット３００との間に確立される第１コネクション１２と、（２）制御装置２と配線ＬＮ１を介して接続されるリモートＩＯ装置３との間に確立される第２コネクション１４と、（３）制御装置２と配線ＬＮ２を介して接続されるロボット５００との間に確立される第３コネクション１６とを管理する。
【００３５】
ローカルバス１０においては、制御装置２のメーカ固有の通信プロトコルに従うデータ伝送が用いられてもよい。例えば、メーカ固有の通信プロトコルとして、所定周期でプロセスデータを逐次転送する形態の伝送を採用する場合には、当該プロセスデータ内に、ＦＳｏＥ（Ｓａｆｅｔｙ  ｏｖｅｒ  ＥｔｈｅｒＣＡＴ）フレームと称されるメッセージフレームを挿入することで、コネクション間のセーフティＩＯデータの遣り取りを実現できる。
【００３６】
また、制御装置２とリモートＩＯ装置３との間の配線ＬＮ１においては、ＥｔｈｅｒＣＡＴ（登録商標）などの規格化された通信プロトコルに従うデータ伝送が用いられてもよい。ＥｔｈｅｒＣＡＴに従うデータ伝送を採用する場合には、ＥｔｈｅｒＣＡＴに従って逐次転送されるプロセスデータ内に、ＦＳｏＥフレーム（メッセージフレーム）を挿入することで、コネクション間のセーフティＩＯデータの遣り取りを実現できる。
【００３７】
また、制御装置２とロボット５００との間の配線ＬＮ２においては、産業用の通信プロトコルに従うデータ伝送が行われる。このような産業用の通信プロトコルとしては、ＥｔｈｅｒＮｅｔ／ＩＰ、ＤｅｖｉｃｅＮｅｔ、ＣｏｍｐｏＮｅｔ、ＣｏｎｔｒｏｌＮｅｔなどが挙げられる。本実施の形態においては、典型例として、ＥｔｈｅｒＮｅｔ／ＩＰに従うデータ伝送が採用されているものとする。このようなデータ伝送の通信プロトコルを利用して、アプリケーション層として、ＣＩＰ（Common Industrial Protocol）あるいはＣＩＰ  Ｓａｆｅｔｙなどの通信プロトコルが実装されている。
【００３８】
典型例として、制御装置２のセーフティ制御ユニット２００とロボット５００との間では、ＥｔｈｅｒＮｅｔ／ＩＰを用いて実装されるＣＩＰ  Ｓａｆｅｔｙに従ってセーフティＩＯデータが遣り取りされる構成を示す。ＥｔｈｅｒＮｅｔ／ＩＰは、イーサネット（登録商標）ベースの通信プロトコルである。ＣＩＰ  Ｓａｆｅｔｙは、ＣＩＰをベースとして、ＩＥＣ  ６１５０８などの機能安全規格に対応させた通信プロトコルである。
【００３９】
上述したように、本実施の形態に係るセーフティ制御システム１においては、制御装置２のセーフティ制御ユニット２００は、互いに独立した複数のコネクションを保持しており、各コネクションにより遣り取りされるセーフティＩＯデータを用いて、コネクション毎に独立したセーフティ制御、および／または、複数のコネクションを連係したセーフティ制御のいずれについても実現できる。
【００４０】
さらに、本実施の形態に係るセーフティ制御システム１において、制御装置２は、配線ＬＮ３を介して、広域ネットワーク４とネットワーク接続されており、広域ネットワーク４を介してリモート制御装置６００とデータ通信可能になっている。リモート制御装置６００は、制御装置２に対するリモート操作を受付ける操作端末に相当する。
【００４１】
典型的な使用形態として、リモート制御装置６００がユーザ操作を受けると、そのユーザ操作の内容が広域ネットワーク４を介して制御装置２へ伝送される。そして、制御装置２においては、当該伝送されたユーザ操作の内容に応答して、セーフティ制御が起動される。
【００４２】
図２は、本実施の形態に係るセーフティ制御システム１のリモート制御装置６００において提供されるユーザインターフェイス画面６１０の一例を示す模式図である。図６を参照して、ユーザインターフェイス画面６１０は、制御対象のセーフティ制御ユニット２００毎にセーフティ制御の実行状況を示す状況表示オブジェクト６１２を含む。例えば、状況表示オブジェクト６１２のうち、実行停止中のセーフティ制御に対応する１つの表示オブジェクト６１４をユーザが選択すると、「プラントＡのセーフティ制御を開始しますか？」といったメッセージ６１６とともに、対象のセーフティ制御を起動するためのボタンオブジェクト６１８が表示される。
【００４３】
ユーザがボタンオブジェクト６１８を選択すると、対象のセーフティ制御を担当するセーフティ制御ユニット２００に対して起動指令が伝送される。そして、起動指令を受けたセーフティ制御ユニット２００においては、セーフティ制御の実行が開始される。
【００４４】
本実施の形態に係るセーフティ制御システム１においては、リモート制御装置６００と制御装置２との間で遣り取りされる操作指令などを含む任意のデータについて、セキュア性を維持できる。
【００４５】
図３は、本実施の形態に係る制御装置２におけるデータ処理を説明するための模式図である。図３を参照して、制御装置２は、標準制御ユニット１００とセーフティ制御ユニット２００とを含む。両ユニット間は、ローカルバス１０を介してデータ通信可能に接続されている。
【００４６】
標準制御ユニット１００は、標準制御プログラムの実行時にアクセス可能な入出力データ領域１５０を有している。入出力データ領域１５０には、１または複数の入力データと、１または複数の出力データとが格納される。入力データは、各種センサ（一般的なセンサおよびセーフティセンサのいずれをも含み得る）から取得された計測値、各種デバイスから取得された任意の値、ユーザにより入力された値などを含む。出力データは、標準制御プログラムおよび／またはセーフティプログラム２０６４の実行より演算された結果を含む。
【００４７】
セーフティ制御ユニット２００は、セーフティプログラム２０６４の実行時にアクセス可能な入出力データ領域１５０を有している。入出力データ領域１５０には、標準制御ユニット１００を介して更新される１または複数の入力データおよび１または複数の出力データが格納される。セーフティ制御ユニット２００において利用される入出力データは、変数管理部２６０によって、変数の対応付けおよびデータ更新が実行される。変数管理部２６０は、セーフティ制御ユニット２００で実行される変数管理プログラム２０６６（図５参照）によって提供される。但し、これに限らず、変数管理部２６０は、システムプログラム２０６０（図５参照）、および／または、標準制御ユニット１００で実行されるシステムプログラム１０６０（図４参照）によって提供されてもよい。
【００４８】
図３に示す例では、標準制御ユニット１００の入力データに相当する変数「Ｉｎｐｕｔ０１」および「Ｉｎｐｕｔ０２」が、セーフティ制御ユニット２００の「ＳｔｄＩｎｐｕｔ０１」および「ＳｔｄＩｎｐｕｔ０２」にそれぞれ対応付けられている。また、標準制御ユニット１００の出力データに相当する変数「Ｏｕｔｐｕｔ０１」および「Ｏｕｔｐｕｔ０２」が、セーフティ制御ユニット２００の「ＳｔｄＯｕｔｐｕｔ０１」および「ＳｔｄＯｕｔｕｔ０２」にそれぞれ対応付けられている。
【００４９】
本実施の形態においては、標準制御ユニット１００は、リモート制御装置６００などの外部装置からのアクセスを受付ける機能を有している。このような外部装置からのアクセスを受付ける機能は、外部公開管理部１６０によって提供される。外部公開管理部１６０は、外部装置からのアクセスを受けて保持する変数を更新するアクセス管理部に相当する。以下の説明においては、外部装置からのアクセスを受付けることを、「外部公開」とも称す。
【００５０】
外部公開管理部１６０による外部公開は、任意のプロトコルおよびアーキテクチャを用いて実現可能である。産業用のネットワークにおいては、例えば、ＯＰＣ  ＵＡ（Ｕｎｉｆｉｅｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）などのマルチレイヤアーキテクチャを利用できる。ＯＰＣ  ＵＡを採用することで、通信プロトコルが異なる装置同士であっても、任意のデータの伝送、交換、更新などが可能である。本実施の形態においては、典型例として、ＯＰＣ  ＵＡを採用することを想定する。
【００５１】
さらに、本実施の形態に係る制御装置２においては、標準制御ユニット１００およびセーフティ制御ユニット２００において利用可能な各種データ（あるいは、任意の変数）に対して任意の属性を付与することができる。このような属性の付与は、属性管理部１７０および２７０によって実現される。
【００５２】
属性管理部１７０および２７０が付与する属性については、任意に定めることができるが、本実施の形態においては、属性として少なくともセキュア性を含む。属性管理部１７０または属性管理部２７０によりセキュア性が有効であるとの属性が付与された入出力データ（あるいは、変数）については、標準制御ユニット１００およびセーフティ制御ユニット２００において、セキュアなデータとして取扱われる。
【００５３】
さらに、セキュア性が有効であるとの属性が付与されている入出力データ（あるいは、変数）のうち、外部公開されるものについては、外部装置からのアクセスにおいても、セキュア性が維持される。すなわち、外部装置からのアクセスによって、入出力データ領域１５０に格納される入力データの値が更新される場合にも、その値を更新するための指令などは、セキュア通信により伝送される。より具体的には、アクセス管理部に相当する外部公開管理部１６０は、外部装置との間で、セキュア通信により、変数を更新するための指令を受付ける。
【００５４】
なお、入出力データ領域１５０に格納される出力データの値へのアクセス（プルあるいはプッシュ）についても、セキュア通信により提供される。
【００５５】
セキュア通信としては、ＯＰＣ  ＵＡに実装されている任意のセキュア性を確保するためのプロトコルを利用してもよい。あるいは、伝送されるデータを任意の方法で暗号化してもよいし、任意の方法で電子署名などを付与するようにしてもよい。さらにあるいは、データ伝送に先だって、パスワードなどの任意の認証方法を経るようにしてもよい。さらにあるいは、ＳＳＬ／ＴＬＳ（Secure Sockets Layer/Transport Layer Security）などの汎用的なプロトコルを用いてもよい。
【００５６】
このように、任意の方法、スキーム、アーキテクチャを用いて、制御装置２と外部装置との間で遣り取りされるデータのセキュア性を担保するようにできる。
【００５７】
標準制御ユニット１００およびセーフティ制御ユニット２００は、上述のような方法によりセキュア性が確保された入出力データあるいは変数を利用可能である。
【００５８】
このような外部装置からのアクセスも含めてセキュア性が確保された入力データをセーフティ制御の起動条件に用いることで、セーフティ制御の起動操作に対して、セキュア性担保できる。
【００５９】
より具体的には、リモート制御装置６００と標準制御ユニット１００との間のデータ伝送経路１８を介して、リモート制御を起動するための操作指令を示す値が入力される。この操作指令によって、標準制御ユニット１００における変数の値が更新される。そして、ローカルバス１０を介して、標準制御ユニット１００が管理する変数の値がセーフティ制御ユニット２００における対応する変数の値に反映される。最終的に、セーフティ制御ユニット２００においては、当該変数の値を起動条件として、セーフティ制御を起動する。このセーフティ制御の起動によって、セーフティ出力データの演算が開始され、対応するセーフティ出力信号が有効化されることで、機能安全が提供されることになる。
【００６０】
このように、セーフティ制御ユニット２００は、外部公開管理部１６０により特定の変数が予め定められた値に更新されると、セーフティプログラム２０６４の実行を開始する。すなわち、本実施の形態においては、セーフティ制御の起動をセキュアな通信を介して指示でき、これによって、セーフティ制御装置に対して外部装置から与えられる操作指令のセキュア性を確保できる。
【００６１】
以下、本実施の形態を実現するためのより具体的な構成および処理について説明する。
＜Ｂ．ハードウェア構成例＞
次に、本実施の形態に係るセーフティ制御システム１を構成する主たる装置のハードウェア構成例について説明する。
【００６２】
（ｂ１：標準制御ユニット１００）
図４は、本実施の形態に係る制御装置２を構成する標準制御ユニット１００のハードウェア構成例を示す模式図である。図４を参照して、標準制御ユニット１００は、プロセッサ１０２と、メインメモリ１０４と、ストレージ１０６と、ネットワークコントローラ１０８，１１０と、フィールドバスコントローラ１１２と、メモリカードインターフェイス１１６と、ローカルバスコントローラ１２０とを含む。これらのコンポーネントは、プロセッサバス１３０を介して接続されている。
【００６３】
プロセッサ１０２は、制御演算などを実行する演算処理部に相当し、ＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）などで構成される。具体的には、プロセッサ１０２は、ストレージ１０６に格納されたプログラム（一例として、システムプログラム１０６０および標準制御プログラム１０６２）を読出して、メインメモリ１０４に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。
【００６４】
メインメモリ１０４は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などの揮発性記憶装置などで構成される。ストレージ１０６は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などの不揮発性記憶装置などで構成される。
【００６５】
ストレージ１０６には、基本的な機能を実現するためのシステムプログラム１０６０に加えて、設備や機械などの制御対象に応じて作成される標準制御プログラム１０６２が格納される。さらに、ストレージ１０６には、セーフティ制御ユニット２００による、ネットワークコントローラ１０８，１１０および／またはフィールドバスコントローラ１１２を利用したデータ伝送を中継するためのメモリマッピング情報１０６４が格納される。
【００６６】
ストレージ１０６には、さらに、外部公開管理部１６０（図３）を実現するための外部公開プログラム１０６６と、属性管理部１７０（図３）を実現するための属性管理プログラム１０６８とが格納される。
【００６７】
ネットワークコントローラ１０８，１１０は、任意の産業用ネットワークを介して、他の制御装置、任意のデバイス、その他任意の情報処理装置との間でデータフレームを遣り取りする。図４には、２つのネットワークコントローラ１０８，１１０を有する構成を図示するが、単一のネットワークコントローラを有する構成であってもよい。
【００６８】
フィールドバスコントローラ１１２は、任意のフィールドバスを介して、リモートデバイスとの間でデータフレームを遣り取りする。図４には、単一のフィールドバスコントローラ１１２を有する構成を図示するが、複数のフィールドバスコントローラを有する構成であってもよい。
【００６９】
メモリカードインターフェイス１１６は、記録媒体の一例であるメモリカード１１８が着脱可能になっている。メモリカードインターフェイス１１６は、メモリカード１１８に対して任意のデータの書込み、および、メモリカード１１８からの任意のデータの読出しが可能になっている。
【００７０】
ローカルバスコントローラ１２０は、ローカルバス１０を介して、セーフティ制御ユニット２００や任意のセーフティＩＯユニット３００との間でデータフレームを遣り取りする。より具体的には、ローカルバスコントローラ１２０は、マスタコントローラ１２２と、ＩＯデータメモリ１２４と、送信回路（ＴＸ）１２６と、受信回路（ＲＸ）１２８とを含む。
【００７１】
ＩＯデータメモリ１２４は、ローカルバス１０を介して任意のローカルユニットとの間で遣り取りするＩＯデータを一時的に保持するメモリであり、各ローカルユニットに対応付けてアドレスが予め規定されている。送信回路１２６は、出力データを含む通信フレームを生成してローカルバス１０上に送出する。受信回路１２８は、ローカルバス１０上を伝送する通信フレームを受信して入力データに復調する。マスタコントローラ１２２は、ローカルバス１０上のデータ伝送タイミングなどに従って、ＩＯデータメモリ１２４、送信回路１２６、および、受信回路１２８を制御する。マスタコントローラ１２２は、ローカルバス１０上のデータ伝送などを管理する通信マスタとしての制御を提供する。
【００７２】
図４には、プロセッサ１０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）など）を用いて実装してもよい。あるいは、標準制御ユニット１００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳ（Operating System）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。さらに、標準制御ユニット１００に表示装置やサポート装置などの機能を統合した構成を採用してもよい。
【００７３】
例えば、標準制御ユニット１００にサポート装置を直接接続する場合には、サポート装置との間でデータを遣り取りするためのＵＳＢ（Universal Serial Bus）ポートおよびＵＳＢコントローラをさらに設けてもよい。
【００７４】
（ｂ２：セーフティ制御ユニット２００）
図５は、本実施の形態に係る制御装置２を構成するセーフティ制御ユニット２００のハードウェア構成例を示す模式図である。図５を参照して、セーフティ制御ユニット２００は、プロセッサ２０２と、メインメモリ２０４と、ストレージ２０６と、ローカルバスコントローラ２２０とを含む。これらのコンポーネントは、プロセッサバス２３０を介して接続されている。
【００７５】
プロセッサ２０２は、セーフティプログラム２０６４を実行する演算処理部に相当する。
【００７６】
ローカルバスコントローラ２２０は、通信スレーブとして機能し、他のローカルユニットと同様の通信インターフェイスを提供する。すなわち、ローカルバスコントローラ２２０は、ローカルバス１０を介して、標準制御ユニット１００およびローカルユニットとの間でデータフレームを遣り取りする。
【００７７】
ローカルバス１０上において、セーフティ制御ユニット２００およびセーフティＩＯユニット３００は、デイジーチェーン接続されている。ローカルバスコントローラ２２０は、ローカルバス１０上で上流側に存在する装置から自ユニット宛ての通信フレームが入来すると、当該入来した通信フレームを取込む。同様に、ローカルバスコントローラ２２０は、ローカルバス１０上で下流側に存在する装置から自ユニット宛ての通信フレームが入来すると、当該入来した通信フレームを取込む。自ユニット宛て以外の通信フレームが入来した場合には、当該通信フレームは、ローカルバスコントローラ２２０をそのまま通過する。このような通信フレームの受信または透過によって、標準制御ユニット１００とローカルユニットおよびセーフティ制御ユニット２００とのノード間のデータ伝送が実現される。
【００７８】
より具体的には、ローカルバスコントローラ２２０は、スレーブコントローラ２２２と、バッファメモリ２２４と、送信回路（ＴＸ）２２５，２２６と、受信回路（ＲＸ）２２７，２２８とを含む。
【００７９】
バッファメモリ２２４は、ローカルバス１０を伝送する通信フレームを一時的に保持する。
【００８０】
受信回路２２７は、ローカルバス１０上を伝送する通信フレームを受信すると、その全部または一部をバッファメモリ２２４に格納する。送信回路２２６は、受信回路２２７により受信された通信フレームを下流側のローカルバス１０へ送出する。
【００８１】
同様に、受信回路２２８は、ローカルバス１０上を伝送する通信フレームを受信すると、その全部または一部をバッファメモリ２２４に格納する。送信回路２２５は、受信回路１２８により受信された通信フレームを下流側のローカルバス１０へ送出する。
【００８２】
スレーブコントローラ２２２は、ローカルバス１０上の通信フレームの順次転送を実現するために、送信回路２２５，２２６、受信回路２２７，２２８、および、バッファメモリ２２４を制御する。
【００８３】
プロセッサ２０２は、制御演算などを実行する演算処理部に相当し、ＣＰＵやＧＰＵなどで構成される。具体的には、プロセッサ２０２は、ストレージ２０６に格納されたプログラム（一例として、システムプログラム２０６０、通信処理プログラム２０６２、およびセーフティプログラム２０６４）を読出して、メインメモリ２０４に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。
【００８４】
メインメモリ２０４は、ＤＲＡＭやＳＲＡＭなどの揮発性記憶装置などで構成される。ストレージ２０６は、例えば、ＨＤＤやＳＳＤなどの不揮発性記憶装置などで構成される。
【００８５】
ストレージ２０６には、基本的な機能を実現するためのシステムプログラム２０６０に加えて、他のセーフティ制御ユニット２００および／またはセーフティＩＯユニット３００との間でデータフレームを遣り取りするためのコネクションを確立および維持するための通信処理プログラム２０６２と、対象のセーフティＩＯユニット３００に応じて作成されるセーフティプログラム２０６４と、変数管理部２６０（図３）を実現するための変数管理プログラム２０６６と、属性管理部２７０（図３）を実現するための属性管理プログラム２０６８とが格納される。
【００８６】
図５には、プロセッサ２０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【００８７】
（ｂ３：セーフティＩＯユニット３００）
図６は、本実施の形態に係る制御装置２を構成するセーフティＩＯユニット３００のハードウェア構成例を示す模式図である。図６を参照して、セーフティＩＯユニット３００は、プロセッサ３０２と、システムメモリ３０６と、セーフティＩＯモジュール３０８と、ローカルバスコントローラ３２０とを含む。これらのコンポーネントは、プロセッサバス３３０を介して接続されている。
【００８８】
ローカルバスコントローラ３２０は、通信スレーブとして機能し、他のローカルユニットと同様の通信インターフェイスを提供する。ローカルバスコントローラ３２０は、スレーブコントローラ３２２と、バッファメモリ３２４と、送信回路（ＴＸ）３２５，３２６と、受信回路（ＲＸ）３２７，３２８とを含む。ローカルバスコントローラ３２０の基本構成は、図５に示すローカルバスコントローラ２２０と同様であるので、詳細な説明は繰返さない。
【００８９】
プロセッサ３０２は、セーフティＩＯユニット３００における各種処理を実行する演算処理部に相当する。システムメモリ３０６は、フラッシュメモリやＮＶＲＡＭ（non-volatile RAM）などで構成され、セーフティＩＯユニット３００での処理に必要な各種設定やファームウェアを格納する。
【００９０】
セーフティＩＯモジュール３０８は、セーフティＩＯユニット３００の機能に応じて、フィールドからの信号に対して入力処理し、および／または、フィールドへの信号を出力処理する。セーフティＩＯモジュール３０８は、さらに、断線検知やフィードバック検知などのセーフティ制御固有の機能も実装される。
【００９１】
図６には、プロセッサ３０２を用いて必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【００９２】
（ｂ４：通信カプラユニット４００）
図７は、本実施の形態に係る制御装置２を構成する通信カプラユニット４００のハードウェア構成例を示す模式図である。図７を参照して、通信カプラユニット４００は、プロセッサ４０２と、メインメモリ４０４と、ストレージ４０６と、ネットワークコントローラ４０８，４１０と、フィールドバスコントローラ４１２と、ローカルバスコントローラ４２０とを含む。これらのコンポーネントは、プロセッサバス４３０を介して接続されている。
【００９３】
プロセッサ４０２は、制御演算などを実行する演算処理部に相当し、ＣＰＵやＧＰＵなどで構成される。具体的には、プロセッサ４０２は、ストレージ４０６に格納されたシステムプログラム４０６０を読出して、メインメモリ４０４に展開して実行することで、ローカルバス１０を介して接続されるローカルユニット（セーフティＩＯユニット３００など）と標準制御ユニット１００および／またはセーフティ制御ユニット２００との間のＩＯデータの遣り取りを仲介するための各種処理を実現する。
【００９４】
メインメモリ４０４は、ＤＲＡＭやＳＲＡＭなどの揮発性記憶装置などで構成される。ストレージ４０６は、例えば、ＨＤＤやＳＳＤなどの不揮発性記憶装置などで構成される。
【００９５】
ストレージ４０６には、ローカルユニットのＩＯデータを遣り取りするための機能を実現するためのシステムプログラム４０６０が格納される。
【００９６】
ネットワークコントローラ４０８，４１０は、任意の産業用ネットワークを介して、他の制御装置、任意のデバイス、その他任意の情報処理装置との間でデータフレームを遣り取りする。図７には、２つのネットワークコントローラ４０８，４１０を有する構成を図示するが、単一のネットワークコントローラを有する構成であってもよい。
【００９７】
フィールドバスコントローラ４１２は、任意のフィールドバスを介して、リモートデバイスとの間でデータフレームを遣り取りする。図７には、単一のフィールドバスコントローラ４１２を有する構成を図示するが、複数のフィールドバスコントローラを有する構成であってもよい。
【００９８】
ローカルバスコントローラ４２０は、ローカルバス１０を介して、セーフティ制御ユニット２００や任意のセーフティＩＯユニット３００との間でデータフレームを遣り取りする。より具体的には、ローカルバスコントローラ４２０は、マスタコントローラ４２２と、ＩＯデータメモリ４２４と、送信回路（ＴＸ）４２６と、受信回路（ＲＸ）４２８とを含む。
【００９９】
ＩＯデータメモリ４２４は、ローカルバス１０を介して任意のローカルユニットとの間で遣り取りするＩＯデータを一時的に保持するメモリであり、各ローカルユニットに対応付けてアドレスが予め規定されている。送信回路４２６は、出力データを含む通信フレームを生成してローカルバス１０上に送出する。受信回路４２８は、ローカルバス１０上を伝送する通信フレームを受信して入力データに復調する。マスタコントローラ４２２は、ローカルバス１０上のデータ伝送タイミングなどに従って、ＩＯデータメモリ４２４、送信回路４２６、および、受信回路４２８を制御する。マスタコントローラ４２２は、ローカルバス１０上のデータ伝送などを管理する通信マスタとしての制御を提供する。
【０１００】
図７には、プロセッサ４０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【０１０１】
＜Ｃ．データ伝送＞
次に、本実施の形態に係るセーフティ制御システム１におけるデータ伝送の一例について説明する。図８は、本実施の形態に係るセーフティ制御システム１におけるデータ伝送の一例を示すシーケンス図である。
【０１０２】
図８を参照して、リモート制御装置６００に対してユーザ操作がなされると（シーケンスＳＱ１）、リモート制御装置６００と標準制御ユニット１００との間のセキュア通信により、ユーザ操作を示す値が標準制御ユニット１００へ送信される（シーケンスＳＱ２）。
【０１０３】
標準制御ユニット１００は、リモート制御装置６００からのユーザ操作を示す値で対応する内部変数を更新する（シーケンスＳＱ３）。標準制御ユニット１００とセーフティ制御ユニット２００との間のローカルバス１０においては、周期的にデータ更新（データリフレッシュ）が実行されており、標準制御ユニット１００における内部変数の更新後の値により、セーフティ制御ユニット２００における内部変数の値が更新される（シーケンスＳＱ５）。すなわち、標準制御ユニット１００とセーフティ制御ユニット２００との間は、ローカルバス１０を介して、変数の更新が反映される。
【０１０４】
さらに、セーフティ制御ユニット２００においては、内部変数が更新されることによって、セーフティプログラム２０６４の起動条件が成立し、セーフティプログラム２０６４の実行が開始される（シーケンスＳＱ６）。そして、セーフティ制御ユニット２００においては、セーフティプログラム２０６４がサイクリック実行される。
【０１０５】
図８のシーケンスに示すように、リモート制御装置６００に対してユーザ操作がなされてセーフティ制御システム１（標準制御ユニット１００およびセーフティ制御ユニット２００）まで伝送される経路において、セキュア性が確保できる。
【０１０６】
＜Ｄ．設定用ユーザインターフェイス＞
次に、本実施の形態に係るセーフティ制御システム１において提供される設定用ユーザインターフェイスの一例について説明する。本実施の形態における設定は、主として、セーフティ制御ユニット２００において利用可能な変数の定義および属性の設定などを行なう段階、および、セーフティ制御ユニット２００において定義された変数と標準制御ユニット１００において定義される変数との関連付けを行なう段階とを含む。
【０１０７】
図９は、本実施の形態に係るセーフティ制御ユニット２００において利用可能な変数を定義するユーザインターフェイス画面７００を示す。図１０は、本実施の形態に係る標準制御ユニット１００において利用可能な変数を定義するユーザインターフェイス画面７０２を示す。
【０１０８】
図９および図１０に示すユーザインターフェイス画面は、セーフティ制御システム１において実行されるプログラムおよび設定などを行なうサポート装置において提供される。すなわち、サポート装置は、セーフティ制御システム１が管理する変数に対して、１または複数の属性の設定を受付ける属性設定受付部に相当する。
【０１０９】
図９に示すユーザインターフェイス画面７００は、変数設定７１０を含む。変数設定７１０は、定義された変数名を示す変数名欄７１１を含む。ユーザは、セーフティ制御ユニット２００で実行されるユーザプログラム（すなわち、セーフティプログラム２０６４）で利用可能な任意の変数を定義する。図９に示す例では、３つの変数「ａａ」，「ｂｂ」，「ｃｃ」が定義されている。
【０１１０】
変数設定７１０は、定義された各変数に対応付けてデータタイプを定義するデータタイプ欄７１２を含む。ユーザは、定義した各変数のデータタイプ（変数型）を定義する。図９に示す例では、変数「ａａ」，「ｂｂ」は「ブール定数」に設定され、変数「ｃｃ」は「セーフティブール定数」に設定されている。ここで、「ブール定数」は標準制御ユニット１００において管理されるブール値を意味し、「セーフティブール定数」は機能安全が保証されたブール値を意味する。典型的には、任意のセーフティＩＯユニット３００により取得された状態値、あるいは、任意のセーフティＩＯユニット３００から出力する出力値に対応付けられる。
【０１１１】
変数設定７１０は、定義された各変数に対応付けて初期値を定義する初期値設定欄７１３を含む。ユーザは、定義した各変数の初期値（セーフティ制御ユニット２００が起動した直後の値）を定義する。図９に示す例では、いずれの変数についても「ＦＡＬＳＥ」（すなわち、「０」）が初期値として定義されている。
【０１１２】
変数設定７１０は、定義された各変数が固定値であるか否かを設定する固定値チェックボックス７１４を含む。ユーザは、定義した各変数を固定値とする場合には、対応するチェックボックスにチェックを入れる。図９に示す例では、いずれの変数についても、入れられておらず、周期的にリフレッシュされる変数であることが示されている。
【０１１３】
変数設定７１０は、定義された各変数を標準制御ユニット１００側へ公開するか否かを示す公開設定欄７１５を含む。すなわち、公開設定欄７１５は、各変数の属性の一例である、標準制御ユニット１００側への公開属性の有効／無効の設定を受付ける。標準制御ユニット１００側へ公開されることで、セーフティ制御ユニット２００と標準制御ユニット１００との間で変数が共有可能になる。
【０１１４】
ユーザは、定義した各変数のうち、標準制御ユニット１００側へ公開すべきか否か、および、標準制御ユニット１００側へ公開する場合には、その種類（入力／出力）を定義する。図９に示す例では、変数「ａａ」は入力データとして公開すること（「Ｉｎｐｕｔ」）が定義されており、変数「ｂｂ」は出力データとして公開すること（「Ｏｕｔｐｕｔ」）が定義されている。また、変数「ｃｃ」は公開しないこと（「Ｄｏ  ｎｏｔ  ｅｘｐｏｓｅ」）が定義されている。
【０１１５】
変数設定７１０は、定義された各変数に対してセキュア設定を有効／無効の設定を入力するにするか否かを示すセキュア設定欄７１６を含む。すなわち、セキュア設定欄７１６は、各変数の属性の一例である、セキュア属性の有効／無効の設定を受付ける。ユーザは、定義した各変数のうち、セキュア設定すべきものをチェックする。図９に示す例では、変数「ａａ」に対してセキュア設定が有効化されている。
【０１１６】
変数設定７１０は、定義された各変数に対して任意の属性設定を行なうための属性設定欄７１７を含む。すなわち、属性設定欄７１７は、各変数についての任意の属性の設定、あるいは、有効／無効の設定を受付けることができる。
【０１１７】
このように、図８に示すユーザインターフェイス画面７００においては、セーフティ制御ユニット２００において利用されるセーフティＩＯデータを示す変数（例えば、図９に示す変数「ｃｃ」）、および、セーフティ制御ユニット２００において利用される任意の変数（例えば、図９に示す変数「ａａ」，「ｂｂ」）が定義される。
【０１１８】
また、標準制御ユニット１００とセーフティ制御ユニット２００との間で供給される、変数の属性も定義される。このような属性として、各変数の標準制御ユニット１００側への公開の有無、セキュア属性、その他任意属性が挙げられる。
【０１１９】
このように、標準制御ユニット１００とセーフティ制御ユニット２００との間で供給される変数についての定義は、変数管理部２６０および属性管理部２７０（図３）により参照される。
【０１２０】
図１０に示すユーザインターフェイス画面７０２は、標準制御ユニット１００において利用可能な変数の定義を受付ける。より具体的には、ユーザインターフェイス画面７０２は、変数設定７２０を含む。変数設定７２０は、セーフティ制御ユニット２００と標準制御ユニット１００との間で共有（すなわち、互いにリンク）された変数についての設定を含む。
【０１２１】
変数設定７２０は、図９に示すユーザインターフェイス画面７００において公開設定された変数「ａａ」，「ｂｂ」についての設定を含む。すなわち、図９に示すユーザインターフェイス画面７００の公開設定欄７１５において、入力データ（Ｉｎｐｕｔ）または出力データ（Ｏｕｔｐｕｔ）として設定された変数が、標準制御ユニット１００において変数割付けの候補になる。
【０１２２】
変数設定７２０は、セーフティ制御ユニット２００において定義された各変数に対応付けてＲｅａｄ／Ｗｒｉｔｅを定義するＲＷ設定欄７２１を含む。ユーザは、定義した各変数がＲｅａｄ（読取専用）／Ｗｒｉｔｅ（編集可能）のいずれであるかを定義する。図１０に示す例では、入力変数である変数「ａａ」に対してはＷｒｉｔｅ（編集可能）が設定されており、出力変数である変数「ｂｂ」に対してはＲｅａｄ（読取専用）が設定されている。
【０１２３】
変数設定７２０は、セーフティ制御ユニット２００において定義された各変数に対応付けてＲｅａｄ／Ｗｒｉｔｅを定義するＲＷ設定欄７２１を含む。
【０１２４】
変数設定７２０は、セーフティ制御ユニット２００において定義された各変数に対応付けてデータタイプを定義するデータタイプ欄７２２を含む。ユーザは、定義した各変数のデータタイプ（変数型）を定義する。図１０に示す例では、変数「ａａ」，「ｂｂ」はいずれも「ブール定数」に設定されている。
【０１２５】
変数設定７２０は、セーフティ制御ユニット２００において定義された各変数に対応付けて、標準制御ユニット１００において参照するときの変数名を定義する変数名欄７２３を含む。ユーザは、セーフティ制御ユニット２００において定義された各変数に対して、標準制御ユニット１００において参照する際の変数名を設定する。図１０に示す例では、変数「ａａ」に対して「ｓｅｃｕｒｅ」との変数名が定義され、変数「ｂｂ」に対して「ｎｏｔｓｅｃｕｒｅ」との変数名が定義されている。
【０１２６】
これらの設定により、セーフティ制御ユニット２００において定義された変数が標準制御ユニット１００との間で共有される。このとき、セーフティ制御ユニット２００において各変数に対して設定された属性もそのまま反映される。
【０１２７】
さらに、変数「ａａ」（標準制御ユニット１００における「ｓｅｃｕｒｅ」）に対して、外部公開属性を有効化することで、リモート制御装置６００などの外部装置からのアクセスが許可される。このとき、変数「ａａ」に対しては、セキュア属性が有効化されているので、リモート制御装置６００から標準制御ユニット１００が取扱う変数「ｓｅｃｕｒｅ」（セーフティ制御ユニット２００における変数「ａａ」に対応）を更新する際には、セキュア通信が利用される。すなわち、標準制御ユニット１００の外部公開管理部１６０は、セキュア性を有効に設定された変数の値を更新するための指令の遣り取りには、セキュア通信を用いる。
【０１２８】
このように、標準制御ユニット１００において利用可能な変数についての定義は、外部公開管理部１６０および属性管理部１７０（図３）により参照される。
【０１２９】
本実施の形態に係るセーフティ制御システム１においては、標準制御ユニット１００およいセーフティ制御ユニット２００のそれぞれで実行されるユーザプログラムおよび設定が同一のサポート装置により可能な環境が提供される。そのため、上述の図９および図１０に示すようなユーザインターフェイス画面によって設定された内容を総合的に評価することができる。
【０１３０】
例えば、標準制御ユニット１００において外部公開属性が設定された変数については、標準制御ユニット１００またはセーフティ制御ユニット２００の変数定義において、セキュア属性が有効化されていない限り、有効なものとして取扱われないようにしてもよい。具体的には、セキュア属性が有効化されていない限り、サポート装置から標準制御ユニット１００および／またはセーフティ制御ユニット２００への設定転送を禁止してもよいし、あるいは、ユーザに対して警告を発するようにしてもよい。
【０１３１】
このように、本実施の形態に係るサポート装置を、セーフティ制御システム１において利用される情報を統合的に管理する統合管理ツールとして実現することで、標準制御およびセーフティ制御の両方に亘って整合性などを評価できる。
【０１３２】
＜Ｅ．変形例＞
本実施の形態においては、標準制御ユニット１００とセーフティ制御ユニット２００とを組み合わせた構成を主として例示したが、これに限らず、両ユニットを一体的に構成してもよい。この場合であっても、上述したような特徴的な処理を実装できる。
【０１３３】
＜Ｆ．付記＞
上述したような本実施の形態は、以下のような技術思想を含む。
［構成１］
機能安全を実現するセーフティ制御システム（１）であって、
セーフティプログラム（２０６４）を実行する演算処理部（２０２）と、
外部装置（６００）からのアクセスを受けて保持する変数を更新するアクセス管理部（１６０）とを備え、
前記演算処理部は、前記アクセス管理部により特定の変数が予め定められた値に更新されると、前記セーフティプログラムの実行を開始し、
前記アクセス管理部は、前記外部装置との間で、セキュア通信により、変数を更新するための指令を受付ける、セーフティ制御システム。
［構成２］
前記セーフティ制御システムは、主として標準制御を担当する標準制御ユニット（１００）と、主としてセーフティ制御を担当するセーフティ制御ユニット（２００）とを備え、
前記演算処理部は前記セーフティ制御ユニットに設けられ、前記アクセス管理部は前記標準制御ユニットに設けられる、構成１に記載のセーフティ制御システム。
［構成３］
前記標準制御ユニットと前記セーフティ制御ユニットとの間は、ローカルバス（１０）を介して、変数の更新が反映される、構成２に記載のセーフティ制御システム。
［構成４］
前記セーフティ制御システムが管理する変数に対して、１または複数の属性の設定を受付ける属性設定受付部（７００）をさらに備え、
前記１または複数の属性は、セキュア性の有効／無効の設定を含む、構成１〜３のいずれか１項に記載のセーフティ制御システム。
［構成５］
前記アクセス管理部は、前記セキュア性を有効に設定された変数の値を更新するための指令の遣り取りには、セキュア通信を用いる、構成４に記載のセーフティ制御システム。
［構成６］
機能安全を実現するセーフティ制御システムにおける制御方法であって、
外部装置との間で、セキュア通信により、変数値を更新するための指令を受付けるステップ（ＳＱ１）と、
前記外部装置からの前記指令を受けて保持する変数を更新するステップ（ＳＱ３，ＳＱ４，ＳＱ５）と、
特定の変数が予め定められた値に更新されると、セーフティプログラムの実行を開始するステップ（ＳＱ６）とを備える、セーフティ制御システムにおける制御方法。
【０１３４】
＜Ｇ．利点＞
一般的なセーフティ制御システムにおいては、入力ユニットにハードワイヤを介して接続された操作ボタンなどを用いて、セーフティ制御を起動するように構成される。メンテナンス性の向上、省配線性、伝達される信号に生じ得るノイズなどの観点から、このようなハードワイヤを用いる構成ではなく、データ伝送による方法が望まれている。
【０１３５】
また、オペレータが容易に近付けない環境（例えば、高温、有毒ガスの存在、クリーンルームなど）にセーフティ制御システムが配置されている場合などには、リモート操作可能な構成が要望される。また、省力化に伴うオペレータ数の減少や、一括したオペレーションによる生産性向上などを目的として、リモート操作化が要望されることもある。
【０１３６】
このような、リモート操作（データ伝送による操作指令の出力）を実現する場合には、セキュリティ性の確保も重要となる。このようなセキュリティ性を確保することで、悪意をもった第三者による不正なアクセスなどを防止する。
【０１３７】
本実施の形態によれば、上述したような構成を採用することで、入力ユニットにハードワイヤを介して接続された操作ボタンなどを用いることなく、遠隔地から、セキュア性を確保しつつ、セーフティコントローラに対する起動指令を与えることができる。
【０１３８】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１３９】
１  セーフティ制御システム、２  制御装置、３  リモートＩＯ装置、４  広域ネットワーク、１０  ローカルバス、１２  第１コネクション、１４  第２コネクション、１６  第３コネクション、１８  データ伝送経路、１００  標準制御ユニット、１０２，２０２，３０２，４０２  プロセッサ、１０４，２０４，４０４  メインメモリ、１０６，２０６，４０６  ストレージ、１０８，１１０，４０８，４１０  ネットワークコントローラ、１１２，４１２  フィールドバスコントローラ、１１６  メモリカードインターフェイス、１１８  メモリカード、１２０，２２０，３２０，４２０  ローカルバスコントローラ、１２２，４２２  マスタコントローラ、１２４，４２４  ＩＯデータメモリ、１２６，２２５，２２６，３２５，３２６，４２６  送信回路（ＴＸ）、１２８，２２７，２２８，３２７，３２８，４２８  受信回路（ＲＸ）、１３０，２３０，３３０，４３０  プロセッサバス、１５０  入出力データ領域、１６０  外部公開管理部、１７０，２７０  属性管理部、２００  セーフティ制御ユニット、２２２，３２２  スレーブコントローラ、２２４，３２４  バッファメモリ、２６０  変数管理部、３００  セーフティＩＯユニット、３０６  システムメモリ、３０８  セーフティＩＯモジュール、４００  通信カプラユニット、５００  ロボット、６００  リモート制御装置、６１０，７００，７０２  ユーザインターフェイス画面、６１２  状況表示オブジェクト、６１４  表示オブジェクト、６１６  メッセージ、６１８  ボタンオブジェクト、７１０，７２０  変数設定、７１１，７２３  変数名欄、７１２，７２２  データタイプ欄、７１３  初期値設定欄、７１４  固定値チェックボックス、７１５  公開設定欄、７１６  セキュア設定欄、７１７  属性設定欄、７２１  設定欄、１０６０，２０６０，４０６０  システムプログラム、１０６２  標準制御プログラム、１０６４  メモリマッピング情報、１０６６  外部公開プログラム、１０６８，２０６８  属性管理プログラム、２０６２  通信処理プログラム、２０６４  セーフティプログラム、２０６６  変数管理プログラム、ＬＮ１，ＬＮ２，ＬＮ３  配線。
【図１】
2019185516.tif 000003
【図２】
2019185516.tif 000004
【図３】
2019185516.tif 000005
【図４】
2019185516.tif 000006
【図５】
2019185516.tif 000007
【図６】
2019185516.tif 000008
【図７】
2019185516.tif 000009
【図８】
2019185516.tif 000010
【図９】
2019185516.tif 000011
【図１０】
2019185516.tif 000012