(57)【特許請求の範囲】
【請求項１】
設備または機械を制御する制御装置であって、
１つ以上のプロセッサおよびストレージデバイスを含むハードウェアリソースと、
前記ハードウェアリソースを用いて実行されるリアルタイムオペレーティングシステム（ＯＳ）と、
前記リアルタイムＯＳ上で、設備または機械を制御するためのユーザプログラムを実行する実行環境と、
前記ハードウェアリソースを用いて実行され、前記リアルタイムＯＳとは独立して動作する汎用オペレーティングシステム（ＯＳ）と、
前記リアルタイムＯＳおよび前記汎用ＯＳに割り当てるハードウェアリソースを管理するハイパーバイザとを備え、
前記汎用ＯＳ上で動作する、前記ストレージデバイスの一部の領域を記憶領域として確保するとともに、当該確保した記憶領域のうちユーザ設定された少なくとも一部の領域を他の装置との間で共有するファイル共有サーバ機能を備え、
前記リアルタイムＯＳ上で動作する、
前記ハイパーバイザを介して前記ファイル共有サーバ機能にクライエントとして参加する機能と、
前記ファイル共有サーバ機能により提供される共有領域へアクセス可能であるか否かを周期的に監視する機能とを備え、
前記ユーザプログラムにおいては、前記共有領域へアクセスすることを可能にする命令の利用、および、前記共有領域へアクセス可能であるか否かを示す情報が参照、のうち少なくとも一方が可能である、制御装置。
【請求項２】
前記リアルタイムＯＳ上で動作する、外部装置からのＦＴＰ接続を処理するＦＴＰサーバ機能と、
前記リアルタイムＯＳ上で動作する、前記外部装置が前記ＦＴＰサーバ機能を介して前記共有領域へアクセスすることを可能にする機能とを備える、請求項１に記載の制御装置。
【請求項３】
前記リアルタイムＯＳ上で動作する、前記外部装置から前記ＦＴＰサーバ機能を介して前記共有領域へアクセス可能であるか否かを示す情報を参照可能にする機能を備える、請求項２に記載の制御装置。
【請求項４】
前記リアルタイムＯＳ上で動作する、外部装置からのＨＴＴＰ接続を処理するＨＴＴＰサーバ機能と、
前記リアルタイムＯＳ上で動作する、前記外部装置が前記ＨＴＴＰサーバ機能を介して前記共有領域へアクセスすることを可能にする機能を備える、請求項１〜３のいずれか１項に記載の制御装置。
【請求項５】
前記リアルタイムＯＳ上で動作する、前記外部装置から前記ＨＴＴＰサーバ機能を介して前記共有領域へアクセス可能であるか否かを示す情報を参照可能にする機能を備える、請求項４に記載の制御装置。
【請求項６】
前記リアルタイムＯＳが確保している記憶領域への、前記汎用ＯＳで実行されるアプリケーションからのアクセスは不可能になっている、請求項１〜５のいずれか１項に記載の制御装置。
【請求項７】
前記ファイル共有サーバ機能は、前記制御装置とは異なる他の装置との間でも、前記共有領域を共有可能に構成されている、請求項１〜６のいずれか１項に記載の制御装置。
【請求項８】
前記ハイパーバイザは、前記リアルタイムＯＳと前記汎用ＯＳとの間に論理コネクションを確立する、請求項１〜７のいずれか１項に記載の制御装置。
【請求項９】
前記ストレージデバイスは、複数種類の記憶装置を含み、
前記ユーザプログラムにおいては、前記共有領域および前記複数種類の記憶装置のそれぞれの記憶領域へ選択的にアクセスすることを可能にする命令がさらに利用可能である、請求項１〜８のいずれか１項に記載の制御装置。
【請求項１０】
設備または機械を制御する制御装置での制御方法であって、
リアルタイムオペレーティングシステム（ＯＳ）と、前記リアルタイムＯＳとは独立して動作する汎用オペレーティングシステム（ＯＳ）とに対する、１つ以上のプロセッサおよびストレージデバイスを含むハードウェアリソースの割り当てについて管理するステップと、
前記リアルタイムＯＳ上で、設備または機械を制御するためのユーザプログラムを実行するステップと、
前記汎用ＯＳ上で実行される、前記ストレージデバイスの一部の領域を記憶領域として確保するとともに、当該確保した記憶領域のうちユーザ設定された少なくとも一部の領域を他の装置との間で共有するステップと、
前記リアルタイムＯＳ上で実行される、ハイパーバイザを介してファイル共有サーバ機能にクライエントとして参加するステップと、
前記リアルタイムＯＳ上で実行される、前記ファイル共有サーバ機能により提供される共有領域へアクセス可能であるか否かを周期的に監視するステップとを備え、
前記ユーザプログラムにおいては、前記共有領域へアクセスすることを可能にする命令の利用、および、前記共有領域へアクセス可能であるか否かを示す情報が参照、のうち少なくとも一方が可能である、制御方法。
【請求項１１】
設備または機械を制御するための環境を構築可能なリアルタイムオペレーティングシステム（ＯＳ）を含むプログラムであって、
前記リアルタイムＯＳは、１つ以上のプロセッサおよびストレージデバイスを含むハードウェアリソースを用いて、前記ハードウェアリソースを管理するハイパーバイザの下で、前記リアルタイムＯＳとは独立して動作する汎用オペレーティングシステム（ＯＳ）とともに、並列的に実行され、
前記リアルタイムＯＳ上では、設備または機械を制御するためのユーザプログラムが実行されており、
前記汎用ＯＳ上では、前記ストレージデバイスの一部の領域を記憶領域として確保するとともに、当該確保した記憶領域のうちユーザ設定された少なくとも一部の領域を他の装置との間で共有するファイル共有サーバ機能が動作しており、
前記プログラムは、
前記ハイパーバイザを介して前記ファイル共有サーバ機能にクライエントとして参加するモジュールと、
前記ファイル共有サーバ機能により提供される共有領域へアクセス可能であるか否かを周期的に監視するモジュールとを備え、
前記ユーザプログラムにおいては、前記共有領域へアクセスすることを可能にする命令の利用、および、前記共有領域へアクセス可能であるか否かを示す情報が参照、のうち少なくとも一方が可能である、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、設備または機械を制御する制御装置、制御方法およびプログラムに関する。
【背景技術】
【０００２】
近年のＩＣＴ（Information and Communication Technology）の進歩に伴って、汎用的なコンピューティングデバイスについても信頼性が高まってきている。設備または機械を制御するためのＦＡ（Factory Automation）関連装置においても、このような汎用的なコンピューティングデバイスの導入が進められている。
【０００３】
例えば、特開２００９−２１７７０７号公報（特許文献１）は、次世代の産業用コントローラとされるＰＡＣ（Programmable Automation Controller）を開示している。ＰＡＣは、一般的なＰＬＣと同様に、ネットワークを介して生産設備の機器と通信を行なうことで、Ｉ／Ｏデータの送受を行ない、生産設備を制御する。特許文献１に開示される構成においては、専用ツール装置を用いることなく、汎用のパソコン等によってＰＡＣのメモリデバイスに格納されたデータにアクセスして読み書きできる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２１７７０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＩＣＴの進歩に伴って、コンピューティングデバイスは、信頼性に加えて、その処理能力も高まっている。共通のハードウェアリソースを用いて、互いに独立したオペレーティングシステム（Operating System：以下「ＯＳ」とも略称する。）環境を実現するとともに、各ＯＳ環境においてそれぞれ異なったアプリケーションを実行するような、いわゆる仮想化技術などが発展しつつある。このような仮想化技術を採用することで、装置コストを低廉化できる可能性がある。
【０００６】
上述の特許文献１に開示される構成では、ＦＡ機器に対して外部のツール装置などがデータアクセスする処理が想定されるにすぎず、このような仮想化技術については想定されていない。そのため、仮想化技術を採用した制御装置に対してより好適な構成が要望されている。
【課題を解決するための手段】
【０００７】
本発明のある局面に従えば、設備または機械を制御する制御装置が提供される。制御装置は、１つ以上のプロセッサおよびストレージデバイスを含むハードウェアリソースと、ハードウェアリソースを用いて実行されるリアルタイムオペレーティングシステム（ＯＳ）と、ハードウェアリソースを用いて実行され、リアルタイムＯＳとは独立して動作する汎用オペレーティングシステム（ＯＳ）と、リアルタイムＯＳおよび汎用ＯＳに割り当てるハードウェアリソースを管理するハイパーバイザとを含む。制御装置は、汎用ＯＳ上で動作する、ストレージデバイスの一部の領域を記憶領域として確保するとともに、当該確保した記憶領域のうちユーザ設定された少なくとも一部の領域を他の装置との間で共有するファイル共有サーバ機能を含む。制御装置は、さらに、リアルタイムＯＳ上で動作する、ハイパーバイザを介してファイル共有サーバ機能にクライエントとして参加する機能と、ファイル共有サーバ機能により提供される共有領域へアクセス可能であるか否かを周期的に監視する機能とを含む。
【０００８】
好ましくは、リアルタイムＯＳ上で動作するプログラムにおいて、共有領域へアクセスすることを可能にする命令が利用可能である。
【０００９】
好ましくは、リアルタイムＯＳ上で動作するプログラムにおいて、共有領域へアクセス可能であるか否かを示す情報が参照可能である。
【００１０】
好ましくは、制御装置は、リアルタイムＯＳ上で動作する、外部装置からのＦＴＰ接続を処理するＦＴＰサーバ機能と、リアルタイムＯＳ上で動作する、外部装置がＦＴＰサーバ機能を介して共有領域へアクセスすることを可能にする機能とを含む。
【００１１】
好ましくは、制御装置は、リアルタイムＯＳ上で動作する、外部装置からＦＴＰサーバ機能を介して共有領域へアクセス可能であるか否かを示す情報を参照可能にする機能を含む。
【００１２】
好ましくは、制御装置は、リアルタイムＯＳ上で動作する、外部装置からのＨＴＴＰ接続を処理するＨＴＴＰサーバ機能と、リアルタイムＯＳ上で動作する、外部装置がＨＴＴＰサーバ機能を介して共有領域へアクセスすることを可能にする機能とを含む。
【００１３】
好ましくは、制御装置は、リアルタイムＯＳ上で動作する、外部装置からＨＴＴＰサーバ機能を介して共有領域へアクセス可能であるか否かを示す情報を参照可能にする機能を含む。
【００１４】
好ましくは、リアルタイムＯＳが確保している記憶領域への、汎用ＯＳで実行されるアプリケーションからのアクセスは不可能になっている。
【００１５】
好ましくは、ファイル共有サーバ機能は、制御装置とは異なる他の装置との間でも、共有領域を共有可能に構成されている。
【００１６】
好ましくは、ハイパーバイザは、リアルタイムＯＳと汎用ＯＳとの間に論理コネクションを確立する。
【００１７】
好ましくは、ストレージデバイスは、複数種類の記憶装置を含む。リアルタイムＯＳ上で動作するプログラムにおいて、共有領域および複数種類の記憶装置のそれぞれの記憶領域へ選択的にアクセスすることを可能にする命令が利用可能である。
【００１８】
本発明の別の局面に従えば、設備または機械を制御する制御装置での制御方法が提供される。制御方法は、リアルタイムオペレーティングシステム（ＯＳ）と、リアルタイムＯＳとは独立して動作する汎用オペレーティングシステム（ＯＳ）とに対する、１つ以上のプロセッサおよびストレージデバイスを含むハードウェアリソースの割り当てについて管理するステップと、汎用ＯＳ上で実行される、ストレージデバイスの一部の領域を記憶領域として確保するとともに、当該確保した記憶領域のうちユーザ設定された少なくとも一部の領域を他の装置との間で共有するステップと、リアルタイムＯＳ上で実行される、ハイパーバイザを介してファイル共有サーバ機能にクライエントとして参加するステップと、リアルタイムＯＳ上で実行される、ファイル共有サーバ機能により提供される共有領域へアクセス可能であるか否かを周期的に監視するステップとを含む。
【００１９】
本発明のさらに別の局面に従えば、設備または機械を制御するための環境を構築可能なリアルタイムオペレーティングシステム（ＯＳ）を含むプログラムが提供される。リアルタイムＯＳは、１つ以上のプロセッサおよびストレージデバイスを含むハードウェアリソースを用いて、ハードウェアリソースを管理するハイパーバイザの下で、リアルタイムＯＳとは独立して動作する汎用オペレーティングシステム（ＯＳ）とともに、並列的に実行される。汎用ＯＳ上では、ストレージデバイスの一部の領域を記憶領域として確保するとともに、当該確保した記憶領域のうちユーザ設定された少なくとも一部の領域を他の装置との間で共有するファイル共有サーバ機能が動作している。プログラムは、ハイパーバイザを介してファイル共有サーバ機能にクライエントとして参加するモジュールと、ファイル共有サーバ機能により提供される共有領域へアクセス可能であるか否かを周期的に監視するモジュールとを含む。
【発明の効果】
【００２０】
本技術によれば、仮想化技術を採用した制御装置に対してより好適な構成を提供できる。
【図面の簡単な説明】
【００２１】
【図１】本実施の形態に従う制御装置の一局面を一般的なＰＬＣと比較して説明するための模式図である。
【図２】本実施の形態に従う制御装置のハードウェア構成の一例を示す模式図である。
【図３】本実施の形態に従う制御装置のソフトウェア構成の一例を示す模式図である。
【図４】本実施の形態に従う制御装置における共有領域についての監視機能を説明するための模式図である。
【図５】図４に示す共有領域についての監視機能に係るシステム変数を用いたユーザプログラムの一例を示す図である。
【図６】本実施の形態に従う制御装置のリアルタイムＯＳにて実行されるファイル共有に係る処理手順を示すフローチャートである。
【図７】本実施の形態に従う制御装置において複数種類の記憶領域を用いた実装例を示す模式図である。
【発明を実施するための形態】
【００２２】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２３】
＜Ａ．概要＞
本実施の形態に従う制御装置１００は、設備または機械を制御するものであり、一般的なＰＬＣが提供する機能と同等の機能を提供するとともに、以下に説明するような付加的な機能を提供することができる。
【００２４】
制御装置１００は、共通のハードウェアリソースを用いて複数のＯＳを互いに独立に事項可能な仮想化環境を有している。この仮想化環境においては、ハードウェアリソースを用いて実行されるリアルタイムＯＳ（図中においては「ＲＴＯＳ」とも記す。）と、当該ハードウェアリソースを用いて実行され、リアルタイムＯＳとは独立して動作する汎用ＯＳとが並列的に実行可能になっている。リアルタイムＯＳおよび汎用ＯＳに割り当てるハードウェアリソースは、ハイパーバイザによって管理される。なお、ハイパーバイザ上で実行されるＯＳの数は２個に限定されることなく、複数のリアルタイムＯＳを実行させるようにしてもよいし、複数の汎用ＯＳを実行させるようにしてもよい。
【００２５】
制御装置１００においては、設備または機械を制御するためのプログラムの実行に適したリアルタイムＯＳが実行されるとともに、ユーザが利用しやすい汎用ＯＳも実行されるので、安定した制御動作の実現と、ユーザビリティの向上とを両立できる。
【００２６】
図１は、本実施の形態に従う制御装置１００の一局面を一般的なＰＬＣと比較して説明するための模式図である。図１（Ａ）には、一般的なＰＬＣの構成例を示し、図１（Ｂ）には、本実施の形態に従う制御装置１００の構成例を示す。
【００２７】
図１（Ａ）に示すように、一般的なＰＬＣ３００では、可搬型の記録媒体３１０（例えば、ＳＤメモリカード）を介して、ＰＬＣ３００に対してレシピデータ（例えば、品種別に指定される処理を指定する情報）を与えたり、ＰＬＣ３００で収集されているログデータなどを回収したりするようなことが行なわれる場合がある。
【００２８】
記録媒体３１０を用いる場合には、ＰＬＣ３００に対して記録媒体３１０を挿抜する必要があり、取扱いがやや不便である。
【００２９】
あるいは、ＰＬＣ３００にパーソナルコンピュータ３２０を接続し、パーソナルコンピュータ３２０のＦＴＰクライエント機能を利用し、あるいは、パーソナルコンピュータ３２０にインストールされたプログラム開発アプリケーションを利用して、ＰＬＣ３００にアクセスするという方法が用いられていた。
【００３０】
しかしながら、ＦＴＰクライエント機能を用いる場合には、それに応じたアプリケーションを操作する必要があり、また、プログラム開発アプリケーションについても、専用のアプリケーションであり、汎用のパーソナルコンピュータ上でのデータの取扱いと全く同一ということにはなっていなかった。
【００３１】
図１（Ｂ）に示すように、本実施の形態に従う制御装置１００では、リアルタイムＯＳおよび汎用ＯＳがそれぞれ独立に実行される一方で、両ＯＳ上からそれぞれアクセス可能な共有の記憶領域（以下、単に「共有領域」とも称す。）が用意される。典型的には、共有領域は、共有フォルダなどの形で実現される。制御装置１００では、設備または機械を制御するためのプログラムが実行される一方で、共有領域へアクセスするための汎用的なユーザインターフェイスも提供される。すなわち、制御装置１００のユーザから見れば、日常使用している汎用のパーソナルコンピュータ上で実行される汎用アプリケーションを用いて、設備または機械の制御に係る各種データへ容易にアクセスできる。
【００３２】
さらに、共有領域には、他の装置（例えば、上位サーバ装置など）からもアクセスすることが可能である。このような構成を採用することで、制御装置１００が処理または保有するデータの収集および分析などの処理をより汎用的な技術を用いて実装することができる。
【００３３】
このように、本実施の形態に従う制御装置１００は、それぞれ独立に実行されるリアルタイムＯＳおよび汎用ＯＳから共通的にアクセス可能な記憶領域が用意されており、これによって、データアクセスおよびデータ処理をよりフレキシブルに実現できる。
【００３４】
＜Ｂ．制御装置の装置構成＞
次に、本実施の形態に従う制御装置１００の装置構成の一例について説明する。図２は、本実施の形態に従う制御装置１００のハードウェア構成の一例を示す模式図である。図２に示す制御装置１００は、基本的には、汎用アーキテクチャに従うコンピューティングエレメントによって構成されており、汎用のパーソナルコンピュータに類似したハードウェア構成を有している。
【００３５】
図２を参照して、制御装置１００は、プロセッサ１０２と、システムコントローラ１０４と、ビデオコントローラ１０６と、ＲＡＭ（Random Access Memory）１０８と、ＨＤＤ（Hard Disk Drive）１１０と、ネットワークインターフェイス（Interface：以下「Ｉ／Ｆ」とも記す。）１２２と、入出力インターフェイス１２４と、ローカル通信インターフェイス１２６とを含む。
【００３６】
プロセッサ１０２は、後述するような各種プログラムを実行する算術論理演算装置であり、典型的には、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＧＰＵ（Graphics Processing Unit）などを含み得る。プロセッサ１０２は複数個が実装されていてもよく、あるいは、単一のプロセッサ１０２内に複数の演算コアが実装されていてもよい。すなわち、いわゆるマルチプロセッサであってもよいし、マルチコアであってもよい。
【００３７】
システムコントローラ１０４は、プロセッサ１０２と周辺装置との間の内部コマンドやデータの遣り取りなどを制御および仲介する回路であり、典型的には、ＬＳＩ（Large Scale Integration）などによって実装される。
【００３８】
ビデオコントローラ１０６は、ディスプレイなどに接続され、制御装置１００により提供される演算結果などを視覚的に出力する。
【００３９】
ＲＡＭ１０８は、プロセッサ１０２においてプログラムを実行するために必要なワークデータや外部との遣り取りによって取得されたデータなどを一時的に格納する。ＲＡＭ１０８は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）といった揮発性記憶装置によって実装される。
【００４０】
ＨＤＤ１１０は、プロセッサ１０２によって実行されるプログラムやプロセッサ１０２によるプログラムの実行により生成されたデータを不揮発的に格納するストレージデバイスである。ＨＤＤ１１０に代えて、あるいは、それに加えて、ＳＳＤ（Solid State Drive）や光学ディスクなどのストレージデバイスを用いるようにしてもよい。
【００４１】
図２に示すように、制御装置１００は、１つ以上のプロセッサ１０２およびストレージデバイス（図２においては、ＨＤＤ１１０）を含むハードウェアリソースを用いて、仮想化環境を実現する。
【００４２】
ＨＤＤ１１０には、典型的には、ハイパーバイザ１１２と、リアルタイムＯＳ（Operating System）１１４と、汎用ＯＳ１１６と、ユーザプログラム１１８と、汎用アプリケーション１２０とが格納される。さらに、各ＯＳ上で動作する様々なプログラムが格納される。
【００４３】
ハイパーバイザ１１２は、後述するように、共通のハードウェアリソースを用いて、複数のＯＳを互いに独立して実行するためのマネージングプログラムである。ハイパーバイザ１１２は、リアルタイムＯＳ１１４および汎用ＯＳ１１６に割り当てるハードウェアリソースを管理する。ハイパーバイザ１１２は、各ＯＳに対して仮想的なハードウェアリソースを提供することになり、各ＯＳから見ると、通常のハードウェアリソースを利用しているのと同様の処理を実行することができる。
【００４４】
リアルタイムＯＳ１１４は、指定されたタスクを指定された優先度に基づいて実行することで、所定の時間内に指定された処理を完了できる環境を提供する。具体的には、リアルタイムＯＳ１１４は、スケジューラ、Ｉ／Ｏ（Input/Output）プロセスモジュール、ネットワーク処理モジュールなどを含む。
【００４５】
汎用ＯＳ１１６は、制御装置１００のハードウェアリソースを用いて実行され、リアルタイムＯＳ１１４とは独立して動作する。汎用ＯＳ１１６は、一般的なパーソナルコンピュータなどで実行されるＯＳであり、例えば、Ｗｉｎｄｏｗｓ（登録商標）、Ｍａｃ  ＯＳ（登録商標）、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、Ａｎｄｒｏｉｄ（登録商標）、ＭＳ−ＤＯＳ（登録商標）、その他ＵＮＩＸ派生の任意のＯＳなどが挙げられる。
【００４６】
ユーザプログラム１１８は、リアルタイムＯＳ１１４で実行される、ユーザが任意に作成する制御プログラムである。ユーザプログラム１１８は、リアルタイムＯＳがインタプリタの機能を提供する場合には、ソースコードまたは中間コードの形で格納されていてもよいし、あるいは、オブジェクト形式などの実行可能な状態で格納されていてもよい。
【００４７】
汎用アプリケーション１２０は、汎用ＯＳ１１６上で実行される任意のアプリケーションであり、汎用ＯＳ１１６の一部として組込まれているもの、市販されている任意のアプリケーション、ユーザが作成した独自アプリケーションなどを含み得る。
【００４８】
ネットワークインターフェイス１２２は、他の装置との間でデータを遣り取りするためのインターフェイスであり、例えば、上位コンピュータまたは上位ネットワークに接続するためのポート、フィールドネットワークまたはフィールドバスを介して各種フィールド装置に接続するためのポート、他の制御装置との間でデータを遣り取りするためのポートなどを含み得る。ネットワークインターフェイス１２２は、任意の規格に従うデバイスを用いることができ、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）、ＥｔｈｅｒＣＡＴ（登録商標）などの有線方式、あるいは、無線ＬＡＮ（Local Area Network）、Ｂｌｕｅｔｏｏｔｈ（登録商標）などの無線方式のいずれであってもよい。
【００４９】
入出力インターフェイス１２４は、ＰＬＣに装着される入出力ユニットに相当するものであり、フィールド機器との間で、フィールド信号（デジタル入出力信号、アナログ入出力信号、パルス信号など）を遣り取りする。
【００５０】
ローカル通信インターフェイス１２６は、任意の通信インターフェイスを包含する。典型的には、ローカル通信インターフェイス１２６は、ＵＳＢ（Universal Serial Bus）、パラレル通信、ＲＳ−２３２Ｃなどのシリアル通信などを含み、プリンタといった各種の周辺装置との間でデータを遣り取りする。
【００５１】
＜Ｃ．制御装置のソフトウェア構成＞
次に、制御装置１００のソフトウェア構成の一例について説明する。図３は、本実施の形態に従う制御装置１００のソフトウェア構成の一例を示す模式図である。
【００５２】
図３を参照して、制御装置１００においては、ハイパーバイザ１１２が制御装置１００のハードウェアリソースを管理するとともに、リアルタイムＯＳ１１４および汎用ＯＳ１１６に対して、これらのハードウェアリソースを調停しながら割り当てることで、共通のハードウェアリソース上で、互いに独立したリアルタイムＯＳ１１４および汎用ＯＳ１１６を実行させる。すなわち、ハイパーバイザ１１２を用いて、複数の異なるＯＳを実行する仮想化環境を実現する。
【００５３】
リアルタイムＯＳ１１４の実行環境下（図中においては「ＲＴＯＳ側」とも記す。）においては、主として、システムプロセス１１４２と、ユーザプログラム実行環境１１４４と、ＦＴＰサーバ機能１１４６と、ＨＴＴＰ（Hyper Text Transfer Protocol）サーバ機能１１４８と、ファイルマネジャ１１５とが実行されている。図示していない任意のタスクまたはプロセスが実行されていてもよい。
【００５４】
システムプロセス１１４２は、ユーザプログラム実行環境１１４４がユーザプログラム１１８を実行するのに必要な機能を提供する。具体的には、フィールド信号の収集、収集されたフィールド信号と変数へのマッピング、出力される指令値の更新などの処理が実行される。
【００５５】
ユーザプログラム実行環境１１４４は、ＰＬＣに実装されるファームウェアに相当する機能を提供するものであり、ユーザプログラム１１８を実行するためのライブラリなどを提供する。ユーザプログラム１１８は、シーケンス命令、ファンクションブロック命令、特殊命令などの組合せで構成され、実行周期が互いに異なる複数のタスクで構成される場合もある。ユーザプログラム１１８の全部または一部は、オブジェクト形式などの実行可能な形式とされてもよい。また、ユーザプログラム実行環境１１４４は、ユーザプログラム１１８に含まれる命令の組合せ（例えば、シーケンス命令など）を逐次解釈して実行するようにしてもよい。
【００５６】
ＦＴＰサーバ機能１１４６は、リアルタイムＯＳ１１４上で動作する、外部装置からのＦＴＰ接続を処理する。典型的には、ＦＴＰサーバ機能１１４６は、外部のパーソナルコンピュータ２５０（ＦＴＰクライエント機能）からのアクセスに応じて、ファイルマネジャ１１５が管理するデータへのアクセスを管理する機能を提供する。
【００５７】
ＨＴＴＰサーバ機能１１４８は、リアルタイムＯＳ１１４上で動作する、外部装置からのＨＴＴＰ接続を処理する。典型的には、ＨＴＴＰサーバ機能１１４８は、外部のパーソナルコンピュータ２６０（典型的には、プログラム開発装置）からのアクセスに応じて、ファイルマネジャ１１５が管理するデータへのアクセスを管理する機能を提供する。
【００５８】
ファイルマネジャ１１５は、リアルタイムＯＳ１１４内の各プロセスに対してファイルアクセスを提供する機能であり、ＨＤＤ１１０（図２）のうち予めリアルタイムＯＳ１１４に対して割り当てられた記憶領域に対する読出しおよび書込みを制御する。仮想環境下においては、ファイルマネジャ１１５からのアクセス要求に対して、ハイパーバイザ１１２がＨＤＤ１１０へのアクセスに係るハードウェアリソースを割り当てることで、ＨＤＤ１１０へのアクセスを実現する。
【００５９】
汎用ＯＳ１１６の実行環境下（図中においては「汎用ＯＳ側」とも記す。）においては、主として、汎用アプリケーション１２０と、ファイルマネジャ１１７とが実行されている。図示していない任意のタスクまたはプロセスが実行されていてもよい。
【００６０】
ファイルマネジャ１１７は、汎用ＯＳ１１６内の各プロセスに対してファイルアクセスを提供する機能であり、ＨＤＤ１１０（図２）のうち予め汎用ＯＳ１１６に対して割り当てられた記憶領域に対する読出しおよび書込みを制御する。汎用ＯＳ１１６上で実行される汎用アプリケーション１２０は、ファイルマネジャ１１７が管理するデータへのアクセスが可能になっている。仮想環境下においては、ファイルマネジャ１１７からのアクセス要求に対して、ハイパーバイザ１１２がＨＤＤ１１０へのアクセスに係るハードウェアリソースを割り当てることで、ＨＤＤ１１０へのアクセスを実現する。
【００６１】
本実施の形態に従う制御装置１００においては、汎用ＯＳ１１６のファイルマネジャ１１７は、ファイル共有サーバ機能１１６２を有しており、リアルタイムＯＳ１１４のファイルマネジャ１１５は、ファイル共有クライエント機能１１５２を有している。制御装置１００においては、リアルタイムＯＳ１１４のファイルマネジャ１１５のファイル共有クライエント機能１１５２が、汎用ＯＳ１１６のファイルマネジャ１１７のファイル共有サーバ機能１１６２によって提供される共有の記憶領域をマウントすることで、リアルタイムＯＳ１１４上で実行される各プロセスに対して、汎用ＯＳ１１６が管理する記憶領域（共有の記憶領域）をあたかも汎用ＯＳ１１６が管理する記憶領域としてアクセスすることができる。
【００６２】
より具体的には、ハイパーバイザ１１２は、リアルタイムＯＳ１１４と汎用ＯＳ１１６との間に仮想的なネットワーク接続（論理コネクション）を確立する。これにより、リアルタイムＯＳ１１４上で実行されるアプリケーションと汎用ＯＳ１１６上で実行されるアプリケーションとの間は、仮想的なネットワーク接続を介して通信することができる。
【００６３】
ファイル共有サーバ機能１１６２は、汎用ＯＳ１１６上で動作する、ストレージデバイスの一部の領域を記憶領域として確保するとともに、当該確保した記憶領域のうちユーザ設定された少なくとも一部の領域を他の装置（本実施の形態においては、仮想的に別の装置に見えるリアルタイムＯＳ１１４またはリアルタイムＯＳ１１４上で実行されるアプリケーションまたはプロセス）との間で共有する。ファイル共有サーバ機能１１６２が提供する共有領域は、ユーザ設定に基づいて、確保している記憶領域の一部または全部が任意に設定できる。なお、ユーザ設定に関わらず、予め定められたフォルダを共有できるようにしてもよい。
【００６４】
ファイル共有サーバ機能１１６２およびファイル共有クライエント機能１１５２がファイル共有を実現するためのプロトコルとしては、現在利用可能なプロトコルおよび将来利用可能になるプロトコルのうち、任意のものを採用できる。このようなファイル共有を実現するためのプロコトルとしては、ＳＭＢ（Server Message Block）、ＮＦＳ（Network File System）、ＡＦＰ（Apple Filing Protocol）などが挙げられる。
【００６５】
ファイル共有クライエント機能１１５２は、リアルタイムＯＳ１１４上で動作する、ハイパーバイザ１１２を介してファイル共有サーバ機能１１６２にクライエントとして参加する。ファイル共有クライエント機能１１５２は、ファイル共有サーバ機能１１６２にクライエントとして参加することで、ユーザプログラム１１８、ならびに、ＦＴＰサーバ機能１１４６またはＨＴＴＰサーバ機能１１４８を介して接続される外部装置がアクセス可能な記憶領域を提供する。
【００６６】
ファイル共有クライエント機能１１５２は、ファイル共有サーバ機能１１６２が管理するＨＤＤ１１０の所定の記憶領域を、あたかもリアルタイムＯＳ１１４上で管理される記憶領域（共有領域１１５６）として提供する。つまり、ファイル共有クライエント機能１１５２は、ハイパーバイザ１１２上で実行される他のＯＳまたは制御装置１００とネットワークを介して接続された他の装置が保持する記憶領域を共有することができる。このように、ファイル共有クライエント機能１１５２は、他のＯＳまたは他の制御装置が保持する記憶領域をファイルマネジャ１１５内においてある特定のフォルダ名を付した仮想的な記憶領域として提供する（いわゆる、マウントする）ことができる。
【００６７】
具体的には、リアルタイムＯＳ１１４は、ファイル共有クライエント機能１１５２と連携することで、リアルタイムＯＳ１１４上で実行されるユーザプログラム１１８などが利用可能な、共有領域１１５６へのアクセス（データ書込みおよびデータ読出し）用の命令を提供する。すなわち、リアルタイムＯＳ１１４上で動作するプログラムにおいて、共有領域１１５６へアクセスすることを可能にする命令が利用可能になっている。
【００６８】
リアルタイムＯＳ１１４上では、外部装置がＦＴＰサーバ機能１１４６を介して共有領域１１５６へアクセスすることも可能であるとともに、外部装置がＨＴＴＰサーバ機能１１４８を介して共有領域１１５６へアクセスすることも可能である。典型的な実装例として、ＦＴＰサーバ機能１１４６およびＨＴＴＰサーバ機能１１４８は、監視マネジャ１１４０が公開する関数を使って、対象の記憶領域が共有状態であるか（すなわち、共有領域１１５６として設定されているか）を確認するとともに、共有領域であると確認されると、ファイルマネジャ１１５が公開する関数を使って、当該領域へアクセスする。
【００６９】
あるいは、ユーザプログラム１１８が利用可能な命令についても、ＦＴＰサーバ機能１１４６およびＨＴＴＰサーバ機能１１４８が利用するように実装してもよい。このような実装を採用することで、アクセス用の関数などの実装量を低減できる。
【００７０】
制御装置１００は、ネットワークインターフェイス１２２を介して他の装置（例えば、上位サーバ装置２００）とも接続されており、このネットワークインターフェイス１２２に係るネットワークから見ても、ファイル共有機能を利用することができる。すなわち、汎用ＯＳ１１６から見れば、リアルタイムＯＳ１１４および上位サーバ装置２００は、いずれもネットワーク上に存在している他の装置とみなすことができる。
【００７１】
上位サーバ装置２００に実装されるファイルマネジャ２２０は、制御装置１００のファイルマネジャ１１７が管理する記憶領域を自己のフォルダとしてマウントすることができ、このファイル共有を通じて、上位サーバ装置２００で実行される任意のアプリケーション２１０は、制御装置１００の汎用ＯＳ１１６のファイルマネジャ１１７が管理する記憶領域へアクセスすることができる。このように、ファイル共有サーバ機能１１６２は、制御装置１００とは異なる他の装置との間でも、共有領域を共有可能にすることができる。
【００７２】
なお、リアルタイムＯＳ１１４のファイルマネジャ１１５がＨＤＤ１１０の記憶領域を管理する方式またはフォーマットと、汎用ＯＳ１１６のファイルマネジャ１１７がＨＤＤ１１０の記憶領域を管理する方式またはフォーマットとは、互いに異なっていてもよい。
【００７３】
図３および図４においては、制御装置１００に内蔵されているＨＤＤ１１０の記憶領域を共有化する構成について例示したが、共有化される記憶領域としては、制御装置１００に外付けされているストレージデバイスや、汎用ＯＳ１１６がアクセス可能な他の装置に内蔵または外付けされているストレージデバイスであってもよい。
【００７４】
複数のリアルタイムＯＳが並列的に実行される場合には、それぞれのリアルタイムＯＳが共有化された記憶領域にアクセスできるようにすればよい。
【００７５】
＜Ｄ．共有領域へアクセス可能であるか否かを監視する機能＞
次に、本実施の形態に従う制御装置１００において実行されるリアルタイムＯＳ上で共有領域へアクセス可能であるか否かを監視する機能に説明する。上述したように、リアルタイムＯＳ１１４は、汎用ＯＳ１１６が提供するファイル共有機能を利用することができるが、一般的には、汎用ＯＳ１１６はリアルタイムＯＳ１１４に比較して安定性および堅牢性において劣る。そのため、リアルタイムＯＳ１１４が健全であっても、汎用ＯＳ１１６側で何らかの不具合があり、ファイル共有機能がダウンしている場合も想定される。
【００７６】
そこで、リアルタイムＯＳ１１４には、いずれかの共有領域をマウントしている状態において、ファイル共有されているか否か、すなわち、共有領域へアクセス可能であるか否かを周期的（例えば、１秒毎）またはイベント的に監視する機能を実装することが好ましい。
【００７７】
図４は、本実施の形態に従う制御装置１００における共有領域についての監視機能を説明するための模式図である。図４を参照して、汎用ＯＳ１１６のファイル共有サーバ機能１１６２と、リアルタイムＯＳ１１４のファイル共有クライエント機能１１５２との間は、ハイパーバイザ１１２が提供する仮想ネットワークポート１１２１および１１２２を通じて、互いに仮想的なネットワークを介して接続されている。
【００７８】
ファイル共有クライエント機能１１５２と連携する監視マネジャ１１４０は、リアルタイムＯＳ１１４上で動作し、ファイル共有サーバ機能１１６２により提供される共有領域１１５６へアクセス可能であるか否かを周期的に監視する。より具体的には、監視マネジャ１１４０は、ファイル共有サーバ機能１１６２へ定期的にデータの読出しを行ない、その成否に基づいて、共有領域へアクセス可能であるか否かを監視する。監視マネジャ１１４０は、その監視結果に応じて、システム変数１１５４を更新する。システム変数１１５４は、リアルタイムＯＳ１１４によって管理される記憶領域に格納され、共有領域へアクセス可能であるか否かを示す情報を含み得る。なお、データの定期的な読出しではなく、定期的なデータの書込みを行なって、その成否に基づいて、共有領域へアクセス可能であるか否かを監視するようにしてもよい。データの読出しまたは書込みのいずれを実施するのかについては、予め設定されたアクセス権限などを考慮して選択するようにしてもよい。
【００７９】
共有領域へアクセス可能であるか否かを示す情報を含むシステム変数１１５４は、ユーザプログラムから参照することができる。すなわち、リアルタイムＯＳ１１４上で動作するプログラムにおいて、共有領域へアクセス可能であるか否かを示す情報が参照可能になっている。
【００８０】
また、共有領域へアクセス可能であるか否かを示す情報は、ＦＴＰサーバ機能１１４６およびＨＴＴＰサーバ機能１１４８からも参照可能になっていてもよい。すなわち、リアルタイムＯＳ１１４上では、外部装置からＦＴＰサーバ機能１１４６およびＨＴＴＰサーバ機能１１４８を介して、共有領域へアクセス可能であるか否かを示す情報を参照可能にする機能が提供される。この場合、ＦＴＰサーバ機能１１４６およびＨＴＴＰサーバ機能１１４８がシステム変数１１５４を直接参照するようにしてもよいし、ＦＴＰサーバ機能１１４６およびＨＴＴＰサーバ機能１１４８が監視マネジャ１１４０に問合せを行なうようにしてもよい。
【００８１】
図５は、図４に示す共有領域についての監視機能に係るシステム変数１１５４を用いたユーザプログラムの一例を示す図である。図５に示す例では、「Ｍｅｍｃａｒｄ」のディレクトリに「Ｄ０００１」にあるデータを書込むための命令が定義されている。データの書込むに係るファンクションブロック３０２を活性化するための条件として、書込み指令を示すフラグ３０４と、共有領域へアクセス可能であるか否かを示すフラグ３０６とを含む。
【００８２】
別の命令にて、フラグ３０４が「ＯＮ」に活性化され、かつ、フラグ３０６の値が共有領域へアクセス可能であることを示す「ＯＮ」である場合に限って、ファンクションブロック３０２が活性化され、データ書込みの処理が実行される。すなわち、書込み命令は、共有領域へアクセス可能である場合に限って実行される。このような共有領域へアクセス可能であるか否かの監視機能を実装することで、他のＯＳが管理する記憶領域を自ＯＳが管理する記憶領域であると仮想的に取り扱う際に、何らかの原因により仮想的に設けられる記憶領域に不具合が生じた場合であっても、その不具合に起因して、ユーザプログラム１１８の実行が妨げられるといった事態を回避できる。
【００８３】
図４および図５に示すように、ユーザプログラム１１８は、ファイル共有サーバ機能１１６２が提供する共有領域（典型的には、共有フォルダ）へアクセス可能であるか否かを示す情報のいずれをも利用することができる。
【００８４】
図６は、本実施の形態に従う制御装置１００のリアルタイムＯＳにて実行されるファイル共有に係る処理手順を示すフローチャートである。図６に示す各ステップは、リアルタイムＯＳ１１４のシステムプロセス１１４２（図３）がプロセッサ１０２によって実行されることで実現される。
【００８５】
図６を参照して、事前のシステム設定またはユーザプログラム１１８内での設定に基づいて、汎用ＯＳ１１６のファイル共有サーバ機能１１６２が管理する記憶領域をマウントする（ステップＳ２）。これにより、ユーザプログラム１１８において参照可能な記憶領域が提供される。
【００８６】
汎用ＯＳ１１６の記憶領域をマウントした状態であるかが判断され（ステップＳ４）、汎用ＯＳ１１６の記憶領域をマウントした状態でなければ（ステップＳ４においてＮＯの場合）、ステップＳ２以下の処理が繰返される。
【００８７】
汎用ＯＳ１１６の記憶領域をマウントした状態であれば（ステップＳ４においてＹＥＳの場合）、共有領域へアクセス可能であるか否かを監視する所定タイミングが到来したか否かが判断され（ステップＳ６）、共有領域へアクセス可能であるか否かを監視する所定タイミングが到来していなければ（ステップＳ６においてＮＯの場合）、共有領域へアクセス可能であるか否かを監視する所定タイミングの到来まで待つ。
【００８８】
共有領域へアクセス可能であるか否かを監視する所定タイミングが到来していれば（ステップＳ６においてＹＥＳの場合）、汎用ＯＳ１１６のファイル共有サーバ機能１１６２へデータの読出しを行ない、その成否に基づいて、共有領域へアクセス可能であるかを決定し（ステップＳ８）、決定された共有領域へアクセス可能であるか否かを示す情報をシステム変数１１５４として反映する（ステップＳ１０）。そして、ステップＳ４以下の処理が繰返される。
【００８９】
なお、上述の説明においては、監視マネジャ１１４０が共有領域へアクセス可能であるか否かを監視する構成について説明したが、「ファイル共有サーバ機能１１６２が停止している」といったアクセス不可能な場合の要因を切り分けるような機能が実装されてもよい。
【００９０】
＜Ｅ．複数種類の記憶領域を用いた実装例＞
上述したように、本実施の形態に従う制御装置１００は、他のＯＳが管理する記憶領域を利用することもできるため、データの特性や種類に応じて、複数種類の記憶領域を実装することで、より安定性を高めつつ、ユーザビリティも高めることができる。
【００９１】
図７は、本実施の形態に従う制御装置１００において複数種類の記憶領域を用いた実装例を示す模式図である。図７を参照して、制御装置１００は、記憶領域として、ＳＳＤ１５０、ＲＡＭディスク１５２、ＲＡＭ１０８、共有フォルダ１５６を含む。
【００９２】
ＲＡＭディスク１５２は、典型的には、揮発性のメモリを一種のストレージデバイスとして機能させるコンポーネントであり、アクセス速度は高いが、記憶容量は比較的少ないという記憶デバイスである。共有フォルダ１５６は、典型的には、ＨＤＤの記憶領域をフォルダに設定したものであり、ファイル共有プロトコルを介してアクセスするため比較的アクセス速度が低いが、記憶容量は大きくできる。
【００９３】
一時的な記憶領域としてのＲＡＭ１０８に対して、ＲＡＭディスク１５２および共有フォルダ１５６のいずれからもデータ（ログやスプール）を書込むことができるとともに、処理されたデータをＲＡＭディスク１５２および共有フォルダ１５６のいずれにも書込みすることができるようになっている。さらに、ＲＡＭディスク１５２と共有フォルダ１５６との間でもデータ（ファイル）のコピーが可能になっている。
【００９４】
リアルタイムＯＳ１１４で実行される、設備または機械を制御するユーザプログラムが利用するデータやユーザプログラム自体については、高速なアクセスが可能なＲＡＭディスク１５２またはＲＡＭ１０８に格納することで、より高速かつ安定した制御を実現できる。また、ＲＡＭディスク１５２を採用することで、データ損失の可能性を低減できる。なお、ＲＡＭディスク１５２またはＲＡＭ１０８に格納されるデータについては、汎用ＯＳ１１６からアクセスすることはできなくなっており、汎用ＯＳ１１６の処理などによって、ユーザプログラムの実行が影響を受けることはない。
【００９５】
一方、ログファイルや各種設定値などのユーザが参照または変更したいようなデータについては、共有フォルダ１５６に格納することで、ユーザに対して容易なアクセスを提供できる。共有フォルダ１５６については、リアルタイムＯＳ１１４および汎用ＯＳ１１６のいずれからもアクセスが可能になっており、ＯＳを跨いでデータを遣り取りすることを容易に行なうことができる。
【００９６】
なお、ＲＡＭディスク１５２については、電源が遮断されることで、その記憶していたデータが消去されるので、ＳＳＤ１５０は、ＲＡＭディスク１５２が保持する情報をバックアップする。より具体的には、制御装置１００の電源がオンされるとき（厳密に言えば、リアルタイムＯＳ１１４が起動されるとき）に、ＳＳＤ１５０に格納されているデータがＲＡＭディスク１５２にリストアされる。逆に、制御装置１００の電源がオフされるとき（厳密に言えば、リアルタイムＯＳ１１４がシャットダウンされるとき）に、ＲＡＭディスク１５２に格納されているデータがＳＳＤ１５０にリストアされる。
【００９７】
このように、ＳＳＤ１５０とＲＡＭディスク１５２とを組み合わせることで、データの損失を防止しつつ、アクセス速度を高めた制御装置１００を実現できる。
【００９８】
図７に示すように、特性の異なる複数種類のストレージデバイスを用意しておき、ユーザが用途に応じて任意のストレージデバイスを選択できるようにしてもよい。例えば、信頼性の高いＳＳＤ１５０、利便性の高い共有フォルダ１５６、高速アクセスのＲＡＭディスク１５２などを、ユーザが用途に併せて指定可能にしてもよい。
【００９９】
上述のような複数のストレージデバイスを用いる場合において、ユーザが使用するストレージデバイスを明示的に選択した上で、当該選択したストレージデバイスを指定して命令を実行するようにしてもよい。このような構成を採用することで、同時に複数のストレージデバイスを利用することはできないが、従来機種との間の命令互換性を維持できる。
【０１００】
上述のような複数種類の記憶領域を利用する場合には、リアルタイムＯＳ１１４上で動作するプログラムにおいて、共有領域および複数種類の記憶装置のそれぞれの記憶領域へ選択的にアクセスすることを可能にする命令を利用可能にしてもよい。例えば、各記憶領域にユニークなデバイス変数を割り当てておき、そのデバイス変数を指定することで、アクセス先の記憶領域を特定するようにしてもよい。
【０１０１】
あるいは、使用するストレージデバイス毎に専用命令をそれぞれ用意してもよい。ストレージデバイスの種類と同数の専用命令を用意することで、複数種類のストレージデバイスを同時に利用することができる。
【０１０２】
なお、リアルタイムＯＳ１１４が管理する記憶領域への、汎用ＯＳ１１６で実行される汎用アプリケーション１２０からのアクセスは不可能になっている。これは、汎用ＯＳ１１６で実行される任意のアプリケーションによって、ユーザプログラム１１８などの実行への影響を回避するためのである。そのため、そもそも、リアルタイムＯＳ１１４側には、ファイル共有機能自体を実装しないようにすることが好ましい。
【０１０３】
＜Ｆ．セキュリティ＞
図３および図４に示す汎用ＯＳ１１６のファイル共有サーバ機能１１６２に対して、リアルタイムＯＳ１１４のファイル共有クライエント機能１１５２がアクセスする場合には、ファイル共有サーバ機能１１６２において設定されている認証情報（パスワード）や、ファイル共有サーバ機能１１６２自体の指定および各種設定が必要になる。このような共有の記憶領域（典型的には、共有フォルダ）に対するアクセスを実現するための設定については、制御装置１００に接続されるプログラム開発装置を介して行なってもよいし、汎用ＯＳ１１６で実行される汎用アプリケーション１２０を利用して、リアルタイムＯＳ１１４のファイル共有クライエント機能１１５２に対する設定を行なうようにしてもよい。
【０１０４】
なお、汎用ＯＳ１１６が管理するストレージデバイスへのアクセスを許容するための認証情報については、予めデフォルト設定などを与えないようにすることが好ましい。
【０１０５】
＜Ｇ．結論＞
本実施の形態に従う制御装置１００は、汎用的なコンピューティングデバイスを用いて、設備または機械に対する制御を安定的に実行できるとともに、汎用ＯＳで実行される任意の汎用アプリケーションを用いて、リアルタイムＯＳで実行される制御処理に関する情報をフレキシブルに処理することができる。このような構成を採用することで、安定した制御動作の実現と、ユーザビリティの向上とを両立できる。
【０１０６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１０７】
１００  制御装置、１０２  プロセッサ、１０４  システムコントローラ、１０６  ビデオコントローラ、１０８  ＲＡＭ、１１０  ＨＤＤ、１１２  ハイパーバイザ、１１４  リアルタイムＯＳ、１１５，１１７，２２０  ファイルマネジャ、１１６  汎用ＯＳ、１１８  ユーザプログラム、１２０  汎用アプリケーション、１２２  ネットワークインターフェイス、１２４  入出力インターフェイス、１２６  ローカル通信インターフェイス、１５２  ＲＡＭディスク、１５６  共有フォルダ、２００  上位サーバ装置、２１０  アプリケーション、２５０，２６０，３２０  パーソナルコンピュータ、３００  ＰＬＣ、３０２  ファンクションブロック、３１０  記録媒体、１１２１  仮想ネットワークポート、１１４０  監視マネジャ、１１４２  システムプロセス、１１４４  ユーザプログラム実行環境、１１４６  ＦＴＰサーバ機能、１１４８  ＨＴＴＰサーバ機能、１１５２  ファイル共有クライエント機能、１１５４  システム変数、１１５６  共有領域、１１６２  ファイル共有サーバ機能。
【図１】
0006705266.tif 000002
【図２】
0006705266.tif 000003
【図３】
0006705266.tif 000004
【図４】
0006705266.tif 000005
【図５】
0006705266.tif 000006
【図６】
0006705266.tif 000007
【図７】
0006705266.tif 000008