図面 (/)

技術 評価システム、評価プログラムおよび評価方法

出願人 オムロン株式会社
発明者 藤村亮輔田熊伸行菅沼拓松井旭井上正也
出願日 2016年3月14日 (4年8ヶ月経過) 出願番号 2016-049933
公開日 2017年9月21日 (3年2ヶ月経過) 公開番号 2017-167652
状態 特許登録済
技術分野 プログラマブルコントロ-ラ
主要キーワード マニュアルリセット 安全プログラム 各出力変数 検知機器 機能安全 評価出力 期待値設定 C言語
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年9月21日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (18)

課題

安全プログラム機能安全をより容易に評価できる技術が要望されている。

解決手段

評価システムは、安全プログラムに従う演算を実行する処理実行手段と、評価対象入力信号と、評価対象の出力信号と、評価対象の入力信号の値の変化に対応して出力されるべき評価対象の出力信号の値である出力期待値とを含む、評価条件を受付ける設定手段と、評価対象の入力信号の値を初期値である第1の入力値から第2の入力値に変化させるとともに、処理実行手段により決定される評価対象の出力信号の第1の出力値が出力期待値と一致しているか否かを判断する第1の判断手段と、評価対象の入力信号の値を第2の入力値から第1の入力値に戻すとともに、処理実行手段により決定される評価対象の出力信号の第2の出力値が第1の出力値と一致しているか否かを判断する第2の判断手段と、判断結果を出力する出力手段とを含む。

概要

背景

多くの製造現場で使用される機械を安全に使用するためには、国際規格に従う安全機器(安全コンポーネント)を使用しなければならばない。この安全機器は、ロボットなどの自動的に動く装置によって人の安全が脅かされることの防止を目的としている。このような安全機器は、安全プログラムを実行する安全コントローラをはじめとして、人の存在や侵入を検知する検知機器、非常時の操作を受付ける入力機器、実際に機器を停止させる出力機器などを含む。

このような製造現場での安全を確保する技術の一つとして、例えば、特開2014−137621号公報(特許文献1)は、安全コントローラのユーザプログラムの設計を容易にすることが可能な安全コントローラのユーザプログラムの設計を支援する方法を開示する。

特開2014−137621号公報(特許文献1)は、安全コントローラと安全I/Oターミナルとがバス型ネットワークを介して接続され、安全コントローラでは、安全I/Oターミナルに接続される安全入力機器からの入力信号に基づいて、安全I/Oターミナルに接続される安全出力機器に対して安全動作を行うための指令を出力する構成を開示する。

概要

安全プログラムの機能安全をより容易に評価できる技術が要望されている。評価システムは、安全プログラムに従う演算を実行する処理実行手段と、評価対象の入力信号と、評価対象の出力信号と、評価対象の入力信号の値の変化に対応して出力されるべき評価対象の出力信号の値である出力期待値とを含む、評価条件を受付ける設定手段と、評価対象の入力信号の値を初期値である第1の入力値から第2の入力値に変化させるとともに、処理実行手段により決定される評価対象の出力信号の第1の出力値が出力期待値と一致しているか否かを判断する第1の判断手段と、評価対象の入力信号の値を第2の入力値から第1の入力値に戻すとともに、処理実行手段により決定される評価対象の出力信号の第2の出力値が第1の出力値と一致しているか否かを判断する第2の判断手段と、判断結果を出力する出力手段とを含む。

目的

具体的には、評価システム1は、主たるコンポーネントとして、オペレーティングシステム(OS:Operating System)および後述するような各種プログラムを実行するプロセッサ102と、プロセッサ102でのプログラム実行に必要なデータを格納するための作業領域を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

予め定められた条件が成立すると対象機器を安全が保たれるように動作させるための安全プログラム、の機能安全を評価する評価システムであって、1または複数の入力信号に基づいて、前記安全プログラムに従う演算を実行することで、対応する1または複数の出力信号の値を決定する処理実行手段と、評価対象の入力信号と、評価対象の出力信号と、前記評価対象の入力信号の値の変化に対応して出力されるべき前記評価対象の出力信号の値である出力期待値とを含む、評価条件を受付ける設定手段と、前記評価対象の入力信号の値を初期値である第1の入力値から第2の入力値に変化させるとともに、前記処理実行手段により決定される前記評価対象の出力信号の第1の出力値が前記出力期待値と一致しているか否かを判断する第1の判断手段と、前記評価対象の入力信号の値を前記第2の入力値から前記第1の入力値に戻すとともに、前記処理実行手段により決定される前記評価対象の出力信号の第2の出力値が前記第1の出力値と一致しているか否かを判断する第2の判断手段と、前記評価対象の入力信号に関連付けて、前記第1の判断手段および前記第2の判断手段での判断結果を出力する出力手段とを備える、評価システム。

請求項2

前記評価条件は、前記入力信号の値が前記第2の入力値から前記第1の入力値に戻ったときに、対応する出力信号の出力値を連動して元の値に戻すことを示す第1の種別と、予め定められたリセット条件が成立するまでは出力信号の出力値を元の値に戻さないことを示す第2の種別とのうち、いずれかの設定を含み、前記第2の判断手段は、前記第1の種別が設定されている場合には、前記評価対象の出力信号の第2の出力値が前記第1の出力値とは異なっているときに正常と判断し、前記第2の種別が設定されている場合には、前記評価対象の出力信号の第2の出力値が前記第1の出力値と一致しているときに正常と判断する、請求項1に記載の評価システム。

請求項3

前記評価条件は、前記第2の種別の前記予め定められたリセット条件として、リセット信号の設定を含み、前記評価システムは、前記第2の判断手段による判断後、前記リセット信号を有効化するとともに、前記処理実行手段により決定される前記評価対象の出力信号の第3の出力値が前記第1の出力値と一致しているか否かを判断する第3の判断手段をさらに備える、請求項2に記載の評価システム。

請求項4

前記第1の判断手段による判断の前に、前記評価対象の入力信号の値を前記第1の入力値に設定するとともに、前記処理実行手段により決定される前記評価対象の出力信号の第4の出力値が初期値と一致しているか否かを判断する第4の判断手段をさらに備える、請求項1〜3のいずれか1項に記載の評価システム。

請求項5

前記初期値である第1の入力値は、前記安全プログラムを実行する安全コントローラに供給される電源喪失したときと同様のメモリの状態において示される値とは異なる値が用いられる、請求項1〜4のいずれか1項に記載の評価システム。

請求項6

前記出力手段は、いずれの判断手段により異常であると判断されたのかを特定する情報を前記判断結果に含める、請求項1〜5のいずれか1項に記載の評価システム。

請求項7

前記評価条件は、前記評価対象の入力信号と、前記評価対象の出力信号と、前記出力期待値とからなる組を複数含み、前記判断手段による判断は各組について実行され、前記出力手段は、いずれの組の入力信号について異常であると判断されたのかを特定する情報を前記判断結果に含める、請求項1〜6のいずれか1項に記載の評価システム。

請求項8

前記評価条件は、前記評価対象の入力信号と、複数の前記評価対象の出力信号と、それぞれ対応する複数の前記出力期待値とからなる組を含み、前記判断手段による判断は前記複数の出力期待値の各々について実行され、前記出力手段は、いずれの出力信号について異常であると判断されたのかを特定する情報を前記判断結果に含める、請求項1〜7のいずれか1項に記載の評価システム。

請求項9

前記出力手段は、異常であると判断された判断手段に応じたコメントを前記判断結果に含める、請求項1〜8のいずれか1項に記載の評価システム。

請求項10

予め定められた条件が成立すると対象機器を安全が保たれるように動作させるための安全プログラム、の機能安全を評価する評価プログラムであって、前記評価プログラムはコンピュータに1または複数の入力信号に基づいて、前記安全プログラムに従う演算を実行することで、対応する1または複数の出力信号の値を決定するステップと、評価対象の入力信号と、評価対象の出力信号と、前記評価対象の入力信号の値の変化に対応して出力されるべき前記評価対象の出力信号の値である出力期待値とを含む、評価条件を受付けるステップと、前記評価対象の入力信号の値を初期値である第1の入力値から第2の入力値に変化させるとともに、前記安全プログラムに従う演算により決定される前記評価対象の出力信号の第1の出力値が前記出力期待値と一致しているか否かを判断するステップと、前記評価対象の入力信号の値を前記第2の入力値から前記第1の入力値に戻すとともに、前記安全プログラムに従う演算により決定される前記評価対象の出力信号の第2の出力値が前記第1の期待値と一致しているか否かを判断するステップと、前記評価対象の入力信号に関連付けて、前記判断するステップでの判断結果を出力するステップとを実行させる、評価プログラム。

請求項11

