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