(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-27
(45)【発行日】2023-01-11
(54)【発明の名称】安全性が要求されるプロセスを監視する自動化システム
(51)【国際特許分類】
G05B 19/042 20060101AFI20221228BHJP
G05B 9/02 20060101ALI20221228BHJP
【FI】
G05B19/042
G05B9/02 E
(21)【出願番号】P 2021509888
(86)(22)【出願日】2019-06-19
(86)【国際出願番号】 EP2019066170
(87)【国際公開番号】W WO2020038626
(87)【国際公開日】2020-02-27
【審査請求日】2021-04-13
(31)【優先権主張番号】102018120347.0
(32)【優先日】2018-08-21
(33)【優先権主張国・地域又は機関】DE
(73)【特許権者】
【識別番号】501493037
【氏名又は名称】ピルツ ゲーエムベーハー アンド コー.カーゲー
(74)【代理人】
【識別番号】110002310
【氏名又は名称】特許業務法人あい特許事務所
(72)【発明者】
【氏名】シュヴァイカー,マティアス
(72)【発明者】
【氏名】バコヴィック,ダニエル
(72)【発明者】
【氏名】ショホ,ウーヴェ
【審査官】今井 貞雄
(56)【参考文献】
【文献】特表2009-519525(JP,A)
【文献】特開2013-136358(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/042
G05B 9/02
(57)【特許請求の範囲】
【請求項1】
安全性が要求されるプロセスを監視するための自動化システム(10)であって、
ユーザプログラム(24, 26)を実行するためのプラットホーム(12)と、
フェイルセーフ周辺モジュール(20)を介して、前記安全性が要求されるプロセスが前記ユーザプログラム(24, 26)に接続されることができる、前記フェイルセーフ周辺モジュール(20)と、
安全機能(28)をともに実施する、第1のユーザプログラム(24)と、前記第1のユーザプログラム(24)に対する多重化である第2のユーザプログラム(26)と、
前記プラットホーム(12)と前記ユーザプログラム(24, 26)との間のソフトウェア層として前記プラットホーム
(12)に実装され
た安全ランタイム環境(22)であって、前記ユーザプログラム(24, 26)に前記プラットホーム(12)から独立し
て安全な資源(30)を提供するように構成された
、前記安全ランタイム環境(22)と、を備える、自動化システム。
【請求項2】
前記プラットホーム(12)は、非安全なプラットホームである、請求項1に記載の自動化システム。
【請求項3】
前記第2のユーザプログラム(26)は、第1のユーザプログラム(24)と逆のプロセスデータを処理する、請求項1または請求項2に記載の自動化システム。
【請求項4】
前記安全ランタイム環境(22)が、冗長、かつ、多重化された態様で、前記第1のユーザプログラム(24)および前記第2のユーザプログラム(26)に前記安全な資源(30)を提供する、請求項1~請求項3のいずれか1項に記載の自動化システム。
【請求項5】
前記安全ランタイム環境(22)は、第1のユーザプログラム(24)と第2のユーザプログラム(26)との間で、前記ユーザプログラムと独立して、相互比較を実行するように構成される、請求項1~請求項4のいずれか1項に記載の自動化システム。
【請求項6】
前記安全ランタイム環境(22)は、安全な資源(30)としてのタイマーを提供し、これらのタイマーを検査するために試験するように構成される、請求項1~請求項5のいずれか1項に記載の自動化システム。
【請求項7】
前記安全ランタイム環境(22)は、外部の安全装置(40)に接続可能である、請求項1~請求項6のいずれか1項に記載の自動化システム。
【請求項8】
前記安全ランタイム環境(22)は、複数のマニピュレータを実行するように構成され、前記マニピュレータは、前記第1のユーザプログラム(24)、前記第2のユーザプログラム(26)および/または前記安全な資源(30)の実行を操作するように構成される、請求項1~請求項7のいずれか1項に記載の自動化システム。
【請求項9】
前記マニピュレータは、外部の安全装置(40)によって起動可能である、請求項8に記載の自動化システム。
【請求項10】
前記マニピュレータは、故障に対する安全ランタイム環境(22)の感度を減ずるように構成される、請求項8または請求項9に記載の自動化システム。
【請求項11】
前記安全ランタイム環境は、ハードウェアに特異的な構成要素と、ハードウェアに特異でない構成要素とを備える、請求項1~請求項10のいずれか1項に記載の自動化システム。
【請求項12】
前記ハードウェアに特異でない構成要素のみが、外部の安全装置(40)に接続可能である、請求項11に記載の自動化システム。
【請求項13】
安全性が要求されるプロセスを監視する方法であって、
ユーザプログラム(24, 26)を実行するためのプラットホーム(12)を提供し、
前記ユーザプログラム(24, 26)を、フェイルセーフ周辺モジュール(20)を介して前記安全性が要求されるプロセスに接続し、
第1のユーザプログラム(24)および前記第1のユーザプログラム(24)に対する多重化である第2のユーザプログラム(26)によって、安全機能(28)を実装し、
前記プラットホーム(12)
と前記ユーザプログラム(24, 26)との間のソフトウェア層として前記プラットホーム(12)に実装された安全ランタイム環境(22)であって、
前記ユーザプログラム(24, 26)に前記プラットホーム(12)から独立した安全な資源(30)を提供
する、前記安全ランタイム環境(22)を提供し、
前記安全な資源(30)を用いて
、前記第1のユーザプログラム(24)および前記第2のユーザプログラム(26)を実行する、方法。
【発明の詳細な説明】
【技術分野】
【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のユーザプログラムおよび第2のユーザプログラムに接続され得る場合に経由されるフェイルセーフ周辺モジュール、(3)前記ユーザプログラムと独立してプラットホームに実装され、前記プラットホームから独立して前記ユーザプログラムに安全な資源を提供するように構成された安全ランタイム環境、を備えている。
【0047】
ここで、前記第2のユーザプログラムは、前記第1のユーザプログラムに対する多重化であり、前記第1のユーザプログラムとともに安全機能を実施する。
【0048】
本発明のさらに別の態様では、安全性が要求されるプロセスを監視する方法であって、次の各ステップを含む方法が提供される。
【0049】
ユーザプログラムを実行するためにプラットホームを用意するステップ、ユーザプログラムをフェイルセーフ周辺モジュールを介して安全性が要求されるプロセスに接続するステップ、第1のユーザプログラムおよび第2のユーザプログラム(第2のユーザプログラムは、前記第1のユーザプログラムに対する多重化である)によって安全機能を実施するステップ、プラットホーム上でユーザプログラムと独立して実装された安全ランタイム環境によって提供された、プラットホームから独立した安全な資源を提供するステップ、ならびに、前記安全な資源を使用してプラットホーム上で第1のユーザプログラムおよび第2のユーザプログラムを実行するステップ。
【0050】
このように、自動化システムの安全性の要求を、安全ランタイム環境に簡約することが、本発明の着想である。
【0051】
安全ランタイム環境は、実行しているプラットホームと安全機能を実装したユーザプログラムとの間に、ソフトウェア層を形成する。
【0052】
安全機能は、冗長に、かつ多重に2つのユーザプログラムにより実行されて、安全ランタイム環境によって、モニタされる。
【0053】
安全ランタイム環境は、例えば外部の安全装置によって、ユーザプログラムと独立して監視されることができる。
【0054】
安全性の要求は、このように、ユーザプログラムから、一般に有効な安全ランタイム環境に移動する。
【0055】
プラットホームは、開発の基礎およびユーザプログラムの実行に役立つソフトウェア、ハードウェア、または仮想プラットホームであり得る。特に、プラットホームは、非安全なプラットホーム、例えば標準のパソコン(PC)のような単一チャネル系であってもよい。
【0056】
あるいは、プラットホームは、クラウドコンピューティングの形で設けられることもできる。特にサービスとしてのインフラストラクチャ(IaaS)またはサービスとしてのプラットホーム(PaaS)があげられる。後者はすでに、安全ランタイム環境を含む。
【0057】
この明細書において、「安全でない」もしくは「非安全」とは、プラットホームが、それ自体に本質的安全が要求されるレベルで安全機能を実行するための関連する安全上の要求を満たさないことをいう。
【0058】
実装上、プラットホームは、全体としての自動化システムの高度な診断率を達成するために、フェイルセーフであるように設計されている必要はない。これは、主に安全ランタイム環境により達成される。
【0059】
安全ランタイム環境は、アプリケーションプログラマによって開発されたプログラムをロードして、プラットホーム上でそれらを走らせる。
【0060】
安全ランタイム環境は、いずれかのプラットホームのために実装され、それ自身、プログラムが構築される小さいプラットホームを表す。
【0061】
安全ランタイム環境は、通常、有効で、ユーザプログラムと独立して実装され、従って、ユーザプログラムと離れて、異なるプラットホームに移植されることもできる。
【0062】
安全ランタイム環境を用いることによって、並列に動作し多重化された(diversitary)2つのユーザプログラムによって安全機能が実装されれば、高度な診断範囲を達成するためにそれは充分である。
【0063】
この明細書における「多重化(Diversitary)」とは、第1のユーザプログラムおよび第2のユーザプログラムが、同じ結果を決定するために異なる算出手段を使用することを意味する。両方のユーザプログラムの結果を比較することによって、共通の要因から生ずる故障を検出できる。
【0064】
しかしながら、SCPの意味における符号化プログラムバージョンとは対照的に、多重化プログラムバージョンはより単純で、オリジナルプログラムから、非常に少ない努力により作成されることができる。その理由は、特に、符号化された処理が用いられず、既存の処理に対応する処理(counterparts)だけが用いられるからである。
【0065】
多重化処理は、符号化処理と異なって、付加的な冗長性を有しない。すなわち、多重化プログラムはオリジナルプログラムより著しく複雑でなくて、この結果、より多くのランタイムを必要としないことを、それは意味する。
【0066】
それと同時に、多重化プログラムを作成するための一連のツールは、SCPの意味における符号化プログラムバージョンを作成するための一連のツールより単純であってもよい。
【0067】
第1のユーザプログラムは高級言語(例えばC)で、単一チャンネルの方法で書かれることができる。そして、多重化プログラムバージョンは自動的に生成される。
【0068】
アプリケーション開発者は、このように、安全な実行の詳細を考慮することなく安全機能の実装のみに集中できる。
【0069】
特に、開発者はネイティブプログラムに付加的な注釈を追加することを必要としない。その理由は、付加的な実行フレームワーク(多重化フレームワーク)が、実行のために構築される必要がないからである。実行は安全ランタイム環境によって一様に調整される。
【0070】
安全ランタイム環境は、第1のユーザプログラムおよび第1のユーザプログラムから作られる第2のユーザプログラムをロードして、それらを実行して、それらの作用(interaction)を調整する。
【0071】
実行のために、安全ランタイム環境は、安全な資源、好ましくは冗長で多重化された資源を提供する。例えば、各チャンネルのプロセスデータ、タイマー、または例えば安全なチェックサムの算出のような基礎的な機能を提供する。
【0072】
またユーザプログラムのための安全な機能モジュールに加えて、安全な資源はランタイムライブラリを含んでもよい。それらは実行時にユーザプログラムのテスト機能および保護を引き継ぐことができる。
【0073】
これらのランタイムライブラリは、ユーザプログラムと独立して外部の安全装置との協調を有効にするサービスをこのように含むことができる。
【0074】
このように、本発明の要旨の1つは、自動化システムを全体として、個別の構成要素のフェイルセーフ性に着目することなく、安全を高めることである。
【0075】
本発明の一態様によれば、安全な自動化システムの各構成要素は、それが、他の構成要素と連携して、自動化システムの高い安全レベルを保証するために必要とされる程度に安全なように、設計されている。
【0076】
このようにして、安全性と実装努力との充分な釣合いが、自動化システムのすべてのレベルにおいて達成される。
【0077】
好適な改良において、プラットホームは非安全なプラットホームである。この改良において、プラットホームの少なくとも若干の構成要素は、安全アプリケーションのために必要とされる真正のフェイルセーフ性を備えていない標準の非安全な構成要素である。しかしながら、標準の既製の構成要素は、より安価であり、通常、比較される安全な構成要素より多くの計算能力を提供できる。
【0078】
自動化システムは、特に有効なコストで、このように装備されることができる。
【0079】
さらなる改良において、第2のユーザプログラムは、第1のユーザプログラムと逆のデータを処理する。このようにして、多重化処理を、特に容易に成し遂げることが可能である。
【0080】
第2のユーザプログラムが逆のデータによって機能するので、ユーザプログラムは対応して構成される処理を実行しなければならない。
【0081】
しかしながら、これらの処理は、共通の処理の補完的な対応物により実施することができる。そして、第2のユーザプログラムの複雑さは、第1のユーザプログラムと比較して著しく増加しない。
【0082】
さらなる改良において、安全ランタイム環境は、冗長、かつ、多重化した安全な資源を第1のユーザプログラムおよび第2のユーザプログラムに提供する。
【0083】
このようにして、ユーザプログラムをより複雑にせずに、安全性をさらに増やすことができる。
【0084】
冗長かつ多重化した安全な資源を提供することは、各ユーザプログラムに同じ方法を施すことに比べて、より容易である。さらにまた、安全な資源はより容易に再利用できる。
【0085】
さらなる改良において、安全ランタイム環境は、第1のユーザプログラムと第2のユーザプログラムとの間の相互比較を実行するように構成される。
【0086】
この改良において、安全性のために必要な相互比較は、安全ランタイム環境によっても成し遂げられる。
【0087】
よって、アプリケーション開発者はこれらの比較を設計し実行する際に苦心する必要はないので、ユーザプログラムの開発はさらに単純化される。
【0088】
さらなる改良において、安全ランタイム環境は、安全な資源としてタイマーを提供して、試験によってこれらのタイマーを検査するように、構成される。
【0089】
この改良はユーザプログラムの開発をさらに単純化する。安全な資源は、それを別個に点検することをしなくても、容易に含まれることができるからである。
【0090】
さらなる改良において、安全ランタイム環境は、外部の安全装置に接続可能である。
【0091】
この改良によれば、安全ランタイム環境は、外部の安全プロバイダによって、連続的に検査されることができる。
【0092】
安全ランタイム環境により提供される安全な資源は、ユーザプログラムが外部組織とそれ自身通信する必要がなくて、外部からこのように点検されることができる。
【0093】
関連した安全機能が同じ安全ランタイム環境にカプセル化されるので、ユーザプログラムの開発をさらに単純化することができる。
【0094】
さらなる改良において、安全ランタイム環境はマニピュレータを実行するように構成される。すなわち第1のユーザプログラム、第2のユーザプログラムおよび/または安全な資源の実行を操作するように構成される。
【0095】
安全ランタイム環境は、それらのリアルな位置(real location)で、障害管理手段の機能を試験するために、エラーを模擬するために目標とされる改ざんを実施するサービスを、このように実行できる。
【0096】
このようにして、特に高い安全性のレベルを、全体システムのために提供することができる。
【0097】
マニピュレータは、外部の安全装置により起動することができて、故障に対して安全ランタイム環境の感度を減ずるように構成されることができる。
【0098】
このようにして、システムの挙動を、プログラムのリアルな位置でテストすることができる。
【0099】
さらなる改良において、安全ランタイム環境は、ハードウェアに特異な構成要素と、ハードウェアに特異でない構成要素とを有する。
【0100】
この改良は、安全ランタイム環境の特に効率的な実装、ならびに他のプラットホームへの安全ランタイム環境の簡単な移植を有効にする。
【0101】
移植時には、ハードウェアに特異的な構成要素だけが交換されることを必要とする。その一方で、ハードウェアに特異的でない構成要素は不変のままである。このことにより、安全ランタイム環境の柔軟性が増加するだけでなく、それが提供する安全性も増加する。安全な構成要素をその時々に再実装する必要がないからである。
【0102】
さらなる実施において、ハードウェアに特異的でない構成要素は、ハードウェアに特異的な構成要素と独立して、外部の安全装置に接続されることができる。
【0103】
この改良によれば、外部の安全プロバイダへの安全ランタイム環境の接続はハードウェアに特異的でない構成要素のみによって行われる。その結果、接続はプラットホームの実装から独立している。
【0104】
よって、外部の安全装置への接続を、特に容易に、プラットホームと独立して、このように行うことができる。
【0105】
今まで述べてきた事項、および以下で説明する事項は、それぞれの場合に示された組み合わせだけでなく、他の組合せ、または、単独でも、本発明の要旨を逸脱しない範囲で使用できる。
【0106】
本発明の実施の形態は、図面に示され、以下において、さらに詳細に説明される。
【図面の簡単な説明】
【0107】
【
図1】本発明の第1の実施の形態にしたがった自動化システムの略図を示す。
【
図2】さらなる実施の形態にしたがった自動化システムの安全モデルの略図を示す。
【
図4】実施の形態にしたがった自動化システムの故障ルーチンの状態図を示す。
【
図5】本発明の第2の実施の形態にしたがった自動化システムの概要図を示す。
【
図6】第2の実施の形態にしたがった2つの変形例を示す。
【
図7】第2の実施の形態にしたがった自動化システムの回路ブロック図を示す。
【発明を実施するための形態】
【0108】
図1において、第1の実施の形態に係る自動化システムの全体が、参照番号10によって示される。
【0109】
ここで、自動化システム10は、安全な自動化システムをともに形成するハードウェア構成要素およびソフトウェア構成要素を含む。
【0110】
この明細書において、「安全」とは、実装された安全機能のために、IEC 61508によるSafety Integrity Level 3が自動化システムにより達成されることを言う。
【0111】
本自動化システムは、データ処理装置およびコンピュータユニットとしての役割のプラットホーム12を含む。
【0112】
プラットホーム12は、専用ハードウエア14、リアルなもしくは仮想のコンピューティングシステム16、またはクラウドサービスとして設けられたインフラ基盤18であってもよい。プラットホーム12はまた、前述した器材の組合せから成ることもできる。
【0113】
プラットホーム12は、非安全なプラットホームでもよく、少なくとも部分的に非安全な構成要素から成っていてもよい。
【0114】
この明細書において、「非安全な」とは、それ単独で安全なシステムを実施することができる関連する安全基準という意味で、プラットホーム12の構成要素が充分な本質的安全を提供しないことを言う。
【0115】
プラットホーム12は、このように、例えば、市販のPCハードウェアから成ることができて、特に、標準のプロセッサを含むことができる。
【0116】
同様に、各種実施の形態で、プラットホーム、またはプラットホームの構成要素は、クラウドコンピューティングの形で設置されてもよい。
【0117】
プラットホーム12は、ハードウェア構成要素およびソフトウェア構成要素から成ることができる。例えば、プラットホーム12は、PCまたはラズベリーパイ(Raspberry Pi)といった、さまざまなLinux(登録商標)ディストリビューションのような非安全なリアルタイムオペレーティングシステム(RTOS)を実行する、非安全なデバイスであってもよい。
【0118】
自動化システム10は、さらに、プロセスからのフェイルセーフ入力およびプロセスへのフェイルセーフ出力のための、少なくとも1つのフェイルセーフな周辺モジュール20を備えていてもよい。
【0119】
フェイルセーフ周辺モジュール20は、プロセスに接続されるべき自動化システムを有効にする。
【0120】
周辺モジュール20のフェイルセーフ性は、周辺モジュール20と自動化システム10との間の安全に関連した通信と同様、この安全技術の分野で一般に知られている原理によって実施されるので、本願明細書において、さらに細かく議論することはない。
【0121】
プラットホーム12およびフェイルセーフ周辺モジュール20は、ともに安全な自動化システム10の基礎およびインターフェイスを形成する。その一方で、ユーザプログラム24, 26とともにプラットホームに設置された安全ランタイム環境22が、実際の安全機能28を実施する。
【0122】
この安全ランタイム環境22は、プラットホーム12とユーザプログラム24, 26との間に置かれるソフトウエア層であり、プラットホーム12から独立して、ユーザプログラム24, 26に安全な資源30を提供する。
【0123】
安全ランタイム環境22は、ユーザプログラム24, 26をロードして、それらをプラットホーム上で実行して、それらの相互接続を調整する。このように安全ランタイム環境22そのものは、ユーザプログラム24, 26が実行される小さなプラットホームを表す。
【0124】
好ましくは、ユーザプログラム24, 26は、プラットホーム12のために、特に形成される。すなわち、プラットホーム12で実行されるためのネイティブな機械コードに変換することができるプログラミング言語で書き込まれる。
【0125】
安全ランタイム環境22は、このように、ユーザプログラム24, 26を実行するための「オペレーティングシステム」でなく、ユーザプログラム24, 26のための安全な資源30を単にカプセル化するだけである。すなわち、ユーザプログラム24, 26に安全な資源30のフェイルセーフな実行を確実にすることを要求することなく、ユーザプログラム24, 26にそれらの安全な資源が含まれるようにすることができる。
【0126】
一方、安全ランタイム環境22は、プラットホームに特有の構成要素と、プラットホームに依存しない構成要素に分けられることが可能である。特に、安全な資源30は、安全ランタイム環境22が異なるプラットホームに容易に配送されることができるように、プラットホームに依存しない構成要素によって配置される。
【0127】
安全機能28は、いかなる安全機能、例えば非常停止、両手操作または遠隔入出力(I/O)であってもよい。
【0128】
安全機能28とは、このように、自動化システムに設置された安全に関連する制御機能である。
【0129】
安全に関連する制御機能は、並行して実行される2つのユーザプログラム24, 26によって実施されることができる。冗長であることに加えて、ユーザプログラムは、異なる方式のユーザプログラム24, 26によって同じ結果が取得される、すなわち多重化された(diversitary)設計であってもよい。
【0130】
コンピュータで使われている使用するプロセッサの構成要素が共通に反応しない(mutual non-reactivity)ことが証明されている場合、または共通に反応しない部分がプロセッサの同じ構成要素を使っていることが証明されている場合、コンピュータが完全に多重化されている(diversitary)と、言われる。この種の証明は通常ハードウェア試験を必要とするが、次の場合省略されることができる:(1)SCPの意味における符号化処理の場合、(2)本開示にしたがった自動化システムであって、これらのハードウェア試験が追加試験および安全ランタイム環境の安全な資源30で補償されることができて、外部から証明可能である場合。
【0131】
好ましい実施の形態において、第2のユーザプログラム26が、第1のユーザプログラム24に関する多重化データで動作し、同じ計算ステップのための異なる命令を使用しているのであれば、第1および第2のユーザプログラム24, 26間の多重化は成し遂げられる。
【0132】
逆データ(inverse data)の使用は完全な多重化を提供しないが、それは安全ランタイム環境22およびその試験31に関連した充分なフェイルセーフ性を許す充分な多重化を提供する。
【0133】
逆データによって働くプログラムバージョン(以下、逆ユーザプログラムと記載する)は、所定の変換スキームに従って、ネイティブなプログラムバージョンから自動的に容易に生成される。
【0134】
逆ユーザプログラムは、ネイティブなユーザプログラムに比較される作業によって、このように実行されることができる。
【0135】
さらにまた、SCPの意味における符号化ユーザプログラムとは異なり、逆ユーザプログラムは、逆データを使った計算が同じ算術に基づくので、同じデータ型によって動作することができて、同じ命令セットを参照する。
【0136】
したがって、逆ユーザプログラムは、算術符号化(例えばAN符号化)に基づく符号化ユーザプログラムより複雑でない。
【0137】
加えて、ネイティブなプログラムバージョンから逆プログラムバージョンを作成するための一連のツールは、より少ない努力で実行することができる。簡略な一連のツールのため、他のシステムに対する速い移植(porting)または他のプログラミング言語の使用が可能である。全体の柔軟性はこのように増大する。
【0138】
したがって、この概念は、とりわけ、SCPに従ってコード化された処理が、ここで提案する多様な処理よりも明確かつ確実にアプリケーションプログラムの実行エラーを明らかにできるが、そうするために必要な努力が正当化されないという仮定に基づいている。なぜなら高い安全分類を達成するためには、アプリケーションを安全モデルに統合することが常に必要であるからである。
【0139】
したがって、個々の構成要素の本質的なフェイルセーフ性、例えばSCPを介したユーザプログラムの本質的なフェイルセーフ性を高める代わりに、全体の評価を実行し、自動化システムの個々の構成要素を必要に応じて安全なものにするという概念である。
【0140】
よって、全体として安全な自動化システムが構築でき、それは高い安全レベルに応じた安全機能を実現できる。
【0141】
このように、本概念の1つの焦点は、自動化システムの個別の構成要素、すなわち、特にユーザプログラム24, 26、安全ランタイム環境22およびプラットホーム12を、できるだけ単純かつフレキシブルにすることであり、これにより、安全性、複雑さ、ポータビリティ間のバランスされたトレードオフが自動化システムのすべてのレベルで成し遂げられる。
【0142】
図2は、好ましい実施の形態にしたがった自動化システムの安全モデルの略図を示す。
【0143】
ここで、安全ランタイム環境22は、非安全なリアルタイムオペレーティングシステム34を有する非安全なデバイス32の上で展開される。非安全なデバイス32および非安全なリアルタイムオペレーティングシステムは、一緒にプラットホーム12を形成する。
【0144】
一方では、安全ランタイム環境22はソフトウエア層であり、資源層36において、プラットホーム12から独立してユーザプログラム24, 26に安全な資源30を提供し、他方では、ユーザプログラム24, 26および後者により実装される安全機能を監視するためのローカルで安全なインスタンス38を形成する。
【0145】
さらにまた、ユーザプログラム24, 26は、安全な周辺モジュール20を介して監視されるプロセスに接続している。
【0146】
安全ランタイム環境22は、安全なデバイスによって、監視されることができる。安全なデバイス(以下「安全ペースメーカー(SPM)40」と呼ばれる)とは、例えば市販のUSBスティックの形の、1または複数の単純なマイクロコントローラ(例えばPICおよび/またはAVR)を有する単純なハードウェアドングルであってもよい。
【0147】
ハードウェアドングルがUSBインターフェースに限られていないことが理解される。例えば、SPM40はイーサネット(商標)、RS232または他の通信インタフェースを介して接続されることもできる。
【0148】
SPM40は、第2の、好ましくは外部の、安全なインスタンス41を実装する。
【0149】
この第2の安全なインスタンス41は、故障の選択的な注入によって、安全ランタイム環境22、特に第1のローカルで安全なインスタンス38をテストする。
【0150】
故障の注入は、外部の安全なインスタンス41により起動される安全ランタイム環境22のサービスおよびマニピュレータを介して、行われる。
【0151】
このことにより、安全ランタイム環境22のデータ比較器、システムクロックおよびタイマー試験を点検できる。よって、ユーザプログラム24, 26の開発の間、適切な試験を考慮しなくてもおよび/または実施しなくても、ユーザプログラム24, 26の実行における故障を開示できる。
【0152】
このように、アプリケーションプログラマがユーザプログラムのフェイルセーフ性を考慮することを必要とすることのないシングルチャンネルの態様で、第1のユーザプログラム24を書き込むことができる。
【0153】
第1のユーザプログラムの多重化である第2のユーザプログラム26は、適切な一連のツールによって、自動的に発生できる。
【0154】
このことにより、アプリケーションの開発者は、実際の安全機能を実施することだけに集中できる。
【0155】
好ましい実施の形態において、SPM40は、特にフェイルセーフ周辺モジュール20で第2のシャットダウンパスを実行するために、安全クロック信号42をさらに提供できる。
【0156】
図3は、発明の実施の形態に係る自動化システム10が埋め込まれた設計上のモデルを示す。
【0157】
このアーキテクチャモデルは、基本的に3つの構成要素を備える。これらは、自動化システム10、前述したSPM40などの外部安全ユニット、および2つの構成要素間をつなぐ通信インタフェース44である。
【0158】
全3つの構成要素は、ハードウェアに特異的でない層46およびハードウェアに特有の層48を含むことができる。
【0159】
自動化システム10において、安全ランタイム環境22は、システムアブストラクション層(SAL)と呼ばれているハードウェアに特有の構成要素を用いてハードウェア特異的でない層46から、ハードウェアに特有の層48を切り離す。
【0160】
SAL 50は、オペレーティングシステム52およびいかなる付随するハードウェア54からも安全ランタイム環境22を抽出する。
【0161】
オペレーティングシステムドライバ58により駆動される特別なハードウェア56は、スタンドアロンSALドライバ60によって、抽出されてもよい。
【0162】
ハードウェア特異的でない層46において、自動化システム10は、資源層36を実装する。資源層36は、安全な資源すなわち安全なリソースを提供し、本願明細書に示すように(36a,36b)、それは好ましくは冗長で、多重化(diversitary)されている。
【0163】
資源層36は、プロセスデータとともにタイマーを各チャネルに提供できる。加えて、資源層36は、安全性に関連する機能(例えば安全なCRC算出)を提供してもよい。
【0164】
アプリケーションマネージャ62a, 62bは、資源層36の上にあり、好ましくは1つのアプリケーションマネージャがそれぞれのユーザプログラム24, 26のために働く。
【0165】
アプリケーションマネージャは、始動時、かつCRCの時に、2つのアプリケーションプログラム24, 26の整合性を点検する。
【0166】
アプリケーションマネージャ62a, 62bは、さらに、アプリケーションプログラムを周期的に呼び出すときに、それらの実行を監視し、APIに提供する。
【0167】
APIは、出力を設定し、入力を読み込み、および、アプリケーションタイマーを始動して読み込むための機能を含むことができる。
【0168】
本願明細書において示されるように、アプリケーションマネージャ62a, 62bは、二重化された多重設計であり得る。
【0169】
自動化システム10の安全ランタイム環境22は、ローカルで安全なインスタンス38をさらに実装する。ローカルで安全なインスタンス38は、必要な複数の安全タスクを遂行できる。安全タスクは、RAMおよびROMの各試験、サイクルおよびシーケンスの監視、およびタイマーの試験を含むことができる。
【0170】
さらにまた、ローカルで安全なインスタンス38は、ユーザプログラム24, 26のプロセスデータの整合性チェックを実行できる。
【0171】
この目的のために、ローカルで安全なインスタンス38は、一度だけシステム上で走ることができて、SPM40を介して外部から点検されることができる。
【0172】
SPM40は、例えば、公知の方法でアプリケーションの安全な実行をさせることができる2台の冗長なプロセッサ64a, 64bにより形成される安全なハードウェアを含むフェイルセーフデバイスである。
【0173】
SPMは自動化システム10のユーザプログラムに関して、制御のためにユーザプログラムを実行しないので、ハードウェアは単純な設計であってもよい。
【0174】
特に、特別な安全な複数のCPUがプロセッサ64a, 64bのために使われことができる。そのフェイルセーフ性は、例えばFMEAによって、実際に保証されることができる。
【0175】
第2の安全なインスタンス41は、SPM40上で実行されることができる。
【0176】
第2の安全なインスタンスは、ハードウェアに依存しない方法で実装されることができて、アブストラクション層66によって、ハードウェアから切り離されることができる。
【0177】
第2の安全なインスタンス41は、自動化システム10の第1の安全なインスタンス38に、通信インタフェース44を経て接続されてもよい。
【0178】
通信インタフェース44は、特別な安全設計のない単チャネルの通信インターフェイスでもあってもよい。
【0179】
通信のフェイルセーフ性は、自動化システム10のローカルで安全なインスタンス38と、Black-Channel-Principalを経た外部安全装置の第2の安全なインスタンス41との協働によって、確保することができる。
【0180】
好ましい実施の形態において、安全ランタイム環境22およびSPM40は、時間監視(time-out monitoring)を伴う固定された周期において、互いに通信する。
【0181】
SPM40により促されると、データ(例えばタイマ値、シーケンス制御など)がある時点で故意に偽造される(deliberately falsified)。
【0182】
この目的のために、安全ランタイム環境22は、例えばSPM40が安全ランタイム環境22にマニピュレータの対応するIDを送ることによって、SPM40により起動できるマニピュレータを有する。
【0183】
SPM40はその後、安全ランタイム環境22からの適切な誤り応答を期待する。
換言すれば、SPM40は、マニピュレータIDが送信されたあと、安全ランタイム環境22に特定の挙動を求める。
【0184】
安全ランタイム環境22は、マニピュレータのため、ユーザが検出できる故障を持つことができないか、または意図的な改ざんのために出力をシャットダウンすることもできない。
【0185】
したがって、故障は、安全ランタイム環境22によって、捕捉されなければならない。
【0186】
本概念は、プログラムが走っているときに、リアルタイムでシステムの挙動をテストすることを可能にする。
【0187】
図4は、SPM40および自動化システム10が、チェックの間、とることができる状態を示す状態図である。
【0188】
正常状態Aにおいて、安全ランタイム環境22は、故障を待って反応する。
【0189】
この状態で、安全ランタイム環境22がSPM40から、好ましくは所定のビットマスクを含むマニピュレータIDを受け取れば、対応するマニピュレータが起動する。安全ランタイム環境22は、状態Bへ移行し、そこにおいて、対応する故障に対する感度が減じられる(desensitized)。その後、データの操作が、故障を模擬するために行われる。好ましくは、データは、受信したビットマスクによってXORされる。その結果、故障ビット位置はSPM40によって、ならされる(rolled)ことができる。
【0190】
操作に応答して、安全ランタイム環境22は、SPM40が期待する適切な誤り応答を生成しなければならない。期待が発生しない場合、安全ランタイム環境22および/またはSPM40は、例えば別の第2のシャットダウンパスを使用して、安全なシャットダウンをトリガできる。
【0191】
好ましい実施の形態において、第2のシャットダウンパスは、SPM40と安全な周辺モジュール20との相互作用によって実装されてもよい。しかしながら、他のシャットダウン手段も考えられることは言うまでもない。
【0192】
試験が正常に完了する場合、安全ランタイム環境22は正常状態Aに戻る。しかしながら、感度抑圧(desensitization)の間に本当の故障が発生する場合、それは感度抑圧によって捕えられ、試験は不成功に終わり、拘束されない(non-catch)故障メッセージがSPM40に向けて発信される。
【0193】
SPM40による外部試験については、ローカルで安全なインスタンスにおいて単一チャネルの方法により実施されるすべての試験は、別個に検査されることができる。例えば、外部試験は、以下の1チャネル試験を検査できる:入力データの比較、出力データの比較、RAM試験、ROM試験、タイマー試験、サイクル監視、安全ランタイム環境の失効監視22、およびユーザプログラムの失効監視24, 26。
【0194】
図5は、本発明の第2の実施の形態にしたがった自動化システムの略図を示す。
【0195】
第2の実施の形態による自動化システムは、参照番号100によって、その全部が示される。同一参照番号を有する構成要素は、第1の実施の形態における同じ構成要素を意味し、ここで再び説明されない。
【0196】
ここで、自動化システム100は、3つの構成要素を別個に含む。
【0197】
第1の構成要素は、非安全なプラットホーム12に設置された自動化システム10である。特に、この自動化システムは、2つのユーザプログラム24, 26によって、安全機能28を実施するように構成される。よって、第1の構成要素は、第1の実施の形態に関して記載されていた自動化システムを含む。
【0198】
しかしながら、第1の構成要素がこの種の実施例に限られないことが理解されよう。いかなる自動化システムも第1の構成要素として適切である。
【0199】
第2および第3の構成要素は、監視装置70およびフェイルセーフ周辺モジュール20である。監視装置70は、特に、参照番号40を用いて前述されていたSPMであってもよい。
【0200】
監視装置70およびフェイルセーフ周辺モジュール20は、第1の通信インタフェース72および第2の通信インタフェース74を介して自動化システム10に接続される。
【0201】
自動化システムとの通信に加えて、第1の通信インタフェース72および第2の通信インタフェース74は、監視装置70とフェイルセーフ周辺モジュール20との間の通信を同様に有効にする。換言すれば、監視装置70は、プラットホーム12を経由してフェイルセーフ周辺モジュール20と通信できる。
【0202】
第1の通信インタフェース72および第2の通信インタフェース74は、1チャネル設計の通信インタフェース、たとえば市販のUSBインターフェースであってもよい。他の通信インタフェース(例えばEthernet、RS232、その他)も同様に考えられるものと理解される。
【0203】
この監視装置70は、フェイルセーフサービス76を提供するように構成されたスタンドアロン型のハードウェア構成要素であってもよい。フェイルセーフサービス76は、ソフトウェアまたはハードウェアで実施することができ、真正の(intrinsic)フェイルセーフ性は適切な手段によって、保証される。適切な手段とは、例えば、マルチチャネル冗長設計を有するサービス、または自体が公知のマルチチャネルの冗長なハードウェア上で実行されるまたはサービスがあげられる。その結果、サービス76のフェイルセーフな動作が保証され、テストされることができる。
【0204】
フェイルセーフ設計は、ここで示される形に限られないものと理解される。例えば真正のフェイルセーフ性を得るため当業者に知られている他の手段も考えられる。
【0205】
フェイルセーフサービス76は、好ましくは単純なサービス、例えば計数ユニット78およびエンコーダユニット80である。フェイルセーフサービス76は、このように単純で、複雑さ少ないハードウェア上で実施されることができる。
【0206】
例えば、監視装置70のハードウェアは、1つもしくは複数の単純なマイクロコントローラ、ASICもしくは類似の計算装置を含むことができ、または個別の電気部品から成ることができる。
【0207】
マイクロコントローラを使用するときに、それらの命令セットはできるだけ制限されなければならない。その結果、真正のフェイルセーフ性に関する証明が低コストで可能になる。
【0208】
好ましい実施の形態において、監視装置70のハードウェアは、計数ユニット78およびエンコーディングユニット80を実行可能であるように、限定されることができる。
【0209】
フェイルセーフサービス76は、安全機能28の実装にかかわらず、非安全なプラットホーム12に故障が生じた場合さえ安全なシャットダウンを確実にするために、フェイルセーフ周辺モジュール20と作用しあう。
【0210】
好ましい実施の形態において、監視装置70は、それ自身、この目的のためのいかなる安全関連手段も持っていない。すなわち、監視装置は、安全性が要求されるプロセスのシャットダウンパスとして制御できるそれ自身の専用の安全な出力を持っていない。その代わりに、安全性が要求されるプロセスに対する接続は、フェイルセーフ周辺モジュール20を介して提供されることができるだけである。
【0211】
特に好ましい実施の形態では、監視装置70は、追加試験をユーザプログラム24, 26に提供するために、プラットホーム12に実装された安全ランタイム環境22と相互作用する安全インスタンスの形のテストデバイス82を備える。
【0212】
好ましくは、第1の実施の形態に関連して前述したように、安全ランタイム環境22は、ユーザプログラムに特化しない方法で実装され、それは異なる自動化システム10で同一のものである。
【0213】
このように、統一されたテストデバイス82は、異なるプラットホーム12上のさまざまな安全機能28の安全性を独立してテストするために用いることができる。
【0214】
監視デバイス70自体は、プロセスを安全な状態に移行するために、フェイルセーフ周辺モジュールとともに、最後の手段(ultima ration)として使用される。
【0215】
監視装置70はこのように、付加的な装着のないさまざまな自動化システムに用いられることが可能である。さらにまた、監視装置70は、故障の場合には、他の監視装置に単に置き換えられることが可能である。
【0216】
このように第2の実施の形態によれば、安全な制御システムを、異なる、特にハードウェアに非特異的な複数の要素に分けることが本質的である。
【0217】
この点に関しては、第1の要素の焦点は、安全機能28の実装のためにできるだけ可能なコンピュータ容量を提供して、付随するユーザプログラム24, 26の容易な開発を有効にすることである。
【0218】
一方では、第2および第3の要素の焦点は、提供されたサービス76のフェイルセーフ性が信頼性をもって、かつ、費用対効果の高い状態で保証されるように、できるだけ単純にこれらのためのハードウェアを設計することである。
【0219】
図6は、第2の実施の形態にしたがった自動化システムの2つの変形例を示す。
【0220】
第1の変形例(上の図に示される)において、自動化システム100の3つの構成要素は、それぞれスタンドアロンのハードウェア構成要素である。
【0221】
監視装置70およびフェイルセーフ周辺モジュール20の両方は、ハードウェア構成要素としての設定される。
【0222】
第1の通信インタフェース72は監視装置70を自動化システム10に接続し、第2の通信インタフェース74はフェイルセーフ周辺モジュール20を自動化システム10に接続する。
【0223】
このように、監視装置70とフェイルセーフ周辺モジュール20の間の通信は、好ましくは、自動化システム10を介してのみ行われる。
【0224】
離れた構成要素を有するこの変形例は、各構成要素が別個に製造および供給されることができるという効果を奏する。
【0225】
よって、監視装置70は、複数の互いに異なる周辺モジュール20と連動して用いられることが可能である。
【0226】
自動化システム100はこのように、それぞれの要件に適応することができ、周辺モジュール20だけを交換するだけでよい。
【0227】
第2の変形例(下の図に示される)において、監視装置70およびフェイルセーフモジュール20は、共通のハードウェアにて実装されている。
【0228】
第1の論理的な通信インタフェース72および第2の論理的な通信インタフェース74は、自動化システム10への単一の物理的な接続により実装されている。
【0229】
共通のハードウェアへの集積化にもかかわらず、監視装置70とフェイルセーフ周辺モジュール20の間の通信は、自動化システム10を介して第1の通信インタフェース72および第2の通信インタフェース74を通じて伝送されることが可能である。
【0230】
換言すれば、監視装置70およびフェイルセーフ周辺モジュール20は、共通のハードウェアへの集積にもかかわらず、2つの独立した論理ユニットとして実装される。
【0231】
都合のよいことに、この変形例では、共通の安全なハードウェア基板を、監視装置70およびフェイルセーフモジュール20のために用いることが可能である。
【0232】
例えば、フェイルセーフ周辺モジュールの機能は監視装置70の機能とともに、マルチチャネルの冗長な方法で動作する共通プロセッサに実装されることができる。
【0233】
さらにまた、この変形例では、1つの物理的な通信インタフェースは、第1の通信インタフェースおよび第2の通信インタフェースを実装するのに十分である。このことにより、安全な自動化システム100を、特に好ましい態様で実施することができる。
【0234】
図7は、第2の実施の形態にしたがった自動化システムの回路図を示す。
【0235】
自動化システム100は、監視装置70、自動化システム10、およびフェイルセーフ周辺モジュール20を含み、それぞれがスタンドアロンのハードウェア構成要素である。
【0236】
本実施の形態において、個別構成要素間の通信は、USBインターフェースを介して行われる。したがって、第1の通信インタフェース72および第2の通信インタフェース74は、それぞれUSB接続されている。
【0237】
監視装置70は、さらに、フェイルセーフサービス76を実施するための計数ユニット78およびエンコーダユニット80を備える。
【0238】
計数ユニット78は、内部カウンタを連続的にインクリメントすることができて、カウント値Cをエンコーダユニット80に提供できる。さらに、カウント値Cは、通信インタフェース72、74を介して、フェイルセーフ周辺モジュール20に送信されることができる。
【0239】
エンコーダユニット80は、自動化システム10からランダム値Rを受け取る。
【0240】
ランダム値Rは、フェイルセーフ周辺モジュール20の中の乱数発生器86によって生成される。
【0241】
エンコーダユニット80は、ランダム値Rおよびカウント値Cからキー値Sを生成して、このキー値を、自動化システム10を介してフェイルセーフ周辺モジュール20に送信する。
【0242】
監視装置70は、自動化システム10によって好ましくは周期的に送信されるランダム値が、時間とともに変化するかどうか調べる。
【0243】
キー値Sは、ランダム値Rおよび連続カウンタCの両方に基づくので、すべての数が少なくとも一回循環されることが保証される。このように、監視装置70は、乱数発生器(それはランダム値を生成する)がすべての値を実際に循環するかどうかを調べる必要がない。
【0244】
この種の評価は、計算負荷が集中するので、好ましい実施の形態における監視装置70の限られた計算容量によっては、実行するのが困難である。
【0245】
フェイルセーフ周辺モジュール20は、監視装置70の中に用意された複数の相補型ユニットを有している。これらの相補型ユニットは、専用のユニットとして設計されることができるか、またはソフトウェアモジュールの形で実装されることができる。
【0246】
ここで、フェイルセーフ周辺モジュール20は、復号器88と、相補型ユニットとして構成された比較器90とを含む。
【0247】
復号器88は、連続的なカウント値Cと、ランダム値Rのコピーとを受け取って、それらから比較値S’を生成する。
【0248】
受信したキー値Sおよび生成された比較値S’が同一である場合、フェイルセーフ周辺モジュール20は安全状態を信号として送る。
【0249】
好ましい実施の形態において、復号方法は、フェイルセーフ周辺モジュール20の復号器88のみが知っている。一方、符号方法は監視装置70のエンコーダユニット80のみが知っている。
【0250】
ここで示される好ましい実施の形態において、安全な状態信号は、第1の単安定フリップフロップ92を含む第1の出力回路91および第2の単安定フリップフロップ94を含む第2の出力回路93によって送られる。
【0251】
比較器90は、スイッチ96を介して、単安定フリップフロップ92, 94上の2つの出力回路91, 93上で交互に動作する。
【0252】
フェイルセーフ周辺モジュール20は、2つの単安定フリップフロップ92, 94のうちの少なくとも1つが起動されるときに、安全状態を示す。
【0253】
正常動作において、比較器90が信号を連続的に供給しているとき、すなわちキー値Sと生成された中間値S’との比較が連続的に成功しているとき、両方の単安定フリップフロップ92, 94は常に起動される。すなわち、新しいキーが送信されるサイクルタイムは、単安定フリップフロップ92, 94の保持時間に対応する。
【0254】
フェイルセーフ周辺モジュール20が安全な状態信号を正しく送るかどうか試験するために、監視装置70は、正しいキー値Sの1ビットを逆にすることによって、誤ったキー値を作り出す。
【0255】
その結果、比較器90は、キー値Sと生成された中間値S’との間に不一致を検出して、スイッチ96への信号を遮断する。
【0256】
その結果、2つの単安定フリップフロップ のうちの1つは、初めに停止し、もはや出力端子に信号を出力しない。
【0257】
これは、単安定フリップフロップの下流にある論理回路98により検出されることができ、それによって、タイムアウト信号102が発生する。
【0258】
タイムアウト信号102は監視装置70によって読み込まれることができ、キー値Sとしての誤った数値が2つの単安定フリップフロップの1つの予期された結果(expected drop)となるかどうかを決定することができる。
【0259】
1つの単安定フリップフロップだけが試験の間に停止するので、停止した単安定フリップフロップが正しいキー値Sによって、タイムリーに再トリガされるならば、フェイルセーフ周辺モジュールは安全な状態信号を送り続ける。
【0260】
再トリガが時間内に実行されない場合、第2の単安定フリップフロップも停止し、フェイルセーフ周辺モジュール20は非安全な状態信号を送ることになる。本実施の形態において、非安全な状態信号を送ると、安全な出力104が停止される。
【0261】
単安定フリップフロップ 92, 94を備えるこの実施例は、出力回路91, 93の1つの可能な具体例にすぎないことを理解すべきである。
【0262】
2つの分岐は、起動、停止が可能であればよく、異なって設計されることもできる。
【0263】
好ましくは、出力回路は、起動後、所定の期間の経過後それ自身を停止させるように調整される。しかしながら、あるいは、外部源からの停止も考えられる。
【0264】
本願明細書において、ここに例示されたウォッチドッグ原則を実装する構成要素に加えて、フェイルセーフ周辺モジュール20は、ウォッチドッグ保護と結合されることができる追加試験器を備えていることができる。
【0265】
例えば、第1の入力レジスタに加えて、2つのさらなる入力レジスタ108, 110を設けてもよい。入力レジスタ108, 110は、前の値およびアドレス破損が検出されることができる次の値を含む。
【0266】
さらに、フェイルセーフ周辺モジュール20は、さまざまな安全関連のアプリケーションのために使用可能である安全なクロック信号を供給する安全なクロック発生器112を含むことができる。
【0267】
そのような応用の一つは、例えば、フェイルセーフ周辺モジュール20の安全な出力104に作用でき、安全な電源供給を監視する電圧監視デバイス114であってもよい。
【0268】
故障が発生したときに、安全性が要求されるプロセスが単独で再開するのを防止する再起動ロック116を実装することも考えられる。
【0269】
本願明細書において例示された実装形態は、自動化システム100がどのように本発明にしたがって実装されるかを示す1つの例であることを理解されたい。他の変形例がこの開示の範囲内で考えられるものと理解される。原則として、本出願の保護の範囲は、請求項によって与えられ、説明または図に示される特徴により制限されることはない。