(57)【要約】【課題】  システム内の稼動系計算機に障害が発生しても，継続して処理を実行し，入出力データを消失させずに稼動し続けることが可能な計算機制御システムを提供する。【解決手段】  同一処理を行う稼動系計算機２及び待機系計算機３と外部機器６，７との間に入出力装置４を設け，外部機器６（７）から受信したデータを稼動系計算機２及び待機系計算機３の両方に入力する。稼動系計算機２に演算処理を実行させ，その演算結果を入出力装置４を介して外部機器７（６）に出力する。また，その演算結果を待機系計算機３の演算処理結果と比較し，稼動系計算機２が異常でないか判断する。稼動系計算機２が異常である場合には，待機系計算機３が新たな稼動計算機３に切替わる。【選択図】  図１
2007072980.tif 000002
【特許請求の範囲】
【請求項１】
同一の演算処理を行う稼動系計算機及び待機系計算機と、これらの稼動系計算機及び待機系計算機と外部機器との間に設けられた入出力装置とを有する計算機制御システムであって，
前記入出力装置は，前記外部機器から受信したデータを前記稼動系計算機及び前記待機系計算機の両方に入力し，
前記稼動系計算機は，所定の演算処理を実行して，得られた処理結果を，前記入出力装置及び前記待機系計算機に送信し，
前記入出力装置は，前記稼動系計算機から受信した前記処理結果を前記外部機器に出力し，
前記待機系計算機は，前記所定の演算処理を実行し，得られた処理結果を前記稼動系計算機から受信した処理結果と比較し，前記稼動系計算機から受信した処理結果に不足データが存在する場合に前記稼動系計算機が異常であると判断して，当該待機計算機が新たな稼動系計算機に切替わることを特徴とする，計算機制御システム。
【請求項２】
前記稼動系計算機は，稼動系計算機用データ出力バッファ及び待機系計算機用データ保持バッファを備え，
前記待機系計算機は，待機系計算機用データ出力バッファ及び稼動系計算機用データ保持バッファを備え，
前記稼動系計算機の処理結果が前記入出力装置に送信される際には，前記稼動系計算機用データ出力バッファを介して送信され，
前記稼動系計算機の処理結果が前記待機系計算機に送信される際には，前記待機系計算機の前記稼動系計算機用データ保持バッファに送信され，
前記待機系計算機の処理結果は，前記待機系計算機用データ保持バッファに格納されると共に，前記稼動系計算機の前記待機系計算機用データ保持バッファに送信されることを特徴とする，請求項１に記載の計算機制御システム。
【請求項３】
前記稼動系計算機及び前記待機系計算機は，共有する共有記憶装置を備え，
前記共有記憶装置に設けられた稼動系計算機用バッファが，前記稼動系計算機の前記稼動系計算機用データ出力バッファ及び前記待機系計算機の前記稼動系計算機用データ保持バッファを兼用し，前記稼動系計算機による前記稼動系計算機用データ出力バッファ及び前記稼動系計算機用データ保持バッファへの，前記稼動系計算機の処理結果の送信が一本化され，
前記共有記憶装置に設けられた待機系計算機用バッファが，前記待機系計算機の前記待機系計算機用データ出力バッファ及び前記稼動系計算機の前記待機系計算機用データ保持バッファを兼用し，前記待機系計算機による前記待機系計算機用データ出力バッファ及び前記待機系計算機用データ保持バッファへの，前記待機系計算機の処理結果の送信が一本化されたことを特徴とする，請求項２に記載の計算機制御システム。
【請求項４】
前記待機系計算機が前記新たな稼動系計算機に切替えられた後に，前記稼動系計算機が新たな待機系計算機に設定されることを特徴とする，請求項１〜３のいずれかに記載の計算機制御システム。
【請求項５】
前記待機系計算機は，所定周期で監視用信号を送信し，前記稼動系計算機が前記監視用信号に応答しない場合，前記稼動系計算機が異常であると判断して，当該待機系計算機が新たな稼動系計算機に切替わることを特徴とする，請求項１〜４のいずれかに記載の計算機制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，入出力データが冗長化される計算機制御システムに関する。
【背景技術】
【０００２】
従来から，システム内で稼動する計算機に故障等の異常が発生し，システムがダウンしてしまう事態を防止するための冗長化の技術は数多く存在する。例えば，特許文献１に記載されているクラスタシステムでは，稼動系計算機及び待機系計算機が切替え可能な構成にされており，稼動系計算機に障害が発生した場合，それまで待機していた待機系計算機が新たな稼動系計算機として切替えられる。
【０００３】
また，特許文献２には，同一処理を実行する稼動系計算機及び待機系計算機が切替え可能な構成にされた冗長化コントローラが開示されている。この特許文献２の冗長化コントローラでは，入力データは稼動系計算機だけに入力され，その後に，この入力データが稼動系計算機から待機系計算機に送信される。そして稼動系計算機及び待機系計算機では同一の処理が実行され，この同一の処理に対して互いの出力結果の同期をとった上で稼動系計算機から出力結果が出力される。稼動系計算機に異常が発生すると，待機系計算機が新たな稼動系計算機として切替えられる。
【０００４】
【特許文献１】特開２００４−３５５４４６号公報
【特許文献２】特開２００３−３６１０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら，上記特許文献１に記載されている技術を用いた場合，稼動系計算機に故障が発生した瞬間から，待機系計算機が新たな稼動系計算機として切替えられる瞬間までの間の入出力データが失われてしまう。また，稼動系計算機が実行していた処理は故障が発生した瞬間から打切られ，待機系計算機が新たな稼動計算機となった後に打切られた処理を継続して実行することはできない。
【０００６】
上記特許文献２に記載されている技術を用いた場合も上記特許文献１の場合と同様に，外部との入出力が行われる稼動系計算機に障害が発生した瞬間から，待機系計算機が新たな稼動系計算機として切替えられる瞬間までの間の入出力データが失われてしまう。また，故障が発生した瞬間に稼動系計算機が実行していた処理が，例えば一定の繰返し処理や非常に少数の処理等のように単純である場合には，待機系計算機が新たな稼動計算機に切替わった後にその処理を引継いで実行することは可能であるが，例えば稼動系計算機が実行していた処理が非同期の処理や非常に多数の処理等のように複雑である場合には，待機計算機が新たな稼動計算機に切替わった後にその処理を引継いで実行することは困難である。
【０００７】
一般にフォールトトレラントと呼ばれる技術を用いると，稼動系計算機及び待機系計算機を完全に同一に構成し，完全に同期させた二重化構造にすることが可能である。この技術を用いると，障害が発生しても，入出力データを消失させずに，待機計算機を新たな稼動系計算機として切替えることが可能である。また，稼動系計算機が実行していた処理を待機系計算機に引継がせて連続的に実行させることができる。しかしながら，フォールトトレラントの技術を導入する場合，専用のソフトウェア等が必要となる上に，非常に高価なものになってしまう。
【０００８】
本発明は上記課題に鑑みてなされたものであり，システム内の稼動系計算機に障害が発生しても，継続して処理を実行し，入出力データを消失させずに稼動し続けることが可能な計算機制御システムを，従来よりも安価に，且つ容易化された構造で提供することをその目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために，本発明によれば，同一の演算処理を行う稼動系計算機及び待機系計算機と，これらの稼動系計算機及び待機系計算機と外部機器との間に設けられた入出力装置とを有する計算機制御システムであって，前記入出力装置は，前記外部機器から受信したデータを前記稼動系計算機及び前記待機系計算機の両方に入力し，前記稼動系計算機は，所定の演算処理を実行して，得られた処理結果を，前記入出力装置及び前記待機系計算機に送信し，
前記入出力装置は，前記稼動系計算機から受信した前記処理結果を前記外部機器に出力し，前記待機系計算機は，前記所定の演算処理を実行し，得られた処理結果を前記稼動系計算機から受信した処理結果と比較し，前記稼動系計算機から受信した処理結果に不足データが存在する場合に前記稼動系計算機が異常であると判断して，当該待機系計算機が新たな稼動系計算機に切替わることを特徴とする，計算機制御システムが提供される。
【００１０】
本発明によれば，システム内の稼動系計算機に障害が発生しても，入出力データを消失させずに，継続して処理を実行し，バンプレスに待機系計算機を新たな稼動系計算機に切替えることが可能である。
【００１１】
また，上記計算機制御システムにおいて，前記稼動系計算機は，稼動系計算機用データ出力バッファ及び待機系計算機用データ保持バッファを備え，前記待機系計算機は，待機系計算機用データ出力バッファ及び稼動系計算機用データ保持バッファを備え，前記稼動系計算機の処理結果が前記入出力装置に送信される際には，前記稼動系計算機用データ出力バッファを介して送信され，前記稼動系計算機の処理結果が前記待機系計算機に送信される際には，前記待機系計算機の前記稼動系計算機用データ保持バッファに送信され，前記待機系計算機の処理結果は，前記待機系計算機用データ保持バッファに格納されると共に，前記稼動系計算機の前記待機系計算機用データ保持バッファに送信されてもよい。
【００１２】
また，上記計算機制御システムにおいて，前記稼動系計算機及び前記待機系計算機は，共有する共有記憶装置を備え，前記共有記憶装置に設けられた稼動系計算機用バッファが，前記稼動系計算機の前記稼動系計算機用データ出力バッファ及び前記待機系計算機の前記稼動系計算機用データ保持バッファを兼用し，前記稼動系計算機による前記稼動系計算機用データ出力バッファ及び前記稼動系計算機用データ保持バッファへの前記稼動系計算機の処理結果の送信が一本化され，前記共有記憶装置に設けられた待機系計算機用バッファが，前記待機系計算機の前記待機系計算機用データ出力バッファ及び前記稼動系計算機の前記待機系計算機用データ保持バッファを兼用し，前記待機系計算機による前記待機系計算機用データ出力バッファ及び前記待機系計算機用データ保持バッファへの前記待機系計算機の処理結果の送信が一本化されてもよい。
【００１３】
また，上記計算機制御システムにおいて，前記待機系計算機が前記新たな稼動系計算機に設定された後に，前記稼動系計算機が新たな待機系計算機に設定されてもよい。
【００１４】
また，上記計算機制御システムにおいて，前記待機系計算機は，所定周期で監視用信号を送信し，前記稼動系計算機が前記監視用信号に応答しない場合，前記稼動系計算機が異常であると判断して，当該待機系計算機が新たな稼動系計算機に切替わるようにしてもよい。
【発明の効果】
【００１５】
本発明によれば，システム内において，稼動系計算機に障害が発生しても，バンプレスに待機系計算機を新たな稼動系計算機に切替えることで，継続して処理を実行し，入出力データを消失させずに稼動し続けることが可能な計算機制御システムを，従来よりも安価に，且つ容易化された構造で提供することができる。
【発明を実施するための最良の形態】
【００１６】
以下，図面を参照しながら，本発明の好適な実施形態について説明をする。なお，本明細書及び図面において，実質的に同一の機能構成を有する要素については，同一の符号を付することにより重複説明を省略する。
【００１７】
図１は，本発明の実施の形態に係る計算機制御システム１の構成図である。図１に示すように，同一の構成を有し，同一の処理を行う稼動系計算機２及び待機系計算機３が，例えばＬＡＮ等の通信回線５を介して，入出力装置としての入出力計算機４に接続されている。また，入出力計算機４には，例えばＬＡＮ等の通信回線５を介して，外部機器６及び７が接続されている。外部機器６，７は，例えば，本実施の形態では，製鉄プラントの高炉の管理における温度の制御装置を想定している。
【００１８】
図２は，本発明の第１の実施の形態に係る稼動系計算機２及び待機系計算機３の構成を説明する図である。稼動系計算機２は，入出力計算機４から入力された入力データを処理するデータ入力プログラム２１と，入力されたデータが格納されるＡＰデータベース２２と，ＡＰデータベース２２に格納されたデータを用いて処理を行うアプリケーションプログラム２３と，アプリケーションプログラム２３の処理結果を出力するデータ出力プログラム２４と，データ出力プログラム２４が出力した処理結果が格納される稼動系計算機用データ出力バッファ２５と，待機系計算機３が送信してきた処理結果が格納される待機系計算機用データ保持バッファ２６と，障害発生等により稼動系計算機２が新たな待機系計算機に切替えられるまでは稼動系計算機用データ出力バッファ２５に格納されているデータを入出力計算機４にそのまま出力するだけの同期制御／監視部２７とで構成される。
【００１９】
なお，障害発生等により稼動系計算機２が新たな待機系計算機に切替えられた場合，同期制御／監視部２７は，後述する待機系計算機３の同期制御／監視部３７と同様に待機系の機能をするようになる。また，アプリケーションプログラム２３の処理結果は，データ出力プログラム２４から直接的に出力される以外にも，一度ＡＰデータベース２２に格納され，その後，データ出力プログラム２４によって出力されてもよい。データ出力プログラム２４は，アプリケーションプログラム２３の処理結果のデータに限らず，ＡＰデータベース２２に格納されたその他のデータを出力することも可能である。
【００２０】
待機系計算機３は，入出力計算機４から入力された入力データを処理するデータ入力プログラム３１と，入力されたデータが格納されるＡＰデータベース３２と，ＡＰデータベース３２に格納されたデータを用いて処理を行うアプリケーションプログラム３３と，アプリケーションプログラム３３の処理結果を出力するデータ出力プログラム３４と，データ出力プログラム３４が出力した処理結果が格納される待機系計算機用データ出力バッファ３５と，稼動系計算機３が送信してきた処理結果が格納される稼動系計算機用データ保持バッファ３６と，稼動系計算機２の処理結果が待機系計算機３の処理結果と同期しているかどうか確認すること等により，稼動系計算機２が正常であるかどうかの監視を実行する同期制御／監視部３７とで構成される。待機系計算機３のデータ出力プログラム３４によって出力された処理結果は，待機系計算機用データ出力バッファ３５に格納され，同期制御及び監視に用いられるだけで，入出力計算機４には出力されない。
【００２１】
なお，待機系計算機３が新たな稼動系計算機に切替えられた場合，同期制御／監視部３７は前述した稼動系計算機２の同期制御／監視部２７と同様に稼動系の機能をするようになる。また，アプリケーションプログラム３３の処理結果は，データ出力プログラム３４から直接的に出力される以外にも，一度ＡＰデータベース３２に格納され，その後，データ出力プログラム３４によって出力されてもよい。データ出力プログラム３４は，アプリケーションプログラム３３の処理結果のデータに限らず，ＡＰデータベース３２に格納されたその他のデータを出力することも可能である。
【００２２】
図３及び図４は，本発明の第１の実施の形態における入出力計算機４の構成を説明する図である。図３には，外部機器６又は７から入力されたデータを稼動系計算機２及び待機系計算機３に送信して入力する際に機能する入出力計算機４の各構成要素が示されている。入出力計算機４は，外部機器６から入力されたデータを受信するデータ入力部４１と，外部機器７から入力されたデータを受信するデータ入力部４２と，データ入力部４１及び４２によって外部機器６，７から受信したデータが格納される入力データバッファ４３と，入力データバッファ４３に格納されたデータを稼動系計算機２に送信して出力するデータ送信部４４と，入力データバッファ４３に格納されたデータを待機系計算機３に送信して出力するデータ送信部４５とを有する。
【００２３】
図４は，稼動系計算機２及び待機系計算機３から入力されたデータを外部機器６又は７に送信して出力する際に機能する入出力計算機４の各構成要素が示されている。入出力計算機４は，稼動系計算機２から入力されたデータを受信するデータ受信部４６と，待機系計算機３が新たな稼動系計算機３に切替えられた場合にこの新たな稼動計算機３から入力されたデータを受信するデータ受信部４７と，受信したデータがデータ受信部４６又は４７によって格納される出力データバッファ４８と，出力データバッファ４８に格納されたデータを外部機器６に出力するデータ出力部４９と，出力データバッファ４８に格納されたデータを外部機器７に出力するデータ出力部５０とを有する。
【００２４】
以上のように構成された計算機制御システム１の好適な動作の一例について説明する。なお，本実施形態では，外部機器６から入出力計算機４を介して稼動系計算機２（待機系計算機３）にデータを入力し，稼動系計算機２（待機系計算機３）で演算処理を行い，その処理結果を入出力計算機４を介して外部機器７に出力する場合について説明する。まず，外部機器６から例えばＬＡＮ等の通信回線５を介してデータが入出力計算機４に入力されると，データを受信した入出力計算機４のデータ入力部４１は，このデータを入力データバッファ４３に格納する。入力データバッファ４３に格納されたデータは，データ送信部４４によって稼動計算機２に送信されると共に，データ送信部４５によって待機系計算機３にも送信される。即ち，同一のデータが稼動系計算機２及び待機系計算機３の両方に出力される。
【００２５】
図２に示すように，入出力計算機４から稼動系計算機２に入力されたデータは，データ入力プログラム２１によってＡＰデータベース２２に格納される。アプリケーションプログラム２３は，ＡＰデータベース２２に格納されたこのデータを用いる等して，種々の演算処理を行う。図５は，稼動系計算機２又は待機系計算機３が演算処理を実行した後の手順を示すフロー図である。このフローは，稼動系計算機２又は待機系計算機３が演算処理を実行すると，開始され（図５の６０），稼動系計算機２又は待機系計算機３に応じて異なる手順で実行される（図５の６１）。
【００２６】
稼動系計算機２のアプリケーションプログラム２３の演算処理の処理結果は，データ出力プログラム２４によって，稼動系計算機用データ出力バッファ２５に送信され（図５の６２），さらにデータ出力プログラム２４によって，待機系計算機３の稼動系計算機用データ保持バッファ３６に送信される（図５の６３）。本実施の形態では，データ出力プログラム２４によって，稼動系計算機２から処理結果が待機系計算機３の稼動系計算機用データ保持バッファ３６に送信される際には，ＬＡＮ等の通信回線５を介して送信される。稼動系計算機用データ出力バッファ２５に格納された稼動系計算機２の処理結果は，同期制御／監視部２７を介して入出力計算機４に出力される。後述するように，待機系計算機３でも稼動系計算機２と同一の演算処理が実行され，その処理結果が待機系計算機３からＬＡＮ等の通信回線５を介して稼動系計算機２の待機系計算機用データ保持バッファ２６に送信されて格納される。稼動系計算機２の場合，図５のフローはこれで終了する（図５の７０）。
【００２７】
待機系計算機３においても稼動系計算機２と全く同一の処理が以下のようにして行われる。入出力計算機４から待機系計算機３に入力されたデータは，データ入力プログラム３１によってＡＰデータベース３２に格納される。アプリケーションプログラム３３は，ＡＰデータベース３２に格納されたデータを用いる等して，種々の演算処理を行う。演算処理の終了後，演算の処理結果はデータ出力プログラム３４によって，待機系計算機用データ出力バッファ３５に送信され（図５の６４），さらにデータ出力プログラム３４によって，稼動系計算機２の待機系計算機用データ保持バッファ２６に送信される（図５の６５）。その後，稼動系計算機２及び待機系計算機３の両方の処理結果が確実に出揃うように第１の所定時間だけ待機する（図５の６６）。この第１の所定時間は，稼動系計算機２と待機系計算機３の同期をとるための調整時間であり，例えば数１０〜数１００ｍｓｅｃ程度であってよい。
【００２８】
本実施の形態では，データ出力プログラム３４によって，待機系計算機３から処理結果が稼動系計算機２の待機系計算機用データ保持バッファ２６に送信される際には，ＬＡＮ等の通信回線５を介して送信される。上述したように，稼動系計算機２でも待機系計算機３と同一の演算処理が実行され，その処理結果が稼動系計算機２から待機系計算機３の稼動系計算機用データ保持バッファ２６に送信されて格納される。なお，稼動系計算機２及び待機系計算機３は，同一に構成され，同一の演算処理を実行するので，異常が発生した場合を除き，演算処理によって同一の処理結果が得られる。
【００２９】
待機系計算機３の同期制御／監視部３７は，稼動系計算機２及び待機系計算機３の演算処理結果を比較して稼動系計算機２が異常でないか判断し（図５の６７），監視する。図６は，この際の判断手順を示すフロー図である。即ち，図５のフローにおいて稼動系計算機２が正常であるか判断する際（図５の６７）に，図６のフローが開始され（図６の８０），待機系計算機３の同期制御／監視部３７は，待機系計算機用データ出力バッファ３５に格納された待機系計算機３の演算処理結果と，稼動系計算機用データ保持バッファ３６に格納された稼動系計算機２の演算処理結果とを比較し，稼動系計算機２から受信した処理結果に不足データが存在するかどうかを判断する（図６の８１）。不足データが存在しない場合，そのままフローが終了する（図６の８３）。稼動系計算機２から受信した処理結果に不足データが存在する場合，稼動系計算機２が異常であると判断され（図６の８２），フローが終了する（図６の８３）。
【００３０】
待機系計算機３の同期制御／監視部３７は，稼動系計算機２が異常であると判断すると，待機系計算機３のモードを待機系から稼動系に切替えて，待機系計算機３を新たな稼動系計算機３にする（図５の６８）。次いで，切替え前の稼動系計算機２の演算処理結果の不足データを，待機系計算機用データ出力バッファ３５から取出し，古い順に入出力計算機４に出力する（図５の６９）。待機系計算機３の場合，図５のフローはこれで終了する（図５の７０）。
【００３１】
図４に示すように，稼動系計算機２から入力されたデータは，入出力計算機４のデータ受信部４６によって受信される。なお，入出力計算機４のデータ受信部４７は，待機系計算機３から入力されたデータを受信可能であるが，稼動系計算機２が異常であると判断され，待機系計算機３が新たな稼動系計算機３に切替わるまで待機系計算機３からデータが入力されることはない。データ受信部４６は，稼動系計算機２から受信したデータを出力データバッファ４８に格納する。データ受信部４７が，待機系計算機３からデータを受信した場合にも受信したデータが出力データバッファ４８に格納される。以上のようにして，稼動計算機２（待機計算機３）からデータが入力される度に，入力データは，出力データバッファ４８に格納される。出力データバッファ４８に格納されたデータは，データ出力部５０によって外部機器７に出力される。本実施の形態では，入出力計算機４から外部機器７に出力する場合について説明したが，出力データバッファ４８に格納されたデータはデータ出力部４９によって外部機器６に出力されてもよい。
【００３２】
図７は，稼動系計算機２が異常でないかどうかを定期的に監視する待機系計算機３の同期制御／監視部３７の監視手順を示したフロー図である。図７のフローは，例えば数１００ｍｓｅｃ毎の定周期で開始される（図７の９０）。同期制御／監視部３７は，監視用信号を稼動系計算機２に送信する（図７の９１）。同期制御／監視部３７は，第２の所定時間だけ待機する（図７の９２）。第２の所定時間の経過後，同期制御／監視部３７は，稼動系計算機２から応答が有ったかどうかを確認する（図７の９３）。この第２の所定時間は，稼動系計算機２から応答が無いのが，許容範囲内での遅延に過ぎないためなのか，若しくは障害等が発生しているためなのかを区別し，稼動系計算機２が正常又は異常であるかを判断するための待機時間である。第２の所定時間は，例えば１００ｍｓｅｃ程度であってよい。稼動系計算機２から応答が有った場合，同期制御／監視部３７は，稼動系計算機２は正常であると判断し，フローは最初に戻り，例えば数１００ｍｓｅｃの定周期経過後に次のフローが開始される（図７の９０）。以後も同様に，同期制御／監視部３７によって定周期でフローが実行される。
【００３３】
一方，稼動系計算機２から応答が無かった場合，同期制御／監視部３７は，稼動系計算機２は異常であると判断し，待機系計算機３のモードを待機系から稼動系に切替えて，待機系計算機３を新たな稼動系計算機３にする（図７の９４）。次いで，切替え前の稼動系計算機２の演算処理結果の不足データを，待機系計算機用データ出力バッファ３５から取出し，古い順に入出力計算機４に出力する（図７の９５）。稼動系計算機２が正常又は異常と判断された後，フローは最初に戻り，例えば数１００ｍｓｅｃの定周期経過後に次のフローが開始される（図７の９０）。以後も同様に，同期制御／監視部３７によって定周期でフローが実行される。
【００３４】
稼動系計算機２に故障等の障害が発生し，待機系計算機３の同期制御／監視部３７によって稼動系計算機２が異常であると判断された場合，待機系計算機３が新たな稼動系計算機に切替わることにより計算機制御システムは継続的に稼動する。その後，故障等の障害が修復されて正常に戻った稼動系計算機２は，再度，計算機制御システム１内に組込まれ，新たな待機系計算機２に設定される。そして，新たな稼動系計算機３及び新たな待機系計算機２は，各々，障害が発生する前の稼動系計算機２及び待機系計算機３と同様に機能する。
【００３５】
以上の第１の実施の形態によれば，同一の演算処理を行う稼動系計算機２及び待機系計算機３と外部機器６，７との間に接続された入出力装置４が設けられた計算機制御システム１において，外部機器６（７）から入力されたデータを稼動系計算機２及び待機系計算機３の両方に入力し，稼動系計算機２で演算処理を行い，その処理結果を入出力計算機４を介して外部機器７（６）に出力すると共に，待機系計算機３で同一の演算処理を行い，その処理結果を用いて稼動系計算機２が正常であるか確認し，稼動系計算機２が異常である場合には，待機系計算機３が継続して処理結果を出力するようにしたので，稼動系計算機２に障害が発生した場合にも，継続してデータの入出力を行い，入出力データを消失させずに計算機制御システム１を稼動し続けることができる。さらに，本発明の実施の形態に係る入出力装置４は，専用のソフトウェア又はＯＳを必要とせず，例えば一般的なＯＳが実装された汎用サーバを用いることが可能であり，従来よりも安価で，且つ容易化された構造の計算機制御システムを提供することができる。
【００３６】
次に第２の実施の形態について説明する。この第２の実施の形態の計算機制御システム１は，図８に示すように，稼動系計算機２及び待機系計算機３が共有記憶装置としての共有ディスク１０１を共有して備え，この共有ディスク１０１上に稼動系計算機用バッファ１０２及び待機系計算機用バッファ１０３が設けられた構成にされてもよい。この変形実施例では，稼動系計算機用バッファ１０２は，稼動系計算機２の稼動系計算機用データ出力バッファ２５及び待機系計算機３の稼動系計算機用データ保持バッファ３６を兼用する。また，待機系計算機用バッファ１０３は，待機系計算機３の待機系計算機用データ出力バッファ３５及び稼動系計算機２の待機系計算機用データ保持バッファ２６を兼用する。従って，稼動系計算機２による処理結果の送信は，稼動系計算機２の稼動系計算機用データ出力バッファ２５への送信と，待機系計算機３の稼動系計算機用データ保持バッファ３６への送信とが，稼動系計算機用バッファ１０２への送信に一本化される。同様に，待機系計算機３による処理結果の送信は，待機系計算機３の待機系計算機用データ出力バッファ３５への送信と，稼動系計算機２の待機系計算機用データ保持バッファ２６への送信とが，待機系計算機用バッファ１０３への送信に一本化される。
【００３７】
図９及び図１０は，上記の第２の実施形態において，稼動系計算機２の同期制御／監視部２７及び待機系計算機３の同期制御／監視部３７の同期制御及び監視手順を示したフロー図である。図９の第１のフローは，稼動系計算機２のデータ出力プログラム２４が稼動系計算機２の演算処理結果を稼動系計算機用バッファ１０２に出力し格納したタイミングで開始される（１１０）。稼動系計算機２の同期制御／監視部２７は，稼動系計算機用バッファ１０２に格納された稼動系計算機２の処理結果のデータと，待機系計算機用バッファ１０３に格納された待機系計算機３の処理結果のデータとを比較し，待機系計算機３から受信した処理結果に不足データが存在するかどうかを判断する（１１１）。
【００３８】
稼動系計算機２の同期制御／監視部２７が，待機系計算機３から受信した処理結果データは不足していないと判断した場合，図９の第１のフローに示されるように，稼動系計算機用バッファ１０２に格納された処理結果データは入出力計算機４に出力され（１１２），図９の第１のフローは終了する（１１７）。一方，稼動系計算機２の同期制御／監視部２７が，待機系計算機３から受信した処理結果データが不足していると判断した場合，図９の第１のフローに示されるように，稼動系計算機２の同期制御／監視部２７は，第３の所定時間だけ待機する（１１３）。なお，この第３の所定時間は，稼動系計算機２と待機系計算機３の同期をとるための調整時間であり，例えば数１０ｍｓｅｃ程度であってよい。
【００３９】
第３の所定時間の経過後，稼動系計算機２の同期制御／監視部２７は，再度，稼動系計算機用バッファ１０２に格納された稼動系計算機２の処理結果のデータと，待機系計算機用バッファ１０３に格納された待機系計算機３の処理結果のデータとを比較し，稼動系計算機２から受信した処理結果データに不足データが存在するかどうかを判断する（１１４）。稼動系計算機２の同期制御／監視部２７が，待機系計算機３から受信した処理結果データは不足していないと判断した場合，図９の第１のフローに示されるように，稼動系計算機用バッファ１０２に格納された処理結果データは入出力計算機４に出力され（１１２），図９の第１のフローは終了する（１１７）。なお，第３の所定時間の経過を待たずに，待機系計算機３から受信した処理結果データに不足がなくなった時点で，稼動系計算機２の同期制御／監視部２７が稼動系計算機用バッファ１０２に格納された処理結果データを入出力計算機４に出力するようにしてもよい。
【００４０】
一方，稼動系計算機２の同期制御／監視部２７が，待機系計算機３から受信した処理結果データが不足していると判断した場合，稼動系計算機２の同期制御／監視部２７は，稼動系計算機用バッファ１０２に格納された処理結果データを入出力計算機４に出力する（１１５）。次に，稼動系計算機２の同期制御／監視部２７によって，第４の所定時間だけ待機するタイマーが設定され（１１６），フローは終了する（１１７）。なお，この第４の所定時間は，待機系計算機３から受信した処理結果データに不足データが存在するのが，許容範囲内での遅延に過ぎないためなのか，若しくは障害等が発生しているためなのかを区別し，待機系計算機３が正常又は異常であるかを判断するための待機時間である。この第４の所定時間は，例えば数１００ｍｓｅｃ程度であってよい。
【００４１】
図９の第２のフローは，第４の所定時間が経過すると開始される（１１８）。稼動系計算機２の同期制御／監視部２７は，稼動系計算機用バッファ１０２に格納された稼動系計算機２の処理結果のデータと，待機系計算機用バッファ１０３に格納された待機系計算機３の処理結果のデータとを比較し，待機系計算機３から受信した処理結果に不足データが存在するかどうかを判断する（１１９）。待機系計算機３から受信した処理結果データが不足していないと判断した場合，フローは終了する（１２１）。一方，待機系計算機３から受信した処理結果データが不足していると判断した場合，稼動系計算機２の同期制御／監視部２７は待機系計算機３が異常であると判定し（１２０），フローは終了する（１２１）。なお，第４の所定時間の経過を待たずに，待機系計算機３から受信した処理結果データに不足がなくなった時点で，同期制御／監視部２７が待機系計算機３を正常であると判定し，設定されているタイマーをキャンセルするようにしてもよい。
【００４２】
図１０は，稼動系計算機２が異常でないかどうかを監視する待機系計算機３の同期制御／監視部３７の監視手順を示したフロー図である。図１０のフローは，待機系計算機３のデータ出力プログラム３４が待機系計算機３の演算処理結果を待機系計算機用バッファ１０３に出力し格納したタイミングで開始される（１２２）。待機系計算機３の同期制御／監視部３７は，稼動系計算機用バッファ１０２に格納された稼動系計算機２の処理結果のデータと，待機系計算機用バッファ１０３に格納された待機系計算機３の処理結果のデータとを比較し，稼動系計算機２から受信した処理結果データに不足データが存在するかどうかを判断する（１２３）。稼動系計算機２から受信した処理結果データに不足データが存在しない場合，稼動系計算機２は正常であると判断され，フローは終了する（１２８）。稼動系計算機２から受信した処理結果データに不足データが存在する場合，待機系計算機３の同期制御／監視部３７は，第５の所定時間だけ待機する（１２４）。この第５の所定時間は，稼動系計算機２から受信した処理結果データに不足データが存在するのが，許容範囲内での遅延に過ぎないためなのか，若しくは障害等が発生しているためなのかを区別し，稼動系計算機２が正常又は異常であるかを判断するための待機時間である。この第５の所定時間は，例えば数１００ｍｓｅｃ程度であってよい。第５の所定時間の経過後，待機系計算機３の同期制御／監視部３７は，再度，稼動系計算機用バッファ１０２に格納された稼動系計算機２の処理結果のデータと，待機系計算機用バッファ１０３に格納された待機系計算機３の処理結果のデータとを比較し，稼動系計算機２から受信した処理結果データに不足データが存在するかどうかを判断する（１２５）。稼動系計算機２から受信した処理結果データに不足データが存在しない場合，稼動系計算機２は正常であると判断され，フローは終了する（１２８）。
【００４３】
一方，稼動系計算機２から受信した処理結果データに不足データが存在する場合，待機系計算機３の同期制御／監視部３７は稼動系計算機２が異常であると判断し，待機系計算機３のモードを待機系から稼動系に切替えて，待機系計算機３を新たな稼動系計算機３にする（１２６）。次いで，切替え前の稼動系計算機２の演算処理結果の不足データを，待機系計算機用バッファ１０３から取出し，古い順に入出力計算機４に出力する（１２７）。そして，フローは終了する（１２８）。
【００４４】
以上の第２の実施の形態によっても第１の実施の形態と同様に，稼動系計算機２に障害が発生した場合にも，継続してデータの入出力を行い，入出力データを消失させずに計算機制御システム１を稼動し続けることができる。また，入出力装置４は，専用のソフトウェア又はＯＳを必要とせず，例えば一般的なＯＳが実装された汎用サーバを用いることが可能であり，従来よりも安価で，且つ容易化された構造の計算機制御システムを提供することができる。さらに，第２の実施の形態によれば，稼動系計算機２による処理結果の送信が一本化され，且つ待機系計算機３による処理結果の送信も一本化されるので，その構造がさらに容易化されるという効果も得られる。
【００４５】
以上，添付図面を参照しながら本発明の好適な実施形態について説明したが，本発明は係る例に限定されない。当業者であれば，特許請求の範囲に記載された技術的思想の範疇内において，各種の変更例又は修正例に想到し得ることは明らかであり，それらについても当然に本発明の技術的範囲に属するものと了解される。
【００４６】
上述した実施形態においては，外部機器６から入出力装置４にデータを入力し，入出力装置４から外部機器７にデータを出力する場合について説明したが，外部機器６から入出力装置４にデータを入力し，入力装置４から同じ外部機器６にデータを出力させてもよい。また，入出力装置４に接続される外部機器は１台であってもよいし，３台以上であってもよい。
【００４７】
また，上述した実施形態においては，稼動系計算機２及び待機系計算機３の２台の計算機が入出力装置４に接続されている場合について説明したが，３台以上の計算機入出力装置４に接続されていてもよい。
【００４８】
また，上述した実施形態においては，稼動系計算機２から待機系計算機３の稼動系計算機用データ保持バッファ３６に処理結果を送信する際，若しくは待機系計算機３から稼動系計算機２の待機系計算機用データ保持バッファ２６にデータを送信する際に，ＬＡＮ等の通信回線５を介して送信が実行されるが，稼動系計算機２及び待機系計算機３を直接接続しておき，この直接的な接続によって送信が実行されるようにしてもよい。
【００４９】
また，上述した実施形態においては，稼動系計算機２又は待機系計算機３から入出力装置４にデータを出力するタイミングや，待機系計算機３が稼動系計算機２に監視用信号を送信する定周期のタイミングで稼動系計算機２又は待機系計算機３の正常又は異常を判断する場合について説明したが，入出力装置４が稼動系計算機２及び待機系計算機３にデータを送信するタイミングで稼動系計算機２及び待機系計算機３の正常又は異常を判断してもよい。
【産業上の利用可能性】
【００５０】
本発明は，例えば製鉄プラントにおいて高炉を制御管理するシステムに利用できるが，その他の制御システムに対しても有用である。
【図面の簡単な説明】
【００５１】
【図１】本発明の実施の形態に係る計算機制御システムの構成を説明する図である。
【図２】本発明の実施の形態に係る稼動系計算機及び待機系計算機の構成を説明する図である。
【図３】本発明の実施の形態に係る入出力計算機の構成を説明する図である。
【図４】本発明の実施の形態に係る入出力計算機の構成を説明する図である。
【図５】稼動系計算機又は待機系計算機が演算処理を実行した後の手順を示すフロー図である。
【図６】待機系計算機が，稼動系計算機の正常又は異常を判断する際の手順を示すフロー図である。
【図７】待機系計算機が，稼動系計算機の正常又は異常を定期的に監視する監視手順を示したフロー図である
【図８】本発明の実施の形態の変形例に係る計算機制御システムの構成を説明する図である。
【図９】本発明の実施の形態の変形例に係る計算機制御システムの同期制御及び監視の手順を示すフロー図である。
【図１０】本発明の実施の形態の変形例に係る計算機制御システムの監視の手順を示すフロー図である。
【符号の説明】
【００５２】
１    計算機制御システム
２    稼動系計算機
３    待機系計算機
４    入出力計算機（入出力装置）
５    通信回線
６，７    外部機器
【図１】
2007072980.tif 000003
【図２】
2007072980.tif 000004
【図３】
2007072980.tif 000005
【図４】
2007072980.tif 000006
【図５】
2007072980.tif 000007
【図６】
2007072980.tif 000008
【図７】
2007072980.tif 000009
【図８】
2007072980.tif 000010
【図９】
2007072980.tif 000011
【図１０】
2007072980.tif 000012