予め定められた条件が成立すると対象機器を安全が保たれるように動作させるための安全プログラム、の機能安全を評価する評価方法であって、1または複数の入力信号に基づいて、前記安全プログラムに従う演算を実行することで、対応する1または複数の出力信号の値を決定するステップと、評価対象の入力信号と、評価対象の出力信号と、前記評価対象の入力信号の値の変化に対応して出力されるべき前記評価対象の出力信号の値である出力期待値とを含む、評価条件を受付けるステップと、前記評価対象の入力信号の値を初期値である第1の入力値から第2の入力値に変化させるとともに、前記安全プログラムに従う演算により決定される前記評価対象の出力信号の第1の出力値が前記出力期待値と一致しているか否かを判断するステップと、前記評価対象の入力信号の値を前記第2の入力値から前記第1の入力値に戻すとともに、前記安全プログラムに従う演算により決定される前記評価対象の出力信号の第2の出力値が前記第1の出力値と一致しているか否かを判断するステップと、前記評価対象の入力信号に関連付けて、前記判断するステップでの判断結果を出力するステップとを備える、評価方法。

技術分野

0001

本技術は、安全プログラム機能安全を評価する評価システム評価プログラムおよび、評価方法に関する。

背景技術

0002

多くの製造現場で使用される機械を安全に使用するためには、国際規格に従う安全機器(安全コンポーネント)を使用しなければならばない。この安全機器は、ロボットなどの自動的に動く装置によって人の安全が脅かされることの防止を目的としている。このような安全機器は、安全プログラムを実行する安全コントローラをはじめとして、人の存在や侵入を検知する検知機器、非常時の操作を受付ける入力機器、実際に機器を停止させる出力機器などを含む。

0003

このような製造現場での安全を確保する技術の一つとして、例えば、特開2014−137621号公報(特許文献1)は、安全コントローラのユーザプログラムの設計を容易にすることが可能な安全コントローラのユーザプログラムの設計を支援する方法を開示する。

0004

特開2014−137621号公報(特許文献1)は、安全コントローラと安全I/Oターミナルとがバス型ネットワークを介して接続され、安全コントローラでは、安全I/Oターミナルに接続される安全入力機器からの入力信号に基づいて、安全I/Oターミナルに接続される安全出力機器に対して安全動作を行うための指令を出力する構成を開示する。

先行技術

0005

特開2014−137621号公報

発明が解決しようとする課題

0006

ところで、安全コントローラで実行される安全プログラムについては、予め設計されたとおりに動作することを確認する必要がある。上述の特許文献1は、安全コントローラのユーザプログラムの設計を容易にすることが可能な安全コントローラのユーザプログラムの設計を支援する方法を開示するが、出来上がった安全コントローラのユーザプログラムを検査する手法については教示されていない。

0007

そのため、安全プログラムの機能安全をより容易に評価できる技術が要望されている。

課題を解決するための手段

0008

本発明のある局面に従えば、予め定められた条件が成立すると対象機器を安全が保たれるように動作させるための安全プログラム、の機能安全を評価する評価システムが提供される。評価システムは、1または複数の入力信号に基づいて、安全プログラムに従う演算を実行することで、対応する1または複数の出力信号の値を決定する処理実行手段と、評価対象の入力信号と、評価対象の出力信号と、評価対象の入力信号の値の変化に対応して出力されるべき評価対象の出力信号の値である出力期待値とを含む、評価条件を受付ける設定手段と、評価対象の入力信号の値を初期値である第1の入力値から第2の入力値に変化させるとともに、処理実行手段により決定される評価対象の出力信号の第1の出力値が出力期待値と一致しているか否かを判断する第1の判断手段と、評価対象の入力信号の値を第2の入力値から第1の入力値に戻すとともに、処理実行手段により決定される評価対象の出力信号の第2の出力値が第1の出力値と一致しているか否かを判断する第2の判断手段と、評価対象の入力信号に関連付けて、第1の判断手段および第2の判断手段での判断結果を出力する出力手段とを含む。

0009

好ましくは、評価条件は、入力信号の値が第2の入力値から第1の入力値に戻ったときに、対応する出力信号の出力値を連動して元の値に戻すことを示す第1の種別と、予め定められたリセット条件が成立するまでは出力信号の出力値を元の値に戻さないことを示す第2の種別とのうち、いずれかの設定を含む。第2の判断手段は、第1の種別が設定されている場合には、評価対象の出力信号の第2の出力値が第1の出力値とは異なっているときに正常と判断し、第2の種別が設定されている場合には、評価対象の出力信号の第2の出力値が第1の出力値と一致しているときに正常と判断する。

0010

より好ましくは、評価条件は、第2の種別の予め定められたリセット条件として、リセット信号の設定を含む。評価システムは、第2の判断手段による判断後、リセット信号を有効化するとともに、処理実行手段により決定される評価対象の出力信号の第3の出力値が第1の出力値と一致しているか否かを判断する第3の判断手段をさらに含む。

0011

好ましくは、評価システムは、第1の判断手段による判断の前に、評価対象の入力信号の値を第1の入力値に設定するとともに、処理実行手段により決定される評価対象の出力信号の第4の出力値が初期値と一致しているか否かを判断する第4の判断手段をさらに含む。

0012

好ましくは、初期値である第1の入力値は、安全プログラムを実行する安全コントローラに供給される電源喪失したときと同様のメモリの状態において示される値とは異なる値が用いられる。

0013

好ましくは、出力手段は、いずれの判断手段により異常であると判断されたのかを特定する情報を判断結果に含める。

0014

好ましくは、評価条件は、評価対象の入力信号と、評価対象の出力信号と、出力期待値とからなる組を複数含み、判断手段による判断は各組について実行される。出力手段は、いずれの組の入力信号について異常であると判断されたのかを特定する情報を判断結果に含める。

0015

好ましくは、評価条件は、評価対象の入力信号と、複数の評価対象の出力信号と、それぞれ対応する複数の出力期待値とからなる組を含み、判断手段による判断は複数の出力期待値の各々について実行される。出力手段は、いずれの出力信号について異常であると判断されたのかを特定する情報を判断結果に含める。

0016

好ましくは、出力手段は、異常であると判断された判断手段に応じたコメントを判断結果に含める。

0017

本発明の別の局面に従えば、予め定められた条件が成立すると対象機器を安全が保たれるように動作させるための安全プログラム、の機能安全を評価する評価プログラムが提供される。評価プログラムはコンピュータに、1または複数の入力信号に基づいて、安全プログラムに従う演算を実行することで、対応する1または複数の出力信号の値を決定するステップと、評価対象の入力信号と、評価対象の出力信号と、評価対象の入力信号の値の変化に対応して出力されるべき評価対象の出力信号の値である出力期待値とを含む、評価条件を受付けるステップと、評価対象の入力信号の値を初期値である第1の入力値から第2の入力値に変化させるとともに、安全プログラムに従う演算により決定される評価対象の出力信号の第1の出力値が出力期待値と一致しているか否かを判断するステップと、評価対象の入力信号の値を第2の入力値から第1の入力値に戻すとともに、安全プログラムに従う演算により決定される評価対象の出力信号の第2の出力値が第1の期待値と一致しているか否かを判断するステップと、評価対象の入力信号に関連付けて、判断するステップでの判断結果を出力するステップとを実行させる。

0018

本発明のさらに別の局面に従えば、予め定められた条件が成立すると対象機器を安全が保たれるように動作させるための安全プログラム、の機能安全を評価する評価方法が提供される。評価方法は、1または複数の入力信号に基づいて、安全プログラムに従う演算を実行することで、対応する1または複数の出力信号の値を決定するステップと、評価対象の入力信号と、評価対象の出力信号と、評価対象の入力信号の値の変化に対応して出力されるべき評価対象の出力信号の値である出力期待値とを含む、評価条件を受付けるステップと、評価対象の入力信号の値を初期値である第1の入力値から第2の入力値に変化させるとともに、安全プログラムに従う演算により決定される評価対象の出力信号の第1の出力値が出力期待値と一致しているか否かを判断するステップと、評価対象の入力信号の値を第2の入力値から第1の入力値に戻すとともに、安全プログラムに従う演算により決定される評価対象の出力信号の第2の出力値が第1の出力値と一致しているか否かを判断するステップと、評価対象の入力信号に関連付けて、判断するステップでの判断結果を出力するステップとを含む。

発明の効果

0019

本発明によれば、安全プログラムの機能安全をより容易に評価できる。

図面の簡単な説明

0020

本実施の形態に従う評価システムの概要を機能的な面から説明する模式図である。
本実施の形態に従う評価システムのハードウェア構成の一例を示す模式図である。
本実施の形態に従う評価システムのソフトウェア構成の一例を示す模式図である。
本実施の形態に従う評価システムの構成例を示す模式図である。
本実施の形態に従う評価システムが対象とする安全プログラムの一例を示す模式図である。
本実施の形態に従う安全プログラムに含まれる非常停止FBに設定されるリセット種別を説明するための図である。
本実施の形態に従う評価システムが対象とする安全プログラムの別の一例を示す模式図である。
本実施の形態に従う機能安全評価の手順の一例を説明するタイムチャートである。
本実施の形態に従う評価システムにおいて評価条件を設定するためのユーザインターフェイス画面の一例を示す模式図である。
本実施の形態に従う評価システムにおいて出力期待値のエクスポートおよびインポート処理を説明するための図である。
本実施の形態に従う評価システムにおいて他のアプリケーションとの連携によって出力期待値を設定する処理を説明するための図である。
本実施の形態に従う評価システムにおいて実行される機能安全評価の処理手順を示すフローチャートである。
本実施の形態に従う評価システムにおいて実行される機能安全評価の処理手順を示すフローチャートである。
本実施の形態に従う評価システムにおいて実行される機能安全評価の評価結果の一例を示す模式図である。
本実施の形態に従う評価システムが提供する評価条件の設定支援機能を説明する模式図である。
本実施の形態に従う評価システムが提供する評価条件の設定支援機能を説明する模式図である。
本実施の形態に従う評価システムが提供する評価条件の設定支援機能に係る処理手順を示すフローチャートである。

