(57)【要約】【課題】  あらゆる異常状態を想定して試験することなく、ウォッチドッグタイマーの時間間隔を容易かつ適正に設定できる故障診断機能を備えた制御装置とその制御プログラムを提供する。【解決手段】  操作対象１の制御対象値をフィードバック値３として受信し操作対象に制御用操作量４を出力すると同時に監視用パルス信号１１を出力する制御器と、監視用パルス信号の時間間隔Ｔ１を監視し異常を判定するウォッチドッグタイマー２０とを備える。制御器１０は、制御用操作量を演算する制御プログラムを記憶したコンピュータであり、制御プログラムは、フィードバック値が所定の設定範囲を超える異常の度合を診断し出力する診断制御ループを有しており、この診断制御ループは設定範囲を超えない正常時の処理時間が設定範囲を超える異常時の処理時間より長く設定されている。【選択図】      図１
2006235677.tif 000002
【特許請求の範囲】
【請求項１】
操作対象の制御対象値をフィードバック値として受信し、所定の目標値と前記フィードバック値を比較し、その差に基づき操作対象に制御用操作量を出力すると同時に監視用パルス信号を出力する制御器と、
前記監視用パルス信号の時間間隔を監視し、該時間間隔が所定の時間間隔を超える場合に異常と判定するウォッチドッグタイマーとを備え、
前記制御器は、制御用操作量を演算する制御プログラムを記憶したコンピュータであり、
該制御プログラムは、操作対象の制御対象値をフィードバック値として受信し、フィードバック値が所定の設定範囲を超える異常の度合を診断し出力する診断制御ループを有しており、該診断制御ループは前記設定範囲を超えない正常時の処理時間が設定範囲を超える異常時の処理時間より長く設定されている、ことを特徴とする故障診断機能を備えた制御装置。
【請求項２】
前記診断制御ループは、所定の設定範囲を超える異常の有無を判断する条件ステップと、該異常が無い場合の正常分岐ステップと、該異常が有る場合の異常分岐ステップとを有し、
正常分岐ステップの処理時間が異常分岐ステップの処理時間より長く設定されている、ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記異常の度合をリアルタイムで表示する異常度合表示装置を備え、
前記制御プログラムは、前記正常時の処理時間と異常時の処理時間の差から異常の度合を演算してリアルタイムで出力する異常度演算ループを有している、ことを特徴とする請求項１に記載の制御装置。
【請求項４】
コンピュータを用いて制御用操作量を演算する制御プログラムであって、
該制御プログラムは、操作対象の制御対象値をフィードバック値として受信し、フィードバック値が所定の設定範囲を超える異常の度合を診断し出力する診断制御ループを有しており、該診断制御ループは前記設定範囲を超えない正常時の処理時間が設定範囲を超える異常時の処理時間より長く設定されている、ことを特徴とする制御プログラム。
【請求項５】
前記診断制御ループは、所定の設定範囲を超える異常の有無を判断する条件ステップと、該異常が無い場合の正常分岐ステップと、該異常が有る場合の異常分岐ステップとを有し、
正常分岐ステップの処理時間が異常分岐ステップの処理時間より長く設定されている、ことを特徴とする請求項４に記載の制御プログラム。
【請求項６】
前記異常を検出しない定常時の計算時間と異常検出時の計算時間の差から異常の度合を演算してリアルタイムで出力する、ことを特徴とする請求項４に記載の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、故障診断機能を備えた制御装置とその制御プログラムに関する。
【背景技術】
【０００２】
制御装置の故障診断装置として、ウォッチドッグタイマーが既に知られている。ウォッチドッグタイマーは、ＣＰＵの暴走によりシステムが危険な状態に陥ることを回避するため、ＣＰＵ動作の異常検出を行うものである。すなわちＣＰＵによりウォッチドッグタイマーに定期的にアクセスするように構成し、ウォッチドッグタイマーによりそのアクセスの時間間隔を監視して、定まった時間間隔内にアクセスがない場合に異常と判定し、異常が検出された場合には例えば電源を一旦断とし、ＣＰＵをリセットするように構成される。
なお、ウォッチドッグタイマーに関しては、例えば特許文献１、２に開示されている。
【０００３】
また、ウォッチドッグタイマーを備えた制御装置では、ウォッチドッグタイマーに設定する時間間隔（設定時間）を最適化する必要があり、そのため制御装置の処理時間を調整又は推定する必要が生じる。この目的を達成する手段として、例えば特許文献３、４が既に開示されている。
【０００４】
さらに、制御装置に用いるソフトウェア（制御プログラム）のデバックおよびテストには、通常多大な労力を費やしているため、これを低減する手段として特許文献５が開示されている。
【０００５】
特許文献１の「暴走監視装置」は、図５に示すように、ウォッチドッグタイマー５２がクロック信号を所定数計数するとＣＰＵ５１をリセットし、ＣＰＵ５１は所定時間毎に割込処理を実行してウォッチドッグタイマー５２をリセットするが、割込処理が所定回数実行する間に最も優先度が低いタスクが実行されなかった場合には、ウォッチドッグタイマー５２をリセットしないものである。これにより、マイクロコンピュータ５１が異常になった際に、マイクロコンピュータ５１を確実にリセットすることができる。
【０００６】
特許文献２の「マイクロコントローラ及びマイクロコントローラの故障検出方法」は、図６に示すように、パワーオンリセット信号が与えられて第１段階の初期化処理を実行し、スタート信号が与えられて第２段階の初期化処理を実行した後に通常時処理に移行するＣＰＵ６１と、ＣＰＵからの計時起動信号の到来後、所定期間経過後に、オーバーフロー信号を出力するウォッチドッグタイマー回路部６３と、パワーオンリセット回路６２からのパワーオンリセット信号が与えられた後、ウォッチドッグタイマー回路部から所定期間経過後に最初のオーバーフロー信号に基づいて、ＣＰＵへスタート信号を出力する故障検出回路部６４とを備えたものである。
【０００７】
特許文献３の「コンピュータシステムおよびその処理速度制御方法」は、図７において、「アクセル」ボタン、「ブレーキ」ボタンなどによってユーザからＣＰＵ速度の加速または減速が指示されると、速度制御ＭＭＩ７１がそれを電力管理システムソフトウェア７２に通知してＣＰＵ速度を変更させ、この変更結果をその時実行中のアプリケーションプログラム名と対応させて速度管理データベース７３に記録するものである。
【０００８】
特許文献４の「プログラム処理時間推定方法」は、図８において、入力された内容をチェックし、処理時間に影響するいくつかのキーデータをソフトウェア毎に定義し、実行を完了したジョブのコマンド、入力データ、実行時間などを登録しておき、これと実行ずみのデータとを比較して類似の程度を数値で算出し、登録されたデータを検索し、入力データの内容とジョブ実行データベースの内容とを比較して推定処理時間を算出し、入力データの内容と検索されたデータの内容についてソフトウェアデータベース８１に定義されているキーデータ同士の比較を行い、類似率が最も高いデータに基づいて入力データの処理に要する時間を処理時間算出手段８２により推定するものである。
【０００９】
特許文献５の「組み込みシステム用ソフトウェアの製作方法」は、図９において、組み込みシステム用ソフトウェア９２の各ソフトウェアコンポーネント９５〜９８に対応して、階層を示す識別子および関数仕様からなるソフトウェア階層情報９３を保持させ、デバッガ９４により、ソフトウェア階層情報９３を用いて各ソフトウェアコンポーネント９５〜９８の階層間のデータの移動、および関数呼び出しを監視させ、その監視結果を表示させるものである。
【００１０】
【特許文献１】特開平７−１１４４９０号公報、「暴走監視装置」
【特許文献２】特開２００３−２４８５９８号公報、「マイクロコントローラ及びマイクロコントローラの故障検出方法」
【特許文献３】特開平１０−３３３７７３号公報、「コンピュータシステムおよびその処理速度制御方法」
【特許文献４】特開２００４−２５８７０５号公報、「プログラム処理時間推定方法」
【特許文献５】特開２０００−３３０８２１号公報、「組み込みシステム用ソフトウェアの製作方法」
【発明の開示】
【発明が解決しようとする課題】
【００１１】
フィードバック制御を行う制御装置は、一般的に操作対象の目標値と操作対象の実際値のフィードバック値から操作対象を制御するための操作量を演算するようになっている。
このような制御装置において、例えばガスタービンエンジンの制御装置のように複雑な制御装置では、燃料、可変静翼、抽気弁、等の操作対象と温度、圧力、回転数等の目標値およびフィードバック値が多数存在し、かつ多数の制御ループが存在する。
これらの各制御ループにおいて必要な計算をソフトウェア（制御プログラム）で行う際に、計算に要する時間は各制御ループで異なり、特に、ソフトウェアの分岐によりその処理量は異なり、計算内容が複雑になればなるほど、その全体像はつかみにくくなる。
【００１２】
また、各制御ループにおいてそのループの故障診断を行っている場合、故障内容に応じて計算に要する時間が変化するので、あらゆる異常状態を想定して試験しないと、ウォッチドッグタイマーに設定する時間間隔（設定時間）を正確に把握することができない。
その結果、定常時に正常に作動しているソフトウェアでも、入力値が変化した場合に、制御ループ内の分岐等の変化により計算時間が延びた場合に、予め設定した時間内に計算が終了できず、正常な作動状態であるにもかかわらず、ウォッチドッグタイマーが作動して、制御装置をリセットしてしまうことがあった。
【００１３】
本発明は上述した種々の問題点を解決するために創案されたものである。すなわち、本発明の目的は、あらゆる異常状態を想定して試験することなく、ウォッチドッグタイマーの時間間隔（設定時間）を容易かつ適正に設定でき、かつウォッチドッグタイマーが作動しない状態で制御ループにおける異常の度合をリアルタイムで把握することができる故障診断機能を備えた制御装置とその制御プログラムを提供することにある。
【課題を解決するための手段】
【００１４】
本発明によれば、操作対象の制御対象値をフィードバック値として受信し、所定の目標値と前記フィードバック値を比較し、その差に基づき操作対象に制御用操作量を出力すると同時に監視用パルス信号を出力する制御器と、
前記監視用パルス信号の時間間隔を監視し、該時間間隔が所定の時間間隔を超える場合に異常と判定するウォッチドッグタイマーとを備え、
前記制御器は、制御用操作量を演算する制御プログラムを記憶したコンピュータであり、
該制御プログラムは、操作対象の制御対象値をフィードバック値として受信し、フィードバック値が所定の設定範囲を超える異常の度合を診断し出力する診断制御ループを有しており、該診断制御ループは前記設定範囲を超えない正常時の処理時間が設定範囲を超える異常時の処理時間より長く設定されている、ことを特徴とする故障診断機能を備えた制御装置が提供される。
【００１５】
本発明の好ましい実施形態によれば、前記診断制御ループは、所定の設定範囲を超える異常の有無を判断する条件ステップと、該異常が無い場合の正常分岐ステップと、該異常が有る場合の異常分岐ステップとを有し、
正常分岐ステップの処理時間が異常分岐ステップの処理時間より長く設定されている。
【００１６】
前記異常の度合をリアルタイムで表示する異常度合表示装置を備え、
前記制御プログラムは、前記正常時の処理時間と異常時の処理時間の差から異常の度合を演算してリアルタイムで出力する異常度演算ループを有している。
【００１７】
また本発明によれば、コンピュータを用いて制御用操作量を演算する制御プログラムであって、
該制御プログラムは、操作対象の制御対象値をフィードバック値として受信し、フィードバック値が所定の設定範囲を超える異常の度合を診断し出力する診断制御ループを有しており、該診断制御ループは前記設定範囲を超えない正常時の処理時間が設定範囲を超える異常時の処理時間より長く設定されている、ことを特徴とする制御プログラムが提供される。
【００１８】
本発明の好ましい実施形態によれば、前記診断制御ループは、所定の設定範囲を超える異常の有無を判断する条件ステップと、該異常が無い場合の正常分岐ステップと、該異常が有る場合の異常分岐ステップとを有し、
正常分岐ステップの処理時間が異常分岐ステップの処理時間より長く設定されている。
【００１９】
前記異常を検出しない定常時の計算時間と異常検出時の計算時間の差から異常の度合を演算してリアルタイムで出力する。
【発明の効果】
【００２０】
上記本発明の構成によれば、制御プログラムの診断制御ループが、フィードバック値が所定の設定範囲を超えない「正常時の処理時間」が設定範囲を超える「異常時の処理時間」より長く設定されているので、正常時の処理時間が常に最大となり、異常時の処理時間は常に正常時より短くなる。
従って、正常時の処理時間が常に最大となるので、あらゆる異常状態を想定して試験することなく、ウォッチドッグタイマーの設定時間を正常時の処理時間より長く設定するだけで、容易かつ適正に設定でき、入力信号（フィードバック値）が変化しても規定時間（ウォッチドッグタイマーの設定時間）内に処理が終了することが保証される。
また、この診断制御ループは、例えば、正常時の処理時間と異常時の処理時間の差からフィードバック値が所定の設定範囲を超える異常の度合を診断し出力するので、「実際の異常」を検出できると同時に、正常を維持する範囲でも制御ループにおける「異常の度合」をリアルタイムで把握することができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の好ましい実施形態を図面を参照して説明する。なお、各図において共通する部分には同一の符号を付し、重複した説明を省略する。
【００２２】
図１は、本発明の制御装置の第１実施形態図である。この図において、本発明の制御装置は、フィードバック制御を行う制御装置１０であり、操作対象１の目標値２と操作対象１のフィードバック値３から制御用操作量４を演算し出力する機能を有する。
操作対象１は、例えば燃料、可変静翼、抽気弁、等であり、目標値２、フィードバック値３および制御用操作量４は、例えば温度、圧力、回転数等である。
【００２３】
この図において本発明の制御装置は、制御器１０、ウォッチドッグタイマー２０、および異常度合表示装置３０を備える。
制御器１０は、操作対象１の制御対象値をフィードバック値３として受信し、所定の目標値２とフィードバック値３を比較し、その差５（偏差）に基づき操作対象１に制御用操作量４を出力する。
この構成により、制御器１０により、例えばＰＩＤ制御１４により、操作対象１の制御対象値を常に所定の目標値２に近づけるフィードバック制御を行うことができる。
【００２４】
この制御器１０は、制御用操作量４の出力と同時に監視用パルス信号１１を出力する。この時間間隔Ｔ１は、制御器による処理時間により変動する。
また、ウォッチドッグタイマー２０は、監視用パルス信号１１の時間間隔Ｔ１を監視し、この時間間隔Ｔ１が所定の設定時間Ｔを超える場合に異常と判定する。この設定時間Ｔ（ウォッチドッグタイマーの設定時間）は、監視用パルス信号１１の時間間隔Ｔ１の最大値より長く設定されている。さらに、ウォッチドッグタイマー２０は、異常と判定する場合を除き、監視用パルス信号１１を受信する毎にリセットされ、新たに時間をカウントするように構成されている。
【００２５】
この構成により、制御装置が正常に作動し、制御用操作量４の出力と同時に監視用パルス信号１１を所定の時間間隔Ｔ１（最大値以下）で出力している限り、ウォッチドッグタイマー２０は、異常を判定せずにリセットされ、新たに時間をカウントし続ける。
また、制御器が例えば暴走し、制御用操作量４が出力されるまでに所定の時間間隔Ｔ１の最大値を超える場合（時間間隔Ｔ１が設定時間Ｔを超える場合）には、ウォッチドッグタイマー２０により異常と判定する。異常を判定した場合、例えば、ウォッチドッグタイマー２０は異常信号２１を出力し、この異常信号２１により、例えば制御器１０をリセットする。
【００２６】
本発明において、制御器１０はコンピュータであり、制御用操作量４を演算する制御プログラムを記憶する。
この制御プログラムは、操作対象１の制御対象値をフィードバック値３として受信し、フィードバック値３が所定の設定範囲を超える異常の度合１２を診断し出力する診断制御ループを有している。
この診断制御ループは、設定範囲を超えない「正常時の処理時間」が設定範囲を超える「異常時の処理時間」より長く設定されている。
【００２７】
なお「フィードバック値が所定の設定範囲を超える異常」は、制御器自体は正常であり、操作対象１（例えば燃料、可変静翼、抽気弁、等）が異常な場合をいう。従って、この異常は、ウォッチドッグタイマー２０で検出・判定する故障（例えば制御器の暴走）とは相違する。
この異常は、例えば（１）温度、圧力、回転数等が実際に所定の設定範囲を超える場合、（２）それらを検出するセンサの故障による場合、（３）その他（例えば断線）等である。
【００２８】
制御プログラムは、さらに正常時の処理時間Ｔ１と異常時の処理時間Ｔ２の差から異常の度合１２（頻度や超過量等）を演算してリアルタイムで出力する異常度演算ループを有している。
例えばガスタービンエンジンのように複雑な装置では、装置は正常であるにもかかわらず、ノイズ等の影響で「フィードバック値が所定の設定範囲を超える異常」が発生すること等もある。
そのため、所定の設定範囲を超える異常は、その頻度やその超過量等（「異常の度合」）を所定のアルゴリズムに基づき再検証し、異常の度合１２が予め定めた設定値（例えば連続して３回）を超える場合には、故障信号１３を出力する。この故障信号１３により、故障表示を行い、或いは装置を減速又は停止することができる。
また、異常の度合が予め定めた設定値に満たない場合には、故障信号１３を出力する必要がないためそのまま運転を継続することができる。
【００２９】
異常度合表示装置３０は、制御器１０の異常の度合１２をリアルタイムで表示する機能を有する。
従って、制御器１０で実際の異常を検出できると同時に、正常を維持する範囲でも制御ループにおける異常の度合１２（例えば処理時間Ｔ１、Ｔ２の差）を異常度合表示装置３０によりリアルタイムで把握することができる。
【００３０】
上述したように、本発明の構成によれば、制御プログラムの診断制御ループが、フィードバック値３が所定の設定範囲を超えない正常時の処理時間Ｔ１が設定範囲を超える異常時の処理時間Ｔ２より長く設定されているので、正常時の処理時間が常に最大となり、異常時の処理時間は常に正常時より短くなる。
従って、あらゆる異常状態を想定して試験することなく、ウォッチドッグタイマーの設定時間Ｔを正常時の処理時間より長く設定するだけで、容易かつ適正に設定できる。これにより制御器が例えば暴走しない限り、入力信号（フィードバック値）が変化しても設定時間Ｔ（ウォッチドッグタイマーの設定時間）内に処理が終了することが保証される。
【００３１】
図２は、本発明の制御装置の第２実施形態図である。この例は、ガスタービン等のエンジン制御装置であり、図に示すように、制御器１０を備える。制御器１０はコンピュータであり、制御用操作量４を演算する制御プログラムを記憶する。
この例において、制御器１０は次の（１）〜（６）の計算を実行する。
（１）ガスタービン等の運転状態を示す温度、圧力、回転数等の各センサの値６をアナログ／ディジタル変換（ＡＤ変換１５ａ）、ディジタルカウンタ変換（ＤＣ変換１５ｂ）等にて読み込む。
（２）温度、圧力、回転数の物理量に物理量変換１６で変換する。
（３）各センサが故障した場合、異常な値を制御に用いないように故障診断１７をそれぞれ実施する。
（４）各センサの値６から目標値計算１８で燃料、可変静翼、抽気弁等の目標値２を計算する。
（５）計算された目標値２とフィードバック値３から操作量４を計算する。
（６）操作量４をディジタル／アナログ変換（ＤＡ変換１５ｃ）を用いて出力する。
【００３２】
この例において、制御対象（操作対象１）は１つでなく、燃料、可変静翼、抽気弁等、複数のアイテムを制御する必要がある。
【００３３】
これらの計算をソフトウェアで行う際に、計算に要する時間が各制御ループで異なると、制御定数が決められず制御が発散するため、決められた時間内に全ての計算を終了する必要がある。しかし、ソフトウェアの分岐によりその処理量は異なり、計算内容が複雑になればなるほど、その全体像はつかみにくくなる。その結果、定常時に正常に作動しているソフトウェアでも、入力値が変化した場合に、分岐の変化により決められた時間内に計算が終了しなくなり、ウォッチドッグタイムリセットにかかることになる。
【００３４】
この例において本発明の制御装置は、さらにウォッチドッグタイマー２０および異常度合表示装置３０を備える。
制御器１０は、制御用操作量４の出力と同時に監視用パルス信号１１を出力する。監視用パルス信号１１は、異なる操作対象１（燃料、可変静翼、抽気弁等）毎に、複数のパルス信号でもよく、あるいはそのうちの全てを対象として単一のパルス信号でもよい。この時間間隔Ｔ１は、制御器による処理時間により変動する。
また、ウォッチドッグタイマー２０は、監視用パルス信号１１の時間間隔Ｔ１を監視し、この時間間隔Ｔ１が所定の設定時間Ｔを超える場合に異常と判定する。この設定時間Ｔは、異なる操作対象１（燃料、可変静翼、抽気弁等）毎に、別の値を設定してもよく、あるいはそのうちの全てを対象として単一の時間でもよい。
【００３５】
また制御プログラムは、故障診断１７にそれぞれ組み込まれ、操作対象１の制御対象値をフィードバック値３として受信し、フィードバック値３が所定の設定範囲を超える異常の度合１２を診断し出力する診断制御ループを有している。
この診断制御ループは、設定範囲を超えない正常時の処理時間が設定範囲を超える異常時の処理時間より長く設定されている。すなわち、ソフトウェア設計時に各ＡＤ変換、物理量変換、故障診断等の計算をどの分岐を通っても処理量が定常時より同等かまたは増えないように設計する。
なお、この故障診断１７を、図に示すように、各センサの値６及びフィードバック値３に対してそれぞれ設けてもよく、或いはまとめて設けてもよい。
【００３６】
その他の構成は、第１実施形態と同様である。図２の構成によれば、制御プログラムの診断制御ループが、フィードバック値３が所定の設定範囲を超えない正常時の処理時間Ｔ１が設定範囲を超える異常時の処理時間Ｔ２より長く設定されているので、正常時の処理時間が常に最大となり、異常時の処理時間は常に正常時より短くなる。
従って、あらゆる異常状態を想定して試験することなく、ウォッチドッグタイマーの設定時間Ｔを正常時の処理時間より長く設定するだけで、容易かつ適正に設定できる。これにより制御器が例えば暴走しない限り、入力信号（フィードバック値）が変化しても設定時間Ｔ（ウォッチドッグタイマーの設定時間）内に処理が終了することが保証される。
【００３７】
図３は本発明による制御プログラムの一例を示すフローチャートであり、図４は従来の同様のフローチャートである。
この例では、「入力信号が上下限値内の場合は入力値を出力し、上下限を超えた場合は、前回値を出力し、３回連続で上下限を超えた場合はエラーフラグを立てる」という故障診断を示している。
【００３８】
図４の従来例は、故障診断内容をそのままフローチャートで示したものである。すなわち、入力信号が上下限値内の場合は、ステップＳ０１、Ｓ０２、Ｓ０３、Ｓ０９、Ｓ０５を通って入力値を出力し、上下限を超えた場合は、２回連続するまではステップＳ０１、Ｓ０６、Ｓ０７、Ｓ０３、Ｓ０４、Ｓ０５を通って前回値を出力し、３回連続で上下限を超えた場合は、さらにステップＳ０１、Ｓ０６、Ｓ０８を通ってエラーフラグを立て、更にＳ０３、Ｓ０４、Ｓ０５を通る。このエラーフラグ（＝１）により、例えば故障信号１３を出力し、この故障信号１３により、故障表示を行い、或いは装置を減速又は停止することができる。
図４のフローチャートにおいて、所定の設定範囲を超える異常が無い場合のステップ数はステップＳ０１、Ｓ０２、Ｓ０３、Ｓ０９、Ｓ０５の５であり、異常が有る場合のステップ数は、１、２回目でステップＳ０１、Ｓ０６、Ｓ０７、Ｓ０３、Ｓ０４、Ｓ０５の６であり、３回目ではＳ０１、Ｓ０６、Ｓ０８、Ｓ０３、Ｓ０４、Ｓ０５の６になる。
従って、図４の従来例では、異常分岐ステップの処理時間が正常分岐ステップの処理時間がより常に長くなり、あらゆる異常状態を想定して試験しないと、ウォッチドッグタイマーに設定する時間間隔を正確に把握することができない問題が生じる。
【００３９】
図３は、本発明による制御プログラムのフローチャートである。本発明の制御プログラムは、フィードバック値が所定の設定範囲を超える異常の度合を診断し出力する診断制御ループを有しており、この診断制御ループは設定範囲を超えない正常時の処理時間が設定範囲を超える異常時の処理時間より長く設定されている。
すなわち、本発明による診断制御ループは、所定の設定範囲を超える異常の有無を判断する条件ステップと、該異常が無い場合の正常分岐ステップと、該異常が有る場合の異常分岐ステップとを有し、正常分岐ステップの処理時間が異常分岐ステップの処理時間より長く設定されている。
【００４０】
この図において、条件ステップは、Ｓ１１、Ｓ１４、Ｓ１７、Ｓ１９であり、正常分岐ステップは、Ｓ１２、Ｓ１５、Ｓ２４、Ｓ２５であり、異常分岐ステップは、Ｓ２２、Ｓ２３、Ｓ１８、Ｓ２０である。
図において、入力信号が上下限値内の場合は、ステップＳ１１、Ｓ１２、Ｓ１３、Ｓ１４、Ｓ１５、  Ｓ１６、Ｓ１７、Ｓ２４、Ｓ１９、Ｓ２５、Ｓ２１の１１ステップを通って入力値を出力し、上下限を超えた場合は、２回連続するまではＳ１１、Ｓ２２、Ｓ１３、Ｓ１４、Ｓ１５、（Ｓ２３）、Ｓ１６、Ｓ１７、Ｓ２４、Ｓ１９、Ｓ２０、Ｓ２１の１１ステップ（Ｓ２３は数えない）を通って前回値を出力し、３回連続で上下限を超えた場合は、さらにＳ１１、Ｓ２２、Ｓ１３、Ｓ１４、（Ｓ２３）、Ｓ１６、Ｓ１７、Ｓ１８、Ｓ１９、Ｓ２０、Ｓ２１の１０ステップ（Ｓ２３は数えない）を通ってエラーフラグを立てる。このエラーフラグ（＝１）により、例えば故障信号１３を出力し、この故障信号１３により、故障表示を行い、或いは装置を減速又は停止することができる。
【００４１】
図３のフローチャートにおいて、所定の設定範囲を超える異常が無い場合のステップ数は１１であり、異常が有る場合のステップ数は、１、２回目は１１、３回目は１０になる。
従って、本発明による診断制御ループは、正常分岐ステップの処理時間が異常分岐ステップの処理時間より長く設定され、故障になると計算量が減る構成になっている。
従って、故障しても計算量が減る構成となっているので、入力信号に故障が発生しても規定時間内に終了することが保証される。
【００４２】
本発明による制御プログラムの別の例を以下に説明する。
この例では、温度（熱電対  ＴｙｐｅＫ）の物理量変換１６について述べる。熱電対センサは、温度に応じて出力電圧が変化するセンサであり、その電圧−温度特性は、ＪＩＳ規格で規定されているが、大まかに記述すると表１のようになる。
【００４３】
【表１】
2006235677.tif 000003
【００４４】
制御器１０へ熱電対センサからある電圧が与えられた場合（仮に１５ｍＶとする）の検出温度を求める方法は、次の（１）（２）のようになる。
（１）表１の［ｍＶ］の列の値と与えられた電圧を上から順に比較し、与えられた電圧が含まれる行を探す（１５ｍＶの場合、Ｎｏ．６＝１２．２０７ｍＶとＮｏ．７＝１６．３９５ｍＶの間となる）。
（２）Ｎｏ．６とＮｏ．７の［ｍＶ］の列および［℃］の列から線形補完式により温度を算出する（１５ｍＶの場合、（１５−１２．２０７）／（１６．３９５−１２．２０７）×（４００−３００）＋３００＝３６６．３９１となる）。
【００４５】
この手段では、入力電圧が仮に４０ｍＶ場合、（１）項の比較回数が１２回（Ｎｏ．２，Ｎｏ．３・・・Ｎｏ．１３）となり、温度が高くなるほど比較回数が増える。すなわち計算量が増えることになる。
【００４６】
これを解消する手段として、ポインタを用いる手段（「ポインタ法」と呼ぶ）がある。（２）項の計算を行ったときのＮｏをポインタに記録して、次の制御ループではポインタの番号から比較を開始する方法である。これにより、温度の変化が少ない定常時は（１）項の比較回数が減るが、温度が急激に変化した場合は、比較回数が増え計算量が増えることになる。
【００４７】
また、二分枝探索（バイナリーサーチ法）を用いることもできる。すなわち、まずグラフの中央の点（Ｎｏ．７）に注目し、入力電圧がＮｏ．７より大きい場合は大きいほうへ、小さい場合は小さいほうへ移動する。入力電圧が大きい場合は、Ｎｏ．７とＮｏ．１３の中央のＮｏ．１０に注目し、入力電圧と比較する・・・と順次半分、半分と領域を狭くして、最後に残った２つのＮｏ．間の値から線形補完により温度を算出する。このバイナリーサーチ法により、比較回数を減らし、計算量を減らすことができる。
【００４８】
更に、表１を最小二乗法等にて多項式に変換しその多項式を計算する手段（多項式法）も適用できる。
このようにソフトウェア設計時に全プログラムに対して、どの分岐を通っても定常時より実行時間が増えないように、ポインタ法、バイナリーサーチ法、多項式法等を用いて設計することにより、、制御装置の実行時間に対する安全性が確保できる。また、これまで、最悪な実行時間を求めるため、様々な入力パターンを与えていた検証テストを省略することが可能となる。
【００４９】
なお、本発明は上述した実施例及び実施形態に限定されず、本発明の要旨を逸脱しない範囲で種々変更できることは勿論である。
【図面の簡単な説明】
【００５０】
【図１】本発明の制御装置の第１実施形態図である。
【図２】本発明の制御装置の第２実施形態図である。
【図３】本発明による制御プログラムの一例を示すフローチャートである。
【図４】従来の図３と同様のフローチャートである。
【図５】特許文献１の「暴走監視装置」の模式図である。
【図６】特許文献２のマイクロコントローラの模式図である。
【図７】特許文献３のコンピュータシステムの模式図である。
【図８】特許文献４の「プログラム処理時間推定方法」の模式図である。
【図９】特許文献５の「組み込みシステム用ソフトウェアの製作方法」の模式図である。
【符号の説明】
【００５１】
１  操作対象、２  目標値、３  フィードバック値、
４  制御用操作量、５  偏差、６  センサの値、
１０  制御器、１１  監視用パルス信号、
１２  異常の度合、１３  故障信号、１４  ＰＩＤ制御、
１５ａ  ＡＤ変換、１５ｂ  ＤＣ変換、１５ｃ  ＤＡ変換、
１６  物理量変換、１７  故障診断、１８  目標値計算、
２０  ウォッチドッグタイマー、２１  異常信号、
３０  異常度合表示装置
【図１】
2006235677.tif 000004
【図２】
2006235677.tif 000005
【図３】
2006235677.tif 000006
【図４】
2006235677.tif 000007
【図５】
2006235677.tif 000008
【図６】
2006235677.tif 000009
【図７】
2006235677.tif 000010
【図８】
2006235677.tif 000011
【図９】
2006235677.tif 000012