以下、図面を参照して、本発明の実施形態を説明する。
(構成の説明)
図1は、本発明の第1実施形態による冗長化システム100の構成例を示すブロック図である。図1に示すように、第1実施形態による冗長化システム100は、制御演算部(制御部)110と、運転系の入出力機器121(第1入出力部)と、待機系の入出力機器122(第2入出力部)と、切替用演算部(切替制御部)130と、切替部140と、複数の出力端子150と、複数の入力端子160とを備えている。切替部140は、スイッチ141から構成される。なお、複数の入力端子160および複数の出力端子150は、それぞれ、これらの端子を通じて入出力されるデータのビット数に相当する個数だけ備えられている。
第1実施形態では、運転系の入出力機器121および待機系の入出力機器122のそれぞれと制御演算部110との間はローカルエリアネットワーク(LAN)を介して接続されている。また、切替用演算部130と制御演算部110との間もローカルエリアネットワークを介して接続されている。また、冗長化システム100の構成要素のうち、運転系の入出力機器121、待機系の入出力機器122、切替用演算部130、切替部140は、制御対象機器300の近くに配置され、これらは配線ケーブルを介して制御対象機器300と接続されている。これにより、制御演算部110は、遠隔からローカルエリアネットワークを介して制御対象機器300を制御することが可能となっている。ただし、この例に限定されず、各構成要素間の接続形態は任意であり、また、有線、無線を問わない。
制御演算部110は、制御対象機器300の作動状態を制御するための演算処理を実施するものである。制御対象機器300は、例えば大型プラントの冷却装置の冷媒の循環流量を調整するバルブである。この場合、制御演算部110は、制御対象の作動状態を示す情報として、例えば冷却装置による冷却対象の温度に関するデータを制御対象機器300から取得する。制御演算部110は、上記の温度情報に基づいて冷媒の循環流量を演算し、その演算結果からバルブの開度を指定する制御用のデータD0を生成して出力する。制御演算部110は、例えば制御用のCPU(Central Processing Unit)から構成される。
なお、制御対象機器300は、この例に限定されず任意であり、制御演算部110の演算処理も制御対象に応じて任意に設定し得る。
制御演算部110は、制御用のデータD0をローカルエリアネットワーク上に送出する場合、そのデータ形式(または信号形式)を、そのローカルエリアネットワークに適合したデータ形式(または信号形式)に変換する。運転系の入出力機器121は、制御演算部110からローカルエリアネットワークを介して入力されるデータD0のデータ形式(または信号形式)を、本システム特有のデータ形式(または信号形式)に戻し、データD1として出力する。
運転系の入出力機器121は、制御演算部110が制御対象機器300を制御するための制御用のデータD0の入出力処理を実施するものである。運転系の入出力機器121は、制御対象機器300と制御演算部110との間のデータ伝送経路(伝送路)上に配置されている。運転系の入出力機器121は、制御演算部110からローカルエリアネットワークを介して入力されるデータD0のデータ形式を、本システム特有のデータ形式(信号形式)に戻し、データD1として出力する。
待機系の入出力機器122は、運転系の入出力機器121と等価な構成を有しており、運転系の入出力機器121による入出力処理と並行して、この運転系の入出力機器121と同等の入出力処理を実施するものである。待機系の入出力機器122は、制御演算部110からローカルエリアネットワークを介して入力されるデータD0のデータ形式を、本システム特有のデータ形式(信号形式)に戻し、データD2として出力する。待機系の入出力機器122は、制御演算部110から見て、運転系の入出力機器121と並列に接続されている。運転系の入出力機器121と待機系の入出力機器122の何れにも故障がなければ、データD1,D2のそれぞれは制御演算部110により生成された元のデータD0と一致し、データD1とデータD2とが一致する。
なお、第1実施形態では、「入力」と「出力」による各データの伝送方向は、冗長化システム100の制御演算部110を基準としたときの制御演算部110と制御対象機器300との間のデータの伝送方向を指す。即ち、制御対象機器300から制御演算部110に向けて伝送されるデータは、「入力」されるデータであり、逆に、制御演算部110から制御対象機器300に向けて伝送されるデータは、「出力」されるデータである。従って、運転系の入出力機器121および待機系の入出力機器122は、制御対象機器300から制御演算部110へのデータの入力と、制御演算部110から制御対象機器300へのデータの出力を実施するものと言える。第1実施形態では、適宜、制御対象機器300から制御演算部110に向けて伝送されるデータを入力データと称し、制御演算部110から制御対象機器300に向けて伝送されるデータを出力データと称す。
図2は、本発明の第1実施形態による冗長化システム100が備える制御演算部110の構成例を示すブロック図である。
図2に示すように、制御演算部110は、主制御演算部111、主通信CPU112、副制御演算部113、副通信CPU114、共有メモリ115を備えている。主制御演算部111と主通信CPU112は、通常時に運転される運転系の構成要素である。副制御演算部113と副通信CPU114は、運転系の主制御演算部111に故障が発生した場合に運転される待機系の構成要素である。
主制御演算部111は、通常運転時に制御対象機器300の作動状態を制御するための所定の制御演算を実施するものである。主通信CPU112は、主制御演算部111がローカルエリアネットワークを通じて外部の入出力機器121,122と通信するための処理を実施するものである。主制御演算部111の演算結果は、主通信CPU112を通じてデータD01として出力される。
副制御演算部113は、主制御演算部111に故障が発生した場合、主制御演算部111に代わって制御対象機器300の作動状態を制御するための制御演算を実施するものであり、主制御演算部111による制御演算と同等の演算を実施する。副通信CPU114は、副制御演算部113がローカルエリアネットワークを通じて外部の入出力機器121,122と通信するための処理を実施するものである。副制御演算部113の演算結果は、主通信CPU114を通じてデータD02として出力される。
主制御演算部111および副制御演算部113の各演算結果は、共有メモリ115に一時的に格納される。主制御演算部111に故障が発生した場合、主通信CPU112が共有メモリ115から副制御演算部113の演算結果を読み出して制御データD01として入出力機器121,122に出力する。また、副制御演算部113に故障が発生した場合、主通信CPU112が共有メモリ115から主制御演算部111の演算結果を読み出して制御データD01として入出力機器121,122に出力する。
本実施形態では、主制御演算部111および副制御演算部113の両方に故障がない場合であっても、一方に故障が発生した場合であっても、データD01とデータD02は同じデータである。そこで、以下では、データD01とデータD02とを区別する必要のある場合を除いて、データD01,D02のそれぞれをデータD0と称す。
図3は、本発明の第1実施形態による冗長化システム100の構成例の一部の詳細を示すブロック図であり、故障がない場合のデータの流れを説明するための図である。
なお、図3では、制御演算部110の共有メモリ115(図2)は省略されている。後述の図8、図10、図11、図12についても同様である。
制御演算部110から出力されるデータD01は、データD011、データD012、データD013から構成されている。例えば、データD01が24ビットのデータであるとすれば、データD011は、データD01の第1ビットから第8ビットまでの8ビットからなるデータであり、データD012は、データD01の第9ビットから第16ビットまでの8ビットからなるデータであり、データD013は、データD01の第17ビットから第24ビットまでの8ビットからなるデータである。同様に、制御演算部110から出力されるデータD02は、データD021、データD022、データD023から構成されている。ただし、この例に限定されず、データD01,D02の構成は任意であり、デジタル信号、アナログ信号を問わない。
運転系の入出力機器121は、三台(複数)の入出力ユニット1211,1212,1213を備える。入出力ユニット1211,1212,1213のそれぞれは、制御対象機器300と制御演算部110との間で伝送されるデータの入出力処理を実施するものであり、運転系の主通信カードと待機系の副通信カードとからなる冗長化された通信処理部を有している。
具体的には、入出力ユニット1211は、主通信カード1211Aと副通信カード1211Bとを有している。主通信カード1211Aは、通常運転時に上記の入出力処理を実行するものである。副通信カード1211Bは、主通信カード1211Aが故障した場合に主通信カード1211Aに代わって運転されるものであり、主通信カード1211Aと同様の入出力処理を実施する。主通信カード1211Aには、制御演算部110の主通信CPU112から、データD01を構成するデータD011が入力され、副通信カード1211Bには、制御演算部110の副通信CPU114から、データD02を構成するデータD021が入力される。主通信カード1211Aは、データD011のデータ形式を変換してデータD11する。副通信カード1211Bは、データD021のデータ形式を変換してデータD11とする。入出力ユニット1211は、主通信カード1211Aまたは副通信カード1211Bにより、制御対象機器300と制御演算部110との間で伝送されるデータの入出力処理を実施する。
また、入出力ユニット1212は、主通信カード1212Aと副通信カード1212Bとを有している。主通信カード1212Aは、通常運転時に上記の入出力処理を実行するものである。副通信カード1212Bは、主通信カード1212Aが故障した場合に主通信カード1212Aに代わって運転されるものであり、主通信カード1212Aと同様の入出力処理を実施する。主通信カード1212Aには、制御演算部110の主通信CPU112から、データD01を構成するデータD012が入力され、副通信カード1212Bには、制御演算部110の副通信CPU114から、データD02を構成するデータD022が入力される。主通信カード1212Aは、データD012のデータ形式を変換してデータD12とする。副通信カード1212Bは、データD022のデータ形式を変換してデータD12とする。入出力ユニット1212は、主通信カード1212Aまたは副通信カード1212Bにより、制御対象機器300と制御演算部110との間で伝送されるデータの入出力処理を実施する。
また、入出力ユニット1213は、主通信カード1213Aと副通信カード1213Bとを有している。主通信カード1213Aは、通常運転時に上記の入出力処理を実行するものである。副通信カード1213Bは、主通信カード1213Aが故障した場合に主通信カード1213Aに代わって運転されるものであり、主通信カード1213Aと同様の入出力処理を実施する。主通信カード1213Aには、制御演算部110の主通信CPU112から、データD01を構成するデータD013が入力され、副通信カード1213Bには、制御演算部110の副通信CPU114から、データD02を構成するデータD023が入力される。主通信カード1213Aは、データD013のデータ形式を変換してデータD13とする。副通信カード1213Bは、データD023のデータ形式を変換してデータD13とする。入出力ユニット1213は、主通信カード1213Aまたは副通信カード1213Bにより、制御対象機器300と制御演算部110との間で伝送されるデータの入出力処理を実施する。
複数の入出力ユニット1211,1212,1213のそれぞれは、主通信カードによる入出力処理に異常が発生した場合、他の入出力ユニットとは独立に、主通信カードから副通信カードへの運転の切り替えが可能に構成されている。具体的には、入出力ユニット1211は、主通信カード1211Aによる入出力処理に異常が発生した場合、他の入出力ユニット1212,1213とは独立に、主通信カード1211Aから副通信カード1211Bに運転が切り替え可能に構成されている。また、入出力ユニット1212は、主通信カード1212Aによる入出力処理に異常が発生した場合、他の入出力ユニット1211,1213とは独立に、主通信カード1212Aから副通信カード1212Bに運転が切り替え可能に構成されている。更に、入出力ユニット1213は、主通信カード1213Aによる入出力処理に異常が発生した場合、他の入出力ユニット1211,1212とは独立に、主通信カード1213Aから副通信カード1213Bに運転が切り替え可能に構成されている。
また、入出力ユニット1211,1212,1213の主通信カード1211A,1212A,1213Aは、それぞれ、入出力処理の異常の有無を判定する機能を有している。制御演算部110は、主通信カード1211A,1212A,1213Aによる各入出力処理に異常がある場合、入出力ユニットごとに、主通信カード1211,A,1212A,1213Aから副通信カード1211B,1212B,1213Bに運転を切り替えるための制御を実施する機能を有している。本実施形態では、制御演算部110は、後述するように、各通信カードの出力の有効/無効を制御することにより、通信カードの運転を切り替える。
待機系の入出力機器122も運転系の入出力機器121と同様に構成されている。
即ち、待機系の入出力機器122は、三台の入出力ユニット1221,1222,1223を備えている。入出力ユニット1221は、主通信カード1221Aと副通信カード1221Bとを有している。主通信カード1221Aは、制御演算部110から供給されるデータD011のデータ形式を変換してデータD21とする。副通信カード1221Bは、制御演算部110から供給されるデータD021のデータ形式を変換してデータD21とする。入出力ユニット1221は、主通信カード1221Aまたは副通信カード1221Bにより、制御対象機器300と制御演算部110との間で伝送されるデータの入出力処理を実施する。
また、入出力ユニット1222は、主通信カード1222Aと副通信カード1222Bとを有している。主通信カード1222Aは、制御演算部110から供給されるデータD012のデータ形式を変換してデータD22とする。副通信カード1222Bは、制御演算部110から供給されるデータD022のデータ形式を変換してデータD22とする。入出力ユニット1222は、主通信カード1222Aまたは副通信カード1222Bにより、制御対象機器300と制御演算部110との間で伝送されるデータの入出力処理を実施する。
また、入出力ユニット1223は、主通信カード1223Aと副通信カード1223Bとを有している。主通信カード1223Aは、制御演算部110から供給されるデータD013のデータ形式を変換してデータD23とする。副通信カード1223Bは、制御演算部110から供給されるデータD023のデータ形式を変換してデータD23とする。入出力ユニット1223は、主通信カード1223Aまたは副通信カード1223Bにより、制御対象機器300と制御演算部110との間で伝送されるデータの入出力処理を実施する。
説明を図1に戻す。切替用演算部130は、運転系の入出力機器121による入出力処理の結果として得られるデータD1(第1データ)と待機系の入出力機器122による入出力処理の結果として得られるデータD2(第2データ)との間に不一致があるか否かに応じて、切替部140のスイッチ141の接続状態の切り替えを制御するものである。即ち、切替用演算部130は、データD1とデータD2とを比較し、データD1とデータD2との間の不一致の有無を判定するための演算処理を実施する。そして、切替用演算部130は、その演算処理による判定結果に応じて、スイッチ141の接続状態を制御する。なお、切替用演算部130は、例えばPLC(Programmable Logic Controller)を用いて構成することができ、ハードウェアおよびソフトウェアの何れによっても実現することができる。
切替部140は、冗長化システム100から制御対象機器300に出力される制御用のデータを、運転系の入出力機器121から出力されるデータD1と、待機系の入出力機器122から出力されるデータD2とのうちの何れかに切り替えるためのものである。切替部140は、切替用演算部130の演算処理による判定結果に応じて、運転系の入出力機器121および待機系の入出力機器122の各出力部と制御対象機器300との間の接続状態をスイッチ141により切り替える。本実施形態では、切替部140は、切替用演算部130の演算処理による判定結果がデータの不一致を示す場合、データD1に代えてデータD2が伝送経路上に送出されるようにスイッチ141の接続状態を切り替える。
図4は、本発明の第1実施形態による冗長化システムが備える切替部140のスイッチ141の構成例を示す図である。スイッチ141は、固定接点1411(1411−1,1411−2,1411−3)と、固定接点1412(1412−1,1412−2,1412−3)と、可動接点1413(1413−1,1413−2,1413−3)を備えている。固定接点1411−1,1411−2,1411−3は、運転系の入出力機器121(図3)の出力部に配線ケーブルを通じて接続され、それぞれ、入出力ユニット1211,1212,1213からデータD11,D12,D13が供給される。固定接点1412−1,1412−2,1412−3は、待機系の入出力機器122(図3)の出力部に配線ケーブルを通じて接続され、それぞれ、入出力ユニット1221,1222,1223からデータD21,D22,D23が供給される。可動接点1413−1,1413−2,1413−3は、冗長化システム100の複数の出力端子150にそれぞれ配線ケーブルを通じて接続され、複数の出力端子150を介して制御対象機器300の入力部に接続されている。
可動接点1413が固定接点1411側に切り替えられた状態(可動接点1413と固定接点1411とが電気的に接続された状態)では、切替器140を通じて運転系の入出力機器121の出力部と冗長化システム100の出力端子150とが接続される。この場合、冗長化システム100の出力データとして、運転系の入出力機器121から出力されたデータD1が供給される。
また、可動接点1413が固定接点1412側に切り替えられた状態(可動接点1413と固定接点1412とが電気的に接続された状態)では、切替器140を通じて待機系の入出力機器122の出力部と冗長化システム100の出力端子150とが接続される。この場合、冗長化システム100の出力データとして、待機系の入出力機器122から出力されたデータD2が供給される。
なお、本実施形態では、固定接点1411,1412と可動接点1413を有するスイッチ141を用いて切替部140を構成しているが、この例に限定されず、切替部140は、トランジスタ等の任意のデバイスで構成することもでき、また、ソフトウェア上で記述された機能として実現することもできる。
なお、制御対象機器300の作動状態を示すデータは、入力端子160を通じて、制御対象機器300から冗長化システム100に供給される。冗長化システム100において、複数の入力端子160には、運転系の入出力機器121および待機系の入出力機器122の各入力部が接続されている。即ち、運転系の入出力機器121と待機系の入出力機器122には、制御対象機器300の作動状態を示すデータが並列に供給される。この制御対象機器300の作動状態を示すデータは、運転系の入出力機器121および待機系の入出力機器122を通じて制御演算部110の主通信CPU112および副通信CPU114に入力され、これら主通信CPU112および副通信CPU114を通じて、主制御演算部111および副制御演算部113にそれぞれ供給される。
(動作の説明)
次に、本発明の第1実施形態による冗長化システム100の動作を説明する。
なお、故障が発生していない初期状態では、切替部140を構成するスイッチ141の接続状態は、可動接点1413が固定接点1411側に切り替えられた状態となっている。また、故障が発生していない初期状態では、制御演算部110の制御の下、運転系の入出力機器121の入出力ユニット1211,1212,1213において、それぞれ、主通信カード1211A,1212A,1213Aが運転されるように初期設定されている。これにより、初期状態では、運転系の入出力機器121を構成する主通信カード1211A,1212A,1213Aの各出力部が、それぞれ、スイッチ141の接点1411−1A,1411−1,1413−1(図4)を通じて制御対象機器300の入力部と電気的に接続された状態となっている。
また、故障が発生していない初期状態では、制御演算部110の制御の下、待機系の入出力機器122の入出力ユニット1221,1222,1223において、それぞれ、主通信カード1221A,1222A,1223Aが運転されるように初期設定されている。ただし、切替部140のスイッチ141の可動接点1413が固定接点1411側に切り替えられた状態となっているので、主通信カード1221A,1222A,1223Aの各出力部は、制御対象機器300の入力部と電気的に接続されていない状態となっている。
故障の有無にかかわらず、運転系の入出力機器121と待機系の入出力機器122は並列運転される。このため、運転系の入出力機器121は、制御演算部110から入力されるデータD0に対して入出力処理を実施し、データD0をデータD11,D12,D13からなるデータD1に変換して出力する。また、待機系の入出力機器122は、同様に、制御演算部110から入力されるデータD0に対して入出力処理を実施し、データD0をデータD21,D22,D23からなるデータD2に変換して出力する。運転系の入出力機器121に故障がない場合、データD1およびデータD2のうち、入出力機器121から出力されるデータD1が、切替部140のスイッチ141および出力端子150を通じて冗長化システム100の出力データとして制御対象機器300に供給される。
切替用演算部130は、上記の運転系の入出力機器121および待機系の入出力機器122による入出力処理と並行して、切替部140のスイッチ141の接続状態を切り替えるための一連の処理を一定周期毎に実施する。この切替部140のスイッチ141の接続状態の切り替えは、運転系の入出力機器121から待機系の入出力機器122に運転を切り替える場合に実施されるが、その詳細については後述する。なお、切替用演算部130の動作周期は、制御演算部110、運転系の入出力機器121、待機系の入出力機器122のそれぞれと同期した周期であってもよく、同期しない固有の周期であってもよい。ただし、望ましくは、切替用演算部130の動作周期は、制御演算部110、運転系の入出力機器121、待機系の入出力機器122の各動作周期よりも短い周期である。
図5は、本発明の第1実施形態による冗長化システム100の動作例の流れを示すフローチャートであり、上記の各入出力ユニットにおいて運転系の主通信カードから待機系の副通信カードに運転を切り替える場合の動作の流れを示すフローチャートである。
図6は、本発明の第1実施形態による冗長化システム100の動作例の流れを示すフローチャートでり、入出力ユニットにおいて運転系の主通信カードから待機系の副通信カードに運転を手動操作により切り替える場合の動作の流れを示すフローチャートである。
図7は、本発明の第1実施形態による冗長化システム100の動作例の流れを示すフローチャートであり、運転系の入出力機器から待機系の入出力機器に運転を切り替える場合の動作の流れを示すフローチャートである。
第1実施形態では、運転系の入出力機器121において通信カードを切り替える余地がある限り、図5に示す動作フローに従って、故障が発生した運転系の主通信カードから待機系の副通信カードに運転を切り替えることにより、運転系の入出力機器121の運転を継続する。運転系の入出力機器121において通信カードを切り替える余地がなくなった場合、図7に示す動作フローに従って、運転系の入出力機器121から待機系の入出力機器122に運転が切り替えられる。
ここで、図5に示す処理は、運転系の入出力機器121および待機系の入出力機器122のそれぞれにおいて入出力ユニットごとに実行され、何れかの主通信カードに故障が発生した場合、主通信カードから副通信カードへの運転の切り替えが入出力ユニットごとに個別に実施される。即ち、図5に示す動作フローは、各入出力ユニットについて独立に実施される。
以下では、図5、図6、図7に示す動作フローに沿って、図8、図10、図11、図12を参照しながら、次の四つの故障の発生態様を例として冗長化システム100の動作を説明する。
・運転系の一台の入出力ユニットの主通信カードの故障
・運転系の二台の入出力ユニットの主通信カードの故障
・運転系の二台の入出力ユニットの一方の主通信カードと他方の副通信カードの故障
・運転系の一台の入出力ユニットの主通信カードと副通信カードの故障
上記の故障の発生態様ごとに、冗長化システム100の動作を順に説明する。
<運転系の一台の入出力ユニットの主通信カードの故障>
図8は、本発明の第1実施形態による冗長化システム100の運転系の一台の入出力ユニット1212の主通信カード1212Aに故障が発生した場合のデータの流れの一例を説明するための図である。ここでは、入出力ユニット1212の主通信カード1212Aに故障が発生した場合を例として冗長化システム100の動作を説明するが、他の入出力ユニットにおいて同種の故障が発生した場合も同様である。
最初に、制御演算部110は、入出力機器121の入出力ユニット1211,1212,1213における主通信カード1211A,1212A,1213Aの各出力を有効とするための出力設定アドレスの動作ビット「1」を主通信カード1211A,1212A,1213Aのそれぞれに設定すると共に、副通信カード1211B,1212B,1213Bの各出力を無効とするための出力設定アドレスの動作ビット「0」を副通信カード1211B,1212B,1213Bのそれぞれに設定する(ステップS101)。これにより、入出力ユニット1211は、データD11として主通信カード1211Aの入出力処理によるデータを出力し、入出力ユニット1212は、データD12として主通信カード1212Aのデータを出力し、入出力ユニット1213は、データD13として主通信カード1213Aの入出力処理によるデータを出力する。
入出力ユニット1211,1212,1213の主通信カード1211A,1212A,1213Aおよび副通信カード1211B,1212B,1213Bの各入出力処理に異常がなく、各通信カードに故障が発生していなければ、主通信カード1211A,1212A,1213Aおよび副通信カード1211B,1212B,1213Bのそれぞれの出力の有効/無効を設定するための上記の動作ビットは上記の値に維持される。
ここで、運転系の主通信カード1212Aに故障が発生し、その入出力処理に異常が発生した場合を考える。
図9は、本発明の第1実施形態による冗長化システム100で発生する異常データの一例を示す図である。
図9に例示するように、説明の便宜上、制御演算部110から出力されたデータD0の各ビットの値は、ベクトル表記によれば、(1,1,0,…)であるものとする。また、上記のデータD0に応答して運転系の主通信カード1212Aの入出力処理により得られるデータの各ビットの値はベクトル表記によれば、(0,1,0,…)であるものとする。更に、上記のデータD0に応答して待機系の副通信カード1212Bの入出力処理により得られるデータの各ビットの値は、ベクトル表記によれば、(1,1,0,…)であり、データD0の各ビットの値と一致しているものとする。
この場合、主通信カード1212Aの入出力処理により得られるデータ(0,1,0,…)の第1ビットの値「0」は、制御演算部110から出力されるデータD0(1,1,0,…)の第1ビットの値「1」と一致していない。従って、主通信カード1212Aのデータは異常であり、主通信カード1212Aによる入出力処理に異常が発生している。これに対し、副通信カード1212Bから出力されるデータ(1,1,0,…)の全ビットの値は、制御演算部110から出力されるデータD0(1,1,0,…)の全ビットの値と一致している。従って、副通信カード1212Bのデータは正常であり、副通信カード1212Bによる入出力処理は正常である。
入出力ユニット1212の主通信カード1212Aによる入出力処理に異常が発生すると、主通信カード1212Aは、自身による入出力処理の異常を示すための異常情報として、通信カード自身の中で入出力処理の異常を示すアドレス(例えば、出力エリアの異常情報のワード部)のビットを「1」に設定する。主通信カード1212Aは、上記のアドレスのビットを出力データとして制御演算部110に出力する。同様に、副通信カード1212Bにおいて、その入出力処理に異常で発生したとすれば、副通信カード1212Bは、通信カード自身の中で入出力処理の異常を示すアドレス(例えば、出力エリアの異常情報のワード部)のビットを「1」に設定して制御演算部110に出力する。以下では、上記の通信カード自身の中で異常を示すアドレスのビットを「異常ビット」と称す。
制御演算部110は、主通信カード1212Aから入力される異常ビットがあるか否かを判定する(ステップS102)。制御演算部110は、主通信カード1212Aから入力される異常ビットがあると判断した場合(ステップS102:YES)、続いて、副通信カード1212Bから入力される異常ビットがあるか否かを判断する(ステップS103)。副通信カード1212Bから入力される異常ビットがなければ(ステップS103:NO)、制御演算部110は、主通信カード1212Aによる入出力処理に異常がある旨の判定を行い、その旨の情報(例えば、異常が発生した通信カードを特定するための情報等)を提示させる(ステップS106)。このような情報の提示は、例えば、図示しない表示部に文字情報を表示させること、警報音を発生させること、赤色灯を発光させることなどにより行うことができる。ただし、この例に限定されず、データに異常が発生したことを通知し得ることを限度として、このような情報の提示は任意の形態で行い得る。
作業者は、上述のステップS106において主通信カード1212Aに異常がある旨の情報が提示されると、その情報から運転系の主通信カード1212Aに故障が発生した可能性があることを把握し、必要な対策を講じることができる。
続いて、制御演算部110は、異常が発生した主通信カード1212Aから副通信カード1212Bに運転を切り替えるための制御を実施する(ステップS107)。具体的には、制御演算部110は、主通信カード1212Aの出力を無効とするための出力設定アドレスの動作ビットの値として「0」を主通信カード1212Aに設定すると共に、副通信カード1212Bの出力を有効とするための出力設定アドレスの動作ビットの値として「1」を副通信カード1212Bに設定する。これにより、入出力ユニット1212は、主通信カード1212Aの入出力処理によるデータに代えて、副通信カード1212Bの入出力処理によるデータをデータD12として出力する。
この場合、他の入出力ユニット1211,1213の運転状態は維持される。具体的には、入出力ユニット1211は、データD11として主通信カード1212Aの入出力処理によるデータを出力し、入出力ユニット1213は、データD13として主通信カード1213Aの入出力処理によるデータを出力する。即ち、入出力ユニット1211,1212,1213のうち、故障が発生した入出力ユニット1212以外の入出力ユニット1211,1213の主通信カード1211A,1213Aの運転は継続されると共に、副通信カード1211B,1213Bは引き続き待機状態に維持される。
このように、主通信カード1212Aに故障が発生した後、主通信カード1212Aの入出力処理によるデータに代えて、副通信カード1212Bの入出力処理によるデータが入出力ユニット1211から出力されるので、主通信カード1212Aの故障の影響を回避しつつ、制御演算部110が制御用のデータD0を制御対象機器300に供給することができ、無停止運転が可能になる。
上述のステップS103において、副通信カード1212Bから入力される異常ビットがある場合(ステップS103:YES)、即ち、主通信カード1212Aと副通信カード1212Bの両方の入出力処理に異常が発生していれば、制御演算部110は、入出力ユニット1212に関する通信状態を維持させる(ステップS104)。即ち、通信カードの運転の切り替えを実施しない。従ってこの場合、入出力ユニット1212から出力されるデータD12は異常データとなる。ただし、このような場合、本実施形態では、後述するように、入出力機器121から入出力機器122に運転を切り替えることにより、入出力ユニット1212の故障によるデータ異常を回避している。
ところで、上述の図5の動作フローでは、ステップS107において、制御演算部110が、通信カードの運転の切り替えを自動的に実施するものとしたが、作業者による手動操作により通信カードの切り替えを実施するものとしてもよい。
図6は、本発明の第1実施形態による冗長化システム100の動作例の流れを示すフローチャートでり、入出力ユニットにおいて運転系の主通信カードから待機系の副通信カードに運転を手動操作により切り替える場合の動作の流れを示すフローチャートである。
図6に示す第2実施形態による冗長化システムの動作フローは、上述の図5に示す動作フローおいて、ステップS107に代えてステップS107Aを含む。その他は、図5の動作フローと同じである。
図6に示す動作フローにおいて、例えば、入出力ユニット1211の主通信カード1211Aにより入出力処理に異常があり(ステップS102:YES)、且つ、副通信カード1212Bによる入出力処理に異常がない場合(ステップS103:NO)、制御演算部110は、主通信カード1212Aに異常がある旨の判定を行い、その旨の情報を提示させる(ステップS106)。そして、制御演算部110は、作業者の手動操作を示す信号に応答して、主通信カード1212Aから副通信カード1212Bに運転を切り替えるための制御を実施する(ステップS107A)。これにより、作業者の手動操作により、運転系の主通信カード1212Aから待機系の副通信カード1212Bに運転が切り替えられる。
図6の動作フローによれば、制御演算部110が作業者等の手動操作に応答して通信カードの運転を切り替えるので、作業者等の管理の下で運転系の主通信カードから待機系の副通信カードへの運転の切り替えを実施することができる。
<運転系の二台の入出力ユニットの主通信カードの故障>
図10は、本発明の第1実施形態による冗長化システム100の運転系の二台の入出力ユニット1212,1213のそれぞれの主通信カード1212A,1213Aに故障が発生した場合の多重故障発生時のデータの流れを説明するための図である。
ここでは、図10に示すように、運転系の入出力機器121において、入出力ユニット1212の主通信カード1212Aに故障が発生した後に、別の入出力ユニット1213の主通信カード1213Aに故障が発生した場合を例として、多重故障発生時の冗長化システム100の動作を説明する。なお、他の入出力ユニットにおいて同種の故障が発生した場合も同様である。
この場合、上述した運転系の一台の入出力ユニット1212の主通信カード1212Aの故障形態と同様にして、入出力ユニット1212において、主通信カード1212Aから副通信カード1212Bに運転が切り替えられる。この後、入出力ユニット1213の主通信カード1213Aに故障が発生した場合、同様にして、制御演算部110の制御の下、主通信カード1213Aから副通信カード1213Bに運転の切り替えが実施される。
このように、図10の例でも、第1実施形態によれば、複数の入出力ユニット1211,1212,1213について、入出力ユニットごとに、個別に(または独立に)、主通信カードから副通信カードに運転を切り替えるので、複数の入出力ユニットの主通信カードの多重故障に柔軟に対応することができる。また、図10の例では、正常な入出力ユニット1211の主通信カード1211Aは継続して運転されるため、入出力ユニット1211のハードウェア資源を有効利用することができる。
なお、上述のように二台の入出力ユニット1212,1213に故障が発生した後、更に残りの一台の入出力ユニット1211の主通信カード1211Aに故障が発生した場合も、同様に、故障が発生した主通信カード1211Aから副通信カード1211Bに運転を切り替えることができる。
<運転系の二台の入出力ユニットの一方の主通信カードと他方の副通信カードの故障>
図11は、本発明の第1実施形態による冗長化システム100の運転系の二台の入出力ユニット1211,1212のうち、一方の入出力ユニット1212の主通信カード1212Aと、他方の入出力ユニット1211の副通信カード1211Bに故障が発生した場合の多重故障発生時のデータの流れを説明するための図である。
ここでは、入出力ユニット1212の主通信カード1212Aに故障が発生した後、別の入出力ユニット1211の副通信カード1211Bに故障が発生した場合を例として、多重故障発生時の冗長化システム100の動作を説明する。なお、他の入出力ユニットにおいて同種の故障が発生した場合も同様である。
この場合、前述した運転系の一台の入出力ユニットの主通信カードの故障形態と同様に、主通信カード1212Aから副通信カード1212Bに運転が切り替えられる。この後、入出力ユニット1211の副通信カード1211Bに故障が発生した場合、入出力ユニット1211の副通信カード1211Bから入力される異常ビットから、制御演算部110が副通信カード1211Bの故障を認識する。この場合、例えば、制御演算部110は、副通信カード1211Bに故障が発生した旨の情報を提示させることにより、作業者に通知する。
また、この場合、作業者は、副通信カード1211Bに故障がある旨の情報が提示されると、その情報から必要な対策を講じることができる。これにより、待機系の副通信カード1211Bは、その対策を講じるために必要な作業期間を除けば、定常的に正常な状態に維持され、運転系の主通信カード1211Aの故障の発生に備えることができる。従って、冗長化システム100の信頼性を損なうことなく、運転系の主通信カード1211Aに故障が発生したときに運転系の主通信カード1211Aから待機系の副通信カード1211Bに即座に運転を切り替えることが可能になる。
このように、図11の例においても、入出力ユニット1211,1212,1213について、入出力ユニットごとに、個別に(または独立に)、主通信カードから副通信カードに運転を切り替えることができるので、入出力ユニットの主通信カードの故障と副通信カードの故障に柔軟に対応することができる。また、正常な入出力ユニット1213については、その主通信カード1213Aは継続して運転されるため、入出力ユニット1213のハードウェア資源を有効利用することができる。
なお、上述のように入出力ユニット1211,1212に多重故障が発生した後、更に入出力ユニット1213の副通信カード1213Bに故障が発生したとしても、同様に副通信カード1213Bの故障が発生した旨の情報を提示させることができる。
<運転系の一台の入出力ユニットの主通信カードと副通信カードの故障>
図12は、本発明の第1実施形態による冗長化システム100の運転系の一台の入出力ユニット1212の主通信カード1212Aと副通信カード1212Bとに故障が発生した場合の多重故障発生時のデータの流れを説明するための図であり、入出力機器121の出力データD1が異常となる場合の多重故障の一例を示す図である。
図12の例では、運転系の入出力機器121の入出力ユニット1212の主通信カード1212Aおよび副通信カード1212Bの両方に故障が発生している。この場合、故障が発生した主通信カード1212Aおよび副通信カード1212Bの両方に代わる通信カードは入出力機器121には存在しないので、運転系の入出力機器121から出力されるデータD1の異常を解消することはできない。このようにデータD1の異常を解消することができない多重故障が発生した場合、図7に示す動作フローに従って、運転系の入出力機器121から待機系の入出力機器122へ運転を切り替えるための処理が実施される。
ここでは、図12に示すように、入出力ユニット1212の主通信カード1212Aに故障が発生した後、その入出力ユニット1212の副通信カード1212Bにも故障が発生した場合を例として、図7に示す動作フローに沿って多重故障発生時の冗長化システム100の動作を説明する。他の入出力ユニット1211,1213において同種の故障が発生した場合も同様である。
なお、図12に例示する故障が発生する前の状態では、切替部140をなすスイッチ141の接続状態は、接点1413が接点1411側に切り替えられた状態となっているものとする。即ち、初期状態では、運転系の入出力機器121の出力部が切替部140のスイッチ141を介して出力端子150に接続された状態となっている。
前述したように、運転系の入出力機器121と待機系の入出力機器122は並列運転される。そして、運転系の入出力機器121は、制御演算部110から入力されるデータD0に対して入出力処理を実施し、データD0をデータD1として出力する。また、待機系の入出力機器122は、制御演算部110から入力されるデータD0に対して同様の入出力処理を実施し、データD0をデータD2として出力する。図12に例示する故障が発生する前の状態では、データD1とデータD2は一致し、これらデータD1およびデータD2のうち、運転系の入出力機器121から出力されるデータD1が切替部140を通じて冗長化システム100の出力データとして制御対象機器300に供給される。
切替用演算部130は、上記の運転系の入出力機器121および待機系の入出力機器122による入出力処理と並行して、切替部140のスイッチ141の接続状態を切り替えるための次の一連の処理(ステップS201〜S210)を一定周期毎に実施する。切替用演算部130の動作周期は、制御演算部110、運転系の入出力機器121、待機系の入出力機器122のそれぞれと同期した周期であってもよく、同期しない固有の周期であってもよい。ただし、望ましくは、切替用演算部130の動作周期は、制御演算部110、運転系の入出力機器121、待機系の入出力機器122の各動作周期よりも短い周期である。
切替用演算部130は、運転系の入出力機器121から出力されたデータD1と待機系の入出力機器122から出力されたデータD2とを取得し、これらデータD1とデータD2とを比較する(ステップS201)。そして切替用演算部130は、運転系の入出力機器121から出力されたデータD1の全ビットと待機系の入出力機器122から出力されたデータD2の全ビットが一致するか否かを判定する(ステップS202)。
ここで、運転系の入出力機器121と待機系の入出力機器122の何れにも故障がなければ、運転系の入出力機器121から出力されるデータD1の全ビットは、制御演算部110から出力される元のデータD0の全ビットと一致し、待機系の入出力機器122から出力されるデータD2も制御演算部110から出力される元のデータD0と一致する。即ちこの場合、運転系の入出力機器121から出力されるデータD1の全ビットと待機系の入出力機器122から出力されるデータD2の全ビットは一致する(ステップS202:YES)。
上記のようにデータD1とデータD2とが一致する場合(ステップS202:YES)、切替用演算部130は、データD1とデータD2とが一致する旨の判定結果を示す切替制御信号CTLを切替部140に出力する。この場合、切替部140は、スイッチ141の接点1413が接点1411側に切り替えられた接続状態を維持する(ステップS207)。
この状態からデータD1とデータD2との不一致が発生しない限り、上述のステップS201〜ステップS202(YES)〜ステップS207の一連の処理が一定周期で繰り返し実行され、この間、切替部140のスイッチ141の接続状態は、接点1413が接点1411側に切り替えられた状態に維持される。これにより、運転系の入出力機器121から出力されたデータD1が冗長化システム100の出力データとして制御対象機器300に継続的に供給される。
ここで、図12に例示するように、運転系の入出力機器121の主通信カード1212Aと副通信カード1212Bに故障が発生し、データD1に異常が発生した場合を考える。切替用演算部130は、運転系の入出力機器121から出力されたデータD1(異常データ)と待機系の入出力機器122から出力されたデータD2(正常データ)とを取得し、データD1とデータD2とを比較する(ステップS201)。切替用演算部130は、上記比較の結果から、運転系の入出力機器121から出力されたデータD1と、待機系の入出力機器122から出力されたデータD2とが一致するか否かを判定する(ステップS202)。
ここでは、故障が発生している運転系の入出力機器121から出力されるデータD1は異常データであるため、待機系の入出力機器122から出力されるデータD2と一致しない。データD1とデータD2とが一致しない場合(ステップS202:NO)、切替用演算部130は、データD1の元データであるデータD0を制御演算部110から取得し、制御演算部110から取得したデータD0と、運転系の入出力機器121から出力されたデータD1とを比較する(ステップS203)。また、切替用演算部130は、制御演算部110から取得したデータD0と、待機系の入出力機器122から出力されたデータD2とを比較する(ステップS203)。
切替用演算部130は、上記比較の結果から、データD0と元のデータD1とが一致するか否かを判定する(ステップS204)。ここでは、運転系の入出力機器121は異常なデータD1を出力するので、データD1のビットの値は元のデータD0のビットの値と一致しない。データD0とデータD1とが一致しない場合(ステップS204:NO)、続いて、切替用演算部130は、上記比較の結果から、制御演算部110から取得した元のデータD0と待機系の入出力機器122から出力されたデータD2とが一致するか否かを判定する(ステップS205)。仮に元のデータD0とデータD2とが一致しないとすれば(ステップS205:NO)、切替用演算部130は、データD1およびデータD2の両方に異常がある旨の判定を行い、その旨の情報を提示させる(ステップS206)。
このようにデータD1およびデータD2の両方に異常がある場合には、切替用演算部130は、切替部140の接続状態の切り替えを行わず、その状態を維持させる。この場合、作業者は、上述のステップS206においてデータD1およびデータD2の両方に異常がある旨の情報が提示されると、その情報から運転系の入出力機器121および待機系の入出力機器122に故障が発生した可能性があることを把握し、必要な対策を講じることができる。
ここでは運転系の入出力機器121のデータD1に異常があり、待機系の入出力機器122に故障はない状況を想定しているので、待機系の入出力機器122から出力されたデータD2は正常であり、制御演算部110から取得した元のデータD0と一致する(ステップS205:YES)。このように元のデータD0とデータD2とが一致する場合(ステップS205:YES)、切替用演算部130は、運転系の入出力機器121から出力されたデータD1に異常がある旨の判定を行い、その旨の情報を提示させる(ステップS209)。
続いて、切替部140は、切替用演算部130の制御の下、運転系の入出力機器121から出力されるデータD1に代えて、待機系の入出力機器122から出力されるデータD2が制御演算部110と制御対象機器300との間のデータ伝送経路上に送出されるようにスイッチ141の接続状態を切り替える(ステップS210)。具体的には、切替部140は、切替用演算部130の制御の下、スイッチ141の可動接点1413を固定接点1412側に切り替える。
切替部140のスイッチ141の接続状態が切り替えられると、運転系の入出力機器121から待機系の入出力機器122に運転が切り替えられる。このとき、待機系の入出力機器122は、運転系の入出力機器121と並列運転状態にあるため、制御演算部110から出力されるデータD0は、待機系の入出力機器122を通じて継続的に制御対象機器300に供給される。従って、運転系の入出力機器121のデータD1に異常が発生しても、無停止運転が可能になる。
また、仮に運転系の入出力機器121のデータD1に異常がなければ、上述したステップS204において、切替用演算部130は、運転系の入出力機器121から出力されたデータD1が元のデータD0と一致すると判定する(ステップS204:YES)。この場合、前述のステップS202におけるデータの不一致を示す判定結果は、待機系の入出力機器122から出力されたデータD2の異常によるものと考えることができる。そこで、運転系の入出力機器121から出力されたデータD1が元のデータD0と一致する場合(ステップS204:YES)、切替用演算部130は、待機系の入出力機器122から出力されたデータD2に異常がある旨の判定を行い、その旨の情報を提示させる(ステップS208)。
また、ステップS204において運転系の入出力機器121から出力されたデータD1が元のデータD0と一致した場合(ステップS204:YES)、待機系の入出力機器122に故障が発生していることが推定される。従ってこの場合、切替部140のスイッチ141の接続状態は維持され、運転系の入出力機器121から出力されるデータD1が、切替部140を通じて、継続して制御対象機器300に供給される。
また、作業者は、上述のステップS208においてデータD2に異常がある旨の情報が提示されると、その情報から待機系の入出力機器122に故障が発生した可能性があることを把握し、必要な対策を講じることができる。これにより、待機系の入出力機器122は、その対策を講じるために必要な作業期間を除けば、定常的に正常な状態に維持され、運転系の入出力機器121の故障の発生に備えることができる。従って、冗長化システム100の信頼性を損なうことなく、運転系の入出力機器121に故障が発生したときに運転系の入出力機器121から待機系の入出力機器122に即座に運転を切り替えることが可能になる。
上述したように、第1実施形態によれば、入出力機器121および入出力機器122のそれぞれについて、入出力ユニットごとに通信カードの異常を判断して運転を切り替えるので、多種の故障に柔軟に対応することができる。
また、第1実施形態によれば、運転系の入出力機器121から出力されるデータD1と待機系の入出力機器122から出力されるデータD2とを比較することにより、制御演算部110の処理の負荷を増加させることなく、データの異常および故障の有無を検出することができる。
また、第1実施形態によれば、運転系の入出力機器121から出力されるデータD1と待機系の入出力機器122から出力されるデータD2とを比較した後、データD1およびデータD2のそれぞれを元のデータD0と比較することにより、故障の所在を特定することが可能になる。
従って、第1実施形態によれば、冗長化された入出力機器の故障の有無を判断するための処理の負担を抑制しつつ、冗長化された入出力機器の出力値の異常の有無を的確かつ迅速に把握することができ、無停止運転の信頼性を向上させることができる。
なお、上述の第1実施形態では、制御演算部110が制御用のデータD0を生成して制御対象機器300に供給する場合を例として説明したが、制御対象機器300の作動状態を示す情報信号を制御対象機器300から制御演算部110に供給する場合には、運転系の入出力機器121、待機系の入出力機器122、切替部140のそれぞれについて入力と出力の関係を入れ替えれば、同様に本発明の概念を導入することができる。
また、上述の第1実施形態では、本発明を冗長化システムとして表現したが、本発明は、冗長化方法として表現することもできる。この場合、本発明による冗長化方法は、制御演算部110(制御部)が、制御対象機器300(制御対象)の作動状態を制御する段階と、運転系の主通信カード(主通信処理部)1211A等と待機系の副通信カード(副通信処理部)1211B等とを有する複数の入出力ユニット1211,1212,1213等が、前記主通信カードまたは前記副通信カードを通じて前記制御対象機器と前記制御演算部との間で伝送されるデータの入出力処理を実施する段階と、を含み、前記複数の入出力ユニットのそれぞれは、前記主通信カードによる入出力処理に異常が発生した場合、他の入出力ユニットとは独立に、前記主通信カードから前記副通信カードに運転を切り替え可能に構成された、冗長化方法として表現することができる。
以上、本発明の実施形態を説明したが、本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変形が可能である。
例えば、上述の各実施形態では、運転系の入出力機器121と待機系の入出力機器122の2台の入出力機器を用いて冗長化システムを構築する場合を説明したが、入出力機器の台数は任意である。
また、運転系の入出力機器121および待機系の入出力機器122は、それぞれ、3台の入出力ユニットを備えるものとしたが、入出力処理の対象となるデータに応じて、入出力ユニットの台数は任意に設定し得る。
また、上述の実施形態では、動作ビットの値を設定することにより、各入出力ユニットの主通信カードと副通信カードの運転を切り替えるものとしたが、この例に限定されず、通信カードの運転の切り替えは任意の手法で実施することができる。
また、上述の実施形態では、運転系の入出力機器121および待機系の入出力機器122のそれぞれと制御演算部110とをローカルエリアネットワークを介して接続するものとしたが、冗長化システム100の出力部と制御対象機器300との間をネットワークで繋いでもよく、どの区間をネットワーク化するかについては、任意に設定し得る。