(57)【要約】【課題】通信カードの切り替えに起因する通信エラーに対して、通信要求のキャンセル並びに上位装置への通知を不要とする二重化通信通装置を実現する。【解決手段】二重化された通信カードの制御権を切り替えるデバイスドライバを介して、上位装置からの通信要求に応じて機器と通信するアプリケーションプログラム実行部を具備する二重化通信装置において、前記デバイスドライバ内に設けられ、前記制御権の切り替えに起因する通信エラーに対して特有のエラーコードを生成するエラー処理手段と、該エラー処理手段から前記エラーコードを受け取り、制御権の切り替え時の通信要求に前記エラーコードを付加して前記アプリケーションプログラム実行部に通知する通信要求処理手段と、前記アプリケーションプログラム実行部内に設けられ、前記エラーコードを取得したとき、前記上位装置からの通信要求を前記通信要求処理手段に再送する再通信要求処理手段と、を備える。【選択図】図１
2008158728.tif 000002
【特許請求の範囲】
【請求項１】
二重化された通信カードの制御権を切り替えるデバイスドライバを介して、上位装置からの通信要求に応じて機器と通信するアプリケーションプログラム実行部を具備する二重化通信装置において、
前記デバイスドライバ内に設けられ、前記制御権の切り替えに起因する通信エラーに対して特有のエラーコードを生成するエラー処理手段と、
該エラー処理手段から前記エラーコードを受け取り、制御権の切り替え時の通信要求に前記エラーコードを付加して前記アプリケーションプログラム実行部に通知する通信要求処理手段と、
前記アプリケーションプログラム実行部内に設けられ、前記エラーコードを取得したとき、前記上位装置からの通信要求を前記通信要求処理手段に再送する再通信要求処理手段と、
を備えることを特徴とする二重化通信装置。
【請求項２】
前記アプリケーションプログラム実行部は、制御バスを介して操作監視装置と通信すると共に、フィールドバスを介してプラントの機器と通信する制御ステーション内に実装されていることを特徴とする請求項１に記載の二重化通信装置。
【請求項３】
前記アプリケーションプログラム実行部は、前記制御バスに接続されている他の制御ステーションと通信することを特徴とする請求項２に記載の二重化通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二重化された通信カードの制御権を切り替えるデバイスドライバを介して、上位装置からの通信要求に応じて機器と通信するアプリケーションプログラム実行部を具備する二重化通信装置に関するものである。
【背景技術】
【０００２】
二重化情報処理システムに関しては、特許文献１に技術的な開示がある。図２は、二重化した通信カードを備える従来の分散型制御システムの構成例を示す機能ブロック図である。
【０００３】
上位装置（操作・監視装置）１は、制御バス２を介して制御ステーション３と通信する。制御ステーション３は、フィールドバス４を介してプラント５の機器５１，５２，…５ｎと通信して所定の制御を実行する。制御バス２とフィールドバス４間には、上位装置１と通信する他の制御ステーション６が接続されている。
【０００４】
制御ステーション３は、複数個のアプリケーションプログラム実行部７、デバイスドライバ８、二重化された通信カード９（制御側）及び１０（待機側）を備えている。定常の制御状態では、通信カード９（制御側）に制御権与えられ、アプリケーションプログラム実行部７は、通信カード９を介してプラント５の機器と通信する。
【０００５】
上位装置１から機器への時系列的な通信要求Ｃ１，Ｃ２，…Ｃｎは、アプリケーションプログラム実行部７の通信要求処理手段７１に通知されて待ち行列７２に保持され、更にデバイスドライバ８の通信要求処理手段８１の待ち行列８２に渡される。
【０００６】
待ち行列８２の通信要求Ｃ１，Ｃ２，…Ｃｎは、順次制御権処理手段８３で選択されている通信カード（定常状態では通信カード９）及びフィールドバス４を介してプラント５の機器に通信される。取得された情報は、逆のルートを経由して上位装置１に返される。
【０００７】
例えば、通信要求Ｃ１を処理するために通信カード９を経由して機器５１と通信の途中で通信カード９にエラーが発生した場合、制御権処理手段８３は、図示のように通信カード９を切り離して待機側の通信カード１０に制御権を与え、これを制御側として機器と通信するルートに切り替える。
【０００８】
このために、通信カード９（旧制御側）を指定した通信要求Ｃ１は、通信カード９を経由した機器５１との通信が不成立となり、制御権処理手段８３より通信エラーがエラー処理手段８４に通知される。
【０００９】
このエラーは、エラー処理手段８４よりアプリケーションプログラム実行部７のエラー処理手段７３に通知される。エラー処理部７３は、このエラーを取得すると、デバイスドライバ８の待ち行列８２にある通信要求Ｃ１をキャンセルする指令をデバイスドライバ８に出すと共に、エラー情報を上位装置１に返す。
【００１０】
Ｃ２以降の待ち行列の通信要求も、順次同様にエラー処理されてキャンセルされる。上位装置１は、キャンセルとなった通信要求Ｃ１をアプリケーションプログラム実行部７に再通信要求する。
【００１１】
通信要求処理手段７１は、デバイスドライバ８にＣ１の再通信要求を出力する。デバイスドライバ８は、制御権が切り替わった通信カード１０を使用することにより、アプリケーションプログラム実行部７と機器５１との通信が成立する。キャンセルされたＣ２以降の待ち行列の通信要求も同様の手順で通信が成立する。
【００１２】
【特許文献１】特開２００６−２０９６２４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
従来装置の二重化通信通の手法では、通信カードの切り替えに起因する通信エラーの発生毎に、アプリケーションプログラム実行部よりデバイスドライバの待ち行列の通信要求をキャンセルすると共に上位装置にエラー情報を返し、上位装置から再通信要求を受けて通信カードの切り替えに対応した再通信要求処理を実行しているので、次のような問題がある。
【００１４】
（１）エラーとなった通信要求に対する煩雑なキャンセル処理を必要とする。デバイスドライバの通信機能には、送信中や受信処理中等の複数の処理があり、夫々の処理毎にキャンセルする処理を追加する必要があり、通信機能の設計が複雑となる。
【００１５】
（２）複数の通信要求に対するキャンセル処理のために、切り替わった通信カードによる再送信要求が完了するまで処理が遅延し、高速なカード切り替え処理に対応できない。
【００１６】
（３）再通信要求は、上位装置より出される仕組みであるため、上位装置は同じ通信要求を繰り返す煩雑な処理を実行する必要がある。通信要求が多い場合には、上位装置の処理効率の低下要因となる。
【００１７】
本発明は上述した問題点を解決するためになされたものであり、通信カードの切り替えに起因する通信エラーに対して、通信要求のキャンセル並びに上位装置への通知を不要とする二重化通信通装置の実現を目的としている。
【課題を解決するための手段】
【００１８】
このような課題を達成するために、本発明は次の通りの構成になっている。
（１）二重化された通信カードの制御権を切り替えるデバイスドライバを介して、上位装置からの通信要求に応じて機器と通信するアプリケーションプログラム実行部を具備する二重化通信装置において、
前記デバイスドライバ内に設けられ、前記制御権の切り替えに起因する通信エラーに対して特有のエラーコードを生成するエラー処理手段と、
該エラー処理手段から前記エラーコードを受け取り、制御権の切り替え時の通信要求に前記エラーコードを付加して前記アプリケーションプログラム実行部に通知する通信要求処理手段と、
前記アプリケーションプログラム実行部内に設けられ、前記エラーコードを取得したとき、前記上位装置からの通信要求を前記通信要求処理手段に再送する再通信要求処理手段と、
を備えることを特徴とする二重化通信装置。
【００１９】
（２）前記アプリケーションプログラム実行部は、制御バスを介して操作監視装置と通信すると共に、フィールドバスを介してプラントの機器と通信する制御ステーション内に実装されていることを特徴とする（１）に記載の二重化通信装置。
【００２０】
（３）前記アプリケーションプログラム実行部は、前記制御バスに接続されている他の制御ステーションと通信することを特徴とする（２）に記載の二重化通信装置。
【発明の効果】
【００２１】
本発明によれば、次のような効果を期待することができる。
（１）エラーとなった通信要求に対する煩雑なキャンセル処理を必要としないために、デバイスドライバの通信機能をシンプルに設計することができる。
【００２２】
（２）煩雑なキャンセル処理がないので、切り替わった通信カードによる再送信要求処理を直ちにスタートでき、高速なカード切り替え処理が可能となる。
【００２３】
（３）再通信要求は、アプリケーションプログラム実行部の処理とされ、エラー情報は上位装置に通知されない。従って上位装置は、同じ通信要求を繰り返す煩雑な処理を実行する必要がなく、通信要求が多い場合にも処理効率の低下要因にはならない。
【発明を実施するための最良の形態】
【００２４】
以下、本発明を図面により詳細に説明する。図１は、二重化した通信カードを備える、本発明が適用された分散型制御システムの一実施形態を示す機能ブロック図である。図２で説明した従来装置と同一要素には同一符号を付して説明を省略する。
【００２５】
本発明の構成上の特徴部は、デバイスドライバ８のエラー処理手段１００、アプリケーションプログラム実行部７のエラー処理手段３００、同じくアプリケーションプログラム実行部７の再通信要求処理手段４００である。
【００２６】
デバイスドライバ８内のエラー処理手段１００は、通信カード切り替えに起因する通信エラーを制御権処理手段８３から通知されると、制御権の切り替えに起因する通信エラー特有のエラーコードである、通信カードエラー２００を生成する。
【００２７】
この通信カードエラー２００は、本発明により新設されて追加されたエラーコードであり、図２で説明した従来の一般的な通信エラーとは識別され、もっぱらカード切り替え特有の通信エラーのみに対応して生成される。
【００２８】
通信要求処理手段８１は、エラー処理手段１００から通信カードエラー２００を受け取り、カード切り替え時の通信要求処理に通信カードエラー２００を付加した通信カードエラー２０１を生成する。
【００２９】
アプリケーションプログラム実行部７内に設けられたエラー処理手段３００は、デバイスドライバ８内の通信要求処理手段８１で生成された通信エラーコード２０１をデバイスドライバ８より取得する。
【００３０】
エラー処理手段３００は、通信エラーコード２０１を取得したとき、再通信要求処理手段４００に指令し、上位装置１からの通信要求を保持している待ち行列７２を再通信要求としてデバイスドライバ８の通信要求処理手段８１に送付させる。
【００３１】
デバイスドライバ８の通信要求処理手段８１は、再通信要求に基づいて新たな待ち行列８２´を保持し、切り替わった通信カード１０を介してプラントの機器と通信して情報収集を実行し、アプリケーションプログラム実行部７を経由して上位装置１に返す。
【００３２】
このため、通信カードが切り替わる前にデバイスドライバ８の通信要求処理手段８１に保持されていた待ち行列８２は、キャンセル処理をする必要がなくなる。
【００３３】
本発明では、カード切り替えによる通信エラーを特有のエラーコードで識別し、キャンセル処理及び上位装置への通知をしないで、アプリケーションプログラム実行部７のローカル処理で再通信要求をする。
【００３４】
このような再通信要求の仕組みにより、上位装置の関与を排除し、デバイスドライバの通信機能をシンプルにすることができ、カード切り替えに伴う通信処理を高速化することが可能となる。
【００３５】
実施形態では、アプリケーションプログラム実行部７は、分散型制御システムの上位装置である操作・監視装置１からの通信要求を受ける例を示したが、制御バス２に接続されている他の制御ステーション６を上位装置として通信し、通信要求を受ける形態であってもよい。
【００３６】
実施形態では、アプリケーションプログラム実行部７が分散型制御システムの制御ステーション３内に実装される例を示したが、これの限定されるものではなく、上位装置からの通信要求を処理する汎用的な通信装置に実装される形態であってもよい。
【図面の簡単な説明】
【００３７】
【図１】二重化した通信カードを備える、本発明が適用された分散型制御システムの一実施形態を示す機能ブロック図である。
【図２】二重化した通信カードを備える、従来の分散型制御システムの構成例を示す機能ブロック図である。
【符号の説明】
【００３８】
１  上位装置
２  制御バス
３  制御ステーション
４  フィールドバス
５  プラント
５１，５２，…５ｎ  機器
６  制御ステーション
７  アプリケーションプログラム実行部
７１  通信要求処理手段
７２  待ち行列
８  デバイスドライバ
８１  通信要求処理手段
８２  待ち行列
８３  制御権処理手段
９  通信カード（制御側）
１０  通信カード（待機側）
１００  エラー処理手段（デバイスドライバ側）
２００，２０１  通信カードエラー
３００  エラー処理手段（アプリケーションプログラム実行部側）
４００  再通信要求処理手段
【図１】
2008158728.tif 000003
【図２】
2008158728.tif 000004