(57)【要約】      （修正有）【課題】ホストＯＳおよびゲストＯＳに対してハードウェアが誤って割り当てられる可能性を低減する。【解決手段】エンジニアリングツールは、ハードウェア（ＨＤ)割当データ記憶部と、割当条件記憶部と、ツールプロセス部と、を備える。ＨＤ割当データ記憶部は、コントローラにおいて実行されるホストＯＳおよびホストＯＳ上に実現される仮想マシン上で動作するゲストＯＳそれぞれに対するＨＤの割り当てを示しかつコントローラにダウンロードするＨＤ割当データを記憶する。割当条件記憶部は、ホストＯＳおよびゲストＯＳに対するＨＤの割当条件を記憶する。ツールプロセス部は、ＨＤ割当データが、割当条件記憶部の割当条件を満たすと判断した場合、入力されたＨＤ割当データを記憶部に保存し、入力されたハードウェア割当データが割当条件を満たさないと判断した場合、入力されたＨＤ割当データをハードウェア割当データ記憶部に保存しない。【選択図】図２
2019152996.tif 000002
【特許請求の範囲】
【請求項１】
コントローラにおいて実行されるホストＯＳ（Operating  System）および当該ホストＯＳ上に実現される仮想マシン上で動作するゲストＯＳそれぞれに対するハードウェアの割り当てを示しかつ前記コントローラにダウンロードするハードウェア割当データを記憶するハードウェア割当データ記憶部と、
前記ホストＯＳおよび前記ゲストＯＳに対する前記ハードウェアの割当条件を記憶する割当条件記憶部と、
前記ハードウェア割当データを入力するための設定画面を表示部に表示させ、前記設定画面を用いて入力された前記ハードウェア割当データが、前記割当条件記憶部に記憶される前記割当条件を満たすと判断した場合、前記入力されたハードウェア割当データを前記ハードウェア割当データ記憶部に保存し、前記入力されたハードウェア割当データが前記割当条件を満たさないと判断した場合、前記入力されたハードウェア割当データを前記ハードウェア割当データ記憶部に保存しないツールプロセス部と、
を備えるエンジニアリングツール。
【請求項２】
ハードウェアと、
ホストＯＳと、
前記ホストＯＳ上に実現される仮想マシンと、
前記仮想マシン上で動作するゲストＯＳと、
ハードウェア割当データ記憶部と、
前記ホストＯＳおよび前記ゲストＯＳに対する前記ハードウェアの割当条件を記憶する割当条件記憶部と、
エンジニアリングツールから、前記ホストＯＳおよび前記ゲストＯＳそれぞれに対する前記ハードウェアの割り当てを示すハードウェア割当データを受信し、前記ハードウェア割当データが、前記割当条件記憶部に記憶される前記割当条件を満たすと判断した場合、前記ハードウェア割当データを前記ハードウェア割当データ記憶部に保存し、前記ハードウェア割当データが前記割当条件を満たさないと判断した場合、前記ハードウェア割当データを前記ハードウェア割当データ記憶部に保存しないコントローラプロセス部と、
前記ゲストＯＳによって動作し、前記ハードウェア割当データ記憶部に記憶される前記ハードウェア割当データに従って前記ゲストＯＳに割り当てられた前記ハードウェアを用いて、外部の制御対象機器の制御処理を実行するゲストプロセス部と、
前記ホストＯＳによって動作し、前記ハードウェア割当データ記憶部に記憶される前記ハードウェア割当データに従って前記ホストＯＳに割り当てられた前記ハードウェアを用いて、前記制御対象機器の制御処理を実行するホストプロセス部と、
を備えるコントローラ。
【請求項３】
エンジニアリングツールと、コントローラと、を有する制御システムであって、
前記エンジニアリングツールは、
前記コントローラにおいて実行されるホストＯＳおよび当該ホストＯＳ上に実現される仮想マシン上で動作するゲストＯＳそれぞれに対するハードウェアの割り当てを示しかつ前記コントローラにダウンロードするハードウェア割当データを記憶するツール側ハードウェア割当データ記憶部と、
前記ホストＯＳおよび前記ゲストＯＳに対する前記ハードウェアの割当条件を記憶するツール側割当条件記憶部と、
前記ハードウェア割当データを入力するための設定画面を表示部に表示させ、前記設定画面を用いて入力された前記ハードウェア割当データが前記ツール側割当条件記憶部に記憶される前記割当条件を満たすと判断した場合、前記入力されたハードウェア割当データを前記ツール側ハードウェア割当データ記憶部に保存し、前記入力されたハードウェア割当データが前記ツール側割当条件記憶部に記憶される前記割当条件を満たさないと判断した場合、前記入力されたハードウェア割当データを前記ツール側ハードウェア割当データ記憶部に保存しないツールプロセス部と、
を備え、
前記コントローラは、
前記ハードウェアと、
前記ホストＯＳと、
前記ホストＯＳ上に実現される仮想マシンと、
前記仮想マシン上で動作する前記ゲストＯＳと、
コントローラ側ハードウェア割当データ記憶部と、
前記割当条件を記憶するコントローラ側割当条件記憶部と、
前記エンジニアリングツールから、前記ハードウェア割当データを受信し、前記受信したハードウェア割当データが、前記コントローラ側割当条件記憶部に記憶される前記割当条件を満たすと判断した場合、前記受信したハードウェア割当データを前記コントローラ側ハードウェア割当データ記憶部に保存し、前記受信したハードウェア割当データが前記コントローラ側割当条件記憶部に記憶される前記割当条件を満たさないと判断した場合、前記受信したハードウェア割当データを前記コントローラ側ハードウェア割当データ記憶部に保存しないコントローラプロセス部と、
前記ゲストＯＳによって動作し、前記コントローラ側ハードウェア割当データ記憶部に記憶される前記ハードウェア割当データに従って前記ゲストＯＳに割り当てられた前記ハードウェアを用いて、外部の制御対象機器の制御処理を実行するゲストプロセス部と、
前記ホストＯＳによって動作し、前記コントローラ側ハードウェア割当データ記憶部に記憶される前記ハードウェア割当データに従って前記ホストＯＳに割り当てられた前記ハードウェアを用いて、前記制御対象機器の制御処理を実行するホストプロセス部と、
を備える制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、エンジニアリングツール、コントローラ、および制御システムに関する。
【背景技術】
【０００２】
サーバ仮想化という、１台のコンピュータを論理分割して、当該コンピュータで複数のＯＳ（Operating  System）を稼働させる技術がある。この技術を、プラント内のバルブ等の制御対象機器を制御する制御システムに適用することができれば、ＨＭＩ（Human  Machine  Interface）、エンジニアリングツール、コントローラなどを１台のコンピュータに集約できる。これにより、制御システムにおける設備の導入費用、電力や空調にかかるコストの削減に大きな効果が期待できる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１６／１８９６８９号
【特許文献２】国際公開第２０１５／１３７５０５号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、制御システムに対してサーバ仮想化を導入する場合、エンジニアリングツールを使用するエンジニアによって設定されたハードウェア割当データに基づいて、コンピュータのホストＯＳ上に実現される仮想マシン上で動作するゲストＯＳに対して、ハードウェアを割り当てて、仮想マシンを起動させる必要がある。その際、ハードウェア割当データの設定に誤りが存在すると、制御システムが正常に動作しない場合がある。
【課題を解決するための手段】
【０００５】
実施形態のエンジニアリングツールは、ハードウェア割当データ記憶部と、割当条件記憶部と、ツールプロセス部と、を備える。ハードウェア割当データ記憶部は、コントローラにおいて実行されるホストＯＳ（Operating  System）および当該ホストＯＳ上に実現される仮想マシン上で動作するゲストＯＳそれぞれに対するハードウェアの割り当てを示しかつコントローラにダウンロードするハードウェア割当データを記憶する。割当条件記憶部は、ホストＯＳおよびゲストＯＳに対するハードウェアの割当条件を記憶する。ツールプロセス部は、ハードウェア割当データを入力するための設定画面を表示部に表示させ、設定画面を用いて入力されたハードウェア割当データが、割当条件記憶部に記憶される割当条件を満たすと判断した場合、入力されたハードウェア割当データをハードウェア割当データ記憶部に保存し、入力されたハードウェア割当データが割当条件を満たさないと判断した場合、入力されたハードウェア割当データをハードウェア割当データ記憶部に保存しない。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１の実施形態にかかる制御システムの機能構成の一例を示す図である。
【図２】図２は、第１の実施形態にかかる制御システムが有するコントローラおよびツール用ＰＣの機能構成の一例を示す図である。
【図３】図３は、第１の実施形態にかかるツール用ＰＣによるハードウェア割当データの設定処理の流れの一例を示す図である。
【図４】図４は、第１の実施形態にかかるツール用ＰＣにおいて表示される設定画面の一例を示す図である。
【図５】図５は、第１の実施形態にかかるツール用ＰＣにおいて表示されるエラー表示の一例を示す図である。
【図６】図６は、第１の実施形態にかかるコントローラに対するハードウェア割当データのダウンロード処理の流れの一例を示す図である。
【図７】図７は、第２の実施形態にかかるツール用ＰＣにおいて表示される設定画面の一例を示す図である。
【発明を実施するための形態】
【０００７】
以下、添付の図面を用いて、本実施形態にかかるエンジニアリングツール、コントローラ、および制御システムについて説明する。
【０００８】
（第１の実施形態）
図１は、第１の実施形態にかかる制御システムの機能構成の一例を示す図である。図１に示すように、本実施形態にかかる制御システムは、コントローラ１と、ツール用ＰＣ２（エンジニアリングツールの一例）と、を有する。そして、コントローラ１とツール用ＰＣ２とは、ＬＡＮ（Local  Area  Network）等のネットワークにより互いに通信可能に接続されている。本実施形態では、ツール用ＰＣ２が、コントローラ１に対して各種情報を送信する処理をダウンロード（Ｄ／Ｌ）と言うものとする。また、ツール用ＰＣ２が、コントローラ１から各種情報を取得する処理をアップロード（Ｕ／Ｌ）と言うものとする。
【０００９】
ツール用ＰＣ２は、ベンダまたはエンジニア等により用いられるエンジニアリングツールであり、ＰＯＵ（Program  Organization  Unit）や後述するハードウェア割当データ（ツールデータ）等を記憶する。ＰＯＵは、制御システム全体の処理を実行するためのプログラムを機能単位にモジュール化したプログラムである。
【００１０】
コントローラ１は、プラント内のセンサ等から各種の検出結果が入力される。また、コントローラ１は、ツール用ＰＣ２において作成されたＰＯＵがダウンロードされる。そして、コントローラ１は、当該コントローラ１内のタスク上でＰＯＵを実行する。これにより、コントローラ１は、入力された検出結果に基づく演算を行い、その演算結果に基づいて、プラント内のバルブ等の制御対象機器を制御する。
【００１１】
また、コントローラ１は、当該コントローラが有するリソース（ハードウェア）が論理分割され、複数のＯＳ（Operating  System）を稼働させて、制御システムが有するＨＭＩ（Human  Machine  Interface）や他のコントローラ等、制御対象機器の制御に関わる外部装置を集約する。ＨＭＩは、制御システムのオペレータが、リモートでコントローラ１において実行されるＰＯＵの状態等を監視したり、コントローラ１内への変数の書き込みやＰＯＵの変更等の各種操作を行ったりする用途で用いられる。
【００１２】
図２は、第１の実施形態にかかる制御システムが有するコントローラおよびツール用ＰＣの機能構成の一例を示す図である。図２に示すように、コントローラ１は、ハードウェア１０１、ホストＯＳ１０２、ホストプロセス群１０３、仮想マシン１０４、ゲストＯＳ１０５、およびゲストプロセス群１０６を有する。ハードウェア１０１は、ＣＰＵ（Central  Processing  Unit）等のプロセッサ、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）等のメモリ、ツール用ＰＣ２等の外部装置との通信に用いるＬＡＮポート、ＵＳＢ（Universal  Serial  Bus）ポート、ＰＣＩ（Peripheral  Component  Interconnect）スロット等である。
【００１３】
本実施形態では、コントローラ１は、複数のＣＰＵコア（例えば、４つのＣＰＵコア）をハードウェア１０１として有し、当該ＣＰＵコア上でソフトウェアを実行するマルチコアプロセッサである。具体的には、コントローラ１は、複数のＣＰＵコアのうちいずれかにより実行される１つのＯＳ（ホストＯＳ１０２）によって、互いに隔離された複数のコンテナ１１０，１１１を動作させる。その際、コントローラ１は、各コンテナ１１０，１１１を、異なるＣＰＵコアによって実行する。本実施形態では、図２に示すように、コントローラ１は、ホストＯＳ１０２およびホストプロセス群１０３を含むコンテナ１１０と、仮想マシン１０４、ゲストＯＳ１０５およびゲストプロセス群１０６を含むコンテナ１１１と、を異なるＣＰＵコアによって実行する。
【００１４】
ホストＯＳ１０２は、コントローラ１において仮想化される外部装置（仮想マシン１０４）を実現するＯＳである。ホストプロセス群１０３は、ホストＯＳ１０２上で動作するアプリケーションを有する。仮想マシン１０４は、ホストＯＳ１０２上で実現される。本実施形態では、仮想マシン１０４は、ＨＭＩや他のコントローラ等の外部装置のハードウェアを仮想化したマシンである。ここで、仮想化とは、外部装置のハードウェアをエミュレートすることを含む。ゲストＯＳ１０５は、仮想マシン１０４上で動作し、外部装置のプログラム（後述するゲストプロセス群１０６）を動作させるＯＳである。ゲストプロセス群１０６は、ゲストＯＳ１０５によって動作し、後述するハードウェア割当データに従ってゲストＯＳ１０５に割り当てられるハードウェア１０１を用いて、制御対象機器の制御に関わる処理（以下、制御処理と言う）を実行する。ここで、仮想マシン１０４がＨＭＩを仮想化したマシンである場合、制御処理には、制御システムの監視や当該制御システムにおいて行われるプロセスのリモート操作に関わる処理が含まれる。また、仮想マシン１０４が他のコントローラを仮想化したマシンである場合、制御処理には、制御対象機器に対して制御データを送信する等して、当該制御対象機器を制御する処理が含まれる。
【００１５】
本実施形態では、ホストプロセス群１０３は、コントローラプロセス部１０３ａを有する。コントローラプロセス部１０３ａは、ゲストＯＳ１０５を介さずにホストＯＳ１０２によって動作する。そして、コントローラプロセス部１０３ａは、ツール用ＰＣ２からＰＯＵがダウンロードされ、当該ＰＯＵを実行する。また、コントローラプロセス部１０３ａは、ツール用ＰＣ２からハードウェア割当データがダウンロードされ、当該ハードウェア割当データに従ってホストＯＳ１０２に割り当てられたハードウェア１０１によって、制御対象機器の制御に関する制御処理を実行する。ここで、ハードウェア割当データは、ホストＯＳ１０２およびゲストＯＳ１０５それぞれに対するハードウェア１０１の割り当てを示すデータである。具体的には、コントローラプロセス部１０３ａは、コントローラ１の電源が投入された場合に、ハードウェア割当データを有効化して、当該ハードウェア割当データが示すホストＯＳ１０２に割り当てられたハードウェア１０１を用いて、制御対象機器を制御する。また、コントローラプロセス部１０３ａは、ダウンロードされたハードウェア割当データを、ハードウェア１０１が有するＨＤＤ（Hard  Disk  Drive）等の不揮発性の記憶部であるハードウェア割当データ記憶部１０１ａに保存する。
【００１６】
ところで、制御システムにおけるエンジニアリングデータの管理上の観点から、ゲストＯＳ１０５に割り当てるハードウェア１０１も、ハードウェア割当データに従って管理することが好ましい。そのため、本実施形態では、ホストプロセス群１０３は、コントローラプロセス部１０３ａに加えて、ゲスト初期化プロセス部１０３ｂを有する。ゲスト初期化プロセス部１０３ｂは、コントローラ１００の電源が投入された際、ハードウェア割当データ記憶部１０１ａに記憶されるハードウェア割当データを参照して、ゲストＯＳ１０５にハードウェア１０１を割り当てるとともに、外部装置を仮想化した仮想マシン１０４をホストＯＳ１０２上に設定する。さらに、ゲスト初期化プロセス部１０３ｂは、仮想マシン１０４上でゲストＯＳ１０５を起動させる。これにより、ホストＯＳ１０２に対するハードウェア１０１の割り当てと同様の方法で、仮想マシン１０４上で動作するゲストＯＳ１０５に対してもハードウェア１０１を割り当てることができる。その結果、ＨＭＩや他のコントローラ等の外部装置を１つのコントローラ１に集約した場合でも、ハードウェア１０１の更新に応じて、ゲストＯＳ１０５に対するハードウェア１０１の割り当てを容易に管理可能となる。
【００１７】
しかしながら、ツール用ＰＣ２からダウンロードされたハードウェア割当データに誤りがあった場合、当該ダウンロードされたハードウェア割当データに従って、ホストＯＳ１０２およびゲストＯＳ１０５に対してハードウェア１０１を適切に割り当てることができず、コントローラ１に対して悪影響を及ぼす可能性がある。例えば、ダウンロードされたハードウェア割当データに従ってゲストＯＳ１０５に対して割り当てるメモリの容量が、ハードウェア１０１が有するメモリの容量より大きい場合、コントローラ１が有するＣＰＵコアがゲストＯＳ１０５を実行できず、仮想マシン１０４をＨＭＩとして機能させることができない可能性がある。
【００１８】
そこで、本実施形態では、コントローラ１は、ハードウェア１０１が有するＨＤＤ等の不揮発性の記憶部により構成される割当条件記憶部１０１ｂを有する。割当条件記憶部１０１ｂは、割当条件データを記憶する。割当条件データは、ホストＯＳ１０２およびゲストＯＳ１０５それぞれに対するハードウェア１０１の割当条件を示すデータである。コントローラプロセス部１０３ａは、ツール用ＰＣ２からハードウェア割当データがダウンロードされた際、当該ダウンロードされたハードウェア割当データが、割当条件記憶部１０１ｂに記憶される割当条件データを満たすか否かを判断する。そして、コントローラプロセス部１０３ａは、ダウンロードされたハードウェア割当データが、割当条件データを満たすと判断した場合、当該ダウンロードされたハードウェア割当データを、ハードウェア割当データ記憶部１０１ａに保存する。一方、コントローラプロセス部１０３ａは、ダウンロードされたハードウェア割当データが、割当条件データを満たさないと判断した場合、当該ダウンロードされたハードウェア割当データを、ハードウェア割当データ記憶部１０１ａに保存しない。これにより、ツール用ＰＣ２からダウンロードされた誤ったハードウェア割当データに従って、ホストＯＳ１０２およびゲストＯＳ１０５に対してハードウェア１０１が割り当てられることを防止できるので、コントローラ１に対して悪影響を及ぼす可能性を低減できる。また、エンジニアによるツール用ＰＣ２の操作によって、ハードウェア割当データのアップロードが指示された場合、ハードウェア割当データ記憶部１０１ａに記憶されるハードウェア割当データは、ツール用ＰＣ２によってアップロードされる。
【００１９】
次に、ツール用ＰＣ２の機能構成について説明する。図２に示すように、ツール用ＰＣ２は、ツールプロセス部２０１、表示部２０２、割当条件記憶部２０３、およびハードウェア割当データ記憶部２０４を有する。ハードウェア割当データ記憶部２０４は、コントローラ１の機種毎またはコントローラ１のネットワークアドレス（例えば、ＩＰアドレス）毎に、ハードウェア割当データを記憶する。割当条件記憶部２０３は、コントローラ１の機種毎またはコントローラ１のネットワークアドレス（例えば、ＩＰアドレス）毎に、割当条件データを記憶する。
【００２０】
ツールプロセス部２０１は、ツール用ＰＣ２全体を制御する。本実施形態では、ツール用ＰＣ２は、ＣＰＵ等のプロセッサ、ＲＯＭやＲＡＭ等のメモリ等のハードウェアを有し、プロセッサがメモリに記憶されるプログラムを実行することによってツールプロセス部２０１を実現するものとするが、これに限定するものではなく、回路によってツールプロセス部２０１を実現することも可能である。
【００２１】
具体的には、ツールプロセス部２０１は、ハードウェア割当データを入力するための設定画面を表示部２０２に表示させる。また、ツールプロセス部２０１は、設定画面を用いて入力されたハードウェア割当データが、割当条件記憶部２０３に記憶される割当条件データを満たすか否かを判断する。そして、ツールプロセス部２０１は、ハードウェア割当データが割当条件データを満たすと判断した場合、当該ハードウェア割当データをハードウェア割当データ記憶部２０４に保存する。一方、ツールプロセス部２０１は、ハードウェア割当データが割当条件データを満たさないと判断した場合、当該ハードウェア割当データをハードウェア割当データ記憶部２０４に保存しない。これにより、コントローラ１にダウンロードするハードウェア割当データに従って、ホストＯＳ１０２およびゲストＯＳ１０５に対して誤ってハードウェア１０１が割り当てられることを防止できるので、コントローラ１に悪影響を及ぼす可能性を低減できる。
【００２２】
その後、ツール用ＰＣ２のユーザであるエンジニアによりハードウェア割当データが選択されかつ当該選択されたハードウェア割当データのダウンロードが指示された場合に、ツールプロセス部２０１は、ハードウェア割当データ記憶部２０４に記憶されるハードウェア割当データのうち、当該選択されたハードウェア割当データをコントローラ１にダウンロードする。これにより、エンジニアは、ツール用ＰＣ２を用いて、コントローラ１の仮想マシン１０４上で動作するゲストＯＳ１０５に対するハードウェアの割り当てを管理できる。また、ツール用ＰＣ２のユーザであるエンジニアによりハードウェア割当データのアップロードが指示された場合に、ツールプロセス部２０１は、コントローラ１からハードウェア割当データをアップロードし、当該アップロードしたハードウェア割当データ記憶部２０４に保存する。
【００２３】
図３は、第１の実施形態にかかるツール用ＰＣによるハードウェア割当データの設定処理の流れの一例を示す図である。ツールプロセス部２０１は、ハードウェア割当データを入力するための設定画面を表示部２０２に表示させる（ステップＳ３０１）。本実施形態では、ツールプロセス部２０１は、デフォルトのハードウェア割当データが表示された設定画面を表示部２０２に表示させるものとする。次に、ツールプロセス部２０１は、割当条件記憶部２０３から、ツール用ＰＣ２のユーザ（エンジニア）により指示されたコントローラ１の機種または当該コントローラ１のネットワークアドレスの割当条件データを読み込む（ステップＳ３０２）。また、ツールプロセス部２０１は、ハードウェア割当データ記憶部２０４から、ツール用ＰＣ２のユーザにより指示されたコントローラ１の機種または当該コントローラ１のネットワークアドレスのハードウェア割当データを読み込む（ステップＳ３０２）。
【００２４】
次いで、ツールプロセス部２０１は、設定画面を用いて入力されたハードウェア割当データと、ハードウェア割当データ記憶部２０４から読み込んだハードウェア割当データとを比較して、ハードウェア割当データが変更されたか否かを判断する（ステップＳ３０３）。本実施形態では、ツールプロセス部２０１は、設定画面においてハードウェア割当データが含む１つの項目が入力される度に、設定画面を用いて入力されたハードウェア割当データと、読み込んだハードウェア割当データとを比較して、ハードウェア割当データが変更されたか否かを判断するものとするが、これに限定するものではない。例えば、ツールプロセス部２０１は、設定画面を用いた全てのハードウェア割当データの入力が完了して、当該ハードウェア割当データの保存が指示された場合に、設定画面を用いて入力されたハードウェア割当データと、読み込んだハードウェア割当データとを比較して、ハードウェア割当データが変更されたか否かを判断しても良い。
【００２５】
ハードウェア割当データが変更されないと判断した場合（ステップＳ３０３：Ｎｏ）、ツールプロセス部２０１は、ハードウェア割当データ記憶部２０４へのハードウェア割当データの保存を行わない。一方、ハードウェア割当データが変更されたと判断した場合（ステップＳ３０３：Ｙｅｓ）、ツールプロセス部２０１は、設定画面を用いて入力されたハードウェア割当データが、読み込んだ割当条件データを満たすか否かを判断する（ステップＳ３０４）。
【００２６】
本実施形態では、割当条件データは、下記の表１に示すように、ホストＯＳ  ＣＰＵ数、ゲストＯＳ  ＣＰＵ数、システムＣＰＵ数、ホストＯＳメモリ、ゲストＯＳメモリ、トータルメモリ、内蔵ＬＡＮポート、内蔵ＵＳＢポート、拡張ＰＣＩスロットＡ、拡張ＰＣＩスロットＢ等の項目を含む。
【表１】
2019152996.tif 000003
【００２７】
ホストＯＳ  ＣＰＵ数は、ホストＯＳ１０２に割り当て可能なＣＰＵコアの数の上限および下限を示す。ゲストＯＳ  ＣＰＵ数は、ゲストＯＳ１０５に割り当て可能なＣＰＵコアの数の上限および下限を示す。システムＣＰＵ数は、ホストＯＳ１０２およびゲストＯＳ１０５に割り当て可能なＣＰＵコアの合計の上限および下限を示す。
【００２８】
ホストＯＳメモリは、ホストＯＳ１０２に割り当て可能なメモリの容量の上限および下限を示す。ゲストＯＳメモリは、ゲストＯＳ１０５に割り当て可能なメモリの容量の上限および下限を示す。トータルメモリは、ホストＯＳ１０２およびゲストＯＳ１０５に割り当て可能なメモリの合計の上限および下限を示す。
【００２９】
内蔵ＬＡＮポートは、ホストＯＳ１０２およびゲストＯＳ１０５のいずれに当該内蔵ＬＡＮポートを割り当てるかを示す。内蔵ＵＳＢポートは、ホストＯＳ１０２およびゲストＯＳ１０５のいずれに当該内蔵ＵＳＢポートを割り当てるかを示す。拡張ＰＣＩスロットＡは、ホストＯＳ１０２およびゲストＯＳ１０５のいずれに当該拡張ＰＣＩスロットＡを割り当てるかを示す。拡張ＰＣＩスロットＢは、ホストＯＳ１０２およびゲストＯＳ１０５のいずれに当該拡張ＰＣＩスロットＢを割り当てるかを示す。ここで、「０」は、ホストＯＳ１０２およびゲストＯＳ１０５の両方にハードウェア１０１（例えば、内蔵ＬＡＮポート）を割り当てることを示す。また、「１」は、ホストＯＳ１０２にハードウェア１０１を割り当てることを示す。また、「２」は、ゲストＯＳ１０５にハードウェア１０１を割り当てることを示す。
【００３０】
本実施形態では、ツールプロセス部２０１は、読み込んだ割当条件データのうち、設定画面において入力されたハードウェア割当データの項目に該当する割当条件データを特定する。そして、ツールプロセス部２０１は、設定画面において入力されたハードウェア割当データと、特定した割当条件データとを比較して、当該入力されたハードウェア割当データが割当条件を満たすか否かを判断する。
【００３１】
例えば、ツールプロセス部２０１は、設定画面においてホストＯＳ１０２に割り当てるＣＰＵコアの数が入力された場合、当該入力されたＣＰＵコアの数が、ホストＯＳ  ＣＰＵ数が示す上限および下限を満たしているか否かを判断する。また、ツールプロセス部２０１は、設定画面おいてホストＯＳ１０２およびゲストＯＳ１０５の少なくとも一方に割り当てるＣＰＵコアの数が入力された場合、ホストＯＳ１０２およびゲストＯＳ１０５に割り当てるＣＰＵコアの合計が、システムＣＰＵ数が示す上限および下限を満たしているか否かを判断する。
【００３２】
設定画面を用いて入力されたハードウェア割当データが割当条件データを満たすと判断した場合（ステップＳ３０４：Ｙｅｓ）、ツールプロセス部２０１は、当該入力されたハードウェア割当データをハードウェア割当データ記憶部２０４に保存する（ステップＳ３０５）。その後、ツールプロセス部２０１は、ツール用ＰＣ２のユーザの操作に応じて、ハードウェア割当データ記憶部２０４に記憶されるハードウェア割当データをコントローラ１にダウンロードする。
【００３３】
本実施形態では、ツールプロセス部２０１は、下記の表２に示すデータ構成のハードウェア割当データをコントローラ１にダウンロードする。具体的には、ツールプロセス部２０１は、表２に示すように、ハードウェア割当データの項目毎のハードウェア割当データ（例えば、数値）をコントローラ１にダウンロードする。
【表２】
2019152996.tif 000004
【００３４】
一方、設定画面を用いて入力されたハードウェア割当データが割当条件データを満たさないと判断した場合（ステップＳ３０４：Ｎｏ）、ツールプロセス部２０１は、設定画面を用いて入力されたハードウェア割当データをハードウェア割当データ記憶部２０４に保存しない。さらに、ツールプロセス部２０１は、入力されたハードウェア割当データが割当条件データを満たさない旨のエラー表示を表示部２０２に表示させる（ステップＳ３０６）。
【００３５】
図４は、第１の実施形態にかかるツール用ＰＣにおいて表示される設定画面の一例を示す図である。ツールプロセス部２０１は、図４に示すように、コントローラ情報４０１と、ハードウェア割当データ設定欄４０２と、ダウンロードボタン４０３、アップロードボタン４０４と、を含む設定画面Ｇを表示部２０２に表示させる。本実施形態では、ツールプロセス部２０１は、ツール用ＰＣ２のユーザ（エンジニア）により指示されたコントローラ１毎に設定画面Ｇを表示させる。
【００３６】
コントローラ情報４０１は、コントローラ１の機種など、ハードウェア割当データを変更するコントローラ１を識別可能とする情報である。ダウンロードボタン４０３は、設定画面Ｇを用いて入力されたハードウェア割当データのコントローラ１へのダウンロードを指示するボタンである。アップロードボタン４０４は、コントローラ１からのハードウェア割当データのアップロードを指示するボタンである。
【００３７】
ハードウェア割当データ設定欄４０２は、ハードウェア割当データを入力するためのインタフェースである。具体的には、ハードウェア割当データ設定欄４０２は、ハードウェア割当データの項目（例えば、ホストＯＳ  ＣＰＵ数、ゲストＯＳ  ＣＰＵ数、ホストＯＳメモリ、ゲストＯＳメモリ、内蔵ＬＡＮポート、内蔵ＵＳＢポート、拡張ＰＣＩスロットＡ、拡張ＰＣＩスロットＢ）毎に、当該項目に対応するハードウェア割当データを表示する。ハードウェア割当データ設定欄４０２には、ツール用ＰＣ２が有する操作部によって入力されたハードウェア割当データ（例えば、数値）や、当該ハードウェア割当データ設定欄４０２に表示されるプルダウンメニューから選択されたハードウェア割当データが表示される。ハードウェア割当データ設定欄４０２に表示されるプルダウンメニューには、ハードウェア割当データとして選択可能なハードウェア割当データの候補（言い換えると、割当条件データを満たすハードウェア割当データ）のみが表示される。また、設定画面Ｇが最初に表示された際（すなわち、ハードウェア割当データ設定欄４０２にハードウェア割当データが入力されていない場合）、ハードウェア割当データ設定欄４０２には、ハードウェア割当データの前回値または保存値が表示されるものとする。ここで、前回値とは、前回入力されたハードウェア割当データである。また、保存値は、ハードウェア割当データ記憶部２０４に記憶されているハードウェア割当データ（言い換えると、ハードウェア割当データ記憶部２０４に保存済みのハードウェア割当データ）である。
【００３８】
本実施形態では、ハードウェア割当データ設定欄４０２のハードウェア割当データの項目のうち、内蔵ＬＡＮポート、内蔵ＵＳＢポート、拡張ＰＣＩスロットＡ、および拡張ＰＣＩスロットＢは、プロダウンメニューのみから、ハードウェア割当データを入力するものとする。そして、当該内蔵ＬＡＮポート、内蔵ＵＳＢポート、拡張ＰＣＩスロットＡ、および拡張ＰＣＩスロットＢに表示されるプルダウンメニューには、ハードウェア割当データとして選択可能なハードウェア割当データの候補を、ツール用ＰＣ２のユーザが認識し易い情報に変換した変換情報を表示する。
【００３９】
例えば、内蔵ＬＡＮポートのハードウェア割当データとして選択可能なハードウェア割当データの候補が「０」〜「２」の整数である場合、「０」を「ホスト・ゲスト共用」に変換して表示し、「１」を「ホスト専用」に変換して表示し、「２」を「ゲスト専用」に変換して表示する。
【００４０】
本実施形態では、ツール用ＰＣ２のユーザは、ハードウェア割当データ設定欄４０２に表示されるプルダウンメニューからハードウェア割当データを選択することとしたが、これに限定するものではなく、任意のハードウェア割当データをハードウェア割当データ設定欄４０２に対して自由入力できることとしても良い。
【００４１】
ツールプロセス部２０１は、ハードウェア割当データ設定欄４０２を用いて、ハードウェア割当データの１つの項目が入力される度に、当該入力されたハードウェア割当データが、割当条件記憶部２０３に記憶される割当条件データを満たすか否かを判断する。そして、入力されたハードウェア割当データが割当条件データを満たさないと判断した場合、ツールプロセス部２０１は、当該入力されたハードウェア割当データをハードウェア割当データ設定欄４０２に反映させず、ハードウェア割当データの前回値または保存値をハードウェア割当データ設定欄４０２に表示させる。一方、入力されたハードウェア割当データが割当条件データを満たすと判断した場合、ツールプロセス部２０１は、入力されたハードウェア割当データをハードウェア割当データ設定欄４０２に表示させる。
【００４２】
本実施形態では、ツールプロセス部２０１は、ハードウェア割当データの１つの項目が入力される度に、当該入力されたハードウェア割当データが割当条件データを満たすか否かを判断しているが、これに限定するものではなく、ハードウェア割当データの全ての項目が入力された後、またはハードウェア割当データのハードウェア割当データ記憶部２０４への保存が指示された場合に、当該入力されたハードウェア割当データが割当条件を満たすか否かを判断しても良い。
【００４３】
図５は、第１の実施形態にかかるツール用ＰＣにおいて表示されるエラー表示の一例を示す図である。ツールプロセス部２０１は、入力されたハードウェア割当データが割当条件データを満たさない場合、図５に示すように、エラー表示ＥＧを表示部２０２に表示させる。エラー表示ＥＧには、入力されたハードウェア割当データの項目うち、割当条件データを満たさないハードウェア割当データの項目の名称５０１（例えば、ホストＯＳ  ＣＰＵ数  異常）、および当該項目の割当条件データ５０２を含める。
【００４４】
図６は、第１の実施形態にかかるコントローラに対するハードウェア割当データのダウンロード処理の流れの一例を示す図である。コントローラ１のコントローラプロセス部１０３ａは、ツール用ＰＣ２からダウンロードされるハードウェア割当データを受信する（ステップＳ６０１）。また、コントローラプロセス部１０３ａは、割当条件記憶部１０１ｂから、割当条件データを読み込む（ステップＳ６０２）。
【００４５】
次いで、コントローラプロセス部１０３ａは、ツール用ＰＣ２からダウンロードされたハードウェア割当データが、読み込んだ割当条件データを満たすか否かを判断する（ステップＳ６０３）。ダウンロードされたハードウェア割当データが割当条件データを満たすと判断した場合（ステップＳ６０３：Ｙｅｓ）、コントローラプロセス部１０３ａは、ダウンロードされたハードウェア割当データを、ハードウェア割当データ記憶部１０１ａに保存する（ステップＳ６０４）。
【００４６】
一方、ダウンロードされたハードウェア割当データが割当条件データを満たさないと判断した場合（ステップＳ６０３：Ｎｏ）、コントローラプロセス部１０３ａは、ダウンロードされたハードウェア割当データをハードウェア割当データ記憶部１０１ａに保存しない。さらに、コントローラプロセス部１０３ａは、ダウンロードされたハードウェア割当データが不正なデータであることを通知するエラー応答をツール用ＰＣ２に送信する（ステップＳ６０５）。本実施形態では、ダウンロードされたハードウェア割当データが割当条件データを満たさない場合、コントローラプロセス部１０３ａは、エラー応答をツール用ＰＣ２に送信しているが、エラー応答をツール用ＰＣ２に送信しなくても良い。
【００４７】
このように、第１の実施形態にかかる制御システムによれば、誤ったハードウェア割当データに従って、ホストＯＳ１０２およびゲストＯＳ１０５に対してハードウェア１０１が割り当てられることを防止できるので、コントローラ１に悪影響を及ぼす可能性を低減できる。
【００４８】
（第２の実施形態）
本実施形態は、ツール用ＰＣにおいて、コントローラからアップロードしたハードウェア割当データを含む設定画面を表示部に表示させる例である。以下の説明では、第１の実施形態と同様の構成については説明を省略する。
【００４９】
図７は、第２の実施形態にかかるツール用ＰＣにおいて表示される設定画面の一例を示す図である。本実施形態では、ツールプロセス部２０１は、コントローラ１からアップロードしたハードウェア割当データを含む設定画面を表示部２０２に表示させる。具体的には、ツールプロセス部２０１は、図７に示すように、コントローラ情報４０１、ハードウェア割当データ設定欄４０２、ダウンロードボタン４０３、およびアップロードボタン４０４に加えて、アップロード済みハードウェア割当データ欄７０１を含む設定画面Ｇを表示部２０２に表示させる。アップロード済みハードウェア割当データ欄７０１は、コントローラ１からアップロードしたハードウェア割当データを、当該ハードウェア割当データの項目毎に表示する。
【００５０】
このように、第２の実施形態にかかる制御システムによれば、コントローラ１からアップロードしたハードウェア割当データを確認しながら、ハードウェア割当データ設定欄４０２に対して、ハードウェア割当データを入力することができるので、ホストＯＳ１０２およびゲストＯＳ１０５に対するハードウェア１０１の割り当ての変更を容易に行うことができる。なお、アップロード済みハードウェア割当データ欄７０１に表示されるハードウェア割当データは、編集することはできないものとする。
【００５１】
以上説明したとおり、第１，２の実施形態によれば、誤ったハードウェア割当データに従って、ホストＯＳ１０２およびゲストＯＳ１０５に対してハードウェア１０１が割り当てられることを防止できるので、コントローラ１に悪影響を及ぼす可能性を低減できる。
【００５２】
なお、本実施形態のコントローラ１で実行されるプログラムは、ＲＯＭ等に予め組み込まれて提供される。本実施形態のコントローラ１で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【００５３】
さらに、本実施形態のコントローラ１で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態のコントローラ１で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【００５４】
本実施形態のコントローラ１で実行されるプログラムは、上述した各部（ホストＯＳ１０２、ホストプロセス群１０３、仮想マシン１０４、ゲストＯＳ１０５、ゲストプロセス群１０６）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵが上記ＲＯＭからプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、ホストＯＳ１０２、ホストプロセス群１０３、仮想マシン１０４、ゲストＯＳ１０５、ゲストプロセス群１０６が主記憶装置上に生成されるようになっている。
【００５５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５６】
１  コントローラ
２  ツール用ＰＣ
１０１  ハードウェア
１０１ａ，２０４  ハードウェア割当データ記憶部
１０１ｂ，２０３  割当条件記憶部
１０２  ホストＯＳ
１０３  ホストプロセス群
１０３ａ  コントローラプロセス部
１０３ｂ  ゲスト初期化プロセス部
１０４  仮想マシン
１０５  ゲストＯＳ
１０６  ゲストプロセス群
２０１  ツールプロセス部
２０２  表示部
Ｇ  設定画面
【図１】
2019152996.tif 000005
【図２】
2019152996.tif 000006
【図３】
2019152996.tif 000007
【図４】
2019152996.tif 000008
【図５】
2019152996.tif 000009
【図６】
2019152996.tif 000010
【図７】
2019152996.tif 000011