実施例

0021

本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。

0022

<A.評価システムの概要>
まず、本実施の形態に従う評価システムの概要について説明する。評価システムは、任意の安全プログラムの機能安全を評価する。

0023

本明細書において、「安全プログラム」は、予め定められた条件(安全条件)が成立すると対象機器を安全が保たれるように動作させるためのプログラムであり、安全コントローラの処理を定義する命令群を意味する。より具体的には、安全プログラムは、1または複数の入力信号に対して、1または複数の出力信号の値を決定するための命令の組み合わせを含む。

0024

安全プログラムは、安全コントローラの処理を定義するものであれば、どのような実体であってもよい。すなわち、安全プログラムは、1または複数のソースコードとして存在してもよいし、1または複数のオブジェクトコードとして存在してもよいし、安全コントローラのプロセッサで実行可能な形式実行形式)であってもよい。

0025

また、安全プログラムは、ファンクションブロックダイアグラム(FBD:Function Block Diagram)を用いて記述されていてもよい。あるいは、ラダーダイアグラム(LD:Ladder Diagram)、命令リストIL:Instruction List)、構造化テキスト(ST:Structured Text)、および、シーケンシャルファンクションチャートSFC:Sequential Function Chart)のいずれか、あるいは、これらの組み合わせで記述されてもよい。さらにあるいは、JavaScript(登録商標)やC言語のような汎用的なプログラミング言語で記述されていてもよい。

0026

なお、PLプログラミング国際基準IEC61131−3(JIS B 3503)の普及活動と、ベンダに依存しない標準ファンクションブロックダイアグラムの仕様策定および認定を行う第三者機関であるPLCopen(登録商標)が、technical committee 5において公開している規約準拠して安全プログラムを作成することが好ましい。

0027

本実施の形態に従う評価システムにおける安全プログラムの機能安全の評価とは、対象の安全プログラムによる挙動がしかるべき安全規格適合しているか否かを検証するものである。具体的には、安全プログラムに入力される変数の値の各組み合わせを入力し、当該入力に対する出力結果が、本来あるべき結果と一致するか否かを逐次判断する。評価システムは、このよう入力値の各組み合わせについての検証動作を自動的に実行することができる。

0028

以下の説明では、変数プログラムとして記述された安全プログラムについて例示する。そのため、実際に安全コントローラと安全コンポーネントなどとの間で遣り取りされる信号(典型的には、入力信号および出力信号)を安全プログラム内では、それぞれ「変数」として取り扱うことになる。これらの現実の信号と安全プログラム内の対応する変数とは本質的に同じものであるため、以下の説明では、これらを「信号」と総称することもある。すなわち、本明細書において、「信号」は、現実に遣り取りされる電気信号に加えて、安全コントローラ上でその電気信号に割り当てられた値を参照する変数を含み得る。

0029

図1は、本実施の形態に従う評価システム1の概要を機能的な面から説明する模式図である。図1を参照して、評価システム1は、その主たる機能として、プログラム実行機能2と、比較機能4と、解析抽出機能6とを含む。

0030

プログラム実行機能2は、安全プログラム10に従って所定周期毎またはイベント発生毎に演算処理を実行し、その実行結果を出力する。プログラム実行機能2のプログラム実行時には、1または複数の入力値を取得し、その取得した入力値に基づいて論理演算などを実行する。入力値と当該入力値に対応する出力期待値との組み合わせを含む、評価条件20が予め用意されており、評価条件20に基づいて、安全プログラム10の入力値が順次更新される。

0031

比較機能4は、評価条件20に基づく入力値をプログラム実行機能2に入力したときに出力される出力値と、評価条件20において当該入力値に対応する出力期待値とを比較する。両者が一致する場合には、1次的な安全動作が健全であると判断する。

0032

評価条件20には、入力値および当該入力値に対応する出力期待値が格納されるとともに、復帰動作の条件についても格納されている。本実施の形態に従う機能安全評価においては、設定されている復帰動作の条件に従って、先に入力された入力値が変化または維持される。そして、この入力値の変化または維持に伴う出力値の変化または維持が、予め設定されている復帰動作の条件に適合するか否かも判断される。

0033

このように、本実施の形態においては、安全動作のトリガとなる入力値を与えることでしかるべき安全動作が実行されるか否かの評価(1次的な安全動作の評価)に加えて、安全動作のトリガとなる入力値が元の値に復帰したときに、停止状態などが維持されるか、あるいは、停止状態などが通常の動作状態に復帰するかについても評価(2次的な安全動作の評価)がなされる。なお、2次的な安全動作の評価では、予め設定された復帰動作の条件に従う挙動であるか否かが判断される。

0034

以上のような評価結果は、機能安全評価結果30として、画面上または紙面上に出力されてもよい。

0035

本実施の形態に従う評価システム1は、安全プログラム10に定義されている入力値を自動的に抽出し、評価条件20に必要な入力値のリストなどを自動的に生成機能実装されていてもよい。安全プログラム10に含まれる論理(安全パス)が多くなると、すべての入力値と出力値との関係を手動で抽出することは難しくなる。そこで、本実施の形態に従う評価システム1では、解析・抽出機能6が安全プログラム10を解析し、その中に含まれる入力値などを抽出し、評価条件20の作成を支援する。このような支援機能を実装することで、より確実に機能安全を評価することができる。

0036

以下、機能安全評価を実行する処理、および、評価条件20の作成を支援する処理などについて、より詳細に説明する。

0037

<B.評価システムのハードウェア構成>
次に、評価システム1のハードウェア構成について例示する。図2は、本実施の形態に従う評価システム1のハードウェア構成の一例を示す模式図である。

0038

図2に示す本実施の形態に従う評価システム1は、典型的には、汎用コンピュータが予めインストールされたプログラムを実行することで実現される。具体的には、評価システム1は、主たるコンポーネントとして、オペレーティングシステム(OS:Operating System)および後述するような各種プログラムを実行するプロセッサ102と、プロセッサ102でのプログラム実行に必要なデータを格納するための作業領域を提供するメモリ104と、キーボードマウスなどのユーザ操作を受付ける入力部106と、ディスプレイ、各種インジケータプリンタなどの処理結果を出力する出力部108と、外部ネットワーク通信するためのネットワークインターフェイス(I/F:Inter Face)110と、光学ドライブ112と、安全コントローラなどと通信するためのローカル通信インターフェイス(I/F)116と、補助記憶装置120とを含む。これらのコンポーネントは、内部バス118などを介してデータ通信可能に接続される。

0039

評価システム1は、光学ドライブ112を有しており、コンピュータ読取可能なプログラムを非一過的に格納する光学記録媒体(例えば、DVD(Digital Versatile Disc)など)のコンピュータ読取可能な記録媒体114から、各種プログラムを読取って補助記憶装置120などにインストールする。本実施の形態に従う機能安全の評価に係る処理は、安全コントローラに対する設定、プログラミング、デバッグなどの機能を提供する開発環境プログラムの一部として提供されてもよい。

0040

評価システム1で実行される各種プログラムは、コンピュータ読取可能な記録媒体114を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に従う機能安全の評価に係るプログラムは、OSが提供するモジュールの一部を利用する形で実現される場合もある。このような場合には、本実施の形態に従う機能安全の評価の実現に必要なすべてのソフトウェアモジュール配布されるのではなく、その一部のみが配布されることになる。このような場合であっても、本発明の技術的範囲に包含されることは自明である。また、本実施の形態に従う機能安全の評価に係る処理が、他のプログラムまたはソフトウェアの一部として実装されてもよい。

0041

補助記憶装置120は、例えば、HDD(Hard Disk Drive)やSSD(Flash Solid State Drive)などで構成され、プロセッサ102で実行されるプログラムを格納する。具体的には、補助記憶装置120は、後述するような処理を提供するプログラムとして、安全プログラム(ソースプログラム)からプロセッサ102で実行可能なコード(実行モジュール)を生成するための実行モジュール生成プログラム122と、安全コントローラを模擬して安全プログラム(実行モジュール)を実行するためのエミュレータプログラム124と、後述するような機能安全を評価するための機能安全評価プログラム126とを含む。これらのプログラムが提供する機能および処理については、後述する。

0042

また、補助記憶装置120は、機能安全の評価対象となる安全プログラム10および各種設定130を保持する。

0043

図2には、汎用コンピュータがプログラムを実行することで、本実施の形態に従う安全プログラムの機能安全の評価を実現するが、このような構成に代えて、その全部または一部をハードワイヤード回路で実装してもよい。例えば、プロセッサ102が上述の各種プログラムを実行することで提供される機能をASIC(Application Specific IntegratedCircuit)やFPGA(Field-Programmable Gate Array)を用いて実装してもよい。

0044

