RAMS[32] フェイルセーフなXX

鉄道信号のような安全を担保する業界にいると、「フェイルセーフなxx」という言葉をよく聞きます。言っている人は、「この装置はフェールセーフな装置なので出力は誤らない」という意味で使っている場合が殆どです。しかし、フェールセーフとは機能がフェール(故障)した場合に、安全側に推移させるという意味なので、「フェールセーフな装置は故障したら機能が保証されないので、安全側に推移して機能を停止する」と言っているにすぎません。どこにも出力が誤らないとは言っていません。

同じような言葉にバイタル装置という言葉がありますが、これも「重要な機能を司る装置」とだけ言っていて、決して出力が誤らないとは言っていません。だけど、バイタル装置は出力が誤ってはいけないので、故障検知などそれなりの対策が必要で、「きっとその対策をしているはず、と言っています。だから信頼してくださいという」話者の気持ちは伝わります。

フェールセーフな装置に話を戻すと、故障検知したら安全側に推移するということは少なくとも、故障検知の機能は備わっていなくてはなりません。ここで、故障という言葉の定義ですが、規格上はハードウエアのランダム故障という意味で使っています。ランダム故障に対して系統的な故障(システマチック)故障という言葉がありますが、これは意図せずに作りこまれてしまった故障なので、その状況下に落ちればすべての装置で同じ故障が起きます。(水平展開の対象ですね)例を言えばソフトのバグ、設計不良、部品そのもの不良などが系統的故障に分類されます。

ランダム故障は系統的故障がないという前提で議論されるので、基本は偶発部品故障が発生原因になります。この部品故障を検出する代表的な手法が、IEC62425規格で言われている3つのFAIL-SAFETYです。現在では、コンピュータを使うので、二つの同じコンピュータ(装置:チャンネル)の出力を比較して異なったら、どちらかが故障しているというCOMPOSITE FAIL-SAFETYを使うのが一般的です。(出力比較だけでは潜在故障が見つからないので、潜在故障を見つける機能は別にはあります)とはいえ、COMPOSITE FAIL-SAFETYの場合、一般的には同じハードウエアと同じソフトが入りますから、どこまで「出力一致=正常」と言えるかは甚だ疑問です。例えば、電源に同じノイズが入ったりすれば同じ故障(Common Cause Failure:CCF)を起こすかもしれませんし、ある部品はある環境で同じ故障を起こすかもしれません。系統的故障は明らかに同じ故障を誘発しますよね。品質管理では同じ故障が一定数起きると、それはランダム故障ではなく系統的故障として対策します。

なので、「COMPOSITE FAIL-SAFETYだからこの装置はフェールセーフであって、間違った出力がされません。いつも正しく動きます」なんてあり得ないわけです。私は軽率にそういうことをいう人は、本当の信号エンジニアではないなと即判断します。

同じように、フェールセーフ通信なんていう言葉もあります。通信に故障が起きたら安全側に推移するという意味でしょうか? もともと、通信に安全側という概念すらありません。この言葉を使うときは、「通信に如何なる障害があっても受信側装置で、異常を検知してシステムを安全に推移させますよ」と言っているにすぎません。私がこの言葉を聞くときは、そう翻訳します。RAMSにはIEC62280があるのでそこで、7つの脅威が書かれていますし、その対策も書かれています。IEC62280に準拠すれば通信の異常は検知できます。でも、あくまでも検知するのは両端の装置であって通信そのものではありませんからね。

直接フェールセーフには関係ないですが、「安全側がなに?」ということは非常に重要です。それが決まらないと、安全側への推移はできないですから。