(57)【要約】【課題】  制御データのエラーを自己診断し、自己修復するプロセスコントローラ、同コントローラの２重化システム、及び制御データメモリの自己修復方法、制御データメモリの自己修復プログラムを提供することを目的とする。【解決手段】  制御プログラムによって制御処理を行うプロセスコントローラ１１において、前記ＣＰＵ１１ａが制御周期単位で処理する制御データを記憶する制御用ＲＡＭ１１ｃと、前記制御データを前記制御周期単位で記憶するトラッキング用ＲＡＭ１１ｄと、前記制御データのエラーを診断し、エラーが検出された場合には前記トラッキング用メモリに記憶される前記制御データを用いて修復して前記制御プログラムを継続処理するとともに、修復の試行回数によって故障の程度を判定するＲＡＭ診断プログラム１１ｅ１とを備えたことを特徴とする。【選択図】  図２
2006003929.tif 000002
【特許請求の範囲】
【請求項１】
制御データを記憶する制御用メモリと、
前記制御データを処理するＣＰＵモジュールと、
前記ＣＰＵモジュールで処理が行われた前記制御データを複製して記憶するトラッキング用メモリと、
前記制御用メモリに記憶された制御データを診断する診断処理手段とを有し、
前記診断処理手段は、前記制御用メモリに記憶された制御データにエラーを検出した場合に、前記トラッキング用メモリに記憶された制御データを前記制御用メモリに記憶させた後に、前記制御用メモリに記憶された制御データの診断を再び行うことを特徴とするプロセスコントローラ。
【請求項２】
前記診断処理手段は、前記トラッキング用メモリに記憶された制御データを前記前記制御用メモリへの記憶と、前記制御データの診断により制御データのエラーの検出が所定回数以上繰り返された場合に、プロセスコントローラを停止させることを特徴とする請求項１に記載のプロセスコントローラ。
【請求項３】
情報を表示するモニタツールをさらに有し、
前記診断処理手段は、前記トラッキング用メモリに記憶された制御データを前記制御用メモリに記憶させた後に、制御データの診断を再び行い、のエラーが検出されなかった場合の回数を累積した累積試行回数が所定回数以上となった場合に、前記モニタツールに軽故障を表示することを特徴とする請求項１または請求項２に記載のプロセスコントローラ。
【請求項４】
前記診断処理手段は、制御データを前記制御用メモリへ記憶させた後に、制御データの診断を再び行い、制御データのエラーが検出されなかった場合の単位時間当たりの発生回数である単位時間当たり累積試行回数が所定の条件より増加した場合に、前記モニタツールに軽故障を表示することを特徴とする請求項１乃至請求項３のいずれか１項に記載のプロセスコントローラ。
【請求項５】
制御用メモリに記憶された制御データを診断するステップと、
この診断するステップでエラーが検出された場合に、トラッキング用メモリに記憶された制御データを前記制御用メモリに記憶させるステップと、
制御用メモリに記憶されたデータにエラーが検出されなかった場合に、制御用メモリに記憶されたデータをトラッキング用メモリに記憶させるステップとを
有することを特徴とするプロセスコントローラの制御データ診断方法。
【請求項６】
前記トラッキング用メモリに記憶された制御データを、制御用メモリに記憶させた回数を数えるステップと、
この数えた回数が所定回数以上となった場合にプロセスコントローラの運転を停止させるステップとを
有することを特徴とする請求項５に記載のプロセスコントローラの制御データ診断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御プログラムを使用して鉄鋼プラント等のプロセス設備の監視や制御を実行するプロセスコントローラ、プロセスコントローラの制御データの診断方法に関する。
【背景技術】
【０００２】
一般にマイクロプロセッサを用いて各種プラントの制御を行う制御用ディジタルプロセスコントローラ（以下省略してコントローラという）において、ＲＡＳ機能は重大な機能の一つである。
【０００３】
コントローラはこのＲＡＳ機能のうち、Reliability（信頼性）を確保するためにコントローラ自身が自己診断を行い、コントローラ自身の異常を検出している。
【０００４】
これにより、プラントに対し間違った制御指令を発することを防ぎ、重大なエラーの発生を検知した場合には、プラントの運転状態を安全側への遷移させるようしている。
【０００５】
また、Availability（使用可能性）を確保するために、検出したエラーの重大性を判定し、軽微なエラーでは作動は停止しないという耐故障性の向上を図っている。
【０００６】
さらに、Serviceability（保守可能性）を確保するためには、コントローラ内のメモリに、自己診断により検出したエラーのうちコントローラの動作に重大な影響を与えるものを記憶するという方法をとっている。
【０００７】
この方法によれば、オペレータ、保守員は警報又はコントローラの停止等によりコントローラに異常が発生したことを知ったならば、このメモリ内に記憶されたエラーデータ（以下ロギングデータという）を見ることにより、故障内容、故障発生箇所等を知ることができる。
【０００８】
そして、このロギングデータに基づき、部品の交換等必要な処置を速やかに行うことにより、保守性の向上を図っている。なお、このような重大なエラーが検出されると、コントローラは上記のようにメモリに記憶すると共に、警報ランプの点灯及びモニタ装置への通知を行いオペレータ、操作員に対し異常の発生を通知する。
【０００９】
また、コントローラ外部の同じ制御系の他の機器や、上位のシステムに対しても異常の発生を通知する。さらに、このエラーがプラント運転上支障のあるエラーであると判断した場合は、コントローラ自身の動作停止等によりシステム制御動作を安全方向に移行する。
【００１０】
一方、上記の自己診断においては、短絡、落雷等のノイズのコントローラ内への侵入や電源の瞬時的な変動等による一過性のエラーを検出し、このエラーを重大なエラーと判断する場合がある。
【００１１】
この場合、この一過性のエラーにも直ちに反応しコントローラを停止したり、オペレータやコントローラ外部の機器等へ異常の発生を通知したりすると、プラントにいたずらな外乱を起こしたり、オペレータに不安を与えることがある。
【００１２】
そのため、まずエラーを検出した後に、直ちに反応するのではなく耐故障性を向上するため、再度、要すれば複数回自己診断を行い、この検出したエラーが実際のエラーなのか、再試行（リトライ）により正常に戻りうる一過性のエラーなのかを判断する。
【００１３】
そして、再試行の結果実際に重大なエラーが発生していると判断した場合に警報を発する等の処理をすると共に、メモリに記憶するという方法が用いられている。
【００１４】
しかし、再試行だけでは異常が検出できない恐れもあるため、自己診断によって検出した重大エラーはログファイルし、軽微なエラーについては再試行回数を判断データと比較して、エラーの重大性を判断する制御用ディジタルプロセスコントローラがある（例えば、特許文献１参照。）。
【特許文献１】特許第３０４０１８６号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１５】
マイクロプロセッサ等で高集積密度に実装されたプロセスコントローラの制御データを記憶するメモリとしては、通常、データの随時読出し書き込みが可能で、記憶容量が大きく、且つ、高速で読出し書き込みが行えるＤＲＡＭ（Dynamic ＲＡＭ、以後ＲＡＭと称す）が使用される。
【００１６】
このＲＡＭに記憶された制御データのエラーの原因は、主に、高集積度化されたＲＡＭ自身の信頼性に依存するエラーと、モータ等の強電磁界を有するプラント近辺にプロセスコントローラが設置された場合等において、プロセスコントローラの入出力線、接地線、及び電源線を介して混入する電気的な外乱ノイズによるエラーとがある。
【００１７】
上述したように、プラントの制御においては、制御データのエラーは外乱ノイズ等の一過性エラーなのか、再試行で復旧しないＲＡＭ自身の故障で、システムを停止する必要のあるエラーなのかを識別し、極力プラントの運転を止めることなくエラー箇所を修復して運転を継続することが使用可能性の向上に重要である。
【００１８】
しかしながら、上述したような従来の方法では、プロセスコントローラの各モジュールについて自己診断によって重大なエラーの検出と記録、また、軽微なエラーの検出に対しては再試行回数によってエラーの重大性を判定して運転を継続する方法が知られているが、プロセスコントローラが実行している制御データを、リアルタイムで、プロセスコントローラを停止することなく自己修復して運転を継続するための方法は知られていない。
【００１９】
本発明は上記問題点を解決するためになされたもので、プロセスコントローラの制御データのエラーを自己診断し、一過性のエラーに関しては制御データを記憶するメモリのデータを自己修復し、制御データを記憶するメモリの故障の場合はプラントの運転を中止することなく待機システムに交換し、プロセスコントローラを停止することなく自己修復して運転する使用可能性の高いプロセスコントローラ、プロセスコントローラの制御データ診断方法を提供することを目的とする。
【課題を解決するための手段】
【００２０】
上記目的を達成するために、本発明に係る請求項１のプロセスコントローラは、制御データを記憶する制御用メモリと、前記制御データを処理するＣＰＵモジュールと、前記ＣＰＵモジュールで処理が行われた前記制御データを複製して記憶するトラッキング用メモリと、前記制御用メモリに記憶された制御データを診断する診断処理手段とを有し、前記診断処理手段は、前記制御用メモリに記憶された制御データにエラーを検出した場合に、前記トラッキング用メモリに記憶された制御データを前記制御用メモリに記憶させた後に、前記制御用メモリに記憶された制御データの診断を再び行うことを特徴とする。
【００２１】
上記目的を達成するために、本発明に係る請求項５のプロセスコントローラの制御データ診断方法は、制御用メモリに記憶された制御データを診断するステップと、この診断するステップでエラーが検出された場合に、トラッキング用メモリに記憶された制御データを前記制御用メモリに記憶させるステップと、制御用メモリに記憶されたデータにエラーが検出されなかった場合に、制御用メモリに記憶されたデータをトラッキング用メモリに記憶させるステップとを有することを特徴とする。
【発明の効果】
【００２２】
本発明によれば、プロセスコントローラに備える制御用メモリの制御データの診断処理手段によって、制御データのエラーチェックを実行し、エラーが検出された場合には、制御データを記憶するトラッキング用メモリのデータを使用して、制御用メモリの制御データを書き換え、制御処理を継続するので、制御データを記憶するメモリの故障や、制御データに一過性の異常があっても、プロセスコントローラを停止することなく制御データを修復して運転することが可能なプロセスコントローラ、プロセスコントローラの制御データ診断方法を提供することが出来る。
【発明を実施するための最良の形態】
【００２３】
以下、図面を参照して、本発明の実施例を説明する。
【実施例１】
【００２４】
以下に、本発明による実施例１に係るプロセスコントローラについて、図１乃至図５を参照して説明する。図１は、プロセスコントローラ１００の構成図を示すブロック図である。プロセスコントローラ１００は、コントローラユニット１、プラント６に接続される入出力モジュール１７群を備えるＩ／Ｏユニット３、ＬＡＮ１５を介して接続される情報を表示するモニタツール１６とから構成される。
【００２５】
そして、コントローラユニット１はプラント６を制御する制御用プログラムを記憶するＣＰＵモジュール１１、モニタツール１６とＬＡＮ１５を介して接続されるＬＡＮインタフェースモジュール１２、及びＩ／Ｏユニット３と入出力線を介して接続されるＩ／Ｏインタフェースモジュール１３とから構成され、これらがＣＰＵモジュール１１の後述するＣＰＵバス１１ｆで接続される。
【００２６】
次に、図２を参照して、ＣＰＵモジュール１１の構成について説明する。ＣＰＵモジュール１１は、マイクロコンピュータにより構成され、各種の演算、制御を実行するＣＰＵ１１ａ、ＣＰＵモジュール１１のハードウェアの制御に用いられるオペレーティングシステム（ＯＳ）を記憶するフラッシュメモリ等の不揮発性メモリで構成されるＯＳ用ＲＯＭ(Read Only Memory、以後ＲＯＭと称す)１１ｂ、プラント６を制御するための各種の制御データを記憶する制御用ＲＡＭ１１ｃ、制御用ＲＡＭ１１ｃに記憶される制御データを制御周期Ｔｃ単位でコピーして記憶するトラッキング用ＲＡＭ１１ｄ、及びプラント６を制御するための制御プログラムを記憶する制御プログラム用ＥＥＲＯＭ（Electric Erasable and Programmable Read Only Rom以後ＥＥＰＲＯＭと称す）１１ｅとから構成され、これらがＣＰＵバス１１ｆで接続されている。
【００２７】
次に、ＣＰＵモジュール１１のプラントの制御処理について、図３を参照して説明する。
【００２８】
一連のプラント制御処理は、スキャン実行タイミング（ｓ１００）で開始され、先ず、プラント６に備えられる図示しない各種のセンサからのデータを一括して入力する一括入力処理（ＢＩＯ１）ｓ１０１、この一括入力された各種のデータを演算用のデータとして変換する入力処理（ＬＮＺ１）ｓ１０２、プラント６を制御するための応用プログラム（ＴＡＳＫ）ｓ１０３、所定の制御性能を得るために制御アルゴリズムに従ってプラント６に設けられる図示しない各種の操作端への出力を求める出力処理（ＬＮＺ２）ｓ１０４、以上の入力処理、出力処理を実行後、制御用ＲＡＭ１１ｃに記憶された制御データの診断、データの修復を実行するＲＡＭ診断処理（ＤＡＧ）ｓ１０５、ＲＡＭ診断処理（ＤＡＧ）ｓ１０）後、制御用ＲＡＭ１１ｃに記憶された制御データを一括出力する一括出力処理（ＢＩＯ２）ｓ１０６、制御用ＲＡＭ１１ｃに記憶された制御データをトラッキング用ＲＡＭ１１ｄに記憶するトラッキング処理（ＴＲＫ）ｓ１０）とから構成される。
【００２９】
そして、これらの各プログラムモジュールからなる制御プログラムは、プラント６の制御性から要求される制御応答速度として必要な、例えば、数十ｍ秒〜数百ｍ秒の制御周期Ｔｃで、ＣＰＵ１１ａによって周期的に処理を実行される。
【００３０】
次に、このように構成されたプロセスコントローラ１００のＲＡＭ診断処理（ＤＡＧ）プログラムの詳細処理について、図４を参照して説明する。
【００３１】
ＲＡＭ診断処理（ＤＡＧ）は、制御用ＲＡＭ１１ｃに記憶しようとする出力処理（ＬＮＺ２）した制御データについてパリティチェックを行ってエラーの有無を診断し、エラーが検出された場合には、制御用ＲＡＭ１１ｃに記憶されたトラッキング用ＲＡＭ１１ｄに記憶された直前の制御周期の制御データで置換して、当該アドレスに記憶し(修復処理し)、置換された制御データで制御処理を継続して実行する。
【００３２】
そして、次の制御周期以降においても制御データにエラーが検出される場合には、その修復処理の累積試行回数、及び単位時間当たりの試行回数のから故障の程度を判定する。
【００３３】
この修復の処理フローは、メモリエラーの判定処理（ステップ１）、メモリの修復処理(ステップ２)、故障判定処理（ステップ３）、及び異常停止処理(ステップ４)とからなる。
【００３４】
先ず、メモリエラー判定処理(ステップ１)は、制御対象となる制御用ＲＡＭ１１ｃの診断を行おうとする制御データが記憶されるアドレスを取り出し（ｓ１１）、制御データのチェック単位でのパリティステータスビットを初期化し（ｓ１２）、その診断アドレスの制御データを読み出し（ｓ１３）、パリティチェックによりエラーが発生しているか否かを判定する（ｓ１４）。
【００３５】
その結果、エラーが検出されなければ、終了し、次のアドレスのメモリエラーの判定処理に移る。
【００３６】
次に、エラーが検出された場合、メモリ修復処理(ステップ２)に移る。先ず、修復のための図示しない試行回数カウンタを初期化する（ｓ２１）。次に、そのエラーが検出されたアドレスの制御データのパリティステータスビットを初期化し（ｓ２２）、トラッキング用ＲＡＭ１１ｄの制御データを読出し、当該アドレスの制御用ＲＡＭ１１ｃに書き込み、修正する（ｓ２３）。
【００３７】
次に、修復された結果を確認し、その試行回数で故障の程度を判定する故障判定処理(ステップ３)に移る。
【００３８】
修正された制御用ＲＡＭ１１ｃの制御データを読出し（ｓ３１）、再び、パリティチェックを行って、エラーの修復処理後のエラーがないか否かを確認する（ｓ３２）。
【００３９】
その結果、エラーが検出された場合、試行回数カウンタをカウントアップする（ｓ３３）。次に、試行回数がＮ１以上か否かを判定し（ｓ３４）、試行回数がＮ１未満であれば、ステップｓ２２へ戻る。
【００４０】
試行回数がＮ１の場合は、修復不可能な重故障と判断し、モニタツール１６に通知する（ｓ３５）。
【００４１】
即ち、複数回数の修復処理によっても制御データのエラーが検出されることから、当該アドレスの制御用ＲＡＭが故障している可能性が高いと判断できる。このため、プロセスコントローラの運転を停止する異常停止処理（ｓ３６）を実行する。
【００４２】
ステップｓ３２でエラーが検出されない場合は、累積試行カウンタのカウント値を１増加させ更新する（ｓ３７）。その累積試行回数が所定の回数Ｎ２以下であるか否かを判定する（ｓ３８）。累積試行回数が所定の回数Ｎ２以下の場合は、その発生時刻と診断しているアドレスを記憶する（ｓ３９）。
【００４３】
例えば、現在から、所定の時間（１時間）までの間の単位時間当たりの累積試行回数を更新した回数（単位時間当たりの累積試行回数）と、所定の時間前からさらにその所定時間前までの間の単位時間当たりの累積試行回数をステップｓ３９で記憶した発生時刻のデータなどを用いて算出する（ｓ４０）。
【００４４】
そして、単位時間当たりの累積試行回数の増加割合を現在から所定の時間前までの値（新しい単位時間当たりの累積試行回数）と、所定時間前からさらにその所定時間前までの値（前の単位時間当たりの累積試行回数）を比較して判定する（ｓ４１）。
【００４５】
例えば、増加割合は、新しい単位時間当たりの累積試行回数を前の単位時間当たりの累積試行回数で除して求める。所定時間当たりの累積試行回数の増加割合が設定された値より大きい場合には、軽故障と判断し、モニタツール１６二系故障を表示し（ｓ４２）次のアドレスの制御データの診断に移行する。
【００４６】
一方、累積試行回数が所定の回数Ｎ２以上（ｓ３８）の場合は、軽故障と判定しモニタツール１６に軽故障を表示し（ｓ４２）、次のアドレスの制御データの診断に移る。
【００４７】
即ち、軽故障は、予め設定される制御周期Ｔｃよりも長い時間における累積試行回数、及び、単位時間当たりの累積試行回数の増加により、故障の予兆を診断する。
【００４８】
従って、本実施例に拠れば、制御用ＲＡＭ１１ｃのエラーに対して、一過性の制御データのエラーは修復して継続運転し、軽度の故障は予兆を検出して通知し、制御用ＲＡＭの素子の故障のような重故障の場合のみ運転停止とすることができる。
【実施例２】
【００４９】
以下に、本発明の実施例２に係るプロセスコントローラの２重化システムについて、図５及び図６を参照して説明する。
【００５０】
図５はプロセスコントローラの２重化システム２００の構成をブロック図で示したもので、図６は、そのＣＰＵモジュール１１の詳細構成図を示す。
【００５１】
この実施例２の各部について、実施例１のプロセスコントローラ１００と同一部分は同一符号で示し、その説明を省略する。この実施例２が実施例１と異なる点は、稼動系のプロセスコントローラユニット１と並列に、もう一台の待機系のプロセスコントローラユニット２を構成していることにある。
【００５２】
そして、夫々のプロセスコントローラユニット１、２には、トラッキングインタフェースモジュール１４を備え、図６に示すように、稼動系プロセスコントローラユニット１のＣＰＵモジュール１１に備えるＲＡＭ診断プログラム１１ｅ１によって、制御周期Ｔｃ単位で制御用ＲＡＭ１１ｃの制御データを、トラッキングインタフェースモジュール１４を介して待機系プロセスコントローラユニット２の制御用ＲＡＭ１１ｃに転送する機能を備える。
【００５３】
図６において、稼動系プロセスコントローラユニット１は、診断により自プロセスコントローラユニットを選択し、Ｉ／Ｏユニット３のＩ／Ｏインタフェースモジュール１７をＩ／Ｏインタフェースモジュール１３を介して選択して制御している。
【００５４】
ところが、稼動系のＣＰＵモジュール１１の制御用ＲＡＭ１１ｃから制御データのエラーが検出され、ＲＡＭ診断プログラム１１ｅ１が重故障と判定し、制御不可能と自己診断すると、ＣＰＵ１１ａはトラッキングインタフェース１４、及びプロセスコントローラユニット２のトラッキングインタフェース１４を介してＣＰＵ１１ａに制御権を引き渡すことを通知し、プロセスコントローラユニット２の制御を中止する。
【００５５】
次の、制御周期Ｔｃにおいては、待機系プロセスコントローラユニット２のＣＰＵ１１ａが稼動系プロセスコントローラ１から転送された制御データを使用して制御を開始する。
【００５６】
従って、稼動系プロセスコントローラ２の制御用ＲＡＭ１１ｃの一過性のエラーや、重故障が発生した場合のいずれの場合においても、制御を継続して実行することが可能なプロセスコントローラの２重化システムを提供することが出来る。
【００５７】
本発明は、上述した実施例に何ら限定されるものではなく、上述したパリティチェックは他のハミングコードチェックとしても良く、また、制御用ＲＡＭ１１ｃを修復する制御データは、トラッキング用ＲＡＭ１１ｄに記憶された前回の制御周期Ｔｃでのデータに変えて、過去の制御周期のデータを平均化した値とする等、対象となる制御データの性格から任意の演算式で求めた値に書き換えるようにすることも可能で、本発明の主旨を逸脱しない範囲で種々変形して実施することができる。
【図面の簡単な説明】
【００５８】
【図１】本発明の実施例１に係るプロセスコントローラの構成図。
【図２】本発明の実施例１に係るＣＰＵモジュールの構成図。
【図３】本発明の制御プログラムの構成を説明する図。
【図４】本発明の自己修復処理プログラムによる動作を説明するフロー図。
【図５】本発明の実施例２に係るプロセスコントローラの２重化システムの構成図。
【図６】本発明の実施例２に係るＣＰＵモジュールの構成図。
【符号の説明】
【００５９】
１  プロセスコントローラユニット（稼動系）
２  プロセスコントローラユニット（待機系）
３  Ｉ／Ｏユニット
６  プラント
１１  ＣＰＵモジュール
１１ａ  ＣＰＵ
１１ｂ  ＯＳ用ＲＯＭ
１１ｃ  制御用ＲＡＭ
１１ｄ  トラッキング用ＲＡＭ
１１ｅ  制御プログラム用ＲＯＭ
１１ｅ１  ＲＡＭ診断プログラム
１２  ＬＡＮインタフェースモジュール
１３  Ｉ／Ｏインタフェースモジュール
１４  トラッキングインタフェースモジュール
１５  ＬＡＮ
１６  モニタツール
１７  Ｉ／Ｏモジュール
【図１】
2006003929.tif 000003
【図２】
2006003929.tif 000004
【図３】
2006003929.tif 000005
【図４】
2006003929.tif 000006
【図５】
2006003929.tif 000007
【図６】
2006003929.tif 000008