<C.評価システムのソフトウェア構成>
次に、評価システム1のソフトウェア構成について例示する。図3は、本実施の形態に従う評価システム1のソフトウェア構成の一例を示す模式図である。図3を参照して、評価システム1は、そのソフトウェアコンポーネントとして、実行モジュール生成部152と、エミュレータ154と、入力値変更部156と、比較部158と、結果出力部160と、評価条件生成部170とを含む。

0045

実行モジュール生成部152は、プロセッサ102が実行モジュール生成プログラム122(図2)を実行することで実現され、安全プログラム10から実行モジュールを生成する。実行モジュール生成部152は、典型的には、コンパイラアセンブラリンカなどの機能を含む。

0046

エミュレータ154は、プロセッサ102がエミュレータプログラム124(図2)を実行することで実現され、実行モジュール生成部152により生成された実行プログラムを実行する。

0047

入力値変更部156は、予め用意された評価条件に従って、機能安全を評価するための入力値をエミュレータ154へ与える。比較部158は、機能安全を評価するための入力値をエミュレータ154へ与えることで算出される出力値と、当該入力値に対応する出力期待値とを比較し、その比較結果を出力する。この比較処理については、後述するように複数種類存在する。結果出力部160は、比較部158からの比較結果を機能安全の評価出力として出力する。

0048

入力値変更部156、比較部158、および、結果出力部160は、プロセッサ102が機能安全評価プログラム126(図2)を実行することで実現される。

0049

評価条件生成部170は、安全プログラム10の内容を解析して、機能安全評価に必要な入力値の組み合わせなどを生成する。

0050

図2および図3には、汎用コンピュータに実装されるエミュレータを用いて安全プログラムを実行する構成について例示したが、現実の安全コントローラを用いてもよい。以下、本実施の形態に従う評価システムの具体的な構成例について例示する。

0051

図4は、本実施の形態に従う評価システムの構成例を示す模式図である。図4(A)には、汎用コンピュータのみで評価システムを実現する例を示し、図4(B)には、汎用コンピュータおよび安全コントローラを用いて評価システムを実現する例を示す。

0052

図4(A)に示すように、汎用コンピュータPCのみで評価システムを実現する場合には、汎用コンピュータPC上に、エミュレータ154、比較部158、結果出力部160を実装することになる。

0053

これに対応して、汎用コンピュータPCおよび安全コントローラを用いて評価システムを実現する場合には、汎用コンピュータPCと安全コントローラとをデータ遣り取り可能に接続する。その上で、汎用コンピュータPC上に比較部158および結果出力部160を実装するとともに、安全コントローラ上で対象の安全プログラム10を実行させることになる。

0054

このように、評価システム1は、1または複数の入力信号に基づいて、安全プログラム10に従う演算を実行することで、対応する1または複数の出力信号の値を決定する処理実行機能を有しており、この処理実行機能は、安全プログラム10を現実または仮想的に実行できる環境により実現できる。

0055

<D.安全プログラム>
次に、本実施の形態に従う評価システム1が対象とする安全プログラムの一例について説明する。本実施の形態においては、一例として、国際基準IEC61131−3(JIS B 3503)に従うファンクションブロックダイアグラム(FBD:Function Block Diagram)を用いて記述する例を示す。

0056

図5は、本実施の形態に従う評価システム1が対象とする安全プログラム10の一例を示す模式図である。図5に示す安全プログラム10は、典型的には、何らかのロボットが配置され、その周囲にある危険エリアを安全で囲むとともに、安全柵の一部に人が出入りできるようになっている設備などを想定したものである。人が危険エリアに出入りする部分には、ライトカーテンが設けられるとともに、危険エリアの周囲には、万が一の事態が発生したときに、ロボットを緊急停止できる非常停止ボタンが設けられているとする。

0057

図5に示す安全プログラム10では、2つの非常停止ファンクションブロック(以下、「非常停止FB」とも記す。)12,14と、出力チェックファンクションブロック(以下、「出力チェックFB」とも記す。)18と、両者を接続するアンドブロック16とを含む。非常停止FB12は、非常停止ボタンからの入力信号を処理する論理であり、非常停止FB14は、ライトカーテンからの入力信号するための論理である。

0058

本実施の形態に従う評価システム1が対象とする安全プログラム10では、変数プログラミングによりプログラムが記述されている。すなわち、非常停止ボタンやライトカーテンから出力される信号の各々は、予め定められた設定に従って、ユニークな内部変数に割り当てられている。安全プログラム10においては、各ファンクションブロックに対して、適切な内部変数を入力または出力に論理的に関連付けることで、目的の動作が実現される。

0059

非常停止FB12,14の各々は、その入力として、ファンクションブロックの処理の有効/無効を設定する「Activate」と、非常停止に係る安全コンポーネントから出力される信号が入力される「S_EStopIn」と、リセット後のプログラム実行を開始するか否かを設定する信号が入力される「S_StartReset」と、安全動作後のリセット種別を設定する信号が入力される「S_AutoReset」と、安全動作後の動作をリセットする信号が入力される「Reset」との、合計5つを有している。

0060

また、非常停止FB12,14の各々は、その出力として、ファンクションブロックが運転状態であるか否か示す信号を出力する「Ready」と、安全動作を指示する信号を出力する「S_EStopOut」と、何らかのエラーの発生を示す信号を出力する「Error」と、発生したエラーの内容に対応するコードを出力する「DiagCode」との、合計4つを有している。

0061

本実施の形態において、安全プログラム10では、正常時における入力値および出力値を「TRUE」(「1」または「真」)とする。すなわち、何らかの条件にて安全動作を行う場合には、当該安全動作のトリガとなる入力値が「FALSE(「0」または「」)」に変化することで、出力値も「FALSE」となり、「FALSE」の出力値によって、対象の装置が安全動作を行う。

0062

入力信号および出力信号の初期値として設定される「TRUE」は、安全プログラム10を実行する安全コントローラに供給される電源が喪失したときと同様のメモリの状態において示される値(すなわち、「FALSE」)とは異なる値が用いられる。すなわち、安全コントローラの不揮発性メモリ電荷などが保持されていない状態において示される値とは異なる値を用いることで、ハードウェア故障などにおいて、安全動作が行われる、いわゆるフェールセーフを実現できる。

0063

なお、正常時および非常時における入力値および出力値に対する値の割り付け設計事項であり、どのようなものであってもよい。但し、上述したようなフェールセーフの観点などからは、正常時の入力値および出力値を「TRUE」とすることが好ましい。

0064

図5に示す安全プログラム10において、非常停止FB12の入力「S_EStopIn」には、非常停止ボタンから出力される信号を示す変数「Var_EmergencyStop1」が割り当てられ、入力「Reset」には、安全コントローラに対するシステムリセットを示す変数「SystemReset」が割り当てられている。

0065

非常停止FB14の入力「S_EStopIn」には、ライトカーテンから出力される信号を示す変数「Var_LightCurtain1」が割り当てられ、入力「Reset」には、安全コントローラに対するシステムリセットを示す変数「SystemReset」が割り当てられている。

0066

非常停止FB12,14の「Activate」にはいずれも「TRUE」、すなわち処理の有効が設定されており、「S_StartReset」にはいずれも「TRUE」、すなわちリセット後のプログラム実行が設定されており、「S_AutoReset」にはいずれも「FALSE」、すなわちリセット種別として「マニュアルリセット」が設定されている。

0067

非常停止FB12,14の各々は、基本的には、「S_EStopIn」に入力される変数が「FALSE」になると、「S_EStopOut」の出力値が「FALSE」に変化する。このような安全動作の後、設定されたリセット種別に従って、「S_EStopIn」に入力される変数、および/または、「Reset」に入力される変数の値に応じて、「S_EStopOut」の出力値をリセットまたは維持する。

0068

非常停止FB12および非常停止FB14のそれぞれのからの「S_EStopOut」は、アンドブロック16に入力され、両者の論理積が出力チェックFB18へ入力される。

0069

出力チェックFB18は、安全動作を司る安全コンポーネントが指令どおりに機能しているかをチェックする論理である。出力チェックFB18は、その入力として、ファンクションブロックの処理の有効/無効を設定する「Activate」と、安全コンポーネントの動作指令を示す信号が入力される「S_OutControl」と、安全コンポーネントの状態値を示す信号が入力される「S_EDM1」および「S_EDM2」と、健全性監視周期を示す値が入力される「MonitoringTime」と、リセット後のプログラム実行を開始するか否かを設定する信号が入力される「S_StartReset」と、安全動作後の状態値をリセットする信号が入力される「Reset」との、合計7つを有している。

0070

また、出力チェックFB18は、その出力として、ファンクションブロックが運転状態であるか否か示す信号を出力する「Ready」と、安全コンポーネントに対する安全動作を指示する最終的な信号を出力する「S_EDM_Out」と、何らかのエラーの発生を示す信号を出力する「Error」と、発生したエラーの内容に対応するコードを出力する「DiagCode」との、合計4つを有している。

0071

出力チェックFB18は、「S_OutControl」への入力値に応じて、「S_EDM_Out」から対象の安全コンポーネントへ与える指令値を変化させるとともに、安全コンポーネントの状態値が指令値と一致しているか否かを判断する。これによって、例えば、安全リレー断線などによる不動、および、溶着などによる常時動作などの不具合を検出することができる。

