(57)【要約】      （修正有）【課題】コントローラのＯＳおよびユーティリティの更新に対する対応を向上させる。【解決手段】コントローラ１は、アプリケーションと、当該アプリケーションを動作させるＯＳおよびユーティリティソフトウェアの少なくとも一方のプログラムを記憶し、プログラムを用いてアプリケーションを実行して、制御対象機器を制御する第１処理を実行し、他のコントローラおよびサーバに対して、第１処理の結果を示す第１情報を同報送信する。管理サーバ２は、更新後のプログラムを用いてアプリケーションを実行して、仮想的に制御対象機器を制御する第２処理を実行し、コントローラから同報送信された第１情報を受信し、受信した第１情報が示す第１処理の結果と第２処理の結果とに基づいて、第２処理の結果を診断する。【選択図】図１
2017107297.tif 000002
【特許請求の範囲】
【請求項１】
ローカルネットワークで接続されたコントローラとサーバとを有する制御システムであって、
前記コントローラは、
アプリケーションと、当該アプリケーションを動作させるＯＳ（Operating  System）およびユーティリティソフトウェアの少なくとも一方のプログラムと、を記憶する記憶部と、
前記プログラムを用いて前記アプリケーションを実行して、制御対象機器を制御する第１処理を実行する制御部と、
他の前記コントローラおよび前記サーバに対して、前記第１処理の結果を示す第１情報を同報送信する送信部と、を備え、
前記サーバは、
更新後の前記プログラムを用いて前記アプリケーションを実行して、仮想的に前記制御対象機器を制御する第２処理を実行するバーチャルマシンと、
前記コントローラから同報送信された前記第１情報を受信する受信部と、
受信した前記第１情報が示す前記第１処理の結果と前記第２処理の結果とに基づいて、前記第２処理の結果を診断する診断部と、
を備えた制御システム。
【請求項２】
前記診断部は、さらに、前記第２処理のログを参照して、当該第２処理の結果を診断する請求項１に記載の制御システム。
【請求項３】
前記サーバは、さらに、前記診断部による前記第２処理の結果を、前記ローカルネットワーク外の外部サーバに送信する送信部を有する請求項１に記載の制御システム。
【請求項４】
前記サーバは、複数の前記バーチャルマシンを有し、
前記各バーチャルマシンは、更新後の前記プログラムを用いて、互いに異なる前記コントローラの前記記憶部に記憶された前記アプリケーションを実行する請求項１に記載の制御システム。
【請求項５】
所定の前記コントローラの前記制御部が、更新後の前記プログラムを用いて診断対象の前記コントローラの前記記憶部に記憶された前記アプリケーションを実行して、前記制御対象機器を制御する第３処理を実行し、
前記送信部は、前記第３処理の結果を示す情報を、前記第１情報として前記他のコントローラおよび前記サーバに同報送信し、
前記診断部は、前記第３処理の結果を、前記第２処理の結果として用いて、当該第２処理の結果を診断する請求項１に記載の制御システム。
【請求項６】
前記サーバに代わって、前記第２処理を実行可能な第２バーチャルマシンと、
前記サーバから、前記第１情報を取得する取得部と、
前記サーバに代わって、取得した前記第１情報が示す前記第１処理の結果と、前記第２バーチャルマシンによる前記第２処理の結果と、に基づいて、前記第２処理の結果を診断可能な第２診断部と、
を有する前記ローカルネットワーク外の外部サーバを備えた請求項１に記載の制御システム。
【請求項７】
前記サーバは、さらに、前記記憶部に記憶された前記プログラムの更新後、ネットワークブートによって当該更新後のプログラムの再起動を指示する再起動部を備えた請求項１に記載の制御システム。
【請求項８】
前記制御部は、前記記憶部に記憶された前記プログラムを更新後、前記第１処理に異常が検知された場合、当該プログラムをロールバックする請求項１に記載の制御システム。
【請求項９】
前記サーバは、
前記記憶部に記憶された前記プログラムが所定期間以上更新されていない場合、前記プログラムの更新の異常を示す情報を表示する表示部を有する請求項１に記載の制御システム。
【請求項１０】
ローカルネットワークで接続されたコントローラとサーバとを有する制御システムで実行される診断方法であって、
前記コントローラは、
記憶部に記憶されたＯＳおよびユーティリティソフトウェアの少なくとも一方のプログラムを用いて、前記記憶部に記憶されたアプリケーションを実行して、制御対象機器を制御する第１処理を実行し、
他の前記コントローラおよび前記サーバに対して、前記第１処理の結果を示す第１情報を同報送信し、
前記サーバは、
更新後の前記プログラムを用いて前記アプリケーションを実行して、仮想的に前記制御対象機器を制御する第２処理を実行し、
前記コントローラから同報送信された前記第１情報を受信し、
受信した前記第１情報が示す前記第１処理の結果と前記第２処理の結果とに基づいて、前記第２処理の結果を診断する、
ことを含む診断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、制御システムおよび診断方法に関する。
【背景技術】
【０００２】
アプリケーションを動作させるＯＳ（Operating  System）やユーティリティソフトウェアを備えた製品やサービスの脆弱性などのセキュリティリスクは、製品やサービスのリリース後、時間経過と共に拡大する。これは、製品やサービスのリリース当時はグローバルに認識されていなかったＯＳやユーティリティソフトウェアの脆弱性の発見や攻撃手法の進化、攻撃用機材の性能向上によるものである。このようなセキュリティリスクに対応するために、セキュリティ対応システムは、常に、セキュリティ・ライフサイクルプロセスを実行して、セキュリティリスクに応じてＯＳやユーティリティソフトウェアを更新することが求められる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２３３０３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、制御対象機器を制御するコントローラを備えたプラント等の制御システムにおいては、更新後のＯＳおよびユーティリティソフトウェアとアプリケーションとの組み合わせによる制御対象機器の制御処理の診断方式が確立されておらず、コントローラが備えるＯＳおよびユーティリティソフトウェアの更新に対する対応が進んでいない。
【課題を解決するための手段】
【０００５】
実施形態の制御システムは、ローカルネットワークで接続されたコントローラとサーバとを有する制御システムである。コントローラは、記憶部と、制御部と、送信部と、を備える。記憶部は、アプリケーションと、当該アプリケーションを動作させるＯＳおよびユーティリティソフトウェアの少なくとも一方のプログラムと、を記憶する。制御部は、プログラムを用いてアプリケーションを実行して、制御対象機器を制御する第１処理を実行する。送信部は、他のコントローラおよびサーバに対して、第１処理の結果を示す第１情報を同報送信する。サーバは、バーチャルマシンと、受信部と、診断部と、を備える。バーチャルマシンは、更新後のプログラムを用いてアプリケーションを実行して、仮想的に制御対象機器を制御する第２処理を実行する。受信部は、コントローラから同報送信された第１情報を受信する。診断部は、受信した第１情報が示す第１処理の結果と第２処理の結果とに基づいて、第２処理の結果を診断する。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１の実施形態にかかる制御システムの構成の一例を示す図である。
【図２】図２は、第１の実施形態にかかる制御システムが有するコントローラの機能構成の一例を示す図である。
【図３】図３は、第１の実施形態にかかる制御システムが有する管理サーバの機能構成の一例を示す図である。
【図４】図４は、第１の実施形態にかかる制御システムが有する上位サーバの機能構成の一例を示す図である。
【図５】図５は、第１の実施形態にかかる制御システムにおけるコントローラのＯＳおよびユーティリティの更新処理の流れの一例を示すシーケンス図である。
【図６】図６は、第１の実施形態にかかる管理サーバにおける診断処理の一例を説明するための図である。
【図７】図７は、第１の実施形態にかかる管理サーバにおける診断処理の一例を説明するための図である。
【図８】図８は、第１の実施形態に係る管理サーバにおける診断処理の流れの一例を示すシーケンス図である。
【図９】図９は、第２の実施形態にかかる管理サーバにおける診断処理の一例を説明するための図である。
【図１０】図１０は、第３の実施形態にかかる上位サーバの機能構成の一例を示す図である。
【図１１】図１１は、第３の実施形態にかかる制御システムにおけるコントローラのＯＳおよびユーティリティの更新処理の流れの一例を示すシーケンス図である。
【図１２】図１２は、第４の実施形態にかかる制御システムにおけるコントローラのＯＳおよびユーティリティの更新処理の流れの一例を示す図である。
【図１３】図１３は、第５の実施形態にかかる制御システムにおける異常検知結果の表示処理の流れの一例を示すシーケンス図である。
【発明を実施するための形態】
【０００７】
以下、添付の図面を用いて、本実施形態にかかる制御システムおよび診断方法について説明する。
【０００８】
（第１の実施形態）
図１は、第１の実施形態にかかる制御システムの構成の一例を示す図である。図１に示すように、本実施形態にかかる制御システムは、制御対象機器（各種のハードウェアデバイス）を制御するコントローラ１と、当該コントローラ１の動作状態の監視やコントローラ１に対するパラメータの設定やコントローラ１において実行されるソフトウェアの管理等を行う管理サーバ２と、コントローラ１において実行するソフトウェアの配信等を行う上位サーバ３と、を有する。コントローラ１と管理サーバ２とは、ローカルネットワークを介して接続されている。
【０００９】
本実施形態では、コントローラ１は、ＨＵＢ４，５を介してイーサネット（登録商標）規格の伝送路で、他のコントローラ１や管理サーバ２と接続されている。そして、コントローラ１は、当該コントローラ１に関する情報（以下、コントローラ情報と言う）を、他のコントローラ１や管理サーバ２に対して同報送信する。これにより、制御システム内のコントローラ１および管理サーバ２は、全てのコントローラ１のコントローラ情報を共有する。
【００１０】
本実施形態では、コントローラ１は、物理的に異なる２つの伝送路を介して、他のコントローラ１や管理サーバ２と接続されている。具体的には、コントローラ１は、同報送信するコントローラ情報のうちリアルタイム性が要求される情報を伝送する制御系の伝送路Ｌ１（以下、制御系伝送路と言う）と、同報送信するコントローラ情報のうちリアルタイム性が要求されない情報を伝送する伝送路Ｌ２（以下、情報系伝送路と言う）と、を介して、他のコントローラ１や管理サーバ２と接続されている。
【００１１】
これにより、管理サーバ２は、制御系伝送路Ｌ１および情報系伝送路Ｌ２を介して、コントローラ１の稼働状況を検知することができる。本実施形態では、コントローラ１は、物理的に異なる２つの伝送路を介して、他のコントローラ１や管理サーバ２と接続されているが、これに限定するものではなく、ＶＬＡＮ（Virtual  Local  Area  Network）等でＱｏＳ（Quality  of  Service）が確保された２つの伝送路を介して、他のコントローラ１や管理サーバ２と接続されていても良い。
【００１２】
図２は、第１の実施形態にかかる制御システムが有するコントローラの機能構成の一例を示す図である。図２に示すように、本実施形態では、コントローラ１は、ＯＳ１０１と、アプリケーション部１０２と、ＰＸＥクライアント１０３と、ユーティリティ１０４と、を有する。アプリケーション部１０２は、メディア１１０と、情報系伝送部１１１と、制御系伝送部１１２と、セキュリティ自己診断部１１３と、制御機能部１１４と、パラメータ記憶部１１５と、セーフティ自己診断部１１６と、を有する。
【００１３】
制御機能部１１４は、ＣＰＵ（Central  Processing  Unit）等のプロセッサを備えた電子回路である。そして、制御機能部１１４（制御部の一例）は、ＯＳ１０１およびユーティリティ１０４を用いて、メディア１１０に記憶されたユーザアプリケーション（アプリケーションの一例）を実行して、制御対象機器を制御する制御処理（第１処理の一例）を実行する。本実施形態では、制御機能部１１４は、パラメータ記憶部１１５に記憶されたパラメータに従って、制御処理を実行する。
【００１４】
メディア１１０は、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）やフラッシュメモリ等であり、ユーザアプリケーションやＯＳ１０１や制御処理の結果を示す制御情報（第１情報の一例）等の各種情報を記憶する。パラメータ記憶部１１５は、コントローラ１で実行されるユーザアプリケーションの動作条件等のパラメータを記憶する。情報系伝送部１１１（送信部の一例）は、メディア１１０に記憶された制御情報等のコントローラ情報を、制御系伝送路Ｌ１を介して、ローカルネットワークを介して接続された他のコントローラ１や管理サーバ２等の外部装置に対して同報送信する。制御系伝送部１１２（送信部の一例）は、メディア１１０に記憶された制御情報等のコントローラ情報を、情報系伝送路Ｌ２を介して、ローカルネットワークを介して接続された他のコントローラ１や管理サーバ２等の外部装置に対して同報送信する。
【００１５】
セーフティ自己診断部１１６は、制御機能部１１４，メディア１１０，外部装置と通信を行うハードウェア（例えば、情報系伝送部１１１、制御系伝送部１１２），メディア１１０に記憶された各種情報などの異常を検出する自己診断処理を実行する。セキュリティ自己診断部１１３は、外部装置からコントローラ１内に進入するコンピュータウィルスの検知、外部装置からコントローラ１に対するアクセスの制御、外部装置と送受信するデータの欠落や誤りなどのデータ完全性の検知など、コントローラ１のセキュリティに関するセキュリティ診断処理を実行する。
【００１６】
ＰＸＥ（Preboot  eXecution  Environment）クライアント１０３は、管理サーバ２等の外部装置から、コントローラ１に対するネットワークブートを可能にする。また、ＰＸＥクライアント１０３は、ＢＩＯＳ（Basic  Input  Output  System）やＮＩＣ（Network  Interface  Card）等により、ネットワークブートを実現したり、ネットワークブートを有効化または無効化したりする。
【００１７】
ＯＳ１０１は、メディア１１０等の記憶部に記憶され、ユーザアプリケーションを動作させるプログラムの一例である。本実施形態では、ＯＳ１０１は、コントローラ１が備える各種のハードウェアデバイスのドライバである他ドライバ１１７（例えば、ＤＩＯ（Digital  Input  Output）ドライバ、ＡＩＯ（Analog  Input  Output）ドライバ、バスドライバ）、ＮＩＣのドライバであるＩＦドライバ１１８等を有する。ユーティリティ１０４は、メディア１１０等の記憶部に記憶され、netstats，ethtool，ssh，ftpなど、ユーザアプリケーションを動作させるユーティリティソフトウェア（プログラムの一例）である。本実施形態では、メディア１１０が、ユーザアプリケーションと、ＯＳ１０１およびユーティリティ１０４の少なくともいずれか一方のプログラムとを記憶する記憶部の一例として機能する。
【００１８】
図３は、第１の実施形態にかかる制御システムが有する管理サーバの機能構成の一例を示す図である。図３に示すように、本実施形態では、管理サーバ２（サーバの一例）は、コントローラツール２００と、ユーザアプリパラメータ管理部２０１と、ユーザアプリシミュレータ２０２と、ネットワーク管理部２０３と、ユーティリティ２０４と、表示部２０５と、上位／情報系伝送部２０６と、制御系伝送部２０７と、メディア２０８と、セキュリティ管理部２０９と、更新管理部２１０と、更新シミュレータ２１１と、ＶＭ２１２と、ＰＸＥサーバ２１３と、ＯＳ２１４と、を有する。
【００１９】
コントローラツール２００は、コントローラ１毎に、当該コントローラ１において実行されるユーザアプリケーションのエディットやコンパイル機能を含む。ユーザアプリパラメータ管理部２０１は、コントローラ１毎に、当該コントローラ１において実行されるユーザアプリケーションの動作条件等のパラメータを記憶する。ユーザアプリシミュレータ２０２は、ユーザアプリケーションの動作を検証する。ネットワーク管理部２０３は、コントローラ１の検知や当該コントローラ１の異常の検知等を行う。ユーティリティ２０４は、コントローラ１と同様、ユーザアプリケーションを動作させるプログラムの一例である。
【００２０】
表示部２０５は、管理サーバ２のユーザや管理者とのインターフェースとなり、各種処理の結果等を表示する。上位／情報系伝送部２０６は、情報系伝送路Ｌ２を介して、コントローラ１と通信を行う。具体的には、上位／情報系伝送部２０６（受信部の一例）は、情報系伝送路Ｌ２を介して、コントローラ１から制御情報等のコントローラ情報を受信する。また、上位／情報系伝送部２０６は、インターネット等のネットワークＮＴを介して上位サーバ３と通信を行う。制御系伝送部２０７は、制御系伝送路Ｌ１を介して、コントローラ１と通信を行う。具体的には、制御系伝送部２０７（受信部の一例）は、制御系伝送路Ｌ２を介して、コントローラ１から制御情報等のコントローラ情報を受信する。メディア２０８は、ＨＤＤやＳＳＤやフラッシュメモリ等であり、コントローラ１から受信したコントローラ情報等の各種情報を記憶する。
【００２１】
セキュリティ管理部２０９は、外部装置から管理サーバ２内に進入するコンピュータウィルスの検知、外部装置から管理サーバ２に対するアクセスの制御、外部装置と送受信するデータの欠落や誤りなどのデータの完全性の検知等、管理サーバ２のセキュリティに関するセキュリティ診断処理を実行する。更新管理部２１０は、上位サーバ３から、コントローラ１のＯＳ１０１やユーティリティ２０４の更新内容を示す更新情報を取得する。更新シミュレータ２１１は、更新後のＯＳ１０１やユーティリティ２０４の動作を診断する診断処理を実行する。ＶＭ２１２は、更新後のＯＳ１０１およびユーティリティ２０４の少なくとも一方を用いて、コントローラツール２００によりエディトやコンパイル等されたユーザアプリケーション（コントローラ１において実行されるユーザアプリケーション）を実行して仮想的に制御対象機器を制御する仮想制御処理（第２処理の一例）を実行する。ＰＸＥサーバ２１３は、コントローラ１に対するネットワークブートを実行する。ＯＳ２１４は、メディア２０８等の記憶部に記憶される。本実施形態では、ＯＳ２１４は、管理サーバ２が備えるＮＩＣのドライバであるＩＦドライバ２１５等を有する。
【００２２】
図４は、第１の実施形態にかかる制御システムが有する上位サーバの機能構成の一例を示す図である。図４に示すように、本実施形態では、上位サーバ３（外部サーバの一例）は、ＯＳイメージ登録部３００と、ＯＳイメージ配信部３０１と、ユーザ情報記憶部３０２と、認証部３０３と、機器情報記憶部３０４と、セキュリティ部３０５と、メディア３０６と、表示部３０７と、上位系伝送部３０８と、ユーティリティ３０９と、ＯＳ３１０と、を有する。
【００２３】
ＯＳイメージ登録部３００は、コントローラ１に記憶されるＯＳ１０１やユーティリティ１０４の更新内容を表す更新情報を記憶する。ＯＳイメージ配信部３０１は、ＯＳイメージ登録部３００に記憶された更新情報を、管理サーバ２を介して、コントローラ１に配信する。ユーザ情報記憶部３０２は、制御システムのユーザに関するユーザ情報を記憶する。認証部３０３は、ユーザ情報記憶部３０２に記憶されたユーザ情報を用いて、制御システムのユーザの認証処理を実行する。機器情報記憶部３０４は、制御システムが有するコントローラ１の機種，製品番号，シリーズ名，シリアル番号等、当該コントローラ１に関する機器情報を記憶する。
【００２４】
セキュリティ部３０５は、外部装置から上位サーバ３内に進入するコンピュータウィルスの検知、外部装置からコントローラ１に対するアクセスの制御、外部装置と送受信するデータの欠落や誤りなどのデータ完全性の検知等、上位サーバ３のセキュリティに関するセキュリティ診断処理を実行する。メディア３０６は、ＨＤＤやＳＳＤやフラッシュメモリ等であり、コントローラ情報等の各種情報を記憶する。表示部３０７は、上位サーバ３のユーザに対して各種情報を表示する。上位系伝送部３０８は、管理サーバ２やコントローラ１等のローカルネットワーク内の外部装置との通信を行う。ユーティリティ３０９は、コントローラ１と同様、ユーザアプリケーションを動作させるプログラムの一例である。ＯＳ３１０は、メディア３０６等の記憶部に記憶される。本実施形態では、ＯＳ３１０は、上位サーバ３が備えるＮＩＣのドライバであるＩＦドライバ３１１を有する。
【００２５】
上位サーバ３は、制御システム内に複数設けても良い。また、上位サーバ３は、クラウド上に配置され、機器メーカや管理会社によって運用管理されるようにしても良い。
【００２６】
次に、図５を用いて、本実施形態にかかる制御システムにおけるコントローラ１のＯＳ１０１およびユーティリティ１０４の更新処理の流れについて説明する。図５は、第１の実施形態にかかる制御システムにおけるコントローラのＯＳおよびユーティリティの更新処理の流れの一例を示すシーケンス図である。以下の説明では、コントローラ１のＯＳ１０１およびユーティリティ１０４の両方が更新される例について説明するが、コントローラ１のＯＳ１０１およびユーティリティ１０４の少なくとも一方が更新されるものであっても良い。
【００２７】
図５に示すように、まず、管理サーバ２の更新管理部２１０が、ネットワークＮＴを介して、上位サーバ３に対して更新情報の有無を問い合わせる（ステップＳ５０１）。上位サーバ３のＯＳイメージ配信部３０１は、ＯＳイメージ登録部３００に更新情報が記憶されている場合、更新情報があることを管理サーバ２に対して通知する（ステップＳ５０２）。本実施形態では、ＯＳイメージ配信部３０１は、上位サーバ３が実行する他の動作に影響の無い余剰時間に、更新情報の有無を管理サーバ２に通知しても良い。
【００２８】
管理サーバ２の更新管理部２１０は、上位サーバ３から、更新情報が有ることが通知されると、上位サーバ３から更新情報が有ることが通知された日時をログとしてメディア２０８に記録する（ステップＳ５０３）。その際、表示部２０５は、更新情報が有ることを通知するポップアップ表示等を表示しても良い。若しくは、更新管理部２１０は、予め登録されたメールアドレスの情報処理端末に対して、更新情報が有ることを示すメールを送信しても良い。
【００２９】
その後、更新管理部２１０は、上位サーバ３に対して更新情報の送信を要求する（ステップＳ５０４）。本実施形態では、更新管理部２１０は、上位サーバ３から更新情報が有ることが通知された場合、自動的に、上位サーバ３に対して更新情報の送信を要求しても良いし、図示しない操作部等からの更新情報の取得指示の入力を待って、上位サーバ３に対して更新情報の送信を要求しても良い。上位サーバ３のＯＳイメージ配信部３０１は、管理サーバ２から更新情報の送信が要求されると、ＯＳイメージ登録部３００に記憶された更新情報を、上位系伝送部３０８を介して、管理サーバ２に対して送信する（ステップＳ５０５）。
【００３０】
管理サーバ２の更新管理部２１０は、上位サーバ３からの更新情報の受信が完了すると、セキュリティ管理部２０９を制御して、チェックサム等によって、当該受信した更新情報に異常が無いか否かを判断するファイルチェックを実行する（ステップＳ５０６）。更新管理部２１０は、ファイルチェックによって当該受信した更新情報に異常が無いと判断した場合、更新情報が有ることを更新シミュレータ２１１に通知する（ステップＳ５０７）。更新シミュレータ２１１は、更新管理部２１０により受信した更新情報を、ＶＭ２１２に入力する（ステップＳ５０８）。ＶＭ２１２は、更新管理部２１０から入力された更新情報が示す更新内容を更新した、コントローラ１のＯＳ１０１およびユーティリティ２０４を展開する（ステップＳ５０９）。
【００３１】
次いで、更新シミュレータ２１１は、ＶＭ２１２に対して、コントローラツール２００によりコンパイル等されたユーザアプリケーション（コントローラ１で動作するユーザアプリケーション）およびユーザアプリパラメータ管理部２０１に記憶されたパラメータの展開を指示する（ステップＳ５１０）。ＶＭ２１２は、コントローラ１で動作するユーザアプリケーションおよびユーザアプリパラメータ管理部２０１に記憶されたパラメータを展開する（ステップＳ５１１）。その後、ＶＭ２１２は、更新後のＯＳ１０１およびユーティリティ２０４を用いて、展開したユーザアプリケーションを動作させて仮想制御処理を実行する（ステップＳ５１２）。
【００３２】
更新シミュレータ２１１（診断部の一例）は、ＶＭ２１２による仮想制御処理の実行が完了すると（ステップＳ５１３）、仮想制御処理の結果と、メディア２０８に記憶された制御情報が示す制御処理の結果とに基づいて、仮想制御処理の結果を診断する（ステップＳ５１４）。これにより、制御システムにおいて、更新後のＯＳ１０１およびユーティリティ２０４とユーザアプリケーションとの組み合わせの動作を診断することができるので、コントローラ１のＯＳ１０１およびユーティリティ１０４の更新に対する対応を向上させることができる。
【００３３】
本実施形態では、更新シミュレータ２１１は、仮想制御処理の結果と、制御処理の結果とが異なった場合、仮想制御処理に異常が有ることを診断結果として更新管理部２１０に通知する（ステップＳ５１５）。更新管理部２１０は、更新シミュレータ２１１から通知された診断結果を、ログとしてメディア２０８に記録する（ステップＳ５１６）。さらに、更新管理部２１０は、更新シミュレータ２１１から通知された診断結果を、ネットワークＮＴを介して上位サーバ３に通知する（ステップＳ５１７）。制御システムは、コントローラ１のＯＳ１０１およびユーティリティ１０４を更新する場合、上述の処理を、コントローラ１０１の各ユーザアプリケーションについて繰り返し行う。
【００３４】
次に、図６〜８を用いて、本実施形態にかかる管理サーバ２における仮想制御処理の結果の診断処理の一例について説明する。図６および図７は、第１の実施形態にかかる管理サーバにおける診断処理の一例を説明するための図である。図８は、第１の実施形態に係る管理サーバにおける診断処理の流れの一例を示すシーケンス図である。
【００３５】
管理サーバ２の上位／情報系伝送部２０６および制御系伝送部２０７は、制御対象機器の制御を行っている稼働中のコントローラ１から同報送信された制御情報を受信する。図６に示すように、メディア２０８は、コントローラ１（例えば、コントローラ１−１，１−２，．．．，１−ｎ）毎に、当該コントローラ１から受信した制御情報を記憶する。これにより、管理サーバ２は、コントローラ１と制御情報を共有することができる。よって、管理サーバ２は、メディア２０８に記憶された各コントローラ１の制御情報に基づいて、制御システム内の全てのコントローラ１の稼働状態を検知することができる。
【００３６】
更新シミュレータ２１１は、図５のステップＳ５１０における、ユーザアプリケーションの展開の指示とともに、稼働中のコントローラ１である実稼働コントローラ１（例えば、コントローラ１−ｎ）の制御情報の参照を指示する（ステップＳ８０１）。ＶＭ２１２は、メディア２０８に記憶された各コントローラ１の制御情報のうち、実稼働コントローラ１−ｎの制御情報を読み出す（ステップＳ８０２）。次いで、ＶＭ２１２は、読み出した制御情報の下、更新後のＯＳ１０１およびユーティリティ２０４を用いて、実稼働コントローラ１−ｎで実行されるユーザアプリケーションを実行する仮想制御処理を実行する（ステップＳ８０３）。
【００３７】
その後、更新シミュレータ２１１は、メディア２０８から、実稼働コントローラ１−ｎの制御情報を読み出す（ステップＳ８０４）。さらに、更新シミュレータ２１１は、ＶＭ２１２から、仮想制御処理の結果を取得する（ステップＳ８０５）。そして、更新シミュレータ２１１は、図７に示すように、メディア２０８から読み出した実稼働コントローラ１−ｎの制御情報が示す制御処理の結果と、仮想制御処理の結果とを比較する診断処理を実行する（ステップＳ８０６）。
【００３８】
更新シミュレータ２１１は、実稼働コントローラ１−ｎの制御情報が示す制御処理の結果と、仮想制御処理の結果とが一致した場合、更新後のＯＳ１０１およびユーティリティ２０４を用いてユーザアプリケーションが正常に動作することを示す診断結果を更新管理部２１０に通知する（ステップＳ８０７）。一方、更新シミュレータ２１１は、実稼働コントローラ１−ｎの制御情報が示す制御処理の結果と、仮想制御処理の結果とが一致しなかった場合、更新後のＯＳ１０１およびユーティリティ１０４を用いてユーザアプリケーションが正常に動作しないことを示す診断結果を更新管理部２１０に通知する（ステップＳ８０７）。
【００３９】
更新管理部２１０は、更新シミュレータ２１１から通知された診断結果を、ログとしてメディア２０８に記録する（ステップＳ５１６）。さらに、更新管理部２１０（送信部の一例）は、更新シミュレータ２１１から通知された診断結果を、ネットワークＮＴを介して上位サーバ３（ローカルネットワーク外の外部サーバの一例）に通知する（ステップＳ５１７）。これにより、上位サーバ３を管理する機器管理者や製造メーカが、更新するＯＳ１０１およびユーティリティ１０４とユーザアプリケーションとの組み合わせの診断結果を認識することができる。
【００４０】
本実施形態では、更新シミュレータ２１１は、実稼働コントローラ１の制御情報が示す制御処理の結果と、仮想制御処理の結果とを比較して、更新するＯＳ１０１およびユーティリティ２０４を用いてユーザアプリケーションが正常に動作するか否かを判断しているが、これに限定するものではない。例えば、更新シミュレータ２１１は、ＶＭ２１２による更新後のＯＳ１０１およびユーティリティ２０４を用いたユーザアプリケーションの動作による仮想制御処理を示すログを参照して、ユーザアプリケーションの実行結果に異常があるか否かに基づいて、仮想制御処理の結果を診断しても良い。
【００４１】
本実施形態では、管理サーバ２は、当該管理サーバ２が有するＣＰＵやメモリ等のリソースに空きがあれば、仮想制御処理を同時に実行可能な複数のＶＭ２１２を有していても良い。この場合、各ＶＭ２１２は、更新後のＯＳ１０１およびユーティリティ２０４を用いて、互いに異なるコントローラ１のユーザアプリケーションの実行による制御対象機器の仮想制御処理を実行する。これにより、複数のコントローラ１のユーザアプリケーションの実行による仮想制御処理を同時に実行することができるので、更新後のＯＳ１０１およびユーティリティ２０４を用いた、各コントローラ１のユーザアプリケーションの実行による制御対象機器の仮想制御処理の結果の診断に要する時間を短縮できる。
【００４２】
このように、第１の実施形態にかかる制御システムによれば、コントローラ１のＯＳ１０１の更新に対する対応を向上させることができる。
【００４３】
（第２の実施形態）
本実施形態は、診断用のコントローラの制御機能部が、更新後のＯＳおよびユーティリティを用いて、診断対象のコントローラのメディアに記憶されたユーザアプリケーションを実行して制御対象機器の制御処理（第３処理の一例）を実行する例である。以下の説明では、第１の実施形態と同様の箇所については説明を省略する。
【００４４】
管理サーバ２がＶＭ２１２を有していない場合、診断用のコントローラ１である診断用コントローラ１（所定のコントローラの一例）の制御機能部１１４が、更新後のＯＳ１０１およびユーティリティ１０４を用いてユーザアプリケーションを実行して、制御対象機器を制御する仮制御処理（第３処理の一例）を実行する。制御システムは、仮制御処理のみ実行する診断用コントローラ１を有していることが好ましい。診断用コントローラ１は、制御対象機器を制御するコントローラ１であっても良いし、制御対象機器の制御を行わないコントローラ１であっても良い。
【００４５】
診断用コントローラ１の制御機能部１１４は、上位サーバ３から、更新後のＯＳ１０１およびユーティリティ１０４をダウンロードし、かつ診断対象のコントローラ１のメディア１１０から、ユーザアプリケーションをダウンロードする。その後、診断用コントローラ１の制御機能部１１４は、更新後のＯＳ１０１およびユーティリティ１０４を用いて、診断対象のコントローラ１のメディア１１０に記憶されたユーザアプリケーションを実行して、制御対象機器を制御する仮制御処理を実行する。これにより、制御機能部１１４は、診断用コントローラ１を稼働状態となる。診断用コントローラ１が稼働状態になると、情報系伝送部１１１または制御系伝送部１１２は、実行中の仮制御処理の結果を示す情報を、制御情報として、他のコントローラ１および管理サーバ２に同報送信する。
【００４６】
管理サーバ２のメディア２０８は、診断用コントローラ１から同報送信された制御情報を記憶する。そして、更新シミュレータ２１１は、メディア２０８に記憶された診断用コントローラ１の制御情報が示す制御処理の結果を、仮想制御処理の結果として用いて、当該仮想制御処理の結果を診断する。
【００４７】
図９は、第２の実施形態にかかる管理サーバにおける診断処理の一例を説明するための図である。図９に示すように、本実施形態では、更新シミュレータ２１１は、メディア２０８に記憶された診断用コントローラ１−ｎ＋１の制御情報が示す仮制御処理の結果と、診断対象のコントローラ１（例えば、コントローラ１−１）の制御情報が示す制御処理の結果とに基づいて、更新後のＯＳ１０１およびユーティリティ１０４を用いたユーザアプリケーションの実行による制御対象機器の制御処理の結果を診断する。
【００４８】
これにより、管理サーバ２にＶＭ２１２を設けなくても、更新後のＯＳ１０１およびユーティリティ１０４とユーザアプリケーションとの組み合わせの診断を行うことができるので、ＶＭ２１２を有しない制御システムにおいても、更新後のＯＳ１０１およびユーティリティ１０４とユーザアプリケーションとの組み合わせの診断を実行することができる。本実施形態では、１つの診断用コントローラ１において、更新後のＯＳ１０１およびユーティリティ１０４とユーザアプリケーションとの組み合わせの診断を行っているが、これに限定するものではなく、複数の診断用コントローラ１において、更新後のＯＳ１０１およびユーティリティ１０４とユーザアプリケーションとの組み合わせの診断を行うことも可能である。
【００４９】
このように、第２の実施形態にかかる制御システムによれば、ＶＭ２１２を有しない制御システムにおいても、更新後のＯＳ１０１およびユーティリティ１０４とユーザアプリケーションとの組み合わせの診断を実行することができる。
【００５０】
（第３の実施形態）
本実施形態は、ローカルネットワーク外の上位サーバ（外部サーバの一例）において、更新後のＯＳおよびユーティリティとユーザアプリケーションとの組み合わせの診断を実行する例である。以下の説明では、第１の実施形態と同様の箇所については説明を省略する。
【００５１】
図１０は、第３の実施形態にかかる上位サーバの機能構成の一例を示す図である。図１０に示すように、本実施形態では、上位サーバ１０００は、ＯＳイメージ登録部３００、ＯＳイメージ配信部３０１、ユーザ情報記憶部３０２、認証部３０３、機器情報記憶部３０４、セキュリティ部３０５、メディア３０６、表示部３０７、上位系伝送部３０８、ユーティリティ３０９、およびＯＳ３１０に加えて、アプリケーション管理部１００１、更新管理部１００２、更新シミュレータ１００３、およびＶＭ１００４を有する。
【００５２】
本実施形態では、アプリケーション管理部１００１（取得部の一例）は、管理サーバ２から、コントローラツール２００によりコンパイル等されたユーザアプリケーションおよびメディア２０８に記憶された制御情報を取得する。更新管理部１００２は、ＯＳイメージ登録部３００から、更新情報を取得する。更新シミュレータ１００３（第２診断部の一例）は、管理サーバ２に代わって、仮想制御処理の結果を診断する診断処理を実行可能である。ＶＭ１００４（第２バーチャルマシンの一例）は、管理サーバ２に代わって、更新後のＯＳ１０１およびユーティリティ３０９を用いて、アプリケーション管理部１００１により取得されたユーザアプリケーションを実行して仮想制御処理を実行可能である。
【００５３】
図１１は、第３の実施形態にかかる制御システムにおけるコントローラのＯＳおよびユーティリティの更新処理の流れの一例を示すシーケンス図である。図１１に示すように、アプリケーション管理部１００１は、管理サーバ２のコントローラツール２００によりコンパイル等されたユーザアプリケーションを取得する（ステップＳ１１０１）。さらに、アプリケーション管理部１００１は、管理サーバ２のメディア２０８から、各コントローラ１の制御情報を取得する。そして、アプリケーション管理部１００１は、取得したユーザアプリケーションおよび制御情報を、メディア３０６に保存する（ステップＳ１１０２）。
【００５４】
更新管理部１００２は、ＯＳイメージ登録部３００に対して、更新情報の有無を問い合わせる（ステップＳ１１０３）。更新管理部１００２は、ＯＳイメージ登録部３００から、更新情報の有無の通知を受ける（ステップＳ１１０４）。そして、更新管理部１００２は、ＯＳイメージ登録部３００から、更新情報が有ることが通知されると、ＯＳイメージ登録部３００から更新情報が有ることが通知された日時をログとしてメディア３０６に記録する（ステップＳ１１０５）。さらに、更新管理部１００２は、更新情報が有ることを更新シミュレータ２１１に通知するとともに（ステップＳ１１０６）、ＯＳイメージ登録部３００から、更新情報を取得する。
【００５５】
更新シミュレータ１００３は、更新管理部１００２に取得された更新情報を、ＶＭ１００４に入力する（ステップＳ１１０７）。ＶＭ１００４は、更新シミュレータ１００３から入力された更新情報に従って更新した、コントローラ１のＯＳ１０１およびユーティリティ３０９を展開する（ステップＳ１１０８）。次いで、更新シミュレータ１００３は、ＶＭ１００４に対して、メディア３０６に記憶されたユーザアプリケーションの展開を指示する（ステップＳ１１０９）。ＶＭ１００４は、メディア３０６に記憶されたユーザアプリケーションを展開する（ステップＳ１１１０）。その後、ＶＭ１００４は、更新後のＯＳ１０１およびユーティリティ３０９を用いてユーザアプリケーションを実行して仮想制御処理を実行する（ステップＳ１１１１）。これにより、管理サーバ２に対して、ＶＭ１００４などの処理負荷が高い機能を設ける必要が無くなるので、管理サーバ２の処理負荷を軽減することができる。
【００５６】
更新シミュレータ１００３は、ＶＭ１００４による仮想制御処理の実行が完了すると（ステップＳ１１１２）、仮想制御処理の結果と、メディア３０６に記憶された制御情報が示す制御処理の結果とに基づいて、仮想制御処理の結果を診断する（ステップＳ１１１３）。そして、更新シミュレータ１００３は、診断結果を更新管理部１００２に通知する（ステップＳ１１１４）。更新管理部１００２は、更新シミュレータ１００３から通知された診断結果を、ログとしてメディア３０６に記録する（ステップＳ１１１５）。
【００５７】
さらに、更新管理部１００２は、更新シミュレータ１００３から通知された診断結果が、仮想制御処理に異常が有ることを示している場合、ＯＳイメージ配信部３０１に対して、更新情報の配信を指示しない。一方、更新管理部１００２は、更新シミュレータ１００３から通知された診断結果が、仮想制御処理に異常が無いことを示している場合、ＯＳイメージ配信部３０１に対して、更新情報の配信を指示する（ステップＳ１１１６）。ＯＳイメージ配信部３０１は、更新情報の配信が指示されると、管理サーバ２の更新管理部２１０を介して、コントローラ１に対して更新情報を配信する（ステップＳ１１１７）。
【００５８】
このように、第３の実施形態にかかる制御システムによれば、管理サーバ２の処理負荷を軽減することができる。
【００５９】
（第４の実施形態）
本実施形態は、管理サーバの更新管理部が、コントローラのＯＳおよびユーティリティを更新後、ネットワークブートによって当該更新後のＯＳおよびユーティリティを再起動させる例である。以下の説明では、第１の実施形態と同様の箇所については説明を省略する。
【００６０】
図１２は、第４の実施形態にかかる制御システムにおけるコントローラのＯＳおよびユーティリティの更新処理の流れの一例を示す図である。図１２に示すように、管理サーバ２の更新管理部２１０は、更新シミュレータ２１１の診断によって仮想制御処理の結果に異常が検知されず、かつ上位サーバ３からコントローラ１のＯＳ１０１の更新が指示された場合（ステップＳ１２０１）、ＰＸＥサーバ２１３に対して、仮想制御処理の結果に異常が検知されなかったことを通知する（ステップＳ１２０２）。ＰＸＥサーバ２１３は、コントローラ１のメディア１１０において更新後のＯＳ１０１およびユーティリティ１０４を保存するフォルダ、およびネットワークブートによって更新後のＯＳ１０１およびユーティリティ１０４を起動するパスを設定するＰＸＥサーバ設定処理を実行する（ステップＳ１２０３）。さらに、次いで、ＰＸＥサーバ２１３は、ＯＳ１０１およびユーティリティ１０４を更新するコントローラ１（以下、更新対象コントローラと言う）のＩＰアドレスやＭＡＣアドレスを用いて、当該更新対象コントローラ１のＯＳ１０１およびユーティリティ１０４を更新して、当該更新後のＯＳ１０１およびユーティリティ１０４を起動可能とする。
【００６１】
次いで、ＰＸＥサーバ２１３（再起動部の一例）は、ネットワークブートによって、更新後のＯＳ１０１およびユーティリティ１０４を用いた、更新対象コントローラ１の再起動を指示する（ステップＳ１２０４）。更新対象コントローラ１の制御機能部１１４は、ＰＸＥクライアント１０３を介して管理サーバ２から受信した指示に従って、更新後のＯＳ１０１およびユーティリティ１０４を用いて、更新対象コントローラ１を再起動する（ステップＳ１２０５）。これにより、更新対象コントローラ１のＯＳ１０１およびユーティリティ１０４が更新された場合に、更新後のＯＳ１０１およびユーティリティ１０４を再起動させる操作をユーザが行わなくて良いで、更新対象コントローラ１のＯＳ１０１およびユーティリティ１０４の更新におけるユーザの作業負担を軽減することができる。
【００６２】
更新対象コントローラ１を再起動させた後、ＰＸＥサーバ２１３は、更新後のＯＳ１０１およびユーティリティ１０４を用いて実行可能なユーザアプリケーションをコントローラ１に対してダウンロードする（ステップＳ１２０６）。更新対象コントローラ１の制御機能部１１４は、更新後のＯＳ１０１およびユーティリティ１０４を用いて、当該ダウンロードしたユーザアプリケーションを実行して、制御対象機器の制御処理を実行する（ステップＳ１２０７）。さらに、制御機能部１１４は、更新後のＯＳ１０１およびユーティリティ１０４を用いたユーザアプリケーションの実行結果を、管理サーバ２のＰＸＥサーバ２１３に通知する（ステップＳ１２０８）。
【００６３】
ＰＸＥサーバ２１３は、更新後のＯＳ１０１およびユーティリティ１０４を用いたユーザアプリケーションの実行結果を診断する（ステップＳ１２０９）。そして、ＰＸＥサーバ２１３は、更新後のＯＳ１０１およびユーティリティ１０４を用いたユーザアプリケーションの実行結果に異常が有るか否かを示す診断結果を更新管理部２１０に通知する（ステップＳ１２１０）。更新管理部２１０は、診断結果をログとして、メディア２０８に記録する（ステップＳ１２１１）。さらに、更新管理部２１０は、診断結果を上位サーバ３に通知する（ステップＳ１２１２）。上位サーバ３は、当該診断結果が、更新後のＯＳ１０１およびユーティリティ１０４を用いたユーザアプリケーションの実行結果に異常が有ることを示している場合、ＰＸＥサーバ２１３に対して、更新対象コントローラ１のＯＳ１０１およびユーティリティ１０４のロールバックを指示する（ステップＳ１２１３）。
【００６４】
ＰＸＥサーバ２１は、上位サーバ３からロールバックが指示されると、更新対象コントローラ１のメディア１１０において更新前のＯＳ１０１やユーティリティ１０４を保存するフォルダ、およびネットワークブートによって更新前のＯＳ１０１およびユーティリティ１０４を起動するパスを設定するＰＸＥサーバ設定処理を実行する（ステップＳ１２１４）。さらに、次いで、ＰＸＥサーバ２１３は、更新対象コントローラ１のＩＰアドレスやＭＡＣアドレスを用いて、当該更新対象コントローラ１のＯＳ１０１およびユーティリティ１０４を更新して、当該更新前のＯＳ１０１およびユーティリティ１０４を起動可能とする。
【００６５】
次いで、ＰＸＥサーバ２１３は、ネットワークブートによって、更新前のＯＳ１０１およびユーティリティ１０４を用いた更新対象コントローラ１の再起動を指示する。これにより、更新対象コントローラ１の制御機能部１１４は、メディア１１０に記憶されたＯＳ１０１およびユーティリティ１０４を更新後、制御処理に異常が発生した場合、ＯＳ１０１およびユーティリティ１０４をロールバックする。
【００６６】
更新対象コントローラ１を再起動させた後、ＰＸＥサーバ２１３は、更新前のＯＳ１０１およびユーティリティ１０４を用いて実行可能なユーザアプリケーションをコントローラ１に対してダウンロードする。更新対象コントローラ１の制御機能部１１４は、更新前のＯＳ１０１およびユーティリティ１０４を用いて、当該ダウンロードしたユーザアプリケーションを実行して、制御対象機器の制御処理を実行する。
【００６７】
このように、第４の実施形態にかかる制御システムによれば、更新対象コントローラ１のＯＳ１０１およびユーティリティ１０４の更新におけるユーザの作業負担を軽減することができる。
【００６８】
（第５の実施形態）
本実施形態では、管理サーバの表示部が、コントローラのＯＳおよびユーティリティが所定期間以上更新されていない場合、当該ＯＳおよびユーティリティの更新の異常を示す情報を表示する例である。以下の説明では、第１の実施形態と同様の箇所については説明を省略する。
【００６９】
図１３は、第５の実施形態にかかる制御システムにおける異常検知結果の表示処理の流れの一例を示すシーケンス図である。本実施形態では、更新管理部２１０は、上位サーバ３に対して、所定期間以上、ＯＳ１０１およびユーティリティ１０４が更新されていないコントローラ１があるか否かを問い合わせる（ステップＳ１３０１）。更新管理部２１０は、予め設定された周期で、上位サーバ３に対して、ＯＳ１０１およびユーティリティ１０４が更新されていないコントローラ１があるか否かを問い合わせるものとする。そして、更新管理部２１０は、上位サーバ３から通知された、ＯＳ１０１およびユーティリティ１０４が更新されていないコントローラ１の有無を、ログとしてメディア２０８に記録する（ステップＳ１３０３）。
【００７０】
また、所定期間以上、ＯＳ１０１およびユーティリティ１０４が更新されていないコントローラ１があることが通知された場合、更新管理部２１０は、コントローラ１のＯＳ１０１およびユーティリティ１０４の更新の異常を示す情報を表示部２０５に表示するアラーム表示処理を実行する（ステップＳ１３０４）。これにより、コントローラ１のＯＳ１０１およびユーティリティ１０４が更新されず、古いＯＳ１０１およびユーティリティ１０４が利用され続け、セキュリティホールとなることを防止できるので、コントローラ１のセキュリティ機能を向上させることができる。
【００７１】
このように、第５の実施形態にかかる制御システムによれば、コントローラ１のセキュリティ機能を向上させることができる。
【００７２】
以上説明したとおり、第１から第５の実施形態によれば、コントローラ１のＯＳ１０１およびユーティリティ１０４の更新に対する対応を向上させることができる。
【００７３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７４】
１  コントローラ
２  管理サーバ
３  上位サーバ
１０１  ＯＳ
１０４，２０４，３０９  ユーティリティ
１１０  メディア
１１１  情報系伝送部
１１２  制御系伝送部
１１４  制御機能部
２０５  表示部
２０６  上位／情報系伝送部
２０７  制御系伝送部
２１０，１００２  更新管理部
２１１，１００３  更新シミュレータ
２１２，１００４  ＶＭ（バーチャルマシン）
【図１】
2017107297.tif 000003
【図２】
2017107297.tif 000004
【図３】
2017107297.tif 000005
【図４】
2017107297.tif 000006
【図５】
2017107297.tif 000007
【図６】
2017107297.tif 000008
【図７】
2017107297.tif 000009
【図８】
2017107297.tif 000010
【図９】
2017107297.tif 000011
【図１０】
2017107297.tif 000012
【図１１】
2017107297.tif 000013
【図１２】
2017107297.tif 000014
【図１３】
2017107297.tif 000015