(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022152921
(43)【公開日】2022-10-12
(54)【発明の名称】コントローラ及び制御方法
(51)【国際特許分類】
G05B 9/03 20060101AFI20221004BHJP
【FI】
G05B9/03
【審査請求】有
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2021055879
(22)【出願日】2021-03-29
(71)【出願人】
【識別番号】000006507
【氏名又は名称】横河電機株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】長谷川 雄三
(72)【発明者】
【氏名】伊藤 和幸
(72)【発明者】
【氏名】矢島 英治
【テーマコード(参考)】
5H209
【Fターム(参考)】
5H209AA01
5H209BB01
5H209CC01
5H209EE11
5H209FF01
5H209HH13
5H209JJ09
5H209SS01
5H209SS08
5H209TT05
(57)【要約】
【課題】コントローラの冗長化にかかるコストを低減する。
【解決手段】コントローラは、別のコントローラとともに冗長化コントローラを構成するコントローラであって、プラントのプロセス制御に必要な制御演算を実行可能な外部装置と通信する通信機能部と、通信機能部を介して外部装置から取得した制御演算の結果をプロセス制御に反映させるアクティブ状態、及び、制御演算の結果をプロセス制御に反映させないスタンバイ状態を含む複数の状態の間で、コントローラの状態を切り替える冗長化管理部と、を備え、冗長化管理部は、コントローラ及び別のコントローラの一方がアクティブ状態であるように、コントローラの状態を切り替える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
別のコントローラとともに冗長化コントローラを構成するコントローラであって、
プラントのプロセス制御に必要な制御演算を実行可能な外部装置と通信する通信機能部と、
前記通信機能部を介して前記外部装置から取得した前記制御演算の結果を前記プロセス制御に反映させるアクティブ状態、及び、前記制御演算の結果を前記プロセス制御に反映させないスタンバイ状態を含む複数の状態の間で、前記コントローラの状態を切り替える冗長化管理部と、
を備え、
前記冗長化管理部は、前記コントローラ及び前記別のコントローラの一方がアクティブ状態であるように、前記コントローラの状態を切り替える、
コントローラ。
【請求項2】
前記冗長化コントローラを構成するために一時的に利用される、
請求項1に記載のコントローラ。
【請求項3】
前記複数の状態は、前記制御演算の結果を取得しない停止状態を含み、
前記冗長化管理部は、前記別のコントローラが前記アクティブ状態のときに、任意のタイミングで、前記コントローラを前記スタンバイ状態及び前記停止状態の間で切り替える、
請求項1又は2に記載のコントローラ。
【請求項4】
前記外部装置の利用に応じて料金が設定される、
請求項3に記載のコントローラ。
【請求項5】
前記冗長化管理部は、前記制御演算に必要なデータを前記別のコントローラから前記コントローラにコピーし、前記コピーしたデータを、前記通信機能部を介して前記外部装置に送信し、前記外部装置から前記制御演算の結果を取得する、
請求項1~4のいずれか1項に記載のコントローラ。
【請求項6】
前記外部装置は、複数の異なる制御演算を実行可能であり、
前記冗長化管理部は、前記複数の異なる制御演算のうちの少なくとも1つの制御演算の結果を、前記通信機能部を介して前記外部装置から取得可能である、
請求項1~5のいずれか1項に記載のコントローラ。
【請求項7】
別のコントローラとともに冗長化コントローラを構成するコントローラによる制御方法であって、
プラントのプロセス制御に必要な制御演算を実行可能な外部装置と通信することと、
前記通信を介して前記外部装置から取得した前記制御演算の結果を前記プロセス制御に反映させるアクティブ状態、及び、前記制御演算の結果を前記プロセス制御に反映させないスタンバイ状態を含む複数の状態の間で、前記コントローラの状態を切り替えることと、
を含み、
前記切り替えることでは、前記コントローラ及び前記別のコントローラの一方がアクティブ状態であるように、前記コントローラの状態を切り替える、
制御方法。
【請求項8】
前記コントローラを、前記冗長化コントローラを構成するために一時的に利用する、
請求項7に記載の制御方法。
【請求項9】
前記複数の状態は、前記制御演算の結果を取得しない停止状態を含み、
前記切り替えることでは、前記別のコントローラが前記アクティブ状態のときに、任意のタイミングで、前記コントローラを前記スタンバイ状態及び前記停止状態の間で切り替える、
請求項7又は8に記載の制御方法。
【請求項10】
前記外部装置の利用に応じて料金が設定される、
請求項9に記載の制御方法。
【請求項11】
前記制御演算の結果を取得することでは、前記制御演算に必要なデータを前記別のコントローラから前記コントローラにコピーし、コピーしたデータを、前記外部装置に送信し、前記外部装置から前記制御演算の結果を取得する、
請求項7~10のいずれか1項に記載の制御方法。
【請求項12】
前記外部装置は、複数の異なる制御演算を実行可能であり、
前記切り替えることでは、前記複数の異なる制御演算のうちの少なくとも1つの制御演算の結果を、前記通信を介して前記外部装置から取得可能である、
請求項7~11のいずれか1項に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コントローラ及び制御方法に関する。
【背景技術】
【0002】
制御演算結果を用いてプラントのプロセス制御を行うコントローラが知られている(例えば特許文献1を参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
2つのコントローラを用いた冗長化構成が採用されることもある。一方のコントローラはアクティブ状態であり、他方のコントローラはスタンバイ状態である。異常発生時等には、必要に応じて、スタンバイ状態のコントローラがアクティブ状態に切り替わる。ただし、切り替えの発生自体が稀であり、スタンバイ状態のコントローラの稼働率が極めて低くなるため、コストパフォーマンスの問題がある。
【0005】
本発明は、コントローラの冗長化にかかるコストを低減することを目的とする。
【課題を解決するための手段】
【0006】
一側面に係るコントローラは、別のコントローラとともに冗長化コントローラを構成するコントローラであって、プラントのプロセス制御に必要な制御演算を実行可能な外部装置と通信する通信機能部と、通信機能部を介して外部装置から取得した制御演算の結果をプロセス制御に反映させるアクティブ状態、及び、制御演算の結果をプロセス制御に反映させないスタンバイ状態を含む複数の状態の間で、コントローラの状態を切り替える冗長化管理部と、を備え、冗長化管理部は、コントローラ及び別のコントローラの一方がアクティブ状態であるように、コントローラの状態を切り替える。
【0007】
一側面に係る制御方法は、別のコントローラとともに冗長化コントローラを構成するコントローラによる制御方法であって、プラントのプロセス制御に必要な制御演算を実行可能な外部装置と通信することと、通信を介して外部装置から取得した制御演算の結果をプロセス制御に反映させるアクティブ状態、及び、制御演算の結果をプロセス制御に反映させないスタンバイ状態を含む複数の状態の間で、コントローラの状態を切り替えることと、を含み、切り替えることでは、コントローラ及び別のコントローラの一方がアクティブ状態であるように、コントローラの状態を切り替える。
【発明の効果】
【0008】
本発明によれば、コントローラの冗長化にかかるコストを低減することができる。
【図面の簡単な説明】
【0009】
【
図1】実施形態に係るコントローラが用いられる冗長化コントローラの概略構成の例を示す図である。
【
図2】冗長化コントローラにおいて実行される処理の例を示すフローチャートである。
【
図3】冗長化コントローラにおいて実行される処理の例を示すフローチャートである。
【
図4】冗長化コントローラにおいて実行される処理の例を示すフローチャートである。
【
図5】冗長化コントローラにおいて実行される処理の例を示すフローチャートである。
【
図6】変形例に係る冗長化コントローラの概略構成の例を示す図である。
【
図7】変形例に係るコントローラ及び外部装置の概略構成の例を示す図である。
【
図8】コントローラのハードウェア構成の例を示す図である。
【発明を実施するための形態】
【0010】
以下、図面を参照しつつ実施形態について説明する。同一の要素には同一の符号を付し、重複する説明は適宜省略する。
【0011】
図1は、実施形態に係るコントローラが用いられる冗長化コントローラの概略構成の例を示す図である。例示される冗長化コントローラ4は、制御システム100に適用される。制御システム100は、プラント1の制御に用いられる。冗長化コントローラ4は、プラント1のプロセス制御(運転制御等)を行う。プラント1には、さまざまなフィールドデバイス2が設けられる。
図1には、フィールドデバイス2として、センサ21及びアクチュエータ22が例示される。
【0012】
フィールドデバイス2は、入出力機器3に接続される。入出力機器3は、フィールドデバイス2と後述の冗長化コントローラ4との間のデータの受け渡しを担う。例えば、入出力機器3は、冗長化コントローラ4からの要求に応じて、フィールドデバイス2から制御データを取得し、冗長化コントローラ4に渡す。また、入出力機器3は、冗長化コントローラ4から制御データを受け取り、フィールドデバイス2に与える。これにより、制御データ(後述の制御演算結果等)が、プラント1のプロセス制御に反映される。
【0013】
「制御データ」は、プロセスデータ、制御パラメータ等を含む。プロセスデータの例は、センサ21の検出結果(例えば圧力、温度、流量等)等である。制御パラメータの例は、プラント1の運転制御における設定パラメータ等であり、例えばアクチュエータ22の設定値等である。制御データが入出力機器3を介してフィールドデバイス2から取得されたりフィールドデバイス2に与えられたりするので、本開示では、「制御データ」を、「入出力データ」という場合もある。
【0014】
制御システム100は、冗長化コントローラ4と、外部装置5と、端末装置6とを含む。上述のフィールドデバイス2及び/又は入出力機器3も、制御システム100の構成要素であってよい。
【0015】
冗長化コントローラ4は、後述の制御演算の結果を用いてプラント1のプロセス制御を行う。冗長化コントローラ4は、フィールドデバイス2のデータを取得したりフィールドデバイス2にデータを与えたりできるように、入出力機器3と通信可能に接続される。冗長化コントローラ4と入出力機器3とを接続する通信線を、制御バスCBと称し図示する。
【0016】
冗長化コントローラ4は、可用性において高水準を満たすように、冗長化された構成(冗長化構成)を備える。可用性とは、何らかの異常が発生しても継続して稼働できる能力を意味する。冗長化コントローラ4は、各々がプラント1のプロセス制御を行うことのできる複数のコントローラを備えることによって冗長化される。
【0017】
具体的に、冗長化コントローラ4は、コントローラ41と、コントローラ42とを含む。冗長化コントローラ4を構成するコントローラ41及びコントローラ42のうち、例えばコントローラ42が、実施形態に係るコントローラであってよい。コントローラ42からみたときに、コントローラ41は、冗長化コントローラ4を構成する別のコントローラである。コントローラ41は、制御演算の結果を用いてプラント1のプロセス制御を行うための第1のコントローラである。コントローラ42は、制御演算の結果を用いてプラント1のプロセス制御を行うための第2のコントローラである。
【0018】
コントローラ41及びコントローラ42の各々は、制御バスCBを介して、入出力機器3に接続される。これにより、コントローラ41及びコントローラ42の各々が、入出力機器3との間で制御データの送受信を行える。
【0019】
コントローラ41及びコントローラ42どうしは、システムバスSBを介して、互いに接続される。冗長化に必要なさまざまなデータが、コントローラ41とコントローラ42との間で送受信される。詳細は後述する。
【0020】
コントローラ41は、制御演算部411と、冗長化管理部412と、フィールド入出力機能部413と、冗長化入出力機能部414とを含む。コントローラ42は、冗長化管理部422と、フィールド入出力機能部423と、冗長化入出力機能部424と、通信機能部425とを含む。
【0021】
コントローラ41の制御演算部411は、プロセス制御に必要な制御演算を実行する。プロセス制御に関するあらゆる制御演算が実行されてよい。制御演算の例は、制御データを用いたPID制御等である。所与の制御アプリケーション等で規定されるさまざまな制御も、制御演算に含まれてよい。制御演算の結果(制御演算結果)がプラント1のプロセス制御に反映される(入出力機器3に送信されセンサ21に与えられる)ことにより、プラント1が実際に制御される。
【0022】
コントローラ41の冗長化管理部412及びコントローラ42の冗長化管理部422は、冗長化を管理する部分であり、冗長化に必要なさまざまな処理を実行する。具体的な処理のいくつかの例について述べる。
【0023】
冗長化管理部412及び冗長化管理部422による処理の例は、等値化である。等値化は、制御演算に必要なデータを、コントローラ41及びコントローラ42の一方のコントローラから他方のコントローラにコピーすることを含む。制御演算に必要なデータの例は、制御データ(入出力データ)及び制御演算に必要な内部データ等である。等値化により、コントローラ41とコントローラ42との間で、制御演算に必要なデータが共有(共通化)される。
【0024】
冗長化管理部412及び冗長化管理部422による処理の他の例は、制御演算結果の取得である。冗長化管理部412は、制御演算部411から、制御演算結果を取得可能である。制御演算部411は、制御演算に必要な入出力データ(制御データ)を冗長化管理部412に要求する。冗長化管理部412は、要求された入出力データを制御演算部411に渡す。制御演算部411は、受け取った入出力データを用いて制御演算を実行し、制御演算結果を冗長化管理部412に渡す。このようにして、冗長化管理部412は、制御演算部411から、制御演算結果を取得することができる。また、冗長化入出力機能部424は、後述の外部装置5の制御演算部51から、制御演算結果を取得可能である。これについては後に改めて説明する。
【0025】
冗長化管理部412及び冗長化管理部422による処理の他の例は、コントローラ41及びコントローラ42の異常検知である。異常検知の一例は、同期外れ検知である。例えば、冗長化管理部412及び冗長化管理部422は、コントローラ41及びコントローラ42が同期して動作するように、コントローラ41及びコントローラ42を制御する。同期手法は特に限定されないが、例えば、コントローラ41及びコントローラ42の各々が実行ステップ数を互いに通知するステップカウント(特許文献1も参照)等の手法が用いられてよい。ソフトウェア自身で同期処理を実行するようなプログラムが準備され、そのソフトウェアによって同期処理が実行されてもよい。同期に必要な情報は、システムバスSBを介してやり取りされる。これらの例に限らず、さまざまな異常検知が採用されてよい。
【0026】
冗長化管理部412及び冗長化管理部422による処理の他の例は、コントローラ41及びコントローラ42の状態管理である。例えば、冗長化管理部412及び冗長化入出力機能部424は、コントローラ41及びコントローラ42が複数の状態のうちのいずれの状態であるのかを管理する。
【0027】
複数の状態の例は、アクティブ状態、スタンバイ状態及び停止状態等である。アクティブ状態は、その状態のコントローラにおいて取得された制御演算結果が、プラント1のプロセス制御に反映される(入出力機器3に送信されフィールドデバイス2に与えられる)状態である。スタンバイ状態は、その状態のコントローラにおいて取得可能である制御演算結果はプラント1のプロセス制御に反映されない(入出力機器3に送信されずフィールドデバイス2に与えられない)状態である。停止状態では、その状態のコントローラによっては制御演算結果が取得されない状態である。
【0028】
冗長化管理部412及び冗長化管理部422による処理の他の例は、コントローラ41及びコントローラ42の状態の切り替えである。コントローラ41とコントローラ42とで分けて説明する。
【0029】
コントローラ41において、冗長化管理部412は、制御演算部411から制御演算結果を取得し、取得した制御演算結果をプラント1のプロセス制御に反映させる(冗長化入出力機能部414を介して入出力機器3に送信する)ことにより、コントローラ41をアクティブ状態に切り替える。冗長化管理部412は、制御演算部411の制御演算結果をプラント1のプロセス制御に反映させないことにより、コントローラ41をスタンバイ状態に切り替える。スタンバイ状態では、制御演算部411の制御演算結果は、冗長化管理部412によって取得されてもよいし取得されなくてもよい。冗長化管理部412は制御演算部411から制御演算結果を取得せず、(当然ながら)プロセス制御に反映もさせないことにより、コントローラ41を停止状態に切り替える。停止状態では、制御演算部411による制御演算自体が実行されなくて(停止されても)もよい。
【0030】
コントローラ42において、冗長化管理部422は、後述する外部装置5から制御演算結果を取得し、取得した制御演算結果をプラント1のプロセス制御に反映させることにより、コントローラ42をアクティブ状態に切り替える。冗長化管理部422は、後述の外部装置5の制御演算部51の制御演算結果をプラント1のプロセス制御に反映させないことにより、コントローラ42をスタンバイ状態に切り替える。スタンバイ状態では、外部装置5の制御演算部51の制御演算結果は、冗長化管理部412によって取得されてもよいし取得されなくてもよい。冗長化管理部422は、外部装置5から制御演算結果を取得せず、プロセス制御に反映もさせないことにより、コントローラ42を停止状態に切り替える。停止状態では、外部装置5の制御演算部51による制御演算自体が実行されなくても(停止されても)よい。
【0031】
切り替えの例について述べる。コントローラ41の冗長化管理部412及びコントローラ42の冗長化管理部422は、コントローラ41及びコントローラ42の一方がアクティブ状態であるように、コントローラ41及びコントローラ42の状態を切り替える。例えば、冗長化管理部412及び冗長化入出力機能部424は、異常検知に応じて(異常が発生したことに応じて)、コントローラ41及びコントローラ42の状態を切り替える。例えば、アクティブ状態のコントローラに異常が発生すると、スタンバイ状態のコントローラが、アクティブ状態に切り替えられる。切り替え判断において、後述の自己診断結果も考慮されてよい。
【0032】
上記の例に限らず、さまざまな切り替え手法が用いられてよい。コントローラ41及びコントローラ42が、専用のシステムバスSBを介して接続され、また、冗長化に関する機能(冗長化管理部412等及び冗長化管理部422等)がそれらのコントローラ内に実装されていることにより、迅速な異常検知及び切り替えが可能である。
【0033】
なお、以下では、上述のようなシステムバスSBによって接続されたコントローラ41及びコントローラ42内に冗長化に関する機能が実装されている構成を、「専用のハードウェア構成」ということもある。
【0034】
冗長化管理部412及び冗長化管理部422による処理の他の例は、自己診断である。自己診断の例は、異常発生の原因の特定、プラント1のプロセス制御が可能であるか否か(アクティブ状態からスタンバイ状態への切り替えの要否等)等である。自己診断結果は、システムバスSBを介して、互いに通知等されてよい。これにより、各々の自己診断結果が、コントローラ41の冗長化管理部412及びコントローラ42の冗長化管理部422によって把握(共有)される。
【0035】
上記の例に限らず、さまざまな自己診断が採用されてよい。上述の専用のハードウェア構成を備えることよって、コントローラ41とコントローラ42との間で、互いの自己診断結果が素早く共有される。これにより、異常発生の原因の特定、切り替わりの要否等を迅速に行うことができる。
【0036】
フィールド入出力機能部413及びフィールド入出力機能部423は、制御バスCBを介して、入出力機器3との間で入出力データ(制御データ)を送受信する。例えば、フィールド入出力機能部413又はフィールド入出力機能部423は、入出力データを入出力機器3に要求する。入出力機器3は、要求された入出力データをフィールドデバイス2から取得し、フィールド入出力機能部413又はフィールド入出力機能部423に送信する。また、フィールド入出力機能部413又はフィールド入出力機能部423は、フィールドデバイス2に与えるべき入出力データを入出力機器3に送信する。入出力機器3は、受信した入出力データをフィールドデバイス2に与え、プラント1のプロセス制御に反映させる。
【0037】
ここで、コントローラ41及び入出力機器3の間の入出力データの送受信と、コントローラ42及び入出力機器3の間の入出力データの送受信とは、排他的に行われる。具体的には、アクティブ状態のコントローラだけが、入出力機器3との間で入出力データの送受信を行う。スタンバイ状態のコントローラは、上述の等値化により、アクティブ状態のコントローラから入出力データを取得する。
【0038】
冗長化入出力機能部414及び冗長化入出力機能部424は、システムバスSBを介して、互いに必要な情報の送受信を行う。先に述べた冗長化管理部412及び冗長化管理部422の処理に必要なさまざまな情報が、冗長化入出力機能部414及び冗長化入出力機能部424を介して送受信される。
【0039】
コントローラ42の通信機能部425は、外部装置5と通信する。この例では、外部装置5は、ネットワークNを介してコントローラ42に接続される。外部装置5は、例えば、クラウドコンピューティングを可能にするクラウドサーバ装置である。ネットワークNの例は、インターネット、LAN等である。ネットワークNは、システムバスSBとは異なる通信経路である。
【0040】
外部装置5は、制御演算部51と、通信機能部55とを含む。制御演算部51は、上述のコントローラ41の制御演算部411と同様の機能を備える。通信機能部55は、コントローラ42の通信機能部425と通信する。
【0041】
外部装置5の制御演算部51、通信機能部55、冗長化コントローラ4の通信機能部425及び冗長化管理部422によって、先に説明したコントローラ41の制御演算部411及び冗長化管理部412の機能が実現される。具体的に、制御演算部51は、制御演算に必要な入出力データ(制御データ)を冗長化管理部422に要求する。冗長化管理部422は、要求された入出力データを制御演算部51に送信する。制御演算部51は、送信された入出力データを用いて制御演算を実行し、制御演算結果を冗長化管理部422に送信する。このようにして、冗長化管理部422は、外部装置5から、制御演算結果を取得することができる。外部装置5の制御演算部51からみると、冗長化コントローラ4の冗長化管理部422の機能が、外部装置5の通信機能部55によって呼び出されるともいえる。冗長化コントローラ4の冗長化管理部422からみると、外部装置5の制御演算部51の機能が、冗長化コントローラ4の通信機能部425によって呼び出されるともいえる。
【0042】
端末装置6は、制御システム100のユーザが、コントローラ41及びコントローラ42を操作等するために用いられる。端末装置6は、例えば汎用のPC等によって構成され、図示しない信号線等によってコントローラ41及びコントローラ42それぞれに接続され得る。端末装置6は、ユーザ操作を受け付けるインタフェース等を提供してよい。端末装置6が受け付けるユーザ操作の例は、コントローラ41及びコントローラ42の状態の切り替えである。例えば切り替えを指示する情報(コマンド等)が端末装置6からコントローラ41の冗長化管理部412及びコントローラ42の冗長化管理部422に送信され、切り替えが行われる。これにより、コントローラ41及びコントローラ42の状態の手動切り替えも可能になる。端末装置6を介さないユーザ操作によって切り替えが行われてもよい。そのようなユーザ操作の例は、コントローラ41及びコントローラ42を設置したり取り外したりする(例えば制御カードを抜き差しする)ことである。例えば、コントローラ41がアクティブ状態のときにコントローラ41を取り外すことで、コントローラ41の異常検知を発生させ、コントローラ42をアクティブ状態に切り替えることができる。コントローラ41及びコントローラ42それぞれに、状態切り替え用のスイッチ等が設けられていてもよい。ユーザは、そのスイッチ等を操作することにより、コントローラ41及びコントローラ42の状態を切り替えることもできる。
【0043】
以上説明したようなコントローラ41及びコントローラ42を備えることによって、冗長化コントローラ4が冗長化される。冗長化コントローラ4において、コントローラ42は、制御演算の機能を内部に有しておらず、代わりに、外部装置5の制御演算部51に制御演算を実行させ、その制御演算の結果を取得可能である。演算機能の実装が不要になる分、コントローラ42の機能が簡素化され、その分、コントローラ42のコスト、ひいては冗長化コントローラ4のコストが低減される。
【0044】
外部装置5は、制御演算部51の機能を実現できる範囲内において、任意のコンピューティング環境を用いて実現されてよい。汎用のコンピュータ等を用いることで、制御演算に掛るコストをさらに低減できる可能性が高まる。
【0045】
冗長化中は、コントローラ41及びコントローラ42の一方がアクティブ状態で動作し、他方がスタンバイ状態で動作する。アクティブ状態のコントローラに異常が発生すると、スタンバイ状態のコントローラがアクティブ状態に切り替えられ、プラント1のプロセス制御が継続される。状態切り替えは、先に説明したように、専用のハードウェア構成によって行われる。そのため、例えば冗長化に関する機能ブロックがコントローラの外部において汎用のコンピュータ等(プラットフォーム等)を用いて実現されたり、そのために別途ネットワーク通信等が必要になったりする場合と比較して、高速な切り替えが可能になる。
【0046】
図2~
図5は、冗長化コントローラにおいて実行される処理(冗長化方法、制御方法)の例を示すフローチャートである。
【0047】
図2には、冗長化構成を得るための等値化等の動作が例示される。この動作は、アクティブ状態のコントローラ41とともにコントローラ42が準備(実装等)されている状態で、例えばユーザ操作をトリガとして開始される。ユーザ操作の例は、上述の端末装置6を介したユーザ操作、プラント1のオペレータ等が画面(監視操作用画面等)を見ながら行う操作等である。
【0048】
ステップS1~ステップS3において、制御データのコピーの開始が通知される。コントローラ42の冗長化管理部422は、通信機能部425を介して、コピー開始通知を外部装置5に送信する。外部装置5の制御演算部51は、通信機能部55を介して、コピー開始通知を受信する。
【0049】
ステップS4~ステップS6において、制御データのコピーの開始が許可される。外部装置5の制御演算部51は、通信機能部55を介して、コピー開始許可をコントローラ42に送信する。コントローラ42の冗長化管理部422は、通信機能部425を介して、コピー開始許可を受信する。
【0050】
ステップS7及びステップS8において、コピーが要求される。コントローラ42の冗長化管理部422は、冗長化入出力機能部424を介して、コピー要求をコントローラ41に送信する。コントローラ41は、コピー要求を受信する。
【0051】
ステップS9において、コントローラ41は、コピーモードに遷移する。コピー対象の各制御データについて、次に説明するステップS10~ステップS17の処理が実行され、制御データが、コントローラ41から、コントローラ42及び外部装置5にコピーされる(等値化が行われる)。
【0052】
ステップS10及びステップS11において、コントローラ41の冗長化管理部412は、例えば制御演算部411による制御演算が行われたタイミングで、制御データをコントローラ42に送信する。コントローラ42の冗長化入出力機能部424は、制御データを受信する。
【0053】
ステップS12及びステップS13において、コントローラ42の冗長化入出力機能部424は、制御データを冗長化管理部422に渡すとともに、制御データを自メモリに反映する(例えばコントローラ42内の図示しない記憶装置等に記憶する)。
【0054】
ステップS14~ステップS17において、冗長化管理部422は、通信機能部425を介して、制御データを外部装置5に送信する。外部装置5の制御演算部51は、通信機能部55を介して制御データを受信し、また、制御データを自メモリに反映する(例えば外部装置5内の図示しない記憶装置等に記憶する)。
【0055】
上述のステップS10~ステップS17の処理によって、コピー対象のすべての制御データが、コントローラ41から、コントローラ42及び外部装置5にコピーされる。その後、ステップS18に処理が進められる。
【0056】
ステップS18~ステップS20において、コピーの終了が通知される。コントローラ41は、コピー終了通知をコントローラ42に送信し、処理を待機する(待ちになる)。コントローラ42の冗長化管理部422は、冗長化入出力機能部424を介して、コピー終了通知を受信する。
【0057】
ステップS21~ステップS27において、冗長化の開始に向けて処理が進められる。
【0058】
コントローラ42の冗長化管理部422は、冗長化の準備を進めるとともに、冗長化入出力機能部424を介して、冗長化開始通知をコントローラ41に送信する。コントローラ41は、冗長化開始通知を受信し、冗長化を開始するとともに、冗長化開始通知をコントローラ42に送信する。コントローラ42の冗長化管理部422は、冗長化入出力機能部424を介して冗長化開始通知を受信し、冗長化を開始する。
【0059】
ステップS28において、コントローラ41は、制御を開始する。コントローラ41の冗長化管理部412は、これまでと同様に、制御演算部411から制御演算結果を取得する。この例ではコントローラ41はアクティブ状態であり、制御演算結果はプラント1のプロセス制御に反映される。
【0060】
ステップS29~ステップS32において、コントローラ42も制御を開始する。コントローラ42の冗長化管理部422は、通信機能部425を介して、制御データを外部装置5に送信する。外部装置5の制御演算部51は、通信機能部55を介して制御データを受信し、受信した制御データを用いて制御演算を開始する。この例ではコントローラ42はスタンバイ状態であり、制御演算結果はプラント1のプロセス制御には反映はされない。
【0061】
例えば以上のようにして、アクティブ状態のコントローラ41及びスタンバイ状態のコントローラ42によって構成される冗長化コントローラ4が得られる。
【0062】
図3には、コントローラ41及びコントローラ42がアクティブ状態及びスタンバイ状態のときに実行される処理が例示される。
【0063】
ステップS41~ステップS44において、外部装置5の制御演算部51が制御演算を実行するために必要な入出力データが要求される。外部装置5の制御演算部51は、通信機能部55を介して、入出力要求をコントローラ42に送信する。コントローラ42の冗長化管理部422は、通信機能部425を介して、入出力要求を受信する。
【0064】
ステップS44において、コントローラ42の冗長化管理部422は、要求された入出力データが等値化によって得られるまで、処理を待機する(等値化待ちになる)。
【0065】
ステップS45及びステップS46において、コントローラ41が制御演算を実行するために必要な入出力データが要求される。コントローラ41は、入出力要求を入出力機器3に送信する。入出力機器3は、要求された入出力をフィールドデバイス2から取得し、コントローラ41に送信する。コントローラ41は、入出力データを受信する。
【0066】
ステップS47~ステップS51において、入出力データが、コントローラ41から、コントローラ42及び外部装置5にコピーされる。コントローラ41は、入出力データをコントローラ42に送信する。コントローラ42の冗長化管理部422は、冗長化入出力機能部424を介して入出力データを受信し、自メモリに反映する。冗長化管理部422は、等値化待ちを解除し、通信機能部425を介して、入出力データを外部装置5に送信する。外部装置5の制御演算部51は、通信機能部55を介して入出力データを受信し、自メモリに反映する。
【0067】
ステップS52において、コントローラ41は、制御演算を実行する。この例ではコントローラ41はアクティブ状態であり、制御演算結果はプラント1のプロセス制御に反映される。
【0068】
ステップS53において、外部装置5の制御演算部51は、制御演算を実行する。この例ではコントローラ42はスタンバイ状態であり、制御演算結果はプラント1のプロセス制御には反映されない。
【0069】
例えば以上のようにして、アクティブ状態及びスタンバイ状態のコントローラ41及びコントローラ42の両方において同じデータに基づく制御演算結果が取得できるようになる。そのうち、アクティブ状態であるコントローラ41において取得された制御演算結果が、プラント1のプロセス制御に反映される。
【0070】
図4には、コントローラ41及びコントローラ42がスタンバイ状態及びアクティブ状態のときに実行される処理が例示される。
【0071】
ステップS61~ステップS67において、外部装置5の制御演算部51が制御演算を実行するために必要な入出力データが要求され、取得される。外部装置5の制御演算部51は、通信機能部55を介して、入力要求をコントローラ42に送信する。コントローラ42の冗長化管理部422は、通信機能部425を介して、入出力要求を受信する。冗長化管理部422は、フィールド入出力機能部423を介して、入力要求を入出力機器3に送信する。入出力機器3は、要求された入出力データをフィールドデバイス2から取得し、コントローラ42に送信する。コントローラ42の冗長化管理部422は、フィールド入出力機能部423を介して、入出力データを受信する。
【0072】
ステップS68において、コントローラ41は、制御演算に必要な入出力データが等値化によって得られるまで、処理を待機する(等値化待ちになる)。
【0073】
ステップS69~S71において、等値化が行われる。コントローラ42の冗長化管理部422は、冗長化入出力機能部424を介して、入出力データをコントローラ41に送信する。コントローラ41は、入出力データを受信し、自メモリに反映する(例えばコントローラ41内の図示しない記憶装置等に記憶する)。コントローラ42の冗長化入出力機能部424は、等値化が完了したことを冗長化管理部422に通知する。
を用いて、
【0074】
ステップS72~ステップS74において、入出力データが、外部装置5にも送信される。コントローラ42の冗長化管理部422は、通信機能部425を介して、入出力データを外部装置5に送信する。外部装置5の制御演算部51は、通信機能部55を介して、入出力データを受信する。
【0075】
ステップS75において、外部装置5の制御演算部51は、制御演算を実行する。この例では、コントローラ42はアクティブ状態であり、制御演算結果がプラント1のプロセス制御に反映される。
【0076】
ステップS76において、コントローラ41は、制御演算を実行する。この例では、コントローラ41はアクティブ状態であり、制御演算結果はプラント1のプロセス制御には反映されない。
【0077】
例えば以上のようにして、スタンバイ状態及びアクティブ状態のコントローラ41及びコントローラ42の両方において同じデータに基づく制御演算結果が取得できるようになる。そのうち、アクティブ状態であるコントローラ42において取得された制御演算結果が、プラント1のプロセス制御に反映される。
【0078】
図5には、異常発生時の切り替え手順が例示される。手順には、異常検知、異常個所の特定及び切り替えが含まれる。
【0079】
ステップS81~ステップS84において、異常が検知される。コントローラ41は、異常検知をコントローラ42に送信する。コントローラ42の冗長化入出力機能部424は、異常検知を受信することによって異常を検知し、また、フィールド入出力機能部423に異常を通知する。
【0080】
ステップS85~ステップS87において、異常通知が外部装置5にも送信される。コントローラ42の冗長化管理部422は、通信機能部425を用いて、異常通知を外部装置5に送信する。外部装置5の制御演算部51は、通信機能部55を介して、異常通知を受信する。
【0081】
ステップS88において、外部装置5の制御演算部51は、処理を待機する(待ちになる)。この待機は、異常発生時等に生じる特殊な状態(イレギュラーな処理)ともいえる。
【0082】
ステップS89において、コントローラ42の冗長化管理部422は、例えば自己診断を行うことによって、異常個所を特定し、コントローラ42をアクティブ状態に切り替え可能か否か(制御権をコントローラ41からコントローラ42に交代できるか否か)判断する。
【0083】
上記の冗長化管理部422の判断結果に応じて、この後の処理が分岐する。コントローラ42がアクティブ側に切り替え可能な場合の処理を、ステップS90~ステップS94として図示する。切り替え不可能な場合の処理を、ステップS90X~ステップS94Xとして図示する。
【0084】
ステップS90~ステップS94において、コントローラ42がアクティブ状態に切り替わる。コントローラ42の冗長化管理部422は、制御交代処理を実行する。具体的に、冗長化管理部422は、通信機能部425を介して、制御再開を外部装置5に通知する。外部装置5の制御演算部51は、通信機能部55を介して制御再開の通知を受け、制御演算を再開する。制御演算結果がプロセス制御に反映される。
【0085】
ステップS90X~ステップX94Xにおいて、コントローラ42は、改めてスタンバイ状態でリスタートする。コントローラ42の冗長化管理部422は、リスタート処理を実行する。具体的に、冗長化管理部422は、通信機能部425を介して、リスタート要求を外部装置5に送信する。外部装置5の制御演算部51は、通信機能部55を介して、リスタート要求を受信し、リスタートする。これまでと同様に制御演算が行われる。制御演算結果は、プロセス制御には反映されない。
【0086】
例えば以上のようにして、異常発生時に、必要に応じて(例えば診断結果に応じて)、コントローラ41及びコントローラ42の状態が切り替えられる。
【0087】
以上説明した冗長化コントローラ4によれば、冗長化コントローラ4を構成するコントローラ42における演算機能が、外部装置5で実現される。その分、コントローラのコストを削減することができる。汎用のコンピュータ等を外部装置5として用いることにより、制御演算に掛るコストも低減できる可能性も高まる。従って、コントローラの冗長化にかかるコストを低減することが可能になる。また、冗長化に関する機能(冗長化管理部412、冗長化管理部422等)がコントローラ内に実装されることにより、コントローラ41及びコントローラ42の状態の高速な切り替えが可能である。
【0088】
これまでよりも低コストで冗長化コントローラ4を実現できることから、応用範囲も広がる。例えば、冗長化構成が一時的に利用(一時利用)されてよい。通常運転時はコントローラ41だけでプロセス制御を行うシングル構成において、必要な時にだけ、低コストのコントローラ42が追加され冗長化構成が実現されてよい。先に述べたように、コントローラ42は、制御演算結果を取得しない(さらには制御演算自体も実行されなくてよい)停止状態にも切り替わる。コントローラ42がスタンバイ状態と停止状態との間で切り替えられると、コントローラ42がスタンバイ状態のときだけ(つまり一時的に)冗長化構成が得られる。切り替えは、ユーザ操作等によって任意のタイミングで行われてよい。すなわちコントローラ42の冗長化管理部412は、コントローラ41がアクティブ状態のときに、任意のタイミングで、コントローラ42をスタンバイ状態及び停止状態の間で切り替える。これにより、冗長化構成の一時利用が可能になる。
【0089】
例えば、一時的なリスク回避のために冗長化構成が用いられてよい。制御の工程によってリスクの高低がある場合には、比較的リスクが高い時にだけ冗長化構成が用いられてもよい。稼働状況や工程管理を監視しながら、動的に冗長化構成にすることも可能である。
【0090】
プラント1のプロセス制御を止めることなく行う作業(ライブマイグレーション)にも利用できる。例えば、異常が特定されたコントローラに対して、交換作業、修理作業等のエンジニアリング作業を行うために必要な冗長化構成を、低コストで実現できる。コントローラのソフトウェアのアップデート等の作業も可能である。
【0091】
外部装置5の利用に応じて料金が設定されてもよい。例えば、外部装置5の制御演算部51等の機能の利用時間等に応じた料金が、外部装置5に掛る費用としてユーザに請求されてよい。このような課金制のプラットフォームを採用することで、冗長化にかかるコストをさらに低減できる可能性が高まる。
【0092】
以上、本開示の一実施形態について説明した。開示される技術は、上記の実施形態に限られない。いくつかの変形例について説明する。
【0093】
一実施形態において、第1のコントローラも、外部装置5を用いて制御演算結果が取得可能であってよい。これについて、
図6を参照して説明する。
【0094】
図6は、変形例に係る冗長化コントローラの概略構成の例を示す図である。例示される制御システム100Aの冗長化コントローラ4Aは、コントローラ41A及びコントローラ42を含む。コントローラ41Aは、コントローラ41(
図1)と比較して、制御演算部411を備えない代わりに、通信機能部415Aを備える点において相違する。通信機能部415Aは、コントローラ42の通信機能部425と同様の機能を備える。コントローラ41A及びコントローラ42の各々は、対応する外部装置5とそれぞれ通信する。冗長化コントローラ4Aでは、コントローラ41Aにおいても演算機能の実装が不要になる分、さらなるコスト低減が実現される。なお、コントローラ41Aに対応する外部装置5の機能(制御演算部51、通信機能部55)と、コントローラ42に対応する外部装置5の機能とは、1つの外部装置に集約されてもよい。
【0095】
一実施形態において、外部装置は、複数の異なる制御演算を実行可能であってよい。これについて、
図7を参照して説明する。
【0096】
図7は、変形例に係るコントローラ及び外部装置の概略構成の例を示す図である。コントローラ42ABは、外部装置5A及び外部装置5Bの2つの外部装置それぞれと通信可能である。外部装置5Aの制御演算部51Aと、外部装置5Bの制御演算部51Bとは、異なる制御演算を実行する。例えば、コントローラ42ABの冗長化管理部422ABは、制御演算部51A及び制御演算部51Bの少なくとも一方の制御演算の結果を、外部装置5A及び/又は外部装置5Bから取得可能である。演算機能のバリエーションが増える分、プロセス制御の可能性が広がる。冗長化管理部422ABは、制御演算部51A及び制御演算部51Bの両方の制御演算の結果が取得可能であってもよい。演算機能の高度化、演算速度の高速化等が可能になる。3つ以上の異なる制御演算が実行可能で合ってよく、その場合冗長化管理部422ABは、複数の異なる制御演算のうちの少なくとも1つの制御演算の結果を取得可能である。なお、複数の外部装置(外部装置5A及び外部装置5B等)の機能が1つの外部装置に集約されてもよい。
【0097】
上記実施形態では、冗長化構成としてコントローラ41及びコントローラ42の2つのコントローラが用いられる例について説明した。ただし、3つ以上のコントローラによって冗長化構成が実現されてもよい。
【0098】
図8は、コントローラのハードウェア構成の例を示す図である。このハードウェア構成は、バス等で相互に接続される通信装置42a、表示装置42b、HDD(Hard Disk Drive)42c、メモリ42d及びプロセッサ42eを備える。
【0099】
通信装置42aは、ネットワークインタフェースカードなどであり、他の装置との通信を可能にする。表示装置42bは、例えばタッチパネルやディスプレイなどである。HDD41cは、内部メモリ等の記憶部として機能し、例えばコントローラ42の処理を実行するためのプログラム(冗長化プログラム、制御プログラム)を記憶する。
【0100】
プロセッサ42eは、上述のプログラムをHDD42c等から読み出してメモリ42dに展開することで、コントローラ42の機能を実現する。機能は、これまで説明したような冗長化管理部422の機能、フィールド入出力機能部423の機能及び冗長化入出力機能部424の機能を含む。
【0101】
プログラムは、インターネットなどのネットワークを介して配布することができる。また、プログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【0102】
コントローラ42以外の装置、例えばコントローラ41、外部装置5及び端末装置6等も、上述と同様のハードウェア構成を備えてよい。
【0103】
以上説明した技術は、例えば次のように特定される。
図1~
図5等を参照して説明したコントローラ42は、コントローラ41(別のコントローラ)とともに冗長化コントローラ4を構成するコントローラである。コントローラ42は、通信機能部425と、冗長化管理部422とを含む。通信機能部425は、プラント1のプロセス制御に必要な制御演算を実行可能な外部装置5と通信する。冗長化管理部422は、通信機能部425を介して外部装置5から取得した制御演算の結果をプロセス制御に反映させるアクティブ状態、及び、制御演算の結果をプロセス制御に反映させないスタンバイ状態を含む複数の状態の間で、コントローラ42の状態を切り替える。冗長化管理部422は、コントローラ42及びコントローラ41の一方がアクティブ状態であるように、コントローラ42の状態を切り替える。
【0104】
上記のコントローラ42によれば、プラント1のプロセス制御に必要な演算機能が、外部装置5で実現される。その分、コントローラ42のコストを削減することができる。汎用のコンピュータ等を外部装置5として用いることにより、制御演算に掛るコストも低減できる可能性も高まる。従って、コントローラの冗長化にかかるコストを低減することが可能になる。また、冗長化管理部422がコントローラ42内に実装されることにより、コントローラ41及びコントローラ42の状態の高速な切り替えが可能である。
【0105】
コントローラ42は、冗長化コントローラ4を構成するために一時的に利用されてよい。上述のようにコントローラ42のコストが削減されているので、このような一時的な利用にコントローラ42を好適に用いることができる。
【0106】
複数の状態は、制御演算の結果を取得しない停止状態を含み、冗長化管理部422は、コントローラ41がアクティブ状態のときに、任意のタイミングで、コントローラ42をスタンバイ状態及び前記停止状態の間で切り替えてよい。この場合、外部装置5の利用に応じて料金が設定されてよい。コントローラ42の一時的な利用に応じた料金設定とすることで、冗長化にかかるコストをさらに低減できる可能性が高まる。
【0107】
冗長化管理部412は、制御演算に必要なデータをコントローラ41からコントローラ42にコピーし、コピーしたデータを、通信機能部425を介して外部装置5に送信し、外部装置5から制御演算の結果を取得してよい。例えばこのようにして、コントローラ41及びコントローラ42で同じデータに基づく演算結果が取得されるようにすることで、冗長化構成を得ることができる。
【0108】
図7等を参照して説明したように、外部装置5(例えば外部装置5A及び外部装置5B)は、複数の異なる制御演算を実行可能であり、冗長化管理部422ABは、複数の異なる制御演算のうちの少なくとも1つの制御演算の結果を、通信機能部425を介して外部装置5から取得可能であってよい。これにより、演算機能のバリエーションが増えるので、プラント1のプロセス制御の可能性が広がり、また、演算機能の高度化、演算速度の高速化等が可能になる。
【0109】
図2~
図5を参照して説明した制御方法も、実施形態の1つである。制御方法は、コントローラ41(別のコントローラ)とともに冗長化コントローラ4を構成するコントローラ42による制御方法であって、プラント1のプロセス制御に必要な制御演算を実行可能な外部装置5と通信すること(ステップS2、S5、S15、S30、S42、S50、S62、S73、S86、S92、S92X等)と、通信を介して外部装置5から取得した制御演算の結果をプロセス制御に反映させるアクティブ状態、及び、制御演算の結果をプロセス制御に反映させないスタンバイ状態を含む複数の状態の間で、コントローラ42の状態を切り替えること(ステップS90等)と、を含み、切り替えることでは、コントローラ42及びコントローラ41の一方がアクティブ状態であるように、コントローラ42の状態を切り替える。このような制御方法によっても、これまで説明したように、コントローラの冗長化にかかるコストを低減することが可能になる。
【0110】
制御方法においても、上述のように、コントローラ42を、冗長化コントローラ4を構成するために一時的に利用してよい。複数の状態は、制御演算の結果を取得しない停止状態を含み、切り替えることでは、コントローラ41がアクティブ状態のときに、任意のタイミングで、コントローラ42をスタンバイ状態及び停止状態の間で切り替えてよい。外部装置5の利用に応じて料金が設定されてよい。制御演算の結果を取得することでは、制御演算に必要なデータをコントローラ41からコントローラ42にコピーし、コピーしたデータを、外部装置5に送信し、外部装置5から制御演算の結果を取得してよい。外部装置5(例えば
図7の外部装置5A及び外部装置5B)は、複数の異なる制御演算を実行可能であり、切り替えることでは、複数の異なる制御演算のうちの少なくとも1つの制御演算の結果を、通信を介して外部装置5から取得可能であってよい。
【符号の説明】
【0111】
1 プラント
2 フィールドデバイス
21 センサ
22 アクチュエータ
3 入出力機器
4 冗長化コントローラ
41 コントローラ(第1のコントローラ、別のコントローラ)
42 コントローラ(第2のコントローラ)
411 制御演算部
412 冗長化管理部
413 フィールド入出力機能部
414 冗長化入出力機能部
422 冗長化管理部
423 フィールド入出力機能部
424 冗長化入出力機能部
425 通信機能部
42a 通信装置
42b 表示装置
42c HDD
42d メモリ
42e プロセッサ
5 外部装置
51 制御演算部
55 通信機能部
6 端末装置
100 制御システム
N ネットワーク
CB 制御バス
SB システムバス