(57)【特許請求の範囲】
【請求項１】
機器からデータを収集するデータ収集部と、
それぞれが予め設定されたデータ処理を行う複数のデータ処理部と、
予め設定されたデータ処理フローの設定情報に基づき、前記データ収集部と前記複数のデータ処理部との間および前記複数のデータ処理部間のデータの授受の制御を実行する実行制御部と、
前記データ処理部に設けられた第１のインタフェース部と、
前記実行制御部に設けられた第２のインタフェース部と、を備え、
前記第１のインタフェース部は、
前記データ処理フローの設定情報に基づき前記実行制御部から送信される前記データ処理部においてデータ処理を実行する前のデータである配信データを受信する配信データ受信部と、
前記配信データのフォーマットを表す情報である前記配信データの定義情報を受信する配信データ定義受信部と、
前記実行制御部へ前記データ処理部によるデータ処理実行後のデータである応答データを送信する応答データ送信部と、
前記応答データのフォーマットを表す情報である前記応答データの定義情報を送信する応答データ定義通知部と、を備え、
前記第２のインタフェース部は、
前記配信データを送信する配信データ送信部と、
前記配信データの定義情報を送信する配信データ定義通知部と、
前記応答データを受信する応答データ受信部と、
前記応答データの定義情報を受信する応答データ定義受信部と、
を備えるデータ処理装置。
【請求項２】
前記第１のインタフェース部は、
前記データ処理部の動作状態を示す情報を前記実行制御部に送信する第１の動作状態通知部を備え、
前記第２のインタフェース部は、
前記データ処理部より送信された前記動作状態を示す情報を受信する第１の動作状態受信部を備える、
請求項１に記載のデータ処理装置。
【請求項３】
前記第２のインタフェース部は、
前記実行制御部の動作状態を示す情報を前記データ処理部に送信する第２の動作状態通知部を備え、
前記第１のインタフェース部は、
前記実行制御部より送信された前記動作状態を示す情報を受信する第２の動作状態受信部を備える、
請求項１または２に記載のデータ処理装置。
【請求項４】
前記配信データおよび前記応答データの定義情報は、データの種別およびデータ量の情報を含む、
請求項１から３のいずれか１項に記載のデータ処理装置。
【請求項５】
前記配信データおよび前記応答データの定義情報は、データの配列の情報を含む、
請求項１から３のいずれか１項に記載のデータ処理装置。
【請求項６】
前記配信データおよび前記応答データの定義情報は、前記データが暗号化されている場合、暗号化の方式の情報を含む、
請求項１から３のいずれか１項に記載のデータ処理装置。
【請求項７】
前記データ収集部は、ＦＡ機器からデータを収集し、
前記データ処理部は、収集したデータまたは他のデータ処理部でデータ処理されたデータに対して加工または診断するデータ処理を行うプラグインソフトウェアにより実現される、
請求項１から６のいずれか１項に記載のデータ処理装置。
【請求項８】
データ処理フローの設定情報を読み出すステップと、
前記データ処理フローの設定情報により特定されたデータ処理部に前記データ処理部においてデータ処理を実行する前のデータである配信データのフォーマットを表す情報である配信データの定義情報を送信するステップと、
前記データ処理部から前記データ処理部によるデータ処理実行後のデータである応答データのフォーマットを表す情報である応答データの定義情報を受信するステップと、
前記データ処理部の動作状態を確認するステップと、
前記配信データを前記データ処理部に送信するステップと、
前記応答データの定義情報に応じて応答データ受信処理の初期化を行い、前記データ処理部から応答データを受信するステップと、
を備えるデータ処理方法。
【請求項９】
コンピュータに、
データ処理フローの設定情報を読み出すステップと、
前記データ処理フローの設定情報により特定されたデータ処理部に前記データ処理部においてデータ処理を実行する前のデータである配信データのフォーマットを表す情報である配信データの定義情報を送信するステップと、
前記データ処理部から前記データ処理部によるデータ処理実行後のデータである応答データのフォーマットを表す情報である応答データの定義情報を受信するステップと、
前記データ処理部の動作状態を確認するステップと、
前記配信データを前記データ処理部に送信するステップと、
前記応答データの定義情報に応じて応答データ受信処理の初期化を行い、前記データ処理部から応答データを受信するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理方法およびプログラムに関する。
【背景技術】
【０００２】
ファクトリーオートメーションの分野において、製造現場のＦＡ（Factory Automation）機器からデータを収集し、収集したデータについて処理フローにて設定された順序で加工、診断等の一連のデータ処理を行うデータ処理装置が存在する。しかし、従来のデータ処理装置は、企業ごとに仕様が異なるため、汎用的なシステムの構築は困難であった。
一方、近年、共通のプラットフォームの上にデータ処理のモジュールを積み上げることにより、データ処理装置を構築することが試みられており、加工、診断等の各種モジュールを自由に置き換えてデータ処理フローを拡張できることが求められている。【０００３】
また、特許文献１には、ワークフローに従いデータ処理部にデータの処理を依頼して一連のデータ処理を実行する技術が開示されている。ワークフローに定義されていないデータ処理部にデータの処理を依頼する依頼先判定部が、そのワークフローに定義されていない処理を識別するための識別情報を含むリストを参照する。ユーザにより入力された設定情報に含まれる識別情報がそのリストに含まれる場合に、その指定された識別情報に対応した処理を実行するデータ処理部にデータの処理を依頼する。これにより、事前に連携するワークフローを定義しなくても、ワークフロー実行時に入力した設定情報を利用してワークフローに定義されていないデータ処理を行うことができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１４６０９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の技術では、データ処理の組み合わせは柔軟に変更できる。しかしながら、組み合わせの候補となるデータ処理を後から追加することが考慮されていない。このためユーザ操作によってデータ処理を追加することは出来ず、組み合わせる各データ処理自体は事前に実装しておく必要がある。このため、製品開発元で追加の実装が必要になったとしても、対応できないという課題がある。【０００６】
本発明は、上述の事情に鑑みてなされたものであり、後からデータ処理を追加することを可能にしつつ、データ処理の組合せを柔軟に変更可能とすることを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明のデータ処理装置は、機器からデータを収集するデータ収集部と、それぞれが予め設定されたデータ処理を行う複数のデータ処理部と、予め設定されたデータ処理フローの設定情報に基づき、データ収集部と複数のデータ処理部との間および複数のデータ処理部間のデータの授受の制御を実行する実行制御部と、データ処理部に設けられた第１のインタフェース部と、実行制御部に設けられた第２のインタフェース部と、を備え、第１のインタフェース部は、データ処理フローの設定情報に基づき実行制御部から送信されるデータ処理部においてデータ処理を実行する前のデータである配信データを受信する配信データ受信部と、配信データのフォーマットを表す情報である配信データの定義情報を受信する配信データ定義受信部と、実行制御部へデータ処理部によるデータ処理実行後のデータである応答データを送信する応答データ送信部と、応答データのフォーマットを表す情報である応答データの定義情報を送信する応答データ定義通知部と、を備え、第２のインタフェース部は、配信データを送信する配信データ送信部と、配信データの定義情報を送信する配信データ定義通知部と、応答データを受信する応答データ受信部と、応答データの定義情報を受信する応答データ定義受信部と、を備える。
【発明の効果】
【０００８】
本発明によれば、データの定義情報をやり取りすることで、後からデータ処理を追加することを可能にしつつ、データ処理の組合せを柔軟に変更することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態に係るデータ処理システムの構成を示す図
【図２】実施の形態に係るデータ処理装置の機能的構成を示す図
【図３】実施の形態に係るエンジニアリングツールの構成を示す図
【図４】実施の形態に係るデータ処理装置のハードウェア構成を示す図
【図５】実施の形態に係るデータ処理フローの一例を示す図
【図６】実施の形態に係るフロー設定情報の一例を示す図
【図７】実施の形態に係るデータ処理部と実行制御部との間の通信構成を示す図
【図８】実施の形態に係る実行制御部の動作処理を示すフローチャート
【図９】実施の形態に係るデータ処理部の動作処理を示すフローチャート
【図１０】実施の形態に係るＭＱＴＴブローカを用いたデータ処理部と実行制御部との間の通信構成を示す図
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態にかかるデータ処理装置、データ処理方法およびプログラムについて図面を参照して詳細に説明する。
【００１１】
（実施の形態１）
図１は、本発明の実施の形態にかかるデータ処理装置１を含むデータ処理システム１００の構成を示す図である。データ処理システム１００は、ＦＡの分野で用いられるシステムであり、種々の機器から収集したデータのデータ処理と、データ処理に基づいた機器への制御とを実行する。
【００１２】
データ処理システム１００は、製造現場である工場に配置されるフィールドシステム２と、フィールドシステム２に接続されたクラウドサーバ３とを備えている。なお、クラウドサーバ３は必須ではなく、フィールドシステム２が単独で存在する場合もあり得る。
【００１３】
フィールドシステム２は、生産機械、センサ、駆動機器等の機器４と、機器４に接続され、機器４のデータを収集するデータ処理装置１と、を備える。
【００１４】
データ処理装置１は、ＦＡ機器の領域とクラウドの間のエッジコンピューティング領域に位置する、工場の現場に設けられているエッジ装置である。データ処理装置１は、機器４からデータを吸い上げ、加工・診断処理を施して機器４に戻す。この処理を遠隔に位置するクラウドサーバ３が実行すると、処理時間がかかるといった問題が生じる。したがって、リアルタイムデータ処理をデータ処理装置１が担当することによって、リアルタイムデータの処理遅延を防止するとともに、クラウドサーバ３に送信されるデータ量を最適化する。
【００１５】
データ処理装置１は、工場内に設置される産業用コンピュータである。データ処理装置１によって実行されるデータ処理は、製品を生産する生産ラインを稼働させるための制御処理である。
【００１６】
図２に示すように、データ処理装置１は、機器４からデータを収集するデータ収集部１１と、収集されたデータに対して各種データ処理を行うデータ処理部１２と、後述するデータ処理フローを設定するエンジニアリングツール１３と、データ処理フローに基づいてデータ処理実行を制御する実行制御部１４と、種々のデータを記憶する記憶部１５と、を備える。
【００１７】
エンジニアリングツール１３、実行制御部１４、記憶部１５は、データ処理フローを実行するためのプラットフォーム１６を形成する。このプラットフォーム１６を有することにより、データの収集、加工、診断、フィードバックといった一連の機能処理について各機能を容易に変更できる。
【００１８】
一連のリアルタイムデータ処理は、データの収集、加工、診断、フィードバック等を組み合わせて構成する。データの加工は、データの平滑化、先鋭化、ＦＦＴ（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）と、この部分処理の名称と、この部分処理の前処理に相当する部分処理と、この部分処理の後処理に相当する部分処理と、この部分処理に入力されるデータの型と、この部分処理から出力されるデータの型と、を関連付けるテーブルデータである。なお、図６において部分処理の名称として便宜的に「収集」「加工」「診断」と記載しているが、例えば、「加工」には、平均化、先鋭化等幾つもの種類が存在する。したがって、実際には、部分処理の名称としてこれらの種類まで細分化したＩＤが用いられる。前処理および後処理についても部分処理のＩＤが用いられる。
【００４２】
なお、フロー設定情報１５１は、図６に例示される情報とは異なる情報を含んでもよい。例えば、フロー設定情報１５１は、部分処理の内容を規定するパラメータを含んでもよい。このパラメータは、例えば、端数処理に用いられる閾値、データを収集する対象となる機器の識別子、データを収集する周期、および、制御命令を送信する対象となる機器の識別子である。
【００４３】
データ処理部１２と実行制御部１４は、図７に示すように、互いにデータのやりとりを行うインタフェースとして、データ処理部１２側のインタフェース部５０、実行制御部１４側のインタフェース部４０を備える。
【００４４】
実行制御部１４側のインタフェース部４０は、インタフェースに従って、配信データの定義情報を通知する配信データ定義通知部４１と、データを配信する配信データ送信部４２と、実行制御部１４の動作状態を通知する動作状態通知部４３と、データ処理部１２の動作状態の通知を受信する動作状態受信部４４と、データ処理部１２からの応答データを受信する応答データ受信部４５と、データ処理部１２から応答データの定義情報を受信する応答データ定義受信部４６と、を備える。
【００４５】
また、データ処理部１２側のインタフェース部５０は、配信データ定義通知部４１からの配信データ定義情報を受信する配信データ定義受信部５１と、配信データ送信部４２からの配信データを受信する配信データ受信部５２と、実行制御部１４の動作状態の通知を受信する動作状態受信部５３と、データ処理部１２の動作状態を通知する動作状態通知部５４と、応答データ受信部４５に応答データを送信する応答データ送信部５５と、応答データ定義受信部４６に応答データの定義情報を送信する応答データ定義通知部５６と、を備える。インタフェース部５０は、請求項の第１のインタフェース部の一例であり、インタフェース部４０は、請求項の第２のインタフェース部の一例である。動作状態通知部５４は、請求項の第１の動作状態通知部の一例であり、動作状態受信部４４は、請求項の第１の動作状態受信部の一例である。動作状態通知部４３は、請求項の第２の動作状態通知部の一例であり、動作状態受信部５３は、請求項の第２の動作状態受信部の一例である。
【００４６】
配信データは、実行制御部１４からデータ処理部１２に送信される当該データ処理部１２においてデータ処理を実行する前のデータである。配信データは、配信データ送信部４２を通じて実行制御部１４から送出される。送出された配信データは、配信データ受信部５２を通じてデータ処理部１２で受信される。
【００４７】
配信データ定義情報は、配信データのフォーマットを表す情報で、例えば、データの種別（データ型）、データ名、データ量、データの配列、パディングデータの有無、暗号化の有無と暗号化の方式、データ送信間隔、データ送信手段（例えばファイル形式等）の情報を含む。暗号化に関する情報は、暗号化されている場合、暗号化有りの情報とともに暗号化の方式の情報を含んでもよいし、暗号化の方式の情報のみを含んでもよい。また、暗号化されていない場合、暗号化無しの情報を含んでもよいし、暗号化に関する情報自体がなくてもよい。前記情報は一例であり、配信データ定義情報としてこれらすべての情報を含んでいる必要はない。
【００４８】
応答データは、データ処理部１２から実行制御部１４に送信される当該データ処理部１２によるデータ処理実行後のデータである。応答データは、応答データ送信部５５を通じてデータ処理部１２から送出される。送出された応答データは、応答データ受信部４５を通じて実行制御部１４で受信される。
【００４９】
応答データ定義情報は、応答データのフォーマットを表す情報で、例えば、データの種別（データ型）、データ名、データ量、データの配列、パディングデータの有無、暗号化の有無と暗号化の方式、データ送信間隔、データ送信手段（例えばファイル形式等）の情報を含む。暗号化に関する情報は、暗号化されている場合、暗号化有りの情報とともに暗号化の方式の情報を含んでもよいし、暗号化の方式の情報のみを含んでもよい。また、暗号化されていない場合、暗号化無しの情報を含んでもよいし、暗号化に関する情報自体がなくてもよい。前記情報は一例であり、応答データ定義情報としてこれらすべての情報を含んでいる必要はない。
配信データ定義情報および応答データ定義情報は、前述した記憶部１５に記憶されたデータ定義情報である。
【００５０】
動作状態は、データ処理部１２、実行制御部１４の動作状態（動作中／停止中等）を表す情報であり、これを受けてデータ処理部１２および実行制御部１４は配信データ、応答データの送信可否や送信タイミングの判断が可能となる。
【００５１】
図８に実行制御部１４のデータ送受信の動作処理を示す。システムの電源ＯＮ等の操作によりデータ処理フローに規定されるデータ処理を開始すると、まず、実行制御部１４は自身の動作状態を動作中に変更する（ステップＳ１０１）。
次に、データ処理フローの設定情報を読み出し、設定情報に記載されるデータ処理部１２を特定する（ステップＳ１０２）。
特定したデータ処理部１２に対して記憶部１５から読み出された配信データの定義情報を配信データ定義通知部４１を通じて送信する（ステップＳ１０３）。
続けて、特定したデータ処理部１２から受信する応答データの定義情報を当該データ処理部１２の応答データ定義通知部５６を通じて受信する（ステップＳ１０４）。特定したデータ処理部１２が複数ある場合、配信データ定義情報の送信および応答データ定義情報の受信は、各データ処理部１２との間で行われる。したがって、図８のフローチャートでは省略しているが、特定したデータ処理部１２が複数ある場合、ステップＳ１０３およびステップＳ１０４の処理は、特定したデータ処理部１２の数だけ繰り返される。
配信データ定義情報の送信および応答データ定義情報の受信が完了すると、実行制御部１４は、定義情報に応じて応答データ受信処理の初期化を行う（ステップＳ１０５）。
【００５２】
初期化が完了したら、特定したデータ処理部１２の動作状態が動作中であるか否かを確認する（ステップＳ１０６）。データ処理部１２が動作中であるかどうかは、データ処理部１２の動作状態通知部５４から実行制御部１４の動作状態受信部４４が受信した動作状態の通知により判断する。
データ処理部１２の動作状態通知部５４は、一定時間ごとに動作状態の通知を送信する。この動作状態の通知処理は、図８の動作処理と並行して実行される。実行制御部１４は、動作状態受信部４４が受信した最新の動作状態の通知に応じて動作状態を判断する。ただし、データ処理部１２がエラー状態であるとき、動作状態通知部５４から動作状態の通知が一定時間ごとに送信されない場合がある。このとき、実行制御部１４が、動作状態受信部４４により受信された最新の動作状態の通知に応じて動作状態を判断すると、エラーになる前の動作状態に基づいて判断することになる。そうすると、実際にはデータ処理部１２は、エラーにより停止中であるにもかかわらず、実行制御部１４は、データ処理部１２が動作中であると誤って判断してしまう場合がある。
このような判断の誤りを回避するために、動作状態の通知が一定時間以上（例えば、３０秒）送信されない場合、エラーと判断してもよい。
この場合、一定時間以上にならなければエラーと判断されないため、動作状態の通知を送信する側は、処理負荷に応じて動作状態の通知の送信間隔を当該一定時間の範囲内で可変にしてもよい。例えば、処理負荷が大きい場合、動作状態の通知の送信間隔を当該一定時間近くまで長くする。
データ処理部１２が動作中でない、すなわち停止中である場合（ステップＳ１０６：Ｎｏ）、ステップＳ１０６の処理を繰り返し、データ処理部１２が動作中になるまで待機する。データ処理部１２の動作状態が停止中である間、実行制御部１４は、配信データを実行制御部１４内の記憶部に蓄積する。データ処理部１２の動作状態が動作中になると（ステップＳ１０６：Ｙｅｓ）、蓄積された配信データをデータ処理部１２に送信する（ステップＳ１０７）。
【００５３】
実行制御部１４から配信データを受信したデータ処理部１２は配信データを基にデータ処理を行い、処理結果のデータを応答データとして実行制御部１４に返信する。実行制御部１４は、データ処理部１２からの応答データを受信する（ステップＳ１０８）と、次にユーザ操作によりデータ処理フローが停止されたか否かを判断する（ステップＳ１０９）。ユーザ操作は、例えば、データ処理装置１に設けられたトグルスイッチのＯＮ／ＯＦＦによる実行、エンジニアリングツール１３からのＯＮ／ＯＦＦの実行等である。ユーザ操作によりデータ処理フローが停止されていない場合（ステップＳ１０９：Ｎｏ）、ステップＳ１０６に戻る。以降、ユーザ操作によりデータ処理フローが停止されない限り、配信データの送信、応答データの受信の処理を繰り返す。ここで、配信データ送信処理と応答データ受信処理はこの順番で実行されるとは限らない。例えば、応答データの受信処理前に、次の配信データの配信準備が整った場合、応答データを受信する処理の前に次の配信データ送信処理を実行する。
ユーザ操作等によりデータ処理フローが停止された場合（ステップＳ１０９：Ｙｅｓ）、配信データの送信、応答データの受信の処理の繰り返しを終了し、動作状態を停止に変更して（ステップＳ１１０）、動作を完了する。
【００５４】
なお、図８のフローチャートに記載の動作は実行制御部１４と１つのデータ処理部１２の間でのデータの送受信に関してであるが、データ処理フローによっては複数のデータ処理を設定することが可能である。２つ以上のデータ処理が設定された場合、ステップＳ１０１、ステップＳ１０２、ステップＳ１１０以外のステップについて、該当するデータ処理部１２の数だけ個別に実施することとなる。
【００５５】
図９にデータ処理部１２のデータ送受信の動作処理を示す。実行ファイルの実行、スタートメニューからの操作等によりデータ処理部１２を起動すると、まず、データ処理部１２は自身の動作状態を動作中に変更する（ステップＳ２０１）。次に、データ処理部１２の設定に応じて応答データ定義通知部５６から実行制御部１４の応答データ定義受信部４６に対して応答データの定義情報を送信する（ステップＳ２０２）。続けて配信データ定義受信部５１は、実行制御部１４の配信データ定義通知部４１から配信データ定義情報を受信する（ステップＳ２０３）。データ処理部１２は、配信データ定義情報に応じて配信データ受信処理の初期化を行う（ステップＳ２０４）。初期化が完了したら、実行制御部１４の動作状態が動作中であるか否かを確認する（ステップＳ２０５）。実行制御部１４が動作中であるかどうかは、実行制御部１４の動作状態通知部４３からデータ処理部１２の動作状態受信部５３が受信した動作状態により判断する。
【００５６】
実行制御部１４の動作状態通知部４３は、データ処理部１２の動作状態通知部５４と同様に、一定時間ごとに動作状態の通知を送信する。この動作状態の通知処理は、図９の動作処理と並行して実行される。データ処理部１２は、動作状態受信部５３が受信した最新の動作状態の通知に応じて動作状態を判断する。ただし、実行制御部１４がエラー状態であるとき、動作状態通知部４３から動作状態の通知が一定時間ごとに送信されない場合がある。このとき、データ処理部１２が、動作状態受信部５３により受信された最新の動作状態の通知に応じて動作状態を判断すると、エラーになる前の動作状態に基づいて判断することになる。そうすると、実際には実行制御部１４は、エラーにより停止中であるにもかかわらず、データ処理部１２は、実行制御部１４が動作中であると誤って判断してしまう場合がある。
このような判断の誤りを回避するために、動作状態の通知が一定時間以上（例えば、３０秒）送信されない場合、エラーと判断してもよい。
これに応じて、動作状態の通知を送信する側は、処理負荷に応じて動作状態の通知の送信間隔を可変にしてもよい。
実行制御部１４が動作中でない、すなわち停止中である場合（ステップＳ２０５：Ｎｏ）、ステップＳ２０５の処理を繰り返し、実行制御部１４が動作中になるまで待機する。
【００５７】
実行制御部１４が動作中であると（ステップＳ２０５：Ｙｅｓ）、データ処理部１２の配信データ受信部５２は、実行制御部１４の配信データ送信部４２からの配信データの受信を開始する（ステップＳ２０６）。実行制御部１４から配信データを受信したデータ処理部１２は配信データを基にデータ処理を行う（ステップＳ２０７）。データ処理が行われると、処理結果のデータを応答データとして応答データ送信部５５から実行制御部１４の応答データ受信部４５に送信する（ステップＳ２０８）。次にユーザ操作によりデータ処理部１２が停止されたか否かを判断する（ステップＳ２０９）。ユーザ操作は、例えば、データ処理装置１に設けられたトグルスイッチのＯＮ／ＯＦＦによる実行、エンジニアリングツール１３からのＯＮ／ＯＦＦの実行等である。ユーザ操作によりデータ処理部１２が停止されていない場合（ステップＳ２０９：Ｎｏ）、ステップＳ２０５に戻る。以降、ユーザ操作によりデータ処理フローが停止されない限り、配信データの受信、データ処理、応答データの送信の処理を繰り返す。ここで、配信データ受信処理と応答データ送信処理はこの順番で実行されるとは限らない。例えば、応答データの送信処理前に、次の配信データの受信準備が整った場合は、応答データを送信する処理の前に次の配信データ受信処理を実行する。
【００５８】
ユーザ操作等によりデータ処理部１２が停止された場合（ステップＳ２０９：Ｙｅｓ）、配信データの受信、応答データの送信の処理の繰り返しを終了し、動作状態を停止に変更して（ステップＳ２１０）、処理を完了する。
【００５９】
なお、配信データの定義情報の内容と応答データの定義情報の内容は、基本的に互いに関連しない。ただし、配信データの定義情報の内容によって応答データの定義情報が変わってくる場合も考えられる。この場合、ステップＳ２０２とステップＳ２０３の順番が入れ替わる。
すなわち、データ処理の動作状態が動作中に変更されると、データ処理部１２の配信データ定義受信部５１が実行制御部１４から配信データ定義情報を受信する。データ処理部１２は、受信した配信データ定義情報に応じて応答データ定義情報を作成する。データ処理部１２の応答データ定義通知部５６は、作成された応答データ定義情報を実行制御部１４の応答データ定義受信部４６に送信する。その後、ステップＳ２０４以降の処理が行われる。
【００６０】
本システムでは、図１０に示すように、データ処理部１２と実行制御部１４の間のデータのやり取りを直接行うのではなく、データ配信サーバを介して行ってもよい。
データ配信サーバは、例えば、ＭＱＴＴ（Message Queuing Telemetry Transport）ブローカ６０が考えられる。
【００６１】
ＭＱＴＴは、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）上で動作する軽量の通信プロトコルであり、パブリッシュ／サブスクライブ型のメッセージを転送する。
ＭＱＴＴの通信プロトコルでは、ＭＱＴＴメッセージを送信する装置をパブリッシャと呼び、ＭＱＴＴメッセージを受信する装置をサブスクライバと呼ぶ。パブリッシャとサブスクライバとの間のＭＱＴＴメッセージの送受信は、ＭＱＴＴブローカ６０と呼ばれるデータ配信サーバによって中継される。パブリッシャは、ＭＱＴＴメッセージを受信するサブスクライバがどのような装置であるかを知ることなく、ＭＱＴＴブローカ６０に対してＭＱＴＴメッセージの送信を行う。ＭＱＴＴブローカ６０は、パブリッシャからのＭＱＴＴメッセージを受信して蓄積し、サブスクライバが必要とするＭＱＴＴメッセージを配信する。
【００６２】
メッセージ送受信の仲介には、トピックと呼ばれるメッセージの送信先を区別するための情報が利用される。
サブスクライバは、トピックを指定し、指定したトピックを送信先とするメッセージを購読する。
パブリッシャがトピックを指定してメッセージを送信した場合、ＭＱＴＴブローカ６０はこれを指定されたトピックに対応するサブスクライバへ配信する。
【００６３】
本システムにおいて、配信データ定義情報、配信データ、データ処理部１２の動作状態、実行制御部１４の動作状態、応答データ、応答データ定義情報のそれぞれがトピックとなる。
サブスクライバであるデータ処理部１２の配信データ定義受信部５１は、配信データ定義情報のトピックを指定して、指定したトピックを送信先とするメッセージをサブスクライブする。
データ処理部１２の配信データ受信部５２は、配信データのトピックを指定して、指定したトピックを送信先とするメッセージをサブスクライブする。
データ処理部１２の動作状態受信部５３は、実行制御部１４の動作状態のトピックを指定して、指定したトピックを送信先とするメッセージをサブスクライブする。
実行制御部１４の動作状態受信部４４は、データ処理部１２の動作状態のトピックを指定して、指定したトピックを送信先とするメッセージをサブスクライブする。
実行制御部１４の応答データ受信部４５は、応答データのトピックを指定して、指定したトピックを送信先とするメッセージをサブスクライブする。
実行制御部１４の応答データ定義受信部４６は、応答データ定義情報のトピックを指定して、指定したトピックを送信先とするメッセージをサブスクライブする。
また、パブリッシャである実行制御部１４の配信データ定義通知部４１は、配信データ定義情報のトピックを指定してメッセージをパブリッシュする。
実行制御部１４の配信データ送信部４２は、配信データのトピックを指定してメッセージをパブリッシュする。
データ処理部１２の動作状態通知部５４は、データ処理部１２の動作状態のトピックを指定してメッセージをパブリッシュする。
実行制御部１４の動作状態通知部４３は、実行制御部１４の動作状態のトピックにデータをパブリッシュする。
データ処理部１２の応答データ送信部５５は、応答データのトピックを指定してメッセージをパブリッシュする。
データ処理部１２の応答データ定義通知部５６は、応答データ定義情報のトピックを指定してメッセージをパブリッシュする。
【００６４】
実行制御部１４は、配信データ定義情報、配信データ、実行制御部１４の動作状態をＭＱＴＴの通信プロトコルに適合したデータに変換した後、ネットワークを介してＭＱＴＴブローカ６０にデータを送信する。
ＭＱＴＴブローカ６０は、実行制御部１４からのデータを受信し、受信したデータをネットワークを介してデータ処理部１２へ送信する。
このとき、実行制御部１４がパブリッシャとなり、データ処理部１２がサブスクライバとなり、ＭＱＴＴブローカ６０が実行制御部１４からデータ処理部１２へのＭＱＴＴメッセージを中継する。
【００６５】
また、データ処理部１２は、応答データ定義情報、応答データ、データ処理部１２の動作状態をＭＱＴＴの通信プロトコルに適合したデータに変換した後、ネットワークを介してＭＱＴＴブローカ６０にデータを送信する。
ＭＱＴＴサーバは、データ処理部１２からのデータを受信し、受信したデータをネットワークを介して実行制御部１４へ送信する。
このとき、データ処理部１２がパブリッシャとなり、実行制御部１４がサブスクライバとなり、ＭＱＴＴブローカ６０がデータ処理部１２から実行制御部１４へのＭＱＴＴメッセージを中継する。
【００６６】
上記実施の形態において、データ処理装置１の機能は、専用のハードウェアによっても、また、通常のコンピュータシステムによっても実現することができる。
【００６７】
例えば、プロセッサ２１によって実行されるプログラムＰ１を、コンピュータ読み取り可能な非一時的な記録媒体に格納して配布し、そのプログラムＰ１をコンピュータにインストールすることにより、上述の処理を実行する装置を構成することができる。このような記録媒体としては、例えばフレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read−Only Memory）、ＤＶＤ（Digital Versatile Disc）、ＭＯ（Magneto−Optical Disc）が考えられる。
【００６８】
また、プログラムＰ１をインターネットに代表される通信ネットワーク上のサーバ装置が有するディスク装置に格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロードするようにしてもよい。
【００６９】
また、通信ネットワークを介してプログラムＰ１を転送しながら起動実行することによっても、上述の処理を達成することができる。
【００７０】
さらに、プログラムＰ１の全部又は一部をサーバ装置上で実行させ、その処理に関する情報をコンピュータが通信ネットワークを介して送受信しながらプログラムを実行することによっても、上述の処理を達成することができる。
【００７１】
なお、上述の機能を、ＯＳ（Operating System）が分担して実現する場合又はＯＳとアプリケーションとの協働により実現する場合等には、ＯＳ以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロードしてもよい。
【００７２】
また、データ処理装置１の機能を実現する手段は、ソフトウェアに限られず、その一部又は全部を、回路を含む専用のハードウェアによって実現してもよい。
【００７３】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施の形態および変形が可能とされるものである。また、上述した実施の形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施の形態ではなく、請求の範囲によって示される。そして、請求の範囲内およびそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【産業上の利用可能性】
【００７４】
本発明は、収集したデータについて加工、診断等のデータ処理を行うデータ処理装置に広く適用することができる。
【符号の説明】
【００７５】
１００  データ処理システム、１  データ処理装置、２  フィールドシステム、３  クラウドサーバ、４  機器、１１  データ収集部、１２  データ処理部、１３  エンジニアリングツール、１３１  ＵＩ部、１３２  受付部、１４  実行制御部、１５  記憶部、１６  プラットフォーム、１７  通信路、２１  プロセッサ、２２  主記憶部、２３  補助記憶部、２４  入力部、２５  出力部、２６  通信部、２７  内部バス、３０  データ処理フロー、３１１，３１２，３１３，３１４  部分処理、１５１  フロー設定情報、４０，５０  インタフェース部、４１  配信データ定義通知部、４２  配信データ送信部、４３，５４  動作状態通知部、４４，５３  動作状態受信部、４５  応答データ受信部、４６  応答データ定義受信部、５１  配信データ定義受信部、５２  配信データ受信部、５５  応答データ送信部、５６  応答データ定義通知部、６０  ＭＱＴＴブローカ、Ｐ１  プログラム。
【図１】
0006878697.tif 000002
【図２】
0006878697.tif 000003
【図３】
0006878697.tif 000004
【図４】
0006878697.tif 000005
【図５】
0006878697.tif 000006
【図６】
0006878697.tif 000007
【図７】
0006878697.tif 000008
【図８】
0006878697.tif 000009
【図９】
0006878697.tif 000010
【図１０】
0006878697.tif 000011