(57)【特許請求の範囲】
【請求項１】
ソフトウェアのアーキテクチャが格納されているアーキテクチャ保存部と、アーキテクチャの故障を解析する安全解析部と、前記安全解析部の解析結果に応じて制御ソフトウェアの更新可否を判定する更新可否判定部と、を有し、
アーキテクチャの更新があった場合に前記格納されているアーキテクチャを更新し、
前記更新したアーキテクチャを出力し、
前記安全解析部に前記更新したアーキテクチャが入力され、
前記安全解析部は、
アーキテクチャの出力部の機能ブロックに関する出力への影響の一覧を故障モードテーブルから作成し設計者によってトップ事象として選択させるトップ事象選択部と、
前記トップ事象又は機能ブロックに対応する故障モードを故障モードテーブルから取得する故障モード抽出部と、
ある機能ブロックに関連した機能ブロックをアーキテクチャの経路情報から探索し出力するアーキ経路探索部と、
故障モード抽出部が抽出した故障モードを故障木として構成する故障木生成部を持つことを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御システムの制御装置に関する。
【背景技術】
【０００２】
本技術分野の背景技術として、特開２００８−２３４５２０号公報（特許文献１）がある。この公報には、「必要最小限のリソースを使用して的確な障害予測を行うこと」を課題としており、解決手段として、「監視対象のアプリケーションに対して挙動監視モジュールを付与し、アプリケーションの挙動を収集」した上で「挙動監視のリソース上限を定めて、リソースの上限内で、障害の予兆を検知した挙動監視モジュールにリソースを配分する」と記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２３４５２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
制御装置においても、障害の予兆を検知することは重要な技術であるが、そもそもの制御ソフトウェアが危険な動作をしないことを保障した上で、検知する必要がある。もし、制御ソフトウェアが、複数の設計者や会社で設計された複数のアプリケーションで構築されていた場合、そもそもの安全性を保証する何らかの手段が必要となる。しかしながら特許文献1では、現在動作している制御ソフトウェアそのものが、安全上妥当であるかどうかは判定できない。【０００５】
そこで、本発明は、部分的にアプリケーションを更新した場合に、制御システムの安全性を検証することができる制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の一実施の態様は、例えば特許請求の範囲に記載されている技術的思想を用いればよい。
【発明の効果】
【０００７】
本発明によれば、部分的にアプリケーションを更新した場合に、制御システムの安全性を検証することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】実施例１の制御システムの例である
【図２】実施例１の制御ソフトウェアの例である
【図３】実施例１のアーキテクチャの図示の例である
【図４】実施例１のアーキテクチャの表形式の例である
【図５】実施例１の構造解析部と制御ソフトウェアの図示の例である
【図６】実施例１のアプリケーション情報を表す表である。
【図７】実施例１の安全解析部の構造である
【図８】実施例１の故障モードテーブルの例である。
【図９】実施例２における安全解析装置の構成例である。
【図１０】実施例３における安全解析装置の構成例である。
【図１１】実施例４における安全解析装置の構成例である。
【図１２】実施例５における安全解析装置を用いたリプロ支援の構成例である。
【発明を実施するための形態】
【０００９】
以下、本発明に好適な実施形態の例（実施例）を説明する。
【実施例１】
【００１０】
＜制御装置の構成＞
図１に、本実施例における、制御装置の構成を述べる。制御システム１は、制御ソフトウェア１０１を有し、制御ソフトウェア１０１が計算した指令値を制御対象２へと通知する。制御対象２は、制御ソフトウェアの指令値に従って動作する。構造解析部１０２は、制御ソフトウェアの識別情報や、挙動を元に制御ソフトウェア１０１のアーキテクチャを解析する。また、安全解析部１０３は、制御ソフトウェア１０１のアーキテクチャから、ソフトウェアの安全解析を行い、制御システムの危険な挙動（ハザード）を行わないかを解析する。制御ソフトウェア１０１は、安全解析部１０３の解析結果を元に、制御の継続か中断かを決定する。
＜制御システム＞
制御システム１は、自動車や建設機械やプラントなどの、制御ソフトウェアが計算した指令値によって実際の機構が動作するものを指す。実際の機構が制御対象２となる。制御対象２はモータのように電流を流すことによって実際に動作するものや、ディスプレイやスピーカーなどの外部出力装置などが該当する。制御システム１は、操作者が操作するための入力装置１０４を備える。入力装置１０４はスイッチやキーボード、タッチパネルなどの、任意のデータを入力可能なものである。制御システム１には外界の情報を取得するためのセンサ１０５も備えられている。センサ１０５は、温度や明るさや速度や加速度など、様々な物理的な値を取得し、制御ソフトウェア１０１に通知する。また、制御システムは他の制御システムやネットワークに接続するための通信装置１０６を備える。ネットワークは、Ｅｔｈｅｒｎｅｔ（登録商標）や無線など、データを送受信する通信経路を指す。
＜制御ソフトウェア＞
制御ソフトウェア１０１の構造の例を図２に示す。制御ソフトウェア１０１は、基本ソフトウェアとしてＯＳ（ＯｐｅｒａｔｉｎｇＳｙｓｔｅｍ）１０１１やＩ／Ｏ１０１２や通信制御部１０１３を備え、基本ソフトウェア上で動作する複数のアプリケーション１０１４を備える。基本ソフトウェアは、制御システムのＣＰＵやマイコンやその周辺回路などのハードウェアを制御するための機能であり、Ｉ／Ｏ１０１２は入力装置１０４やセンサ１０５などの入出力装置を制御しており、その入力データや出力データの格納、取得、加工を行う。また通信制御部１０１３は通信部１０６を制御しており、その入力データや出力データの格納、取得、加工を行う。ＯＳ１０１１はＣＰＵ機能を制御し、アプリケーション１０１４に対して、リソースの割り当てやタスクの割り当てやなどのサービスを提供する。アプリケーション１０１４は、制御対象２を制御するための計算を、Ｉ／Ｏ１０１２や通信制御部１０１３やその他のアプリケーション１０１４から得たデータを入力として行う。計算結果は、Ｉ／Ｏ１０１２や通信制御部１０１３やその他のアプリケーション１０１４に対して出力する。アプリケーションで行う計算は様々であり、制御対象２の制御指令値を計算する機能や、他のアプリケーション１０１４が正常に動作するかを診断する機能や、センサ１０４や通信部１０６などの入出力装置の異常を診断するなどの計算を行う。
＜制御ソフトウェアのアーキテクチャ＞
本実施例における制御ソフトウェアのアーキテクチャ（以降アーキテクチャとする）の例を図２、図３に示す。【００１１】
図３は、アーキテクチャをブロック図で表したものである。図３のアーキテクチャは、機能ブロック３０１とインターフェース３０２で構成される。機能ブロック３０１は、ソフトウェアのアプリケーション１０１４に対応している。機能ブロック３０１はアプリケーション１０１４だけでなく、ＯＳ１０１１やＩ／Ｏ１０１２や通信制御部１０１３などのソフトウェアを構成する機能を表すこともできる。インターフェース３０２は各機能ブロック間でやり取りされるデータの流れを表す。データとは、フラグや状態値などの離散値や物理値を表す連続値や、ソフトウェアの変数などを表す。機能ブロックは一つ以上の出力インターフェースと入力インターフェースをそなえる。アーキテクチャは、機能ブロック３０１と機能ブロック間のインターフェース３０２によって、ソフトウェアのデータの流れを表現するものである。【００１２】
図４は、アーキテクチャをデータリストによって表したものである。図４のデータリストは機能ブロックＮｏ、機能ブロック名、入力ＩＦ  Ｎｏ、出力ＩＦ  Ｎｏ、が記載される。各Ｎｏは数字やアルファベット等で記載される。各Ｎｏは対応した名称が存在し、アーキテクチャ表にその名称を記載しても良い。機能ブロックＮｏは、一意に識別可能なＮｏを記載する。入力ＩＦ  Ｎｏは、各機能ブロックで重複した番号が記載されてもよい。出力ＩＦＮＯは、各機能ブロックで重複したＮｏを記載してはならない。同じ入力ＩＦＮｏと出力ＩＦＮoを記載することで、機能ブロック間の入出力関係を表すことができ、例えば図４の機能ブロックＮｏＡ３の入力ＩＦ  Ｎｏ４は、機能ブロックＮｏＡ１の出力ＩＦＮｏ４と対応付き、機能ブロックＮｏＡ１と機能ブロックＮｏＡ３に入出力関係が有ることを表現できる。
＜構造解析部＞
構造解析部は、制御ソフトウェア１０１のアーキテクチャを、制御ソフトウェア１０１のデータから解析する機能である。構造解析部は、制御ソフトウェア１０１のアプリケーション１０１４の一つとして実装しても良く、制御ソフトウェア１０１が実装されたハードウェアの１回路として実装しても良い。【００１３】
第１の実施例では、制御ソフトウェアから構造解析部への入力は、制御ソフトウェアのアーキテクチャ情報である。【００１４】
図５に本実施例における、制御ソフトウェア１０１と構造解析部１０２の関係を示す。本実施例では制御ソフトウェアにアプリケーション１０１４の１種として構造記憶部１０１５が用意される。構造解析部１０２は構造記憶部に保存された各アプリケーションの情報を取得する。構造解析部は、各アプリケーションの情報から図３、図４で示された、アーキテクチャデータを構築する。【００１５】
図６にアプリケーションの情報を示す。アプリケーションの情報として、各アプリケーション名と、アプリケーションへの入力データ名と出力データ名と、入出力データのデータ種別とが記憶される。入力データ及び出力データには、データ種別として、Ｉｎｔ型やＦｌｏａｔ型やＢｏｏｌｅａｎなどのデータ型を記載する。データ型はＣ言語などのプログラミング言語で扱われる型だけでなく、任意に設定された型を設定しても良い。【００１６】
構造解析部は、アプリケーション１０１４を機能ブロックに割り当て、入力データや出力データのデータ名及び種別から、一意なデータとなるようにアーキテクチャを構築する。【００１７】
構造記憶部１０１５は各アプリケーション１０１４とは別に実装されても良く、アプリケーション１０１４の一部として実装されても良い。
＜安全解析部＞
安全解析部１０３は、構造解析部１０２から得られたアーキテクチャを解析し、制御システムの危険な挙動を制御ソフトウェアが実施しないことを検知する。【００１８】
図７に安全解析部１０３の構成を示す。安全解析部１０３は、トップ事象選択部１０３１と、故障モードＤＢ１０３２と、故障モード抽出部１０３３と、アーキ経路探索部１０３４と、故障木生成部１０３５と故障木評価部１０３６で構成される。トップ事象選択部１０３１は、アーキテクチャから、制御システムの危険な挙動を引き起こす出力ＩＦとその出力ＩＦを出力する機能ブロックを選択し、故障モード抽出部へと通知する。故障モードＤＢ１０３２は、機能ブロック毎の故障モードテーブルが保存されており、故障モード抽出部１０３３へと故障モードを通知する。故障モード抽出部１０３３は、解析対象とする機能ブロックの故障モードテーブルを故障モードＤＢから選択し、解析対象とする機能ブロックの出力ＩＦの故障を引き起こす故障モードを選択する。故障モード抽出部１０３３は、選択した故障モードの要因となる入力ＩＦの故障を選択する。故障モード抽出部１０３３は、入力ＩＦを計算し出力する機能ブロックを取得するために、アーキ経路探索部１０３４に入力ＩＦを出力する。アーキ経路探索部は、入力された入力ＩＦを出力する機能ブロックを、入力されたアーキテクチャから探索し、機能ブロックを故障モード抽出部１０３３に通知する。故障モード抽出部１０３３は、受け取った通知した入力ＩＦを出力ＩＦとして、通知された機能ブロックと共に再度これらの故障モードの抽出を行う。故障モードテーブルには、故障に対する安全機構の有無が記載される。故障モード探索時、安全機構が出現しない枝をもつ故障木が作成される、又は故障モードが存在しない機能ブロックを検出した時、安全の妥当性を判断できないとする。
＜故障モードテーブル＞
図８に故障モードテーブルの例を示す。故障モードテーブルには、故障モードと出力側への影響とが記載される。図８（ａ）はモータ制御アプリケーションの例である。モータ制御アプリケーションは、入力されたデータを元に、モータを動作させるための電流指令値を計算する。故障モードは電流計算の異常に関連した故障が計算される。出力側への影響は出力先であるモータの動作不良が記載される。図８（ｂ）はモータ制御部へと指令値を出力する制御指令部の故障モードテーブルである。図８に示すように、記載される故障モードは、別の故障モードテーブルの出力側への影響のいずれかと同じ故障が記載されなければならない。ただし、通信部やＩ／Ｏなどの、制御ソフトウェアの入出力部はアーキテクチャの入力部となるため、その故障モードは他の故障モードの出力側への影響と一致しない。
＜制御システムの危険な挙動＞
制御システムの危険な挙動とは、怪我などの事故のように、人に害をなすシステムの動作をさす。例えば、移動体のブレーキが動作しなければ、障害物に衝突した結果事故の原因となり得る。このような制御システムごとに分析される重大な事故を起こす要因を、本明細書では制御システムの危険な挙動とする。【００１９】
制御システムの危険な挙動は、ＦＴＡなどで分析され、システムの故障モードが導出される。例えば、ブレーキが動作しない原因として、ブレーキシステムを構成するモータの動作不良が上げられる。この場合、「減速できず事故を起こす」と言う制御システムの危険な挙動に対して「ブレーキが作動しない」と言う要因を分析し、更に、「ブレーキが作動しない」と言う現象に対して「モータが動作しない」という制御システムの動作を導き出す。このような制御システムの動作をハザードDBに記憶する。ハザードDBに記憶された、動作は、故障モードＤＢに記憶された故障モードテーブルの出力側への影響に記載される必要がある。【００２０】
本実施例により、制御システムのアーキテクチャから、制御システムの安全性を判定し、判定結果を制御ソフトウェアが受けることでその動作を制限又は停止させることができる。制御システムのアプリケーションが部分的に更新等で書き換わったとしても、危険な挙動が発生しないことを解析し、未然に危険な挙動を防止することが可能となり、制御システムの安全性が確認できる。
【実施例２】
【００２１】
本発明にかかる第２の実施例における車両制御システムについて説明する。第１の実施例と異なる点は、安全解析部を制御システムから独立させることで、制御システムに安全解析部の実装コストをかけることなく、制御システムの安全性を分析することができる点である。【００２２】
図９に、本実施例の構成を示す。本実施例では、制御システム１は安全解析装置３と通信経路４で接続されている。本実施例において、構造解析部は制御ソフトウェアから受け取ったアプリケーションの情報解析しアーキテクチャを構築する。アーキテクチャを安全解析部へと通知するため、通信部へとアーキテクチャを送信する。通信部１０６は、受け取ったアーキテクチャを安全解析装置３の通信部１０６へと送信する。安全解析部１０３は受け取ったアーキテクチャを元に実施例１に記載の安全解析を行い、安全かどうかを評価する。評価結果は通信部１０６に通知される。安全解析装置の通信部１０６は、制御システム１の通信部１０６に評価結果を送付するため、通信経路４に対して評価結果を送付する。制御ソフトウェア１０１は、通信部１０６が受診した評価結果をもとに、制御ソフトウェアの動作を停止、再起動させることができる。【００２３】
本実施例によれば、安全解析部が制御システムとは独立しているため、安全性の確認のための制御システムの開発コストを抑えることができる。また、制御システムが不正に改造される又は制御ソフトウェアが不正に書き換わっていたとしても、安全解析装置は不正な書き換えの影響を受けず制御システムの安全性を解析できる。更に安全解析装置は、複数の制御システムの安全解析を行うため、故障モードやハザードを集約して管理でき、制御システム単体で管理するよりもより広い視点で安全解析ができる。
【実施例３】
【００２４】
本発明にかかる第３の実施例を説明する。第１の実施例と異なる点は、安全解析部及び構造解析部が制御システムとは異なるシステム上に存在する点である。【００２５】
図１０に、本実施例の構成を示す。本実施例では、制御システム１と安全解析装置３と構造解析装置５が、通信経路４を経由して繋がっている。制御システム１と安全解析装置３と構造解析装置５は、通信経路４につなぐためにそれぞれ通信部１０６を有す。制御ソフトウェア１０１は自身のアプリケーション情報を構造解析部に通知するため、通信部１０６にアプリケーション情報を送付する。制御システム１の通信部１０６は通信経路に対して構造解析装置５宛てにアプリケーション情報を送付する、構造解析装置５の通信部１０６は受診したアプリケーション情報を構造解析部１０２に送付する。構造解析部は実施例１に記載の解析を行い、アーキテクチャを構築する。構造解析部は、安全解析装置３の安全解析部１０３に対してアーキテクチャを安全解析部へと通知するため、通信部へとアーキテクチャを送信する。通信部１０６は、受け取ったアーキテクチャを安全解析装置３の通信部１０６へと送信する。安全解析部１０３は受け取ったアーキテクチャを元に実施例１に記載の安全解析を行い、安全かどうかを評価する。評価結果は通信部１０６に通知される。安全解析装置の通信部１０６は、制御システム１の通信部１０６に評価結果を送付するため、通信経路４に対して評価結果を送付する。制御ソフトウェア１０１は、通信部１０６が受診した評価結果をもとに、制御ソフトウェアの動作を停止、再起動させることができる。【００２６】
本実施例に拠れば、構造解析装置が制御システムから独立しているため、個々の制御システムに構造解析部を搭載しない分の開発コストが削減できる。更に、構造解析部を制御システムとは個別に持ち、通信経路越しに複数の制御システムの構造を解析できるため、構造解析手法を変更する場合に構造解析部だけの変更で解析が可能になる。
【実施例４】
【００２７】
本発明にかかる第３の実施例を説明する。第１の実施例と異なる点は、構造解析部が制御システムとは異なるシステム上に存在する点である。【００２８】
図１１に、本実施例の構成を示す。本実施例では、制御システム１と構造解析装置５が、通信経路４を経由して繋がっている。制御システム１と安全解析装置３と構造解析装置５は、通信経路４につなぐためにそれぞれ通信部１０６を有す。制御ソフトウェア１０１は自身のアプリケーション情報を構造解析部に通知するため、通信部１０６にアプリケーション情報を送付する。制御システム１の通信部１０６は通信経路に対して構造解析装置５宛てにアプリケーション情報を送付する、構造解析装置５の通信部１０６は受診したアプリケーション情報を構造解析部１０２に送付する。構造解析部は実施例１に記載の解析を行い、アーキテクチャを構築する。構造解析部は、制御システム１の安全解析部１０３に対してアーキテクチャを安全解析部へと通知するため、通信部へとアーキテクチャを送信する。通信部１０６は、受け取ったアーキテクチャを安全解析装置３の通信部１０６へと送信する。安全解析部１０３は受け取ったアーキテクチャを元に実施例１に記載の安全解析を行い、安全かどうかを評価する。制御ソフトウェア１０１は、評価結果をもとに、制御ソフトウェアの動作を停止、再起動させることができる。【００２９】
本実施例に拠れば、構造解析装置が制御システムから独立しているため、個々の制御システムに構造解析部を搭載しない分の開発コストが削減できる。更に、構造解析部を制御システムとは個別に持ち、通信経路越しに複数の制御システムの構造を解析できるため、構造解析手法を変更する場合に構造解析部だけの変更で解析が可能になる。また、実施例３とは異なり、安全解析部１０４が制御システム上に存在するため、制御ソフトウェアの挙動を常時監視できるようになる。
【実施例５】
【００３０】
本発明にかかる第３の実施例を説明する。第１の実施例と異なる点はソフトウェアのアップデート時に安全解析を行うことで、安全性でないと判定したソフトウェアに更新しないことができる。【００３１】
本実施例における構造を図１２に示す。図１２では、制御システム１と安全解析装置３とリプロ装置６が通信経路４によって接続されている。図１２では通信経路４及び各装置の通信部１０６は省略している。本実施例においてリプロ装置６はアーキテクチャ更新部保存部６０１とソフトウェア更新機能６０２を持つ。また、制御システム１はアーキテクチャ保存部１０８と更新可否判定部１０９をもつ。【００３２】
本実施例において、制御システムの更新を行う際の手順を述べる。リプロ装置６は、通信経路越しに制御システム１に接続する。まず、アーキテクチャ更新部保存部６０１は、更新後のソフトウェアと更新前の制御ソフトウェアの差分となる箇所のアーキテクチャ情報をアーキテクチャ保存部１０８に送信する。アーキテクチャ保存部１０８には、制御ソフトウェアのアーキテクチャが保存されている。アーキテクチャ保存部１０８は、アーキテクチャ更新部を上書きした更新後アーキテクチャを作成し、安全解析装置３に送信する。安全解析装置３は実施例1に記載の安全解析を実施し、安全解析結果を制御システム１に出力する。更新可否判定部は、安全解析結果が問題あるかどうかを判定し、ソフトウェアの更新可否を決定する。更新可の場合、更新可否判定部１０９はアーキテクチャ保存部１０８と制御ソフトウェア１０１に対して更新可能フラグを出力する。アーキテクチャ保存部１０８は、更新可能フラグを取得すると、アーキテクチャ更新部保存部６０１より受け取ったアーキテクチャ差分をアーキテクチャ保存部１０８に保存されたアーキテクチャに上書きする。また、制御ソフトウェア１０１は、ソフトウェア更新機能から送信されるアップデートデータを制御ソフトウェアに更新する。【００３３】
本実施例によると、ソフトウェア更新の際に更新されたソフトウェアが、安全上問題となる動作を行うか否かを判定でき、制御システムが危険な動作を行わない制御ソフトを維持できる。
【符号の説明】
【００３４】
１…制御システム、１０１…制御ソフトウェア、
２…制御対象、１０２…構造解析部、１０３…安全解析部、１０４…入力装置、１０５…センサ、１０６…通信装置、１０１１…ＯＳ、１０１２…Ｉ／Ｏ、１０１３…通信制御部、１０１４…アプリケーション、３０１…機能ブロック、３０２…インターフェース、１０１５…構造記憶部、１０３１…トップ事象選択部、１０３２…故障モードＤＢ、１０３３…故障モード抽出部、１０３４…アーキ経路探索部、１０３５…故障木生成部、１０３６…故障木評価部、３…安全解析装置、４…通信経路、５…構造解析装置、６０１…アーキテクチャ更新部保存部、６０２…ソフトウェア更新機能、１０８…アーキテクチャ保存部、１０９…更新可否判定部
【図１】
0006773782.tif 000002
【図２】
0006773782.tif 000003
【図３】
0006773782.tif 000004
【図４】
0006773782.tif 000005
【図５】
0006773782.tif 000006
【図６】
0006773782.tif 000007
【図７】
0006773782.tif 000008
【図８】
0006773782.tif 000009
【図９】
0006773782.tif 000010
【図１０】
0006773782.tif 000011
【図１１】
0006773782.tif 000012
【図１２】
0006773782.tif 000013