0072

図5に示す安全プログラム10は、簡単な論理の一例を示すが、より多くの入力信号が与えられえるとともに、より多くの安全コンポーネントに対して指令値を与えるようにしてもよい。

0073

<E.リセット種別>
次に、図5に示す安全プログラム10に含まれる非常停止FBに設定されるリセット種別について説明する。上述したように、非常停止FBに、一例として、「オートリセット」および「マニュアルリセット」を選択的に設定できるようになっている。

0074

「オートリセット」は、例えば、ライトカーテンなどの安全コンポーネントからの入力信号が「FALSE」になっている間だけ安全動作を行うような場合などに好適である。例えば、人が危険エリアに侵入している間だけ装置を停止させ、それ以外の状態では装置を動作させるような状況に用いることができる。このような「オートリセット」を設定することで、作業者に対する安全を確保しつつ、タクトタイムへの影響を低減できる。

0075

「マニュアルリセット」は、一般的なリセット種別であり、非常停止ボタンなどの安全コンポーネントが操作されて、安全動作が行われた後、リセットには所定の復帰操作を必要とするような場合に好適である。例えば、非常停止ボタンが操作されて、装置が作業途中で停止した場合などには、当該装置を初期位置に戻した上で、リセットすることが好ましい。

0076

このように、リセット種別としては、入力信号の値が「FALSE」(第2の入力値)から「TRUE」(第1の入力値)に戻ったときに、対応する出力信号の出力値を連動して元の値に戻すことを示す「オートリセット」(第1の種別)と、予め定められたリセット条件が成立するまでは出力信号の出力値を元の値に戻さないことを示す「マニュアルリセット」(第2の種別)とを含む。

0077

図6は、本実施の形態に従う安全プログラム10に含まれる非常停止FBに設定されるリセット種別を説明するための図である。

0078

図6(A)は、リセット種別として「オートリセット」が設定されている場合を示し、図6(B)は、リセット種別として「マニュアルリセット」が設定されている場合を示す。

0079

図6(A)に示す「オートリセット」では、非常停止FBの入力「S_EStopIn」が「TRUE」から「FALSE」に変化すると、非常停止FBの出力「S_EStopOut」が「TRUE」から「FALSE」に変化する。この「S_EStopOut」の変化によって、安全動作が行われる。その後、非常停止FBの入力「S_EStopIn」が「FALSE」から「TRUE」に復帰すると、リセット動作も併せて実行される。すなわち、非常停止FBの入力「S_EStopIn」に連動して、非常停止FBの出力「S_EStopOut」も変化することになる。

0080

本実施の形態に従う評価システム1では、「オートリセット」が設定されている出力変数については、対応する入力変数の値の変化に連動して、その値が変化することを確認する。

0081

図6(B)に示す「マニュアルリセット」では、非常停止FBの入力「S_EStopIn」が「TRUE」から「FALSE」に変化して、非常停止FBの出力「S_EStopOut」が「TRUE」から「FALSE」に変化した後、非常停止FBの入力「S_EStopIn」が「FALSE」から「TRUE」に復帰したとしても、非常停止FBの出力「S_EStopOut」が「FALSE」に維持される。この状態において、非常停止FBの入力「Reset」が「FALSE」から「TRUE」に変化することで、はじめて非常停止FBの出力「S_EStopOut」は「FALSE」から「TRUE」に変化する。

0082

本実施の形態に従う評価システム1では、「マニュアルリセット」が設定されている出力変数については、安全動作の実行後、対応する入力変数の値が変化したとしても、その変化後の値が維持されること、および、リセットに係る変数が入力されたときには、その値が初期値にリセットされること、を確認する。

0083

<F.機能安全評価の全体手順>
次に、本実施の形態に従う評価システム1が提供する機能安全評価の全体手順について説明する。

0084

図7は、本実施の形態に従う評価システム1が対象とする安全プログラム10の別の一例を示す模式図である。図8は、本実施の形態に従う機能安全評価の手順の一例を説明するタイムチャートである。図8には、図7に示す安全プログラム10を対象に機能安全評価を適用した場合の手順を時系列に示す。図7に示す安全プログラム10において、非常停止FB12の「S_EStopIn」に入力される変数を「入力変数1」とし、非常停止FB14の「S_EStopIn」に入力される変数を「入力変数2」とし、非常停止FB12,14の「Reset」に共通して入力される変数を「リセット変数」とし、て、非常停止FB12の「S_EStopOut」から出力される変数を「出力変数1」とする。なお、非常停止FB14の「S_EStopOut」から出力される変数については、図8には示していない。

0085

図8(A)は、出力変数に対して「オートリセット」が設定されている例を示し、図8(B)は、出力変数に対して「マニュアルリセット」が設定されている例を示す。

0086

本実施の形態に従う機能安全評価は、典型的には、3つのフェーズ初期化フェーズ遮断フェーズ、復帰フェーズ)を含む。初期化フェーズでは、すべての入力変数を予め設定された初期値に設定したときに、出力変数がしかるべき初期状態になっていることを確認する。遮断フェーズでは、設定された入力変数が安全動作を示す値に変化したときに、対応する出力変数がしかるべき値に変化していること、および/または、対応する出力変数が変化していないこと、を確認する。復帰フェーズでは、入力変数および/またはリセット変数がリセット動作を示す値に変化したときに、設定されたリセット種別でリセットされることを確認する。

0087

図8に示す機能安全評価の手順において、出力変数1は、期待値として「TRUE」が設定されている変数であり、入力変数1に対して連動することが予定されている。これに対して、出力変数2は、期待値として「FALSE」が設定されている変数であり、入力変数1に対して連動しないことが予定されている。以下に説明する判断処理は、図1に示す比較機能4および図3に示す比較部158によって実行される。

0088

まず、図8(A)を参照して、リセット種別として「オートリセット」が設定されている場合の機能安全評価の手順について説明する。

0089

初期化フェーズにおいて、評価対象の入力信号の値を初期値(第1の入力値)に設定するとともに、安全プログラム10に従う演算処理によって決定される評価対象の出力信号の値(第4の出力値)が初期値と一致しているか否かが判断される。

0090

具体的には、登録されているすべての入力変数を「TRUE」にセットする(符号202)。併せて、リセット変数を一旦「TRUE」にセットした後(符号204)、「FALSE」にセットする(符号206)。この変化に対応して、登録されているすべての出力変数が「TRUE」であることを確認する(符号208)。いずれかの出力変数が「FALSE」であれば、何らかの異常があると判断される(符号210)。

0091

続く遮断フェーズにおいて、評価対象の入力信号の値を初期値である「TRUE」(第1の入力値)から「FALSE」(第2の入力値)に変化させるとともに、安全プログラム10に従う演算処理によって決定される評価対象の出力信号の値(第1の出力値)が対応する出力期待値と一致しているか否かが判断される。

0092

具体的には、特定の入力変数1を「TRUE」から「FALSE」にセットする(符号212)。この変化に対応して、期待値設定がチェックされている(入力変数1に対する連動することが予定されている)出力変数1が「FALSE」であることを確認する(符号214)。出力変数1が「TRUE」であれば、入力変数1に連動しておらず、何らかの異常があると判断される(符号216)。一方、期待値設定がチェックされていない(入力変数1に対する連動しないことが予定されている)出力変数2が「TRUE」であることを確認する(符号218)。出力変数2が「FALSE」であれば、入力変数1と連動しており、何らかの異常があると判断される(符号220)。

0093

最終の復帰フェーズにおいて、評価対象の入力信号の値を「FALSE」(第2の入力値)から「TRUE」(第1の入力値)に戻すとともに、安全プログラム10に従う演算処理によって決定される評価対象の出力信号の値(第2の出力値)が遮断フェーズでの値(第1の出力値)と一致しているか否かが判断される。

0094

具体的には、入力変数1を「FALSE」から「TRUE」にセットする(符号222)。このとき、リセット変数は「FALSE」のまま維持される。この変化に対応して、登録されているすべての出力変数が「TRUE」であることを確認する(符号224,228)。いずれかの出力変数が「FALSE」であれば、何らかの異常があると判断される(符号226,230)。

0095

このように、「オートリセット」(第1の種別)が設定されている場合には、入力信号の値を「FALSE」から「TRUE」に戻したときの評価対象の出力信号の出力値が「FALSE」(第1の出力値)とは異なっているときに正常と判断する。

0096

次に、図8(B)を参照して、リセット種別として「マニュアルリセット」が設定されている場合の機能安全評価の手順について説明する。「マニュアルリセット」が設定されている場合の機能安全評価の手順のうち、初期化フェーズおよび遮断フェーズについては、図8(A)に示す「オートリセット」の初期化フェーズおよび遮断フェーズとそれぞれ同一であるので、その説明は繰返さない。

0097

復帰フェーズにおいて、入力変数1を「FALSE」から「TRUE」にセットする(符号232)。このとき、リセット変数は「FALSE」のまま維持される。この変化に対応して、この変化に対応して、期待値設定がチェックされている(入力変数1に対する連動することが予定されている)出力変数1が「FALSE」であることを確認する(符号236)。出力変数1が「TRUE」に変化すれば、リセット変数の変化を待たずに入力変数1に連動したことになり、何らかの異常があると判断される(符号238)。

