JP3706332B2 - Process control device - Google Patents

Process control device Download PDF

Info

Publication number
JP3706332B2
JP3706332B2 JP2001341017A JP2001341017A JP3706332B2 JP 3706332 B2 JP3706332 B2 JP 3706332B2 JP 2001341017 A JP2001341017 A JP 2001341017A JP 2001341017 A JP2001341017 A JP 2001341017A JP 3706332 B2 JP3706332 B2 JP 3706332B2
Authority
JP
Japan
Prior art keywords
request
controller
processing
response
network interface
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.)
Expired - Lifetime
Application number
JP2001341017A
Other languages
Japanese (ja)
Other versions
JP2003140709A (en
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.)
Azbil Corp
Original Assignee
Azbil Corp
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 Azbil Corp filed Critical Azbil Corp
Priority to JP2001341017A priority Critical patent/JP3706332B2/en
Publication of JP2003140709A publication Critical patent/JP2003140709A/en
Application granted granted Critical
Publication of JP3706332B2 publication Critical patent/JP3706332B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Safety Devices In Control Systems (AREA)
  • Control By Computers (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、プロセス制御装置に関し、特に冗長構成を有するプロセス制御装置に関する。
【0002】
【従来の技術】
従来、プラントなどのプロセス制御に用いるプロセス制御装置において、高信頼性を要求される場合には制御演算を行うコントローラを複数設えた冗長構造をもつものが用いられている。
このような冗長構造をもつ従来のプロセス制御装置は、主系と従系の2つのコントローラを備え、主系コントローラに異常が発生すると待機中の従系コントローラに切り替わる二重化待機冗長方式が一般的である。
【0003】
しかしながら、このような二重化待機冗長方式のプロセス制御装置は、コントローラが主系から従系に切り替わる際、主系の停止を検出後、待機していた従系が処理を開始するため、制御空白時間が生じ、プロセスの制御周期が短いプロセス制御には使用できないという問題があった。
このため、稼働中のコントローラに異常が生じた場合でも制御空白時間の生じないプロセス制御装置が求められていた。
【0004】
これに対して、同一構成の3つ以上のコントローラを並列動作させ、これらコントローラの制御出力について多数決判定を行い、その判定結果を用いてプロセス制御を行う方式が考えられる。
通常、プロセス制御装置では、上位の監視装置からの処理要求や下位のプロセス機器のための制御をタイムシェアリングで処理しているため、異なる制御演算処理をわずかな時間で行っている。したがって、上記方式で所望の制御演算結果を得るためには、各コントローラから同一の制御演算処理に対する制御演算結果を得る必要がある。
【0005】
【発明が解決しようとする課題】
しかしながら、このようなCPUなどのマイクロプロセッサでプログラムを実行することにより各種の制御演算処理を行っているコントローラにおいては、各コントローラが特定の制御演算処理を実行している際に、上位の監視装置や下位のプロセス機器から特定のタイミングで入力があった場合、演算エラーなどの不具合を発生する可能性がある。
【0006】
このような不具合を解消するために、外部から動作クロックを入力して各コントローラの動作を完全に同期させる構成も考えられるが、この構成によれば、別途専用のハードウェアが必要となり高価なシステムとなってしまうという問題点があった。また、このように同一構成の各コントローラを共通の動作クロックに基づき完全に同期して動作させたとしても、前述のような不具合は特定の動作タイミングに起因して発生するため、3つ以上のコントローラを並列動作させてもすべての演算結果が異なる結果となり、その不具合を回避できない。
【0007】
また、各コントローラへのリクエストが過負荷になってしまった場合には、いずれかのコントローラにのみ応答の遅れが生じ、処理の同一性を保証することができない。
さらに、このようなタイミングのズレを異常だと判断してしまうと、不必要にシステムを停止させてしまい、機器にも余計な負荷をかけ、プラント全体としても大きな損害となってしまう。
本発明は、このような課題を解決するためのものであり、並列動作する3つ以上のコントローラの制御演算結果を多数決判定してプロセス制御する際、各コントローラから制御演算結果を同時に安定して得ることができるプロセス制御装置を提供することを目的とする。
【0008】
【課題を解決するための手段】
上述した課題を解決するために、本発明にかかるプロセス制御装置は、プロセス制御のための制御演算を行うコントローラと、ネットワークを介して上位装置から受信したリクエストをコントローラへ通知するとともに、当該リクエストに対するコントローラからの応答を上位装置へ送信するネットワークインタフェースと、コントローラでの制御演算に基づいてIOバスに接続されているプロセス機器へ制御データを送信するとともに、プロセス機器から計測データを受信するプロセス機器インタフェースとを有し、ネットワークインタフェースを介して受信されたリクエストに基づきコントローラで制御演算を行い、得られた制御データをプロセス機器インタフェースを介してプロセス制御機器へ送信することによりプロセス機器を制御し、プロセス制御機器から得られた計測データをコントローラから応答としてネットワークインタフェースへ出力し、ネットワークインタフェースから上位装置へ応答として送信するプロセス制御装置であって、コントローラとして、ネットワークインタフェースとプロセス機器インタフェースとの間に並列的に設けられ、ネットワークインターフェースからのリクエストに付加されている処理タイミング情報で指示された処理タイミングで当該リクエストに対応する処理を実行するN個(Nは3以上の自然数)のコントローラを備え、ネットワークインタフェースのリクエスト配信部で、ネットワークを介して上位装置から受信したリクエストに、当該リクエストに対応する処理をコントローラが実行すべきタイミングを指示する処理タイミング情報を付加して各コントローラへ通知し、応答比較部で、当該リクエストに対する各コントローラからの応答を多数決判定して上位装置へ送信する1つの応答を決定するようにしたものである。
【0009】
処理タイミングについては、リクエスト配信部で、各コントローラへ送信したリクエストの処理状況に基づいて、新たに受信したリクエストを処理する処理タイミングを選択し、その処理タイミングを示す処理タイミング情報を当該リクエストに付加するようにしてもよい。
【0010】
ネットワークインタフェースの負荷チェック部で、各コントローラへ送信したリクエストの処理状況に基づいて、新たに受信したリクエストの受け入れ可否を判断し、受け入れ可の場合にのみ当該リクエストをリクエスト配信部へ渡すようにしてもよい。
このとき、負荷チェック部で、リクエストが受け入れ不可と判断された場合は、上位装置に対してリクエスト実行不可を通知するようにしてもよい。
【0011】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
図1は、本発明の第1の実施の形態にかかるプロセス制御装置の構成を示すブロック図である。同図において、プロセス制御装置1は、1つのネットワークインタフェース10と、3つの同一構成のコントローラ20(コントローラA,コントローラB,コントローラC)と、1つのプロセス機器インタフェース30を備えている。
【0012】
ネットワークインタフェース10と3つのコントローラ20は、内部LAN(Local Area Network)40に接続されており、相互通信可能に構成されている。プロセス機器インタフェース30は、3つのコントローラ20と個別にUSB(Universal Serial Bus)などのデータ通信路50で接続されており、これらとの間で1対1の通信が可能に構成されている。また、ネットワークインタフェース10と3つのコントローラ20とプロセス機器インタフェース30は、図示しないバスに接続されている。さらに、ネットワークインタフェース10は、監視装置2が接続された外部の制御LAN3(ネットワーク)に接続されており、プロセス機器インタフェース30は、プロセス機器4が接続された外部のIOバス5に接続されている。
【0013】
このような構成において、プロセス制御装置1のネットワークインタフェース10では、制御LAN3を介して受信した監視装置2からのリクエストを3つのコントローラ20の各々に与えるとともに、このリクエストに対する3つのコントローラ20の各々からの応答の中から多数決によって定まる1つの応答を制御LAN3に出力して監視装置2へ回答する。
3つのコントローラ20の各々では、ネットワークインタフェース10から与えられたリクエストの処理を行い、リクエストに対する応答をネットワークインタフェース10に出力するとともに、プロセス制御の演算を行い、演算結果を制御データとしてプロセス機器インタフェース30に出力する。
【0014】
プロセス機器インタフェース30では、3つのコントローラ20の各々から出力される制御データの中から多数決によって定まる1つの制御データをIOバス5に出力してプロセス機器4を制御する。
このため、コントローラ20の1つに異常が生じ、他の2つと異なる応答や制御データを出力した場合であっても、監視装置2やプロセス機器4へ正常な応答や制御データを途切れることなく出力することができる。
【0015】
次に、ネットワークインタフェース10について図2を参照して詳細に説明する。図2は、ネットワークインタフェース10の機能ブロック図である。
図2に示すように、ネットワークインタフェース10は、応答/リクエスト送受信部11、負荷チェック部12、リクエスト配信部13、応答受信部14、応答比較部15および異常通知部16を備えている。
【0016】
監視装置2が制御LAN3に出力したリクエストは、応答/リクエスト送受信部11で受信され、負荷チェック部12に送られる。負荷チェック部12は、コントローラ20ごとのリクエストの処理状況(処理負荷)をチェックし、稼働中の全てのコントローラ20が送られたリクエストを受け入れ可能な状態のときは、応答/リクエスト送受信部11から送られたリクエストをリクエスト配信部13へ転送し、稼働中で受け入れ不可能な状態のコントローラがあるときは応答/リクエスト送受信部11へ当該リクエストの受け入れ不可を通知するとともに、このリクエストを消去する。
【0017】
この場合、負荷チェック部12は、コントローラ20で実行中のリクエストの数が所定数以下のとき、次のリクエストを受け入れ可能と判定する。実行中のリクエストの数は、例えば転送したリクエスト数から応答数を差し引いて求める。応答数は、後述する応答受信部14から入力される。応答/リクエスト送受信部11は、リクエストの受け入れ不可が通知されると、リクエスト元へリクエスト実行不可を通知する。
【0018】
リクエスト配信部13は、負荷チェック部12から転送されたリクエストに処理すべきタイミングを示す処理タイミング情報を付加した後、内部LAN40を介して3つのコントローラ20に同報配信する。この場合、処理タイミング情報は、1制御周期中における処理タイミングを示す3bitコードであり、リクエスト配信部13は後述するプロセス機器インタフェース30が図示しないバス上にパラレル出力する3bitの処理タイミング信号103の現在値を参照し、リクエストを実行するタイミングとして将来生成される処理タイミング信号の値を設定する。この際、各コントローラへ送信したリクエストの処理状況に基づいて、新たに受信したリクエストを実行するタイミングやリクエストの応答を送信するタイミングが選択される。リクエストの処理状況については、負荷チェック部12で管理されているものを用いればよい。
【0019】
一方、3つのコントローラ20の各々からリクエストの応答が送信されると、応答受信部14が受信し、応答比較部15に送るとともに、応答を返したコントローラを負荷チェック部12に通知する。この場合、応答受信部14は、受信した応答を一時的に保持し、3つのコントローラ20からの応答が揃った後、応答比較部15に送る。所定時間内に3つのコントローラ20の内の1つから応答がなかったときは、当該コントローラ20を負荷チェック部12に通知するとともに、例えばヌルデータのような予め定めた特定のデータを当該コントローラ20の応答として、他の2つの応答とともに応答比較部15に送る。
【0020】
ここで、所定時間内に応答がなかったときに応答のないコントローラ20を負荷チェック部12に通知するのは、負荷チェック部12で応答のないコントローラ20の未処理リクエストが処理されないまま残ることにより実行中のリクエストの数が所定数を超えて、動作中の2つのコントローラがリクエストを実行できなくなることを防ぐためである。
【0021】
応答比較部15は、応答受信部14から送られた3つのコントローラ20からの応答を比較し、内容の一致する応答が2つ以上ある場合のみ応答/リクエスト送受信部11へこの内容の応答を1つ送る。ただし、一致した内容がヌルデータのような予め定めた特定のデータであった場合は、その応答を送信しない。応答/リクエスト送受信部11へ送られた応答は、制御LAN3へ出力され、リクエスト元の監視装置2へ送信される。また、応答比較部15は、他と異なる内容の応答を返したコントローラを異常通知部16へ通知する。異常通知部16は、応答比較部15から通知されたコントローラに内部LAN40を介して異常通知を送信する。
【0022】
このネットワークインタフェース10は、制御LAN3用のLANインタフェースと、内部LAN40用のLANインタフェースと、処理タイミング信号103入力用のディジタル入力インタフェースと、ネットワークインタフェース10の機能を実現するプログラムを格納した不揮発性半導体メモリと、この不揮発性半導体メモリに格納されたプログラムを実行する演算処理装置(CPU)と、プログラム実行時の一時記憶に用いられるRAMと、これらを接続するバスとから構成されている。
【0023】
次に、コントローラ20について図3を参照して詳細に説明する。図3は、コントローラ20の機能ブロック図である。図3に示すように、コントローラ20は、リクエスト処理部21、データベース22、演算処理部23、入出力処理部24および異常処理部25を備えており、データベース22にはプロセス制御条件の設定値、計測データの現在値およびプロセス機器を制御する制御データが格納されている。この場合、内部LAN40に出力されたリクエストは、リクエスト処理部21で受信されてリクエスト内容が解析され、リクエストに応じた処理がリクエストに付加された処理タイミング情報に基づいて実行される。
【0024】
例えば、リクエストがプロセス制御条件の変更であれば、データベース22の指定された制御条件の設定値をリクエストで指示された設定値に書き換え、書き換えた設定値をデータベース22から読み出して応答内容とする。また、リクエストがプロセス条件の現在値の要求であれば、データベース22から指定されたプロセス条件の現在値を読み出して応答内容とする。このような応答は、リクエスト処理部21により内部LAN40に出力され、ネットワークインタフェース10へ送信される。この場合、リクエスト処理は、プロセス機器インタフェース30が出力する処理タイミング信号103を参照し、この信号の示す情報がリクエストに付加された処理タイミング情報と一致したときに実行する。
【0025】
演算処理部23は、所定のタイミングでデータベース22からプロセス制御条件の設定値とプロセス条件の現在値を読み出し、現在値を設定値に合わせるために必要な制御量を算出する制御演算を行い、演算結果を制御データとしてデータベース22に書き込む。入出力処理部24は、所定のタイミングでデータベース22から制御データを読み出してプロセス機器インタフェース30へ送信する。また、プロセス機器が計測したプロセスデータの送信を要求するコマンドをプロセス機器インタフェース30へ送信するとともに、プロセス機器インタフェース30から送信されるプロセス機器が計測したプロセスデータを受信し、現在値としてデータベース22に書き込む。
【0026】
また、リクエスト処理部21は、リクエストと同様にしてネットワークインタフェース10の異常通知部16が送信する異常通知を受信し、異常処理部25に通知する。入出力処理部24は、プロセス機器インタフェース30から送信される情報に異常通知が含まれているか否か確認し、異常通知が含まれているときは、異常処理部25に通知する。異常処理部25は、異常通知を受けるとコントローラ20の処理を停止させる。
【0027】
このコントローラ20は、内部LAN40用のLANインタフェースと、データ通信路50用の通信インタフェースと、処理タイミング信号103入力用のディジタル入力インタフェースと、コントローラ20の機能を実現するプログラムを格納した不揮発性半導体メモリと、この不揮発性半導体メモリに格納されたプログラムを実行する演算処理装置(CPU)と、データベース22の格納領域やプログラム実行時の一時記憶領域として用いられるRAMと、これらを接続するバスとから構成されている。また、このコントローラ20は、活線挿抜可能にして、3つのコントローラ20のうちの1つが故障した時はプロセス制御を継続したまま交換可能に構成されている。
【0028】
次に、プロセス機器インタフェース30について図4を参照して詳細に説明する。図4は、プロセス機器インタフェース30の機能ブロック図である。図4に示すように、プロセス機器インタフェース30は、コントローラ通信処理部31、データ比較部32、IOバス入出力処理部33、異常通知部34および処理タイミング信号生成部35を備えている。
【0029】
各コントローラ20がそれぞれのデータ通信路50を介して送信したコマンドや制御データは、コントローラ通信処理部31で受信され、データ比較部32に送られる。この場合、コントローラ通信処理部31は、受信データを一時的に保持し、3つのコントローラ20からの受信データが揃った後、データ比較部32に送る。所定時間内に3つのコントローラ20からの受信データが揃わなかったときは、例えばヌルデータのような予め定めた特定のデータを未受信コントローラ20の受信データとし、他の受信データとともにデータ比較部32に送る。
【0030】
データ比較部32は、コントローラ通信処理部31から送られた3つの受信データを比較し、内容の一致する受信データが2つ以上ある場合のみ、IOバス入出力処理部33へ内容の一致した受信データを1つ入力する。ただし、一致した内容がヌルデータのような予め定めた特定のデータであった場合は、送信しない。IOバス入出力処理部33へ送られたデータは、IOバス5へ出力され、プロセス機器4へ送信される。また、データ比較部32は、他と異なるデータを送信したコントローラを異常通知部34へ通知する。異常通知部34は、コントローラ通信処理部31を介してデータ比較部32から通知されたコントローラ20に異常通知を送信する。
【0031】
一方、プロセス機器4がIOバス5へ出力したデータは、IOバス入出力処理部33が受信し、コントローラ通信処理部31へ送られる。コントローラ通信処理部31は、送られたデータを3つのデータ通信路50にそれぞれ出力し、各コントローラ20に送信する。処理タイミング信号生成部35は、処理タイミング信号103を生成し、ネットワークインタフェース10と3つのコントローラ20とプロセス機器インタフェース30とに接続されているバスに出力する。
【0032】
ここで、処理タイミング信号103は、例えば3bitのパラレル信号であり、プロセス制御装置の1制御周期中に順次3bitの組み合わせから得られる8つの状態をとることにより、8個の処理タイミングを設けるものである。なお、処理タイミング信号103は3bitに限られるものではなく、1制御周期中に実行する処理の種類やコントローラ20の処理速度に応じて他のbit数に変更してもよい。
【0033】
このプロセス機器インタフェース30は、3つのデータ通信路50用の通信インタフェースと、IOバス5用インタフェースと、処理タイミング信号103出力用のディジタル出力インタフェースと、プロセス機器インタフェース30の機能を実現するプログラムを格納した不揮発性半導体メモリと、この不揮発性半導体メモリに格納されたプログラムを実行する演算処理装置(CPU)と、プログラム実行時の一時記憶に用いられるRAMと、これらを接続するバスとから構成されている。
【0034】
次に、このプロセス制御装置の動作について説明する。最初に、監視装置からのリクエストがないときの動作を説明する。図5は、第1の実施の形態のプロセス制御装置の動作を説明するシーケンス図であり、監視装置からのリクエストがないときの動作を示す。図5に示すように、このプロセス制御装置は、3つのコントローラ(コントローラA,コントローラB,コントローラC)が並列して同じ処理を実行している。
【0035】
ここで、周期n(nは自然数)の制御周期が開始されると、各々のコントローラは、処理タイミング信号が所定のタイミングとなったときにプロセス機器インタフェースに計測データ要求のコマンドを送信する。プロセス機器インタフェースは、各々のコントローラから送信されたコマンドの多数決を採って多数側のコマンドをプロセス機器に送信するとともに、このコマンドを受信したプロセス機器から送信される計測データを受信し、各々のコントローラに送信する。この場合、多数決の判定は、各々のコントローラから送信されたコマンドを比較し、2つ以上のコントローラからのコマンドが一致した場合に一致したコマンドを多数のコマンドと決することにより行う。
【0036】
各々のコントローラは、計測データを受信するとデータベースの現在値を更新し、所定の処理タイミングとなったらデータベースの設定値と現在値を入力とする制御演算を行い、データベースの制御データを演算結果で更新し、所定の処理タイミングとなったときにこの制御データをプロセス機器インタフェースに送信する。プロセス機器インタフェースは、各々のコントローラから送信された制御データの多数決を採って多数側の制御データをプロセス機器に送信し、プロセス機器を制御する。この場合も多数決の判定は、各々のコントローラから送信された制御データを比較し、2つ以上のコントローラからの制御データが一致した場合に一致した制御データを多数の制御データと決することにより行う。
【0037】
次に、監視装置からリクエストがなされたときの動作を説明する。図6は、第1の実施の形態のプロセス制御装置の動作を説明するシーケンス図であり、監視装置から計測データの現在値を要求するリクエストがなされたときの動作を示す。図6に示すように、3つのコントローラ(コントローラA,コントローラB,コントローラC)が周期n(nは自然数)の制御周期において同じ処理を並列に実行しているときに、ネットワークインタフェースがリクエストを受信すると、ネットワークインタフェースは、3つのコントローラの負荷チェックを行う。
【0038】
負荷チェックの結果、3つのコントローラがともにリクエストを実行可能であれば、リクエストに処理タイミング情報を付加して3つのコントローラに送信する。この場合、ネットワークインタフェースは、リクエストを実行するタイミングを指定する情報を処理タイミング情報として付加するが、リクエストを実行するタイミングには、処理が割り当てられていない処理タイミングを割り当てる。3つのコントローラは、各々リクエストを受信すると、処理タイミング情報で指定された処理タイミングでリクエストを実行する。
【0039】
この場合、3つのコントローラは、それぞれデータベースの現在値更新後の処理タイミングで各々のデータベースにアクセスし、現在値を読み出してネットワークインタフェースへリクエストに対する応答として送信する。ネットワークインタフェースは、各々のコントローラから送信された応答を受信し、これらの内容(現在値)を比較し、内容の一致する2つ以上の応答のうちのいずれか1つを制御LANに出力し、監視装置に送信する。この場合、応答内容は3つとも一致しているので、3つのコントローラは、以後も図5で説明したものと同じ動作を行う。ここで、3つのコントローラのリクエスト処理以外の処理タイミングにおける処理動作と、プロセス機器インタフェースの動作は、図5で説明したものと同じであるので説明を省略する。
【0040】
次に、ネットワークインタフェースが応答の不一致を検出したときの動作を説明する。図7は、第1の実施の形態のプロセス制御装置の動作を説明するシーケンス図であり、ネットワークインタフェースが3つのコントローラからの応答に不一致を検出したときの動作を示す。図7において、3つのコントローラがリクエストに付加された処理タイミング情報で指定された処理タイミングでリクエストを実行し、応答をネットワークインタフェースに送信するまでは、図6での説明と同じであるので、説明を省略する。
【0041】
ネットワークインタフェースが各々のコントローラから送信された応答を受信した後、これらの内容(現在値)を比較し、コントローラAの応答内容が他の2つのコントローラの応答内容と一致しないことを検出すると、ネットワークインタフェースは、内容が一致したコントローラBとコントローラCの応答をリクエストに対する応答として制御LANに出力し、監視装置に送信するとともに、コントローラAに異常通知を送信する。
【0042】
コントローラAは、異常通知を受信すると異常処理を実行し、制御演算処理からの切り離しを行う。一方、コントローラBとコントローラCは、以後も図5で説明したものと同じ動作を行う。ネットワークインタフェースとプロセス機器インタフェースは、コントローラAが切り離された後も、コントローラBとコントローラCの応答や制御データが一致している限り以前と同じ動作を行い、プロセス制御装置全体として無瞬断のプロセス制御を続行する。
【0043】
次に、プロセス機器インタフェースが3つのコントローラ間でコマンドや制御データに不一致を検出したときの動作を説明する。図8は、第1の実施の形態のプロセス制御装置の動作を説明するシーケンス図であり、プロセス機器インタフェースが3つのコントローラ間でコマンドや制御データに不一致を検出したときの動作を示す。図8において、3つのコントローラが所定の処理タイミングで指定された制御演算を実行し、演算結果の制御データをプロセス機器インタフェースに送信するまでは、図5での説明と同じであるので、説明を省略する。
【0044】
プロセス機器インタフェースが各々のコントローラから送信されたコマンドや制御データを受信した後、これらの内容を比較し、コントローラCの内容が他の2つのコントローラの内容と一致しないことを検出すると、プロセス機器インタフェースは、内容が一致したコントローラAとコントローラBのコマンドや制御データをIOバスに出力し、プロセス機器に送信するとともに、コントローラCに異常通知を送信する。
【0045】
コントローラCは、異常通知を受信すると異常処理を実行し、制御演算処理からの切り離しを行う。一方、コントローラAとコントローラBは、以後も図5で説明したものと同じ動作を行う。ネットワークインタフェースとプロセス機器インタフェースは、コントローラCが切り離された後も、コントローラAとコントローラBの応答や制御データが一致している限り以前と同じ動作を行い、プロセス制御装置全体として無瞬断のプロセス制御を続行する。
【0046】
以上説明したように、この実施の形態のプロセス制御装置は、制御演算処理を行うコントローラを3つ並列動作させるとともに、これらの出力するデータを比較し、2つ以上が一致している間、動作を続けるようにしたので、コントローラの1つに異常が生じて制御演算処理から切り離されても、無瞬断でプロセス制御を続行可能である。なお、この実施の形態では、コントローラを3つ並列動作させるものとして説明したが、この数は3つに限られるものではなく、3以上であればよい。並列動作させるコントローラの数を3より増やすにしたがい、無瞬断のプロセス制御を続行するのに許容されるコントローラの異常発生数を増やすことができる。よって、プロセス制御装置に求められる信頼性とコントローラの信頼性とに基づいて、最適な個数を選択すればよい。
【0047】
また、制御演算処理を行うコントローラを並列実行による冗長構成としたので、ネットワークインタフェースとプロセス機器インタフェースの信頼性を確保することで、コントローラに高信頼性を求めなくともプロセス制御装置全体としての信頼性を確保することができる。このため、コントローラに低価格の市販製品を用いることができ、信頼性を確保したままコストを下げることができる。また、世代交代の早い市販製品の利用が可能となることで、半導体技術の向上による処理能力の向上がタイムリーにでき、製品開発期間の短縮も可能となる。
【0048】
また、ネットワークインタフェースとプロセス機器インタフェースにより、コントローラの出力が正常であることを常時確認しているため、プロセス制御装置として十分な信頼性が確保できるので、コントローラの使用するメモリシステムにエラー訂正機能を設けなくてもよく、またエラー訂正機能では訂正不可能な宇宙線などに起因すると考えられるマルチビットエラーにも対処でき、より低コスト化を図ることができる。
【0049】
次に、図9および図10を参照して、並列動作する各コントローラ20で処理タイミングを同期させるための構成について説明する。図9はコントローラへ供給される処理タイミング信号を示す説明図である。図10は処理タイミング信号の構成例を示すタイミングチャートである。
図9に示すように、各コントローラ20には、プロセス機器インタフェース30の処理タイミング信号生成部35(図4参照)からタイミング信号バス51を介して処理タイミング信号103が並列的に供給されている。各コントローラ20のリクエスト処理部21、演算処理部23および入出力処理部24(図3参照)では、この処理タイミング信号103の内容に基づき処理内容を決定している。
【0050】
処理タイミング信号103は、図10に示すように、3bitのパラレル信号すなわち処理タイミング信号103A〜103Cからなり、1制御周期(例えば、100ms)ごとに巡回するコードが出力される。ここでは、1制御周期ごとに、コードの値に対応して8つの処理タイミングt1〜t8が設けられており、各コントローラ20では、そのコードの値に基づき処理タイミングを識別子、各処理タイミングに対して予め設定されている処理、例えば、上位の監視装置からの処理要求や下位のプロセス機器のための制御を実行する。
【0051】
このように、各コントローラ20に対して処理タイミング信号103を並列的に供給し、各コントローラ20では、その処理タイミング信号103に基づき処理する内容を決定するようにしたので、各コントローラ20間でほぼ同期して同一内容の処理を実行することが可能となる。
これにより、従来のように、各コントローラ20で共通の動作クロックを用いてそのマイクロプロセッサでの処理を完全に同期させる必要がなくなり、それぞれ個別の動作クロックを用いることが可能となる。
【0052】
したがって、各コントローラが特定動作タイミングに起因して発生する不具合を内在している場合でも、複数のコントローラで同時に不具合が発生する確率が極めて低くなり、これらコントローラの出力/応答を多数決判定することにより、プロセス制御装置1全体に対する影響を回避でき、安定した制御動作を実現できる。
また、共通クロックを用いて各コントローラの動作を同期させるための高価な回路構成が不要となり、製品コストを大幅に削減できる。さらには、コントローラとして完全に同一構成の装置を用いる必要がなくなり、システム構成として柔軟性が得られる。
【0053】
なお、処理タイミング信号103に用いるコードとしては、一般的な2進数を用いてもよい。このとき、複数ビットが同時に変化するため、コントローラ20でのビット検出にばらつきが生じた場合は、瞬間的に異なるコードとして認識される場合も考えられる。
本実施の形態では、処理タイミング信号103として、図10に示すようなグレイコードを用いている。このグレイコードとは、任意の値から次の値へ遷移する際、いずれか1ビットだけが変化するコードである。したがって、処理タイミングの変遷の際、ビット検出のばらつきによるコードの誤認を回避でき、各コントローラ20において、安定した処理タイミングの同期を実現できる。
【0054】
次に、図11および図12を参照して、ネットワークインタフェース10によるコントローラ管理処理について説明する。図11はネットワークインタフェース10から各コントローラ20へ送信されるリクエスト(メッセージ)の構成例である。図12は各コントローラでの処理スケジュール例である。
前述したように、ネットワークインタフェース10では、各コントローラ20へ処理を指示する際、リクエスト配信部13(図2参照)から内部LAN40を介してリクエストを送信する。
【0055】
このリクエストは、図11に示すように、イーサネット(登録商標)で用いるパケットの1つであり、パケットの送信先や送信元、パケット種別などパケットに関する情報を格納するヘッダ41と、リクエストの内容を示す情報を格納するデータ部42とから構成されている。
データ部42には、そのリクエストを識別するためのリクエストID43、リクエストの内容がコード化されたリクエスト内容44、そのリクエストを実行するタイミングを示す処理タイミング情報45が格納されている。例えば、各コントローラ20に対して設定値の変更を指示するリクエストの場合は、リクエスト内容44として、処理対象となるプロセス機器すなわち制御ポイントを示すポイントID44A、処理の種別を示す処理種別44Bとその処理に用いる処理データ44Cとがセットされている。また、処理タイミング情報45には、処理タイミング信号103で規定されるグレイコードがセットされている。
【0056】
各コントローラ20では、このようなリクエストをリクエスト処理部21で受信し、その内容を解析して実行する。このとき、処理の内容はリクエスト内容44から決定し、処理タイミングは処理タイミング情報45から決定する。
図11のリクエスト46の例では、処理種別44Bが「設定値更新」を示すことから、リクエスト処理部21は、処理データ44Cの「DB設定値」を取り出して、ポイントID44Aに対応する新たな設定値としてデータベース22へ書き込む。また、この処理は、プロセス機器インタフェース30からの処理タイミング信号103のグレイコードが「011」すなわち処理タイミングt3を示す場合に実行される。これにより、各コントローラ20において、次の処理タイミングt3に同期して一斉に新たな設定値が書き込まれることになる。
【0057】
また、図11のリクエスト47の例では、処理種別44Aが「現在値読み出し」を示すことから、リクエスト処理部21は、データベース22に格納されているプロセス機器から得られた現在値を読み出して、ネットワークインタフェース10へ通知する。また、この処理は、プロセス機器インタフェース30からの処理タイミング信号103のグレイコードが「101」すなわち処理タイミングt5を示す場合に実行される。これにより、各コントローラ20から、次の処理タイミングt5に同期して一斉に現在値が読み出されることになる。
なお、読み出された現在値は、応答によりコントローラ20からネットワークインタフェース10へ通知される。このとき、対応するリクエストのリクエストIDもその応答により通知することにより、各応答がどのリクエストに対応するものか識別するようにしてもよく、複数のリクエストが多重して発行される場合にも対応できる。
【0058】
このように、各コントローラ20に対して処理タイミング信号103を並列的に供給し、各コントローラ20では、その処理タイミング信号103に基づき処理する内容を決定するものとし、ネットワークインタフェース10から各コントローラ20へのリクエストで、要求した処理を実行するタイミングを指定するようにしたので、各コントローラ20間でほぼ同期して同一内容の処理を実行することが可能となり、コントローラの出力/応答を精度よく多数決判定することができる。
また、従来のように、各コントローラ20で共通の動作クロックを用いてそのマイクロプロセッサでの処理を完全に同期させる必要がなくなり、それぞれ個別の動作クロックを用いることが可能となる。
【0059】
したがって、各コントローラが特定動作タイミングに起因して発生する不具合を内在している場合でも、複数のコントローラで同時に不具合が発生する確率が極めて低くなり、安定した制御動作を実現できる。
また、共通クロックを用いて各コントローラの動作を同期させるための高価な回路構成が不要となり、製品コストを大幅に削減できる。さらには、コントローラとして完全に同一構成の装置を用いる必要がなくなり、システム構成として柔軟性が得られる。
【0060】
各コントローラ20では、このようにして、各処理タイミングごとに予め設定された処理が行われる。前述した図6のシーケンスでは、図12に示すように、まず処理タイミングt1で、プロセス機器への「計測データ要求」処理が行われ、処理タイミングt2で「リクエスト受付」処理が行われる。また、処理タイミングt3でプロセス機器から得られた計測データをデータベース22へ格納する「DB現在値更新」処理が行われ、処理タイミングt4でリクエストに基づく「DB現在値読み出し」処理が行われる。そして、処理が設定されていない処理タイミングt5の後、処理タイミングt6でプロセス機器への制御データを算出するための「制御演算」処理が行われ、処理タイミングt7でその演算結果をデータベース22へ格納する「DB制御データ更新」処理が行われ、処理タイミングt8でプロセス機器への「制御データ送信」処理が行われる。
【0061】
このような処理のスケジューリングは、ネットワークインタフェース10の負荷チェック部12で管理しており、新たな処理を要求する際には、処理が設定されていない処理タイミングを指定してリクエストを発行する。
このとき、監視装置2からの要求に基づきコントローラ20に対して新たな処理を要求する際、負荷チェック部12では、上記のようなスケジューリングに基づき受け入れ可否を判断する。過負荷であり受け入れできない場合あれば、監視装置2へ受け入れ不可を通知する。これにより、コントローラ20への過負荷を未然に回避でき、安定したプロセス制御を実現できる。
【0062】
なお、各処理タイミングでの処理は、すべてネットワークインタフェース10側からコントローラ20に対して指定してもよいが、各コントローラ20で行われる定常的な処理、例えば「計測データ要求」、「DB現在値更新」、「制御演算」、「DB制御データ更新」、「制御データ送信」などプロセス機器の制御に関する処理については、予めその処理タイミングを固定的に割り当てておくようにしてもよく、ネットワークインタフェース10でのリクエスト処理を省くことができる。
【0063】
次に、本発明の第2の実施の形態について説明する。この実施の形態のプロセス制御装置が第1の実施の形態と異なる点は、3つのコントローラのデータベースがそれぞれ正しいか否かの確認を行う自己診断機能を有することである。この自己診断機能は、図2で示したネットワークインタフェース10の応答/リクエスト送受信部11に、図3で示したデータベース22のデータを所定単位ごとに順次送信させるリクエストを所定間隔で発行するとともに、このリクエストに応じて応答/リクエスト送受信部11へ送られたデータを破棄する機能を設けることにより実現することができる。すなわち、ネットワークインタフェース10の機能を実現するプログラムを格納した不揮発性半導体メモリに、この自己診断機能を実現するプログラムを加えればよい。
【0064】
この場合、応答/リクエスト送受信部11が発行する自己診断機能のリクエストは、負荷チェック部12の働きによりコントローラ20の負荷が軽いときのみ3つのコントローラ20へ送信される。コントローラ20へ送信されたリクエストは、所定のタイミングでリクエスト処理部により実行され、データベース22のデータが所定単位ごとに読み出されて順次ネットワークインタフェース10へ送信させる。3つのコントローラ20から送信されたデータベース22のデータは、応答比較部15で比較され、不一致の検出されたコントローラが異常通知部16に通知される。これにより、異常通知部16が当該コントローラに異常通知を送信し、異常通知を受信したコントローラは、異常処理を実行し制御演算処理からの切り離しを行う。
【0065】
この実施の形態によれば、3つのコントローラ20のデータベース22のデータ比較をバックグランドで行うことで、データベース22のデータを格納するRAMのエラーなどを検出することができる。このため、頻繁に使用されない領域で発生したエラーを検出でき、異常の生じたコントローラ20を除くことができる。
【0066】
次に、図13を参照して、本発明の第3の実施の形態について説明する。図13は、本発明のプロセス制御装置にかかる第3の実施の形態を示すブロック図である。
この実施の形態のプロセス制御装置6が第1の実施の形態と異なる点は、ネットワークインタフェース10、プロセス機器インタフェース30、内部LAN40およびデータ通信路50をそれぞれ冗長構成としたことである。図13において、このプロセス制御装置6は、2つの同一構成のネットワークインタフェース10(ネットワークインタフェースA,ネットワークインタフェースB)と、3つの同一構成のコントローラ20(コントローラA,コントローラB,コントローラC)と、2つの同一構成のプロセス機器インタフェース30(プロセス機器インタフェースA,プロセス機器インタフェースB)を備えている。
【0067】
2つのネットワークインタフェース10は、系統の異なる内部LAN40(A系内部LAN,B系内部LAN)を介して3つのコントローラ20と接続されており、それぞれ3つのコントローラ20と相互通信可能に構成されている。この場合、ネットワークインタフェースAはA系内部LANを介し、ネットワークインタフェースBはB系内部LANを介して、3つのコントローラ20と接続されている。
【0068】
2つのプロセス機器インタフェース30は、それぞれ3つのコントローラ20と個別にデータ通信路50で接続されており、これらとの間で1対1の通信が可能に構成されている。また、2つのプロセス機器インタフェース30の間に制御信号線60が接続されており、相互に制御信号の伝達が可能に構成されている。
さらに、2つのプロセス機器インタフェース30は、各々が系統の異なる図示しないバスを介して2つのネットワークインタフェース10と3つのコントローラ20に接続されている。
【0069】
また、2つのネットワークインタフェース10は、系統の異なる制御LAN3(A系制御LAN,B系制御LAN)を介して監視装置2と接続されており、それぞれ監視装置2と相互通信可能に構成されている。この場合、ネットワークインタフェースAはA系制御LANを介し、ネットワークインタフェースBはB系制御LANを介して、監視装置2と接続されている。2つのプロセス機器インタフェース30は、各々がプロセス機器4の接続された外部の2つのIOバス5(A系IOバス,B系IOバス)に接続されている。
【0070】
このプロセス制御装置6は、2つのネットワークインタフェース10と3つのコントローラ20が並列に動作し、2つのプロセス機器インタフェース30の一方がマスター(現用系)として常時動作し、他方がスレーブ(待機系)として待機している。2つのネットワークインタフェース10は、それぞれ系統の異なる制御LAN3を介して受信した監視装置2のリクエストを別々に3つのコントローラ20の各々に与えるとともに、このリクエストに対する3つのコントローラ20の各々からの応答の中から多数決によって定まる1つの応答を各々が接続された制御LAN3に出力して監視装置2へ回答する。
【0071】
2つのネットワークインタフェース10が第1の実施の形態若しくは第2の実施の形態で説明したものと異なる点は、処理タイミング信号入力用のディジタル入力インタフェースを2系統有し、マスターとスレーブの両方のプロセス機器インタフェース30から出力される処理タイミング信号が入力され、マスター側の処理タイミング信号が入力されなくなったときに、スレーブ側の処理タイミング信号に基づいて処理を続行するようにしたことである。
【0072】
3つのコントローラ20は、各々が2つのネットワークインタフェース10から与えられた同じリクエストのうち、先に与えられたリクエストのみ処理を行い、このリクエストに対する応答を2つのネットワークインタフェース10に出力する。また、プロセス機器4に対するコマンド生成やプロセス制御の演算を行い、生成したコマンドや演算結果を制御データとして2つのプロセス機器インタフェース30に出力する。
【0073】
ここで、2つのネットワークインタフェース10から与えられた同じリクエストのうち、先に与えられたリクエストのみ処理を行うことができるのは、監視装置の送信するリクエストがA系とB系で同じメッセージヘッダを有するため、応答/リクエスト送受信部11が同じメッセージを受信した場合、後から受信したメッセージを先に受信したものと同じメッセージと判定し、無視するためである。
【0074】
3つのコントローラ20が第1の実施の形態若しくは第2の実施の形態で説明したものと異なる点は、内部LAN40用のLANインタフェースと、データ通信路50用の通信インタフェースと、処理タイミング信号103入力用のディジタル入力インタフェースとをそれぞれ2系統有し、応答/リクエスト送受信部11が2つの内部LAN40を介して送受信を行うことと、入出力処理部24が2つのデータ通信路50を介して送受信を行うことと、マスターとスレーブの両方のプロセス機器インタフェース30から出力される処理タイミング信号が入力され、マスター側の処理タイミング信号が入力されなくなったときに、スレーブ側の処理タイミング信号に基づいて処理を続行するようにしたことである。
【0075】
プロセス機器インタフェース30は、マスター側が3つのコントローラ20の各々から出力される制御データの中から多数決によって定まる1つの制御データを2つのIOバス5に出力してプロセス機器4を制御し、スレーブ側が制御信号線60を介してマスター側の動作を確認する待機動作を行う。スレーブ側のプロセス機器インタフェース30は、マスター側の動作停止を検出するとマスターに切り替わる。また、2つのプロセス機器インタフェース30は、マスター側かスレーブ側かにかかわらず各々が接続された図示しないバスに処理タイミング信号を出力している。
【0076】
2つのプロセス機器インタフェース30が第1の実施の形態若しくは第2の実施の形態で説明したものと異なる点は、IOバス5用インタフェースを2系統有し、制御データを2つのIOバス5に出力可能に構成したことと、制御信号線60用のディジタル入出力インタフェースを有し、マスター・スレーブ切替可能に構成したことである。マスター・スレーブ切替は、例えば、マスターのときは常時、動作中を示す信号をディジタル入出力インタフェースに出力し、スレーブのときは常時、ディジタル入出力インタフェースに入力する信号を監視し、信号の入力が途絶すると自身をマスターに切り替えるプログラムを不揮発性半導体メモリに格納しておき、CPUがこのプログラムを実行するようにしておくことにより行うことができる。
【0077】
このように構成したので、この実施の形態のプロセス制御装置は、ネットワークインタフェース10、制御LAN3および内部LAN40のいずれかで異常が生じた場合であっても、監視装置2との通信が途絶することがないので、正常に処理を続行することができる。また、動作中のプロセス機器インタフェース30に異常が生じた場合であっても、待機中のプロセス機器インタフェース30によって処理を続行することができる。このように、この実施の形態のプロセス制御装置は、コントローラ20の1つに異常が生じて制御演算処理から切り離されても、無瞬断でプロセス制御を続行可能であるだけでなく、3つのコントローラ20に接続されたインタフェース部分に異常が生じた場合にも処理を続行することができる。このため、第1の実施の形態に比べて、さらに信頼性を向上することができる。
【0078】
この実施の形態では、3つのコントローラ20に接続されるものをすべて冗長構成としたが、必ずしもすべてを冗長構成としなくともよい。プロセス制御装置として要求される信頼性と、3つのコントローラ20に接続されるものの個々の信頼性とを勘案して必要な箇所のみ冗長構成とすることにより、必要とされる信頼性を最小限のコスト上昇で得ることができる。例えば、プロセス制御装置を2つの同一構成のネットワークインタフェース10(ネットワークインタフェースA,ネットワークインタフェースB)と、3つの同一構成のコントローラ20(コントローラA,コントローラB,コントローラC)と、1つのプロセス機器インタフェース30とで構成してもよいし、1つのネットワークインタフェース10と、3つの同一構成のコントローラ20(コントローラA,コントローラB,コントローラC)と、2つの同一構成のプロセス機器インタフェース30(プロセス機器インタフェースA,プロセス機器インタフェースB)とで構成してもよい。
【0079】
次に、図14を参照して、並列動作する各コントローラ20で処理タイミングを同期させるための構成について説明する。図14はコントローラへ供給される処理タイミング信号を示す説明図である。
図14に示すように、各コントローラ20には、プロセス機器インタフェース30の処理タイミング信号生成部35(図4参照)からタイミング信号バス51を介して処理タイミング信号103が並列的に供給されている。各コントローラ20のリクエスト処理部21、演算処理部23および入出力処理部24(図3参照)では、この処理タイミング信号103の内容に基づき処理内容を決定している。
【0080】
処理タイミング信号103は、図10に示すように、3bitのパラレル信号すなわち処理タイミング信号103A〜103Cからなり、1制御周期(例えば、100ms)ごとに巡回するコードが出力される。ここでは、1制御周期ごとに、コードの値に対応して8つの処理タイミングt1〜t8が設けられており、各コントローラ20では、そのコードの値に基づき処理タイミングを識別子、各処理タイミングに対して予め設定されている処理、例えば、上位の監視装置からの処理要求や下位のプロセス機器のための制御を実行する。
【0081】
本実施の形態では、各コントローラ20および各ネットワークインタフェース10には、2つのプロセス機器インタフェース30からそれぞれ個別に処理タイミング信号103が供給される。各コントローラ20および各ネットワークインタフェース10では、2つのプロセス機器インタフェース30から供給された処理タイミング信号103のうち、いずれかマスター側の処理タイミング信号を選択して処理タイミングの決定に用いる。選択の方法としては、プロセス機器インタフェース30との通信によりいずれがマスター側か判断してもよく、あるいはデフォルトでマスター側を予め決めておき、そのマスター側からの処理タイミング信号が停止するなど不具合が検出された場合に他方の処理タイミング信号へ切り替えるようにしてもよい。
【0082】
このように、プロセス機器インタフェース30を2重化した場合は、各プロセス機器インタフェース30からの処理タイミング信号103を各コントローラ20および各ネットワークインタフェース10を個別に供給し、各コントローラ20および各ネットワークインタフェース10では、2つのプロセス機器インタフェース30から供給された処理タイミング信号103のうち、いずれか現用系のものを選択して利用するようにしたので、各コントローラ20において、安定した処理タイミングの同期を実現できる。
【0083】
【発明の効果】
以上説明したように、本発明は、コントローラとして、ネットワークインタフェースとプロセス機器インタフェースとの間に並列的に設けられ、ネットワークインターフェースからのリクエストに付加されている処理タイミング情報で指示された処理タイミングで当該リクエストに対応する処理を実行するN個(Nは3以上の自然数)のコントローラを備え、ネットワークインタフェースのリクエスト配信部で、ネットワークを介して上位装置から受信したリクエストに、当該リクエストに対応する処理をコントローラが実行すべきタイミングを指示する処理タイミング情報を付加して各コントローラへ通知し、応答比較部で、当該リクエストに対する各コントローラからの応答を多数決判定して上位装置へ送信する1つの応答を決定するようにしたので、各コントローラ20間でほぼ同期して同一内容の処理を実行することが可能となり、コントローラの出力/応答を精度よく多数決判定することができる。
【0084】
また、従来のように、各コントローラで共通の動作クロックを用いてそのマイクロプロセッサでの処理を完全に同期させる必要がなくなり、それぞれ個別の動作クロックを用いることが可能となる。
したがって、各コントローラが特定動作タイミングに起因して発生する不具合を内在している場合でも、複数のコントローラで同時に不具合が発生する確率が極めて低くなり、安定した制御動作を実現できる。
【図面の簡単な説明】
【図1】 本発明の第1の実施の形態にかかるプロセス制御装置の構成を示すブロック図である。
【図2】 図1のネットワークインタフェースの機能ブロック図である。
【図3】 図1のコントローラの機能ブロック図である。
【図4】 図1のプロセス機器インタフェースの機能ブロック図である。
【図5】 第1の実施の形態にかかるプロセス制御装置の動作を説明するシーケンス図である。
【図6】 第1の実施の形態にかかるプロセス制御装置の他の動作を説明するシーケンス図である。
【図7】 第1の実施の形態にかかるプロセス制御装置の他の動作を説明するシーケンス図である。
【図8】 第1の実施の形態にかかるプロセス制御装置の他の動作を説明するシーケンス図である。
【図9】 コントローラへ供給される処理タイミング信号を示す説明図である。
【図10】 処理タイミング信号の構成例を示すタイミングチャートである。
【図11】 リクエスト(メッセージ)の構成例である。
【図12】 各コントローラでの処理スケジュール例である。
【図13】 本発明の第3の実施の形態にかかるプロセス制御装置の構成を示すブロック図である。
【図14】 コントローラへ供給される処理タイミング信号を示す他の説明図である。
【符号の説明】
1,6…プロセス制御装置、2…監視装置、3…制御LAN、4…プロセス機器、5…IOバス、10…ネットワークインタフェース、11…応答/リクエスト送受信部、12…負荷チェック部、13…リクエスト配信部、14…応答受信部、15…応答比較部、16,34…異常通知部、20…コントローラ、21…リクエスト処理部、22…データベース、23…演算処理部、24…入出力処理部、25…異常処理部、30…プロセス機器インタフェース、31…コントローラ通信処理部、32…データ比較部、33…IOバス入出力処理部、35…処理タイミング信号生成部、40…内部LAN、50…データ通信路、51…タイミング信号バス、60…制御信号線、103…処理タイミング信号。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a process control apparatus, and more particularly to a process control apparatus having a redundant configuration.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, a process control apparatus used for process control of a plant or the like has a redundant structure provided with a plurality of controllers that perform control computation when high reliability is required.
A conventional process control apparatus having such a redundant structure generally includes a dual standby redundancy system that includes two controllers, a main system and a sub system, and switches to a standby sub controller when an abnormality occurs in the main system controller. is there.
[0003]
However, in such a redundant standby redundancy type process control device, when the controller switches from the primary system to the secondary system, the standby system starts processing after detecting the stop of the primary system. Therefore, there is a problem that it cannot be used for process control with a short process control cycle.
For this reason, there has been a demand for a process control apparatus that does not cause a control blank time even when an abnormality occurs in an operating controller.
[0004]
On the other hand, a system is conceivable in which three or more controllers having the same configuration are operated in parallel, a majority decision is made on the control outputs of these controllers, and process control is performed using the decision result.
Usually, in a process control device, processing requests from a higher-level monitoring device and control for lower-level process devices are processed by time sharing, so that different control calculation processes are performed in a short time. Therefore, in order to obtain a desired control calculation result by the above method, it is necessary to obtain a control calculation result for the same control calculation process from each controller.
[0005]
[Problems to be solved by the invention]
However, in a controller that performs various types of control arithmetic processing by executing a program with a microprocessor such as a CPU, a high-level monitoring device is used when each controller is executing specific control arithmetic processing. If there is an input from a lower-level process device at a specific timing, a malfunction such as a calculation error may occur.
[0006]
In order to solve such problems, a configuration is also conceivable in which an operation clock is input from the outside and the operation of each controller is completely synchronized. According to this configuration, however, a dedicated hardware is required and an expensive system is required. There was a problem of becoming. Even if the controllers having the same configuration are operated in complete synchronization based on a common operation clock in this way, the above-described problem occurs due to specific operation timing, so that three or more Even if the controller is operated in parallel, all the calculation results are different, and the problem cannot be avoided.
[0007]
In addition, when a request to each controller is overloaded, a response delay occurs only in one of the controllers, and it is not possible to guarantee the same processing.
Furthermore, if it is determined that such a timing shift is abnormal, the system is stopped unnecessarily, an excessive load is applied to the equipment, and the entire plant is seriously damaged.
The present invention is to solve such a problem, and when controlling a process by deciding a majority of control calculation results of three or more controllers operating in parallel, the control calculation results from each controller can be stabilized at the same time. It is an object to provide a process control apparatus that can be obtained.
[0008]
[Means for Solving the Problems]
In order to solve the above-described problems, a process control device according to the present invention notifies a controller that performs a control operation for process control, a request received from a host device via a network, and responds to the request. A network interface that sends a response from the controller to the host device, and a process equipment interface that sends control data to the process equipment connected to the IO bus and receives measurement data from the process equipment based on the control calculation in the controller Control the process based on the request received via the network interface, and control the process equipment by transmitting the obtained control data to the process control equipment via the process equipment interface. A process control device that outputs measurement data obtained from a process control device as a response from a controller to a network interface, and transmits the response from the network interface to a host device as a response, between the network interface and the process device interface as a controller. And N controllers (N is a natural number of 3 or more) that execute processing corresponding to the request at the processing timing indicated by the processing timing information added to the request from the network interface. In the request distribution unit of the network interface, a processing type for instructing the timing at which the controller should execute the processing corresponding to the request in response to the request received from the host device via the network. Notifies each controller by adding ring information, the response comparing unit, in which so as to determine a majority decision to the one to be transmitted to the host device in response to a response from the controller for the request.
[0009]
Regarding the processing timing, the request distribution unit selects the processing timing for processing a newly received request based on the processing status of the request transmitted to each controller, and adds processing timing information indicating the processing timing to the request. You may make it do.
[0010]
The load check unit of the network interface determines whether or not the newly received request can be accepted based on the processing status of the request sent to each controller, and passes the request to the request distribution unit only when the request is acceptable. Also good.
At this time, if the load check unit determines that the request cannot be accepted, the host device may be notified that the request cannot be executed.
[0011]
DETAILED DESCRIPTION OF THE INVENTION
Next, embodiments of the present invention will be described with reference to the drawings.
FIG. 1 is a block diagram showing the configuration of the process control apparatus according to the first embodiment of the present invention. In FIG. 1, the process control apparatus 1 includes one network interface 10, three controllers 20 (controller A, controller B, controller C) having the same configuration, and one process equipment interface 30.
[0012]
The network interface 10 and the three controllers 20 are connected to an internal LAN (Local Area Network) 40 and configured to be able to communicate with each other. The process device interface 30 is individually connected to the three controllers 20 via a data communication path 50 such as a USB (Universal Serial Bus), and is configured to be capable of one-to-one communication with them. The network interface 10, the three controllers 20, and the process equipment interface 30 are connected to a bus (not shown). Further, the network interface 10 is connected to an external control LAN 3 (network) to which the monitoring device 2 is connected, and the process equipment interface 30 is connected to an external IO bus 5 to which the process equipment 4 is connected. .
[0013]
In such a configuration, the network interface 10 of the process control device 1 gives a request from the monitoring device 2 received via the control LAN 3 to each of the three controllers 20 and from each of the three controllers 20 for this request. One response determined by majority vote is output to the control LAN 3 and returned to the monitoring device 2.
Each of the three controllers 20 processes a request given from the network interface 10, outputs a response to the request to the network interface 10, performs process control calculations, and uses the calculation results as control data. Output to.
[0014]
The process equipment interface 30 controls the process equipment 4 by outputting, to the IO bus 5, one control data determined by majority from among the control data outputted from each of the three controllers 20.
For this reason, even when an abnormality occurs in one of the controllers 20 and a response or control data different from the other two is output, a normal response or control data is output to the monitoring device 2 or the process equipment 4 without interruption. can do.
[0015]
Next, the network interface 10 will be described in detail with reference to FIG. FIG. 2 is a functional block diagram of the network interface 10.
As shown in FIG. 2, the network interface 10 includes a response / request transmission / reception unit 11, a load check unit 12, a request distribution unit 13, a response reception unit 14, a response comparison unit 15, and an abnormality notification unit 16.
[0016]
The request output from the monitoring device 2 to the control LAN 3 is received by the response / request transmission / reception unit 11 and sent to the load check unit 12. The load check unit 12 checks the request processing status (processing load) for each controller 20, and when all the operating controllers 20 are in a state in which the sent request can be accepted, the response / request transmission / reception unit 11 The transmitted request is transferred to the request distribution unit 13, and when there is a controller that is in operation and cannot be accepted, the response / request transmission / reception unit 11 is notified that the request cannot be accepted and the request is deleted.
[0017]
In this case, the load check unit 12 determines that the next request can be accepted when the number of requests being executed by the controller 20 is equal to or less than a predetermined number. The number of requests being executed is obtained by subtracting the number of responses from the number of transferred requests, for example. The number of responses is input from a response receiver 14 described later. When the response / request transmission / reception unit 11 is notified that the request cannot be accepted, the response / request transmission / reception unit 11 notifies the request source that the request cannot be executed.
[0018]
The request distribution unit 13 adds processing timing information indicating the timing to be processed to the request transferred from the load check unit 12, and then broadcasts the request to the three controllers 20 via the internal LAN 40. In this case, the processing timing information is a 3-bit code indicating the processing timing in one control cycle, and the request distribution unit 13 indicates the current status of the 3-bit processing timing signal 103 that is output in parallel on a bus (not shown) by the process device interface 30 described later. The value of the processing timing signal generated in the future is set as the timing for executing the request with reference to the value. At this time, the timing for executing the newly received request and the timing for transmitting the request response are selected based on the processing status of the request transmitted to each controller. The request processing status may be that managed by the load check unit 12.
[0019]
On the other hand, when a response to the request is transmitted from each of the three controllers 20, the response receiving unit 14 receives and sends the response to the response comparing unit 15, and notifies the load check unit 12 of the controller that has returned the response. In this case, the response reception unit 14 temporarily holds the received response, and sends the response to the response comparison unit 15 after the responses from the three controllers 20 are prepared. When there is no response from one of the three controllers 20 within a predetermined time, the controller 20 is notified to the load check unit 12 and predetermined specific data such as null data is transmitted to the controller 20. The response is sent to the response comparison unit 15 together with the other two responses.
[0020]
Here, when there is no response within a predetermined time, the controller 20 that does not respond is notified to the load check unit 12 because the unprocessed request of the controller 20 that does not respond is left unprocessed in the load check unit 12. This is to prevent the number of requests being executed from exceeding a predetermined number and preventing the two operating controllers from executing the requests.
[0021]
The response comparison unit 15 compares the responses from the three controllers 20 sent from the response reception unit 14, and sends the response of this content to the response / request transmission / reception unit 11 only when there are two or more responses with the same content. Send one. However, if the matched content is predetermined specific data such as null data, the response is not transmitted. The response sent to the response / request transmission / reception unit 11 is output to the control LAN 3 and transmitted to the request source monitoring device 2. In addition, the response comparison unit 15 notifies the abnormality notification unit 16 of the controller that has returned a response having a content different from the others. The abnormality notification unit 16 transmits an abnormality notification to the controller notified from the response comparison unit 15 via the internal LAN 40.
[0022]
The network interface 10 includes a LAN interface for the control LAN 3, a LAN interface for the internal LAN 40, a digital input interface for processing timing signal 103 input, and a nonvolatile semiconductor memory storing a program for realizing the functions of the network interface 10. And an arithmetic processing unit (CPU) for executing a program stored in the nonvolatile semiconductor memory, a RAM used for temporary storage during execution of the program, and a bus for connecting them.
[0023]
Next, the controller 20 will be described in detail with reference to FIG. FIG. 3 is a functional block diagram of the controller 20. As shown in FIG. 3, the controller 20 includes a request processing unit 21, a database 22, an arithmetic processing unit 23, an input / output processing unit 24, and an abnormality processing unit 25. The database 22 includes setting values for process control conditions, Stores current values of measurement data and control data for controlling process equipment. In this case, the request output to the internal LAN 40 is received by the request processing unit 21, the request content is analyzed, and processing according to the request is executed based on processing timing information added to the request.
[0024]
For example, if the request is a process control condition change, the setting value of the specified control condition in the database 22 is rewritten to the setting value specified by the request, and the rewritten setting value is read from the database 22 and used as the response content. If the request is a request for the current value of the process condition, the current value of the specified process condition is read from the database 22 and used as the response content. Such a response is output to the internal LAN 40 by the request processing unit 21 and transmitted to the network interface 10. In this case, the request processing is executed when the processing timing signal 103 output from the process device interface 30 is referenced and the information indicated by this signal matches the processing timing information added to the request.
[0025]
The arithmetic processing unit 23 reads the set value of the process control condition and the current value of the process condition from the database 22 at a predetermined timing, and performs a control calculation to calculate a control amount necessary for matching the current value to the set value. The result is written in the database 22 as control data. The input / output processing unit 24 reads the control data from the database 22 at a predetermined timing and transmits it to the process equipment interface 30. In addition, a command requesting transmission of process data measured by the process device is transmitted to the process device interface 30, and the process data measured by the process device transmitted from the process device interface 30 is received and stored in the database 22 as a current value. Write.
[0026]
Further, the request processing unit 21 receives the abnormality notification transmitted by the abnormality notification unit 16 of the network interface 10 in the same manner as the request, and notifies the abnormality processing unit 25 of the abnormality notification. The input / output processing unit 24 checks whether or not an abnormality notification is included in the information transmitted from the process device interface 30, and notifies the abnormality processing unit 25 when the abnormality notification is included. When receiving the abnormality notification, the abnormality processing unit 25 stops the processing of the controller 20.
[0027]
The controller 20 includes a LAN interface for the internal LAN 40, a communication interface for the data communication path 50, a digital input interface for inputting the processing timing signal 103, and a nonvolatile semiconductor memory storing a program for realizing the function of the controller 20 And an arithmetic processing unit (CPU) for executing a program stored in the nonvolatile semiconductor memory, a RAM used as a storage area of the database 22 and a temporary storage area at the time of program execution, and a bus connecting them. Has been. The controller 20 is configured to be hot-pluggable and replaceable when one of the three controllers 20 fails, while continuing the process control.
[0028]
Next, the process equipment interface 30 will be described in detail with reference to FIG. FIG. 4 is a functional block diagram of the process equipment interface 30. As illustrated in FIG. 4, the process device interface 30 includes a controller communication processing unit 31, a data comparison unit 32, an IO bus input / output processing unit 33, an abnormality notification unit 34, and a processing timing signal generation unit 35.
[0029]
Commands and control data transmitted by each controller 20 via the respective data communication paths 50 are received by the controller communication processing unit 31 and sent to the data comparison unit 32. In this case, the controller communication processing unit 31 temporarily stores the reception data, and sends the data to the data comparison unit 32 after the reception data from the three controllers 20 are prepared. If the received data from the three controllers 20 are not prepared within a predetermined time, for example, predetermined specific data such as null data is set as the received data of the non-received controller 20, and the data comparing unit 32 together with other received data. send.
[0030]
The data comparison unit 32 compares the three reception data sent from the controller communication processing unit 31, and only when there are two or more reception data with the same content, reception with the same content to the IO bus input / output processing unit 33. Enter one piece of data. However, if the matched content is predetermined specific data such as null data, it is not transmitted. The data sent to the IO bus input / output processing unit 33 is output to the IO bus 5 and sent to the process device 4. Further, the data comparison unit 32 notifies the abnormality notification unit 34 of the controller that transmitted data different from the others. The abnormality notification unit 34 transmits an abnormality notification to the controller 20 notified from the data comparison unit 32 via the controller communication processing unit 31.
[0031]
On the other hand, the data output from the process device 4 to the IO bus 5 is received by the IO bus input / output processing unit 33 and sent to the controller communication processing unit 31. The controller communication processing unit 31 outputs the transmitted data to the three data communication paths 50 and transmits them to each controller 20. The processing timing signal generator 35 generates the processing timing signal 103 and outputs it to a bus connected to the network interface 10, the three controllers 20, and the process equipment interface 30.
[0032]
Here, the processing timing signal 103 is, for example, a 3-bit parallel signal, and eight processing timings are provided by sequentially taking eight states obtained from a combination of 3 bits during one control cycle of the process control apparatus. is there. Note that the processing timing signal 103 is not limited to 3 bits, and may be changed to another number of bits according to the type of processing executed in one control cycle and the processing speed of the controller 20.
[0033]
The process equipment interface 30 stores a communication interface for three data communication paths 50, an IO bus 5 interface, a digital output interface for processing timing signal 103 output, and a program for realizing the functions of the process equipment interface 30. Non-volatile semiconductor memory, an arithmetic processing unit (CPU) that executes a program stored in the non-volatile semiconductor memory, a RAM that is used for temporary storage during program execution, and a bus that connects them. Yes.
[0034]
Next, the operation of this process control apparatus will be described. First, the operation when there is no request from the monitoring device will be described. FIG. 5 is a sequence diagram for explaining the operation of the process control apparatus according to the first embodiment, and shows the operation when there is no request from the monitoring apparatus. As shown in FIG. 5, in this process control apparatus, three controllers (controller A, controller B, and controller C) execute the same processing in parallel.
[0035]
Here, when the control cycle of the cycle n (n is a natural number) is started, each controller transmits a measurement data request command to the process device interface when the processing timing signal reaches a predetermined timing. The process equipment interface takes a majority vote of commands sent from each controller, sends a command on the majority side to the process equipment, and receives measurement data sent from the process equipment that has received this command. Send to. In this case, the majority decision is made by comparing the commands transmitted from the respective controllers and determining that the matched command is a large number of commands when the commands from two or more controllers match.
[0036]
Each controller updates the current value of the database when it receives the measurement data, performs a control calculation with the database setting value and the current value as input when the predetermined processing timing is reached, and updates the control data of the database with the calculation result When the predetermined processing timing comes, this control data is transmitted to the process equipment interface. The process equipment interface controls the process equipment by taking the majority of the control data sent from each controller and transmitting the control data on the majority side to the process equipment. In this case as well, the majority decision is made by comparing the control data transmitted from each controller and determining the matched control data as a large number of control data when the control data from two or more controllers match.
[0037]
Next, the operation when a request is made from the monitoring device will be described. FIG. 6 is a sequence diagram for explaining the operation of the process control apparatus according to the first embodiment, and shows the operation when a request for requesting the current value of measurement data is made from the monitoring apparatus. As shown in FIG. 6, the network interface receives a request when three controllers (controller A, controller B, controller C) execute the same processing in parallel in the control cycle of cycle n (n is a natural number). Then, the network interface performs load checks on the three controllers.
[0038]
If the three controllers can execute the request as a result of the load check, processing timing information is added to the request and transmitted to the three controllers. In this case, the network interface adds information specifying the timing for executing the request as processing timing information, but assigns a processing timing to which processing is not assigned to the timing for executing the request. When each of the three controllers receives a request, the three controllers execute the request at the processing timing specified by the processing timing information.
[0039]
In this case, each of the three controllers accesses each database at the processing timing after updating the current value of the database, reads the current value, and transmits it to the network interface as a response to the request. The network interface receives the response transmitted from each controller, compares the contents (current values), and outputs one of two or more responses with matching contents to the control LAN. Send to monitoring device. In this case, since all three response contents match, the three controllers continue to perform the same operation as described with reference to FIG. Here, the processing operation at the processing timing other than the request processing of the three controllers and the operation of the process device interface are the same as those described with reference to FIG.
[0040]
Next, an operation when the network interface detects a response mismatch will be described. FIG. 7 is a sequence diagram for explaining the operation of the process control apparatus according to the first embodiment, and shows the operation when the network interface detects a mismatch in the responses from the three controllers. In FIG. 7, since the three controllers execute the request at the processing timing specified by the processing timing information added to the request and transmit a response to the network interface, the description is the same as the description in FIG. Is omitted.
[0041]
After the network interface receives the responses transmitted from the respective controllers, the contents (current values) are compared, and if the response contents of the controller A do not match the response contents of the other two controllers, the network interface The interface outputs the responses of the controllers B and C whose contents are the same as a response to the request to the control LAN, transmits the response to the monitoring device, and transmits an abnormality notification to the controller A.
[0042]
When the controller A receives the abnormality notification, the controller A executes the abnormality process and disconnects from the control calculation process. On the other hand, the controller B and the controller C continue to perform the same operation as described in FIG. Even after the controller A is disconnected, the network interface and the process equipment interface perform the same operation as before as long as the responses and control data of the controller B and the controller C coincide with each other. Continue control.
[0043]
Next, the operation when the process equipment interface detects a mismatch in commands and control data between the three controllers will be described. FIG. 8 is a sequence diagram for explaining the operation of the process control apparatus according to the first embodiment, and shows the operation when the process equipment interface detects a mismatch between commands and control data among the three controllers. In FIG. 8, since the three controllers execute the control calculation designated at a predetermined processing timing and transmit the control data of the calculation result to the process equipment interface, the description is the same as the description in FIG. Omitted.
[0044]
After the process equipment interface receives the command and control data transmitted from each controller, the process equipment interface compares the contents and detects that the contents of the controller C do not match the contents of the other two controllers. Outputs the command and control data of the controller A and the controller B whose contents are the same to the IO bus, transmits them to the process equipment, and transmits an abnormality notification to the controller C.
[0045]
When the controller C receives the abnormality notification, the controller C executes the abnormality process and disconnects from the control calculation process. On the other hand, the controller A and the controller B continue to perform the same operation as described in FIG. Even after the controller C is disconnected, the network interface and the process equipment interface perform the same operation as before as long as the responses and control data of the controller A and the controller B match. Continue control.
[0046]
As described above, the process control apparatus according to this embodiment operates three controllers that perform control arithmetic processing in parallel, compares these output data, and operates while two or more of them match. Therefore, even if an abnormality occurs in one of the controllers and the control calculation process is disconnected, the process control can be continued without interruption. In this embodiment, the three controllers are described as operating in parallel. However, the number is not limited to three, and may be three or more. As the number of controllers to be operated in parallel is increased from 3, the number of controller abnormalities that are allowed to continue uninterrupted process control can be increased. Therefore, an optimal number may be selected based on the reliability required for the process control device and the reliability of the controller.
[0047]
In addition, since the controller that performs control operation processing has a redundant configuration by parallel execution, ensuring the reliability of the network interface and the process equipment interface ensures the reliability of the entire process control device without requiring high reliability in the controller. Can be secured. For this reason, a low-price commercial product can be used for the controller, and the cost can be reduced while ensuring reliability. In addition, since it becomes possible to use commercially available products with early generation changes, it is possible to improve the processing capability in a timely manner by improving semiconductor technology, and to shorten the product development period.
[0048]
In addition, since the network interface and process equipment interface constantly check that the controller output is normal, sufficient reliability can be secured as a process control device, so the memory system used by the controller has an error correction function. It is not necessary to provide a multi-bit error that may be caused by a cosmic ray that cannot be corrected by the error correction function, thereby further reducing the cost.
[0049]
Next, with reference to FIG. 9 and FIG. 10, a configuration for synchronizing the processing timing in each controller 20 operating in parallel will be described. FIG. 9 is an explanatory diagram showing processing timing signals supplied to the controller. FIG. 10 is a timing chart showing a configuration example of the processing timing signal.
As shown in FIG. 9, the processing timing signal 103 is supplied in parallel to each controller 20 from the processing timing signal generation unit 35 (see FIG. 4) of the process equipment interface 30 via the timing signal bus 51. The request processing unit 21, the arithmetic processing unit 23, and the input / output processing unit 24 (see FIG. 3) of each controller 20 determine the processing content based on the content of the processing timing signal 103.
[0050]
As shown in FIG. 10, the processing timing signal 103 includes 3-bit parallel signals, that is, processing timing signals 103A to 103C, and a code that circulates every control cycle (for example, 100 ms) is output. Here, for each control cycle, eight processing timings t1 to t8 are provided corresponding to the code value, and each controller 20 identifies the processing timing based on the code value with respect to each processing timing. For example, a processing request from a higher-level monitoring device or control for a lower-level process device is executed.
[0051]
As described above, the processing timing signal 103 is supplied to each controller 20 in parallel, and the contents to be processed are determined based on the processing timing signal 103 in each controller 20. It is possible to execute processing of the same content in synchronization.
As a result, it is not necessary to completely synchronize the processing in the microprocessor using a common operation clock in each controller 20 as in the prior art, and individual operation clocks can be used.
[0052]
Therefore, even if each controller has a malfunction that occurs due to a specific operation timing, the probability of the malfunction occurring simultaneously in a plurality of controllers is extremely low, and the majority of the outputs / responses of these controllers are determined. The influence on the entire process control apparatus 1 can be avoided, and a stable control operation can be realized.
In addition, an expensive circuit configuration for synchronizing the operations of the controllers using the common clock is unnecessary, and the product cost can be greatly reduced. Furthermore, it is not necessary to use a device having the same configuration as the controller, and the system configuration is flexible.
[0053]
As a code used for the processing timing signal 103, a general binary number may be used. At this time, since a plurality of bits change at the same time, when variations occur in the bit detection in the controller 20, it may be recognized that the codes are instantaneously recognized as different codes.
In the present embodiment, a gray code as shown in FIG. 10 is used as the processing timing signal 103. This gray code is a code in which only one bit changes when transitioning from an arbitrary value to the next value. Therefore, when the processing timing changes, it is possible to avoid misidentification of codes due to variations in bit detection, and each controller 20 can realize stable synchronization of processing timing.
[0054]
Next, controller management processing by the network interface 10 will be described with reference to FIGS. 11 and 12. FIG. 11 is a configuration example of a request (message) transmitted from the network interface 10 to each controller 20. FIG. 12 shows an example of a processing schedule in each controller.
As described above, the network interface 10 transmits a request from the request distribution unit 13 (see FIG. 2) via the internal LAN 40 when instructing each controller 20 to perform processing.
[0055]
As shown in FIG. 11, this request is one of the packets used in Ethernet (registered trademark), and includes a header 41 for storing information on the packet such as the packet transmission destination, transmission source, packet type, and the content of the request. The data section 42 stores information to be shown.
The data part 42 stores a request ID 43 for identifying the request, a request content 44 in which the request content is encoded, and processing timing information 45 indicating the timing for executing the request. For example, in the case of a request for instructing each controller 20 to change a setting value, the request content 44 is a process device to be processed, that is, a point ID 44A indicating a control point, a processing type 44B indicating a processing type, and its processing The processing data 44C used in the above is set. Further, the processing timing information 45 is set with a gray code defined by the processing timing signal 103.
[0056]
In each controller 20, such a request is received by the request processing unit 21, and the content is analyzed and executed. At this time, the processing content is determined from the request content 44, and the processing timing is determined from the processing timing information 45.
In the example of the request 46 in FIG. 11, since the processing type 44B indicates “setting value update”, the request processing unit 21 extracts the “DB setting value” of the processing data 44C and sets a new setting corresponding to the point ID 44A. Write to the database 22 as a value. This processing is executed when the gray code of the processing timing signal 103 from the process device interface 30 indicates “011”, that is, the processing timing t3. Thereby, in each controller 20, a new set value is written simultaneously in synchronization with the next processing timing t3.
[0057]
Further, in the example of the request 47 in FIG. 11, since the processing type 44A indicates “read current value”, the request processing unit 21 reads the current value obtained from the process device stored in the database 22, Notify the network interface 10. This processing is executed when the gray code of the processing timing signal 103 from the process device interface 30 indicates “101”, that is, processing timing t5. As a result, the current values are simultaneously read from the respective controllers 20 in synchronization with the next processing timing t5.
The read current value is notified from the controller 20 to the network interface 10 as a response. At this time, the request ID of the corresponding request is also notified by the response, so that it is possible to identify which request each response corresponds to. it can.
[0058]
In this way, the processing timing signal 103 is supplied to each controller 20 in parallel, and each controller 20 determines the contents to be processed based on the processing timing signal 103, and is sent from the network interface 10 to each controller 20. In this request, the timing for executing the requested processing is designated, so that the processing of the same contents can be executed almost synchronously between the controllers 20, and the output / response of the controller can be determined with a majority decision with high accuracy. can do.
Further, unlike the prior art, it is not necessary to completely synchronize the processing in the microprocessor using the operation clock common to the controllers 20, and it is possible to use individual operation clocks.
[0059]
Therefore, even when each controller has a malfunction that occurs due to the specific operation timing, the probability of the malfunction occurring simultaneously in a plurality of controllers is extremely low, and a stable control operation can be realized.
In addition, an expensive circuit configuration for synchronizing the operations of the controllers using the common clock is unnecessary, and the product cost can be greatly reduced. Furthermore, it is not necessary to use a device having the same configuration as the controller, and the system configuration is flexible.
[0060]
In each controller 20, a preset process is performed at each processing timing in this way. In the sequence of FIG. 6 described above, as shown in FIG. 12, the “measurement data request” process to the process device is first performed at the processing timing t1, and the “request acceptance” process is performed at the processing timing t2. Further, “DB current value update” processing for storing the measurement data obtained from the process equipment in the database 22 at the processing timing t3 is performed, and “DB current value reading” processing based on the request is performed at the processing timing t4. Then, after processing timing t5 in which processing is not set, “control calculation” processing for calculating control data for the process equipment is performed at processing timing t6, and the calculation result is stored in the database 22 at processing timing t7. “DB control data update” processing is performed, and “control data transmission” processing to the process device is performed at processing timing t8.
[0061]
Such processing scheduling is managed by the load check unit 12 of the network interface 10, and when a new process is requested, a request is issued by designating a process timing at which no process is set.
At this time, when a new process is requested to the controller 20 based on the request from the monitoring device 2, the load check unit 12 determines whether it is acceptable based on the scheduling as described above. If it is overloaded and cannot be accepted, the monitoring device 2 is notified of the unacceptability. Thereby, an overload to the controller 20 can be avoided in advance, and stable process control can be realized.
[0062]
All processing at each processing timing may be specified to the controller 20 from the network interface 10 side. However, routine processing performed by each controller 20, for example, “measurement data request”, “DB current value” For processing related to process device control such as “update”, “control calculation”, “DB control data update”, “control data transmission”, the processing timing may be fixedly assigned in advance. Request processing at can be omitted.
[0063]
Next, a second embodiment of the present invention will be described. The process control apparatus of this embodiment is different from the first embodiment in that it has a self-diagnosis function for confirming whether or not the databases of the three controllers are correct. This self-diagnosis function issues a request to the response / request transmission / reception unit 11 of the network interface 10 shown in FIG. 2 to transmit the data of the database 22 shown in FIG. This can be realized by providing a function of discarding data sent to the response / request transmission / reception unit 11 in response to a request. That is, a program for realizing the self-diagnosis function may be added to the nonvolatile semiconductor memory storing the program for realizing the function of the network interface 10.
[0064]
In this case, the request for the self-diagnosis function issued by the response / request transmission / reception unit 11 is transmitted to the three controllers 20 only when the load on the controller 20 is light by the action of the load check unit 12. The request transmitted to the controller 20 is executed by the request processing unit at a predetermined timing, and the data in the database 22 is read for each predetermined unit and sequentially transmitted to the network interface 10. Data in the database 22 transmitted from the three controllers 20 are compared by the response comparison unit 15, and the abnormality notification unit 16 is notified of the controller in which the mismatch is detected. As a result, the abnormality notification unit 16 transmits an abnormality notification to the controller, and the controller that has received the abnormality notification executes abnormality processing and disconnects from the control calculation processing.
[0065]
According to this embodiment, by comparing the data of the databases 22 of the three controllers 20 in the background, it is possible to detect errors in the RAM that stores the data of the databases 22. For this reason, it is possible to detect an error that has occurred in an area that is not frequently used, and to remove the controller 20 in which an abnormality has occurred.
[0066]
Next, a third embodiment of the present invention will be described with reference to FIG. FIG. 13 is a block diagram showing a third embodiment of the process control apparatus of the present invention.
The process control device 6 of this embodiment is different from the first embodiment in that the network interface 10, the process equipment interface 30, the internal LAN 40, and the data communication path 50 are configured redundantly. In FIG. 13, the process control device 6 includes two network interfaces 10 (network interface A, network interface B) having the same configuration, three controllers 20 (controller A, controller B, controller C) having the same configuration, and 2 Two process device interfaces 30 (process device interface A and process device interface B) having the same configuration are provided.
[0067]
The two network interfaces 10 are connected to the three controllers 20 via different internal LANs 40 (A-system internal LAN, B-system internal LAN), and are configured to be able to communicate with the three controllers 20, respectively. . In this case, the network interface A is connected to the three controllers 20 via the A-system internal LAN, and the network interface B is connected to the three controllers 20 via the B-system internal LAN.
[0068]
The two process equipment interfaces 30 are individually connected to the three controllers 20 via the data communication path 50, and are configured to be capable of one-to-one communication with them. In addition, a control signal line 60 is connected between the two process equipment interfaces 30 so that control signals can be transmitted to each other.
Further, the two process equipment interfaces 30 are connected to the two network interfaces 10 and the three controllers 20 via buses (not shown) of different systems.
[0069]
The two network interfaces 10 are connected to the monitoring device 2 via control LANs 3 (A-system control LAN and B-system control LAN) of different systems, and are configured to be able to communicate with the monitoring device 2 respectively. . In this case, the network interface A is connected to the monitoring device 2 via the A-system control LAN, and the network interface B is connected to the monitoring device 2 via the B-system control LAN. Each of the two process device interfaces 30 is connected to two external IO buses 5 (A system IO bus and B system IO bus) to which the process device 4 is connected.
[0070]
In this process control device 6, two network interfaces 10 and three controllers 20 operate in parallel, one of the two process device interfaces 30 always operates as a master (active system), and the other operates as a slave (standby system). Waiting. The two network interfaces 10 separately give the requests of the monitoring device 2 received via the control LANs 3 of different systems to each of the three controllers 20, and in the response from each of the three controllers 20 to this request A response determined by majority decision is output to the control LAN 3 to which each is connected, and the response is sent to the monitoring device 2.
[0071]
The two network interfaces 10 are different from those described in the first embodiment or the second embodiment in that there are two digital input interfaces for processing timing signal input, and both master and slave processes. That is, when the processing timing signal output from the device interface 30 is input and the master processing timing signal is not input, the processing is continued based on the processing timing signal on the slave side.
[0072]
Of the same requests given from the two network interfaces 10, each of the three controllers 20 processes only the previously given request and outputs a response to this request to the two network interfaces 10. Further, command generation and process control operations are performed on the process device 4, and the generated commands and operation results are output to the two process device interfaces 30 as control data.
[0073]
Here, of the same requests given from the two network interfaces 10, only the request given first can be processed because the requests sent by the monitoring device have the same message header in the A system and the B system. Therefore, when the response / request transmission / reception unit 11 receives the same message, it determines that the message received later is the same as the message received earlier and ignores it.
[0074]
The three controllers 20 are different from those described in the first embodiment or the second embodiment in that a LAN interface for the internal LAN 40, a communication interface for the data communication path 50, and a processing timing signal 103 input. The response / request transmission / reception unit 11 performs transmission / reception via the two internal LANs 40, and the input / output processing unit 24 performs transmission / reception via the two data communication paths 50. When the processing timing signal output from both the master and slave process device interfaces 30 is input and the master processing timing signal is not input, processing is performed based on the slave processing timing signal. It was to continue.
[0075]
The process equipment interface 30 controls the process equipment 4 by outputting one control data determined by majority decision from the control data outputted from each of the three controllers 20 to the two IO buses 5 on the master side, and controlled by the slave side. A standby operation for confirming the operation on the master side is performed via the signal line 60. The slave-side process device interface 30 switches to the master when detecting the stop of the master-side operation. Further, the two process equipment interfaces 30 output processing timing signals to buses (not shown) to which the process equipment interfaces 30 are connected, regardless of the master side or the slave side.
[0076]
The two process device interfaces 30 are different from those described in the first embodiment or the second embodiment in that they have two interfaces for the IO bus 5 and output control data to the two IO buses 5. It is configured to be possible, and it has a digital input / output interface for the control signal line 60 and is configured to be switchable between master and slave. Master / slave switching, for example, outputs a signal indicating that it is operating to the digital input / output interface at all times when it is a master, and monitors the signal input to the digital input / output interface at all times when it is a slave. When the interruption occurs, a program for switching itself to the master is stored in the nonvolatile semiconductor memory, and the CPU can execute the program.
[0077]
With this configuration, the process control apparatus according to this embodiment is disconnected from the monitoring apparatus 2 even when an abnormality occurs in any of the network interface 10, the control LAN 3, and the internal LAN 40. Since there is no, processing can be continued normally. Further, even if an abnormality occurs in the operating process device interface 30, the process can be continued by the standby process device interface 30. As described above, the process control apparatus according to this embodiment not only can continue the process control without instantaneous interruption even if an abnormality occurs in one of the controllers 20 and is disconnected from the control arithmetic processing, The process can be continued even when an abnormality occurs in the interface portion connected to the controller 20. For this reason, the reliability can be further improved as compared with the first embodiment.
[0078]
In this embodiment, all the devices connected to the three controllers 20 have a redundant configuration, but not all of them need to have a redundant configuration. By taking into account the reliability required as a process control device and the individual reliability of those connected to the three controllers 20, the required reliability is minimized by adopting a redundant configuration only at necessary locations. It can be obtained with an increase in cost. For example, the process control apparatus includes two network interfaces 10 (network interface A, network interface B) having the same configuration, three controllers 20 (controller A, controller B, controller C) having the same configuration, and one process equipment interface 30. One network interface 10, three identically configured controllers 20 (controller A, controller B, controller C), and two identically configured process equipment interfaces 30 (process equipment interface A, And a process equipment interface B).
[0079]
Next, with reference to FIG. 14, a configuration for synchronizing processing timings in the controllers 20 operating in parallel will be described. FIG. 14 is an explanatory diagram showing processing timing signals supplied to the controller.
As shown in FIG. 14, the processing timing signal 103 is supplied in parallel to each controller 20 from the processing timing signal generation unit 35 (see FIG. 4) of the process equipment interface 30 via the timing signal bus 51. The request processing unit 21, the arithmetic processing unit 23, and the input / output processing unit 24 (see FIG. 3) of each controller 20 determine the processing content based on the content of the processing timing signal 103.
[0080]
As shown in FIG. 10, the processing timing signal 103 includes 3-bit parallel signals, that is, processing timing signals 103A to 103C, and a code that circulates every control cycle (for example, 100 ms) is output. Here, for each control cycle, eight processing timings t1 to t8 are provided corresponding to the code value, and each controller 20 identifies the processing timing based on the code value with respect to each processing timing. For example, a processing request from a higher-level monitoring device or control for a lower-level process device is executed.
[0081]
In the present embodiment, processing timing signals 103 are individually supplied from the two process device interfaces 30 to each controller 20 and each network interface 10. In each controller 20 and each network interface 10, one of the processing timing signals on the master side is selected from the processing timing signals 103 supplied from the two process device interfaces 30 and used to determine the processing timing. As a selection method, it may be determined which is the master side by communication with the process equipment interface 30, or the master side is determined in advance by default, and the processing timing signal from the master side is stopped. When it is detected, it may be switched to the other processing timing signal.
[0082]
As described above, when the process device interface 30 is duplicated, the processing timing signal 103 from each process device interface 30 is supplied to each controller 20 and each network interface 10 individually, and each controller 20 and each network interface 10 is supplied. Then, since one of the processing timing signals 103 supplied from the two process device interfaces 30 is selected and used, each controller 20 can achieve stable processing timing synchronization. .
[0083]
【The invention's effect】
As described above, the present invention is provided as a controller in parallel between the network interface and the process equipment interface, and is performed at the processing timing indicated by the processing timing information added to the request from the network interface. Provided with N (N is a natural number greater than or equal to 3) controllers that execute processing corresponding to the request, the request distribution unit of the network interface performs processing corresponding to the request on the request received from the host device via the network. Processing timing information for instructing the timing to be executed by the controller is added and notified to each controller, and the response comparison unit determines a majority of responses from each controller in response to the request and determines one response to be transmitted to the host device. I will do it Having to, it is possible to perform the processing of the same contents substantially synchronized between the controllers 20, an output / response of the controller can be accurately majority decision.
[0084]
Further, unlike the prior art, it is not necessary to completely synchronize the processing in the microprocessor using an operation clock common to the controllers, and it is possible to use individual operation clocks.
Therefore, even when each controller has a malfunction that occurs due to the specific operation timing, the probability of the malfunction occurring simultaneously in a plurality of controllers is extremely low, and a stable control operation can be realized.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a process control apparatus according to a first embodiment of the present invention.
FIG. 2 is a functional block diagram of the network interface of FIG. 1;
FIG. 3 is a functional block diagram of the controller of FIG. 1;
4 is a functional block diagram of the process equipment interface of FIG. 1. FIG.
FIG. 5 is a sequence diagram for explaining the operation of the process control apparatus according to the first embodiment;
FIG. 6 is a sequence diagram illustrating another operation of the process control apparatus according to the first embodiment.
FIG. 7 is a sequence diagram illustrating another operation of the process control apparatus according to the first embodiment.
FIG. 8 is a sequence diagram illustrating another operation of the process control apparatus according to the first embodiment.
FIG. 9 is an explanatory diagram showing a processing timing signal supplied to a controller.
FIG. 10 is a timing chart illustrating a configuration example of a processing timing signal.
FIG. 11 is a configuration example of a request (message).
FIG. 12 is an example of a processing schedule in each controller.
FIG. 13 is a block diagram showing a configuration of a process control apparatus according to a third embodiment of the present invention.
FIG. 14 is another explanatory diagram showing a processing timing signal supplied to the controller.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1,6 ... Process control apparatus, 2 ... Monitoring apparatus, 3 ... Control LAN, 4 ... Process equipment, 5 ... IO bus, 10 ... Network interface, 11 ... Response / request transmission / reception part, 12 ... Load check part, 13 ... Request Distribution unit, 14 ... Response reception unit, 15 ... Response comparison unit, 16, 34 ... Abnormality notification unit, 20 ... Controller, 21 ... Request processing unit, 22 ... Database, 23 ... Calculation processing unit, 24 ... Input / output processing unit, 25 ... Abnormal processing unit, 30 ... Process device interface, 31 ... Controller communication processing unit, 32 ... Data comparison unit, 33 ... IO bus input / output processing unit, 35 ... Processing timing signal generation unit, 40 ... Internal LAN, 50 ... Data Communication path 51... Timing signal bus 60. Control signal line 103. Processing timing signal

Claims (4)

プロセス制御のための制御演算を行うコントローラと、ネットワークを介して上位装置から受信したリクエストを前記コントローラへ通知するとともに、当該リクエストに対する前記コントローラからの応答を前記上位装置へ送信するネットワークインタフェースと、前記コントローラでの制御演算に基づいてIOバスに接続されているプロセス機器へ制御データを送信するとともに、前記プロセス機器から計測データを受信するプロセス機器インタフェースとを有し、前記ネットワークインタフェースを介して受信された前記リクエストに基づき前記コントローラで制御演算を行い、得られた制御データを前記プロセス機器インタフェースを介して前記プロセス制御機器へ送信することにより前記プロセス機器を制御し、前記プロセス制御機器から得られた計測データを前記コントローラから応答として前記ネットワークインタフェースへ出力し、前記ネットワークインタフェースから前記上位装置へ応答として送信するプロセス制御装置であって、
前記コントローラとして、前記ネットワークインタフェースと前記プロセス機器インタフェースとの間に並列的に設けられ、前記ネットワークインターフェースからのリクエストに付加されている処理タイミング情報で指示された処理タイミングで当該リクエストに対応する処理を実行するN個(Nは3以上の自然数)のコントローラを備え、
前記ネットワークインタフェースは、前記ネットワークを介して前記上位装置から受信したリクエストに、当該リクエストに対応する処理を前記コントローラが実行すべきタイミングを指示する処理タイミング情報を付加して前記各コントローラへ通知するリクエスト配信部と、当該リクエストに対する前記各コントローラからの応答を多数決判定して前記上位装置へ送信する1つの応答を決定する応答比較部とを有することを特徴とするプロセス制御装置。
A controller for performing a control operation for process control, a network interface for notifying the controller of a request received from a host device via a network, and transmitting a response from the controller to the request to the host device; A process device interface for transmitting control data to a process device connected to the IO bus based on a control operation in the controller and receiving measurement data from the process device, and received via the network interface The process control is performed by the controller based on the request, and the process equipment is controlled by transmitting the obtained control data to the process control equipment via the process equipment interface, and the process control The measurement data obtained from the vessel was output to the network interface as a response from the controller, a process control device that transmits as a response from the network interface to the host system,
The controller is provided in parallel between the network interface and the process equipment interface, and performs processing corresponding to the request at the processing timing indicated by the processing timing information added to the request from the network interface. N controllers to execute (N is a natural number of 3 or more)
The network interface adds a processing timing information indicating the timing at which the controller should execute processing corresponding to the request to the request received from the host device via the network, and notifies the controller of the request. A process control device comprising: a distribution unit; and a response comparison unit that determines a response to be sent to the host device by determining majority responses from the controllers in response to the request.
請求項1記載のプロセス制御装置において、
前記リクエスト配信部は、前記各コントローラへ送信したリクエストの処理状況に基づいて、新たに受信したリクエストを処理する処理タイミングを選択し、その処理タイミングを示す処理タイミング情報を当該リクエストに付加することを特徴とするプロセス制御装置。
The process control apparatus according to claim 1, wherein
The request delivery unit selects processing timing for processing a newly received request based on the processing status of the request transmitted to each controller, and adds processing timing information indicating the processing timing to the request. Feature process control device.
請求項1または2のいずれかに記載のプロセス制御装置において、
前記ネットワークインタフェースは、前記各コントローラへ送信したリクエストの処理状況に基づいて、新たに受信したリクエストの受け入れ可否を判断し、受け入れ可の場合にのみ当該リクエストを前記リクエスト配信部へ渡す負荷チェック部を有することを特徴とするプロセス制御装置。
In the process control device according to claim 1 or 2,
The network interface determines whether or not to accept a newly received request based on the processing status of the request transmitted to each of the controllers, and a load check unit that passes the request to the request distribution unit only when the request is acceptable A process control apparatus comprising:
請求項3記載のプロセス制御装置において、
前記負荷チェック部は、前記リクエストが受け入れ不可と判断された場合は、前記上位装置に対してリクエスト実行不可を通知することを特徴とするプロセス制御装置。
The process control apparatus according to claim 3, wherein
The process control device, wherein the load check unit notifies the host device that the request cannot be executed when it is determined that the request cannot be accepted.
JP2001341017A 2001-11-06 2001-11-06 Process control device Expired - Lifetime JP3706332B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001341017A JP3706332B2 (en) 2001-11-06 2001-11-06 Process control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001341017A JP3706332B2 (en) 2001-11-06 2001-11-06 Process control device

Publications (2)

Publication Number Publication Date
JP2003140709A JP2003140709A (en) 2003-05-16
JP3706332B2 true JP3706332B2 (en) 2005-10-12

Family

ID=19155127

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001341017A Expired - Lifetime JP3706332B2 (en) 2001-11-06 2001-11-06 Process control device

Country Status (1)

Country Link
JP (1) JP3706332B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5319499B2 (en) * 2009-11-11 2013-10-16 株式会社日立製作所 Multiplexing controller

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5559502A (en) * 1978-10-30 1980-05-06 Toshiba Corp Synchronous adjustment method for process controller's dual control
JPH11167406A (en) * 1997-12-03 1999-06-22 Olympus Optical Co Ltd Distributed control system and control method of the same
JP4558111B2 (en) * 1998-08-17 2010-10-06 株式会社Ihi Data change method for triple fault tolerant system
JP2000090057A (en) * 1998-09-11 2000-03-31 Omron Corp Group object and control system

Also Published As

Publication number Publication date
JP2003140709A (en) 2003-05-16

Similar Documents

Publication Publication Date Title
EP0760973B1 (en) Method and apparatus for implementing a databus voter to select the command signals from one of several redundant asynchronous digital processing units
US9934111B2 (en) Control and data transmission system, process device, and method for redundant process control with decentralized redundancy
US9170569B2 (en) Method for electing an active master device from two redundant master devices
US11904918B2 (en) Computer interlocking system and switching control method for the same, device, and storage medium
JP3108393B2 (en) Control system using PLC
KR101519719B1 (en) Message process method of gateway
US6038683A (en) Replicated controller and fault recovery method thereof
KR101560497B1 (en) Method for controlling reset of lockstep replicated processor cores and lockstep system using the same
EP0580938B1 (en) Duplex communication control device
JP3884643B2 (en) Process control device
US11301236B2 (en) Updating components of a modular system
JP2020021341A (en) Redundant system
US9003067B2 (en) Network and method for operating the network
JP3706332B2 (en) Process control device
JP2003140704A (en) Process controller
JP7358819B2 (en) IO module duplication control device and method
CN109491236B (en) Method for operating a high-availability automation system
US7000049B1 (en) Systems and methods for reliably selecting bus mastership in a fault tolerant manner
JPH0326936B2 (en)
JPS62187901A (en) Method for controlling duplex controller
JP3904987B2 (en) Data transmission method
JPS6031669A (en) Multiple control system of computer control device
KR960011136B1 (en) Network dualization and its method
JP5604799B2 (en) Fault tolerant computer
US20230229131A1 (en) Redundant Automation System and Method for Operating the Redundant Automation System

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040601

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050719

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: 20050726

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050728

R150 Certificate of patent or registration of utility model

Ref document number: 3706332

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080805

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090805

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100805

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100805

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110805

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120805

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130805

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130805

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140805

Year of fee payment: 9

EXPY Cancellation because of completion of term