JP5521684B2 - 自己診断装置及び自己診断方法 - Google Patents

自己診断装置及び自己診断方法 Download PDF

Info

Publication number
JP5521684B2
JP5521684B2 JP2010070041A JP2010070041A JP5521684B2 JP 5521684 B2 JP5521684 B2 JP 5521684B2 JP 2010070041 A JP2010070041 A JP 2010070041A JP 2010070041 A JP2010070041 A JP 2010070041A JP 5521684 B2 JP5521684 B2 JP 5521684B2
Authority
JP
Japan
Prior art keywords
processing
error
post
results
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010070041A
Other languages
English (en)
Other versions
JP2011203965A (ja
Inventor
廣治 西田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2010070041A priority Critical patent/JP5521684B2/ja
Publication of JP2011203965A publication Critical patent/JP2011203965A/ja
Application granted granted Critical
Publication of JP5521684B2 publication Critical patent/JP5521684B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Retry When Errors Occur (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

本発明は、自己診断装置及び自己診断方法に係り、特に、自己診断において安全かつ信頼性、可用性及びコスト面の改善を実現するための自己診断装置及び自己診断方法に関する。
従来、例えば放射線等により生じるデータ処理後の一過性のソフトエラー現象を減少させるために処理後のデータに対して診断する技術が存在する。ここで、ソフトエラーとは、例えば、半導体チップの一部が壊れるのではなく、記憶しておいたデータの一部だけが反転してしまう不良であり、アルファ線や中性子線、陽子線、重イオン線等の粒子線が半導体チップに突入することで引き起こされ、粒子線が半導体チップを通過する時間は極めて短く、ほんの一瞬である等の特徴が知られている。
また、ソフトエラー対策としては、例えば、2bit以上のエラーに対応した複雑なECC(Error Correction Code)を搭載する例が知られている(例えば、非特許文献1参照)。また、他のソフトエラー対策としては、例えば、予め正データと反転データとを保存しておき、データをアクセスする時点でパリティのチェックや反転データの利用をする手法が知られている(例えば、特許文献1参照)。また、ソフトウェアエラーが生じたとき、そのソフトウェアの実行時に使用したハードウェアであるCPU(Central Processing Unit)やメモリに対して診断する手法が知られている(例えば、非特許文献2参照)。
また、セキュリティデバイスの内部で実行する処理に利用するデータ値を所定のメモリアドレスから複数回読み出し、読み出した各々のデータ値を比較し、一致していないデータ値がある場合は、故障攻撃を検知した時に実施するエラー処理を実行する故障攻撃の検知方法についても知られている(例えば、特許文献2参照)。また、同じプログラムを複数回実行させ、結果格納領域にある複数の実行結果を比較し実行結果が等しい場合には次のプログラム処理を実行するプログラムアドレスを制御し、実行結果が等しくない場合には再度同じプログラムを実行するプログラムアドレスを制御するデータ処理手法が知られている(例えば、特許文献3参照)。
更に、複数のプロセッサを有し、そのプロセッサによる演算経過/演算結果を逐次比較し、同一の場合にその処理は正当であると診断する比較装置を備えた制御装置において、複数の記憶装置内の内容を比較することにより記憶装置のエラー検知を行う手法についても知られている(例えば、特許文献4参照)。
特開平5−216771号公報 特開2009−259126号公報 特開平11−306083号公報 特開2006−11576号公報
2008IPRSレポート[ソフトエラー編]、http://pc.watch.impress.co.jp/docs/2008/0502/irps03.htm IEC61508 Functional safety of electrical/electronic/programmable electronic safety−related systems(IEC61508−7;A.5.7(Double RAM with hardware or software comparison and read/write test)、A.3.5(Reciprocal comparison by software))
しかしながら、上述した非特許文献1に記載されているように、複雑なECCを搭載するにはハードウェアコストが増大してしまう。また、特許文献1に記載されている技術は、メモリアクセス時にそれぞれの処理を行う必要があり、例えばOS(Operating System)等のブラックボックスになっているソフトウェアには適用できず、また既存ソフトウェアを使う場合もソフトウェア改造が必要となり、信頼性やコスト面で問題が発生する。
また、非特許文献2の「A.5.7 Double RAM」に記載されている技術についても同様に、メモリアクセス時にそれぞれの処理を行う必要があり、例えばOS等のブラックボックスになっているソフトウェアには適用できず、また既存ソフトウェアを使う場合もソフトウェア改造が必要となり、信頼性やコスト面で問題が発生する。また、「A.3.5 Reciprocal comparison by software」に記載されている技術は、最低2つのCPUが必要となり、またCPU間の通信負荷やデータ照合のための処理が複雑になり、信頼性やコスト面で問題が発生する。更に、多数決によるデータの可用性のためにはCPUが3つ以上必要となり、信頼性やコスト面で問題が発生する。
また、特許文献2に記載されている技術は、セキュリティデバイスの内部で実行する処理に利用するデータ値を複数回読み出してそのデータ値を比較している。また、特許文献3に記載されている技術は、同じプログラムを複数回実行させ、その実行結果を比較する。したがって、何れの文献も、例えば複数回の処理の実行において、時間経過に伴って生じる入力値(アナログデータ等)の誤差に対しては何ら考慮されておらず、その誤差範囲を含めた高精度な自己診断をすることができない。更に、特許文献4に記載されている技術は、複数のプロセッサを用いて処理されているため、上述と同様に信頼性やコスト面で問題が発生する。
本発明は、上述した課題に鑑みてなされたものであって、安全かつ信頼性、可用性及びコスト面の改善を実現し、高精度に自己診断するための自己診断装置及び自己診断方法を提供することを目的とする。
上述した課題を解決するために、本件発明は、以下の特徴を有する課題を解決するための手段を採用している。
本発明は、一定周期内において予め設定されたアプリケーションによる処理を複数回実行し、実行された複数の処理結果を比較して自己診断を行う自己診断装置であって、ダイバース診断手法により設定された条件で前記アプリケーションを複数回実行する安全アプリ処理部と、前記安全アプリ処理部により得られる複数の処理結果を所定の退避領域に格納するメモリと、前記メモリに格納された複数の処理結果を比較し、比較した結果が一致しているか又は所定の誤差範囲にあるかに基づいてエラーの有無を判断する第1後処理部と、前記複数の処理結果を多数決することにより前記エラーの有無を判断する第2後処理部とを有し、前記安全アプリ処理部は、前記第1後処理部においてエラーであると判断した場合に、更に前記ダイバース診断手法により設定された条件で1又は複数の前記アプリケーションを実行して処理結果を取得し、前記第2後処理部は、取得した前記処理結果と、前記メモリに格納された複数の処理結果とを用いて、前記多数決することにより処理結果を補正することを特徴とする。
また本発明において、前記安全アプリ処理部は、前記アプリケーションに含まれる複数のタスクを実行し、前記第1後処理部は、前記複数のタスクから得られたそれぞれの処理結果に対して前記メモリに格納された複数のタスクの処理結果と比較し、比較した結果が一致しているか又は所定の誤差範囲にあるかに基づいてエラーの有無を判断し、前記複数のタスク毎の判断結果を多数決することにより、前記アプリケーションの処理結果に対する前記エラーの有無を判断することが好ましい。
更に本発明は、一定周期内において予め設定されたアプリケーションによる処理を複数回実行し、実行された複数の処理結果を比較して自己診断を行う自己診断方法であって、ダイバース診断手法により設定された条件で前記アプリケーションを複数回実行する安全アプリ処理ステップと、前記安全アプリ処理ステップにより得られる複数の処理結果をメモリの所定の退避領域に格納する格納ステップと、前記メモリに格納された複数の処理結果を比較し、比較した結果が一致しているか又は所定の誤差範囲にあるかに基づいてエラーの有無を判断する第1後処理ステップと、前記複数の処理結果を多数決することにより前記エラーの有無を判断する第2後処理ステップとを有し、前記安全アプリ処理ステップは、前記第1後処理ステップにおいてエラーであると判断した場合に、更に前記ダイバース診断手法により設定された条件で1又は複数の前記アプリケーションを実行して処理結果を取得し、前記第2後処理ステップは、取得した前記処理結果と、前記メモリに格納された複数の処理結果とを用いて、前記多数決することにより処理結果を補正することを特徴とする。
また本発明において、前記安全アプリ処理ステップは、前記アプリケーションに含まれる複数のタスクを実行し、前記第1後処理ステップは、前記複数のタスクから得られたそれぞれの処理結果に対して前記メモリに格納された複数のタスクの処理結果と比較し、比較した結果が一致しているか又は所定の誤差範囲にあるかに基づいてエラーの有無を判断し、前記複数のタスク毎の判断結果を多数決することにより、前記アプリケーションの処理結果に対する前記エラーの有無を判断することが好ましい。

なお、本発明の構成要素、表現又は構成要素の任意の組み合わせを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造等に適用したものも本発明の態様として有効である。
本発明によれば、安全かつ信頼性、可用性及びコスト面の改善を実現し、高精度に自己診断することができる。
自己診断装置のブロック構成の一例を示す図である。 本実施形態における管理テーブルの一例を示す図である。 処理結果領域の構成を説明するための図である。 本実施形態における前処理の一例を示すフローチャートである。 本実施形態における安全アプリ処理の一例を示すフローチャートである。 本実施形態における中間処理の一例を示すフローチャートである。 本実施形態における第1後処理の一例を示すフローチャートである。 本実施形態における第2後処理の一例を示すフローチャートである。 本実施形態における自己診断の各処理タイミングを説明するためのタイミングチャートである。
<本発明について>
本発明は、一定周期内で同一安全機能を持つ安全アプリ処理を複数回実行し、その実行結果を基準として、例えば、CPUやメモリのソフトエラー等の一過性エラーを検出する。また、本発明では、上述の安全アプリ処理をダイバース(diverse)診断手法を用いて実施することで、同一出力であっても処理方式を別にすることにより一過性エラー以外のCPUやメモリの異常等を診断することができる。
ここで、本発明における「ダイバース診断手法」を以下のように定義する。ダイバース診断手法とは、例えば、所定の入力データを読み込み、同一のデータを出力する場合に、その入力データの読み込む機器(計器等)や処理方式等を別にして得られる結果を診断するものである。更に具体的に説明すれば、例えば、ある固定位置から温度や圧力、電圧、流量等を計測する場合には、計測される計器の違い(ここで、計器の違いには、例えば同種類の2つの計器や他社製の異なる計器といった概念も含む)であったり、取得したデータに対して何らかのデータ処理を行う場合には、そのプログラム言語の違いやアルゴリズムの違い、バージョンの違い、コンパイラの違い、コンパイラのパラメータの違い、複数のタスクを実行する場合には、その実行順序の違い等といった、それぞれ異なる条件において処理された結果を用いて診断することをいう。なお、ダイバース診断手法における異なる条件については、本発明においてはこれに限定されるものではない。また、ダイバース診断手法により設定される条件は、上記の違いのうち何れか1つでもよく、複数を組み合わせてもよい。
また、本発明では、ダイバースにより得られるそれぞれの誤差範囲やデータの誤差範囲について、予め設定しておき、その設定された範囲において一致か否かを判断したり、適宜多数決により、その処理結果が正常か異常かを判断することによりソフトウェアエラーの安全性を向上させる。
以下に、本発明における自己診断装置及び自己診断方法を好適に実施した形態について、図面を用いて説明する。なお、以下に示す実施形態では、一例として、プラント等で適用される自己診断装置の例について説明するが、本発明においてはこれに限定されるものではない。
<自己診断装置のブロック構成例>
図1は、自己診断装置のブロック構成の一例を示す図である。図1に示す自己診断装置1は、CPU10と、メモリ20とを有するように構成されている。CPU10における機能としては、前処理部11と、安全アプリ処理部12と、中間処理部13と、第1後処理部14と、第2後処理部15と、自己診断・他処理部16とを有している。なお、上記機能による各処理は、図1に示すように、予め設定された定周期起動により実行される。
また、本実施形態における安全アプリ処理部12は、後述するように3回の安全アプリ処理による多数決処理も含んでいるため、図1に示すように、それぞれの処理を行う安全アプリ処理部12−1〜12−3を有しているが、本発明においてはこれに限定されるものではなく、例えば1つの安全アプリ処理部12において所定のタイミングで複数の安全アプリ処理が実行されてもよい。
また、図1に示すメモリ20は、管理テーブル21と、処理結果領域22と、処理結果初期退避領域23と、処理結果1次処理退避領域24と、処理結果2次処理退避領域25とを有するよう構成されている。
前処理部11は、安全アプリ処理部12による最初の安全アプリ処理が実行される前に、安全アプリ処理の結果により書き変えられてしまうデータを、予めメモリ20が有する処理結果初期退避領域23に退避する処理を行う。
また、安全アプリ処理部12−1〜12−3は、安全機能を実現する1又は複数の予め設定されたタスクからなるアプリケーション処理を実行する。なお、安全アプリ処理部12−1〜12−3におけるそれぞれの安全アプリ処理としては、例えば入力点や入力データ、実行プログラムや計器等の設備、タスク順序も完全に同一として同一処理を実行する場合と、上述したダイバース診断手法により、例えば入力点や入力データ等は同一として、その他の実行プログラムや計器等の設備、タスク順序等の少なくとも1つを変えて別処理を実行する場合、若しくは同一処理と別処理とを組み合わせる場合とがある。したがって、安全アプリ処理部12−1〜12−3は、実行するタスクの内容や順序により時間経過に伴う複数のアナログデータ(プロセスデータ)を取得することができる。
なお、安全アプリ処理部12−1〜12−3における各安全アプリ処理としては、例えばプラント等を例にすると、所定の位置に対して、あるタスクでは温度を計測し、またあるタスクでは圧力を計測したり、またあるタスクでは電圧を計測するといった場合に、安全アプリ処理毎に、例えば同一の温度計や圧力計を用いたり、計器のバーションを変えたり、他社メーカーの温度計や圧力計を用いたりして、上述のダイバース診断手法により設定される条件で複数の処理を実行することができ、その結果、所定の位置に対して各安全アプリ処理から時間経過に伴うアナログデータ(プロセスデータ)を取得することができる。
また、本実施形態では、安全アプリ処理における入力値が、予め設定された上限値や下限値を超えているか等といった判断は行わず、安全アプリ処理により得られた実行結果をそのまま用いて後段の処理を行う。
中間処理部13は、1回目の安全アプリ処理部12−1における安全アプリ処理の後に、その処理結果を処理結果1次処理退避領域24に退避する。また、中間処理部13は、処理結果初期退避領域23のデータにより初期状態を復元し、そのデータを用いて安全アプリ処理部12−2における2回目の安全アプリ処理を起動して実行させる。
第1後処理部14は、上述した安全アプリ処理部12−1における1回目の処理結果と、安全アプリ処理部12−2における2回目の処理結果とが一致しているか否かを判断する。第1後処理部14は、上述した判断の結果、1回目と2回目の処理結果が一致していれば、ソフトエラーは発生していないと判断する。
なお、通常、1回目と2回目の処理タイミングが異なるため、その時間の違いにより入力されるアナログデータ等に誤差が生じる。具体的に説明すると、例えば、プラント等であれば、最初の起動時と起動後においては、その温度や圧力に違いが生じる。更に、ダイバース診断手法により1回目と2回目で異なるプログラム等を用いて処理を実行した場合にも数値の有効桁数(固定小数点、浮動小数点等)による誤差が発生する。そのため、本実施形態では、誤差範囲を予め計算等により設定しておき、誤差の範囲内なら一致とみなす。
つまり、第1後処理部14は、1回目と2回目の処理結果とが一致していない場合、その誤差が所定の誤差範囲内であるか否かを判断する。なお、誤差範囲内であるか否かの判断は、例えば、管理テーブル21に予め設定されている処理結果誤差範囲のデータに基づいて判断することができる。また、ディジタルデータの入力についても誤差が発生するが、その場合には後述する3回目の安全アプリ処理を実行し、多数決により処理結果を確定することができる。
ここで、上述した安全アプリ処理は、複数のタスクが実行される場合もある。そのため、1回目と2回目の処理結果には、それぞれ複数のタスクによる実行結果が含まれている場合がある。その場合、第1後処理部14は、1回目と2回目の安全アプリ処理によって得られた複数のタスクのそれぞれの実行結果に対して上述した一致の判断を行う。したがって、第1後処理部14は、例えば、処理結果が一致する場合又は所定の誤差範囲内である場合には「〇」とし、それ以外の場合には「×」として、全てのタスク毎の判断結果を多数決処理することで、安全アプリ処理における実行結果が一致しているか否かを判断することができる。
また、第1後処理部14は、上述した判断の結果、1回目と2回目の処理結果が一致しておらず、また所定の誤差範囲内に含まれない場合に、第2後処理部15により多数決処理を行うために安全アプリ処理部12−3における3回目の安全アプリ処理を起動して実行させる。
第2後処理部15は、第1後処理部14において、1回目と2回目の処理結果が、一致しておらず、また所定の誤差範囲にない場合に、安全アプリ処理部12−3における処理結果に基づいて、上述した1回目及び2回目の処理結果と、3回目の処理結果とを用いて、多数決により処理結果を確定する。ここでの多数決処理としては、上述したように、その処理結果が一致している場合又は所定の誤差範囲内である場合には「○」とし、それ以外の場合には「×」として、「○」の数が多ければ処理結果が正常であると判断する。
なお、上述したように、安全アプリ処理部12−1〜12−3における処理には、複数のタスクを含む場合もあるため、その場合には、上述したように全てのタスク毎の判断結果を多数決することで、その結果が一致しているか否かを判断する。
ここで、第2後処理部15は、1回目〜3回目の安全アプリ処理による処理結果が多数決に達しない場合、すなわち上記の例でいえば「×」の数が「〇」の数より多い場合には、修復できないソフトエラーであると判断して予め設定されたエラー処理を行う。なお、エラー処理としては、例えば、CPU10における動作を停止させたり、その後の自己診断・他処理部16における処理に制限を加えたりしてもよく、またエラーメッセージをメモリ20の処理結果領域22に格納したり、自己診断装置1が有する画面等に表示したり、警報を出力したりすることができる。
また、第2後処理部15は、1回目〜3回目の安全アプリ処理による処理結果が多数決に達した場合には、例えば1回目〜3回目の処理結果の1つに「×」の判断があったとしても、その処理結果を正常として補正する。
なお、上述したように第1後処理部14において、1回目と2回目の処理結果が一致した場合又は処理の誤差範囲である場合には、正常であるとして、その処理周期においては、図1に示すように上述した安全アプリ処理部12−3における安全アプリ処理や第2後処理部15の処理は行わない。
自己診断・他処理部16は、例えば上述した安全アプリ処理による安全機能以外にける本装置の安全機能を果たす上で必要となるCPU10やメモリ20等の安全関連系についての自己診断処理や伝送処理、若しくは非安全機能等の処理を行う。具体的には、自己診断・他処理部16は、例えばRAM(Random Access Memory)の自己診断やROM(Read Only Memory)のCRC(Cyclic Redundancy Check)演算による自己診断の処理等が行われるが、本発明においてはこれに限定されるものではない。
また、本実施形態のメモリ20において、管理テーブル21は、本実施形態を実現するための各種データが格納する領域であり、例えばアナログ入力処理結果誤差や退避領域等のデータが管理される。なお、本実施形態における管理テーブルの詳細については後述する。
処理結果領域22は、上述した安全アプリ処理部12−1〜12−3における安全アプリ処理の処理結果が書き込まれる領域である。なお、処理結果領域22は、連続した領域である必要はない。また、処理結果領域22に含まれるデータにおいては、処理中に一時的に発生する変数等のデータは、対象外とする。
処理結果初期退避領域23は、処理周期開始時の処理結果領域のデータを退避する領域である。処理結果1次退避領域24は、安全アプリ処理部12−1における処理結果を退避する領域である。処理結果2次退避領域25は、安全アプリ処理部12−2における処理結果を退避する領域である。
ここで、本実施形態における自己診断処理では、3回の安全アプリ処理による処理結果を多数決処理する例を示している。つまり、本実施形態では、奇数回の実行により「〇」、「×」の何れかの数が必ず多くなるため、正常や異常かを容易に判断することができる。なお、本発明においてはこれに限定されるものではなく、偶数回実行されてもよい。偶数回実行される場合には、例えば「〇」、「×」の数が同一であれば、安全性を優先し「異常」とみなすといった処理を行うことで、適切に判断することもできる。また、安全アプリ処理の回数に応じて安全アプリ処理部12やメモリ20における処理結果の退避領域(処理結果初期退避領域21,処理結果1次退避領域22,処理結果2次退避領域22)の数も適宜調整される。
本実施形態では、上述した安全機能を実行する安全アプリ処理を、予め決めた一定の周期、一定の順序で動作させる方式を採用する。したがって、本実施形態では、一定の周期の間に正常時には2回、異常時には3回以上の安全アプリ処理が実行されることになる。
また、本実施形態では、メモリ20に処理結果領域21と処理結果初期退避領域21と処理結果N次処理退避領域とを設ける。なお、Nは、N=M−1の関係とする。したがって、本実施形態では、3回目以上で最大M回まで安全アプリ処理を実行することも可能である。
ここで、M回目の当該処理の結果と、1回目からM−1回目のデータを処理結果1次処理退避領域から処理結果N次処理退避領域のデータにより多数決原理に従って判定し、多数決データを安全アプリの処理結果とする。また、安全アプリ処理の1回目からM回目の処理をダイバース診断手法により処理する場合は、その実施される安全アプリ処理の内容を適宜変更することで、ソフトエラーや発振によるエラーだけでなく、診断対象における固着や断線、ドリフトエラー等を検出することができる。
<管理テーブル21の具体例>
ここで、上述した本実施形態における管理テーブル21の具体例について説明する。図2は、本実施形態における管理テーブルの一例を示す図である。図2に示す管理テーブルは、(a)アナログ入力処理結果誤差、(b)退避領域管理テーブル、(c)後処理テーブルを含む各情報がテーブルとして格納されている。また、図2(a)〜(c)における「処理結果」の項目は、安全アプリ処理毎に実行される1又は複数のタスク処理に対する処理結果等を示している。
管理テーブル21において、(a)アナログ入力処理結果誤差は、予め安全アプリ処理の処理時刻のズレによるアナログ入力の誤差を設定しておくデータである。ここで、(a)アナログ入力処理結果誤差における具体的なデータ項目としては、例えば、「処理結果」、及び「処理結果誤差」等のデータが格納され、具体的には、「処理結果」と「処理結果誤差」との組で格納される。なお、図2(a)の例ではタスク1処理結果2に対する誤差を「0.1℃」とし、タスク3処理結果1に対する誤差を「0.1mV」としている。このように、タスク毎に上述した誤差範囲を詳細に設定することができる。
また、管理テーブル21において、(b)退避領域管理テーブルは、処理結果領域の各データについてのアドレスとバイト数を予め設定し、それに対応する初期退避領域、1次処理退避領域、2次処理退避領域のアドレスを予め設定するテーブルである。ここで、(b)退避領域管理テーブルにおける具体的なデータ項目としては、例えば、「処理結果」、「処理結果領域数(アドレス)」、「処理結果領域数(バイト)」、「初期退避領域アドレス」、「1次処理退避領域アドレス」、「2次処理退避領域アドレス」等のデータが格納される。なお、格納されるデータの内容や形式については、特に制限されるものではなく、各アドレスに基づいて必要なデータを所定の退避領域から読み出したり、処理後のデータを所定の退避領域に書き込んだりするための管理情報であればよい。
また、管理テーブル21において、(c)後処理テーブルは、上述した第1後処理部14、及び第2後処理部15に示すような後処理で起動する各安全アプリの各タスクに対応して、例えばディジタル出力をしてフィードバックを確認する等の処理プロブラムを設置する。なお、第1後処理部14及び第2後処理部15における各後処理は、上述した安全アプリ処理部と同様に2回実施し結果の一致を確認する。また、一致しない場合は、安全アプリ処理を3回以上実施し、その結果に対して多数決処理を行う等のソフトエラー対策を行う。
<処理結果領域22の具体例>
次に、上述した本実施形態における処理結果領域22の具体例について説明する。図3は、処理結果領域の構成を説明するための図である。なお、図3に示す処理結果領域22では、実行された安全アプリ処理における各タスクの処理結果が格納される。なお、処理結果領域22は、連続領域である必要はない。また、図3に示すように処理結果領域22に格納される処理結果には、一定周期を管理するために処理周期毎に加算するカウンタ等も含まれる。
<前処理>
次に、本実施形態における前処理部11における処理の具体例についてフローチャートを用いて説明する。図4は、本実施形態における前処理の一例を示すフローチャートである。なお、図4に示すフローチャートは、所定の処理周期に対応して定周期で起動される。
本実施形態における前処理では、上述した管理テーブル21を読み込み(S01)、処理結果領域のデータを処理結果初期退避領域へ退避する(S02)。
<安全アプリケーション処理>
次に、本実施形態の安全アプリ処理部12−1、安全アプリ処理部12−2、及び安全アプリ処理部12−3における処理の具体例についてフローチャートを用いて説明する。図5は、本実施形態における安全アプリ処理の一例を示すフローチャートである。図5に示す安全アプリ処理は、安全機能に対応して予め設定された1又は複数のタスク等で構成される。なお、図5の例では、i個のタスクを有する場合について説明する。
まず、タスク1の処理を行う(S11)。S11の処理では、データ(例えば、ディジタル入力、アナログ入力、定数、可変データ、処理結果領域のデータ等)を入力し(S11−1)、次に、例えば入力データに対する所定のプログラムの実行(例えば、温度計算、圧力計算、その他の数値計算等)による処理を行い(S11−2)、その処理結果を処理結果領域へ出力する(S11−3)。
また、S11の処理の後、次のタスク2の処理を行う(S12)。なお、タスク2では、上述したタスク1に示すような処理が行われる。したがって、例えば、タスク1では温度チェックを行い、タスク2では圧力チェック処理を行うといった予め設定されたタスク処理が行われる。その後、予め設定されたタスク数(図5の例では、タスクi)まで、予め設定された順序で実行される(S1i)。
なお、図5に示す安全アプリ処理は、例えば上述した安全アプリ処理部12−1及び安全アプリ処理部12−2、更には安全アプリ処理部12−3において、上述したダイバース診断手法を用いて設定された条件に基づいて処理が行われる。なお、どのようなタスクを実行するかについては、診断対象等により予め設定され、例えばメモリ20の管理テーブル21等に格納することができる。
<中間処理>
次に、本実施形態の中間処理部13における処理の具体例について、フローチャートを用いて説明する。図6は、本実施形態における中間処理の一例を示すフローチャートである。図6に示す処理では、上述した管理テーブル21を読み込み(S21)、次に、処理結果領域のデータを処理結果1次処理退避領域24へ退避させる(S22)。また、処理結果初期退避領域23のデータを処理結果領域へ復元する(S23)。これにより、後述する第1後処理において、安全アプリ処理部12−1と安全アプリ処理部12−2との間で比較させることができる。
<第1後処理>
次に、本実施形態の第1後処理における処理の具体例について、フローチャートを用いて説明する。図7は、本実施形態における第1後処理の一例を示すフローチャートである。図7に示す第1後処理では、上述した管理テーブル21を読み込み(S31)、次に、処理結果領域のデータとそれに対応する1次処理退避領域のデータを比較する(S32)。
ここで、データが一致するか否かを判断し(S33)、データが一致しない場合(S33において、NO)、次に、その一致していないデータが予め設定された誤差範囲内か否かを判断する(S34)。なお、誤差範囲内か否かの判断は、例えば上述した図2に示す管理テーブル21の(a)アナログ入力処理結果誤差の誤差内か否かにより判定することができる。
上述したS33の処理において、比較したデータが一致した場合(S33において、YES)、又はS34の処理において、誤差範囲内である場合(S34において、YES)、例えば、図2の(c)に示す後処理テーブルの後処理を実行する(S35)。
ここで、各タスクの全データについて比較したか否かを判断し(S36)、全データについて比較していない場合(S36において、NO)、S32に戻り以降の処理を行う。また、S36の処理において、全データについて比較した場合(S36において、YES)、自己診断・他処理を呼び出して終了する(S37)。
また、上述したS34の処理において、誤差範囲内でない場合(S34において、NO)、処理結果領域のデータを処理結果2次処理退避領域へ退避する(S38)。また、処理結果初期退避領域のデータを処理結果領域へ復元し(S39)、上述した安全アプリ処理を呼び出して終了する(S40)。
<第2後処理>
次に、本実施形態の第2後処理における処理の具体例について、フローチャートを用いて説明する。図8は、本実施形態における第2後処理の一例を示すフローチャートである。図8に示す第2後処理では、まず、退避領域管理テーブルを読み込み(S51)、次に、処理結果領域のデータと、それに対応する1次処理退避領域のデータと、2次処理退避領域のデータとを比較する(S52)。
ここで、上述3データのうち、何れか2データが一致するか否かを判断する(S53)。3データのうち、何れか2データが一致しない場合(S53において、NO)、次に、3データのうち、何れか2データが予め設定された誤差範囲内であるか否かを判断する(S54)。なお、誤差範囲内か否かの判断は、例えば上述した図2に示す管理テーブル21の(a)アナログ入力処理結果誤差の誤差内か否かにより判断することができる。
上述したS53の処理において、何れか2データが一致する場合(S53において、YES)、又は、S54の処理において、何れか2データが誤差範囲内である場合(S54において、YES)、当該データを処理結果領域へ格納し(S55)、後処理テーブルの後処理を実行する(S56)。なお、S55において格納する当該データは、一致した2データのうちの1データとする。
ここで、全データの比較が終了したか否かを判断し(S57)、全データの比較が終了していない場合(S57において、NO)、S52に戻り以降の処理を行う。
また、上述したS54の処理において、3データのうち、2データが誤差範囲内でない場合(S54において、NO)、エラー処理を実行する(S58)。なお、エラー処理とは、CPU異常と判定し、CPUを停止する等のCPUエラー処理を実行する。
また、S58又はS59の処理が終了後、自己診断・他処理を呼び出して終了する(S59)。
<タイミングチャート>
上述したように、本実施形態における処理結果を用いた自己診断処理については、予め設定された処理周期で繰り返し行われる。ここで、図9は、本実施形態における自己診断の各処理タイミングを説明するためのタイミングチャートである。なお、図9に示す例では、上述した第1後処理部15における処理において異常と判断された場合のタイミングチャートを示している。
本実施形態では、図9に示すように、所定の処理周期(図9の例では、処理周期1,処理周期2)において、時間の経過と共に、「前処理」、「安全アプリ処理(1回目)」、「中間処理」、「安全アプリ処理(2回目)」、「第1後処理」、「安全アプリ処理(3回目)」、「第2後処理」、「自己診断・他処理」の順で実行される。
なお、第1後処理において、正常と判断された場合には、「安全アプリ処理(3回目)」及び「第2後処理」における処理は行わず、「第1後処理」の処理直後に「自己診断・他処理」が所定周期における残りの時間で行われる。
なお、図9の例では、各処理周期においては、処理が終了してから次の周期が始まるまでの時間誤差等を吸収するための余裕時間が設けられている。また、本実施形態における処理周期は、図9に示すように2回に限定されるものではない。
上述したように本発明によれば、安全かつ信頼性、可用性及びコスト面の改善を実現し、高精度に自己診断することができる。
具体的には、本発明によれば、例えば、RAM等のソフトエラー(α線等によるデータ化けエラー)について、安全アプリ処理を複数回実行することによりCPUの冗長化やハードウェアの検出機構を用いずに低コストで検出することができる。また、安全アプリ処理を、ダイバース診断手法により処理することによりソフトエラー以外のCPUやメモリのエラーを検出することができ、自己診断処理を軽減することができる。また、本発明によれば、例えばCPUやメモリのソフトエラーを検知し多数決により補正することで、安全かつ信頼性、可用性及びコスト面を改善することができる。
また、本発明は、OSや市販ソフトウェア等、ブラックボックスのソフトウェアについても適用することができる。また、既存ソフトウェアを適用する場合にDouble RAM対応等のために処理に変更を加えることなく当該ソフトウェアを適用できる。また、自己診断や他の非安全関連処理は重複して処理する必要はなく、CPUの負荷を小さくすることができる。
なお、本発明における自己診断装置は、例えば安全インバータや安全コントローラ、その他各種プラント等に適宜組み込んで実施することができる。
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
1 自己診断装置
10 CPU
11 前処理部
12 安全アプリ処理部
13 中間処理部
14 第1後処理部
15 第2後処理部
16 自己診断・他処理部
20 メモリ
21 管理テーブル
22 処理結果領域
23 処理結果初期退避領域
24 処理結果1次処理退避領域
25 処理結果2次処理退避領域

Claims (4)

  1. 一定周期内において予め設定されたアプリケーションによる処理を複数回実行し、実行された複数の処理結果を比較して自己診断を行う自己診断装置であって、
    ダイバース診断手法により設定された条件で前記アプリケーションを複数回実行する安全アプリ処理部と、
    前記安全アプリ処理部により得られる複数の処理結果を所定の退避領域に格納するメモリと、
    前記メモリに格納された複数の処理結果を比較し、比較した結果が一致しているか又は所定の誤差範囲にあるかに基づいてエラーの有無を判断する第1後処理部と
    前記複数の処理結果を多数決することにより前記エラーの有無を判断する第2後処理部とを有し、
    前記安全アプリ処理部は、前記第1後処理部においてエラーであると判断した場合に、更に前記ダイバース診断手法により設定された条件で1又は複数の前記アプリケーションを実行して処理結果を取得し、
    前記第2後処理部は、取得した前記処理結果と、前記メモリに格納された複数の処理結果とを用いて、前記多数決することにより処理結果を補正することを特徴とする自己診断装置。
  2. 前記安全アプリ処理部は、前記アプリケーションに含まれる複数のタスクを実行し、
    前記第1後処理部は、前記複数のタスクから得られたそれぞれの処理結果に対して前記メモリに格納された複数のタスクの処理結果と比較し、比較した結果が一致しているか又は所定の誤差範囲にあるかに基づいてエラーの有無を判断し、前記複数のタスク毎の判断結果を多数決することにより、前記アプリケーションの処理結果に対する前記エラーの有無を判断することを特徴とする請求項1に記載の自己診断装置。
  3. 一定周期内において予め設定されたアプリケーションによる処理を複数回実行し、実行された複数の処理結果を比較して自己診断を行う自己診断方法であって、
    ダイバース診断手法により設定された条件で前記アプリケーションを複数回実行する安全アプリ処理ステップと、
    前記安全アプリ処理ステップにより得られる複数の処理結果をメモリの所定の退避領域に格納する格納ステップと、
    前記メモリに格納された複数の処理結果を比較し、比較した結果が一致しているか又は所定の誤差範囲にあるかに基づいてエラーの有無を判断する第1後処理ステップと
    前記複数の処理結果を多数決することにより前記エラーの有無を判断する第2後処理ステップとを有し、
    前記安全アプリ処理ステップは、前記第1後処理ステップにおいてエラーであると判断した場合に、更に前記ダイバース診断手法により設定された条件で1又は複数の前記アプリケーションを実行して処理結果を取得し、
    前記第2後処理ステップは、取得した前記処理結果と、前記メモリに格納された複数の処理結果とを用いて、前記多数決することにより処理結果を補正することを特徴とする自己診断方法。
  4. 前記安全アプリ処理ステップは、前記アプリケーションに含まれる複数のタスクを実行し、
    前記第1後処理ステップは、前記複数のタスクから得られたそれぞれの処理結果に対して前記メモリに格納された複数のタスクの処理結果と比較し、比較した結果が一致しているか又は所定の誤差範囲にあるかに基づいてエラーの有無を判断し、前記複数のタスク毎の判断結果を多数決することにより、前記アプリケーションの処理結果に対する前記エラーの有無を判断することを特徴とする請求項3に記載の自己診断方法。
JP2010070041A 2010-03-25 2010-03-25 自己診断装置及び自己診断方法 Active JP5521684B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010070041A JP5521684B2 (ja) 2010-03-25 2010-03-25 自己診断装置及び自己診断方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010070041A JP5521684B2 (ja) 2010-03-25 2010-03-25 自己診断装置及び自己診断方法

Publications (2)

Publication Number Publication Date
JP2011203965A JP2011203965A (ja) 2011-10-13
JP5521684B2 true JP5521684B2 (ja) 2014-06-18

Family

ID=44880549

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010070041A Active JP5521684B2 (ja) 2010-03-25 2010-03-25 自己診断装置及び自己診断方法

Country Status (1)

Country Link
JP (1) JP5521684B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60198645A (ja) * 1984-03-22 1985-10-08 Fujitsu Ltd デ−タ処理システム
JPH05216771A (ja) * 1991-09-18 1993-08-27 Internatl Business Mach Corp <Ibm> データ処理装置内の重要データの回復可能性を保証する方法と装置
JP3553793B2 (ja) * 1998-04-21 2004-08-11 富士通株式会社 シングルイベントアップセット対策データ処理装置およびシングルイベントアップセット対策処理方法
JP4357373B2 (ja) * 2004-06-23 2009-11-04 株式会社日立製作所 高信頼性制御装置
JP2006252548A (ja) * 2005-03-09 2006-09-21 Hewlett-Packard Development Co Lp 時間的冗長性を実施するための可変遅延命令
JP2009259126A (ja) * 2008-04-18 2009-11-05 Dainippon Printing Co Ltd 故障攻撃の検知方法、及び、セキュリティデバイス

Also Published As

Publication number Publication date
JP2011203965A (ja) 2011-10-13

Similar Documents

Publication Publication Date Title
EP3255546B1 (en) Controller
US8255769B2 (en) Control apparatus and control method
JP5464128B2 (ja) Ram故障診断装置、そのプログラム
KR102131230B1 (ko) 파워트레인 제어기의 램 에러 감지 로직의 자가진단 방법 및 장치
CN110825561B (zh) 控制系统以及控制装置
JP2013175118A (ja) 制御装置、及びそのメモリ故障検出方法、その自己診断方法
US7415654B2 (en) Data integrity checking
JP5521684B2 (ja) 自己診断装置及び自己診断方法
EP2624255A1 (en) Control device, and nuclear power plant control system
CN115831213A (zh) 校验处理器的检测方法、装置、电子设备、存储介质
US11030028B2 (en) Failure detection apparatus, failure detection method, and non-transitory computer readable recording medium
JP6332134B2 (ja) メモリ診断回路
KR102603835B1 (ko) 프로세서 시스템의 프로그램 카운터 구조를 보호하고 인터럽트 요청의 처리를 모니터링하기 위한 방법 및 장치
WO2021038923A1 (ja) 制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム
CN111352754B (zh) 一种数据存储检错纠错方法及数据存储装置
WO2013094754A1 (ja) プログラマブル制御装置、方法、及びプログラム
JP6698455B2 (ja) メモリ診断装置
WO2020109252A1 (en) Test system and method for data analytics
JP5563700B2 (ja) 制御装置
JP2011232910A (ja) メモリ診断方式
CN113986142B (zh) 磁盘故障监控方法、装置、计算机设备及存储介质
JP2010211391A (ja) Cpuの動作監視方法および装置
JP2011128780A (ja) Ram診断装置、そのプログラム
WO2016042751A1 (ja) メモリ診断回路
JPH036618A (ja) スタックポインタの異常検出回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120313

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131217

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140212

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140311

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140324

R150 Certificate of patent or registration of utility model

Ref document number: 5521684

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250