(57)【要約】【課題】オペレーティングシステムの脆弱性を修正する修正パッチを導入することなく、長期に亘って強固なセキュリティを維持することが可能なプロセス制御装置等を提供する。【解決手段】プロセス制御装置としてのコントローラ２０ａは、ハイパーバイザ２２と、ハイパーバイザ２２上で動作してフィールド機器１０との通信により、工業プロセスを制御する制御部（オペレーティングシステム２３ａ，２３ｂ、アプリケーション２４ａ，２４ｂ）と、制御部の仕様から導かれる動作仕様を規定した情報である動作モデルを定義する動作モデル定義部５１と、ハードウェア２１と制御部との間で授受される情報を収集するトレース情報収集部５２と、動作モデル定義部５１で定義された動作モデルとトレース情報収集部５２で収集された情報とを比較して、コントローラ２０ａの動作状態が健全であるか否かを判定する健全性判定部５３とを備える。【選択図】図１
2015026129.tif 000002
【特許請求の範囲】
【請求項１】
プラントで実現される工業プロセスの制御を行うプロセス制御装置において、
ハードウェア上でハードウェアの代わりとして動作する仮想化部と、
前記仮想化部上で動作して前記工業プロセスの制御に必要な測定及び操作の少なくとも一方を行うフィールド機器との通信により、前記工業プロセスを制御する制御部と、
健全状態である場合の動作状況を示す健全動作情報を格納する格納部と、
前記ハードウェアと前記制御部との間で授受される情報を収集する第１収集部と、
前記格納部に格納された前記健全動作情報と前記第１収集部で収集された情報とを比較して、動作状態が健全であるか否かを判定する判定部と
を備えることを特徴とするプロセス制御装置。
【請求項２】
前記格納部は、前記健全動作情報として、前記制御部の仕様から導かれる動作仕様を規定した情報である動作モデル、或いは健全状態である場合に前記制御部と前記ハードウェアとの間で授受されたデータである第１データを格納することを特徴とする請求項１記載のプロセス制御装置。
【請求項３】
前記判定部は、動作状態が健全ではないと判定した場合に、判定結果を外部に通知することを特徴とする請求項２記載のプロセス制御装置。
【請求項４】
前記制御部は、前記仮想化部上で動作するオペレーティングシステムと、
前記オペレーティングシステム上で動作して前記フィールド機器との通信により、前記工業プロセスを制御するアプリケーションと
からなることを特徴とする請求項２又は請求項３記載のプロセス制御装置。
【請求項５】
前記オペレーティングシステムと前記アプリケーションとの間で授受される情報を収集する第２収集部を備えており、
前記格納部は、前記第１データに加え、前記健全動作情報として、健全状態である場合に前記オペレーティングシステムと前記アプリケーションとの間で授受されたデータである第２データを格納し、
前記判定部は、前記第１，第２データと前記第１，第２収集部で収集された情報とを比較して、動作状態が健全であるか否かを判定する
ことを特徴とする請求項４記載のプロセス制御装置。
【請求項６】
少なくとも前記第１収集部及び前記判定部は、前記仮想化部に設けられることを特徴とする請求項１から請求項５の何れか一項に記載のプロセス制御装置。
【請求項７】
前記ハードウェアは、複数の処理装置を備えており、
前記仮想化部及び前記制御部は、前記仮想化部を実現するプログラムと前記制御部を実現するプログラムとが互いに異なる処理装置によって実行されることによって実現されることを特徴とする請求項１から請求項６の何れか一項に記載のプロセス制御装置。
【請求項８】
プラントで実現される工業プロセスの制御を行うプロセス制御システムにおいて、
前記プラントに設けられるネットワークと、
前記ネットワークに接続された請求項１から請求項７の何れか一項に記載のプロセス制御装置と、
前記ネットワークに接続されて前記プロセス制御装置によって制御されるフィールド機器と
を備えることを特徴とするプロセス制御システム。
【請求項９】
前記ネットワークに接続されて、前記プロセス制御装置から前記ネットワークを介して通知される動作状態が健全であるか否かを示す判定結果を受信する監視装置を備えることを特徴とする請求項８記載のプロセス制御システム。
【請求項１０】
プラントで実現される工業プロセスの制御を行うプロセス制御装置の健全性を判定する健全性判定方法であって、
ハードウェア上でハードウェアの代わりとして動作する仮想化部上で動作して前記工業プロセスの制御に必要な測定及び操作の少なくとも一方を行うフィールド機器との通信により、前記工業プロセスを制御する制御部を備える前記プロセス制御装置が健全状態である場合の動作状況を示す健全動作情報を格納する第１ステップと、
前記ハードウェアと前記制御部との間で授受される情報を収集する第２ステップと、
前記第１ステップで格納された前記健全動作情報と前記第２ステップで収集された情報とを比較して、動作状態が健全であるか否かを判定する第３ステップと
を有することを特徴とするプロセス制御装置の健全性判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセス制御装置及びシステム並びにその健全性判定方法に関する。
【背景技術】
【０００２】
従来から、プラントや工場等（以下、これらを総称する場合には、単に「プラント」という）においては、工業プロセスにおける各種の状態量（例えば、圧力、温度、流量等）を制御するプロセス制御システムが構築されており、高度な自動操業が実現されている。具体的には、例えば以下の特許文献１〜３に示す通り、プロセス制御システムの核をなすコントローラが、複数のセンサ（流量計や温度計等）の検出結果を取得し、この検出結果に応じてアクチュエータ（バルブ等）の操作量を求め、この操作量に応じてアクチュエータを操作することによって、上述した各種の状態量が制御されている。
【０００３】
従来のプラント制御システムは、独自仕様の専用の機器を用いて構築されていたが、近年のプラント制御システムは、オープン化されつつあり、仕様が公開された汎用的な機器（コンピュータやワークステーション等）を用いて構築されるものが多くなっている。このような汎用的な機器が用いられるプラント制御システムにおいては、一般の情報システムと同様に、例えばオペレーティングシステム（ＯＳ）の機能拡張や、オペレーティングシステムの不具合・脆弱性の修正等のソフトウェアの改善が必要になる。
【０００４】
また、従来のプラント制御システムは、単独で構築されるものが多かったが、近年のプラント制御システムは、プラントにおける生産性の向上等のために、生産管理等を行う他の情報システムに接続される機会が増えている。このように、プラント制御システムが他の情報システムに接続される環境においては、外部からのサイバー攻撃を受けるリスクが考えられるため、上述したソフトウェアの改善（オペレーティングシステムの機能拡張や、オペレーティングシステムの不具合・脆弱性の修正等）を継続して行うことが重要になる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４３９９７７３号公報
【特許文献２】国際公開第２００５／０５０３３６号
【特許文献３】米国特許出願公開第２００７／００７８９８０号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、プラントに構築されるプラント制御システムは、一般的な情報システムと比べると以下の（１），（２）に示す特殊性を有する。
【０００７】
（１）強固なセキュリティの要求
プラントにおいては、引火性のある化学材料等が用いられることが多いため、サイバー攻撃等によって予期しない操作が行われると、最悪の場合には爆発が生ずる可能性も考えられる。このため、プラントに構築されるプラント制御システムには、一般的な情報システムよりも強固なセキュリティが要求される。
【０００８】
（２）長期に亘るセキュリティ対策の維持
プラントの寿命は約３０年であり、一般的な情報システムの寿命の数倍である。このようなプラントに設計されるプラント制御システムは、プラントの寿命と同程度の長期に亘って、セキュリティ対策を維持する必要がある。例えば、プラントの寿命を迎えるまで、使用しているオペレーティングシステムの脆弱性を修正するための修正パッチを入手し続ける必要がある。
【０００９】
しかしながら、上述した長期に亘るセキュリティ対策の維持は、必ずしも実現できる訳ではない。例えば、オペレーティングシステムがサポートされる期間が終了してしまった場合（ＥＯＳ（End Of Service）を迎えた場合）には、上述の修正パッチを入手することができなくなる。すると、オペレーティングシステムの脆弱性を修正することができず、セキュリティの面での問題が生じてしまう。
【００１０】
ここで、使用しているオペレーティングシステムのサポートが終了した場合には、新たなオペレーティングシステムを導入すれば良いとも考えられる。しかしながら、新たなオペレーティングシステムを導入するためには、従来のオペレーティングシステムが使用されていた場合と同様の動作が行われるか否かを検証する必要があり、検証に時間を要してしまうという問題がある。また、新たに導入されたオペレーティングシステムの操作性が変化した場合には、ユーザ（運転員）の再教育が必要になり、コスト及び時間を要するという問題がある。
【００１１】
本発明は上記事情に鑑みてなされたものであり、オペレーティングシステムの脆弱性を修正する修正パッチを導入することなく、長期に亘って強固なセキュリティを維持することが可能なプロセス制御装置及びシステム並びにその健全性判定方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明のプロセス制御装置は、プラントで実現される工業プロセスの制御を行うプロセス制御装置（２０ａ、６０ａ、７０ａ、８０ａ）において、ハードウェア（２１）上でハードウェアの代わりとして動作する仮想化部（２２）と、前記仮想化部上で動作して前記工業プロセスの制御に必要な測定及び操作の少なくとも一方を行うフィールド機器（１０）との通信により、前記工業プロセスを制御する制御部（２３ａ，２３ｂ、２４ａ，２４ｂ）と、健全状態である場合の動作状況を示す健全動作情報を格納する格納部（５１、６１）と、前記ハードウェアと前記制御部との間で授受される情報を収集する第１収集部（５２）と、前記格納部に格納された前記健全動作情報と前記第１収集部で収集された情報とを比較して、動作状態が健全であるか否かを判定する判定部（５３）とを備えることを特徴としている。
本発明によると、ハードウェアと制御部との間で授受される情報が第１収集部で収集され、格納部に格納された健全動作情報と第１収集部で収集された情報とが比較されて、動作状態が健全であるか否かが判定部によって判定される。
また、本発明のプロセス制御装置は、前記格納部が、前記健全動作情報として、前記制御部の仕様から導かれる動作仕様を規定した情報である動作モデル、或いは健全状態である場合に前記制御部と前記ハードウェアとの間で授受されたデータである第１データを格納することを特徴としている。
また、本発明のプロセス制御装置は、前記判定部が、動作状態が健全ではないと判定した場合に、判定結果を外部に通知することを特徴としている。
また、本発明のプロセス制御装置は、前記制御部が、前記仮想化部上で動作するオペレーティングシステム（２３ａ、２３ｂ）と、前記オペレーティングシステム上で動作して前記フィールド機器との通信により、前記工業プロセスを制御するアプリケーション（２４ａ、２４ｂ）とからなることを特徴としている。
また、本発明のプロセス制御装置は、前記オペレーティングシステムと前記アプリケーションとの間で授受される情報を収集する第２収集部（Ｃ２１、Ｃ２２）を備えており、前記格納部は、前記第１データに加え、前記健全動作情報として、健全状態である場合に前記オペレーティングシステムと前記アプリケーションとの間で授受されたデータである第２データを格納し、前記判定部は、前記第１，第２データと前記第１，第２収集部で収集された情報とを比較して、動作状態が健全であるか否かを判定することを特徴としている。
また、本発明のプロセス制御装置は、少なくとも前記第１収集部及び前記判定部が、前記仮想化部に設けられることを特徴としている。
また、本発明のプロセス制御装置は、前記ハードウェアが、複数の処理装置（８１〜８３）を備えており、前記仮想化部及び前記制御部が、前記仮想化部を実現するプログラムと前記制御部を実現するプログラムとが互いに異なる処理装置によって実行されることによって実現されることを特徴としている。
本発明のプロセス制御システムは、プラントで実現される工業プロセスの制御を行うプロセス制御システム（１、２）において、前記プラントに設けられるネットワーク（Ｎ１、Ｎ２）と、前記ネットワークに接続された上記の何れかのプロセス制御装置（２０ａ、６０ａ、７０ａ、８０ａ）と、前記ネットワークに接続されて前記プロセス制御装置によって制御されるフィールド機器（１０）とを備えることを特徴としている。
また、本発明のプロセス制御システムは、前記ネットワークに接続されて、前記プロセス制御装置から前記ネットワークを介して通知される動作状態が健全であるか否かを示す判定結果を受信する監視装置（３０）を備えることを特徴としている。
本発明の健全性判定方法は、プラントで実現される工業プロセスの制御を行うプロセス制御装置（２０ａ、６０ａ、７０ａ、８０ａ）の健全性を判定する健全性判定方法であって、ハードウェア（２１）上でハードウェアの代わりとして動作する仮想化部（２２）上で動作して前記工業プロセスの制御に必要な測定及び操作の少なくとも一方を行うフィールド機器（１０）との通信により、前記工業プロセスを制御する制御部（２３ａ，２３ｂ、２４ａ，２４ｂ）を備える前記プロセス制御装置が健全状態である場合の動作状況を示す健全動作情報を格納する第１ステップ（Ｓ１１、Ｓ２１）と、前記ハードウェアと前記制御部との間で授受される情報を収集する第２ステップ（Ｓ１２、Ｓ２２）と、前記第１ステップで格納された前記健全動作情報と前記第２ステップで収集された情報とを比較して、動作状態が健全であるか否かを判定する第３ステップ（Ｓ１３、Ｓ２３）とを有することを特徴としている。
【発明の効果】
【００１３】
本発明によれば、ハードウェアと制御部との間で授受される情報を第１収集部で収集し、格納部に格納された健全動作情報と第１収集部で収集した情報とを比較して、動作状態が健全であるか否かを判定部で判定しているため、オペレーティングシステムの脆弱性を修正する修正パッチを導入することなく、長期に亘って強固なセキュリティを維持することが可能であるという効果がある。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１実施形態によるプロセス制御システムの要部構成を示すブロック図である。
【図２】本発明の第１実施形態における動作モデルの一例を示す図である。
【図３】本発明の第１実施形態で行われる定周期処理の一例を示す図である。
【図４】本発明の第１実施形態によるプロセス制御システムの動作の概要を説明するためのフローチャートである。
【図５】本発明の第１実施形態においてトレース情報収集部で収集される情報の一例を示す図である。
【図６】本発明の第２実施形態によるプロセス制御システムの要部構成を示すブロック図である。
【図７】本発明の第２実施形態における健全状態時データの一例を示す図である。
【図８】本発明の第２実施形態によるプロセス制御システムの動作の概要を説明するためのフローチャートである。
【図９】本発明の第２実施形態においてトレース情報収集部で収集される情報の一例を示す図である。
【図１０】本発明の第３実施形態によるプロセス制御システムに設けられるコントローラの要部構成を示すブロック図である。
【図１１】本発明の第３実施形態で行われる非定周期処理の一例を示す図である。
【図１２】本発明の第３実施形態においてトレース情報収集部で収集される情報の一例を示す図である。
【図１３】本発明の第４実施形態によるプロセス制御システムに設けられるコントローラの概略構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施形態によるプロセス制御装置及びシステム並びにその健全性判定方法について詳細に説明する。
【００１６】
〔第１実施形態〕
図１は、本発明の第１実施形態によるプロセス制御システムの要部構成を示すブロック図である。図１に示す通り、本実施形態のプロセス制御システム１は、複数のフィールド機器１０、コントローラ２０ａ，２０ｂ（プロセス制御装置）、及び監視装置３０を備えており、監視装置３０の監視の下でコントローラ２０ａ，２０ｂがフィールド機器１０を制御することによって、プラント（図示省略）で実現される工業プロセスの制御を行う。また、本実施形態のプロセス制御システム１では、コントローラ２０ａ，２０ｂの健全性（不正アクセスやウィルス等のサイバー攻撃によってコントローラ２０ａ，２０ｂの動作に異常が生じたか否か）を判定することが可能である。
【００１７】
ここで、フィールド機器１０及びコントローラ２０ａ，２０ｂはフィールドネットワークＮ１に接続され、コントローラ２０ａ，２０ｂ及び監視装置３０は制御ネットワークＮ２に接続される。尚、図１では図示の簡略化のために、コントローラ２０ｂと制御ネットワークＮ２との接続の図示を省略している。フィールドネットワークＮ１は、例えばプラントの現場に敷設された有線のネットワークである。他方、制御ネットワークＮ２は、例えばプラントの現場と監視室との間を接続する有線のネットワークである。尚、これらフィールドネットワークＮ１及び制御ネットワークＮ２は、無線のネットワークであっても良い。
【００１８】
フィールド機器１０は、例えば流量計や温度センサ等のセンサ機器、流量制御弁や開閉弁等のバルブ機器、ファンやモータ等のアクチュエータ機器、その他のプラントの現場に設置される機器である。尚、図１においては、理解を容易にするために、プラントに設置されたフィールド機器１０のうちの流体の流量を測定するセンサ機器１１と流体の流量を制御（操作）するバルブ機器１２とを図示している。
【００１９】
フィールド機器１０は、コントローラ２０ａ，２０ｂからフィールドネットワークＮ１を介して送信されてくる制御データに応じた動作を行う。例えば、コントローラ２０ａからセンサ機器１１に測定データ（流体の流量の測定結果を示すデータ）の送信要求が送信されてきた場合には、センサ機器１１は、フィールドネットワークＮ１を介してコントローラ２０ａに向けて測定データを送信する。また、コントローラ２０ａからバルブ機器１２に対して制御データ（開度を制御するデータ）が送信されてきた場合には、バルブ機器１２は、流体が通過する弁の開度を制御データで指示される開度にする。
【００２０】
コントローラ２０ａ，２０ｂは、監視装置３０の監視の下で定周期処理を行う。ここで、定周期処理とは、コントローラ２０ａ，２０ｂが一定の周期で行う処理をいう。例えば、フィールド機器１０（例えば、センサ機器１１）からの測定データを一定の周期で収集する処理、フィールド機器１０（例えば、バルブ機器１２）を制御する制御データを一定周期で演算する処理、或いはフィールド機器１０（例えば、バルブ機器１２）に制御データを一定周期で送信する処理等の処理が挙げられる。これらコントローラ２０ａ，２０ｂの機能は、ソフトウェアがコンピュータに読み込まれて、ソフトウェアとハードウェア資源とが協働することによって実現される。以下では、コントローラ２０ａで実現される機能を例に挙げて説明する。
【００２１】
コントローラ２０ａの機能は、ＭＰＵ（Micro-Processing Unit：マイクロプロセッサ）やメモリ等からなるハードウェア２１によって、インストールされたプログラムが実行されることによって実現される。尚、図１中の「ＲＤ１」〜「ＲＤ３」は、ＮＩＣ（Network Interface Card）やＩ／Ｏ（Input／Output）モジュール等のデバイス（実デバイス）を示している。ここで、コントローラ２０ａには、ハイパーバイザ２２（仮想化部）を実現するプログラム、オペレーティングシステム（ＯＳ）２３ａ，２３ｂ（制御部）を実現するプログラム、及びアプリケーション２４ａ，２４ｂ（制御部）を実現するプログラムがインストールされている。
【００２２】
上記のハイパーバイザ２２は、ハードウェア２１上でハードウェアの代わりとして仮想的に動作し、オペレーティングシステム２３ａ及びアプリケーション２４ａと、オペレーティングシステム２３ｂ及びアプリケーション２４ｂとをそれぞれ独立して動作させることを可能にするものである。つまり、ハイパーバイザ２２を設けることで、オペレーティングシステム２３ａ，２３ｂ及びアプリケーション２４ａ，２４ｂを以下の通り動作させることができる。
・オペレーティングシステム２３ａ及びアプリケーション２４ａのみの動作
・オペレーティングシステム２３ｂ及びアプリケーション２４ｂのみの動作
・オペレーティングシステム２３ａ及びアプリケーション２４ａと、オペレーティングシステム２３ｂ及びアプリケーション２４ｂとの並列動作
【００２３】
図１に示す通り、ハイパーバイザ２２は、デバイスドライバ４１、実デバイストレース情報収集部Ｃ１０、及び仮想マシーン（ＶＭ）４２ａ，４２ｂを備える。デバイスドライバ４１は、ハイパーバイザ２２の制御の下で、ハードウェア２１のデバイス「ＲＤ１」〜「ＲＤ３」を駆動する。実デバイストレース情報収集部Ｃ１０は、ハードウェア２１（デバイス「ＲＤ１」〜「ＲＤ３」）とハイパーバイザ２２との間で授受される情報をトレースして収集する。
【００２４】
仮想マシーン４２ａ，４２ｂは、ハイパーバイザ２２の制御の下でオペレーティングシステム２３ａ，２３ｂをそれぞれ動作させる。ここで、仮想マシーン４２ａは、ハードウェア２１のデバイス「ＲＤ１」〜「ＲＤ３」に対応する仮想デバイス「ＶＤ１１」〜「ＶＤ１３」と仮想デバイストレース情報収集部Ｃ１１とを備えており、仮想マシーン４２ｂは、ハードウェア２１のデバイス「ＲＤ１」〜「ＲＤ３」に対応する仮想デバイス「ＶＤ２１」〜「ＶＤ２３」と仮想デバイストレース情報収集部Ｃ１２とを備えている。上記の仮想デバイストレース情報収集部Ｃ１１は、オペレーティングシステム２３ａと仮想マシーン４２ａとの間で授受される情報をトレースして収集し、上記の仮想デバイストレース情報収集部Ｃ１２は、オペレーティングシステム２３ｂと仮想マシーン４２ｂとの間で授受される情報をトレースして収集する。
【００２５】
また、ハイパーバイザ２２は、動作モデル定義部５１（格納部）、トレース情報収集部５２（第１収集部）、及び健全性判定部５３（判定部）を備える。動作モデル定義部５１は、コントローラ２０ａが健全状態である場合（例えば、コントローラ２０ａに対するサイバー攻撃が行われておらず、コントローラ２０ａが正常に動作している場合）に、オペレーティングシステム２３ａ，２３ｂやアプリケーション２４ａ，２４ｂの仕様から導かれるコントローラ２０ａの動作仕様である動作モデル（健全動作情報）を定義する。つまり、この動作モデルで規定されている動作以外の動作は、ウィルス等に起因する不正な動作であるということができる。この動作モデルは、例えばプロセス制御装置２０ａの提供者（システムベンダ）により作成されて提供される。
【００２６】
具体的に、動作モデル定義部５１で定義される動作モデルは、以下に示す通り、定周期処理についての「処理の期間に関する仕様」と「処理の特徴に関する仕様」とに大別される。また、後者の「処理の特徴に関する仕様」は、「制御処理仕様」と「通信処理仕様」とに区分される。
【００２７】
・「処理の期間に関する仕様」…定周期処理が行われる周期と、その周期内で行われる個々の処理時間（最大時間或いは最小時間）とが規定されたものである。例えば、定周期処理の周期として１［ｓｅｃ］が規定され、この周期内で行われる入力処理、演算処理、出力処理、及び通信処理の処理時間として１００［ｍｓｅｃ］、５００［ｍｓｅｃ］、５０［ｍｓｅｃ］、及び１００［ｍｓｅｃ］がそれぞれ規定される。尚、「処理の期間に関する仕様」には許容できる誤差の範囲（例：±１０％、１．９秒〜２．１秒、等）を合わせて規定してもよい。
【００２８】
・「処理の特徴に関する仕様」…定周期処理で行われる処理の特徴が規定されたものであって、制御処理内容を規定した「制御処理仕様」と通信処理内容を規定した「通信処理仕様」とからなる。上記「制御処理仕様」は、コントローラ２０ａで行われる制御処理の内容が規定されたものである。例えば、“センサ機器１１からの測定データが入力された場合に、一定時間経過後に制御データがバルブ機器１２に出力される”といった内容が規定される。より具体的には、データの入出力方向を示す情報、データの送信元や送信先を示す情報、及びデータの入出力時に経由するデバイス（図１中のデバイス「ＲＤ１」〜「ＲＤ３」や、仮想デバイス「ＶＤ１１」〜「ＶＤ１３」，「ＶＤ２１」〜「ＶＤ２３」）を示す情報が規定される。上記の「通信処理仕様」は、コントローラ２０ａに入出力されるデータのデータ構造（フォーマット）、通信タイミング、データ量等が規定されたものである。
【００２９】
図２は、本発明の第１実施形態における動作モデルの一例を示す図である。尚、図２に示す動作モデルは、図３に示す定周期処理が行われる場合のコントローラ２０ａの動作モデルである。図３は、本発明の第１実施形態で行われる定周期処理の一例を示す図である。図３に示す通り、本実施形態で行われる定周期処理は、２秒間隔でコントローラ２０ｂから送信されてくるデータをコントローラ２０ａが受信し、バルブ機器１２及び監視装置３０に対してコントローラ２０ａが４秒間隔でデータをそれぞれ送信するというものである。尚、コントローラ２０ａから監視装置３０へのデータの送信は、コントローラ２０ａからフィールド機器１０へのデータの送信が行われてから０．５秒後に行われる。
【００３０】
図２に例示する動作モデルは、「入出力方向」、「相手」、「経由デバイス」、及び「周期」からなる。上記「入出力方向」は、データの入出力方向を示す情報であり、上記「相手」は、データの送受信相手を示す情報であり、上記「経由デバイス」はデータ入出力時に経由するデバイスを示す情報である。また、上記「周期」は、定周期処理の周期を示す情報である。
【００３１】
例えば、図２の上段の動作モデルＭ１は、２秒間隔でコントローラ２０ｂから送信されてくるデータをコントローラ２０ａのデバイスＲＤ１で受信（入力）して保持する動作を規定するものである。ここで、保持とは、アプリケーションの定周期処理が処理中に参照できるように、デバイスＲＤ１で受信されたデータをコントローラ２０ａの内部に格納することを言う。また、図２の中段の動作モデルＭ２は、コントローラ２０ａの仮想デバイスＶＤ１１及びデバイスＲＤ３を順に経由したデータを監視装置３０に対して４秒間隔で送信（出力）する動作を規定するものであり、図２の下段の動作モデルＭ３は、コントローラ２０ａの仮想デバイスＶＤ１３及びデバイスＲＤ２を順に経由したデータをバルブ機器１２に対して４秒間隔で送信（出力）する動作を規定するものである。
【００３２】
トレース情報収集部５２は、ハイパーバイザ２２に直接設けられた実デバイストレース情報収集部Ｃ１０と、ハイパーバイザ２２上の仮想マシーン４２ａ，４２ｂに設けられた仮想デバイストレース情報収集部Ｃ１１，Ｃ１２とからなり、ハードウェア２１とオペレーティングシステム２３ａ，２３ｂとの間で授受される情報をトレースして収集する。例えば、トレース情報収集部５２は、アクセスするデバイスの種類、アクセスの種類、アクセス時の入出力データ、アクセス時のタイムスタンプ、及びアクセスの処理結果等を収集する。尚、本実施形態では、理解を容易にするため、二つの仮想マシーンを設ける例を示しているが、ハイパーバイザ２２上にさらに多くの仮想マシーンを設けて複数のオペレーティングシステム及びアプリケーションを動作させることもできる。その場合、各仮想マシーンに対応する仮想デバイストレース情報収集部が各仮想マシーン上に設けられる。
【００３３】
健全性判定部５３は、動作モデル定義部５１で定義された動作モデルと、トレース情報収集部５２で収集された情報とを比較し、コントローラ２０ａの健全性を判定する。具体的に、トレース情報収集部５２で収集された情報が、動作モデル定義部５１で定義された動作モデルに適合する場合には、コントローラ２０ａが健全状態であると判定する。これに対し、トレース情報収集部５２で収集された情報が、動作モデル定義部５１で定義された動作モデルに適合しない場合には、コントローラ２０ａが不健全状態であると判定する。
【００３４】
健全性判定部５３は、コントローラ２０ａが不健全状態であると判定した場合には、その旨を監視装置３０に通知する。ここで、コントローラ２０ａが不健全状態であると健全判定部５３が判定した場合には、ハイパーバイザ２２は、不健全状態であると判定される元となったデータに対する応答がなされないように対処する。例えば、コントローラ２０ａのデバイスＲＤ１で受信されるべきコントローラ２０ｂからのデータがデバイスＲＤ２で受信された場合には、そのデータを破棄してオペレーティングシステム２３ａ，２３ｂに渡さないようにする。
【００３５】
オペレーティングシステム２３ａ，２３ｂは、ハイパーバイザ２２の仮想マシーン４２ａ，４２ｂ上でそれぞれ動作し、例えばアプリケーション２４ａ，２４ｂを動作させるために必要となるプロセス管理やメモリ管理等の各種管理をそれぞれ行う。オペレーティングシステム２３ａには、仮想マシーン４２ａに設けられる仮想デバイス「ＶＤ１１」〜「ＶＤ１３」を駆動するデバイスドライバＤ１が設けられており、オペレーティングシステム２３ｂには、仮想マシーン４２ｂに設けられる仮想デバイス「ＶＤ２１」〜「ＶＤ２３」を駆動するデバイスドライバＤ２が設けられている。
【００３６】
アプリケーション２４ａ，２４ｂは、オペレーティングシステム２３ａ，２３ｂ上で動作し、プロセスの制御を行う上で必要なフィールド機器１０の制御（例えば、センサ機器１１からの測定データ等の収集やバルブ機器１２に対する制御データの送信等）をそれぞれ行う。尚、本実施形態では、説明を簡単にするために、主としてアプリケーション２４ａがフィールド機器１０の制御を行うものとして説明する。
【００３７】
監視装置３０は、例えばコンピュータによって実現され、運転員によって操作されてプロセスの監視のために用いられる。具体的に、監視装置３０は、コントローラ２０ａで動作するオペレーティングシステム２３ａ，２３ｂやアプリケーション２４ａ，２４ｂの動作状態のモニタや管理を行い、そのモニタ等の結果に応じて（或いは、運転員の操作指示に応じて）コントローラ２０ａを制御する。また、監視装置３０は、コントローラ２０ａから制御ネットワークＮ２を介して通知される判定結果（コントローラ２０ａの動作状態が健全であるか否かを示す判定結果）を受信する。
【００３８】
次に、上記構成におけるプロセス制御システム１の動作について説明する。図４は、本発明の第１実施形態によるプロセス制御システムの動作の概要を説明するためのフローチャートである。まず、図４に示す通り、予め作成された動作モデル（オペレーティングシステム２３ａ，２３ｂやアプリケーション２４ａ，２４ｂの仕様から導かれるコントローラ２０ａの動作仕様）が、ハイパーバイザ２２の動作モデル定義部５１に格納される（ステップＳ１１：第１ステップ）。動作モデルを動作モデル定義部５１に格納する作業は、例えば、アプリケーションの構築者がアプリケーション２４ａ、２４ｂを実現するプログラムをオペレーティングシステム２３ａ、２３ｂにインストールする際、或いは、インストール後のアプリケーション２４ａ、２４ｂの設定（エンジニアリング）を完了させた直後に行われる。
【００３９】
以上の作業が終了すると、アプリケーション２４ａが動作しているときのハードウェア２１とオペレーティングシステム２３ａとの間で授受される情報をトレースして収集する処理がコントローラ２０ａのトレース情報収集部５２で行われる（ステップＳ１２：第２ステップ）。具体的には、ハードウェア２１とハイパーバイザ２２との間で授受される情報が実デバイストレース情報収集部Ｃ１０でトレースされて収集され、オペレーティングシステム２３ａと仮想マシーン４２ａとの間で授受される情報が仮想デバイストレース情報収集部Ｃ１１でトレースされて収集される。
【００４０】
そして、動作モデル定義部５１で定義された動作モデルと、トレース情報収集部５２で収集された情報とが健全性判定部５３において比較され、コントローラ２０ａの健全性が判定される（ステップＳ１３：第３ステップ）。具体的に、トレース情報収集部５２で収集された情報が、動作モデル定義部５１で定義された動作モデルに適合する場合には、健全性判定部５３によってコントローラ２０ａが健全状態であると判定される。これに対し、トレース情報収集部５２で収集された情報が、動作モデル定義部５１で定義された動作モデルに適合しない場合には、健全性判定部５３によってコントローラ２０ａが不健全状態であると判定される。
【００４１】
仮に、コントローラ２０ａが不健全状態であると判定された場合には、例えばコントローラ２０ａで受信されたデータ或いはコントローラ２０ａから送信されようとしているデータがハイパーバイザ２２で破棄される。これにより、ハイパーバイザ２２が、いわばファイアーウォール（防火壁）として機能するため、受信した不正なデータがオペレーティングシステム２３ａに渡されること、及び不正なデータが外部に送信されることを防止することができる。また、コントローラ２０ａが不健全状態であると判定された場合には、その旨がコントローラ２０ａから監視装置３０に通知される。以後、コントローラ２０ａでは、ステップＳ１２，Ｓ１３の処理が繰り返し行われる。
【００４２】
図５は、本発明の第１実施形態においてトレース情報収集部で収集される情報の一例を示す図であって、（ａ）はコントローラ２０ａへのデータ入力がなされた場合に収集される情報の一例を示す図であり、（ｂ）はコントローラ２０ａからのデータ出力がなされる場合に収集される情報の一例を示す図である。図５に示す通り、トレース情報収集部５２で収集される情報は、図２に示す動作モデルと同様の「入出力方向」、「相手」、及び「経由デバイス」を示す情報に加えて、情報が収集された時間を示す「収集時間」（タイムスタンプ）からなる。
【００４３】
図３に示す通り、２秒間隔でコントローラ２０ｂから送信されてくるデータをコントローラ２０ａが受信した場合には、例えば図５（ａ）に示す情報がトレース情報収集部５２で収集される。具体的には、「入出力方向」が入力であり、「相手」がコントローラ２０ｂであり、「経由デバイス」がデバイスＲＤ１（デバイスＲＤ１を経由した後は保持）であることを示す情報に加えて、トレースによって情報収集が行われた時間（「収集時間」）が収集される。ここで、図５（ａ）に示す例では、「収集時間」の時間間隔が２秒である点に注意されたい。
【００４４】
健全性判定部５３は、コントローラ２０ｂからのデータがコントローラ２０ａで受信された場合には、図５（ａ）に示す情報と図２の動作モデルＭ１との比較を行って、コントローラ２０ａの健全性を判定する。図５（ａ）に示す例では、「入出力方向」、「相手」、及び「経由デバイス」を示す情報が、図２の動作モデルＭ１の「入出力方向」、「相手」、及び「経由デバイス」とそれぞれ一致する。また、図５（ａ）における「収集時間」の時間間隔は、図２の動作モデルＭ１の「周期」の規定の範囲内である。このため、動作モデルに適合すると言え、図５（ａ）に例示する情報が収集された場合には、健全性判定部５３は、コントローラ２０ａの動作状態が健全であると判定する。
【００４５】
これに対し、図３に示す通り、監視装置３０に対してコントローラ２０ａが４秒間隔でデータを送信する場合には、例えば図５（ｂ）に示す情報がトレース情報収集部５２で収集される。具体的には、「入出力方向」が出力であり、「相手」が監視装置３０であり、「経由デバイス」が仮想デバイスＶＤ１１→デバイスＲＤ３であることを示す情報に加えて、トレースによって情報収集が行われた時間（「収集時間」）が収集される。ここで、図５（ｂ）に示す例では、「収集時間」の時間間隔が３秒或いは５秒と一定ではない点に注意されたい。
【００４６】
健全性判定部５３は、コントローラ２０ａから監視装置３０に対してデータが送信される場合には、図５（ｂ）に示す情報と図２の動作モデルＭ２との比較を行って、コントローラ２０ａの健全性を判定する。図５（ｂ）に示す例では、「入出力方向」、「相手」、及び「経由デバイス」を示す情報が、図２の動作モデルＭ２の「入出力方向」、「相手」、及び「経由デバイス」とそれぞれ一致する。しかしながら、図５（ａ）における「収集時間」の時間間隔は一定ではなく、図２の動作モデルＭ２の「周期」の規定の範囲外である。このため、動作モデルに適合しないと言え、図５（ｂ）に例示する情報が収集された場合には、健全性判定部５３は、コントローラ２０ａの動作状態が健全ではないと判定する。
【００４７】
尚、以上では、説明を簡単にするために、動作モデル定義部５１で定義された動作モデルが「入出力方向」、「相手」、「経由デバイス」、及び「周期」からなるものとして説明した。しかしながら、これらに加えて、データ構造（フォーマット）、通信タイミング、データ量等の「通信処理仕様」が規定された動作モデルを用いることによって、より精度良くコントローラ２０ａの健全性を判定することができる。
【００４８】
以上説明した通り、本実施形態では、オペレーティングシステム２３ａ，２３ｂやアプリケーション２４ａ，２４ｂの仕様から導かれるコントローラ２０ａの動作仕様である動作モデルを定義し、この定義モデルと、トレース情報収集部５２で収集される情報（ハードウェア２１とオペレーティングシステム２３ａとの間で授受される情報）とを比較してコントローラ２０ａの動作状態が健全であるか否かを判定している。そして、その判定結果に基づいてデータの破棄等の処理を行っている。
【００４９】
また、本実施形態では、動作モデルがホワイトリストと同じような役割を果たし、トレース情報収集部５２で収集された情報が、動作モデルに適合するか否かによってコントローラ２０ａの動作状態が健全であるか否かを判定しているため、外部からの不正アクセスやウィルスが既知であるのか、或いは未知であるのかに拘わらず、コントローラ２０ａの健全性を判定することができる。更に、本実施形態では、ハイパーバイザ２２がいわばファイアーウォール（防火壁）として機能するため、オペレーティングシステム２３ａ，２３ｂの脆弱性を突くような不正行為があったとしても、その脆弱性に起因する不具合が生ずることはない。このため、オペレーティングシステムの脆弱性を修正する修正パッチを導入することなく、長期に亘って強固なセキュリティを維持することが可能である。
【００５０】
〔第２実施形態〕
図６は、本発明の第２実施形態によるプロセス制御システムの要部構成を示すブロック図である。尚、図６においては、図１に示す構成に相当する構成には同一の符号を付してある。図６に示す通り、本実施形態のプロセス制御システム２は、図１中のコントローラ２０ａ，２０ｂに代えてコントローラ６０ａ，６０ｂを設けた構成である。
【００５１】
これらコントローラ６０ａ，６０ｂは、図１に示すコントローラ２０ａ，２０ｂが備える動作モデル定義部５１に代えて健全状態時データ格納部６１（格納部）を設けた構成であり、第１実施形態における動作モデルを作成することなくコントローラ６０ａ，６０ｂの動作状態が健全であるか否かを判定可能にしたものである。尚、以下では、説明を簡単にするために、コントローラ６０ａを例に挙げて説明する。
【００５２】
コントローラ６０ａに設けられる健全状態時データ格納部６１は、コントローラ６０ａが健全状態である場合に、ハードウェア２１とオペレーティングシステム２３ａ，２３ｂとの間で授受されたデータ（健全状態時データ：第１データ）を格納する。尚、コントローラ６０ａが健全状態であるとは、第１実施形態におけるコントローラ２０ａが健全状態である場合と同様に、例えばコントローラ６０ａに対するサイバー攻撃が行われておらず、コントローラ６０ａが正常に動作している状態をいう。
【００５３】
図７は、本発明の第２実施形態における健全状態時データの一例を示す図である。尚、図７に示す健全状態時データは、図３に示す定周期処理と同様の動作が行われる場合のものである。図７に例示する健全状態時データは、「入出力方向」、「相手」、「経由デバイス」、「収集時間」、及び「収集場所」からなる。上記「入出力方向」、「相手」、「経由デバイス」、及び「収集時間」は、図５に示したものと同様である。但し、図５における「経由デバイス」には複数のデバイスが規定されていたが、図７における「経由デバイス」は１つのデバイスのみが規定されている。上記「収集場所」は、健全状態時データの収集が行われた場所を示す情報である。
【００５４】
例えば、図７中の健全状態時データｄ１，ｄ２，ｄ７，ｄ８は、アプリケーション２４ａからバルブ機器１２に向けたデータの送信（出力）が行われる場合に収集されたデータであり、健全状態時データｄ３，ｄ４は、アプリケーション２４ａから監視装置３０に向けたデータの送信（出力）が行われる場合に収集されたデータである。また、健全状態時データｄ５，ｄ６は、コントローラ６０ｂからのデータを受信した場合に収集されたデータである。
【００５５】
具体的に、健全状態時データｄ１は、「入出力方向」が出力であり、「相手」がバルブ機器１２であり、「経由デバイス」が仮想デバイスＶＤ１３であることを示す情報が、時間００：００′００″００において、仮想デバイストレース情報収集部Ｃ１１で収集された旨を示すデータである。また、健全状態時データｄ２は、「入出力方向」が出力であり、「相手」がバルブ機器１２であり、「経由デバイス」がデバイスＲＤ２あることを示す情報が、時間００：００′００″３０において、実デバイストレース情報収集部Ｃ１０で収集された旨を示すデータである。
【００５６】
次に、上記構成におけるプロセス制御システム２の動作について説明する。図８は、本発明の第２実施形態によるプロセス制御システムの動作の概要を説明するためのフローチャートである。まず、図８に示す通り、コントローラ６０ａが健全状態であるときに、健全状態時データを取得して健全状態時データ格納部６１に格納する処理が行われる（ステップＳ２１：第１ステップ）。
【００５７】
具体的には、フィールドネットワークＮ１及び制御ネットワークＮ２をサイバー攻撃が行われる可能性のあるネットワークから切り離した状態で、図６に示すプロセス制御システム２を起動させる。そして、サイバー攻撃が行われてないときに、コントローラ６０ａのハードウェア２１とオペレーティングシステム２３ａ，２３ｂとの間で授受されたデータを、健全状態時データとして取得して健全状態時データ格納部６１に格納する。尚、健全状態時データの格納が終了すると、格納された健全状態時データが読み取り専用とされ、フィールドネットワークＮ１及び制御ネットワークＮ２が切り離される前の状態に戻される。
【００５８】
以上の処理が終了すると、第１実施形態と同様に、アプリケーション２４ａが動作しているときのハードウェア２１とオペレーティングシステム２３ａとの間で授受される情報をトレースして収集する処理がコントローラ６０ａのトレース情報収集部５２で行われる（ステップＳ２２：第２ステップ）。そして、健全状態時データ格納部６１に格納された健全状態時データと、トレース情報収集部５２で収集された情報とが健全性判定部５３において比較され、コントローラ６０ａの健全性が判定される（ステップＳ２３：第３ステップ）。
【００５９】
具体的には、健全状態時データ格納部６１に格納された健全状態時データと、トレース情報収集部５２で収集された情報とを時系列順に比較する処理（パターンマッチング処理）が健全性判定部５３で行われる。これらの内容及び時系列順が一致している場合には、健全性判定部５３によってコントローラ６０ａが健全状態であると判定される。これに対し、これらの内容及び時系列順の少なくとも一方が一致しない場合には、健全性判定部５３によってコントローラ６０ａが不健全状態であると判定される。尚、コントローラ６０ａが不健全状態であると判定された場合には、第１実施形態と同様にデータを破棄する処理や、監視装置３０にその旨を通知する処理が行われる。以後、コントローラ６０ａでは、ステップＳ２２，Ｓ２３の処理が繰り返し行われる。
【００６０】
図９は、本発明の第２実施形態においてトレース情報収集部で収集される情報の一例を示す図である。図９に示す通り、トレース情報収集部５２で収集される情報は、図７に示す健全状態時データと同様に、「入出力方向」、「相手」、「経由デバイス」、「収集時間」、及び「収集場所」からなる。図７に示す健全状態時データと図９に示すものとを比較すると、図７中の健全状態時データｄ６に相当するデータ（図９中のデータｄ１５とデータｄ１６との間に配置されるべきデータ）が図９では欠落していることが分かる。このため、図９に例示する情報が収集された場合には、健全性判定部５３は、コントローラ６０ａの動作状態が不健全であると判定する。
【００６１】
以上説明した通り、本実施形態では、コントローラ６０ａが健全状態であるときにハードウェア２１とオペレーティングシステム２３ａとの間で授受される情報を健全状態時データとして取得し、この健全状態時データとトレース情報収集部５２で収集される情報（ハードウェア２１とオペレーティングシステム２３ａとの間で授受される情報）とを比較してコントローラ６０ａの動作状態が健全であるか否かを判定している。そして、その判定結果に基づいてデータの破棄等の処理を行っている。このため、第１実施形態と同様に脆弱性を突くような不正行為による不具合は生じない。よって、オペレーティングシステムの脆弱性を修正する修正パッチを導入することなく、長期に亘って強固なセキュリティを維持することが可能である。
【００６２】
また、本実施形態では、コントローラ６０ａが健全状態であるときにハードウェア２１とオペレーティングシステム２３ａとの間で授受される情報を健全状態時データとして取得しているため、動作モデルを作成する作業を省略することができる。また、動作モデルを用いる場合よりも多種多様なパターンを用いることができるため、第１実施形態よりも精度の良い判定が可能である。
【００６３】
〔第３実施形態〕
図１０は、本発明の第３実施形態によるプロセス制御システムに設けられるコントローラの要部構成を示すブロック図である。尚、本実施形態のプロセス制御システムの全体構成は、図６に示すプロセス制御システム２が備えるコントローラ６０ａ，６０ｂに代えてコントローラ７０ａ，７０ｂ（コントローラ７０ｂについては図示を省略している）を設けた構成である。また、図１０においては、図６に示す構成に相当する構成には同一の符号を付してある。
【００６４】
図１０に示す通り、本実施形態のプロセス制御システムに設けられるコントローラ７０ａは、図６に示すコントローラ６０ａのオペレーティングシステム２３ａ，２３ｂにトレース情報収集部Ｃ２１，Ｃ２２（第２収集部）をそれぞれ追加した構成である。かかる構成のコントローラ７０ａは、図６に示すコントローラ６０ａよりも精度の良い判定を可能とするとともに、定周期処理ではない処理（非定周期処理）を行う場合にもコントローラ７０ａの動作状態が健全であるか否かを判定可能にしたものである。
【００６５】
トレース情報収集部Ｃ２１は、オペレーティングシステム２３ａとアプリケーション２４ａとの間で授受される情報をトレースして収集し、トレース情報収集部Ｃ２２は、オペレーティングシステム２３ｂとアプリケーション２４ｂとの間で授受される情報をトレースして収集する。ここで、第２収集部が収集する前記授受される情報にはアプリケーションの処理としてオペレーティングシステムに対して行うシステムコールの情報、例えば、呼び出されたシステムコールの種類が含まれる。これらトレース情報収集部Ｃ２１，Ｃ２２で収集されたデータは、トレース情報収集部５２で収集されたデータとともにハイパーバイザ２２の健全状態時データ格納部６１又は健全性判定部５３に出力される。
【００６６】
具体的に、コントローラ７０ａが健全状態である場合にトレース情報収集部Ｃ２１，Ｃ２２で収集されたデータは、トレース情報収集部５２で収集されたデータとともに、健全状態時データとして健全状態時データ格納部６１に格納される。また、健全状態時データが健全状態時データ格納部６１に格納された後においては、トレース情報収集部Ｃ２１，Ｃ２２で収集されたデータは、トレース情報収集部５２で収集されたデータとともに、健全性判定部５３において健全状態時データと比較される。
【００６７】
次に、上記構成のコントローラ７０ａで非定周期処理が行われる場合の動作について説明する。尚、コントローラ７０ａで定周期処理が行われる場合の動作と、コントローラ７０ａで非定周期処理が行われる場合の動作とは基本的に同じである。図１１は、本発明の第３実施形態で行われる非定周期処理の一例を示す図である。図１１に例示する非定周期処理は、監視装置３０が、工場プロセスの制御を監視する際、監視表示を行うための情報（監視表示情報）を収集する動作として行われるものである。
【００６８】
具体的に、監視装置３０からコントローラ７０ａに対して監視表示情報の取得要求が非同期で送信されると（ステップＳ３１）、コントローラ７０ａでは、その監視表示情報の取得要求を受信する受信処理（ステップＳ３２）、監視表示情報を生成する生成処理（ステップＳ３３）が行われ、前記生成処理中に、センサ機器１１から測定データを取得する取得処理（ステップＳ３４）、及び監視表示情報を送信する送信処理（ステップＳ３５）が行われる。
【００６９】
上記受信処理（ステップＳ３２）では、ハードウェア２１で受信されてデバイスＲＤ３及び仮想デバイスＶＤ１１を介した監視表示情報の取得要求が、割込処理によってオペレーティングシステム２３ａからアプリケーション２４ａに出力される。アプリケーション２４ａが行う出力の受信には、例えば、割り込みハンドラやシグナルハンドラを用いる。
【００７０】
出力を受け取ったアプリケーション２４ａは、（例えば、ＩＰＣ（Inter Process Communication）の）システムコールを用い、上記取得要求に対応する上記生成処理（ステップＳ３３）を起床（ｗａｋｅｕｐ）する。生成処理では、上記取得処理（ステップＳ３４）で取得された測定データを用いてアプリケーション２４ａで監視表示情報が生成される。生成された監視表示情報は、上記送信処理（ステップＳ３５）により、コントローラ７０ａの外部へ出力される。
【００７１】
上記取得処理（ステップＳ３４）では、アプリケーション２４ａがシステムコールを呼び出し、データ読出要求（ｒｅａｄ）をオペレーティングシステム２３ａに出力する。このデータ読出要求に基づき、仮想デバイスＶＤ１２及びデバイスＲＤ２を介してセンサ機器１１から測定データが取得される。上記送信処理（ステップＳ３５）では、アプリケーション２４ａがシステムコールを呼び出し、データ書込要求（ｗｒｉｔｅ）をオペレーティングシステム２３ａに出力する。このデータ書込要求に基づき、仮想デバイスＶＤ１１及びデバイスＲＤ３を介して監視表示情報が出力される。尚、コントローラ７０ａから出力された監視表示情報は、制御ネットワークＮ２を介して監視装置３０に送信される（ステップＳ３６）。
【００７２】
図１２は、本発明の第３実施形態においてトレース情報収集部で収集される情報の一例を示す図である。尚、図１２に示す情報は、図１１に示す非同期処理が行われたときにトレース情報収集部５２及びトレース情報収集部Ｃ２１で収集される情報である。この情報には経由デバイスとともに経由システムコールとして、呼び出されたシステムコールの種類が、相手としてシステムコールを作用させた対象が記録される。このような情報が収集されると、第２実施形態と同様に、健全性判定部５３において、健全状態時データ格納部６１に格納されている健全状態時データと比較され、コントローラ７０ａが健全であるか否かが判定される。尚、コントローラ７０ａが不健全状態であると判定された場合には、第２実施形態と同様にデータを破棄する処理や、監視装置３０にその旨を通知する処理が行われる。
【００７３】
以上説明した通り、本実施形態では、コントローラ７０ａが健全状態であるときに、ハードウェア２１とオペレーティングシステム２３ａとの間で授受される情報と、オペレーティングシステム２３ａとアプリケーション２４ａとの間で授受される情報とを健全状態時データとして取得している。そして、この健全状態時データとトレース情報収集部５２で収集される情報及びトレース情報収集部Ｃ２１で収集される情報とを比較してコントローラ７０ａの動作状態が健全であるか否かを判定している。そして、その判定結果に基づいてデータの破棄等の処理を行っている。このため、第２実施形態と同様に、オペレーティングシステムの脆弱性を修正する修正パッチを導入することなく、長期に亘って強固なセキュリティを維持することが可能である。
【００７４】
また、本実施形態では、ハードウェア２１とオペレーティングシステム２３ａとの間で授受される情報に加えて、オペレーティングシステム２３ａとアプリケーション２４ａとの間で授受される情報を健全状態時データとしている。このため非定周期で処理されたアプリケーション２４ａの動作とその種類に、オペレーティングシステム２３ａやハードウェア２１の動作を対応付けて確認することができる。これにより、非定周期処理においても、コントローラ７０ａの動作状態の健全性を判定することができる。
【００７５】
尚、本実施形態では、理解を容易にするため、第２収集部がシステムコールの情報として、呼び出されたシステムコールの種類をトレースするとして説明を行ったが、システムコールの情報として、システムコールの呼び出しに用いた引数の種類や値、システムコールの戻り値等の情報も合わせてトレースし、健全性の判定に用いてもよい。
【００７６】
また、本実施形態では、アプリケーションとオペレーティングシステムとの間で情報が授受されるタイミングをシステムコールとしている。アプリケーションは自らの処理を遂行するために、システムコールを必ず行うため、タイミングをシステムコールとすることにより、アプリケーションをトレースに対応させるための特別な改造や機能追加が不要となるという効果がある。
【００７７】
逆に、アプリケーションの改造や機能追加が許容される場合は、意図的にオペレーティングシステムとの間で情報を授受するタイミング（トレースポイント）を設けることにより、アプリケーション動作のトレースを詳細化し、健全性の判定をより精密に行えるようにしてもよい。例えば、システムコール以外にトレースポイントを
・サブルーチン・関数のコール／リターン地点
・条件分岐等の分岐と分岐処理の合流点
・繰り返し処理の先頭と末尾
・アプリケーションとして重要なデータ（変数）の内容変更処理の前後
等に設けることで、トレースを詳細化できる。
【００７８】
尚、上述した第２，第３実施形態において、健全状態時データ格納部６１に健全状態時データを格納する際に、健全状態時データの「収集時間」に対し、一致とみなしてよい時間の誤差の範囲（例：±１０％、１．９〜２．１秒、等）を別途定義してから格納してもよい。
【００７９】
〔第４実施形態〕
図１３は、本発明の第４実施形態によるプロセス制御システムに設けられるコントローラの概略構成を示すブロック図である。尚、本実施形態のプロセス制御システムの全体構成は、図１に示すプロセス制御システム１が備えるコントローラ２０ａ，２０ｂに代えてコントローラ８０ａ，８０ｂ（コントローラ８０ｂについては図示を省略している）を設けた構成である。また、図１３においては、図１に示す構成に相当する構成には同一の符号を付してある。
【００８０】
図１３に示す通り、本実施形態のプロセス制御システムに設けられるコントローラ８０ａは、図１に示すコントローラ２０ａのハードウェア２１を、複数のＭＰＵ８１〜８３（処理装置）を備えるハードウェア２１としたものである。ここで、ＭＰＵ８１〜８３は、プロセッサ・コアを意味しており、それぞれ異なるパッケージとして実装される形態（シングルコア）であっても良く、全てが１つのパッケージとして実装される形態（マルチコア）であっても良い。
【００８１】
本実施形態におけるコントローラ８０ａの機能は、各機能を実現するプログラムが、ＭＰＵ８１〜８３の何れかで実行されることによって実現される。例えば、ハイパーバイザ２２（動作モデル定義部５１、トレース情報収集部５２、及び健全性判定部５３を含む）は、これらを実現するプログラムがＭＰＵ８１で実行されることによって実現される。また、オペレーティングシステム２３ａ及びアプリケーション２４ａは、これらを実現するプログラムがＭＰＵ８２で実行されることによって実現され、オペレーティングシステム２３ｂ及びアプリケーション２４ｂは、これらを実現するプログラムがＭＰＵ８３で実行されることによって実現される。尚、プログラムを実行させるＭＰＵ８１〜８３の割り当ては、例えばハイパーバイザ２２が行う。
【００８２】
このように、コントローラ８０ａの各機能を実現するプログラムを複数のＭＰＵ８１〜８３で実行させることにより、コントローラ８０ａに対するＤｏＳ（Denial of Services）攻撃がなされたとしても、コントローラ８０ａの性能劣化やサービス停止が生ずるといった事態を防止することができる。つまり、ＤｏＳ攻撃はＭＰＵ８１で処理され、アプリケーション２４ａ等の処理を行うＭＰＵ８２，８３の負荷が増加することはないため、コントローラ８０ａの性能劣化等が生じない。
【００８３】
尚、上述したコントローラ８０ａは、図１に示す第１実施形態におけるコントローラ２０ａのハードウェア２１を、複数のＭＰＵ８１〜８３を備えるハードウェア２１としたものであった。しかしながら、図６に示す第２実施形態におけるコントローラ６０ａや図１０に示す第３実施形態におけるコントローラ７０ａのハードウェア２１を、複数のＭＰＵ８１〜８３を備えるハードウェア２１とすることも可能である。
【００８４】
以上、本発明の実施形態によるプロセス制御装置及びシステム並びにその健全性判定方法について説明したが、本発明は上述した実施形態に制限されることなく、本発明の範囲内で自由に変更が可能である。例えば、上記実施形態では、複数のオペレーティングシステムやアプリケーションを動作させ得る仮想環境をハイパーバイザ２２によってコントローラ２０ａ，６０ａ，７０ａ，８０ａに実現する例について説明したが、このような仮想環境を実現する手段はハイパーバイザ２２に限られるものではない。例えば、上記の仮想環境をハードウェアによって実現しても良い。
【００８５】
また、上述した実施形態では、フィールド機器１０がフィールドネットワークＮ１を介したディジタル通信が可能なものを例に挙げて説明したが、アナログ信号の入出力を行うフィールド機器を用いることもできる。このようなフィールド機器を用いる場合には、フィールド機器で入出力される信号（アナログ信号）とフィールドネットワークＮ１を介して通信される信号（ディジタル信号）との変換を行うＩＯノードをフィールドネットワークＮ１に接続し、このＩＯノードとフィールド機器とをアナログ伝送路（例えば、「４〜２０ｍＡ」信号の伝送に使用される伝送線）で接続すれば良い。
【００８６】
また、上述した実施形態では、動作モデル定義部５１（健全状態時データ格納部６１）、トレース情報収集部５２、及び健全性判定部５３がハイパーバイザ２２に設けられた構成について説明した。しかしながら、これらは仮想マシーン４２ａ，４２ｂ毎に設けられていても良い。また、動作モデル定義部５１（健全状態時データ格納部６１）は、例えばハードディスクの記録装置や半導体メモリ等の記憶装置に設けられていても良い。
【００８７】
また、上述した第２，第３実施形態では、コントローラ６０ａ，７０ａが健全状態である場合に健全状態時データを予め取得する例について説明した。しかしながら、健全状態時データを取得した後においても、改めて健全状態時データを取得（追加取得）するようにしても良い。このようにすることで、仕様の変化等によってコントローラ６０ａ，７０ａで実行されるアプリケーション２３ａ，２３ｂの挙動が変化した場合であっても、支障なく健全性の判定を行うことが可能になる。
【００８８】
また、上述した第１，第２，第３実施形態では、理解を容易にするため、仮想デバイスＶＤ１１〜ＶＤ１３と実デバイスＲＤ１〜ＲＤ３、仮想デバイスＶＤ２１〜ＶＤ２３と実デバイスＲＤ１〜ＲＤ３がそれぞれ一対一に対応するとして説明したが、仮想デバイスの設計によっては、一つの仮想デバイスに複数の実デバイスを対応させる構成、若しくは、複数の仮想デバイスに一つの実デバイスを対応させる構成も考えられる。このような構成であっても、仮想デバイス、実デバイスに対応したトレース情報を収集できることに代わりはなく、上述した第１，第２，第３実施形態と同様に、コントローラの動作状態の健全性を確認できる。
【符号の説明】
【００８９】
１，２            プロセス制御システム
１０              フィールド機器
２０ａ            コントローラ
２１              ハードウェア
２２              ハイパーバイザ
２３ａ，２３ｂ    オペレーティングシステム
２４ａ，２４ｂ    アプリケーション
３０              監視装置
５１              動作モデル定義部
５２              トレース情報収集部
５３              健全性判定部
６０ａ            コントローラ
６１              健全状態時データ格納部
７０ａ            コントローラ
８０ａ            コントローラ
８１〜８３        ＭＰＵ
Ｃ２１，Ｃ２２    トレース情報収集部
Ｎ１              フィールドネットワーク
Ｎ２              制御ネットワーク
【図１】
2015026129.tif 000003
【図２】
2015026129.tif 000004
【図３】
2015026129.tif 000005
【図４】
2015026129.tif 000006
【図５】
2015026129.tif 000007
【図６】
2015026129.tif 000008
【図７】
2015026129.tif 000009
【図８】
2015026129.tif 000010
【図９】
2015026129.tif 000011
【図１０】
2015026129.tif 000012
【図１１】
2015026129.tif 000013
【図１２】
2015026129.tif 000014
【図１３】
2015026129.tif 000015