特集
» 2009年06月15日 00時00分 公開

機能安全規格基礎:いまさら聞けない 機能安全入門 (2/4)

[服部博行(ヴィッツ),@IT MONOist]

機能安全規格概要

 前述のとおり、IEC 61508はすべての機能安全規格のベースであり、この規格から各製品分野(カテゴリ)向けの機能安全規格が派生しています(図3)。

 IEC 61508には、「全安全ライフサイクル」と呼ばれる製品のライフサイクルが規定されており、設置・引き渡しや運用保全などのフェイズも含まれています。この内容には比較的大きな装置や大規模プラントなどを想定したものが多く含まれています。そのため、取り扱う製品によっては規格への合致がしづらい項目も見られます。このようなことからも、各製品分野で必要となる安全事項をまとめた規格が存在しているのです。


機能安全基本規格「IEC 61508」と派生規格 図3 機能安全基本規格「IEC 61508」と派生規格

ソフトウェアにおける機能安全とは?

 では、ソフトウェアを対象とする場合はどうでしょうか。

 実は、IEC 61508に合致したソフトウェアを開発するのは難しいといわざるを得ません。IEC 61508は製品を対象とするため、その製品の安全度合いの尺度として「故障率」を判断基準のパラメータとしています。製品やシステム(ここでのシステムとはコンピュータ/ハードウェアとソフトウェアを併せたもの)単位であれば故障率の考え方は当てはまりますが、ソフトウェアの場合、故障は一般的に「決定論的故障」として扱われているため、故障率を判断尺度として利用することは難しいといえます(注)。

※注:ソフトウェア故障発生事象やフォールト発見事象などから統計的な尺度を用いる研究も行われています。


 ソフトウェアは“何の機能を有していれば機能安全対応となるのか”という明確な答えがありません。その答えを探し求めていては、機能安全認証を得るソフトウェア開発は一向に進まないでしょう。では、どうしたらよいのでしょうか。

 それは「ソフトウェア開発時に機能安全規格が規定する開発プロセス、手法、安全分析(安全に関する設計事項の漏れ、抜けを防ぐ)を実施して開発すれば、ソフトウェアの不具合が減り、安全を確保したソフトウェア(リスクが許容される程度のソフトウェア)が開発できる」と仮定するほか方法がありません。

用語解説:<ランダム故障と決定論的故障>

ランダム故障:構成部品・機器などの多様な劣化のメカニズムの下で時間的に無秩序に発生する故障(ハードウェアの劣化、偶発故障、単純作業におけるヒューマンエラーなど)。

決定論的原因故障:設計過程、製造過程、運転手順、文書化などに直接かかわり、これらの中で故障要因が入り込むことで、必然的に発生する故障。決定論的原因故障はこれらの過程でのアウトプットなどを修正することによってのみ除去することができる(ソフトウェアの不具合、安全解析・安全管理の不都合、設計の誤りなどが起因する)。

※引用:SEC BOOKS 組込みシステムの安全性向上の勧め(機能安全編)


 続いて、IEC 61508の構成について詳しく見ていきましょう。

IEC 61508の構成

 IEC 61508は、7部(注)で構成(IEC 61508-1<第1部>〜IEC 61508-7<第7部>)された電気・電子・プログラマブル電子安全(E/E/PES)に関する規格です。

※注:2005年に第0部<IEC/TR 61508-0 Edition 1.0(2005-01)Functional safety of electrical/electronic/programmable electronic safety-related systems - Part 0: Functional safety and IEC 61508>が発行されましたが、ここでは1〜7部を対象として説明します。


 まず、各部が規定している内容を以下に列挙します。

  • 第1部 一般要求事項
    機能安全規格に関する基本的な考え方がまとめられています。
    管理および技術上の要求事項をまとめた、機能安全管理、理念、設計、改修、廃却にわたる全安全ライフサイクル、リスク解析、安全度水準、適合性確認などを規定しています。
  • 第2部 電気・電子・プログラマブル電子安全関連系に関する要求事項
    E/E/PESのハードウェアに対する要求事項を規定しています。
  • 第3部 ソフトウェア要求事項
    E/E/PESのソフトウェアに対する要求事項をまとめています。
    OSからアプリケーションまで安全度水準に応じたソフトウェアの利用を要求しています。
  • 第4部 用語の定義および略語
    機能安全に関する用語の定義をしています。
  • 第5部 安全度水準決定方法の事例
    安全関連系の信頼度、すなわち安全水準(SIL)を解析で求める事例を紹介しています。
  • 第6部 第2部、第3部の適用指針
    プログラマブル電子系の信頼度を、アーキテクチャ構成を基に算出している事例を紹介しています。
  • 第7部 技術および手法の概観
    第2部、第3部に関係する安全技術・手法の説明と紹介をしています。

 第1〜3部を参照し、開発する製品への安全管理と安全要求仕様を決定します。要求される安全管理項目は、第1部に記載されており、特に重要な事項として、全安全ライフサイクル、組織・人・技術の管理を規定しています。ここでは安全に関する規定のほか、品質に関する事項も要求していますが、品質管理要求はほかの品質規格が要求する事項と矛盾はほとんどありません。

 ハードウェアに求める安全要求事項は、第2部に規定されています。ここでは、ハードウェアの故障率や故障検出率の規定とその対策手法などについて記載されています。第2部に記載されている要求事項に従い、製品が必要とする安全度水準を得るために必要なハードウェア対策およびソフトウェアへの要求事項を決定し、システムとして安全度水準を満たすように設計します。

 第3部はソフトウェア開発時の開発プロセス、開発手法などを規定しています。前述しましたが、ソフトウェアは決定論的原因故障であるため、故障率などの尺度により達成度を測ることができません(すなわち、安全度水準に対応した機能・性能は規定されていませんし、そのような考え方はできないということです)。

 第3部では、規格が要求する開発プロセス・手法を導入し、それが正しく用いられてソフトウェアが開発されていれば、ハードウェアの基準である故障率同等の性能を有していると見なすことができると述べています(明確に規格が“述べている”わけではありませんが、ドイツの認証機関に確認したところ“その理解でよい”との回答を得ました)。

 第4〜7部は、用語や各種手法の紹介ですので詳細は割愛しますが、第2、3部を理解するうえで重要な参考資料となります。

利用可能な分野

 機能安全規格を適用する可能性のある製品は、直接的もしくは間接的に人の安全を脅かす恐れのある製品や部品が対象となります。IEC 61508をベースとした個別製品向けの安全規格が存在する製品は、すでに対象として機能安全規格に取り組む準備が進められていると考えてよいでしょう。

 以下に、固有の安全規格が準備(準備中)されている製品、もしくは部品を列記します。

  • 産業機械:工場などで利用する機械
  • 原子力
  • プロセス産業:農林畜産品加工、食品製造、鉱物資源からの素材製造、石油、化学、紙パルプ、製薬、セメントなど
  • 鉄道
  • 医療機器
  • 自動車
  • ロボット
  • 電子制御モータ
  • 航空機(JAR/FAR 25 1309)
  • 防衛(Defense Standard 00-56)
  • フィールドバス(IEC61784)

 上記以外の製品でも専用の安全規格を策定している分野もあると思います。また、安全規格が策定されておらず、かつ安全を必要とする製品などは機能安全基本規格であるIEC 61508を利用することになります。さらに、ここに挙げた製品を構成する部品の中で、安全設計が必要なものは規格に準拠した開発が必要になります。

Copyright © ITmedia, Inc. All Rights Reserved.