0098

続いて、リセット変数を一旦「TRUE」にセットした後(符号240)、「FALSE」にセットする(符号242)。この変化に対応して、登録されているすべての出力変数が「TRUE」であることを確認する(符号244)。いずれかの出力変数が「FALSE」であれば、何らかの異常があると判断される(符号246)。

0099

このように、「マニュアルリセット」(第2の種別)が設定されている場合には、入力信号の値を「FALSE」から「TRUE」に戻したときの評価対象の出力信号の出力値が「FALSE」(第1の出力値)と一致しているときに正常と判断する。その上で、リセット信号を有効化するとともに、安全プログラム10に従う演算処理によって決定される評価対象の出力信号の値(第3の出力値)が遮断フェーズでの値(第1の出力値)と一致しているか否かが判断される。

0100

<G.評価条件の設定>
本実施の形態に従う評価システム1は、図8に示すような機能安全評価を自動的に実行する。以下、機能安全評価の自動実行に必要な評価条件20の設定方法などについて説明する。

0101

図9は、本実施の形態に従う評価システム1において評価条件20を設定するためのユーザインターフェイス画面の一例を示す模式図である。評価システム1は、図9に示すような設定画面300を表示するとともに、設定画面300に対するユーザからの設定を受付ける。

0102

より具体的には、設定画面300は、機能安全評価の自動実行を指示するRUNボタン302と、機能安全評価の実行結果を表示する表示ボタン304と、評価対象の変数を登録するための変数登録ボタン306と、リセット変数に用いられる変数を設定するリセット変数設定エリア308と、入力変数に係る設定値を表示する入力設定表示エリア310と、出力変数に係る設定値を表示する出力設定表示エリア320と、入力変数に対する出力変数の期待値(以下、「出力期待値」とも称す。)を設定する期待値設定エリア330とを含む。

0103

リセット変数設定エリア308には、評価対象の安全プログラムに含まれるファンクションブロックにリセット信号として共通して入力される変数が設定される。すなわち、評価条件20は、オートリセットの予め定められたリセット条件としてのリセット信号の設定を含む。なお、図9に示す設定画面300では、単一のリセット信号が共通に入力されるようになっているが、ファンクションブロック毎に別々のリセット信号を用いるようにしてもよい。

0104

入力設定表示エリア310では、対象の安全プログラムに含まれる入力変数に係る情報の登録および表示が可能になっている。出力設定表示エリア320では、対象の安全プログラムに含まれる出力変数に係る情報の登録および表示が可能になっている。入力設定表示エリア310および出力設定表示エリア320での変数登録については、変数登録ボタン306が選択されることで有効化される。

0105

入力設定表示エリア310は、予め設定されている入力変数の変数名を表示する変数名表示欄312と、対応する入力変数についてのコメントを表示するコメント表示欄314と、対応する入力変数についてのリセット種別を表示するリセット種別表示欄316と、対応する入力変数についての入力タイプを表示する入力タイプ表示欄318とを含む。

0106

出力設定表示エリア320は、予め設定されている出力変数の変数名を表示する変数名表示欄322と、対応する出力変数についてのコメントを表示するコメント表示欄324とを含む。

0107

期待値設定エリア330は、本実施の形態に従う機能安全評価に必要な評価条件を受付ける。すなわち、期待値設定エリア330の各行が機能安全評価の各条件となる。具体的には、期待値設定エリア330は、対象となる入力変数を表示する入力変数表示エリア334と、対応する入力変数についてのコメントを表示するコメント表示欄336と、対応する入力変数についてのリセット種別を表示するリセット種別表示欄338と、対応する入力変数についての各出力変数の出力期待値を設定する期待値設定欄340とを含む。

0108

期待値設定欄340は、1つの入力変数に対して、対象となる出力変数の数だけ出力値(出力期待値)が設定されるようになっている。図9に示す設定画面300の例では、出力設定表示エリア320に表示されている4つの出力変数に対応して、4つの欄が設けられており、各欄に出力期待値を設定できるようになっている。ユーザは、事前の安全設計に基づいて、期待値設定欄340にしかるべき値を設定することになる。なお、図9の期待値設定欄340において、「0」は、対応の入力変数が「FALSE」になった場合に、対応の出力変数も「FALSE」へ変化することを意味し、「1」は、対応の入力変数が「FALSE」になった場合であっても、対応の出力変数が「TRUE」を維持することを意味する。

0109

例えば、ある非常停止ボタンAが危険エリアAに配置されている装置Aの安全動作をトリガするものであり場合には、当該非常停止ボタンAからの入力信号に対応する入力変数に関連付けて、危険エリアAにある装置Aの非常停止を司る安全リレーへの指令を示す出力変数については、安全動作を示す「FALSE」、つまり「0」が出力期待値として設定される。一方で、非常停止ボタンAは危険エリアBに向けられるものではなく、危険エリアBには別の非常停止ボタンBが設けられる場合には、非常停止ボタンAに対する操作によって、危険エリアBの装置Bが停止することは予定されていない。そのため、当該非常停止ボタンAからの入力信号に対応する入力変数に関連付けて、危険エリアBにある装置Bの非常停止を司る安全リレーへの指令を示す出力変数については、安全動作しないことを示す「TRUE」、つまり「1」が出力期待値として設定される。このように、期待値設定欄340において、入力変数の各々とそれぞれの出力変数との間の関係が設定される。

0110

期待値設定エリア330は、各入力変数を機能安全評価の対象とするか否かを設定するためのチェックボックス332を含む。本実施の形態に従う機能安全評価においては、対応するチェックボックス332がチェックされた入力変数の値(入力値)を変化させるとともに、各出力変数の値が期待値設定欄340に設定された期待値と一致しているか否かが判断される。

0111

図9に示すように、期待値設定欄340は、評価対象の入力信号と、評価対象の出力信号と、評価対象の入力信号の値の変化に対応して出力されるべき評価対象の出力信号の値である出力期待値とを含む、評価条件20を受付ける。通常、評価条件20としては、入力信号と、出力信号と、出力期待値との組が複数含まれ得る。

0112

図9を参照して説明したように、本実施の形態に従う評価システム1は、評価対象の入力信号と、評価対象の出力信号と、評価対象の入力信号の値の変化に対応して出力されるべき評価対象の出力信号の値である出力期待値とを含む、評価条件を受付ける。

0113

次に、評価条件の一部である、図9に示す設定画面300に含まれる期待値設定欄340への出力期待値の設定を容易化する機能の一例について説明する。

0114

本実施の形態に従う評価システム1は、出力期待値の設定および再利用を容易化できるように、一般的なフォーマット(典型的には、CSV(Comma-Separated Values)形式やテキスト形式)に従って記述された出力期待値のデータの外部読み込みが可能である。また、予め設定した出力期待値を当該一般的なフォーマットのデータとして出力することも可能である。

0115

図10は、本実施の形態に従う評価システムにおいて出力期待値のエクスポートおよびインポート処理を説明するための図である。例えば、ユーザが設定画面300のエクスポートボタン342(図9)を選択すると、設定画面300の期待値設定欄340に設定されている出力期待値の一覧がCSV形式のデータ(外部出力データ346)として外部出力/保存される。

0116

また、ユーザが設定画面300のインポートボタン344(図9)を選択すると、予め用意されていたCSV形式のデータ(外部出力データ346)が読み込まれ、設定画面300の期待値設定欄340に各値が設定される。

0117

このように、出力期待値が一般的なフォーマットのデータとして外部出力および外部読み込みできる機能が実装されることで、他のアプリケーションなどとの連携も強化され、機能安全の評価をより迅速かつ容易に行うことができる。

0118

図10に示すファイルを用いた他のアプリケーションとの連携に加えて、他のアプリケーションで設定した出力期待値を直接用いるようにしてもよい。

0119

図11は、本実施の形態に従う評価システムにおいて他のアプリケーションとの連携によって出力期待値を設定する処理を説明するための図である。図11を参照して、例えば、表計算アプリケーション400上で期待値設定欄340に設定する出力期待値を示す表を作成し、この作成した対象となる範囲402を選択およびコピーし、設定画面300の期待値設定欄340上でペースト(いわゆる、コピー&ペースト操作)を行うことで、ユーザが所望する出力期待値を設定できる。

0120

なお、図11には、典型例として、表計算アプリケーションとの連携について例示したが、これに限られることなく、コピー&ペースト操作が可能なアプリケーションであれば、どのようなアプリケーションとも連携できる。

0121

このように、他のアプリケーションとの連携により、出力期待値をより容易に設定できる。

0122

<H.機能安全評価の処理手順>
次に、本実施の形態に従う機能安全評価の処理手順について説明する。図9に示すような設定画面300において、評価対象の入力変数と対応する出力期待値との組が設定されると、以下のような手順に従って、対象の安全プログラムの機能安全が評価される。

0123

図12および図13は、本実施の形態に従う評価システム1において実行される機能安全評価の処理手順を示すフローチャートである。図12および図13に示す各ステップは、典型的にはプロセッサ102が機能安全評価プログラム126(いずれも図2)を実行することで実現される。なお、図9に示す評価条件が予め設定されているとする。

