27
HAZOP とととととととと ととととととととと ととと ととととと とととと ととと ととと ()() [email protected]

Hazop anzen21013

Embed Size (px)

DESCRIPTION

safety engineering symposium 2013 at Tokyo, 2013.7.4

Citation preview

Page 1: Hazop anzen21013

HAZOP と関連手法の展開

名古屋市工業研究所技術士(情報工学)・博士(工学) 小

川清[email protected]

Page 2: Hazop anzen21013

April 13, 2023 2

Page 3: Hazop anzen21013

検討の背景 自動車の安全(愛知県は交通事故死日本 1 )

道路安全 衝突防止 機械・電気・ソフトウェアの連携

電気・ソフトウェア連携は機能安全規格が一部対応 機械・電気の設計を

ISO 26262 の審議 ISO/IEC JTC1 SC7 からの国際のリエゾンとして参加

Automotive SPICE の基となる ISO/IEC 15504 part2,6,9 エディタ。 修整 (tailoring) の必要性と HAZOP の大切さに

JAXA の取り組み プロセス改善ナビゲーションガイド best practice 編

Page 4: Hazop anzen21013

Process Navigation Guide - Best Practice

• 10 case studies.• JAXA(IV&V)

• IEC61508• Mathematical Method(formal)• Test Method• Analysis Method

• FTA, FMEA and HAZOP• IPA/SEC   www.ipa.go.jp 

downloadable by registrating Email address

• Members : JAXA,Denso, Toyota, ….

April 13, 2023 4

Page 5: Hazop anzen21013

Analysis and process :JAXA

April 13, 2023 5

黄色に着目

Page 6: Hazop anzen21013

安全設計・安全分析 FTA, FMEA, HAZOP の組み合わせ

FTA

FMEA

HAZOP

HAZOP

HAZOP

FTA は最上位事象を起こさないような論理を検討。HAZOP は上から、下から、真ん中からのいずれでも可。FMEA は部品(下)から故障モードを洗い出す。

Page 7: Hazop anzen21013

想定外をなくすための HAZOP FMEA, FTA は設計の基本情報に依存 想定外をなくすための HAZOP は設計情

報がない状態で始められる システムのいくつかの制約条件 システムのいくつかの機能

検討事例:津波対策、原子力発電所事故

Page 8: Hazop anzen21013

HAZOP の取り組み (from 2008)

HAZOPの展開・一人HAZOP[10][14]・NML優先[15]・TRIZの利用[12]・FMEAの故障モード抽出・・MISRA-C・・RTL設計スタイルガイド・ユニバーサルデザイン

状態遷移、形式記述、図示 [6][7][11][13]

人材育成(工業標準、安全分析)、技能評価「 4 」「 5 」「 7 」

Page 9: Hazop anzen21013

FTA と ETA FTA 結果(トップ事象)ー > 原因(複数の基本

事象) ETA 原因(ある基本事象)ー > 結果(トップ

事象)

図の妥当性確認のために HAZOP の誘導語を適用 早遅・前後・大小・無逆・部類などを確かめる 不備、誤り、不徹底、注意不足、ミスなどの抽象的

な言葉を、より具体的にする

Page 10: Hazop anzen21013

FMEA で故障モードを出す際の HAZOP 部品の故障モードを出す際に、 HAZOP の 11 の誘導語

を使うと、効率が高く、網羅性がある。

Page 11: Hazop anzen21013

FMEA/HAZOP 設計指針の利用 ユニバーサルデザイン

(万能設計) 形の設計指針 論理設計

STARC RTL 設計スタイルガイド (HDL)

MISRA-C/C++( プログラミング言語 )

April 13, 2023ogawa.kiyoshi(saito.naoki,watabe.k

inji)@nmiri.city.nagoya.jp11

Page 12: Hazop anzen21013

Universal Design

April 13, 2023ogawa.kiyoshi(saito.naoki,watabe.k

inji)@nmiri.city.nagoya.jp12

Page 13: Hazop anzen21013

形の設計指針

April 13, 2023ogawa.kiyoshi(saito.naoki,watabe.k

inji)@nmiri.city.nagoya.jp13

Page 14: Hazop anzen21013

ソフトウェア FMEA( 自動車分野 ) の故障モード設定における HAZOP

ソフトウェア構成要素ごとの FMEA 言語 : C 言語(ライブラリを含む) OS: OSEK (モニタ、デバッガを含む) 通信規約: CAN診断 (diag) 応用 (application)

Page 15: Hazop anzen21013

MISRA-C ヨーロッパの自動車向けソフトウェア

に関する協議団体が作成 「 Safer C 」で指摘のあった C 言語規

格の未定義、未規定、実装定義などの移植(シミュレータと実機)による振る舞いが異なるプログラムを回避

可読性、保守性などの問題となる事項を「 C プログラミングの落とし穴」などを参考に抽出

命名規則、タブなどの書式は含まない

Page 16: Hazop anzen21013

C言語の規格 K&R (デファクト) C 言語の作者の文書 アメリカ規格(デジュール)

ANSI X. 1989(C89):1999 版から ISO/IEC の標準制定と同時進行

国際規格 : フリースタングィング環境 (main 無可 ) ,ホスト環境( main 引数有)ISO/IEC 9899:1990(C90=ANSI C89), Ratinale ありISO/IEC 9899:1999(C99), Ratinale ありISO/IEC 9899:2011(C2011)

国内規格JIS X 3010:1993(C90), JIS X 3010 : 2004(C99)www.jisc.go.jp で無償で閲覧可

04/13/2023(c)[email protected],

@kaizen_nagoya

16

