(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-28
(45)【発行日】2023-09-05
(54)【発明の名称】装置、方法およびプログラム
(51)【国際特許分類】
G05B 19/05 20060101AFI20230829BHJP
G06F 11/20 20060101ALI20230829BHJP
【FI】
G05B19/05 N
G06F11/20
(21)【出願番号】P 2020183150
(22)【出願日】2020-10-30
【審査請求日】2022-03-03
(73)【特許権者】
【識別番号】000006507
【氏名又は名称】横河電機株式会社
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】渡邉 郁知
【審査官】影山 直洋
(56)【参考文献】
【文献】特開2012-014353(JP,A)
【文献】特開2018-128820(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05
G06F 11/20
(57)【特許請求の範囲】
【請求項1】
コンフィグレーションデータを設定することによって回路構成がプログラムされるプログラマブル回路を有し、前記プログラマブル回路にプログラムされた入出力機能に応じた入出力動作を行う入出力装置における、プログラムされた前記入出力機能を診断する診断部と、
前記コンフィグレーションデータを記憶するコンフィグレーション記憶領域のエラーを検出するエラー検出部と、
前記コンフィグレーション記憶領域のエラーが検出され、且つ、プログラムされた前記入出力機能が正常と診断された場合
における、少なくとも一部の場合に、前記入出力装置の異常と判定
せずに無視する異常判定部と
を備える装置。
【請求項2】
前記入出力装置が多重化されているか否かを判定する判定部を更に備え、
前記異常判定部は、前記コンフィグレーション記憶領域のエラーが検出され、且つ、プログラムされた前記入出力機能が正常と診断された場合に、前記入出力装置が多重化されていないことを条件として、前記入出力装置の異常と判定しない
請求項1に記載の装置。
【請求項3】
前記異常判定部は、前記入出力装置が多重化されていて、且つ、主系として動作する前記入出力装置についてプログラムされた前記入出力機能が正常と診断された場合において、主系として動作する前記入出力装置について前記コンフィグレーション記憶領域のエラーが検出されたことを条件として、主系として動作する前記入出力装置の異常と判定する請求項2に記載の装置。
【請求項4】
前記主系として動作する前記入出力装置の異常が検出されたことに応じて、多重化された複数の入出力装置のうち主系として動作する入出力装置を切り換える切換部を更に備える請求項3に記載の装置。
【請求項5】
コンフィグレーションデータを設定することによって回路構成がプログラムされるプログラマブル回路を有し、前記プログラマブル回路にプログラムされた入出力機能に応じた入出力動作を行う入出力装置における、プログラムされた前記入出力機能を診断する診断部と、
前記コンフィグレーションデータを記憶するコンフィグレーション記憶領域のエラーを検出するエラー検出部と、
前記コンフィグレーション記憶領域のエラーが検出され、且つ、プログラムされた前記入出力機能が正常と診断された場合における、少なくとも一部の場合に、前記入出力装置の異常と判定しない異常判定部と、
前記コンフィグレーション記憶領域のエラー状況に応じて、前記プログラマブル回路の前記入出力機能の変更を制御する機能変更部と
を備え、
前記機能変更部は、前記コンフィグレーション記憶領域のエラーが検出されたことに応じて、前記プログラマブル回路の前記入出力機能の変更を禁止する
装置。
【請求項6】
コンフィグレーションデータを設定することによって回路構成がプログラムされるプログラマブル回路を有し、前記プログラマブル回路にプログラムされた入出力機能に応じた入出力動作を行う入出力装置における、プログラムされた前記入出力機能を診断する診断部と、
前記コンフィグレーションデータを記憶するコンフィグレーション記憶領域のエラーを検出するエラー検出部と、
前記コンフィグレーション記憶領域のエラーが検出され、且つ、プログラムされた前記入出力機能が正常と診断された場合における、少なくとも一部の場合に、前記入出力装置の異常と判定しない異常判定部と、
前記コンフィグレーション記憶領域のエラー状況に応じて、前記プログラマブル回路の前記入出力機能の変更を制御する機能変更部と
を備え、
前記機能変更部は、前記コンフィグレーション記憶領域のエラーが検出され、且つ、前記機能変更部による変更後の前記入出力機能が異常と診断された場合に、前記プログラマブル回路の前記入出力機能を変更前の前記入出力機能に戻す
装置。
【請求項7】
コンフィグレーションデータを設定することによって回路構成がプログラムされるプログラマブル回路を有し、前記プログラマブル回路にプログラムされた入出力機能に応じた入出力動作を行う入出力装置における、プログラムされた前記入出力機能を診断する診断部と、
前記コンフィグレーションデータを記憶するコンフィグレーション記憶領域のエラーを検出するエラー検出部と、
前記コンフィグレーション記憶領域のエラーが検出され、且つ、プログラムされた前記入出力機能が正常と診断された場合における、少なくとも一部の場合に、前記入出力装置の異常と判定しない異常判定部と、
前記コンフィグレーション記憶領域のエラー状況に応じて、前記プログラマブル回路の前記入出力機能の変更を制御する機能変更部と
を備え、
前記エラー検出部は、前記コンフィグレーション記憶領域を区分した複数の部分領域のそれぞれにおけるエラーを検出し、
前記機能変更部は、仮に前記プログラマブル回路の前記入出力機能を変更した場合に前記入出力機能で使用することになる前記部分領域において、既にエラーが検出されていることを条件として、前記プログラマブル回路の前記入出力機能の変更を禁止する
装置。
【請求項8】
コンフィグレーションデータを設定することによって回路構成がプログラムされるプログラマブル回路を有し、前記プログラマブル回路にプログラムされた入出力機能に応じた入出力動作を行う入出力装置における、プログラムされた前記入出力機能を診断する診断段階と、
前記コンフィグレーションデータを記憶するコンフィグレーション記憶領域のエラーを検出するエラー検出段階と、
前記コンフィグレーション記憶領域のエラーが検出され、且つ、プログラムされた前記入出力機能が正常と診断された場合
における、少なくとも一部の場合に、前記入出力装置の異常と判定
せずに無視する異常判定段階と
を備える方法。
【請求項9】
コンピュータに、
コンフィグレーションデータを設定することによって回路構成がプログラムされるプログラマブル回路を有し、前記プログラマブル回路にプログラムされた入出力機能に応じた入出力動作を行う入出力装置における、プログラムされた前記入出力機能を診断する診断手順と、
前記コンフィグレーションデータを記憶するコンフィグレーション記憶領域のエラーを検出するエラー検出手順と、
前記コンフィグレーション記憶領域のエラーが検出され、且つ、プログラムされた前記入出力機能が正常と診断された場合
における、少なくとも一部の場合に、前記入出力装置の異常と判定
せずに無視する異常判定手順と
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、装置、方法およびプログラムに関する。
【背景技術】
【0002】
特許文献1には、「制御装置によれば、異常判定部においてソフトエラーの位置が機能部の未使用部であるか、使用部であるかを判定することができるので、高信頼性を実現しつつ不要な停止を防止することができる」(段落0017)と記載されている。
[先行技術文献]
[特許文献]
[特許文献1] 特開2018-128820号公報
【発明の概要】
【0003】
本発明の第1の態様においては、装置を提供する。装置は、コンフィグレーションデータを設定することによって回路構成がプログラムされるプログラマブル回路を有し、プログラマブル回路にプログラムされた入出力機能に応じた入出力動作を行う入出力装置における、プログラムされた入出力機能を診断する診断部を備えてもよい。装置は、コンフィグレーションデータを記憶するコンフィグレーション記憶領域のエラーを検出するエラー検出部を備えてもよい。装置は、コンフィグレーション記憶領域のエラーが検出され、且つ、プログラムされた入出力機能が正常と診断された場合の少なくとも一部について、入出力装置の異常と判定しない異常判定部を備えてもよい。
【0004】
装置は、入出力装置が多重化されているか否かを判定する判定部を更に備えてもよい。異常判定部は、コンフィグレーション記憶領域のエラーが検出され、且つ、プログラムされた入出力機能が正常と診断された場合に、入出力装置が多重化されていないことを条件として、入出力装置の異常と判定しなくてもよい。
【0005】
異常判定部は、入出力装置が多重化されていて、且つ、主系として動作する入出力装置についてプログラムされた入出力機能が正常と診断された場合において、主系として動作する入出力装置についてコンフィグレーション記憶領域のエラーが検出されたことを条件として、主系として動作する入出力装置の異常と判定してもよい。
【0006】
装置は、主系として動作する入出力装置の異常が検出されたことに応じて、多重化された複数の入出力装置のうち主系として動作する入出力装置を切り換える切換部を更に備えてもよい。
【0007】
装置は、コンフィグレーション記憶領域にコンフィグレーションデータを変更することにより、プログラマブル回路の入出力機能を変更する機能変更部を更に備えてもよい。
【0008】
機能変更部は、コンフィグレーション記憶領域のエラーが検出されたことに応じて、プログラマブル回路の入出力機能の変更を禁止してもよい。
【0009】
機能変更部は、コンフィグレーション記憶領域のエラーが検出され、且つ、機能変更部による変更後の入出力機能が異常と診断された場合に、プログラマブル回路の入出力機能を変更前の入出力機能に戻してもよい。
【0010】
エラー検出部は、コンフィグレーション記憶領域を区分した複数の部分領域のそれぞれにおけるエラーを検出してもよい。機能変更部は、仮にプログラマブル回路の入出力機能を変更した場合に入出力機能で使用することになる部分領域において、既にエラーが検出されていることを条件として、プログラマブル回路の入出力機能の変更を禁止してもよい。
【0011】
本発明の第2の態様においては、方法を提供する。方法は、コンフィグレーションデータを設定することによって回路構成がプログラムされるプログラマブル回路を有し、プログラマブル回路にプログラムされた入出力機能に応じた入出力動作を行う入出力装置における、プログラムされた入出力機能を診断する診断段階を備えてもよい。方法は、コンフィグレーションデータを記憶するコンフィグレーション記憶領域のエラーを検出するエラー検出段階を備えてもよい。方法は、コンフィグレーション記憶領域のエラーが検出され、且つ、プログラムされた入出力機能が正常と診断された場合の少なくとも一部について、入出力装置の異常と判定しない異常判定段階を備えてもよい。
【0012】
本発明の第3の態様においては、プログラムを提供する。プログラムは、コンピュータに、コンフィグレーションデータを設定することによって回路構成がプログラムされるプログラマブル回路を有し、プログラマブル回路にプログラムされた入出力機能に応じた入出力動作を行う入出力装置における、プログラムされた入出力機能を診断する診断手順を実行させてもよい。プログラムは、コンピュータに、コンフィグレーションデータを記憶するコンフィグレーション記憶領域のエラーを検出するエラー検出手順を実行させてもよい。プログラムは、コンピュータに、コンフィグレーション記憶領域のエラーが検出され、且つ、プログラムされた入出力機能が正常と診断された場合の少なくとも一部について、入出力装置の異常と判定しない異常判定手順を実行させてもよい。
【0013】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【0014】
【
図1】本実施形態に係る制御システム10の構成を設備20と共に示す。
【
図2】本実施形態に係る入出力装置130の動作フローの一例を示す。
【
図3】本実施形態に係る入出力装置130の入出力処理部142がユーザ回路133の入出力機能の変更指示をコントローラ100から受け付けた場合における動作フローの一例を示す。
【
図4】本実施形態に係る入出力装置130の入出力処理部142がユーザ回路133の入出力機能の変更指示をコントローラ100から受け付けた場合における動作フローの他の例を示す。
【
図5】本実施形態に係る入出力装置130の入出力処理部142がユーザ回路133の入出力機能の変更指示をコントローラ100から受け付けた場合における動作フローの更なる他の例を示す。
【
図6】本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ2200の例を示す。
【発明を実施するための形態】
【0015】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0016】
図1は、本実施形態に係る制御システム10の構成を設備20と共に示す。本実施形態に係る制御システム10は、設備20内の1または複数のフィールド機器155を制御する。
【0017】
設備20は、工場またはプラント等に設けられる。このような工場またはプラントは、例えば、各種の工業製品等を生産するための工場、化学または金属等の工業プラント、ガス田や油田等の井戸元やその周辺を管理制御するプラント、水力・火力・原子力等の発電を管理制御するプラント、太陽光や風力等の環境発電を管理制御するプラント、上下水やダム等を管理制御するプラント等であってよい。また、設備20は、ビルまたは交通機関等に設けられてもよい。
【0018】
制御システム10は、設備20内の各フィールド機器155を制御して、設備20の目的に応じた生産、発電、及び/又は制御を行う。フィールド機器155は、例えば圧力計、流量計、温度センサ等のセンサ機器、流量制御弁や開閉弁等のバルブ機器、ファンやモータ等のアクチュエータ機器、プラント内の状況や対象物を撮影するカメラやビデオ等の撮像機器、プラント内の異音等を収集したり警報音等を発したりするマイクやスピーカ等の音響機器、設備20内の各機器の位置情報を出力する位置検出機器、その他の機器であってもよい。
【0019】
本実施形態に係る制御システム10は、ネットワーク50と、コントローラ100と、多重化共通装置160と、冗長構成をとり得る1または複数の入出力装置130とを備える。本実施形態の制御システム10は、一例として、2つの入出力装置130a、130bを備える。2つの入出力装置130a、130bは互いに同様の機能、構成を有し、同じ構成については同じ参照番号を用い、重複する説明は省略する。また、以降の説明において、2つの入出力装置130a、130bを単に入出力装置130と称する場合がある。入出力装置130と称する場合、2つの入出力装置130a、130bの両方を指す場合もあり、これらの何れか一方を指す場合もある。なお、入出力とは、入力または出力の少なくとも1つを示すものであり、入力装置、出力装置もまた入出力装置に含まれるものである。
【0020】
ネットワーク50は、コントローラ100および入出力装置130の間を接続する、汎用または専用のネットワークである。ネットワーク50は、イーサネット(登録商標)であってもよく、プラント等の構内で使用されるLANであってもよく、バスであってもよい。また、コントローラ100がリモートから設備20を制御する場合には、ネットワーク50は、WAN又はインターネット等の広域ネットワークであってもよい。ネットワーク50は、有線のインターネット等を含む有線ネットワークであってもよく、これに代えて、例えば4G(第4世代)または5G(第5世代)のような携帯通信ネットワーク等を含む無線ネットワークであってもよい。ネットワーク50は、産業用ネットワークを含んで構成されてもよい。ネットワーク50は、コントローラ100および入出力装置130間の通信を、ネットワークパケットを伝送することにより実現してもよい。
【0021】
コントローラ100は、多重化共通装置160を介して設備20内の各フィールド機器155に接続された入出力装置130から、各フィールド機器155のセンスデータ等を受信する。コントローラ100は、当該センスデータ等の制御パラメータに基づいて制御演算処理を行い、各フィールド機器155を制御するための制御データを入出力装置130へと送信する。
【0022】
本実施形態において、コントローラ100は、PC(パーソナルコンピュータ)、ワークステーション、サーバコンピュータ、汎用コンピュータ等のコンピュータであってよく、コンピュータ上で制御プログラムを実行することによりコントローラ100として機能する。これに代えて、コントローラ100は、プラント等の制御用に設計された専用コンピュータであってもよく、専用回路によって実現された専用ハードウェアであってもよい。
【0023】
多重化共通装置160は、冗長構成をとる複数の入出力装置130のうち設備20の制御を担当する入出力装置130と各フィールド機器155との間で信号を伝送する。多重化共通装置160は、2つの入出力装置130のそれぞれの入出力ポートに接続される。多重化共通装置160はまた、設備20内の1または複数のフィールド機器155に接続される。なお、多重化共通装置160を介して、複数のフィールド機器155および入出力装置130は、HART(登録商標)、BRAIN、ファウンデーションフィールドバス(登録商標)、ISA100.11a等 で規定される通信プロトコルを用いた相互通信が可能であってもよい。
【0024】
入出力装置130は、コンフィグレーションデータを設定することによって回路構成がプログラムされるプログラマブル回路を有し、プログラマブル回路にプログラムされた入出力機能に応じた入出力動作を行う。本実施形態に係る入出力装置130は、ネットワークI/OやユニバーサルI/Oと呼ばれる場合がある。なお、入出力装置130は、プラント等の制御用に設計された、マイクロコントローラ等を有する専用の装置であってもよく、一般のコンピュータに対して多重化共通装置160に接続するためのユーザ回路を付加した装置であってもよく、専用回路によって実現された専用ハードウェアであってもよい。
【0025】
本実施形態に係る入出力装置130は、プログラマブル回路の一例としてのFPGA(Field Programable Gate Array)部131と、入出力制御部141とを備える。FPGA部131は、プログラマブル回路をプログラムすることによって実現されるユーザ回路133と、上記のコンフィグレーションデータを記憶するコンフィグレーション記憶領域の一例であるCRAM(Configuration Random Access Memory)135とを有する。
【0026】
FPGA部131のユーザ回路133は、個別に多重化共通装置160に接続される複数の入出力ポート、例えば16個の入出力ポートを有する。ユーザ回路133は、多重化共通装置160を介してフィールド機器155に接続されるチャネル毎に、例えばデジタル信号入出力用の入力バッファおよび出力ドライバ、アナログ信号入出力用のADコンバータ、DAコンバータ、およびAD変換またはDA変換ためのリファレンス値を格納するメモリ等のような、チャネル用の各種のインターフェイス回路を含む。このようなインターフェイス回路は、入出力装置130において、FPGA部131以外の他の構成内に設けられていてもよい。
【0027】
ユーザ回路133は、各フィールド機器155の機能に応じて、アナログ信号またはデジタル信号を各フィールド機器155と送受信する。例えば、フィールド機器155に接続されるチャネルがアナログ信号の出力または入力用に設定される場合、ユーザ回路133は、入出力装置130から出力されるデジタル信号をDAコンバータによってアナログ信号に変換し、フィールド機器155からのアナログ信号をADコンバータによってデジタル信号に変換する。
【0028】
入出力装置130aの1つの入出力ポートおよび入出力装置130bの1つの入出力ポートは、1つのフィールド機器155に対して割り当てられる。入出力装置130aおよび入出力装置130bのうち主系(「制御系」、「マスタ」とも示す。)となる入出力装置130の入出力ポートは、多重化共通装置160によって、フィールド機器155との間で通信可能となるようにフィールド機器155に接続される。入出力装置130aおよび入出力装置130bのうち補助系(「待機系」、「スレーブ」とも示す。)となる入出力装置130の入出力ポートは、主系となる入出力装置130およびフィールド機器155の間の通信を妨害しないように、多重化共通装置160によってフィールド機器155との間の通信が無効化される。
【0029】
ユーザ回路133は更に、複数の入出力ポートのそれぞれについて、フィールド機器155に対する多重化共通装置160の入出力機能をAI(アナログ入力)、AO(アナログ出力)、DI(デジタル入力)およびDO(デジタル出力)のうちの少なくとも1つに切り替える入出力回路を有する。このような入出力回路は、各入出力ポートを、何れかの入出力機能に設定し、他の入出力機能は使用しないように設定してもよい。
【0030】
FPGA部131は、電源が投入されたとき、またはリセットされたとき等の初期化処理において、FPGA部131の外部のROMからコピーされてCRAM135に格納されたコンフィグレーションデータを読み出し、FPGA部131内のプログラマブル回路にユーザ回路133を設定する。ユーザ回路133は、入出力制御部141から各フィールド機器155を制御するための制御データを受け取り、プログラムされた入出力機能に応じた入出力動作を行う。
【0031】
ユーザ回路133は、上記の入出力機能に応じて、所定の入出力ポートを所定の入出力機能に設定し、当該入出力ポートから、上記の入出力機能に応じた信号形式のフィールド機器155用データを多重化共通装置160に出力する。ユーザ回路133はまた、当該入出力ポートを介して、上記の入出力機能に応じた信号形式で当該フィールド機器155のセンスデータ等を多重化共通装置160から入力された場合、当該センスデータ等を入出力制御部141に出力する。
【0032】
このように、入出力装置130は、コントローラ100から受信する制御データに基づいて、FPGA部131のCRAM135およびユーザ回路133と、入出力制御部141との協働により、上述の設備20内の1または複数のフィールド機器155との間でデータの入出力を行う。入出力装置130は、当該処理の他に、入出力装置130の異常を自己診断する。
【0033】
入出力制御部141は、入出力装置130、多重化共通装置160および1または複数のフィールド機器155を動作させるための制御データを、ネットワーク50を介してコントローラ100から受信し、処理する入出力処理部142を有する。入出力制御部141は更に、診断部143と、エラー検出部145と、異常判定部147とを有する。本実施形態に係る入出力制御部141は更に、判定部149と、切替部151と、機能変更部153とを有する。
【0034】
診断部143は、入出力装置130のプログラムされた入出力機能を診断する。具体的な一例として、診断部143は、FPGA部131のユーザ回路133にプログラムされた自己診断回路を外部から制御することにより、ユーザ回路133の入出力機能を診断する。診断部143はまた、ユーザ回路133が多重化共通装置160を介してフィールド機器155へと出力する信号を、多重化共通装置160からユーザ回路133へとループバックさせる等により、多重化共通装置160の入出力機能も診断してよい。診断部143は、それぞれの入出力機能を、例えば入出力装置130の初期化処理中または予め定められた保守期間毎等のタイミングで診断する。診断部143は、診断結果を異常判定部147に出力する。
【0035】
エラー検出部145は、コンフィグレーションデータを記憶するコンフィグレーション記憶領域のエラーを検出する。具体的には、エラー検出部145は、CRC(Cyclic Redundancy Check)コードを用いて、FPGA部131のCRAM135のソフトエラーを検出する。エラー検出部145は、CRAM135のソフトエラーを、例えば入出力装置130の初期化処理中または予め定められた保守期間毎等のタイミングでチェックする。なお、FPGA部131がCRAM135の記憶領域を自己診断する機能を有する場合には、エラー検出部145は、記憶領域の自己診断結果をCRAM135から受け取ってよい。エラー検出部145は、検出結果を異常判定部147に出力する。
【0036】
一例として、エラー検出部145は、CRAM135のフレーム毎に付加されたCRCコードを用いて、フレーム単位でCRCチェックを行うことでソフトエラーの検出を行ってもよい。エラー検出部145は、CRAM135に含まれる複数のフレームに対し順にCRCコードの計算と付加されたCRCコードが一致しているか否かのCRCチェックを行い、全てのフレームのCRCチェックが完了すると、再度最初のフレームからサイクリックにCRCチェックを行ってもよい。
【0037】
なお、エラー検出部145が検出するソフトエラーとは、例えば一時的に起こっている故障であって、ハードウェアに生じた恒久的な故障ではないものである。ソフトエラーは、メモリの1ビット障害(1ビット化け)が一時的に生じることであってもよい。なお、CRAM135は、ECC(Error Correction Code、誤り訂正符号)による誤り訂正機能を有していなくてもよい。
【0038】
判定部149は、入出力装置130が多重化されているか否かを判定する。より具体的には、判定部149は、切替部151から、冗長構成をとっている他の入出力装置130の切替部151と相互に通信している情報を取得し、当該情報に基づいて、入出力装置130が多重化されているか否かを判定する。判定部149は、入出力装置130が多重化されているか否かの判定結果を異常判定部147に出力する。
【0039】
異常判定部147は、診断部143、エラー検出部145および判定部149から入力されるデータに基づいて、入出力装置130の異常と判定する。ただし、異常判定部147は、CRAM135のエラーが検出され、且つ、ユーザ回路133のプログラムされた入出力機能が正常と診断された場合の少なくとも一部について、入出力装置130の異常と判定しない。異常判定部147は、入出力装置130の異常と判定した場合に、バスおよびネットワーク50を介して検出結果をコントローラ100に送信する。
【0040】
切替部151は、主系として動作する入出力装置130の異常が検出されたことに応じて、多重化された複数の入出力装置130のうち主系として動作する入出力装置130を切り換える。切替部151は、バスを介して、他の入出力装置130の切替部151と相互通信している。切替部151は、主系として動作する入出力装置130を切り替える場合に、バスを介して、各フィールド機器155と各入力装置130の各ユーザ回路133との接続状態を調整するための切替信号を多重化共通装置160に送信してもよい。
【0041】
機能変更部153は、FPGA部131のCRAM135のエラー状況に応じて、ユーザ回路133の入出力機能の変更を制御する。例えば、機能変更部153は、CRAM135のエラーが検出されたことに応じて、ユーザ回路133の入出力機能の変更を禁止してもよい。より具体的には、機能変更部153は、エラー検出部145から、CRAM135のエラーが検出された結果を取得したことに応じて、ユーザ回路133の入出力機能の変更を禁止する指示を入出力処理部142に出力する。
【0042】
なお、入出力制御部141は、入出力装置130を制御するプログラム、当該プログラムの動作に必要なデータ等を格納するROM(Read Only Memory)や、入出力装置130のワークエリアとして動作するRAM(Randam Access Memory)等を含んでもよい。この場合、例えば、機能変更部153は、入出力装置130に電源が投入されたとき、またはリセットされたとき等の初期化処理において、ROMからコンフィグレーションデータを読み出してFPGA部131のCRAM135に書き込み、これによってCRAM135の初期設定をしてもよい。
【0043】
図2は、本実施形態に係る入出力装置130の動作フローの一例を示す。当該動作フローを用いて、本実施形態に係る入出力装置130が、ソフトエラーを検出及び/又は入出力機能を異常と診断した時の処理を説明する。
【0044】
当該動作フローは、例えば、ユーザ回路133が、入出力処理部142から各フィールド機器155を制御するための制御データを受け取り、プログラムされた入出力機能に応じた入出力動作を行うことによって開始してもよい。
図3以降のフロー図の説明においても同様とし、重複する説明を省略する。
【0045】
入出力装置130aの診断部143は、予め定められた保守期間毎にユーザ回路133の入出力機能を診断し(ステップS101)、エラー検出部145は、予め定められた保守期間毎にCRAM135のソフトエラーをチェックする(ステップS103)。
【0046】
本実施形態に係る入出力装置130aの異常判定部147は、入出力装置130が多重化されていて、且つ、主系として動作する入出力装置130aについてユーザ回路133の入出力機能が正常と診断された場合において、主系として動作する入出力装置130aについてCRAM135のエラーが検出されたことを条件として、主系として動作する入出力装置130aの異常と判定する。
【0047】
より具体的には、入出力装置130aの異常判定部147は、判定部149から、入出力装置130が多重化されているか否かの判定結果を取得し(ステップS105)、多重化されているとの判定結果である場合には(ステップS105:YES)、ステップS103でCRAM135のソフトエラーが検出されたことを条件として(ステップS107:YES)、主系として動作する入出力装置130aの異常と判定し、主系を他の入出力装置130bに切り替え(ステップS109)、本フローを終了する。また、ステップS107において、ステップS103でCRAM135のソフトエラーが検出されていない場合にも(ステップS107:NO)、ステップS101でユーザ回路133の入出力機能が異常と診断されている場合には(ステップS111:YES)、主系として動作する入出力装置130aの異常と判定し、主系を他の入出力装置130bに切り替え(ステップS109)、本フローを終了する。なお、ステップS111において、ステップS101でユーザ回路133の入出力機能が異常と診断されていない場合には(ステップS111:NO)、ステップS101に戻る。
【0048】
このように、ステップS105およびステップS107をYESとしてステップS109に進む場合に、すなわち、入出力装置130が多重化されていてCRAM135のソフトエラーが検出されている場合に、ステップS101における入出力機能の診断結果を考慮していない。換言すると、主系として動作する入出力装置130aは、入出力装置130が多重化されていてCRAM135のソフトエラーが検出されている場合には、たとえユーザ回路133の入出力機能が正常と診断されていたとしても、入出力装置130aの異常と判定することとしている。これにより、入出力装置130は、稼働率(可用性)を維持でき、且つ未検出故障率を極力抑えることができる。
【0049】
なお、入出力装置130が多重化されているとの判定を行う場合は、例えば、冗長構成をとっている2つの入出力装置130a、130bのうち、入出力装置130aが主系として動作していることを前提として、他方の入出力装置130bおよび多重化共通装置160の入出力機能が正常と診断されている状態を指してもよい。その一方で、入出力装置130が多重化されていないとの判定を行う場合は、例えば、冗長構成をとっている2つの入出力装置130a、130bのうち、入出力装置130aが主系として動作していることを前提として、他方の入出力装置130bおよび多重化共通装置160の少なくとも一方の入出力機能が異常と診断されている状態を指してもよい。
【0050】
また、本実施形態に係る入出力装置130aの異常判定部147は、CRAM135のエラーが検出され、且つ、ユーザ回路133の入出力機能が正常と診断された場合に、入出力装置130aが多重化されていないことを条件として、入出力装置130aの異常と判定しない。
【0051】
より具体的には、入出力装置130aの異常判定部147は、判定部149から、入出力装置130が多重化されているか否かの判定結果を取得し(ステップS105)、多重化されていないとの判定結果である場合には(ステップS105:NO)、ステップS101でユーザ回路133の入出力機能が異常と診断されていない場合には(ステップS113:NO)、ステップS101に戻る。なお、ステップS103でCRAM135のソフトエラーが検出されている場合には、機能変更部153は、ユーザ回路133の入出力機能の変更を禁止するための指示を入出力処理部142に出力してもよい。この場合、入出力処理部142は、ユーザ回路133へ出力する上述の制御データを変更し、且つ、その旨をコントローラ100に報知してもよい。ステップS113において、ステップS101でユーザ回路133の入出力機能が異常と診断されている場合には(ステップS113:YES)、入出力装置130aの異常と判定して、コントローラ100に報知し(ステップS115)、本フローを終了する。
【0052】
このように、ステップS105およびステップS113をNOとしてステップS101に戻る場合に、すなわち、入出力装置130が多重化されておらずユーザ回路133の入出力機能が異常と診断されていない場合に、ステップS103におけるCRAM135のソフトエラーのチェック結果を考慮していない。換言すると、主系として動作する入出力装置130aは、入出力装置130が多重化されておらずユーザ回路133の入出力機能が異常と診断されていない場合には、たとえCRAM135のソフトエラーが検出されていたとしても、入出力装置130aの異常と判定しないこととしている。エラー検出部145によるCRCチェックは、CRAM135における一部の領域にエラーが生じていた場合でも、CRAM135全体のソフトエラーとして検出するため、異常判定部147は、ユーザ回路133の入出力機能に関係のないCRAM135の領域におけるエラーを無視することとしている。
【0053】
比較例として、入出力装置がCRAMのCRCチェックのみに依存して故障を検出する場合、不必要に故障率が高まり、稼働率が低下することとなる。これに対して、入出力装置130の上記構成によれば、このように稼働率が低下することを抑止することができる。
【0054】
図3は、本実施形態に係る入出力装置130の入出力処理部142がユーザ回路133の入出力機能の変更指示をコントローラ100から受け付けた場合における動作フローの一例を示す。なお、入出力装置130で必要となる入出力機能は、接続先のフィールド機器155の仕様に応じて予め決まっている。
【0055】
入出力装置130の入出力処理部142は、ユーザ回路133の入出力機能を変更する制御データをコントローラ100から受信する(ステップS201)。機能変更部153が、エラー検出部145からCRAM135のソフトエラーが検出されているとの検出結果を取得しておらず、入出力処理部142に対して指示を出力していない場合(ステップS203:NO)、入出力処理部142は、ユーザ回路133の入出力機能を変更し(ステップS205)、本フローを終了する。
【0056】
一方で、ステップS203において、機能変更部153が、エラー検出部145からCRAM135のソフトエラーが検出されているとの検出結果を取得しており、入出力処理部142に対して、ユーザ回路133の入出力機能の変更を禁止する指示を出力している場合(ステップS203:YES)、入出力処理部142は、ユーザ回路133の入出力機能の変更を禁止し(ステップS207)、その旨をコントローラ100に報知して、本フローを終了する。コントローラ100は、例えば、フィールド機器155が変更されたり、フィールド機器155の設定を変えた等の理由により、入出力装置130の所定のチャンネル(入出力ポート)の入出力機能を変更しなければならなくなる。しかし、CRAM135のソフトエラーが検出されており、入出力機能を変更すると入出力装置130が正しく動作しない可能性がある場合には、入出力装置130は、
図3の動作フローのように、入出力機能を変更しないようにしてもよい。
【0057】
図4は、本実施形態に係る入出力装置130の入出力処理部142がユーザ回路133の入出力機能の変更指示をコントローラ100から受け付けた場合における動作フローの他の例を示す。
【0058】
入出力装置130の入出力処理部142は、ユーザ回路133の入出力機能を変更する制御データをコントローラ100から受信する(ステップS301)。入出力処理部142は、機能変更部153がエラー検出部145からCRAM135のソフトエラーが検出されているとの検出結果を取得していても、ユーザ回路133の入出力機能を変更する(ステップS303)。
【0059】
機能変更部153は、CRAM135のソフトエラーが検出され、且つ、機能変更部153による変更後のユーザ回路133の入出力機能が異常と診断された場合に、ユーザ回路133の入出力機能を変更前の入出力機能に戻してもよい。より具体的には、ステップS303でユーザ回路133の入出力機能を変更した後、機能変更部153が、診断部143からユーザ回路133の入出力機能が異常との診断結果を取得している場合(ステップS305:YES)、入出力処理部142は、機能変更部153から、ユーザ回路133の入出力機能を変更前の入出力機能に戻す指示を入力され、当指示に従って、ステップS303で変更する前の入出力機能に戻し(ステップS307)、その旨をコントローラ100に報知して、本フローを終了する。ステップS305では、機能変更部153が、エラー検出部145からCRAM135のソフトエラーが検出されているとの検出結果を取得しているか否かに拘わらなくてもよい。なお、ステップS305で機能変更部153が、診断部143からユーザ回路133の入出力機能が異常との診断結果を取得していない場合には(ステップS305:NO)、本フローを終了する。このように、ユーザ回路133の入出力機能を変更する前にCRAM135のソフトエラーが検出されていたとしても、変更後のユーザ回路133の入出力機能に影響が無いCRAM135の領域でソフトエラーが生じている可能性もあるので、入出力装置130は、
図4の動作フローのように、入出力機能を変更した後のユーザ回路133の入出力機能に影響が生じるかどうかを検証してもよい。
【0060】
図5は、本実施形態に係る入出力装置130の入出力処理部142がユーザ回路133の入出力機能の変更指示をコントローラ100から受け付けた場合における動作フローの更なる他の例を示す。本実施形態に係る入出力装置130では、
図1から4を用いて説明した複数の実施形態とは異なる点として、少なくとも、エラー検出部145は、CRAM135を区分した複数の部分領域のそれぞれにおけるエラーを検出する。
【0061】
入出力装置130の入出力処理部142は、ユーザ回路133の入出力機能を変更する制御データをコントローラ100から受信する(ステップS401)。
【0062】
機能変更部153は、仮にユーザ回路133の入出力機能を変更した場合にユーザ回路133の入出力機能で使用することになるCRAM135の部分領域において、既にエラーが検出されていることを条件として、ユーザ回路133の入出力機能の変更を禁止してもよい。より具体的には、機能変更部153が、エラー検出部145から当該部分領域のソフトエラーが検出されているとの検出結果を取得しており、入出力処理部142に対して、ユーザ回路133の入出力機能の変更を禁止する指示を出力している場合(ステップS40
3:YES)、入出力処理部142は、ユーザ回路133の入出力機能の変更を禁止し(ステップS407)、その旨をコントローラ100に報知して、本フローを終了する。なお、ステップS403で機能変更部153が上記の検出結果を取得していない場合には(ステップS403:NO)、入出力処理部142は、ユーザ回路133の入出力機能を変更し(ステップS405)、本フローを終了する。このように、入出力装置130が、例えばアナログ領域とデジタル領域や、入力領域と出力領域のように、CRAM135を複数の部分領域に区分して、それぞれの部分領域のソフトエラーを検出できる場合には、
図5の動作フローのように、ユーザ回路133の入出力機能を変更する前に、入出力機能を変更した後のユーザ回路133の入出力機能に影響が生じるかどうかを予め検証してもよい。
【0063】
以上で説明した通り、本実施形態に係る入出力装置130は、コンフィグレーションデータを設定することによって回路構成がプログラムされるプログラマブル回路を有し、プログラマブル回路にプログラムされた入出力機能に応じた入出力動作を行う。そして、本実施形態に係る入出力装置130は、入出力装置130のプログラマブル回路における、プログラムされた入出力機能を診断する診断部143と、コンフィグレーションデータを記憶するコンフィグレーション記憶領域のエラーを検出するエラー検出部145と、コンフィグレーション記憶領域のエラーが検出され、且つ、プログラムされた入出力機能が正常と診断された場合の少なくとも一部について、入出力装置130の異常と判定しない異常判定部147とを備える。
【0064】
比較例として、入出力装置が多重化されていないシングル運用において、CRAMのソフトエラーが検出されていることを理由として入出力装置に異常があると検出し、入出力装置の運転を停止してしまうと、入出力装置の可用性が低下してしまう。これに対して、上記構成を備える入出力装置130によれば、シングル運用中にCRAM135のソフトエラーを検出した場合であっても、ユーザ回路133の入出力機能が正常であると診断できれば、入出力装置130の異常と判定しないようにする。これにより、本実施形態に係る入出力装置130は、比較例のように入出力装置130の可用性が低下することを防止できる。その一方で、入出力装置130が多重系の場合には、CRAM135のソフトエラーを検出した場合であっても、他の系統(入出力装置130)に切換えることができるので、可用性を維持することができる。
【0065】
本発明の様々な実施形態は、フローチャートおよびブロック図を参照して記載されてよく、ここにおいてブロックは、(1)操作が実行されるプロセスの段階または(2)操作を実行する役割を持つ装置のセクションを表わしてよい。特定の段階およびセクションが、専用回路、コンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、および/またはコンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタルおよび/またはアナログハードウェア回路を含んでよく、集積回路(IC)および/またはディスクリート回路を含んでよい。プログラマブル回路は、論理AND、論理OR、論理XOR、論理NAND、論理NOR、および他の論理操作、フリップフロップ、レジスタ、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックアレイ(PLA)等のようなメモリ要素等を含む、再構成可能なハードウェア回路を含んでよい。
【0066】
コンピュータ可読媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読媒体は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、メモリスティック、集積回路カード等が含まれてよい。
【0067】
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk(登録商標)、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1または複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかを含んでよい。
【0068】
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のコンピュータ等のプログラム可能なデータ処理装置のプロセッサまたはプログラマブル回路に対し、ローカルにまたはローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して提供され、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく、コンピュータ可読命令を実行してよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
【0069】
図6は、本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ2200の例を示す。コンピュータ2200にインストールされたプログラムは、コンピュータ2200に、本発明の実施形態に係る装置に関連付けられる操作または当該装置の1または複数のセクションとして機能させることができ、または当該操作または当該1または複数のセクションを実行させることができ、および/またはコンピュータ2200に、本発明の実施形態に係るプロセスまたは当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ2200に、本明細書に記載のフローチャートおよびブロック図のブロックのうちのいくつかまたはすべてに関連付けられた特定の操作を実行させるべく、CPU2212によって実行されてよい。
【0070】
本実施形態によるコンピュータ2200は、CPU2212、RAM2214、グラフィックコントローラ2216、およびディスプレイデバイス2218を含み、それらはホストコントローラ2210によって相互に接続されている。コンピュータ2200はまた、通信インターフェイス2222、ハードディスクドライブ2224、DVD-ROMドライブ2226、およびICカードドライブのような入/出力ユニットを含み、それらは入/出力コントローラ2220を介してホストコントローラ2210に接続されている。コンピュータはまた、ROM2230およびキーボード2242のようなレガシの入/出力ユニットを含み、それらは入/出力チップ2240を介して入/出力コントローラ2220に接続されている。
【0071】
CPU2212は、ROM2230およびRAM2214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ2216は、RAM2214内に提供されるフレームバッファ等またはそれ自体の中にCPU2212によって生成されたイメージデータを取得し、イメージデータがディスプレイデバイス2218上に表示されるようにする。
【0072】
通信インターフェイス2222は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブ2224は、コンピュータ2200内のCPU2212によって使用されるプログラムおよびデータを格納する。DVD-ROMドライブ2226は、プログラムまたはデータをDVD-ROM2201から読み取り、ハードディスクドライブ2224にRAM2214を介してプログラムまたはデータを提供する。ICカードドライブは、プログラムおよびデータをICカードから読み取り、および/またはプログラムおよびデータをICカードに書き込む。
【0073】
ROM2230はその中に、アクティブ化時にコンピュータ2200によって実行されるブートプログラム等、および/またはコンピュータ2200のハードウェアに依存するプログラムを格納する。入/出力チップ2240はまた、様々な入/出力ユニットをパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入/出力コントローラ2220に接続してよい。
【0074】
プログラムが、DVD-ROM2201またはICカードのようなコンピュータ可読媒体によって提供される。プログラムは、コンピュータ可読媒体から読み取られ、コンピュータ可読媒体の例でもあるハードディスクドライブ2224、RAM2214、またはROM2230にインストールされ、CPU2212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ2200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置または方法が、コンピュータ2200の使用に従い情報の操作または処理を実現することによって構成されてよい。
【0075】
例えば、通信がコンピュータ2200および外部デバイス間で実行される場合、CPU2212は、RAM2214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インターフェイス2222に対し、通信処理を命令してよい。通信インターフェイス2222は、CPU2212の制御下、RAM2214、ハードディスクドライブ2224、DVD-ROM2201、またはICカードのような記録媒体内に提供される送信バッファ処理領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、またはネットワークから受信された受信データを記録媒体上に提供される受信バッファ処理領域等に書き込む。
【0076】
また、CPU2212は、ハードディスクドライブ2224、DVD-ROMドライブ2226(DVD-ROM2201)、ICカード等のような外部記録媒体に格納されたファイルまたはデータベースの全部または必要な部分がRAM2214に読み取られるようにし、RAM2214上のデータに対し様々なタイプの処理を実行してよい。CPU2212は次に、処理されたデータを外部記録媒体にライトバックする。
【0077】
様々なタイプのプログラム、データ、テーブル、およびデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU2212は、RAM2214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプの操作、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM2214に対しライトバックする。また、CPU2212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU2212は、第1の属性の属性値が指定される、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
【0078】
上で説明したプログラムまたはソフトウェアモジュールは、コンピュータ2200上またはコンピュータ2200近傍のコンピュータ可読媒体に格納されてよい。また、専用通信ネットワークまたはインターネットに接続されたサーバーシステム内に提供されるハードディスクまたはRAMのような記録媒体が、コンピュータ可読媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ2200に提供する。
【0079】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0080】
例えば、制御システムは、単一筐体に格納されたコンピュータであってもよい。すなわち、コントローラは、コンピュータのプロセッサ上でのプログラム実行によって実現されてもよく、各入出力装置は、コンピュータのI/O装置として実装されてもよい。また、コントローラは、1または複数のプロセッサにより実行される仮想マシンとして実装されてもよい。このような構成においては、制御システムは、汎用または専用のネットワークであるネットワークを備えず、コントローラおよび入出力装置が、プロセッサおよびI/O装置間を接続するメモリコントローラハブおよびI/Oコントローラハブ等のチップセットによって接続され得る。
【0081】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【0082】
10 制御システム、20 設備、50 ネットワーク、100 コントローラ、130、130a、130b 入出力装置、131 FPGA部、133 ユーザ回路、135 CRAM、141 入出力制御部、142 入出力処理部、143 診断部、145 エラー検出部、147 異常判定部、149 判定部、151 切替部、153 機能変更部、155 フィールド機器、160 多重化共通装置、2200 コンピュータ、2201 DVD-ROM、2210 ホストコントローラ、2212 CPU、2214 RAM、2216 グラフィックコントローラ、2218 ディスプレイデバイス、2220 入/出力コントローラ、2222 通信インターフェイス、2224 ハードディスクドライブ、2226 DVD-ROMドライブ、2230 ROM、2240 入/出力チップ、2242 キーボード