0124

図12および図13を参照して、まず、評価対象の安全プログラムが取得され、当該取得された安全プログラムの実行モジュールが生成される(ステップS2)。そして、エミュレータ(または、外部の安全コントローラ)にて実行モジュールの実行が開始される(ステップS4)。つまり、1または複数の入力信号に基づいて、安全プログラムに従う演算を実行することで、対応する1または複数の出力信号の値を決定する処理が繰返し実行される。そして、評価処理が開始される。

0125

まず、評価処理の初期化フェーズが実行される。初期化フェーズでは、評価対象の入力信号の値を初期値である「TRUE」(第1の入力値)に設定するとともに、安全プログラムに従う演算により決定される評価対象の出力信号の出力値が初期値である「FALSE」と一致しているか否かを判断する処理が実行される。

0126

具体的には、エミュレータに入力されるすべての入力変数を初期値である「TRUE」にセットする(ステップS10)。安全プログラムの実行モジュールをエミュレータにて実行する場合には、内部インターフェイス(典型的には、API(Application Programming Interface))を介して、設定された入力変数の値が当該エミュレータへ与えられる。一方、安全プログラムの実行モジュールを外部の安全コントローラにて実行する場合には、ローカル通信インターフェイス116などを介して入力変数および出力変数が遣り取りされる。

0127

続いて、リセット変数を「TRUE」に一旦セットした後、「FALSE」に戻す(ステップS12)。その後、評価対象である1または複数の出力変数の値がいずれも「TRUE」であるか否かが判断される(ステップS14)。

0128

評価対象であるいずれかの出力変数の値が「FALSE」である場合(ステップS14においてNOの場合)には、「FALSE」である出力変数を特定するとともに、初期化フェーズでのエラーメッセージを出力する(ステップS16)。この場合、以降の機能安全評価の処理は中止される。初期化フェーズでのエラーメッセージとしては、例えば、「出力変数(XXX)がリセット時にFALSEとなっています」といったものが用いられる。

0129

評価対象であるいずれの出力変数の値も「TRUE」である場合(ステップS14においてYESの場合)には、以下の遮断フェーズおよび復帰フェーズの処理が実行される。期待値設定エリア330(評価条件20)に設定される入力変数毎に、遮断フェーズおよび復帰フェーズの処理が繰返される。

0130

具体的には、まず、期待値設定エリア330に設定されている入力変数のうち、対応するチェックボックス332がチェックされている入力変数の1つを選択する(ステップS20)。そして、評価対象の入力信号の値を初期値である「TRUE」(第1の入力値)から「FALSE」(第2の入力値)に変化させるとともに、安全プログラムに従う演算により決定される評価対象の出力信号の第1の出力値が出力期待値と一致しているか否かを判断する処理が実行される。

0131

具体的には、選択されている入力変数を「FALSE」にセットし(ステップS22)、評価対象である1または複数の出力変数の値を取得する(ステップS24)。つまり、選択されている入力変数が遮断される。続いて、選択されている入力変数に対応する、評価対象のそれぞれの出力変数についての出力期待値と、取得したそれぞれの出力変数の値とが一致するか否かを判断する(ステップS26)。すなわち、出力期待値として「FALSE」が設定されている出力変数については、取得された値が「FALSE」であるか否かが判断され、出力期待値として「TRUE」が設定されている出力変数については、取得された値が「TRUE」であるか否かが判断される。

0132

いずれかの出力変数について取得した値と出力期待値とが一致しない場合(ステップS26においてNOの場合)には、当該出力期待値と一致しない出力変数を特定するとともに、遮断フェーズでのエラーメッセージを出力する(ステップS28)。この場合には、後続の復帰フェーズはスキップされ、ステップS60の処理が実行される。遮断フェーズでのエラーメッセージとしては、例えば、「出力変数(XXX)が出力期待値と一致しません」といったものが用いられる。

0133

一方、評価対象のそれぞれの出力変数についての出力期待値と、取得したそれぞれの出力変数の値とがすべて一致する場合(ステップS26においてYESの場合)には、続いて、復帰フェーズの処理が実行される。すなわち、評価対象の入力信号の値を「FALSE」(第2の入力値)から「TRUE」(第1の入力値)に戻すとともに、安全プログラムに従う演算により決定される評価対象の出力信号の第2の出力値が第1の出力値と一致しているか否かを判断する処理が実行される。

0134

具体的には、選択されている入力変数に設定されているリセット種別が「オートリセット」および「マニュアルリセット」のいずれであるかが判断される(ステップS30)。

0135

リセット種別として「オートリセット」が設定されている場合(ステップS30において「オートリセット」の場合)には、選択されている入力変数を「TRUE」に戻し(ステップS32)、評価対象である1または複数の出力変数の値を取得する(ステップS34)。つまり、選択されている入力変数を復帰させる。続いて、選択されている入力変数に対応する、評価対象であるいずれの出力変数もその値が「TRUE」であるか否かを判断する(ステップS36)。すなわち、選択されている入力変数の復帰に伴って、対応するすべての出力変数も復帰しているか否かが判断される。

0136

評価対象であるいずれかの出力変数の値が「FALSE」のままである場合(ステップS36においてNOの場合)には、「FALSE」のままである出力変数を特定するとともに、復帰フェーズでのエラーメッセージを出力し(ステップS38)、ステップS60の処理が実行される。復帰フェーズでのエラーメッセージとしては、例えば、「出力変数(XXX)が自動復帰しませんでした」といったものが用いられる。

0137

一方、評価対象であるいずれの出力変数もその値が「TRUE」である場合(ステップS36においてYESの場合)には、選択されている入力変数については、機能安全評価のすべてに合格であることを出力し(ステップS40)、ステップS60の処理が実行される。

0138

一方、リセット種別として「マニュアルリセット」が設定されている場合(ステップS30において「マニュアルリセット」の場合)には、選択されている入力変数を「TRUE」に戻し(ステップS42)、評価対象である1または複数の出力変数の値を取得する(ステップS44)。つまり、選択されている入力変数を復帰させる。続いて、選択されている入力変数に対応する評価対象の出力変数のうち、出力期待値がいずれも「FALSE」に設定されている出力変数の値が「FALSE」のままであるか否かを判断する(ステップS46)。すなわち、「マニュアルリセット」の対象となっている出力変数の値が、選択されている入力変数の復帰に伴って復帰していないことが判断される。

0139

出力期待値がいずれも「FALSE」に設定されているいずれかの出力変数の値が「TRUE」である場合(ステップS46においてNOの場合)には、「TRUE」である出力変数を特定するとともに、復帰フェーズでのエラーメッセージを出力し(ステップS48)、ステップS60の処理が実行される。復帰フェーズでのエラーメッセージとしては、例えば、「出力変数(XXX)が自動復帰しました」といったものが用いられる。

0140

出力期待値がいずれも「FALSE」に設定されているすべての出力変数の値が「FALSE」である場合(ステップS46においてYESの場合)には、リセット信号を有効化するとともに、安全プログラムに従う演算により決定される評価対象の出力信号の第3の出力値が第1の出力値と一致しているか否かを判断する処理が実行される。すなわち、リセット変数を一旦「TRUE」にセットした後、「FALSE」に戻し(ステップS50)、評価対象である1または複数の出力変数の値を取得する(ステップS52)。つまり、リセット変数を活性化する。続いて、評価対象である1または複数の出力変数の値がいずれも「TRUE」であるか否かが判断される(ステップS54)。

0141

評価対象であるいずれかの出力変数の値が「FALSE」である場合(ステップS54においてNOの場合)には、「FALSE」である出力変数を特定するとともに、復帰フェーズでのエラーメッセージを出力する(ステップS56)。復帰フェーズでのエラーメッセージとしては、例えば、「出力変数(XXX)がリセット時にFALSEとなっています」といったものが用いられる。

0142

評価対象であるいずれの出力変数の値も「TRUE」である場合(ステップS54においてYESの場合)には、選択されている入力変数については、機能安全評価のすべてに合格であることを出力し(ステップS58)、ステップS60の処理が実行される。

0143

ステップS60において、期待値設定エリア330に設定されている入力変数のうち、対応するチェックボックス332がチェックされている入力変数のすべてについて評価が実行されたか否かが判断される(ステップS60)。チェックされているいずれかの入力変数についての評価が未だ実行されていない場合(ステップS60においてNOの場合)には、評価が未だ実行されていないいずれかの入力変数を選択し(ステップS62)、ステップS22以下の処理が再度実行される。

0144

チェックされているすべての入力変数についての評価が実行されている場合(ステップS60においてYESの場合)には、機能安全評価の処理は終了する。

0145

<I.機能安全評価の評価結果>
次に、図12および図13に示す機能安全評価の評価結果について説明する。

0146

本実施の形態に従う評価システム1は、評価対象の入力信号に関連付けて、機能安全評価の評価結果を出力する機能を有している。

0147