Page 17: Hazop anzen21013

JIS C 解説 (C の精神)  © JIS1. 既存のコードを救うことが重要であり、既存の処理系を保護することは、

重要視しない。2. 可搬性のある原始プログラムが書けるようにする。 ( 高級アセンブラ的な

使い方による)可搬性がないプログラムを 禁止してはならない。3.( 既存の仕様からの)暗黙の意味変更( quiet change) は極力避ける4. 規格は処理系の作成者とプログラマとの間の約束事を記述するものである。5. 次の C の精神を遵守する .

1. プログラマを信頼する2. プログラマが必要である事項を行うことを妨げない3. 言語は小さく、コンパクトに保つ4. 一つのオペレーティングシステムには唯一の方法を割り当てる

たとえ可搬性が保障されない方法であったとしても、実行効率を上げる余地を残しておく。

04/13/2023(c)[email protected],

@kaizen_nagoya

17

Page 18: Hazop anzen21013

未定義 (undefined) と未規定 (unspecified) 3.4.3 undefined behavior: behavior, upon use

of a non portable or erroneous program construct or of erroneous data, for which this International Standard imposes no requirements

NOTE Possible undefined behavior ranges from ignoring the situation completely with unpredictable results, to behaving during translation or program execution in a documented manner characteristic of the environment (with or without the issuance of a diagnostic message), to terminating a translation or execution (with the issuance of a diagnostic message).

EXAMPLE An example of undefined behavior is the behavior on integer overflow.

3.4.4 unspecified behavior: use of an unspecified value, or other behavior where this International Standard provides two or more possibilities and imposes no further requirements on which is chosen in any Instance

EXAMPLE An example of unspecified behavior is the order in which the arguments to a function are evaluated.04/13/2023

(c)[email protected], @kaizen_nagoya

18

Page 19: Hazop anzen21013

ソフトウェア FMEA(C 言語 ) の故障モード設定における MISRA-C

工程 FMEA と部品 FMEA に分類 規則: Dir4.2 All usage of assembly language

should be documented 工程 :文書化していないアセンブラコードがある 影響:振る舞いの異なる CPU で動作がわからない

Dir4.7 R If a function returns error information, then that error information shall be tested 製品:エラー情報を試験していない 影響:エラー情報に基づいた処理になっていない可能性が

あり動作が保証できない

Page 20: Hazop anzen21013

工程と部品の両方に展開 Dir4.9 A function should be used in

preference to a function-like macro where they are interchangeable

工程 :函数と思って使う間違う影響:設計者の意図と異なる値を返す 対策:函数に書き換えて比較評価する

部品:ホワイトボックステストを書きにくい影響: 対策:函数に書き換えて比較評価する

Page 21: Hazop anzen21013

Cプログラミングの落とし穴 6.2章

#include <stdio.h>#define absm(x) x>=0?x:-xint main(int argc, const char * argv[]){ int a=1, b=2; printf("%d\n",absm(a-b)); return 0;}結果 -3

04/13/2023(c)[email protected],

@kaizen_nagoya21

Page 22: Hazop anzen21013

ソフトウェア FMEA(C 言語 ) の故障モード設定における HAZOP

ソフトウェア FMEA の故障モードを誘導語付きブレインストーミングとして集計

設計指針で考えられる故障モードの具体化、詳細化 MISRA-C で検討した故障モードの No,

Reverse, other than, more, less, as well as, part of, early, late, before, after

Page 23: Hazop anzen21013

The validity of values passed to library functions shall be checked

no 値がない

reverse

引数の並びが逆引数の値が逆( 0 と 1 )引数の値が上位と下位が逆 (big endian と little endian)

othher than

引数の順番がずれている引数の型が違う割り算で使う値に 0 が入っている

more

上限値より大きい16bit の値に 32bit の値を渡そうとしている

less

下限値より小さい16bit の値に 8bit の値を渡そうとしている

Page 24: Hazop anzen21013

as well as

同時に 2 つの値を一つの引数に入れて渡そうとしている。後に入れたものだけ渡る。

part of

下位ビットだけ渡している符号ビットを渡していない

early

値の代入が早すぎ、函数に渡すまでに時間がかかりすぎ

late

値の代入が遅すぎて、他の値と同期が取れていない

before

事象の後の値を入れるべきところ事前の値が入っている

after

事象の前の値を入れるべきところ事後の値が入っている

Page 25: Hazop anzen21013

作業状況 MISRA-C 2012 が , ISO/IEC 9899:1999年版と 1990年版に両対応して新規出荷

解説の検討と事例の確認に合わせて、ソフトウェア FMEA として展開

故障モードの詳細化のために HAZOP を利用

他の設計指針も同様に展開

Page 26: Hazop anzen21013

まとめと今後の課題 HAZOP 手法と安全分析全体の効果的な展開を図ってき

た 設計指針と FMEA, HAZOP の組み合わせを検討した

MISRA-C をソフトウェア FMEA の故障モード抽出に用いた 規則を工程 FMEA と製品 FMEA に分類した 一つの規則が工程と製品の両方に展開できるものがあることが分かっ

た 故障モード抽出の詳細化に HAZOP を利用した

他の設計指針も同程度に詳細化中 http://researchmap.jp/kaizen/HAZOP( はぞっぷ )

Page 27: Hazop anzen21013

謝辞 経済産業省、 JAXA, 日

本機能安全、名古屋大学、株式会社ヴィッツ、東海ソフト株式会社、サニー技研株式会社、アイシン精機、トヨタ自動車、ルネサステクノロジー、東海理化、アドヴィックス、産総研、北海道立工業試験場