(57)【要約】【課題】設計された安全プログラムの機能安全を評価できる技術が要望されている。【解決手段】評価システムは、安全プログラムに従う演算を実行する処理実行手段と、評価対象の入力信号と、当該入力信号の値の変化に対応して出力機器に出力されるべき出力信号の値である出力期待値とを含む、評価条件を受付ける設定手段と、評価対象の入力信号の値が初期値である第１の入力値から第２の入力値に変化したことを評価対象の入力機器から受付けたことに基づいて、処理実行手段により決定される出力信号の第１の出力値が出力期待値と一致しているか否かを判断する第１の判断手段と、評価対象の入力信号の値が第２の入力値から第１の入力値に戻ったことを評価対象の入力機器から受付けたことに基づいて、処理実行手段により決定される出力信号の第２の出力値が第１の出力値と一致しているか否かを判断する第２の判断手段と、判断結果を出力する出力手段とを含む。【選択図】図１
2018151866.tif 000002
【特許請求の範囲】
【請求項１】
予め定められた条件が成立すると出力機器を安全が保たれるように動作させるための安全プログラムの機能安全を評価する評価システムであって、
１つ以上の入力機器のいずれかからの入力信号に基づいて、前記安全プログラムに従う演算を実行することで、対応する１つ以上の出力機器に出力するための出力信号の値を決定する処理実行手段と、
評価対象の入力信号と、当該入力信号の値の変化に対応して出力機器に出力されるべき出力信号の値である出力期待値とを含む、評価条件を受付ける設定手段と、
前記評価対象の入力信号の値が初期値である第１の入力値から第２の入力値に変化したことを評価対象の入力機器から受付けたことに基づいて、前記処理実行手段により決定される出力信号の第１の出力値が前記出力期待値と一致しているか否かを判断する第１の判断手段と、
前記評価対象の入力信号の値が前記第２の入力値から前記第１の入力値に戻ったことを評価対象の入力機器から受付けたことに基づいて、前記処理実行手段により決定される出力信号の第２の出力値が前記第１の出力値と一致しているか否かを判断する第２の判断手段と、
前記評価対象の入力信号に関連付けて、前記第１の判断手段および前記第２の判断手段での判断結果を出力する出力手段とを備える、評価システム。
【請求項２】
前記評価システムは、前記評価対象の入力機器に対する操作内容を情報処理装置に提示させるための提示手段をさらに備える、請求項１に記載の評価システム。
【請求項３】
前記提示手段は、
前記評価対象の入力信号の値を前記第１の入力値から前記第２の入力値に変化させるべきときに、当該入力信号の値を前記第１の入力値から前記第２の入力値に変化させるための操作内容を前記情報処理装置に提示させ、
前記評価対象の入力機器の値を前記第２の入力値から前記第１の入力値に変化させるべきときに、当該入力信号の値を前記第２の入力値から前記第１の入力値に変化させるための操作内容を前記情報処理装置に提示させる、請求項２に記載の評価システム。
【請求項４】
前記操作内容は、
前記評価対象の入力機器の識別情報と、
前記評価対象の入力機器に対する操作手順とを含む、請求項２または３に記載の評価システム。
【請求項５】
前記評価条件は、前記評価対象の入力信号と、前記出力期待値とからなる組を複数含み、
前記提示手段は、予め設定されている評価順序に従って、操作すべき評価対象の入力機器の操作内容を前記情報処理装置に順次提示させる、請求項２〜４のいずれか１項に記載の評価システム。
【請求項６】
前記評価条件は、前記入力信号の値が前記第２の入力値から前記第１の入力値に戻ったときに、対応する出力信号の出力値を連動して元の値に戻すことを示す第１の種別と、予め定められたリセット条件が成立するまでは出力信号の出力値を元の値に戻さないことを示す第２の種別とのうち、いずれかの設定を含み、
前記第２の判断手段は、
前記第１の種別が設定されている場合には、前記第２の出力値が前記第１の出力値とは異なっているときに正常と判断し、
前記第２の種別が設定されている場合には、前記第２の出力値が前記第１の出力値と一致しているときに正常と判断する、請求項１〜５のいずれか１項に記載の評価システム。
【請求項７】
予め定められた条件が成立すると出力機器を安全が保たれるように動作させるための安全プログラムの機能安全を評価する安全コントローラであって、
１つ以上の入力機器のいずれかからの入力信号に基づいて、前記安全プログラムに従う演算を実行することで、対応する１つ以上の出力機器に出力するための出力信号の値を決定する処理実行手段と、
評価対象の入力信号と、当該入力信号の値の変化に対応して出力機器に出力されるべき出力信号の値である出力期待値とを含む、評価条件を受付ける設定手段と、
前記評価対象の入力信号の値が初期値である第１の入力値から第２の入力値に変化したことを評価対象の入力機器から受付けたことに基づいて、前記処理実行手段により決定される出力信号の第１の出力値が前記出力期待値と一致しているか否かを判断する第１の判断手段と、
前記評価対象の入力信号の値が前記第２の入力値から前記第１の入力値に戻ったことを評価対象の入力機器から受付けたことに基づいて、前記処理実行手段により決定される出力信号の第２の出力値が前記第１の出力値と一致しているか否かを判断する第２の判断手段と、
前記評価対象の入力信号に関連付けて、前記第１の判断手段および前記第２の判断手段での判断結果を出力する出力手段とを備える、安全コントローラ。
【請求項８】
予め定められた条件が成立すると出力機器を安全が保たれるように動作させるための安全プログラムの機能安全を評価する評価プログラムであって、
前記評価プログラムは、コンピュータに、
１つ以上の入力機器のいずれかからの入力信号に基づいて、前記安全プログラムに従う演算を実行することで、対応する１つ以上の出力機器に出力するための出力信号の値を決定するステップと、
評価対象の入力信号と、当該入力信号の値の変化に対応して出力機器に出力されるべき出力信号の値である出力期待値とを含む、評価条件を受付けるステップと、
前記評価対象の入力信号の値が初期値である第１の入力値から第２の入力値に変化したことを評価対象の入力機器から受付けたことに基づいて、前記安全プログラムに従う演算により決定される出力信号の第１の出力値が前記出力期待値と一致しているか否かを判断するステップと、
前記評価対象の入力信号の値が前記第２の入力値から前記第１の入力値に戻ったことを評価対象の入力機器から受付けたことに基づいて、前記安全プログラムに従う演算により決定される出力信号の第２の出力値が前記第１の出力値と一致しているか否かを判断するステップと、
前記評価対象の入力信号に関連付けて、前記判断するステップでの判断結果を出力するステップとを実行させる、評価プログラム。
【請求項９】
予め定められた条件が成立すると出力機器を安全が保たれるように動作させるための安全プログラムの機能安全を評価する評価方法であって、
１つ以上の入力機器のいずれかからの入力信号に基づいて、前記安全プログラムに従う演算を実行することで、対応する１つ以上の出力機器に出力するための出力信号の値を決定するステップと、
評価対象の入力信号と、当該入力信号の値の変化に対応して出力機器に出力されるべき出力信号の値である出力期待値とを含む、評価条件を受付けるステップと、
前記評価対象の入力信号の値が初期値である第１の入力値から第２の入力値に変化したことを評価対象の入力機器から受付けたことに基づいて、前記安全プログラムに従う演算により決定される出力信号の第１の出力値が前記出力期待値と一致しているか否かを判断するステップと、
前記評価対象の入力信号の値が前記第２の入力値から前記第１の入力値に戻ったことを評価対象の入力機器から受付けたことに基づいて、前記安全プログラムに従う演算により決定される出力信号の第２の出力値が前記第１の出力値と一致しているか否かを判断するステップと、
前記評価対象の入力信号に関連付けて、前記判断するステップでの判断結果を出力するステップとを備える、評価方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、安全プログラムの機能安全を評価する評価システム、安全コントローラ、評価プログラム、および評価方法に関する。
【背景技術】
【０００２】
多くの製造現場で使用される機械を安全に使用するためには、国際規格に従う安全機器（安全コンポーネント）を使用しなければならばない。この安全機器は、ロボットなどの自動的に動く装置によって人の安全が脅かされることの防止を目的としている。このような安全機器は、安全プログラムを実行する安全コントローラをはじめとして、人の存在や侵入を検知する検知機器、非常時の操作を受付ける入力機器、実際に機器を停止させる出力機器などを含む。
【０００３】
このような製造現場での安全を確保する技術の一つとして、たとえば、特開２０１４−１３７６２１号公報（特許文献１）は、安全コントローラのユーザプログラムの設計を容易にすることが可能な安全コントローラのユーザプログラムの設計を支援する方法を開示する。
【０００４】
特開２０１４−１３７６２１号公報（特許文献１）は、安全コントローラと安全Ｉ／Ｏターミナルとがバス型ネットワークを介して接続され、安全コントローラでは、安全Ｉ／Ｏターミナルに接続される安全入力機器からの入力信号に基づいて、安全Ｉ／Ｏターミナルに接続される安全出力機器に対して安全動作を行うための指令を出力する構成を開示する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−１３７６２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、安全コントローラで実行される安全プログラムについては、予め設計されたとおりに動作することを確認する必要がある。上述の特許文献１は、安全コントローラのユーザプログラムの設計を容易にすることが可能な安全コントローラのユーザプログラムの設計を支援する方法を開示するが、設計後の安全コントローラのユーザプログラムを検査する手法については教示されていない。
【０００７】
したがって、設計された安全プログラムの機能安全を評価するための技術が要望されている。
【課題を解決するための手段】
【０００８】
ある局面に従うと、予め定められた条件が成立すると出力機器を安全が保たれるように動作させるための安全プログラムの機能安全を評価する評価システムは、１つ以上の入力機器のいずれかからの入力信号に基づいて、上記安全プログラムに従う演算を実行することで、対応する１つ以上の出力機器に出力するための出力信号の値を決定する処理実行手段と、評価対象の入力信号と、当該入力信号の値の変化に対応して出力機器に出力されるべき出力信号の値である出力期待値とを含む、評価条件を受付ける設定手段と、上記評価対象の入力信号の値が初期値である第１の入力値から第２の入力値に変化したことを評価対象の入力機器から受付けたことに基づいて、上記処理実行手段により決定される出力信号の第１の出力値が上記出力期待値と一致しているか否かを判断する第１の判断手段と、上記評価対象の入力信号の値が上記第２の入力値から上記第１の入力値に戻ったことを評価対象の入力機器から受付けたことに基づいて、上記処理実行手段により決定される出力信号の第２の出力値が上記第１の出力値と一致しているか否かを判断する第２の判断手段と、上記評価対象の入力信号に関連付けて、上記第１の判断手段および上記第２の判断手段での判断結果を出力する出力手段とを備える。
【０００９】
好ましくは、上記評価システムは、上記評価対象の入力機器に対する操作内容を情報処理装置に提示させるための提示手段をさらに備える。
【００１０】
好ましくは、上記提示手段は、上記評価対象の入力信号の値を上記第１の入力値から上記第２の入力値に変化させるべきときに、当該入力信号の値を上記第１の入力値から上記第２の入力値に変化させるための操作内容を上記情報処理装置に提示させ、上記評価対象の入力機器の値を上記第２の入力値から上記第１の入力値に変化させるべきときに、当該入力信号の値を上記第２の入力値から上記第１の入力値に変化させるための操作内容を上記情報処理装置に提示させる。
【００１１】
好ましくは、上記操作内容は、上記評価対象の入力機器の識別情報と、上記評価対象の入力機器に対する操作手順とを含む。
【００１２】
好ましくは、上記評価条件は、上記評価対象の入力信号と、上記出力期待値とからなる組を複数含む。上記提示手段は、予め設定されている評価順序に従って、操作すべき評価対象の入力機器の操作内容を上記情報処理装置に順次提示させる。
【００１３】
好ましくは、上記評価条件は、上記入力信号の値が上記第２の入力値から上記第１の入力値に戻ったときに、対応する出力信号の出力値を連動して元の値に戻すことを示す第１の種別と、予め定められたリセット条件が成立するまでは出力信号の出力値を元の値に戻さないことを示す第２の種別とのうち、いずれかの設定を含む。上記第２の判断手段は、上記第１の種別が設定されている場合には、上記第２の出力値が上記第１の出力値とは異なっているときに正常と判断し、上記第２の種別が設定されている場合には、上記第２の出力値が上記第１の出力値と一致しているときに正常と判断する。
【００１４】
他の局面に従うと、予め定められた条件が成立すると出力機器を安全が保たれるように動作させるための安全プログラムの機能安全を評価する安全コントローラは、１つ以上の入力機器のいずれかからの入力信号に基づいて、上記安全プログラムに従う演算を実行することで、対応する１つ以上の出力機器に出力するための出力信号の値を決定する処理実行手段と、評価対象の入力信号と、当該入力信号の値の変化に対応して出力機器に出力されるべき出力信号の値である出力期待値とを含む、評価条件を受付ける設定手段と、上記評価対象の入力信号の値が初期値である第１の入力値から第２の入力値に変化したことを評価対象の入力機器から受付けたことに基づいて、上記処理実行手段により決定される出力信号の第１の出力値が上記出力期待値と一致しているか否かを判断する第１の判断手段と、上記評価対象の入力信号の値が上記第２の入力値から上記第１の入力値に戻ったことを評価対象の入力機器から受付けたことに基づいて、上記処理実行手段により決定される出力信号の第２の出力値が上記第１の出力値と一致しているか否かを判断する第２の判断手段と、上記評価対象の入力信号に関連付けて、上記第１の判断手段および上記第２の判断手段での判断結果を出力する出力手段とを備える。
【００１５】
他の局面に従うと、予め定められた条件が成立すると出力機器を安全が保たれるように動作させるための安全プログラムの機能安全を評価する評価プログラムは、コンピュータに、１つ以上の入力機器のいずれかからの入力信号に基づいて、上記安全プログラムに従う演算を実行することで、対応する１つ以上の出力機器に出力するための出力信号の値を決定するステップと、評価対象の入力信号と、当該入力信号の値の変化に対応して出力機器に出力されるべき出力信号の値である出力期待値とを含む、評価条件を受付けるステップと、上記評価対象の入力信号の値が初期値である第１の入力値から第２の入力値に変化したことを評価対象の入力機器から受付けたことに基づいて、上記安全プログラムに従う演算により決定される出力信号の第１の出力値が上記出力期待値と一致しているか否かを判断するステップと、上記評価対象の入力信号の値が上記第２の入力値から上記第１の入力値に戻ったことを評価対象の入力機器から受付けたことに基づいて、上記安全プログラムに従う演算により決定される出力信号の第２の出力値が上記第１の出力値と一致しているか否かを判断するステップと、上記評価対象の入力信号に関連付けて、上記判断するステップでの判断結果を出力するステップとを実行させる。
【００１６】
他の局面に従うと、予め定められた条件が成立すると出力機器を安全が保たれるように動作させるための安全プログラムの機能安全を評価する評価方法は、１つ以上の入力機器のいずれかからの入力信号に基づいて、上記安全プログラムに従う演算を実行することで、対応する１つ以上の出力機器に出力するための出力信号の値を決定するステップと、評価対象の入力信号と、当該入力信号の値の変化に対応して出力機器に出力されるべき出力信号の値である出力期待値とを含む、評価条件を受付けるステップと、上記評価対象の入力信号の値が初期値である第１の入力値から第２の入力値に変化したことを評価対象の入力機器から受付けたことに基づいて、上記安全プログラムに従う演算により決定される出力信号の第１の出力値が上記出力期待値と一致しているか否かを判断するステップと、上記評価対象の入力信号の値が上記第２の入力値から上記第１の入力値に戻ったことを評価対象の入力機器から受付けたことに基づいて、上記安全プログラムに従う演算により決定される出力信号の第２の出力値が上記第１の出力値と一致しているか否かを判断するステップと、上記評価対象の入力信号に関連付けて、上記判断するステップでの判断結果を出力するステップとを備える。
【発明の効果】
【００１７】
ある局面において、設計された安全プログラムの機能安全を評価することができる。
【図面の簡単な説明】
【００１８】
【図１】実施の形態に従う評価システムの概要を機能的な面から説明する模式図である。
【図２】実施の形態に従う評価システムのシステム構成の一例を示す図である。
【図３】実施の形態に従う安全コントローラの装置構成の一例を示す模式図である。
【図４】実施の形態に従う情報処理装置のハードウェア構成の一例を示す模式図である。
【図５】実施の形態に従う評価システムのソフトウェア構成の一例を示す模式図である。
【図６】実施の形態に従う評価システムにおける機能構成の実装例を示す図である。
【図７】実施の形態に従う評価システムが対象とする安全プログラムの一例を示す模式図である。
【図８】実施の形態に従う安全プログラムに含まれる非常停止ファンクションブロックに設定されるリセット種別を説明するための図である。
【図９】実施の形態に従う評価システムが対象とする安全プログラムの別の一例を示す模式図である。
【図１０】実施の形態に従う機能安全評価の手順の一例を説明するタイムチャートである。
【図１１】実施の形態に従う評価システムにおいて評価条件を設定するためのユーザインターフェイス画面の一例を示す模式図である。
【図１２】実施の形態に従う評価システムにおいて出力期待値のエクスポートおよびインポート処理を説明するための図である。
【図１３】実施の形態に従う評価システムにおいて他のアプリケーションとの連携によって出力期待値を設定する処理を説明するための図である。
【図１４】実施の形態に従う情報処理装置の画面列を示す図である。
【図１５】実施の形態に従う情報処理装置の画面列を示す図である。
【図１６】実施の形態に従う情報処理装置の画面列を示す図である。
【図１７】実施の形態に従う情報処理装置の画面列を示す図である。
【図１８】実施の形態に従う情報処理装置の画面列を示す図である。
【図１９】実施の形態に従う評価システムにおいて実行される機能安全評価の評価結果の一例を示す模式図である。
【図２０】実施の形態に従う評価システムにおいて実行される機能安全評価の評価結果の変形例を示す模式図である。
【図２１】評価結果の印刷例を示す図である。
【図２２】実施の形態に従う評価システムにおいて実行される機能安全評価の処理手順を示すフローチャートである。
【図２３】実施の形態に従う評価システムにおいて実行される機能安全評価の処理手順を示すフローチャートである。
【図２４】実施の形態に従う評価システムにおいて実行される機能安全評価の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
【００２０】
＜Ａ．評価システムの概要＞
まず、本実施の形態に従う評価システムの概要について説明する。評価システムは、任意の安全プログラムの機能安全を評価する機能を有する。
【００２１】
本明細書において、「安全プログラム」は、予め定められた条件（安全条件）が成立すると出力機器を安全が保たれるように動作させるためのプログラムであり、安全コントローラの処理を定義する命令群を意味する。より具体的には、安全プログラムは、１または複数の入力信号に対して、１または複数の出力信号の値を決定するための命令の組み合わせを含む。
【００２２】
安全プログラムは、安全コントローラの処理を定義するものであれば、どのような実体であってもよい。すなわち、安全プログラムは、１または複数のソースコードとして存在してもよいし、１または複数のオブジェクトコードとして存在してもよいし、安全コントローラのプロセッサで実行可能な形式（実行形式）であってもよい。
【００２３】
また、安全プログラムは、ファンクションブロックダイアグラム（ＦＢＤ：Function Block Diagram）を用いて記述されていてもよい。あるいは、ラダーダイアグラム（ＬＤ：Ladder Diagram）、命令リスト（ＩＬ：Instruction List）、構造化テキスト（ＳＴ：Structured Text）、および、シーケンシャルファンクションチャート（ＳＦＣ：Sequential Function Chart）のいずれか、あるいは、これらの組み合わせで記述されてもよい。さらにあるいは、ＪａｖａＳｃｒｉｐｔ（登録商標）やＣ言語のような汎用的なプログラミング言語で記述されていてもよい。
【００２４】
なお、ＰＬＣプログラミングの国際基準ＩＥＣ  ６１１３１−３（ＪＩＳ  Ｂ  ３５０３）の普及活動と、ベンダに依存しない標準ファンクションブロックダイアグラムの仕様策定および認定を行う第三者機関であるＰＬＣｏｐｅｎ（登録商標）が、ｔｅｃｈｎｉｃａｌ  ｃｏｍｍｉｔｔｅｅ  ５において公開している規約に準拠して安全プログラムを作成することが好ましい。
【００２５】
本実施の形態に従う安全コントローラにおける安全プログラムの機能安全の評価とは、対象の安全プログラムによる挙動がしかるべき安全規格に適合しているか否かを検証するものである。具体的には、安全プログラムに入力される変数の値の各組み合わせを入力し、当該入力に対する出力結果が、本来あるべき結果と一致するか否かを逐次判断する。安全コントローラは、このよう入力値の各組み合わせについての検証動作を自動的に実行することができる。
【００２６】
以下の説明では、変数プログラムとして記述された安全プログラムについて例示する。そのため、実際に安全コントローラと安全コンポーネントなどとの間で遣り取りされる信号（典型的には、入力信号および出力信号）を安全プログラム内では、それぞれ「変数」として取り扱うことになる。これらの現実の信号と安全プログラム内の対応する変数とは本質的に同じものであるため、以下の説明では、これらを「信号」と総称することもある。すなわち、本明細書において、「信号」は、現実に遣り取りされる電気信号に加えて、安全コントローラ上でその電気信号に割り当てられた値を参照する変数を含み得る。
【００２７】
図１は、本実施の形態に従う評価システム１の概要を機能的な面から説明する模式図である。図１を参照して、評価システム１は、その主たる機能として、プログラム実行機能２と、比較機能４とを含む。
【００２８】
プログラム実行機能２は、安全プログラム１０に従って所定周期毎またはイベント発生毎に演算処理を実行し、その実行結果を出力する。プログラム実行機能２は、安全プログラム１０の実行時には、入力機器である安全機器４００に対する評価者４０の操作に基づいて、１または複数の入力値を安全機器４００から取得する。典型的には、複数種類の安全機器４００が評価システム１に接続されている。安全機器４００は、たとえば、人の存在や侵入を検知する検知機器、非常時の操作を受付ける入力機器、実際に機器を停止させる出力機器などを含む。入力値と当該入力値に対応する出力期待値との組み合わせを含む、評価条件２０が予め用意されており、評価条件２０に基づいて、操作すべき安全機器４００が評価者４０に提示される。あるいは、安全機器４００は、ランダムな順番で評価者４０によって操作される。プログラム実行機能２は、評価者４０による安全機器４００の操作によって取得した入力値に基づいて論理演算などを実行する。
【００２９】
比較機能４は、評価条件２０に基づく入力値をプログラム実行機能２に入力したときに出力される出力値と、評価条件２０において当該入力値に対応する出力期待値とを比較する。両者が一致する場合には、１次的な安全動作が健全であると判断する。
【００３０】
評価条件２０には、入力値および当該入力値に対応する出力期待値が格納されるとともに、復帰動作の条件についても格納されている。本実施の形態に従う機能安全評価においては、設定されている復帰動作の条件に従って、先に入力された入力値が変化または維持される。そして、この入力値の変化または維持に伴う出力値の変化または維持が、予め設定されている復帰動作の条件に適合するか否かも判断される。
【００３１】
このように、本実施の形態においては、安全動作のトリガとなる入力値が安全機器４００から与えられることでしかるべき安全動作が実行されるか否かの評価（１次的な安全動作の評価）に加えて、安全動作のトリガとなる入力値が元の値に復帰したときに、停止状態などが維持されるか、あるいは、停止状態などが通常の動作状態に復帰するかについても評価（２次的な安全動作の評価）がなされる。なお、２次的な安全動作の評価では、予め設定された復帰動作の条件に従う挙動であるか否かが判断される。
【００３２】
以上のような評価結果は、機能安全評価結果３０として、画面上または紙面上に出力されてもよい。
【００３３】
＜Ｂ．評価システム１のシステム構成＞
次に、本実施の形態に従う評価システム１のシステム構成について説明する。図２は、評価システム１のシステム構成の一例を示す図である。
【００３４】
図２を参照して、評価システム１は、主として、安全コントローラ１００と、情報処理装置２００と、設備や機械などを制御する制御装置３００とを含む。
【００３５】
制御装置３００は、典型的には、ＰＬＣ（プログラマブルコントローラ）などで構成され、制御対象から取得された入力データに関して、予め定められたユーザプログラムを実行し、それによって算出される出力データに応じて制御対象に指令を与える。図２に示す制御対象として、モータ５１０およびモータ５１０を駆動するドライバ５１２を例示する。制御装置３００は、ユーザプログラムに従って、ある駆動開始条件が成立するとモータ５１０を回転駆動させるために、ドライバ５１２に駆動指令を出力する。また、ある駆動停止条件が成立するとモータ５１０の回転駆動を停止させるために、ドライバ５１２への駆動指令の出力を停止する。
【００３６】
このような制御装置３００での制御対象の制御に加えて、典型的には、制御対象に関連する作業者などの安全を確保するなどのために、安全コントローラ１００がさらに配置される。安全コントローラ１００は、入力機器である安全機器４００（セーフティセンサ、セーフティドアスイッチ、セーフティリミットスイッチ、非常停止スイッチ、セーフティスイッチなど）からの入力信号などの関連付けられる、予め定められた条件（安全条件）が成立すると、安全動作を遂行する。
【００３７】
図２に示す例では、ドライバ５１２への電力供給ライン上に出力機器の一例であるセーフティリレー５１４が配置されている。ここでいう出力機器とは、安全機器４００に対する操作を受けて駆動される機器のこという。セーフティリレー５１４は、たとえば、電路の遮断するためのコンタクタを駆動する。また、モータ５１０により駆動される装置の周辺に危険エリアが設定されており、その危険エリアの周辺に安全機器４００が配置されている。安全機器４００は、たとえば、人の存在や侵入を検知する検知機器、非常時の操作を受付ける入力機器などを含む。セーフティリレー５１４は、安全機器４００からの入力信号を受けることで駆動する。
【００３８】
一例として、非常停止スイッチとしての安全機器４００が作業者による非常停止操作を受けると、安全コントローラ１００は、非常停止スイッチからの停止信号に応答して、セーフティリレー５１４に制御信号を出力する。セーフティリレー５１４は、安全コントローラ１００からの制御信号に応答して動作し、モータ５１０を駆動するドライバ５１２への電力供給を遮断する。その結果、モータ５１０が強制的に停止される。このようなモータ５１０の強制的な停止によって、作業者の安全を確保することができる。
【００３９】
他の例として、セーフティセンサとしての安全機器４００は、作業者が危険エリアへ進入したことを検知する。作業者が危険エリアへ進入すると、セーフティセンサによりその作業者の進入が検知される。安全コントローラ１００は、セーフティセンサからの検知信号に応答して、セーフティリレー５１４に制御信号を出力する。セーフティリレー５１４は、安全コントローラ１００からの制御信号に応答して動作し、モータ５１０を駆動するドライバ５１２への電力供給を遮断する。その結果、モータ５１０が強制的に停止される。このようなモータ５１０の強制的な停止によって、危険エリアへ進入した作業者の安全を確保することができる。
【００４０】
図２に示す構成例においては、安全コントローラ１００および制御装置３００は、制御系ネットワークＮＷ１を介して接続されており、互いが内部的に保持するデータを遣り取りすることができる。また、安全コントローラ１００および制御装置３００は、情報系ネットワークＮＷ２を介して、情報処理装置２００と接続されている。
【００４１】
情報処理装置２００は、安全コントローラ１００または制御装置３００で実行されるプログラムの開発、プログラムの実行状態の確認、プログラムの変更などの機能を提供するためのサポートツールである。情報処理装置２００は、たとえば、ＰＣ（Personal Computer）、タブレット端末、スマートフォン、または、その他の通信端末である。
【００４２】
＜Ｃ．装置構成＞
次に、本実施の形態に従う評価システム１を構成する各装置の装置構成について説明する。
【００４３】
（ｃ１：安全コントローラ１００）
図３は、本実施の形態に従う安全コントローラ１００の装置構成の一例を示す模式図である。図３を参照して、安全コントローラ１００は、プロセッサ１０２と、主メモリ１０４と、フラッシュメモリ１０６とを含む演算処理部１０８、および、各種インターフェイスからなる。
【００４４】
演算処理部１０８において、プロセッサ１０２は、フラッシュメモリ１０６に格納されているシステムプログラムおよび安全プログラムなどを主メモリ１０４に展開して実行することで、制御対象に応じた機能安全を実現する。
【００４５】
安全コントローラ１００は、インターフェイスとして、制御系ネットワークインターフェイス１１０と、情報系ネットワークインターフェイス１１２と、フィールドバスインターフェイス１１４と、メモリカードインターフェイス１１６と、ローカル通信インターフェイス１２０と、内部バスインターフェイス１２２とを含む。
【００４６】
制御系ネットワークインターフェイス１１０は、制御系ネットワークＮＷ１（図２参照）を介して他の装置との通信を仲介する。制御系ネットワークＮＷ１としては、たとえば、ＥｔｈｅｒＣＡＴ（登録商標）などの定時性が保証されるネットワークプロトコルが好ましい。
【００４７】
情報系ネットワークインターフェイス１１２は、情報系ネットワークＮＷ２（図２参照）を介して他の装置との通信を仲介する。情報系ネットワークＮＷ２としては、たとえば、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）などの定時性が保証されるネットワークプロトコルが好ましい。
【００４８】
フィールドバスインターフェイス１１４は、図示しないフィールドバスを介して接続される入出力ユニットとの通信を仲介する。フィールドバスとしては、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＤｅｖｉｃｅＮｅｔ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などの定時性が保証されるネットワークプロトコルが好ましい。
【００４９】
メモリカードインターフェイス１１６は、メモリカード１１８を装着可能に構成されており、メモリカード１１８からのデータ読出しおよびメモリカード１１８へのデータ書込みを行う。
【００５０】
ローカル通信インターフェイス１２０は、情報処理装置２００または他の装置と直接接続するインターフェイスであり、たとえば、ＵＳＢ（Universal Serial Bus）などが用いられる。
【００５１】
内部バスインターフェイス１２２は、内部バスを介して安全コントローラ１００に直接装着される入出力ユニットとの間の通信を仲介する。
【００５２】
（ｃ２：情報処理装置２００）
次に、情報処理装置２００のハードウェア構成について例示する。図４は、本実施の形態に従う情報処理装置２００のハードウェア構成の一例を示す模式図である。
【００５３】
情報処理装置２００は、ノートＰＣ、タブレット端末、スマートフォンなどの携帯端末であってもよいし、デスクトップ型のＰＣなどの非携帯端末であってもよい。
【００５４】
情報処理装置２００は、主たるコンポーネントとして、オペレーティングシステム（ＯＳ：Operating System）および後述するような各種プログラムを実行するプロセッサ２０２と、プロセッサ２０２でのプログラム実行に必要なデータを格納するための作業領域を提供するメモリ２０４と、キーボードやマウスなどのユーザ操作を受付ける入力部２０６と、ディスプレイ、各種インジケータ、プリンタなどの処理結果を出力する出力部２０８と、外部ネットワークと通信するためのネットワークインターフェイス（Ｉ／Ｆ：Inter Face）２１０と、光学ドライブ２１２と、安全コントローラなどと通信するためのローカル通信インターフェイス（Ｉ／Ｆ）２１６と、補助記憶装置２２０とを含む。これらのコンポーネントは、内部バス２１８などを介してデータ通信可能に接続される。
【００５５】
情報処理装置２００は、光学ドライブ２１２を有しており、コンピュータ読取可能なプログラムを非一過的に格納する光学記録媒体（たとえば、ＤＶＤ（Digital Versatile Disc）など）のコンピュータ読取可能な記録媒体２１４から、各種プログラムを読取って補助記憶装置２２０などにインストールする。本実施の形態に従う機能安全の評価に係る処理は、安全コントローラに対する設定、プログラミング、デバッグなどの機能を提供する開発環境プログラムの一部として提供されてもよい。
【００５６】
情報処理装置２００で実行される各種プログラムは、コンピュータ読取可能な記録媒体２１４を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に従う機能安全の評価に係るプログラムは、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。このような場合には、本実施の形態に従う機能安全の評価の実現に必要なすべてのソフトウェアモジュールが配布されるのではなく、その一部のみが配布されることになる。このような場合であっても、本発明の技術的範囲に包含されることは自明である。また、本実施の形態に従う機能安全の評価に係る処理が、他のプログラムまたはソフトウェアの一部として実装されてもよい。
【００５７】
補助記憶装置２２０は、たとえば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Flash Solid State Drive）などで構成され、プロセッサ２０２で実行されるプログラムを格納する。具体的には、補助記憶装置２２０は、後述するような処理を提供するプログラムとして、安全プログラム（ソースプログラム）からプロセッサ２０２で実行可能なコード（実行モジュール）を生成するための実行モジュール生成プログラム２２２と、安全コントローラを模擬して安全プログラム（実行モジュール）を実行するためのエミュレータプログラム２２４と、後述するような機能安全を評価するための機能安全評価プログラム２２６とを含む。これらのプログラムが提供する機能および処理については、後述する。
【００５８】
また、補助記憶装置２２０は、機能安全の評価対象となる安全プログラム１０および各種設定２３０を保持する。
【００５９】
図４には、汎用コンピュータがプログラムを実行することで、本実施の形態に従う安全プログラムの機能安全の評価を実現するが、このような構成に代えて、その全部または一部をハードワイヤード回路で実装してもよい。たとえば、プロセッサ２０２が上述の各種プログラムを実行することで提供される機能をＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field-Programmable Gate Array）を用いて実装してもよい。
【００６０】
（ｃ３：制御装置３００）
本実施の形態に従う制御装置３００は、図３に示す安全コントローラ１００と同様の装置構成を有しているので、詳細な説明は繰り返さない。なお、安全コントローラ１００は、プロセッサなどの二重化やセーフティ用のモジュールが採用されているが、一般的には、制御装置３００にはそのような構成は採用されていない。また、制御装置３００では、上述の安全プログラムではなく、ユーザプログラムが実行される。
【００６１】
＜Ｄ．評価システムのソフトウェア構成＞
次に、評価システム１のソフトウェア構成について例示する。図５は、本実施の形態に従う評価システム１のソフトウェア構成の一例を示す模式図である。図５を参照して、評価システム１は、そのソフトウェアコンポーネントとして、実行モジュール生成部１５２と、実行部１５４と、提示部１５６と、比較部１５８と、結果出力部１６０とを含む。
【００６２】
実行モジュール生成部１５２は、プロセッサ１０２が実行モジュール生成プログラム２２２（図４参照）を実行することで実現され、安全プログラム１０から実行モジュールを生成する。実行モジュール生成部１５２は、典型的には、コンパイラ、アセンブラ、リンカなどの機能を含む。
【００６３】
実行部１５４は、実行モジュール生成部１５２により生成された実行プログラムを実行する。
【００６４】
提示部１５６は、予め用意された評価条件に従って、評価対象の安全機器４００に対する指示内容を情報処理装置２００に提示させる。好ましくは、情報処理装置２００には、ノートＰＣ、タブレット端末、スマートフォンなどの携帯端末が採用され、評価者４０は、情報処理装置２００を携帯しながら提示部１５６から受けた指示内容を確認することができる。評価者４０は、情報処理装置２００に表示された指示内容に従って安全機器４００を操作する。当該指示内容としては、たとえば、非常停止スイッチに対するオン／オフ操作や、セーフティセンサの検知エリアに対する侵入指示などである。安全機器４００は、評価者４０の操作に応じた入力値を実行部１５４へ与える。比較部１５８は、機能安全を評価するための入力値を実行部１５４へ与えることで算出される出力値と、当該入力値に対応する出力期待値とを比較し、その比較結果を出力する。この比較処理については、後述するように複数種類存在する。結果出力部１６０は、比較部１５８からの比較結果を機能安全の評価出力として出力する。
【００６５】
このように、評価システム１は、１または複数の入力信号に基づいて、安全プログラム１０に従う演算を実行することで、対応する１または複数の出力信号の値を決定する処理実行機能を有しており、この処理実行機能は、安全プログラム１０を現実または仮想的に実行できる環境により実現できる。
【００６６】
＜Ｅ．機能構成の実装例＞
図６は、機能構成の実装例を示す図である。図６（Ａ）には、安全コントローラ１００および情報処理装置２００で評価システムを実現する例が示され、図６（Ｂ）には、安全コントローラ１００のみで評価システムを実現する例が示されている。
【００６７】
図６（Ａ）に示すように、安全コントローラ１００および情報処理装置２００で評価システムを実現する場合には、安全コントローラ１００と情報処理装置２００とをデータ遣り取り可能に接続する。その上で、情報処理装置２００上に比較部１５８および結果出力部１６０を実装するとともに、安全コントローラ上で対象の安全プログラム１０を実行させることになる。
【００６８】
これに対応して、安全コントローラ１００のみで評価システムを実現する場合には、安全コントローラ１００上に、比較部１５８、結果出力部１６０とを実装することになる。このように、本実施の形態に従う各種機能は、様々な態様で実行され得る。
【００６９】
＜Ｆ．安全プログラム＞
次に、本実施の形態に従う評価システム１が対象とする安全プログラムの一例について説明する。本実施の形態においては、一例として、国際基準ＩＥＣ  ６１１３１−３（ＪＩＳ  Ｂ  ３５０３）に従うファンクションブロックダイアグラム（ＦＢＤ：Function Block Diagram）を用いて記述する例を示す。
【００７０】
図７は、本実施の形態に従う評価システム１が対象とする安全プログラム１０の一例を示す模式図である。図７に示す安全プログラム１０は、典型的には、何らかのロボットが配置され、その周囲にある危険エリアを安全柵で囲むとともに、安全柵の一部に人が出入りできるようになっている設備などを想定したものである。人が危険エリアに出入りする部分には、ライトカーテンが設けられるとともに、危険エリアの周囲には、万が一の事態が発生したときに、ロボットを緊急停止できる非常停止ボタンが設けられているとする。
【００７１】
図７に示す安全プログラム１０では、２つの非常停止ファンクションブロック（以下、「非常停止ＦＢ」とも記す。）１２，１４と、出力チェックファンクションブロック（以下、「出力チェックＦＢ」とも記す。）１８と、両者を接続するアンドブロック１６とを含む。非常停止ＦＢ１２は、非常停止ボタンからの入力信号を処理する論理であり、非常停止ＦＢ１４は、ライトカーテンからの入力信号するための論理である。
【００７２】
本実施の形態に従う評価システム１が対象とする安全プログラム１０では、変数プログラミングによりプログラムが記述されている。すなわち、非常停止ボタンやライトカーテンから出力される信号の各々は、予め定められた設定に従って、ユニークな内部変数に割り当てられている。安全プログラム１０においては、各ファンクションブロックに対して、適切な内部変数を入力または出力に論理的に関連付けることで、目的の動作が実現される。
【００７３】
非常停止ＦＢ１２，１４の各々は、その入力として、ファンクションブロックの処理の有効／無効を設定する「Ａｃｔｉｖａｔｅ」と、非常停止に係る安全コンポーネントから出力される信号が入力される「Ｓ＿ＥＳｔｏｐＩｎ」と、リセット後のプログラム実行を開始するか否かを設定する信号が入力される「Ｓ＿ＳｔａｒｔＲｅｓｅｔ」と、安全動作後のリセット種別を設定する信号が入力される「Ｓ＿ＡｕｔｏＲｅｓｅｔ」と、安全動作後の動作をリセットする信号が入力される「Ｒｅｓｅｔ」との、合計５つを有している。
【００７４】
また、非常停止ＦＢ１２，１４の各々は、その出力として、ファンクションブロックが運転状態であるか否か示す信号を出力する「Ｒｅａｄｙ」と、安全動作を指示する信号を出力する「Ｓ＿ＥＳｔｏｐＯｕｔ」と、何らかのエラーの発生を示す信号を出力する「Ｅｒｒｏｒ」と、発生したエラーの内容に対応するコードを出力する「ＤｉａｇＣｏｄｅ」との、合計４つを有している。
【００７５】
本実施の形態において、安全プログラム１０では、正常時における入力値および出力値を「ＴＲＵＥ」（「１」または「真」）とする。すなわち、何らかの条件にて安全動作を行う場合には、当該安全動作のトリガとなる入力値が「ＦＡＬＳＥ（「０」または「偽」）」に変化することで、出力値も「ＦＡＬＳＥ」となり、「ＦＡＬＳＥ」の出力値によって、対象の装置が安全動作を行う。
【００７６】
入力信号および出力信号の初期値として設定される「ＴＲＵＥ」は、安全プログラム１０を実行する安全コントローラに供給される電源が喪失したときと同様のメモリの状態において示される値（すなわち、「ＦＡＬＳＥ」）とは異なる値が用いられる。すなわち、安全コントローラの不揮発性メモリに電荷などが保持されていない状態において示される値とは異なる値を用いることで、ハードウェアの故障などにおいて、安全動作が行われる、いわゆるフェールセーフを実現できる。
【００７７】
なお、正常時および非常時における入力値および出力値に対する値の割り付けは設計事項であり、どのようなものであってもよい。但し、上述したようなフェールセーフの観点などからは、正常時の入力値および出力値を「ＴＲＵＥ」とすることが好ましい。
【００７８】
図７に示す安全プログラム１０において、非常停止ＦＢ１２の入力「Ｓ＿ＥＳｔｏｐＩｎ」には、非常停止ボタンから出力される信号を示す変数「Ｖａｒ＿ＥｍｅｒｇｅｎｃｙＳｔｏｐ１」が割り当てられ、入力「Ｒｅｓｅｔ」には、安全コントローラに対するシステムリセットを示す変数「ＳｙｓｔｅｍＲｅｓｅｔ」が割り当てられている。
【００７９】
非常停止ＦＢ１４の入力「Ｓ＿ＥＳｔｏｐＩｎ」には、ライトカーテンから出力される信号を示す変数「Ｖａｒ＿ＬｉｇｈｔＣｕｒｔａｉｎ１」が割り当てられ、入力「Ｒｅｓｅｔ」には、安全コントローラに対するシステムリセットを示す変数「ＳｙｓｔｅｍＲｅｓｅｔ」が割り当てられている。
【００８０】
非常停止ＦＢ１２，１４の「Ａｃｔｉｖａｔｅ」にはいずれも「ＴＲＵＥ」、すなわち処理の有効が設定されており、「Ｓ＿ＳｔａｒｔＲｅｓｅｔ」にはいずれも「ＴＲＵＥ」、すなわちリセット後のプログラム実行が設定されており、「Ｓ＿ＡｕｔｏＲｅｓｅｔ」にはいずれも「ＦＡＬＳＥ」、すなわちリセット種別として「マニュアルリセット」が設定されている。
【００８１】
非常停止ＦＢ１２，１４の各々は、基本的には、「Ｓ＿ＥＳｔｏｐＩｎ」に入力される変数が「ＦＡＬＳＥ」になると、「Ｓ＿ＥＳｔｏｐＯｕｔ」の出力値が「ＦＡＬＳＥ」に変化する。このような安全動作の後、設定されたリセット種別に従って、「Ｓ＿ＥＳｔｏｐＩｎ」に入力される変数、および／または、「Ｒｅｓｅｔ」に入力される変数の値に応じて、「Ｓ＿ＥＳｔｏｐＯｕｔ」の出力値をリセットまたは維持する。
【００８２】
非常停止ＦＢ１２および非常停止ＦＢ１４のそれぞれのからの「Ｓ＿ＥＳｔｏｐＯｕｔ」は、アンドブロック１６に入力され、両者の論理積が出力チェックＦＢ１８へ入力される。
【００８３】
出力チェックＦＢ１８は、安全動作を司る安全コンポーネントが指令どおりに機能しているかをチェックする論理である。出力チェックＦＢ１８は、その入力として、ファンクションブロックの処理の有効／無効を設定する「Ａｃｔｉｖａｔｅ」と、安全コンポーネントの動作指令を示す信号が入力される「Ｓ＿ＯｕｔＣｏｎｔｒｏｌ」と、安全コンポーネントの状態値を示す信号が入力される「Ｓ＿ＥＤＭ１」および「Ｓ＿ＥＤＭ２」と、健全性の監視周期を示す値が入力される「ＭｏｎｉｔｏｒｉｎｇＴｉｍｅ」と、リセット後のプログラム実行を開始するか否かを設定する信号が入力される「Ｓ＿ＳｔａｒｔＲｅｓｅｔ」と、安全動作後の状態値をリセットする信号が入力される「Ｒｅｓｅｔ」との、合計７つを有している。
【００８４】
また、出力チェックＦＢ１８は、その出力として、ファンクションブロックが運転状態であるか否か示す信号を出力する「Ｒｅａｄｙ」と、安全コンポーネントに対する安全動作を指示する最終的な信号を出力する「Ｓ＿ＥＤＭ＿Ｏｕｔ」と、何らかのエラーの発生を示す信号を出力する「Ｅｒｒｏｒ」と、発生したエラーの内容に対応するコードを出力する「ＤｉａｇＣｏｄｅ」との、合計４つを有している。
【００８５】
出力チェックＦＢ１８は、「Ｓ＿ＯｕｔＣｏｎｔｒｏｌ」への入力値に応じて、「Ｓ＿ＥＤＭ＿Ｏｕｔ」から対象の安全コンポーネントへ与える指令値を変化させるとともに、安全コンポーネントの状態値が指令値と一致しているか否かを判断する。これによって、たとえば、安全リレーの断線などによる不動、および、溶着などによる常時動作などの不具合を検出することができる。
【００８６】
図７に示す安全プログラム１０は、簡単な論理の一例を示すが、より多くの入力信号が与えられえるとともに、より多くの安全コンポーネントに対して指令値を与えるようにしてもよい。
【００８７】
＜Ｇ．リセット種別＞
次に、図７に示す安全プログラム１０に含まれる非常停止ＦＢに設定されるリセット種別について説明する。上述したように、非常停止ＦＢに、一例として、「オートリセット」および「マニュアルリセット」を選択的に設定できるようになっている。
【００８８】
「オートリセット」は、たとえば、ライトカーテンなどの安全コンポーネントからの入力信号が「ＦＡＬＳＥ」になっている間だけ安全動作を行うような場合などに好適である。たとえば、人が危険エリアに侵入している間だけ装置を停止させ、それ以外の状態では装置を動作させるような状況に用いることができる。このような「オートリセット」を設定することで、作業者に対する安全を確保しつつ、タクトタイムへの影響を低減できる。
【００８９】
「マニュアルリセット」は、一般的なリセット種別であり、非常停止ボタンなどの安全コンポーネントが操作されて、安全動作が行われた後、リセットには所定の復帰操作を必要とするような場合に好適である。たとえば、非常停止ボタンが操作されて、装置が作業途中で停止した場合などには、当該装置を初期位置に戻した上で、リセットすることが好ましい。
【００９０】
このように、リセット種別としては、入力信号の値が「ＦＡＬＳＥ」（第２の入力値）から「ＴＲＵＥ」（第１の入力値）に戻ったときに、対応する出力信号の出力値を連動して元の値に戻すことを示す「オートリセット」（第１の種別）と、予め定められたリセット条件が成立するまでは出力信号の出力値を元の値に戻さないことを示す「マニュアルリセット」（第２の種別）とを含む。
【００９１】
図８は、本実施の形態に従う安全プログラム１０に含まれる非常停止ＦＢに設定されるリセット種別を説明するための図である。
【００９２】
図８（Ａ）は、リセット種別として「オートリセット」が設定されている場合を示し、図８（Ｂ）は、リセット種別として「マニュアルリセット」が設定されている場合を示す。
【００９３】
図８（Ａ）に示す「オートリセット」では、非常停止ＦＢの入力「Ｓ＿ＥＳｔｏｐＩｎ」が「ＴＲＵＥ」から「ＦＡＬＳＥ」に変化すると、非常停止ＦＢの出力「Ｓ＿ＥＳｔｏｐＯｕｔ」が「ＴＲＵＥ」から「ＦＡＬＳＥ」に変化する。この「Ｓ＿ＥＳｔｏｐＯｕｔ」の変化によって、安全動作が行われる。その後、非常停止ＦＢの入力「Ｓ＿ＥＳｔｏｐＩｎ」が「ＦＡＬＳＥ」から「ＴＲＵＥ」に復帰すると、リセット動作も併せて実行される。すなわち、非常停止ＦＢの入力「Ｓ＿ＥＳｔｏｐＩｎ」に連動して、非常停止ＦＢの出力「Ｓ＿ＥＳｔｏｐＯｕｔ」も変化することになる。
【００９４】
本実施の形態に従う評価システム１では、「オートリセット」が設定されている出力変数については、対応する入力変数の値の変化に連動して、その値が変化することを確認する。
【００９５】
図８（Ｂ）に示す「マニュアルリセット」では、非常停止ＦＢの入力「Ｓ＿ＥＳｔｏｐＩｎ」が「ＴＲＵＥ」から「ＦＡＬＳＥ」に変化して、非常停止ＦＢの出力「Ｓ＿ＥＳｔｏｐＯｕｔ」が「ＴＲＵＥ」から「ＦＡＬＳＥ」に変化した後、非常停止ＦＢの入力「Ｓ＿ＥＳｔｏｐＩｎ」が「ＦＡＬＳＥ」から「ＴＲＵＥ」に復帰したとしても、非常停止ＦＢの出力「Ｓ＿ＥＳｔｏｐＯｕｔ」が「ＦＡＬＳＥ」に維持される。この状態において、非常停止ＦＢの入力「Ｒｅｓｅｔ」が「ＦＡＬＳＥ」から「ＴＲＵＥ」に変化することで、はじめて非常停止ＦＢの出力「Ｓ＿ＥＳｔｏｐＯｕｔ」は「ＦＡＬＳＥ」から「ＴＲＵＥ」に変化する。
【００９６】
本実施の形態に従う評価システム１では、「マニュアルリセット」が設定されている出力変数については、安全動作の実行後、対応する入力変数の値が変化したとしても、その変化後の値が維持されること、および、リセットに係る変数が入力されたときには、その値が初期値にリセットされること、を確認する。
【００９７】
＜Ｈ．機能安全評価の全体手順＞
次に、本実施の形態に従う評価システム１が提供する機能安全評価の全体手順について説明する。
【００９８】
図９は、本実施の形態に従う評価システム１が対象とする安全プログラム１０の別の一例を示す模式図である。図１０は、本実施の形態に従う機能安全評価の手順の一例を説明するタイムチャートである。図１０には、図９に示す安全プログラム１０を対象に機能安全評価を適用した場合の手順を時系列に示す。図９に示す安全プログラム１０において、非常停止ＦＢ１２の「Ｓ＿ＥＳｔｏｐＩｎ」に入力される変数を「入力変数１」とし、非常停止ＦＢ１４の「Ｓ＿ＥＳｔｏｐＩｎ」に入力される変数を「入力変数２」とし、非常停止ＦＢ１２，１４の「Ｒｅｓｅｔ」に共通して入力される変数を「リセット変数」とし、て、非常停止ＦＢ１２の「Ｓ＿ＥＳｔｏｐＯｕｔ」から出力される変数を「出力変数１」とする。なお、非常停止ＦＢ１４の「Ｓ＿ＥＳｔｏｐＯｕｔ」から出力される変数については、図１０には示していない。
【００９９】
図１０（Ａ）は、出力変数に対して「オートリセット」が設定されている例を示し、図１０（Ｂ）は、出力変数に対して「マニュアルリセット」が設定されている例を示す。
【０１００】
本実施の形態に従う機能安全評価は、典型的には、３つのフェーズ（初期化フェーズ、遮断フェーズ、復帰フェーズ）を含む。初期化フェーズでは、すべての入力変数を予め設定された初期値に設定したときに、出力変数がしかるべき初期状態になっていることを確認する。遮断フェーズでは、評価者による安全機器４００の操作によって入力変数が安全動作を示す値に変化したときに、対応する出力変数がしかるべき値に変化していること、および／または、対応する出力変数が変化していないこと、を確認する。復帰フェーズでは、評価者による安全機器４００の操作によって入力変数および／またはリセット変数がリセット動作を示す値に変化したときに、設定されたリセット種別でリセットされることを確認する。
【０１０１】
図１０に示す機能安全評価の手順において、出力変数１は、期待値として「ＴＲＵＥ」が設定されている変数であり、入力変数１に対して連動することが予定されている。これに対して、出力変数２は、期待値として「ＦＡＬＳＥ」が設定されている変数であり、入力変数１に対して連動しないことが予定されている。以下に説明する判断処理は、図１に示す比較機能４および図５に示す比較部１５８によって実行される。
【０１０２】
まず、図１０（Ａ）を参照して、リセット種別として「オートリセット」が設定されている場合の機能安全評価の手順について説明する。
【０１０３】
初期化フェーズにおいて、評価対象の入力信号の値を初期値（第１の入力値）に設定するとともに、安全プログラム１０に従う演算処理によって決定される評価対象の出力信号の値（第４の出力値）が初期値と一致しているか否かが判断される。
【０１０４】
具体的には、登録されているすべての入力変数を「ＴＲＵＥ」にセットする（符号Ｍ２）。併せて、リセット変数を一旦「ＴＲＵＥ」にセットした後（符号Ｍ４）、「ＦＡＬＳＥ」にセットする（符号Ｍ６）。この変化に対応して、登録されているすべての出力変数が「ＴＲＵＥ」であることを確認する（符号Ｍ８）。いずれかの出力変数が「ＦＡＬＳＥ」であれば、何らかの異常があると判断される（符号Ｍ１０）。
【０１０５】
続く遮断フェーズにおいて、評価者による安全機器４００の操作に基づいて評価対象の入力信号の値を初期値である「ＴＲＵＥ」（第１の入力値）から「ＦＡＬＳＥ」（第２の入力値）に変化させるとともに、安全プログラム１０に従う演算処理によって決定される評価対象の出力信号の値（第１の出力値）が対応する出力期待値と一致しているか否かが判断される。
【０１０６】
具体的には、入力変数１は、評価者による安全機器４００の操作に基づいて「ＴＲＵＥ」から「ＦＡＬＳＥ」に変化する（符号Ｍ１２）。この変化に対応して、期待値設定がチェックされている（入力変数１に対する連動することが予定されている）出力変数１が「ＦＡＬＳＥ」であることを確認する（符号Ｍ１４）。出力変数１が「ＴＲＵＥ」であれば、入力変数１に連動しておらず、何らかの異常があると判断される（符号Ｍ１６）。一方、期待値設定がチェックされていない（入力変数１に対する連動しないことが予定されている）出力変数２が「ＴＲＵＥ」であることを確認する（符号Ｍ１８）。出力変数２が「ＦＡＬＳＥ」であれば、入力変数１と連動しており、何らかの異常があると判断される（符号Ｍ２０）。
【０１０７】
最終の復帰フェーズにおいて、評価者による安全機器４００の操作に基づいて評価対象の入力信号の値を「ＦＡＬＳＥ」（第２の入力値）から「ＴＲＵＥ」（第１の入力値）に戻すとともに、安全プログラム１０に従う演算処理によって決定される評価対象の出力信号の値（第２の出力値）が遮断フェーズでの値（第１の出力値）と一致しているか否かが判断される。
【０１０８】
具体的には、入力変数１は、評価者による安全機器４００の操作に基づいて「ＦＡＬＳＥ」から「ＴＲＵＥ」に変化する（符号Ｍ２２）。このとき、リセット変数は「ＦＡＬＳＥ」のまま維持される。この変化に対応して、登録されているすべての出力変数が「ＴＲＵＥ」であることを確認する（符号Ｍ２４，Ｍ２８）。いずれかの出力変数が「ＦＡＬＳＥ」であれば、何らかの異常があると判断される（符号Ｍ２６，Ｍ３０）。
【０１０９】
このように、「オートリセット」（第１の種別）が設定されている場合には、入力信号の値を「ＦＡＬＳＥ」から「ＴＲＵＥ」に戻したときの評価対象の出力信号の出力値が「ＦＡＬＳＥ」（第１の出力値）とは異なっているときに正常と判断する。
【０１１０】
次に、図１０（Ｂ）を参照して、リセット種別として「マニュアルリセット」が設定されている場合の機能安全評価の手順について説明する。「マニュアルリセット」が設定されている場合の機能安全評価の手順のうち、初期化フェーズおよび遮断フェーズについては、図１０（Ａ）に示す「オートリセット」の初期化フェーズおよび遮断フェーズとそれぞれ同一であるので、その説明は繰り返さない。
【０１１１】
復帰フェーズにおいて、入力変数１は、評価者による安全機器４００の操作に基づいて、「ＦＡＬＳＥ」から「ＴＲＵＥ」に変化する（符号Ｍ３２）。このとき、リセット変数は「ＦＡＬＳＥ」のまま維持される。この変化に対応して、この変化に対応して、期待値設定がチェックされている（入力変数１に対する連動することが予定されている）出力変数１が「ＦＡＬＳＥ」であることを確認する（符号Ｍ３６）。出力変数１が「ＴＲＵＥ」に変化すれば、リセット変数の変化を待たずに入力変数１に連動したことになり、何らかの異常があると判断される（符号Ｍ３８）。
【０１１２】
続いて、リセット変数を一旦「ＴＲＵＥ」にセットした後（符号Ｍ４０）、「ＦＡＬＳＥ」にセットする（符号Ｍ４２）。この変化に対応して、登録されているすべての出力変数が「ＴＲＵＥ」であることを確認する（符号Ｍ４４）。いずれかの出力変数が「ＦＡＬＳＥ」であれば、何らかの異常があると判断される（符号Ｍ４６）。
【０１１３】
このように、「マニュアルリセット」（第２の種別）が設定されている場合には、入力信号の値を「ＦＡＬＳＥ」から「ＴＲＵＥ」に戻したときの評価対象の出力信号の出力値が「ＦＡＬＳＥ」（第１の出力値）と一致しているときに正常と判断する。その上で、リセット信号を有効化するとともに、安全プログラム１０に従う演算処理によって決定される評価対象の出力信号の値（第３の出力値）が遮断フェーズでの値（第１の出力値）と一致しているか否かが判断される。
【０１１４】
＜Ｉ．評価条件の設定＞
本実施の形態に従う評価システム１は、図１０に示すような機能安全評価を評価者による安全機器４００の操作に従って実行する。以下、機能安全評価の実行に必要な評価条件２０の設定方法などについて説明する。
【０１１５】
図１１は、本実施の形態に従う評価システム１において評価条件２０を設定するためのユーザインターフェイス画面の一例を示す模式図である。評価システム１は、図１１に示すような設定画面６００を表示するとともに、設定画面６００に対するユーザからの設定を受付ける。
【０１１６】
より具体的には、設定画面６００は、機能安全評価の実行を指示するＲＵＮボタン６０２と、機能安全評価の実行結果を表示する表示ボタン６０４と、評価対象の変数を登録するための変数登録ボタン６０６と、リセット変数に用いられる変数を設定するリセット変数設定エリア６０８と、入力変数に係る設定値を表示する入力設定表示エリア６１０と、出力変数に係る設定値を表示する出力設定表示エリア６２０と、入力変数に対する出力変数の期待値（以下、「出力期待値」とも称す。）を設定する期待値設定エリア６３０とを含む。
【０１１７】
リセット変数設定エリア６０８には、評価対象の安全プログラムに含まれるファンクションブロックにリセット信号として共通して入力される変数が設定される。すなわち、評価条件２０は、オートリセットの予め定められたリセット条件としてのリセット信号の設定を含む。なお、図１１に示す設定画面６００では、単一のリセット信号が共通に入力されるようになっているが、ファンクションブロック毎に別々のリセット信号を用いるようにしてもよい。
【０１１８】
入力設定表示エリア６１０では、対象の安全プログラムに含まれる入力変数に係る情報の登録および表示が可能になっている。出力設定表示エリア６２０では、対象の安全プログラムに含まれる出力変数に係る情報の登録および表示が可能になっている。入力設定表示エリア６１０および出力設定表示エリア６２０での変数登録については、変数登録ボタン６０６が選択されることで有効化される。
【０１１９】
入力設定表示エリア６１０は、予め設定されている入力変数の変数名を表示する変数名表示欄６１２と、対応する入力変数についてのコメントを表示するコメント表示欄６１４と、対応する入力変数についてのリセット種別を表示するリセット種別表示欄６１６と、対応する入力変数についての入力タイプを表示する入力タイプ表示欄６１８とを含む。
【０１２０】
出力設定表示エリア６２０は、予め設定されている出力変数の変数名を表示する変数名表示欄６２２と、対応する出力変数についてのコメントを表示するコメント表示欄６２４とを含む。
【０１２１】
期待値設定エリア６３０は、本実施の形態に従う機能安全評価に必要な評価条件を受付ける。すなわち、期待値設定エリア６３０の各行が機能安全評価の各条件となる。具体的には、期待値設定エリア６３０は、対象となる入力変数を表示する入力変数表示エリア６３４と、対応する入力変数についてのコメントを表示するコメント表示欄６３６と、対応する入力変数についてのリセット種別を表示するリセット種別表示欄６３８と、対応する入力変数についての各出力変数の出力期待値を設定する期待値設定欄６４０とを含む。
【０１２２】
期待値設定欄６４０は、１つの入力変数に対して、対象となる出力変数の数だけ出力値（出力期待値）が設定されるようになっている。図１１に示す設定画面６００の例では、出力設定表示エリア６２０に表示されている４つの出力変数に対応して、４つの欄が設けられており、各欄に出力期待値を設定できるようになっている。ユーザは、事前の安全設計に基づいて、期待値設定欄６４０にしかるべき値を設定することになる。なお、図１１の期待値設定欄６４０において、「０」は、対応の入力変数が「ＦＡＬＳＥ」になった場合に、対応の出力変数も「ＦＡＬＳＥ」へ変化することを意味し、「１」は、対応の入力変数が「ＦＡＬＳＥ」になった場合であっても、対応の出力変数が「ＴＲＵＥ」を維持することを意味する。
【０１２３】
たとえば、ある非常停止ボタンＡが危険エリアＡに配置されている装置Ａの安全動作をトリガするものであり場合には、当該非常停止ボタンＡからの入力信号に対応する入力変数に関連付けて、危険エリアＡにある装置Ａの非常停止を司る安全リレーへの指令を示す出力変数については、安全動作を示す「ＦＡＬＳＥ」、つまり「０」が出力期待値として設定される。一方で、非常停止ボタンＡは危険エリアＢに向けられるものではなく、危険エリアＢには別の非常停止ボタンＢが設けられる場合には、非常停止ボタンＡに対する操作によって、危険エリアＢの装置Ｂが停止することは予定されていない。そのため、当該非常停止ボタンＡからの入力信号に対応する入力変数に関連付けて、危険エリアＢにある装置Ｂの非常停止を司る安全リレーへの指令を示す出力変数については、安全動作しないことを示す「ＴＲＵＥ」、つまり「１」が出力期待値として設定される。このように、期待値設定欄６４０において、入力変数の各々とそれぞれの出力変数との間の関係が設定される。
【０１２４】
期待値設定エリア６３０は、各入力変数を機能安全評価の対象とするか否かを設定するためのチェックボックス６３２を含む。本実施の形態に従う機能安全評価においては、対応するチェックボックス６３２がチェックされた入力変数の値（入力値）を変化させるとともに、各出力変数の値が期待値設定欄６４０に設定された期待値と一致しているか否かが判断される。
【０１２５】
図１１に示すように、期待値設定欄６４０は、評価対象の入力信号と、評価対象の出力信号と、評価対象の入力信号の値の変化に対応して出力されるべき評価対象の出力信号の値である出力期待値とを含む、評価条件２０を受付ける。通常、評価条件２０としては、入力信号と、出力信号と、出力期待値との組が複数含まれ得る。
【０１２６】
図１１を参照して説明したように、本実施の形態に従う評価システム１は、評価対象の入力信号と、評価対象の出力信号と、評価対象の入力信号の値の変化に対応して出力されるべき評価対象の出力信号の値である出力期待値とを含む、評価条件を受付ける。
【０１２７】
次に、評価条件の一部である、図１１に示す設定画面６００に含まれる期待値設定欄６４０への出力期待値の設定を容易化する機能の一例について説明する。
【０１２８】
本実施の形態に従う評価システム１は、出力期待値の設定および再利用を容易化できるように、一般的なフォーマット（典型的には、ＣＳＶ（Comma-Separated Values）形式やテキスト形式）に従って記述された出力期待値のデータの外部読み込みが可能である。また、予め設定した出力期待値を当該一般的なフォーマットのデータとして出力することも可能である。
【０１２９】
図１２は、本実施の形態に従う評価システムにおいて出力期待値のエクスポートおよびインポート処理を説明するための図である。たとえば、ユーザが設定画面６００のエクスポートボタン６４２（図１１）を選択すると、設定画面６００の期待値設定欄６４０に設定されている出力期待値の一覧がＣＳＶ形式のデータ（外部出力データ６４６）として外部出力／保存される。
【０１３０】
また、ユーザが設定画面６００のインポートボタン６４４（図１１）を選択すると、予め用意されていたＣＳＶ形式のデータ（外部出力データ６４６）が読み込まれ、設定画面６００の期待値設定欄６４０に各値が設定される。
【０１３１】
このように、出力期待値が一般的なフォーマットのデータとして外部出力および外部読み込みできる機能が実装されることで、他のアプリケーションなどとの連携も強化され、機能安全の評価をより迅速かつ容易に行うことができる。
【０１３２】
図１２に示すファイルを用いた他のアプリケーションとの連携に加えて、他のアプリケーションで設定した出力期待値を直接用いるようにしてもよい。
【０１３３】
図１３は、本実施の形態に従う評価システムにおいて他のアプリケーションとの連携によって出力期待値を設定する処理を説明するための図である。図１３を参照して、たとえば、表計算アプリケーション７００上で期待値設定欄６４０に設定する出力期待値を示す表を作成し、この作成した対象となる範囲７０２を選択およびコピーし、設定画面６００の期待値設定欄６４０上でペースト（いわゆる、コピー＆ペースト操作）を行うことで、ユーザが所望する出力期待値を設定できる。
【０１３４】
なお、図１３には、典型例として、表計算アプリケーションとの連携について例示したが、これに限られることなく、コピー＆ペースト操作が可能なアプリケーションであれば、どのようなアプリケーションとも連携できる。
【０１３５】
このように、他のアプリケーションとの連携により、出力期待値をより容易に設定できる。
【０１３６】
＜Ｊ．機能安全評価の処理手順＞
上述のように、情報処理装置２００は、安全プログラム１０の機能安全の評価時において安全機器４００に対して行うべき操作内容を順次提示する。評価者が提示された操作内容に従って安全機器４００を順次操作することで、情報処理装置２００は、安全プログラム１０の機能安全の評価を順次実行する。
【０１３７】
以下では、図１４〜図１８を参照して、安全プログラム１０の機能安全の評価過程における情報処理装置２００の画面遷移の一例について説明する。図１４〜図１８は、情報処理装置２００の画面遷移を時系列に示す図である。
【０１３８】
図１４を参照して、評価実行画面６５０は、対象となった入力変数の変数名を表示する変数名表示欄６５４と、対応する入力変数についてのコメントを表示するコメント表示欄６５６と、対応する入力変数についてのリセット種別を表示するリセット種別表示欄６５８と、対応する入力変数についての出力期待値の組み合わせを表示する期待値設定欄６６０と、評価結果を示す結果表示欄６７２と、評価結果に対応するコメントを表示する結果コメント表示欄６７４と、評価実行日時を示す日時表示欄６７６とを含む。
【０１３９】
典型的には、安全コントローラ１００は、変数名表示欄６５４に表示されている入力変数の表示順に従って評価処理を実行する。図１４の例では、安全コントローラ１００は、入力変数「ZoneA_EmergencyStop」が割り当てられている「Ｎｏ１」の評価項目を最初の評価対象として選択する。好ましくは、評価対象として選択されている評価項目は他の評価項目とは異なる態様で表示される。図１４の例では、評価対象として選択されている評価項目がハッチングで示されているが、色を変えるなどの他の態様で示されてもよい。
【０１４０】
次に、図１５に示されるように、情報処理装置２００は、入力変数「ZoneA_EmergencyStop」が割り当てられている安全機器４００に対する操作内容６８０を表示する。操作内容６８０は、たとえば、操作対象の安全機器４００の識別情報と、操作対象の安全機器４００に対する操作手順と、当該安全機器４００に対するリセット種別とを含む。操作対象の安全機器４００の識別情報は、入力変数名で示されてもよいし、安全機器４００の名称で示されてもよい。図１５の例では、非常停止ボタンが操作対象として示されており、非常停止ボタンを「遮断」することで、入力変数「ZoneA_EmergencyStop」を「ＦＡＬＳＥ」にする操作手順が示されている。このように、安全コントローラ１００は、評価対象の入力信号の値を「ＴＲＵＥ」（第１の入力値）から「ＦＡＬＳＥ」（第２の入力値）に変化させるべきときに、当該入力信号の値を「ＴＲＵＥ」から「ＦＡＬＳＥ」に変化させるための操作内容６８０を情報処理装置２００に表示させる。
【０１４１】
操作内容６８０のＯＫボタンが押下されると、安全コントローラ１００は、入力変数「ZoneA_EmergencyStop」を安全プログラムに入力する。非常停止ボタンが押下されている場合には、入力変数「ZoneA_EmergencyStop」が「ＦＡＬＳＥ」に設定される。安全コントローラ１００は、演算結果として安全プログラムから出力される出力信号を取得する。安全コントローラ１００は、当該出力信号の値と、当該出力信号の出力期待値とを比較する。その後、安全コントローラ１００は、評価処理を次のステップに進める。
【０１４２】
次に、図１６に示されるように、情報処理装置２００は、入力変数「ZoneA_EmergencyStop」が割り当てられている安全機器４００に対する操作内容６８１を表示する。図１６の例では、非常停止ボタンを「復帰」することで、入力変数「ZoneA_EmergencyStop」を「ＴＲＵＥ」にするように指示されている。このように、安全コントローラ１００は、評価対象の入力信号の値を「ＦＡＬＳＥ」（第２の入力値）から「ＴＲＵＥ」（第１の入力値）に変化させるべきときに、当該入力信号の値を「ＦＡＬＳＥ」から「ＴＲＵＥ」に変化させるための操作内容６８０を情報処理装置２００に表示させる。
【０１４３】
操作内容６８１のＯＫボタンが押下されると、安全コントローラ１００は、入力変数「ZoneA_EmergencyStop」を安全プログラムに入力する。非常停止ボタンの押下状態が解除されている場合には、入力変数「ZoneA_EmergencyStop」が「ＴＵＲＥ」に設定される。安全コントローラ１００は、演算結果として安全プログラムから各出力機器に出力される出力信号を取得する。上述のように、リセット種別が「Ｍａｎｕａｌ」に設定されている場合には、安全コントローラ１００は、出力変数の値が変化しないことを確認する。その後、安全コントローラ１００は、評価処理を次のステップに進める。
【０１４４】
次に、図１７に示されるように、安全コントローラ１００は、評価処理が完了した「Ｎｏ１」の評価項目についての評価結果を結果表示欄６７２に表示するとともに、当該評価項目についての評価日時を日時表示欄６７６に表示する。図１７の例では、結果表示欄６７２には合格したことを示す「Ｐａｓｓｅｄ」が表示され、日時表示欄６７６には「２０１７／０１／２１／１０：０４：２４」が表示されている。その後、安全コントローラ１００は、入力変数「ZoneA_Reset」が割り当てられている「Ｎｏ２」の評価項目を次の評価対象として選択する。このとき、情報処理装置２００は、「Ｎｏ２」の評価項目の表示態様を他の評価項目とは異なる態様で表示する。これにより、評価者は、現在の評価対象の評価項目を容易に把握することできる。
【０１４５】
次に、図１８に示されるように、情報処理装置２００は、入力変数「ZoneA_Reset」が割り当てられている安全機器４００に対する操作内容６８２を表示する。図１８の例では、リセットボタンが操作対象として示されており、リセットボタンを操作することで、入力変数「ZoneA_Reset」を「ＦＡＬＳＥ」→「ＴＲＵＥ」→「ＦＡＬＳＥ」に変化するように指示されている。
【０１４６】
操作内容６８２のＯＫボタンが押下されると、安全コントローラ１００は、入力変数「ZoneA_Reset」を安全プログラムに入力する。リセットボタンが押下された場合には、入力変数「ZoneA_Reset」が「ＦＡＬＳＥ」→「ＴＲＵＥ」→「ＦＡＬＳＥ」の順に変化する。安全コントローラ１００は、演算結果として安全プログラムから各出力機器に出力される出力信号を取得する。安全コントローラ１００は、各出力機器に出力される出力信号の値と、期待値設定欄６６０の「Ｎｏ２」に示される各出力期待値とを比較する。その後、安全コントローラ１００は、評価処理を次のステップに進める。
【０１４７】
残りの「Ｎｏ３」〜「Ｎｏ７」に示される評価項目についても評価処理が順次実行される。このように、安全コントローラ１００は、評価実行画面６５０に予め設定された順序に従って、操作すべき安全機器４００の操作内容を情報処理装置２００に順次表示させるとともに、評価者による安全機器４００の操作に応じて順次評価処理を実行する。
【０１４８】
なお、上述では、評価処理が評価実行画面６５０に設定された順序で順次実行される例について説明を行ったが、評価処理は、ランダムな順番で実行されてもよい。この場合、評価者は、自身で決定した順序で安全機器４００を操作する。安全コントローラ１００は、安全機器４００が操作される度に安全プログラムから出力信号を取得し、当該出力信号の値と、操作された安全機器４００に関連付けられている出力期待値とを比較する。
【０１４９】
また、上述では、操作内容６８０〜６８２のＯＫボタンが押下されることで、評価処理が次のステップに進められる例について説明を行ったが、安全コントローラ１００は、操作対象の安全機器４００からの入力信号を監視し、当該入力信号が変化したことに基づいて評価処理を自動で次のステップに進めてもよい。
【０１５０】
＜Ｋ．機能安全評価の評価結果＞
次に、図１４〜図１８に示す機能安全評価の評価結果について説明する。
【０１５１】
本実施の形態に従う評価システム１は、評価対象の入力信号に関連付けて、機能安全評価の評価結果を出力する機能を有している。
【０１５２】
図１９は、本実施の形態に従う評価システム１において実行される機能安全評価の評価結果の一例を示す模式図である。図１９を参照して、評価結果画面６５１は、対象となった入力変数の変数名を表示する変数名表示欄６５４と、対応する入力変数についてのコメントを表示するコメント表示欄６５６と、対応する入力変数についてのリセット種別を表示するリセット種別表示欄６５８と、対応する入力変数についての出力期待値の組み合わせを表示する期待値設定欄６６０と、評価結果を示す結果表示欄６７２と、評価結果に対応するコメントを表示する結果コメント表示欄６７４と、評価実行日時を示す日時表示欄６７６とを含む。
【０１５３】
結果表示欄６７２には、上述の評価によって、合格したものについては「Ｐａｓｓｅｄ」が表示され、何らかのエラーが生じたものについては「Ｆａｉｌｅｄ」が表示される。さらに、何らかのエラーが生じた場合には、期待値設定欄６６０において、そのエラーが生じた出力変数の表示態様が異なったものとされる。結果コメント表示欄６７４には、そのエラーに対応するエラーメッセージが表示される。すなわち、いずれのフェーズにおいて異常であると判断されたのかを特定する情報が判断結果に含められる。また、異常であると判断されたフェーズに応じたコメントが判断結果に含められる。
【０１５４】
図１９に示すように、一般的には、評価条件２０は、評価対象の入力信号と、評価対象の出力信号と、出力期待値とからなる組を複数含む。そして、上述したような評価処理は各組について実行される。いずれの組の入力信号について異常であると判断されたのかを特定する情報が判断結果に含められる。
【０１５５】
また、図１９に示すように、一般的には、評価条件２０は、評価対象の入力信号と、複数の評価対象の出力信号と、それぞれ対応する複数の出力期待値とからなる組を含む。そして、上述したような、評価処理は複数の出力期待値の各々について実行される。いずれの出力信号について異常であると判断されたのかを特定する情報が判断結果に含められる。
【０１５６】
このような出力期待値を基準として、いずれかの出力変数にエラーが生じると、当該エラーの内容が出力期待値と対応付けて表示されることで、安全プログラムの機能安全評価をより効率的に行うことができる。
【０１５７】
図２０は、図１９に示される評価結果画面６５１の変形例を示す図である。図２０に示されるように、評価結果画面６５１は、評価者の記入欄６７３をさらに含んでもよい。記入欄６７３には、評価者が目視で出力機器の動作態様を確認した結果が入力される。図２０の例では、記入欄６７３は、チェックボックスとして示されている。安全機器４００に対する操作に対して出力機器が正常に動作している場合には、評価者は、チェックボックスにチェックを入れる。そうでない場合には、評価者は、チェックボックスにチェックを入れない。
【０１５８】
なお、記入欄６７３は、チェックボックスとは異なる態様で示されてもよい。一例として、記入欄６７３は、テキスト入力領域として示されてもよいし、「Ｐａｓｓｅｄ」および「Ｆａｉｌｅｄ」のいずれかを選択可能なラジオボタンとして示されてもよい。
【０１５９】
＜Ｌ．機能安全評価の印刷結果＞
図２０に示される評価結果画面６５１におけるエクスポートボタン６９０が押下された場合には、評価結果がファイル出力される。図２０に示される評価結果画面６５１における印刷ボタン６９１が押下された場合には、評価結果が印刷される。図２１は、評価結果の印刷例を示す図である。
【０１６０】
図２１に示されるように、印刷結果６５１Ａは、図２０の評価結果画面６５１に示される内容を含む。より具体的には、印刷結果６５１Ａは、対象となった入力変数の変数名を表示する変数名欄６５４Ａと、対応する入力変数についてのコメントを表示するコメント欄６５６Ａと、対応する入力変数についてのリセット種別を表示するリセット種別欄６５８Ａと、対応する入力変数についての出力期待値の組み合わせを表示する期待値設定欄６６０Ａと、評価結果を示す結果欄６７２Ａと、評価者の記入欄６７３Ａと、評価結果に対応するコメントを表示する結果コメント欄６７４Ａと、評価実行日時を示す日時欄６７６Ａとを含む。また、印刷結果６５１Ａは、評価実施日覧６９５と、評価者の名前記入欄６９６と、評価者のサイン記入欄６９７とを含む。
【０１６１】
印刷結果６５１Ａの変数名欄６５４Ａは、評価結果画面６５１の変数名表示欄６５４に対応する。印刷結果６５１Ａのコメント欄６５６Ａは、評価結果画面６５１のコメント表示欄６５６に対応する。印刷結果６５１Ａのリセット種別欄６５８Ａは、評価結果画面６５１のリセット種別表示欄６５８に対応する。印刷結果６５１Ａの期待値設定欄６６０Ａは、評価結果画面６５１の期待値設定欄６６０に対応する。印刷結果６５１Ａの結果欄６７２Ａは、評価結果画面６５１の結果表示欄６７２に対応する。印刷結果６５１Ａの記入欄６７３Ａは、評価結果画面６５１の記入欄６７３に対応する。印刷結果６５１Ａの結果コメント欄６７４Ａは、評価結果画面６５１の結果コメント表示欄６７４に対応する。印刷結果６５１Ａの日時欄６７６Ａは、評価結果画面６５１の日時表示欄６７６に対応する。
【０１６２】
＜Ｍ．機能安全評価の処理手順＞
次に、本実施の形態に従う機能安全評価の処理手順について説明する。図１１に示すような設定画面６００において、評価対象の入力変数と対応する出力期待値との組が設定されると、以下のような手順に従って、対象の安全プログラムの機能安全が評価される。
【０１６３】
図２２〜図２４は、本実施の形態に従う評価システム１において実行される機能安全評価の処理手順を示すフローチャートである。図２２〜図２４に示す各ステップは、典型的にはプロセッサ１０２（図３参照）が機能安全評価プログラムを実行することで実現される。なお、図１１に示す評価条件が予め設定されているとする。
【０１６４】
図２２〜図２４を参照して、安全コントローラの動作モードが運転モードであるか否かを判断する（ステップＳ１０）。プロセッサ１０２は、安全コントローラの動作モードが運転モードである場合には（ステップＳ１０においてＹＥＳ）、制御をステップＳ１２に切り替える。そうでない場合には（ステップＳ１０においてＮＯ）、プロセッサ１０２は、ステップＳ１０の処理を再び実行する。
【０１６５】
プロセッサ１０２は、リセット変数を「ＴＲＵＥ」に一旦セットした後、「ＦＡＬＳＥ」に戻し、評価対象である１または複数の出力信号の値を取得する（ステップＳ１２）。その後、評価対象である１または複数の出力変数の値がいずれも「ＴＲＵＥ」であるか否かが判断される（ステップＳ１４）。
【０１６６】
評価対象であるいずれかの出力変数の値が「ＦＡＬＳＥ」である場合（ステップＳ１４においてＮＯの場合）には、「ＦＡＬＳＥ」である出力変数を特定するとともに、初期化フェーズでのエラーメッセージを出力する（ステップＳ１６）。この場合、以降の機能安全評価の処理は中止される。初期化フェーズでのエラーメッセージとしては、たとえば、「出力変数（ＸＸＸ）がリセット時にＦＡＬＳＥとなっています」といったものが用いられる。
【０１６７】
評価対象であるいずれの出力変数の値も「ＴＲＵＥ」である場合（ステップＳ１４においてＹＥＳの場合）には、以下の遮断フェーズおよび復帰フェーズの処理が実行される。期待値設定エリア６３０（評価条件２０）に設定される入力変数毎に、遮断フェーズおよび復帰フェーズの処理が繰り返される。
【０１６８】
具体的には、まず、期待値設定エリア６３０に設定されている入力変数のうち、対応するチェックボックス６３２がチェックされている入力変数の１つを選択する（ステップＳ２０）。そして、プロセッサ１０２は、選択されている入力変数が割り当てられている安全機器４００を操作して入力変数の値を「ＴＲＵＥ」から「ＦＡＬＳＥ」にするように情報処理装置２００に通知する。
【０１６９】
その後、プロセッサ１０２は、選択されている入力変数が「ＴＲＵＥ」から「ＦＡＬＳＥ」に変化したか否かを判断する（ステップＳ２２）。選択されている入力変数が「ＴＲＵＥ」から「ＦＡＬＳＥ」に変化した場合（ステップＳ２２においてＹＥＳ）、プロセッサ１０２は、制御をステップＳ２４に切り替える。そうでない場合には（ステップＳ２２においてＮＯ）、プロセッサ１０２は、ステップＳ２２の処理を再び実行する。
【０１７０】
その後、プロセッサ１０２は、評価対象である１または複数の出力変数の値を取得する（ステップＳ２４）。つまり、選択されている入力変数が遮断される。続いて、選択されている入力変数に対応する、評価対象のそれぞれの出力変数についての出力期待値と、取得したそれぞれの出力変数の値とが一致するか否かを判断する（ステップＳ２６）。すなわち、出力期待値として「ＦＡＬＳＥ」が設定されている出力変数については、取得された値が「ＦＡＬＳＥ」であるか否かが判断され、出力期待値として「ＴＲＵＥ」が設定されている出力変数については、取得された値が「ＴＲＵＥ」であるか否かが判断される。
【０１７１】
いずれかの出力変数について取得した値と出力期待値とが一致しない場合（ステップＳ２６においてＮＯの場合）には、当該出力期待値と一致しない出力変数を特定するとともに、遮断フェーズでのエラーメッセージを出力する（ステップＳ２８）。この場合には、後続の復帰フェーズはスキップされ、ステップＳ６０の処理が実行される。遮断フェーズでのエラーメッセージとしては、たとえば、「出力変数（ＸＸＸ）が出力期待値と一致しません」といったものが用いられる。
【０１７２】
一方、評価対象のそれぞれの出力変数についての出力期待値と、取得したそれぞれの出力変数の値とがすべて一致する場合（ステップＳ２６においてＹＥＳの場合）には、続いて、復帰フェーズの処理が実行される。すなわち、評価対象の入力信号の値を「ＦＡＬＳＥ」（第２の入力値）から「ＴＲＵＥ」（第１の入力値）に戻すとともに、安全プログラムに従う演算により決定される評価対象の出力信号の第２の出力値が第１の出力値と一致しているか否かを判断する処理が実行される。
【０１７３】
具体的には、選択されている入力変数に設定されているリセット種別が「オートリセット」および「マニュアルリセット」のいずれであるかが判断される（ステップＳ３０）。
【０１７４】
リセット種別として「オートリセット」が設定されている場合（ステップＳ３０において「オートリセット」の場合）には、プロセッサ１０２は、選択されている入力変数が割り当てられている安全機器４００を操作して入力変数の値を「ＦＡＬＳＥ」から「ＴＲＵＥ」にするように情報処理装置２００に通知する（ステップＳ３１）。
【０１７５】
その後、プロセッサ１０２は、選択されている入力変数が「ＦＡＬＳＥ」から「ＴＲＵＥ」に変化したか否かを判断する（ステップＳ３２）。選択されている入力変数が「ＦＡＬＳＥ」から「ＴＲＵＥ」に変化した場合（ステップＳ３２においてＹＥＳ）、プロセッサ１０２は、制御をステップＳ３４に切り替える。そうでない場合には（ステップＳ３２においてＮＯ）、プロセッサ１０２は、ステップＳ３２の処理を再び実行する。
【０１７６】
その後、プロセッサ１０２は、評価対象である１または複数の出力変数の値を取得する（ステップＳ３４）。続いて、選択されている入力変数に対応する、評価対象であるいずれの出力変数もその値が「ＴＲＵＥ」であるか否かを判断する（ステップＳ３６）。すなわち、選択されている入力変数の復帰に伴って、対応するすべての出力変数も復帰しているか否かが判断される。
【０１７７】
評価対象であるいずれかの出力変数の値が「ＦＡＬＳＥ」のままである場合（ステップＳ３６においてＮＯの場合）には、「ＦＡＬＳＥ」のままである出力変数を特定するとともに、復帰フェーズでのエラーメッセージを出力し（ステップＳ３８）、ステップＳ６０の処理が実行される。復帰フェーズでのエラーメッセージとしては、たとえば、「出力変数（ＸＸＸ）が自動復帰しませんでした」といったものが用いられる。
【０１７８】
一方、評価対象であるいずれの出力変数もその値が「ＴＲＵＥ」である場合（ステップＳ３６においてＹＥＳの場合）には、選択されている入力変数については、機能安全評価のすべてに合格であることを出力し（ステップＳ４０）、ステップＳ６０の処理が実行される。
【０１７９】
リセット種別として「マニュアルリセット」が設定されている場合（ステップＳ３０において「マニュアルリセット」の場合）には、プロセッサ１０２は、選択されている入力変数が割り当てられている安全機器４００を操作して入力変数の値を「ＦＡＬＳＥ」から「ＴＲＵＥ」にするように情報処理装置２００に通知する（ステップＳ４１）。
【０１８０】
その後、プロセッサ１０２は、選択されている入力変数が「ＦＡＬＳＥ」から「ＴＲＵＥ」に変化したか否かを判断する（ステップＳ４２）。選択されている入力変数が「ＦＡＬＳＥ」から「ＴＲＵＥ」に変化した場合（ステップＳ４２においてＹＥＳ）、プロセッサ１０２は、制御をステップＳ４４に切り替える。そうでない場合には（ステップＳ４２においてＮＯ）、プロセッサ１０２は、ステップＳ４２の処理を再び実行する。
【０１８１】
その後、プロセッサ１０２は、評価対象である１または複数の出力変数の値を取得する（ステップＳ４４）。つまり、選択されている入力変数を復帰させる。続いて、選択されている入力変数に対応する評価対象の出力変数のうち、出力期待値がいずれも「ＦＡＬＳＥ」に設定されている出力変数の値が「ＦＡＬＳＥ」のままであるか否かを判断する（ステップＳ４６）。すなわち、「マニュアルリセット」の対象となっている出力変数の値が、選択されている入力変数の復帰に伴って復帰していないことが判断される。
【０１８２】
出力期待値がいずれも「ＦＡＬＳＥ」に設定されているいずれかの出力変数の値が「ＴＲＵＥ」である場合（ステップＳ４６においてＮＯの場合）には、「ＴＲＵＥ」である出力変数を特定するとともに、復帰フェーズでのエラーメッセージを出力し（ステップＳ４８）、ステップＳ６０の処理が実行される。復帰フェーズでのエラーメッセージとしては、たとえば、「出力変数（ＸＸＸ）が自動復帰しました」といったものが用いられる。
【０１８３】
出力期待値がいずれも「ＦＡＬＳＥ」に設定されているすべての出力変数の値が「ＦＡＬＳＥ」である場合（ステップＳ４６においてＹＥＳの場合）には、リセット信号を有効化するとともに、安全プログラムに従う演算により決定される評価対象の出力信号の第３の出力値が第１の出力値と一致しているか否かを判断する処理が実行される。すなわち、リセット変数を一旦「ＴＲＵＥ」にセットした後、「ＦＡＬＳＥ」に戻し（ステップＳ５０）、評価対象である１または複数の出力変数の値を取得する（ステップＳ５２）。つまり、リセット変数を活性化する。続いて、評価対象である１または複数の出力変数の値がいずれも「ＴＲＵＥ」であるか否かが判断される（ステップＳ５４）。
【０１８４】
評価対象であるいずれかの出力変数の値が「ＦＡＬＳＥ」である場合（ステップＳ５４においてＮＯの場合）には、「ＦＡＬＳＥ」である出力変数を特定するとともに、復帰フェーズでのエラーメッセージを出力する（ステップＳ５６）。復帰フェーズでのエラーメッセージとしては、たとえば、「出力変数（ＸＸＸ）がリセット時にＦＡＬＳＥとなっています」といったものが用いられる。
【０１８５】
評価対象であるいずれの出力変数の値も「ＴＲＵＥ」である場合（ステップＳ５４においてＹＥＳの場合）には、選択されている入力変数については、機能安全評価のすべてに合格であることを出力し（ステップＳ５８）、ステップＳ６０の処理が実行される。
【０１８６】
ステップＳ６０において、期待値設定エリア６３０に設定されている入力変数のうち、対応するチェックボックス６３２がチェックされている入力変数のすべてについて評価が実行されたか否かが判断される（ステップＳ６０）。チェックされているいずれかの入力変数についての評価が未だ実行されていない場合（ステップＳ６０においてＮＯの場合）には、評価が未だ実行されていないいずれかの入力変数を選択し（ステップＳ６２）、ステップＳ２１以下の処理が再度実行される。
【０１８７】
チェックされているすべての入力変数についての評価が実行されている場合（ステップＳ６０においてＹＥＳの場合）には、機能安全評価の処理は終了する。
【０１８８】
＜Ｎ．利点＞
本実施の形態によれば、安全プログラムに含まれる入力信号と、当該入力信号に対応付けられた１または複数の出力信号との組み合わせを規定するとともに、各組み合わせにおける各出力信号値の期待値（出力期待値）が設定される。また、各入力信号に対応付けられたリセット種別も設定される。その上で、評価者の安全機器４００に対する操作に応答して入力信号の値（入力値）を３つのフェーズ（初期化フェーズ、遮断フェーズ、復帰フェーズ）に変化させるとともに、各フェーズにおいて算出される出力値が、予め設定された出力期待値およびリセット種別に応じた値であるか否かが判断されることで、安全プログラムの総合的な機能安全が実機で評価される。そのため、安全プログラムの機能安全をより正確に評価できる。
【０１８９】
また、本実施の形態によれば、いずれかのフェーズにおいて異常が発生すると、当該異常が発生したフェーズ、および、当該異常が発生した出力信号が特定されるとともに、機能安全の評価結果として出力される。そのため、安全プログラムの機能安全に何らかの不具体があっても、容易にその原因および解決方法を特定することができる。
【０１９０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１９１】
１  評価システム、２  プログラム実行機能、４  比較機能、１０  安全プログラム、１６  アンドブロック、２０  評価条件、３０  機能安全評価結果、４０  評価者、１００  安全コントローラ、１０２，２０２  プロセッサ、１０４  主メモリ、１０６  フラッシュメモリ、１０８  演算処理部、１１０  制御系ネットワークインターフェイス、１１２  情報系ネットワークインターフェイス、１１４  フィールドバスインターフェイス、１１６  メモリカードインターフェイス、１１８  メモリカード、１２０  ローカル通信インターフェイス、１２２  内部バスインターフェイス、１５２  実行モジュール生成部、１５４  実行部、１５６  提示部、１５８  比較部、１６０  結果出力部、２００  情報処理装置、２０４  メモリ、２０６  入力部、２０８  出力部、２１２  光学ドライブ、２１４  記録媒体、２１８  内部バス、２２０  補助記憶装置、２２２  実行モジュール生成プログラム、２２４  エミュレータプログラム、２２６  機能安全評価プログラム、２３０  各種設定、３００  制御装置、４００  安全機器、５１０  モータ、５１２  ドライバ、５１４  セーフティリレー、６００  設定画面、６０２  ボタン、６０４  表示ボタン、６０６  変数登録ボタン、６０８  リセット変数設定エリア、６１０  入力設定表示エリア、６１２，６２２，６５４  変数名表示欄、６１４，６２４，６３６，６５６  コメント表示欄、６１６，６３８，６５８  リセット種別表示欄、６１８  入力タイプ表示欄、６２０  出力設定表示エリア、６３０  期待値設定エリア、６３２  チェックボックス、６３４  入力変数表示エリア、６４０，６６０，６６０Ａ  期待値設定欄、６４２，６９０  エクスポートボタン、６４４  インポートボタン、６４６  外部出力データ、６５０  評価実行画面、６５１  評価結果画面、６５１Ａ  印刷結果、６５４Ａ  変数名欄、６５６Ａ  コメント欄、６５８Ａ  リセット種別欄、６７２  結果表示欄、６７２Ａ  結果欄、６７３，６７３Ａ  記入欄、６７４  結果コメント表示欄、６７４Ａ  結果コメント欄、６７６  日時表示欄、６７６Ａ  日時欄、６８０〜６８２  操作内容、６９１  印刷ボタン、６９５  評価実施日覧、６９６  名前記入欄、６９７  サイン記入欄、７００  表計算アプリケーション、７０２  範囲。
【図１】
2018151866.tif 000003
【図２】
2018151866.tif 000004
【図３】
2018151866.tif 000005
【図４】
2018151866.tif 000006
【図５】
2018151866.tif 000007
【図６】
2018151866.tif 000008
【図７】
2018151866.tif 000009
【図８】
2018151866.tif 000010
【図９】
2018151866.tif 000011
【図１０】
2018151866.tif 000012
【図１１】
2018151866.tif 000013
【図１２】
2018151866.tif 000014
【図１３】
2018151866.tif 000015
【図１４】
2018151866.tif 000016
【図１５】
2018151866.tif 000017
【図１６】
2018151866.tif 000018
【図１７】
2018151866.tif 000019
【図１８】
2018151866.tif 000020
【図１９】
2018151866.tif 000021
【図２０】
2018151866.tif 000022
【図２１】
2018151866.tif 000023
【図２２】
2018151866.tif 000024
【図２３】
2018151866.tif 000025
【図２４】
2018151866.tif 000026
【手続補正書】
【提出日】平成30年4月4日(2018.4.4)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００７１
【補正方法】変更
【補正の内容】
【００７１】
図７に示す安全プログラム１０では、２つの非常停止ファンクションブロック（以下、「非常停止ＦＢ」とも記す。）１２，１４と、出力チェックファンクションブロック（以下、「出力チェックＦＢ」とも記す。）１８と、両者を接続するアンドブロック１６とを含む。非常停止ＦＢ１２は、非常停止ボタンからの入力信号を処理する論理であり、非常停止ＦＢ１４は、ライトカーテンからの入力信号を処理するための論理である。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００８３
【補正方法】変更
【補正の内容】
【００８３】
出力チェックＦＢ１８は、安全動作を司る安全コンポーネントが指令どおりに機能しているかをチェックする論理である。出力チェックＦＢ１８は、その入力として、ファンクションブロックの処理の有効／無効を設定する「Ａｃｔｉｖａｔｅ」と、安全コンポーネントの動作指令を示す信号が入力される「Ｓ＿ＯｕｔＣｏｎｔｒｏｌ」と、安全コンポーネントの状態値を示す信号が入力される「Ｓ＿ＥＤＭ１」および「Ｓ＿ＥＤＭ２」と、健全性の監視周期を示す値が入力される「ＭｏｎｉｔｏｒｉｎｇＴｉｍｅ」と、リセット後のプログラム実行を開始するか否かを設定する信号が入力される「Ｓ＿ＳｔａｒｔＲｅｓｅｔ」と、安全動作後の動作をリセットする信号が入力される「Ｒｅｓｅｔ」との、合計７つを有している。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０１１１
【補正方法】変更
【補正の内容】
【０１１１】
復帰フェーズにおいて、入力変数１は、評価者による安全機器４００の操作に基づいて、「ＦＡＬＳＥ」から「ＴＲＵＥ」に変化する（符号Ｍ３２）。このとき、リセット変数は「ＦＡＬＳＥ」のまま維持される。この変化に対応して、期待値設定がチェックされている（入力変数１に対する連動することが予定されている）出力変数１が「ＦＡＬＳＥ」であることを確認する（符号Ｍ３６）。出力変数１が「ＴＲＵＥ」に変化すれば、リセット変数の変化を待たずに入力変数１に連動したことになり、何らかの異常があると判断される（符号Ｍ３８）。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１４２
【補正方法】変更
【補正の内容】
【０１４２】
次に、図１６に示されるように、情報処理装置２００は、入力変数「ZoneA_EmergencyStop」が割り当てられている安全機器４００に対する操作内容６８１を表示する。図１６
の例では、非常停止ボタンを「復帰」することで、入力変数「ZoneA_EmergencyStop」を
「ＴＲＵＥ」にするように指示されている。このように、安全コントローラ１００は、評価対象の入力信号の値を「ＦＡＬＳＥ」（第２の入力値）から「ＴＲＵＥ」（第１の入力値）に変化させるべきときに、当該入力信号の値を「ＦＡＬＳＥ」から「ＴＲＵＥ」に変化させるための操作内容６８１を情報処理装置２００に表示させる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１４３
【補正方法】変更
【補正の内容】
【０１４３】
操作内容６８１のＯＫボタンが押下されると、安全コントローラ１００は、入力変数「ZoneA_EmergencyStop」を安全プログラムに入力する。非常停止ボタンの押下状態が解除されている場合には、入力変数「ZoneA_EmergencyStop」が「ＴＲＵＥ」に設定される。安全コントローラ１００は、演算結果として安全プログラムから各出力機器に出力される出力信号を取得する。上述のように、リセット種別が「Ｍａｎｕａｌ」に設定されている場合には、安全コントローラ１００は、出力変数の値が変化しないことを確認する。その後、安全コントローラ１００は、評価処理を次のステップに進める。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１６０
【補正方法】変更
【補正の内容】
【０１６０】
図２１に示されるように、印刷結果６５１Ａは、図２０の評価結果画面６５１に示される内容を含む。より具体的には、印刷結果６５１Ａは、対象となった入力変数の変数名を表示する変数名欄６５４Ａと、対応する入力変数についてのコメントを表示するコメント欄６５６Ａと、対応する入力変数についてのリセット種別を表示するリセット種別欄６５８Ａと、対応する入力変数についての出力期待値の組み合わせを表示する期待値設定欄６６０Ａと、評価結果を示す結果欄６７２Ａと、評価者の記入欄６７３Ａと、評価結果に対応するコメントを表示する結果コメント欄６７４Ａと、評価実行日時を示す日時欄６７６Ａとを含む。また、印刷結果６５１Ａは、評価実施日欄６９５と、評価者の名前記入欄６９６と、評価者のサイン記入欄６９７とを含む。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１８９
【補正方法】変更
【補正の内容】
【０１８９】
また、本実施の形態によれば、いずれかのフェーズにおいて異常が発生すると、当該異常が発生したフェーズ、および、当該異常が発生した出力信号が特定されるとともに、機能安全の評価結果として出力される。そのため、安全プログラムの機能安全に何らかの不具合があっても、容易にその原因および解決方法を特定することができる。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１９１
【補正方法】変更
【補正の内容】
【０１９１】
１  評価システム、２  プログラム実行機能、４  比較機能、１０  安全プログラム、１６  アンドブロック、２０  評価条件、３０  機能安全評価結果、４０  評価者、１００  安全コントローラ、１０２，２０２  プロセッサ、１０４  主メモリ、１０６  フラッシュメモリ、１０８  演算処理部、１１０  制御系ネットワークインターフェイス、１１２  情報系ネットワークインターフェイス、１１４  フィールドバスインターフェイス、１１６  メモリカードインターフェイス、１１８  メモリカード、１２０  ローカル通信インターフェイス、１２２  内部バスインターフェイス、１５２  実行モジュール生成部、１５４  実行部、１５６  提示部、１５８  比較部、１６０  結果出力部、２００  情報処理装置、２０４  メモリ、２０６  入力部、２０８  出力部、２１２  光学ドライブ、２１４  記録媒体、２１８  内部バス、２２０  補助記憶装置、２２２  実行モジュール生成プログラム、２２４  エミュレータプログラム、２２６  機能安全評価プログラム、２３０  各種設定、３００  制御装置、４００  安全機器、５１０  モータ、５１２  ドライバ、５１４  セーフティリレー、６００  設定画面、６０２  ボタン、６０４  表示ボタン、６０６  変数登録ボタン、６０８  リセット変数設定エリア、６１０  入力設定表示エリア、６１２，６２２，６５４  変数名表示欄、６１４，６２４，６３６，６５６  コメント表示欄、６１６，６３８，６５８  リセット種別表示欄、６１８  入力タイプ表示欄、６２０  出力設定表示エリア、６３０  期待値設定エリア、６３２  チェックボックス、６３４  入力変数表示エリア、６４０，６６０，６６０Ａ  期待値設定欄、６４２，６９０  エクスポートボタン、６４４  インポートボタン、６４６  外部出力データ、６５０  評価実行画面、６５１  評価結果画面、６５１Ａ  印刷結果、６５４Ａ  変数名欄、６５６Ａ  コメント欄、６５８Ａ  リセット種別欄、６７２  結果表示欄、６７２Ａ  結果欄、６７３，６７３Ａ  記入欄、６７４  結果コメント表示欄、６７４Ａ  結果コメント欄、６７６  日時表示欄、６７６Ａ  日時欄、６８０〜６８２  操作内容、６９１  印刷ボタン、６９５  評価実施日欄、６９６  名前記入欄、６９７  サイン記入欄、７００  表計算アプリケーション、７０２  範囲。
【手続補正９】
【補正対象書類名】図面
【補正対象項目名】図４
【補正方法】変更
【補正の内容】
【図４】
2018151866.tif 000027
【手続補正１０】
【補正対象書類名】図面
【補正対象項目名】図７
【補正方法】変更
【補正の内容】
【図７】
2018151866.tif 000028
【手続補正１１】
【補正対象書類名】図面
【補正対象項目名】図９
【補正方法】変更
【補正の内容】
【図９】
2018151866.tif 000029
【手続補正１２】
【補正対象書類名】図面
【補正対象項目名】図１４
【補正方法】変更
【補正の内容】
【図１４】
2018151866.tif 000030
【手続補正１３】
【補正対象書類名】図面
【補正対象項目名】図１５
【補正方法】変更
【補正の内容】
【図１５】
2018151866.tif 000031
【手続補正１４】
【補正対象書類名】図面
【補正対象項目名】図１６
【補正方法】変更
【補正の内容】
【図１６】
2018151866.tif 000032
【手続補正１５】
【補正対象書類名】図面
【補正対象項目名】図１７
【補正方法】変更
【補正の内容】
【図１７】
2018151866.tif 000033
【手続補正１６】
【補正対象書類名】図面
【補正対象項目名】図１８
【補正方法】変更
【補正の内容】
【図１８】
2018151866.tif 000034
【手続補正１７】
【補正対象書類名】図面
【補正対象項目名】図１９
【補正方法】変更
【補正の内容】
【図１９】
2018151866.tif 000035
【手続補正１８】
【補正対象書類名】図面
【補正対象項目名】図２０
【補正方法】変更
【補正の内容】
【図２０】
2018151866.tif 000036
【手続補正１９】
【補正対象書類名】図面
【補正対象項目名】図２１
【補正方法】変更
【補正の内容】
【図２１】
2018151866.tif 000037