図14は、本実施の形態に従う評価システム1において実行される機能安全評価の評価結果の一例を示す模式図である。図14を参照して、評価結果画面350は、対象となった入力変数の変数名を表示する変数名表示欄354と、対応する入力変数についてのコメントを表示するコメント表示欄356と、対応する入力変数についてのリセット種別を表示するリセット種別表示欄358と、対応する入力変数についての出力期待値の組み合わせを表示する期待値設定欄360と、評価結果を示す結果表示欄372と、評価結果に対応するコメントを表示する結果コメント表示欄374と、評価実行日時を示す日時表示欄376とを含む。

0148

結果表示欄372には、上述の評価によって、合格したものについては「Passed」が表示され、何らかのエラーが生じたものについては「Failed」が表示される。さらに、何らかのエラーが生じた場合には、期待値設定欄360において、そのエラーが生じた出力変数の表示態様が異なったものとされる。結果コメント表示欄374には、そのエラーに対応するエラーメッセージが表示される。すなわち、いずれのフェーズにおいて異常であると判断されたのかを特定する情報が判断結果に含められる。また、異常であると判断されたフェーズに応じたコメントが判断結果に含められる。

0149

図14に示すように、一般的には、評価条件20は、評価対象の入力信号と、評価対象の出力信号と、出力期待値とからなる組を複数含む。そして、上述したような評価処理は各組について実行される。いずれの組の入力信号について異常であると判断されたのかを特定する情報が判断結果に含められる。

0150

また、図14に示すように、一般的には、評価条件20は、評価対象の入力信号と、複数の評価対象の出力信号と、それぞれ対応する複数の出力期待値とからなる組を含む。そして、上述したような、評価処理は複数の出力期待値の各々について実行される。いずれの出力信号について異常であると判断されたのかを特定する情報が判断結果に含められる。

0151

このような出力期待値を基準として、いずれかの出力変数にエラーが生じると、当該エラーの内容が出力期待値と対応付けて表示されることで、安全プログラムの機能安全評価をより効率的に行うことができる。

0152

<J.評価条件の設定支援>
次に、図9に示すような設定画面300にて入力される評価条件の設定を支援するための構成について説明する。以下に説明する処理は、図1に示す解析・抽出機能6によって提供される。

0153

本実施の形態に従う評価条件は、1または複数の入力信号(あるいは、入力変数)の設定、1または複数の出力信号(あるいは、出力変数)、および、出力期待値を含む。ユーザがこれらの情報を任意に設定してもよいが、安全プログラムのステップ数(プログラム量)が大きくなると、対象とすべき入力信号および出力信号のすべてを設定することは、比較的手間を要する。そこで、本実施の形態に従う評価システム1において、評価条件の設定を支援する機能を実装してもよい。

0154

図15および図16は、本実施の形態に従う評価システム1が提供する評価条件の設定支援機能を説明する模式図である。

0155

図15を参照して、安全プログラム10に含まれる命令のうち、対象機器を安全が保たれるように動作させるための演算処理に向けられた命令を抽出する処理が実行される。続いて、安全プログラム10から抽出された命令に関連付けられている入力信号および出力信号を抽出する処理が実行される。このように、安全プログラム10に含まれる安全動作に係る命令を抽出し、その抽出した命令に設定されている変数などを抽出することができる。そして、図9に示すように、設定画面300にて、抽出された入力信号と出力信号とを対応付けて表示するとともに、表示された出力信号について、対象機器を安全が保たれるように動作させるための値である出力期待値の設定を受付ける処理が実行される。最終的に、図13および図14に示すように、抽出された入力信号の値を変化させるとともに、当該入力信号の値の変化に応じて、安全プログラムに従う演算により算出される出力信号の値が、設定された出力期待値と一致するか否かを判断することで、機能安全が評価される。

0156

安全プログラム10は、他のプログラムの一部として組み込まれている場合もあり、また、安全動作以外の処理に係る命令を含む場合もある。そこで、安全プログラム10に含まれる安全動作に係る命令(図15に示す例では、ファンクションブロック)を選択的に抽出することが好ましい。

0157

特に、何らかの規約に準拠して作成された安全プログラムについては、安全動作に用いられるファンクションブロックの仕様などは、メーカを問わず共通化されており、例えば、非常停止FBおよび出力チェックFBが安全プログラムから抽出される。そして、抽出されたファンクションブロックに入力または出力として設定されている変数が評価条件に用いられる変数として抽出される。また、入力信号を抽出した命令に対して設定されているリセット種別も併せて抽出されてもよい。

0158

図15に示す例では、対象の入力変数として、非常停止FB12の「S_EStopIn」に割り当てられている変数「Var_EmergencyStop1」が抽出され、非常停止FB14の「S_EStopIn」に割り当てられている変数「Var_EmergencyStop2」が抽出される。この入力変数の抽出に併せて、対象のファンクションブロックに設定されているリセット種別の値が抽出される。図15に示す例では、非常停止FB12およびFB14の「S_AutoReset」に設定されている値である「FALSE」から、「マニュアルリセット」であることが判断される。

0159

また、対象の出力変数として、出力チェックFB18の「S_EDM_OUT」に割り当てられている変数「Var_Safety_Relay1」が抽出される。

0160

このように、PLCopen(登録商標)などが公開している規約に準拠してファンクションブロックを用いて安全プログラムが記述されている場合には、安全プログラムに含まれる非常停止ファンクションブロック(図15に示す例では、非常停止FB12,14)が抽出される。そして、非常停止ファンクションブロックに割り当てられている入力信号が抽出される。さらに、抽出した非常停止ファンクションブロックの出力先に接続されている他のファンクションブロック(図15に示す例では、出力チェックFB18)を辿って最終出力される信号が対象の出力信号として抽出される。

0161

図16に示すように設定された変数について、上述のような処理によって、機能安全評価の対象となる入力変数および出力変数が抽出される。そして、抽出された入力変数および出力変数の組み合わせが、設定画面300の期待値設定エリア330(図9)などに表示される。

0162

通常、複数の入力信号が抽出されるので、図9の設定画面300に示すように、これらの抽出された入力信号が複数表示されるとともに、抽出された入力信号に関連付けられる複数の出力信号が各入力信号に対応付けて表示される。

0163

図17は、本実施の形態に従う評価システム1が提供する評価条件の設定支援機能に係る処理手順を示すフローチャートである。図17に示す各ステップは、典型的にはプロセッサ102が機能安全評価プログラム126(いずれも図2)を実行することで実現される。

0164

図17を参照して、まず、評価対象の安全プログラムが取得され、当該取得された安全プログラムに対する解析(パース)が実行される(ステップS100)。続いて、安全プログラムに対する解析結果に基づいて、安全プログラムに含まれる安全動作に係る命令(ファンクションブロック:例えば、非常停止FBおよび出力チェックFB)を抽出し(ステップS102)、抽出した命令に割り当てられている入力変数を抽出する(ステップS104)。この入力変数の抽出に併せて、対象の命令に設定されているリセット種別の情報を抽出する(ステップS106)。さらに、抽出した命令に割り当てられている出力変数を抽出する(ステップS108)。

0165

これらの抽出された、入力変数、入力変数に対応するリセット種別、出力変数の情報を、図9に示す設定画面300の期待値設定欄340に反映する(ステップS110)。そして、処理は終了する。

0166

このような評価条件の設定を支援するための処理の実行後、ユーザからの評価条件の設定を受付ける。

0167

<K.利点>
本実施の形態によれば、安全プログラムに含まれる入力信号と、当該入力信号に対応付けられた1または複数の出力信号との組み合わせを規定するとともに、各組み合わせにおける各出力信号値の期待値(出力期待値)が設定される。また、各入力信号に対応付けられたリセット種別も設定される。その上で、入力信号の値(入力値)を3つのフェーズ(初期化フェーズ、遮断フェーズ、復帰フェーズ)に応じて変化させるとともに、各フェーズにおいて算出される出力値が、予め設定された出力期待値およびリセット種別に応じた値であるか否かが判断されることで、安全プログラムの総合的な機能安全が自動的に評価される。そのため、安全プログラムの機能安全をより容易に評価できる。

0168

また、本実施の形態によれば、いずれかのフェーズにおいて異常が発生すると、当該異常が発生したフェーズ、および、当該異常が発生した出力信号が特定されるとともに、機能安全の評価結果として出力される。そのため、安全プログラムの機能安全に何らかの不具体があっても、容易にその原因および解決方法を特定することができる。

0169

また、本実施の形態によれば、安全プログラムに含まれる入力信号、出力信号、リセット種別が自動的に抽出されるので、ユーザは、出力期待値のみを設定すれば、機能安全の評価を容易に行うことができる。

0170

今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。

0171

1 評価システム、2プログラム実行機能、4比較機能、6解析・抽出機能、10安全プログラム、12,14非常停止FB、16アンドブロック、18出力チェックFB、20評価条件、30機能安全評価結果、102プロセッサ、104メモリ、106 入力部、108 出力部、112光学ドライブ、114記録媒体、116ローカル通信インターフェイス、118内部バス、120補助記憶装置、122実行モジュール生成プログラム、124エミュレータプログラム、126 機能安全評価プログラム、130 各種設定、152 実行モジュール生成部、154エミュレータ、156入力値変更部、158比較部、160結果出力部、170 評価条件生成部、300 設定画面、400表計算アプリケーション。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

該当するデータがありません

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

該当するデータがありません

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