(57)【要約】【課題】安全性が要求されるプロセスを監視する自動化システム100において、低コストなプラットホーム（特に非安全なプラットホーム）に、単純に設計されかつ安全が保証された各外付け構成要素を接続し、プラットホーム上でソフトウェアによって実現される複雑な安全機能を、フェールセーフな状態で確実に実施できるようにする。【解決手段】安全機能28を実装したユーザプログラム24, 26を実行するためのプラットホーム12と、プロセスをユーザプログラム24, 26に接続するためのフェイルセーフ周辺モジュール20と、プラットホーム12上で安全機能28のフェイルセーフな実行を確実にするように構成された監視装置70とを備える。監視装置70は第１の通信インタフェース72を介してプラットホーム12に接続可能であり、フェイルセーフ周辺モジュール20は第２の通信インタフェース74を介してプラットホーム12に接続可能であり、監視装置70は、プラットホーム12から独立して少なくとも１つのサービス76を動かすように構成され、プラットホーム12を介して、監視装置70がフェイルセーフ周辺モジュール20と相互に作用し、フェイルセーフ周辺モジュール20は、実装された安全機能28およびフェイルセーフサービス76に基づいて、安全な状態信号を発信する。【選択図】図５
2021534507.tif 000002
【特許請求の範囲】
【請求項１】
安全性が要求されるプロセスを監視する自動化システム（100）であって、
安全機能（28）を実装したユーザプログラム（24, 26）を実行するためのプラットホーム（12）と、
前記安全性が要求されるプロセスがフェイルセーフ周辺モジュール（20）を介して前記ユーザプログラム（24, 26）に接続されることができる、前記フェイルセーフ周辺モジュール（20）と、
前記プラットホーム（12）上で前記安全機能（28）のフェイルセーフな実行を確実にするように構成された監視装置（70）と、を備え、
前記監視装置（70）は第１の通信インタフェース（72）を介して前記プラットホーム（12）に接続可能であり、前記フェイルセーフ周辺モジュール（20）は第２の通信インタフェース（74）を介して前記プラットホーム（12）に接続可能であり、
前記監視装置（70）は、前記プラットホーム（12）から独立して少なくとも１つのフェイルセーフサービス（76）を動かすように構成され、前記プラットホーム（12）を介して、前記監視装置（70）が前記フェイルセーフ周辺モジュール（20）と相互に作用し、
前記フェイルセーフ周辺モジュール（20）は、実装された前記安全機能（28）および前記フェイルセーフサービス（76）に基づいて、安全な状態信号を発信する、自動化システム。
【請求項２】
前記監視装置は、前記プラットホーム（12）からランダム値（R）、特にフェイルセーフ周辺モジュール（20）によって生成されたランダム値（R）を受け取るように構成された、請求項１に記載の自動化システム。
【請求項３】
前記フェイルセーフサービス（76）は、連続的なカウント値（C）を生成するように構成された計数ユニット（78）と、キー値（S）を生成するように構成されたエンコーダユニット（80）とを有する、請求項１または請求項２に記載の自動化システム。
【請求項４】
前記エンコーダユニット（80）は、ランダム値（R）および連続的なカウント値（C）からキー値（S）を生成するように構成される、請求項３に記載の自動化システム。
【請求項５】
前記第１の通信インターフェイスは、さらに、連続的なカウント値（C）およびキー値（S）を前記プラットホーム（12）に送るように構成され、
前記フェイルセーフ周辺モジュール（20）は、実装された安全機能、キー値（S）および連続的なカウント値（C）に基づいて安全な状態信号を送るように構成される、請求項３または請求項４による自動化システム、
【請求項６】
前記監視装置（70）は、ユーザによりプラットホーム（12）から着脱可能なスタンドアロン型のハードウェア構成要素であり、特にハードウェアドングルである、請求項１〜請求項５のいずれか１項に記載の自動化システム。
【請求項７】
前記監視装置（70）は、前記フェイルセーフ周辺モジュール（20）に組み込まれている、請求項１〜請求項５のいずれか１項に記載の自動化システム。
【請求項８】
前記第１の通信インタフェース（72）および／または前記第２の通信インタフェース（74）は、非安全な通信インタフェースである。請求項１〜請求項７のいずれか１項に記載の自動化システム。
【請求項９】
前記監視装置（70）は、所定の時間のキー値（S）として、キー値（S）に対応しない誤った値を送信するように構成されている、請求項３〜請求項８のいずれか１項に記載の自動化システム。
【請求項１０】
前記監視装置（70）が、好ましくは繰り返して、誤った値を生成するために前記キー値（S）の中の１ビットを逆にするように構成されている、請求項９に記載の自動化システム。
【請求項１１】
前記フェイルセーフ周辺モジュール（20）は、
連続的なカウント値（C）およびランダム値（R）から中間値（S’）を生成するように構成された復号器（88） と、前記中間値（S’）をキー値（S）と比較するように構成された比較器（90） とを備える、請求項３〜請求項１０のいずれか１項に記載の自動化システム。
【請求項１２】
前記デコーダユニット（88）および前記比較器（90）は、フェイルセーフな態様で実装される、請求項１１に記載の自動化システム。
【請求項１３】
前記フェイルセーフ周辺モジュール（20）は、前記比較器（90）が交互に動作するように起動可能および停止可能である第１の出力回路（91）および第２の出力回路（93）を含み、第１の出力回路（91, 93）および第２の出力回路（91, 93）の１つが交互に起動し、
前記フェイルセーフ周辺モジュール（20）は、前記第１および第２の出力回路（91, 93）のいずれか１つが起動されたときに、安全な状態信号を発信する、請求項１２に記載の自動化システム。
【請求項１４】
キー値（S）として誤った値が送信されたときに、前記フェイルセーフ周辺モジュール（20）は、２つの前記出力回路（91, 93）のうちの一方を介してタイムアウト信号を生成して、同時に、他方の出力回路を介して安全な状態信号を送るように構成される、請求項１３に記載の自動化システム。
【請求項１５】
前記フェイルセーフ周辺モジュール（20）は、ランダム値（R）を生成するように、または、ランダム値（R）を受信するように構成された、安全な乱数発生器(86) を備える、請求項１〜請求項１４のいずれか１項に記載の自動化システム。
【請求項１６】
前記フェイルセーフ周辺モジュール（20）は、スタンドアロン型のハードウェア構成要素である、請求項１〜請求項１５のいずれか１項に記載の自動化システム。
【請求項１７】
前記監視装置（70）、前記フェイルセーフ周辺モジュール（20）のいずれか片方、または両方がマルチチャネル冗長設計されている、請求項１〜請求項１６のいずれか１項に記載の自動化システム。
【請求項１８】
前記フェイルセーフ周辺モジュール（20）は、フェイルセーフなクロック発生器（112）を含む、請求項１〜請求項１７のいずれか１項に記載の自動化システム
【請求項１９】
プラットホーム（12）上のユーザプログラム（24, 26）に実装された安全機能（28）のフェイルセーフな実行を確実にするための監視装置（70）であって、
前記監視装置（70）は、第１の通信インタフェース（72）を介して前記プラットホーム（12）に接続可能で、前記プラットホーム（12）と独立して、少なくとも１つのフェイルセーフサービス（76）を動かすように構成され、
前記プラットホーム（12）を介して前記監視装置（70）がフェイルセーフ周辺モジュール（20）と相互に作用し、その結果、前記フェイルセーフ周辺モジュール（20）が、実装された安全機能（28）およびフェイルセーフサービス（76）に基づいて安全な状態信号を発信する、監視装置。
【請求項２０】
安全性が要求されるプロセスをプラットホーム（12）に接続するためのフェイルセーフ周辺モジュール（20）であって、
前記プラットホーム（12）は、安全機能（28）を実施するためにユーザプログラム（24, 26）を実行し、
前記フェイルセーフ周辺モジュール（20）は、前記プラットホーム（12）に接続可能であり前記プラットホーム（12）とは独立した監視装置（70）に実装されるフェイルセーフサービス（76）と相互に作用するように構成され、
前記フェイルセーフ周辺モジュール（20）は、実装された安全機能（28）および前記フェイルセーフサービス（76）に基づいて安全な状態信号を発信するように構成されている、フェイルセーフ周辺モジュール。
【請求項２１】
自動化システムを用いて安全性が要求されるプロセスを監視する方法であって、
安全機能（28）を実装したユーザプログラム（24, 26）を実行するためのプラットホーム（12）を用意し、
前記安全性が要求されるプロセスをフェイルセーフ周辺モジュール（20）を介して前記ユーザプログラム（24, 26）に接続し、
監視装置（70）によって前記プラットホーム（12）上で前記安全機能（28）のフェイルセーフな実行を確実にし、
前記監視装置（70）は、第１の通信インタフェース（72）を介して前記プラットホーム（12）に接続可能であり、前記フェイルセーフ周辺モジュール（20）は第２の通信インタフェース（74）を介して前記プラットホーム（12）に接続可能であり、
前記監視装置（70）は、前記プラットホーム（12）から独立して少なくとも１つのフェイルセーフサービス（76）を動かし、前記プラットホーム（12）を介して、前記監視装置（70）が前記フェイルセーフ周辺モジュール（20）と相互に作用し、
前記フェイルセーフ周辺モジュール（20）は、実装された前記安全機能（28）および前記フェイルセーフサービス（76）に基づいて、安全な状態信号を発信する、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は安全性が要求されるプロセス(safety critical process)を監視するための自動化システムに関し、さらには該自動化システムに関連する方法、プラットホーム上でユーザプログラムにより実装された安全機能を安全に実行するための監視装置、および安全機能を実施するためにユーザプログラムを実行するプラットホームを安全性が要求されるプロセスに接続するためのフェイルセーフ周辺モジュールに関する。
【背景技術】
【０００２】
技術的な設備によりもたらされる、人々および環境に対するリスクを低下させるために、安全性が要求されるプロセスを監視する自動化システムが用いられる。
【０００３】
この目的のために、危険が生じた場合、技術的システムまたは安全性が要求されるプロセスを安全な状態へ移すための各種安全機能が実装される。
【０００４】
DIN EN ISO 13849-1およびDIN EN ISO 12100によれば、「安全機能」という用語は、機械に起因する危険率を許容可能なレベルに低下させる、機械の安全に関連する制御機能のことをいう。
【０００５】
安全機能には、例えば、非常停止ボタンを押圧した後の機械のシャットダウンがある。
【０００６】
最初、安全機能は個々の安全アセンブリ、例えばリレー技術を備えた安全切換装置の形で実装されていた。それは、監視される設備のための制御システムと独立して作用した。その後の開発において、安全切換装置は、より複雑な安全機能を実施するために、互いに論理的にリンクされた。
【０００７】
今日では、安全コントローラは、さらに複雑なタスクのために用いられる。安全コントローラは、プログラマブルロジックコントローラ（ＰＬＣ）に類似して、プログラミングによって安全性を相互接続することを可能にしたいという要求から、主として開発された。
【０００８】
安全コントローラは、それらの実際の機能において、わずかにＰＬＣコントローラと異なる。本質的には、安全コントローラは、ユーザプログラムを並行して実行し、入力／出力に同じプロセスイメージを使用して、常に互いに同期する２台のＰＬＣコントローラに対応する。
【０００９】
しかしながら、内部的には、安全コントローラの構造は、安全に関連する要件を満たすために、ＰＬＣコントローラとかなり異なる。
【００１０】
すなわち、安全コントローラは、２本の別々のチャネル、異なるハードウェアを有する多重化された(diversitary)構造、各入力および各出力の連続テスト、ユーザデータの連続比較、電圧および時間監視、誤動作の場合または危険な状態における安全なシャットダウンを備えるという点で、ＰＬＣコントローラと一般に異なる。
【００１１】
加えて、安全機能−−特にＣＰＵ（中央処理装置）−−に関係する構成要素は、フェイルセーフでなければならない。
【００１２】
標準的な安全性を実装するために、特にIEC 61508に従ったSafety Integrity Level (SIL 3)を達成するために、ＣＰＵは、最初から冗長的に、すなわち各々を監視する少なくとも２つのＣＰＵとして、使われた。
【００１３】
標準のＣＰＵに基づくフェイルセーフ自動化システムが特許文献１から公知である。故障制御手段は、ユーザプログラムに可能な限り組み込まれて、安全プロトコル、時間的なプログラムの流れ制御、論理プログラムおよびデータフロー制御、情報の冗長性によるデータの保護、多重化された処理、ならびにプロセス故障許容時間の範囲内での自己診断を含む。
【００１４】
多重して行うことができないコマンドは、プロセス故障許容度時間の範囲内でテストされる。加えて、複数の誤り発生時間の範囲内で複数の誤りを検出するために、バックグラウンド試験が、ＣＰＵのオペレーティングシステムにより実行される。
【００１５】
特許文献１に従う安全概念の不利な点は、言及されている障害管理手段がプロセッサ依存的であるということである。したがって、IEC 61508のSIL 3にしたがって、プロセッサのフェイルセーフ性が確保されなければならない。
【００１６】
しかしながら、複雑なプロセッサにとって、プロセッサのFailure Mode Effect Analysis (FMEA) に基づく少なくとも99%の診断範囲（DC）は、もはや実行できない。
【００１７】
特許文献１において使用されるプロセッサは、他方では、用意されたコードを直接処理する、複雑さの少ない特殊なASICである。
【００１８】
したがって、プロセッサのフェイルセーフ性の証明を、正当な支出により実施することができる。
【００１９】
しかしながら、他の標準的なＣＰＵを使用するとき、対応するコードを直接実行することができない。その結果、対応するコードから機械コードを作るコンパイラも分析されなければならない。
【００２０】
さらにまた、多層誤り検出のために、ハードウェアに関連するバックグラウンド試験が必要とされるが、標準ＣＰＵでは、それは実施されないかまたは充分な効果が得られるほど実装されない。よって、標準ＣＰＵを使用するときは別に実装する必要がある。
【００２１】
プロセッサから独立したアプローチは、いわゆるSoftware Coded Processing (ＳＣＰ) により施行される。
【００２２】
ＳＣＰにより実行されるシステムは、実行中、一時的な、永続的なおよび系統的な故障を明らかにすることができる。
【００２３】
加えて、異なるプログラム（関数型プログラム、ミドルウェア、オペレーティングシステム）の間の干渉を検出することができて、表示することができる。
【００２４】
ＳＣＰの周知の変形例は、いわゆるAN−符号化、すなわちプログラムの各値が定数Ａ、特に素数を乗算される算術符号である。Aの倍数でないシステムのすべての値および状態は、結果的に不適切な状態と考えられる。
【００２５】
非特許文献１は、符号化された処理に基づいたフェイルセーフシステムに対する最初のアプローチを述べる。記載されているシステムは、入力信号を符号化するフェイルセーフ入力モジュールと、符号化された操作によって符号化された入力信号から状態および出力信号を算出して、それらの上に署名をつくる標準ＣＰＵ（符号化されたモノプロセッサ）とを備える。
【００２６】
フェイルセーフな動的コントローラは、前記標準ＣＰＵにより算出された署名を点検して、故障が生じた場合、安全な出力モジュールのスイッチを切る。
【００２７】
この方法は、このように算術符号化（素数Ａによる乗算）および署名方法（静的な署名、動的な署名）を統合して、ＣＰＵの複雑なFMEAを実行することなしに診断範囲のコンピュータによる決定を有効にする。
【００２８】
非特許文献２は、ＳＣＰに基づいたフェイルセーフシステムの実用的な説明を記載する。
【００２９】
この説明によれば、同じ安全機能を２つの異なる（多重化された）方法で（すなわちネイティブなまま、および符号化して）実行することに基づいて、特別な設計により、IEC 61508のような業界標準をサポートする。
【００３０】
ネイティブな実行は、安全機能（ネイティブプログラム）のオリジナルなソースコードの実行に対応し、ネイティブな入力値および状態を処理する。このように、ネイティブな状態だけが処理され、ネイティブな実行の結果はネイティブな出力となる。
【００３１】
符号化された実行においては、オリジナルな安全機能の符号化された形式が実行される（符号化プログラム）。
【００３２】
これには、安全機能のオリジナルなソースコードが、あらかじめ変換され符号化されることが必要である。符号化されたプログラムは、符号化された入力値、符号化された状態で動作して、符号化された出力を生じる。
【００３３】
ネイティブなプログラムおよび符号化されたプログラムは、同じ出力値で両方とも動作する。符号化された入力値については、ネイティブな入力値の符号化された変形(coded variant)である。状態および出力値に対しても同様に働く。
【００３４】
ネイティブなプログラムおよび符号化されたプログラムは、いわゆる多重化フレームワークにより実行され、管理される。
【００３５】
多重化フレームワークは、ソースコードを適切な注釈を伴って符号化することによって、オリジナルな安全機能のソースコードから発生する。
【００３６】
多重化フレームワークは、２つのプログラム（ネイティブおよび符号化）の並行した実行を調整して、ネイティブなおよび符号化された各出力値について設定された各チェックサムを使用して故障のない実行を調べる。
【００３７】
さらに多重化フレームワークは、いかなる制御フロー故障も出力チェックサムを変えるように、多重化フレームワークに制御フローチェックデータフローを集積させることによって、安全機能の制御フローを監視することができる。
【先行技術文献】
【特許文献】
【００３８】
【特許文献１】欧州特許出願公開第1 043 641 A2号明細書
【非特許文献】
【００３９】
【非特許文献１】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" 「ソフトウェア符号化処理を備える安全性が要求される高性能なシステム」
【発明の概要】
【発明が解決しようとする課題】
【００４０】
しかしながら、前述したＳＣＰをベースにした方法の不利な点は、符号化された動作が多くのランタイムを犠牲にするということである。特に署名方法も用いられる場合、符号の生成は高コストであり複雑である。例えば、ＳＰＣでは、符号化されたプログラムは、ネイティブな変形と比べてより多くのビットの格納とプロセス値を必要とする。
【００４１】
例えば、ネイティブなプログラムが３２ビットデータ型を使用する場合、符号化されたプログラムは、３２ビットデータ型の可能な最大値にＡを乗算したものを少なくとも格納できるデータ型を使用しなければならない。
【００４２】
したがって、ネイティブなプログラムが３２ビットデータ型を使用する場合、符号化されたプログラムは通常６４ビットデータ型が採用される。
【００４３】
同様に、すべてのネイティブな動作は、対応する符号化された動作と置き換えられる。それは、ネイティブな動作より多くのランタイムを必要とし、その作成のための対応する複雑な一連のツールを必要とする。
【００４４】
以上の背景に対して、本発明は、標準構成要素に基づいて、同時に標準対応の高安全カテゴリの安全機能の導入を可能にした、前述の不利な点を回避する安全な自動化システムを提供することを目的とする。
【課題を解決するための手段】
【００４５】
本発明の一つの態様では、安全性が要求されるプロセスを監視する自動化システムが提供される。自動化システムは、安全機能を実施する複数のユーザプログラムを実行するためのプラットホームと、ユーザプログラムに安全性が要求されるプロセスを接続するためのフェイルセーフ周辺モジュールと、プラットホーム上で安全機能のフェイルセーフな実行を確実にするように構成された監視装置と、を備える。
【００４６】
前記監視装置は第１の通信インタフェースを介してプラットホームに接続され、フェイルセーフ周辺モジュールは第２の通信インタフェースを介してプラットホームに接続されることができる。監視装置はプラットホームを介してフェイルセーフ周辺モジュールと相互に作用する。監視装置は、プラットホームとは独立して、少なくとも１つのフェイルセーフサービスを働かせるように構成される。フェイルセーフ周辺モジュールは、設置された安全機能およびフェイルセーフサービスに基づき、安全な状態信号を送るように構成される。
【００４７】
本発明では、さらにまた、前記自動化システムの発明に対応する方法が提供される。
【００４８】
本発明のさらに別の態様では、プラットホーム上のユーザプログラムに実装された安全機能のフェイルセーフな実行を確実にするための監視装置が設けられる。監視装置は、第１の通信インタフェースを介してプラットホームに接続可能であり、プラットホームを介して、フェイルセーフ周辺モジュールと相互に作用する。フェイルセーフ周辺モジュールは、実装された安全機能およびフェイルセーフサービスに基づいて安全な状態信号を送る。
【００４９】
本発明のさらに別の態様では、安全性が要求されるプロセスをプラットホームに接続するためのフェイルセーフ周辺モジュールが設けられている。プラットホームは、安全機能を実施するためにユーザプログラムを実行する。フェイルセーフ周辺モジュールは、プラットホームに接続可能であり、プラットホームとは独立して設けられた監視装置に実装されたフェイルセーフサービスと相互に作用するように構成される。フェイルセーフ周辺モジュールは、実装された安全機能およびフェイルセーフサービスに基づいて安全な状態信号を送るように構成される。
【００５０】
このように、プラットホームの外付け構成要素によって、任意のプラットホーム（特に非安全なプラットホーム）上で、主にソフトウェアによって実現される安全機能の安全な実施を確実にすることが、本発明の着想である。前記外付け構成要素は、可能な限り単純に設計される。
【００５１】
換言すれば、低コストなプラットホーム上のソフトウェアに、複雑な安全機能を実装し、かつ、実装容易であってより少ない努力で保証され得る各構成要素によって、求められる固有の誤りに対する安全性を確保することが本発明の着想である。
【００５２】
外付け構成要素−−それは好ましくは専用ハードウエアとして実装されている−−は、プラットホーム上のユーザプログラムの間違った実行、プラットホームそのものの不完全なふるまい、またはプラットホームとの通信の欠陥がある場合、プロセスの安全な状態が保証されるように相互に作用する。
【００５３】
この目的のために、監視装置は、好ましくは当該監視装置をプラットホーム上の安全関連ランタイム環境と協働させることによって、ユーザプログラムのフェイルセーフな実行を確実にする。
【００５４】
故障の場合、監視装置は、安全機能の実行を開始できる。特に、プラットホームと独立して、「Watch Dog」のようなプラットホームと独立して実行される他のサービスによって、フェイルセーフ周辺モジュールを通してプロセスを停止する。
【００５５】
プラットホームは、開発の基礎およびユーザプログラムの実行に役立つソフトウェア、ハードウェア、または仮想プラットホームであり得る。特に、プラットホームは、非安全なプラットホーム、例えば標準のパソコン（ＰＣ）のような単一チャネル系であってもよい。
【００５６】
あるいは、プラットホームは、クラウドコンピューティングの形で設けられることもできる。特にサービスとしてのインフラストラクチャ（IaaS）またはサービスとしてのプラットホーム（PaaS）があげられる。
【００５７】
好ましい実施の形態において、プラットホームは、安全に関連するランタイム環境をすでに含むことができる。
【００５８】
この明細書において、「安全でない」もしくは「非安全」とは、それ自体本質的安全が要求されるレベルで安全機能を実行するために、プラットホームが関連する安全上の必要条件を満たさないことをいう。
【００５９】
フェイルセーフサービスは、ハードウェアまたはソフトウェア上で確実に、かつフェイルセーフに実装され得る単純なデータ処理機能または動作を実行してもよい。
【００６０】
さらにまたそれらは、高安全のカテゴリであっても、関連する安全基準にしたがって、ほとんど労力なしに保証されることが可能である。
【００６１】
したがって、監視装置は、少なくとも１つのフェイルセーフサービスの排他的な実行のために必要な事項に、限られる。
【００６２】
監視装置は、通信インタフェースを介して、フェイルセーフ周辺モジュールに接続される。通信インタフェースは、フェイルセーフサービスによって発生するサイクリックなデータを、所定のスキームにしたがって後者に交換するために、特に非安全（すなわち１チャンネル）である。プラットホームを介して行われるデータ交換に基づいて、監視装置の適切な操作、およびこれに関連して、プラットホームの監視またはその上に実装された安全関連のランタイム環境が確実にされる。監視装置にエラーがあると、安全機能がトリガーされる。 
【００６３】
フェイルセーフサービスに加えて、監視装置には、プラットホーム、特にプラットホーム上で実行される安全関連のランタイム環境と相互に作用する他の装置が含まれる場合がある。安全関連のランタイム環境は、ユーザプログラムとは独立してプラットホーム上で実行される。
【００６４】
したがって、本発明の利点は、任意の複雑さの安全機能を、標準のハードウェアまたは標準のアセンブリに実装でき、よって、単純な個別の構成要素によって補完されつつ、 最終的な安全性が確保されることである。
【００６５】
したがって、本発明は、自動化システムの個々の構成要素を、必要なだけ安全であればよい安全機能の中に含ませるという原理に基づき、それにより、高い安全性が、各構成要素間の相互作用により達成される。
【００６６】
したがって例えば、計算集約的なタスクはより高速で費用対効果の高いハードウェアに実装でき、必要な安全機能は専用のハードウェアによって補完される。専用ハードウェア自体は、複雑な安全機能を単独で実行することはできないが、単純なサービスの実行で、安全機能のフェイルセーフな実施を確実にする十分な計算能力を持つ。
【００６７】
したがって、監視装置の実装は、安全機能を実行するプラットホームの実装よりも複雑ではない可能性がある。これにより、所管当局による認証は簡素化される。 有利なことに、安全関連の保護は、安全機能とは独立して実装されている。これにより、安全関連の認証は、個別に実装された安全機能とは独立して、基本的に起こり得る。
【００６８】
安全機能自体のトリガーは、監視デバイスによって開始できる。実行はフェイルセーフ周辺モジュールに任されており、それは、自動化システムが標準の構成要素から構築されている場合、 どのような場合でも存在する必要がある。
【００６９】
したがって、本発明の1つの焦点は、安全コントローラの個々の側面をさまざまな構成要素に配布することである。各構成要素は独自のフォーカスを設定し、そのフォーカスに合わせて最適化されている。 このようにして、安全性の高いカテゴリーの複雑な安全機能を費用対効果の高い柔軟な方法で実装できる。
【００７０】
好適な改良において、監視装置は、プラットホームからランダム値、特にフェイルセーフ周辺モジュールによって生成されるランダム値を受け取るように構成される。
【００７１】
このランダム値は、遠隔端末が適切に動いているかどうか容易に決定するために用いることができる。乱数発生器も、フェイルセーフな方法で容易に実装することができる。この改良は、フェイルセーフサービスの簡略な実施例に、都合よく寄与する。
【００７２】
さらなる改良において、フェイルセーフサービスは、連続した数値を生成するように構成される計数ユニットと、キー値を生成するように構成されるエンコーダユニットを備える。
【００７３】
フェイルセーフな計数ユニットおよびフェイルセーフ符号化ユニットは、フェイルセーフサービスを一緒に提供できる。フェイルセーフサービスを介して、実行しているプラットホームの充分なフェイルセーフ性を確保することができる。同時に、フェイルセーフ計数ユニットおよびフェイルセーフ符号化ユニットは、フェイルセーフ構成要素として実装するのが容易で、既成品のフェイルセーフモジュールとして常に用いられる。
【００７４】
監視装置は、特に費用対効果的な方法でこのように実装することができる。
【００７５】
好ましくは、計数ユニットおよび符号化ユニットは、フェイルセーフな方法、すなわち、これらのユニットの１つの欠陥が検出されることが計画的に確実にされるように実装される。例えば、カウンタおよびエンコーダは、マルチチャネル冗長なユニットであってもよく、かつ、マルチチャネル冗長なハードウェアに実装されてもよい。
【００７６】
両方（カウンタおよびエンコーダ）とも、単純なユニットであるので、それらの固有誤差に対する安全性は、確実に保証されることができ、少ない努力によって検査されることができる。このように、この改良は、特に費用対効果的な方法で自動化システムの安全を実現するのに、さらに貢献する。
【００７７】
さらなる改良において、エンコーダユニットは、ランダム値および連続的なカウント値からキー値を生成することができる。
【００７８】
ランダム値は、プラットホームによって、または、それを通して、このように用意される（すなわち外部から監視装置に供給される）。
【００７９】
監視装置は、好ましくは周期的に受信されるランダム値が時間とともに変化するかどうか、調べる。
【００８０】
それと同時に、連続的なカウント値による符号化は、すべての数が通過されることを確実にする簡単な方法である。
【００８１】
このように監視装置は、ランダム値を提供する乱数発生器がすべての値を本当に循環するかどうか、別に調べる必要はない。そを実施することは監視装置の弱い能力に鑑みて、困難を伴うだけである。
【００８２】
このようにさらなる改良は、監視装置の費用対効果的な実現に寄与する。
【００８３】
さらなる改良において、第１の通信インタフェースは、プラットホームに連続的なカウント値およびキー値を送るようにさらに構成される。フェイルセーフ周辺モジュールは、実装された安全機能、キー値、および連続的なカウント値に基づいて安全な状態信号を送るように構成される。
【００８４】
この改良において、データ交換を容易に行うことができる。このデータ交換によってプラットホームで実行される安全機能の安全保護が保証される。
【００８５】
さらなる改良において、監視装置は、ユーザによってプラットホームから着脱可能なスタンドアロンなハードウェア構成要素、特にハードウェアドングルである。
【００８６】
この改良において、監視装置は、このようにハードウェア側のプラットホームから独立して実装され、例えば単純なＵＳＢドングルとして、それに接続されることもできる。
【００８７】
独立したハードウェアおよびこのハードウェアからプラットホームで実行される安全機能のカプセル化は、監視装置の独立した証明を可能にする。それは特に容易に、費用対効果の高い状態で実施されることができる。
【００８８】
このように改良は、監視装置の特に好ましい実現にさらに寄与する。
【００８９】
他の改良において、監視装置は、フェイルセーフ周辺モジュールに集積されることができる。
【００９０】
この明細書において、「集積」ないし「一体化」とは、監視装置の個々の機能群がフェイルセーフ周辺モジュールのハードウェアに実装されることをいう。
【００９１】
このことにより、各構成要素は、費用対効果の高い状態で、監視装置とフェイルセーフ周辺モジュールとに分配されることができる。
【００９２】
例えば、フェイルセーフ周辺モジュールおよび監視装置は、共通の安全なハードウェア基盤を共有できる。
【００９３】
この改良は自動化システムの単純な実現にこのように寄与する。その理由は、プラットホームに加えて、デバイスおよびフェイルセーフ周辺モジュールが集積される１つの別の構成要素が必要とされるにすぎないからである。
【００９４】
さらなる改良において、第１のおよび／または第２の通信インタフェースは、非安全な通信インタフェースである。
【００９５】
この改良において、通信インターフェイスは、それ自身において安全に関連の通信を確実にすることができるであろう安全なユニットではない。しかし、例えば、市販のUSBインターフェースである。
【００９６】
この場合、監視装置とフェイルセーフ周辺モジュールとの相互に作用によって、安全性は、通信から独立して保証されることができる(Black-Channel-Principle)。
【００９７】
この改良は、低コストの標準通信インタフェースを用いることが可能であるという利点がある。それは全体システムのコストを都合よくさらに減らすことができる。
【００９８】
さらなる改良において、監視装置は、所定の時間に、キー値として、キー値に対応しない誤った値を送信するように、構成される。
【００９９】
故意に誤った値を送信して、フェイルセーフ周辺モジュールの出力を読み込むことによって、監視装置のフェイルセーフ周辺モジュールとの安全な相互に作用を、簡単な方法で試験することができる。
【０１００】
好適な改良において、監視装置は、好ましくは繰り返し(in a rolling manner)、誤った値を生成するためにキー値の１ビットを逆にするように構成されることができる。
【０１０１】
監視装置はこのように、キー値としての誤った数値が予想どおり失敗に至るかどうか、好ましくは正しいキー値の１ビットを逆にして、周期的に調べる。
【０１０２】
８ビットの数値については、高いところにとどまった故障(stuck-on-high error)が、遅くとも８つの試験サイクルの後検出される。
【０１０３】
このようにさらなる改良は、安全性を改善することに寄与する。
【０１０４】
さらなる改良において、フェイルセーフ周辺モジュールは、連続的なカウント値およびランダム値から中間値を生成するための復号器と、中間値をキー値と比較するための比較器とを含む。
【０１０５】
フェイルセーフ周辺モジュールは、監視装置と相互に作用するために、監視装置に対する相補型手段を、このように備えていることができる。
【０１０６】
特に、復号器および比較器は、フェイルセーフな方法で実装されることができる。
【０１０７】
この改良は、監視装置が簡単な方法で実装されることを確実にするために、さらに貢献する。その理由は、フェイルセーフ周辺モジュールが監視装置に適合しているからである。
【０１０８】
全般的に見て、自動化システムを提案された構成要素に分割することによって、高安全カテゴリに適する費用対効果のよい自動化システムが達成可能である。
【０１０９】
さらなる改良において、フェイルセーフ周辺モジュールは、比較器が交互に動作する活性化と非活性化とが可能な第１の出力回路および第２の出力回路を含む。その結果、第１の出力回路または第２の出力回路は交互に起動する。第１または第２の出力回路が起動するときに、フェイルセーフ周辺モジュールは安全な状態信号を送る。このように、フェイルセーフ周辺モジュールは、スイッチのように起動および停止されることができる２つの出力回路を有することができる。
【０１１０】
好ましくは、各出力回路は、起動の後、所定の期間経過後に、それ自身を停止させるように構成される。このために、各出力回路は、例えば、単安定フリップフロップ（モノフロップ(monoflop)とも呼ばれる）を各々有することができ、そこにおいて比較器は交替に動作し、その結果、少なくとも１つの単安定フリップフロップがトリガされる。
【０１１１】
２つの単安定フリップフロップのうちの少なくとも１つがトリガされるときに、フェイルセーフ周辺モジュールは安全な状態信号を送る。
【０１１２】
フェイルセーフ周辺モジュールは、簡単な方法で始動および停止されることができる２つの出力回路を用いて、例えば単安定切り替え式のステージによって、好ましくは単純化されることができる。その理由は、冗長に動作する２台のプロセッサを有する通常のマルチチャネルの冗長な評価ユニットが必要でないからである。
【０１１３】
単安定フリップフロップまたは他のスイッチ様の部品は、プロセッサよりしばしば高価でないので、本実施例は、フェイルセーフ・アセンブリの費用対効果的な実装に寄与する。
【０１１４】
さらなる改良において、誤った値がキー値として送信されるときに、フェイルセーフ周辺モジュールは、２つの出力回路のうちの１つを介してタイムアウト信号を生成して、他の出力回路を介して同時に安全な状態信号を送るように、構成される。
【０１１５】
他方がテストされると同時に一方が保持されるように出力回路を制御することによって、監視装置およびフェイルセーフ周辺モジュールの適正な運用を、プロセスを安全な状態に実際に変えることなく確認することができる。
【０１１６】
したがって、この種の試験は、都合の良いことに、自動化システムの可用性を制限しない。
【０１１７】
さらなる改良において、フェイルセーフ周辺モジュールは、ランダム値（S）を生成する安全な乱数発生器を含む。あるいは、フェイルセーフ周辺モジュールは、ランダム値（S）を受信するように構成される。
【０１１８】
外側から監視装置に追加されるランダム値は、特にフェイルセーフ周辺モジュールによって、このように生成される。その結果、乱数発生器はその実装にあたって、フェイルセーフ周辺モジュールの安全な能力を利用できる。安全な乱数発生器の実装は、簡単な方法でこのように実現することができる。
【０１１９】
さらなる改良において、フェイルセーフ周辺モジュールは、スタンドアロンなハードウェア構成要素である。
【０１２０】
このようにして、フェイルセーフ周辺モジュールは、プラットホームと独立してフェイルセーフであるように設計され実装されることができる。
【０１２１】
フェイルセーフ周辺モジュールは、異なるプラットホームのために柔軟にこのように用いられることが可能である。そこにおいて、周辺モジュールの固有の誤りからの安全性は、それぞれに保証される。このようにさらなる改良は、自動化システムのフレキシブルな設計に寄与する。
【０１２２】
さらなる改良において、監視装置および／またはフェイルセーフ周辺モジュールは、マルチチャネル冗長設計であり得る。マルチチャネル冗長設計とは、フェイルセーフシステムを実施するための安全工学における周知の手順である。本発明によって、監視装置およびフェイルセーフ周辺モジュールが極力単純に設計されるので、マルチチャネル冗長設計も、特に費用対効果的な方法で実施することができる。
【０１２３】
さらなる改良において、フェイルセーフ周辺モジュールは、フェイルセーフなクロック発生器を含むことができる。さまざまな安全機能の実装のために、安全なクロック信号は、各種構成要素のフェイルセーフ性を確実にするために常に必要とされる。安全なクロック信号がフェイルセーフ周辺モジュールから出力されるので、追加的な安全な構成要素は必要とされない。
【０１２４】
このようにさらなるこの改良は、自動化システムの柔軟な設計に寄与する。
【０１２５】
今まで述べてきた事項、および以下で説明する事項は、それぞれの場合に示された組み合わせだけでなく、他の組合せ、または、単独でも、本発明の要旨を逸脱しない範囲で使用できる。
【０１２６】
本発明の実施の形態は、図面に示され、以下において、さらに詳細に説明される。
【図面の簡単な説明】
【０１２７】
【図１】本発明の第１の実施の形態にしたがった自動化システムの略図を示す。
【図２】さらなる実施の形態にしたがった自動化システムの安全モデルの略図を示す。
【図３】自動化システムの設計モデルの略図を示す。
【図４】実施の形態にしたがった自動化システムの故障ルーチンの状態図を示す。
【図５】本発明の第２の実施の形態にしたがった自動化システムの概要図を示す。
【図６】第２の実施の形態にしたがった２つの変形例を示す。
【図７】第２の実施の形態にしたがった自動化システムの回路ブロック図を示す。
【発明を実施するための形態】
【０１２８】
図１において、第１の実施の形態に係る自動化システムの全体が、参照番号１０によって示される。
【０１２９】
ここで、自動化システム10は、安全な自動化システムをともに形成するハードウェア構成要素およびソフトウェア構成要素を含む。
【０１３０】
この明細書において、「安全」とは、実装された安全機能のために、IEC 61508によるSafety Integrity Level 3が自動化システムにより達成されることを言う。
【０１３１】
本自動化システムは、データ処理装置およびコンピュータユニットとしての役割のプラットホーム12を含む。
【０１３２】
プラットホーム12は、専用ハードウエア14、リアルなもしくは仮想のコンピューティングシステム１６、またはクラウドサービスとして設けられたインフラ基盤１８であってもよい。プラットホーム12はまた、前述した器材の組合せから成ることもできる。
【０１３３】
プラットホーム12は、非安全なプラットホームでもよく、少なくとも部分的に非安全な構成要素から成っていてもよい。
【０１３４】
この明細書において、「非安全な」とは、それ単独で安全なシステムを実施することができる関連する安全基準という意味で、プラットホーム12の構成要素が充分な本質的安全を提供しないことを言う。
【０１３５】
プラットホーム12は、このように、例えば、市販のPCハードウェアから成ることができて、特に、標準のプロセッサを含むことができる。
【０１３６】
同様に、各種実施の形態で、プラットホーム、またはプラットホームの構成要素は、クラウドコンピューティングの形で設置されてもよい。
【０１３７】
プラットホーム12は、ハードウェア構成要素およびソフトウェア構成要素から成ることができる。例えば、プラットホーム12は、ＰＣまたはラズベリーパイ(Raspberry Pi)といった、さまざまなLinux（登録商標）ディストリビューションのような非安全なリアルタイムオペレーティングシステム（RTOS）を実行する、非安全なデバイスであってもよい。
【０１３８】
自動化システム10は、さらに、プロセスからのフェイルセーフ入力およびプロセスへのフェイルセーフ出力のための、少なくとも１つのフェイルセーフな周辺モジュール20を備えていてもよい。
【０１３９】
フェイルセーフ周辺モジュール20は、プロセスに接続されるべき自動化システムを有効にする。
【０１４０】
周辺モジュール20のフェイルセーフ性は、周辺モジュール20と自動化システム10との間の安全に関連した通信と同様、この安全技術の分野で一般に知られている原理によって実施されるので、本願明細書において、さらに細かく議論することはない。
【０１４１】
プラットホーム12およびフェイルセーフ周辺モジュール20は、ともに安全な自動化システム10の基礎およびインターフェイスを形成する。その一方で、ユーザプログラム24, 26とともにプラットホームに設置された安全ランタイム環境22が、実際の安全機能28を実施する。
【０１４２】
この安全ランタイム環境22は、プラットホーム12とユーザプログラム24, 26との間に置かれるソフトウエア層であり、プラットホーム12から独立して、ユーザプログラム24, 26に安全な資源30を提供する。
【０１４３】
安全ランタイム環境22は、ユーザプログラム24, 26をロードして、それらをプラットホーム上で実行して、それらの相互接続を調整する。このように安全ランタイム環境22そのものは、ユーザプログラム24, 26が実行される小さなプラットホームを表す。
【０１４４】
好ましくは、ユーザプログラム24, 26は、プラットホーム12のために、特に形成される。すなわち、プラットホーム12で実行されるためのネイティブな機械コードに変換することができるプログラミング言語で書き込まれる。
【０１４５】
安全ランタイム環境22は、このように、ユーザプログラム24, 26を実行するための「オペレーティングシステム」でなく、ユーザプログラム24, 26のための安全な資源30を単にカプセル化するだけである。すなわち、ユーザプログラム24, 26に安全な資源30のフェイルセーフな実行を確実にすることを要求することなく、ユーザプログラム24, 26にそれらの安全な資源が含まれるようにすることができる。
【０１４６】
一方、安全ランタイム環境22は、プラットホームに特有の構成要素と、プラットホームに依存しない構成要素に分けられることが可能である。特に、安全な資源30は、安全ランタイム環境22が異なるプラットホームに容易に配送されることができるように、プラットホームに依存しない構成要素によって配置される。
【０１４７】
安全機能28は、いかなる安全機能、例えば非常停止、両手操作または遠隔入出力(I/O)であってもよい。
【０１４８】
安全機能28とは、このように、自動化システムに設置された安全に関連する制御機能である。
【０１４９】
安全に関連する制御機能は、並行して実行される２つのユーザプログラム24, 26によって実施されることができる。冗長であることに加えて、ユーザプログラムは、異なる方式のユーザプログラム24, 26によって同じ結果が取得される、すなわち多重化された(diversitary)設計であってもよい。
【０１５０】
コンピュータで使われている使用するプロセッサの構成要素が共通に反応しない(mutual non-reactivity)ことが証明されている場合、または共通に反応しない部分がプロセッサの同じ構成要素を使っていることが証明されている場合、コンピュータが完全に多重化されている(diversitary)と、言われる。この種の証明は通常ハードウェア試験を必要とするが、次の場合省略されることができる：（１）ＳＣＰの意味における符号化処理の場合、（２）本開示にしたがった自動化システムであって、これらのハードウェア試験が追加試験および安全ランタイム環境の安全な資源30で補償されることができて、外部から証明可能である場合。
【０１５１】
好ましい実施の形態において、第２のユーザプログラム26が、第１のユーザプログラム24に関する多重化データで動作し、同じ計算ステップのための異なる命令を使用しているのであれば、第１および第２のユーザプログラム24, 26間の多重化は成し遂げられる。
【０１５２】
逆データ(inverse data)の使用は完全な多重化を提供しないが、それは安全ランタイム環境22およびその試験31に関連した充分なフェイルセーフ性を許す充分な多重化を提供する。
【０１５３】
逆データによって働くプログラムバージョン（以下、逆ユーザプログラムと記載する）は、所定の変換スキームに従って、ネイティブなプログラムバージョンから自動的に容易に生成される。
【０１５４】
逆ユーザプログラムは、ネイティブなユーザプログラムに比較される作業によって、このように実行されることができる。
【０１５５】
さらにまた、ＳＣＰの意味における符号化ユーザプログラムとは異なり、逆ユーザプログラムは、逆データを使った計算が同じ算術に基づくので、同じデータ型によって動作することができて、同じ命令セットを参照する。
【０１５６】
したがって、逆ユーザプログラムは、算術符号化（例えばAN符号化）に基づく符号化ユーザプログラムより複雑でない。
【０１５７】
加えて、ネイティブなプログラムバージョンから逆プログラムバージョンを作成するための一連のツールは、より少ない努力で実行することができる。簡略な一連のツールのため、他のシステムに対する速い移植(porting)または他のプログラミング言語の使用が可能である。全体の柔軟性はこのように増大する。
【０１５８】
したがって、この概念は、とりわけ、SCPに従ってコード化された処理が、ここで提案する多様な処理よりも明確かつ確実にアプリケーションプログラムの実行エラーを明らかにできるが、そうするために必要な努力が正当化されないという仮定に基づいている。なぜなら高い安全分類を達成するためには、アプリケーションを安全モデルに統合することが常に必要であるからである。
【０１５９】
したがって、個々の構成要素の本質的なフェイルセーフ性、例えばSCPを介したユーザプログラムの本質的なフェイルセーフ性を高める代わりに、全体の評価を実行し、自動化システムの個々の構成要素を必要に応じて安全なものにするという概念である。
【０１６０】
よって、全体として安全な自動化システムが構築でき、それは高い安全レベルに応じた安全機能を実現できる。
【０１６１】
このように、本概念の１つの焦点は、自動化システムの個別の構成要素、すなわち、特にユーザプログラム24, 26、安全ランタイム環境22およびプラットホーム12を、できるだけ単純かつフレキシブルにすることであり、これにより、安全性、複雑さ、ポータビリティ間のバランスされたトレードオフが自動化システムのすべてのレベルで成し遂げられる。
【０１６２】
図２は、好ましい実施の形態にしたがった自動化システムの安全モデルの略図を示す。
【０１６３】
ここで、安全ランタイム環境22は、非安全なリアルタイムオペレーティングシステム３４を有する非安全なデバイス32の上で展開される。非安全なデバイス32および非安全なリアルタイムオペレーティングシステムは、一緒にプラットホーム12を形成する。
【０１６４】
一方では、安全ランタイム環境22はソフトウエア層であり、資源層36において、プラットホーム12から独立してユーザプログラム24, 26に安全な資源30を提供し、他方では、ユーザプログラム24, 26および後者により実装される安全機能を監視するためのローカルで安全なインスタンス38を形成する。
【０１６５】
さらにまた、ユーザプログラム24, 26は、安全な周辺モジュール20を介して監視されるプロセスに接続している。
【０１６６】
安全ランタイム環境22は、安全なデバイスによって、監視されることができる。安全なデバイス（以下「安全ペースメーカー（ＳＰＭ）40」と呼ばれる）とは、例えば市販のUSBスティックの形の、１または複数の単純なマイクロコントローラ（例えばPICおよび／またはAVR）を有する単純なハードウェアドングルであってもよい。
【０１６７】
ハードウェアドングルがUSBインターフェースに限られていないことが理解される。例えば、ＳＰＭ40はイーサネット（商標）、RS232または他の通信インタフェースを介して接続されることもできる。
【０１６８】
ＳＰＭ40は、第２の、好ましくは外部の、安全なインスタンス41を実装する。
【０１６９】
この第２の安全なインスタンス41は、故障の選択的な注入によって、安全ランタイム環境22、特に第１のローカルで安全なインスタンス38をテストする。
【０１７０】
故障の注入は、外部の安全なインスタンス41により起動される安全ランタイム環境22のサービスおよびマニピュレータを介して、行われる。
【０１７１】
このことにより、安全ランタイム環境22のデータ比較器、システムクロックおよびタイマー試験を点検できる。よって、ユーザプログラム24, 26の開発の間、適切な試験を考慮しなくてもおよび／または実施しなくても、ユーザプログラム24, 26の実行における故障を開示できる。
【０１７２】
このように、アプリケーションプログラマがユーザプログラムのフェイルセーフ性を考慮することを必要とすることのないシングルチャンネルの態様で、第１のユーザプログラム24を書き込むことができる。
【０１７３】
第１のユーザプログラムの多重化である第２のユーザプログラム26は、適切な一連のツールによって、自動的に発生できる。
【０１７４】
このことにより、アプリケーションの開発者は、実際の安全機能を実施することだけに集中できる。
【０１７５】
好ましい実施の形態において、ＳＰＭ40は、特にフェイルセーフ周辺モジュール20で第２のシャットダウンパスを実行するために、安全クロック信号４２をさらに提供できる。
【０１７６】
図３は、発明の実施の形態に係る自動化システム10が埋め込まれた設計上のモデルを示す。
【０１７７】
このアーキテクチャモデルは、基本的に３つの構成要素を備える。これらは、自動化システム10、前述したＳＰＭ40などの外部安全ユニット、および２つの構成要素間をつなぐ通信インタフェース44である。
【０１７８】
全３つの構成要素は、ハードウェアに特異的でない層46およびハードウェアに特有の層48を含むことができる。
【０１７９】
自動化システム10において、安全ランタイム環境22は、システムアブストラクション層（ＳＡＬ）と呼ばれているハードウェアに特有の構成要素を用いてハードウェア特異的でない層46から、ハードウェアに特有の層48を切り離す。
【０１８０】
ＳＡＬ 50は、オペレーティングシステム52およびいかなる付随するハードウェア５４からも安全ランタイム環境22を抽出する。
【０１８１】
オペレーティングシステムドライバ５８により駆動される特別なハードウェア56は、スタンドアロンＳＡＬドライバ60によって、抽出されてもよい。
【０１８２】
ハードウェア特異的でない層46において、自動化システム10は、資源層36を実装する。資源層36は、安全な資源すなわち安全なリソースを提供し、本願明細書に示すように（３６ａ，３６ｂ）、それは好ましくは冗長で、多重化(diversitary)されている。
【０１８３】
資源層36は、プロセスデータとともにタイマーを各チャネルに提供できる。加えて、資源層36は、安全性に関連する機能（例えば安全なCRC算出）を提供してもよい。
【０１８４】
アプリケーションマネージャ62a, 62bは、資源層36の上にあり、好ましくは１つのアプリケーションマネージャがそれぞれのユーザプログラム24, 26のために働く。
【０１８５】
アプリケーションマネージャは、始動時、かつＣＲＣの時に、２つのアプリケーションプログラム24, 26の整合性を点検する。
【０１８６】
アプリケーションマネージャ62a, 62bは、さらに、アプリケーションプログラムを周期的に呼び出すときに、それらの実行を監視し、ＡＰＩに提供する。
【０１８７】
ＡＰＩは、出力を設定し、入力を読み込み、および、アプリケーションタイマーを始動して読み込むための機能を含むことができる。
【０１８８】
本願明細書において示されるように、アプリケーションマネージャ62a, 62bは、二重化された多重設計であり得る。
【０１８９】
自動化システム10の安全ランタイム環境22は、ローカルで安全なインスタンス38をさらに実装する。ローカルで安全なインスタンス38は、必要な複数の安全タスクを遂行できる。安全タスクは、RAMおよびROMの各試験、サイクルおよびシーケンスの監視、およびタイマーの試験を含むことができる。
【０１９０】
さらにまた、ローカルで安全なインスタンス38は、ユーザプログラム24, 26のプロセスデータの整合性チェックを実行できる。
【０１９１】
この目的のために、ローカルで安全なインスタンス38は、一度だけシステム上で走ることができて、ＳＰＭ40を介して外部から点検されることができる。
【０１９２】
ＳＰＭ40は、例えば、公知の方法でアプリケーションの安全な実行をさせることができる２台の冗長なプロセッサ64a, 64bにより形成される安全なハードウェアを含むフェイルセーフデバイスである。
【０１９３】
ＳＰＭは自動化システム10のユーザプログラムに関して、制御のためにユーザプログラムを実行しないので、ハードウェアは単純な設計であってもよい。
【０１９４】
特に、特別な安全な複数のＣＰＵがプロセッサ64a, 64bのために使われことができる。そのフェイルセーフ性は、例えばFMEAによって、実際に保証されることができる。
【０１９５】
第２の安全なインスタンス41は、ＳＰＭ40上で実行されることができる。
【０１９６】
第２の安全なインスタンスは、ハードウェアに依存しない方法で実装されることができて、アブストラクション層66によって、ハードウェアから切り離されることができる。
【０１９７】
第２の安全なインスタンス41は、自動化システム10の第１の安全なインスタンス38に、通信インタフェース44を経て接続されてもよい。
【０１９８】
通信インタフェース44は、特別な安全設計のない単チャネルの通信インターフェイスでもあってもよい。
【０１９９】
通信のフェイルセーフ性は、自動化システム10のローカルで安全なインスタンス38と、Black-Channel-Principalを経た外部安全装置の第２の安全なインスタンス41との協働によって、確保することができる。
【０２００】
好ましい実施の形態において、安全ランタイム環境22およびＳＰＭ40は、時間監視(time-out monitoring)を伴う固定された周期において、互いに通信する。
【０２０１】
ＳＰＭ40により促されると、データ（例えばタイマ値、シーケンス制御など）がある時点で故意に偽造される(deliberately falsified)。
【０２０２】
この目的のために、安全ランタイム環境22は、例えばＳＰＭ40が安全ランタイム環境22にマニピュレータの対応するIDを送ることによって、ＳＰＭ40により起動できるマニピュレータを有する。
【０２０３】
ＳＰＭ40はその後、安全ランタイム環境22からの適切な誤り応答を期待する。
換言すれば、ＳＰＭ40は、マニピュレータIDが送信されたあと、安全ランタイム環境22に特定の挙動を求める。
【０２０４】
安全ランタイム環境22は、マニピュレータのため、ユーザが検出できる故障を持つことができないか、または意図的な改ざんのために出力をシャットダウンすることもできない。
【０２０５】
したがって、故障は、安全ランタイム環境22によって、捕捉されなければならない。
【０２０６】
本概念は、プログラムが走っているときに、リアルタイムでシステムの挙動をテストすることを可能にする。
【０２０７】
図４は、ＳＰＭ40および自動化システム10が、チェックの間、とることができる状態を示す状態図である。
【０２０８】
正常状態Ａにおいて、安全ランタイム環境22は、故障を待って反応する。
【０２０９】
この状態で、安全ランタイム環境22がＳＰＭ40から、好ましくは所定のビットマスクを含むマニピュレータIDを受け取れば、対応するマニピュレータが起動する。安全ランタイム環境22は、状態Bへ移行し、そこにおいて、対応する故障に対する感度が減じられる(desensitized)。その後、データの操作が、故障を模擬するために行われる。好ましくは、データは、受信したビットマスクによってXORされる。その結果、故障ビット位置はＳＰＭ40によって、ならされる(rolled)ことができる。
【０２１０】
操作に応答して、安全ランタイム環境22は、ＳＰＭ40が期待する適切な誤り応答を生成しなければならない。期待が発生しない場合、安全ランタイム環境22および／またはＳＰＭ40は、例えば別の第２のシャットダウンパスを使用して、安全なシャットダウンをトリガできる。
【０２１１】
好ましい実施の形態において、第２のシャットダウンパスは、ＳＰＭ40と安全な周辺モジュール20との相互作用によって実装されてもよい。しかしながら、他のシャットダウン手段も考えられることは言うまでもない。
【０２１２】
試験が正常に完了する場合、安全ランタイム環境22は正常状態Ａに戻る。しかしながら、感度抑圧(desensitization)の間に本当の故障が発生する場合、それは感度抑圧によって捕えられ、試験は不成功に終わり、拘束されない(non-catch)故障メッセージがＳＰＭ40に向けて発信される。
【０２１３】
ＳＰＭ40による外部試験については、ローカルで安全なインスタンスにおいて単一チャネルの方法により実施されるすべての試験は、別個に検査されることができる。例えば、外部試験は、以下の１チャネル試験を検査できる：入力データの比較、出力データの比較、RAM試験、ROM試験、タイマー試験、サイクル監視、安全ランタイム環境の失効監視２２、およびユーザプログラムの失効監視24, 26。
【０２１４】
図５は、本発明の第２の実施の形態にしたがった自動化システムの略図を示す。
【０２１５】
第２の実施の形態による自動化システムは、参照番号100によって、その全部が示される。同一参照番号を有する構成要素は、第１の実施の形態における同じ構成要素を意味し、ここで再び説明されない。
【０２１６】
ここで、自動化システム100は、３つの構成要素を別個に含む。
【０２１７】
第１の構成要素は、非安全なプラットホーム12に設置された自動化システム10である。特に、この自動化システムは、２つのユーザプログラム24, 26によって、安全機能28を実施するように構成される。よって、第１の構成要素は、第１の実施の形態に関して記載されていた自動化システムを含む。
【０２１８】
しかしながら、第１の構成要素がこの種の実施例に限られないことが理解されよう。いかなる自動化システムも第１の構成要素として適切である。
【０２１９】
第２および第３の構成要素は、監視装置70およびフェイルセーフ周辺モジュール20である。監視装置70は、特に、参照番号40を用いて前述されていたＳＰＭであってもよい。
【０２２０】
監視装置70およびフェイルセーフ周辺モジュール20は、第１の通信インタフェース72および第２の通信インタフェース74を介して自動化システム10に接続される。
【０２２１】
自動化システムとの通信に加えて、第１の通信インタフェース72および第２の通信インタフェース74は、監視装置70とフェイルセーフ周辺モジュール20との間の通信を同様に有効にする。換言すれば、監視装置70は、プラットホーム12を経由してフェイルセーフ周辺モジュール20と通信できる。
【０２２２】
第１の通信インタフェース72および第２の通信インタフェース74は、１チャネル設計の通信インタフェース、たとえば市販のUSBインターフェースであってもよい。他の通信インタフェース（例えばEthernet、RS232、その他）も同様に考えられるものと理解される。
【０２２３】
この監視装置70は、フェイルセーフサービス76を提供するように構成されたスタンドアロン型のハードウェア構成要素であってもよい。フェイルセーフサービス76は、ソフトウェアまたはハードウェアで実施することができ、真正の(intrinsic)フェイルセーフ性は適切な手段によって、保証される。適切な手段とは、例えば、マルチチャネル冗長設計を有するサービス、または自体が公知のマルチチャネルの冗長なハードウェア上で実行されるまたはサービスがあげられる。その結果、サービス７６のフェイルセーフな動作が保証され、テストされることができる。
【０２２４】
フェイルセーフ設計は、ここで示される形に限られないものと理解される。例えば真正のフェイルセーフ性を得るため当業者に知られている他の手段も考えられる。
【０２２５】
フェイルセーフサービス76は、好ましくは単純なサービス、例えば計数ユニット78およびエンコーダユニット80である。フェイルセーフサービス76は、このように単純で、複雑さ少ないハードウェア上で実施されることができる。
【０２２６】
例えば、監視装置70のハードウェアは、１つもしくは複数の単純なマイクロコントローラ、ASICもしくは類似の計算装置を含むことができ、または個別の電気部品から成ることができる。
【０２２７】
マイクロコントローラを使用するときに、それらの命令セットはできるだけ制限されなければならない。その結果、真正のフェイルセーフ性に関する証明が低コストで可能になる。
【０２２８】
好ましい実施の形態において、監視装置70のハードウェアは、計数ユニット78およびエンコーディングユニット80を実行可能であるように、限定されることができる。
【０２２９】
フェイルセーフサービス76は、安全機能28の実装にかかわらず、非安全なプラットホーム12に故障が生じた場合さえ安全なシャットダウンを確実にするために、フェイルセーフ周辺モジュール20と作用しあう。
【０２３０】
好ましい実施の形態において、監視装置70は、それ自身、この目的のためのいかなる安全関連手段も持っていない。すなわち、監視装置は、安全性が要求されるプロセスのシャットダウンパスとして制御できるそれ自身の専用の安全な出力を持っていない。その代わりに、安全性が要求されるプロセスに対する接続は、フェイルセーフ周辺モジュール20を介して提供されることができるだけである。
【０２３１】
特に好ましい実施の形態では、監視装置70は、追加試験をユーザプログラム24, 26に提供するために、プラットホーム12に実装された安全ランタイム環境22と相互作用する安全インスタンスの形のテストデバイス82を備える。
【０２３２】
好ましくは、第１の実施の形態に関連して前述したように、安全ランタイム環境22は、ユーザプログラムに特化しない方法で実装され、それは異なる自動化システム10で同一のものである。
【０２３３】
このように、統一されたテストデバイス82は、異なるプラットホーム12上のさまざまな安全機能28の安全性を独立してテストするために用いることができる。
【０２３４】
監視デバイス70自体は、プロセスを安全な状態に移行するために、フェイルセーフ周辺モジュールとともに、最後の手段(ultima ration)として使用される。
【０２３５】
監視装置70はこのように、付加的な装着のないさまざまな自動化システムに用いられることが可能である。さらにまた、監視装置70は、故障の場合には、他の監視装置に単に置き換えられることが可能である。
【０２３６】
このように第２の実施の形態によれば、安全な制御システムを、異なる、特にハードウェアに非特異的な複数の要素に分けることが本質的である。
【０２３７】
この点に関しては、第１の要素の焦点は、安全機能28の実装のためにできるだけ可能なコンピュータ容量を提供して、付随するユーザプログラム24, 26の容易な開発を有効にすることである。
【０２３８】
一方では、第２および第３の要素の焦点は、提供されたサービス76のフェイルセーフ性が信頼性をもって、かつ、費用対効果の高い状態で保証されるように、できるだけ単純にこれらのためのハードウェアを設計することである。
【０２３９】
図６は、第２の実施の形態にしたがった自動化システムの２つの変形例を示す。
【０２４０】
第１の変形例（上の図に示される）において、自動化システム100の３つの構成要素は、それぞれスタンドアロンのハードウェア構成要素である。
【０２４１】
監視装置70およびフェイルセーフ周辺モジュール20の両方は、ハードウェア構成要素としての設定される。
【０２４２】
第１の通信インタフェース72は監視装置70を自動化システム10に接続し、第２の通信インタフェース74はフェイルセーフ周辺モジュール20を自動化システム10に接続する。
【０２４３】
このように、監視装置70とフェイルセーフ周辺モジュール20の間の通信は、好ましくは、自動化システム10を介してのみ行われる。
【０２４４】
離れた構成要素を有するこの変形例は、各構成要素が別個に製造および供給されることができるという効果を奏する。
【０２４５】
よって、監視装置70は、複数の互いに異なる周辺モジュール20と連動して用いられることが可能である。
【０２４６】
自動化システム100はこのように、それぞれの要件に適応することができ、周辺モジュール20だけを交換するだけでよい。
【０２４７】
第２の変形例（下の図に示される）において、監視装置70およびフェイルセーフモジュール20は、共通のハードウェアにて実装されている。
【０２４８】
第１の論理的な通信インタフェース72および第２の論理的な通信インタフェース74は、自動化システム10への単一の物理的な接続により実装されている。
【０２４９】
共通のハードウェアへの集積化にもかかわらず、監視装置70とフェイルセーフ周辺モジュール20の間の通信は、自動化システム10を介して第１の通信インタフェース72および第２の通信インタフェース74を通じて伝送されることが可能である。
【０２５０】
換言すれば、監視装置70およびフェイルセーフ周辺モジュール20は、共通のハードウェアへの集積にもかかわらず、２つの独立した論理ユニットとして実装される。
【０２５１】
都合のよいことに、この変形例では、共通の安全なハードウェア基板を、監視装置70およびフェイルセーフモジュール20のために用いることが可能である。
【０２５２】
例えば、フェイルセーフ周辺モジュールの機能は監視装置70の機能とともに、マルチチャネルの冗長な方法で動作する共通プロセッサに実装されることができる。
【０２５３】
さらにまた、この変形例では、１つの物理的な通信インタフェースは、第１の通信インタフェースおよび第２の通信インタフェースを実装するのに十分である。このことにより、安全な自動化システム100を、特に好ましい態様で実施することができる。
【０２５４】
図７は、第２の実施の形態にしたがった自動化システムの回路図を示す。
【０２５５】
自動化システム100は、監視装置70、自動化システム10、およびフェイルセーフ周辺モジュール20を含み、それぞれがスタンドアロンのハードウェア構成要素である。
【０２５６】
本実施の形態において、個別構成要素間の通信は、USBインターフェースを介して行われる。したがって、第１の通信インタフェース72および第２の通信インタフェース74は、それぞれUSB接続されている。
【０２５７】
監視装置70は、さらに、フェイルセーフサービス76を実施するための計数ユニット78およびエンコーダユニット80を備える。
【０２５８】
計数ユニット78は、内部カウンタを連続的にインクリメントすることができて、カウント値Cをエンコーダユニット80に提供できる。さらに、カウント値Ｃは、通信インタフェース72、74を介して、フェイルセーフ周辺モジュール20に送信されることができる。
【０２５９】
エンコーダユニット80は、自動化システム10からランダム値Ｒを受け取る。
【０２６０】
ランダム値Rは、フェイルセーフ周辺モジュール20の中の乱数発生器86によって生成される。
【０２６１】
エンコーダユニット80は、ランダム値Rおよびカウント値Ｃからキー値Sを生成して、このキー値を、自動化システム10を介してフェイルセーフ周辺モジュール20に送信する。
【０２６２】
監視装置70は、自動化システム10によって好ましくは周期的に送信されるランダム値が、時間とともに変化するかどうか調べる。
【０２６３】
キー値Sは、ランダム値Ｒおよび連続カウンタCの両方に基づくので、すべての数が少なくとも一回循環されることが保証される。このように、監視装置70は、乱数発生器（それはランダム値を生成する）がすべての値を実際に循環するかどうかを調べる必要がない。
【０２６４】
この種の評価は、計算負荷が集中するので、好ましい実施の形態における監視装置70の限られた計算容量によっては、実行するのが困難である。
【０２６５】
フェイルセーフ周辺モジュール20は、監視装置70の中に用意された複数の相補型ユニットを有している。これらの相補型ユニットは、専用のユニットとして設計されることができるか、またはソフトウェアモジュールの形で実装されることができる。
【０２６６】
ここで、フェイルセーフ周辺モジュール20は、復号器88と、相補型ユニットとして構成された比較器90とを含む。
【０２６７】
復号器88は、連続的なカウント値Ｃと、ランダム値Rのコピーとを受け取って、それらから比較値S’を生成する。
【０２６８】
受信したキー値Sおよび生成された比較値S’が同一である場合、フェイルセーフ周辺モジュール20は安全状態を信号として送る。
【０２６９】
好ましい実施の形態において、復号方法は、フェイルセーフ周辺モジュール20の復号器88のみが知っている。一方、符号方法は監視装置70のエンコーダユニット80のみが知っている。
【０２７０】
ここで示される好ましい実施の形態において、安全な状態信号は、第１の単安定フリップフロップ92を含む第１の出力回路91および第２の単安定フリップフロップ94を含む第２の出力回路93によって送られる。
【０２７１】
比較器90は、スイッチ96を介して、単安定フリップフロップ92, 94上の２つの出力回路91, 93上で交互に動作する。
【０２７２】
フェイルセーフ周辺モジュール20は、２つの単安定フリップフロップ92, 94のうちの少なくとも１つが起動されるときに、安全状態を示す。
【０２７３】
正常動作において、比較器90が信号を連続的に供給しているとき、すなわちキー値Sと生成された中間値S’との比較が連続的に成功しているとき、両方の単安定フリップフロップ92, 94は常に起動される。すなわち、新しいキーが送信されるサイクルタイムは、単安定フリップフロップ92, 94の保持時間に対応する。
【０２７４】
フェイルセーフ周辺モジュール20が安全な状態信号を正しく送るかどうか試験するために、監視装置70は、正しいキー値Sの１ビットを逆にすることによって、誤ったキー値を作り出す。
【０２７５】
その結果、比較器90は、キー値Sと生成された中間値S’との間に不一致を検出して、スイッチ96への信号を遮断する。
【０２７６】
その結果、２つの単安定フリップフロップ のうちの１つは、初めに停止し、もはや出力端子に信号を出力しない。
【０２７７】
これは、単安定フリップフロップの下流にある論理回路98により検出されることができ、それによって、タイムアウト信号102が発生する。
【０２７８】
タイムアウト信号102は監視装置70によって読み込まれることができ、キー値Ｓとしての誤った数値が２つの単安定フリップフロップの１つの予期された結果(expected drop)となるかどうかを決定することができる。
【０２７９】
１つの単安定フリップフロップだけが試験の間に停止するので、停止した単安定フリップフロップが正しいキー値Ｓによって、タイムリーに再トリガされるならば、フェイルセーフ周辺モジュールは安全な状態信号を送り続ける。
【０２８０】
再トリガが時間内に実行されない場合、第２の単安定フリップフロップも停止し、フェイルセーフ周辺モジュール20は非安全な状態信号を送ることになる。本実施の形態において、非安全な状態信号を送ると、安全な出力104が停止される。
【０２８１】
単安定フリップフロップ 92, 94を備えるこの実施例は、出力回路91, 93の１つの可能な具体例にすぎないことを理解すべきである。
【０２８２】
２つの分岐は、起動、停止が可能であればよく、異なって設計されることもできる。
【０２８３】
好ましくは、出力回路は、起動後、所定の期間の経過後それ自身を停止させるように調整される。しかしながら、あるいは、外部源からの停止も考えられる。
【０２８４】
本願明細書において、ここに例示されたウォッチドッグ原則を実装する構成要素に加えて、フェイルセーフ周辺モジュール20は、ウォッチドッグ保護と結合されることができる追加試験器を備えていることができる。
【０２８５】
例えば、第１の入力レジスタに加えて、２つのさらなる入力レジスタ108, 110を設けてもよい。入力レジスタ108, 110は、前の値およびアドレス破損が検出されることができる次の値を含む。
【０２８６】
さらに、フェイルセーフ周辺モジュール20は、さまざまな安全関連のアプリケーションのために使用可能である安全なクロック信号を供給する安全なクロック発生器112を含むことができる。
【０２８７】
そのような応用の一つは、例えば、フェイルセーフ周辺モジュール20の安全な出力104に作用でき、安全な電源供給を監視する電圧監視デバイス114であってもよい。
【０２８８】
故障が発生したときに、安全性が要求されるプロセスが単独で再開するのを防止する再起動ロック116を実装することも考えられる。
【０２８９】
本願明細書において例示された実装形態は、自動化システム100がどのように本発明にしたがって実装されるかを示す１つの例であることを理解されたい。他の変形例がこの開示の範囲内で考えられるものと理解される。原則として、本出願の保護の範囲は、請求項によって与えられ、説明または図に示される特徴により制限されることはない。
【図１】
2021534507.tif 000003
【図２】
2021534507.tif 000004
【図３】
2021534507.tif 000005
【図４】
2021534507.tif 000006
【図５】
2021534507.tif 000007
【図６】
2021534507.tif 000008
【図７】
2021534507.tif 000009
【国際調査報告】
2021534507.tif 000010
2021534507.tif 000011
2021534507.tif 000012
2021534507.tif 000013
2021534507.tif 000014
2021534507.tif 000015