(57)【要約】【課題】プロセス制御装置の維持コストを抑え、ユーザの利便性が高めることができる。【解決手段】本発明の一側面に係るプロセス制御装置は、プロセス制御の機能を発揮する複数のコントローラによる冗長構成を備えるプロセス制御装置であって、前記複数のコントローラに搭載されたファームウェアのバージョンを相互に比較するバージョン比較部と、前記比較の結果に基づいて、前記複数のコントローラの各々に搭載されたファームウェアで共通して機能させるべき動作バージョンを決定するバージョン制御部と、を備える。【選択図】図１
2015191616.tif 000002
【特許請求の範囲】
【請求項１】
プロセス制御の機能を発揮する複数のコントローラによる冗長構成を備えるプロセス制御装置であって、
前記複数のコントローラに搭載されたファームウェアのバージョンを相互に比較するバージョン比較部と、
前記比較の結果に基づいて、前記複数のコントローラの各々に搭載されたファームウェアで共通して機能させるべき動作バージョンを決定するバージョン制御部と、を備える、
プロセス制御装置。
【請求項２】
前記バージョン制御部は、前記複数のコントローラの各々に搭載されたファームウェアのバージョンのうち最も古いバージョンを前記動作バージョンとして決定する、
請求項１に記載のプロセス制御装置。
【請求項３】
プロセス制御の機能を発揮する複数のコントローラによる冗長構成のためのプロセス制御方法であって、
前記複数のコントローラに搭載されたファームウェアのバージョンを相互に比較し、
前記比較の結果に基づいて、複数のコントローラの各々に搭載されたファームウェアで共通して機能させるべき動作バージョンを決定する、
プロセス制御方法。
【請求項４】
プロセス制御の機能を発揮する複数のコントローラによる冗長構成のためのプロセス制御プログラムであって、
コンピュータに、
前記複数のコントローラに搭載されたファームウェアのバージョンを相互に比較する機能と、
前記比較の結果に基づいて、複数のコントローラの各々に搭載されたファームウェアで共通して機能させるべき動作バージョンを決定する機能と、
を実現させるためのプロセス制御プログラム。
【請求項５】
プロセス制御の機能を発揮する複数のコントローラによる冗長構成を備えるロセス制御装置であって、
前記複数のコントローラのうち少なくとも一つのコントローラを含む特定コントローラが発揮する機能を含む第１機能群と、前記複数のコントローラのうち前記特定コントローラ以外の複数のコントローラが共通して発揮する機能を含む第２機能群と、の比較を実行する機能比較部と、
前記比較の結果に基づいて、前記第１機能群のうち少なくとも一部の機能の発揮を禁止するように制御する機能制御部と、を備える、
プロセス制御装置。
【請求項６】
前記機能比較部は、前記第１機能群と前記第２機能群との間で共通する特定機能の有無を判断し、
前記機能制御部は、前記機能比較部により前記特定機能を有すると判断された場合に、前記特定コントローラが、前記第１機能群のうち前記特定機能以外の機能の発揮を禁止するように制御する、
請求項５に記載のプロセス制御装置。
【請求項７】
プロセス制御の機能を発揮する複数のコントローラによる冗長構成のためのプロセス制御方法であって、
前記複数のコントローラのうち少なくとも一つのコントローラを含む特定コントローラが発揮する機能を含む第１機能群と、前記複数のコントローラのうち前記特定コントローラ以外の複数のコントローラが共通して発揮する機能を含む第２機能群と、の比較を実行し、
前記比較の結果に基づいて、前記第１機能群のうち少なくとも一部の機能の発揮を禁止するように制御する、
プロセス制御方法。
【請求項８】
プロセス制御の機能を発揮する複数のコントローラによる冗長構成のためのプロセス制御プログラムであって、
コンピュータに、
前記複数のコントローラのうち少なくとも一つのコントローラを含む特定コントローラが発揮する機能を含む第１機能群と、前記複数のコントローラのうち前記特定コントローラ以外の複数のコントローラが共通して発揮する機能を含む第２機能群と、の比較を実行する機能と、
前記比較の結果に基づいて、前記第１機能群のうち少なくとも一部の機能の発揮を禁止するように制御する機能と、
を実現させるためのプロセス制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセス制御装置、プロセス制御方法及びプロセス制御プログラムに関する。
【背景技術】
【０００２】
従来から、同一構成の３つ以上のコントローラを並列動作させ、これらコントローラの制御出力について多数決判定を行い、その判定結果を用いてプロセス制御を行う技術が知られている（例えば、特許文献１参照）。
【０００３】
具体的に、上記特許文献１には、所定の情報を入力して対応する制御データを出力する制御動作を並列して行うＮ個（Ｎは３以上の自然数）のコントローラを冗長して備えた多重化並列処理装置であって、前記コントローラは、ネットワークを介して送出された動作停止信号を受信する受信部と、前記受信部が前記動作停止信号を受け付けると前記コントローラを再起動させて前記制御動作を開始させる動作制御部とを備えたことを特徴とする多重化並列処理装置が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１４０７０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、多重化されたコントローラは各々内部に同じデータベースを持ち、同じタイミングで制御演算などの処理を実行する必要がある。このため、例えばファームウェアの機能改善が行われた際には、多重化されたコントローラのいずれかのコントローラのファームウェアが機能改善されたものにバージョンアップされると、タイミングや処理の整合性が崩れ、システムの動作に不都合を生じる可能性がある。このことから、従来、ファームウェアがバージョンアップされた場合には、多重化されたコントローラのいずれにおいても、ファームウェアのバージョンをすべて新しいものに置き換える必要があった。
【０００６】
すなわち、特許文献１に記載されたような多重化並列処理装置では、多重化されているコントローラのうち、ある一つのコントローラが故障した際には、故障したコントローラを交換するにあたって、交換前と同じバージョンのファームウェアを備えたコントローラと交換する必要があった。ここで仮に、交換の時点において、より新しいファームウェアが存在していた場合において、交換用コントローラのファームウェアを新しいものに置き換えた場合、従来の多重化並列処理装置では、並列処理に係るすべてのコントローラについて、前述した、より新しいファームウェアを備えたコントローラとの交換作業をすることになるため、プロセス制御装置の維持コストが高くなり、ユーザの利便性が低くなるおそれがあった。
【０００７】
そこで、本発明は、プロセス制御装置の維持コストを抑え、ユーザの利便性が高めることを目的の一つとし得る。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の一側面に係るプロセス制御装置は、プロセス制御の機能を発揮する複数のコントローラによる冗長構成を備えるプロセス制御装置であって、前記複数のコントローラに搭載されたファームウェアのバージョンを相互に比較するバージョン比較部と、前記比較の結果に基づいて、前記複数のコントローラの各々に搭載されたファームウェアで共通して機能させるべき動作バージョンを決定するバージョン制御部と、を備える。
【０００９】
また、上記課題を解決するために、本発明の一側面に係るプロセス制御方法は、プロセス制御の機能を発揮する複数のコントローラによる冗長構成のためのプロセス制御方法であって、前記複数のコントローラに搭載されたファームウェアのバージョンを相互に比較し、前記比較の結果に基づいて、複数のコントローラの各々に搭載されたファームウェアで共通して機能させるべき動作バージョンを決定する。
【００１０】
また、上記課題を解決するために、本発明の一側面に係るプロセス制御プログラムは、プロセス制御の機能を発揮する複数のコントローラによる冗長構成のためのプロセス制御プログラムであって、コンピュータに、前記複数のコントローラに搭載されたファームウェアのバージョンを相互に比較する機能と、前記比較の結果に基づいて、複数のコントローラの各々に搭載されたファームウェアで共通して機能させるべき動作バージョンを決定する機能と、を実現させる。
【００１１】
なお、本発明において、「部」とは、単にその機能をソフトウェアによって実現する場合のみならず、ハードウェアの具体的構成によって物理的に実現される場合をも含む。また、１つの「部」や装置が有する機能が２つ以上の物理的手段や装置により実現されても、２つ以上の「部」や装置の機能が１つの物理的手段や装置により実現されても良い。
【００１２】
また、本発明の実施形態における各部は、たとえば、メモリやハードディスクなどの記憶領域を用いたり、記憶領域を格納されているプログラムをプロセッサが実行したりすることにより実現することができる。
【発明の効果】
【００１３】
本発明によれば、複数のコントローラに搭載されたファームウェアのバージョンを相互に比較し、当該比較の結果に基づいて、複数のコントローラの各々に搭載されたファームウェアで共通して機能させるべき動作バージョンを決定することにより、コントローラが故障した際に、すべてのコントローラを交換する必要がなくなり、プロセス制御装置の維持コストを抑えることができ、さらに、ユーザの利便性が高めることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１実施形態に係るプロセス制御システムの構成を示す図である。
【図２】本発明の第１実施形態に係るプロセス制御装置の構成を示す図である。
【図３】本発明の第１実施形態に係るコントローラの機能的構成を示す図である。
【図４】本発明の実施形態に係るコントローラのファームウェアのバージョン情報と機能群との対応関係テーブルを示す図である。
【図５】本発明の第１実施形態に係るプロセス制御装置が複数のコントローラの各々に搭載されたファームウェアで共通して機能させるべき動作バージョンを決定するためのフローチャートである。
【図６】本発明の第２及び３実施形態に係るコントローラの機能的構成を示す図である。
【図７】本発明の第２実施形態に係るプロセス制御装置が特定機能の発揮が可能なように制御するためのフローチャートである。
【図８】本発明の第３の実施形態に係るプロセス制御装置が特定機能の発揮が可能なように制御するためのフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施の形態を説明する。また、以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付して表している。図面は模式的なものであり、必ずしも実際の寸法や比率等とは一致しない。図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることがある。なお、添付図面を参照しながら本発明の実施の形態について説明する。理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付し、重複する説明は省略する。
【００１６】
図１は、本発明の第１実施形態に係るプロセス制御システム１の構成を示す図である。図１に示すように、プロセス制御システム１は、例示的に、プロセス制御装置１００、管理装置１０２、及びプロセス機器１０４ａ乃至ｃを備えて構成されている。また、プロセス制御装置１００は、例示的に、ネットワークＩＦ（インタフェース）３、コントローラＡ乃至Ｃ１０ａ乃至ｃ、及びプロセス機器ＩＦ５を備えて構成されている。さらに、プロセス制御装置１００のネットワークＩＦ３と管理装置１０２とはシステムバス１０６ｃを介して接続されている。さらにまた、プロセス制御装置１００のネットワークＩＦ３とコントローラＡ乃至Ｃのそれぞれとは、システムバス１０６ｂを介して接続されている。またさらに、プロセス制御装置１００のプロセス機器ＩＦ５とプロセス機器１０４ａ乃至ｃのそれぞれとは、システムバス１０６ａを介して接続されている。以下、プロセス機器１０４ａ乃至ｃに共通する事項を説明する場合には「プロセス機器１０４」と称する。また、コントローラ１０ａ乃至１０ｃに共通する事項を説明する場合には「コントローラ１０」と称する。
【００１７】
プロセス機器１０４ａ乃至ｃは、渦式流量計、熱式流量計、各種センサ、各種バルブ、及び各種モータなどのプラントに設置されるさまざまな装置を備えて構成されている。例えば、プロセス機器１０４ａは、検出値をプロセス機器ＩＦ５にシステムバス１０６ａを介して送信する入力機器で構成されていてもよく、また、プロセス機器１０４ｂ及びｃは、システムバス１０６ａ経由で受信したプロセス制御装置１００からの制御信号に基づいて動作する出力機器で構成されていてもよい。なお、プロセス機器１０４ａは出力機器、プロセス機器１０４ｂ及びｃを入力機器、として構成されていてもよい。
【００１８】
管理装置１０２は、プロセス制御システム１を監視・管理する装置である。管理装置１０２は、プロセス制御の状況の監視を実行し、当該管理装置１０の図示しない入力手段を介してオペレータからの指示を受け付け、プロセス制御装置１００にリクエストや制御信号を送信する。
【００１９】
プロセス制御装置１００は、プロセス制御システム１が実行するプロセスを制御する装置である。また、プロセス制御装置１００は、コントローラ１０の一部の機能の発揮を禁止するように制御する装置である。さらに、プロセス制御装置１００は、プロセス機器１０４が出力する情報を入力ないしプロセス機器１０４に情報を出力し、プロセス機器１０４の出力の制御をする。さらにまた、プロセス制御装置１００は、プロセス機器３が出力する情報を、システムバス１０６ｃを介して、管理装置１０２に出力する。
【００２０】
たとえば、プロセス制御装置１００のネットワークＩＦ３は、管理装置１０２からのリクエストを、システムバス１０６ｃを介して受け付ける。プロセス制御装置１００のネットワークＩＦ３は、受け付けたリクエストを、システムバス１０６ｂを介してコントローラＡ１０ａ、コントローラＢ１０ｂ、コントローラＣ１０ｃに出力する。リクエストを与えられた各コントローラ１０は、リクエストに対応して制御信号を生成し、プロセス機器ＩＦ５に出力する。
【００２１】
プロセス機器ＩＦ５は、各コントローラ１０により出力された制御信号を受け付ける。また、プロセス機器ＩＦ５は、各コントローラ１０の多数決によって定まる１つの制御信号を、システムバス１０６ａを介して対応するプロセス機器１０４に出力する。すなわち、プロセス機器ＩＦ５は、コントローラ１０ａ乃至ｃの各々から出力された制御信号を相互に比較し、二つ以上の制御信号が同一内容であった場合にはその制御信号を出力する。例えば、コントローラＡ１０ａおよびコントローラＣ１０ｃからの制御信号が同じ内容Ｃ１を示しコントローラＢ１０ｂからの制御信号が異なる内容Ｃ２を示していた場合、プロセス機器ＩＦ５は、制御信号が異なる内容Ｃ２を示したコントローラＢ１０ｂに対し、異なる内容を示していた旨を通知する信号を出力する。またここで、当該信号を受けたコントローラＢ１０ｂが、自ら再起動を行うよう構成すると共に、再起動時に他のコントローラＡ１０ａないしコントローラＣ１０ｃから適宜情報を受け取ることで、他のコントローラとの同期を図ることが可能となる。
【００２２】
また、プロセス機器１０４は、入力データを、システムバス１０６ａを介してプロセス機器ＩＦ５へ送信する。プロセス機器ＩＦ５は、プロセスデータを受け付け、受け付けたプロセスデータを、各コントローラＡ１０ａ、コントローラＢ１０ｂ、コントローラＣ１０ｃに入力する。
【００２３】
各コントローラ１０は、プロセス機器１０４から受信したプロセスデータに対応して応答を生成し、ネットワークＩＦ３に出力する。ネットワークＩＦ３は、各コントローラ１０より出力された応答を、システムバス１０６ｂを介して受け付ける。これら応答を受け受けたネットワークＩＦ３は、多数決によって定まる１つの応答を、システムバス１０６ｃを介して管理装置１０２に送信する。すなわち、ネットワークＩＦ３は、コントローラ１０ａ乃至ｃの各々から出力された応答を相互に比較し、二つ以上の応答が同一内容であった場合にはその応答を出力する。例えば、コントローラＡ１０ａおよびコントローラＣ１０ｃからの応答が同じ内容Ｒ１を示しコントローラＢ１０ｂからの応答が異なる内容Ｒ２を示していた場合、ネットワークＩＦ３は応答が異なる内容Ｒ２を示したコントローラＢ１０ｂに、異なる内容を示していた旨を通知する信号を出力するとともに、当該信号を受けたコントローラＢ１０ｂは、自ら再起動する。
【００２４】
上述したように、プロセス制御装置１００は、コントローラＡ１０ａ、コントローラＢ１０ｂ、コントローラＣ１０ｃのいずれか１つに異常や故障が生じ、他の２つと異なる制御データや応答を出力した場合であっても、プロセス機器１０４や管理装置１０２に対して正常な制御データや応答をとぎれることなく出力する。このように、プロセス制御装置１００は、プロセス制御の機能を発揮する複数のコントローラ１０が機能を並列して発揮可能に制御するように構成されている。なお、本実施形態ではコントローラ１０の数は三つであり、いわゆる２ ｏｕｔ ｏｆ ３の多数決論理を構築したものであるが、コントローラ１０の数が奇数であり、多数決論理を構築できる状態である限り、コントローラ１０の数に制限はない。
【００２５】
図２は、本発明の第１実施形態に係るプロセス制御装置１００の構成を示すブロック図である。上述したように、プロセス制御装置１００は、プロセス制御システム１が実行するプロセスを制御する装置であり、例示的に、ネットワークＩＦ（インタフェース）３、コントローラＡ１０ａ乃至コントローラＣ１０ｃ、及びプロセス機器ＩＦ５を備えて構成されている。具体的に、図２は、プロセス制御装置１００の、初期バージョン（例えばバージョン１）のファームウェアが搭載されたコントローラＡ１０ａが故障した際に、新しいバージョン（例えばバージョン２）のファームウェアが搭載されたコントローラＡ１０ａ（Ｖｅｒ．２）と交換される場合のプロセス制御装置１００の構成を示している。以下、バージョンｘが搭載されたコントローラ１０を「コントローラ１０（Ｖｅｒ．ｘ）」というように記述する。
【００２６】
図２に示すように、たとえば、プロセス制御装置１００のコントローラＡ１０ａ（Ｖｅｒ．１）のファームウェアが故障した際には、新しいコントローラＡ１０ａ（Ｖｅｒ．２）と交換される。そうすると、コントローラＡ１０ａ（Ｖｅｒ．１）のファームウェアで機能させるべき動作バージョンやコントローラＡ１０ａ（Ｖｅｒ．１）が発揮する機能群と、新しいコントローラＡ１０ａ（Ｖｅｒ．２）のファームウェアで機能させるべき動作バージョンや新しいコントローラＡ１０ａ（Ｖｅｒ．２）が発揮する機能群と、は異なる。また、後で詳述するが、図５に示すように、新しいコントローラＡ１０ａ（Ｖｅｒ．２）と、コントローラＢ１０ｂ（Ｖｅｒ．１）及びコントローラＣ１０ｃ（Ｖｅｒ．１）と、のファームウェアで機能させるべき動作バージョンが異なり、また、新しいコントローラＡ１０ａ（Ｖｅｒ．２）と、コントローラＢ１０ｂ（Ｖｅｒ．１）及びコントローラＣ１０ｃ（Ｖｅｒ．１）と、が発揮する機能群も異なる。このように各コントローラ１０の発揮可能な機能群が異なる場合に、複数のコントローラ１０を並列処理させると不都合が生ずる可能性がある。そこで、複数のコントローラ１０に共通する動作バージョンや複数のコントローラ１０に共通する機能のみを並列して発揮することができるように、プロセス制御装置１００は、各コントローラ１０のファームウェアで機能させるべき動作バージョン、又は、各コントローラ１０が発揮可能な機能（特定機能）を判断し、各コントローラ１０が動作バージョン又は特定機能を実行するように制御する。
【００２７】
図３は、本発明の第１実施形態に係るプロセス制御装置１００のコントローラ１０の機能的構成を示す図である。図３に示すように、コントローラ１０ａ乃至ｃは、機能的に、情報処理部２０ａ及び記憶部３０を備えて構成されている。
【００２８】
情報処理部２０ａは、プロセス制御装置１００が、複数のコントローラ１０の各々に搭載されたファームウェアで共通して機能させるべき動作バージョンを決定するように制御する機能ブロックであり、情報問い合わせ部２２、情報取得部２４、バージョン比較部２５、及びバージョン制御部２７を機能的に備える。
【００２９】
記憶部３０は、プロセス機器１０４の出力情報、プロセス制御システム１において実行するプロセスの種類などの情報、各コントローラ１０のファームウェアのバージョン情報、ないしは新旧ファームウェアに対応して各コントローラ１０が発揮可能となる機能および機能群を識別する情報などを記憶する機能ブロックである。また、記憶部３０は、上記情報を入力及び出力可能に構成されている。さらに、記憶部３０は、上記情報が更新された場合は、更新前及び更新後の情報を記憶可能に構成されている。
【００３０】
図４は、本発明の第１実施形態に係るコントローラ１０に搭載されるファームウェアのバージョン情報と機能群との対応関係テーブルを例示的に示す図である。記憶部３０には、さらに、図４に示すような当該対応関係テーブルが格納されている。図４に示すように、コントローラ１０のファームウェアがバージョンＶｅｒ．１の場合は、機能Ａ、Ｂ、及びＣからなる機能群Ｘを発揮することが可能であり、コントローラ１０のファームウェアがバージョンＶｅｒ．２の場合は、機能Ａ＋α、Ｂ＋β、及びＣ＋γからなる機能群Ｘ’を発揮することが可能である。すなわち、交換された新たなバージョンＶｅｒ．２のファームウェアを搭載したコントローラＡ１０ａは、機能Ａ＋α、Ｂ＋β、及びＣ＋γの各々を発揮することが可能であると共に、自身をＶｅｒ．１として動作させる場合には、機能Ａ、Ｂ、及びＣのみを発揮するよう、換言すれば、バージョンをダウングレード可能なように構成される。また、旧バージョンのバージョンＶｅｒ．１のファームウェアを搭載したコントローラＢ１０ｂ及びコントローラＣ１０ｃは、機能Ａ、Ｂ、及びＣの各々を発揮する。なお、コントローラ１０のファームウェアのバージョンは、Ｖｅｒ．１及びＶｅｒ．２には限られない。たとえば、Ｖｅｒ．３、Ｖｅｒ．５でもいいし、Ｖｅｒ．１．５やＶｅｒ．３．３などであってもよい。また、上記バージョンが更新された場合、バージョンの更新にともない、各コントローラ１０が発揮できる機能および機能群も更新されるが、下位のバージョン相当の機能を発揮可能に（ダウングレード可能に）構成される。
【００３１】
図３に戻り、情報処理部２０の情報問い合わせ部２２は、他のコントローラ１０のファームウェアのバージョン情報ないし他のコントローラ１０が発揮可能な機能および機能群に関する情報を問い合わせる機能ブロックである。具体的には、コントローラＡ１０ａの情報問い合わせ部２２は、コントローラＢ１０ｂ及びコントローラＣ１０ｃに対して、コントローラＢ１０ｂ及びコントローラＣ１０ｃのファームウェアのバージョン情報ないしコントローラＢ１０ｂ及びコントローラＣ１０ｃが発揮可能な機能群に関する情報を問い合わせる。
【００３２】
情報取得部２４は、情報問い合わせ部２２により問い合わせた、他のコントローラ１０のファームウェアのバージョン情報ないし他のコントローラ１０が発揮可能な機能および機能群に関する情報を取得する機能ブロックである。具体的には、コントローラＡ１０ａの情報取得部２４は、情報問い合わせ部２２により問い合わせた、コントローラＢ１０ｂ及びコントローラＣ１０ｃのファームウェアのバージョン情報ないしコントローラＢ１０ｂ及びコントローラＣ１０ｃが発揮可能な機能群に関する情報を、コントローラＢ１０ｂ及びコントローラＣ１０ｃから取得する。
【００３３】
バージョン比較部２５は、複数のコントローラ１０に搭載されたファームウェアのバージョンを相互に比較する機能ブロックである。具体的には、複数のコントローラＡ１０ａ、Ｂ１０ｂ、及びＣ１０ｃのうち、交換後の新たなコントローラＡ１０ａ（Ｖｅｒ．２）に搭載されたファームウェアのバージョンに関する情報と、コントローラＡ１０ａ以外のコントローラであるコントローラＢ１０ｂ（Ｖｅｒ．１）及びコントローラＣ１０ｃ（Ｖｅｒ．１）に搭載されたファームウェアにおいて相互に共通するバージョンに関する情報と、を比較する。なお、交換後の新たなコントローラＡ１０ａに搭載されたファームウェアのバージョンは、Ｖｅｒ．２であると説明しているが、これは、交換後の新たなコントローラＡ１０ａがＶｅｒ．１における機能および機能群を発揮できないことを示しているわけではなく、交換後の新たなコントローラＡ１０ａは、Ｖｅｒ．１における機能および機能群もＶｅｒ．２における機能および機能群も発揮できるという上位互換性を保つものであってもよいことはいうまでもない。
【００３４】
また、バージョン比較部２５は、交換後の新たなコントローラＡ１０ａ（Ｖｅｒ．２）に搭載されたファームウェアのバージョンと、コントローラＡ１０ａ以外のコントローラであるコントローラＢ１０ｂ及びコントローラＣ１０ｃ（Ｖｅｒ．１）に搭載されたファームウェアのバージョンとが互いに一致するか否かを判断する機能ブロックである。この場合、バージョン比較部２５は、コントローラＡ１０ａと、コントローラＢ１０ｂ及びコントローラＣ１０ｃとのバージョンとが相違することを検出する。
【００３５】
バージョン制御部２７は、バージョン比較部２５が実行する比較の結果に基づいて、複数のコントローラ１０の各々に搭載されたファームウェアで共通して機能させるべき動作バージョンを決定する機能ブロックである。また、バージョン制御部２７は、複数のコントローラの各々に搭載されたファームウェアのバージョンのうち最も古いバージョンを上記動作バージョンとして決定する機能ブロックである。具体的には、上述したように、バージョン比較部２５は、新たなコントローラＡ１０ａ（Ｖｅｒ．２）に搭載されたファームウェアのバージョンと、コントローラＢ１０ｂ（Ｖｅｒ．１）及びコントローラＣ１０ｃ（Ｖｅｒ．１）に搭載されたファームウェアにおいて相互に共通するバージョンと、の間で共通する動作バージョン（Ｖｅｒ．１）の有無を判断する。そして、バージョン制御部２７は、上記三つのコントローラ１０の各々に搭載されたファームウェアで共通して機能させるべき動作バージョン（Ｖｅｒ．１）を決定する。また、バージョン制御部２７は、上記三つのコントローラ１０の各々に搭載されたファームウェアのバージョンのうち最も古いバージョン（Ｖｅｒ．１）を動作バージョンとして決定する。すなわち、バージョン制御部２７は、上記三つのコントローラ１０が、上記三つのコントローラ１０の各々に搭載されたファームウェアが動作バージョンの機能を発揮して動作するように制御する。
【００３６】
なお、上記の例では、新たなコントローラＡ１０ａに搭載されたファームウェアのバージョンをＶｅｒ．２と、コントローラＢ１０ｂ及びコントローラＣ１０ｃに搭載されたファームウェアのバージョンをＶｅｒ．１と、して動作バージョンをＶｅｒ．１としたが、これに限られず、新たなコントローラＡ１０ａに搭載されたファームウェアのバージョンがＶｅｒ．５、コントローラＢ１０ｂに搭載されたファームウェアのバージョンがＶｅｒ．４、及びコントローラＣ１０ｃに搭載されたファームウェアのバージョンがＶｅｒ．３である場合は、動作バージョンは、Ｖｅｒ．３となる。そして、バージョン制御部２７は、上記三つのコントローラ１０の各々に搭載されたファームウェアで共通して機能させるべき動作バージョン（Ｖｅｒ．３）を決定する。ここでは、各コントローラ１０に搭載されたファームウェアのバージョンうち最も古いバージョンは、Ｖｅｒ．３である。
【００３７】
図５は、本発明の第１実施形態に係るプロセス制御装置１００が複数のコントローラ１０の各々に搭載されたファームウェアで共通して機能させるべき動作バージョンを決定するためのフローチャートである。
【００３８】
まず、ステップＳ１では、コントローラＡ１０ａの情報問い合わせ部２２は、コントローラＢ１０ｂ及びコントローラＣ１０ｃの各々に搭載されたファームウェアのバージョンに関する情報を問い合わせる。
【００３９】
次に、ステップＳ２では、コントローラＡ１０ａの情報取得部２４は、情報問い合わせ部２２により問い合わせた、コントローラＢ１０ｂ及びコントローラＣ１０ｃの各々に搭載されたファームウェアのバージョンに関する情報を取得する。
【００４０】
次に、ステップＳ３では、コントローラＡ１０ａのバージョン比較部２５は、コントローラＡ１０ａに搭載されたファームウェアのバージョンに関する情報と、コントローラＢ１０ｂ及びコントローラＣ１０ｃの各々に搭載されたファームウェアのバージョンに関する情報と、を比較する。
【００４１】
次に、ステップＳ４では、比較結果に基づいて、三つのコントローラ１０の各々に搭載されたファームウェアで共通して機能させるべき動作バージョン（三つのコントローラ１０の各々に搭載されたファームウェアのバージョンのうち最も古いバージョン）を動作バージョンとして決定する。
【００４２】
ステップＳ５では、プロセス制御装置１００のコントローラＡ１０ａに搭載されたファームウェアが動作バージョンで動作するように制御する。
【００４３】
以上説明したように、本発明の第１実施形態によれば、複数のコントローラに搭載されたファームウェアのバージョンを相互に比較し、当該比較の結果に基づいて、複数のコントローラの各々に搭載されたファームウェアで共通して機能させるべき動作バージョンを決定することにより、コントローラが故障した際又はバージョンアップされた際に、すべてのコントローラを交換する必要がなくなり、プロセス制御装置の維持コストを抑えることができ、さらに、ユーザの利便性が高めることができる。なお、上述した実施形態においては、単にバージョンが相違するか否かに基づいて動作バージョンを決定したが、仮にコントローラＡ１０ａにおけるファームウェアＶｅｒ．２が、コントローラＢ１０ｂ及びコントローラＣ１０ｃにおけるファームウェアＶｅｒ．１との互換性を有するものであると内部的に予め記録されている場合、例外的にコントローラＡ１０ａをファームウェアＶｅｒ．２のまま動作させるように構成してもよい。
【００４４】
第２及び第３実施形態では、各コントローラ１０が発揮可能な機能および機能群の比較を実行することで、特定機能の有無を判断し、プロセス制御装置１００が特定機能の発揮が可能なように制御する点で、複数のコントローラ１０のバージョンの比較を実行することで、複数のコントローラ１０の各々に搭載されたファームウェアで共通して機能させるべき動作バージョンを決定していた上記第１実施形態と異なる。
【００４５】
図６は、本発明の第２及び３実施形態に係るプロセス制御装置１００のコントローラ１０の機能的構成を示す図である。図５に示すように、コントローラ１０ａ乃至ｃは、機能的に、情報処理部２０ｂ及び記憶部３０を備えて構成されている。
【００４６】
情報処理部２０ｂは、プロセス制御装置１００が、特定機能の発揮が可能な機能を判断し、機能別の許可/禁止を制御する機能ブロックであり、情報問い合わせ部２２、情報取得部２４、機能比較部２６、及び機能制御部２８を機能的に備える。
【００４７】
機能比較部２６は、複数のコントローラ１０のうち少なくとも一つのコントローラ（特定コントローラ）が発揮する機能を含む第１機能群と、複数のコントローラ１０のうち当該特定コントローラ以外の複数のコントローラが共通して発揮する機能を含む第２機能群と、の比較を実行する機能ブロックである。具体的には、複数のコントローラＡ１０ａ、Ｂ１０ｂ、及びＣ１０ｃのうち、交換後の新たなコントローラＡ１０ａ（Ｖｅｒ．２）（特定コントローラ）が発揮する第１機能群（Ａ＋α、Ｂ＋β、及びＣ＋γ）と、コントローラＡ１０ａ以外のコントローラであるコントローラＢ１０ｂ及びコントローラＣ１０ｃ（特定コントローラ以外の複数のコントローラ）が共通して発揮する第２機能群（Ａ、Ｂ、及びＣ）と、を比較する。なお、交換後の新たなコントローラＡ１０ａが発揮できる機能は、Ｖｅｒ．２における機能群（Ａ＋α、Ｂ＋β、及びＣ＋γ）と説明しているが、これは、交換後の新たなコントローラＡ１０ａがＶｅｒ．１における機能群（Ａ、Ｂ、及びＣ）を発揮できないことを示しているわけではなく、交換後の新たなコントローラＡ１０ａは、Ｖｅｒ．１における機能群（Ａ、Ｂ、及びＣ）もＶｅｒ．２における機能群（Ａ＋α、Ｂ＋β、及びＣ＋γ）も発揮できるという上位互換性を保っている。
【００４８】
また、機能比較部２６は、第１機能群と第２機能群との間で共通する特定機能の有無を判断する機能ブロックである。具体的には、新たなコントローラＡ１０ａが発揮する第２機能群（機能Ａ＋α、Ｂ＋β、及びＣ＋γ）と、コントローラＢ１０ｂ及びコントローラＣ１０ｃが共通して発揮する第１機能群（Ａ、Ｂ、及びＣ）と、の間で共通する機能（特定機能）の有無を判断する。上記の例では、機能比較部２６は、第１機能群でも第２機能群でも、機能Ａ、Ｂ、およびＣについては上位互換性が保たれており、機能Ａ、Ｂ、およびＣについては共通して発揮可能であることに変更がないため、特定機能は有りと判断する。一方で、機能比較部２６は、特定機能がない場合は、特定機能は無いと判断する。
【００４９】
機能制御部２８は、機能比較部２６が実行する比較の結果に基づいて、第２機能群のうち少なくとも一部の機能の発揮を禁止するように制御する機能ブロックである。また、機能制御部２８は、機能比較部２６により特定機能を有すると判断された場合に、特定コントローラが、上記第１機能群のうち上記特定機能以外の機能の発揮を禁止するように制御する機能ブロックである。具体的には、上述したように、機能比較部２６は、新たなコントローラＡ１０ａ（特定コントローラ）が発揮する第１機能群（Ａ＋α、Ｂ＋β、及びＣ＋γ）と、コントローラＢ１０ｂ及びコントローラＣ１０ｃ（特定コントローラ以外の複数のコントローラ）が共通して発揮する第２機能群（Ａ、Ｂ、及びＣ）と、の間で共通する機能（特定機能）の有無を判断する。そして、機能制御部２８は、新たなコントローラＡ１０ａが発揮する第１機能群（Ａ＋α、Ｂ＋β、及びＣ＋γ）のうち、特定機能（Ａ、Ｂ、及びＣ）以外の機能（α、β、γ）部分の発揮を禁止するように制御する。すなわち、機能制御部２８は、各コントローラ１０が同じ機能Ａ、Ｂ、及びＣを発揮可能なように制御する。
【００５０】
図７は、本発明の第２実施形態に係るプロセス制御装置１００が特定機能の発揮が可能なように制御するためのフローチャートである。
【００５１】
まず、ステップＳ１では、コントローラＡ１０ａの情報問い合わせ部２２は、コントローラＢ１０ｂ及びコントローラＣ１０ｃが発揮可能な機能および機能群に関する情報を問い合わせる。
【００５２】
次に、ステップＳ２では、コントローラＡ１０ａの情報取得部２４は、情報問い合わせ部２２により問い合わせた、コントローラＢ１０ｂ及びコントローラＣ１０ｃが発揮可能な機能および機能群に関する情報を取得する。
【００５３】
次に、ステップＳ３では、コントローラＡ１０ａの機能比較部２６は、コントローラＡ１０ａが発揮可能な機能および機能群に関する情報と、コントローラＢ１０ｂ及びコントローラＣ１０ｃが発揮可能な機能および機能群に関する情報と、を比較する。
【００５４】
次に、ステップＳ４では、コントローラＡ１０ａの機能比較部２６は、特定機能の有無を判断する。
【００５５】
次に、ステップＳ５では、機能比較部２６が、特定機能が有ると判断する場合、ステップＳ６に進む。一方で、機能比較部２６が、特定機能が無いと判断する場合は、プロセス制御装置１００が特定機能の発揮が可能なように制御するための処理は終了する。
【００５６】
ステップＳ６では、プロセス制御装置１００のコントローラＡ１０ａは、発揮可能な機能群のうち、特定機能以外の機能の発揮を禁止する。
【００５７】
以上説明したように、本発明の第２実施形態によれば、複数のコントローラ１０のうち、特定コントローラ１０が発揮する機能群と、特定コントローラ以外の他の複数のコントローラが共通して発揮する機能群と、の比較を実行し、上記比較の結果に基づいて、特定コントローラ以外の他の複数のコントローラが共通して発揮する機能群のうち少なくとも一部の機能の発揮を禁止するように制御することにより、コントローラが故障した際又はバージョンアップされた際に、すべてのコントローラを交換する必要がなくなり、プロセス制御装置の維持コストを抑えることができ、さらに、ユーザの利便性が高めることができる。さらに、本発明の第２実施形態によれば、各コントローラ１０の機能群を直接比較しているため、バージョン情報のみの比較を実行する第１実施形態に比べて、各コントローラ１０が発揮可能な機能をより精度よく制御することが可能となる。
【００５８】
第３実施形態では、各コントローラ１０のファームウェアのバージョン情報の比較を実行することで、特定機能の有無を判断し、プロセス制御装置１００が特定機能の発揮が可能なように制御する点で、コントローラ１０が個別に自己判断していた上記第２実施形態と異なる。
【００５９】
具体的には、記憶部３０には、あらかじめ、各コントローラ１０のファームウェアのバージョン情報と、各コントローラ１０の発揮可能な機能群と、を対応づけた、図４に示すような関係テーブルが格納されている。そして、機能比較部２６は、各コントローラ１０のファームウェアのバージョン情報を受信後、記憶部３０に格納されている関係テーブルを参照することで、各コントローラ１０の発揮可能な機能および機能群を把握する。そして、機能比較部２６は、各コントローラ１０の機能および機能群を比較し、特定機能の有無を判断する。
【００６０】
図８は、本発明の第３の実施形態に係るプロセス制御装置１００が特定機能の発揮が可能なように制御するためのフローチャートである。まず、ステップＳ１１では、コントローラＡ１０ａの情報問い合わせ部２２は、コントローラＢ１０ｂ及びコントローラＣ１０ｃのファームウェアのバージョン情報を問い合わせる。
【００６１】
次に、ステップＳ１２では、コントローラＡ１０ａの情報取得部２４は、情報問い合わせ部２２により問い合わせた、コントローラＢ１０ｂ及びコントローラＣ１０ｃファームウェアのバージョン情報を取得する。
【００６２】
次に、ステップＳ１３では、コントローラＡ１０ａの機能比較部２６は、コントローラＡ１０ａのファームウェアのバージョン情報と、コントローラＢ１０ｂ及びコントローラＣ１０ｃのファームウェアのバージョン情報と、を比較する。
【００６３】
次に、ステップＳ１４では、コントローラＡ１０ａの機能比較部２６は、上述したように、記憶部３０に格納されている関係テーブルを参照することにより、特定機能の有無を判断する。
【００６４】
次に、ステップＳ１５では、機能比較部２６が、特定機能が有ると判断する場合、ステップＳ１６に進む。一方で、機能比較部２６が、特定機能が無いと判断する場合は、プロセス制御装置１００が特定機能の発揮が可能なように制御するための処理は終了する。
【００６５】
ステップＳ１６では、プロセス制御装置１００のコントローラＡ１０ａは、発揮可能な機能および機能群のうち、特定機能以外の機能の発揮を禁止する。
【００６６】
以上説明したように、本発明の第３実施形態によれば、複数のコントローラのうち、特定コントローラが発揮する機能群と、特定コントローラ以外の他の複数のコントローラが共通して発揮する機能群と、の比較を実行し、上記比較の結果に基づいて、特定コントローラ以外の他の複数のコントローラが共通して発揮する機能群のうち少なくとも一部の機能の発揮を禁止するように制御することにより、コントローラが故障した際又はバージョンアップされた際に、すべてのコントローラを交換する必要がなくなり、プロセス制御装置の維持コストを抑えることができ、さらに、ユーザの利便性が高めることができる。さらに、本発明の第３実施形態によれば、記憶部３０に記憶されている上記関係テーブルを参照することで、コントローラ１０が、個別に各コントローラ１０が発揮可能な機能および機能群を比較する必要がなく、より簡易に特定機能の有無を判断し、プロセス制御装置１００が特定機能の発揮が可能なように制御することができる。
【００６７】
なお、本発明において、上述した各実施形態は、あくまでも例示であり、明示しない種々の変形や技術の適用を排除する意図はない。即ち、本発明は、その趣旨を逸脱しない範囲で種々変形（各実施形態を組み合わせる等）して実施することができる。
【００６８】
たとえば、コントローラＡ１０ａ（Ｖｅｒ．１）が新バージョンのコントローラＡ１０ａ（Ｖｅｒ．２）と交換された際、旧バージョンであるバージョンＶｅｒ．１のファームウェアを搭載したコントローラＢ１０ｂ及びコントローラＣ１０ｃは、コントローラＡ１０ａが交換されたこと、又はコントローラＡ１０ａのファームウェアのバージョンが変更されたこと、を検出する。そして、コントローラＢ１０ｂ及びコントローラＣ１０ｃの各々は、コントローラＡ１０ａからの問い合わせなしに、コントローラＢ１０ｂ及びコントローラＣ１０ｃの各々が発揮可能な機能および機能群に関する情報を、コントローラＡ１０ａ（Ｖｅｒ．２）に出力するように構成されていてもよい。そして、コントローラＡ１０ａ（Ｖｅｒ．２）の機能比較部２６は、コントローラＡ１０ａ（Ｖｅｒ．２）が発揮可能な機能および機能群に関する情報と、コントローラＢ１０ｂ及びコントローラＣ１０ｃが発揮可能な機能および機能群に関する情報と、を比較し、特定機能の有無を判断するように構成されていてもよい。
【００６９】
また、上述した第２、第３実施形態では、Ｖｅｒ．１のコントローラ１０は機能群（機能Ａ、Ｂ、及びＣ）を有するものであり、Ｖｅｒ．２のコントローラ１０は機能群（機能Ａ＋α、Ｂ＋β、及びＣ＋γ）を有するものであるとして、Ｖｅｒ．２はＶｅｒ．１の上位互換性を有するものであることを前提として説明した。しかし、これに限らず、仮にＶｅｒ．２のコントローラ１０が発揮しうる機能群が（Ａ’、Ｂ＋β、及びＣ＋γ）であって、機能群の少なくとも一部、ここでは機能Ａと機能Ａ’に互換性が無いような場合であったとしても、Ｖｅｒ．２のコントローラ１０が内部的に、機能Ａ’ではなく、必要に応じて機能Ａを代わりに発揮できるように構成されているものであれば、本願発明の趣旨に沿って、各コントローラ１０が機能Ａを発揮するように構成することが可能である。
【符号の説明】
【００７０】
１    プロセス制御システム
３    ネットワークＩＦ
５    プロセス機器ＩＦ
１０ａ、ｂ、ｃ    コントローラＡ〜Ｃ
２０ａ、ｂ    情報処理部
２２    情報問い合わせ部
２４    情報取得部
２５    バージョン比較部
２６    機能比較部
２７    バージョン制御部
２８    機能制御部
３０    記憶部
１００    プロセス制御装置
１０２    管理装置
１０４ａ、ｂ、ｃ    プロセス機器
１０６ａ、ｂ、ｃ    システムバス
【図１】
2015191616.tif 000003
【図２】
2015191616.tif 000004
【図３】
2015191616.tif 000005
【図４】
2015191616.tif 000006
【図５】
2015191616.tif 000007
【図６】
2015191616.tif 000008
【図７】
2015191616.tif 000009
【図８】
2015191616.tif 000010