(57)【特許請求の範囲】
【請求項１】
プロセス制御のための制御演算を行うコントローラと、ネットワークを介して上位装置から受信したリクエストを前記コントローラへ通知するとともに、当該リクエストに対する前記コントローラからの応答を前記上位装置へ送信するネットワークインタフェースと、前記コントローラでの制御演算に基づいてＩＯバスに接続されているプロセス機器へ制御データを送信するとともに、前記プロセス機器から計測データを受信するプロセス機器インタフェースとを有し、前記ネットワークインタフェースを介して受信された前記リクエストに基づき前記コントローラで制御演算を行い、得られた制御データを前記プロセス機器インタフェースを介して前記プロセス制御機器へ送信することにより前記プロセス機器を制御し、前記プロセス制御機器から得られた計測データを前記コントローラから応答として前記ネットワークインタフェースへ出力し、前記ネットワークインタフェースから前記上位装置へ応答として送信するプロセス制御装置であって、
前記コントローラとして、前記ネットワークインタフェースと前記プロセス機器インタフェースとの間に並列的に設けられ、前記ネットワークインターフェースからのリクエストに付加されている処理タイミング情報で指示された処理タイミングで当該リクエストに対応する処理を実行するＮ個（Ｎは３以上の自然数）のコントローラを備え、
前記ネットワークインタフェースは、前記ネットワークを介して前記上位装置から受信したリクエストに、当該リクエストに対応する処理を前記コントローラが実行すべきタイミングを指示する処理タイミング情報を付加して前記各コントローラへ通知するリクエスト配信部と、当該リクエストに対する前記各コントローラからの応答を多数決判定して前記上位装置へ送信する１つの応答を決定する応答比較部とを有することを特徴とするプロセス制御装置。
【請求項２】
請求項１記載のプロセス制御装置において、
前記リクエスト配信部は、前記各コントローラへ送信したリクエストの処理状況に基づいて、新たに受信したリクエストを処理する処理タイミングを選択し、その処理タイミングを示す処理タイミング情報を当該リクエストに付加することを特徴とするプロセス制御装置。
【請求項３】
請求項１または２のいずれかに記載のプロセス制御装置において、
前記ネットワークインタフェースは、前記各コントローラへ送信したリクエストの処理状況に基づいて、新たに受信したリクエストの受け入れ可否を判断し、受け入れ可の場合にのみ当該リクエストを前記リクエスト配信部へ渡す負荷チェック部を有することを特徴とするプロセス制御装置。
【請求項４】
請求項３記載のプロセス制御装置において、
前記負荷チェック部は、前記リクエストが受け入れ不可と判断された場合は、前記上位装置に対してリクエスト実行不可を通知することを特徴とするプロセス制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プロセス制御装置に関し、特に冗長構成を有するプロセス制御装置に関する。
【０００２】
【従来の技術】
従来、プラントなどのプロセス制御に用いるプロセス制御装置において、高信頼性を要求される場合には制御演算を行うコントローラを複数設えた冗長構造をもつものが用いられている。
このような冗長構造をもつ従来のプロセス制御装置は、主系と従系の２つのコントローラを備え、主系コントローラに異常が発生すると待機中の従系コントローラに切り替わる二重化待機冗長方式が一般的である。
【０００３】
しかしながら、このような二重化待機冗長方式のプロセス制御装置は、コントローラが主系から従系に切り替わる際、主系の停止を検出後、待機していた従系が処理を開始するため、制御空白時間が生じ、プロセスの制御周期が短いプロセス制御には使用できないという問題があった。
このため、稼働中のコントローラに異常が生じた場合でも制御空白時間の生じないプロセス制御装置が求められていた。
【０００４】
これに対して、同一構成の３つ以上のコントローラを並列動作させ、これらコントローラの制御出力について多数決判定を行い、その判定結果を用いてプロセス制御を行う方式が考えられる。
通常、プロセス制御装置では、上位の監視装置からの処理要求や下位のプロセス機器のための制御をタイムシェアリングで処理しているため、異なる制御演算処理をわずかな時間で行っている。したがって、上記方式で所望の制御演算結果を得るためには、各コントローラから同一の制御演算処理に対する制御演算結果を得る必要がある。
【０００５】
【発明が解決しようとする課題】
しかしながら、このようなＣＰＵなどのマイクロプロセッサでプログラムを実行することにより各種の制御演算処理を行っているコントローラにおいては、各コントローラが特定の制御演算処理を実行している際に、上位の監視装置や下位のプロセス機器から特定のタイミングで入力があった場合、演算エラーなどの不具合を発生する可能性がある。
【０００６】
このような不具合を解消するために、外部から動作クロックを入力して各コントローラの動作を完全に同期させる構成も考えられるが、この構成によれば、別途専用のハードウェアが必要となり高価なシステムとなってしまうという問題点があった。また、このように同一構成の各コントローラを共通の動作クロックに基づき完全に同期して動作させたとしても、前述のような不具合は特定の動作タイミングに起因して発生するため、３つ以上のコントローラを並列動作させてもすべての演算結果が異なる結果となり、その不具合を回避できない。
【０００７】
また、各コントローラへのリクエストが過負荷になってしまった場合には、いずれかのコントローラにのみ応答の遅れが生じ、処理の同一性を保証することができない。
さらに、このようなタイミングのズレを異常だと判断してしまうと、不必要にシステムを停止させてしまい、機器にも余計な負荷をかけ、プラント全体としても大きな損害となってしまう。
本発明は、このような課題を解決するためのものであり、並列動作する３つ以上のコントローラの制御演算結果を多数決判定してプロセス制御する際、各コントローラから制御演算結果を同時に安定して得ることができるプロセス制御装置を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上述した課題を解決するために、本発明にかかるプロセス制御装置は、プロセス制御のための制御演算を行うコントローラと、ネットワークを介して上位装置から受信したリクエストをコントローラへ通知するとともに、当該リクエストに対するコントローラからの応答を上位装置へ送信するネットワークインタフェースと、コントローラでの制御演算に基づいてＩＯバスに接続されているプロセス機器へ制御データを送信するとともに、プロセス機器から計測データを受信するプロセス機器インタフェースとを有し、ネットワークインタフェースを介して受信されたリクエストに基づきコントローラで制御演算を行い、得られた制御データをプロセス機器インタフェースを介してプロセス制御機器へ送信することによりプロセス機器を制御し、プロセス制御機器から得られた計測データをコントローラから応答としてネットワークインタフェースへ出力し、ネットワークインタフェースから上位装置へ応答として送信するプロセス制御装置であって、コントローラとして、ネットワークインタフェースとプロセス機器インタフェースとの間に並列的に設けられ、ネットワークインターフェースからのリクエストに付加されている処理タイミング情報で指示された処理タイミングで当該リクエストに対応する処理を実行するＮ個（Ｎは３以上の自然数）のコントローラを備え、ネットワークインタフェースのリクエスト配信部で、ネットワークを介して上位装置から受信したリクエストに、当該リクエストに対応する処理をコントローラが実行すべきタイミングを指示する処理タイミング情報を付加して各コントローラへ通知し、応答比較部で、当該リクエストに対する各コントローラからの応答を多数決判定して上位装置へ送信する１つの応答を決定するようにしたものである。
【０００９】
処理タイミングについては、リクエスト配信部で、各コントローラへ送信したリクエストの処理状況に基づいて、新たに受信したリクエストを処理する処理タイミングを選択し、その処理タイミングを示す処理タイミング情報を当該リクエストに付加するようにしてもよい。
【００１０】
ネットワークインタフェースの負荷チェック部で、各コントローラへ送信したリクエストの処理状況に基づいて、新たに受信したリクエストの受け入れ可否を判断し、受け入れ可の場合にのみ当該リクエストをリクエスト配信部へ渡すようにしてもよい。
このとき、負荷チェック部で、リクエストが受け入れ不可と判断された場合は、上位装置に対してリクエスト実行不可を通知するようにしてもよい。
【００１１】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
図１は、本発明の第１の実施の形態にかかるプロセス制御装置の構成を示すブロック図である。同図において、プロセス制御装置１は、１つのネットワークインタフェース１０と、３つの同一構成のコントローラ２０（コントローラＡ，コントローラＢ，コントローラＣ）と、１つのプロセス機器インタフェース３０を備えている。
【００１２】
ネットワークインタフェース１０と３つのコントローラ２０は、内部ＬＡＮ（Local Area Network）４０に接続されており、相互通信可能に構成されている。プロセス機器インタフェース３０は、３つのコントローラ２０と個別にＵＳＢ（Universal Serial Bus）などのデータ通信路５０で接続されており、これらとの間で１対１の通信が可能に構成されている。また、ネットワークインタフェース１０と３つのコントローラ２０とプロセス機器インタフェース３０は、図示しないバスに接続されている。さらに、ネットワークインタフェース１０は、監視装置２が接続された外部の制御ＬＡＮ３（ネットワーク）に接続されており、プロセス機器インタフェース３０は、プロセス機器４が接続された外部のＩＯバス５に接続されている。
【００１３】
このような構成において、プロセス制御装置１のネットワークインタフェース１０では、制御ＬＡＮ３を介して受信した監視装置２からのリクエストを３つのコントローラ２０の各々に与えるとともに、このリクエストに対する３つのコントローラ２０の各々からの応答の中から多数決によって定まる１つの応答を制御ＬＡＮ３に出力して監視装置２へ回答する。
３つのコントローラ２０の各々では、ネットワークインタフェース１０から与えられたリクエストの処理を行い、リクエストに対する応答をネットワークインタフェース１０に出力するとともに、プロセス制御の演算を行い、演算結果を制御データとしてプロセス機器インタフェース３０に出力する。
【００１４】
プロセス機器インタフェース３０では、３つのコントローラ２０の各々から出力される制御データの中から多数決によって定まる１つの制御データをＩＯバス５に出力してプロセス機器４を制御する。
このため、コントローラ２０の１つに異常が生じ、他の２つと異なる応答や制御データを出力した場合であっても、監視装置２やプロセス機器４へ正常な応答や制御データを途切れることなく出力することができる。
【００１５】
次に、ネットワークインタフェース１０について図２を参照して詳細に説明する。図２は、ネットワークインタフェース１０の機能ブロック図である。
図２に示すように、ネットワークインタフェース１０は、応答／リクエスト送受信部１１、負荷チェック部１２、リクエスト配信部１３、応答受信部１４、応答比較部１５および異常通知部１６を備えている。
【００１６】
監視装置２が制御ＬＡＮ３に出力したリクエストは、応答／リクエスト送受信部１１で受信され、負荷チェック部１２に送られる。負荷チェック部１２は、コントローラ２０ごとのリクエストの処理状況（処理負荷）をチェックし、稼働中の全てのコントローラ２０が送られたリクエストを受け入れ可能な状態のときは、応答／リクエスト送受信部１１から送られたリクエストをリクエスト配信部１３へ転送し、稼働中で受け入れ不可能な状態のコントローラがあるときは応答／リクエスト送受信部１１へ当該リクエストの受け入れ不可を通知するとともに、このリクエストを消去する。
【００１７】
この場合、負荷チェック部１２は、コントローラ２０で実行中のリクエストの数が所定数以下のとき、次のリクエストを受け入れ可能と判定する。実行中のリクエストの数は、例えば転送したリクエスト数から応答数を差し引いて求める。応答数は、後述する応答受信部１４から入力される。応答／リクエスト送受信部１１は、リクエストの受け入れ不可が通知されると、リクエスト元へリクエスト実行不可を通知する。
【００１８】
リクエスト配信部１３は、負荷チェック部１２から転送されたリクエストに処理すべきタイミングを示す処理タイミング情報を付加した後、内部ＬＡＮ４０を介して３つのコントローラ２０に同報配信する。この場合、処理タイミング情報は、１制御周期中における処理タイミングを示す３ｂｉｔコードであり、リクエスト配信部１３は後述するプロセス機器インタフェース３０が図示しないバス上にパラレル出力する３ｂｉｔの処理タイミング信号１０３の現在値を参照し、リクエストを実行するタイミングとして将来生成される処理タイミング信号の値を設定する。この際、各コントローラへ送信したリクエストの処理状況に基づいて、新たに受信したリクエストを実行するタイミングやリクエストの応答を送信するタイミングが選択される。リクエストの処理状況については、負荷チェック部１２で管理されているものを用いればよい。
【００１９】
一方、３つのコントローラ２０の各々からリクエストの応答が送信されると、応答受信部１４が受信し、応答比較部１５に送るとともに、応答を返したコントローラを負荷チェック部１２に通知する。この場合、応答受信部１４は、受信した応答を一時的に保持し、３つのコントローラ２０からの応答が揃った後、応答比較部１５に送る。所定時間内に３つのコントローラ２０の内の１つから応答がなかったときは、当該コントローラ２０を負荷チェック部１２に通知するとともに、例えばヌルデータのような予め定めた特定のデータを当該コントローラ２０の応答として、他の２つの応答とともに応答比較部１５に送る。
【００２０】
ここで、所定時間内に応答がなかったときに応答のないコントローラ２０を負荷チェック部１２に通知するのは、負荷チェック部１２で応答のないコントローラ２０の未処理リクエストが処理されないまま残ることにより実行中のリクエストの数が所定数を超えて、動作中の２つのコントローラがリクエストを実行できなくなることを防ぐためである。
【００２１】
応答比較部１５は、応答受信部１４から送られた３つのコントローラ２０からの応答を比較し、内容の一致する応答が２つ以上ある場合のみ応答／リクエスト送受信部１１へこの内容の応答を１つ送る。ただし、一致した内容がヌルデータのような予め定めた特定のデータであった場合は、その応答を送信しない。応答／リクエスト送受信部１１へ送られた応答は、制御ＬＡＮ３へ出力され、リクエスト元の監視装置２へ送信される。また、応答比較部１５は、他と異なる内容の応答を返したコントローラを異常通知部１６へ通知する。異常通知部１６は、応答比較部１５から通知されたコントローラに内部ＬＡＮ４０を介して異常通知を送信する。
【００２２】
このネットワークインタフェース１０は、制御ＬＡＮ３用のＬＡＮインタフェースと、内部ＬＡＮ４０用のＬＡＮインタフェースと、処理タイミング信号１０３入力用のディジタル入力インタフェースと、ネットワークインタフェース１０の機能を実現するプログラムを格納した不揮発性半導体メモリと、この不揮発性半導体メモリに格納されたプログラムを実行する演算処理装置（ＣＰＵ）と、プログラム実行時の一時記憶に用いられるＲＡＭと、これらを接続するバスとから構成されている。
【００２３】
次に、コントローラ２０について図３を参照して詳細に説明する。図３は、コントローラ２０の機能ブロック図である。図３に示すように、コントローラ２０は、リクエスト処理部２１、データベース２２、演算処理部２３、入出力処理部２４および異常処理部２５を備えており、データベース２２にはプロセス制御条件の設定値、計測データの現在値およびプロセス機器を制御する制御データが格納されている。この場合、内部ＬＡＮ４０に出力されたリクエストは、リクエスト処理部２１で受信されてリクエスト内容が解析され、リクエストに応じた処理がリクエストに付加された処理タイミング情報に基づいて実行される。
【００２４】
例えば、リクエストがプロセス制御条件の変更であれば、データベース２２の指定された制御条件の設定値をリクエストで指示された設定値に書き換え、書き換えた設定値をデータベース２２から読み出して応答内容とする。また、リクエストがプロセス条件の現在値の要求であれば、データベース２２から指定されたプロセス条件の現在値を読み出して応答内容とする。このような応答は、リクエスト処理部２１により内部ＬＡＮ４０に出力され、ネットワークインタフェース１０へ送信される。この場合、リクエスト処理は、プロセス機器インタフェース３０が出力する処理タイミング信号１０３を参照し、この信号の示す情報がリクエストに付加された処理タイミング情報と一致したときに実行する。
【００２５】
演算処理部２３は、所定のタイミングでデータベース２２からプロセス制御条件の設定値とプロセス条件の現在値を読み出し、現在値を設定値に合わせるために必要な制御量を算出する制御演算を行い、演算結果を制御データとしてデータベース２２に書き込む。入出力処理部２４は、所定のタイミングでデータベース２２から制御データを読み出してプロセス機器インタフェース３０へ送信する。また、プロセス機器が計測したプロセスデータの送信を要求するコマンドをプロセス機器インタフェース３０へ送信するとともに、プロセス機器インタフェース３０から送信されるプロセス機器が計測したプロセスデータを受信し、現在値としてデータベース２２に書き込む。
【００２６】
また、リクエスト処理部２１は、リクエストと同様にしてネットワークインタフェース１０の異常通知部１６が送信する異常通知を受信し、異常処理部２５に通知する。入出力処理部２４は、プロセス機器インタフェース３０から送信される情報に異常通知が含まれているか否か確認し、異常通知が含まれているときは、異常処理部２５に通知する。異常処理部２５は、異常通知を受けるとコントローラ２０の処理を停止させる。
【００２７】
このコントローラ２０は、内部ＬＡＮ４０用のＬＡＮインタフェースと、データ通信路５０用の通信インタフェースと、処理タイミング信号１０３入力用のディジタル入力インタフェースと、コントローラ２０の機能を実現するプログラムを格納した不揮発性半導体メモリと、この不揮発性半導体メモリに格納されたプログラムを実行する演算処理装置（ＣＰＵ）と、データベース２２の格納領域やプログラム実行時の一時記憶領域として用いられるＲＡＭと、これらを接続するバスとから構成されている。また、このコントローラ２０は、活線挿抜可能にして、３つのコントローラ２０のうちの１つが故障した時はプロセス制御を継続したまま交換可能に構成されている。
【００２８】
次に、プロセス機器インタフェース３０について図４を参照して詳細に説明する。図４は、プロセス機器インタフェース３０の機能ブロック図である。図４に示すように、プロセス機器インタフェース３０は、コントローラ通信処理部３１、データ比較部３２、ＩＯバス入出力処理部３３、異常通知部３４および処理タイミング信号生成部３５を備えている。
【００２９】
各コントローラ２０がそれぞれのデータ通信路５０を介して送信したコマンドや制御データは、コントローラ通信処理部３１で受信され、データ比較部３２に送られる。この場合、コントローラ通信処理部３１は、受信データを一時的に保持し、３つのコントローラ２０からの受信データが揃った後、データ比較部３２に送る。所定時間内に３つのコントローラ２０からの受信データが揃わなかったときは、例えばヌルデータのような予め定めた特定のデータを未受信コントローラ２０の受信データとし、他の受信データとともにデータ比較部３２に送る。
【００３０】
データ比較部３２は、コントローラ通信処理部３１から送られた３つの受信データを比較し、内容の一致する受信データが２つ以上ある場合のみ、ＩＯバス入出力処理部３３へ内容の一致した受信データを１つ入力する。ただし、一致した内容がヌルデータのような予め定めた特定のデータであった場合は、送信しない。ＩＯバス入出力処理部３３へ送られたデータは、ＩＯバス５へ出力され、プロセス機器４へ送信される。また、データ比較部３２は、他と異なるデータを送信したコントローラを異常通知部３４へ通知する。異常通知部３４は、コントローラ通信処理部３１を介してデータ比較部３２から通知されたコントローラ２０に異常通知を送信する。
【００３１】
一方、プロセス機器４がＩＯバス５へ出力したデータは、ＩＯバス入出力処理部３３が受信し、コントローラ通信処理部３１へ送られる。コントローラ通信処理部３１は、送られたデータを３つのデータ通信路５０にそれぞれ出力し、各コントローラ２０に送信する。処理タイミング信号生成部３５は、処理タイミング信号１０３を生成し、ネットワークインタフェース１０と３つのコントローラ２０とプロセス機器インタフェース３０とに接続されているバスに出力する。
【００３２】
ここで、処理タイミング信号１０３は、例えば３ｂｉｔのパラレル信号であり、プロセス制御装置の１制御周期中に順次３ｂｉｔの組み合わせから得られる８つの状態をとることにより、８個の処理タイミングを設けるものである。なお、処理タイミング信号１０３は３ｂｉｔに限られるものではなく、１制御周期中に実行する処理の種類やコントローラ２０の処理速度に応じて他のｂｉｔ数に変更してもよい。
【００３３】
このプロセス機器インタフェース３０は、３つのデータ通信路５０用の通信インタフェースと、ＩＯバス５用インタフェースと、処理タイミング信号１０３出力用のディジタル出力インタフェースと、プロセス機器インタフェース３０の機能を実現するプログラムを格納した不揮発性半導体メモリと、この不揮発性半導体メモリに格納されたプログラムを実行する演算処理装置（ＣＰＵ）と、プログラム実行時の一時記憶に用いられるＲＡＭと、これらを接続するバスとから構成されている。
【００３４】
次に、このプロセス制御装置の動作について説明する。最初に、監視装置からのリクエストがないときの動作を説明する。図５は、第１の実施の形態のプロセス制御装置の動作を説明するシーケンス図であり、監視装置からのリクエストがないときの動作を示す。図５に示すように、このプロセス制御装置は、３つのコントローラ（コントローラＡ，コントローラＢ，コントローラＣ）が並列して同じ処理を実行している。
【００３５】
ここで、周期ｎ（ｎは自然数）の制御周期が開始されると、各々のコントローラは、処理タイミング信号が所定のタイミングとなったときにプロセス機器インタフェースに計測データ要求のコマンドを送信する。プロセス機器インタフェースは、各々のコントローラから送信されたコマンドの多数決を採って多数側のコマンドをプロセス機器に送信するとともに、このコマンドを受信したプロセス機器から送信される計測データを受信し、各々のコントローラに送信する。この場合、多数決の判定は、各々のコントローラから送信されたコマンドを比較し、２つ以上のコントローラからのコマンドが一致した場合に一致したコマンドを多数のコマンドと決することにより行う。
【００３６】
各々のコントローラは、計測データを受信するとデータベースの現在値を更新し、所定の処理タイミングとなったらデータベースの設定値と現在値を入力とする制御演算を行い、データベースの制御データを演算結果で更新し、所定の処理タイミングとなったときにこの制御データをプロセス機器インタフェースに送信する。プロセス機器インタフェースは、各々のコントローラから送信された制御データの多数決を採って多数側の制御データをプロセス機器に送信し、プロセス機器を制御する。この場合も多数決の判定は、各々のコントローラから送信された制御データを比較し、２つ以上のコントローラからの制御データが一致した場合に一致した制御データを多数の制御データと決することにより行う。
【００３７】
次に、監視装置からリクエストがなされたときの動作を説明する。図６は、第１の実施の形態のプロセス制御装置の動作を説明するシーケンス図であり、監視装置から計測データの現在値を要求するリクエストがなされたときの動作を示す。図６に示すように、３つのコントローラ（コントローラＡ，コントローラＢ，コントローラＣ）が周期ｎ（ｎは自然数）の制御周期において同じ処理を並列に実行しているときに、ネットワークインタフェースがリクエストを受信すると、ネットワークインタフェースは、３つのコントローラの負荷チェックを行う。
【００３８】
負荷チェックの結果、３つのコントローラがともにリクエストを実行可能であれば、リクエストに処理タイミング情報を付加して３つのコントローラに送信する。この場合、ネットワークインタフェースは、リクエストを実行するタイミングを指定する情報を処理タイミング情報として付加するが、リクエストを実行するタイミングには、処理が割り当てられていない処理タイミングを割り当てる。３つのコントローラは、各々リクエストを受信すると、処理タイミング情報で指定された処理タイミングでリクエストを実行する。
【００３９】
この場合、３つのコントローラは、それぞれデータベースの現在値更新後の処理タイミングで各々のデータベースにアクセスし、現在値を読み出してネットワークインタフェースへリクエストに対する応答として送信する。ネットワークインタフェースは、各々のコントローラから送信された応答を受信し、これらの内容（現在値）を比較し、内容の一致する２つ以上の応答のうちのいずれか１つを制御ＬＡＮに出力し、監視装置に送信する。この場合、応答内容は３つとも一致しているので、３つのコントローラは、以後も図５で説明したものと同じ動作を行う。ここで、３つのコントローラのリクエスト処理以外の処理タイミングにおける処理動作と、プロセス機器インタフェースの動作は、図５で説明したものと同じであるので説明を省略する。
【００４０】
次に、ネットワークインタフェースが応答の不一致を検出したときの動作を説明する。図７は、第１の実施の形態のプロセス制御装置の動作を説明するシーケンス図であり、ネットワークインタフェースが３つのコントローラからの応答に不一致を検出したときの動作を示す。図７において、３つのコントローラがリクエストに付加された処理タイミング情報で指定された処理タイミングでリクエストを実行し、応答をネットワークインタフェースに送信するまでは、図６での説明と同じであるので、説明を省略する。
【００４１】
ネットワークインタフェースが各々のコントローラから送信された応答を受信した後、これらの内容（現在値）を比較し、コントローラＡの応答内容が他の２つのコントローラの応答内容と一致しないことを検出すると、ネットワークインタフェースは、内容が一致したコントローラＢとコントローラＣの応答をリクエストに対する応答として制御ＬＡＮに出力し、監視装置に送信するとともに、コントローラＡに異常通知を送信する。
【００４２】
コントローラＡは、異常通知を受信すると異常処理を実行し、制御演算処理からの切り離しを行う。一方、コントローラＢとコントローラＣは、以後も図５で説明したものと同じ動作を行う。ネットワークインタフェースとプロセス機器インタフェースは、コントローラＡが切り離された後も、コントローラＢとコントローラＣの応答や制御データが一致している限り以前と同じ動作を行い、プロセス制御装置全体として無瞬断のプロセス制御を続行する。
【００４３】
次に、プロセス機器インタフェースが３つのコントローラ間でコマンドや制御データに不一致を検出したときの動作を説明する。図８は、第１の実施の形態のプロセス制御装置の動作を説明するシーケンス図であり、プロセス機器インタフェースが３つのコントローラ間でコマンドや制御データに不一致を検出したときの動作を示す。図８において、３つのコントローラが所定の処理タイミングで指定された制御演算を実行し、演算結果の制御データをプロセス機器インタフェースに送信するまでは、図５での説明と同じであるので、説明を省略する。
【００４４】
プロセス機器インタフェースが各々のコントローラから送信されたコマンドや制御データを受信した後、これらの内容を比較し、コントローラＣの内容が他の２つのコントローラの内容と一致しないことを検出すると、プロセス機器インタフェースは、内容が一致したコントローラＡとコントローラＢのコマンドや制御データをＩＯバスに出力し、プロセス機器に送信するとともに、コントローラＣに異常通知を送信する。
【００４５】
コントローラＣは、異常通知を受信すると異常処理を実行し、制御演算処理からの切り離しを行う。一方、コントローラＡとコントローラＢは、以後も図５で説明したものと同じ動作を行う。ネットワークインタフェースとプロセス機器インタフェースは、コントローラＣが切り離された後も、コントローラＡとコントローラＢの応答や制御データが一致している限り以前と同じ動作を行い、プロセス制御装置全体として無瞬断のプロセス制御を続行する。
【００４６】
以上説明したように、この実施の形態のプロセス制御装置は、制御演算処理を行うコントローラを３つ並列動作させるとともに、これらの出力するデータを比較し、２つ以上が一致している間、動作を続けるようにしたので、コントローラの１つに異常が生じて制御演算処理から切り離されても、無瞬断でプロセス制御を続行可能である。なお、この実施の形態では、コントローラを３つ並列動作させるものとして説明したが、この数は３つに限られるものではなく、３以上であればよい。並列動作させるコントローラの数を３より増やすにしたがい、無瞬断のプロセス制御を続行するのに許容されるコントローラの異常発生数を増やすことができる。よって、プロセス制御装置に求められる信頼性とコントローラの信頼性とに基づいて、最適な個数を選択すればよい。
【００４７】
また、制御演算処理を行うコントローラを並列実行による冗長構成としたので、ネットワークインタフェースとプロセス機器インタフェースの信頼性を確保することで、コントローラに高信頼性を求めなくともプロセス制御装置全体としての信頼性を確保することができる。このため、コントローラに低価格の市販製品を用いることができ、信頼性を確保したままコストを下げることができる。また、世代交代の早い市販製品の利用が可能となることで、半導体技術の向上による処理能力の向上がタイムリーにでき、製品開発期間の短縮も可能となる。
【００４８】
また、ネットワークインタフェースとプロセス機器インタフェースにより、コントローラの出力が正常であることを常時確認しているため、プロセス制御装置として十分な信頼性が確保できるので、コントローラの使用するメモリシステムにエラー訂正機能を設けなくてもよく、またエラー訂正機能では訂正不可能な宇宙線などに起因すると考えられるマルチビットエラーにも対処でき、より低コスト化を図ることができる。
【００４９】
次に、図９および図１０を参照して、並列動作する各コントローラ２０で処理タイミングを同期させるための構成について説明する。図９はコントローラへ供給される処理タイミング信号を示す説明図である。図１０は処理タイミング信号の構成例を示すタイミングチャートである。
図９に示すように、各コントローラ２０には、プロセス機器インタフェース３０の処理タイミング信号生成部３５（図４参照）からタイミング信号バス５１を介して処理タイミング信号１０３が並列的に供給されている。各コントローラ２０のリクエスト処理部２１、演算処理部２３および入出力処理部２４（図３参照）では、この処理タイミング信号１０３の内容に基づき処理内容を決定している。
【００５０】
処理タイミング信号１０３は、図１０に示すように、３ｂｉｔのパラレル信号すなわち処理タイミング信号１０３Ａ〜１０３Ｃからなり、１制御周期（例えば、１００ｍｓ）ごとに巡回するコードが出力される。ここでは、１制御周期ごとに、コードの値に対応して８つの処理タイミングｔ１〜ｔ８が設けられており、各コントローラ２０では、そのコードの値に基づき処理タイミングを識別子、各処理タイミングに対して予め設定されている処理、例えば、上位の監視装置からの処理要求や下位のプロセス機器のための制御を実行する。
【００５１】
このように、各コントローラ２０に対して処理タイミング信号１０３を並列的に供給し、各コントローラ２０では、その処理タイミング信号１０３に基づき処理する内容を決定するようにしたので、各コントローラ２０間でほぼ同期して同一内容の処理を実行することが可能となる。
これにより、従来のように、各コントローラ２０で共通の動作クロックを用いてそのマイクロプロセッサでの処理を完全に同期させる必要がなくなり、それぞれ個別の動作クロックを用いることが可能となる。
【００５２】
したがって、各コントローラが特定動作タイミングに起因して発生する不具合を内在している場合でも、複数のコントローラで同時に不具合が発生する確率が極めて低くなり、これらコントローラの出力／応答を多数決判定することにより、プロセス制御装置１全体に対する影響を回避でき、安定した制御動作を実現できる。
また、共通クロックを用いて各コントローラの動作を同期させるための高価な回路構成が不要となり、製品コストを大幅に削減できる。さらには、コントローラとして完全に同一構成の装置を用いる必要がなくなり、システム構成として柔軟性が得られる。
【００５３】
なお、処理タイミング信号１０３に用いるコードとしては、一般的な２進数を用いてもよい。このとき、複数ビットが同時に変化するため、コントローラ２０でのビット検出にばらつきが生じた場合は、瞬間的に異なるコードとして認識される場合も考えられる。
本実施の形態では、処理タイミング信号１０３として、図１０に示すようなグレイコードを用いている。このグレイコードとは、任意の値から次の値へ遷移する際、いずれか１ビットだけが変化するコードである。したがって、処理タイミングの変遷の際、ビット検出のばらつきによるコードの誤認を回避でき、各コントローラ２０において、安定した処理タイミングの同期を実現できる。
【００５４】
次に、図１１および図１２を参照して、ネットワークインタフェース１０によるコントローラ管理処理について説明する。図１１はネットワークインタフェース１０から各コントローラ２０へ送信されるリクエスト（メッセージ）の構成例である。図１２は各コントローラでの処理スケジュール例である。
前述したように、ネットワークインタフェース１０では、各コントローラ２０へ処理を指示する際、リクエスト配信部１３（図２参照）から内部ＬＡＮ４０を介してリクエストを送信する。
【００５５】
このリクエストは、図１１に示すように、イーサネット（登録商標）で用いるパケットの１つであり、パケットの送信先や送信元、パケット種別などパケットに関する情報を格納するヘッダ４１と、リクエストの内容を示す情報を格納するデータ部４２とから構成されている。
データ部４２には、そのリクエストを識別するためのリクエストＩＤ４３、リクエストの内容がコード化されたリクエスト内容４４、そのリクエストを実行するタイミングを示す処理タイミング情報４５が格納されている。例えば、各コントローラ２０に対して設定値の変更を指示するリクエストの場合は、リクエスト内容４４として、処理対象となるプロセス機器すなわち制御ポイントを示すポイントＩＤ４４Ａ、処理の種別を示す処理種別４４Ｂとその処理に用いる処理データ４４Ｃとがセットされている。また、処理タイミング情報４５には、処理タイミング信号１０３で規定されるグレイコードがセットされている。
【００５６】
各コントローラ２０では、このようなリクエストをリクエスト処理部２１で受信し、その内容を解析して実行する。このとき、処理の内容はリクエスト内容４４から決定し、処理タイミングは処理タイミング情報４５から決定する。
図１１のリクエスト４６の例では、処理種別４４Ｂが「設定値更新」を示すことから、リクエスト処理部２１は、処理データ４４Ｃの「ＤＢ設定値」を取り出して、ポイントＩＤ４４Ａに対応する新たな設定値としてデータベース２２へ書き込む。また、この処理は、プロセス機器インタフェース３０からの処理タイミング信号１０３のグレイコードが「０１１」すなわち処理タイミングｔ３を示す場合に実行される。これにより、各コントローラ２０において、次の処理タイミングｔ３に同期して一斉に新たな設定値が書き込まれることになる。
【００５７】
また、図１１のリクエスト４７の例では、処理種別４４Ａが「現在値読み出し」を示すことから、リクエスト処理部２１は、データベース２２に格納されているプロセス機器から得られた現在値を読み出して、ネットワークインタフェース１０へ通知する。また、この処理は、プロセス機器インタフェース３０からの処理タイミング信号１０３のグレイコードが「１０１」すなわち処理タイミングｔ５を示す場合に実行される。これにより、各コントローラ２０から、次の処理タイミングｔ５に同期して一斉に現在値が読み出されることになる。
なお、読み出された現在値は、応答によりコントローラ２０からネットワークインタフェース１０へ通知される。このとき、対応するリクエストのリクエストＩＤもその応答により通知することにより、各応答がどのリクエストに対応するものか識別するようにしてもよく、複数のリクエストが多重して発行される場合にも対応できる。
【００５８】
このように、各コントローラ２０に対して処理タイミング信号１０３を並列的に供給し、各コントローラ２０では、その処理タイミング信号１０３に基づき処理する内容を決定するものとし、ネットワークインタフェース１０から各コントローラ２０へのリクエストで、要求した処理を実行するタイミングを指定するようにしたので、各コントローラ２０間でほぼ同期して同一内容の処理を実行することが可能となり、コントローラの出力／応答を精度よく多数決判定することができる。
また、従来のように、各コントローラ２０で共通の動作クロックを用いてそのマイクロプロセッサでの処理を完全に同期させる必要がなくなり、それぞれ個別の動作クロックを用いることが可能となる。
【００５９】
したがって、各コントローラが特定動作タイミングに起因して発生する不具合を内在している場合でも、複数のコントローラで同時に不具合が発生する確率が極めて低くなり、安定した制御動作を実現できる。
また、共通クロックを用いて各コントローラの動作を同期させるための高価な回路構成が不要となり、製品コストを大幅に削減できる。さらには、コントローラとして完全に同一構成の装置を用いる必要がなくなり、システム構成として柔軟性が得られる。
【００６０】
各コントローラ２０では、このようにして、各処理タイミングごとに予め設定された処理が行われる。前述した図６のシーケンスでは、図１２に示すように、まず処理タイミングｔ１で、プロセス機器への「計測データ要求」処理が行われ、処理タイミングｔ２で「リクエスト受付」処理が行われる。また、処理タイミングｔ３でプロセス機器から得られた計測データをデータベース２２へ格納する「ＤＢ現在値更新」処理が行われ、処理タイミングｔ４でリクエストに基づく「ＤＢ現在値読み出し」処理が行われる。そして、処理が設定されていない処理タイミングｔ５の後、処理タイミングｔ６でプロセス機器への制御データを算出するための「制御演算」処理が行われ、処理タイミングｔ７でその演算結果をデータベース２２へ格納する「ＤＢ制御データ更新」処理が行われ、処理タイミングｔ８でプロセス機器への「制御データ送信」処理が行われる。
【００６１】
このような処理のスケジューリングは、ネットワークインタフェース１０の負荷チェック部１２で管理しており、新たな処理を要求する際には、処理が設定されていない処理タイミングを指定してリクエストを発行する。
このとき、監視装置２からの要求に基づきコントローラ２０に対して新たな処理を要求する際、負荷チェック部１２では、上記のようなスケジューリングに基づき受け入れ可否を判断する。過負荷であり受け入れできない場合あれば、監視装置２へ受け入れ不可を通知する。これにより、コントローラ２０への過負荷を未然に回避でき、安定したプロセス制御を実現できる。
【００６２】
なお、各処理タイミングでの処理は、すべてネットワークインタフェース１０側からコントローラ２０に対して指定してもよいが、各コントローラ２０で行われる定常的な処理、例えば「計測データ要求」、「ＤＢ現在値更新」、「制御演算」、「ＤＢ制御データ更新」、「制御データ送信」などプロセス機器の制御に関する処理については、予めその処理タイミングを固定的に割り当てておくようにしてもよく、ネットワークインタフェース１０でのリクエスト処理を省くことができる。
【００６３】
次に、本発明の第２の実施の形態について説明する。この実施の形態のプロセス制御装置が第１の実施の形態と異なる点は、３つのコントローラのデータベースがそれぞれ正しいか否かの確認を行う自己診断機能を有することである。この自己診断機能は、図２で示したネットワークインタフェース１０の応答／リクエスト送受信部１１に、図３で示したデータベース２２のデータを所定単位ごとに順次送信させるリクエストを所定間隔で発行するとともに、このリクエストに応じて応答／リクエスト送受信部１１へ送られたデータを破棄する機能を設けることにより実現することができる。すなわち、ネットワークインタフェース１０の機能を実現するプログラムを格納した不揮発性半導体メモリに、この自己診断機能を実現するプログラムを加えればよい。
【００６４】
この場合、応答／リクエスト送受信部１１が発行する自己診断機能のリクエストは、負荷チェック部１２の働きによりコントローラ２０の負荷が軽いときのみ３つのコントローラ２０へ送信される。コントローラ２０へ送信されたリクエストは、所定のタイミングでリクエスト処理部により実行され、データベース２２のデータが所定単位ごとに読み出されて順次ネットワークインタフェース１０へ送信させる。３つのコントローラ２０から送信されたデータベース２２のデータは、応答比較部１５で比較され、不一致の検出されたコントローラが異常通知部１６に通知される。これにより、異常通知部１６が当該コントローラに異常通知を送信し、異常通知を受信したコントローラは、異常処理を実行し制御演算処理からの切り離しを行う。
【００６５】
この実施の形態によれば、３つのコントローラ２０のデータベース２２のデータ比較をバックグランドで行うことで、データベース２２のデータを格納するＲＡＭのエラーなどを検出することができる。このため、頻繁に使用されない領域で発生したエラーを検出でき、異常の生じたコントローラ２０を除くことができる。
【００６６】
次に、図１３を参照して、本発明の第３の実施の形態について説明する。図１３は、本発明のプロセス制御装置にかかる第３の実施の形態を示すブロック図である。
この実施の形態のプロセス制御装置６が第１の実施の形態と異なる点は、ネットワークインタフェース１０、プロセス機器インタフェース３０、内部ＬＡＮ４０およびデータ通信路５０をそれぞれ冗長構成としたことである。図１３において、このプロセス制御装置６は、２つの同一構成のネットワークインタフェース１０（ネットワークインタフェースＡ，ネットワークインタフェースＢ）と、３つの同一構成のコントローラ２０（コントローラＡ，コントローラＢ，コントローラＣ）と、２つの同一構成のプロセス機器インタフェース３０（プロセス機器インタフェースＡ，プロセス機器インタフェースＢ）を備えている。
【００６７】
２つのネットワークインタフェース１０は、系統の異なる内部ＬＡＮ４０（Ａ系内部ＬＡＮ，Ｂ系内部ＬＡＮ）を介して３つのコントローラ２０と接続されており、それぞれ３つのコントローラ２０と相互通信可能に構成されている。この場合、ネットワークインタフェースＡはＡ系内部ＬＡＮを介し、ネットワークインタフェースＢはＢ系内部ＬＡＮを介して、３つのコントローラ２０と接続されている。
【００６８】
２つのプロセス機器インタフェース３０は、それぞれ３つのコントローラ２０と個別にデータ通信路５０で接続されており、これらとの間で１対１の通信が可能に構成されている。また、２つのプロセス機器インタフェース３０の間に制御信号線６０が接続されており、相互に制御信号の伝達が可能に構成されている。
さらに、２つのプロセス機器インタフェース３０は、各々が系統の異なる図示しないバスを介して２つのネットワークインタフェース１０と３つのコントローラ２０に接続されている。
【００６９】
また、２つのネットワークインタフェース１０は、系統の異なる制御ＬＡＮ３（Ａ系制御ＬＡＮ，Ｂ系制御ＬＡＮ）を介して監視装置２と接続されており、それぞれ監視装置２と相互通信可能に構成されている。この場合、ネットワークインタフェースＡはＡ系制御ＬＡＮを介し、ネットワークインタフェースＢはＢ系制御ＬＡＮを介して、監視装置２と接続されている。２つのプロセス機器インタフェース３０は、各々がプロセス機器４の接続された外部の２つのＩＯバス５（Ａ系ＩＯバス，Ｂ系ＩＯバス）に接続されている。
【００７０】
このプロセス制御装置６は、２つのネットワークインタフェース１０と３つのコントローラ２０が並列に動作し、２つのプロセス機器インタフェース３０の一方がマスター（現用系）として常時動作し、他方がスレーブ（待機系）として待機している。２つのネットワークインタフェース１０は、それぞれ系統の異なる制御ＬＡＮ３を介して受信した監視装置２のリクエストを別々に３つのコントローラ２０の各々に与えるとともに、このリクエストに対する３つのコントローラ２０の各々からの応答の中から多数決によって定まる１つの応答を各々が接続された制御ＬＡＮ３に出力して監視装置２へ回答する。
【００７１】
２つのネットワークインタフェース１０が第１の実施の形態若しくは第２の実施の形態で説明したものと異なる点は、処理タイミング信号入力用のディジタル入力インタフェースを２系統有し、マスターとスレーブの両方のプロセス機器インタフェース３０から出力される処理タイミング信号が入力され、マスター側の処理タイミング信号が入力されなくなったときに、スレーブ側の処理タイミング信号に基づいて処理を続行するようにしたことである。
【００７２】
３つのコントローラ２０は、各々が２つのネットワークインタフェース１０から与えられた同じリクエストのうち、先に与えられたリクエストのみ処理を行い、このリクエストに対する応答を２つのネットワークインタフェース１０に出力する。また、プロセス機器４に対するコマンド生成やプロセス制御の演算を行い、生成したコマンドや演算結果を制御データとして２つのプロセス機器インタフェース３０に出力する。
【００７３】
ここで、２つのネットワークインタフェース１０から与えられた同じリクエストのうち、先に与えられたリクエストのみ処理を行うことができるのは、監視装置の送信するリクエストがＡ系とＢ系で同じメッセージヘッダを有するため、応答／リクエスト送受信部１１が同じメッセージを受信した場合、後から受信したメッセージを先に受信したものと同じメッセージと判定し、無視するためである。
【００７４】
３つのコントローラ２０が第１の実施の形態若しくは第２の実施の形態で説明したものと異なる点は、内部ＬＡＮ４０用のＬＡＮインタフェースと、データ通信路５０用の通信インタフェースと、処理タイミング信号１０３入力用のディジタル入力インタフェースとをそれぞれ２系統有し、応答／リクエスト送受信部１１が２つの内部ＬＡＮ４０を介して送受信を行うことと、入出力処理部２４が２つのデータ通信路５０を介して送受信を行うことと、マスターとスレーブの両方のプロセス機器インタフェース３０から出力される処理タイミング信号が入力され、マスター側の処理タイミング信号が入力されなくなったときに、スレーブ側の処理タイミング信号に基づいて処理を続行するようにしたことである。
【００７５】
プロセス機器インタフェース３０は、マスター側が３つのコントローラ２０の各々から出力される制御データの中から多数決によって定まる１つの制御データを２つのＩＯバス５に出力してプロセス機器４を制御し、スレーブ側が制御信号線６０を介してマスター側の動作を確認する待機動作を行う。スレーブ側のプロセス機器インタフェース３０は、マスター側の動作停止を検出するとマスターに切り替わる。また、２つのプロセス機器インタフェース３０は、マスター側かスレーブ側かにかかわらず各々が接続された図示しないバスに処理タイミング信号を出力している。
【００７６】
２つのプロセス機器インタフェース３０が第１の実施の形態若しくは第２の実施の形態で説明したものと異なる点は、ＩＯバス５用インタフェースを２系統有し、制御データを２つのＩＯバス５に出力可能に構成したことと、制御信号線６０用のディジタル入出力インタフェースを有し、マスター・スレーブ切替可能に構成したことである。マスター・スレーブ切替は、例えば、マスターのときは常時、動作中を示す信号をディジタル入出力インタフェースに出力し、スレーブのときは常時、ディジタル入出力インタフェースに入力する信号を監視し、信号の入力が途絶すると自身をマスターに切り替えるプログラムを不揮発性半導体メモリに格納しておき、ＣＰＵがこのプログラムを実行するようにしておくことにより行うことができる。
【００７７】
このように構成したので、この実施の形態のプロセス制御装置は、ネットワークインタフェース１０、制御ＬＡＮ３および内部ＬＡＮ４０のいずれかで異常が生じた場合であっても、監視装置２との通信が途絶することがないので、正常に処理を続行することができる。また、動作中のプロセス機器インタフェース３０に異常が生じた場合であっても、待機中のプロセス機器インタフェース３０によって処理を続行することができる。このように、この実施の形態のプロセス制御装置は、コントローラ２０の１つに異常が生じて制御演算処理から切り離されても、無瞬断でプロセス制御を続行可能であるだけでなく、３つのコントローラ２０に接続されたインタフェース部分に異常が生じた場合にも処理を続行することができる。このため、第１の実施の形態に比べて、さらに信頼性を向上することができる。
【００７８】
この実施の形態では、３つのコントローラ２０に接続されるものをすべて冗長構成としたが、必ずしもすべてを冗長構成としなくともよい。プロセス制御装置として要求される信頼性と、３つのコントローラ２０に接続されるものの個々の信頼性とを勘案して必要な箇所のみ冗長構成とすることにより、必要とされる信頼性を最小限のコスト上昇で得ることができる。例えば、プロセス制御装置を２つの同一構成のネットワークインタフェース１０（ネットワークインタフェースＡ，ネットワークインタフェースＢ）と、３つの同一構成のコントローラ２０（コントローラＡ，コントローラＢ，コントローラＣ）と、１つのプロセス機器インタフェース３０とで構成してもよいし、１つのネットワークインタフェース１０と、３つの同一構成のコントローラ２０（コントローラＡ，コントローラＢ，コントローラＣ）と、２つの同一構成のプロセス機器インタフェース３０（プロセス機器インタフェースＡ，プロセス機器インタフェースＢ）とで構成してもよい。
【００７９】
次に、図１４を参照して、並列動作する各コントローラ２０で処理タイミングを同期させるための構成について説明する。図１４はコントローラへ供給される処理タイミング信号を示す説明図である。
図１４に示すように、各コントローラ２０には、プロセス機器インタフェース３０の処理タイミング信号生成部３５（図４参照）からタイミング信号バス５１を介して処理タイミング信号１０３が並列的に供給されている。各コントローラ２０のリクエスト処理部２１、演算処理部２３および入出力処理部２４（図３参照）では、この処理タイミング信号１０３の内容に基づき処理内容を決定している。
【００８０】
処理タイミング信号１０３は、図１０に示すように、３ｂｉｔのパラレル信号すなわち処理タイミング信号１０３Ａ〜１０３Ｃからなり、１制御周期（例えば、１００ｍｓ）ごとに巡回するコードが出力される。ここでは、１制御周期ごとに、コードの値に対応して８つの処理タイミングｔ１〜ｔ８が設けられており、各コントローラ２０では、そのコードの値に基づき処理タイミングを識別子、各処理タイミングに対して予め設定されている処理、例えば、上位の監視装置からの処理要求や下位のプロセス機器のための制御を実行する。
【００８１】
本実施の形態では、各コントローラ２０および各ネットワークインタフェース１０には、２つのプロセス機器インタフェース３０からそれぞれ個別に処理タイミング信号１０３が供給される。各コントローラ２０および各ネットワークインタフェース１０では、２つのプロセス機器インタフェース３０から供給された処理タイミング信号１０３のうち、いずれかマスター側の処理タイミング信号を選択して処理タイミングの決定に用いる。選択の方法としては、プロセス機器インタフェース３０との通信によりいずれがマスター側か判断してもよく、あるいはデフォルトでマスター側を予め決めておき、そのマスター側からの処理タイミング信号が停止するなど不具合が検出された場合に他方の処理タイミング信号へ切り替えるようにしてもよい。
【００８２】
このように、プロセス機器インタフェース３０を２重化した場合は、各プロセス機器インタフェース３０からの処理タイミング信号１０３を各コントローラ２０および各ネットワークインタフェース１０を個別に供給し、各コントローラ２０および各ネットワークインタフェース１０では、２つのプロセス機器インタフェース３０から供給された処理タイミング信号１０３のうち、いずれか現用系のものを選択して利用するようにしたので、各コントローラ２０において、安定した処理タイミングの同期を実現できる。
【００８３】
【発明の効果】
以上説明したように、本発明は、コントローラとして、ネットワークインタフェースとプロセス機器インタフェースとの間に並列的に設けられ、ネットワークインターフェースからのリクエストに付加されている処理タイミング情報で指示された処理タイミングで当該リクエストに対応する処理を実行するＮ個（Ｎは３以上の自然数）のコントローラを備え、ネットワークインタフェースのリクエスト配信部で、ネットワークを介して上位装置から受信したリクエストに、当該リクエストに対応する処理をコントローラが実行すべきタイミングを指示する処理タイミング情報を付加して各コントローラへ通知し、応答比較部で、当該リクエストに対する各コントローラからの応答を多数決判定して上位装置へ送信する１つの応答を決定するようにしたので、各コントローラ２０間でほぼ同期して同一内容の処理を実行することが可能となり、コントローラの出力／応答を精度よく多数決判定することができる。
【００８４】
また、従来のように、各コントローラで共通の動作クロックを用いてそのマイクロプロセッサでの処理を完全に同期させる必要がなくなり、それぞれ個別の動作クロックを用いることが可能となる。
したがって、各コントローラが特定動作タイミングに起因して発生する不具合を内在している場合でも、複数のコントローラで同時に不具合が発生する確率が極めて低くなり、安定した制御動作を実現できる。
【図面の簡単な説明】
【図１】  本発明の第１の実施の形態にかかるプロセス制御装置の構成を示すブロック図である。
【図２】  図１のネットワークインタフェースの機能ブロック図である。
【図３】  図１のコントローラの機能ブロック図である。
【図４】  図１のプロセス機器インタフェースの機能ブロック図である。
【図５】  第１の実施の形態にかかるプロセス制御装置の動作を説明するシーケンス図である。
【図６】  第１の実施の形態にかかるプロセス制御装置の他の動作を説明するシーケンス図である。
【図７】  第１の実施の形態にかかるプロセス制御装置の他の動作を説明するシーケンス図である。
【図８】  第１の実施の形態にかかるプロセス制御装置の他の動作を説明するシーケンス図である。
【図９】  コントローラへ供給される処理タイミング信号を示す説明図である。
【図１０】  処理タイミング信号の構成例を示すタイミングチャートである。
【図１１】  リクエスト（メッセージ）の構成例である。
【図１２】  各コントローラでの処理スケジュール例である。
【図１３】  本発明の第３の実施の形態にかかるプロセス制御装置の構成を示すブロック図である。
【図１４】  コントローラへ供給される処理タイミング信号を示す他の説明図である。
【符号の説明】
１，６…プロセス制御装置、２…監視装置、３…制御ＬＡＮ、４…プロセス機器、５…ＩＯバス、１０…ネットワークインタフェース、１１…応答／リクエスト送受信部、１２…負荷チェック部、１３…リクエスト配信部、１４…応答受信部、１５…応答比較部、１６，３４…異常通知部、２０…コントローラ、２１…リクエスト処理部、２２…データベース、２３…演算処理部、２４…入出力処理部、２５…異常処理部、３０…プロセス機器インタフェース、３１…コントローラ通信処理部、３２…データ比較部、３３…ＩＯバス入出力処理部、３５…処理タイミング信号生成部、４０…内部ＬＡＮ、５０…データ通信路、５１…タイミング信号バス、６０…制御信号線、１０３…処理タイミング信号。
【図１】
0003706332.tif 000002
【図２】
0003706332.tif 000003
【図３】
0003706332.tif 000004
【図４】
0003706332.tif 000005
【図５】
0003706332.tif 000006
【図６】
0003706332.tif 000007
【図７】
0003706332.tif 000008
【図８】
0003706332.tif 000009
【図９】
0003706332.tif 000010
【図１０】
0003706332.tif 000011
【図１１】
0003706332.tif 000012
【図１２】
0003706332.tif 000013
【図１３】
0003706332.tif 000014
【図１４】
0003706332.tif 000015