(57)【要約】【課題】冗長化ＰＬＣシステムにおいて、運用中に更新版プログラムのデバッグを安全に実機上で行えるようにする。【解決手段】更新版のＰＬＣプログラム１５ｂをダウンロードされた待機系コントローラ１０Ｂは、等値化データの入力データ１６を用いてこのＰＬＣプログラム１５ｂを実行して出力データ１８を得る。そして、出力チェック機能部１９が、この出力データ１８と、等値化データの出力データ１７とを比較チェックして、一致箇所、不一致箇所を検出する。【選択図】図１
2016024798.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが制御用プログラムを保持する稼動系コントローラと待機系コントローラとを有し、該稼動系コントローラが、自己が保持する制御用プログラムを用いて制御対象機器を制御すると共に、該制御プログラム実行に係わる入力データと出力データを含む等値化データを前記待機系コントローラに転送する冗長化コントローラシステムであって、
前記待機系コントローラは、
前記制御用プログラムの更新版を取得した場合に、該更新版プログラムを前記等値化データの入力データを用いて実行して出力データを得る模擬実行手段と、
該模擬実行手段によって得られた出力データを、前記等値化データの出力データと比較して一致箇所または不一致箇所を検出する結果チェック手段と、
を有することを特徴とする冗長化コントローラシステム。
【請求項２】
前記待機系コントローラは、前記模擬実行手段によって得られた前記出力データを、前記制御対象機器に出力しないことを特徴とする請求項１記載の冗長化コントローラシステム。
【請求項３】
前記制御用プログラムやその更新版を任意に作成させるプログラム作成支援機能を備えた支援装置を更に有し、
前記結果チェック手段による一致または不一致検出結果は、該支援装置に転送されて該支援装置上で表示されることを特徴とする請求項１または２記載の冗長化コントローラシステム。
【請求項４】
前記支援装置は、前記表示に基づいて前記更新版プログラムに異常が無いと判断された場合の所定の操作に応じて前記コントローラに切替指示を出し、
該切替指示に応じて、前記稼動系コントローラは待機系に切り替わり、前記待機系コントローラは稼動系に切り替わって前記更新版プログラムによる制御動作を開始することを特徴とする請求項３記載の冗長化コントローラシステム。
【請求項５】
それぞれが制御用プログラムを保持する稼動系コントローラと待機系コントローラとを有し、該稼動系コントローラが、自己が保持する制御用プログラムを用いて制御対象機器を制御すると共に、該制御プログラム実行に係わる入力データと出力データを含む等値化データを前記待機系コントローラに転送する冗長化コントローラシステムにおける該待機系コントローラであって、
前記制御用プログラムの更新版を取得した場合に、該更新版プログラムを前記等値化データの入力データを用いて実行して出力データを得る模擬実行手段と、
該模擬実行手段によって得られた出力データを、前記等値化データの出力データと比較して一致箇所または不一致箇所を検出する結果チェック手段と、
を有することを特徴とする冗長化コントローラシステムの待機系コントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、冗長化されたプログラマブルなコントローラシステムに関する。
【背景技術】
【０００２】
設備を停止できないプラント分野では、冗長化（二重化など）したプログラマブルコントローラシステムにおいてユーザアプリケーションの変更を行いたい場合、例えば以下に説明する方法を採っていた。
【０００３】
図４は、従来の冗長化プログラマブルコントローラシステムの構成例である。
図示の例の冗長化（二重化）システムは、２台のプログラマブルコントローラ１００Ａ、１００Ｂを設けて、一方を稼動系、他方を待機系として動作させる。そして、稼動系コントローラが故障等した場合、待機系コントローラが新たな稼動系コントローラとして動作することになる。図示の例では、コントローラ１００Ａが稼動系、コントローラ１００Ｂが待機系となっている。
【０００４】
各プログラマブルコントローラ１００Ａ，１００Ｂは、構成自体は同じであり、プログラムメモリ１０５を備えると共に、入力機能部１０１、演算機能部１０２、出力機能部１０３、等値化機能部１０４等の各種機能部を有している。但し、待機系コントローラ１００Ｂは、等値化機能部１０４のみが動作しており、入力機能部１０１、演算機能部１０２、出力機能部１０３は動作していない。
【０００５】
稼動系コントローラ１００Ａは、入力モジュール１２１と出力モジュール１２２を介して不図示の制御対象機器を制御する。これは、各種制御プログラム等であるＰＬＣ（Ｐｒоｇｒａｍｍａｂｌｅ  Ｌоｇｉｃ  Ｃоｎｔｒоｌｌｅｒ）プログラム１０５ａ等を実行することで、制御実行するものである。
【０００６】
ここで、プログラムメモリ１０５には、上記ＰＬＣプログラム１０５ａが格納されている。このＰＬＣプログラム１０５ａは、支援ローダ１１０で生成されて、各コントローラ１００Ａ，１００Ｂにダウンロードされたものである。基本的には、２つのコントローラ１００Ａ，１００Ｂには、同じＰＬＣプログラムが格納された状態となっている。但し、プログラム更新の際には、一時的に、一方に更新版である新プログラム、他方に旧プログラムが格納された状態となる場合がある。
【０００７】
支援ローダ１１０では、プログラマが任意のアプリケーションプログラム１１１を作成し、これをコンパイルすることで、ＰＬＣプログラム１１２を生成する。アプリケーションプログラム１１１は、更新（バージョンアップ等）される場合があり、更新される毎にコンパイル処理によって新たなＰＬＣプログラム１１２が生成されてコントローラ１００にダウンロードされることになる。但し、これを運用中に実行する為に、従来では後述する方法を採っている。詳しくは後述する。
【０００８】
ここで、図５に、稼動系、待機系の各コントローラ１００の動作例を示す。
各コントローラ１００は、所定のサイクルで所定の処理を繰り返し実行している。まず、待機系コントローラ１００Ｂは、図示のように、各サイクル毎に等値化処理のみを実行している。
【０００９】
一方、稼動系コントローラ１００Ａは、各サイクル毎に「入力→演算→入出力データ等値化→出力」の一連の処理を実行している。まず、入力処理は、入力機能部１０１が、各種入力モジュール１２１から入力データ１０６を取得する処理である。入力データ１０６は、例えば上記制御対象機器に係わる温度、湿度、圧力、回転数、計数値などである。演算処理は、上記演算機能部１０２が、この入力データ１０６を用いて上記ＰＬＣプログラム１０５ａを実行することで、出力データ１０７を生成する処理である。
【００１０】
上記入出力データ等値化処理は、上記等値化機能部１０４が、上記入力データ１０６と出力データ１０７を、待機系コントローラ１００Ｂへ転送する処理である。尚、待機系コントローラ１００Ｂの上記等値化処理は、当該転送された入力データ１０６と出力データ１０７を受信して、これを不図示の記憶領域に記憶する処理である。
【００１１】
上記出力処理は、上記出力機能部１０３が、上記生成した出力データ１０７を、各種出力モジュール１２２へ出力する処理である。
ここで、上述したように、運用中にＰＬＣプログラムが更新（バージョンアップなど）される場合がある。例えば、図６に示すように、支援ローダ１１０のプログラム作成支援機能により、プログラマに、上記アプリケーションプログラム１１１の更新版である新アプリケーションプログラム１１１ｂを、任意に作成させる。支援ローダ１００のコンパイル機能により、この新アプリケーション１１１ｂをコンパイルすることで、ＰＬＣプログラム（更新プログラム）１１２ｂが生成される。
【００１２】
その後、コントローラ１００にＰＬＣプログラム（更新プログラム）１１２ｂをダウンロードして動作させることになる。但し、この様なコントローラ１００の制御プログラムを新プログラムに変更する作業は、運用中に行う必要があり、新プログラムの動作確認を事前に行うことができない為、デバッグをしないで稼働させる方法を採っていた。つまり、例えば以下に図６〜図１０を参照して説明する方法を採っていた。
（１）図６に示すように、支援ローダ１１０において上記のように生成した上記ＰＬＣプログラム（更新プログラム）１１２ｂを、待機系コントローラ１００Ｂにダウンロードする。待機系コントローラ１００Ｂは、このＰＬＣプログラム（更新プログラム）１１２ｂを、新たなＰＬＣプログラム（更新プログラム）１０５ｂとしてプログラムメモリ１０５に格納する。
（２）図７に示すように、支援ローダ１１０がコントローラ１００へ稼働／待機切り替えを指示し、これに応じてコントローラ１００Ａは待機系に切り替わり、コントローラ１００Ｂは稼動系に切り替わる。これより、図８に示すように、稼動系となったコントローラ１００Ｂは、上記新ＰＬＣプログラム（更新プログラム）１０５ｂを実行することで、制御を行うことになる。つまり、実際に新アプリケーションを動作させて、問題が無いか否かを確認する。
（３）もし、新ユーザアプリケーションの動作に何等かの問題があるとユーザが判断した場合、ユーザの指示操作により支援ローダ１１０が再びコントローラ１００へ稼働／待機切り替え指示を出す。これによって、図９に示すように、再びコントローラ１００Ａが稼動系として動作することになる。勿論、コントローラ１００Ａは、更新前の（旧バージョンの）ＰＬＣプログラム１０５ａによって動作することになる。
（４）一方、もし新ユーザアプリケーションの動作に問題がないとユーザが判断した場合は、図１０に示すように、稼動系コントローラ１００Ｂはそのまま動作させると共に、ユーザの指示操作により支援ローダ１１０は待機系コントローラ１００Ａに対して新ＰＬＣプログラム（更新プログラム）１１２ｂをダウンロードする。これより、待機系コントローラ１００Ａは、このＰＬＣプログラム（更新プログラム）１１２ｂを、ＰＬＣプログラム（更新プログラム）１０５ｂとして、プログラムメモリ１０５に格納する。
【００１３】
この様に、プログラム変更の際に、運用を一時停止して動作確認することができないシステムである為、従来では、運用中に実際に動作させることで実質的に動作確認を行うようにすると共に、問題があれば直ちに元に戻すことで、悪影響を最小限に抑えようとしていた。
【００１４】
また、例えば、特許文献１に記載の従来技術が知られている。
特許文献１の発明は、作成されたユーザプログラムの信頼性を十分に検証することができると共に、作成されたユーザプログラムに不都合な点が見いだされた場合には、いつでも容易に、旧プログラムを復元することが可能な二重化ＰＬＣを提供するものである。
【００１５】
特許文献１では、運転モード設定手段における設定状態として、ホットスタンバイ機能を有しないデュプレックスモードに対応する第３の設定状態を設ける。また、運転モード設定手段が第３の設定状態にあることを条件として起動され、ホットスタンバイ機能を有しないデュプレックス運転状態を実現する第３の運転状態実現手段を設ける。さらに第２の設定状態から第３の設定状態への切替に際しては、デュプレックス運転状態の開始に先立ち、休止状態にあるＣＰＵユニットからアクティブ状態にあるＣＰＵユニットへのユーザプログラムのデータ転送が行われない。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２００９−３２１００号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
上記従来の方法では、運用を停止できないプログラマブルコントローラシステムにおいて、ＰＬＣプログラム（ユーザプログラム／制御プログラム）を更新する際、更新版である新プログラムの動作確認を、運用中に実際に動作させることで実現させていた。この為、新プログラムに何等かの問題があった場合、短時間のことであるかもしれないが、制御対象機器の動作に何等かの異常が生じる可能性がある。
【００１８】
本発明の課題は、ＰＬＣの冗長化システムにおいて、ユーザプログラムを更新する際に、新プログラムに何等かの問題があった場合でも制御対象機器の動作に影響しないようにしつつ新プログラムの動作確認を実システム上で行うことができる冗長化コントローラシステム等を提供することである。
【課題を解決するための手段】
【００１９】
本発明の冗長化コントローラシステムは、それぞれが制御用プログラムを保持する稼動系コントローラと待機系コントローラとを有し、該稼動系コントローラが、自己が保持する制御用プログラムを用いて制御対象機器を制御すると共に、該制御プログラム実行に係わる入力データと出力データを含む等値化データを前記待機系コントローラに転送する冗長化コントローラシステムであって、前記待機系コントローラは、下記の各構成を有する。
・前記制御用プログラムの更新版を取得した場合に、該更新版プログラムを前記等値化データの入力データを用いて実行して出力データを得る模擬実行手段；
・該模擬実行手段によって得られた出力データを、前記等値化データの出力データと比較して一致箇所または不一致箇所を検出する結果チェック手段：
【発明の効果】
【００２０】
本発明の冗長化コントローラシステム等によれば、ＰＬＣの冗長化システムにおいて、ユーザプログラムを更新する際に、新プログラムに何等かの問題があった場合でも制御対象機器の動作に影響しないようにしつつ新プログラムの動作確認を実システム上で行うことができる。
【図面の簡単な説明】
【００２１】
【図１】本例の冗長化コントローラシステムの機能構成図である。
【図２】本例の冗長化コントローラシステムの概略動作を示す図である。
【図３】比較チェック結果の一例を示す図である。
【図４】従来の冗長化プログラマブルコントローラシステムの構成例である。
【図５】稼動系、待機系の各コントローラの動作例を示す図である。
【図６】従来のアプリケーション更新の際の動作（その１）である。
【図７】従来のアプリケーション更新の際の動作（その２）である。
【図８】従来のアプリケーション更新の際の動作（その３）である。
【図９】従来の異常判定時の動作である。
【図１０】従来の正常判定時の動作である。
【発明を実施するための形態】
【００２２】
以下、図面を参照して、本発明の実施の形態について説明する。
図１は、本例の冗長化コントローラシステムの機能構成図である。
図１の冗長化コントローラシステムは、２台のコントローラ１０Ａ、１０Ｂを有する。図示の状態では、コントローラ１０Ａが稼動系、コントローラ１０Ｂが待機系であるものとする。これより、以下の説明では、基本的に、稼動系コントローラ１０Ａ、待機系コントローラ１０Ｂ等と記して説明するものとする。但し、勿論、コントローラ１０Ｂが稼動系、コントローラ１０Ａが待機系となる場合も有り得る。よって、以下の説明において例えば稼動系コントローラ１０Ａの機能・動作として説明したものは、稼動系となったコントローラ１０Ｂにおいても同様の機能・動作を有するものと見做してよい。これは、待機系に関しても同様である。
【００２３】
また、図示の状態では、更新版のＰＬＣプログラムが、既に待機系コントローラ１０Ｂにダウンロードされて保持された状態となっている。その一方で、稼動系コントローラ１０Ａには、更新前の（旧バージョンの）ＰＬＣプログラムが、保持された状態となっている。つまり、プログラム格納状況に関しては、上記図８と同等の状態となっている。但し、各コントローラ１０の動作は、図８とは全く異なる。
【００２４】
尚、図示の支援ローダ２０と、各コントローラ１０Ａ，１０Ｂとは、不図示の通信線により接続されており、相互にデータ送受信可能となっている。
また、尚、支援ローダ２０は、例えばパソコン等の汎用のコンピュータ装置により実現される。よって、特に図示しないが、支援ローダ２０は、パソコン等の一般的な構成を有しており、例えば、不図示のＣＰＵ、記憶部（ハードディスク、メモリ等）、通信機能部、ディスプレイ等の表示部、キーボード、マウス等の入力操作部などを備えている。記憶部には予め所定のアプリケーションプログラムが記憶されており、ＣＰＵがこのアプリケーションプログラムを実行することで、支援ローダ２０の各種処理機能が実現される。
【００２５】
尚、支援ローダ２０は、基本的にはプログラマブルコントローラの支援装置としての既存の機能を有するものであるが、更に、後述するデバッグモードへの移行を待機系コントローラに指示する機能等が追加されているものと見做してよい。上記既存の機能とは、例えば、ユーザ（プログラマ）に制御プログラム等をラダー図等により任意に作成させるプログラム作成支援機能や、作成されたプログラムをコンパイルしてプログラマブルコントローラで実行可能な形式に変換する機能等である。これらについては、既存の機能であるので、特に詳しくは説明しないものとする。
【００２６】
また、各コントローラ１０も、ハードウェア構成自体は既存のプログラマブルコントローラの構成であってよく、例えばＣＰＵ／ＭＰＵ等の演算プロセッサ、メモリや、通信機能や、入力モジュール１や出力モジュール２に接続する入出力インタフェース等（何れも不図示）である。
【００２７】
上記不図示のメモリには、予め所定のアプリケーションプログラムが記憶されている。上記演算プロセッサが、このアプリケーションプログラムを実行することにより、例えば図１に示す各種機能部の処理が実現される。尚、上記アプリケーションプログラムは、制御プログラム等である新アプリケーション２１等とは異なるものである。
【００２８】
稼動系のコントローラ１０の機能・動作は、上記従来の稼動系コントローラ１００と同様であってよい。
すなわち、各コントローラ１０Ａ，１０Ｂは、入力機能部１１、演算機能部１２、出力機能部１３、等値化機能部１４の各種機能部を有しており、これら各種機能部は、上記入力機能部１０１、演算機能部１０２、出力機能部１０３、等値化機能部１０４と基本的には同様であってよい。但し、後述するように一部異なる点もある。例えば、入力機能部１１は、待機系において動作する場合には、入力モジュール１からデータ取得するのではなく、等値化データからデータを取得する。詳しくは後述する。
【００２９】
ここで、稼動系コントローラ１０Ａは、入力モジュール１や出力モジュール２を介して、不図示の制御対象機器を制御する。勿論、その為に、入力機能部１１、演算機能部１２、出力機能部１３を動作させる。
【００３０】
一方、待機系コントローラ１０Ｂは、基本的には、等値化機能部１４のみを動作させて、入力機能部１１、演算機能部１２、出力機能部１３は、動作させない。但し、後述するデバッグモードのときには、入力機能部１１と演算機能部１２も動作させる。但し、その場合でも、制御対象機器の制御は行わない。詳しくは後述する。
【００３１】
また、図示の状態では、稼動系コントローラ１０Ａは、そのプログラムメモリ１５に上記旧バージョンである図示のＰＬＣプログラム１５ａを保持している。これより、演算機能部１２は、この旧ＰＬＣプログラム１５ａを実行することになる。演算機能部１２は、入力機能部１１によって各種入力モジュール１から取得した入力データ１６を用いて、上記旧ＰＬＣプログラム１５ａを実行することで、処理結果として出力データ１７を得る。
【００３２】
そして、等値化機能部１４が、これら入力データ１６及び出力データ１７を、待機系コントローラ１０Ｂへ転送する。また、出力機能部１３が、この出力データ１７を各出力モジュール２へ出力することで、出力モジュール２を介して不図示の各種制御対象機器を制御する。
【００３３】
上記のような稼動系コントローラ１０Ａの動作を図２に示すが、図示の通り、これは上記従来の動作と同じである。また、図２には、後述するデバッグモード時の待機系コントローラ１０Ｂの動作も示す。尚、デバッグモード時以外のときには、待機系コントローラ１０Ｂの動作は、上記従来の待機系コントローラ１００Ｂの動作と同様、等値化処理のみを実行する。
【００３４】
デバッグモード時の待機系コントローラ１０Ｂの動作は、図示のように、上記従来の待機系コントローラ１００Ｂの動作とは異なる。
すなわち、従来では待機系コントローラ１００Ｂは、各サイクル毎に等値化処理のみを実行したが、図２に示すように待機系コントローラ１０Ｂは、デバッグモード時には、各サイクル毎に、“等値化入力データ展開”→演算→出力データチェック→データ保存の各処理を順次実行する。これについて、以下、図１も参照して説明する。
【００３５】
まず、待機系コントローラ１０Ｂは、通常は従来と同様に等値化機能部１４のみが動作している。但し、支援ローダ２０からの指示に応じてデバッグモードに切り替わっている間は、図１、図２に示すように、出力機能部１３以外は動作する。尚、本例の待機系コントローラ１０Ｂには、従来の構成に加えて更に図示の出力チェック機能部１９が設けられている。尚、出力チェック機能部１９は、稼動系コントローラ１０Ａにも設けられているが、これは稼動系のときには動作しない機能部であるので、図には示していない。
【００３６】
また、支援ローダ２０は、例えば新プログラムを待機系コントローラ１０Ｂにダウンロードする際に、上記デバッグモードへの切替えを指示するが、この例に限らない。
待機系コントローラ１０Ｂの等値化機能部１４は、上記稼動系コントローラ１０Ａから転送された等値化データ（入力データ１６と出力データ１７）を受信すると、これを例えばメモリ上に展開する。待機系コントローラ１０Ｂの入力機能部１１は、この入力データ１６を入力して演算機能部１２に渡す。
【００３７】
ここで、待機系コントローラ１０Ｂのプログラムメモリ１５には、上記更新版のＰＬＣプログラムであるＰＬＣプログラム（更新プログラム）１５ｂが、格納されている。尚、以下、ＰＬＣプログラム（更新プログラム）１５ｂを、新プログラム１５ｂ等と記す場合もあるものとする。同様に、ＰＬＣプログラム（更新プログラム）２２も新プログラム２２等と記す場合もあるものとする。また、ＰＬＣプログラム１５ａを、旧プログラム１５ａと記す場合があるものとする。
【００３８】
演算機能部１２は、上記入力データ１６を用いてこの新ＰＬＣプログラム１５ｂを実行して、演算結果としての出力データ１８を生成する。但し、出力機能１３は動作していないので、この出力データ１８が出力モジュール２に出力されることはない。つまり、この出力データ１８が不図示の制御対象機器の動作に影響を与えることはない。
【００３９】
尚、区別し易くする為に、上記出力データ１８を待機側出力データ１８と記し、等値化データの出力データ１７を稼動側出力データ１７と記す場合もあるものとする。
出力チェック機能部１９は、上記待機側出力データ１８を、上記稼動側出力データ１７と比較チェックして、一致箇所／不一致箇所を検出する。すなわち、同一の入力データ１６を用いて旧プログラム１５ａと新プログラム１５ｂとでそれぞれ演算した結果同士を、比較して、一致する部分、不一致となる部分を検出する。通常、新プログラム１５ｂは、旧プログラム１５ａの一部を修正／削除したり、追加したプログラム部分が含まれるものである。
【００４０】
上記出力チェック機能部１９は、上記チェック結果を、不図示のメモリやメモリカード等に保存する。これは、例えば図３に示すように、各データ名（あるいは出力アドレス）毎に対応する、稼働系側の出力データ値、待機系側の出力データ値、これらの一致／不一致情報を、一覧で表示できるように、ＣＳＶ形式で保存する。そして、このチェック結果は、例えば支援ローダ２０に転送されて、支援ローダ２０のディスプレイ上に表示される。
【００４１】
この表示を上記新アプリケーション２１を作成したプログラマが参照すれば、新プログラム１５ｂの動作に問題があるか否かを判断できる。すなわち、この様なプログラマであれば、新プログラム１５ｂと旧プログラム１５ａとの違いを把握できているはずであり、出力データが一致すべき箇所と不一致となるべき箇所を、判断できるはずである。あるいは、出力データ値を予測できる場合もあり得る。これより、例えば修正した部分がきちんと変更になったかを、チェックできる場合もあり得る。
【００４２】
そして、新プログラム１５ｂの動作に異常はないと判断した場合には、例えば、プログラマからの指定操作に応じて支援ローダ２０が、コントローラ１０に対して稼動／待機切替えを指示する。これより、コントローラ１０Ｂが稼動系として動作することになるが、勿論、新プログラム１５ｂを用いて動作することになる。更に、上記従来の図１０と同様に、支援ローダ２０が、新プログラム２２を、コントローラ１０Ａにダウンロードするようにしてもよい。待機系となったコントローラ１０Ａは、この新プログラム２２を自己のプログラムメモリ１５に格納し、これに伴って旧プログラム１５ａは消去される。
【００４３】
これより、後に稼動系コントローラ１０Ｂに何等かの異常が生じた為に、稼動／待機切替によってコントローラ１０Ａが稼動系となった場合、コントローラ１０Ａは新プログラムを用いて問題なく処理を引き継げることになる。
【００４４】
尚、図２に示したように、待機系コントローラ１０Ｂは、稼働系コントローラ１０Ａより１サイクル遅れで、新しいユーザアプリケーションの演算をすることで、出力データの不一致/一致の判定を可能としている。
【００４５】
以上説明したように、本手法では、運用中に、稼動系コントローラはそのまま旧プログラムで動作続行させた状態で、待機系コントローラに新プログラムをダウンロードして模擬動作を実行させる。模擬動作は、入力データを稼動系コントローラから取得する点と演算結果（出力データ）を出力モジュール２に出力しない点以外は、通常の動作と略同様であってよい。そして、この演算結果（出力データ）を、同じ入力データを用いて実行されていた稼動系コントローラの演算結果（出力データ）と比較チェックすることで、新プログラムの問題の有無を判断可能としている。
【００４６】
この様に、本手法では、実機上で実際の入力データを用いて新プログラムのデバッグを行うことができ、且つ、演算結果を出力モジュール２に出力しないので、新プログラムに何等かの問題があっても、制御対象機器の動作に悪影響を与えることはない。
【００４７】
本手法では、待機系コントローラにおいて、特定のモード時（デバッグモード時）に、等値化データ（その入力データ）を利用して新プログラムの演算機能を動作させるが、演算結果は制御対象機器に出力することなく、チェックに利用する。すなわち、演算結果を、等値化データの出力データ（稼動側での旧プログラムによる演算結果）と比較チェックし、一致箇所、不一致箇所を判別して、この判別結果を記憶する。
【００４８】
当該記憶された一致／不一致判別結果を、例えば支援装置に転送して表示させる等して、プログラマに新プログラムの異常の有無を判断させる（新プログラムが正しく動作しているか否かを確認させる）。演算結果を制御対象機器に出力しないので、新プログラムに何等かの問題があっても、制御対象機器の動作に悪影響を与えることはない。
【００４９】
通常はアプリケーションを実行しない待機系コントローラが、更新版アプリケーションを取得後のデバッグモード時には、実際の入力データを元に更新版アプリケーションを模擬的に動作させる。模擬的とは、このアプリケーション実行に伴って実際に制御対象機器を制御するようなことは無いという意味である。更に、この更新版アプリケーション実行結果（出力データ）と、稼動系コントローラによる旧アプリケーションの実行結果（出力データ）とを比較チェックする。尚、入力データは同じものとする。このようにして、冗長化コントローラシステムにおける更新版アプリケーションプログラムの動作確認を、安全に行うことができる。
【００５０】
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態が考えられる。例えば上記実施形態における冗長化コントローラシステムでは、プログラムを実行することにより機器を制御する制御装置として、ＰＬＣを用いたが、ＤＣＳ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍ：分散型制御システム或いは分散型制御装置）を制御装置として用いてもよい。このＤＣＳは、ＰＬＣに比べて高い信頼性を有している。ＰＬＣが一般的にＦＡなどに適用されるのに対し、ＤＣＳは高信頼が要求されるプラント設備などに適用される。このＤＣＳを制御装置として使用する制御システムに本発明を適用してもよい。
【符号の説明】
【００５１】
１  入力モジュール
２  出力モジュール
１０（１０Ａ，１０Ｂ）  コントローラ
１１  入力機能部
１２  演算機能部
１３  出力機能部
１４  等値化機能部
１５  プログラムメモリ
１５ａ  旧ＰＬＣプログラム
１５ｂ  新ＰＬＣプログラム
１６  入力データ
１７  出力データ
１８  出力データ
１９  出力チェック機能部
２０  支援ローダ
２１  新アプリケーション
２２  ＰＬＣプログラム（更新プログラム）
【図２】
2016024798.tif 000003
【図３】
2016024798.tif 000004
【図５】
2016024798.tif 000005
【図１】
2016024798.tif 000006
【図４】
2016024798.tif 000007
【図６】
2016024798.tif 000008
【図７】
2016024798.tif 000009
【図８】
2016024798.tif 000010
【図９】
2016024798.tif 000011
【図１０】
2016024798.tif 000012