(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-02-14
(45)【発行日】2022-02-22
(54)【発明の名称】二重化制御システム
(51)【国際特許分類】
G05B 9/03 20060101AFI20220215BHJP
【FI】
G05B9/03
(21)【出願番号】P 2018010575
(22)【出願日】2018-01-25
【審査請求日】2020-12-09
(73)【特許権者】
【識別番号】301078191
【氏名又は名称】株式会社日立ハイテクソリューションズ
(74)【代理人】
【識別番号】110001829
【氏名又は名称】特許業務法人開知国際特許事務所
(72)【発明者】
【氏名】樽井 誠
(72)【発明者】
【氏名】木村 拓郎
【審査官】今井 貞雄
(56)【参考文献】
【文献】特開平09-319401(JP,A)
【文献】国際公開第2013/168258(WO,A1)
【文献】特開平06-259274(JP,A)
【文献】特開2016-218781(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 9/03
(57)【特許請求の範囲】
【請求項1】
主系コントローラと、
従系コントローラと、
前記主系コントローラと前記従系コントローラとに接続され、前記主系コントローラの異常を前記従系コントローラに通知するための第1系間通信部と、
前記主系コントローラと前記従系コントローラとに接続され、前記主系コントローラが保持している制御データを前記従系コントローラに転送するための第2系間通信部とを備え、
前記従系コントローラ
に前記第1系間通信部を介して前記主系コントローラの異常が通知された
場合に、
制御主体が前記主系コントローラから前記従系コントローラに切り替わるように構成された二重化制御システムにおいて、
前記主系コントローラと前記従系コントローラとに接続された第3系間通信部を備え、
前記主系コントローラは、前記第2系間通信部を介して前記従系コントローラに制御データを転送する際に、その制御データから算出したハッシュ値を前記第3系間通信部を介して前記従系コントローラに転送するように構成され、
前記従系コントローラ
に前記第1系間通信部を介して前記主系コントローラの異常が通知された
場合であっても、前記第2系間通信部を介して受信した制御データから算出したハッシュ値と前記第3系間通信部を介して受信したハッシュ値とが一致しない
ときは、
制御主体が前記主系コントローラから前記従系コントローラに自動で切り替わらないように構成されている
ことを特徴とする二重化制御システム。
【請求項2】
請求項1に記載の二重化制御システムにおいて、
前記第3系間通信部の通信ボーレートは、前記第2系間通信部の通信ボーレー
トよりも低い
ことを特徴とする二重化制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、2つのコントローラを備えた二重化制御システムに関し、特に、一方のコントローラに異常が発生した場合に速やかに他方のコントローラが制御を引き継ぐ二重化制御システムに関する。
【背景技術】
【0002】
プラント等の制御を行うシステムとして、2つのコントローラを備えた二重化制御システムが知られている。このような二重化制御システムの従来技術を開示するものとして、例えば特許文献1がある。この特許文献1には、実行系計算機(主系コントローラ)と待機系計算機(従系コントローラ)をデータ伝送路で接続し、各計算機上に共有データ領域を設け、二重系管理プロセスで共有データ領域への書き込み、実行系計算機(主系コントローラ)の異常検出、障害からの復旧時のデータのコピーを行う二重系システム(二重化制御システム)が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、プラント等の二重化制御システムでは、主系コントローラの異常発生時に、速やかに従系コントローラが制御を引き継ぐ方式(ホットスタンバイ方式)を採用したものがある。このような二重化制御システムでは、主系コントローラから従系コントローラに制御主体が切り替わった際の制御の継続性を確保するため、従系コントローラが保持している制御データを最新の状態に保っておく必要がある。
【0005】
しかしながら、特許文献1に記載の二重系システム(二重化制御システム)では、制御主体を主系コントローラから従系コントローラに切り替える際にデータ伝送路に異常が発生していた場合は、従系コントローラが保持している制御データが最新のものであるか不明な状態で従系コントローラに制御主体が切り替わるため、制御の継続性が損なわれるおそれがある。
【0006】
本発明は、上記課題に鑑みてなされたものであり、その目的は、主系コントローラの異常発生時に、制御の継続性を確保しつつ制御主体を主系コントローラから従系コントローラに自動で切り替えることができる二重化制御システムを提供することにある。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明は、主系コントローラと、従系コントローラと、前記主系コントローラと前記従系コントローラとに接続され、前記主系コントローラの異常を前記従系コントローラに通知するための第1系間通信部と、前記主系コントローラと前記従系コントローラとに接続され、前記主系コントローラが保持している制御データを前記従系コントローラに転送するための第2系間通信部とを備え、前記従系コントローラに前記第1系間通信部を介して前記主系コントローラの異常が通知された場合に、制御主体が前記主系コントローラから前記従系コントローラに切り替わるように構成された二重化制御システムにおいて、前記主系コントローラと前記従系コントローラとに接続された第3系間通信部を備え、前記主系コントローラは、前記第2系間通信部を介して前記従系コントローラに制御データを転送する際に、その制御データから算出したハッシュ値を前記第3系間通信部を介して前記従系コントローラに転送するように構成され、前記従系コントローラに前記第1系間通信部を介して前記主系コントローラの異常が通知された場合であっても、前記第2系間通信部を介して受信した制御データから算出したハッシュ値と前記第3系間通信部を介して受信したハッシュ値とが一致しないときは、制御主体が前記主系コントローラから前記従系コントローラに自動で切り替わらないように構成されているものとする。
【0008】
以上のように構成した本発明によれば、主系コントローラの異常発生時に、従系コントローラが保持している制御データから算出したハッシュ値と主系コントローラから第3系間通信部を介して受信したハッシュ値とが一致している場合に限り、制御主体が主系コントローラから従系コントローラに自動で切り替わる。これにより、従系コントローラが保持している制御データが主系コントローラが保持している最新の制御データと一致している状態で、制御主体が主系コントローラから従系コントローラに切り替わるため、制御の継続性を確保することができる。
【発明の効果】
【0009】
本発明によれば、主系コントローラの異常発生時に、従系コントローラの保持している制御データが主系コントローラが保持している最新の制御データと一致している状態で、制御主体が主系コントローラから従系コントローラに自動で切り替わるため、制御の継続性を確保することができる。
【図面の簡単な説明】
【0010】
【
図1】本発明の実施の形態に係る二重化制御コントローラの構成図である。
【
図2】主系コントローラおよび従系コントローラがそれぞれ一制御周期で実行する処理を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について、図面を参照して説明する。
【0012】
図1は、本実施の形態に係る二重化制御コントローラの構成図である。
【0013】
二重化制御システム1は、主系コントローラ2aと、従系コントローラ2bとを備えている。主系コントローラ2aと従系コントローラ2bは、第1系間通信部6、第2系間通信部7、および第3系間通信部8を介して接続されている。主系コントローラ2aおよび従系コントローラ2bは、プロセス入出力バス20に接続されている。プロセス入出力バス20には、プラント等を構成する各種フィールド機器(
図1に示す例では、センサ24、バルブ25、PLC26)が入出力基板変換部21~23を介して接続されている。
【0014】
主系コントローラ2aは、プラント等の制御の実行権(以下、実行権)を有するコントローラ(以下、実行系コントローラ)として起動する。一方、従系コントローラ2bが実行権を有さないコントローラ(以下、待機系コントローラ)として起動する。実行系コントローラとして動作していた主系コントローラ2aに異常が発生した場合は、待機系コントローラとして動作していた従系コントローラ2bが実行権を取得して実行系コントローラとなり、主系コントローラ2aが実行していた制御を引き継ぐ。実行系コントローラとして動作する主系コントローラ2aまたは従系コントローラ2bは、プロセス入出力バス20を介して各種のフィールド機器を制御する。
【0015】
主系コントローラ2aは、CPU等からなる制御演算部3aと、RAM等からなる記憶部4aと、プロセス入出力部5aとを備えている。主系コントローラ2aは、図示しないROM等に格納されたプログラムをCPU上で実行することにより、以下に説明する機能を実現する。なお、従系コントローラ2bの構成は主系コントローラ2aと同様であるため、説明は省略する。
【0016】
主系コントローラ2aの制御演算部3aは、プロセス入出力部5aを介して取得した各フィールド機器の情報等を基に制御データを生成し、記憶部4aに保持すると共に第2系間通信部7を介して従系コントローラ2bに転送する。制御演算部3aは、記憶部4aに保持している最新の制御データからハッシュ値(A)を算出して記憶部4aに保持し、そのハッシュ値(A)を第3系間通信部8を介して従系コントローラ2bに転送する。ハッシュ値とは、あるデータに所定の演算を施した結果として得られる当該データよりも容量の小さいデータである。ハッシュ値としては、チェックサムやCRC等が周知である。制御演算部3aは、自系で異常を検出した場合に、第1系間通信部6を介して従系コントローラ2bに通知する。制御演算部3aは、記憶部4aに保持している制御データをプロセス入出力部5aを介してプロセス入出力バス20に出力することにより、各フィールド機器を制御する。
【0017】
ここで、第1系間通信部6は、主系コントローラ2aの異常を従系コントローラ2bに通知できる限りにおいて、どのような通信手段で構成されていても良い。第2系間通信部7は、制御データを転送するため、制御データの容量と制御周期に応じた通信ボーレートを有する通信手段(Ethernet等)で構成する必要がある。第3系間通信部8は、制御データよりも容量の小さいハッシュ値のみを転送できれば良いため、第2系間通信部7よりも通信ボーレートの低い通信手段(例えばRS-232C)で構成することができる。これにより、第3系間通信部8を追加することによる二重化制御システム1のコスト増を抑えることができる。
【0018】
従系コントローラ2bの制御演算部3bは、第2系間通信部7を介して受信した制御データ、および第3系間通信部8を介して受信したハッシュ値(B)を記憶部4bに保持する。制御演算部3bは、第2系間通信部7を介して受信した制御データからハッシュ値(B)を算出し、記憶部4bに保持する。制御演算部3bは、記憶部4bに保持している制御データから算出したハッシュ値(B)と、第3系間通信部8を介して受信したハッシュ値(A)とを比較することにより、記憶部4bに保持している制御データが主系コントローラ2aの記憶部4aの保持されている制御データと一致するか否かを判定する。
【0019】
図2は、主系コントローラ2aおよび従系コントローラ2bがそれぞれ一制御周期で実行する処理を示すフローチャートである。
【0020】
まず、主系コントローラ2aが一制御周期で実行する処理について説明する。
【0021】
まず、ステップS11でプロセス入力処理を実行する。このプロセス入力処理では、プロセス入出力バス10から各フィールド機器の情報を取得する。
【0022】
ステップS11に続き、ステップS12で制御演算処理を実行する。この制御演算処理では、ステップS11で取得した各フィールド機器の情報を基に制御データが生成される。
【0023】
ステップS12に続き、ステップS13で、ステップS12で生成した制御データからハッシュ値(A)を算出する。
【0024】
ステップS13に続き、ステップS14で、ステップS12で生成した制御データを第2系間通信部7を介して従系コントローラ2bに転送する。
【0025】
ステップS14に続き、ステップS15で、ステップS13で算出したハッシュ値(A)を第3系間通信部8を介して従系コントローラ2bに転送する。
【0026】
ステップS15に続き、ステップS16で主系コントローラ2aに異常があるか否かを判定する。主系コントローラ2aの異常は、第1系間通信部6を介して従系コントローラ2bに通知される。
【0027】
ステップS16でNo(自系に異常が無い)と判定した場合は、ステップS19でプロセス出力処理を行い、現在の制御周期を終了する。このプロセス出力処理では、ステップS12で生成した制御データがプロセス入出力バス20に出力される。これにより、各フィールド機器が制御される。
【0028】
ステップS16でYes(自系に異常がある)と判定した場合は、ステップS17でコントローラ切替処理を実行する。コントローラ切替処理では、各フィールド機器を制御する主体を主系コントローラ2aから従系コントローラ2bに切り替えるための処理が行われる。
【0029】
ステップS17に続き、ステップS18でコントローラ切替処理が正常に行われたか否かを判定する。
【0030】
ステップS18でYes(コントローラ切替処理が正常に行われた)と判定した場合は、プロセス出力処理を実行することなく、現在の制御周期を終了する。これにより、主系コントローラ2aによる制御が終了する。
【0031】
ステップS18でNo(コントローラ切替処理が正常に行われなかった)と判定した場合は、ステップS19でプロセス出力処理を行い、現在の制御周期を終了する。
【0032】
次に、従系コントローラ2bが一制御周期で実行する処理について説明する。
【0033】
まず、ステップS21で、主系コントローラ2aが保持している最新の制御データを第2系間通信部7を介して受信する。
【0034】
ステップS22に続き、ステップS23で、ステップS21で受信した制御データからハッシュ値(B)を算出する。
【0035】
ステップS23に続き、ステップS24で、第1系間通信部6を介して主系コントローラ2aの異常が通知されているか否かを判定する。
【0036】
ステップS24でNo(主系コントローラ2aの異常が通知されていない)と判定した場合は、現在の制御周期を終了する。
【0037】
ステップS24でYes(主系コントローラ2aの異常が通知されている)と判定した場合は、ステップS25で、ステップS23で受信したハッシュ値(A)とステップS22で算出したハッシュ値(B)とが一致するか否かを判定する。これにより、従系コントローラ2bが保持している制御データが主系コントローラ2aが保持している最新の制御データと一致するか否かを判定することができる。
【0038】
ステップS25でYes(ハッシュ値(A)とハッシュ値(B)とが一致する)と判定した場合は、ステップS24でコントローラ切替処理を実行する。これにより、従系コントローラ2bが保持している制御データが主系コントローラ2aが保持している最新の制御データと一致している状態で、制御主体を主系コントローラ2aから従系コントローラ2bに切り替えることが可能となる。
【0039】
ステップS25でNo(ハッシュ値(A)とハッシュ値(B)とが一致しない)と判定した場合は、ステップS26のコントローラ切替処理を実行することなく、現在の制御周期を終了する。これにより、従系コントローラ2bが保持している制御データが主系コントローラ2aが保持している最新の制御データと一致していない状態で、制御主体が主系コントローラ2aから従系コントローラ2bに自動で切り替わることを防止することができる。ここで、ハッシュ値(A)とハッシュ値(B)とが一致しない原因としては、第2系間通信部7および第3系間通信部8の一方(特に通信ボーレートの高い第2系間通信部7)の故障が考えられる。このとき、第2系間通信部7および第3系間通信部8の他方(特に通信ボーレートの低い第2系間通信部7)が機能していることから、少なくとも主系コントローラ2aの制御演算部3aは正常に動作していることが保証されるため、主系コントローラ2aによる制御を継続することができる。
【0040】
ステップS26に続き、ステップS27で、ステップS24のコントローラ切替処理が正常に実行されたか否かを判定する。
【0041】
ステップS27でYes(ステップS24のコントローラ切替処理が正常に実行された)と判定した場合は、ステップS28で、ステップS21で受信した制御データを基にプロセス出力処理を実行し、現在の制御周期を終了する。これにより、従系コントローラ2bが実行系コントローラ(制御主体)となる。
【0042】
ステップS27でNo(ステップS24のコントローラ切替処理が正常に実行されなかった)と判定した場合は、プロセス出力処理を実行することなく、現在の制御周期を終了する。
【0043】
以上のように構成した本実施の形態に係る二重化制御システム1によれば、主系コントローラ2aの異常発生時に、従系コントローラ2bが保持している制御データから算出したハッシュ値(B)と主系コントローラ2aから第3系間通信部8を介して受信したハッシュ値(A)とが一致している場合に限り、制御主体が主系コントローラ2aから従系コントローラ2bに自動で切り替わる。これにより、従系コントローラ2bが保持している制御データが主系コントローラ2aが保持している最新の制御データと一致している状態で、制御主体が主系コントローラ2aから従系コントローラ2bに切り替わるため、制御の継続性を確保することができる。
【0044】
以上、本発明の実施例について詳述したが、本発明は、上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【符号の説明】
【0045】
1…二重化制御システム、2a…主系コントローラ、2b…従系コントローラ、3a,3b…制御演算部、5a,5b…プロセス入出力部、6…第1系間通信部、7…第2系間通信部、8…第3系間通信部、10…プロセス入出力バス、11~13…入出力基板変換部、14…センサ、15…バルブ、16…PLC。