(57)【要約】【課題】セーフティプログラムに従ってセーフティ制御を実行する処理実行部に対するリモートメンテナンスをより安全に実施できる構成を提供する。【解決手段】セーフティシステムは、セーフティプログラムに従ってセーフティ制御を実行する処理実行部と、処理実行部が保持するセーフティプログラムに対する外部アクセスを仲介する通信部と、ユーザ操作に従って、ネットワークを介してセーフティプログラムを通信部へ転送するサポート装置と、サポート装置から転送されたセーフティプログラムに関する情報をユーザに提示する提示手段とを含む。通信部は、ユーザからの指示を条件として、サポート装置から転送されたセーフティプログラムを処理実行部へ転送する。【選択図】図１
2020149244.tif 000002
【特許請求の範囲】
【請求項１】
セーフティプログラムに従ってセーフティ制御を実行する処理実行部と、
前記処理実行部が保持する前記セーフティプログラムに対する外部アクセスを仲介する通信部と、
ユーザ操作に従って、ネットワークを介して前記セーフティプログラムを前記通信部へ転送するサポート装置と、
前記サポート装置から転送されたセーフティプログラムに関する情報をユーザに提示する提示手段とを備え、
前記通信部は、ユーザからの指示を条件として、前記サポート装置から転送されたセーフティプログラムを前記処理実行部へ転送する、セーフティシステム。
【請求項２】
前記サポート装置は、入力された第１のパスワードを前記セーフティプログラムに付与して前記通信部へ転送し、
前記通信部は、ユーザから入力された第２のパスワードが前記第１のパスワードと一致していることを条件に、前記サポート装置から転送されたセーフティプログラムを前記処理実行部へ転送する、請求項１に記載のセーフティシステム。
【請求項３】
前記第１のパスワードは、任意の文字列、予め定められた候補のうち任意の１つ、および前記サポート装置によりランダムに決定された値のいずれかである、請求項１または２に記載のセーフティシステム。
【請求項４】
前記通信部は、ユーザに対するユーザ認証の成功、および、当該ユーザ認証の成功したユーザに所定の操作権限が設定されていることを条件に、前記サポート装置から転送されたセーフティプログラムを前記処理実行部へ転送する、請求項１に記載のセーフティシステム。
【請求項５】
前記通信部は、ユーザからの転送を拒否する指示に応答して、前記サポート装置から転送されたセーフティプログラムを破棄する、請求項１〜４のいずれか１項に記載のセーフティシステム。
【請求項６】
前記セーフティプログラムに関する情報は、前記セーフティプログラムの更新者、前記セーフティプログラムの更新日時、および前記セーフティプログラムの転送先のうち、少なくとも１つを含む、請求項１〜５のいずれか１項に記載のセーフティシステム。
【請求項７】
前記提示手段は、前記通信部とネットワーク接続された表示操作装置、前記処理実行部の露出面に配置されたインジケータ、および前記通信部の露出面に配置されたインジケータのうち、少なくとも１つを含む、請求項１〜６のいずれか１項に記載のセーフティシステム。
【請求項８】
前記通信部は、電子的な鍵を保持しており、
前記サポート装置は、前記通信部が前記電子的な鍵で復号可能なように、前記セーフティプログラムを暗号化した上で前記通信部へ転送する、請求項１〜７のいずれか１項に記載のセーフティシステム。
【請求項９】
前記通信部は、前記電子的な鍵として秘密鍵を保持しており、
前記サポート装置は、前記秘密鍵と対になる公開鍵を保持している、請求項８に記載のセーフティシステム。
【請求項１０】
前記サポート装置は、
前記セーフティプログラムを転送する必要がある場合にワンタイム鍵を生成し、
前記ワンタイム鍵を前記公開鍵で暗号化して前記通信部へ送信し、
前記セーフティプログラムを前記ワンタイム鍵で暗号化して前記通信部へ送信する、請求項９に記載のセーフティシステム。
【請求項１１】
コントローラシステムにおけるメンテナンス方法であって、
前記コントローラシステムは、
セーフティプログラムに従ってセーフティ制御を実行する処理実行部と、
前記処理実行部が保持する前記セーフティプログラムに対する外部アクセスを仲介する通信部と、
サポート装置とを備え、
前記メンテナンス方法は、
前記サポート装置が、ユーザ操作に従って、ネットワークを介して前記セーフティプログラムを前記通信部へ転送するステップと、
前記サポート装置から転送されたセーフティプログラムに関する情報をユーザに提示するステップと、
ユーザからの指示を条件として、前記サポート装置から転送されたセーフティプログラムを前記処理実行部へ転送するステップとを備える、メンテナンス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セーフティシステムに対するリモートメンテナンス機能に関する。
【背景技術】
【０００２】
様々な製造現場で使用される設備や機械を安全に使用するためには、ＩＥＣ  ６１５０８などの国際規格に従って機能安全を実現しなければならない。
【０００３】
このような機能安全は、セーフティコントローラにてセーフティプログラムを実行することで実現されることもある。例えば、特開２０１０−０５５６５２号公報（特許文献１）は、安全コントローラのプログラム開発支援装置を開示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−０５５６５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
通常、セーフティプログラムに従ってセーフティ制御を実行するコントローラなどに対する各種メンテンサンスを行うための環境が提供される。このようなセーフティ制御に対するメンテナンスを実施するための環境は、ＩＥＣ  ６２０６１などの国際規格に従って、構成されなければならない。
【０００６】
この結果、セーフティ制御に関するメンテナンスは、コントローラが配置された現場で行わざるを得ず、メンテナンス効率や生産性を向上させる制約となっている。
【０００７】
本発明の一つの目的は、セーフティプログラムに従ってセーフティ制御を実行する処理実行部に対するリモートメンテナンスをより安全に実施できる構成を提供することである。
【課題を解決するための手段】
【０００８】
本発明のある局面に従うセーフティシステムは、セーフティプログラムに従ってセーフティ制御を実行する処理実行部と、処理実行部が保持するセーフティプログラムに対する外部アクセスを仲介する通信部と、ユーザ操作に従って、ネットワークを介してセーフティプログラムを通信部へ転送するサポート装置と、サポート装置から転送されたセーフティプログラムに関する情報をユーザに提示する提示手段とを含む。通信部は、ユーザからの指示を条件として、サポート装置から転送されたセーフティプログラムを処理実行部へ転送する。
【０００９】
本発明によれば、サポート装置から転送されたセーフティプログラムに関する情報をユーザに提示し、当該ユーザが転送の指示を行った場合に、はじめてセーフティプログラムが処理実行部へ転送される。そのため、リモートメンテナンスにおいても、現場のユーザと連携しつつ、セーフティプログラムの更新が行われるため、リモートメンテナンスをより安全に実施できる。
【００１０】
サポート装置は、入力された第１のパスワードをセーフティプログラムに付与して通信部へ転送するようにしてもよい。通信部は、ユーザから入力された第２のパスワードが第１のパスワードと一致していることを条件に、サポート装置から転送されたセーフティプログラムを処理実行部へ転送するようにしてもよい。
【００１１】
この構成によれば、サポート装置からセーフティプログラムを転送したユーザと、セーフティプログラムを受信した通信装置に関与するユーザとの間の連携を条件として、セーフティプログラムを処理実行部へ転送できるので、リモートメンテナンスをより安全に実施できる。
【００１２】
第１のパスワードは、任意の文字列、予め定められた候補のうち任意の１つ、およびサポート装置によりランダムに決定された値のいずれかであってもよい。この構成によれば、セーフティシステムでの使用状況や要求などに応じて、適切な形式の第１のパスワードを用いることができる。
【００１３】
通信部は、ユーザに対するユーザ認証の成功、および、当該ユーザ認証の成功したユーザに所定の操作権限が設定されていることを条件に、サポート装置から転送されたセーフティプログラムを処理実行部へ転送するようにしてもよい。この構成によれば、通常のユーザ認証以上の認証処理を要求されないので、ユーザの手続を簡素化できる。
【００１４】
通信部は、ユーザからの転送を拒否する指示に応答して、サポート装置から転送されたセーフティプログラムを破棄するようにしてもよい。この構成によれば、セーフティプログラムの転送が拒否された場合に、通信部が不要なセーフティプログラムを保持していることで生じるリスクを無くすことができる。
【００１５】
セーフティプログラムに関する情報は、セーフティプログラムの更新者、セーフティプログラムの更新日時、およびセーフティプログラムの転送先のうち、少なくとも１つを含んでいてもよい。この構成によれば、ユーザは、セーフティプログラムの詳細を把握した上で、セーフティシステムの転送の許否を判断できる。
【００１６】
提示手段は、通信部とネットワーク接続された表示操作装置、処理実行部の露出面に配置されたインジケータ、および通信部の露出面に配置されたインジケータのうち、少なくとも１つを含んでいてもよい。この構成によれば、様々な形態で、ユーザに対して必要な情報を提示できる。
【００１７】
通信部は、電子的な鍵を保持していてもよい。サポート装置は、通信部が電子的な鍵で復号可能なように、セーフティプログラムを暗号化した上で通信部へ転送するようにしてもよい。この構成によれば、目的の通信部に確実にセーフティプログラムを転送できるとともに、転送中にセーフティプログラムの書き換えなどを防止できる。
【００１８】
通信部は、電子的な鍵として秘密鍵を保持していてもよい。サポート装置は、秘密鍵と対になる公開鍵を保持していてもよい。この構成によれば、通信部およびサポート装置での鍵の管理を容易化できる。
【００１９】
サポート装置は、セーフティプログラムを転送する必要がある場合にワンタイム鍵を生成し、ワンタイム鍵を公開鍵で暗号化して通信部へ送信し、セーフティプログラムをワンタイム鍵で暗号化して通信部へ送信するようにしてもよい。この構成によれば、セーフティプログラムをワンタイム鍵で暗号化できるので、鍵の流出によるセキュリティリスクの増大を防止できるとともに、鍵管理を容易化できる。
【００２０】
本発明の別の局面に従えば、コントローラシステムにおけるメンテナンス方法が提供される。コントローラシステムは、セーフティプログラムに従ってセーフティ制御を実行する処理実行部と、処理実行部が保持するセーフティプログラムに対する外部アクセスを仲介する通信部と、サポート装置とを含む。メンテナンス方法は、サポート装置が、ユーザ操作に従って、ネットワークを介してセーフティプログラムを通信部へ転送するステップと、サポート装置から転送されたセーフティプログラムに関する情報をユーザに提示するステップと、ユーザからの指示を条件として、サポート装置から転送されたセーフティプログラムを処理実行部へ転送するステップとを含む。
【発明の効果】
【００２１】
本発明によれば、セーフティプログラムに従ってセーフティ制御を実行する処理実行部に対するリモートメンテナンスをより安全に実施できる。
【図面の簡単な説明】
【００２２】
【図１】本実施の形態に従うセーフティシステムの構成例を示す外観図である。
【図２】本実施の形態に従うセーフティシステムにおけるリモートメンテナンスの概要を説明するための模式図である。
【図３】本実施の形態に従うセーフティシステムを構成する制御ユニットのハードウェア構成例を示す模式図である。
【図４】本実施の形態に従うセーフティシステムを構成する中継ユニットのハードウェア構成例を示す模式図である。
【図５】本実施の形態に従うセーフティシステムを構成するセーフティユニットのハードウェア構成例を示す模式図である。
【図６】本実施の形態に従うセーフティシステムに対するメンテナンスの要件を説明するための図である。
【図７】本実施の形態に従うセーフティシステムに接続されるサポート装置のハードウェア構成例を示す模式図である。
【図８】本実施の形態に従うセーフティシステムとサポート装置とを直接接続して行うメンテナンスを説明するための図である。
【図９】セーフティシステムに対するサポート装置からのリモートメンテナンスにおける課題を説明するための図である。
【図１０】本実施の形態に従うセーフティシステムに対するサポート装置からのリモートメンテナンスの一形態を説明するための図である。
【図１１】本実施の形態に従うセーフティシステムに対するサポート装置からのリモートメンテナンスの別の一形態を説明するための図である。
【図１２】本実施の形態に従うセーフティシステムに対するサポート装置からのリモートメンテナンスの改良形態の一例を説明するための図である。
【図１３】図１２に示すリモートメンテナンスにおいて表示操作装置に提示されるユーザインターフェイス例を示す模式図である。
【図１４】図１２に示すリモートメンテナンスにおける処理手順を示すシーケンス図である。
【図１５】本実施の形態に従うセーフティシステムに対するサポート装置からのリモートメンテナンスの改良形態の別の一例を説明するための図である。
【図１６】図１５に示すリモートメンテナンスにおける処理手順を示すシーケンス図である。
【図１７】本実施の形態に従うセーフティシステムに対するサポート装置からのリモートメンテナンスの改良形態のさらに別の一例を説明するための図である。
【図１８】図１７に示すリモートメンテナンスにおいて表示操作装置に提示されるユーザインターフェイス例を示す模式図である。
【図１９】図１７に示すリモートメンテナンスにおける処理手順を示すシーケンス図である。
【図２０】本実施の形態に従うセーフティシステムに対するサポート装置からのリモートメンテナンスの改良形態のさらに別の一例を説明するための図である。
【図２１】図２０に示される操作権限情報の一例を示す図である。
【発明を実施するための形態】
【００２３】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００２４】
＜Ａ．適用例＞
まず、本実施の形態に従うセーフティシステム１の全体構成について説明する。
【００２５】
図１は、本実施の形態に従うセーフティシステム１の構成例を示す外観図である。図１を参照して、セーフティシステム１は、制御ユニット１００と、中継ユニット２００と、セーフティユニット３００と、１または複数の機能ユニット４００と、電源ユニット４５０とを含む。
【００２６】
制御ユニット１００と中継ユニット２００との間は、任意のデータ伝送路（例えば、ＰＣＩ  Ｅｘｐｒｅｓｓあるいはイーサネット（登録商標）など）を介して接続されている。制御ユニット１００とセーフティユニット３００および１または複数の機能ユニット４００との間は、内部バス１０（図２参照）を介して接続されている。
【００２７】
制御ユニット１００は、セーフティシステム１において中心的な処理を実行する。制御ユニット１００は、任意に設計された要求仕様に従って、制御対象を制御するための制御演算を実行する。後述のセーフティユニット３００で実行される制御演算との対比で、制御ユニット１００で実行される制御演算を「標準制御」とも称す。図１に示す構成例において、制御ユニット１００は、１または複数の通信ポートを有している。制御ユニット１００は、標準制御プログラムに従って標準制御を実行する処理実行部に相当する。
【００２８】
中継ユニット２００は、制御ユニット１００に接続され、他の装置との間の通信機能を担当する。図１に示す構成例において、中継ユニット２００は、１または複数の通信ポートを有している。中継ユニット２００が提供する通信機能の詳細については、後述する。
【００２９】
セーフティユニット３００は、制御ユニット１００とは独立して、制御対象に関するセーフティ機能を実現するための制御演算を実行する。セーフティユニット３００で実行される制御演算を「セーフティ制御」とも称す。通常、「セーフティ制御」は、ＩＥＣ  ６１５０８などに規定されたセーフティ機能を実現するための要件を満たすように設計される。「セーフティ制御」は、設備や機械などによって人の安全が脅かされることを防止するための処理を総称する。セーフティユニット３００は、セーフティプログラムＳＰＧに従ってセーフティ制御を実行する処理実行部に相当する。
【００３０】
機能ユニット４００は、セーフティシステム１による様々な制御対象に対する制御を実現するための各種機能を提供する。機能ユニット４００は、典型的には、Ｉ／Ｏユニット、セーフティＩ／Ｏユニット、通信ユニット、モーションコントローラユニット、温度調整ユニット、パルスカウンタユニットなどを包含し得る。Ｉ／Ｏユニットとしては、例えば、デジタル入力（ＤＩ）ユニット、デジタル出力（ＤＯ）ユニット、アナログ出力（ＡＩ）ユニット、アナログ出力（ＡＯ）ユニット、パルスキャッチ入力ユニット、および、複数の種類を混合させた複合ユニットなどが挙げられる。セーフティＩ／Ｏユニットは、セーフティ制御に係るＩ／Ｏ処理を担当する。
【００３１】
電源ユニット４５０は、セーフティシステム１を構成する各ユニットに対して、所定電圧の電源を供給する。
【００３２】
本実施の形態に従うセーフティシステム１においては、セーフティ制御を実行するセーフティユニット３００に対するリモートメンテナンスが可能になっている。
【００３３】
図２は、本実施の形態に従うセーフティシステム１におけるリモートメンテナンスの概要を説明するための模式図である。図２を参照して、セーフティシステム１には、ネットワークを介してサポート装置５００が接続可能になっている。
【００３４】
より具体的には、サポート装置５００は、通信部に相当する中継ユニット２００とネットワーク接続される。中継ユニット２００は、制御ユニット１００が保持する標準制御プログラム、および、セーフティユニット３００が保持するセーフティプログラムＳＰＧに対する、サポート装置５００からの外部アクセスを仲介する。
【００３５】
サポート装置５００は、サポート装置５００で実行されるアプリケーションによって、セーフティプログラムＳＰＧに対するリモートメンテナンスが可能になっている。リモートメンテナンスの典型的な処理として、サポート装置５００は、ユーザ操作に従って、ネットワークを介してセーフティプログラムＳＰＧを中継ユニット２００へ転送する。中継ユニット２００は、転送されたセーフティプログラムＳＰＧをセーフティユニット３００へ転送する。
【００３６】
本明細書において、「メンテナンス」は、セーフティ制御を担当するセーフティユニット３００の状態、あるいは、セーフティユニット３００で実行されるセーフティプログラムＳＰＧを、監視あるいは変更する操作を包括する概念である。「メンテナンス」は、基本的には、操作者ＯＰ１（ユーザ）がサポート装置５００を操作することによって実行される。本明細書において、「リモートメンテナンス」との用語は、サポート装置５００を操作する操作者ＯＰ１が、メンテナンスの対象となるセーフティシステム１（セーフティユニット３００）を直接的に確認（目視）することができない場所にいる状態で、メンテナンスを実施することを意味する。
【００３７】
本実施の形態においては、リモートメンテナンスにおいて、セーフティシステム１が配置されている現場の作業者ＯＰ２の安全の確保をより確実化するために、リモートメンテナンスの実施の条件として、現場の作業者ＯＰ２の確認および指示を含める。
【００３８】
より具体的には、セーフティシステム１は、サポート装置５００から転送されたセーフティプログラムＳＰＧに関する情報を現場の作業者ＯＰ２（ユーザ）に提示する。そして、中継ユニット２００は、現場の作業者ＯＰ２（ユーザ）からの指示を条件として、サポート装置５００から転送されたセーフティプログラムＳＰＧをセーフティユニット３００へ転送する。
【００３９】
このような現場の作業者ＯＰ２へのセーフティプログラムＳＰＧに関する情報の提示、および、現場の作業者ＯＰ２からの指示をセーフティプログラムＳＰＧの反映の条件とすることで、現場の作業者ＯＰ２の関与を高めて、安全性の確保をより確実化できる。
【００４０】
＜Ｂ．各ユニットのハードウェア構成例＞
次に、本実施の形態に従うセーフティシステム１を構成する各ユニットのハードウェア構成例について説明する。
【００４１】
（ｂ１：制御ユニット１００）
図３は、本実施の形態に従うセーフティシステム１を構成する制御ユニット１００のハードウェア構成例を示す模式図である。図３を参照して、制御ユニット１００は、主たるコンポーネントとして、ＣＰＵ（Central Processing Unit）やＧＰＵ（Graphical Processing Unit）などのプロセッサ１０２と、チップセット１０４と、主記憶装置１０６と、二次記憶装置１０８と、通信コントローラ１１０と、ＵＳＢ（Universal Serial Bus）コントローラ１１２と、メモリカードインターフェイス１１４と、ネットワークコントローラ１１６，１１８，１２０と、内部バスコントローラ１２２と、インジケータ１２４とを含む。
【００４２】
プロセッサ１０２は、二次記憶装置１０８に格納された各種プログラムを読み出して、主記憶装置１０６に展開して実行することで、標準制御に係る制御演算、および、後述するような各種処理を実現する。チップセット１０４は、プロセッサ１０２と各コンポーネントとの間のデータの遣り取りを仲介することで、制御ユニット１００全体としての処理を実現する。
【００４３】
主記憶装置１０６は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などの揮発性記憶装置などで構成される。二次記憶装置１０８は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などの不揮発性記憶装置などで構成される。
【００４４】
二次記憶装置１０８には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作する制御プログラムが格納される。
【００４５】
通信コントローラ１１０は、中継ユニット２００との間のデータの遣り取りを担当する。通信コントローラ１１０としては、例えば、ＰＣＩ  Ｅｘｐｒｅｓｓあるいはイーサネットなどに対応する通信チップを採用できる。
【００４６】
ＵＳＢコントローラ１１２は、ＵＳＢ接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。
【００４７】
メモリカードインターフェイス１１４は、メモリカード１１５を着脱可能に構成されており、メモリカード１１５に対して制御プログラムや各種設定などのデータを書込み、あるいは、メモリカード１１５から制御プログラムや各種設定などのデータを読出すことが可能になっている。
【００４８】
ネットワークコントローラ１１６，１１８，１２０の各々は、ネットワークを介した任意のデバイスとの間のデータの遣り取りを担当する。ネットワークコントローラ１１６，１１８，１２０は、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＤｅｖｉｃｅＮｅｔ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などの産業用ネットワークプロトコルを採用してもよい。
【００４９】
内部バスコントローラ１２２は、セーフティシステム１を構成するセーフティユニット３００や１または複数の機能ユニット４００との間のデータの遣り取りを担当する。内部バス１０（図２参照）には、メーカ固有の通信プロトコルを用いてもよいし、いずれかの産業用ネットワークプロトコルと同一あるいは準拠した通信プロトコルを用いてもよい。
【００５０】
インジケータ１２４は、制御ユニット１００の動作状態などを通知するものであり、ユニットの露出面に配置された１または複数のＬＥＤなどで構成される。
【００５１】
図３には、プロセッサ１０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）など）を用いて実装してもよい。あるいは、制御ユニット１００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳ（Operating System）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００５２】
（ｂ２：中継ユニット２００）
図４は、本実施の形態に従うセーフティシステム１を構成する中継ユニット２００のハードウェア構成例を示す模式図である。図４を参照して、中継ユニット２００は、主たるコンポーネントとして、ＣＰＵやＧＰＵなどのプロセッサ２０２と、チップセット２０４と、主記憶装置２０６と、二次記憶装置２０８と、通信コントローラ２１０と、通信インターフェイス２１２と、メモリカードインターフェイス２１４と、ネットワークコントローラ２１６，２１８と、インジケータ２２４とを含む。
【００５３】
プロセッサ２０２は、二次記憶装置２０８に格納された各種プログラムを読み出して、主記憶装置２０６に展開して実行することで、後述するような各種通信機能を実現する。チップセット２０４は、プロセッサ２０２と各コンポーネントとの間のデータの遣り取りを仲介することで、中継ユニット２００全体としての処理を実現する。
【００５４】
二次記憶装置２０８には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作する通信処理プログラムが格納される。
【００５５】
通信コントローラ２１０は、制御ユニット１００との間のデータの遣り取りを担当する。通信コントローラ２１０としては、制御ユニット１００に通信コントローラ２１０と同様に、例えば、ＰＣＩ  Ｅｘｐｒｅｓｓあるいはイーサネットなどに対応する通信チップを採用できる。
【００５６】
通信インターフェイス２１２は、ＵＳＢ接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。
【００５７】
メモリカードインターフェイス２１４は、メモリカード２１５を着脱可能に構成されており、メモリカード２１５に対して制御プログラムや各種設定などのデータを書込み、あるいは、メモリカード２１５から制御プログラムや各種設定などのデータを読出すことが可能になっている。
【００５８】
ネットワークコントローラ２１６，２１８の各々は、ネットワークを介した任意のデバイスとの間のデータの遣り取りを担当する。ネットワークコントローラ２１６，２１８は、イーサネットなどの汎用的なネットワークプロトコルを採用してもよい。
【００５９】
インジケータ２２４は、中継ユニット２００の動作状態などを通知するものであり、ユニットの露出面に配置された１または複数のＬＥＤなどで構成される。
【００６０】
図４には、プロセッサ２０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。あるいは、中継ユニット２００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳを並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００６１】
（ｂ３：セーフティユニット３００）
図５は、本実施の形態に従うセーフティシステム１を構成するセーフティユニット３００のハードウェア構成例を示す模式図である。図５を参照して、セーフティユニット３００は、主たるコンポーネントとして、ＣＰＵやＧＰＵなどのプロセッサ３０２と、チップセット３０４と、主記憶装置３０６と、二次記憶装置３０８と、メモリカードインターフェイス３１４と、内部バスコントローラ３２２と、インジケータ３２４とを含む。
【００６２】
プロセッサ３０２は、二次記憶装置３０８に格納された各種プログラムを読み出して、主記憶装置３０６に展開して実行することで、セーフティ制御に係る制御演算、および、後述するような各種処理を実現する。チップセット３０４は、プロセッサ３０２と各コンポーネントとの間のデータの遣り取りを仲介することで、セーフティユニット３００全体としての処理を実現する。
【００６３】
二次記憶装置３０８には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作するセーフティプログラムが格納される。
【００６４】
メモリカードインターフェイス３１４は、メモリカード３１５を着脱可能に構成されており、メモリカード３１５に対してセーフティプログラムや各種設定などのデータを書込み、あるいは、メモリカード３１５からセーフティプログラムや各種設定などのデータを読出すことが可能になっている。
【００６５】
内部バスコントローラ３２２は、内部バス１０（図２参照）を介した制御ユニット１００との間のデータの遣り取りを担当する。
【００６６】
インジケータ３２４は、セーフティユニット３００の動作状態などを通知するものであり、ユニットの露出面に配置された１または複数のＬＥＤなどで構成される。
【００６７】
図５には、プロセッサ３０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。あるいは、セーフティユニット３００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳを並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００６８】
＜Ｃ．セーフティシステム１に対するメンテナンス＞
次に、本実施の形態に従うセーフティシステム１に対するメンテナンスについて説明する。
【００６９】
図６は、本実施の形態に従うセーフティシステム１に対するメンテナンスの要件を説明するための図である。図６には、典型例として、セーフティユニット３００（以下、「デバイス」とも称される。）に格納されているユーザプログラム（セーフティプログラムＳＰＧ）を、サポート装置５００で作成したユーザプログラム（セーフティプログラムＳＰＧ）で書き換えるような場合を想定する。
【００７０】
図６に示す要件は、ＩＥＣ  ６２０６１：２００５の「６．１１．２  Ｓｏｆｔｗａｒｅ  Ｂａｓｅｄ  Ｐａｒａｍｅｔｅｒｉｚａｔｉｏｎ」などに規定されているものである。
【００７１】
１．メンテナンスを行う操作者が権限を有していること（例えば、パスワードを用いた権限確認。）
２．サポート装置５００からデバイスへ送られるセーフティプログラムＳＰＧがデバッグ済みのプログラムであること
３．書き換え対象デバイスがユニークに識別できること（例えば、サポート装置５００とデバイスとの直接接続。あるいは、対象デバイスが有しているユニークな名前やシリアル番号での特定。）
４．サポート装置５００から書き換えたファイルとデバイス上のファイルとが一致していること（例えば、チェックサムを用いた確認。）
５．現場の作業者が安全であること（例えば、誤作動や停止によって、けがをするといった事態を生じないこと）
標準制御を実行する制御ユニット１００に対するメンテナンスではなく、セーフティ制御を実行するセーフティユニット３００に対するメンテナンスについては、上述したような、より厳しい要件が課されることになる。
【００７２】
本実施の形態においては、セーフティシステム１が配置された現場においてメンテナンスを実施することに加えて、遠隔地に配置されたサポート装置５００を操作して、セーフティシステム１をメンテナンスすることが可能になっている。以下、遠隔地に配置されたサポート装置５００を操作することで行うメンテナンスを「リモートメンテナンス」とも称す。
【００７３】
要件１である「メンテナンスを行う操作者が権限を有していること」は、セーフティプログラムＳＰＧの送信元（あるいは、送信者）が正しいことを保証することを意味する。
【００７４】
要件３である「書き換え対象デバイスがユニークに識別できること」は、セーフティプログラムＳＰＧの転送先が正しいことを保証することを意味する。
【００７５】
要件４である「サポート装置５００から書き換えたファイルとデバイス上のファイルとが一致していること」は、セーフティユニット３００への転送後のセーフティプログラムＳＰＧが正しいことを保証することを意味する。
【００７６】
セーフティユニット３００に対するリモートメンテナンスを実現するためには、特に、上述した要件３を考慮することが好ましい。また、要件５についても考慮することが好ましい。
【００７７】
以下、セーフティシステム１に対するリモートメンテナンスを実現するための構成について説明する。
【００７８】
＜Ｄ．サポート装置５００のハードウェア構成例＞
次に、本実施の形態に従うセーフティシステム１に接続されるサポート装置５００のハードウェア構成例について説明する。
【００７９】
図７は、本実施の形態に従うセーフティシステム１に接続されるサポート装置５００のハードウェア構成例を示す模式図である。サポート装置５００は、一例として、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコン）を用いて実現される。
【００８０】
図７を参照して、サポート装置５００は、ＣＰＵやＧＰＵなどのプロセッサ５０２と、主記憶装置５０４と、入力部５０６と、出力部５０８と、二次記憶装置５１０と、光学ドライブ５１２と、通信インターフェイス５２０とを含む。これらのコンポーネントは、プロセッサバス５１８を介して接続されている。
【００８１】
プロセッサ５０２は、二次記憶装置５１０に格納されたプログラム（一例として、ＯＳ５１０２およびサポートプログラム５１０４）を読出して、主記憶装置５０４に展開して実行することで、後述するような各種処理を実現する。
【００８２】
二次記憶装置５１０には、基本的な機能を実現するためのＯＳ５１０２に加えて、サポート装置５００としての機能を提供するためのサポートプログラム５１０４が格納される。サポートプログラム５１０４は、コンピュータである情報処理装置（実質的にはプロセッサ５０２）により実行されることで、本実施の形態に従うサポート装置５００を実現する。
【００８３】
二次記憶装置５１０には、サポートプログラム５１０４が実行されることで提供される開発環境においてユーザにより作成されるプロジェクト５１０６が格納される。さらに、二次記憶装置５１０には、後述するような鍵（秘密鍵および公開鍵）や証明書などが格納されていてもよい。
【００８４】
本実施の形態において、サポート装置５００は、セーフティシステム１に含まれる各デバイスに対する設定および各デバイスで実行されるプログラムの作成が統合的に可能な開発環境を提供する。プロジェクト５１０６は、このような統合的な開発環境によって生成されるデータを含む。典型的には、プロジェクト５１０６は、標準制御ソースプログラム５１０８と、セーフティソースプログラム５１１２とを含む。
【００８５】
標準制御ソースプログラム５１０８は、オブジェクトコードに変換された上で、制御ユニット１００へ転送され、標準制御プログラムとして格納される。セーフティソースプログラム５１１０は、オブジェクトコードに変換された上で、セーフティユニット３００へ転送され、セーフティプログラムとして格納される。
【００８６】
入力部５０６は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。出力部５０８は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ５０２からの処理結果などを出力する。
【００８７】
通信インターフェイス５２０は、ＵＳＢやイーサネットなどの任意の通信媒体を介して、セーフティシステム１との間のデータを遣り取りする。
【００８８】
サポート装置５００は、光学ドライブ５１２を有しており、コンピュータ読取可能な命令を非一過的に格納する記録媒体５１４（例えば、ＤＶＤ（Digital Versatile Disc）などの光学記録媒体）から、その中に格納されたプログラムが読取られて二次記憶装置５１０などにインストールされる。
【００８９】
サポート装置５００で実行されるサポートプログラム５１０４などは、コンピュータ読取可能な記録媒体５１４を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に従うサポート装置５００が提供する機能は、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【００９０】
図７には、プロセッサ５０２がプログラムを実行することで、サポート装置５００として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【００９１】
なお、セーフティシステム１が稼動中において、サポート装置５００は、セーフティシステム１から取り外されていてもよい。
【００９２】
＜Ｅ．セーフティプログラムの転送先が正しいことを保証するための構成（要件３）＞
まず、要件３である「書き換え対象デバイスがユニークに識別できること」を実現するための構成について説明する。
【００９３】
（ｅ１：課題）
図８は、本実施の形態に従うセーフティシステム１とサポート装置５００とを直接接続して行うメンテナンスを説明するための図である。図８を参照して、サポート装置５００とセーフティシステム１（セーフティユニット３００）とを現場において直接接続する場合には、サポート装置５００を操作する操作者は、接続先のデバイス（セーフティユニット３００）を目視により確認できるので、この目視および接続操作によって、書き換え対象デバイスをユニークに識別できる。
【００９４】
図９は、セーフティシステム１に対するサポート装置５００からのリモートメンテナンスにおける課題を説明するための図である。図９を参照して、サポート装置５００は、ネットワーク４を介してセーフティシステム１と電気的に接続されているとする。
【００９５】
ネットワーク４において、セーフティシステム１は、中継ユニット２００に割り当てられたネットワークアドレス（典型的には、ＩＰアドレス）により特定されることになる。
【００９６】
サポート装置５００は、予め登録された転送先となるデバイス（セーフティユニット３００）の名称と、ＩＰアドレスとが対応付けられたリストＬＳを有しており、操作者は、リストＬＳを参照して、転送先となるセーフティユニット３００を選択する。図９に示す例では、ＩＰアドレスとして「１９２．１６８．２５０．１」（Ｓａｆｅｔｙ＿１）が選択されている。そして、サポート装置５００は、操作者の操作に従って、選択されたＩＰアドレスを有するデバイスに対して、セーフティプログラムＳＰＧを転送する。
【００９７】
ここで、ＩＰアドレスは、各デバイスに対して任意に設定することができ、あるいは、ルータなどが動的に割り当てることもある。そのため、別のセーフティシステム２に対して、「１９２．１６８．２５０．１」が誤って設定されている可能性がある。
【００９８】
あるいは、なりすましなどによって、別のセーフティシステム２が転送先であると偽装されることもある。
【００９９】
このように、ＩＰアドレスの指定だけでは、誤った設定やなりすましなどによって、セーフティプログラムＳＰＧの転送先が正しいことを保証できない。すなわち、セーフティプログラムＳＰＧを誤ったシステムへ転送しても気付かない可能性がある。
【０１００】
（ｅ２：解決形態１）
図８に示すような課題に対する解決形態１として、鍵による暗号化を利用した形態について説明する。
【０１０１】
図１０は、本実施の形態に従うセーフティシステム１に対するサポート装置５００からのリモートメンテナンスの一形態を説明するための図である。図１０に示す構成においては、セーフティシステム１の中継ユニット２００は、電子的な鍵を保持しており、サポート装置５００は、中継ユニット２００が保持している電子的な鍵で復号可能なように、メンテナンスに必要なデータ（典型的には、セーフティプログラムＳＰＧ）を暗号化して、中継ユニット２００へ転送する。
【０１０２】
より具体的には、セーフティシステム１に対して、公開鍵基盤に従う秘密鍵および公開鍵からなる鍵ペアが予め用意される。秘密鍵は、中継ユニット２００に格納され、対応する公開鍵は、サポート装置５００に格納される。すなわち、中継ユニット２００は、電子的な鍵として秘密鍵を保持しており、サポート装置５００は、秘密鍵と対になる公開鍵を保持している。
【０１０３】
例えば、ＩＰアドレスとして「１９２．１６８．２５０．１」（Ｓａｆｅｔｙ＿１）を有するセーフティシステム１（中継ユニット２００）は、秘密鍵ＳＫ１を格納しており、サポート装置５００が保持しているリストＬＳにある「１９２．１６８．２５０．１」のエントリには、対応する公開鍵ＰＫ１が関連付けられている。なお、公開鍵ＰＫ１の偽装を防止するために、公開鍵ＰＫ１を認証局が認証することで生成したサーバ証明書をサポート装置５００に格納するようにしてもよい。
【０１０４】
このように、中継ユニット２００は、電子的な鍵として、秘密鍵ＳＫ１を保持している。また、サポート装置５００は、秘密鍵ＳＫ１と対にある公開鍵ＰＫ１、および、公開鍵ＰＫ１に対して発行されたサーバ電子証明書の少なくとも一方を保持している。
【０１０５】
リモートメンテナンスにおいて、サポート装置５００は、操作者の操作に従って、選択されたＩＰアドレスを有するデバイスに対して、セーフティプログラムＳＰＧを転送する際には、選択された転送先の公開鍵でセーフティプログラムＳＰＧを暗号化する。暗号化により生成された暗号化済みセーフティプログラムＳＳＰ（転送データ）が転送先へ転送される。
【０１０６】
暗号化済みセーフティプログラムＳＳＰ（転送データ）が本来の転送先であるセーフティシステム１へ転送された場合には、セーフティシステム１の中継ユニット２００が格納している秘密鍵ＳＫ１を用いた復号が可能となる。
【０１０７】
一方、暗号化済みセーフティプログラムＳＳＰ（転送データ）が誤った転送先であるセーフティシステム２へ転送された場合には、セーフティシステム２の中継ユニット２００が格納している秘密鍵ＳＫ２では復号が行えない。あるいは、セーフティシステム２の中継ユニット２００においては、何らの秘密鍵も保持していないことも想定され、この場合においても、転送データを復号することはできない。
【０１０８】
また、仮に、転送データを何らかの方法で受信したとしても、セーフティシステム２においては転送データを復号することはできない。
【０１０９】
このように、サポート装置５００は、選択した転送先に予め関連付けられた鍵を有しているセーフティシステム１に対して転送データを転送したときに限って、当該転送先では復号できるので、誤った転送先にセーフティプログラムＳＰＧを送信してしまうことがない。これにより、転送先での誤ったＩＰアドレスの設定やＩＰアドレスのなりすましなどがあっても、正しい転送先にセーフティプログラムＳＰＧを転送できる。そして、中継ユニット２００は、サポート装置５００から転送されたデータ（暗号化済みセーフティプログラムＳＳＰ）を秘密鍵ＳＫ１で復号できた場合に、当該復号したデータ（セーフティプログラムＳＰＧ）をセーフティユニット３００へ転送する。
【０１１０】
なお、中継ユニット２００は、復号したセーフティプログラムＳＰＧに対してウィルススキャンなどを実行した後に、セーフティユニット３００へ転送するようにしてもよい。これは、サポート装置５００での暗号化の直前にウィルスに感染している可能性を考慮したものである。
【０１１１】
（ｅ３：解決形態２）
上述の解決形態１においては、転送先の公開鍵を用いて転送データを生成する構成について例示したが、暗号化および復号に係る処理を効率化して、転送速度を高める観点からは、共通鍵をさらに用いるようにしてもよい。
【０１１２】
図１１は、本実施の形態に従うセーフティシステム１に対するサポート装置５００からのリモートメンテナンスの別の一形態を説明するための図である。図１１に示す構成においても、図１０に示す構成と同様に、セーフティシステム１に対して秘密鍵および公開鍵からなる鍵ペアが予め用意される。
【０１１３】
まず、セーフティプログラムＳＰＧは、サポート装置５００において、都度生成されるワンタイム鍵である共通鍵ＴＣＫにより暗号化されて、暗号化済みセーフティプログラムＳＳＰ（転送データ）が生成される。併せて、共通鍵ＴＣＫについては、選択された転送先の公開鍵で暗号化されることで、暗号化済み共通鍵ＳＴＣが生成される。
【０１１４】
サポート装置５００から選択された転送先には、暗号化済みセーフティプログラムＳＳＰおよび暗号化済み共通鍵ＳＴＣが転送される。
【０１１５】
このように、サポート装置５００は、セーフティプログラムＳＰＧを転送する必要がある場合に、ワンタイム鍵である共通鍵ＴＣＫを生成する。そして、サポート装置５００は、ワンタイム鍵である共通鍵ＴＣＫを公開鍵で暗号化して（暗号化済み共通鍵ＳＴＣ）、中継ユニット２００へ送信する。併せて、サポート装置５００は、セーフティプログラムＳＰＧを共通鍵ＴＣＫで暗号化して（暗号化済みセーフティプログラムＳＳＰ）、中継ユニット２００へ送信する。
【０１１６】
転送先のセーフティシステム１の中継ユニット２００は、サポート装置５００から受信した暗号化済み共通鍵ＳＴＣを自デバイスの秘密鍵ＳＫ１で共通鍵ＴＣＫに復号する。そして、転送先のセーフティシステム１の中継ユニット２００は、復号した共通鍵ＴＣＫでサポート装置５００から受信した暗号化済みセーフティプログラムＳＳＰ（転送データ）をセーフティプログラムＳＰＧに復号する。
【０１１７】
一方、暗号化済みセーフティプログラムＳＳＰおよび暗号化済み共通鍵ＳＴＣが誤った転送先であるセーフティシステム２へ転送された場合には、セーフティシステム２の中継ユニット２００が格納している秘密鍵ＳＫ２では復号が行えない。あるいは、セーフティシステム２の中継ユニット２００においては、何らの秘密鍵も保持していないことも想定され、この場合においても、転送データを復号することはできない。
【０１１８】
また、仮に、サポート装置５００からのデータを何らかの方法で受信したとしても、セーフティシステム２においては転送データを復号することはできない。
【０１１９】
このように、サポート装置５００は、選択した転送先に予め関連付けられた鍵を有しているセーフティシステム１に対して転送データを転送したときに限って、当該転送先では復号できるので、誤った転送先にセーフティプログラムＳＰＧを送信してしまうことがない。これにより、転送先での誤ったＩＰアドレスの設定やＩＰアドレスのなりすましなどがあっても、正しい転送先にセーフティプログラムＳＰＧを転送できる。
【０１２０】
（ｅ４：認証局の利用）
サポート装置５００が利用する各デバイスの公開鍵は、転送先となるセーフティシステム１（あるいは、中継ユニット２００）から直接的または間接的に取得してもよい。あるいは、認証局（ＣＡ：Certificate Authority）に公開鍵を登録するとともに、認証局が発行する公開鍵に対するサーバ証明書を各デバイスの公開鍵として用いるようにしてもよい。認証局を利用することで、公開鍵の偽装などを防止することができる。
【０１２１】
＜Ｆ．現場の作業者が安全であることを保証するための構成（要件５）＞
まず、要件５である「現場の作業者が安全であること」を実現するための構成について説明する。
【０１２２】
（ｆ１：課題）
上述の図１０および図１１に示す解決形態では、操作者がサポート装置５００を操作することで、新たなセーフティプログラムＳＰＧがセーフティユニット３００へ転送されることになる。通常、サポート装置５００の操作者は、セーフティユニット３００が配置された現場を担当する作業者と連絡を取りつつ、セーフティプログラムＳＰＧの書き換え操作を行うため、作業者に対する安全には問題がない。
【０１２３】
但し、このような遣り取りをシステムに担保することがより好ましい。すなわち、現場の作業者が安全であることを保証できるシステムを構築することが好ましい。
【０１２４】
（ｆ２：解決形態１）
上述したような要件５をシステム的に保証する解決形態１として、サポート装置５００から転送された新たなセーフティプログラムＳＰＧをセーフティユニット３００に反映するために、現場の作業者の明示的な操作を条件とする構成例を示す。
【０１２５】
図１２は、本実施の形態に従うセーフティシステム１に対するサポート装置５００からのリモートメンテナンスの改良形態の一例を説明するための図である。図１２に示す構成は、上述の図１０に示す構成に対して改良を加えたものに相当する。図１２に示すセーフティシステム１には、現場の作業者の操作を受け付ける表示操作装置６００が接続されている。具体例として、表示操作装置６００は、中継ユニット２００とネットワーク接続されている。
【０１２６】
図１２に示す構成においては、リモートメンテナンスにおいてサポート装置５００から転送されたセーフティプログラムＳＰＧがそのままセーフティユニット３００へ転送するのではなく、一旦、中継ユニット２００に格納される。そして、現場の作業者からの明示的な指示を受けて、セーフティプログラムＳＰＧは、中継ユニット２００からセーフティユニット３００へ転送される。
【０１２７】
より具体的には、リモートメンテナンスにおいて、サポート装置５００は、操作者の操作に従って、選択されたＩＰアドレスを有するデバイスに対して、セーフティプログラムＳＰＧを転送する際には、選択された転送先の公開鍵でセーフティプログラムＳＰＧを暗号化する。暗号化により生成された暗号化済みセーフティプログラムＳＳＰ（転送データ）が転送先へ転送される。暗号化済みセーフティプログラムＳＳＰ（転送データ）が本来の転送先であるセーフティシステム１へ転送された場合には、セーフティシステム１の中継ユニット２００が格納している秘密鍵ＳＫ１を用いた復号が可能となる。
【０１２８】
セーフティシステム１の中継ユニット２００は、秘密鍵ＳＫ１を用いて転送データをセーフティプログラムＳＰＧに復号できると、復号したセーフティプログラムＳＰＧを一旦内部に格納する。そして、セーフティシステム１の中継ユニット２００は、復号したセーフティプログラムＳＰＧに関する情報を表示操作装置６００へ通知する。
【０１２９】
現場の作業者は、表示操作装置６００を参照してセーフティプログラムＳＰＧの妥当性を確認するとともに、自身を含む現場の作業者が安全であることを確認した後に、表示操作装置６００に対して転送承諾を指示する。この転送承諾に従って、表示操作装置６００は、中継ユニット２００に転送指示を送信する。
【０１３０】
中継ユニット２００は、表示操作装置６００からの転送指示に従って、先に格納しているセーフティプログラムＳＰＧをセーフティユニット３００へ転送する。これにより、セーフティプログラムＳＰＧの書き換え処理が完了する。
【０１３１】
このように、中継ユニット２００は、現場の作業者からの指示を条件として、サポート装置５００から転送されたセーフティプログラムＳＰＧをセーフティユニット３００へ転送する。セーフティユニット３００へのセーフティプログラムＳＰＧの反映を現場の作業者の明示的な操作を条件とすることで、現場の作業者の安全をより確実に確保できる。
【０１３２】
図１３は、図１２に示すリモートメンテナンスにおいて表示操作装置６００に提示されるユーザインターフェイス例を示す模式図である。図１３を参照して、表示操作装置６００は、中継ユニット２００からのセーフティプログラムＳＰＧに関する情報を提示する。すなわち、表示操作装置６００は、サポート装置５００から転送されたセーフティプログラムＳＰＧに関する情報をユーザに提示する。
【０１３３】
一例として、表示操作装置６００が提供するユーザインターフェイス画面は、セーフティプログラムＳＰＧの変更操作者を示す情報６０２と、セーフティプログラムＳＰＧの変更日時を示す情報６０４と、セーフティプログラムＳＰＧの転送先を示す情報６０６とを含む。
【０１３４】
現場の作業者は、表示操作装置６００上に提示される情報を確認するとともに、自身を含む現場の作業者が安全であることを確認した後に、表示操作装置６００上の承諾ボタン６０８を押下する。この承諾ボタン６０８に押下に応答して、表示操作装置６００は、中継ユニット２００に対して転送指示を送信する。すると、中継ユニット２００からセーフティユニット３００に対してセーフティプログラムＳＰＧが転送される。
【０１３５】
このように、サポート装置５００から転送されたセーフティプログラムＳＰＧの情報が表示操作装置６００上に提示される。そして、現場の作業者は、セーフティプログラムＳＰＧの妥当性、および、現場の作業者が安全であることを確認してから、セーフティプログラムＳＰＧの転送を承諾する。そして、中継ユニット２００は、現場の作業者からの転送承諾に応答して、セーフティプログラムＳＰＧをセーフティユニット３００へ転送する。
【０１３６】
一方、何らかの理由で、現場の作業者が拒否ボタン６１０を押下した場合には、表示操作装置６００は、中継ユニット２００に対して転送中止を送信する。すると、中継ユニット２００は、格納しているセーフティプログラムＳＰＧを破棄してもよい。このように、中継ユニット２００は、ユーザからの転送を拒否する指示に応答して、サポート装置５００から転送されたセーフティプログラムＳＰＧを破棄してもよい。
【０１３７】
なお、図１３に示されるユーザインターフェイスにおいては、セーフティプログラムＳＰＧに関する情報として、セーフティプログラムＳＰＧの更新者、セーフティプログラムＳＰＧの更新日時、およびセーフティプログラムＳＰＧの転送先が提示されているが、これらの全部の情報ではなく、少なくとも一部を提示するようにしてもよい。
【０１３８】
図１４は、図１２に示すリモートメンテナンスにおける処理手順を示すシーケンス図である。図１４を参照して、操作者によるサポート装置５００の操作（シーケンスＳＱ１００）に従って、サポート装置５００は、セーフティプログラムＳＰＧの作成・編集処理を実行する（シーケンスＳＱ１０２）。
【０１３９】
続いて、操作者による転送先の選択および転送の操作（シーケンスＳＱ１０４）に従って、サポート装置５００は、選択された中継ユニット２００とネットワーク接続し、転送先の公開鍵でセーフティプログラムＳＰＧを暗号化して暗号化済みセーフティプログラムＳＳＰ（転送データ）を生成する（シーケンスＳＱ１０６）。そして、サポート装置５００は、選択された転送先へ転送データを転送する（シーケンスＳＱ１０８）。
【０１４０】
転送先の中継ユニット２００は、サポート装置５００から転送データを受信すると、当該受信したデータを自デバイスの秘密鍵ＳＫ１でセーフティプログラムＳＰＧに復号する（シーケンスＳＱ１１０）。
【０１４１】
そして、中継ユニット２００は、復号したセーフティプログラムＳＰＧに関する情報を表示操作装置６００へ通知する（シーケンスＳＱ１１２）。表示操作装置６００は、中継ユニット２００からの情報に基づいて、セーフティプログラムＳＰＧに関する情報を提示する（シーケンスＳＱ１１４）。さらに、表示操作装置６００は、現場の作業者からの操作を受け付けると（シーケンスＳＱ１１６）、その受け付けた操作の内容（転送承諾または転送拒否）を中継ユニット２００へ送信する（シーケンスＳＱ１１８）。
【０１４２】
中継ユニット２００は、表示操作装置６００から転送承諾の指示を受信した場合（シーケンスＳＱ１２０においてＹＥＳ）には、復号したセーフティプログラムＳＰＧをセーフティユニット３００へ転送する（シーケンスＳＱ１２２）。この中継ユニット２００からセーフティユニット３００へのセーフティプログラムＳＰＧの転送は、内部バス１０を介して実行される。セーフティユニット３００は、中継ユニット２００からのセーフティプログラムＳＰＧを格納する（シーケンスＳＱ１２４）。そして、セーフティユニット３００は、格納したセーフティプログラムＳＰＧに従ってセーフティ制御を実行する。
【０１４３】
これにより、サポート装置５００からセーフティユニット３００に対するリモートメンテナンスが完了する。
【０１４４】
一方、中継ユニット２００は、表示操作装置６００から転送拒否の指示を受信した場合（シーケンスＳＱ１２０においてＮＯ）には、格納しているセーフティプログラムＳＰＧを破棄する（シーケンスＳＱ１２６）。この場合には、サポート装置５００からセーフティユニット３００に対するリモートメンテナンスは途中終了する。
【０１４５】
（ｆ３：解決形態２）
上述した解決形態１と同様の技術思想を上述の図１１に示す構成にも適用してもよい。すなわち、上述の図１１に示すような構成において、サポート装置５００から転送された新たなセーフティプログラムＳＰＧをセーフティユニット３００に反映するために、現場の作業者の明示的な操作を条件とするようにしてもよい。
【０１４６】
図１５は、本実施の形態に従うセーフティシステム１に対するサポート装置５００からのリモートメンテナンスの改良形態の別の一例を説明するための図である。図１５に示す構成は、上述の図１１に示す構成に対して改良を加えたものに相当する。図１５に示すセーフティシステム１には、現場の作業者の操作を受け付ける表示操作装置６００が接続されている。
【０１４７】
図１５に示す構成においては、まず、セーフティプログラムＳＰＧは、サポート装置５００において、都度生成されるワンタイム鍵である共通鍵ＴＣＫにより暗号化されて、暗号化済みセーフティプログラムＳＳＰ（転送データ）が生成される。併せて、共通鍵ＴＣＫについては、選択された転送先の公開鍵で暗号化されることで、暗号化済み共通鍵ＳＴＣが生成される。
【０１４８】
サポート装置５００から選択された転送先には、暗号化済みセーフティプログラムＳＳＰおよび暗号化済み共通鍵ＳＴＣが転送される。サポート装置５００は、共通鍵ＴＣＫでメンテナンスに必要なデータを暗号化するとともに、中継ユニット２００が保持する鍵（秘密鍵ＳＫ１）で復号可能なように共通鍵ＴＣＫを暗号化して、中継ユニット２００へ送信する。
【０１４９】
転送先のセーフティシステム１の中継ユニット２００は、サポート装置５００から受信した暗号化済み共通鍵ＳＴＣを自デバイスの秘密鍵ＳＫ１で共通鍵ＴＣＫに復号する。そして、転送先のセーフティシステム１の中継ユニット２００は、復号した共通鍵ＴＣＫでサポート装置５００から受信した暗号化済みセーフティプログラムＳＳＰ（転送データ）をセーフティプログラムＳＰＧに復号する。
【０１５０】
セーフティシステム１の中継ユニット２００は、セーフティプログラムＳＰＧに復号できると、復号したセーフティプログラムＳＰＧを一旦内部に格納する。そして、セーフティシステム１の中継ユニット２００は、復号したセーフティプログラムＳＰＧに関する情報を表示操作装置６００へ通知する。
【０１５１】
現場の作業者は、表示操作装置６００を参照してセーフティプログラムＳＰＧの妥当性を確認するとともに、自身を含む現場の作業者が安全であることを確認した後に、表示操作装置６００に対して転送承諾を指示する。この転送承諾に従って、表示操作装置６００は、中継ユニット２００に転送指示を送信する。
【０１５２】
中継ユニット２００は、表示操作装置６００からの転送指示に従って、先に格納しているセーフティプログラムＳＰＧをセーフティユニット３００へ転送する。これにより、セーフティプログラムＳＰＧの書き換え処理が完了する。
【０１５３】
このように、セーフティユニット３００へのセーフティプログラムＳＰＧの反映を現場の作業者の明示的な操作を条件とすることで、現場の作業者の安全をより確実に確保できる。
【０１５４】
図１６は、図１５に示すリモートメンテナンスにおける処理手順を示すシーケンス図である。図１６を参照して、操作者によるサポート装置５００の操作（シーケンスＳＱ１００）に従って、サポート装置５００は、セーフティプログラムＳＰＧの作成・編集処理を実行する（シーケンスＳＱ１０２）。
【０１５５】
続いて、操作者による転送先の選択および転送の操作（シーケンスＳＱ１０４）に従って、サポート装置５００は、ワンタイム鍵として共通鍵ＴＣＫを生成する（シーケンスＳＱ１３０）。そして、サポート装置５００は、生成した共通鍵ＴＣＫでセーフティプログラムＳＰＧを暗号化して暗号化済みセーフティプログラムＳＳＰ（転送データ）を生成する（シーケンスＳＱ１３２）。また、サポート装置５００は、転送先の公開鍵で共通鍵ＴＣＫを暗号化して暗号化済み共通鍵ＳＴＣを生成する（シーケンスＳＱ１３４）。
【０１５６】
最終的に、サポート装置５００は、暗号化済みセーフティプログラムＳＳＰおよび暗号化済み共通鍵ＳＴＣを選択された転送先へ転送する（シーケンスＳＱ１３６）。
【０１５７】
転送先の中継ユニット２００は、サポート装置５００から暗号化済み共通鍵ＳＴＣを受信すると、当該受信した暗号化済み共通鍵ＳＴＣを自デバイスの秘密鍵ＳＫ１で共通鍵ＴＣＫに復号する（シーケンスＳＱ１４０）。
【０１５８】
また、中継ユニット２００は、暗号化済みセーフティプログラムＳＳＰ（転送データ）を共通鍵ＴＣＫでセーフティプログラムＳＰＧに復号する（シーケンスＳＱ１４２）。
【０１５９】
そして、中継ユニット２００は、復号したセーフティプログラムＳＰＧに関する情報を表示操作装置６００へ通知する（シーケンスＳＱ１１２）。表示操作装置６００は、中継ユニット２００からの情報に基づいて、セーフティプログラムＳＰＧに関する情報を提示する（シーケンスＳＱ１１４）。さらに、表示操作装置６００は、現場の作業者からの操作を受け付けると（シーケンスＳＱ１１６）、その受け付けた操作の内容（転送承諾または転送拒否）を中継ユニット２００へ送信する（シーケンスＳＱ１１８）。
【０１６０】
中継ユニット２００は、表示操作装置６００から転送承諾の指示を受信した場合（シーケンスＳＱ１２０においてＹＥＳ）には、復号したセーフティプログラムＳＰＧをセーフティユニット３００へ転送する（シーケンスＳＱ１２２）。この中継ユニット２００からセーフティユニット３００へのセーフティプログラムＳＰＧの転送は、内部バス１０を介して実行される。セーフティユニット３００は、中継ユニット２００からのセーフティプログラムＳＰＧを格納する（シーケンスＳＱ１２４）。そして、セーフティユニット３００は、格納したセーフティプログラムＳＰＧに従ってセーフティ制御を実行する。
【０１６１】
これにより、サポート装置５００からセーフティユニット３００に対するリモートメンテナンスが完了する。
【０１６２】
一方、中継ユニット２００は、表示操作装置６００から転送拒否の指示を受信した場合（シーケンスＳＱ１２０においてＮＯ）には、格納しているセーフティプログラムＳＰＧを破棄する（シーケンスＳＱ１２６）。この場合には、サポート装置５００からセーフティユニット３００に対するリモートメンテナンスは途中終了する。
【０１６３】
（ｆ４：解決形態３）
上述の構成において、表示操作装置６００においてさらに認証処理を付加してもよい。認証処理を付加することで、セーフティユニット３００へのセーフティプログラムＳＰＧの転送指示をより確実なものとすることができる。
【０１６４】
図１７は、本実施の形態に従うセーフティシステム１に対するサポート装置５００からのリモートメンテナンスの改良形態のさらに別の一例を説明するための図である。図１７に示す構成は、上述の図１２に示す構成に対して認証処理を追加したものに相当する。
【０１６５】
図１７に示す構成においては、リモートメンテナンスにおいてサポート装置５００から転送されるセーフティプログラムＳＰＧには、予め設定された送信パスワードＳＰＷが付与されている。すなわち、サポート装置５００は、操作者から入力されたパスワードをセーフティプログラムＳＰＧに付与して中継ユニット２００へ転送する。
【０１６６】
一方、現場の作業者は、表示操作装置６００を参照してセーフティプログラムＳＰＧの妥当性を確認するとともに、自身を含む現場の作業者が安全であることを確認した後に、表示操作装置６００に対して受信パスワードＲＰＷを入力する。現場の作業者から入力された受信パスワードＲＰＷがセーフティプログラムＳＰＧに付与された送信パスワードＳＰＷと一致する場合に限って、セーフティプログラムＳＰＧが中継ユニット２００からセーフティユニット３００へ転送される。
【０１６７】
より具体的には、リモートメンテナンスにおいて、操作者は、セーフティプログラムＳＰＧの転送前または転送時に、送信パスワードＳＰＷをサポート装置５００に入力する。送信パスワードＳＰＷは、通常、現場の作業者との間で共有されたものが用いられる。そして、サポート装置５００は、操作者の操作に従って、選択されたＩＰアドレスを有するデバイスに対して、セーフティプログラムＳＰＧおよび入力された送信パスワードＳＰＷを、選択された転送先の公開鍵で暗号化する。暗号化により生成された転送データが転送先へ転送される。暗号化済みセーフティプログラムＳＳＰ（転送データ）が本来の転送先であるセーフティシステム１へ転送された場合には、セーフティシステム１の中継ユニット２００が格納している秘密鍵ＳＫ１を用いた復号が可能となる。
【０１６８】
セーフティシステム１の中継ユニット２００は、秘密鍵ＳＫ１を用いて転送データをセーフティプログラムＳＰＧおよび送信パスワードＳＰＷに復号できると、復号したセーフティプログラムＳＰＧおよび送信パスワードＳＰＷを一旦内部に格納する。そして、セーフティシステム１の中継ユニット２００は、復号したセーフティプログラムＳＰＧに関する情報を表示操作装置６００へ通知する。
【０１６９】
現場の作業者は、表示操作装置６００を参照してセーフティプログラムＳＰＧの妥当性を確認するとともに、自身を含む現場の作業者が安全であることを確認した後に、表示操作装置６００に対して受信パスワードＲＰＷを入力する。入力された受信パスワードＲＰＷは中継ユニット２００へ送信される。
【０１７０】
中継ユニット２００は、表示操作装置６００からの受信パスワードＲＰＷと、先に格納している送信パスワードＳＰＷとを照合する。両パスワードが一致した場合には、中継ユニット２００は、セーフティプログラムＳＰＧをセーフティユニット３００へ転送する。これにより、セーフティプログラムＳＰＧの書き換え処理が完了する。このように、中継ユニット２００は、現場の作業者から入力された受信パスワードＲＰＷが送信パスワードＳＰＷと一致していることを条件に、サポート装置５００から転送されたセーフティプログラムＳＰＧをセーフティユニット３００へ転送する。
【０１７１】
一方、表示操作装置６００からの受信パスワードＲＰＷと、先に格納している送信パスワードＳＰＷとが一致しなかった場合には、中継ユニット２００は、格納しているセーフティプログラムＳＰＧを破棄してもよい。
【０１７２】
図１８は、図１７に示すリモートメンテナンスにおいて表示操作装置６００に提示されるユーザインターフェイス例を示す模式図である。図１８を参照して、表示操作装置６００は、中継ユニット２００からのセーフティプログラムＳＰＧに関する情報を提示するとともに、受信パスワードＲＰＷの入力を促す。一例として、表示操作装置６００が提供するユーザインターフェイス画面は、セーフティプログラムＳＰＧの変更操作者を示す情報６０２と、セーフティプログラムＳＰＧの変更日時を示す情報６０４と、セーフティプログラムＳＰＧの転送先を示す情報６０６と、パスワード入力欄６１２とを含む。
【０１７３】
現場の作業者は、表示操作装置６００上に提示される情報を確認するとともに、自身を含む現場の作業者が安全であることを確認した後に、受信パスワードＲＰＷをパスワード入力欄６１２に入力する。その上で、送信ボタン６１４を押下する。この送信ボタン６１４に押下に応答して、表示操作装置６００は、パスワード入力欄６１２に入力されている受信パスワードＲＰＷを中継ユニット２００へ送信する。すると、中継ユニット２００は、表示操作装置６００からの受信パスワードＲＰＷと格納している送信パスワードＳＰＷとを照合する。両パスワードが一致した場合には、中継ユニット２００は、セーフティプログラムＳＰＧをセーフティユニット３００へ転送する。
【０１７４】
一方、何らかの理由で、現場の作業者が拒否ボタン６１０を押下した場合には、表示操作装置６００は、中継ユニット２００に対して転送中止を送信する。すると、中継ユニット２００は、格納しているセーフティプログラムＳＰＧを破棄してもよい。
【０１７５】
図１９は、図１７に示すリモートメンテナンスにおける処理手順を示すシーケンス図である。図１９を参照して、操作者によるサポート装置５００の操作（シーケンスＳＱ１００）に従って、サポート装置５００は、セーフティプログラムＳＰＧの作成・編集処理を実行する（シーケンスＳＱ１０２）。また、操作者は、セーフティプログラムＳＰＧに付与すべき送信パスワードＳＰＷを入力する（シーケンスＳＱ１０３）。
【０１７６】
続いて、操作者による転送先の選択および転送の操作（シーケンスＳＱ１０４）に従って、サポート装置５００は、選択された中継ユニット２００とネットワーク接続し、転送先の公開鍵でセーフティプログラムＳＰＧおよび送信パスワードＳＰＷを暗号化して暗号化済み転送データを生成する（シーケンスＳＱ１０７）。そして、サポート装置５００は、選択された転送先へ転送データを転送する（シーケンスＳＱ１０８）。
【０１７７】
転送先の中継ユニット２００は、サポート装置５００から転送データを受信すると、当該受信したデータを自デバイスの秘密鍵ＳＫ１でセーフティプログラムＳＰＧおよび送信パスワードＳＰＷに復号する（シーケンスＳＱ１１１）。
【０１７８】
そして、中継ユニット２００は、復号したセーフティプログラムＳＰＧに関する情報を表示操作装置６００へ通知する（シーケンスＳＱ１１２）。表示操作装置６００は、中継ユニット２００からの情報に基づいて、セーフティプログラムＳＰＧに関する情報を提示する（シーケンスＳＱ１１４）。さらに、表示操作装置６００は、現場の作業者からの受信パスワードＲＰＷを受け付けると（シーケンスＳＱ１１７）、その受け付けた受信パスワードＲＰＷを中継ユニット２００へ送信する（シーケンスＳＱ１１９）。なお、転送拒否の指令が中継ユニット２００へ送信されることもある。
【０１７９】
中継ユニット２００は、表示操作装置６００から受信した受信パスワードＲＰＷが予め格納している送信パスワードＳＰＷと一致する場合（シーケンスＳＱ１２１においてＹＥＳ）には、復号したセーフティプログラムＳＰＧをセーフティユニット３００へ転送する（シーケンスＳＱ１２２）。この中継ユニット２００からセーフティユニット３００へのセーフティプログラムＳＰＧの転送は、内部バス１０を介して実行される。セーフティユニット３００は、中継ユニット２００からのセーフティプログラムＳＰＧを格納する（シーケンスＳＱ１２４）。そして、セーフティユニット３００は、格納したセーフティプログラムＳＰＧに従ってセーフティ制御を実行する。
【０１８０】
これにより、サポート装置５００からセーフティユニット３００に対するリモートメンテナンスが完了する。
【０１８１】
一方、中継ユニット２００は、表示操作装置６００から受信した受信パスワードＲＰＷが予め格納している送信パスワードＳＰＷと一致しない場合（シーケンスＳＱ１２１においてＮＯ）には、格納しているセーフティプログラムＳＰＧを破棄する（シーケンスＳＱ１２６）。この場合には、サポート装置５００からセーフティユニット３００に対するリモートメンテナンスは途中終了する。
【０１８２】
上述したように、サポート装置５００は、操作者により入力された任意の送信パスワードＳＰＷを転送データに含めて中継ユニット２００へ送信する。表示操作装置６００は、サポート装置５００から送信されたセーフティプログラムＳＰＧに関する情報を提示するとともに、現場の作業者に受信パスワードＲＰＷの入力を促す。現場の作業者が入力した受信パスワードＲＰＷに基づくパスワード認証が成功すると、中継ユニット２００からセーフティユニット３００へのセーフティプログラムＳＰＧの転送が開始される。一方、現場の作業者が入力した受信パスワードＲＰＷに基づくパスワード認証が失敗すると、セーフティプログラムＳＰＧはセーフティユニット３００へ転送されない。
【０１８３】
このように、セーフティユニット３００へのセーフティプログラムＳＰＧの反映は、サポート装置５００の操作者と現場の作業者との間のパスワードの一致を条件とするために、セーフティユニット３００へのセーフティプログラムＳＰＧの誤転送の可能性をほぼゼロにできる。
【０１８４】
（ｆ５：解決形態３の変形例）
上述した解決形態３については、以下のような変形などが可能である。
【０１８５】
（１）解決形態３は、上述の図１２に示す構成をベースに説明したが、図１５に示す構成に対しても同様に適用可能である。さらに、図１２および図１５に示される構成に限らず、サポート装置５００および現場のそれぞれで入力されたパスワードを照合できる構成であれば、どのような構成を採用してもよい。
【０１８６】
（２）解決形態３においては、中継ユニット２００が送信パスワードＳＰＷおよび受信パスワードＲＰＷを用いたパスワード認証を実行する構成を例示するが、パスワード認証を実行する主体はいずれであってもよい。例えば、中継ユニット２００に代えて、表示操作装置６００でパスワード認証を実行してもよいし、制御ユニット１００あるいはセーフティユニット３００でパスワード認証を実行してもよい。さらに、セーフティシステム１とは別に配置された任意の情報処理装置において、パスワード認証を実行してもよい。
【０１８７】
このように、パスワード認証は、システム構成に応じて、任意の実行主体が実行すればよい。
【０１８８】
（３）送信パスワードＳＰＷおよび受信パスワードＲＰＷとしては、任意の形態を採用できる。例えば、任意の文字列をパスワードとして採用することもできるし、予め用意された複数の候補（数字、絵柄、写真など）から任意に選択されるものであってもよい。解決形態３において、送信パスワードＳＰＷおよび受信パスワードＲＰＷは、情報の秘匿化を目的とするのではなく、サポート装置５００の操作者と現場の作業者との意思疎通を確認することを目的とするので、厳密な暗号化強度は要求されなくてもよい。
【０１８９】
さらに、サポート装置５００が送信パスワードＳＰＷをランダムに選択または決定してもよい。この場合には、サポート装置５００により送信パスワードＳＰＷが決定または選択されると、サポート装置５００の操作者は、電話などの手段により、送信パスワードＳＰＷを現場の作業者に伝える。この際、サポート装置５００の操作者は、セーフティユニット３００へのセーフティプログラムＳＰＧの転送予定などを連絡することが想定される。現場の作業者は、サポート装置５００の操作者からの連絡内容に従って、受信パスワードＲＰＷを表示操作装置６００に入力する。このような送信パスワードＳＰＷの生成方法を採用することで、サポート装置５００の操作者と現場の作業者とのコミュニケーションをより確実に行わせることができる。
【０１９０】
上述したように、送信パスワードＳＰＷは、任意の文字列、予め定められた候補のうち任意の１つ、およびサポート装置５００によりランダムに決定された値のいずれかであってもよい。
【０１９１】
（４）上述した送信パスワードＳＰＷおよび受信パスワードＲＰＷを用いて認証を行う構成に代えて、表示操作装置６００を操作する現場の作業者に対するユーザ認証を利用してもよい。
【０１９２】
図２０は、本実施の形態に従うセーフティシステム１に対するサポート装置５００からのリモートメンテナンスの改良形態のさらに別の一例を説明するための図である。図２０に示す構成は、上述の図１２に示す構成に対してユーザ認証処理および権限認証処理を追加したものに相当する。
【０１９３】
図２０に示すリモートメンテナンスにおいては、表示操作装置６００を操作する作業者が操作権限を有している場合に限って、転送指示を送信できる。
【０１９４】
図２０に示す構成においては、リモートメンテナンスにおいてサポート装置５００から転送されるセーフティプログラムＳＰＧには、予め設定された操作権限情報ＯＰＡが付与されている。中継ユニット２００が受信しれた操作権限情報ＯＰＡは、表示操作装置６００へ転送される。
【０１９５】
一方、現場の作業者は、表示操作装置６００を操作する際に、自身のユーザ名ＵＩＤおよびユーザ認証パスワードＵＰＷを入力する。表示操作装置６００は、入力されたユーザ名ＵＩＤおよびユーザ認証パスワードＵＰＷに基づいて、ユーザ認証を実行する。ユーザ認証が成功すると、表示操作装置６００は、中継ユニット２００から受信した操作権限情報ＯＰＡを参照して、ユーザ認証が成功した作業者が操作権限を有しているか否かを判断する（権限認証）。
【０１９６】
図２１は、図２０に示される操作権限情報ＯＰＡの一例を示す図である。図２１を参照して、操作権限情報ＯＰＡは、ユーザ名毎に操作権限が設定されているか否かを示す情報を含む。すなわち、操作権限情報ＯＰＡは、転送指示を許可するアカウント情報である。
【０１９７】
図２１に示す例においては、ユーザ名「Ｕｓｅｒ＿１」の作業者に対しては、操作権限が設定されている一方で、ユーザ名「Ｕｓｅｒ＿２」の作業者に対しては、操作権限が設定されていない。
【０１９８】
図２１に示す例では、アカウント情報として、ユーザアカウント（ユーザ名）単位で操作権限の付与を規定する例を示すが、これに限らず、ユーザグループ単位あるいはロール単位で操作権限の付与を規定するようにしてもよい。
【０１９９】
表示操作装置６００は、ユーザ認証が成功した作業者が操作権限を有している場合に限って、中継ユニット２００への転送指示の送信を有効化する。そして、中継ユニット２００は、表示操作装置６００から転送指示を受けると、セーフティユニット３００へのセーフティプログラムＳＰＧの転送を開始する。
【０２００】
このように、中継ユニット２００は、作業者（ユーザ）に対するユーザ認証の成功、および、当該ユーザ認証の成功した作業者（ユーザ）に所定の操作権限が設定されていることを条件に、サポート装置５００から転送されたセーフティプログラムＳＰＧをセーフティユニット３００へ転送する。
【０２０１】
図２０および図２１に示すようなユーザ認証処理および権限認証処理を利用して、転送指示の送信者を制限することで、セーフティシステム１が配置されている現場の作業者ＯＰ２の安全の確保をさらに確実化できる。
【０２０２】
なお、図２０においては、ユーザ名ＵＩＤおよびユーザ認証パスワードＵＰＷを用いる例を説明したが、ユーザ認証の実現方法はどのようなものであってもよい。例えば、生体情報（例えば、顔認証や指紋認証）を用いるようにしてもよい。
【０２０３】
また、図２０においては、表示操作装置６００がユーザ認証を実行する構成例を示すが、ユーザ認証の実行主体はいずれであってもよい。同様に、ユーザアカウントの管理（ユーザの追加や登録など）の実行主体はいずれであってもよい。例えば、ユーザ認証および／またはユーザアカウントの管理を、セーフティシステム１を構成する制御ユニット１００、中継ユニット２００およびセーフティユニット３００のうち、いずれのユニットで実行するようにしてもよい。さらに、セーフティシステム１以外の外部サーバ（例えば、シングルサインオンサーバなど）が実行するようにしてもよい。
【０２０４】
（ｆ６：その他の変形例）
上述の説明においては、表示操作装置６００が、現場の作業者へ情報を提示するとともに、現場の作業者からの指示を受け付ける構成例について説明したが、これに限らず任意のユニットまたはデバイスで現場の作業者からの指示を受け付けるようにしてもよい。
【０２０５】
例えば、セーフティシステム１を構成する制御ユニット１００、中継ユニット２００およびセーフティユニット３００のいずれかに配置された表示デバイスおよび入力デバイスを用いるようにしてもよい。具体的には、いずれかのユニットの露出面に配置されたインジケータ（例えば、７セグメント表示デバイスやＬＥＤなど）あるいはディスプレイを介して、サポート装置５００から転送されたセーフティプログラムＳＰＧに関する情報を提示してもよい。この場合、いずれかのユニットの露出面に配置されたインジケータが、サポート装置５００から転送されたセーフティプログラムＳＰＧに関する情報をユーザに提示する。すなわち、制御ユニット１００の露出面に配置されたインジケータ、および、セーフティユニット３００の露出面に配置されたインジケータは、セーフティプログラムＳＰＧに関する情報をユーザに提示する。
【０２０６】
また、いずれかのユニットの露出面に配置されたボタンやディップスイッチなどを介して、現場の作業者からの指示を受け付けるようにしてもよい。さらに、セーフティシステム１または表示操作装置６００と無線通信する携帯端末などを介して、現場の作業者からの指示を受け付けるようにしてもよい。
【０２０７】
＜Ｇ．その他の形態＞
上述の実施の形態においては、セーフティプログラムＳＰＧを実行するセーフティユニット３００と、サポート装置５００との間でデータを遣り取りする中継ユニット２００とは独立したユニットからなるシステムについて例示した。このような中継ユニット２００とセーフティユニット３００とを別体とした場合には、既存のシステムに対して、中継ユニット２００を追加することで、上述したようなリモートメンテナンスを容易に実現できる。
【０２０８】
但し、必ずしも、中継ユニット２００とセーフティユニット３００とを別体にする必要はなく、両者を一体化した構成を採用してもよい。さらに、制御ユニット１００と、中継ユニット２００と、セーフティユニット３００とのすべてを一体化した構成を採用してもよい。この場合には、筐体をコンパクト化できるなどの利点がある。
【０２０９】
＜Ｈ．付記＞
上述したような本実施の形態は、以下のような技術思想を含む。
［構成１］
セーフティプログラム（ＳＰＧ）に従ってセーフティ制御を実行する処理実行部（３００）と、
前記処理実行部が保持する前記セーフティプログラムに対する外部アクセスを仲介する通信部（２００）と、
ユーザ操作に従って、ネットワーク（４）を介して前記セーフティプログラムを前記通信部へ転送するサポート装置（５００）と、
前記サポート装置から転送されたセーフティプログラムに関する情報をユーザに提示する提示手段（６００）とを備え、
前記通信部は、ユーザからの指示を条件として、前記サポート装置から転送されたセーフティプログラムを前記処理実行部へ転送する、セーフティシステム。
［構成２］
前記サポート装置は、入力された第１のパスワード（ＳＰＷ）を前記セーフティプログラムに付与して前記通信部へ転送し、
前記通信部は、ユーザから入力された第２のパスワード（ＲＰＷ）が前記第１のパスワードと一致していることを条件に、前記サポート装置から転送されたセーフティプログラムを前記処理実行部へ転送する、構成１に記載のセーフティシステム。
［構成３］
前記第１のパスワードは、任意の文字列、予め定められた候補のうち任意の１つ、および前記サポート装置によりランダムに決定された値のいずれかである、構成１または２に記載のセーフティシステム。
［構成４］
前記通信部は、ユーザに対するユーザ認証の成功、および、当該ユーザ認証の成功したユーザに所定の操作権限が設定されていることを条件に、前記サポート装置から転送されたセーフティプログラムを前記処理実行部へ転送する、構成１に記載のセーフティシステム。
［構成５］
前記通信部は、ユーザからの転送を拒否する指示に応答して、前記サポート装置から転送されたセーフティプログラムを破棄する、構成１〜４のいずれか１項に記載のセーフティシステム。
［構成６］
前記セーフティプログラムに関する情報は、前記セーフティプログラムの更新者、前記セーフティプログラムの更新日時、および前記セーフティプログラムの転送先のうち、少なくとも１つを含む、構成１〜５のいずれか１項に記載のセーフティシステム。
［構成７］
前記提示手段は、前記通信部とネットワーク接続された表示操作装置、前記処理実行部の露出面に配置されたインジケータ、および前記通信部の露出面に配置されたインジケータのうち、少なくとも１つを含む、構成１〜６のいずれか１項に記載のセーフティシステム。
［構成８］
前記通信部は、電子的な鍵を保持しており、
前記サポート装置は、前記通信部が前記電子的な鍵で復号可能なように、前記セーフティプログラムを暗号化した上で前記通信部へ転送する、構成１〜７のいずれか１項に記載のセーフティシステム。
［構成９］
前記通信部は、前記電子的な鍵として秘密鍵（ＳＫ１）を保持しており、
前記サポート装置は、前記秘密鍵と対になる公開鍵（ＰＫ１）を保持している、構成８に記載のセーフティシステム。
［構成１０］
前記サポート装置は、
前記セーフティプログラムを転送する必要がある場合にワンタイム鍵（ＴＣＫ）を生成し、
前記ワンタイム鍵を前記公開鍵で暗号化して前記通信部へ送信し、
前記セーフティプログラムを前記ワンタイム鍵で暗号化して前記通信部へ送信する、構成９に記載のセーフティシステム。
［構成１１］
コントローラシステム（１）におけるメンテナンス方法であって、
前記コントローラシステムは、
セーフティプログラム（ＳＰＧ）に従ってセーフティ制御を実行する処理実行部（３００）と、
前記処理実行部が保持する前記セーフティプログラムに対する外部アクセスを仲介する通信部（２００）と、
サポート装置（５００）とを備え、
前記メンテナンス方法は、
前記サポート装置が、ユーザ操作に従って、ネットワークを介して前記セーフティプログラムを前記通信部へ転送するステップ（ＳＱ１０８；ＳＱ１３６）と、
前記サポート装置から転送されたセーフティプログラムに関する情報をユーザに提示するステップ（ＳＱ１１４）と、
ユーザからの指示を条件として、前記サポート装置から転送されたセーフティプログラムを前記処理実行部へ転送するステップ（ＳＱ１１６，ＳＱ１１８，ＳＱ１２０，ＳＱ１２２，ＳＱ１２４；ＳＱ１１７，ＳＱ１１９，ＳＱ１２１，ＳＱ１２２，ＳＱ１２４）とを備える、メンテナンス方法。
【０２１０】
＜Ｉ．利点＞
本実施の形態に係るセーフティシステム１によれば、サポート装置５００から中継ユニット２００へ転送されたセーフティプログラムＳＰＧをセーフティユニット３００に反映する条件として、現場の作業者の確認および指示を要求する。このような条件を採用することで、現場から離れた位置にいるサポート装置５００の操作者と、現場の作業者との間で連携が必要となり、これによって、ＩＥＣ  ６２０６１に規定される要件を満足しつつ、リモートメンテナンスを実施できる。特に、現場の作業者の安全の確保をより確実化できる。さらに、リモートメンテナンスの効率を高めることともに、それによって、生産設備の生産性を向上させることができる。
【０２１１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２１２】
１，２  セーフティシステム、４  ネットワーク、１０  内部バス、１００  制御ユニット、１０２，２０２，３０２，５０２  プロセッサ、１０４，２０４，３０４  チップセット、１０６，２０６，３０６，５０４  主記憶装置、１０８，２０８，３０８，５１０  二次記憶装置、１１０，２１０  通信コントローラ、１１２  ＵＳＢコントローラ、１１４，２１４，３１４  メモリカードインターフェイス、１１５，２１５，３１５  メモリカード、１１６，１１８，１２０，２１６，２１８  ネットワークコントローラ、１２２，３２２  内部バスコントローラ、１２４，２２４，３２４  インジケータ、２００  中継ユニット、２１２，５２０  通信インターフェイス、３００  セーフティユニット、４００  機能ユニット、４５０  電源ユニット、５００  サポート装置、５０６  入力部、５０８  出力部、５１２  光学ドライブ、５１４  記録媒体、５１８  プロセッサバス、６００  表示操作装置、６０２，６０４，６０６  情報、６０８  承諾ボタン、６１０  拒否ボタン、６１２  パスワード入力欄、６１４  送信ボタン、２０１０  特開、５１０２  ＯＳ、５１０４  サポートプログラム、５１０６  プロジェクト、５１０８  標準制御ソースプログラム、５１１０，５１１２  セーフティソースプログラム、ＬＳ  リスト、ＯＰ１  操作者、ＯＰ２  作業者、ＯＰＡ  操作権限情報、ＰＫ１  公開鍵、ＲＰＷ  受信パスワード、ＳＫ１，ＳＫ２  秘密鍵、ＳＰＧ  セーフティプログラム、ＳＰＷ  送信パスワード、ＳＳＰ  暗号化済みセーフティプログラム、ＳＴＣ  暗号化済み共通鍵、ＴＣＫ  共通鍵、ＵＩＤ  ユーザ名、ＵＰＷ  ユーザ認証パスワード。
【図１】
2020149244.tif 000003
【図２】
2020149244.tif 000004
【図３】
2020149244.tif 000005
【図４】
2020149244.tif 000006
【図５】
2020149244.tif 000007
【図６】
2020149244.tif 000008
【図７】
2020149244.tif 000009
【図８】
2020149244.tif 000010
【図９】
2020149244.tif 000011
【図１０】
2020149244.tif 000012
【図１１】
2020149244.tif 000013
【図１２】
2020149244.tif 000014
【図１３】
2020149244.tif 000015
【図１４】
2020149244.tif 000016
【図１５】
2020149244.tif 000017
【図１６】
2020149244.tif 000018
【図１７】
2020149244.tif 000019
【図１８】
2020149244.tif 000020
【図１９】
2020149244.tif 000021
【図２０】
2020149244.tif 000022
【図２１】
2020149244.tif 000023