(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-23
(45)【発行日】2023-01-31
(54)【発明の名称】産業機器のデータ収集システム、産業機器のデータ収集方法、及びプログラム
(51)【国際特許分類】
G05B 23/02 20060101AFI20230124BHJP
【FI】
G05B23/02 301U
(21)【出願番号】P 2021030307
(22)【出願日】2021-02-26
【審査請求日】2021-03-03
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】長田 武
(72)【発明者】
【氏名】中村 智之
(72)【発明者】
【氏名】松永 彩
(72)【発明者】
【氏名】小畑 慎一朗
(72)【発明者】
【氏名】西田 亮輔
【審査官】山村 秀政
(56)【参考文献】
【文献】特開2020-123230(JP,A)
【文献】特開2019-149081(JP,A)
【文献】特表2005-531933(JP,A)
【文献】国際公開第2019/087409(WO,A1)
【文献】国際公開第2020/136845(WO,A1)
【文献】特開2002-196814(JP,A)
【文献】特開2001-258080(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 23/02
(57)【特許請求の範囲】
【請求項1】
産業機器を制御可能な上位制御装置と、データ収集装置と、を含むデータ収集システムであって、
前記上位制御装置は、
所定の収集設定に基づいて、前記産業機器に関する収集データを収集する収集部と、
前記データ収集装置に対し、前記収集設定及びパーサを識別可能な識別情報
であって、前記産業機器を識別可能な第1識別情報と、前記第1識別情報とは異なり、前記産業機器の中で複数の前記収集設定が存在する場合に個々の前記収集設定を識別可能な第2識別情報と、を含む前記識別情報と、前記収集データと、を送信する送信部と、
を含み、
前記データ収集装置は、
複数の前記識別情報の各々と、前記収集設定及び前記パーサと、を関連付けて記憶する記憶部と、
前記上位制御装置から受信した
前記第1識別情報及び前記第2識別情報に基づいて、前記収集設定を特定する収集設定特定部と、
前記上位制御装置から受信した
前記第1識別情報及び前記第2識別情報に基づいて、前記パーサを特定するパーサ特定部と、
前記特定された収集設定及びパーサに基づいて、前記収集データに関するパース処理を実行する実行部と、
を有する産業機器のデータ収集システム。
【請求項2】
前記産業機器は、上位制御装置が制御可能であり、
前記データ収集システムは、前記上位制御装置の制御対象に関する定義情報に基づいて、前記第1識別情報を設定する設定部を更に有する、
請求項
1に記載のデータ収集システム。
【請求項3】
前記第2識別情報は、前記収集データに関する収集アプリにより利用される変数を識別可能な変数識別情報の全部又は一部であり、
前記収集アプリは、前記変数に基づいて、前記収集設定に応じた前記収集データの収集に関する処理を実行し、
前記収集部は、前記収集アプリにより実行された処理に基づいて、前記収集データを収集する、
請求項
1又は
2に記載のデータ収集システム。
【請求項4】
前記データ収集システムは、ユーザによる前記識別情報及び前記収集設定の指定を受け付ける受付部を更に有し、
前記収集設定特定部は、前記収集データに関連付けられた、前記ユーザにより指定された前記識別情報に基づいて、前記ユーザにより指定された前記収集設定を特定する、
請求項1~
3の何れかに記載のデータ収集システム。
【請求項5】
前記記憶部は、前記識別情報と、前記収集設定と、を関連付けたデータベースを記憶し、
前記収集設定特定部は、前記データベースと、前記収集データに関連付けられた識別情報と、に基づいて、前記収集設定を特定する、
請求項1~
4の何れかに記載のデータ収集システム。
【請求項6】
前記上位制御装置の制御周期と、前記産業機器の制御周期と、は異なり、
前記収集部は、前記上位制御装置の制御周期とは異なる前記産業機器の制御周期に基づいて生成された前記収集データを収集する、
請求項1~
5の何れかに記載のデータ収集システム。
【請求項7】
前記収集部は、前記産業機器ごとの時間情報を含む前記収集データを収集する、
請求項1~
6の何れかに記載のデータ収集システム。
【請求項8】
前記産業機器は、所定のトリガに基づいて、前記収集データを収集し、
前記収集部は、前記トリガに対応する時間情報を含む前記収集データを収集する、
請求項1~
7の何れかに記載のデータ収集システム。
【請求項9】
前記実行部は、前記収集データが格納されたデータベースに格納された前記収集データに前記パース処理を実行し、前記パース処理が実行された前記収集データを、前記データベース又は他のデータベースに格納する、
請求項1~
8の何れかに記載のデータ収集システム。
【請求項10】
前記データ収集システムは、
複数の解析アプリの中から、前記収集データの解析に関する解析アプリを特定する解析アプリ特定部と、
前記パース処理が実行された前記収集データを、前記特定された解析アプリに解析させる解析実行部と、
を更に有する請求項1~
9の何れかに記載のデータ収集システム。
【請求項11】
産業機器を制御可能な上位制御装置と、データ収集装置と、による産業機器のデータ収集方法であって、
前記上位制御装置が、
所定の収集設定に基づいて、前記産業機器に関する収集データを収集し、
前記データ収集装置に対し、前記収集設定及びパーサを識別可能な識別情報
であって、前記産業機器を識別可能な第1識別情報と、前記第1識別情報とは異なり、前記産業機器の中で複数の前記収集設定が存在する場合に個々の前記収集設定を識別可能な第2識別情報と、を含む前記識別情報と、前記収集データと、を送信し、
前記データ収集装置が、
複数の前記識別情報の各々と、前記収集設定及び前記パーサと、を関連付けて記憶し、
前記上位制御装置から受信した
前記第1識別情報及び前記第2識別情報に基づいて、前記収集設定を特定し、
前記上位制御装置から受信した
前記第1識別情報及び前記第2識別情報に基づいて、前記パーサを特定し、
前記特定された収集設定及びパーサに基づいて、前記収集データに関するパース処理を実行する、
産業機器のデータ収集方法。
【請求項12】
産業機器を制御可能な上位制御装置と通信可能なデータ収集装置を、
所定の収集設定及びパーサを識別可能な識別情報であって、前記産業機器を識別可能な第1識別情報と、前記第1識別情報とは異なり、前記産業機器の中で複数の前記収集設定が存在する場合に個々の前記収集設定を識別可能な第2識別情報と、を含む複数の
前記識別情報の各々と、
前記収集設定及び前記パーサと、を関連付けて記憶する記憶部を参照する参照部、
前記上位制御装置から受信した
前記第1識別情報及び前記第2識別情報に基づいて、前記収集設定を特定する収集設定特定部、
前記上位制御装置から受信した
前記第1識別情報及び前記第2識別情報に基づいて、前記パーサを特定するパーサ特定部、
前記特定された収集設定及びパーサに基づいて、前記収集データに関するパース処理を実行する実行部、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、産業機器のデータ収集システム、産業機器のデータ収集方法、及びプログラムに関する。
【背景技術】
【0002】
特許文献1には、所定の収集設定に基づいて産業機器の動作を時系列的にトレースして収集データを収集し、収集データをクラウドサーバにアップロードするシステムが記載されている。産業機器からアップロードされた収集データは、解析者に対して解析が依頼される。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示が解決しようとする課題は、例えば、収集データの収集設定に応じたパース処理を実行することである。
【課題を解決するための手段】
【0005】
本開示の一側面に係る産業機器のデータ収集システムは、所定の収集設定に基づいて、産業機器に関する収集データを収集する収集部と、前記収集データに関連付けられた識別情報に基づいて、前記収集設定を特定する収集設定特定部と、前記特定された収集設定に基づいて、前記収集データに関するパース処理を実行する実行部と、を有する。
【発明の効果】
【0006】
本開示によれば、例えば、収集データの収集設定に応じたパース処理を実行できる。
【図面の簡単な説明】
【0007】
【
図1】データ収集システムの全体構成の一例を示す図である。
【
図2】第1実施形態のデータ収集システムにおけるデータ収集の流れの一例を示す図である。
【
図4】第1実施形態のデータ収集システムで実現される機能の一例を示す機能ブロック図である。
【
図5】データベースのデータ格納例を示す図である。
【
図6】トピックIDによってフィードバック用の変数名が区別される例を示す図である。
【
図7】産業機器ごとにデータベースが用意されている場合の一例を示す図である。
【
図8】第1実施形態のデータ収集システムで実行される処理の一例を示すフロー図である。
【
図9】第1実施形態のデータ収集システムで実行される処理の一例を示すフロー図である。
【
図10】第2実施形態のデータ収集システムにおけるデータ収集の流れの一例を示す図である。
【
図11】第3実施形態のデータ収集システムにおけるデータ収集の流れの一例を示す図である。
【
図12】第4実施形態のデータ収集システムにおけるデータ収集の流れの一例を示す図である。
【
図13】第5実施形態のデータ収集システムにおけるデータ収集の流れの一例を示す図である。
【発明を実施するための形態】
【0008】
[1.第1実施形態]
本開示に係るデータ収集システムの実施形態の一例を説明する。以降、データ収集システムの第1実施形態を説明する。
【0009】
[1-1.データ収集システムの全体構成]
図1は、データ収集システムの全体構成の一例を示す図である。
図1に示すように、データ収集システム1は、データ収集装置10、上位制御装置20、及び産業機器30を含む。各装置は、フィールドネットワーク又は一般的なネットワーク等の任意のネットワークにより接続される。
【0010】
データ収集装置10は、データ収集システム1における種々のデータを収集可能な装置である。第1実施形態における収集は、受信又は取得と同じ意味である。例えば、データ収集装置10は、パーソナルコンピュータ、サーバコンピュータ、タブレット端末、又はスマートフォンである。例えば、データ収集装置10は、CPU11、記憶部12、通信部13、操作部14、及び表示部15を含む。
【0011】
CPU11は、少なくとも1つのプロセッサを含む。CPU11は、circuitryの一種である。記憶部12は、揮発性メモリと、不揮発性メモリと、の少なくとも一方を含む。通信部13は、有線通信用の通信インタフェースと、無線通信用の通信インタフェースと、の少なくとも一方を含む。操作部14は、マウス又はキーボード等の入力デバイスである。表示部15は、液晶ディスプレイ又は有機ELディスプレイである。
【0012】
上位制御装置20は、1以上の産業機器30を制御する装置である。第1実施形態における制御は、産業機器30に工程の開始を指示することだけではなく、工程の開始は原則として指示せずに、産業機器30に対して他の最低限の指示だけを行うことも含む意味である。産業機器30が上位制御装置20からの何らかの指示に基づいて何らかの動作をすることが、制御に相当すればよい。
【0013】
上位制御装置20は、任意の数の産業機器30を制御可能である。データ収集システム1全体をセルと呼ぶ場合、上位制御装置20は、セルコントローラと呼ばれることがある。上位制御装置20は、PLC(Programmable Logic Controller)のように他の名称の装置であってもよい。例えば、上位制御装置20は、CPU21、記憶部22、通信部23、及びIoT部24を含み、HMI(Human Machine Interface)装置25が接続可能である。CPU21、記憶部22、及び通信部23の物理的構成は、それぞれCPU11、記憶部12、及び通信部13と同様であってよい。
【0014】
IoT部24は、ネットワークを介して、他のコンピュータにデータを送信するハードウェアである。例えば、IoT部24は、CPU、記憶部、及び通信部を含む。IoT部24に含まれるCPU、記憶部、及び通信部の物理的構成は、それぞれCPU11、記憶部12、及び通信部13と同様であってよい。例えば、CPU21とIoT部24の間で、定期的又は不定期的にデータの整合性が取られるようにしてもよい。なお、データ収集の機能をCPU21に持たせる場合には、IoT部24は省略してもよい。
【0015】
HMI装置25は、ユーザが上位制御装置20の設定をするための装置である。HMI装置25は、上位制御装置20専用に開発された装置であってもよいし、パーソナルコンピュータ、タブレット端末、又はスマートフォンであってもよい。HMI装置25は、産業機器30の設定が可能であってもよい。例えば、ユーザは、HMI装置25を上位制御装置20又は産業機器30に接続し、プログラムの作成、パラメータの設定、変数の設定、及び通信の設定の少なくとも1つを行う。
【0016】
産業機器30は、上位制御装置20が制御可能な機器である。産業機器30は、設備又は装置と呼ばれることもある。複数の産業機器30の集まりは、ライン又はセルと呼ばれることがある。産業機器30は、任意の機器であってよく、例えば、PLC、ロボットコントローラ、産業用ロボット、モータコントローラ、サーボアンプ、モーションコントローラ、数値制御装置、又は電力変換装置である。例えば、産業機器30は、CPU31、記憶部32、及び通信部33を含む。CPU31、記憶部32、及び通信部33の物理的構成は、それぞれCPU11、記憶部12、及び通信部13と同様であってよい。
【0017】
なお、記憶部12,22,32の各々に記憶されるプログラム及びデータは、ネットワークを介して供給されてもよい。また、各装置のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、メモリカードスロット)や外部機器と接続するための入出力部(例えば、USB端子)が含まれてもよい。この場合、情報記憶媒体に記憶されたプログラム及びデータが、読取部又は入出力部を介して供給されてもよい。他にも例えば、FPGA又はASICと呼ばれる回路が含まれてもよい。
【0018】
[1-2.データ収集システムの概要]
データ収集システム1では、複数の対象物の各々に対し、少なくとも1つの工程が所定の順序で実行される。対象物は、作業の対象となる物である。対象物は、ワークとも呼ばれる。対象物は、最終的に生産される製品、中間的な生成物、素材、又は原料の何れであってもよい。対象物は、任意の種類であってよく、例えば、半導体、電化製品、自動車、食品、又は日用品である。工程とは、対象物に対する作業であり、例えば、加工、組立、搬送、把持、計測、又は検査である。工程は、産業機器30の動作ということもできる。
【0019】
産業機器30は、工程における個々の動作が定義された工程プログラムを記憶する。産業機器30は、工程の実行条件が満たされたか否かを判定し、実行条件が満たされた場合に、工程プログラムを実行して工程を開始する。実行条件は、任意の条件であってよく、例えば、上位制御装置20から所定の指示を受信すること、工程プログラムごとに用意された変数が所定の値になること、又はセンサから所定の信号が入力されることである。
【0020】
例えば、産業機器30には、1以上のセンサが接続される。センサは、任意の種類であってよく、例えば、ビジョンセンサ、トルクセンサ、モータエンコーダ、物体検出センサ、温度センサ、又は把持センサである。産業機器30は、上位制御装置20からの指示に基づいて、ビジョンセンサが生成した画像やトルクセンサが検出した物理量等の情報を時系列的に記録する。以降、時系列的に記録されるデータを、収集データと記載する。
【0021】
収集データは、データ収集システム1における収集対象となるデータである。収集データは、トレースデータ又はロギングデータと呼ばれることもある。第1実施形態では、収集データは、複数の時点の各々における情報を含むものとするが、収集データは、ある一時点における情報(瞬時値)だけを含んでもよい。収集データに含まれる個々の情報には、時間情報(タイムスタンプ)が関連付けられる。
【0022】
第1実施形態では、上位制御装置20と産業機器30の間で時間情報の同期が取られている場合を説明するが、特に時間情報の同期が取られなくてもよい。また、第1実施形態では、上位制御装置20と産業機器30との間で制御周期が異なる場合を説明するが、これらの制御周期は同じであってもよい。時間情報の同期が取られているが、制御周期が互いに異なる(制御周期の同期は取られていない)ので、データ収集システム1では、非同期のデータ収集が実行されることになる。
【0023】
収集データは、任意の情報を含むことができ、例えば、産業機器30が記憶する変数の値、上記各センサにより検出された情報、産業機器30における内部の計算結果、アラームの発生状況、工程実行時のパラメータ、検査装置による対象物の検査結果、計測装置による対象物の計測結果、及び工程実行時に使用された工程プログラムやファームウェア等の情報の少なくとも1つを含む。収集データは、上位制御装置20が記憶する変数の値等を含んでもよい。
【0024】
収集データは、種々の目的で収集され、例えば、対象物のトレーサビリティ確保、アラームの原因解析、対象物の品質向上、又はセルの動作効率向上といった種々の目的で収集される。例えば、対象物のトレーサビリティ確保を目的として収集データが収集される場合には、対象物自体を識別可能な情報と、対象物に実行された工程を識別可能な情報と、の少なくとも一方が関連付けられてもよい。これらの情報が収集データに関連付けられることによって、対象物が製品となって出荷された後に、その製品がどのような状況で製造されたかを、その製品に関連付けられた収集データによって分析できる。例えば、変量制の少量多品種生産が行われる場合であったとしても、個々の対象物のトレーサビリティを確保できる。
【0025】
図2は、第1実施形態におけるデータ収集システム1におけるデータ収集の流れの一例を示す図である。
図2に示すように、データ収集システム1では、大きく分けて処理1~処理14が実行されることによって、収集データが収集される。
図2の処理1~処理14は、大まかな処理であり、個々の処理の詳細は、後述する
図4の機能ブロックの対応箇所と、
図8及び
図9のフロー図の対応箇所と、において説明する。
【0026】
まず、ユーザは、データ収集装置10の記憶部12に記憶された設定ツールを起動し、収集設定を指定するための設定画面を表示部15に表示させる(処理1)。設定ツールは、収集設定をするためのアプリケーションである。設定ツールは、上位制御装置20及び産業機器30の少なくとも一方の設定をするためのツールであってもよい。例えば、ユーザは、設定ツールを利用して、上位制御装置20の制御対象となる産業機器30の設定、産業機器30が実行する個々の工程の設定、制御プログラムの作成、及び工程プログラムの作成をすることができてもよい。
【0027】
図3は、設定画面の一例を示す図である。
図3に示すように、設定画面Gには、データ収集の対象となる産業機器30を指定するための入力フォームF1、具体的な収集設定の内容を指定するための入力フォームF2、収集設定を登録するためのボタンB1、及びデータ収集を開始するためのボタンB2が表示される。なお、第1実施形態では、収集設定の指定と、データ収集の開始と、が同じ設定画面Gで行われる場合を説明するが、これらは、別々の画面で行われてもよい。
【0028】
入力フォームF1には、上位制御装置20の制御対象の産業機器30が選択可能に表示される。例えば、データ収集装置10又は上位制御装置20には、制御対象の産業機器30が定義された定義情報が記憶されている。この定義情報は、制御対象の産業機器30を識別可能な含み、例えば、機器ID、機器名、通信方式、及びIPアドレスの少なくとも1つを含む。定義情報は、産業機器30の制御で利用される変数が定義されていてもよく、例えば、変数名、レジスタのアドレス、データ型、及びデータサイズ(バイト数)の少なくとも1つを含んでもよい。例えば、入力フォームF1には、定義情報が示す産業機器30のリストが表示される。ユーザは、リストの中から、収集設定を指定する産業機器30を選択する。
【0029】
入力フォームF2には、収集設定に含まれる個々の項目の値が表示される。
図3の例では、入力フォームF2が表形式であり、表における個々のセルに対する入力が可能である。収集設定には、任意の項目が含まれていてよく、例えば、機器ID、トピックID、設定名、トリガ、収集対象の変数の変数名、スケジュール、及びサンプリング周期が含まれる。収集設定は、第1実施形態の例に限れず、例えば、収集対象のモータの軸等の他の情報が指定されてもよい。第1実施形態では、収集設定に応じたパース処理が実行されるので、設定画面Gでは、パーサも指定される。パーサ及びパース処理の詳細は後述する。
【0030】
機器IDは、収集設定に基づくデータ収集の対象となる産業機器30を識別可能な情報である。トピックIDは、収集設定を識別可能な情報である。第1実施形態では、1台の産業機器30に複数の収集設定を登録できる。機器IDとトピックIDのセットによって、個々の収集設定が識別される。設定名は、収集設定の名前である。トリガは、データ収集の開始条件である。変数名は、収集対象の変数の名前である。スケジュールは、データ収集をすべき時間である。サンプリング周期は、データ収集の時間間隔である。
【0031】
ユーザは、入力フォームF1から産業機器30を指定して、入力フォームF2に収集設定の内容を指定する。入力フォームF2の機器IDは、入力フォームF1で指定された産業機器30の機器IDが自動入力されてもよい。ユーザがボタンB1を選択すると、データ収集装置10のIoTモジュールに、設定画面Gにおいて指定された収集設定の内容が引き渡される(処理2)。IoTモジュールは、データ収集装置10により実行されるプログラムの1つであり、上位制御装置20のIoT部24との間のデータのやりとりを担う。
【0032】
IoTモジュールは、データ収集装置10の記憶部12に記憶されたデータベースDBに、設定ツールから引き渡された収集設定を登録する(処理3)。その後、ユーザは、データ収集を開始したいタイミングが訪れた場合に、データ収集を開始する収集設定を指定したうえでボタンB2を選択する。第1実施形態では、入力フォームF2の行を選択することによって、データ収集を開始する収集設定が指定される場合を説明するが、この収集設定は、任意の方法で指定可能であり、他の画面から指定されてもよい。例えば、データベースDBに登録された収集設定のリストが他の画面に表示され、そのリストの中から収集設定が指定されてもよい。
【0033】
ボタンB2によって、データ収集の開始指示が受け付けられると(処理4)、IoTモジュールは、データベースDBに登録された収集設定を読み出す(処理5)。先述したように、第1実施形態では、機器IDとトピックIDのセットによって収集設定が識別されるので、IoTモジュールは、ユーザが入力フォームF2から指定した機器IDとトピックIDのセットに関連付けられた収集設定を、データベースDBから読み出す。
【0034】
IoTモジュールは、上位制御装置20に対し、データベースDBから読み出した収集設定をフィードバックする(処理6)。フィードバックは、データ収集装置10から上位制御装置20に何らかのデータを送信することである。
図2に示すように、上位制御装置20のIoT部24は、データ収集装置10からフィードバック対象の収集設定を受信すると、CPU21に転送する。収集設定に対応する機器IDとトピックIDのセットもフィードバックされる。
【0035】
なお、第1実施形態では、CPU21とIoT部24の間で、定期的又は不定期的に変数の整合性が取られているものとする。IoT部24の変数をCPU21に転送(コピー)するのか、CPU21の変数をIoT部24に転送(コピー)するのかは、変数の属性によって決まるものとする。フィードバックされる収集設定に対応する変数は、IoT部24からCPU21に転送する必要があるので、その旨の属性が定められている。一方、収集データに対応する変数は、CPU21からIoT部24に転送する必要があるので、その旨の属性が定められている。これらの変数の属性は、設定ツールからユーザが指定するようにしてもよいし、デフォルトの属性として定められていてもよい。
【0036】
上位制御装置20のCPU21は、データ収集をするためのアプリケーション(以降、収集アプリ)を利用して、IoT部24を介してフィードバックされた収集設定を取得し、収集データの収集を実行する(処理7)。収集アプリは、ユーザにより作成され、上位制御装置20の記憶部22に予め記憶されている。収集アプリは、データ収集のための種々の処理を実行可能であり、例えば、フィードバックされた収集設定の取得、当該収集設定の産業機器30への設定、産業機器30に対する収集開始の指示、産業機器30に対するトリガの設定、及び産業機器30からの収集データの読出の各々が行われる。
【0037】
上位制御装置20のCPU21は、産業機器30から収集データを取得すると(処理8)、IoT部24に対し、産業機器30から取得した収集データを転送する(処理9)。CPU21は、収集データの転送の際に、パケットのヘッダに、収集設定に対応する機器IDとトピックIDのセットを格納する。これにより、データ収集装置10は、どの収集設定の収集データなのかを特定できるようになる。上位制御装置20のIoT部24は、データ収集装置10に収集データを転送し、上位制御装置20のIoTモジュールは、パーサに対し、転送された収集データのパース処理を依頼する(処理10)。
【0038】
パーサは、収集データを解析してデータ構造を変換するプログラムである。パーサは、データ収集装置10の記憶部12に予め記憶されている。データ収集装置10には、少なくとも1つのパーサが記憶されている。複数の収集設定でデータ構造のルールを共通化できるのであれば、複数の収集設定に共通の汎用的なパーサが用意されてもよい。個々の収集設定のデータ構造に特化したパーサを用意する必要があれば、収集設定ごとにパーサが用意されてもよい。同様に、複数の産業機器30に共通の汎用的なパーサが用意されてもよいし、産業機器30ごとにパーサが用意されてもよい。
【0039】
データ収集装置10のパーサは、データベースDBを参照し、収集データのヘッダに含まれる機器IDとトピックIDのセットに関連付けられた収集設定を取得する(処理11)。データ収集装置10のパーサは、取得された収集設定に基づいて、収集データに対してパース処理を実行する(処理12)。データ収集装置10のパーサは、IoTモジュールに対し、パース処理後の収集データのデータベースDBへの登録依頼を行う(処理13)。データ収集装置10のIoTモジュールは、パース処理後の収集データをデータベースDBに登録し(処理14)、収集データの登録が完了する。
【0040】
以上のように、第1実施形態のデータ収集システム1では、機器ID及びトピックIDのセットによって、データベースDBに格納された収集設定が特定される。当該特定された収集設定に基づいて、産業機器30から収集された収集データに対するパース処理が実行される。これにより、収集データの収集設定に応じたパース処理が実現されるようになっている。以降、この構成の詳細を説明する。
【0041】
[1-3.データ収集システムで実現される機能]
図4は、第1実施形態のデータ収集システム1で実現される機能の一例を示す機能ブロック図である。第1実施形態では、データ収集装置10、上位制御装置20、及び産業機器30の各々で実現される機能について説明する。
【0042】
[1-3-1.データ収集装置で実現される機能]
図4に示すように、データ収集装置10は、データ記憶部100、設定部101、受付部102、格納部103、収集部104、パーサ特定部105、収集設定特定部106、及び実行部107を含む。データ記憶部100は、記憶部12を主として実現され、他の各機能は、CPU11を主として実現される。
【0043】
[データ記憶部]
データ記憶部100は、収集データを収集するために必要なデータを記憶する。例えば、データ記憶部は、データベースDBを記憶する。なお、データ記憶部100が記憶するデータは、データベースDBに限られず、例えば、少なくとも1つのパーサ、IoTモジュール、設定ツール、ユーザが作成した制御プログラム、ユーザが作成した工程プログラム、上位制御装置20の制御対象となる産業機器30の定義情報、及び産業機器30が実行する工程の定義情報の各々を記憶してもよい。
【0044】
図5は、データベースDBのデータ格納例を示す図である。
図5に示すように、データベースDBは、ユーザが指定した個々の収集設定と、当該収集設定に基づいて収集された収集データと、が格納されるデータベースである。例えば、データベースDBには、機器ID、トピックID、設定名、フィードバック変数名、収集設定、パース処理前の収集データ、及びパース処理後の収集データが格納される。データベースDBには、機器ID及びトピックIDのセットごとに、設定名、フィードバック変数名、収集設定、パース処理前の収集データ、及びパース処理後の収集データが格納される。
【0045】
フィードバック変数名は、収集設定のフィードバックで利用される変数の名前である。パース処理前の収集データは、パース処理が実行されていないデータである。上位制御装置20から受信した収集データが、そのままパース処理前の収集データとして格納される。パース処理前の収集データは、生データと呼ばれることがある。パース処理後の収集データは、パース処理による変換がなされた後のデータである。パース処理後の収集データが格納された後は、パース処理前の収集データは削除されてもよい。
【0046】
例えば、ある収集設定に基づいて、複数の対象物の各々の収集データが収集される場合には、データベースDBには、個々の対象物ごとに、収集データが格納される。個々の対象物の収集データが格納されることによって、対象物のトレーサビリティを担保できる。データベースDBに格納されるデータは、
図5の例に限られず、データ収集に関する任意のデータを格納可能である。例えば、収集データが収集された日時が格納されてもよいし、産業機器30が属するセルを識別可能な情報が格納されてもよい。
【0047】
なお、第1実施形態では、1つのデータベースDBにデータが一括管理される場合を説明するが、複数のデータベースにデータが分散管理されてもよい。例えば、収集設定を格納するためのデータベースと、収集データを格納するためのデータベースと、が別々に存在してもよい。また例えば、産業機器30ごとにデータベースが別々に存在してもよいし、収集設定ごとにデータベースが別々に存在してもよい。
【0048】
[設定部]
設定部101は、上位制御装置20の制御対象に関する定義情報に基づいて、機器IDを設定する。定義情報は、上位制御装置20が制御可能な産業機器30に関する情報である。例えば、ユーザは、設定ツールを利用して定義情報を作成する。定義情報には、上位制御装置20が制御可能な産業機器30の機器IDが含まれる。機器IDは、定義情報に含まれるのではなく、定義情報に含まれる情報から生成されてもよいし、ユーザが指定してもよい。
【0049】
機器IDは、第1識別情報の一例である。このため、第1実施形態で機器IDと記載した箇所は、第1識別情報と読み替えることができる。第1識別情報は、産業機器30を識別可能な情報であればよく、例えば、機器ID以外のID、産業機器30の機器名、又は産業機器30のIPアドレスといった他の情報であってもよい。
【0050】
第1実施形態では、設定部101は、データ収集装置10のデータ記憶部100又は上位制御装置20のデータ記憶部200に記憶された定義情報に含まれる機器IDを取得し、当該取得された機器IDを、設定情報に関連付ける機器IDとして設定する。機器IDを設定するとは、収集設定に関連付けられる機器IDを特定又は決定することである。なお、機器IDは、定義情報から設定されるのではなく、ユーザが手入力してもよいし、所定のID発行ルールに基づいて自動的に設定されてもよい。
【0051】
例えば、設定部101は、設定画面Gの入力フォームF1及び入力フォームF2の各々に、ユーザが指定した産業機器30の機器IDを設定する。設定部101は、定義情報に含まれる機器IDが示す産業機器30を、入力フォームF1に選択可能に表示させる。設定部101は、ユーザがボタンB1を選択して収集設定の登録を指示した場合に、入力フォームF1及び入力フォームF2の各々に指定された機器IDを、登録対象の収集設定に関連付ける機器IDとして設定する。
【0052】
[受付部]
受付部102は、ユーザによる識別情報及び収集設定の指定を受け付ける。識別情報は、収集設定を識別可能な情報である。第1実施形態では、機器IDとトピックIDのセットが識別情報に相当する。このため、第1実施形態で機器IDとトピックIDのセットについて説明している箇所は、識別情報と読み替えることができる。識別情報は、機器IDとトピックIDのセットに限られず、収集設定を識別可能な情報であればよい。例えば、機器ID又はトピックIDの何れか一方だけが識別情報に相当してもよい。また例えば、識別情報は、他のIDであってもよいし、設定名のようにID以外の情報であってもよい。
【0053】
第1実施形態では、ユーザは、設定画面Gからデータ収集に関する各種設定を指定するので、受付部102は、設定画面Gに対する操作を受け付けることによって、機器ID、トピックID、及び収集設定の指定を受け付ける。例えば、受付部102は、入力フォームF1に対する産業機器30の選択を受け付けることによって、機器IDの指定を受け付ける。また例えば、受付部102は、入力フォームF2に対する機器IDとトピックIDのセットの指定を受け付ける。
【0054】
また例えば、受付部102は、入力フォームF2に対する収集設定の指定を受け付ける。
図3の例では、受付部102は、収集設定として、トリガ、収集対象の変数の変数名、スケジュール、及びサンプリング周期の指定を受け付ける。トリガは、任意の条件であってよく、例えば、産業機器30の変数の値、変数から計算された値、産業機器30が管理する時間情報、産業機器30に対する入力信号、及び産業機器30に接続されたセンサの検出結果の少なくとも1つであってよい。受付部102は、これらの条件の指定を受け付ける。
【0055】
収集設定に含まれる変数名は、産業機器30が記憶する変数のうち、収集対象となる変数の名前である。変数名は、ユーザにより直接入力されてもよいし、データ記憶部100に記憶された変数定義から取得されてもよい。受付部102は、ユーザによる変数名の指定を受け付ける。スケジュールは、データ収集が実行されるタイミングを特定可能な情報であればよく、例えば、スケジュールは、データ収集が実行される曜日、日付、又は時間帯である。受付部102は、これら曜日等の指定を受け付ける。サンプリング周期は、データ収集の時間間隔を特定可能な数値であればよい。受付部102は、サンプリング周期を示す数値の指定を受け付ける。
【0056】
[格納部]
格納部103は、機器ID及びトピックIDのセットと、収集設定と、を関連付けてデータベースDBに格納する。第1実施形態では、格納部103は、ユーザにより指定された機器ID及びトピックIDのセットと、ユーザにより指定された収集設定と、を関連付けてデータベースDBに格納する場合を説明するが、これらの少なくとも一方は、データ収集装置10等のコンピュータにより自動生成されてもよい。格納部103は、自動生成された機器ID及びトピックIDのセットと、自動生成された収集設定と、を関連付けてデータベースDBに格納してもよい。格納部103は、機器ID及びトピックIDのセットをクエリとして、収集設定を検索できるように、これらをデータベースDBに格納する。収集設定は、検索時のインデックスに相当する。格納部103は、機器ID及びトピックIDのセットと、収集設定と、をデータベースDBの同じレコードに格納する。
【0057】
[収集部]
収集部104は、所定の収集設定に基づいて、産業機器30に関する収集データを収集する。収集部104は、産業機器30が収集設定に基づいて生成した収集データ、又は、産業機器30が収集設定に基づいて生成した収集データに何らかの加工が施された加工後の収集データを収集する。この加工は、上位制御装置20又は産業機器30により行われるものとする。第1実施形態では、機器IDとトピックIDのセットが収集データに関連付けられるので、収集部104は、このセットが関連付けられた収集データを収集する。
【0058】
先述したように、第1実施形態の識別情報は、産業機器30を識別可能な機器IDと、機器IDとは異なるトピックIDと、を含むので、収集部104は、機器ID及びトピックIDが関連付けられた収集データを取得する。トピックIDは、第2識別情報の一例である。このため、第1実施形態でトピックIDと記載した箇所は、第2識別情報と読み替えることができる。第2識別情報は、収集設定を識別可能な情報であり、トピックIDに限られない。例えば、第2識別情報は、トピックID以外のID、又は、収集設定の設定名といった他の情報であってもよい。
【0059】
第1実施形態のトピックIDは、収集設定を識別するためだけではなく、収集設定をフィードバックする際の変数の変数名の一部として利用される。例えば、トピックIDは、収集データに関する収集アプリにより利用される変数を識別可能な変数名の全部又は一部であってもよい。この変数は、フィードバック用の変数に限られず、データ収集における他の目的で利用される変数であってもよい。なお、変数名は、変数識別情報の一例である。このため、第1実施形態で変数名と記載した箇所は、変数識別情報と読み替えることができる。変数識別情報は、変数名に限られず、IDのような他の情報であってもよい。
【0060】
図6は、トピックIDによってフィードバック用の変数名が区別される例を示す図である。
図6の例では、機器IDが「1」でトピックID「1」の「収集設定X」と、機器IDが「1」でトピックID「2」の「収集設定Y」と、の2つの収集設定が指定された場合を示している。これら2つの収集設定を上位制御装置20にフィードバックさせるための変数として、「変数A」、「変数B」、及び「変数C」の3つの変数が用意されていたとする。例えば、「変数A」は機器IDに対応し、「変数B」はトピックIDに対応し、「変数C」は収集設定に対応する。これらの変数名はデフォルトのものであり同じなので、上位制御装置20は、2つの収集設定の何れがフィードバック対象なのかを特定することができない。
【0061】
そこで、第1実施形態では、変数名の末尾にトピックIDが付与されることによって、フィードバック用の変数名を区別できるようにしている。この変数名は、
図5のデータベースDBに格納された「フィードバック変数名」である。
図6に示すように、例えば、収集部104は、「収集設定X」のフィードバック用の変数として、トピックIDである「1」を末尾に付与した「変数A_1」、「変数B_1」、及び「変数C_1」の変数名を設定する。また例えば、収集部104は、「収集設定Y」のフィードバック用の変数として、トピックIDである「2」を末尾に付与した「変数A_2」、「変数B_2」、及び「変数C_2」の変数名を設定する。
【0062】
収集部104は、上記のように設定した変数名の変数が、収集設定の個々の項目の値を示すように、上位制御装置20に対するフィードバックを行う。上位制御装置20の収集アプリは、これらの変数名の変数を監視し、収集部104によるフィードバックが行われた場合(変数の値が変わった場合)に、収集設定のフィードバックが実行されたことを検知し、その収集設定を取得する。上位制御装置20の制御プログラムは、産業機器30を制御しつつ、収集アプリによるフィードバックの検知の有無を判定する。収集アプリがフィードバックを検知した場合には、制御プログラムは、産業機器30を制御する一連の流れの中で、収集アプリによる収集データの収集ができるように、タスクを調整する。
【0063】
上記のように、収集アプリは、トピックIDを変数名の一部に含む変数に基づいて、データ収集装置10からフィードバックされた収集設定を取得する。トピックIDは、フィードバック用の変数の任意の位置に含まれてよく、
図6のような末尾に限られない。例えば、トピックIDは、変数名の冒頭又は中間に含まれてもよい。他にも例えば、トピックIDは、フィードバック用の変数ではなく、収集データに対応する変数の変数名にふくまれてもよい。第1実施形態では、収集アプリは、フィードバック用の変数に基づいて、収集設定に応じた収集データの収集に関する処理を実行する。収集部104は、収集アプリにより実行された処理に基づいて、収集データを収集する。収集部104は、収集アプリによって転送された収集データを収集する。
【0064】
なお、複数の産業機器30が存在する場合、産業機器30から収集された収集データは、産業機器30ごとに用意されたデータベースDBに格納されてもよい。この場合、どの産業機器30の収集データであるかは、収集データに関連付けられた機器IDによって特定可能なので、収集部104は、この機器IDに基づいて、どのデータベースDBに収集データを格納すればよいかを特定すればよい。
【0065】
図7は、産業機器30ごとにデータベースDBが用意されている場合の一例を示す図である。
図7の例では、機器IDが「1」で機器名が「Eq_1」の産業機器30Aと、機器IDが「2」で機器名が「Eq_2」の産業機器30Bと、の2台の産業機器30が存在する場合を示している。なお、
図7では、「30A」と「30B」の符号を定義情報の中に示しているが、物理的な産業機器30が上位制御装置20の中に存在するわけではない。
【0066】
第1実施形態では、収集データに機器IDが関連付けられるので、収集部104は、収集データに関連付けられた機器IDにより、収集データが生成された産業機器30が特定される。例えば、上位制御装置20の収集アプリは、産業機器30Aから収集された収集データに、この産業機器30Aを示す機器ID「1」を関連付ける。なお、トピックIDも収集データに関連付けられるが
図7では省略する。上位制御装置20の収集アプリは、産業機器30Bから収集された収集データに、この産業機器30Bを示す機器ID「2」を関連付ける。
【0067】
収集部104は、上位制御装置20から収集された収集データに関連付けられた機器IDを参照し、この収集データを格納するデータベースDBを特定する。例えば、収集部104は、上位制御装置20から収集された収集データに関連付けられた機器IDが「1」であれば、産業機器30A用のデータベースDB1に、パース処理前の収集データを格納する。また例えば、収集部104は、上位制御装置20から収集された収集データに関連付けられた機器IDが「2」であれば、産業機器30B用のデータベースDB2に、パース処理前の収集データを格納する。
【0068】
なお、
図7では、収集部104、パーサ特定部105、及び収集設定特定部106の処理を、IoTモジュールが実行する処理として記載している。これらの処理は、IoTモジュールのような1つのモジュールにより実行されるのではなく、個々の機能ごとにモジュールが分けられていてもよい。
図7に示すように、後述するパーサ特定部105は、収集部104は、上位制御装置20から収集された収集データに関連付けられた機器IDが「1」であれば、産業機器30A用のパーサP1を特定する。また例えば、収集部104は、上位制御装置20から収集された収集データに関連付けられた機器IDが「2」であれば、産業機器30B用のパーサP2を特定する。これらのパース処理後の収集データは、収集部104によりデータベースDB1又はデータベースDB2に格納される。
【0069】
また、先述したように、第1実施形態では、上位制御装置20の制御周期と、産業機器30の制御周期と、が異なる。また、第1実施形態では、上位制御装置20の制御周期が、産業機器30の制御周期より長い場合を説明するが、上位制御装置20の制御周期は、産業機器30の制御周期より短くてもよい。他にも例えば、上位制御装置20及び産業機器30の各々は、特に周期的な制御が実行されなくてもよい。収集部104は、上位制御装置20を介して、上位制御装置20の制御周期とは異なる産業機器30の制御周期に基づいて生成された収集データを収集する。
【0070】
制御周期が異なると、収集データがいつの時点のものなのか特定できないことが考えられるが、上位制御装置20と産業機器30とは、時間的な同期が取られているものとする。例えば、上位制御装置20及び産業機器30の各々は、独自の時間情報(タイマ等)を管理する。上位制御装置20は、産業機器30に対し、上位制御装置20の時間情報を含む同期指示を送信する。産業機器30は、同期指示を受信すると、同期指示に含まれる値に、産業機器30の時間情報を合わせる。これにより、時間的な同期が取られる。
【0071】
例えば、収集部104は、産業機器30ごとの時間情報を含む収集データを収集する。上位制御装置20の配下に複数の産業機器30が接続されている場合には、個々の産業機器30が独自の時間情報を管理する。ある産業機器30が生成した収集データには、その産業機器30が管理する時間情報が含まれる。例えば、ある産業機器30におけるある物理量の時系列変化が収集データに含まれるとすると、収集部104は、その産業機器30が管理する複数の時点の各々を示す時間情報に、その時点で検出された物理量が関連付けられた収集データを収集する。
【0072】
第1実施形態では、産業機器30は、所定のトリガに基づいて、収集データを収集し、収集部104は、トリガに対応する時間情報を含む収集データを収集する。トリガは、収集データの収集を開始するための条件である。産業機器30には、任意のトリガを設定可能であり、例えば、産業機器30に接続されたセンサが検出した物理量に関する条件、産業機器30に対する入力信号に関する条件、ビジョンセンサを利用して検出された対象物の状態に関する条件、又は産業機器30に記憶された変数に関する条件である。
【0073】
トリガに対応する時間情報とは、トリガが満たされた場合の時間情報である。この時間情報は、産業機器30が管理する時間情報であってもよいし、産業機器30が管理する時間情報が他の時間情報に変換された後の当該他の時間情報であってもよい。この時間情報は、トリガが満たされたと判定された時点での時間情報であってもよいし、その後の時点での時間情報であってもよい。その後の時点とは、トリガが満たされたと判定された時点から、収集データの生成が完了するまでの時点である。他にも例えば、上記時間情報は、上位制御装置20が産業機器30にトリガを送信した時点の時間情報であってもよい。
【0074】
第1実施形態では、収集部104は、収集データを収集してデータベースDBに格納する。収集部104は、収集設定が格納されたデータベースDBとは異なる他のデータベースに収集データを格納してもよいし、データ収集装置10とは異なる他のコンピュータ又は外部情報記憶媒体のデータベースに収集データを格納してもよい。
【0075】
[パーサ特定部]
パーサ特定部105は、収集データに関連付けられた機器ID及びトピックIDのセットに基づいて、複数のパーサのうちの少なくとも1つを特定する。機器ID及びトピックIDのセットと、パーサと、の対応関係は、予めデータ記憶部100に記憶されているものとする。第1実施形態では、データベースDBにこの対応関係が格納されている場合を説明するが、この対応関係は、データベースDB以外の他のデータとして定義されていてもよい。
【0076】
機器ID及びトピックIDのセットとパーサとは、1対1で対応付けられていてもよいし、1対多又は多対1で対応付けられていてもよい。複数の収集設定でデータ変換ルールが共通するのであれば、これら複数の収集設定で共通のパーサが利用されてもよい。パーサ特定部105は、機器ID及びトピックIDのセットに対応する少なくとも1つのパーサを特定する。第1実施形態では、パーサ特定部105は、収集データに関連付けられた機器ID及びトピックIDのセットを参照し、データベースDBにおいて、このセットに関連付けられたパーサを特定する。
【0077】
[収集設定特定部]
収集設定特定部106は、収集データに関連付けられた機器ID及びトピックIDのセット(識別情報、即ち、第1識別情報及び第2識別情報)に基づいて、収集設定を特定する。第1実施形態では、機器ID及びトピックIDのセットがユーザにより指定されるので、収集設定特定部106は、収集データに関連付けられた、ユーザにより指定された機器ID及びトピックIDのセットに基づいて、ユーザにより指定された収集設定を特定する。例えば、収集設定特定部106は、データベースDBと、収集データに関連付けられた機器ID及びトピックIDのセットと、に基づいて、収集設定を特定する。収集設定特定部106は、データベースDBを参照し、機器ID及びトピックIDのセットに関連付けられた収集設定を特定する。
【0078】
[実行部]
実行部107は、収集設定特定部106により特定された収集設定に基づいて、収集データに関するパース処理を実行する。実行部107は、パーサに対し、収集設定及び収集データを入力し、パーサから出力されたパース処理後の収集データを取得する。パーサは、入力された収集設定に基づいて収集データのデータ構造を特定し、当該特定したデータ構造に基づいて、収集データのパース処理を実行する。
【0079】
例えば、パーサは、収集設定に含まれる収集対象の変数名に基づいて、変数のデータ型及びデータサイズの少なくとも一方を特定する。変数のデータ型やデータサイズは、変数の定義情報に含まれているものとする。パーサは、特定したデータ型及びデータサイズの少なくとも一方に基づいて、収集データに対してパース処理を実行する。第1実施形態では、対象物のトレーサビリティを担保するために収集データが収集されるので、対象物を追跡するためのプログラムで扱えるデータ構造に、収集データが変換される。
【0080】
例えば、ある収集設定で収集された収集データにString型の情報が含まれており、対象物を追跡するためのプログラムに入力される情報がchar型であれば、この収集設定に対応するパースは、String型の情報をchar型の情報に変換する。また例えば、ある収集設定で収集された収集データにUnicodeの文字が含まれており、対象物を追跡するためのプログラムに入力される情報が他のコードの文字であれば、この収集設定に対応するパースは、Unicodeの文字を他のコードの文字に情報に変換する。パーサは、他の種々の変換が可能であり、パーサが実行する変換自体は、公知の種々の変換であってよい。
【0081】
なお、パース処理は、種々の目的で実行可能であり、例えば、データサイズの圧縮、データの構文解析、データの間引き、又は拡張子の変更がパース処理によって実行されてもよい。収集データは、何らかの解析を実行するプログラムに入力されることが多いので、パーサは、そのプログラムによる取り扱いが可能な形式に収集データを変換すればよい。収集データがユーザによって解析される場合には、パーサは、表示に適した形式に収集データを変換すればよい。
【0082】
例えば、実行部107は、収集設定特定部106により特定された収集設定と、パース特定部により特定された少なくとも1つのパーサと、に基づいて、パース処理を実行する。実行部107は、パース特定部により特定された少なくとも1つのパーサに対し、収集設定及び収集データを入力し、当該少なくとも1つのパーサから出力されたパース処理後の収集データを取得する。
【0083】
第1実施形態では、パース処理前の収集データが、いったんデータベースDBに格納されるので、実行部107は、データベースDBに格納された収集データにパース処理を実行し、パース処理が実行された収集データを、データベースDBに格納する。実行部107は、パース処理が実行された収集データを、他のデータベースに格納してもよい。なお、実行部107は、パース処理前の収集データがデータベースDBに格納されることなく、収集データにパース処理を実行してもよい。
【0084】
[1-3-2.上位制御装置で実現される機能]
図4に示すように、上位制御装置20では、データ記憶部200、機器制御部201、収集部202、及び転送部203が実現される。各機能は、CPU21とIoT部24の少なくとも一方を主として実現される。
【0085】
[データ記憶部]
データ記憶部200は、収集データを収集するために必要なデータを記憶する。例えば、データ記憶部200は、収集アプリ、機器ID、トピックID、収集設定、制御プログラム、産業機器30の定義情報、及び変数の定義情報を記憶する。データ記憶部200は、複数の収集アプリを記憶してもよい。この場合、収集設定ごとに収集アプリが用意されていてもよい。制御プログラムには、個々の工程の実行条件と、産業機器30に対する指示内容と、が定義されているものとする。制御プログラムは、ラダー言語又はロボット言語等の任意の言語により作成可能である。
【0086】
[機器制御部]
機器制御部201は、制御プログラムに基づいて、産業機器30を制御する。例えば、機器制御部201は、制御プログラムに基づいて、個々の工程の実行条件が満たされたか否かを判定する。機器制御部201は、ある工程の実行条件が満たされた場合に、その工程を実行する産業機器30に対し、その工程の実行開始を指示する。機器制御部201は、その産業機器30から工程の実行終了を示す応答を受信した場合に、次の工程の実行条件が満たされたと判定し、次の工程を実行する産業機器30に対し、次の工程の実行開始を指示する。以降同様にして、各工程の実行が指示される。
【0087】
[収集部]
収集部202は、所定の収集設定に基づいて、収集データを収集する。例えば、収集部202は、収集アプリに基づいて、データ収集装置10からフィードバックされた収集設定を取得し、データ記憶部200に記録する。収集部202は、収集設定を設定すべき産業機器30を機器IDによって特定し、その産業機器30に対し、収集設定を送信する。収集部202は、その産業機器30に対し、トリガを設定する。トリガは、収集設定の送信時に設定されてもよい。収集部202は、トリガを設定した時点の時間情報を収集アプリに送信してもよい。この場合、この時間情報が収集データに関連付けられてもよい。収集部202は、産業機器30から収集データの収集が完了した旨の通知を受信すると、その収集データを要求し、収集データを収集する。
【0088】
[転送部]
転送部203は、収集部104により収集された収集データを、データ収集装置10に転送する。転送部203は、ある収集設定に基づいて生成された収集データに、その収集設定を識別可能な機器ID及びトピックIDのセットを関連付けたうえで、データ収集装置10に転送する。第1実施形態では、パケットのヘッダにこのセットが格納される場合を説明するが、このセットは、パケットの本体部分に格納されてもよい。なお、収集データは、非同期通信のパケットとして送信されてもよい。
【0089】
[1-3-3.産業機器で実現される機能]
図4に示すように、産業機器30では、データ記憶部300、工程実行部301、及び生成部が実現される。データ記憶部300は、記憶部32を主として実現され、工程実行部301は、CPU31を主として実現される。
【0090】
[データ記憶部]
データ記憶部300は、収集データを収集するために必要なデータを記憶する。例えば、データ記憶部300は、個々の工程における動作が定義された工程プログラムと、工程プログラムによって参照及び変更の少なくとも一方が行われる変数と、を記憶する。工程プログラムには、各工程の実行条件と、個々の工程の詳細な動作と、が定義されているものとする。工程プログラムは、ラダー言語又はロボット言語等の任意の言語により作成可能である。データ記憶部300は、時間情報や生成中の収集データ等を記憶してもよい。
【0091】
[工程実行部]
工程実行部301は、工程プログラムに基づいて、工程を実行する。工程実行部301は、工程プログラムを実行し、工程の実行条件が満たされたか否かを判定する。実行条件は、任意の条件であってよく、例えば、所定の変数が所定の値になること、センサから所定の信号を受信すること、対象物が所定の位置に移動すること、所定の時刻が訪れること、他の産業機器30から所定の情報を受信すること、又は上位制御装置20から所定の指示を受信することである。工程実行部301は、工程の実行条件が満たされた場合に、その工程を実行する。
【0092】
[生成部]
生成部302は、収集設定に基づいて、収集データを生成する。例えば、生成部302は、上位制御装置20から受信した収集設定を、データ記憶部300に記録する。生成部302は、上位制御装置20から受信したトリガを、データ記憶部300に記録する。生成部302は、トリガが満たされたか否かを判定し、トリガが満たされた場合に、収集設定に基づいて、収集データの生成を開始する。生成部302は、収集データの生成が完了した場合に、上位制御装置20に対し、その旨の通知を送信する。生成部302は、上位制御装置20から収集データが要求された場合に、上位制御装置20に対し、収集データを送信する。なお、生成部302は、工程プログラムの実行結果、リアルタイムクロックやタイマ等を利用して取得した日時、センサからの信号、又はこれらの組み合わせに基づいて、収集データを生成すればよい。
【0093】
[1-4.データ収集システムで実行される処理]
図8及び
図9は、第1実施形態のデータ収集システム1で実行される処理の一例を示すフロー図である。CPU11,21,31及びIoT部24の各々が、記憶部12,22,32の各々又はIoT部24に記憶されたプログラムを実行することによって、
図8及び
図9に示す処理が実行される。
図8及び
図9に示す処理は、
図4の機能ブロックにより実行される処理の一例であり、
図2の流れの詳細である。
【0094】
図8に示すように、データ収集装置10は、操作部14からの操作に基づいて、記憶部12に記憶された設定ツールを起動し、設定画面Gを表示部15に表示させる(S1)。データ収集装置10は、設定画面Gにおいて、ユーザによる収集設定の指定を受け付ける(S2)。S2においては、データ収集装置10は、入力フォームF1に対する産業機器30の指定と、入力フォームF2に対する収集設定の指定と、の各々を受け付ける。S1~S2の処理は、
図2で説明した処理1の詳細である。
【0095】
データ収集装置10は、設定画面GにおけるボタンB1の選択を受け付けることによって、ユーザによる収集設定の登録要求を受け付ける(S3)。データ収集装置10は、IoTモジュールに対し、設定画面Gにおいて指定された収集設定を引き渡し(S4)、IoTモジュールは、データベースDBに収集設定を登録する(S5)。S3~S4の処理は、
図2で説明した処理2の詳細である。S5の処理は、
図2で説明した処理3の詳細である。
【0096】
データ収集装置10は、IoTモジュールを利用して、設定画面GにおけるボタンB2の選択を受け付けることによって、ユーザによるデータ収集の開始要求を受け付ける(S6)。S6においては、設定画面Gにおいて指定された機器ID及びトピックIDのセットにより識別される収集設定に基づくデータ収集の開始が要求される。S6の処理は、
図2で説明した処理4の詳細である。
【0097】
データ収集装置10は、IoTモジュールを利用して、データベースDBから、データ収集の開始が要求された収集設定を読み出す(S7)。S7においては、データベースDBのうち、機器ID及びトピックIDのセットが関連付けられた収集設定が読み出される。S7の処理は、
図2で説明した処理5の詳細である。
【0098】
データ収集装置10は、IoTモジュールを利用して、上位制御装置20のIoT部24に対し、S7で読み出された収集設定を送信する(S8)。上位制御装置20のIoT部24は、データ収集装置10から受信した収集設定を、CPU21に転送する(S9)。上位制御装置20のCPU21は、CPU21内部のメモリ又は記憶部22に収集設定を記録する(S10)。S8~S10の処理は、
図2で説明した処理6の詳細である。
【0099】
上位制御装置20のCPU21は、収集アプリを利用して、S9において転送された収集設定を取得し(S10)、当該取得された収集設定に基づいて、収集データの収集を実行する(S11)。S10においては、収集アプリにより、CPU21のレジスタに格納された収集設定が取得される。S11においては、収集アプリにより、収集設定の産業機器30への反映、産業機器30に対するデータ収集の開始、トリガの産業機器30への反映、及び産業機器30からの収集データの読出が実行される。S10~S11の処理は、
図2で説明した処理7の詳細である。
【0100】
上位制御装置20のCPU21は、収集アプリを利用して、産業機器30から、収集設定に基づく収集データを収集する(S12)。S12においては、産業機器30が収集データの生成を完了した場合に、産業機器30の所定の変数が所定の値に変化する。上位制御装置20は、当該変数が当該値に変化したことを検知すると、上位制御装置20に対し、収集データの送信を要求する。産業機器30は、要求を受信すると、上位制御装置20に対し、収集データを送信する。収集データは、非同期通信によって送信されるものとするが、同期通信によって送信されてもよい。S12の処理は、
図2で説明した処理8の詳細である。
【0101】
図9に移り、上位制御装置20のCPU21は、産業機器30から取得した収集データに対し、機器ID及びトピックIDを付与し(S13)、IoT部24に対し、収集データを転送する(S14)。上位制御装置20のIoT部24は、S13で付与された機器ID及びトピックIDをパケットのヘッダに格納し、データ収集装置10に対し、収集データを含む当該パケットを送信する(S15)。データ収集装置10は、IoTモジュールを利用して、上位制御装置20のIoT部24から、収集データを含むパケットを受信する(S16)。S13~S16の処理は、
図2で説明した処理9の詳細である。
【0102】
データ収集装置10は、IoTモジュールを利用して、上位制御装置20から受信したパケットに含まれる収集データを、パース処理前の収集データとしてデータベースDBに格納する(S17)。データ収集装置10は、IoTモジュールを利用して、受信した収集データのパース処理を依頼するパーサを特定する(S18)。データ収集装置10は、IoTモジュールを利用して、S18で特定したパーサに対し、収集データのパース処理を依頼する(S19)。S17~S19の処理は、
図2で説明した処理10の詳細である。
【0103】
データ収集装置10は、パーサを利用して、データベースDBに基づいて、収集データに対応する収集設定を取得する(S20)。S20においては、データ収集装置10は、収集データを含むパケットのヘッダに格納された機器ID及びトピックIDのセットに関連付けられた収集設定を取得する。S20の処理は、
図2で説明した処理11の詳細である。データ収集装置10は、パーサを利用して、S20で取得した収集設定に基づいて、収集データのパース処理を実行する(S21)。S21の処理は、
図2で説明した処理12の詳細である。
【0104】
データ収集装置10は、パーサからIoTモジュールに対し、パース処理後の収集データを引き渡してデータベースDBへの登録を依頼し(S22)、IoTモジュールは、データベースDBに、パース処理後の収集データを登録する(S23)。S22~S23の処理は、
図2で説明した処理13-14の詳細である。
【0105】
第1実施形態のデータ収集システム1によれば、収集データに関連付けられた機器ID及びトピックIDのセットに基づいて収集設定を特定し、当該特定された収集設定に基づいて、収集データのパース処理を実行することによって、収集データの収集設定に応じたパース処理を実現できる。例えば、産業機器30から収集された収集データは、収集設定に応じたデータ構造を有しており、動作解析等の所定の目的でそのまま利用できないことがある。収集データにパース処理を実行して、所定の目的に適したデータ構造にすることが考えられるが、パース処理によるデータ変換等の処理は、収集設定に応じたものとする必要がある。この点、収集データに関連付けられた機器ID及びトピックIDのセットに基づいて、どのようなパース処理を実行すればよいかを特定できるので、収集データの収集設定に応じたパース処理を実現できる。その結果、動作解析等の所定の目的に応じた最適なデータ構造の収集データに変換し、所定の目的における処理精度を高めたり処理速度を高速化したりできる。
【0106】
また、データ収集システム1は、収集データに関連付けられた機器ID及びトピックIDのセットに基づいて、収集設定を特定することによって、より柔軟なパース処理を実行できる。例えば、データ収集をしたい産業機器30が複数台存在する場合であったとしても、機器IDによって個々の産業機器30を区別し、個々の産業機器30の収集設定に応じたパース処理を実行できる。また例えば、ある1台の産業機器30に複数の収集設定が存在したとしても、個々の収集設定をトピックIDによって区別し、個々の収集設定に応じたパース処理を実行できる。
【0107】
また、データ収集システム1は、上位制御装置20の制御対象に関する定義情報に基づいて、機器IDを設定することによって、上位制御装置20の制御対象として指定された産業機器30を識別可能な機器IDを正確に設定できる。その結果、どの産業機器30の収集データであるかを特定できないといったことを防止できる。
【0108】
また、データ収集システム1は、トピックIDが、収集データを収集するためのアプリケーションが使用する変数を識別可能な変数名の全部又は一部であることによって、トピックIDによって、アプリケーションが利用する変数を区別できる。このため、あるアプリケーションが利用する変数と、他のアプリケーションが利用する変数と、が区別できなくなってしまい、適切な収集設定が行われないといったことを防止できる。
【0109】
また、データ収集システム1は、収集データに関連付けられた機器ID及びトピックIDのセットに基づいて、複数のパーサのうちの少なくとも1つを特定し、特定されたパーサに基づいてパース処理を実行することにより、パース処理に最適なパーサを特定して正確なパース処理を実現できる。例えば、複数の産業機器30や複数の収集設定で1つの汎用的なパーサとする場合には、これら複数の産業機器30及び複数の収集設定の間である程度のデータ構造を揃える必要があり、収集設定の柔軟性を担保できないが、複数のパーサを用意することで柔軟な収集設定が可能になる。
【0110】
また、データ収集システム1は、ユーザによる機器ID及びトピックIDのセットと収集設定の指定を受け付けることによって、ユーザに応じた柔軟なデータ収集が可能になる。
【0111】
また、データ収集システム1は、機器ID及びトピックIDのセットと、収集設定と、を関連付けてデータベースDBに格納しておき、収集データが取得された場合に、データベースDBを利用して収集設定を特定することによって、機器ID及びトピックIDのセットと収集設定の管理が容易になる。
【0112】
また、データ収集システム1は、上位制御装置20の制御周期とは異なる産業機器30の制御周期に基づいて生成された収集データを取得することによって、上位制御装置20の制御周期と、産業機器30の制御周期と、が異なる場合であったとしても、産業機器30の収集設定に応じたパース処理を実現できる。
【0113】
また、データ収集システム1は、産業機器30ごとの時間情報を含む収集データを収集することによって、正しい時間軸でパース処理を実行できる。
【0114】
また、データ収集システム1は、トリガに対応する時間情報を含む収集データを収集することによって、トリガを基準とした時間軸における収集データを取得できる。
【0115】
また、データ収集システム1は、データベースDBにいったん格納された収集データにパース処理を実行し、パース処理が実行された収集データを、データベースDB又は他のデータベースDBに格納することによって、パース処理が施された収集データを効率的に管理できる。
【0116】
[2.第2実施形態]
第1実施形態では、データ収集装置10から上位制御装置20に収集設定がフィードバックされ、データ収集装置10においてパース処理が実行される場合を説明した。第2実施形態では、データ収集装置10から上位制御装置20への収集設定のフィードバックを必要とせず、上位制御装置20においてデータ収集が実行される場合を説明する。なお、第2実施形態では、第1実施形態と同様の構成については説明を省略する。
【0117】
第2実施形態では、データ収集に関する主な機能が上位制御装置20で実現されるので、
図4に示した各機能のうち、少なくとも収集設定特定部106及び実行部107が上位制御装置20によって実現される。第2実施形態における収集設定特定部106及び実行部107の各々は、CPU21及びIoT部24の少なくとも一方を主として実現される。また、収集部202は、
図4に示す収集部104と同様の機能を有してよい。これらの点は、第3実施形態~第5実施形態についても同様である。
【0118】
図10は、第2実施形態のデータ収集システム1におけるデータ収集の流れの一例を示す図である。
図10に示すように、第2実施形態では、第1実施形態の
図2で説明した処理1~処理14とは異なる流れでデータ収集が行われる。第2実施形態では、ラダー言語等で作成された制御プログラムの中に、予め指定された収集設定と、データ収集をするための種々の命令と、が含まれるものとする。即ち、収集設定は、制御プログラムの一部として、ラダー言語等により記述される。なお、収集設定は、制御プログラムが参照する外部のデータであってもよい。
【0119】
データ収集をするための命令は、第1実施形態で説明した収集アプリの機能がラダー言語等によって表現されたものである。例えば、制御プログラムには、制御プログラム内の収集設定を取得するための取得命令、当該収集設定を産業機器30に設定するための収集設定命令、産業機器30に対する収集開始を指示するための開始命令、産業機器30にトリガを設定するためのトリガ設定命令、及び産業機器30から収集データの読出をするための読出命令が含まれる。なお、機器IDとトピックIDは、制御プログラムの中に含まれてもよいし、制御プログラムとは別のデータとして上位制御装置20に記憶されていてもよい。
【0120】
図10に示すように、上位制御装置20は、制御プログラムを実行し、産業機器30の制御を開始する(処理1)。第2実施形態では、産業機器30の制御の一環として、産業機器30から収集データが収集される。例えば、対象物のトレーサビリティを目的として収集データが収集される場合には、制御プログラムのうち、対象物に対する個々の工程が終了する前後のタイミングで、データ収集をするための命令が記述される。上位制御装置20は、制御プログラムに含まれる取得命令を実行し、制御プログラムに含まれる収集設定を取得する(処理2)。
【0121】
上位制御装置20は、制御プログラムに含まれる収集設定命令、開始命令、トリガ設定命令、及び読出命令の各々を実行し、上記取得された収集設定に基づいて、データ収集を実行する(処理3)。
図10の処理3は、第1実施形態では収集アプリによって実行されて
図2の処理7が制御プログラムによって実行される点で異なり、他の点は同様である。
図10の処理4及び処理5も、第1実施形態では収集アプリによって実行される
図2の処理8及び処理9が制御プログラムによって実行される点で異なり、他の点は同様である。処理5における収集データの転送の際に、機器ID及びトピックIDのセットが関連付けられる点も同様である。
【0122】
第2実施形態では、上位制御装置20内にパーサが存在する。パーサは、IoT部24に記憶されるものとするが、記憶部22に記憶されてもよい。IoT部24は、CPU21から転送された収集データを受信すると、内部で保持するモジュールに対し、パース処理を依頼する(処理6)。このモジュールは、第1実施形態で説明したIoTモジュールと同様の機能を有し、収集データに対するパース処理等を実行するためのプログラムである。
【0123】
処理6の後に実行される
図10の処理7~処理9は、第1実施形態ではデータ収集装置10によって実行される
図2の処理10~処理13がIoT部24によって実行される点で異なり、他の点は同様である。例えば、処理7において、IoT部24は、CPU21が実行する制御プログラムに対し、収集設定の取得を要求する。この要求には、パース処理の対象となる収集データに関連付けられた機器ID及びトピックIDのセットが含まれるものとする。IoT部24は、制御プログラムから、このセットに関連付けられた収集設定を取得し、処理8におけるパース処理を実行すればよい。処理9では、パース処理後の収集データがIoT部24からデータ収集装置10に対して送信される。処理10では、データ収集装置10は、パース処理後の収集データをデータベースDBに格納する。
【0124】
なお、
図10では、パース処理がIoT部24によって実行される場合を説明するが、パース処理は、CPU21によって実行されてもよい。この場合、制御プログラム内にパースが埋め込まれていてもよいし、制御プログラムから外部のパースが呼び出されてパース処理が実行されてもよい。CPU21は、パース処理後の収集データをIoT部24に送信し、IoT部24は、パース処理後の収集データをデータ収集装置10に転送すればよい。
【0125】
第2実施形態のデータ収集システム1によれば、上位制御装置20が実行する制御プログラム内に収集設定を含めておき、上位制御装置20側でパース処理も実行することにより、データ収集に関する主要な処理を上位制御装置20側で実行できる。このため、ユーザが特にデータ収集装置10を操作しなくても、上位制御装置20は、収集データを収集してパース処理を実行し、パース処理後の収集データを取得できる。この場合、ユーザは、上位制御装置20と産業機器30を管理すればよくなるので、ユーザの手間を軽減できる。
【0126】
[3.第3実施形態]
第2実施形態では、パース処理後の収集データがデータ収集装置10のデータベースDBに格納される場合を説明したが、第3実施形態では、パース処理後の収集データが上位制御装置20に格納される場合を説明する。第3実施形態では、データ収集装置10は省略可能であり、データ収集システム1にデータ収集装置10が含まれなくてもよい。なお、第3実施形態では、第1実施形態及び第2実施形態と同様の構成については説明を省略する。
【0127】
図11は、第3実施形態のデータ収集システム1におけるデータ収集の流れの一例を示す図である。
図11に示すように、第3実施形態のデータ収集の大まかな流れは、第2実施形態と同様であるが、処理10がIoT部24によって実行される点で異なる。
図11の処理10では、IoT部24は、パース処理後の収集データを上位制御装置20内のデータベースDBに格納する。
【0128】
なお、データベースDBは、記憶部22に記憶されるものとするが、IoT部24に記憶されていてもよいし、CPU21内に不揮発性メモリが含まれるのであれば、CPU21内に記憶されてもよい。また、データベースDBは、上位制御装置20に接続された外部情報記憶媒体に記憶されてもよいし、データ収集装置10とは異なる他のコンピュータ(クラウドサーバ等)に記憶されてもよい。
【0129】
また、第3実施形態でも、第2実施形態と同様、パース処理がCPU21によって実行されてもよい。この場合、CPU21は、パース処理後の収集データをデータベースDBに登録する。このようにすれば、上位制御装置20は、外部のコンピュータに対するデータの送信が発生しないので、IoT部24が省略されてもよい。即ち、上位制御装置20は、IoT部24を含まずに、自身の内部でデータ収集を完結させてもよい。
【0130】
第3実施形態のデータ収集システム1によれば、上位制御装置20内のデータベースDBに、パース処理後の収集データを格納できる。また、データ収集システム1からデータ収集装置10を省略できるので、ユーザがデータ収集装置10を管理する必要がなくなり、ユーザの手間を軽減できる。
【0131】
[4.第4実施形態]
第1実施形態では、データ収集装置10から収集設定が指定されて収集開始が指示される場合を説明したが、収集設定の指定及び収集開始の指示は、HMI装置25から行われてもよい。第4実施形態では、ユーザがHMI装置25から収集設定を指定して収集開始を指示する場合を説明する。第4実施形態では、第2実施形態及び第3実施形態のように制御プログラム内に収集設定を含める必要はない。第4実施形態の制御プログラムは、第1実施形態の制御プログラムと同様であってよく、第4実施形態では、第1実施形態で説明した収集アプリが上位制御装置20に記憶されているものとする。なお、第4実施形態では、第1実施形態~第3実施形態と同様の構成については説明を省略する。
【0132】
図12は、第4実施形態のデータ収集システム1におけるデータ収集の流れの一例を示す図である。
図12に示すように、第4実施形態では、第1実施形態の
図2で説明した処理1と同様の処理1が、HMI装置25から行われる。例えば、HMI装置25には、
図3と同様の設定画面Gが表示され、ユーザによる収集設定の指定を受け付ける。HMI装置25は、ユーザが指定した収集設定を、機器ID及びトピックIDのセットとともに上位制御装置20に登録する(処理2)。
【0133】
上位制御装置20は、HMI装置25からユーザが指定した収集設定を受信すると、自身が記憶するデータベースDB2に当該収集設定を、機器ID及びトピックIDのセットとともに格納する(処理3)。データベースDB2は、第1実施形態のデータベースDBのうち、機器ID及びトピックIDのセットと、収集設定と、を格納する部分と同様である。データベースDB2は、記憶部22に記憶されるものとするが、CPU21内の不揮発性メモリ、IoT部24、外部記憶媒体、又は他のコンピュータに記憶されてもよい。HMI装置25は、ユーザからの収集開始の指示を受け付ける(処理4)。収集開始の指示には、収集対象となる収集設定の機器ID及びトピックIDのセットが含まれるものとする。
【0134】
上位制御装置20は、HMI装置25からユーザが収集開始の指示をした旨の通知を受信すると、データベースDB2から、収集開始の指示に含まれる機器ID及びトピックIDのセットに関連付けられた収集設定を取得する(処理5)。続く
図12の処理6~処理13は、
図10の処理3~処理10と同様である。ただし、
図10の処理3~処理5は、制御プログラムが主体となって実行されるが、
図12の処理6~処理8は、収集アプリが主体となって実行される。また、
図10の処理7では、制御プログラムから収集設定が取得されたが、
図12の処理10では、データベースDB2から収集設定が取得される。なお、データベースDB1は、第1実施形態のデータベースDBのうち、パース処理後の収集データを格納する部分と同様である。また、第4実施形態でも、第2実施形態と同様、パース処理がCPU21によって実行されてもよい。
【0135】
第4実施形態のデータ収集システム1によれば、ユーザがHMI装置25から収集設定を指定することによって、ユーザがデータ収集装置10を操作しなくても、上位制御装置20は、収集データを収集してパース処理を実行し、パース処理後の収集データを取得できる。この場合、ユーザは、使い慣れたHMI装置25を操作すればよいため、ユーザの手間を軽減できる。
【0136】
[5.第5実施形態]
第4実施形態では、パース処理後の収集データがデータ収集装置10のデータベースDB1に格納される場合を説明したが、第5実施形態では、パース処理後の収集データが上位制御装置20に格納される場合を説明する。第5実施形態では、データ収集装置10は省略可能であり、データ収集システム1にデータ収集装置10が含まれなくてもよい。なお、第5実施形態では、第1実施形態~第4実施形態と同様の構成については説明を省略する。
【0137】
図13は、第5実施形態のデータ収集システム1におけるデータ収集の流れの一例を示す図である。
図13に示すように、第5実施形態のデータ収集の大まかな流れは、第4実施形態と同様であるが、処理13がIoT部24によって実行される点で異なる。
図13の処理10では、IoT部24は、パース処理後の収集データを上位制御装置20内のデータベースDBに格納する。なお、
図13のデータベースDBは、
図12のデータベースDB1とデータベースDB2を合わせたものであり、収集設定も格納される。
【0138】
また、第5実施形態でも、第4実施形態と同様、パース処理がCPU21によって実行されてもよい。この場合、CPU21は、パース処理後の収集データをデータベースDBに登録する。このようにすれば、上位制御装置20は、外部のコンピュータに対するデータの送信が発生しないので、IoT部24が省略されてもよい。即ち、上位制御装置20は、IoT部24を含まずに、自身の内部でデータ収集を完結させてもよい。
【0139】
第5実施形態のデータ収集システム1によれば、上位制御装置20内のデータベースDBに、パース処理後の収集データを格納できる。また、データ収集システム1からデータ収集装置10を省略できるので、ユーザがデータ収集装置10を管理する必要がなくなり、ユーザの手間を軽減できる。
【0140】
[6.変形例]
なお、本開示は、以上に説明した実施形態に限定されるものではない。本開示の趣旨を逸脱しない範囲で、適宜変更可能である。
【0141】
図14は、変形例における機能ブロック図である。
図14に示すように、以降説明する変形例では、解析アプリ特定部108と、解析実行部109と、が実現される。これらは、CPU11を主として実現される。なお、
図14では、第1実施形態に基づいて説明しているが、第2実施形態~第5実施形態についても、下記に説明する変形例を適用可能である。
【0142】
解析アプリ特定部108は、複数の解析アプリの中から、収集データの解析に関する解析アプリを特定する。解析アプリは、パース処理後の収集データを解析するためのアプリケーションである。パース処理は、解析アプリに入力可能なデータ構造に収集データを変換するために実行される。解析アプリは、ユーザにより作成される。解析アプリは、収集データが入力されると、その内容を解析して解析結果を出力する。解析結果は、異常の発生であってもよいし、対象物の品質であってもよい。
【0143】
本変形例のデータ記憶部100は、複数の解析アプリを記憶する。例えば、データベースDBに、個々の収集設定に対応する解析アプリが定義されていてもよい。即ち、ある収集設定に基づいて収集された収集データを入力すべき解析アプリがデータベースDBに定義されていてもよい。解析アプリ特定部108は、ある収集データのパース処理が実行された場合に、その収集データの収集設定に関連付けられた解析アプリを、収集データの解析に関する解析アプリとして特定する。この特定は、パーサにより行われてもよい。即ち、解析アプリ特定部108の処理は、パーサが実行する処理の一部であってもよい。
【0144】
解析実行部109は、パース処理が実行された収集データを、特定された解析アプリに解析させる。解析実行部109は、パース処理が実行された収集データを解析アプリに入力し、解析アプリから出力された解析結果を取得する。この解析結果は、データベースDBに格納されてもよいし、表示部15に表示されてもよい。他にも例えば、この解析結果は、データ収集装置10以外の他のコンピュータ又は外部情報記憶媒体に出力されてもよい。解析実行部109は、全ての収集データを解析アプリに解析させてもよいし、一部の収集データだけを解析アプリに解析させてもよい。一部の収集データだけを解析アプリに解析させる場合には、アラームが発生した場合に収集された収集データ、アラームが発生する前後に収集された収集データ、又は所定の値を含む収集データだけを解析アプリに解析させてもよい。
【0145】
以上説明した変形例によれば、複数の解析アプリの中から、収集データの解析に応じた解析アプリを特定し、パース処理が実行された収集データを、特定された解析アプリに解析させることによって、迅速な解析が可能になる。
【0146】
また例えば、トピックIDは、特にフィードバック用の変数の変数名に用いられなくてもよい。また例えば、汎用的な1つのパーサだけが存在してもよく、この場合には、パーサの特定は実行されなくてもよい。また例えば、機器IDとトピックIDのセットと、収集設定と、の対応関係はデータベースDBに格納されずに他の記憶領域に格納されていてもよい。また例えば、収集データには、産業機器30ごとの時間情報ではなく、上位制御装置20の時間情報又はデータ収集装置10の時間情報が関連付けられてもよい。また例えば、パーサやIoTモジュールは、アドオンによってデータ収集装置10に登録されてもよい。また例えば、設定画面Gには、実行中のデータ収集の状況が表示されてもよい。
【0147】
また例えば、上記説明した各機能は、データ収集システム1における任意の装置で実現されるようにすればよい。例えば、データ収集装置10で実現されるものとして説明した機能が上位制御装置20又は産業機器30によって実現されてもよい。また例えば、上位制御装置20で実現されるものとして説明した機能がデータ収集装置10又は産業機器30によって実現されてもよい。また例えば、各機能が複数の装置によって分担されるのではなく、1つの装置によって実現されてもよい。
【符号の説明】
【0148】
1 データ収集システム、10 データ収集装置、11,21,31 CPU、12,22,32 記憶部、13,23,33 通信部、14 操作部、15 表示部、20 上位制御装置、24 IoT部、30,30A,30B 産業機器、G 設定画面、B1,B2 ボタン、DB,DB1,DB2 データベース、F1,F2 入力フォーム、P1,P2 パーサ、100 データ記憶部、101 設定部、102 受付部、103 格納部、104 収集部、105 パーサ特定部、106 収集設定特定部、107 実行部、108 解析アプリ特定部、109 解析実行部、200 データ記憶部、201 機器制御部、202 収集部、203 転送部、300 データ記憶部、301 工程実行部、302 生成部。