(57)【特許請求の範囲】
【請求項１】
機器からデータを収集するデータ収集部と、
非リアルタイムＯＳ上で動作し、データを処理するデータ処理部と、
前記非リアルタイムＯＳ上で動作し、データ処理フローに基づき、前記データ収集部によるデータ収集処理、前記データ処理部によるデータ処理および前記データ収集部が収集したデータの前記データ処理部への提供を制御する実行制御部と、を備え、
前記データ収集部は、
リアルタイムＯＳ上で動作し、機器からデータを前記データ収集処理として収集する収集実行部と、
前記非リアルタイムＯＳ上で動作し、収集したデータを前記実行制御部が受信できるデータ形式に前記データ収集処理として変換する変換部と、
を備えており、
前記収集実行部および前記変換部は、相互に通信するＯＳ間通信部を備え、
前記ＯＳ間通信部は、それぞれ、
収集したデータを互いに送受信する収集データ通信部と、
前記収集実行部と前記変換部のエラー情報を互いに送受信するエラー情報通信部と、
前記収集実行部と前記変換部の動作状態を示す生存情報を互いに送受信する生存情報通信部と、
を備えるデータ処理装置。
【請求項２】
前記ＯＳ間通信部は、メモリを備え、
収集したデータを前記メモリにバッファリングする、
請求項１に記載のデータ処理装置。
【請求項３】
前記生存情報通信部からの生存情報に基づいて、前記メモリにデータをバッファリングし、またはバッファリングされたデータを送信する、
請求項２に記載のデータ処理装置。
【請求項４】
機器からデータを収集するデータ収集部と、データを処理するデータ処理部と、前記データ収集部によるデータ収集処理、前記データ処理部によるデータ処理および前記データ収集部が収集したデータの前記データ処理部への提供を制御する実行制御部と、を備えるデータ処理装置におけるデータ処理方法であって、
リアルタイムＯＳ上で実行され、前記データ収集部の第１の部分が機器からデータを前記データ収集処理として収集するステップと、
前記第１の部分が、収集した前記データを非リアルタイムＯＳ上で動作する前記データ収集部の第２の部分にＯＳ間通信を介して送信するステップと、
前記第１の部分と前記第２の部分のエラー情報を前記ＯＳ間通信を介して互いに送受信するステップと、
前記第１の部分と前記第２の部分の動作状態を示す生存情報を前記ＯＳ間通信を介して互いに送受信するステップと、
前記第２の部分が、前記ＯＳ間通信を介して受信した前記データを前記実行制御部が受信可能なデータ形式に前記データ収集処理として変換するステップと、
前記第２の部分が、変換した前記データを前記非リアルタイムＯＳ上で動作する前記実行制御部に送信するステップと、
を備えるデータ処理方法。
【請求項５】
機器からデータを収集するデータ収集部と、データを処理するデータ処理部と、前記データ収集部によるデータ収集処理、前記データ処理部によるデータ処理および前記データ収集部が収集したデータの前記データ処理部への提供を制御する実行制御部と、を備えるデータ処理装置におけるデータを処理するプログラムであって、
コンピュータに、
リアルタイムＯＳ上で実行され、前記データ収集部の第１の部分が機器からデータを前記データ収集処理として収集するステップ、
前記第１の部分が、収集した前記データを非リアルタイムＯＳ上で動作する前記データ収集部の第２の部分にＯＳ間通信を介して送信するステップ、
前記第１の部分と前記第２の部分のエラー情報を前記ＯＳ間通信を介して互いに送受信するステップ、
前記第１の部分と前記第２の部分の動作状態を示す生存情報を前記ＯＳ間通信を介して互いに送受信するステップ、
前記第２の部分が、前記ＯＳ間通信を介して受信した前記データを前記実行制御部が受信可能なデータ形式に前記データ収集処理として変換するステップ、
前記第２の部分が、変換した前記データを前記非リアルタイムＯＳ上で動作する前記実行制御部に送信するステップ、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理方法およびプログラムに関する。
【背景技術】
【０００２】
ファクトリーオートメーションの分野において、製造現場のＦＡ（Factory Automation）機器からデータを収集し、収集したデータを加工・診断等して装置制御に役立てるデータ処理装置が知られている。ここで、ＦＡ機器から送られる連続するデータを収集する処理はリアルタイム性を要するのに対して、加工・診断等の処理は高スケーラビリティ、高スループットが要求される。【０００３】
一方、特許文献１は、リアルタイム処理を行うリアルタイムＯＳ（Operating System）と、マルチメディア処理などを行う汎用ＯＳとの２種類のＯＳを擁したハイブリッドＯＳを備えるシステムを開示する。このシステムは、リアルタイムＯＳが持つ高リアルタイム性、高信頼性、および、汎用ＯＳが持つ高スケーラビリティ、高スループットなどを実現する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１８１４７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１記載の技術をＦＡ機器からデータを収集・加工・診断等するデータ処理装置に単純に適用したとしても、データ収集処理と加工・診断等処理との間で処理速度が異なるため、両者の処理をつなげて収集データを受け渡しすることが難しく、充分な性能を引き出すことが困難である。【０００６】
本発明は、上述の事情に鑑みてなされたものであり、リアルタイムでのデータ収集と収集したデータの加工・診断等処理への適切な供給の両立を図ることを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明のデータ処理装置は、機器からデータを収集するデータ収集部と、非リアルタイムＯＳ上で動作し、データを処理するデータ処理部と、非リアルタイムＯＳ上で動作し、データ処理フローに基づき、データ収集部によるデータ収集処理、データ処理部によるデータ処理およびデータ収集部が収集したデータのデータ処理部への提供を制御する実行制御部と、を備える。データ収集部は、リアルタイムＯＳ上で動作し、機器からデータをデータ収集処理として収集する収集実行部と、非リアルタイムＯＳ上で動作し、収集したデータを実行制御部が受信できるデータ形式にデータ収集処理として変換する変換部と、を備えている。収集実行部および変換部は、相互に通信するＯＳ間通信部を備える。ＯＳ間通信部は、それぞれ、収集したデータを互いに送受信する収集データ通信部と、収集実行部と変換部のエラー情報を互いに送受信するエラー情報通信部と、収集実行部と変換部の動作状態を示す生存情報を互いに送受信する生存情報通信部と、を備える。
【発明の効果】
【０００８】
本発明によれば、リアルタイムでのデータ収集とデータの加工・診断等処理への適切な供給を両立することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態に係るデータ処理装置のソフトウェア構成を示す図
【図２】実施の形態に係るデータ処理装置のリアルタイムデータ処理部および非リアルタイムデータ処理部の機能的構成を示す図
【図３】実施の形態に係るエンジニアリングツールの構成を示す図
【図４】実施の形態に係るデータ処理装置のハードウェア構成を示す図
【図５】実施の形態に係るデータ処理フローの一例を示す図
【図６】実施の形態に係るフロー設定情報の一例を示す図
【図７】実施の形態に係るデータ収集部の詳細を示す図
【図８】実施の形態に係るリアルタイムデータ処理部のデータ収集処理を示すフローチャート
【図９】実施の形態に係る非リアルタイムデータ処理部のデータ収集処理を示すフローチャート
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態にかかるデータ処理装置、データ処理方法およびプログラムについて図面を参照して詳細に説明する。
【００１１】
（実施の形態１）
本実施の形態に係るデータ処理装置１は、ＦＡ機器の領域とクラウドの間のエッジコンピューティング領域に位置する、工場の現場に設けられているエッジ装置である。データ処理装置１は、ＦＡ機器からデータを吸い上げ、加工・診断処理を施してＦＡ機器に戻す。この処理を遠隔に位置するクラウドが実行すると、処理時間がかかるといった問題が生じる。したがって、リアルタイムデータ処理をデータ処理装置１が担当することによって、リアルタイムデータの処理遅延を防止するとともに、クラウドに送信されるデータ量を最適化する。
【００１２】
図１は、本発明の実施の形態にかかるデータ処理装置１のソフトウェア構成を示す図である。
データ処理装置１は、生産現場において生産機械、センサ、駆動機器等のＦＡ機器からデータを収集し、各種加工、診断を行い、フィードバックする産業用のコンピュータである。
【００１３】
データ処理装置１は、物理的なコンピュータ上で、複数の仮想的なコンピュータを動作させる仮想化環境を構築している。データ処理装置１は、ハードウェア２上で動作するホストＯＳ３とホストＯＳ３上で動作するハイパーバイザ４を含む。ゲストＯＳであるリアルタイムＯＳ５と非リアルタイムＯＳ６はハイパーバイザ４上でそれぞれ動作している。そしてアプリケーションプログラム、ユーザデータ等の複数のファイルは、リアルタイムＯＳ５、非リアルタイムＯＳ６上にそれぞれ存在している。リアルタイムＯＳ５上には、リアルタイムデータ処理が行われるリアルタイムデータ処理部７が構成される。また、非リアルタイムＯＳ６上には、非リアルタイムデータ処理が行われる非リアルタイムデータ処理部８が構成される。
【００１４】
ハイパーバイザ４は、複数の仮想環境を実現するためのソフトウェアプログラムである。ハイパーバイザ４は、ＣＰＵ（Central Processing Unit）の処理能力、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ハードディスクの記録領域等のハードウェアのリソースを仮想マシンであるリアルタイムデータ処理部７および非リアルタイムデータ処理部８に割り振る。
ホストＯＳ３は、ハイパーバイザ４を起動し、管理するオペレーティングシステムである。
リアルタイムデータ処理部７および非リアルタイムデータ処理部８は、ハイパーバイザ４上で動作する仮想化されたコンピュータである。したがって、リアルタイムデータ処理部７および非リアルタイムデータ処理部８は、それぞれ１台のコンピュータのハードウェアのように振る舞う。
【００１５】
リアルタイムＯＳ５は、予め定められた時間までに予め定められた処理が実行できるようにスケジューリングすることができるＯＳである。非リアルタイムＯＳ６は、豊富なアプリケーションプログラムを搭載した非リアルタイムの汎用ＯＳである。
リアルタイムデータ処理部７を構成するリアルタイムＯＳ５上に、後述する機器からデータを収集するデータ収集部の一部が設けられる。また、非リアルタイムデータ処理部８を構成する非リアルタイムＯＳ６上に、後述するデータ収集部の他の一部、実行制御部、データ処理部、およびエンジニアリングツールが設けられる。
【００１６】
リアルタイムデータ処理部７に設けられる機能構成と非リアルタイムデータ処理部８に設けられる機能構成を図２に示す。
【００１７】
非リアルタイムデータ処理部８は、後述するデータ処理フローを設定するエンジニアリングツール１１と、データ処理フローに基づいてデータ処理実行を制御する実行制御部１２と、種々のデータを記憶する記憶部１３と、収集されたデータに対して各種データ処理を行う複数のデータ処理部１４と、を備える。エンジニアリングツール１１、実行制御部１２、記憶部１３、データ処理部１４は非リアルタイムＯＳ６上で動作する。
これに対して、リアルタイムデータ処理部７および非リアルタイムデータ処理部８の両方に跨がって機器１７からデータを収集するデータ収集部１５が存在する。データ収集部１５のうち、リアルタイムデータ処理部７に存在する部分１５Ａは、リアルタイムＯＳ５上で動作する。また、データ収集部１５のうち、非リアルタイムデータ処理部８に存在する部分１５Ｂは、非リアルタイムＯＳ６上で動作する。以下、データ収集部１５のうち、リアルタイムデータ処理部７に存在する第１の部分１５Ａをデータ収集部１５Ａと、データ収集部１５のうち、非リアルタイムデータ処理部８に存在する第２の部分１５Ｂをデータ収集部１５Ｂと呼ぶ。
【００１８】
エンジニアリングツール１１、実行制御部１２、記憶部１３は、データ処理フローを実行するためのプラットフォーム１６を形成する。このプラットフォーム１６を有することにより、データの収集、加工、診断、フィードバックといった一連の機能処理について各機能を容易に変更できる。
【００１９】
一連のリアルタイムデータ処理は、データの収集、加工、診断、フィードバック等を組み合わせて構成する。データの加工は、データの平滑化、先鋭化、ＦＦＴ（Fast Fourier Transform）処理等を含む。データの診断は、閾値判定、パターンマッチング等を含む。フィードバックは、診断結果の通知であり、生産現場の機器の停止、減速、再開等の指令を書き込む処理を含む。この組み合わせをデータ処理フローと呼ぶ。
【００２０】
エンジニアリングツール１１は、このデータ処理フローの設定を行う。ユーザは、データ処理部１４の組み合わせと実行順序、データ処理部１４とデータ収集部１５との間でやり取りされるデータの種類、フォーマットについてエンジニアリングツール１１を使って設定する。
【００２１】
エンジニアリングツール１１は、図３に示すように、ユーザがデータ処理フローの設定を入力するためのＵＩ（User Interface）部１１１とデータ処理フローの設定を受け付ける受付部１１２からなる。ＵＩ部１１１は、受付部１１２による制御に従って、データ処理フローの設定を入力するための画面をユーザに対して表示する。ユーザは、ＵＩ部１１１を操作して、データ処理フローを構成する部分処理の内容および個数、部分処理の実行に必要なパラメータ、並びに、部分処理を実行するデータ処理部１４を任意に設定する。そして、ＵＩ部１１１は、ユーザの操作により入力されたデータ処理フローの設定を示す情報を受付部１１２へ送出する。なお、ＵＩ部１１１は、ディスプレイとキーボードとマウスに代表されるポインティングデバイスとによって実現されてもよい。
【００２２】
受付部１１２は、ＵＩ部１１１からデータ処理フローの設定を受け付けて、この設定内容を示すフロー設定情報として実行制御部１２に通知する。実行制御部１２に通知されたフロー設定情報は、記憶部１３に格納される。
【００２３】
データ処理部１４は、データ処理装置１に予め設定されたプログラム、またはユーザによって用意されたプラグインソフトウェアによって実現される。データ処理部１４はそれぞれ、データ処理フローを構成する要素としての部分処理を実行する。詳細には、データ処理部１４はそれぞれ、部分処理の対象として実行制御部１２によって入力されるデータを取得して、取得したデータに部分処理を施した結果を実行制御部１２に出力する。
【００２４】
実行制御部１２は、フロー設定情報に従った順序でデータ処理部１４およびデータ収集部１５に部分処理を実行させる。詳細には、実行制御部１２は、データ処理部１４およびデータ収集部１５から部分処理の対象となるデータを取得して、取得したデータを、当該データに部分処理を施すデータ処理部１４またはデータ収集部１５へ送出する。
【００２５】
記憶部１３は、フロー設定情報とデータ定義情報を記憶する。
【００２６】
データ収集部１５は、機器１７から出力されるデータを収集して、収集したデータを実行制御部１２へ送出する。
【００２７】
データ収集部１５Ａおよび機器１７は、通信路１８を介して互いに通信可能に接続される。通信路１８は、工場内に設置された通信線によって実現される産業用の制御ネットワークである。ただし、通信路１８は、ＬＡＮ（Local Area Network）に代表される情報ネットワークであってもよい。また、通信路１８は、専用線であってもよいし、インターネットに代表される広域ネットワークであってもよい。機器１７は、センサ、組立ロボット、駆動機器、あるいはセンサ、組立ロボット等の被制御機器を制御するＰＬＣ（Programmable  Logic  Controller：プログラマブルロジックコントローラ）等である。データ処理装置１は、機器１７に各種データを要求する情報、制御情報を送信し、機器１７は、データ処理装置１にセンサの計測データ、要求されたデータ等種々の情報を送信する。なお、図２において、機器１７として１台が示されているが、一例であって接続台数はこれに制限されない。
【００２８】
また、データ収集部１５は、出力情報を出力する。出力情報は、データ処理フローの実行結果に関する情報である。例えば、実行制御部１２から送出された制御命令を、出力情報として制御対象の機器１７に送信する。なお、出力情報は、制御命令に限定されず、異常の発生を報知するための通知であってもよいし、外部のサーバ装置に格納するための品質管理情報であってもよい。
【００２９】
データ処理装置１は、そのハードウェア構成として、図４に示されるように、プロセッサ２１と、主記憶部２２と、補助記憶部２３と、入力部２４と、出力部２５と、通信部２６と、を有する。主記憶部２２、補助記憶部２３、入力部２４、出力部２５および通信部２６はいずれも、内部バス２７を介してプロセッサ２１に接続される。
【００３０】
プロセッサ２１は、ＣＰＵ（Central Processing Unit）を含む。プロセッサ２１は、補助記憶部２３に記憶されるプログラムＰ１を実行することにより、データ処理装置１の種々の機能を実現する。
【００３１】
主記憶部２２は、ＲＡＭ（Random Access Memory）を含む。主記憶部２２には、補助記憶部２３からプログラムＰ１がロードされる。そして、主記憶部２２は、プロセッサ２１の作業領域として用いられる。
【００３２】
補助記憶部２３は、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）およびＨＤＤ（Hard Disk Drive）に代表される不揮発性メモリを含む。補助記憶部２３は、プログラムＰ１の他に、プロセッサ２１の処理に用いられる種々のデータを記憶する。補助記憶部２３は、プロセッサ２１の指示に従って、プロセッサ２１によって利用されるデータをプロセッサ２１に供給し、プロセッサ２１から供給されたデータを記憶する。なお、図４では、１つのプログラムＰ１が代表的に示されているが、補助記憶部２３は、複数のプログラムを記憶してもよいし、主記憶部２２には、複数のプログラムがロードされてもよい。
【００３３】
入力部２４は、入力キーおよびポインティングデバイスに代表される入力デバイスを含む。入力部２４は、データ処理装置１のユーザによって入力された情報を取得して、取得した情報をプロセッサ２１に通知する。
【００３４】
出力部２５は、ＬＣＤ（Liquid Crystal Display）およびスピーカに代表される出力デバイスを含む。出力部２５は、プロセッサ２１の指示に従って、種々の情報をユーザに提示する。
【００３５】
通信部２６は、外部の装置と通信するためのネットワークインタフェース回路を含む。通信部２６は、外部から信号を受信して、この信号により示されるデータをプロセッサ２１へ出力する。また、通信部２６は、プロセッサ２１から出力されたデータを示す信号を外部の装置へ送信する。
【００３６】
データ処理装置１によって実行されるデータ処理フロー３０が図５に例示されている。このデータ処理フロー３０は、機器１７から収集したデータに対して施される一連の部分処理を含む。
【００３７】
部分処理３１１は、機器１７からデータ収集部１５がデータを収集する処理に相当し、部分処理３１２は、データ処理部１４が部分処理３１１の結果として出力されるデータを加工する処理に相当する。データの加工は、例えばノイズの低減又は端数処理である。
【００３８】
実行制御部１２は、部分処理３１１の結果として収集されたデータをデータ収集部１５から取得して、取得したデータを、部分処理３１２を実行するデータ処理部１４へ送出する。また、実行制御部１２は、部分処理３１２の結果として出力されたデータをデータ処理部１４から取得して、取得したデータを、他方のデータ処理部１４へ送出する。
部分処理３１３は、部分処理３１２の結果として出力されるデータについてデータ処理部１４が診断する処理に相当する。データの診断は、例えば、機器１７に対する制御指令の決定、および、異常の有無の判定である。
【００３９】
実行制御部１２は、部分処理３１３の結果として出力される診断結果を示すデータを部分処理３１４を実行するデータ収集部１５へ送出する。
部分処理３１４は、部分処理３１３の結果として出力される診断結果を示すデータの外部への出力に相当する。診断結果の出力は、機器１７への制御指令の送信を含む。データ収集部１５は、診断結果を機器１７へ送信する。
図５に示されるデータ処理フロー３０によれば、部分処理３１１，３１２，３１３，３１４を含む一連の処理が、機器１７から計測結果が出力されるたびに実行される。そして、例えば、計測結果に含まれるノイズを低減した値に応じて機器１７に対する制御内容が決定されて制御命令が送信される。
【００４０】
図６には、記憶部１３に記憶されるフロー設定情報１３１が例示されている。このフロー設定情報１３１は、図５に示されるデータ処理フローを実行するために必要な設定を示す情報である。フロー設定情報１３１は、部分処理を識別するための部分処理ＩＤ（Identifier）と、この部分処理の名称と、この部分処理の前処理に相当する部分処理と、この部分処理の後処理に相当する部分処理と、この部分処理に入力されるデータの型と、この部分処理から出力されるデータの型と、を関連付けるテーブルデータである。なお、図６において部分処理の名称として便宜的に「収集」「加工」「診断」と記載しているが、例えば、「加工」には、平均化、先鋭化等幾つもの種類が存在する。したがって、実際には、部分処理の名称としてこれらの種類まで細分化したＩＤが用いられる。前処理および後処理についても部分処理のＩＤが用いられる。
【００４１】
なお、フロー設定情報１３１は、図６に例示される情報とは異なる情報を含んでもよい。例えば、フロー設定情報１３１は、部分処理の内容を規定するパラメータを含んでもよい。このパラメータは、例えば、端数処理に用いられる閾値、データを収集する対象となる機器の識別子、データを収集する周期、および、制御命令を送信する対象となる機器の識別子である。
【００４２】
図７にデータ収集部１５の詳細を示す。前述したように、データ収集部１５は、リアルタイムＯＳ５上で動作するリアルタイムデータ処理部７と非リアルタイムＯＳ６上で動作する非リアルタイムデータ処理部８に跨がって存在する。
【００４３】
リアルタイムデータ処理部７に存在するデータ収集部１５Ａは、通信路１８を介して機器１７と接続され、機器１７からデータを収集する収集実行部として機能する。データ収集部１５Ａは、機器１７からデータを収集するデータ収集実行部４１と、収集データのエラー情報を管理するエラー管理部４２と、データ収集部１５Ａの動作状態を管理する生存管理部４３と、を備える。
【００４４】
データ収集実行部４１は、通信路１８を介して機器１７からのリアルタイム性のあるデータ、例えば、センサからセンサデータを収集する。データ収集実行部４１は、機器１７からのｍｓｅｃオーダーの時系列データを収集しなければならない。したがってデータの収集には、高速性と定時性が要求されるが、汎用ＯＳである非リアルタイムＯＳは、この要求に対応できない。そこで、データ収集部１５のうちデータ収集を行うデータ収集実行部４１を含むデータ収集部１５Ａは、リアルタイムＯＳ５上で動作する。すなわち、リアルタイムデータ処理部７側のデータ収集部１５Ａは、リアルタイム性が求められる処理を実行する。
エラー管理部４２は、データ収集の実行処理中におけるエラーの発生を検知し、データ収集部１５Ａのデータ収集におけるエラーを管理する。
生存管理部４３は、データ収集部１５Ａの機能が正常に働いていることを監視する。生存管理部４３は、データ収集実行部４１が動作しているかあるいは停止しているかを検知して、データ収集部１５Ａの動作状態を管理する。
【００４５】
これに対して、非リアルタイムデータ処理部８に存在するデータ収集部１５Ｂは、実行制御部１２と接続され、実行制御部１２と送受信可能にデータを変換する変換部として機能する。データ収集部１５Ｂは、実行制御部１２とデータのやり取りおよび制御に関するやり取りを行うデータ収集制御部４４と、データ収集制御部４４と実行制御部１２の間のインタフェースであるＩＦ（Interface）適合部４５と、を備える。
【００４６】
データ収集制御部４４は、リアルタイムデータ処理部７側のデータ収集部１５Ａから送られてきたデータを受け取り、実行制御部１２に送出する。また、データ処理部１４において診断処理したフィードバックデータを実行制御部１２から受け取り、データ収集部１５Ａに送出する。データ収集部１５Ａに送出されたフィードバックデータは通信路１８を介して機器１７にフィードバックされる。
【００４７】
データ収集制御部４４は、リアルタイムデータ処理部７のエラー管理部４２と同様に、データ収集部１５Ｂのデータ収集におけるエラーを管理する機能を含んでいる。
また、データ収集制御部４４は、リアルタイムデータ処理部７の生存管理部４３と同様に、データ収集部１５Ｂの動作／停止を管理する機能を含んでいる。
これに対して、リアルタイムデータ処理部７は、データ収集制御部４４を含んでいない。データ収集実行部４１は、特定の時間間隔で収集したデータを送るだけなので、とくに制御する必要がないからである。
【００４８】
ＩＦ適合部４５は、実行制御部１２が受信できるデータ形式にデータを変換する。加えて、エラー情報およびデータ収集設定情報のやり取りも行う。これらの通信形式およびデータフォーマットはインタフェース仕様としてあらかじめ決められており、ＩＦ適合部４５はこの仕様に沿った処理を実装する。言い換えれば、ＩＦ適合部４５がこの仕様に沿って実装される限り、データ収集部１５の他の機能ブロックはどのように実装してもデータ処理フローに組み込むことができる。すなわち、ＩＦ適合部４５を備えることによって、ユーザは、使用するネットワークに応じて、あるいは接続する機器１７に応じて、システム構築後に任意のデータ収集部１５を追加／削除することが可能となる。
機器１７とやり取りするプロトコルとプラットフォーム１６とやり取りするプロトコルは別であり、ＩＦ適合部４５はその間の変換を行う。
上述より、非リアルタイムデータ処理部８側のデータ収集部１５Ｂは、実行制御部１２との接続性が求められる処理を実行する。
【００４９】
また、リアルタイムデータ処理部７側のデータ収集部１５Ａおよび非リアルタイムデータ処理部８側のデータ収集部１５Ｂは、リアルタイムデータ処理部７と非リアルタイムデータ処理部８との間のデータのやり取りを行うＯＳ間通信部５０Ａ，５０Ｂをそれぞれ備える。
ＯＳ間通信部５０Ａ，５０Ｂは、リアルタイムデータ処理部７と非リアルタイムデータ処理部８の間のデータ通信を行う。リアルタイムデータ処理部７と非リアルタイムデータ処理部８は搭載するＯＳが異なるため、直接のデータのやり取りができない。したがって、ＯＳ間通信部５０Ａ，５０Ｂがデータ通信を中継する。
【００５０】
ＯＳ間通信部５０Ａ，５０Ｂは、収集したデータを送受信する収集データ通信部５１Ａ，５１Ｂと、エラー情報を送受信するエラー情報通信部５２Ａ，５２Ｂと、生存情報を送受信する生存情報通信部５３Ａ，５３Ｂと、を備える。
【００５１】
収集データ通信部５１Ａは、データ収集実行部４１が機器１７から収集したデータを非リアルタイムデータ処理部８側の収集データ通信部５１Ｂに送信する。また、収集データ通信部５１Ｂは、実行制御部１２からＩＦ適合部４５、データ収集制御部４４を通じて送られてきたフィードバックデータを収集データ通信部５１Ａに送信する。
【００５２】
エラー情報通信部５２Ａは、エラー管理部４２からのエラー情報を非リアルタイムデータ処理部８側のエラー情報通信部５２Ｂに送信する。またデータ収集制御部４４内のエラー管理機能からのエラー情報をエラー情報通信部５２Ｂからエラー情報通信部５２Ａに送信する。
【００５３】
生存情報通信部５３Ａは、生存管理部４３からの生存情報を非リアルタイムデータ処理部８側の生存情報通信部５３Ｂに送信する。またデータ収集制御部４４内の生存管理機能からの生存情報を生存情報通信部５３Ｂから生存情報通信部５３Ａに送信する。生存情報とは、動作状態を示す情報である。データ収集部１５は、ＯＳ間を跨いでいるので、リアルタイムデータ処理部７におけるタスクと非リアルタイムデータ処理部８におけるタスクは互いに別である。したがってどちらかのタスクが停止している可能性がある。したがって、一定間隔で互いに動作状態であることを示す情報を送ることによって、互いの動作状態の確認を行う。
【００５４】
ＯＳ間通信部５０Ａ，５０Ｂは、ＯＳの違いによる処理速度の差を吸収するバッファリング機能を有する。さらにＯＳ間通信部５０Ａ，５０Ｂは、他方の通信部５０Ｂ，５０Ａのデータ受信状況に応じて送信速度を調整する機能を有する。
リアルタイムＯＳ５と非リアルタイムＯＳ６では、その特性上、各種処理のスケジューリングに異なる制御が用いられる。
リアルタイムＯＳは、リアルタイム性が要求される処理に対して高い優先度を割り当て、リアルタイム性を実現する。データ収集実行部４１は、機器１７から一定速度のデータを収集する。
一方、非リアルタイムＯＳは、処理の実行時間により優先度が変更されることがある。したがって、他の処理が完了するまで待つ必要があり、高い優先度の処理が優先的に実行されない。そのため、処理の実行時間にムラがあり、局所的に処理速度に偏り（速度の差）が生じることがある。これにより、データ収集実行部４１が収集するデータを円滑に処理できない場合がある。
ＯＳ間通信部５０Ａ，５０Ｂがバッファリング機能を有することによって、データ収集実行部４１が収集したデータをデータ収集制御部４４が円滑に処理することができる。
【００５５】
例えば、ＯＳ間通信部５０Ａ，５０Ｂはともにメモリを備えており、データを緩衝可能に送受信する。メモリは、例えばリングバッファにより構成される。ＯＳ間通信部５０Ａのメモリには、機器１７から収集されたデータが格納され、格納されたデータは読み出されてＯＳ間通信部５０Ｂに送信される。ＯＳ間通信部５０Ｂのメモリには、ＯＳ間通信部５０Ｂの収集データ通信部５１Ｂが受信したデータが格納される。格納されたデータは読み出されて、ＩＦ適合部４５で変換された後、実行制御部１２に送出される。
ＯＳ間通信部５０Ｂは、ＯＳ間通信部５０Ａからデータが送信される間、メモリを監視する。非リアルタイムＯＳ６が処理に時間を要しているとき、ＯＳ間通信部５０Ｂのメモリ内に格納されたデータ量は増加する。メモリ内のデータ量が閾値に達すると、データ収集制御部４４は、動作停止を示す生存情報をＯＳ間通信部５０Ｂの生存情報通信部５３ＢからＯＳ間通信部５０Ａの生存情報通信部５３Ａに送信する。
これを受けてＯＳ間通信部５０Ａは、データの送信を停止する。
データ収集制御部４４側で動作が停止した場合、データ収集実行部４１が収集するデータは、ＯＳ間通信部５０Ａのメモリにバッファリングされる。データ収集制御部４４の動作が再開すると、ＯＳ間通信部５０ＡはメモリにバッファリングされているデータをＯＳ間通信部５０Ｂに送信する。したがって、データ収集制御部４４側が動作を再開した場合、収集したデータが途切れることなく処理を再開することが可能である。
【００５６】
また、バッファリング機能として、ＯＳ間に共有メモリを設置しこれを利用する方法が考えられる。ＯＳ間通信部５０Ａ，５０Ｂが共有メモリを備えている場合、共有メモリは、ＯＳ間通信部５０Ａ，５０Ｂの両方からデータの読み出しおよび書き込みが可能である。共有メモリには、ＯＳ間通信部５０ＡからＯＳ間通信部５０Ｂに送信するデータおよびＯＳ間通信部５０ＢからＯＳ間通信部５０Ａに送信するデータが格納される。共有メモリは、主記憶部２２の領域の一部に設けられる。収集データ通信部５１Ａは、収集したデータを共有メモリに格納して、非リアルタイムデータ処理部８側のデータ収集部１５Ｂに対して収集したデータを共有メモリに格納したことを通知する。収集データ通信部５１Ｂは、データ送信の通知を受けて共有メモリに格納されたデータを読み出すことによりデータを受信する。ＯＳ間通信部５０Ａ，５０Ｂは、この共有メモリへのアクセスおよび排他制御を実行する。
データ収集部１５Ｂが停止した場合、ＯＳ間通信部５０Ａは機器１７から収集したデータを共有メモリに格納することによりバッファリングする。
データ収集部１５Ｂが動作状態になると、ＯＳ間通信部５０Ａは共有メモリ内にバッファリングデータがあるか否か確認し、バッファリングデータがある場合、収集データ通信部５１Ａが収集データ通信部５１Ｂに対してデータを送信する旨を通知する。通知を受けたＯＳ間通信部５０Ｂは、共有メモリに格納されたデータを読み出すことによりデータを受信する。
【００５７】
図８にリアルタイムデータ処理部７側のデータ収集部１５Ａのデータ収集処理の動作を示す。データ収集部１５Ａは起動後、初期化処理を行う（ステップＳ１０１）。
次に、メモリ内に既にデータ収集実行部４１が収集したバッファリングデータがあるか否か確認する（ステップＳ１０２）。バッファリングデータがある場合（ステップＳ１０２：Ｙｅｓ）、非リアルタイムデータ処理部８側のデータ収集部１５Ｂが動作中であるか否かを生存情報通信部５３Ａを介して確認する（ステップＳ１０３）。データ収集部１５Ｂが動作中であれば（ステップＳ１０３：Ｙｅｓ）、バッファリングデータをＯＳ間通信部５０Ａの収集データ通信部５１Ａを介してデータ収集部１５Ｂに送信する（ステップＳ１０４）。
【００５８】
次に、予めエンジニアリングツール１１によって設定されたデータ収集タイミング（一定周期、特定の条件を満たしたタイミング等）か否かを確認する（ステップＳ１０５）。ステップＳ１０２において、バッファリングデータがない場合（ステップＳ１０２：Ｎｏ）、ステップＳ１０３において、データ収集部１５Ｂが停止中である場合（ステップＳ１０３：Ｎｏ）も、ステップＳ１０５に移行する。データ収集タイミングが、指定タイミングで有れば（ステップＳ１０５：Ｙｅｓ）、データ収集実行部４１が機器１７よりデータを収集する（ステップＳ１０６）。指定タイミングでなければ（ステップＳ１０５：Ｎｏ）、ステップＳ１０２に戻る。
【００５９】
ステップＳ１０６において、データを収集すると、次に、データ収集部１５Ｂが動作中であるか否かを確認する（ステップＳ１０７）。このとき、データ収集部１５Ｂが動作中であれば（ステップＳ１０７：Ｙｅｓ）、収集データをＯＳ間通信部５０Ａの収集データ通信部５１Ａを介して送信する（ステップＳ１０８）。停止中であれば（ステップＳ１０７：Ｎｏ）、収集データをバッファリングしておく（ステップＳ１０９）。なお、ステップＳ１０７において、停止中であることに加えて、データ収集部１５Ｂの処理速度が遅く、収集データが滞留している場合も、データをバッファリングするようにしてもよい。
【００６０】
続いて、ユーザによる操作によってデータ処理フローが停止されたか否か判断される（ステップＳ１１０）。ここでユーザによる操作とは、例えば、装置に設けられたトグルスイッチを操作した場合、エンジニアリングツール１１から停止操作した場合である。ユーザ操作によってデータ処理フローが停止された場合（ステップＳ１１０：Ｙｅｓ）、ＩＦ適合部４５を介して停止指示を受信し、データ収集制御部４４がデータ収集部１５Ａ，１５Ｂ全体の動作を終了する。ユーザ操作によるデータ処理フローの停止がない場合（ステップＳ１１０：Ｎｏ）、ステップＳ１０２に戻る。ステップＳ１０９において、収集データをバッファリングしていた場合、メモリ内にバッファリングデータが存在することから（ステップＳ１０２：Ｙｅｓ）、ステップＳ１０３に移行し、データ収集部１５Ａの動作状態を確認する。データ収集部１５Ａが動作中であれば（ステップＳ１０３：Ｙｅｓ）、バッファリングデータをデータ収集部１５Ｂに送信する（ステップＳ１０４）。こうしてリアルタイムＯＳ５上で動作するデータ収集部１５Ａと非リアルタイムＯＳ６上で動作するデータ収集部１５Ｂの処理速度の差を吸収し、データ収集から加工・診断へ処理をつなげることができる。
【００６１】
図９に非リアルタイムデータ処理部８側のデータ収集部１５Ｂのデータ収集処理の動作を示す。データ収集部１５Ｂは起動後、初期化処理を行い（ステップＳ２０１）、生存情報通信部５３Ｂを介して取得したリアルタイムデータ処理部７側のデータ収集部１５Ａの生存情報を確認する（ステップＳ２０２）。データ収集部１５Ａが生存していれば（動作中であれば）（ステップＳ２０２：Ｙｅｓ）、続けてエラー情報通信部５２Ｂを介してエラー情報を確認する（ステップＳ２０３）。データ収集部１５Ａが生存してなければ（動作中でなければ）（ステップＳ２０２：Ｎｏ）、生存中（動作中）になるまで、ステップＳ２０２の生存確認の処理を繰り返す。
【００６２】
ステップＳ２０３において、エラー発生中でなければ（ステップＳ２０３：Ｙｅｓ）、ＯＳ間通信部５０Ｂの収集データ通信部５１Ｂを介して収集データを受信する（ステップＳ２０４）。エラー発生中であれば（ステップＳ２０３：Ｎｏ）、ステップＳ２０２に戻り、エラーが発生しなくなるまで、ステップＳ２０２、Ｓ２０３の確認処理を繰り返す。
【００６３】
ステップＳ２０４において、収集データを受信すると、取得したデータはＩＦ適合部４５によって実行制御部１２向けに変換される（ステップＳ２０５）。変換されたデータは、ＩＦ適合部４５を介して実行制御部１２に送信される（ステップＳ２０６）。
【００６４】
続いて、ユーザによる操作によってデータ処理フローが停止されたか否か判断される（ステップＳ２０７）。ここでユーザによる操作とは、例えば、装置に設けられたトグルスイッチを操作した場合、エンジニアリングツール１１から停止操作した場合である。ユーザ操作によってデータ処理フローが停止された場合（ステップＳ２０７：Ｙｅｓ）、データ収集制御部４４は、ＩＦ適合部４５を介して停止指示を受信し、データ収集部１５Ａ，１５Ｂ全体の動作を終了する。ユーザ操作によるデータ処理フローの停止がない場合（ステップＳ２０７：Ｎｏ）、ステップＳ２０２に戻り、以降の処理が繰り返される。
【００６５】
上記実施の形態において、データ収集部１５は１つであったが、これに限らず複数備えてもよい。各々のデータ収集部１５は、通信路１８を介して異なる機器１７と接続される。この場合、データを収集した機器１７およびデータ収集部１５と収集したデータを加工・診断した結果を通知するデータ収集部１５および機器１７が異なってもよい。例えば、センサから収集したデータを診断した結果をモータにフィードバックする場合が該当する。
【００６６】
また、上記実施の形態において、ホストＯＳ３上でハイパーバイザ４が動作する構成であったが、これに限らず、ハードウェア２上でハイパーバイザ４が直接動作し、リアルタイム０Ｓ５および非リアルタイムＯＳ６はハイパーバイザ４上で動作する仮想環境において適用してもよい。また、ハイパーバイザ上でゲストＯＳを稼働するハイパーバイザ型に限らず、ホストＯＳ上で仮想化ソフトを実行しゲストＯＳを稼働するホスト型で構成される仮想環境において適用してもよい。
【００６７】
また、データ処理装置１の機能は、専用のハードウェアによっても、また、通常のコンピュータシステムによっても実現することができる。
【００６８】
例えば、プロセッサ２１によって実行されるプログラムＰ１を、コンピュータ読み取り可能な非一時的な記録媒体に格納して配布し、そのプログラムＰ１をコンピュータにインストールすることにより、上述の処理を実行する装置を構成することができる。このような記録媒体としては、例えばフレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read−Only Memory）、ＤＶＤ（Digital Versatile Disc）、ＭＯ（Magneto−Optical Disc）が考えられる。
【００６９】
また、プログラムＰ１をインターネットに代表される通信ネットワーク上のサーバ装置が有するディスク装置に格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロードするようにしてもよい。
【００７０】
また、通信ネットワークを介してプログラムＰ１を転送しながら起動実行することによっても、上述の処理を達成することができる。
【００７１】
さらに、プログラムＰ１の全部又は一部をサーバ装置上で実行させ、その処理に関する情報をコンピュータが通信ネットワークを介して送受信しながらプログラムを実行することによっても、上述の処理を達成することができる。
【００７２】
なお、上述の機能を、ＯＳが分担して実現する場合又はＯＳとアプリケーションとの協働により実現する場合等には、ＯＳ以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロードしてもよい。
【００７３】
また、データ処理装置１の機能を実現する手段は、ソフトウェアに限られず、その一部又は全部を、回路を含む専用のハードウェアによって実現してもよい。
【００７４】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施の形態および変形が可能とされるものである。また、上述した実施の形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施の形態ではなく、請求の範囲によって示される。そして、請求の範囲内およびそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【産業上の利用可能性】
【００７５】
本発明は、データを収集し、収集したデータについて加工、診断等のデータ処理を行うデータ処理装置に広く適用することができる。
【符号の説明】
【００７６】
１  データ処理装置、２  ハードウェア、３  ホストＯＳ、４  ハイパーバイザ、５  リアルタイムＯＳ、６  非リアルタイムＯＳ、７  リアルタイムデータ処理部、８  非リアルタイムデータ処理部、１１  エンジニアリングツール、１１１  ＵＩ部、１１２  受付部、１２  実行制御部、１３  記憶部、１４  データ処理部、１５，１５Ａ，１５Ｂ  データ収集部、１６  プラットフォーム、１７  機器、１８  通信路、２１  プロセッサ、２２  主記憶部、２３  補助記憶部、２４  入力部、２５  出力部、２６  通信部、２７  内部バス、３０  データ処理フロー、３１１，３１２，３１３，３１４  部分処理、１３１  フロー設定情報、４１  データ収集実行部、４２  エラー管理部、４３  生存管理部、４４  データ収集制御部、４５  ＩＦ適合部、５０Ａ，５０Ｂ  ＯＳ間通信部、５１Ａ，５１Ｂ  収集データ通信部、５２Ａ，５２Ｂ  エラー情報通信部、５３Ａ，５３Ｂ  生存情報通信部、Ｐ１  プログラム。
【要約】
データ処理装置（１）は、機器（１７）からデータを収集するデータ収集部（１５）と、非リアルタイムＯＳ上で動作し、データを処理するデータ処理部（１４）と、非リアルタイムＯＳ上で動作し、データ処理フローに基づき、データ収集部（１５）によるデータ収集処理、データ処理部（１４）によるデータ処理およびデータ収集部（１５）が収集したデータのデータ処理部（１４）への提供を制御する実行制御部（１２）と、を備える。データ収集部（１５）は、リアルタイムＯＳ上で動作し、機器（１７）からデータを収集するデータ収集実行部と、非リアルタイムＯＳ上で動作し、収集したデータを実行制御部（１２）が受信できるデータ形式に変換するＩＦ適合部と、を備える。【図１】
0006833116.tif 000002
【図２】
0006833116.tif 000003
【図３】
0006833116.tif 000004
【図４】
0006833116.tif 000005
【図５】
0006833116.tif 000006
【図６】
0006833116.tif 000007
【図７】
0006833116.tif 000008
【図８】
0006833116.tif 000009
【図９】
0006833116.tif 000010