(57)【要約】【課題】セーフティコンポーネントの導入後のメンテナンスを適切に行う機構が要望されている。【解決手段】セーフティプログラムを実行するセーフティコントローラを含むセーフティシステムが提供される。セーフティシステムは、セーフティコントローラに入力される１または複数の入力信号のうち、予め選択された入力信号の値である入力値を所定期間に亘って収集する収集手段と、収集された所定期間に亘る入力値に基づいて、セーフティプログラムの所定期間に亘る挙動を再現するとともに、所定期間内の指定された時点におけるセーフティプログラムの動作状態を視覚的に表現する視覚化手段とを含む。【選択図】図８
2018005453.tif 000002
【特許請求の範囲】
【請求項１】
セーフティプログラムを実行するセーフティコントローラを含むセーフティシステムであって、
前記セーフティコントローラに入力される１または複数の入力信号のうち、予め選択された入力信号の値である入力値を所定期間に亘って収集する収集手段と、
前記収集された所定期間に亘る入力値に基づいて、前記セーフティプログラムの前記所定期間に亘る挙動を再現するとともに、前記所定期間内の指定された時点における前記セーフティプログラムの動作状態を視覚的に表現する視覚化手段とを備える、セーフティシステム。
【請求項２】
前記視覚化手段は、前記セーフティプログラムに含まれる命令の組み合わせを図式化して表示する手段を含む、請求項１に記載のセーフティシステム。
【請求項３】
前記視覚化手段は、前記入力値ならびに前記入力値に応じて算出される内部値および出力値に応じて、前記図式化された表示に含まれる対応する要素の表示態様を変化させる手段をさらに含む、請求項２に記載のセーフティシステム。
【請求項４】
前記視覚化手段は、前記セーフティプログラムの動作状態とともに、前記収集された所定期間に亘る入力値を示すタイムチャートを出力する、請求項１〜３のいずれか１項に記載のセーフティシステム。
【請求項５】
前記収集手段は、さらに、前記セーフティコントローラから出力される１または複数の出力信号のうち、予め選択された出力信号の値である出力値を前記所定期間に亘って収集し、
前記視覚化手段は、前記収集された所定期間に亘る出力値を、前記セーフティプログラムの再現により算出された出力値と並べて表示する、請求項１〜４のいずれか１項に記載のセーフティシステム。
【請求項６】
前記セーフティプログラムに含まれる安全機能に関する命令に用いられている入力信号を抽出するとともに、前記抽出された入力信号に対する選択に応じて、前記収集手段による収集対象となる入力信号を設定する第１の設定支援手段をさらに備える、請求項１〜５のいずれか１項に記載のセーフティシステム。
【請求項７】
前記第１の設定支援手段は、
前記抽出された入力信号の少なくとも一部からなる入力信号の各々を、選択を受付けるオブジェクトとともに一覧表示する手段と、
選択された前記オブジェクトに対応する入力信号を前記収集対象に設定する手段とを含む、請求項６に記載のセーフティシステム。
【請求項８】
前記セーフティプログラムに含まれる安全機能に関する命令に用いられている入力信号および出力信号の少なくとも一方を抽出するとともに、当該抽出結果に対する選択に応じて、収集条件を設定する第２の設定支援手段をさらに備える、請求項１〜７のいずれか１項に記載のセーフティシステム。
【請求項９】
前記収集手段は、予め定められた収集条件が成立すると、前記所定期間に亘る入力値の生成を開始する、請求項１〜８のいずれか１項に記載のセーフティシステム。
【請求項１０】
前記収集手段は、予め定められた収集条件が成立すると、当該収集条件が成立した時点より以前の入力値も含めて、前記所定期間に亘る入力値を生成する、請求項１〜８のいずれか１項に記載のセーフティシステム。
【請求項１１】
前記視覚化手段は、前記セーフティプログラムのうち、前記収集された所定期間に亘る入力値に関連する部分のみを表示する、請求項１〜１０のいずれか１項に記載のセーフティシステム。
【請求項１２】
前記セーフティコントローラは入力信号を受信するためのセーフティ入力ユニットを備え、
前記セーフティ入力ユニットは、１または複数の入力信号が示す複数の値から予め定められた規則に従って前記セーフティコントローラが扱う入力値を決定する入力処理部を含み、
前記収集手段は、前記セーフティ入力ユニットの前記入力処理部が入力信号を決定するために用いた値についても収集する、請求項１〜１１のいずれか１項に記載のセーフティシステム。
【請求項１３】
前記収集手段は、前記セーフティコントローラに接続された制御装置に実装される、請求項１〜１２のいずれか１項に記載のセーフティシステム。
【請求項１４】
セーフティプログラムを実行するセーフティコントローラを含むセーフティシステムにおいて、コンピュータにより実行されるプログラムであって、前記コンピュータに
前記セーフティコントローラに入力される１または複数の入力信号のうち、予め選択された入力信号の値である入力値を所定期間に亘って収集した結果を取得するステップと、
前記収集された所定期間に亘る入力値に基づいて、前記セーフティプログラムの前記所定期間に亘る挙動を再現するとともに、前記所定期間内の指定された時点における前記セーフティプログラムの動作状態を視覚的に表現するステップとを実行させる、プログラム。
【請求項１５】
セーフティプログラムを実行するセーフティコントローラを含むセーフティシステムで実行される方法であって、
前記セーフティコントローラに入力される１または複数の入力信号のうち、予め選択された入力信号の値である入力値を所定期間に亘って収集するステップと、
前記収集された所定期間に亘る入力値に基づいて、前記セーフティプログラムの前記所定期間に亘る挙動を再現するとともに、前記所定期間内の指定された時点における前記セーフティプログラムの動作状態を視覚的に表現するステップとを備える、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、セーフティコンポーネントの性能を維持するための機構などに関する。
【背景技術】
【０００２】
多くの製造現場で使用される設備や機械を安全に使用するためには、国際規格に従う安全機器（セーフティコンポーネント）を使用しなければならばない。この安全機器は、ロボットなどの自動的に動く装置によって人の安全が脅かされることの防止を目的としている。このような安全機器は、セーフティプログラムを実行するセーフティコントローラをはじめとして、人の存在や進入を検知する検知機器、非常時の操作を受付ける入力機器、実際に設備や機械を停止させる出力機器などを含む。
【０００３】
このような製造現場での安全を確保する技術の一つとして、例えば、特開２００５−０３１７７８号公報（特許文献１）は、入力機器からの入力に基づいて、安全出力制御対象に安全出力を与えて機械設備の運転を制御するセーフティコントローラを開示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−０３１７７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
設備や機械にセーフティコンポーネントを配置することで、作業者などの安全を確保することができるが、一方で、セーフティコンポーネントの誤動作によって、生産性を低下させる可能性もある。ここでいう誤動作とは、セーフティコンポーネントが本来動作すべきではない状況や外部要因による意図しない状況で、動作するような状態を意味する。
【０００６】
セーフティコンポーネントを導入する際には、設計・製作段階、設置段階、試運転段階といった各フェーズで十分に検討されているが、導入後に当初想定していた環境が変化するような場合も想定される。そのため、セーフティコンポーネントを導入後にも、適切なメンテナンスが必要である。
【０００７】
そのため、セーフティコンポーネントの導入後のメンテナンスを適切に行う機構が要望されている。すなわち、セーフティコンポーネントの性能を維持するための方法が提供される。
【課題を解決するための手段】
【０００８】
本発明のある局面に従えば、セーフティプログラムを実行するセーフティコントローラを含むセーフティシステムが提供される。セーフティシステムは、セーフティコントローラに入力される１または複数の入力信号のうち、予め選択された入力信号の値である入力値を所定期間に亘って収集する収集手段と、収集された所定期間に亘る入力値に基づいて、セーフティプログラムの所定期間に亘る挙動を再現するとともに、所定期間内の指定された時点におけるセーフティプログラムの動作状態を視覚的に表現する視覚化手段とを含む。
【０００９】
好ましくは、視覚化手段は、セーフティプログラムに含まれる命令の組み合わせを図式化して表示する手段を含む。
【００１０】
好ましくは、視覚化手段は、入力値ならびに入力値に応じて算出される内部値および出力値に応じて、図式化された表示に含まれる対応する要素の表示態様を変化させる手段をさらに含む。
【００１１】
好ましくは、視覚化手段は、セーフティプログラムの動作状態とともに、収集された所定期間に亘る入力値を示すタイムチャートを出力する。
【００１２】
好ましくは、収集手段は、さらに、セーフティコントローラから出力される１または複数の出力信号のうち、予め選択された出力信号の値である出力値を所定期間に亘って収集する。視覚化手段は、収集された所定期間に亘る出力値を、セーフティプログラムの再現により算出された出力値と並べて表示する。
【００１３】
好ましくは、セーフティシステムは、セーフティプログラムに含まれる安全機能に関する命令に用いられている入力信号を抽出するとともに、抽出された入力信号に対する選択に応じて、収集手段による収集対象となる入力信号を設定する第１の設定支援手段をさらに含む。
【００１４】
好ましくは、第１の設定支援手段は、抽出された入力信号の少なくとも一部からなる入力信号の各々を、選択を受付けるオブジェクトとともに一覧表示する手段と、選択されたオブジェクトに対応する入力信号を収集対象に設定する手段とを含む。
【００１５】
好ましくは、セーフティシステムは、セーフティプログラムに含まれる安全機能に関する命令に用いられている入力信号および出力信号の少なくとも一方を抽出するとともに、抽出結果に対する選択に応じて、収集条件を設定する第２の設定支援手段をさらに含む。
【００１６】
好ましくは、収集手段は、予め定められた収集条件が成立すると、所定期間に亘る入力値の生成を開始する。
【００１７】
好ましくは、収集手段は、予め定められた収集条件が成立すると、当該収集条件が成立した時点より以前の入力値も含めて、所定期間に亘る入力値を生成する。
【００１８】
好ましくは、視覚化手段は、セーフティプログラムのうち、収集された所定期間に亘る入力値に関連する部分のみを表示する。
【００１９】
好ましくは、セーフティコントローラは入力信号を受信するためのセーフティ入力ユニットを含む。セーフティ入力ユニットは、１または複数の入力信号が示す複数の値から予め定められた規則に従ってセーフティコントローラが扱う入力値を決定する入力処理部を含む。収集手段は、セーフティ入力ユニットの入力処理部が入力信号を決定するために用いた値についても収集する。
【００２０】
好ましくは、収集手段は、セーフティコントローラに接続された制御装置に実装される。
【００２１】
本発明の別の局面に従えば、セーフティプログラムを実行するセーフティコントローラを含むセーフティシステムにおいて、コンピュータにより実行されるプログラムが提供される。プログラムは、コンピュータに、セーフティコントローラに入力される１または複数の入力信号のうち、予め選択された入力信号の値である入力値を所定期間に亘って収集した結果を取得するステップと、収集された所定期間に亘る入力値に基づいて、セーフティプログラムの所定期間に亘る挙動を再現するとともに、所定期間内の指定された時点におけるセーフティプログラムの動作状態を視覚的に表現するステップとを実行させる。
【００２２】
本発明のさらに別の局面に従えば、セーフティプログラムを実行するセーフティコントローラを含むセーフティシステムで実行される方法が提供される。方法は、セーフティコントローラに入力される１または複数の入力信号のうち、予め選択された入力信号の値である入力値を所定期間に亘って収集するステップと、収集された所定期間に亘る入力値に基づいて、セーフティプログラムの所定期間に亘る挙動を再現するとともに、所定期間内の指定された時点におけるセーフティプログラムの動作状態を視覚的に表現するステップとを含む。
【発明の効果】
【００２３】
本発明によれば、セーフティコンポーネントの導入後のメンテナンスを適切に行うことができる。
【図面の簡単な説明】
【００２４】
【図１】本実施の形態に従うセーフティシステムの概略構成の一例を示す模式図である。
【図２】本実施の形態に従うセーフティコントローラの装置構成の一例を示す模式図である。
【図３】本実施の形態に従うサポート装置の装置構成の一例を示す模式図である。
【図４】本実施の形態に従う収集機能により収集されるトレースデータの一例を示す図である。
【図５】本実施の形態に従う収集機能により収集されるトレースデータの別の一例を示す図である。
【図６】本実施の形態に従う収集機能の実装形態の一例を示す図である。
【図７】本実施の形態に従うセーフティシステムにおいて実行されるセーフティプログラムの一例を示す図である。
【図８】本実施の形態に従うセーフティシステムの視覚化機能の動作の一例を説明するための模式図である。
【図９】トレースデータの時間的変化を示すタイミングチャートの一例を示す図である。
【図１０】本実施の形態に従うセーフティシステムの視覚化機能が提供するユーザインターフェイス画面の一例を示す模式図である。
【図１１】本実施の形態に従うセーフティシステムの視覚化機能による表示範囲を説明するための概念図である。
【図１２】トレースデータに含まれる出力値と期待出力値とを表示するユーザインターフェイス画面の一例を示す模式図である。
【図１３】本実施の形態に従うセーフティシステムが提供する収集対象の選択を支援する方法を説明するための模式図である。
【図１４】本実施の形態に従うセーフティシステムが提供するトレースデータの収集対象および収集条件を設定するユーザインターフェイス画面の一例を示す模式図である。
【図１５】本実施の形態に従う収集機能によるトレースデータの収集処理を説明するための模式図である。
【図１６】本実施の形態に従う収集機能によるセーフティ入力ユニットについて入力値を収集する方法を説明するための模式図である。
【図１７】本実施の形態に従うセーフティシステムにより提供される収集機能および視覚化機能を利用する際の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００２５】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２６】
＜Ａ．セーフティシステムの構成＞
まず、本実施の形態に従うセーフティシステム１の構成について説明する。図１は、本実施の形態に従うセーフティシステム１の概略構成の一例を示す模式図である。
【００２７】
図１を参照して、セーフティシステム１は、主として、設備や機械などを制御する制御装置３００と、セーフティコントローラ１００とを含む。
【００２８】
制御装置３００は、典型的には、ＰＬＣ（プログラマブルコントローラ）などで構成され、制御対象から取得された入力データに関して、予め定められたユーザプログラムを実行し、それによって算出される出力データに応じて制御対象に指令を与える。図１に示す制御対象として、モータ１０およびモータ１０を駆動するドライバ１２を例示する。制御装置３００は、ユーザプログラムに従って、ある駆動開始条件が成立するとモータ１０を回転駆動させるために、ドライバ１２に駆動指令を出力する。また、ある駆動停止条件が成立するとモータ１０の回転駆動を停止させるために、ドライバ１２への駆動指令の出力を停止する。
【００２９】
このような制御装置３００での制御対象の制御に加えて、典型的には、制御対象に関連する作業者などの安全を確保するなどのために、セーフティコントローラ１００がさらに配置される。セーフティコントローラ１００は、セーフティ入力コンポーネント（セーフティセンサ、セーフティドアスイッチ、セーフティリミットスイッチ、非常停止用押ボタンスイッチ、セーフティスイッチなど）からの入力信号などの関連付けられる、予め定められた条件（安全条件）が成立すると、安全動作を遂行する。
【００３０】
図１に示す例では、ドライバ１２への電力供給ライン上にセーフティリレー１４が配置されている。また、モータ１０により駆動される装置の周辺に危険エリアが設定されており、その危険エリアへの進入経路上にセーフティセンサ１６が配置されているとする。作業者などが危険エリアへ進入すると、セーフティセンサ１６によりその作業者の進入が検知される。セーフティコントローラ１００は、セーフティセンサ１６からの検知信号に応答して、セーフティリレー１４に指令を与える。セーフティコントローラ１００からの指令に応答してセーフティリレー１４が動作することで、モータ１０を駆動するドライバ１２への電力供給が遮断され、モータ１０が強制的に停止される。このようなモータ１０の強制的な停止によって、危険エリアへ進入した作業者の安全を確保することができる。
【００３１】
図１に示す構成例においては、セーフティコントローラ１００および制御装置３００は、制御系ネットワーク２０を介して接続されており、互いが内部的に保持するデータを遣り取りすることができる。また、セーフティコントローラ１００および制御装置３００は、情報系ネットワーク２２を介して、サポート装置２００と接続されている。
【００３２】
サポート装置２００は、セーフティコントローラ１００または制御装置３００で実行されるプログラムの開発、プログラムの実行状態の確認、プログラムの変更などの機能を提供する。
【００３３】
＜Ｂ．装置構成＞
次に、本実施の形態に従うセーフティシステム１を構成する各装置の装置構成について説明する。
【００３４】
（ｂ１：セーフティコントローラ）
図２は、本実施の形態に従うセーフティコントローラ１００の装置構成の一例を示す模式図である。図２を参照して、セーフティコントローラ１００は、プロセッサ１０２と、主メモリ１０４と、フラッシュメモリ１０６とを含む演算処理部１０８、および、各種インターフェイスからなる。
【００３５】
演算処理部１０８において、プロセッサ１０２は、フラッシュメモリ１０６に格納されているシステムプログラムおよびセーフティプログラムなどを主メモリ１０４に展開して実行することで、制御対象に応じた機能安全を実現する。
【００３６】
本明細書において、「セーフティプログラム」は、予め定められた条件（安全条件）に従って制御対象を安全が保たれるように動作させるためのプログラムであり、セーフティコントローラの処理を定義する命令群を意味する。より具体的には、セーフティプログラムは、１または複数の入力信号に対して、１または複数の出力信号の値を決定するための命令の組み合わせを含む。
【００３７】
セーフティプログラムは、セーフティコントローラの処理を定義するものであれば、どのような実体であってもよい。すなわち、セーフティプログラムは、１または複数のソースコードとして存在してもよいし、１または複数のオブジェクトコードとして存在してもよいし、セーフティコントローラのプロセッサで実行可能な形式（実行形式）であってもよい。
【００３８】
セーフティコントローラ１００は、インターフェイスとして、制御系ネットワークインターフェイス１１０と、情報系ネットワークインターフェイス１１２と、フィールドバスインターフェイス１１４と、メモリカードインターフェイス１１６と、ローカル通信インターフェイス１２０と、内部バスインターフェイス１２２とを含む。
【００３９】
制御系ネットワークインターフェイス１１０は、制御系ネットワーク２０を介して他の装置との通信を仲介する。制御系ネットワーク２０としては、例えば、ＥｔｈｅｒＣＡＴ（登録商標）などの定時性が保証されるネットワークプロトコルが好ましい。
【００４０】
情報系ネットワークインターフェイス１１２は、情報系ネットワーク２２を介して他の装置との通信を仲介する。情報系ネットワーク２２としては、例えば、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）などの定時性が保証されるネットワークプロトコルが好ましい。
【００４１】
フィールドバスインターフェイス１１４は、図示しないフィールドバスを介して接続される入出力ユニットとの通信を仲介する。フィールドバスとしては、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＤｅｖｉｃｅＮｅｔ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などの定時性が保証されるネットワークプロトコルが好ましい。
【００４２】
メモリカードインターフェイス１１６は、メモリカード１１８を装着可能に構成されており、メモリカード１１８からのデータ読出しおよびメモリカード１１８へのデータ書込みを行う。
【００４３】
ローカル通信インターフェイス１２０は、サポート装置２００または他の装置と直接接続するインターフェイスであり、例えば、ＵＳＢ（Universal Serial Bus）などが用いられる。
【００４４】
内部バスインターフェイス１２２は、内部バスを介してセーフティコントローラ１００に直接装着される入出力ユニットとの間の通信を仲介する。
【００４５】
（ｂ２：制御装置）
本実施の形態に従う制御装置３００は、図２に示すセーフティコントローラ１００と同様の装置構成を有しているので、詳細な説明は繰返さない。なお、セーフティコントローラ１００は、プロセッサなどの二重化やセーフティ用のモジュールが採用されているが、一般的には、制御装置３００にはそのような構成は採用されていない。また、制御装置３００では、上述のセーフティプログラムではなく、ユーザプログラムが実行される。
【００４６】
（ｂ３：サポート装置）
本実施の形態に従うサポート装置２００は、典型的には、汎用コンピュータ上でサポートプログラムが実行されることで実現される。
【００４７】
図３は、本実施の形態に従うサポート装置２００の装置構成の一例を示す模式図である。図３を参照して、サポート装置２００は、主たるコンポーネントとして、オペレーティングシステム（ＯＳ：Operating System）および後述するような各種プログラムを実行するプロセッサ２０２と、プロセッサ２０２でのプログラム実行に必要なデータを格納するための作業領域を提供する主メモリ２０４と、キーボードやマウスなどのユーザ操作を受付ける入力部２０６と、ディスプレイ、各種インジケータ、プリンタなどの処理結果を出力する出力部２０８と、情報系ネットワークに接続される情報系ネットワークインターフェイス２１０と、光学ドライブ２１２と、セーフティコントローラ１００などと通信するローカル通信インターフェイス２１６と、補助記憶装置２２０とを含む。これらのコンポーネントは、内部バス２１８などを介してデータ通信可能に接続される。
【００４８】
サポート装置２００は、光学ドライブ２１２を有しており、コンピュータ読取可能なプログラムを非一過的に格納する光学記録媒体（例えば、ＤＶＤ（Digital Versatile Disc）など）のコンピュータ読取可能な記録媒体２１４から、各種プログラムを読取って補助記憶装置２２０などにインストールする。
【００４９】
サポート装置２００で実行される各種プログラムは、コンピュータ読取可能な記録媒体２１４を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に従う機能安全の評価に係るプログラムは、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【００５０】
補助記憶装置２２０は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Flash Solid State Drive）などで構成され、プロセッサ２０２で実行されるプログラムを格納する。具体的には、補助記憶装置２２０は、後述するような処理を提供するプログラムとして、セーフティプログラム２２８（ソースプログラム）からプロセッサ２０２で実行可能なコード（実行モジュール）を生成する実行モジュール生成プログラム２２２と、後述するようなトレースデータに基づいてセーフティプログラム２２８の実行を再現するエミュレータプログラム２２４とを含む。これらのプログラムが提供する機能および処理については、後述する。補助記憶装置２２０には、セーフティプログラム２２８に関連付けられた各種設定２２６が格納される。
【００５１】
図３には、汎用コンピュータ上でサポートプログラムを実行することで、本実施の形態に従うサポート装置２００に係る機能を実現するが、このような構成に代えて、その全部または一部をハードワイヤード回路で実装してもよい。例えば、プロセッサ２０２が上述の各種プログラムを実行することで提供される機能をＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field-Programmable Gate Array）を用いて実装してもよい。
【００５２】
＜Ｃ．概要＞
次に、本実施の形態に従うセーフティシステム１にて提供される機能の概要を説明する。再度図１を参照して、本実施の形態に従うセーフティシステム１は、セーフティプログラムを実行するセーフティコントローラ１００を含む。セーフティコントローラ１００において処理されるデータの時系列の変化を収集し、その収集されたデータに基づいて、セーフティプログラムの実行状態を事後的に評価および検証する。
【００５３】
以下では、セーフティコントローラ１００において処理されるデータの時系列の変化を「トレースデータ」とも称する。この時系列のデータ群である「トレースデータ」は、典型的には、セーフティコントローラ１００に入力される入力信号の値（入力値）、セーフティコントローラ１００で実行されるセーフティプログラム中で用いられる変数値、および、セーフティコントローラ１００から出力される出力信号の値（出力値）の全部または一部を含む。さらに、セーフティコントローラ１００の内部状態やシステム状態を示す状態値などを含むようにしてもよい。トレースデータとしては、セーフティコントローラ１００にて処理可能なすべてのデータを含み得る。
【００５４】
このように、本実施の形態に従うセーフティシステム１は、セーフティコントローラ１００のトレースデータを収集する収集機能が実装される。この収集機能は、セーフティコントローラ１００に入力される１または複数の入力信号のうち、予め選択された入力信号の値である入力値を所定期間に亘って収集する機能を含む。また、収集機能は、セーフティコントローラ１００から出力される１または複数の出力信号のうち、予め選択された出力信号の値である出力値を所定期間に亘って収集する機能を含んでいてもよい。
【００５５】
セーフティコントローラ１００から収集されたトレースデータに基づいて、サポート装置２００などにてセーフティプログラムの再現処理が実行される。この再現処理においては、収集されたトレースデータに基づいて、セーフティプログラムの所定期間に亘る挙動が再現されるとともに、当該所定期間内の指定された時点におけるセーフティプログラムの動作状態が視覚的に表現される。このような視覚的な機能（視覚化機能）を提供することにより、何らかの安全動作が遂行された場合の原因究明などをより容易化でき、導入後のセーフティコンポーネントを適切にメンテナンスできる。
【００５６】
以下、収集機能および視覚化機能についてより詳細に説明する。これらの機能は、典型的には、サポート装置２００にインストールされたエミュレータプログラム２２４（図３参照）により実現されてもよい。
【００５７】
＜Ｄ．収集機能＞
次に、本実施の形態に従うトレースデータを収集する収集機能のより詳細な内容について説明する。
【００５８】
（ｄ１：トレースデータ）
本実施の形態に従う収集機能により収集されるトレースデータの一例について説明する。図４は、本実施の形態に従う収集機能により収集されるトレースデータ４０の一例を示す図である。図４には、説明の便宜上、トレースデータ４０を表形式で具現化するが、このような表形式に限定されることなく、任意のデータ構造を採用できる。
【００５９】
図４に示すトレースデータ４０は、トレースデータ４０をサンプリングした時刻４２に関連付けて、対応する入力値群５０および出力値群６０の各値が格納されている。トレースデータ４０は、３つのセーフティコンポーネント（非常停止用押ボタンスイッチ、セーフティドアスイッチ、セーフティセンサ）からの入力信号に応じて、２つのセーフティリレーの両方またはいずれか一方を動作させるセーフティプログラムに関連付けられている。
【００６０】
入力値群５０は、安全動作状態を解除するためのリセット信号５１と、非常停止用押ボタンスイッチからの入力信号５２，５３と、セーフティドアスイッチからの入力信号５４，５５と、セーフティセンサ（この例では、セーフティライトカーテン）からの入力信号５６，５７とを含む。各セーフティコンポーネントからの入力信号は二重化されており、同一のセーフティコンポーネントから２つの入力信号がセーフティコントローラ１００へ与えられるものとする。
【００６１】
出力値群６０は、一方のセーフティリレーへの出力信号６１，６２と、別のセーフティリレーへの出力信号６３，６４とを含む。また、入力値群５０は、これらのセーフティリレーの動作状態を示すフィードバック信号５８，５９を含む。
【００６２】
このように、トレースデータ４０として、セーフティコントローラ１００に入力される１または複数の入力信号のうち、予め選択された入力信号の値である入力値が所定期間に亘って収集される。併せて、セーフティコントローラ１００から出力される１または複数の出力信号のうち、予め選択された出力信号の値である出力値が所定期間に亘って収集される。
【００６３】
このようなトレースデータ４０の情報量を圧縮する手法の一つとして、入力値または出力値に何らかの変化があったときのみ、トレースデータ４０として出力するようにしてもよい。
【００６４】
図５は、本実施の形態に従う収集機能により収集されるトレースデータ４０の別の一例を示す図である。図５には、入力値群５０に含まれる入力値に値の変化が生じたことを条件（以下、「収集条件」または「トリガ条件」とも称す。）にトレースデータ４０を更新する方法によって得られた結果の一例を示す。この例では、いずれかの入力値が「０」（Ｆａｌｓｅ）から「１」（Ｔｒｕｅ）へ変化したとき（立上り）、および、いずれかの入力値が「１」（Ｔｒｕｅ）から「０」（Ｆａｌｓｅ）へ変化したとき（立下り）を収集条件としている。立上りおよび立下りのいずれか一方のみを収集条件としてもよい。
【００６５】
このようなトレースデータ４０を生成することで、データ量を低減して、同一の記憶領域を利用した場合において、より長い期間に亘ってトレースデータを収集することができる。
【００６６】
図５に示す例では、フィードバック信号５８，５９についてはトレース条件からは除外しているが、これらを収集条件に含めてもよいし、あるいは、出力値群６０に含まれる出力値に値の変化が生じたことを収集条件に含めてもよい。
【００６７】
また、図５には、デジタル入力値（「０」値（オフまたはＦａｌｓｅ）／「１」値（オンまたはＴｒｕｅ））を収集する例を示すが、アナログ入力値を収集するようにしてもよい。例えば、セーフティライトカーテンの受光量の大きさなどをトレースデータ４０に含めるようにしてもよい。この場合、収集条件としては、受光量の大きさが予め定められたしきい値を下回った場合などと設定することができる。
【００６８】
（ｄ２：収集機能の実装形態）
本実施の形態に従う収集機能の実装形態の一例について説明する。図６は、本実施の形態に従う収集機能の実装形態の一例を示す図である。
【００６９】
図６（Ａ）には、セーフティコントローラ１００のトレースデータを収集する収集機能が制御装置３００に実装されている例を示す。すなわち、収集機能は、セーフティコントローラ１００に接続された制御装置３００内に実装されている。セーフティコントローラ１００と制御装置３００との間の接続には、制御系ネットワーク２０を用いたネットワーク接続を採用することが好ましい。あるいは、セーフティコントローラ１００と制御装置３００とをバスを介して接続（バス接続）するようにしてもよいし、さらに別の通信手段を採用してもよい。
【００７０】
図６（Ａ）に示す実装形態を採用することで、セーフティコントローラ１００でのセーフティプログラムの実行に実質的に何らの影響も与えることなく、トレースデータを収集できる。また、セーフティコントローラ１００に時計機能などの搭載が制限されるような場合であっても、制御装置３００が収集したトレースデータに対して時刻情報を付加することで、図４または図５に示すようなトレースデータを収集できる。
【００７１】
図６（Ｂ）には、セーフティコントローラ１００のトレースデータを収集する収集機能が上位のサーバ装置３５０に実装されている例を示す。すなわち、収集機能は、セーフティコントローラ１００とネットワーク接続された上位のサーバ装置３５０内に実装されている。セーフティコントローラ１００とサーバ装置３５０との間のネットワーク接続には、情報系ネットワーク２２を用いることが好ましい。
【００７２】
図６（Ｂ）に示す実装形態を採用することで、セーフティコントローラ１００でのセーフティプログラムの実行に実質的に何らの影響も与えることなく、トレースデータを収集できる。また、１つのサーバ装置３５０を用いて、複数のセーフティコントローラ１００からトレースデータを収集することもできるため、より効率的なトレースデータの収集を実現できる。
【００７３】
図６（Ｃ）には、セーフティコントローラ１００自身にトレースデータを収集する収集機能が実装されている例を示す。図６（Ｃ）に示す実装形態を採用することで、トレースデータの収集がセーフティコントローラ１００のみで完結できるので、セーフティシステムの構成を簡素化できる。
【００７４】
さらに、図６（Ｃ）に示す実装例と、図６（Ａ）または図６（Ｂ）に示す実装例とを組み合わせた構成を採用してもよい。このような場合には、例えば、セーフティコントローラ１００においては、予め定められた収集条件が成立するか否かが制御周期毎に判断されるとともに、当該収集条件が成立したと判断されると、当該収集条件が成立したタイミングを基準として所定期間に亘ってトレースデータが収集され、その収集されたトレースデータが制御装置３００またはサーバ装置３５０へ送信されるようにしてもよい。すなわち、セーフティコントローラ１００を一種のバッファとして用いるとともに、収集したトレースデータの全体は外部の制御装置３００またはサーバ装置３５０に格納するようにしてもよい。
【００７５】
以上のように、本実施の形態に従うトレースデータを収集する収集機能については、セーフティシステム１の構成または規模などに応じて、適切な装置へ実装すればよい。
【００７６】
＜Ｅ．視覚化機能＞
次に、本実施の形態に従うセーフティシステム１が提供する視覚化機能のより詳細な内容について説明する。視覚化機能は、収集されたトレースデータに基づいてセーフティプログラムの所定期間に亘る挙動を再現するとともに、指定された時点におけるセーフティプログラムの動作状態を視覚的に表現する。
【００７７】
（ｅ１：挙動の再現および動作状態の視覚的な表現）
図７は、本実施の形態に従うセーフティシステム１において実行されるセーフティプログラムの一例を示す図である。本実施の形態に従う視覚化機能は、セーフティプログラムに含まれる命令の組み合わせを図式化して表示する機能を有している。具体的には、サポート装置２００のディスプレイ上には、図７に示すようなセーフティプログラムの一部を示すタグ表示２５０が提示される。
【００７８】
一例として、タグ表示２５０は、非常停止用押ボタンスイッチの入力処理を行うファンクションブロック２５１と、セーフティセンサ（この例では、セーフティライトカーテン）の入力処理を行うファンクションブロック２５２と、セーフティドアスイッチの入力処理を行うファンクションブロック２５３とを含む。セーフティプログラムにおいては、１または複数のファンクションブロックを組み合わせることで、安全機能に関する命令を定義する。
【００７９】
ファンクションブロック２５１の出力は、リセットボタンの入力値ともに、リセット信号の入力処理を行うファンクションブロック２５５を介して、セーフティリレーを駆動する処理を行うファンクションブロック２５７に入力されている。
【００８０】
また、ファンクションブロック２５１，２５２，２５３の各出力は、ＡＮＤ演算を行うファンクションブロック２５４に入力され、ファンクションブロック２５４の出力は、リセットボタンの入力値ともに、リセット信号の入力処理を行うファンクションブロック２５６を介して、セーフティリレーを駆動する処理を行うファンクションブロック２５８に入力されている。
【００８１】
図７には、図式化の一例としてタグ表示２５０を示したが、これに限らず、セーフティプログラムの内容が把握できるものであれば、どのような図式化を採用してもよい。
【００８２】
本実施の形態に従う視覚化機能においては、収集されたトレースデータに基づいてセーフティプログラムの所定期間に亘る挙動を再現するとともに、当該所定期間の指定された時点における安全プログラムの動作状態を視覚的に表示する。
【００８３】
具体的には、収集されたトレースデータの各時刻における入力値が予め用意されたセーフティプログラムに対して入力され、各時刻における出力値が算出される。各時刻における入力値を収集されたトレースデータに従って変化させるとともに、対応する時刻における出力値を順次算出することで、セーフティプログラムの所定期間に亘る挙動を再現できる。そして、図７に示すようなタグ表示２５０上の表示態様を、各時刻における安全プログラムの動作状態（すなわち、各時刻における入力値および出力値の実値）に応じて変化させる。
【００８４】
図８は、本実施の形態に従うセーフティシステム１の視覚化機能の動作の一例を説明するための模式図である。図８に示すように、本実施の形態に従う視覚化機能は、入力値、入力値に応じて算出される内部値、および、入力値に応じて算出される出力値の少なくともいずれかに応じて、図式化された表示（タグ表示２５０）に含まれる対応する要素（各ファンクションブロックや接続線）の表示態様を変化させる機能を有している。
【００８５】
一例として、図８（Ａ）には、図４または図５に示すトレースデータの時刻「０：００：００」における動作状態を示し、図８（Ｂ）には、図４または図５に示すトレースデータの時刻「０：００：３８」における動作状態を示す。
【００８６】
図８において、入力値、内部値、出力値のうち「１」（Ｔｒｕｅ）を示しているものに対応する経路が、「０」（Ｆａｌｓｅ）を示している値に対応する経路とは異なる表示態様になるように表示制御がなされる。
【００８７】
図８（Ａ）に示す動作状態は、何らかのセーフティ入力コンポーネントからの入力信号が、一旦、「１」（Ｔｒｕｅ）から「０」（Ｆａｌｓｅ）へ変化してセーフティリレーへ遮断指令が与えられた状態を示している。この後、ユーザなどがリセットボタンを押下することで、リセット信号がファンクションブロック２５５，２５６へ与えられ、ファンクションブロック２５７，２５８へ出力が与えられる内部値は「０」（Ｆａｌｓｅ）から「１」（Ｔｒｕｅ）へ変化する。これによって、セーフティリレーは再投入され、設備や機械の動作が再開される。
【００８８】
一方、図８（Ｂ）に示す動作状態は、セーフティセンサ（この例では、セーフティライトカーテン）からの入力信号が、「１」（Ｔｒｕｅ）から「０」（Ｆａｌｓｅ）へ変化した直後の状態を示している。セーフティセンサが何らかの物体を検出して、出力する信号の値を「１」（Ｔｒｕｅ）から「０」（Ｆａｌｓｅ）へ変化させると、ファンクションブロック２５８へ入力される内部値が「１」（Ｔｒｕｅ）から「０」（Ｆａｌｓｅ）へ変化して、対応するセーフティリレーへ遮断指令が与えられる。すなわち、一方のセーフティリレーのみが遮断動作を行った状態を示している。
【００８９】
このように、収集したトレースデータの各時間における、セーフティプログラムの動作状態が視覚的に表現される。このとき、タグ表示２５０に加えて、視覚的に表現する時刻を任意の設定するためのコントロールモジュール２６０を併せて表示するようにしてもよい。
【００９０】
コントロールモジュール２６０は、セーフティプログラムの実行の再現を開始させるための再生ボタンに加えて、任意のタイミングで停止させるためのボタンや、動作状態を表示する対象となる時刻を現在の時刻より進めるまたは戻すためのボタンなどを含む。ユーザは、コントロールモジュール２６０を操作することで、任意の時刻におけるセーフティプログラムの動作状態を確認することができる。
【００９１】
状況によっては、何らかの事象が生じた前後の動作情報を詳細に検討したい場合もある。このような場合には、予め設定したタイミングで再現を一旦停止する機能（ブレークポイントの設定）や、セーフティプログラムを１制御周期毎に実行する機能（ステップ実行）などを用意してもよい。
【００９２】
図９は、トレースデータの時間的変化を示すタイミングチャート２７０の一例を示す図である。図９には、収集したトレースデータの時間的変化が示されており、このタイミングチャート２７０上で、セーフティプログラムを再現する区間などを任意に設定することができるようにしてもよい。より具体的には、タイミングチャート２７０の任意の位置に対して、ユーザは、開始ポイント２７１および終了ポイント２７２を設定することができる。開始が指示されると、開始ポイント２７１から終了ポイント２７２までの区間について、セーフティプログラムの実行の再現が開始される。このとき、現在再現中のタイミングを示すカレント位置表示バー２７３を併せて表示してもよい。さらに、カレント位置表示バー２７３の位置を任意に移動できるようにしてもよい。この場合には、カレント位置表示バー２７３が位置するタイミングの動作状態が視覚的に表現される。
【００９３】
また、開始ポイント２７１および終了ポイント２７２を複数設定することもできるし、終了ポイント２７２ではなく、一時的に動作を停止するブレークポイントを設定できるようにしてもよい。さらに、タイミングチャート２７０上でステップ実行を行うようにしてもよい。
【００９４】
図９に示すタイミングチャート２７０は、図８に示すようなタグ表示２５０とともに表示するようにしてもよい。図１０は、本実施の形態に従うセーフティシステム１の視覚化機能が提供するユーザインターフェイス画面の一例を示す模式図である。図１０を参照して、セーフティプログラムの一部を示すタグ表示２５０と、コントロールモジュール２６０と、タイミングチャート２７０とを一体的に含むユーザインターフェイス画面をユーザへ提示するようにしてもよい。このように、本実施の形態に従う視覚化機能は、セーフティプログラムの動作状態とともに、収集された所定期間に亘る入力値を示すタイミングチャートを出力するようにしてもよい。
【００９５】
このようなユーザインターフェイス画面によれば、コントロールモジュール２６０またはタイミングチャート２７０で任意のタイミングまたは区間について、セーフティプログラムの動作を再現できるとともに、各タイミングにおける動作状態を確認することができる。
【００９６】
（ｅ２：関連部分表示）
通常、セーフティプログラムは監視対象に応じた数の論理演算式を含む。セーフティプログラムに含まれる論理演算式の数が多くなれば、すべてを一度に表示することも難しくなる。一方で、トレースデータとして収集する対象はすべての入力値ではないので、本実施の形態に従う視覚化機能によりセーフティプログラムの実行を再現する場合には、セーフティプログラムの関連する部分のみをユーザへ提示するようにしてもよい。
【００９７】
図１１は、本実施の形態に従うセーフティシステム１の視覚化機能による表示範囲を説明するための概念図である。図１１を参照して、例えば、セーフティプログラムのうち、収集したトレースデータを利用する論理演算式を含む部分が２つ存在しているとする（関連部分Ａおよび関連部分Ｂ）。視覚化機能によりセーフティプログラムの実行を再現する際には、これらの関連部分Ａおよび関連部分Ｂのみをユーザへ提示するようにしてもよい。なお、図１１には、２つの関連部分が存在する例を示すが、この場合には、これら２つの抽出された関連部分同士を連結して、ユーザへ提示するようにしてもよい。また、関連部分が１つだけの場合には、その関連部分のみをユーザへ提示するようにしてもよい。このように、本実施の形態に従う視覚化機能は、セーフティプログラムのうち、収集された所定期間に亘る入力値に関連する部分のみを表示するようにしてもよい。
【００９８】
図１１に示すような関連部分のみを表示する処理を採用することで、セーフティプログラムの再現結果を効率的に確認することができる。
【００９９】
（ｅ３：期待出力値との比較）
上述したように、トレースデータとしては、セーフティコントローラ１００から出力される１または複数の出力信号のうち、予め選択された出力信号の値である出力値を含み得る。一般的には、セーフティプログラムの実行の再現においては、関連する入力信号の入力値のみがあれば十分である。
【０１００】
但し、何らかの理由で、セーフティプログラムの実行を再現して得られる出力値（以下、「期待出力値」とも称す。）と、実際に収集された出力値とが一致しない可能性もある。あるいは、予め設計段階で想定していたセーフティプログラムの動作による出力値（これについても「期待出力値」に含め得る。）と実際の出力値との異同についても評価できることが好ましい。
【０１０１】
セーフティコンポーネントの性能の維持を支援するための機能として、トレースデータとして収集された所定期間に亘る出力値を、セーフティプログラムの再現により算出された出力値と並べて表示するようにしてもよい。
【０１０２】
図１２は、トレースデータに含まれる出力値と期待出力値とを表示するユーザインターフェイス画面の一例を示す模式図である。図１２を参照して、例えば、トレースデータの時間的変化を示すタイミングチャート２８０には、入力値に係るタイミングチャート群２８１と、出力値に係るタイミングチャート群２８２と、期待出力値に係るタイミングチャート群２８３とを含む。
【０１０３】
タイミングチャート群２８２は、収集されたトレースデータに含まれる出力値の時間変化が反映されており、タイミングチャート群２８３には、収集されたトレースデータに含まれる入力値の時間変化に基づいて算出された出力値（すなわち、期待出力値）の時間変化が反映されている。
【０１０４】
このように、実際に収集された出力値の時間変化と算出された期待出力値の時間変化を対比的に表示することで、ユーザは、いずれのタイミングにおいて、いずれの出力値が相異しているのかを把握することができ、不具合の原因などをより容易に見つけることができる。
【０１０５】
なお、トレースデータとして収集された所定期間に亘る出力値と、セーフティプログラムの再現により算出された出力値とを並べて表示する形態としては、図１２に示すようなタイミングチャートに限られず、両者の値を並べて配置した表形式などで表示するようにしてもよい。
【０１０６】
＜Ｆ．トレースデータの収集対象および収集条件＞
次に、本実施の形態に従うセーフティシステム１においてトレースデータに含ませる収集対象および収集条件の設定方法の一例について説明する。
【０１０７】
セーフティコントローラ１００が実行するセーフティプログラムには、多くの入力値、内部値、出力値が関連付けられており、トレースデータの収集対象として選択する際には、手間が掛かる可能性がある。そこで、以下に説明するような設定を支援する機能を実装しておくことが好ましい。
【０１０８】
図１３は、本実施の形態に従うセーフティシステム１が提供する収集対象の選択を支援する方法を説明するための模式図である。図１４は、本実施の形態に従うセーフティシステム１が提供するトレースデータの収集対象および収集条件を設定するユーザインターフェイス画面の一例を示す模式図である。
【０１０９】
図１３に示すように、本実施の形態に従う支援機能は、予め用意されたセーフティプログラムを解析して、それに含まれる入力値、内部値、出力値を抽出する。これらの抽出された入力値、内部値、出力値がトレースデータとして収集される対象となる。
【０１１０】
トレースデータは、主として、選択された１または複数の入力値を含むことが想定されている。すなわち、本実施の形態に従う支援機能は、セーフティプログラムに含まれるファンクションブロックなどの安全機能に関する命令に用いられている入力信号を抽出するとともに、抽出された入力信号に対する選択に応じて、収集機能による収集対象となる入力信号を設定する。入力値に限らず、内部値および出力値についても、同様に収集機能による収集対象として選択することができる。
【０１１１】
図１４に示すインターフェイス画面２９０は、このような収集対象の選択を支援する。図１４に示すインターフェイス画面２９０は、収集対象を選択するためのエリア２９１と、収集条件を設定するためのエリア２９４とを含む。
【０１１２】
エリア２９１において、セーフティプログラムから抽出された入力信号（入力値）のアイテム２９２がリスト表示されており、入力値のアイテム２９２の各々に関連付けて、出力信号（出力値）または図示しない内部値を関連付けたサブアイテム２９３がリスト表示されている。この入力値のアイテム２９２と出力値または内部値のサブアイテム２９３との関連付けは、対象のセーフティプログラムの解析結果から抽出される。
【０１１３】
図１４に示すように、抽出された入力信号の少なくとも一部からなる入力信号（入力値のアイテム２９２）の各々を、選択を受付けるオブジェクト（アイテム２９２に含まれるチェックボックス）とともに一覧表示する機能（インターフェイス画面２９０）を有している。そして、選択されたオブジェクト（チェックされたチェックボックス）に対応する入力信号（入力値のアイテム２９２）が収集対象に設定される。
【０１１４】
エリア２９４は、収集対象として選択可能な入力値、内部値、出力値に対応付けて、立上り条件（０→１の変化）を収集条件に設定するチェックボックス群２９５、および、立下り条件（１→０の変化）を収集条件に設定するチェックボックス群２９５を含む。ユーザは、トレースデータの収集を開始する条件として、任意のチェックボックスをチェックすることができる。
【０１１５】
図１４などによる収集条件の設定により、対象となった値に指定された変化が生じた場合には、選択された収集対象の値がトレースデータとして収集される。このように、本実施の形態に従う支援機能は、セーフティプログラムに含まれるファンクションブロックなどの安全機能に関する命令に用いられている入力信号および出力信号の少なくとも一方を抽出するとともに、抽出結果に対する選択に応じて、収集条件を設定する。
【０１１６】
本実施の形態に従う支援機能を提供する画面ユーザインターフェイスとしては、図１４に示すものに限らず、任意のユーザインターフェイスを採用できる。例えば、図１４に示すチェックボックスに代えて、あるいは、それに加えて、プルダウンメニューやラジオボタンなどの選択方式を採用してもよい。さらに、何らかのしきい値を設定するような場合には、直接入力する方式、ダイヤルやスライダーなどで指定する方式、グラフ上を指定することで値を入力する方式などを採用してもよい。
【０１１７】
いずれかの値の変化を収集条件として設定した場合には、その収集条件が成立すると、所定期間に亘る入力値の生成（トレースデータの収集）が開始される。但し、その収集条件が成立したタイミングを基準とする前後の期間をトレースデータの収集対象とすることが好ましい。
【０１１８】
図１５は、本実施の形態に従う収集機能によるトレースデータの収集処理を説明するための模式図である。図１５を参照して、収集機能の基本的な動作として、収集条件が成立すると、その収集条件が成立した後に所定期間に亘って収集対象の値を収集する。図１５に示す例では、時刻ｔ１において収集条件が成立したとすると、その時刻ｔ１を開始点として、トレースデータの収集が開始される。
【０１１９】
別の実施の形態に従う収集機能として、収集条件が成立していなくとも、収集対象の値を所定時間分だけバッファリングするようにしてもよい。そして、収集条件が成立すると、その収集条件が成立したタイミングを基準とする所定期間に亘って収集対象の値を収集する。
【０１２０】
図１５に示す例では、時刻ｔ１において収集条件が成立したとすると、それ以前の時刻ｔ０を開始点として、トレースデータの収集を開始する。このように、本実施の形態に従う収集機能は、予め定められた収集条件が成立すると、当該収集条件が成立した時点より以前の入力値も含めて、所定期間に亘る入力値（トレースデータ）を生成する。このような収集方法を採用することで、注目している事象の解析に必要な前後の時間的変化を確実に収集することができる。
【０１２１】
なお、収集条件が成立したタイミングからどの程度前（すなわち、図１５に示す時刻ｔ１と時刻ｔ０との間の時間幅）のデータを収集するのかといった設定は、予めデフォルト値を設定しておいてもよいし、ユーザが任意に設定できるようにしておいてもよい。
【０１２２】
＜Ｇ．セーフティ入力コンポーネントのローカルレジスタ＞
一般的に、セーフティ入力コンポーネントの応答時間は、セーフティコントローラ１００の制御周期に比較して十分に短い。セーフティコントローラ１００に装着されるセーフティ入力ユニットは、検出される値の時間的変化から安全サイドの代表値を、セーフティコントローラ１００の入力値として決定することもある。このような場合、セーフティコントローラ１００に入力される入力値だけではなく、セーフティ入力コンポーネントによる検出値についてもトレースデータに含めることが好ましい。以下、セーフティ入力ユニットで検出される入力信号の値をより高精度に収集する例について説明する。
【０１２３】
図１６は、本実施の形態に従う収集機能によるセーフティ入力ユニットについて入力値を収集する方法を説明するための模式図である。図１６を参照して、セーフティセンサの一例としてセーフティライトカーテン８０は、４つの受光センサ８１，８２，８３，８４を有している。セーフティコントローラ１００は、セーフティライトカーテン８０からの信号を受信するためのセーフティ入力ユニット１５０を有している。これらの受光センサで検出されたそれぞれの信号は、セーフティ入力ユニット１５０へ与えられる。セーフティ入力ユニット１５０は、セーフティライトカーテン８０からの各信号を受信して、それぞれの信号についての論理積を検出結果としてセーフティコントローラ１００へ出力する。
【０１２４】
セーフティ入力ユニット１５０は、セーフティライトカーテン８０からのそれぞれの信号の値を格納するローカルレジスタ１５１，１５２，１５３，１５４を有している。そして、ローカルレジスタ１５１，１５２，１５３，１５４には、セーフティ入力ユニット１５０が検出結果を出力する周期に比較して、より早い周期で値を検出する回路が含まれている。そして、ローカルレジスタ１５１，１５２，１５３，１５４の各々に格納される値の全体に対して論理積を演算し、その演算結果を検出結果として出力する。図１６に示す例では、ローカルレジスタ１５１，１５２，１５３，１５４のいずれかに「０」が含まれていれば、検出結果としては「０」が出力される。このように、セーフティ入力ユニット１５０は、１または複数の入力信号が示す複数の値から予め定められた規則に従ってセーフティコントローラ１００が扱う入力値を決定する入力処理部１５５を含む。なお、複数の値から入力値を決定するロジックとしては、論理積に限られず、論理和、排他的論理和、多数決などのロジックを採用してもよいし、さらに、複数のロジックを組み合わせたものを採用してもよい。
【０１２５】
セーフティ入力ユニット１５０からセーフティコントローラ１００へは、決定された検出値に加えて、ローカルレジスタ１５１，１５２，１５３，１５４の各々に格納されているデータ列１５６が併せて送出される。このようなデータ列１５６がトレースデータの対象として収集される。すなわち、本実施の形態に従う収集機能は、セーフティ入力ユニット１５０の入力処理部１５５が入力信号を決定するために用いた値についても収集する。このようなローカルレジスタの値も収集することで、セーフティセンサの不具合などを検知することもできる。
【０１２６】
＜Ｈ．全体処理手順＞
次に、本実施の形態に従うセーフティシステム１により提供される収集機能および視覚化機能を利用する際の処理手順について説明する。
【０１２７】
図１７は、本実施の形態に従うセーフティシステム１により提供される収集機能および視覚化機能を利用する際の処理手順を示すフローチャートである。図１７を参照して、まず、トレースデータの収集対象および収集条件を設定する（ステップＳ２）。具体的には、ユーザは、図１４に示すようなインターフェイス画面２９０を操作して、収集対象および収集条件などを設定する。この設定情報は、収集機能が実装されている装置へ転送される。
【０１２８】
続いて、収集機能が実装されている装置において、収集条件が成立したか否かが判断される（ステップＳ４）。収集条件が成立すると（ステップＳ４においてＹＥＳ）、収集対象の値を所定期間に亘って収集する（ステップＳ６）。すなわち、トレースデータが収集される。この収集条件の成立有無の監視およびトレースデータの収集は、終了の指示が与えられるまで繰返される（ステップＳ８においてＮＯ）。なお、トレースデータの収集の終了は、予め定められた所定期間の終了（タイムアップ）によって発生させてもよいし、ユーザが明示的に与えるようにしてもよい。あるいは、制御対象などからの任意の信号に応答して、トレースデータの収集の終了を発行してもよい。
【０１２９】
トレースデータの収集の終了が指示されると（ステップＳ８においてＹＥＳ）、視覚化機能が実装されている装置へ収集されたトレースデータが転送され（ステップＳ１０）、当該視覚化機能によって、ユーザ操作に従って、収集されたトレースデータに基づくセーフティプログラムが再現される（ステップＳ１２）とともに、指定された時点におけるセーフティプログラムの動作状態が視覚的に表現される（ステップＳ１４）。これらの処理は、終了の指示が与えられるまで繰返される（ステップＳ１６においてＮＯ）。
【０１３０】
終了の指示が与えられると（ステップＳ１６においてＹＥＳ）、一連の処理は終了する。
【０１３１】
＜Ｉ．ユースケース＞
例えば、いずれかの入力信号の値が「１」（Ｔｒｕｅ）から「０」（Ｆａｌｓｅ）へ変化したことにより、セーフティコントローラが安全動作して、何らかの設備または機械が停止したような場合を考える。その後、入力信号が「０」から「１」へ復帰してしまった場合などが想定される。このような入力信号の変化としては、セーフティライトカーテンの検出範囲内に対象物が存在しなくなる、セーフティドアスイッチが監視しているドアが開いた後に閉じてしまった、その他、環境要因などの外部要因などが考えられる。
【０１３２】
このような場合に、安全動作によって設備または機械が停止した要因を特定することが難しい。また、通常のセーフティコンポーネントは、状態値の変化を記録するような機能を搭載しておらず、原因究明が難しい。さらに、複数のセーフティコンポーネントが関連している場合には、１つのセーフティコンポーネントが原因であると特定できない場合がある。
【０１３３】
このようなケースにおいて、本実施の形態に従う収集機能および視覚化機能を利用することで、何らかの安全動作が遂行された場合に、その安全動作の遂行をセーフティプログラムの実行状態を再現することで確認できるため、原因追究をより容易に行うことができる。
【０１３４】
＜Ｊ．利点＞
本実施の形態によれば、何らかの要因によって安全動作が遂行された場合などに、セーフティプログラムの動作状況を順次再現することで、その要因を容易に特定できる。このような要因を容易に特定できるため、導入後のセーフティコンポーネントのメンテナンスを適切に行うことができる。
【０１３５】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１３６】
１  セーフティシステム、１０  モータ、１２  ドライバ、１４  セーフティリレー、１６  セーフティセンサ、２０  制御系ネットワーク、２２  情報系ネットワーク、４０  トレースデータ、４２  時刻、５０  入力値群、５１  リセット信号、５２，５３，５４，５５，５６，５７  入力信号、５８，５９  フィードバック信号、６０  出力値群、６１，６２，６３，６４  出力信号、８０  セーフティライトカーテン、８１，８２，８３，８４  受光センサ、１００  セーフティコントローラ、１０２，２０２  プロセッサ、１０４，２０４  主メモリ、１０６  フラッシュメモリ、１０８  演算処理部、１１０  制御系ネットワークインターフェイス、１１２，２１０  情報系ネットワークインターフェイス、１１４  フィールドバスインターフェイス、１１６  メモリカードインターフェイス、１１８  メモリカード、１２０，２１６  ローカル通信インターフェイス、１２２  内部バスインターフェイス、１５０  セーフティ入力ユニット、１５１，１５２，１５３，１５４  ローカルレジスタ、１５５  入力処理部、１５６  データ列、２００  サポート装置、２０６  入力部、２０８  出力部、２１２  光学ドライブ、２１４  記録媒体、２１８  内部バス、２２０  補助記憶装置、２２２  実行モジュール生成プログラム、２２４  エミュレータプログラム、２２６  各種設定、２２８  セーフティプログラム、２５０  タグ表示、２５１，２５２，２５３，２５４，２５５，２５６，２５７，２５８  ファンクションブロック、２６０  コントロールモジュール、２７０，２８０  タイミングチャート、２７１  開始ポイント、２７２  終了ポイント、２７３  カレント位置表示バー、２８１，２８２，２８３  タイミングチャート群、２９０  インターフェイス画面、２９１，２９４  エリア、２９２  アイテム、２９３  サブアイテム、２９５  チェックボックス群、３００  制御装置、３５０  サーバ装置。
【図１】
2018005453.tif 000003
【図２】
2018005453.tif 000004
【図３】
2018005453.tif 000005
【図４】
2018005453.tif 000006
【図５】
2018005453.tif 000007
【図６】
2018005453.tif 000008
【図７】
2018005453.tif 000009
【図８】
2018005453.tif 000010
【図９】
2018005453.tif 000011
【図１０】
2018005453.tif 000012
【図１１】
2018005453.tif 000013
【図１２】
2018005453.tif 000014
【図１３】
2018005453.tif 000015
【図１４】
2018005453.tif 000016
【図１５】
2018005453.tif 000017
【図１６】
2018005453.tif 000018
【図１７】
2018005453.tif 000019