(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-21
(45)【発行日】2023-05-01
(54)【発明の名称】安全性が要求されるプロセスを監視する自動化システム
(51)【国際特許分類】
G05B 19/042 20060101AFI20230424BHJP
G05B 9/02 20060101ALI20230424BHJP
【FI】
G05B19/042
G05B9/02 E
(21)【出願番号】P 2021509878
(86)(22)【出願日】2019-06-19
(86)【国際出願番号】 EP2019066172
(87)【国際公開番号】W WO2020038627
(87)【国際公開日】2020-02-27
【審査請求日】2021-04-13
(31)【優先権主張番号】102018120344.6
(32)【優先日】2018-08-21
(33)【優先権主張国・地域又は機関】DE
(73)【特許権者】
【識別番号】501493037
【氏名又は名称】ピルツ ゲーエムベーハー アンド コー.カーゲー
(74)【代理人】
【識別番号】110002310
【氏名又は名称】弁理士法人あい特許事務所
(72)【発明者】
【氏名】バコヴィック,ダニエル
(72)【発明者】
【氏名】ショホ,ウーヴェ
(72)【発明者】
【氏名】シュヴァイカー,マティアス
【審査官】藤崎 詔夫
(56)【参考文献】
【文献】特表2009-519525(JP,A)
【文献】特表2006-525565(JP,A)
【文献】特開2014-098985(JP,A)
【文献】特開2013-186903(JP,A)
【文献】米国特許第06487695(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/042
G05B 9/02
(57)【特許請求の範囲】
【請求項1】
安全性が要求されるプロセスを監視する自動化システム(100)であって、
危険が生じた場合、前記安全性が要求されるプロセスを安全な状態へ移すための安全機能(28)を実装したユーザプログラム(24, 26)を実行するために構成された非安全なプラットホーム(12)と、
前記安全性が要求されるプロセスを前記ユーザプログラム(24, 26)に接続し、前記ユーザプログラム(24, 26)により前記安全な状態が開始されるときに、前記安全性が要求されるプロセスの安全な状態への移行を実施するように構成されたフェイルセーフ周辺モジュール(20)と、
前記非安全なプラットホーム(12)上で前記ユーザプログラム(24, 26)のフェイルセーフな実行を監視するように構成された監視装置(70)と、を備え、
前記監視装置(70)は第1の通信インタフェース(72)を介して前記非安全なプラットホーム(12)に接続可能であり、前記フェイルセーフ周辺モジュール(20)は第2の通信インタフェース(74)を介して前記非安全なプラットホーム(12)に接続可能であり、
前記監視装置(70)は、前記非安全なプラットホーム(12)から独立して少なくとも1つのフェイルセーフサービス(76)を動かすように構成され、
前記フェイルセーフサービス(76)は、所定のスキームにしたがって、前記非安全なプラットホーム(12)を介して、前記フェイルセーフ周辺モジュール(20)と交換されるサイクリックなデータを生成し、
前記フェイルセーフ周辺モジュール(20)はさらに、前記所定のスキームに基づくデータ交換がされなかった場合に、前記安全性が要求されるプロセスを安全な状態へ移すように構成される、自動化システム。
【請求項2】
前記監視装置(70)は、前記非安全なプラットホーム(12)から前記所定のスキームに従うランダム値(R
)を受け取るように構成された、請求項1に記載の自動化システム。
【請求項3】
前記フェイルセーフサービス(76)は、連続的なカウント値(C)を生成するように構成された計数ユニット(78)と、前記所定のスキームに従うキー値(S)を生成するように構成されたエンコーダユニット(80)とを有する、請求項2に記載の自動化システム。
【請求項4】
前記エンコーダユニット(80)は、前記所定のスキームに従ってランダム値(R)および連続的なカウント値(C)からキー値(S)を生成するように構成される、請求項3に記載の自動化システム。
【請求項5】
前記第1の通信
インタフェースは、前記所定のスキームに従って連続的なカウント値(C)およびキー値(S)を前記非安全なプラットホーム(12)に送るようにさらに構成される、請求項3または請求項4による自動化システム、
【請求項6】
前記監視装置(70)は、ユーザにより非安全なプラットホーム(12)から着脱可能なスタンドアロン型のハードウェア構成要素で
ある、請求項1~請求項5のいずれか1項に記載の自動化システム。
【請求項7】
前記監視装置(70)は、前記フェイルセーフ周辺モジュール(20)に組み込まれている、請求項1~請求項5のいずれか1項に記載の自動化システム。
【請求項8】
前記第1の通信インタフェース(72)および/または前記第2の通信インタフェース(74)は、非安全な通信インタフェースである。請求項1~請求項7のいずれか1項に記載の自動化システム。
【請求項9】
前記監視装置(70)は、所定の時間のキー値(S)として、キー値(S)に対応しない誤った値を送信するように構成されている、請求項3~請求項8のいずれか1項に記載の自動化システム。
【請求項10】
前記監視装置(70)が、誤った値を生成するために前記キー値(S)の中の1ビットを逆にするように構成されている、請求項9に記載の自動化システム。
【請求項11】
前記フェイルセーフ周辺モジュール(20)は、
連続的なカウント値(C)およびランダム値(R)から中間値(S’)を生成するように構成された復号器(88) と、前記中間値(S’)をキー値(S)と比較するように構成された比較器(90) とを備える、請求項3~請求項10のいずれか1項に記載の自動化システム。
【請求項12】
前記復号器(88)および前記比較器(90)は、フェイルセーフな態様で実装される、請求項11に記載の自動化システム。
【請求項13】
前記フェイルセーフ周辺モジュール(20)は、前記比較器(90)が交互に動作するように起動可能および停止可能である第1の出力回路(91)および第2の出力回路(93)を含み、第1の出力回路(91, 93)および第2の出力回路(91, 93)の1つが交互に起動し、
前記フェイルセーフ周辺モジュール(20)は、前記第1および第2の出力回路(91, 93)の少なくともいずれか1つが起動されたときに、前記安全性が要求されるプロセスの安全な状態への移行を停止する、請求項12に記載の自動化システム。
【請求項14】
キー値(S)として誤った値が送信されたときに、前記フェイルセーフ周辺モジュール(20)は、2つの前記出力回路(91, 93)のうちの一方を介してタイムアウト信号を生成するように構成される、請求項13に記載の自動化システム。
【請求項15】
前記フェイルセーフ周辺モジュール(20)は、ランダム値(R)を生成するように、または、ランダム値(R)を受信するように構成された、安全な乱数発生器(86) を備える、請求項1~請求項14のいずれか1項に記載の自動化システム。
【請求項16】
前記フェイルセーフ周辺モジュール(20)は、スタンドアロン型のハードウェア構成要素である、請求項1~請求項15のいずれか1項に記載の自動化システム。
【請求項17】
前記監視装置(70)、前記フェイルセーフ周辺モジュール(20)のいずれか片方、または両方がマルチチャネル冗長設計されている、請求項1~請求項16のいずれか1項に記載の自動化システム。
【請求項18】
前記フェイルセーフ周辺モジュール(20)は、フェイルセーフなクロック発生器(112)を含む、請求項1~請求項17のいずれか1項に記載の自動化システム。
【請求項19】
危険が生じた場合、非安全なプラットホーム(12)上で、安全性が要求されるプロセスを安全な状態へ移すための安全機能(28)を実装したユーザプログラム(24, 26)のフェイルセーフな実行を監視するための監視装置(70)であって、
前記監視装置(70)は、第1の通信インタフェース(72)を介して前記非安全なプラットホーム(12)に接続可能で、前記非安全なプラットホーム(12)と独立して、少なくとも1つのフェイルセーフサービス(76)を走らせるように構成され、
前記フェイルセーフサービス(76)は、所定のスキームに従って、前記非安全なプラットホーム(12)を介して、フェイルセーフ周辺モジュール(20)と交換されるサイクリックなデータを生成し、
前記フェイルセーフ周辺モジュール(20)は、前記所定のスキームに基づくデータ交換がされなかった場合に、前記安全性が要求されるプロセスの安全な状態への移行を実施する、監視装置。
【請求項20】
安全性が要求されるプロセスを非安全なプラットホーム(12)に接続するためのフェイルセーフ周辺モジュール(20)であって、
前記非安全なプラットホーム(12)は、危険が生じた場合、前記安全性が要求されるプロセスを安全な状態へ移すための安全機能(28)を実施するためにユーザプログラム(24, 26)を実行し、
前記フェイルセーフ周辺モジュール(20)は、前記非安全なプラットホーム(12)に接続可能であり、
前記安全機能(28)が前記ユーザプログラム(24, 26)により開始されると、前記安全性が要求されるプロセスの安全な状態への移行を実施し、かつ前記非安全なプラットホーム(12)とは独立した監視装置(70)に実装されるフェイルセーフサービス(76)と相互に作用するように構成され、
前記フェイルセーフサービス(76)は、前記非安全なプラットホーム(12)を介して、前記フェイルセーフ周辺モジュール(20)と交換されるサイクリックなデータを所定のスキームに従って生成し、
前記フェイルセーフ周辺モジュール(20)はさらに、前記所定のスキームに基づくデータ交換がされなかった場合に、前記安全性が要求されるプロセスを安全な状態へ移すように構成される、フェイルセーフ周辺モジュール。
【請求項21】
自動化システムを用いて安全性が要求されるプロセスを監視する方法であって、
危険が生じた場合、前記安全性が要求されるプロセスを安全な状態へ移すための安全機能(28)を実装したユーザプログラム(24, 26)を実行するための非安全なプラットホーム(12)を用意し、
前記安全性が要求されるプロセスをフェイルセーフ周辺モジュール(20)を介して前記ユーザプログラム(24, 26)に接続し、前記フェイルセーフ周辺モジュール(20)は、前記ユーザプログラム(24, 26)により前記安全な状態が開始されるときに、前記安全性が要求されるプロセスの前記安全な状態への移行を実施し、
監視装置(70)によって前記非安全なプラットホーム(12)上で前記安全機能(28)のフェイルセーフな実行を監視し、
前記監視装置(70)は、第1の通信インタフェース(72)を介して前記非安全なプラットホーム(12)に接続可能であり、前記フェイルセーフ周辺モジュール(20)は第2の通信インタフェース(74)を介して前記非安全なプラットホーム(12)に接続可能であり、
前記監視装置(70)は、前記非安全なプラットホーム(12)から独立して少なくとも1つのフェイルセーフサービス(76)を走らせ、前記フェイルセーフサービス(76)は、前記非安全なプラットホーム(12)を介して、フェイルセーフ周辺モジュール(20)と交換されるサイクリックなデータを所定のスキームに従って生成し、
前記フェイルセーフ周辺モジュール(20)はさらに、前記所定のスキームに基づくデータ交換がされなかった場合に、前記安全性が要求されるプロセスを安全な状態へ移すように構成される、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は安全性が要求されるプロセス(safety critical process)を監視するための自動化システムに関し、さらには該自動化システムに関連する方法、プラットホーム上でユーザプログラムにより実装された安全機能を安全に実行するための監視装置、および安全機能を実施するためにユーザプログラムを実行するプラットホームを安全性が要求されるプロセスに接続するためのフェイルセーフ周辺モジュールに関する。
【背景技術】
【0002】
技術的な設備によりもたらされる、人々および環境に対するリスクを低下させるために、安全性が要求されるプロセスを監視する自動化システムが用いられる。
【0003】
この目的のために、危険が生じた場合、技術的システムまたは安全性が要求されるプロセスを安全な状態へ移すための各種安全機能が実装される。
【0004】
DIN EN ISO 13849-1およびDIN EN ISO 12100によれば、「安全機能」という用語は、機械に起因する危険率を許容可能なレベルに低下させる、機械の安全に関連する制御機能のことをいう。
【0005】
安全機能には、例えば、非常停止ボタンを押圧した後の機械のシャットダウンがある。
【0006】
最初、安全機能は個々の安全アセンブリ、例えばリレー技術を備えた安全切換装置の形で実装されていた。それは、監視される設備のための制御システムと独立して作用した。その後の開発において、安全切換装置は、より複雑な安全機能を実施するために、互いに論理的にリンクされた。
【0007】
今日では、安全コントローラは、さらに複雑なタスクのために用いられる。安全コントローラは、プログラマブルロジックコントローラ(PLC)に類似して、プログラミングによって安全性を相互接続することを可能にしたいという要求から、主として開発された。
【0008】
安全コントローラは、それらの実際の機能において、わずかにPLCコントローラと異なる。本質的には、安全コントローラは、ユーザプログラムを並行して実行し、入力/出力に同じプロセスイメージを使用して、常に互いに同期する2台のPLCコントローラに対応する。
【0009】
しかしながら、内部的には、安全コントローラの構造は、安全に関連する要件を満たすために、PLCコントローラとかなり異なる。
【0010】
すなわち、安全コントローラは、2本の別々のチャネル、異なるハードウェアを有する多重化された(diversitary)構造、各入力および各出力の連続テスト、ユーザデータの連続比較、電圧および時間監視、誤動作の場合または危険な状態における安全なシャットダウンを備えるという点で、PLCコントローラと一般に異なる。
【0011】
加えて、安全機能--特にCPU(中央処理装置)--に関係する構成要素は、フェイルセーフでなければならない。
【0012】
標準的な安全性を実装するために、特にIEC 61508に従ったSafety Integrity Level (SIL 3)を達成するために、CPUは、最初から冗長的に、すなわち各々を監視する少なくとも2つのCPUとして、使われた。
【0013】
標準のCPUに基づくフェイルセーフ自動化システムが特許文献1から公知である。故障制御手段は、ユーザプログラムに可能な限り組み込まれて、安全プロトコル、時間的なプログラムの流れ制御、論理プログラムおよびデータフロー制御、情報の冗長性によるデータの保護、多重化された処理、ならびにプロセス故障許容時間の範囲内での自己診断を含む。
【0014】
多重して行うことができないコマンドは、プロセス故障許容度時間の範囲内でテストされる。加えて、複数の誤り発生時間の範囲内で複数の誤りを検出するために、バックグラウンド試験が、CPUのオペレーティングシステムにより実行される。
【0015】
特許文献1に従う安全概念の不利な点は、言及されている障害管理手段がプロセッサ依存的であるということである。したがって、IEC 61508のSIL 3にしたがって、プロセッサのフェイルセーフ性が確保されなければならない。
【0016】
しかしながら、複雑なプロセッサにとって、プロセッサのFailure Mode Effect Analysis (FMEA) に基づく少なくとも99%の診断範囲(DC)は、もはや実行できない。
【0017】
特許文献1において使用されるプロセッサは、他方では、用意されたコードを直接処理する、複雑さの少ない特殊なASICである。
【0018】
したがって、プロセッサのフェイルセーフ性の証明を、正当な支出により実施することができる。
【0019】
しかしながら、他の標準的なCPUを使用するとき、対応するコードを直接実行することができない。その結果、対応するコードから機械コードを作るコンパイラも分析されなければならない。
【0020】
さらにまた、多層誤り検出のために、ハードウェアに関連するバックグラウンド試験が必要とされるが、標準CPUでは、それは実施されないかまたは充分な効果が得られるほど実装されない。よって、標準CPUを使用するときは別に実装する必要がある。
【0021】
プロセッサから独立したアプローチは、いわゆるSoftware Coded Processing (SCP) により施行される。
【0022】
SCPにより実行されるシステムは、実行中、一時的な、永続的なおよび系統的な故障を明らかにすることができる。
【0023】
加えて、異なるプログラム(関数型プログラム、ミドルウェア、オペレーティングシステム)の間の干渉を検出することができて、表示することができる。
【0024】
SCPの周知の変形例は、いわゆるAN-符号化、すなわちプログラムの各値が定数A、特に素数を乗算される算術符号である。Aの倍数でないシステムのすべての値および状態は、結果的に不適切な状態と考えられる。
【0025】
非特許文献1は、符号化された処理に基づいたフェイルセーフシステムに対する最初のアプローチを述べる。記載されているシステムは、入力信号を符号化するフェイルセーフ入力モジュールと、符号化された操作によって符号化された入力信号から状態および出力信号を算出して、それらの上に署名をつくる標準CPU(符号化されたモノプロセッサ)とを備える。
【0026】
フェイルセーフな動的コントローラは、前記標準CPUにより算出された署名を点検して、故障が生じた場合、安全な出力モジュールのスイッチを切る。
【0027】
この方法は、このように算術符号化(素数Aによる乗算)および署名方法(静的な署名、動的な署名)を統合して、CPUの複雑なFMEAを実行することなしに診断範囲のコンピュータによる決定を有効にする。
【0028】
非特許文献2は、SCPに基づいたフェイルセーフシステムの実用的な説明を記載する。
【0029】
この説明によれば、同じ安全機能を2つの異なる(多重化された)方法で(すなわちネイティブなまま、および符号化して)実行することに基づいて、特別な設計により、IEC 61508のような業界標準をサポートする。
【0030】
ネイティブな実行は、安全機能(ネイティブプログラム)のオリジナルなソースコードの実行に対応し、ネイティブな入力値および状態を処理する。このように、ネイティブな状態だけが処理され、ネイティブな実行の結果はネイティブな出力となる。
【0031】
符号化された実行においては、オリジナルな安全機能の符号化された形式が実行される(符号化プログラム)。
【0032】
これには、安全機能のオリジナルなソースコードが、あらかじめ変換され符号化されることが必要である。符号化されたプログラムは、符号化された入力値、符号化された状態で動作して、符号化された出力を生じる。
【0033】
ネイティブなプログラムおよび符号化されたプログラムは、同じ出力値で両方とも動作する。符号化された入力値については、ネイティブな入力値の符号化された変形(coded variant)である。状態および出力値に対しても同様に働く。
【0034】
ネイティブなプログラムおよび符号化されたプログラムは、いわゆる多重化フレームワークにより実行され、管理される。
【0035】
多重化フレームワークは、ソースコードを適切な注釈を伴って符号化することによって、オリジナルな安全機能のソースコードから発生する。
【0036】
多重化フレームワークは、2つのプログラム(ネイティブおよび符号化)の並行した実行を調整して、ネイティブなおよび符号化された各出力値について設定された各チェックサムを使用して故障のない実行を調べる。
【0037】
さらに多重化フレームワークは、いかなる制御フロー故障も出力チェックサムを変えるように、多重化フレームワークに制御フローチェックデータフローを集積させることによって、安全機能の制御フローを監視することができる。
【先行技術文献】
【特許文献】
【0038】
【文献】欧州特許出願公開第1 043 641 A2号明細書
【非特許文献】
【0039】
【文献】Form, P. : "Vital coded microprocessor principles and application for various transit systems"「さまざまな輸送システムのための不可欠な符号化マイクロプロセッサ原則およびアプリケーション」 in Perrin, J. P. : Control, Computers, Communications in Transportation. Selected Papers from the IFAC/IFIP/IFORS Symposium, Pergamon, Oxford, UK, 1990, p. 79-84
【文献】Suskraut, Martin and Kaienburg, Jorg: "Safety critical smart systems with software-coded processing" 「ソフトウェア符号化処理を備える安全性が要求される高性能なシステム」
【発明の概要】
【発明が解決しようとする課題】
【0040】
しかしながら、前述したSCPをベースにした方法の不利な点は、符号化された動作が多くのランタイムを犠牲にするということである。特に署名方法も用いられる場合、符号の生成は高コストであり複雑である。例えば、SPCでは、符号化されたプログラムは、ネイティブな変形と比べてより多くのビットの格納とプロセス値を必要とする。
【0041】
例えば、ネイティブなプログラムが32ビットデータ型を使用する場合、符号化されたプログラムは、32ビットデータ型の可能な最大値にAを乗算したものを少なくとも格納できるデータ型を使用しなければならない。
【0042】
したがって、ネイティブなプログラムが32ビットデータ型を使用する場合、符号化されたプログラムは通常64ビットデータ型が採用される。
【0043】
同様に、すべてのネイティブな動作は、対応する符号化された動作と置き換えられる。それは、ネイティブな動作より多くのランタイムを必要とし、その作成のための対応する複雑な一連のツールを必要とする。
【0044】
以上の背景に対して、本発明は、標準構成要素に基づいて、同時に標準対応の高安全カテゴリの安全機能の導入を可能にした、前述の不利な点を回避する安全な自動化システムを提供することを目的とする。
【課題を解決するための手段】
【0045】
本発明の一つの態様では、安全性が要求されるプロセスを監視する自動化システムが提供される。自動化システムは、安全機能を実施する複数のユーザプログラムを実行するためのプラットホームと、ユーザプログラムに安全性が要求されるプロセスを接続するためのフェイルセーフ周辺モジュールと、プラットホーム上で安全機能のフェイルセーフな実行を確実にするように構成された監視装置と、を備える。
【0046】
前記監視装置は第1の通信インタフェースを介してプラットホームに接続され、フェイルセーフ周辺モジュールは第2の通信インタフェースを介してプラットホームに接続されることができる。監視装置はプラットホームを介してフェイルセーフ周辺モジュールと相互に作用する。監視装置は、プラットホームとは独立して、少なくとも1つのフェイルセーフサービスを働かせるように構成される。フェイルセーフ周辺モジュールは、設置された安全機能およびフェイルセーフサービスに基づき、安全な状態信号を送るように構成される。
【0047】
本発明では、さらにまた、前記自動化システムの発明に対応する方法が提供される。
【0048】
本発明のさらに別の態様では、プラットホーム上のユーザプログラムに実装された安全機能のフェイルセーフな実行を確実にするための監視装置が設けられる。監視装置は、第1の通信インタフェースを介してプラットホームに接続可能であり、プラットホームを介して、フェイルセーフ周辺モジュールと相互に作用する。フェイルセーフ周辺モジュールは、実装された安全機能およびフェイルセーフサービスに基づいて安全な状態信号を送る。
【0049】
本発明のさらに別の態様では、安全性が要求されるプロセスをプラットホームに接続するためのフェイルセーフ周辺モジュールが設けられている。プラットホームは、安全機能を実施するためにユーザプログラムを実行する。フェイルセーフ周辺モジュールは、プラットホームに接続可能であり、プラットホームとは独立して設けられた監視装置に実装されたフェイルセーフサービスと相互に作用するように構成される。フェイルセーフ周辺モジュールは、実装された安全機能およびフェイルセーフサービスに基づいて安全な状態信号を送るように構成される。
【0050】
このように、プラットホームの外付け構成要素によって、任意のプラットホーム(特に非安全なプラットホーム)上で、主にソフトウェアによって実現される安全機能の安全な実施を確実にすることが、本発明の着想である。前記外付け構成要素は、可能な限り単純に設計される。
【0051】
換言すれば、低コストなプラットホーム上のソフトウェアに、複雑な安全機能を実装し、かつ、実装容易であってより少ない努力で保証され得る各構成要素によって、求められる固有の誤りに対する安全性を確保することが本発明の着想である。
【0052】
外付け構成要素--それは好ましくは専用ハードウエアとして実装されている--は、プラットホーム上のユーザプログラムの間違った実行、プラットホームそのものの不完全なふるまい、またはプラットホームとの通信の欠陥がある場合、プロセスの安全な状態が保証されるように相互に作用する。
【0053】
この目的のために、監視装置は、好ましくは当該監視装置をプラットホーム上の安全関連ランタイム環境と協働させることによって、ユーザプログラムのフェイルセーフな実行を確実にする。
【0054】
故障の場合、監視装置は、安全機能の実行を開始できる。特に、プラットホームと独立して、「Watch Dog」のようなプラットホームと独立して実行される他のサービスによって、フェイルセーフ周辺モジュールを通してプロセスを停止する。
【0055】
プラットホームは、開発の基礎およびユーザプログラムの実行に役立つソフトウェア、ハードウェア、または仮想プラットホームであり得る。特に、プラットホームは、非安全なプラットホーム、例えば標準のパソコン(PC)のような単一チャネル系であってもよい。
【0056】
あるいは、プラットホームは、クラウドコンピューティングの形で設けられることもできる。特にサービスとしてのインフラストラクチャ(IaaS)またはサービスとしてのプラットホーム(PaaS)があげられる。
【0057】
好ましい実施の形態において、プラットホームは、安全に関連するランタイム環境をすでに含むことができる。
【0058】
この明細書において、「安全でない」もしくは「非安全」とは、それ自体本質的安全が要求されるレベルで安全機能を実行するために、プラットホームが関連する安全上の必要条件を満たさないことをいう。
【0059】
フェイルセーフサービスは、ハードウェアまたはソフトウェア上で確実に、かつフェイルセーフに実装され得る単純なデータ処理機能または動作を実行してもよい。
【0060】
さらにまたそれらは、高安全のカテゴリであっても、関連する安全基準にしたがって、ほとんど労力なしに保証されることが可能である。
【0061】
したがって、監視装置は、少なくとも1つのフェイルセーフサービスの排他的な実行のために必要な事項に、限られる。
【0062】
監視装置は、通信インタフェースを介して、フェイルセーフ周辺モジュールに接続される。通信インタフェースは、フェイルセーフサービスによって発生するサイクリックなデータを、所定のスキームにしたがって後者に交換するために、特に非安全(すなわち1チャンネル)である。プラットホームを介して行われるデータ交換に基づいて、監視装置の適切な操作、およびこれに関連して、プラットホームの監視またはその上に実装された安全関連のランタイム環境が確実にされる。監視装置にエラーがあると、安全機能がトリガーされる。
【0063】
フェイルセーフサービスに加えて、監視装置には、プラットホーム、特にプラットホーム上で実行される安全関連のランタイム環境と相互に作用する他の装置が含まれる場合がある。安全関連のランタイム環境は、ユーザプログラムとは独立してプラットホーム上で実行される。
【0064】
したがって、本発明の利点は、任意の複雑さの安全機能を、標準のハードウェアまたは標準のアセンブリに実装でき、よって、単純な個別の構成要素によって補完されつつ、 最終的な安全性が確保されることである。
【0065】
したがって、本発明は、自動化システムの個々の構成要素を、必要なだけ安全であればよい安全機能の中に含ませるという原理に基づき、それにより、高い安全性が、各構成要素間の相互作用により達成される。
【0066】
したがって例えば、計算集約的なタスクはより高速で費用対効果の高いハードウェアに実装でき、必要な安全機能は専用のハードウェアによって補完される。専用ハードウェア自体は、複雑な安全機能を単独で実行することはできないが、単純なサービスの実行で、安全機能のフェイルセーフな実施を確実にする十分な計算能力を持つ。
【0067】
したがって、監視装置の実装は、安全機能を実行するプラットホームの実装よりも複雑ではない可能性がある。これにより、所管当局による認証は簡素化される。 有利なことに、安全関連の保護は、安全機能とは独立して実装されている。これにより、安全関連の認証は、個別に実装された安全機能とは独立して、基本的に起こり得る。
【0068】
安全機能自体のトリガーは、監視デバイスによって開始できる。実行はフェイルセーフ周辺モジュールに任されており、それは、自動化システムが標準の構成要素から構築されている場合、 どのような場合でも存在する必要がある。
【0069】
したがって、本発明の1つの焦点は、安全コントローラの個々の側面をさまざまな構成要素に配布することである。各構成要素は独自のフォーカスを設定し、そのフォーカスに合わせて最適化されている。 このようにして、安全性の高いカテゴリーの複雑な安全機能を費用対効果の高い柔軟な方法で実装できる。
【0070】
好適な改良において、監視装置は、プラットホームからランダム値、特にフェイルセーフ周辺モジュールによって生成されるランダム値を受け取るように構成される。
【0071】
このランダム値は、遠隔端末が適切に動いているかどうか容易に決定するために用いることができる。乱数発生器も、フェイルセーフな方法で容易に実装することができる。この改良は、フェイルセーフサービスの簡略な実施例に、都合よく寄与する。
【0072】
さらなる改良において、フェイルセーフサービスは、連続した数値を生成するように構成される計数ユニットと、キー値を生成するように構成されるエンコーダユニットを備える。
【0073】
フェイルセーフな計数ユニットおよびフェイルセーフ符号化ユニットは、フェイルセーフサービスを一緒に提供できる。フェイルセーフサービスを介して、実行しているプラットホームの充分なフェイルセーフ性を確保することができる。同時に、フェイルセーフ計数ユニットおよびフェイルセーフ符号化ユニットは、フェイルセーフ構成要素として実装するのが容易で、既成品のフェイルセーフモジュールとして常に用いられる。
【0074】
監視装置は、特に費用対効果的な方法でこのように実装することができる。
【0075】
好ましくは、計数ユニットおよび符号化ユニットは、フェイルセーフな方法、すなわち、これらのユニットの1つの欠陥が検出されることが計画的に確実にされるように実装される。例えば、カウンタおよびエンコーダは、マルチチャネル冗長なユニットであってもよく、かつ、マルチチャネル冗長なハードウェアに実装されてもよい。
【0076】
両方(カウンタおよびエンコーダ)とも、単純なユニットであるので、それらの固有誤差に対する安全性は、確実に保証されることができ、少ない努力によって検査されることができる。このように、この改良は、特に費用対効果的な方法で自動化システムの安全を実現するのに、さらに貢献する。
【0077】
さらなる改良において、エンコーダユニットは、ランダム値および連続的なカウント値からキー値を生成することができる。
【0078】
ランダム値は、プラットホームによって、または、それを通して、このように用意される(すなわち外部から監視装置に供給される)。
【0079】
監視装置は、好ましくは周期的に受信されるランダム値が時間とともに変化するかどうか、調べる。
【0080】
それと同時に、連続的なカウント値による符号化は、すべての数が通過されることを確実にする簡単な方法である。
【0081】
このように監視装置は、ランダム値を提供する乱数発生器がすべての値を本当に循環するかどうか、別に調べる必要はない。そを実施することは監視装置の弱い能力に鑑みて、困難を伴うだけである。
【0082】
このようにさらなる改良は、監視装置の費用対効果的な実現に寄与する。
【0083】
さらなる改良において、第1の通信インタフェースは、プラットホームに連続的なカウント値およびキー値を送るようにさらに構成される。フェイルセーフ周辺モジュールは、実装された安全機能、キー値、および連続的なカウント値に基づいて安全な状態信号を送るように構成される。
【0084】
この改良において、データ交換を容易に行うことができる。このデータ交換によってプラットホームで実行される安全機能の安全保護が保証される。
【0085】
さらなる改良において、監視装置は、ユーザによってプラットホームから着脱可能なスタンドアロンなハードウェア構成要素、特にハードウェアドングルである。
【0086】
この改良において、監視装置は、このようにハードウェア側のプラットホームから独立して実装され、例えば単純なUSBドングルとして、それに接続されることもできる。
【0087】
独立したハードウェアおよびこのハードウェアからプラットホームで実行される安全機能のカプセル化は、監視装置の独立した証明を可能にする。それは特に容易に、費用対効果の高い状態で実施されることができる。
【0088】
このように改良は、監視装置の特に好ましい実現にさらに寄与する。
【0089】
他の改良において、監視装置は、フェイルセーフ周辺モジュールに集積されることができる。
【0090】
この明細書において、「集積」ないし「一体化」とは、監視装置の個々の機能群がフェイルセーフ周辺モジュールのハードウェアに実装されることをいう。
【0091】
このことにより、各構成要素は、費用対効果の高い状態で、監視装置とフェイルセーフ周辺モジュールとに分配されることができる。
【0092】
例えば、フェイルセーフ周辺モジュールおよび監視装置は、共通の安全なハードウェア基盤を共有できる。
【0093】
この改良は自動化システムの単純な実現にこのように寄与する。その理由は、プラットホームに加えて、デバイスおよびフェイルセーフ周辺モジュールが集積される1つの別の構成要素が必要とされるにすぎないからである。
【0094】
さらなる改良において、第1のおよび/または第2の通信インタフェースは、非安全な通信インタフェースである。
【0095】
この改良において、通信インターフェイスは、それ自身において安全に関連の通信を確実にすることができるであろう安全なユニットではない。しかし、例えば、市販のUSBインターフェースである。
【0096】
この場合、監視装置とフェイルセーフ周辺モジュールとの相互に作用によって、安全性は、通信から独立して保証されることができる(Black-Channel-Principle)。
【0097】
この改良は、低コストの標準通信インタフェースを用いることが可能であるという利点がある。それは全体システムのコストを都合よくさらに減らすことができる。
【0098】
さらなる改良において、監視装置は、所定の時間に、キー値として、キー値に対応しない誤った値を送信するように、構成される。
【0099】
故意に誤った値を送信して、フェイルセーフ周辺モジュールの出力を読み込むことによって、監視装置のフェイルセーフ周辺モジュールとの安全な相互作用を、簡単な方法で試験することができる。
【0100】
好適な改良において、監視装置は、好ましくは繰り返し(in a rolling manner)、誤った値を生成するためにキー値の1ビットを逆にするように構成されることができる。
【0101】
監視装置はこのように、キー値としての誤った数値が予想どおり失敗に至るかどうか、好ましくは正しいキー値の1ビットを逆にして、周期的に調べる。
【0102】
8ビットの数値については、高いところにとどまった故障(stuck-on-high error)が、遅くとも8つの試験サイクルの後検出される。
【0103】
このようにさらなる改良は、安全性を改善することに寄与する。
【0104】
さらなる改良において、フェイルセーフ周辺モジュールは、連続的なカウント値およびランダム値から中間値を生成するための復号器と、中間値をキー値と比較するための比較器とを含む。
【0105】
フェイルセーフ周辺モジュールは、監視装置と相互に作用するために、監視装置に対する相補型手段を、このように備えていることができる。
【0106】
特に、復号器および比較器は、フェイルセーフな方法で実装されることができる。
【0107】
この改良は、監視装置が簡単な方法で実装されることを確実にするために、さらに貢献する。その理由は、フェイルセーフ周辺モジュールが監視装置に適合しているからである。
【0108】
全般的に見て、自動化システムを提案された構成要素に分割することによって、高安全カテゴリに適する費用対効果のよい自動化システムが達成可能である。
【0109】
さらなる改良において、フェイルセーフ周辺モジュールは、比較器が交互に動作する活性化と非活性化とが可能な第1の出力回路および第2の出力回路を含む。その結果、第1の出力回路または第2の出力回路は交互に起動する。第1または第2の出力回路が起動するときに、フェイルセーフ周辺モジュールは安全な状態信号を送る。このように、フェイルセーフ周辺モジュールは、スイッチのように起動および停止されることができる2つの出力回路を有することができる。
【0110】
好ましくは、各出力回路は、起動の後、所定の期間経過後に、それ自身を停止させるように構成される。このために、各出力回路は、例えば、単安定フリップフロップ(モノフロップ(monoflop)とも呼ばれる)を各々有することができ、そこにおいて比較器は交替に動作し、その結果、少なくとも1つの単安定フリップフロップがトリガされる。
【0111】
2つの単安定フリップフロップのうちの少なくとも1つがトリガされるときに、フェイルセーフ周辺モジュールは安全な状態信号を送る。
【0112】
フェイルセーフ周辺モジュールは、簡単な方法で始動および停止されることができる2つの出力回路を用いて、例えば単安定切り替え式のステージによって、好ましくは単純化されることができる。その理由は、冗長に動作する2台のプロセッサを有する通常のマルチチャネルの冗長な評価ユニットが必要でないからである。
【0113】
単安定フリップフロップまたは他のスイッチ様の部品は、プロセッサよりしばしば高価でないので、本実施例は、フェイルセーフ・アセンブリの費用対効果的な実装に寄与する。
【0114】
さらなる改良において、誤った値がキー値として送信されるときに、フェイルセーフ周辺モジュールは、2つの出力回路のうちの1つを介してタイムアウト信号を生成して、他の出力回路を介して同時に安全な状態信号を送るように、構成される。
【0115】
他方がテストされると同時に一方が保持されるように出力回路を制御することによって、監視装置およびフェイルセーフ周辺モジュールの適正な運用を、プロセスを安全な状態に実際に変えることなく確認することができる。
【0116】
したがって、この種の試験は、都合の良いことに、自動化システムの可用性を制限しない。
【0117】
さらなる改良において、フェイルセーフ周辺モジュールは、ランダム値(R)を生成する安全な乱数発生器を含む。あるいは、フェイルセーフ周辺モジュールは、ランダム値(R)を受信するように構成される。
【0118】
外側から監視装置に追加されるランダム値は、特にフェイルセーフ周辺モジュールによって、このように生成される。その結果、乱数発生器はその実装にあたって、フェイルセーフ周辺モジュールの安全な能力を利用できる。安全な乱数発生器の実装は、簡単な方法でこのように実現することができる。
【0119】
さらなる改良において、フェイルセーフ周辺モジュールは、スタンドアロンなハードウェア構成要素である。
【0120】
このようにして、フェイルセーフ周辺モジュールは、プラットホームと独立してフェイルセーフであるように設計され実装されることができる。
【0121】
フェイルセーフ周辺モジュールは、異なるプラットホームのために柔軟にこのように用いられることが可能である。そこにおいて、周辺モジュールの固有の誤りからの安全性は、それぞれに保証される。このようにさらなる改良は、自動化システムのフレキシブルな設計に寄与する。
【0122】
さらなる改良において、監視装置および/またはフェイルセーフ周辺モジュールは、マルチチャネル冗長設計であり得る。マルチチャネル冗長設計とは、フェイルセーフシステムを実施するための安全工学における周知の手順である。本発明によって、監視装置およびフェイルセーフ周辺モジュールが極力単純に設計されるので、マルチチャネル冗長設計も、特に費用対効果的な方法で実施することができる。
【0123】
さらなる改良において、フェイルセーフ周辺モジュールは、フェイルセーフなクロック発生器を含むことができる。さまざまな安全機能の実装のために、安全なクロック信号は、各種構成要素のフェイルセーフ性を確実にするために常に必要とされる。安全なクロック信号がフェイルセーフ周辺モジュールから出力されるので、追加的な安全な構成要素は必要とされない。
【0124】
このようにさらなるこの改良は、自動化システムの柔軟な設計に寄与する。
【0125】
今まで述べてきた事項、および以下で説明する事項は、それぞれの場合に示された組み合わせだけでなく、他の組合せ、または、単独でも、本発明の要旨を逸脱しない範囲で使用できる。
【0126】
本発明の実施の形態は、図面に示され、以下において、さらに詳細に説明される。
【図面の簡単な説明】
【0127】
【
図1】本発明の第1の実施の形態にしたがった自動化システムの略図を示す。
【
図2】さらなる実施の形態にしたがった自動化システムの安全モデルの略図を示す。
【
図4】実施の形態にしたがった自動化システムの故障ルーチンの状態図を示す。
【
図5】本発明の第2の実施の形態にしたがった自動化システムの概要図を示す。
【
図6】第2の実施の形態にしたがった2つの変形例を示す。
【
図7】第2の実施の形態にしたがった自動化システムの回路ブロック図を示す。
【発明を実施するための形態】
【0128】
図1において、第1の実施の形態に係る自動化システムの全体が、参照番号10によって示される。
【0129】
ここで、自動化システム10は、安全な自動化システムをともに形成するハードウェア構成要素およびソフトウェア構成要素を含む。
【0130】
この明細書において、「安全」とは、実装された安全機能のために、IEC 61508によるSafety Integrity Level 3が自動化システムにより達成されることを言う。
【0131】
本自動化システムは、データ処理装置およびコンピュータユニットとしての役割のプラットホーム12を含む。
【0132】
プラットホーム12は、専用ハードウエア14、リアルなもしくは仮想のコンピューティングシステム16、またはクラウドサービスとして設けられたインフラ基盤18であってもよい。プラットホーム12はまた、前述した器材の組合せから成ることもできる。
【0133】
プラットホーム12は、非安全なプラットホームでもよく、少なくとも部分的に非安全な構成要素から成っていてもよい。
【0134】
この明細書において、「非安全な」とは、それ単独で安全なシステムを実施することができる関連する安全基準という意味で、プラットホーム12の構成要素が充分な本質的安全を提供しないことを言う。
【0135】
プラットホーム12は、このように、例えば、市販のPCハードウェアから成ることができて、特に、標準のプロセッサを含むことができる。
【0136】
同様に、各種実施の形態で、プラットホーム、またはプラットホームの構成要素は、クラウドコンピューティングの形で設置されてもよい。
【0137】
プラットホーム12は、ハードウェア構成要素およびソフトウェア構成要素から成ることができる。例えば、プラットホーム12は、PCまたはラズベリーパイ(Raspberry Pi)といった、さまざまなLinux(登録商標)ディストリビューションのような非安全なリアルタイムオペレーティングシステム(RTOS)を実行する、非安全なデバイスであってもよい。
【0138】
自動化システム10は、さらに、プロセスからのフェイルセーフ入力およびプロセスへのフェイルセーフ出力のための、少なくとも1つのフェイルセーフな周辺モジュール20を備えていてもよい。
【0139】
フェイルセーフ周辺モジュール20は、プロセスに接続されるべき自動化システムを有効にする。
【0140】
周辺モジュール20のフェイルセーフ性は、周辺モジュール20と自動化システム10との間の安全に関連した通信と同様、この安全技術の分野で一般に知られている原理によって実施されるので、本願明細書において、さらに細かく議論することはない。
【0141】
プラットホーム12およびフェイルセーフ周辺モジュール20は、ともに安全な自動化システム10の基礎およびインターフェイスを形成する。その一方で、ユーザプログラム24, 26とともにプラットホームに設置された安全ランタイム環境22が、実際の安全機能28を実施する。
【0142】
この安全ランタイム環境22は、プラットホーム12とユーザプログラム24, 26との間に置かれるソフトウエア層であり、プラットホーム12から独立して、ユーザプログラム24, 26に安全な資源30を提供する。
【0143】
安全ランタイム環境22は、ユーザプログラム24, 26をロードして、それらをプラットホーム上で実行して、それらの相互接続を調整する。このように安全ランタイム環境22そのものは、ユーザプログラム24, 26が実行される小さなプラットホームを表す。
【0144】
好ましくは、ユーザプログラム24, 26は、プラットホーム12のために、特に形成される。すなわち、プラットホーム12で実行されるためのネイティブな機械コードに変換することができるプログラミング言語で書き込まれる。
【0145】
安全ランタイム環境22は、このように、ユーザプログラム24, 26を実行するための「オペレーティングシステム」でなく、ユーザプログラム24, 26のための安全な資源30を単にカプセル化するだけである。すなわち、ユーザプログラム24, 26に安全な資源30のフェイルセーフな実行を確実にすることを要求することなく、ユーザプログラム24, 26にそれらの安全な資源が含まれるようにすることができる。
【0146】
一方、安全ランタイム環境22は、プラットホームに特有の構成要素と、プラットホームに依存しない構成要素に分けられることが可能である。特に、安全な資源30は、安全ランタイム環境22が異なるプラットホームに容易に配送されることができるように、プラットホームに依存しない構成要素によって配置される。
【0147】
安全機能28は、いかなる安全機能、例えば非常停止、両手操作または遠隔入出力(I/O)であってもよい。
【0148】
安全機能28とは、このように、自動化システムに設置された安全に関連する制御機能である。
【0149】
安全に関連する制御機能は、並行して実行される2つのユーザプログラム24, 26によって実施されることができる。冗長であることに加えて、ユーザプログラムは、異なる方式のユーザプログラム24, 26によって同じ結果が取得される、すなわち多重化された(diversitary)設計であってもよい。
【0150】
コンピュータで使われている使用するプロセッサの構成要素が共通に反応しない(mutual non-reactivity)ことが証明されている場合、または共通に反応しない部分がプロセッサの同じ構成要素を使っていることが証明されている場合、コンピュータが完全に多重化されている(diversitary)と、言われる。この種の証明は通常ハードウェア試験を必要とするが、次の場合省略されることができる:(1)SCPの意味における符号化処理の場合、(2)本開示にしたがった自動化システムであって、これらのハードウェア試験が追加試験および安全ランタイム環境の安全な資源30で補償されることができて、外部から証明可能である場合。
【0151】
好ましい実施の形態において、第2のユーザプログラム26が、第1のユーザプログラム24に関する多重化データで動作し、同じ計算ステップのための異なる命令を使用しているのであれば、第1および第2のユーザプログラム24, 26間の多重化は成し遂げられる。
【0152】
逆データ(inverse data)の使用は完全な多重化を提供しないが、それは安全ランタイム環境22およびその試験31に関連した充分なフェイルセーフ性を許す充分な多重化を提供する。
【0153】
逆データによって働くプログラムバージョン(以下、逆ユーザプログラムと記載する)は、所定の変換スキームに従って、ネイティブなプログラムバージョンから自動的に容易に生成される。
【0154】
逆ユーザプログラムは、ネイティブなユーザプログラムに比較される作業によって、このように実行されることができる。
【0155】
さらにまた、SCPの意味における符号化ユーザプログラムとは異なり、逆ユーザプログラムは、逆データを使った計算が同じ算術に基づくので、同じデータ型によって動作することができて、同じ命令セットを参照する。
【0156】
したがって、逆ユーザプログラムは、算術符号化(例えばAN符号化)に基づく符号化ユーザプログラムより複雑でない。
【0157】
加えて、ネイティブなプログラムバージョンから逆プログラムバージョンを作成するための一連のツールは、より少ない努力で実行することができる。簡略な一連のツールのため、他のシステムに対する速い移植(porting)または他のプログラミング言語の使用が可能である。全体の柔軟性はこのように増大する。
【0158】
したがって、この概念は、とりわけ、SCPに従ってコード化された処理が、ここで提案する多様な処理よりも明確かつ確実にアプリケーションプログラムの実行エラーを明らかにできるが、そうするために必要な努力が正当化されないという仮定に基づいている。なぜなら高い安全分類を達成するためには、アプリケーションを安全モデルに統合することが常に必要であるからである。
【0159】
したがって、個々の構成要素の本質的なフェイルセーフ性、例えばSCPを介したユーザプログラムの本質的なフェイルセーフ性を高める代わりに、全体の評価を実行し、自動化システムの個々の構成要素を必要に応じて安全なものにするという概念である。
【0160】
よって、全体として安全な自動化システムが構築でき、それは高い安全レベルに応じた安全機能を実現できる。
【0161】
このように、本概念の1つの焦点は、自動化システムの個別の構成要素、すなわち、特にユーザプログラム24, 26、安全ランタイム環境22およびプラットホーム12を、できるだけ単純かつフレキシブルにすることであり、これにより、安全性、複雑さ、ポータビリティ間のバランスされたトレードオフが自動化システムのすべてのレベルで成し遂げられる。
【0162】
図2は、好ましい実施の形態にしたがった自動化システムの安全モデルの略図を示す。
【0163】
ここで、安全ランタイム環境22は、非安全なリアルタイムオペレーティングシステム34を有する非安全なデバイス32の上で展開される。非安全なデバイス32および非安全なリアルタイムオペレーティングシステムは、一緒にプラットホーム12を形成する。
【0164】
一方では、安全ランタイム環境22はソフトウエア層であり、資源層36において、プラットホーム12から独立してユーザプログラム24, 26に安全な資源30を提供し、他方では、ユーザプログラム24, 26および後者により実装される安全機能を監視するためのローカルで安全なインスタンス38を形成する。
【0165】
さらにまた、ユーザプログラム24, 26は、安全な周辺モジュール20を介して監視されるプロセスに接続している。
【0166】
安全ランタイム環境22は、安全なデバイスによって、監視されることができる。安全なデバイス(以下「安全ペースメーカー(SPM)40」と呼ばれる)とは、例えば市販のUSBスティックの形の、1または複数の単純なマイクロコントローラ(例えばPICおよび/またはAVR)を有する単純なハードウェアドングルであってもよい。
【0167】
ハードウェアドングルがUSBインターフェースに限られていないことが理解される。例えば、SPM40はイーサネット(商標)、RS232または他の通信インタフェースを介して接続されることもできる。
【0168】
SPM40は、第2の、好ましくは外部の、安全なインスタンス41を実装する。
【0169】
この第2の安全なインスタンス41は、故障の選択的な注入によって、安全ランタイム環境22、特に第1のローカルで安全なインスタンス38をテストする。
【0170】
故障の注入は、外部の安全なインスタンス41により起動される安全ランタイム環境22のサービスおよびマニピュレータを介して、行われる。
【0171】
このことにより、安全ランタイム環境22のデータ比較器、システムクロックおよびタイマー試験を点検できる。よって、ユーザプログラム24, 26の開発の間、適切な試験を考慮しなくてもおよび/または実施しなくても、ユーザプログラム24, 26の実行における故障を開示できる。
【0172】
このように、アプリケーションプログラマがユーザプログラムのフェイルセーフ性を考慮することを必要とすることのないシングルチャンネルの態様で、第1のユーザプログラム24を書き込むことができる。
【0173】
第1のユーザプログラムの多重化である第2のユーザプログラム26は、適切な一連のツールによって、自動的に発生できる。
【0174】
このことにより、アプリケーションの開発者は、実際の安全機能を実施することだけに集中できる。
【0175】
好ましい実施の形態において、SPM40は、特にフェイルセーフ周辺モジュール20で第2のシャットダウンパスを実行するために、安全クロック信号42をさらに提供できる。
【0176】
図3は、発明の実施の形態に係る自動化システム10が埋め込まれた設計上のモデルを示す。
【0177】
このアーキテクチャモデルは、基本的に3つの構成要素を備える。これらは、自動化システム10、前述したSPM40などの外部安全ユニット、および2つの構成要素間をつなぐ通信インタフェース44である。
【0178】
全3つの構成要素は、ハードウェアに特異的でない層46およびハードウェアに特有の層48を含むことができる。
【0179】
自動化システム10において、安全ランタイム環境22は、システムアブストラクション層(SAL)と呼ばれているハードウェアに特有の構成要素を用いてハードウェア特異的でない層46から、ハードウェアに特有の層48を切り離す。
【0180】
SAL 50は、オペレーティングシステム52およびいかなる付随するハードウェア54からも安全ランタイム環境22を抽出する。
【0181】
オペレーティングシステムドライバ58により駆動される特別なハードウェア56は、スタンドアロンSALドライバ60によって、抽出されてもよい。
【0182】
ハードウェア特異的でない層46において、自動化システム10は、資源層36を実装する。資源層36は、安全な資源すなわち安全なリソースを提供し、本願明細書に示すように(36a,36b)、それは好ましくは冗長で、多重化(diversitary)されている。
【0183】
資源層36は、プロセスデータとともにタイマーを各チャネルに提供できる。加えて、資源層36は、安全性に関連する機能(例えば安全なCRC算出)を提供してもよい。
【0184】
アプリケーションマネージャ62a, 62bは、資源層36の上にあり、好ましくは1つのアプリケーションマネージャがそれぞれのユーザプログラム24, 26のために働く。
【0185】
アプリケーションマネージャは、始動時、かつCRCの時に、2つのアプリケーションプログラム24, 26の整合性を点検する。
【0186】
アプリケーションマネージャ62a, 62bは、さらに、アプリケーションプログラムを周期的に呼び出すときに、それらの実行を監視し、APIに提供する。
【0187】
APIは、出力を設定し、入力を読み込み、および、アプリケーションタイマーを始動して読み込むための機能を含むことができる。
【0188】
本願明細書において示されるように、アプリケーションマネージャ62a, 62bは、二重化された多重設計であり得る。
【0189】
自動化システム10の安全ランタイム環境22は、ローカルで安全なインスタンス38をさらに実装する。ローカルで安全なインスタンス38は、必要な複数の安全タスクを遂行できる。安全タスクは、RAMおよびROMの各試験、サイクルおよびシーケンスの監視、およびタイマーの試験を含むことができる。
【0190】
さらにまた、ローカルで安全なインスタンス38は、ユーザプログラム24, 26のプロセスデータの整合性チェックを実行できる。
【0191】
この目的のために、ローカルで安全なインスタンス38は、一度だけシステム上で走ることができて、SPM40を介して外部から点検されることができる。
【0192】
SPM40は、例えば、公知の方法でアプリケーションの安全な実行をさせることができる2台の冗長なプロセッサ64a, 64bにより形成される安全なハードウェアを含むフェイルセーフデバイスである。
【0193】
SPMは自動化システム10のユーザプログラムに関して、制御のためにユーザプログラムを実行しないので、ハードウェアは単純な設計であってもよい。
【0194】
特に、特別な安全な複数のCPUがプロセッサ64a, 64bのために使われことができる。そのフェイルセーフ性は、例えばFMEAによって、実際に保証されることができる。
【0195】
第2の安全なインスタンス41は、SPM40上で実行されることができる。
【0196】
第2の安全なインスタンスは、ハードウェアに依存しない方法で実装されることができて、アブストラクション層66によって、ハードウェアから切り離されることができる。
【0197】
第2の安全なインスタンス41は、自動化システム10の第1の安全なインスタンス38に、通信インタフェース44を経て接続されてもよい。
【0198】
通信インタフェース44は、特別な安全設計のない単チャネルの通信インターフェイスでもあってもよい。
【0199】
通信のフェイルセーフ性は、自動化システム10のローカルで安全なインスタンス38と、Black-Channel-Principalを経た外部安全装置の第2の安全なインスタンス41との協働によって、確保することができる。
【0200】
好ましい実施の形態において、安全ランタイム環境22およびSPM40は、時間監視(time-out monitoring)を伴う固定された周期において、互いに通信する。
【0201】
SPM40により促されると、データ(例えばタイマ値、シーケンス制御など)がある時点で故意に偽造される(deliberately falsified)。
【0202】
この目的のために、安全ランタイム環境22は、例えばSPM40が安全ランタイム環境22にマニピュレータの対応するIDを送ることによって、SPM40により起動できるマニピュレータを有する。
【0203】
SPM40はその後、安全ランタイム環境22からの適切な誤り応答を期待する。
換言すれば、SPM40は、マニピュレータIDが送信されたあと、安全ランタイム環境22に特定の挙動を求める。
【0204】
安全ランタイム環境22は、マニピュレータのため、ユーザが検出できる故障を持つことができないか、または意図的な改ざんのために出力をシャットダウンすることもできない。
【0205】
したがって、故障は、安全ランタイム環境22によって、捕捉されなければならない。
【0206】
本概念は、プログラムが走っているときに、リアルタイムでシステムの挙動をテストすることを可能にする。
【0207】
図4は、SPM40および自動化システム10が、チェックの間、とることができる状態を示す状態図である。
【0208】
正常状態Aにおいて、安全ランタイム環境22は、故障を待って反応する。
【0209】
この状態で、安全ランタイム環境22がSPM40から、好ましくは所定のビットマスクを含むマニピュレータIDを受け取れば、対応するマニピュレータが起動する。安全ランタイム環境22は、状態Bへ移行し、そこにおいて、対応する故障に対する感度が減じられる(desensitized)。その後、データの操作が、故障を模擬するために行われる。好ましくは、データは、受信したビットマスクによってXORされる。その結果、故障ビット位置はSPM40によって、ならされる(rolled)ことができる。
【0210】
操作に応答して、安全ランタイム環境22は、SPM40が期待する適切な誤り応答を生成しなければならない。期待が発生しない場合、安全ランタイム環境22および/またはSPM40は、例えば別の第2のシャットダウンパスを使用して、安全なシャットダウンをトリガできる。
【0211】
好ましい実施の形態において、第2のシャットダウンパスは、SPM40と安全な周辺モジュール20との相互作用によって実装されてもよい。しかしながら、他のシャットダウン手段も考えられることは言うまでもない。
【0212】
試験が正常に完了する場合、安全ランタイム環境22は正常状態Aに戻る。しかしながら、感度抑圧(desensitization)の間に本当の故障が発生する場合、それは感度抑圧によって捕えられ、試験は不成功に終わり、拘束されない(non-catch)故障メッセージがSPM40に向けて発信される。
【0213】
SPM40による外部試験については、ローカルで安全なインスタンスにおいて単一チャネルの方法により実施されるすべての試験は、別個に検査されることができる。例えば、外部試験は、以下の1チャネル試験を検査できる:入力データの比較、出力データの比較、RAM試験、ROM試験、タイマー試験、サイクル監視、安全ランタイム環境の失効監視22、およびユーザプログラムの失効監視24, 26。
【0214】
図5は、本発明の第2の実施の形態にしたがった自動化システムの略図を示す。
【0215】
第2の実施の形態による自動化システムは、参照番号100によって、その全部が示される。同一参照番号を有する構成要素は、第1の実施の形態における同じ構成要素を意味し、ここで再び説明されない。
【0216】
ここで、自動化システム100は、3つの構成要素を別個に含む。
【0217】
第1の構成要素は、非安全なプラットホーム12に設置された自動化システム10である。特に、この自動化システムは、2つのユーザプログラム24, 26によって、安全機能28を実施するように構成される。よって、第1の構成要素は、第1の実施の形態に関して記載されていた自動化システムを含む。
【0218】
しかしながら、第1の構成要素がこの種の実施例に限られないことが理解されよう。いかなる自動化システムも第1の構成要素として適切である。
【0219】
第2および第3の構成要素は、監視装置70およびフェイルセーフ周辺モジュール20である。監視装置70は、特に、参照番号40を用いて前述されていたSPMであってもよい。
【0220】
監視装置70およびフェイルセーフ周辺モジュール20は、第1の通信インタフェース72および第2の通信インタフェース74を介して自動化システム10に接続される。
【0221】
自動化システムとの通信に加えて、第1の通信インタフェース72および第2の通信インタフェース74は、監視装置70とフェイルセーフ周辺モジュール20との間の通信を同様に有効にする。換言すれば、監視装置70は、プラットホーム12を経由してフェイルセーフ周辺モジュール20と通信できる。
【0222】
第1の通信インタフェース72および第2の通信インタフェース74は、1チャネル設計の通信インタフェース、たとえば市販のUSBインターフェースであってもよい。他の通信インタフェース(例えばEthernet、RS232、その他)も同様に考えられるものと理解される。
【0223】
この監視装置70は、フェイルセーフサービス76を提供するように構成されたスタンドアロン型のハードウェア構成要素であってもよい。フェイルセーフサービス76は、ソフトウェアまたはハードウェアで実施することができ、真正の(intrinsic)フェイルセーフ性は適切な手段によって、保証される。適切な手段とは、例えば、マルチチャネル冗長設計を有するサービス、または自体が公知のマルチチャネルの冗長なハードウェア上で実行されるまたはサービスがあげられる。その結果、サービス76のフェイルセーフな動作が保証され、テストされることができる。
【0224】
フェイルセーフ設計は、ここで示される形に限られないものと理解される。例えば真正のフェイルセーフ性を得るため当業者に知られている他の手段も考えられる。
【0225】
フェイルセーフサービス76は、好ましくは単純なサービス、例えば計数ユニット78およびエンコーダユニット80である。フェイルセーフサービス76は、このように単純で、複雑さの少ないハードウェア上で実施されることができる。
【0226】
例えば、監視装置70のハードウェアは、1つもしくは複数の単純なマイクロコントローラ、ASICもしくは類似の計算装置を含むことができ、または個別の電気部品から成ることができる。
【0227】
マイクロコントローラを使用するときに、それらの命令セットはできるだけ制限されなければならない。その結果、真正のフェイルセーフ性に関する証明が低コストで可能になる。
【0228】
好ましい実施の形態において、監視装置70のハードウェアは、計数ユニット78およびエンコーディングユニット80を実行可能であるように、限定されることができる。
【0229】
フェイルセーフサービス76は、安全機能28の実装にかかわらず、非安全なプラットホーム12に故障が生じた場合さえ安全なシャットダウンを確実にするために、フェイルセーフ周辺モジュール20と作用しあう。
【0230】
好ましい実施の形態において、監視装置70は、それ自身、この目的のためのいかなる安全関連手段も持っていない。すなわち、監視装置は、安全性が要求されるプロセスのシャットダウンパスとして制御できるそれ自身の専用の安全な出力を持っていない。その代わりに、安全性が要求されるプロセスに対する接続は、フェイルセーフ周辺モジュール20を介して提供されることができるだけである。
【0231】
特に好ましい実施の形態では、監視装置70は、追加試験をユーザプログラム24, 26に提供するために、プラットホーム12に実装された安全ランタイム環境22と相互作用する安全インスタンスの形のテストデバイス82を備える。
【0232】
好ましくは、第1の実施の形態に関連して前述したように、安全ランタイム環境22は、ユーザプログラムに特化しない方法で実装され、それは異なる自動化システム10で同一のものである。
【0233】
このように、統一されたテストデバイス82は、異なるプラットホーム12上のさまざまな安全機能28の安全性を独立してテストするために用いることができる。
【0234】
監視デバイス70自体は、プロセスを安全な状態に移行するために、フェイルセーフ周辺モジュールとともに、最後の手段(ultima ration)として使用される。
【0235】
監視装置70はこのように、付加的な装着のないさまざまな自動化システムに用いられることが可能である。さらにまた、監視装置70は、故障の場合には、他の監視装置に単に置き換えられることが可能である。
【0236】
このように第2の実施の形態によれば、安全な制御システムを、異なる、特にハードウェアに非特異的な複数の要素に分けることが本質的である。
【0237】
この点に関しては、第1の要素の焦点は、安全機能28の実装のためにできるだけ可能なコンピュータ容量を提供して、付随するユーザプログラム24, 26の容易な開発を有効にすることである。
【0238】
一方では、第2および第3の要素の焦点は、提供されたサービス76のフェイルセーフ性が信頼性をもって、かつ、費用対効果の高い状態で保証されるように、できるだけ単純にこれらのためのハードウェアを設計することである。
【0239】
図6は、第2の実施の形態にしたがった自動化システムの2つの変形例を示す。
【0240】
第1の変形例(上の図に示される)において、自動化システム100の3つの構成要素は、それぞれスタンドアロンのハードウェア構成要素である。
【0241】
監視装置70およびフェイルセーフ周辺モジュール20の両方は、ハードウェア構成要素としての設定される。
【0242】
第1の通信インタフェース72は監視装置70を自動化システム10に接続し、第2の通信インタフェース74はフェイルセーフ周辺モジュール20を自動化システム10に接続する。
【0243】
このように、監視装置70とフェイルセーフ周辺モジュール20の間の通信は、好ましくは、自動化システム10を介してのみ行われる。
【0244】
離れた構成要素を有するこの変形例は、各構成要素が別個に製造および供給されることができるという効果を奏する。
【0245】
よって、監視装置70は、複数の互いに異なる周辺モジュール20と連動して用いられることが可能である。
【0246】
自動化システム100はこのように、それぞれの要件に適応することができ、周辺モジュール20だけを交換するだけでよい。
【0247】
第2の変形例(下の図に示される)において、監視装置70およびフェイルセーフモジュール20は、共通のハードウェアにて実装されている。
【0248】
第1の論理的な通信インタフェース72および第2の論理的な通信インタフェース74は、自動化システム10への単一の物理的な接続により実装されている。
【0249】
共通のハードウェアへの集積化にもかかわらず、監視装置70とフェイルセーフ周辺モジュール20の間の通信は、自動化システム10を介して第1の通信インタフェース72および第2の通信インタフェース74を通じて伝送されることが可能である。
【0250】
換言すれば、監視装置70およびフェイルセーフ周辺モジュール20は、共通のハードウェアへの集積にもかかわらず、2つの独立した論理ユニットとして実装される。
【0251】
都合のよいことに、この変形例では、共通の安全なハードウェア基板を、監視装置70およびフェイルセーフモジュール20のために用いることが可能である。
【0252】
例えば、フェイルセーフ周辺モジュールの機能は監視装置70の機能とともに、マルチチャネルの冗長な方法で動作する共通プロセッサに実装されることができる。
【0253】
さらにまた、この変形例では、1つの物理的な通信インタフェースは、第1の通信インタフェースおよび第2の通信インタフェースを実装するのに十分である。このことにより、安全な自動化システム100を、特に好ましい態様で実施することができる。
【0254】
図7は、第2の実施の形態にしたがった自動化システムの回路図を示す。
【0255】
自動化システム100は、監視装置70、自動化システム10、およびフェイルセーフ周辺モジュール20を含み、それぞれがスタンドアロンのハードウェア構成要素である。
【0256】
本実施の形態において、個別構成要素間の通信は、USBインターフェースを介して行われる。したがって、第1の通信インタフェース72および第2の通信インタフェース74は、それぞれUSB接続されている。
【0257】
監視装置70は、さらに、フェイルセーフサービス76を実施するための計数ユニット78およびエンコーダユニット80を備える。
【0258】
計数ユニット78は、内部カウンタを連続的にインクリメントすることができて、カウント値Cをエンコーダユニット80に提供できる。さらに、カウント値Cは、通信インタフェース72、74を介して、フェイルセーフ周辺モジュール20に送信されることができる。
【0259】
エンコーダユニット80は、自動化システム10からランダム値Rを受け取る。
【0260】
ランダム値Rは、フェイルセーフ周辺モジュール20の中の乱数発生器86によって生成される。
【0261】
エンコーダユニット80は、ランダム値Rおよびカウント値Cからキー値Sを生成して、このキー値を、自動化システム10を介してフェイルセーフ周辺モジュール20に送信する。
【0262】
監視装置70は、自動化システム10によって好ましくは周期的に送信されるランダム値が、時間とともに変化するかどうか調べる。
【0263】
キー値Sは、ランダム値Rおよび連続カウンタCの両方に基づくので、すべての数が少なくとも一回循環されることが保証される。このように、監視装置70は、乱数発生器(それはランダム値を生成する)がすべての値を実際に循環するかどうかを調べる必要がない。
【0264】
この種の評価は、計算負荷が集中するので、好ましい実施の形態における監視装置70の限られた計算容量によっては、実行するのが困難である。
【0265】
フェイルセーフ周辺モジュール20は、監視装置70の中に用意された複数の相補型ユニットを有している。これらの相補型ユニットは、専用のユニットとして設計されることができるか、またはソフトウェアモジュールの形で実装されることができる。
【0266】
ここで、フェイルセーフ周辺モジュール20は、復号器88と、相補型ユニットとして構成された比較器90とを含む。
【0267】
復号器88は、連続的なカウント値Cと、ランダム値Rのコピーとを受け取って、それらから比較値S’を生成する。
【0268】
受信したキー値Sおよび生成された比較値S’が同一である場合、フェイルセーフ周辺モジュール20は安全状態を信号として送る。
【0269】
好ましい実施の形態において、復号方法は、フェイルセーフ周辺モジュール20の復号器88のみが知っている。一方、符号方法は監視装置70のエンコーダユニット80のみが知っている。
【0270】
ここで示される好ましい実施の形態において、安全な状態信号は、第1の単安定フリップフロップ92を含む第1の出力回路91および第2の単安定フリップフロップ94を含む第2の出力回路93によって送られる。
【0271】
比較器90は、スイッチ96を介して、単安定フリップフロップ92, 94上の2つの出力回路91, 93上で交互に動作する。
【0272】
フェイルセーフ周辺モジュール20は、2つの単安定フリップフロップ92, 94のうちの少なくとも1つが起動されるときに、安全状態を示す。
【0273】
正常動作において、比較器90が信号を連続的に供給しているとき、すなわちキー値Sと生成された中間値S’との比較が連続的に成功しているとき、両方の単安定フリップフロップ92, 94は常に起動される。すなわち、新しいキーが送信されるサイクルタイムは、単安定フリップフロップ92, 94の保持時間に対応する。
【0274】
フェイルセーフ周辺モジュール20が安全な状態信号を正しく送るかどうか試験するために、監視装置70は、正しいキー値Sの1ビットを逆にすることによって、誤ったキー値を作り出す。
【0275】
その結果、比較器90は、キー値Sと生成された中間値S’との間に不一致を検出して、スイッチ96への信号を遮断する。
【0276】
その結果、2つの単安定フリップフロップ のうちの1つは、初めに停止し、もはや出力端子に信号を出力しない。
【0277】
これは、単安定フリップフロップの下流にある論理回路98により検出されることができ、それによって、タイムアウト信号102が発生する。
【0278】
タイムアウト信号102は監視装置70によって読み込まれることができ、キー値Sとしての誤った数値が2つの単安定フリップフロップの1つの予期された結果(expected drop)となるかどうかを決定することができる。
【0279】
1つの単安定フリップフロップだけが試験の間に停止するので、停止した単安定フリップフロップが正しいキー値Sによって、タイムリーに再トリガされるならば、フェイルセーフ周辺モジュールは安全な状態信号を送り続ける。
【0280】
再トリガが時間内に実行されない場合、第2の単安定フリップフロップも停止し、フェイルセーフ周辺モジュール20は非安全な状態信号を送ることになる。本実施の形態において、非安全な状態信号を送ると、安全な出力104が停止される。
【0281】
単安定フリップフロップ 92, 94を備えるこの実施例は、出力回路91, 93の1つの可能な具体例にすぎないことを理解すべきである。
【0282】
2つの分岐は、起動、停止が可能であればよく、異なって設計されることもできる。
【0283】
好ましくは、出力回路は、起動後、所定の期間の経過後それ自身を停止させるように調整される。しかしながら、あるいは、外部源からの停止も考えられる。
【0284】
本願明細書において、ここに例示されたウォッチドッグ原則を実装する構成要素に加えて、フェイルセーフ周辺モジュール20は、ウォッチドッグ保護と結合されることができる追加試験器を備えていることができる。
【0285】
例えば、第1の入力レジスタに加えて、2つのさらなる入力レジスタ108, 110を設けてもよい。入力レジスタ108, 110は、前の値およびアドレス破損が検出されることができる次の値を含む。
【0286】
さらに、フェイルセーフ周辺モジュール20は、さまざまな安全関連のアプリケーションのために使用可能である安全なクロック信号を供給する安全なクロック発生器112を含むことができる。
【0287】
そのような応用の一つは、例えば、フェイルセーフ周辺モジュール20の安全な出力104に作用でき、安全な電源供給を監視する電圧監視デバイス114であってもよい。
【0288】
故障が発生したときに、安全性が要求されるプロセスが単独で再開するのを防止する再起動ロック116を実装することも考えられる。
【0289】
本願明細書において例示された実装形態は、自動化システム100がどのように本発明にしたがって実装されるかを示す1つの例であることを理解されたい。他の変形例がこの開示の範囲内で考えられるものと理解される。原則として、本出願の保護の範囲は、請求項によって与えられ、説明または図に示される特徴により制限されることはない。