(57)【要約】【課題】プロセス制御システムを停止させることなくオペレーティングシステムを更新することができ、更新されたオペレーティングシステム上でのアプリケーションの継続動作を保証することが可能なプロセス制御装置等を提供する。【解決手段】プロセス制御装置としてコントローラ２０は、ハイパーバイザ２２と、ハイパーバイザ２２上で動作するオペレーティングシステム２３ａ，２３ｂと、オペレーティングシステム２３ａ上で動作するアプリケーション２５ａと、アプリケーション２５ａの復元に必要となる情報と、オペレーティングシステム２３ａとアプリケーション２５ａとの間で授受される情報とを記録する情報記録部５１と、情報記録部５１で記録された情報を用いて、オペレーティングシステム２３ｂをオペレーティングシステム２３ａと同様の状態にし、アプリケーション２５ａをオペレーティングシステム２３ｂ上に復元する復元部６２とを備える。【選択図】図１
2015005258.tif 000002
【特許請求の範囲】
【請求項１】
プラントで実現される工業プロセスの制御を行うプロセス制御装置において、
ハードウェア上でハードウェアの代わりとして動作する仮想化部と、
前記仮想化部上で動作する第１，第２オペレーティングシステムと、
前記第１オペレーティングシステム上で動作して前記工業プロセスの制御に必要な測定及び操作の少なくとも一方を行うフィールド機器との通信により、前記工業プロセスを制御するアプリケーションと、
前記アプリケーションの復元に必要となる第１情報と、前記第１オペレーティングシステムと前記アプリケーションとの間で授受される第２情報とを記録する記録部と、
前記記録部に記録された前記第２情報の履歴を用いて前記第２オペレーティングシステムを前記第１オペレーティングシステムの内部状態と同様の状態にするとともに、前記第１情報を用いて前記第１オペレーティングシステム上で動作する前記アプリケーションを前記第２オペレーティングシステム上に復元する復元部と
を備えることを特徴とするプロセス制御装置。
【請求項２】
前記第１情報を前記第２オペレーティングシステム上で復元されたアプリケーションの前記第１情報に相当する情報と比較する動作、前記第２情報を前記第２オペレーティングシステムと前記第２オペレーティングシステム上に復元された前記アプリケーションとの間で授受される情報と比較する動作の少なくとも一方を行う比較部を備えることを特徴とする請求項１記載のプロセス制御装置。
【請求項３】
前記比較部は、比較を行った情報の内容が同じであるか否か、及び比較を行った情報のタイミングずれが予め規定された許容範囲内であるか否かの確認を行うことを特徴とする請求項２記載のプロセス制御装置。
【請求項４】
前記記録部は、前記第１オペレーティングシステムと前記アプリケーションとの間に実装される第１ミドルウェア内に設けられ、
前記復元部及び前記比較部は、前記第２オペレーティングシステムと前記第２オペレーティングシステム上に復元される前記アプリケーションとの間に実装される第２ミドルウェア内に設けられる
ことを特徴とする請求項２又は請求項３記載のプロセス制御装置。
【請求項５】
前記仮想化部に設けられ、前記フィールド機器からの情報を前記第１，第２オペレーティングシステムに分配する分配部と、
前記仮想化部に設けられ、前記第１，第２オペレーティングシステムの出力を取得して何れか一方の出力を前記フィールド機器に出力する取得部と
を備えることを特徴とする請求項１から請求項４の何れか一項に記載のプロセス制御装置。
【請求項６】
前記取得部が取得した前記第１，第２オペレーティングシステムの出力の比較を行う出力比較部を備えることを特徴とする請求項５記載のプロセス制御装置。
【請求項７】
前記出力比較部は、比較を行った前記第１，第２オペレーティングシステムの出力の内容が同じであるか否か、及び比較を行った前記第１，第２オペレーティングシステムの出力のタイミングずれが予め規定された許容範囲内であるか否かの確認を行うことを特徴とする請求項６記載のプロセス制御装置。
【請求項８】
プラントで実現される工業プロセスの制御を行うプロセス制御システムにおいて、
ハードウェア上でハードウェアの代わりとして動作する第１仮想化部と、
前記第１仮想化部上で動作する第１オペレーティングシステムと、
前記第１オペレーティングシステム上で動作して前記工業プロセスの制御に必要な測定及び操作の少なくとも一方を行うフィールド機器との通信により、前記工業プロセスを制御するアプリケーションと、
前記アプリケーションの復元に必要となる第１情報と、前記第１オペレーティングシステムと前記アプリケーションとの間で授受される第２情報とを記録する記録部と
を有する第１プロセス制御装置と、
ハードウェア上でハードウェアの代わりとして動作し、前記第１仮想化部と論理的に一体とされる第２仮想化部と、
前記第２仮想化部上で動作する第２オペレーティングシステムと、
前記記録部に記録された前記第２情報の履歴を用いて前記第２オペレーティングシステムを前記第１オペレーティングシステムの内部状態と同様の状態にするとともに、前記第１情報を用いて前記第１オペレーティングシステム上で動作する前記アプリケーションを前記第２オペレーティングシステム上に復元する復元部と
を有する第２プロセス制御装置と
を備えることを特徴とするプロセス制御システム。
【請求項９】
プラントで実現される工業プロセスの制御を行うプロセス制御装置の更新方法であって、
アプリケーションの復元に必要となる第１情報と、ハードウェア上でハードウェアの代わりとして動作する仮想化部上で動作して前記アプリケーションを動作させている第１オペレーティングシステムと前記アプリケーションとの間で授受される第２情報とを記録する第１ステップと、
前記第１ステップで記録された前記第２情報の履歴を用いて前記仮想化部上で動作する第２オペレーティングシステムを前記第１オペレーティングシステムの内部状態と同様の状態にするとともに、前記第１情報を用いて前記第１オペレーティングシステム上で動作する前記アプリケーションを前記第２オペレーティングシステム上に復元する第２ステップと
を有することを特徴とするプロセス制御装置の更新方法。
【請求項１０】
プラントで実現される工業プロセスの制御を行う第１，第２プロセス制御装置を備えるプロセス制御システムの更新方法であって、
前記第１プロセス制御装置で動作するアプリケーションの復元に必要となる第１情報と、該アプリケーションを動作させている第１オペレーティングシステムと前記アプリケーションとの間で授受される第２情報とを記録する第１ステップと、
前記第１ステップで記録された前記第２情報の履歴を用いて前記第２プロセス制御装置で動作する第２オペレーティングシステムを前記第１プロセス制御装置で動作する第１オペレーティングシステムの内部状態と同様の状態にするとともに、前記第１情報を用いて前記第１オペレーティングシステム上で動作する前記アプリケーションを前記第２オペレーティングシステム上に復元する第２ステップと
を有することを特徴とするプロセス制御システムの更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセス制御装置及びシステム並びにその更新方法に関する。
【背景技術】
【０００２】
従来から、プラントや工場等（以下、これらを総称する場合には、単に「プラント」という）においては、工業プロセスにおける各種の状態量（例えば、圧力、温度、流量等）を制御するプロセス制御システムが構築されており、高度な自動操業が実現されている。具体的には、例えば以下の特許文献１〜３に示す通り、プロセス制御システムの核をなすコントローラが、複数のセンサ（流量計や温度計等）の検出結果を取得し、この検出結果に応じてアクチュエータ（バルブ等）の操作量を求め、この操作量に応じてアクチュエータを操作することによって、上述した各種の状態量が制御されている。
【０００３】
従来のプラント制御システムは、独自仕様の専用の機器を用いて構築されていたが、近年のプラント制御システムは、オープン化されつつあり、仕様が公開された汎用的な機器（コンピュータやワークステーション等）を用いて構築されるものが多くなっている。このような汎用的な機器が用いられるプラント制御システムにおいては、一般の情報システムと同様に、ハードウェアの交換やソフトウェアの改善が必要になる。尚、ソフトウェアの改善としては、例えばオペレーティングシステム（ＯＳ）の機能拡張や、オペレーティングシステムの不具合・脆弱性の修正等が挙げられる。
【０００４】
以下の特許文献４には、二重化したプロセッサユニット（制御側及び待機側）を搭載する制御用計算機システムにおいて、制御対象に影響を与えることなくシステムプログラムを変更することが可能な技術が開示されている。具体的には、待機側を一旦停止させて新たなシステムプログラムをロードしてから待機側を起動させ、制御側に記憶されたアプリケーションデータを待機側にコピーし、制御側を停止させるとともに待機側を制御側として起動させることによって、制御対象に影響を与えることなくシステムプログラムを変更している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４３９９７７３号公報
【特許文献２】国際公開第２００５／０５０３３６号
【特許文献３】米国特許出願公開第２００７／００７８９８０号明細書
【特許文献４】特開平１１−３２４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、プロセス制御システムは、月〜年単位の長期に亘る継続運転が要求されることが殆どであるため、運転状態にあるプロセス制御システムを自由に停止させることはできない。例えば、定期メンテナンスによる停止、或いはプラントの安全確保のために行われるシャットダウン以外は、基本的にプロセス制御システムを停止させることは許されない。
【０００７】
一方、プロセス制御システムには、安全性の面から誤動作や動作の欠損が生じないことが要求されるため、誤動作等が生じ得る原因（例えば、オペレーティングシステムの不具合や脆弱性）が発見された場合には、その原因を解消し得る対処（オペレーティングシステムの更新）を即座に行う必要がある。しかしながら、前述した通り、プロセス制御システムを自由に停止させることができないため、誤動作等が生じ得る原因が発見されたとしても、その対処を即座に行うことができない場合があるという問題がある。
【０００８】
ここで、上述した特許文献４に開示された技術を用いれば、プロセス制御システムを停止させることなく制御対象に影響を与えずにオペレーティングシステムの更新を行うことができるとも考えられる。しかしながら、上述した特許文献４に開示された技術は、実際の運用状態での動作確認を十分せずに、新たなシステムプログラムを制御側で実行するようにしている。このため、仮にプロセス制御システムを停止させることなくオペレーティングシステムを更新することができたとしても、更新されたオペレーティングシステム上でのアプリケーションの安定した継続動作を保証することができないという問題がある。
【０００９】
本発明は上記事情に鑑みてなされたものであり、プロセス制御システムを停止させることなくオペレーティングシステムを更新することができ、更新されたオペレーティングシステム上でのアプリケーションの継続動作を保証することが可能なプロセス制御装置及びシステム並びにその更新方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明のプロセス制御装置は、プラントで実現される工業プロセスの制御を行うプロセス制御装置（２０）において、ハードウェア（２１）上でハードウェアの代わりとして動作する仮想化部（２２）と、前記仮想化部上で動作する第１，第２オペレーティングシステム（２３ａ、２３ｂ）と、前記第１オペレーティングシステム上で動作して前記工業プロセスの制御に必要な測定及び操作の少なくとも一方を行うフィールド機器（１０）との通信により、前記工業プロセスを制御するアプリケーション（２５ａ）と、前記アプリケーションの復元に必要となる第１情報と、前記第１オペレーティングシステムと前記アプリケーションとの間で授受される第２情報とを記録する記録部（５１）と、前記記録部に記録された前記第２情報の履歴を用いて前記第２オペレーティングシステムを前記第１オペレーティングシステムの内部状態と同様の状態にするとともに、前記第１情報を用いて前記第１オペレーティングシステム上で動作する前記アプリケーションを前記第２オペレーティングシステム上に復元する復元部（６２）とを備えることを特徴としている。
この発明によると、アプリケーションの復元に必要となる第１情報と、第１オペレーティングシステムとアプリケーションとの間で授受される第２情報とが記録部に記録され、この記録部に記録された第２情報の履歴を用いて、第２オペレーティングシステムが第１オペレーティングシステムの内部状態と同様の状態にされるとともに、第１情報を用いて第１オペレーティングシステム上で動作するアプリケーションが第２オペレーティングシステム上に復元される。
また、本発明のプロセス制御装置は、前記第１情報を前記第２オペレーティングシステム上で復元されたアプリケーションの前記第１情報に相当する情報と比較する動作、前記第２情報を前記第２オペレーティングシステムと前記第２オペレーティングシステム上に復元された前記アプリケーションとの間で授受される情報と比較する動作の少なくとも一方を行う比較部（６４）を備えることを特徴としている。
また、本発明のプロセス制御装置は、前記比較部が、比較を行った情報の内容が同じであるか否か、及び比較を行った情報のタイミングずれが予め規定された許容範囲内であるか否かの確認を行うことを特徴としている。
また、本発明のプロセス制御装置は、前記記録部が、前記第１オペレーティングシステムと前記アプリケーションとの間に実装される第１ミドルウェア（２４ａ）内に設けられ、前記復元部及び前記比較部が、前記第２オペレーティングシステムと前記第２オペレーティングシステム上に復元される前記アプリケーションとの間に実装される第２ミドルウェア（２４ｂ）内に設けられることを特徴としている。
また、本発明のプロセス制御装置は、前記仮想化部に設けられ、前記フィールド機器からの情報を前記第１，第２オペレーティングシステムに分配する分配部（４１）と、前記仮想化部に設けられ、前記第１，第２オペレーティングシステムの出力を取得して何れか一方の出力を前記フィールド機器に出力する取得部（４２）とを備えることを特徴としている。
また、本発明のプロセス制御装置は、前記取得部が取得した前記第１，第２オペレーティングシステムの出力の比較を行う出力比較部（４２ａ）を備えることを特徴としている。
また、本発明のプロセス制御装置は、前記出力比較部が、比較を行った前記第１，第２オペレーティングシステムの出力の内容が同じであるか否か、及び比較を行った前記第１，第２オペレーティングシステムの出力のタイミングずれが予め規定された許容範囲内であるか否かの確認を行うことを特徴としている。
本発明のプロセス制御システムは、プラントで実現される工業プロセスの制御を行うプロセス制御システム（２）において、ハードウェア（２１ａ）上でハードウェアの代わりとして動作する第１仮想化部（２２ａ）と、前記第１仮想化部上で動作する第１オペレーティングシステム（２３ａ）と、前記第１オペレーティングシステム上で動作して前記工業プロセスの制御に必要な測定及び操作の少なくとも一方を行うフィールド機器（１０）との通信により、前記工業プロセスを制御するアプリケーション（２５ａ）と、前記アプリケーションの復元に必要となる第１情報と、前記第１オペレーティングシステムと前記アプリケーションとの間で授受される第２情報とを記録する記録部（５１）とを有する第１プロセス制御装置（２０ａ）と、ハードウェア（２１ｂ）上でハードウェアの代わりとして動作し、前記第１仮想化部と論理的に一体とされる第２仮想化部（２２ｂ）と、前記第２仮想化部上で動作する第２オペレーティングシステム（２３ｂ）と、前記記録部に記録された前記第２情報の履歴を用いて前記第２オペレーティングシステムを前記第１オペレーティングシステムの内部状態と同様の状態にするとともに、前記第１情報を用いて前記第１オペレーティングシステム上で動作する前記アプリケーションを前記第２オペレーティングシステム上に復元する復元部（６２）とを有する第２プロセス制御装置（２０ｂ）とを備えることを特徴としている。
本発明のプロセス制御装置の更新方法は、プラントで実現される工業プロセスの制御を行うプロセス制御装置（２０）の更新方法であって、アプリケーション（２５ａ）の復元に必要となる第１情報と、ハードウェア（２１）上でハードウェアの代わりとして動作する仮想化部（２２）上で動作して前記アプリケーションを動作させている第１オペレーティングシステム（２３ａ）と前記アプリケーションとの間で授受される第２情報とを記録する第１ステップと、前記第１ステップで記録された前記第２情報の履歴を用いて前記仮想化部上で動作する第２オペレーティングシステムを前記第１オペレーティングシステムの内部状態と同様の状態にするとともに、前記第１情報を用いて前記第１オペレーティングシステム上で動作する前記アプリケーションを前記第２オペレーティングシステム（２３ｂ）上に復元する第２ステップ（Ｓ１３）とを有することを特徴としている。
本発明のプロセス制御システムの更新方法は、プラントで実現される工業プロセスの制御を行う第１，第２プロセス制御装置（２０ａ、２０ｂ）を備えるプロセス制御システム（２）の更新方法であって、前記第１プロセス制御装置で動作するアプリケーション（２５ａ）の復元に必要となる第１情報と、該アプリケーションを動作させている第１オペレーティングシステム（２３ａ）と前記アプリケーションとの間で授受される第２情報とを記録する第１ステップと、前記第１ステップで記録された前記第２情報の履歴を用いて前記第２プロセス制御装置で動作する第２オペレーティングシステムを前記第１プロセス制御装置で動作する第１オペレーティングシステムの内部状態と同様の状態にするとともに、前記第１情報を用いて前記第１オペレーティングシステム上で動作する前記アプリケーションを前記第２オペレーティングシステム（２３ｂ）上に復元する第２ステップとを有することを特徴としている。
【発明の効果】
【００１１】
本発明によれば、プロセス制御システムを停止させることなくオペレーティングシステムを更新することができ、更新されたオペレーティングシステム上でのアプリケーションの継続動作を保証することが可能であるという効果がある。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１実施形態によるプロセス制御システムの要部構成を示すブロック図である。
【図２】本発明の第１実施形態におけるコントローラの更新前動作を説明するための図である。
【図３】本発明の第１実施形態におけるコントローラの更新動作を示すフローチャートである。
【図４】本発明の第１実施形態におけるアプリケーションの復元処理を説明するための図である。
【図５】本発明の第１実施形態におけるデータ入力時の動作検証を説明するための図である。
【図６】本発明の第１実施形態におけるデータ出力時の動作検証を説明するための図である。
【図７】本発明の第２実施形態によるプロセス制御システムの要部構成を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施形態によるプロセス制御装置及びシステム並びにその更新方法について詳細に説明する。
【００１４】
〔第１実施形態〕
〈プロセス制御システムの構成〉
図１は、本発明の第１実施形態によるプロセス制御システムの要部構成を示すブロック図である。図１に示す通り、本実施形態のプロセス制御システム１は、複数のフィールド機器１０、コントローラ２０（プロセス制御装置）、及び監視装置３０を備えており、監視装置３０の監視の下でコントローラ２０がフィールド機器１０を制御することによって、プラント（図示省略）で実現される工業プロセスの制御を行う。また、本実施形態のプロセス制御システム１では、監視装置３０の監視の下で、コントローラ２０で用いられているオペレーティングシステムの更新（オンライン・レブアップ）を行うことが可能である。
【００１５】
ここで、フィールド機器１０及びコントローラ２０はフィールドネットワークＮ１に接続され、コントローラ２０及び監視装置３０は制御ネットワークＮ２に接続される。フィールドネットワークＮ１は、例えばプラントの現場に敷設された有線のネットワークである。他方、制御ネットワークＮ２は、例えばプラントの現場と監視室との間を接続する有線のネットワークである。尚、これらフィールドネットワークＮ１及び制御ネットワークＮ２は、無線のネットワークであっても良い。
【００１６】
フィールド機器１０は、例えば流量計や温度センサ等のセンサ機器、流量制御弁や開閉弁等のバルブ機器、ファンやモータ等のアクチュエータ機器、その他のプラントの現場に設置される機器である。尚、図１においては、理解を容易にするために、プラントに設置されたフィールド機器１０のうちの流体の流量を測定するセンサ機器１１と流体の流量を制御（操作）するバルブ機器１２とを図示している。
【００１７】
フィールド機器１０は、コントローラ２０からフィールドネットワークＮ１を介して送信されてくる制御データに応じた動作を行う。例えば、コントローラ２０からセンサ機器１１に測定データ（流体の流量の測定結果を示すデータ）の送信要求が送信されてきた場合には、センサ機器１１は、フィールドネットワークＮ１を介してコントローラ２０に向けて測定データを送信する。また、コントローラ２０からバルブ機器１２に対して制御データ（開度を制御するデータ）が送信されてきた場合には、バルブ機器１２は、流体が通過する弁の開度を制御データで指示される開度にする。
【００１８】
コントローラ２０は、監視装置３０の監視の下でフィールド機器１０（例えば、センサ機器１１）からの測定データを収集するとともに、収集した測定データに基づいてフィールド機器１０（例えば、バルブ機器１２）を制御する。また、コントローラ２０は、監視装置３０からの指示に基づいて、自身が使用しているオペレーティングシステムの更新も行う。このコントローラ２０の機能は、ソフトウェアがコンピュータに読み込まれて、ソフトウェアとハードウェア資源とが協働することによって実現される。
【００１９】
具体的に、コントローラ２０の機能は、ＭＰＵ（Micro-Processing Unit：マイクロプロセッサ）やメモリ等からなるハードウェア２１によって、インストールされたプログラムが実行されることによって実現される。ここで、コントローラ２０には、ハイパーバイザ２２（仮想化部）を実現するプログラム、オペレーティングシステム（ＯＳ）２３ａ，２３ｂ（第１，第２オペレーティングシステム）を実現するプログラム、アプリケーションマネージャ２４ａ，２４ｂ（第１，第２ミドルウェア）を実現するプログラム、及びアプリケーション２５ａを実現するプログラムがインストールされている。
【００２０】
ここで、本実施形態では、コントローラ２０で用いられているオペレーティングシステム２３ａが、オペレーティングシステム２３ｂに更新される場合を例に挙げて説明する。このため、オペレーティングシステム２３ｂを実現するプログラム、及びアプリケーションマネージャ２４ｂを実現するプログラムは、オペレーティングシステム２３ａの更新を行う際に、監視装置３０からダウンロードされてインストールされる。また、詳細は後述するが、アプリケーション２５ｂは、オペレーティングシステム２３ａ（アプリケーションマネージャ２４ａ）上のアプリケーション２５ａが、オペレーティングシステム２３ｂ（アプリケーションマネージャ２４ｂ）上に復元されたものである。
【００２１】
上記のハイパーバイザ２２は、ハードウェア２１上でハードウェアの代わりとして仮想的に動作し、オペレーティングシステム２３ａ、アプリケーションマネージャ２４ａ、及びアプリケーション２５ａと、オペレーティングシステム２３ｂ、アプリケーションマネージャ２４ｂ、及びアプリケーション２５ｂとをそれぞれ独立して動作させるために設けられる。尚、ハイパーバイザ２２を設けることで、オペレーティングシステム２３ａ，２３ｂ、アプリケーションマネージャ２４ａ，２４ｂ、及びアプリケーション２５ａ，２５ｂを変更することなくハードウェア２１を交換することも可能である。
【００２２】
ここで、ハイパーバイザ２２を設けることで、オペレーティングシステム２３ａ，２３ｂ、アプリケーションマネージャ２４ａ，２４ｂ、及びアプリケーション２５ａ，２５ｂを以下の通り動作させることができる。
・オペレーティングシステム２３ａ、アプリケーションマネージャ２４ａ、及びアプリケーション２５ａのみの動作
・オペレーティングシステム２３ｂ、アプリケーションマネージャ２４ｂ、及びアプリケーション２５ｂのみの動作
・オペレーティングシステム２３ａ、アプリケーションマネージャ２４ａ、及びアプリケーション２５ａと、オペレーティングシステム２３ｂ、アプリケーションマネージャ２４ｂ、及びアプリケーション２５ｂとの並列動作
【００２３】
図１に示す通り、ハイパーバイザ２２は、入力分配部４１（分配部）、出力取得部４２（取得部）、及び出力比較部４２ａを備える。入力分配部４１は、フィールド機器１０（例えば、センサ機器１１）からの測定データやステータスを、オペレーティングシステム２３ａ，２３ｂにそれぞれ分配する。尚、オペレーティングシステム２３ａ，２３ｂに分配された測定データ等は、アプリケーションマネージャ２４ａ，２４ｂを介してアプリケーション２５ａ，２５ｂにそれぞれ出力される。
【００２４】
出力取得部４２は、オペレーティングシステム２３ａ，２３ｂの出力を取得し、オペレーティングシステム２３ａの出力をフィールド機器１０（例えば、バルブ機器１２）に出力する。尚、オペレーティングシステム２３ａ，２３ｂの出力は、アプリケーション２５ａ，２５ｂから出力されてアプリケーションマネージャ２４ａ，２４ｂ及びオペレーティングシステム２３ａ，２３ｂをそれぞれ介した制御データである。また、出力取得部４２は、取得したオペレーティングシステム２３ａ，２３ｂの出力を出力比較部４２ａに渡す。
【００２５】
出力比較部４２ａは、出力取得部４２から渡される出力（オペレーティングシステム２３ａ，２３ｂの出力）の比較を行う。この出力比較部４２ａは、比較を行ったオペレーティングシステム２３ａ，２３ｂの出力の内容が同じであるか否か、及び比較を行ったオペレーティングシステム２３ａ，２３ｂの出力のタイミングずれが予め規定された許容範囲内であるか否かを確認する。
【００２６】
尚、詳細は後述するが、このような入力分配部４１、出力取得部４２、及び出力比較部４２ａをハイパーバイザ２２に設けるのは、並列して動作するオペレーティングシステム２３ａ及びアプリケーション２５ａと、オペレーティングシステム２３ｂ及びアプリケーション２５ｂとの動作タイミングを揃え、これら並列して動作するオペレーティングシステム２３ａ及びアプリケーション２５ａと、オペレーティングシステム２３ｂ及びアプリケーション２５ｂとの動作確認を行い、動作確認完了後にアプリケーション２５ａの処理をアプリケーション２５ｂに切れ目なく引き継ぐためである。つまり、新たなオペレーティングシステム２３ｂ、及びオペレーティングシステム２３ｂ上で動作するアプリケーション２５ｂが、元のオペレーティングシステム２３ａ及びアプリケーション２５ａと同様に動作するか否かを確認し、アプリケーションの動作を継続したまま、元のオペレーティングシステム２３ａ及びアプリケーション２５ａから、新たなオペレーティングシステム２３ｂ及びアプリケーション２５ｂに処理を引き継ぐためである。
【００２７】
オペレーティングシステム２３ａ，２３ｂは、ハイパーバイザ２２上で独立して動作し、例えばアプリケーション２５ａ，２５ｂを動作させるために必要となるプロセス管理やメモリ管理等の各種管理をそれぞれ行う。尚、前述した通り、本実施形態において、オペレーティングシステム２３ａは、元のオペレーティングシステムであり、オペレーティングシステム２３ｂは、新たなオペレーティングシステムである。
【００２８】
アプリケーションマネージャ２４ａ，２４ｂは、オペレーティングシステム２３ａ（アプリケーションマネージャ２４ａ）上のアプリケーション２５ａを、アプリケーション２５ｂとしてオペレーティングシステム２３ｂ（アプリケーションマネージャ２４ｂ）上に復元するために必要な処理を行う。また、アプリケーションマネージャ２４ａ，２４ｂは、新たなオペレーティングシステム２３ｂ及びアプリケーション２５ｂが、元のオペレーティングシステム２３ａ及びアプリケーション２５ａと同様に動作するか否かの確認に必要な処理も行う。
【００２９】
アプリケーションマネージャ２４ａは、オペレーティングシステム２３ａとアプリケーション２５ａとの間に実装されるミドルウェアである。このアプリケーションマネージャ２４ａは、情報記録部５１（記録部）及び送信部５２を備えており、アプリケーション２５ａを、アプリケーション２５ｂとしてオペレーティングシステム２３ｂ（アプリケーションマネージャ２４ｂ）上に復元するために必要となる情報や、新たなオペレーティングシステム２３ｂ及びアプリケーション２５ｂの動作確認に用いられる情報の収集、記録、及び送信を行う。
【００３０】
情報記録部５１は、アプリケーション２５ａの復元に必要となる情報（第１情報）と、オペレーティングシステム２３ａとアプリケーション２５ａとの間で授受される情報（第２情報）とを記録する。具体的に、情報記録部５１は、以下に示す情報を記録する。
【００３１】
（１）第１情報
・アプリケーション２５ａを構成するプロセスのメモリ空間に存在する、ロードされたプログラム及びデータ
・アプリケーション２５ａが使用する共有メモリ空間の内容
（２）第２情報
・アプリケーション２５ａが呼び出したシステムコール
・アプリケーション２５ａに通知される割り込み
【００３２】
送信部５２は、情報記録部５１に記録された情報を読み出してアプリケーションマネージャ２４ｂに送信する。尚、アプリケーションマネージャ２４ｂが実装されておらず送信先が無い場合には、送信部５２は、アプリケーションマネージャ２４ａ内に設けられたバッファ（図示省略）に対して情報を送信する。これは、アプリケーションマネージャ２４ｂが実装されていない場合であっても、送信部５２の動作を極力変えないようにするための措置である。
【００３３】
アプリケーションマネージャ２４ｂは、オペレーティングシステム２３ｂとアプリケーション２５ｂとの間に実装されるミドルウェアである。このアプリケーションマネージャ２４ｂは、受信部６１、復元部６２、情報記録部６３、及び情報比較部６４（比較部）を備えており、オペレーティングシステム２３ｂ（アプリケーションマネージャ２４ｂ）上にアプリケーション２５ｂを復元する処理、及び新たなオペレーティングシステム２３ｂ及びアプリケーション２５ｂの動作確認処理を行う。
【００３４】
受信部６１は、アプリケーションマネージャ２４ａの送信部５２から送信されてくる情報を受信し、復元部６２又は情報比較部６４に出力する。復元部６２は、受信部６１から出力される情報を用いて、オペレーティングシステム２３ａ（アプリケーションマネージャ２４ａ）上のアプリケーション２５ａを、アプリケーション２５ｂとしてオペレーティングシステム２３ｂ（アプリケーションマネージャ２４ｂ）上に復元する。
【００３５】
ここで、送信部５２から受信部６１への情報送信は、オペレーティングシステムの機能（例えば、ソケット（socket）インターフェイス）を用いてオペレーティングシステム２３ａ，２３ｂを順に介して行う。或いは、ハイパーバイザ２２の機能（例えば、ハイパーバイザコールとＶＭ間通信）を用い、オペレーティングシステム２３ａ、ハイパーバイザ２２、オペレーティングシステム２３ｂを順に介して行う。
【００３６】
情報記録部６３は、オペレーティングシステム２３ｂとアプリケーション２５ｂとの間で授受される情報を記録する。情報比較部６４は、受信部６１から出力された情報（オペレーティングシステム２３ａとアプリケーション２５ａとの間で授受された情報）と、情報記録部６３に記録された情報（オペレーティングシステム２３ｂとアプリケーション２５ｂとの間で授受される情報）とを比較する。この情報比較部６４は、比較を行った情報の内容が同じであるか否か、及び比較を行った情報のタイミングずれが予め規定された許容範囲内であるか否かを確認する。
【００３７】
アプリケーション２５ａ，２５ｂは、オペレーティングシステム２３ａ，２３ｂ（アプリケーションマネージャ２４ａ，２４ｂ）上で動作し、プロセスの制御を行う上で必要なフィールド機器１０の制御（例えば、センサ機器１１からの測定データ等の収集やバルブ機器１２に対する制御データの送信等）をそれぞれ行う。尚、前述の通り、アプリケーション２５ｂは、アプリケーション２５ａがオペレーティングシステム２３ｂ（アプリケーションマネージャ２４ｂ）上に復元されたものであるが、アプリケーション２５ａ，２５ｂは互いに独立して動作する。
【００３８】
監視装置３０は、例えばコンピュータによって実現され、運転員によって操作されてプロセスの監視のために用いられる。具体的に、監視装置３０は、コントローラ２０で動作するオペレーティングシステム２３ａ，２３ｂやアプリケーション２５ａ，２５ｂの動作状態のモニタや管理を行い、そのモニタ等の結果に応じて（或いは、運転員の操作指示に応じて）コントローラ２０を制御する。また、監視装置３０は、運転員からの指示に基づいて、コントローラ２０に対してオペレーティングシステム２３ａの更新指示を行う。
【００３９】
〈プロセス制御システムの動作〉
次に、以上説明した構成のプロセス制御システム１の動作について説明する。以下では、最初にオペレーティングシステム２３ａが更新される前のコントローラ２０の動作（更新前動作）について説明し、次いでオペレーティングシステム２３ａの更新が行われる際の動作（更新動作）について説明する。
【００４０】
《更新前動作》
図２は、本発明の第１実施形態におけるコントローラの更新前動作を説明するための図である。オペレーティングシステム２３ａの更新が行われる前において、コントローラ２０は、図２に示す通り、ハイパーバイザ２２上でオペレーティングシステム２３ａが動作し、オペレーティングシステム２３ａ上でアプリケーションマネージャ２４ａが動作し、アプリケーションマネージャ２４ａの上でアプリケーション２５ａが動作している状態である。
【００４１】
この状態において、センサ機器１１からの測定データがコントローラ２０に入力されたとすると、測定データは、ハイパーバイザ２２に設けられた入力分配部４１、オペレーティングシステム２３ａ、及びアプリケーションマネージャ２４ａを順に介してアプリケーション２５ａに入力される。このとき、オペレーティングシステム２３ａとアプリケーション２５ａとの間で授受された情報が、情報記録部５１に記録されて送信部５２に出力される。
【００４２】
センサ機器１１からの測定データがアプリケーション２５ａに入力されると、入力された測定データに応じたバルブ機器１２の制御量が求められ、その制御量を示す制御データがアプリケーション２５ａから出力される。この制御データは、アプリケーションマネージャ２４ａ、オペレーティングシステム２３ａ、及びハイパーバイザ２２の出力取得部４２を順に介してバルブ機器１２に出力される。このとき、オペレーティングシステム２３ａとアプリケーション２５ａとの間で授受された情報が、情報記録部５１に記録されて送信部５２に出力される。
【００４３】
以上の動作が行われている間、前述したアプリケーション２５ａの復元に必要となる情報、及びオペレーティングシステム２３ａとアプリケーション２５ａとの間で授受される情報が情報記録部５１に記録される（第１ステップ）。尚、情報記録部５１から送信部５２に出力された測定データ及び制御データは、アプリケーションマネージャ２４ａ内に設けられた不図示のバッファに出力される。
【００４４】
また、以上の動作が行われている間、監視装置３０からコントローラ２０に対して、オペレーティングシステム２３ｂを実現するプログラム、及びアプリケーションマネージャ２４ｂを実現するプログラムがダウンロードされる。これらプログラムのダウンロードは、オペレーティングシステム２３ａの更新が開始されるまでの任意のタイミングで、以上説明した動作を妨げないように行われる。
【００４５】
《更新動作》
図３は、本発明の第１実施形態におけるコントローラの更新動作を示すフローチャートである。尚、図３に示すフローチャートの処理は、監視装置３０からコントローラ２０に対してオペレーティングシステムの更新指示が出力されたタイミングで開始される。処理が開始されると、まず監視装置３０からの指示に基づいて、新たなオペレーティングシステム２３ｂを起動させる処理がコントローラ２０で行われる（ステップＳ１１）。
【００４６】
具体的には、上述した「更新前動作」が行われている間にダウンロードしたプログラム（オペレーティングシステム２３ｂを実現するプログラム、及びアプリケーションマネージャ２４ｂを実現するプログラム）を実行させる処理が行われる。かかる処理によって、ハイパーバイザ２２上でオペレーティングシステム２３ｂが動作し、オペレーティングシステム２３ｂ上でアプリケーションマネージャ２４ｂが動作している状態になる（図１参照）。
【００４７】
次に、アプリケーションマネージャ２４ａの情報記録部５１に記録された情報をアプリケーションマネージャ２４ｂに転送する処理（ステップＳ１２）、及び新たなオペレーティングシステム２３ｂ上にアプリケーション２５ａをアプリケーション２５ｂとして復元する処理（ステップＳ１３：第２ステップ）が順次コントローラ２０で行われる。図４は、本発明の第１実施形態におけるアプリケーションの復元処理を説明するための図である。
【００４８】
図４に示す通り、情報の転送及びアプリケーションの復元は、センサ機器１１からの測定データの入力及びバルブ機器１２への制御データの出力が、前述した「更新前動作」と同様にコントローラ２０で行われている状態で行われる。つまり、コントローラ２０では、測定データの入力及び制御データの出力の双方を妨げないように、情報の転送及びアプリケーションの復元が行われる。
【００４９】
具体的に、ステップＳ１２において、アプリケーションマネージャ２４ａでは、情報記録部５１に記録された情報を読み出して、送信部５２によってアプリケーションマネージャ２４ｂに送信する処理が行われる。これに対し、アプリケーションマネージャ２４ｂでは、アプリケーションマネージャ２４ａの送信部５２から送信されてきた情報を受信して復元部６２に出力する処理が行われる。
【００５０】
また、ステップＳ１３では、アプリケーションマネージャ２４ｂの復元部６２によって、転送されてきた情報に含まれる第２情報の履歴を用いて、新たなオペレーティングシステム２３ｂを、オペレーティングシステム２３ａの内部状態と同様の状態にする処理が行われる。また、転送されてきた情報に含まれる第１情報を用いて、オペレーティングシステム２３ｂ上にアプリケーション２５ａを復元する処理が復元部６２によって行われる。
【００５１】
ここで、第２情報の履歴を用いてオペレーティングシステム２３ａと同様となるオペレーティングシステム２３ｂの内部状態は、具体的には以下に示すような状態である。
【００５２】
・アプリケーション２５ａを構成するプロセス、及びそれらの親子関係の状態
・アプリケーション２５ａが使用するＩＰＣ（Inter Process Communication）とその状態
・アプリケーション２５ａが使用するネットワーク接続とその状態
【００５３】
尚、これらの状態の一部がオペレーティングシステム２３ａの機能により、履歴情報を用いずとも直接取得できる場合は、第１情報によるアプリケーションの復元と同様の手段で、オペレーティングシステム２３ａから取得した状態を用いてオペレーティングシステム２３ｂの内部状態を復元してもよい。
【００５４】
以上の処理が行われることによって、図４に示す通り、オペレーティングシステム２３ａ上のアプリケーション２５ａが、アプリケーション２５ｂとしてオペレーティングシステム２３ｂ上に復元される。これにより、コントローラ２０では、元のオペレーティングシステム２３ａ及びアプリケーション２５ａと、新たなオペレーティングシステム２３ｂ及びアプリケーション２５ｂ（アプリケーション２５ａと同等のアプリケーション）とが並列して動作するようになる。
【００５５】
アプリケーション２５ｂの復元が完了すると、新たなオペレーティングシステム２３ｂ及びアプリケーション２５ｂの動作検証が行われる。具体的には、データ入力時の動作検証（ステップＳ１４）と、データ出力時の動作検証（ステップＳ１５）とが行われる。ここで、データ入力時の動作検証とは、例えばセンサ機器１１からの測定データがコントローラ２０に入力された場合の動作を検証することであり、データ出力時の動作検証とは、例えばバルブ機器１２への制御データを出力する場合の動作を検証することである。
【００５６】
図５は、本発明の第１実施形態におけるデータ入力時の動作検証を説明するための図である。図５に示す通り、センサ機器１１からの測定データがコントローラ２０に入力されると、ハイパーバイザ２２に設けられた入力分配部４１で、測定データにタイムスタンプ（時刻ｔ１）を付した上で、オペレーティングシステム２３ａとオペレーティングシステム２３ｂとに分配する処理が行われる。測定データが分配されることにより、オペレーティングシステム２３ａ及びオペレーティングシステム２３ｂには、測定データが同じタイミングで入力されることになる。
【００５７】
オペレーティングシステム２３ａに分配された測定データは、オペレーティングシステム２３ａ及びアプリケーションマネージャ２４ａを順に介してアプリケーション２５ａに入力される。このとき、オペレーティングシステム２３ａとアプリケーション２５ａとの間で授受された情報を情報記録部５１に記録するとともに、その情報にタイムスタンプ（時刻ｔ１１）を付して送信部５２に出力する処理が行われる。尚、送信部５２に出力された情報は、アプリケーションマネージャ２４ｂの受信部６１を介して情報比較部６４に出力される。
【００５８】
他方、オペレーティングシステム２３ｂに分配された測定データは、オペレーティングシステム２３ｂ及びアプリケーションマネージャ２４ｂを順に介してアプリケーション２５ｂに入力される。このとき、オペレーティングシステム２３ｂとアプリケーション２５ｂとの間で授受された情報を情報記録部６３に記録するとともに、その情報にタイムスタンプ（時刻ｔ１２）を付して情報比較部６４に出力する処理が行われる。
【００５９】
受信部６１からの情報及び情報記録部６３からの情報が入力されると、情報比較部６４は、これらの情報を比較し、比較した情報の内容が同じであるか否か、及び比較した情報のタイミングずれが予め規定された許容範囲内であるか否かを確認する。具体的に、前者の確認では、オペレーティングシステム２３ａ，２３ｂからアプリケーション２５ａ，２５ｂに測定データが渡されるときに呼び出されるシステムコールや割り込みが同じであるか否か、或いはシステムコールや割り込みに付属するデータ（引数や戻り値等）が等しいか否か等が確認される。
【００６０】
尚、上記のシステムコールや割り込み、並びに付属するデータをそのまま比較する場合には、アプリケーションマネージャ２４ａの送信部５２からアプリケーションマネージャ２４ｂの受信部６１に送信される情報の情報量、及びアプリケーションマネージャ２４ｂの情報記録部６３から情報比較部６４に出力される情報の情報量が大きくなる可能性がある。このため、例えばＭＤ５等の一方向性ハッシュ関数を用いて情報の一部をハッシュ値に変換する等の処理を行って情報量を少なくしても良い。この場合、第２情報と比較する情報にも同様の処理を行う。
【００６１】
また、後者の確認では、比較対象の情報に付されたタイムスタンプを用いて、オペレーティングシステム２３ａ，２３ｂがアプリケーション２５ａ，２５ｂに測定データを渡す処理に要した時間の差が、予め規定された許容範囲内であるか否かを確認する。具体的には、オペレーティングシステム２３ａにおける処理時間（ｔ１１−ｔ１）と、オペレーティングシステム２３ｂにおける処理時間（ｔ１２−ｔ１）との差が、予め規定された許容範囲（例えば、制御周期の１％）内であるか否かを確認する。尚、情報比較部６４は、以上の確認の結果に応じて、異常が生じた旨を監視装置３０に通知する。
【００６２】
図６は、本発明の第１実施形態におけるデータ出力時の動作検証を説明するための図である。アプリケーション２５ａから制御データが出力されると、出力された制御データは、アプリケーションマネージャ２４ａに入力されて情報記録部５１でタイムスタンプ（時刻ｔ２１）が付された上で、オペレーティングシステム２３ａを介してハイパーバイザ２２の出力取得部４２に出力される。このとき、オペレーティングシステム２３ａとアプリケーション２５ａとの間で授受された情報を情報記録部５１に記録するとともに、その情報に上記のタイムスタンプ（時刻ｔ２１）を付して情報比較部６４に出力する処理が行われる。尚、送信部５２に出力された情報は、アプリケーションマネージャ２４ｂの受信部６１を介して情報比較部６４に出力される。
【００６３】
他方、アプリケーション２５ｂから制御データが出力されると、出力された制御データは、アプリケーションマネージャ２４ｂに入力されて情報記録部６３でタイムスタンプ（時刻ｔ２２）が付された上で、オペレーティングシステム２３ｂを介してハイパーバイザ２２の出力取得部４２に出力される。このとき、オペレーティングシステム２３ｂとアプリケーション２５ｂとの間で授受された情報を情報記録部６３に記録するとともに、その情報に上記のタイムスタンプ（時刻ｔ２２）を付して情報比較部６４に出力する処理が行われる。
【００６４】
受信部６１からの情報及び情報記録部６３からの情報が入力されると、情報比較部６４は、これらの情報を比較し、比較した情報の内容が同じであるか否か、及び比較した情報のタイミングずれが予め規定された許容範囲内であるか否かを確認する。具体的に、前者の確認では、図５を用いて説明した「データ入力時の動作検証」の場合と同様の確認が行われる。また、後者の確認では、受信部６１からの情報に付されたタイムスタンプ（時刻ｔ２１）を基準として、情報記録部６３からの情報に付されたタイムスタンプ（時刻ｔ２２）が予め規定された許容範囲内であるか否かを確認する。尚、情報比較部６４は、以上の確認の結果に応じて、異常が生じた旨を監視装置３０に通知する。
【００６５】
オペレーティングシステム２３ａ，２３ｂからの制御データが出力取得部４２に入力されると、出力取得部４２は、オペレーティングシステム２３ａから出力された制御データをバルブ機器１２に出力する。また、出力取得部４２は、オペレーティングシステム２３ａからの制御データにタイムスタンプ（時刻ｔ３１）を付すとともにオペレーティングシステム２３ｂからの制御データにタイムスタンプ（時刻ｔ３２）を付して出力比較部４２ａに渡す。出力比較部４２ａは、出力取得部４２から渡された制御データを比較し、情報比較部６４と同様に、比較した制御データの内容が同じであるか否か、及び比較した制御データのタイミングずれが予め規定された許容範囲内であるか否かを確認する。
【００６６】
ここで、前者の確認では、例えば、オペレーティングシステム２３ａ，２３ｂからの制御データが同じ値であるか否かを確認する。また、後者の確認では、制御データに付されたタイムスタンプを用いて、オペレーティングシステム２３ａ，２３ｂが制御データを処理するために要した時間の差が、予め規定された許容範囲内であるか否かを確認する。
【００６７】
具体的には、オペレーティングシステム２３ａにおける処理時間（ｔ３１−ｔ２１）と、オペレーティングシステム２３ｂにおける処理時間（ｔ３２−ｔ２２）との差が、予め規定された許容範囲内であるか否かを確認する。或いは、制御データが、出力取得部４２に入力されたときに付されるタイムスタンプ（時刻ｔ３１，ｔ３２）の差が、予め規定された許容範囲内であるか否かを確認する。尚、出力比較部４２ａは、以上の確認の結果に応じて、異常が生じた旨を監視装置３０に通知する。このように、データ出力時の動作検証では、アプリケーションマネージャ２４ｂの情報比較部６４での比較、及びハイパーバイザ２２の出力比較部４２ａでの比較が行われる。
【００６８】
以上説明した動作検証（データ入力時の動作検証及びデータ出力時の動作検証）では、確認の結果に応じて、異常が生じた旨を監視装置３０に通知している。このとき、監視装置３０に通知するだけでなく、動作の異常が発生したとして、情報比較部６４や出力比較部４２ａ等がオペレーティングシステム２３ｂやアプリケーション２５ｂを停止してもよい。
【００６９】
次に、動作検証が終了したか否かが監視装置３０で判断される（ステップＳ１６）。動作検証が終了していないと判断された場合（ステップＳ１６の判断結果が「ＮＯ」の場合）には、動作検証が継続される（ステップＳ１４，Ｓ１５）。これに対し、動作検証が終了したと判断された場合（ステップＳ１６の判断結果が「ＹＥＳ」の場合）には、動作検証が正常終了したか否かが監視装置３０で判断される（ステップＳ１７）。
【００７０】
動作検証が正常終了したと判断された場合（ステップＳ１７の判断結果が「ＹＥＳ」の場合）には、監視装置３０からコントローラ２０に対して動作検証正常終了指示が送信される。この動作検証正常終了指示が送信されてくると、コントローラ２０の出力比較部４２ａは、オペレーティングシステム２３ａからの制御データに代えて、オペレーティングシステム２３ｂからの制御データをバルブ機器１２に出力するようになる。また、コントローラ２０では、元のオペレーティングシステム２３ａ、アプリケーションマネージャ２４ａ、及びアプリケーション２５ａを停止させる処理が行われ、これによりオペレーティングシステムの切り替えが行われる（ステップＳ１８）。
【００７１】
これに対し、動作検証が異常終了したと判断された場合（ステップＳ１７の判断結果が「ＮＯ」の場合）には、監視装置３０からコントローラ２０に対して動作検証異常終了指示が送信される。この動作検証異常終了指示が送信されてくると、コントローラ２０では、新たなオペレーティングシステム２３ｂ、アプリケーションマネージャ２４ｂ、及びアプリケーション２５ｂが停止されていない場合には、これらを停止させる処理が行われる（ステップＳ１９）。これにより、オペレーティングシステムの更新を再試行できる状態になる。
【００７２】
以上の通り、本実施形態では、ハードウェア２１上でハードウェアの代わりとしてハイパーバイザ２２を動作させて、元のオペレーティングシステム２３ａと、新たなオペレーティングシステム２３ｂとの並列動作を可能としている。そして、アプリケーション２５ａの復元に必要となる情報と、オペレーティングシステム２３ａとアプリケーション２５ａとの間で授受される情報とを情報記録部５１に記録し、情報記録部５１に記録された情報を用いて、オペレーティング２３ａ上で動作するアプリケーション２５ａをオペレーティングシステム２３ｂ上に復元するようにしている。
【００７３】
これにより、プロセス制御システム１を停止させることなくオペレーティングシステム２３ａをオペレーティングシステム２３ｂに更新することが可能である。また、オペレーティングシステム２３ａ上でのアプリケーション２５ａと、オペレーティングシステム２３ｂ上でのアプリケーション２５ｂとが並列動作し、アプリケーション２５ｂの動作を検証してからオペレーティングシステムを切り替えるため、更新されたオペレーティングシステム２３ｂ上でアプリケーション２５ｂが継続動作することを保証できる。
【００７４】
加えて、並列動作を行うことにより、アプリケーション２５ａ、２５ｂの少なくともどちらか一方が継続動作するので、オペレーティングシステム更新中を含めて、アプリケーションが行うフィールド機器１０の制御が停止しないことを保証できる。更に、オペレーティングシステム更新中はオペレーティングシステム２３ｂやアプリケーション２５ｂを停止するだけで更新を行う前の構成に復帰するので、たとえ動作検証が異常と判断されても、オペレーティングシステムの更新を何度でもやり直すことができる。
【００７５】
尚、以上説明した実施形態では、オペレーティングシステム２３ａとアプリケーション２５ａとの間で授受された情報、即ち第２情報を情報記録部５１に記録し、オペレーティングシステム２３ｂとアプリケーション２５ｂとの間で授受された情報を情報記録部６３に記録し、最終的に第２情報及び一連の処理で付されたタイムスタンプが組み合わされた情報とオペレーティングシステム２３ｂとアプリケーション２５ｂとの間で授受された情報及び一連の処理で付されたタイムスタンプが組み合わされた情報を情報比較部６４で比較している。
【００７６】
しかしながら、第２情報だけでなく、アプリケーションの復元に必要となる第１情報も、データ入力やデータ出力に起因して変化するため、前記第２情報の代わりに前記第１情報を用いても、第２情報を用いた場合と同様の手順で、動作検証を行うことができる。
【００７７】
この場合、情報記録部５１では第２情報の代わりに、第１情報を記録し、情報記録部６３ではオペレーティングシステム２３ｂとアプリケーション２５ｂとの間で授受された情報の代わりに、オペレーティングシステム２３ｂ上で復元されたアプリケーション２５ｂの第１情報に相当する情報を記録する。
【００７８】
ここで、第１情報に相当する情報とは、アプリケーションの復元に必要となる情報と同様の情報であり、例えば、メモリ空間に存在するロードされたプログラム及びデータを指す。
【００７９】
さらに、情報比較部６４は、第１情報、第２情報の一方の比較だけでなく、第１情報と第２情報の両方を比較してもよい。
【００８０】
第１情報は、アプリケーションの内部状態を表すため、第１情報と第２情報の両方を比較することで、異常の詳細確認が可能になるという効果がある。例えば、第２情報の比較が異常と判定されたときに、合わせて第１情報の比較結果（比較結果の相違箇所と相違内容）を参照することで、その異常がオペレーティングシステムの更新によって生じるアプリケーションの想定内の動作であるか否かを確認できる。
【００８１】
また、第１情報は例えばメモリ空間に存在するロードされたプログラム及びデータであるため、情報量が大きくなる可能性がある。このため、例えばＭＤ５値の一方向性ハッシュ関数を用いて情報の一部をハッシュ値に変換する、前回出力した情報との差分を求めて差分のある箇所とその変化内容のみを出力する等の処理を行って情報量を少なくしてもよい。この場合、第１情報と比較する情報にも同様の処理を行う。
【００８２】
また、第１情報や第１情報に相当する情報は、第２情報のようにデータ入力やデータ出力に起因して変化するだけでなく、アプリケーションプログラム自身の処理によっても変化する場合がある。このため、情報比較部６４での比較をデータ入力やデータ出力のタイミングではない、任意のタイミングで行ってもよい。
【００８３】
また、以上説明した実施形態では、理解を容易にするために、元のオペレーティングシステム２３ａが新たなオペレーティングシステム２３ｂに更新される例について説明した。このため、元のオペレーティングシステム２３ａ上で動作するアプリケーションマネージャ２４ａは情報記録部５１及び送信部５２を備えるものであり、新たなオペレーティングシステム２３ｂ上で動作するアプリケーションマネージャ２４ｂは受信部６１〜情報比較部６４を備えるものである。
【００８４】
この新たなオペレーティングシステム２３ｂがより新たなオペレーティングシステムに更新されることも考えられる。このため、オペレーティングシステム上で動作するアプリケーションマネージャの構成を、図１中のアプリケーションマネージャ２４ａ，２４ｂの双方の構成を兼ね備えたものとし、動作モードの設定でアプリケーションマネージャ２４ａ，２４ｂの何れとして動作させるのかを切り替え可能としても良い。
【００８５】
そして、上記実施形態では、監視装置３０が、コントローラ２０の監視を行うとともに、コントローラ２０に対するオペレーティングシステム２３ａの更新指示を行うものとして説明した。しかしながら、監視装置３０を、上記実施形態の一連の流れで生じる指示や監視を行う機能（更新監視機能）とそれ以外の指示や監視を行う機能（制御監視機能等）に分離する構成も考えられる。このような構成においては、前記更新監視機能をエンジニアリングワークステーションのような制御システムの設定を行うコンピュータ、若しくは、システムの更新プログラムの保管や適用状況を管理するサーバ（実現手法の例：Windows（登録商標） Server Update Services）が動作するコンピュータ等に組み込んでも良い。
【００８６】
加えて、動作検証を正常終了させる際、ある期間に情報比較部６４において一切の異常が検出されないことを条件にするなど、オペレーティングシステムを切り替える判断を監視によって行う必要がない場合、監視装置３０に代わり、情報比較部６４や出力比較部４２ａが動作検証終了指示を行い、オペレーティングシステムを自動的に切り替えてもよい。この場合、監視装置３０等を通じ、オペレーティングシステムを切り替える条件を情報比較部６４や出力比較部４２ａに対して予め入力しておく。
【００８７】
また、オペレーティングシステム２３ａの更新を行った後にコントローラ２０を再起動させる場合には、オペレーティングシステム２３ａ及びアプリケーション２５ａを動作させるようにしても、オペレーティングシステム２３ｂ及びアプリケーション２５ｂを動作させるようにしても良い。但し、オペレーティングシステム２３ｂ及びアプリケーション２５ｂを動作させる場合には、アプリケーション２５ｂの継続動作を保証し得る状態になったときのプログラムイメージ（アプリケーション２５ａの起動によってロードされたプログラムイメージ）、ライブラリイメージ、及び上記のロード時に参照された起動時設定情報（データ）等を、コントローラ２０を再起動させる前に予めオペレーティングシステム２３ｂにコピーしておく必要がある。
【００８８】
ここで、上記の実行プログラムイメージ、ライブラリイメージ、及び起動時設定情報（データ）等をコピーする方法は、例えば以下の（ａ）〜（ｃ）に示す方法が挙げられる。
（ａ）実行プログラムイメージ及びライブラリイメージは新たなオペレーティングシステム２３ｂに予め埋め込み、起動時設定情報は送信部５２から受信部６１に送信する
（ｂ）実行プログラムイメージ、ライブラリイメージ、及び起動時設定情報の全てを、送信部５２から受信部６１に送信する
（ｃ）実行プログラムイメージ、ライブラリイメージ、及び起動時設定情報の全てを、予め新たなオペレーティングシステム２３ｂ上に手動でコピーする
【００８９】
〔第２実施形態〕
図７は、本発明の第２実施形態によるプロセス制御システムの要部構成を示すブロック図である。尚、図７においては、図１に示す構成に相当する構成には同一の符号を付してある。図７に示す通り、本実施形態のプロセス制御システム２は、コントローラ２０に代えて２つのコントローラ２０ａ，２０ｂ（第１，第２プロセス制御装置）を備えており、これらコントローラ２０ａ，２０ｂを制御ネットワークＮ２に接続するとともに、これらの間をハイパーバイザ間ネットワークＮ３で接続した構成である。
【００９０】
コントローラ２０ａは、ハードウェア２１ａ上にハイパーバイザ２２ａが実現されており、このハイパーバイザ２２ａ上にオペレーティングシステム２３ａ、アプリケーションマネージャ２４ａ、及びアプリケーション２５ａが実現されたものである。ハイパーバイザ２２ａは、図１に示すハイパーバイザ２２が備える入力分配部４１及び出力取得部４２に加えて通信部４３を備える。この通信部４３は、例えばハイパーバイザ間ネットワークＮ３を介して、コントローラ２０ｂで実現されるハイパーバイザ２２ｂとの間で通信を行う。
【００９１】
コントローラ２０ｂは、ハードウェア２１ｂ上にハイパーバイザ２２ｂが実現されており、このハイパーバイザ２２ｂ上にオペレーティングシステム２３ｂ、アプリケーションマネージャ２４ｂ、及びアプリケーション２５ｂが実現されたものである。ハイパーバイザ２２ｂは、図１に示すハイパーバイザ２２が備える出力比較部４２ａに加えて通信部４４を備える。この通信部４４は、例えばハイパーバイザ間ネットワークＮ３を介して、コントローラ２０ａで実現されるハイパーバイザ２２ａとの間で通信を行う。尚、出力比較部４２ａをコントローラ２０ｂのハイパーバイザ２２ｂに設けるのは、元のオペレーティングシステム２３ａが動作するコントローラ２０ａの動作に影響を与えないようにするためである。
【００９２】
ここで、コントローラ２０ａのハイパーバイザ２２ａに設けられた通信部４３と、コントローラ２０ｂのハイパーバイザ２２ｂに設けられた通信部４４とが互いに通信することにより、ハイパーバイザ２２ａ，２２ｂは論理的に一体として動作する。これにより、第１実施形態と同様に、入力分配部４１に入力された測定データをオペレーティングシステム２３ａ，２３ｂに分配することが可能であり、オペレーティングシステム２３ａから出力される制御データを出力取得部４２で取得し、出力比較部４２ａに出力することが可能である。
【００９３】
また、オペレーティングシステム２３ｂから出力される制御データは出力比較部４２ａに直接出力する。第１実施形態と同様、オペレーティングシステム２３ｂから得られる制御データはバルブ機器１２には出力せず、出力比較部４２ａでの比較にのみ用いる。このため、第２実施形態では、同一のコントローラ２０ｂ上に存在する出力比較部４２ａに直接出力すれば事足りる。
【００９４】
ハイパーバイザ間ネットワークＮ３は、フィールドネットワークＮ１及び制御ネットワークＮ２とは別に設けられたネットワークであり、コントローラ２０ａのハイパーバイザ２２ａに設けられた通信部４３と、コントローラ２０ｂのハイパーバイザ２２ｂに設けられた通信部４４との間の通信に用いられる。尚、ハイパーバイザ間ネットワークＮ３は、通信部４３，４４間の通信によってフィールドネットワークＮ１や制御ネットワークＮ２の通信速度低下等の悪影響が生ずるのを防止するために設けられている。このため、フィールドネットワークＮ１や制御ネットワークＮ２に対して、通信速度低下等の悪影響が生じなければ、ハイパーバイザ間ネットワークＮ３を省略することは可能である。
【００９５】
尚、図７に示す例では、入力分配部４１及び出力取得部４２がハイパーバイザ２２ａに設けられているが、入力分配部４１及び出力取得部４２をハイパーバイザ２２ｂに設けることも可能である。但し、例えばコントローラ２０ａが実際のプロセスの制御を行っているコントローラであり、コントローラ２０ｂが新たに用いられるコントローラのような場合には、これまでの稼働実績により安定動作を望めるため入力分配部４１及び出力取得部４２はハイパーバイザ２２ａに設けられているのが良い。
【００９６】
上記構成のプロセス制御システム２において、コントローラ２０ａを更新する場合には、基本的に図３に示すフローチャートに示される処理と同様の処理が行われる。つまり、まず、コントローラ２０ａにおいて、前述したアプリケーション２５ａの復元に必要となる情報、及びオペレーティングシステム２３ａとアプリケーション２５ａとの間で授受される情報が情報記録部５１に記録される（第１ステップ）。次に、この情報を用いてコントローラ２０ｂにアプリケーション２５ａがアプリケーション２５ｂとして復元される（ステップＳ１３）。その後、コントローラ２０ｂにおいて、データ入力時の動作検証（ステップＳ１４）及びデータ出力時の動作検証（ステップＳ１５）が行われる。
【００９７】
以上の通り、本実施形態においても、第１実施形態と同様に、アプリケーション２５ａの復元に必要となる情報と、オペレーティングシステム２３ａとアプリケーション２５ａとの間で授受される情報とを情報記録部５１に記録している。そして、情報記録部５１に記録された情報を用いて、オペレーティング２３ａ上で動作するアプリケーション２５ａをオペレーティングシステム２３ｂ上に復元するようにしている。
【００９８】
これにより、プロセス制御システム２を停止させることなくオペレーティングシステム２３ａをオペレーティングシステム２３ｂに更新することが可能である。また、オペレーティングシステム２３ａ上でのアプリケーション２５ａと、オペレーティングシステム２３ｂ上でのアプリケーション２５ｂとが並列動作し、アプリケーション２５ｂの動作を検証してからオペレーティングシステムを切り替えるため、更新されたオペレーティングシステム２３ｂ上でアプリケーション２５ｂが継続動作することを保証できる。
【００９９】
加えて、並列動作を行うことにより、アプリケーション２５ａ、２５ｂの少なくともどちらか一方が継続動作するので、オペレーティングシステム更新中を含めて、アプリケーションが行うフィールド機器１０の制御が停止しないことを保証できる。更に、オペレーティングシステム更新中はオペレーティングシステム２３ｂやアプリケーション２５ｂを停止するだけで更新を行う前の構成に復帰するので、たとえ動作検証が異常と判断されても、オペレーティングシステムの更新を何度でもやり直すことができる。
【０１００】
尚、バルブ機器１２への制御データの出力を、新たなコントローラ２０ｂからの出力に切り替え、その後、元のコントローラ２０ａを停止する（コントローラのリプレイスを行う）には、元のコントローラ２０ａ上の入力分配部４１及び出力取得部４２の代替機能が新たなコントローラ２０ｂ上に必要となる。
【０１０１】
このため、オペレーティングシステム上で動作する仮想化部の構成を図７中の仮想化部２２ａ、２２ｂの双方の構成を兼ね備えたものとして、動作モードの設定で仮想化部２２ａ，仮想化部２２ｂの何れとして動作させるのかを切り替え可能としておく。そして、第２実施形態における図３中のオペレーティングシステムの切り替えが行われるステップ（ステップＳ１８）にて、新たなコントローラ２０ｂの仮想化部を仮想化部２２ａの構成に切り替え、オペレーティングシステム２３ｂから出力される制御データを新たなコントローラ２０ｂ上の出力取得部に伝えるようにする。また、切り替えが行われると、オペレーティングシステム２３ｂへの制御データの入力は新たなコントローラ２０ｂ上の入力分配部から行われるようになる。以上より、切り替えが行われた新たなコントローラ２０ｂから、元のコントローラ２０ａに対して、やり取りを行う必要がなくなり、元のコントローラ２０ａを停止できるようになる。
【０１０２】
また、第２実施形態では、情報比較部６４や出力比較部４２ａを、新たなオペレーティングシステム２３ｂが動作するコントローラ２０ｂで動作させている。このため、コントローラ２０ａで起動中のアプリケーション２５ａ及びオペレーティングシステム２３ａの動作に影響を与えることなく、オペレーティングシステムの更新、及び更新後の動作検証を行うことができる。
【０１０３】
また、前述した第１，第２実施形態では、情報比較部６４及び出力比較部４２ａで比較を行っているため、ハイパーバイザ、オペレーティングシステム、アプリケーション、オペレーティングシステム、及びハイパーバイザの一連の動作に着目して動作検証を行うことができる。これにより、動作に問題のある箇所をより的確に知ることができる。また、オペレーティングシステム又はアプリケーションの動作に着目してデバッガ等で動作ステップを１つずつ追う場合に比べて確認すべき情報が少なくて済むため、動作に問題のある箇所を容易に判断することができる。
【０１０４】
以上、本発明の実施形態によるプロセス制御装置及びシステム並びにその更新方法について説明したが、本発明は上述した実施形態に制限されることなく、本発明の範囲内で自由に変更が可能である。例えば、上記実施形態では、複数のオペレーティングシステムやアプリケーションを動作させ得る仮想環境をハイパーバイザ２２，２２ａ，２２ｂによってコントローラ２０，２０ａ，２０ｂに実現する例について説明したが、このような仮想環境を実現する手段はハイパーバイザ２２に限られるものではない。例えば、上記の仮想環境をハードウェアによって実現しても良い。
【０１０５】
また、上述した実施形態では、フィールド機器１０がフィールドネットワークＮ１を介したディジタル通信が可能なものを例に挙げて説明したが、アナログ信号の入出力を行うフィールド機器を用いることもできる。このようなフィールド機器を用いる場合には、フィールド機器で入出力される信号（アナログ信号）とフィールドネットワークＮ１を介して通信される信号（ディジタル信号）との変換を行うＩＯノードをフィールドネットワークＮ１に接続し、このＩＯノードとフィールド機器とをアナログ伝送路（例えば、「４〜２０ｍＡ」信号の伝送に使用される伝送線）で接続すれば良い。
【０１０６】
また、第１、第２実施形態において、データ入力、データ出力は、フィールドネットワークＮ１、制御ネットワークＮ２を経由し、フィールド機器１０や監視装置３０に対して行われるとして説明したが、例えばハードウェアの定周期タイマー割り込み機能のように、ハードウェア２１、２１ａ、２１ｂそのものがデータ入力、データ出力を行うことも考えられる。この場合、データ入力、データ出力はフィールド機器１０や監視装置３０に対するものではなく、ハードウェア２１、２１ａ、２１ｂの内部で処理される。
【０１０７】
また、前述した第２実施形態では、メンテナンス等によるプロセス制御システムの停止時に、コントローラ２０ａ，２０ｂを停止してプロセス制御システムを停止した後、コントローラ２０ａのオペレーティングシステム２３ａのアップグレードを行えば、再びコントローラ２０ａで制御を行うことができる。或いは、アプリケーション２５ｂの継続動作が成功したら、第１実施形態と同様に、アプリケーション２５ｂがアプリケーション２５ａと同様に起動するためのデータをオペレーティングシステム２３ｂにコピーすれば、再起動時もコントローラ２０ｂで継続して動作させることができる。
【符号の説明】
【０１０８】
１，２            プロセス制御システム
１０              フィールド機器
２０              コントローラ
２０ａ，２０ｂ    コントローラ
２１              ハードウェア
２１ａ，２１ｂ    ハードウェア
２２              ハイパーバイザ
２２ａ，２２ｂ    ハイパーバイザ
２３ａ，２３ｂ    オペレーティングシステム
２４ａ，２４ｂ    アプリケーションマネージャ
２５ａ            アプリケーション
４１              分配部
４２              出力取得部
４２ａ            出力比較部
５１              情報記録部
６２              復元部
６４              情報比較部
【図１】
2015005258.tif 000003
【図２】
2015005258.tif 000004
【図３】
2015005258.tif 000005
【図４】
2015005258.tif 000006
【図５】
2015005258.tif 000007
【図６】
2015005258.tif 000008
【図７】
2015005258.tif 000009