(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024023868
(43)【公開日】2024-02-21
(54)【発明の名称】データ活用システム
(51)【国際特許分類】
G05B 19/05 20060101AFI20240214BHJP
G05B 19/042 20060101ALI20240214BHJP
【FI】
G05B19/05 Z
G05B19/05 S
G05B19/042
【審査請求】有
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2023218376
(22)【出願日】2023-12-25
(62)【分割の表示】P 2019183257の分割
【原出願日】2019-10-03
(71)【出願人】
【識別番号】000129253
【氏名又は名称】株式会社キーエンス
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】中村 達也
(57)【要約】
【課題】上位のデータ活用ユニットが一つ以上の下位のデータ活用ユニットから漏れなく時系列データを収集できるようにすること。
【解決手段】上位ユニットは、下位ユニットに対して収集対象となるデータを指定する指定情報を設定し、下位ユニットに蓄積された収集対象となるデータを収集する。下位ユニットは、指定情報にしたがって、下位ユニットに接続された基本ユニットにおいて取得されたデータを基本ユニットから取得する。上位ユニットまたは下位ユニットに設けられ、取得されたデータを下位ユニットから上位ユニットに受け渡すために当該データを蓄積するバッファを有している。上位ユニットは、バッファから収集対象となるデータを読み出すように構成されている。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数のデータ活用ユニットを有するデータ活用システムであって、
前記複数のデータ活用ユニットのうち上位ユニットは、
前記複数のデータ活用ユニットのうち下位ユニットに対して収集対象となるデータを指定する指定情報を設定する設定手段と、
前記下位ユニットに蓄積された前記収集対象となるデータを収集する収集手段と、
前記収集手段により収集されたデータまたは当該データに対して所定の分析処理を実行することで取得された分析結果を表示する表示データを作成する作成手段と、
を有し、
前記下位ユニットは、さらに、
前記指定情報にしたがって、前記下位ユニットに接続された基本ユニットにおいて取得されたデータを前記基本ユニットから取得する取得手段と、
前記上位ユニットまたは前記下位ユニットに設けられ、前記取得手段により取得された前記データを前記下位ユニットから前記上位ユニットに受け渡すために当該データを蓄積するバッファと、
を有し、
前記上位ユニットの前記収集手段は、前記バッファから前記収集対象となるデータを読み出すように構成され、
前記下位ユニットにおいて実行されるユーザプログラムを含むプロジェクトデータを解析することで前記収集対象となるデータを特定し、前記特定されたデータの指定を含むように前記指定情報を作成するように構成されていることを特徴とするデータ活用システム。
【請求項2】
前記下位ユニットが前記バッファを有し、
前記上位ユニットの前記作成手段は、前記バッファから収集された前記収集対象となるデータに対して前記所定の分析処理を実行する分析手段を有し、
前記表示データは、前記上位ユニットにおいて実行された前記所定の分析処理の分析結果を含むことを特徴とする請求項1に記載のデータ活用システム。
【請求項3】
前記下位ユニットは、さらに、
前記取得手段により取得されたデータに基づき前記収集対象となるデータを生成する生成手段
を有し、
前記生成手段は、前記所定の分析処理を実行する分析手段を有し、
前記収集対象となるデータは前記所定の分析処理の分析結果を含み、
前記表示データは、前記下位ユニットにおいて実行された前記所定の分析処理の分析結果を含むことを特徴とする請求項1に記載のデータ活用システム。
【請求項4】
前記設定手段は、前記プロジェクトデータを解析することで収集対象の候補となる変数を特定し、当該特定された変数のうちユーザにより指定された変数または当該変数を格納するデバイスを含むように前記指定情報を作成するように構成されていることを特徴とする請求項1に記載のデータ活用システム。
【請求項5】
前記取得手段は、前記収集対象となるデータに対して前記下位ユニットの識別情報を付与して前記バッファに格納することを特徴とする請求項1ないし4のいずれか一項に記載のデータ活用システム。
【請求項6】
前記上位ユニットは、前記下位ユニットを含むプログラマブルロジックコントローラと
は異なる別のプログラマブルロジックコントローラにおける拡張ユニットであることを特徴とする請求項1ないし5のいずれか一項に記載のデータ活用システム。
【請求項7】
前記下位ユニットとして、
ワークの製造ラインにおいて上流側に配置された第一産業機械を制御する第一プログラマブルロジックコントローラに搭載された第一下位ユニットと、
前記製造ラインにおいて下流側に配置された第二産業機械を制御する第二プログラマブルロジックコントローラに搭載された第二下位ユニットと
を有し、
前記第一下位ユニットと前記第二下位ユニットとからそれぞれ収集される前記収集対象となるデータには、各ワークを識別するためのワーク識別情報が含まれており、
前記作成手段は、前記第一下位ユニットから収集されたデータと前記第二下位ユニットから収集されたデータとについてそれぞれの前記ワーク識別情報を参照することで、各ワークごとにデータを統合するように構成されていることを特徴とする請求項1ないし6のいずれか一項に記載のデータ活用システム。
【請求項8】
前記下位ユニットとして、第一下位ユニットと第二下位ユニットとを有し、
前記第一下位ユニットと前記第二下位ユニットとからそれぞれ収集される前記収集対象となるデータには、各データの収集時刻を示すタイムスタンプが含まれており、
前記作成手段は、前記第一下位ユニットから収集されたデータと前記第二下位ユニットから収集されたデータとについてそれぞれの前記タイムスタンプを参照することで、前記タイムスタンプが近いデータを統合するように構成されていることを特徴とする請求項1ないし6のいずれか一項に記載のデータ活用システム。
【請求項9】
前記作成手段は、前記第一下位ユニットから収集されたデータのタイムスタンプと前記第二下位ユニットから収集されたデータのタイムスタンプとのうち一方のデータのタイムスタンプを一定時間ずらした上で、当該タイムスタンプに基づきデータの統合を実行することを特徴とする請求項8に記載のデータ活用システム。
【請求項10】
前記表示データを表示するダッシュボードの表示部品に前記収集されたデータを指定する指定手段をさらに有し、
前記指定手段は、前記ダッシュボードの表示部品に前記表示データを関連付ける際に、前記プロジェクトデータを解析することで取得された変数またはデバイスを前記表示データの候補として表示することを特徴とする請求項1ないし9のいずれか一項に記載のデータ活用システム。
【請求項11】
複数のデータ活用ユニットを有するデータ活用システムであって、
前記複数のデータ活用ユニットのうち上位ユニットは、
前記複数のデータ活用ユニットのうち下位ユニットに対して収集対象となるデータを指定する指定情報を設定する設定手段と、
前記下位ユニットに蓄積された前記収集対象となるデータを収集する収集手段と、
前記収集手段により収集されたデータまたは当該データに対して所定の分析処理を実行することで取得された分析結果を表示する表示データを作成する作成手段と、
を有し、
前記下位ユニットは、さらに、
前記指定情報にしたがって、前記下位ユニットに接続された基本ユニットにおいて取得されたデータを前記基本ユニットから取得する取得手段と、
前記上位ユニットまたは前記下位ユニットに設けられ、前記取得手段により取得された前記データを前記下位ユニットから前記上位ユニットに受け渡すために当該データを蓄積するバッファと、
を有し、
前記上位ユニットの前記収集手段は、前記バッファから前記収集対象となるデータを読み出すように構成され、
前記取得手段は、前記収集対象となるデータに対して前記下位ユニットの識別情報を付与して前記バッファに格納することを特徴とするデータ活用システム。
【請求項12】
複数のデータ活用ユニットを有するデータ活用システムであって、
前記複数のデータ活用ユニットのうち上位ユニットは、
前記複数のデータ活用ユニットのうち下位ユニットに対して収集対象となるデータを指定する指定情報を設定する設定手段と、
前記下位ユニットに蓄積された前記収集対象となるデータを収集する収集手段と、
前記収集手段により収集されたデータまたは当該データに対して所定の分析処理を実行することで取得された分析結果を表示する表示データを作成する作成手段と、
を有し、
前記下位ユニットは、さらに、
前記指定情報にしたがって、前記下位ユニットに接続された基本ユニットにおいて取得されたデータを前記基本ユニットから取得する取得手段と、
前記上位ユニットまたは前記下位ユニットに設けられ、前記取得手段により取得された前記データを前記下位ユニットから前記上位ユニットに受け渡すために当該データを蓄積するバッファと、
を有し、
前記上位ユニットの前記収集手段は、前記バッファから前記収集対象となるデータを読み出すように構成され、
前記上位ユニットは、前記下位ユニットを含むプログラマブルロジックコントローラと
は異なる別のプログラマブルロジックコントローラにおける拡張ユニットであることを特徴とするデータ活用システム。
【請求項13】
複数のデータ活用ユニットを有するデータ活用システムであって、
前記複数のデータ活用ユニットのうち上位ユニットは、
前記複数のデータ活用ユニットのうち下位ユニットに対して収集対象となるデータを指定する指定情報を設定する設定手段と、
前記下位ユニットに蓄積された前記収集対象となるデータを収集する収集手段と、
前記収集手段により収集されたデータまたは当該データに対して所定の分析処理を実行することで取得された分析結果を表示する表示データを作成する作成手段と、
を有し、
前記下位ユニットは、さらに、
前記指定情報にしたがって、前記下位ユニットに接続された基本ユニットにおいて取得されたデータを前記基本ユニットから取得する取得手段と、
前記上位ユニットまたは前記下位ユニットに設けられ、前記取得手段により取得された前記データを前記下位ユニットから前記上位ユニットに受け渡すために当該データを蓄積するバッファと、
を有し、
前記上位ユニットの前記収集手段は、前記バッファから前記収集対象となるデータを読み出すように構成され、
前記下位ユニットとして、
ワークの製造ラインにおいて上流側に配置された第一産業機械を制御する第一プログラマブルロジックコントローラに搭載された第一下位ユニットと、
前記製造ラインにおいて下流側に配置された第二産業機械を制御する第二プログラマブルロジックコントローラに搭載された第二下位ユニットと
を有し、
前記第一下位ユニットと前記第二下位ユニットとからそれぞれ収集される前記収集対象となるデータには、各ワークを識別するためのワーク識別情報が含まれており、
前記作成手段は、前記第一下位ユニットから収集されたデータと前記第二下位ユニットから収集されたデータとについてそれぞれの前記ワーク識別情報を参照することで、各ワークごとにデータを統合するように構成されていることを特徴とするデータ活用システム。
【請求項14】
複数のデータ活用ユニットを有するデータ活用システムであって、
前記複数のデータ活用ユニットのうち上位ユニットは、
前記複数のデータ活用ユニットのうち下位ユニットに対して収集対象となるデータを指定する指定情報を設定する設定手段と、
前記下位ユニットに蓄積された前記収集対象となるデータを収集する収集手段と、
前記収集手段により収集されたデータまたは当該データに対して所定の分析処理を実行することで取得された分析結果を表示する表示データを作成する作成手段と、
を有し、
前記下位ユニットは、さらに、
前記指定情報にしたがって、前記下位ユニットに接続された基本ユニットにおいて取得されたデータを前記基本ユニットから取得する取得手段と、
前記上位ユニットまたは前記下位ユニットに設けられ、前記取得手段により取得された前記データを前記下位ユニットから前記上位ユニットに受け渡すために当該データを蓄積するバッファと、
を有し、
前記上位ユニットの前記収集手段は、前記バッファから前記収集対象となるデータを読み出すように構成され、
前記下位ユニットとして、第一下位ユニットと第二下位ユニットとを有し、
前記第一下位ユニットと前記第二下位ユニットとからそれぞれ収集される前記収集対象となるデータには、各データの収集時刻を示すタイムスタンプが含まれており、
前記作成手段は、前記第一下位ユニットから収集されたデータと前記第二下位ユニットから収集されたデータとについてそれぞれの前記タイムスタンプを参照することで、前記タイムスタンプが近いデータを統合するように構成されていることを特徴とするデータ活用システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はデータ活用システムに関する。
【背景技術】
【0002】
プログラマブル・ロジック・コントローラ(PLC)はファクトリーオートメーションにおいて製造機器や搬送装置、検査装置などの産業機械を制御するコントローラである(特許文献1、2)。PLCはプログラマーによって作成されるラダープログラムなどのユーザプログラムを実行することで様々な拡張ユニットや被制御機器を制御する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第5661222号公報
【特許文献2】特開2018-097662号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、PLCの動作やPLCによって制御される産業機械の動作を監視するために、PLCが保持しているデータを収集して活用することが望まれている。PLCは、基本ユニット(CPUユニット)とそれに接続される拡張ユニットとを有している。基本ユニットは、ラダープログラムなどのユーザプログラムを実行することで拡張ユニットを制御する。拡張ユニットは基本ユニットからの命令にしたがって産業機械を制御し、制御結果を基本ユニットに返す。ここで、基本ユニットの処理負荷を削減するために、発明者らは、拡張ユニットの一つとしてデータ活用ユニットを基本ユニットに接続することを思いついた。これにより一つのPLC内で時系列データを漏れなく収集することが可能となろう。
【0005】
ところで、一つの製造ラインにおいて複数のPLCがそれぞれ異なる産業機械を制御することがある。この場合、複数のPLCからデータを収集して活用できれば、製造ラインの全体を統括的に監視しやすくなるであろう。この際に、上位のデータ活用ユニットは、複数の下位のデータ活用ユニットからデータを収集することになる。上位のデータ活用ユニットは、複数の下位のデータ活用ユニットから漏れなく時系列データを収集することが望まれる。しかし、複数のPLCはそれぞれ非同期で動作しているため、漏れなく時系列データを収集することは簡単ではない。
【0006】
そこで、本発明は、上位のデータ活用ユニットが一つ以上の下位のデータ活用ユニットから漏れなく時系列データを収集できるようにすること、を目的とする。
【課題を解決するための手段】
【0007】
本発明は、たとえば、
複数のデータ活用ユニットを有するデータ活用システムであって、
前記複数のデータ活用ユニットのうち上位ユニットは、
前記複数のデータ活用ユニットのうち下位ユニットに対して収集対象となるデータを指定する指定情報を設定する設定手段と、
前記下位ユニットに蓄積された前記収集対象となるデータを収集する収集手段と、
前記収集手段により収集されたデータまたは当該データに対して所定の分析処理を実行することで取得された分析結果を表示する表示データを作成する作成手段と、
を有し、
前記下位ユニットは、さらに、
前記指定情報にしたがって、前記下位ユニットに接続された基本ユニットにおいて取得されたデータを前記基本ユニットから取得する取得手段と、
前記上位ユニットまたは前記下位ユニットに設けられ、前記取得手段により取得された前記データを前記下位ユニットから前記上位ユニットに受け渡すために当該データを蓄積するバッファと、
を有し、
前記上位ユニットの前記収集手段は、前記バッファから前記収集対象となるデータを読み出すように構成され、
前記下位ユニットにおいて実行されるユーザプログラムを含むプロジェクトデータを解析することで前記収集対象となるデータを特定し、前記特定されたデータの指定を含むように前記指定情報を作成するように構成されていることを特徴とするデータ活用システムを提供する。
【発明の効果】
【0008】
本発明によれば上位のデータ活用ユニットが一つ以上の下位のデータ活用ユニットから漏れなく時系列データを収集することが可能となる。
【図面の簡単な説明】
【0009】
【
図10】データレコードのフォーマットを説明する図
【
図20】下位ユニットの収集処理を示すフローチャート
【
図21】上位ユニットの収集処理を示すフローチャート
【発明を実施するための形態】
【0010】
以下、添付図面を参照して実施形態が詳しく説明される。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴のうち二つ以上の特徴が任意に組み合わされてもよい。また、同一または同様の構成には同一の参照番号が付され、重複した説明は省略される。同一または類似の要素を示す参照符号の末尾には小文字のアルファベットが付与されることがある。複数の要素に共通する事項が説明される場合、小文字のアルファベットが省略される。
【0011】
<システム構成>
はじめにプログラマブルロジックコントローラ(PLC、単にプログラマブルコントローラと呼ばれてもよい)を当業者にとってよりよく理解できるようにするために、一般的なPLCの構成とその動作について説明する。
【0012】
図1は、本発明の実施の形態によるプログラマブル・ロジック・コントローラシステムの一構成例を示す概念図である。
図1が示すように、このシステムは、ラダープログラムなどのユーザプログラムの編集を行うためのPC2aと、工場等に設置される各種制御装置を統括的に制御するためのPLC(プログラマブルロジックコントローラ)1a~1cとを備えている。PCはパーソナルコンピュータの略称である。ユーザプログラムは、ラダー言語やSFC(シーケンシャルファンクションチャート)などのフローチャート形式のモーションプログラムなどのグラフィカルプログラミング言語を用いて作成されてもよいし、C言語などの高級プログラミング言語を用いて作成されてもよい。以下では、説明の便宜上、ユーザプログラムはラダープログラムとする。PLC1は、CPUが内蔵された基本ユニット3と、1つないし複数の拡張ユニット4を備えている。基本ユニット3に対して1つないし複数の拡張ユニット4が着脱可能となっている。
【0013】
データ活用において、PLC1は上位システムとして機能する上位モードと下位システムとして機能する下位モードとを有している。たとえば、
図1において、PLC1aは上位システムであり、PLC1b、1cは下位システムである。PLC1aはPLC1b、1cに対して収集対象データを設定したり、PLC1b、1cにより収集されたデータを取得したりする。PLC1aは通信ケーブル9cを介してPLC1bと接続されている。PLC1aは通信ケーブル9dを介してPLC1cと接続されている。ただし、通信ケーブル9は有線ネットワークや無線ネットワークであってもよい。
【0014】
基本ユニット3は、表示部5および操作部6を備えている。表示部5は、基本ユニット3に取り付けられている各拡張ユニット4の動作状況などを表示することができる。操作部6の操作内容に応じて表示部5は表示内容を切り替える。表示部5は、通常、PLC1内のデバイスの現在値(デバイス値)やPLC1内で生じたエラー情報などを表示する。デバイスとは、デバイス値(デバイスデータ)を格納するために設けられたメモリ上の領域を指す名称であり、デバイスメモリと呼ばれてもよい。デバイス値とは、入力機器からの入力状態、出力機器への出力状態およびユーザプログラム上で設定される内部リレー(補助リレー)、タイマー、カウンタ、データメモリ等の状態を示す情報である。デバイス値の型にはビット型とワード型がある。ビットデバイスは1ビットのデバイス値を記憶する。ワードデバイスは1ワードのデバイス値を記憶する。以下で詳細に説明されるデータ活用プログラムの収集対象としては、デバイスだけでなく、変数が指定されてもよい。ただし、デバイスも変数も情報を保持する保持手段である。したがって、以下の説明においてデバイスは変数も指すものである。なお、デバイスを保持するメモリはデバイスメモリと呼ばれてもよい。また、収集されたデータを保持するメモリはデータメモリと呼ばれてもよい。
【0015】
拡張ユニット4は、PLC1の機能を拡張するために用意されている。各拡張ユニット4には、その拡張ユニット4の機能に対応するフィールドデバイス(被制御装置)10が接続されることがあり、これにより、各フィールドデバイス10が拡張ユニット4を介して基本ユニット3に接続される。フィールドデバイス10は、センサやカメラ、バーコードリーダなどの入力機器であってもよいし、アクチュエータなどの出力機器であってもよい。また、一つの拡張ユニット4に対して複数のフィールドデバイスが接続されてもよい。
【0016】
たとえば、拡張ユニット4bはモータ(フィールドデバイス10)を駆動してワークの位置決めする位置決めユニットであってもよいし、カウンタユニットであってもよい。カウンタユニットは手動パルサなどのエンコーダ(フィールドデバイス10)からの信号をカウントする。
【0017】
拡張ユニット4aは、基本ユニット3や拡張ユニット4bから収集対象データを収集し、フローを実行することで収集対象データにデータ処理を施して表示対象データを作成し、ダッシュボードを表示部7またはPC2に表示するための表示データを作成するデータ収集ユニットである。基本ユニット3はCPUユニットと呼ばれることもある。なお、PLC1とPC2とを含むシステムはプログラマブルロジックコントローラシステムと呼ばれてもよい。
【0018】
PC2aは主にプログラマーによって操作されるコンピュータである。一方、PC2bは主に現場担当者によって操作されるコンピュータである。PC2aはプログラム作成支援装置(設定装置)と呼ばれてもよい。PC2は、たとえば、携帯可能なノートタイプやタブレットタイプのパーソナルコンピュータまたはスマートフォンであって、表示部7および操作部8を備えている外部コンピュータである。外部コンピュータとは、PLC1の外部にあるコンピュータである。PLC1を制御するためのユーザプログラムの一例であるラダープログラムは、PC2aを用いて作成される。その作成されたラダープログラムは、PC2a内でニモニックコードに変換される。PC2は、USB(Universal Serial Bus)ケーブルなどの通信ケーブル9を介してPLC1の基本ユニット3に接続される。たとえば、PC2aは、ニモニックコードに変換されたラダープログラムを基本ユニット3に送る。基本ユニット3はラダープログラムをマシンコードに変換し、基本ユニット3に備えられたメモリ内に記憶する。なお、ここではニモニックコードが基本ユニット3に送信されているが、本発明はこれに限られない。たとえば、PC2aは、ニモニックコードを中間コードに変換し、中間コードを基本ユニット3に送信してもよい。
【0019】
なお、
図1は示していないが、PC2の操作部8には、PC2に接続されたマウスなどのポインティングデバイスが含まれていてもよい。また、PC2は、USBケーブル以外の他の通信ケーブル9を介して、PLC1の基本ユニット3に対して着脱可能に接続されるような構成であってもよい。また、PC2は、通信ケーブル9を介さず、PLC1の基本ユニット3に対して無線通信によって接続されてもよい。
【0020】
<プログラム作成支援装置>
図2はPC2aの電気的構成について説明するためのブロック図である。
図2が示すように、PC2aは、CPU11a、表示部7a、操作部8a、記憶装置12aおよび通信部13aを備えている。表示部7a、操作部8a、記憶装置12aおよび通信部13aは、それぞれCPU11aに対して電気的に接続されている。記憶装置12aはRAMやROM、HDD、SSDを含み、さらに着脱可能なメモリカードを含んでもよい。CPUは中央演算処理装置の略称である。ROMはリードオンリーメモリの略称である。RAMはランダムアクセスメモリの略称である。HDDはハードディスクドライブの略称である。SSDはソリッドステートドライブの略称である。
【0021】
PC2aのユーザは記憶装置12aに記憶されているプロジェクト編集プログラム14aをCPU11aに実行させて、操作部8aを通じてプロジェクトデータ15を編集する。CPU11aがプロジェクト編集プログラム14aを実行することで、プロジェクト作成部16とプロジェクト転送部17が実現される。プロジェクト作成部16はユーザ入力にしたがってプロジェクトデータ15を作成する。プロジェクト転送部17はプロジェクトデータ15をPLC1に転送する。プロジェクトデータ15は、一つ以上のユーザープログラム(例:ラダープログラム)と、基本ユニット3や拡張ユニット4の構成情報などを含む。構成情報は、基本ユニット3に対する複数の拡張ユニット4の接続位置や、基本ユニット3に備えられた機能(例:通信機能や位置決め機能)を示す情報、拡張ユニット4の機能(例:撮影機能)などを示す情報である。ここで、プロジェクトデータ15の編集には、プロジェクトデータ15の作成および変更(再編集)が含まれる。ユーザは、必要に応じて記憶装置12aに記憶されているプロジェクトデータ15を読み出し、そのプロジェクトデータ15を、プロジェクト編集プログラム14aを用いて変更することができる。通信部13aは、通信ケーブル9aを介して基本ユニット3と通信する。プロジェクト転送部17は通信部13aを介してプロジェクトデータを基本ユニット3に転送する。通信部13aは、通信ケーブル9bを介して拡張ユニット4aと通信する。
【0022】
変数情報19は、プロジェクトデータ15の一部であり、ユーザプログラム内で使用されている変数とそれに割り付けられているデバイス、データの型、初期値、コメントなどを含む情報である。変数情報19は、データ活用の際に収集対象となるデバイスを設定する際に役に立つ。たとえば、変数情報19から変数のリストが作成され、変数のリストからユーザによっていずれかの変数が指定されると、指定された変数に割り付けられているデバイスが変数情報19または当該リストから特定され、収集対象デバイスに決定される。なお、PC2の代わりに、上位システムとして機能するPLC1aのデータ活用ユニットが下位システムの変数情報19を読み出し、収集対象デバイスを決定してもよい。PC2が三つのPLC1について設定装置(プログラム作成支援装置)として機能する場合、PC2が収集設定を作成してもよい。
図2にはこの例が示されている。プロジェクトデータ15aはPLC1a用のプロジェクトデータであり、変数情報19aはPLC1a用の変数情報である。プロジェクトデータ15bはPLC1b用のプロジェクトデータであり、変数情報19bはPLC1b用の変数情報である。プロジェクトデータ15cはPLC1c用のプロジェクトデータであり、変数情報19cはPLC1c用の変数情報である。三つのPLC1についてそれぞれ異なる設定装置によって設定される場合、上位システムが統括的に収集設定を作成することになろう。これにより、収集設定の作成が効率化しよう。収集対象は、デバイスだけでなく、変数そのものであってもよい。
【0023】
<ダッシュボードの表示に使用されるPC>
図3はPC2bの電気的構成について説明するためのブロック図である。
図3が示すように、PC2bは、CPU11b、表示部7b、操作部8b、記憶装置12bおよび通信部13bを備えている。表示部7b、操作部8b、記憶装置12bおよび通信部13bは、それぞれCPU11bに対して電気的に接続されている。記憶装置12bはRAMやROM、HDD、SSDを含み、さらに着脱可能なメモリカードを含んでもよい。
【0024】
CPU11bはWebブラウザプログラム14dを実行することでWebブラウザ18を実現する。Webブラウザ18は、通信部13bを介して、拡張ユニット4aによって提供されるデータ活用アプリケーションの設定ページにアクセスしたり、ダッシュボードのページにアクセスしたりする。
【0025】
<PLC>
図4はPLC1の電気的構成について説明するためのブロック図である。
図4が示すように、基本ユニット3は、CPU31、表示部5、操作部6、記憶装置32および通信部33を備えている。表示部5、操作部6、記憶装置32、および通信部33は、それぞれCPU31に電気的に接続されている。記憶装置32は、RAMやROM、メモリカードなどを含んでもよい。記憶装置32はデバイス部34やプロジェクト記憶部35などの複数の記憶領域を有している。デバイス部34はビットデバイスやワードデバイスなどを有し、各デバイスはデバイス値を記憶する。プロジェクト記憶部35は、PC2aから入力されたプロジェクトデータを記憶する。記憶装置32は基本ユニット3用の制御プログラムも記憶する。
図4が示すように基本ユニット3と拡張ユニット4とは通信バスの一種である拡張バス90を介して接続されている。なお、
図4では拡張バス90に関する通信回路がCPU31に実装されているが、通信部33の一部として実装されてもよい。通信部33はネットワーク通信回路を有してもよい。CPU31は通信部33を介してプロジェクトデータをPC2aから受信する。
【0026】
ここで、拡張バス90について、補足説明する。この拡張バス90は、入出力リフレッシュに使用される通信バスである。入出力リフレッシュとは、基本ユニット3と拡張ユニット4との間でデバイス値を更新する処理である。入出力リフレッシュは、ラダープログラムが一回実行されるごとに(つまり、一スキャンごとに)、実行される。なお、一つのスキャン周期は、入出力リフレッシュの実行期間と、ユーザプログラムの実行期間と、エンド処理の実行期間とを含む。
【0027】
拡張ユニット4はCPU41とメモリ42を備えている。拡張ユニット4bのCPU41bは、デバイスに格納された基本ユニット3からの指示(デバイス値)にしたがってフィールドデバイス10を制御する。また、CPU41bは、フィールドデバイス10の制御結果をバッファメモリとよばれるデバイスに格納する。デバイスに格納された制御結果は入出力リフレッシュによって基本ユニット3に転送される。また、デバイスに格納されている制御結果は、基本ユニット3からの読み出し命令にしたがって、入出力リフレッシュとは異なるタイミングであっても、基本ユニット3に転送される。メモリ42はRAMやROMなどを含む。とりわけ、RAMにはバッファメモリとして使用される記憶領域が確保されている。メモリ42は、フィールドデバイス10によって取得されたデータ(例:静止画データや動画データ)を一時的に保持するバッファを有してもよい。
【0028】
データ活用ユニットとして機能する拡張ユニット4aのCPU41aは、通信部43とケーブル9bを介してPC2bと通信する。データ活用ユニットは、データ活用アプリケーションを実行する拡張ユニットである。データ活用アプリケーションは、制御データを収集したりデータ処理したりするフローと、フローの実行結果を表示するダッシュボードとを含む。なお、制御データを収集する機能は、データ活用アプリケーション以外のユーザプログラムによって実現されてもよい。フローはデータを収集する演算ブロック、データ処理を実行する演算ブロック、および、表示データを作成する演算ブロックなどを有してもよい。ダッシュボードは、グラフ表示部品や数値表示部品などを有する。これらの表示部品は、HTMLデータ、CSSデータおよびJavaScript(登録商標)コードなどにより実現されてもよい。なお、HTMLデータ、CSSデータおよびJavaScript(登録商標)コードの集合体はWebアプリケーションと呼ばれてもよい。本実施形態で、フローはフローテンプレートにより実現される。フローテンプレートは予めアプリケーションごとに用意されており、ユーザにより指定されたパラメータが設定される一つ以上の演算ブロックを有している。ダッシュボードもテンプレートにより実現される。ダッシュボードテンプレートは、ユーザにより指定されたパラメータが設定される一つ以上の表示部品を有している。パラメータは、たとえば、ダッシュボードの名称、デバイス名、数値、ユニット変数名など多種多様な情報である。ユニット変数とは、拡張ユニット4aがフローの実行結果を保持するための変数である。
【0029】
●基本ユニットのCPUにより実現される機能
図5はデータ活用に関してCPU31により実現される機能を示している。実行エンジン51は、スキャン周期ごとにユーザプログラムを繰り返し実行する。実行エンジン51は、CPU31の外部に設けられたASICまたはFPGAなどにより実現されてもよい。ASICは特定用途集積回路の略称である。FPGAはフィールドプログラマブルゲートアレイの略称である。これらの専用回路は、CPUとプログラムとの組み合わせよりも、特定のデータ処理を高速に実行できることが多い。収集部52aは、スキャン周期のうちエンド処理の期間においてデバイス部34から収集対象のデバイス値を収集してデータレコードを作成して第一バッファ37aに格納する。なお、エンド処理の期間でデータを収集することは必須ではなく、実行エンジン51で実行されるユーザプログラムにデータを収集するための記述(トリガ命令などのプログラムコード)が含まれていてもよい。ただし、エンド処理によってデータを収集するケースでは、ユーザプログラムの変更が不要であるといったメリットがある。また、収集周期は、収集設定36aにより指定された周期であってもよい。第一バッファ37aを設けることで、実行エンジン51は、収集や転送処理によるスキャンタイムの伸びなどの影響を受けにくくなる。収集対象のデバイス値は、収集設定36aにより指定されている。収集設定36aは、PC2aまたは拡張ユニット4aによって基本ユニット3に格納されうる。転送部53aは、第一バッファ37aに格納された一つ以上のデータレコードを、拡張バス90を介して、拡張ユニット4aに転送する。なお、転送部53aは、拡張バス90における通信トラフィックが空いているときに、転送処理を実行する。したがって、実行エンジン51aが入出力リフレッシュを実行している期間や、ユーザプログラムに記述された読み出し命令にしたがって拡張ユニット4のバッファメモリからデータを読み出している期間を避けて、転送処理が実行される。なお、拡張バス90の通信トラフィックは監視部54aによって監視されている。なお、データレコードの転送時間を短縮するために、圧縮エンジン55aが複数のデータレコードを圧縮してもよい。なお、圧縮エンジン55aはCPU31により実現される必要は無く、ASICまたはFPGAなどにより実現されてもよい。このように、第一バッファ37aを採用することで、転送処理とユーザプログラムを非同期で実行することが可能となる。
【0030】
●データ活用ユニットの機能
図6は拡張ユニット4aのCPU41aによって実現される機能を説明する図である。なお、上位システムの拡張ユニット4aは上位ユニットと呼ばれ、下位システムの拡張ユニット4aは下位ユニットと呼ばれてもよい。はじめに下位ユニットのCPU41aにより実現される機能が説明される。ただし、上位ユニットのCPU41aも自己が接続されているPLC1aにおいてデータを収集してもよい。
【0031】
収集部52cは、CPU41aが収集設定39にしたがってデータを収集する機能である。収集部52cは、CPU41aがユーザプログラムなどの制御プログラムを実行することで実現されうる。収集部52cは、収集設定39により指定されたデバイス値を基本ユニット3が収集して拡張ユニット4aの第二バッファ37bに転送するよう基本ユニット3を設定する。なお、収集部52cは、収集設定39に含まれている基本ユニット3の収集設定36aを基本ユニット3の記憶装置32に書き込んでもよい。収集設定39はPC2または上位システムとして動作している他のデータ活用ユニットによってメモリ42aに書き込まれうる。収集部52cとデータ処理部73とは基本的に非同期で動作できることが望ましい。これを実現するためにバッファが設けられてもよい。
【0032】
収集部52cは、収集設定39により指定されたデバイス値を拡張ユニット4bが収集して拡張ユニット4aの第三バッファ37cに転送するよう拡張ユニット4bを設定してもよい。第二バッファ37bおよび第三バッファ37cを設けることで、データ処理部73の処理負荷が変動しても、データを取りこぼさず収集できるようになる。収集部52cは、収集設定39に含まれている拡張ユニット4bの収集設定36b(
図7)を拡張ユニット4bのメモリ42bに書き込んでもよい。なお、これらの設定機能は設定部71によって実現されてもよい。設定部71は、PC2aまたはPC2bから収集設定39、処理設定61、表示設定62を受信してメモリ42aに書き込む。処理設定61は、データ処理部73により収集データに対して実行されるデータ処理を定義する情報とフロー(プログラム)を含む。表示設定62は、Webサーバ70を通じてWebブラウザ18にデータ処理結果を提供するダッシュボードのテンプレート(HTMLデータ、CSS、JavaScript(登録商標)のコードなど)を含む。生成部74は、ダッシュボードの表示部品を定義する表示設定62にしたがって、ダッシュボードのテンプレートにデータ処理結果を代入することで、ダッシュボードの表示データを作成する。表示データは、たとえば、HTMLデータや画像データ、CSS(カスケーディングスタイルシート)、JavaScript(登録商標)のコードなどであってもよい。表示部品としては、たとえば、円グラフ部品、棒グラフ部品、折れ線グラフ部品、数値表示部品などが含まれる。Webサーバ70は、Webブラウザ18によりダッシュボードのWebページにアクセスがあると、ダッシュボードの表示データをWebブラウザ18に送信する。Webブラウザ18が表示データを受信してダッシュボードを表示する。
【0033】
なお、複数のデータ活用アプリケーションが提供されることがある。この場合、データ活用アプリケーションごとに必要とするデータと読み出しタイミングが異なることがある。この場合、データ活用アプリケーションごとにサブバッファがメモリ42aに確保されてもよい。収集部52cは、第二バッファ37bに格納されたデータレコードを読み出し、第一データ活用アプリケーション用のデータを第一サブバッファ38aに格納する。収集部52cは、第二バッファ37bに格納されたデータレコードを読み出し、第二データ活用アプリケーション用のデータを第二サブバッファ38bに格納する。なお、収集部52cは、第三バッファ37cに格納されたデータレコードを読み出し、第一データ活用アプリケーション用のデータを第一サブバッファ38aに格納してもよい。収集部52cは、第三バッファ37cに格納されたデータレコードを読み出し、第二データ活用アプリケーション用のデータを第二サブバッファ38bに格納してもよい。データ処理部73は、第一データ活用アプリケーションにしたがってデータを第一サブバッファ38aから読み出してデータ処理を実行し、処理結果を生成する。データ処理部73は、第二データ活用アプリケーションにしたがってデータを第二サブバッファ38bから読み出してデータ処理を実行し、処理結果を生成する。解凍エンジン75は、基本ユニット3の圧縮エンジン55aおよび拡張ユニット4bの圧縮エンジン55bと対を成す機能である。解凍エンジン75は、基本ユニット3により圧縮されて転送されてきたデータを解凍して第二バッファ37bに格納する。解凍エンジン75は、拡張ユニット4bにより圧縮されて転送されてきたデータを解凍して第三バッファ37cに格納する。これにより拡張バス90の通信トラフィックの混雑が緩和されるようになろう。解凍エンジン75はASICまたはFPGAなどにより実現されてもよい。このように基本ユニット3および拡張ユニット4a、4bとの間のデータの伝送は拡張バス90を介して実行される。
【0034】
データ活用アプリケーションごとに必要となるデータが複数である場合がある。その場合、各スキャンで収集されたデータの塊をバッファに維持したままサブバッファに必要な複数のデータを格納することもある。さらに、サブバッファにデータを分配する場合にも、各レコードにタイムスタンプ等が付与されもよい。
図25が示すように、第二バッファ37b(第三バッファ37cであってもよい)は、収集されたデータの塊を保持している。一つのレコードはスキャン番号と、タイマーの値(タイムスタンプ)と、収集されたデータを含む。この例で、収集されたデータは、リレーRL1~RL3、デバイスDev1、Dev2を含む。第一データ活用アプリケーション2501は、収集されたデータのうち、リレーRL1~RL3を必要とする。したがって、スキャン番号、タイマーの値、リレーRL1~RL3が第二バッファ37bから読み出されて、第一サブバッファ38aに格納される。第一データ活用アプリケーション2501は、第一サブバッファ38aからスキャン番号、タイマーの値、リレーRL1~RL3を読み出して表示画面(ソースデータ)を作成する。第二データ活用アプリケーション2502は、収集されたデータのうち、リレーRL3、デバイスDev1、Dev2を必要とする。したがって、スキャン番号、タイマーの値、リレーRL3、デバイスDev1、Dev2が第二バッファ37bから読み出されて、第二サブバッファ38bに格納される。第二データ活用アプリケーション2502は、第二サブバッファ38bからスキャン番号、タイマーの値、リレーRL3、デバイスDev1、Dev2を読み出して表示画面(ソースデータ)を作成する。このようにサブバッファを活用することで、元のデータを変更することなくバッファ内に維持することが可能となる。バッファ内に保持された元のデータは他の目的で利用可能となる。
【0035】
受け渡しバッファ40は上位システムと下位システムとの間で収集されたデータを転送する際に利用される。受け渡しバッファ40は上位システムと下位システムとのうちの少なくとも一方に設けられていればよい。たとえば、下位システムとして機能するPLC1bのデータ活用ユニットは、PLC1b内で収集した時系列データを受け渡しバッファ40に格納する。上位システムとして機能するPLC1aのデータ活用ユニットは、下位システムの受け渡しバッファ40からPLC1bに関する時系列データを取得する。PLC1aと比較してPLC1bが高速で動作している場合、PLC1bにおいて非常に短い間だけONとなるビットデバイスのデバイス値を取得できない可能性がある。そこで、受け渡しバッファ40を設けることで、時系列データの取得漏れが生じにくくなる。また、このバッファ配置は、統計処理などのデータ処理を下位システムで実行し、処理結果を上位システムに転送するケースでも、有利であろう。下位システムは、処理結果を受け渡しバッファ40に格納する。上位システムは、定期的に受け渡しバッファ40を確認する。上位システムは、処理結果が受け渡しバッファ40に格納されていれば、処理結果を読み出す。この場合、受け渡しバッファ40としてはFIFOタイプが向いていよう。
【0036】
受け渡しバッファ40がPLC1aのデータ活用ユニットに設けられてもよい。下位システムとして機能するPLC1bのデータ活用ユニットは、PLC1b内で収集した時系列データを、上位システムであるPLC1aのデータ活用ユニットの受け渡しバッファ40に格納する。
【0037】
●データ活用に関連する拡張ユニット4bの機能
図7は拡張ユニット4bのCPU41bによって実現される機能を説明する図である。
【0038】
実行エンジン51bは拡張ユニット4bの基本機能(モーションユニットであればモーションフローの実行など)を実行する。収集部52bは、収集設定36により指定されたデータを、収集設定36により指定されたタイミングでデバイス部34bから収集して第四バッファ37dに格納する。転送部53bは、収集設定36により指定されたタイミング、または、拡張ユニット4aにより転送要求が受信されたタイミングで、第四バッファ37dに格納されているデータレコードを読み出して、拡張バス90を介して、拡張ユニット4aの第三バッファ37cに転送する。なお、監視部54により監視される拡張バス90の通信トラフィックが少ないタイミングに、転送部53bがデータレコードの転送を実行してもよい。圧縮エンジン55bは、収集設定36にしたがってデータレコードを圧縮する。つまり、転送部53bは、圧縮エンジン55bにより情報圧縮されたデータレコードを拡張ユニット4aに転送してもよい。圧縮エンジン55bは、CPU41bにより実現されてもよいが、高速処理の観点やCPU41bの処理負荷の軽減の観点から、ASICまたはFPGAにより実現されてもよい。
【0039】
●データレコードの例
図8は収集部52aによって第一バッファ37aに書き込まれるデータレコード91を示している。複数のデータレコード91は時系列データの一例である。この例で、収集部52aは一スキャン周期ごとに、Dev0、Dev1、Dev10というデバイス名のデバイス値をデバイス部34aから収集し、収集カウントおよびタイマーから取得された時刻情報を付加して一つのデータレコードを作成し、第一バッファ37aに格納する。なお、収集対象は、拡張ユニット4bに割り当てられたバッファメモリまたはデバイスに格納されたデータであってもよい。この例で第一バッファ37aはFIFO(先入先出)タイプのバッファである。収集カウントは、一つのデータレコードを収集するたびに1ずつカウントアップされるカウンタのカウント値である。収集カウントはシーケンシャルに付与される番号であるため、データレコードの抜けや圧縮を検出することに役立つ。
【0040】
タイムスタンプなどの時刻情報は、たとえば、基本ユニット3で取得されたデータと、拡張ユニット4bで取得されたデータとを対比可能にダッシュボードに表示する際に役立つ。一般に、基本ユニット3における収集タイミングと拡張ユニット4bにおける収集タイミングとは一致しない。そのため、基本ユニット3の動作と拡張ユニット4bの動作とを比較するためには、基本ユニット3のデータと、拡張ユニット4bのデータとを紐付けるための情報が必要となる。一般に、基本ユニット3は拡張ユニット4a、4bはユニット間同期などによって時刻情報を同期できる。したがって、基本ユニット3と拡張ユニット4bはそれぞれデータレコードを収集したときの時刻情報をデータレコードに付与することで、データ処理部73は、異なるユニットで取得された複数のデータレコードを時間軸上で整列させることができる。
【0041】
●転送のタイミング
図9はデータレコードの転送タイミングを説明する図である。
図9が示すようにPLC1は、入出力のリフレッシュ、ユーザプログラムの実行およびエンド処理を繰り返し実行する。スキャン周期の伸びを低減するために、転送処理は、入出力のリフレッシュの期間を避けて実行される。同様に、スキャン周期の伸びを低減するために、転送処理は、UREADおよびUWRITの実行期間を避けて実行される。UREADは拡張ユニット4に割り当てられているバッファメモリからデータを読み出す命令であり、ユーザプログラム中に記述される。そのため、基本ユニット3は、ユーザプログラムの実行期間中に、UREADにしたがって拡張ユニット4にアクセスしてバッファメモリからデータを取得する。UWRITは、拡張ユニット4に割り当てられているバッファメモリにデータを書き込む命令であり、ユーザプログラム中に記述される。基本ユニット3は、ユーザプログラムの実行期間中に、UWRITにしたがって拡張ユニット4にアクセスしてバッファメモリにデータを書き込む。
【0042】
図9が示すように、入出力のリフレッシュ、UREADおよびUWRITを除いた残りの転送可能期間において、転送処理は、拡張バス90で実行される。たとえば、収集設定36aによって5個のデータレコードずつ転送処理を実行することが設定されていたと仮定する。この場合、転送部53aは、第一バッファ37aに5個のデータレコードの蓄積が完了した後であって、最初の転送可能期間または拡張ユニット4aによって転送要求を受信したタイミングで、転送処理を実行する。
【0043】
●収集設定の変更
データの収集は、たとえば、工場の稼働期間において常時実行されてもよい。この場合、午前中に使用されていた収集設定と午後に使用される収集設定とが異なることがある。この場合、複数のデータレコードのうちどのデータレコードが第一の収集設定に基づき取得され、どのデータレコードが第二の収集設定に基づき取得されたかを簡単に識別できれば便利であろう。
【0044】
図10は収集設定の途中変更に対応可能なデータレコード91のフォーマットを示している。この例では、複数の収集設定を区別するための識別情報がデータレコード91に追加されている。設定識別情報"1"は第一の収集設定に対応している。第一の収集設定において収集対象のデバイスはDev1とDev10である。設定識別情報"2"は第二の収集設定に対応している。第一に収集設定において収集対象のデバイスはDev1、Dev10、Dev11である。このようなフォーマットを採用することで、データ処理部73は、収集設定ごとにデータ処理対象を分けて、データ処理を実行することが可能となる。たとえば、設定識別情報"1"は、第一のデータ処理設定に対応し、設定識別情報"2"は、第二のデータ処理設定に対応していてもよい。データ処理部73は、設定識別情報に対応したデータ処理設定を処理設定61から取得し、取得したデータ処理設定にしたがってデータレコードにデータ処理を施してもよい。
【0045】
なお、データレコード91は受け渡しバッファ40に格納される際にCPU41aによってシステムIDが付与されてもよい。システムIDは、PLC1a~1cを識別するための識別情報である。
【0046】
●情報圧縮
図11はデータレコードの情報圧縮を説明する図である。データレコード群91aは情報圧縮前のデータレコードを示している。ここでは収集対象として四つのリレーデバイスRL1,RL2,RL3,RL4が指定されている。また、収集カウントとしてスキャン番号が採用されている。カウンタは、タイマーなどにより取得される時刻情報(例:あるリレーがONになってからOFFになるまでの時間間隔を示す数値)であってもよい。データレコード群91aにおいてスキャン番号"1"のデータレコードと、スキャン番号"2"のデータレコードとの間ではリレーデバイスの変化点が存在しない。つまり、スキャン番号"2"のデータレコードは圧縮(廃棄または削除)可能である。しかし、スキャン番号"3"のデータレコードのリレーデバイスRL1とスキャン番号"1"のデータレコードのリレーデバイスRL1とが異なっている。このように、スキャン番号"3"は変化点を有しているため、スキャン番号"3"のデータレコードは圧縮されない。スキャン番号"3"のデータレコードと、スキャン番号"4"のデータレコードとの間ではリレーデバイスの変化点が存在しないため、スキャン番号"4"のデータレコードは圧縮可能である。同様に、スキャン番号"5"のデータレコードと、スキャン番号"6"のデータレコードとの間ではリレーデバイスの変化点が存在しないため、スキャン番号"6"のデータレコードは圧縮可能である。このような変化点に着目した情報圧縮を実行することで、圧縮されたデータレコード群91bが実現される。圧縮されたデータレコード群91bを構成する各データレコードは変化点を有している。
【0047】
●ダッシュボードの一例
図12はWebブラウザ18のUI130を示している。UI130には、URL入力部131と、ダッシュボードの表示領域105とが含まれている。URL入力部131には、ダッシュボードに割り当てられたURLが入力されている。表示領域105には、データ処理部73によって収集対象データから求められたデータ処理結果が示されている。この例では、リレーデバイスRL1、RL2の波形が含まれている。データレコードはスキャン周期ごとに収集されるため、たとえば、一日にわたりデータ収集を継続すると、多数のデータレコードが収集される。データ処理部73は、リレーデバイスRL1の立ち上がりを基準としてリレーデバイスRL1について取得された複数の波形を重ねて表示している。この例では、リレーデバイスRL1の立下りのタイミングにずれが生じている。たとえば、データ処理部73は、複数の波形の平均値を演算し、平均値に相当する波形を太い線で表示してもよい。立下りのずれについて合格範囲dX1が存在してもよい。データ処理部73は、各立下りのタイミングが合格範囲dX1に含まれていれば、合格と判定してもよい。データ処理部73は、リレーデバイスRL2についても同様の処理を実行してもよい。ただし、リレーデバイスRL2について立ち上がりのずれが合格範囲dX2に含まれていないため、データ処理部73は、不合格と判定してもよい。
【0048】
このように不合格が発生すると、CPU41aは、所定のメールアドレスに対してエラー報告メールを送信してもよい。エラー報告メールには、ダッシュボードのURLを含むリンクが含まれていてもよい。エラー報告メールの受信者はこのリンクをクリックすることで、Webブラウザ18を起動してダッシュボードを表示して波形を確認することで、エラーの原因を解消してもよい。
【0049】
なお、拡張ユニット4bとしてモーションユニットがある。モーションユニットは、基本ユニット3によって指令値にしたがって、産業機械を動作させ、産業機械の動作結果を保持している。指令値は、たとえば、アーム型ロボットのアームの座標であってもよい。動作結果(現在値)は、センサなどによって取得された実際のアームの座標であってもよい。拡張ユニット4aは、指令値とそれに対応する現在値とを時系列データとして拡張ユニット4bから取得し、指令値と現在値とのずれをダッシュボードに表示してもよい。データ処理部73は、指令値と現在値との差分を求め、時間の経過とともに差分がどのように変化しているかを示すグラフをダッシュボードに表示してもよい。このような波形をユーザが確認することで、発生したエラーの原因が消耗品の寿命に起因したものなのか、外部から加えられた突発的なイベントにあるのかを判断しやすくなろう。たとえば、消耗品の寿命の末期が近づくと徐々に波形の応答が遅れることがある。一方で、突発的なイベントが原因でエラーが発生した場合、イベントの発生時刻でのみ波形の変化が発生する。よって、ユーザは波形を観察することでエラー原因を発見し、その対策を施すことが可能となろう。
【0050】
<フローチャート>
●拡張ユニット4a
図13は拡張ユニット4aのCPU41aにより実行される収集処理を示すフローチャートである。CPU41aは、特定のリレーデバイスがONになると、以下の処理を実行する。
【0051】
S1でCPU41a(設定部71)は基本ユニット3と拡張ユニット4bを設定する。たとえば、CPU41aは基本ユニット3のための収集設定36aを基本ユニット3に転送する。基本ユニット3は、収集設定36aを記憶装置32に格納する。CPU41aは基本ユニット3のための収集設定36bを拡張ユニット4bに転送する。拡張ユニット4bは、収集設定36bをメモリ42bに格納する。
【0052】
S2でCPU41a(データ処理部73または収集部52c)は第二バッファ37bまたは第三バッファ37c(第一サブバッファ38aまたは第二サブバッファ38b)に所定量の収集データが格納されているかどうかを判定する。所定量は処理設定61により定義されている。ここでは、処理設定61により指定されたバッファが確認されれば十分であり、常に、第二バッファ37bと第三バッファ37cとの両方が確認対象となるわけではない。CPU41は、バッファに所定量のデータが格納されるまで待機する。バッファに所定量のデータが格納されると、CPU41aはS3に進む。
【0053】
S3でCPU41a(データ処理部73)はバッファから読み出した所定量のデータに対してデータ処理を実行して、データ処理結果を求める。データ処理の内容は処理設定61により定義されている。データ処理結果はメモリ42aに保持される。
【0054】
S4でCPU41a(生成部74)はPC2bのWebブラウザ18からダッシュボードの表示要求(Webアクセス)があったかどうかを判定する。表示要求が無ければ、CPU41aはS2に進み、データの収集とデータ処理とを継続する。表示要求があれば、CPU41aはS5に進む。
【0055】
S5でCPU41a(生成部74)は表示要求に対応するダッシュボードの表示データを作成する。たとえば、CPU41aは、メモリ42aに格納されているデータ処理結果をダッシュボードのテンプレートに代入して表示データを作成する。
【0056】
S6でCPU41a(Webサーバ70)は表示データをPC2bのWebブラウザ18に送信する。これにより、PC2bのWebブラウザ18はダッシュボードを表示できるようになる。
【0057】
●基本ユニット3
図14は基本ユニット3のCPU31により実行される収集処理を示すフローチャートである。CPU31は、特定のリレーデバイスがONになると、以下の処理を実行する。
【0058】
S11でCPU31(収集部52a)は収集設定36aにより指定された収集タイミング(例:1スキャン周期ごと、トリガ信号が入力されるごと、所定周期ごと)が到来したかどうかを判定する。収集タイミングが到来すると、CPU31はS12に進む。
【0059】
S12でCPU31(収集部52a)は、収集設定36aにより指定された収集対象データをデバイス部34aから収集して第一バッファ37aに格納する。
【0060】
S13でCPU31(転送部53a)は、収集設定36aにより指定された転送条件が満たされたかどうかを判定する。転送条件は、たとえば、第一バッファ37aに蓄積されているデータレコードの数であってもよい。転送条件が満たされていなければ、CPU31は、S11に戻り、データの収集を継続する。転送条件が満たされていれば、CPU31はS14に進む。
【0061】
S14でCPU31(監視部54a)は、拡張バス90の通信トラフィックが少ないかどうかを判定する。通信トラフィックが多ければ、CPU31はS11に戻り、データの収集を継続する。通信トラフィックが少なければ、CPU31はS15に進む。
【0062】
S15でCPU31(転送部53a)は第一バッファ37aから所定量のデータレコードを読み出して第二バッファ37bに転送する。所定量も収集設定36aにより定義されている。
【0063】
●拡張ユニット4b
図15は拡張ユニット4bのCPU41bにより実行される収集処理を示すフローチャートである。CPU41bは、特定のリレーデバイスがONになると、以下の処理を実行する。
【0064】
S21でCPU41b(収集部52b)は収集設定36bにより指定された収集タイミング(例:トリガ信号が入力されるごと、所定周期ごと)が到来したかどうかを判定する。収集タイミングが到来すると、CPU41bはS22に進む。
【0065】
S22でCPU41b(収集部52b)は、収集設定36aにより指定された収集対象データをデバイス部34aから収集して第四バッファ37dに格納する。
【0066】
S23でCPU41b(転送部53b)は、収集設定36bにより指定された転送条件が満たされたかどうかを判定する。転送条件は、たとえば、第四バッファ37dに蓄積されているデータレコードの数であってもよい。転送条件が満たされていなければ、CPU41bは、S21に戻り、データの収集を継続する。転送条件が満たされていれば、CPU41bはS24に進む。
【0067】
S24でCPU41b(監視部54b)は、拡張バス90の通信トラフィックが少ないかどうかを判定する。通信トラフィックが多ければ、CPU41bはS21に戻り、データの収集を継続する。通信トラフィックが少なければ、CPU41bはS25に進む。
【0068】
S25でCPU41b(転送部53b)は第四バッファ37dから所定量のデータレコードを読み出して第三バッファ37cに転送する。所定量も収集設定36bにより定義されている。
【0069】
<上位システムによる下位システムからのデータ収集と活用>
すでに説明されたように、データ活用ユニットは上位モードと下位モードとを有していてもよい。ここでは、PLC1aが上位モードで動作する上位システムとして機能する。PLC1b、1cが下位モードで動作する下位システムとして機能する。PC2aまたはPLC1aの拡張ユニット4aは、PLC1b、1cのための収集設定39を作成する。
【0070】
●収集設定の作成
図16はPC2aのCPU11aまたはPLC1aの拡張ユニット4aのCPU41aによって実行される設定方法を示している。ここではCPU41aによって設定方法が実行されるが、CPU11aによって実行されてもよい。PC2bのWebブラウザを通じてユーザによる指示がCPU41aに入力される。CPU41aのWebサーバ70は、収集設定39を作成するために役立つWebページを提供するとともに、ユーザ入力を受け付ける。
【0071】
S31でCPU41a(設定部71)はPLC1a~1cの変数情報19a~19cを取得する。たとえば、CPU41aは、
図17に示されるような設定UI1700をPC2bの表示部7aなどに表示する。設定UI1700は、システムID、ネットワークアドレスおよび変数情報のファイル名などを含む。システムIDは、PLC1a~1cを識別するための識別情報である。ネットワークアドレスは、PLC1b、1cの拡張ユニット4aに付与されているIPアドレスなどである。変数情報は、PLC1b、1cにおいて変数情報19b、19cを保持しているファイルのファイル名である。CPU41aは、設定UI1700を通じてシステムID、ネットワークアドレスおよび変数情報のファイル名を受け付けて、接続設定情報を作成し、メモリ42aに格納する。CPU41aは、接続設定情報に含まれているネットワークアドレスにしたがって下位システムであるPLC1bに接続し、変数情報19bを読み出す。CPU41aは、接続設定情報に含まれているネットワークアドレスにしたがって下位システムであるPLC1cに接続し、変数情報19cを読み出す。CPU11aが設定を実行する場合、CPU11aは記憶装置12aから変数情報19a~19cを読み出す。
【0072】
図18は、変数情報19を作成するための変数編集UI1800である。PC2aのCPU11aはプロジェクトデータ15からグローバル変数とローカル変数を抽出し、抽出された変数のリストを含む変数情報19を作成する。変数情報19は、たとえば、変数名、変数のデータ型、変数に割り付けられたデバイス名(割り付けデバイス)、初期値などの情報を含む。ユーザは、操作部8aを操作することで変数情報19を編集する。変数情報19は、プロジェクトデータ15の一部を構成してもよいし、プロジェクトデータ15から独立していてもよい。いずれにしても、変数情報19は、PC2aからPLC1に転送される。これにより、上位システムのCPU41aは下位システムの変数情報19を下位システムから取得できるようになる。変数情報19には各PLCのシステムIDも含まれている。
【0073】
S32でCPU41a(設定部71、Webサーバ70)は、収集対象の設定UIをPC2bの表示部7aに表示する。CPU41a(Webサーバ70)は設定UIに相当するWebページをPC2bに送信する。一方、CPU11aが設定を実行する場合、CPU11aは表示部7aに設定UIを表示する。
【0074】
S33でCPU41a(設定部71、Webサーバ70)は、収集対象の設定UIを通じて収集対象などの指定を受け付ける。CPU41a(Webサーバ70)はHTTP通信によりユーザ入力を受け付ける。一方、CPU11aが設定を実行する場合、CPU11aは操作部8aを通じてユーザ入力を受け付ける。
【0075】
S34でCPU41a(設定部71)は、収集対象などの指定に基づき収集設定39を作成する。一方、CPU11aが設定を実行する場合、CPU11aはユーザ入力にしたがって収集設定39を作成する。
【0076】
S35でCPU41a(設定部71)は収集設定39を下位システム(例:PLC1b、PLC1c)に転送する。一方、CPU11aが設定を実行する場合、CPU11aは収集設定39をPLC1a~1cに転送する。
【0077】
図19は収集対象の設定UI1900を示している。設定UI1900は、設定対象のシステムを選択するためのプルダウンメニュー1901と、収集対象指定部1902とを有している。CPU41aは、変数情報19からシステムIDを取得して、プルダウンメニュー1901にシステムIDを列挙する。この例では、システムIDとして"PLC1b"が選択されているが、"PLC1c"または"PLC1a"が選択されてもよい。CPU41aは、プルダウンメニュー1901により指定されたシステムIDに関連付けられている変数情報19bをメモリ42aから読み出して、収集対象指定部1902に反映させる。収集対象指定部1902は、収集対象となる変数またはデバイスを選択するためのプルダウンメニュー1903を有している。CPU41aは、PLC1bに関連付けられている変数情報19bに含まれている変数名やデバイス名をプルダウンメニュー1903に列挙する。CPU41aは変数やデバイスのデータ型の指定を受け付けてもよい。格納先指定部1904は、収集対象データを格納するバッファの名称(例:PLC1bの受け渡しバッファ40またはPLC1aの受け渡しバッファ40)の指定を受け付ける。CPU41aはバッファのタイプ(例:FIFO、リングなど)の指定を受け付けてもよい。CPU41aは設定UI1900を通じて受け付けた指定情報を用いて収集設定39を作成する。
【0078】
●下位システムの収集動作
図20は下位システムにおける収集動作を示すフローチャートである。なお、すでに説明された処理と同一または類似した処理には同一の参照符号が付与されており、簡潔に説明される。なお、PLC1a内でのデータ収集に関しては、PLC1aは
図13に示されたフローチャートにしたがってデータを収集する。
【0079】
S1で下位システムのCPU41a(設定部71)は、上位システムまたはPC2aによって作成された収集設定39にしがって下位システムの基本ユニット3と拡張ユニット4を設定する。
【0080】
S2でCPU41a(データ処理部73または収集部52c)は第二バッファ37bまたは第三バッファ37c(第一サブバッファ38aまたは第二サブバッファ38b)に所定量の収集データが格納されているかどうかを判定する。所定量は処理設定61により定義されている。ここでは、処理設定61により指定されたバッファが確認されれば十分であり、常に、第二バッファ37bと第三バッファ37cとの両方が確認対象となるわけではない。CPU41は、バッファに所定量のデータが格納されるまで待機する。バッファに所定量のデータが格納されると、CPU41aはS3に進む。
【0081】
S3でCPU41a(データ処理部73)はバッファから読み出した所定量のデータに対してデータ処理を実行して、データ処理結果を求める。データ処理の内容は処理設定61により定義されている。データ処理結果はメモリ42aに保持される。
図20では、S3の次にS9が設けられている。
【0082】
S9でCPU41a(データ処理部73または収集部52c)は収集設定39により指定されたデータ(例:PLC1において収集されたデータおよびデータ処理結果)を、収集設定39により指定された受け渡しバッファ40に格納する。受け渡しバッファ40は、下位システムのデータ活用ユニット(拡張ユニット4a)に設けられてもよいし、上位システムのデータ活用ユニット(拡張ユニット4a)に設けられてもよい。受け渡しバッファ40の位置は、収集設定39により指定されている。
【0083】
●上位システムの収集動作
図21は下位システムにおける収集動作を示すフローチャートである。なお、すでに説明された処理と同一または類似した処理には同一の参照符号が付与されており、簡潔に説明される。
【0084】
S41で上位システムのCPU41a(収集部52c)は、上位システムの収集設定39に含まれている読み出し条件が満たされたかどうかを判定する。読み出し条件は、定期的なタイミングであってもよいし、受け渡しバッファ40に所定量のデータが格納されたことであってもよい。読み出し条件が満たされると、CPU41aはS42に進む。
【0085】
S42でCPU41a(データ処理部73または収集部52c)は受け渡しバッファ40からデータを読み出す。上位システムのCPU41aはPLC1a~1cから取得されたデータについてS3~S6を実行する。データの数は増えるものの、基本的な処理の流れは同じである。
【0086】
CPU41aは、データ処理を実行する前に、PLC1a内で収集された時系列データと、PLC1b、1c内でそれぞれ収集された時系列データとを、タイムスタンプを用いて、統合してもよい。これにより、同一時刻に、異なる複数のPLC1a~1cで取得されたデータを対比しやすくなるであろう。
【0087】
●変数情報の利用
収集された時系列データやその分析結果を表示するダッシュボードは複数の表示部品を有している。その一方で、PC2は変数情報19a~19cを有していてもよい。よって、PC2は変数情報19a~19cを利用して、ダッシュボードを構成する表示部品の設定を容易化してもよい。
【0088】
図22はダッシュボード120の一例を示している。
図22において凡例部121は、解析対象のデータや分析結果に割り当てられた色を示している。グラフ部122は、ロス解析などのデータ処理結果を表示する一つ以上のグラフを含む。グラフの種類はダッシュボードごとに予め用意されていてもよい。解析結果表示部123は、ロス解析などのデータ処理結果を表示する。解析結果表示部123に表示される表示対象もダッシュボードごとに予め用意されていてもよい。現在状態表示部124は、PLC1の現在状態を示す。現在状態表示部124は、PLC1a、1b、1cのそれぞれについて個別に用意されていてもよい。PLC選択部125は、PLC1a、1b、1cのうちダッシュボードにデータ処理結果を表示される対象となるPLCを選択するためのプルダウンメニューである。この例では、PLC選択部125においてPLC1bが選択されているため、ダッシュボード120は、PLC1bについてのデータ処理結果を表示する。PLC選択部125においてPLC1cが選択されると、CPU41aは、PLC1cについてのデータ処理結果をダッシュボード120が表示するよう、表示データを切り替える。
【0089】
CPU41aやPC2のCPU11aはダッシュボード120を設定してもよい。CPU11aはダッシュボード120を設定する際に、ダッシュボード120のプレビューを表示部7aに表示してもよい。ここで、CPU11aは、ポインタ101によりいずれかの表示部品が右クリックされたことを検知すると、表示部品の設定UIを表示してもよい。
【0090】
図23は設定UI2300を示す図である。設定UI2300は、プレビューにおいて右クリックされた表示部品を設定するためのUIである。参照先指定部2301は、表示部品に表示される変数やデバイス値の指定を受け付ける。CPU11aは、参照先指定部2301に"PLC1b"が入力されると、変数情報19bを変数等の検索対象に設定する。操作部8aを通じて"PLC1b"に続いて"."と"E"が入力されると、CPU11aは、"E"ではじまる変数を変数情報19bから抽出し、抽出された変数の名称"ErrorNo"を参照先指定部2301に入力する。つまり、ユーザは、変数名のすべてを入力することなく、変数名を指定することが可能となる。このように、変数情報19を利用することで、ダッシュボードの設定が容易化されてもよい。
【0091】
<まとめ>
[観点1]
図1が示すように、本実施形態によれば、複数のデータ活用ユニット(例:PLC1a~1cの拡張ユニット4a)を有するデータ活用システムが提供される。複数のデータ活用ユニットのうち上位ユニット(例:PLC1aの拡張ユニット4a)において、CPU41aや設定部71は、複数のデータ活用ユニットのうち下位ユニット(例:PLC1b、1cの拡張ユニット4a)に対して収集対象となるデータを指定する指定情報(例:収集設定39)を設定する設定手段として機能する。CPU41aや収集部52cは、下位ユニットに蓄積された収集対象となるデータ(例:デバイス値、変数、分析結果など)を収集する収集手段として機能する。複数の収集対象となるデータは、時系列データを形成してもよい。データ処理部73や生成部74は、収集手段により収集されたデータまたは当該データに対して所定の分析処理を実行することで取得された分析結果を表示する表示データを作成する作成手段として機能する。下位ユニットは、プログラマブルロジックコントローラ(例:PLC1b、1c)を構成する拡張ユニットであってもよいが、他のユニットであってもよい。PLC1b、1cのCPU41aや収集部52cは指定情報にしたがって、下位ユニットに接続された基本ユニット3において取得されたデータを基本ユニット3から取得する取得手段として機能する。受け渡しバッファ40は、上位ユニットまたは下位ユニットに設けられ、取得手段により取得されたデータを下位ユニットから上位ユニットに受け渡すために当該データを蓄積するバッファの一例である。上位ユニットの収集手段(例:収集部52cまたはデータ処理部73)は、バッファから収集対象となるデータを読み出すように構成されている。このような受け渡しバッファ40を採用することで、時系列データを漏れなく収集することが可能となろう。また、上位ユニットと下位ユニットとが複雑なハンドシェイクを実行することなく、収集対象データを受け渡すことが可能となろう。
【0092】
[観点2]
図24(A)が示すように、下位ユニットが受け渡しバッファ40を有してもよい。下位ユニットは、下位システム内で収集したデータや下位システム内で取得されたデータ処理結果を受け渡しバッファ40b、40cに書き込んで行く。上位ユニットは、下位ユニットの受け渡しバッファ40b、40cからデータを収集する。上位ユニットの作成手段(例:データ処理部73)は、受け渡しバッファ40a、40bから収集された収集対象となるデータに対して所定の分析処理を実行する分析手段として機能する。なお、表示データは、上位ユニットにおいて実行された所定の分析処理の分析結果を含んでもよい。下位ユニットが受け渡しバッファ40を有しているため、下位ユニットが上位ユニットよりも高速に動作していても、データの収集漏れが発生しにくくなる。
【0093】
図24(B)が示すように、上位ユニットが受け渡しバッファ40aを有してもよい。下位ユニットは、下位システム内で収集したデータや下位システム内で取得されたデータ処理結果を、上位ユニットの受け渡しバッファ40aに書き込んで行く。上位ユニットは、上位ユニットの受け渡しバッファ40aからデータを読み出して、データ処理を実行する。この場合にも、データの収集漏れが発生しにくくなる。受け渡しバッファ40aは、PLC1bとPLC1cについてそれぞれ個別に設けられてもよい。PLC1bとPLC1cについて共通に一つの受け渡しバッファ40aが設けられると、PLC1bからのデータの書き込みと、PLC1bからのデータの書き込みとを上位ユニットが調停する必要がある。一方で、PLC1bとPLC1cについてそれぞれ個別に受け渡しバッファ40aが設けられると、このような調停が不要となろう。また、上位ユニットは、PLC1b用の受け渡しバッファ40aとPLC1c用の受け渡しバッファ40aを、第二バッファ37bおよび第三バッファ37bと同列に扱うことが可能となる。
【0094】
[観点3]
下位ユニットは、さらに、取得手段により取得されたデータに基づき収集対象となるデータを生成する生成手段(例:PLC1b、1cのCPU41a)を有してもよい。生成手段は、所定の分析処理を実行する分析手段(例:データ処理部73)を有してもよい。この場合、収集対象となるデータは所定の分析処理の分析結果を含むことが可能となる。また、表示データは、下位ユニットにおいて実行された所定の分析処理の分析結果を含むことが可能となる。このように下位ユニットにおいて分析処理を実行することで上位ユニットにおける演算負荷が軽減される。また、データの収集漏れが発生しにくくなると考えられる。
【0095】
[観点4]
設定手段(例:PLC1aの設定部71)は、下位ユニットにおいて実行されるユーザプログラムを含むプロジェクトデータ15を解析することで収集対象となるデータを特定し、特定されたデータの指定を含むように指定情報(例:収集設定39)を作成してもよい。これにより、指定情報を作成する際のユーザの負担が軽減されよう。
【0096】
[観点5]
設定手段(例:PLC1aの設定部71)は、プロジェクトデータ15を解析することで収集対象の候補となる変数を特定し、当該特定された変数のうちユーザにより指定された変数または当該変数を格納するデバイスを含むように指定情報を作成してもよい。これにより、指定情報を作成する際のユーザの負担が軽減されよう。また、デバイス値だけでなく、変数なども収集対象として指定可能となろう。
【0097】
[観点6]
取得手段(例:PLC1b、1cの収集部52c)は、収集対象となるデータに対して下位ユニットの識別情報(例:システムID)を付与して受け渡しバッファ40に格納してもよい。これにより上位ユニットは、複数の下位ユニットから収集した時系列データを区別しやすくなるであろう。
【0098】
[観点7]
上位ユニットはプログラマブルロジックコントローラとは異なるコンピュータであってもよい。
上位ユニットは、下位ユニットを含むプログラマブルロジックコントローラ(例:PLC1b、1c)とは異なる別のプログラマブルロジックコントローラ(例:PLC1a)における拡張ユニットであってもよい。この場合、PLC1aを顧客に納入するメーカーと、PLC1bを顧客に納入するメーカーと、PLC1cを顧客に納入するメーカーとはそれぞれ異なってもよいし、同じであってもよい。
【0099】
[観点8]
複数のPLC1a~1cがワーク(工場で製造される製品)の製造ラインを制御することがある。PLC1bは、ワークの製造ラインにおいて上流側に配置された第一産業機械(例:PLC1bのフィールドデバイス10)を制御する第一プログラマブルロジックコントローラとして機能する。また、PLC1bの拡張ユニット4は、PLC1bに搭載された第一下位ユニットとして機能する。PLC1cは、製造ラインにおいて下流側に配置された第二産業機械(例:PLC1cのフィールドデバイス10)を制御する第二プログラマブルロジックコントローラとして機能する。PLC1bc拡張ユニット4は、PLC1cに搭載された第二下位ユニットとして機能する。この場合、第一下位ユニットと第二下位ユニットとからそれぞれ収集される収集対象となるデータには、各ワークを識別するためのワーク識別情報が含まれていてもよい。ワークにはバーコードやQRコード(登録商標)などのワーク識別情報が貼付または刻印されることがある。フィールドデバイス10の一つはコードリーダであってもよい。この場合、受け渡しバッファ40に格納される時系列データにはコードリーダによって取得されたワーク識別情報が含まれることになる。上位ユニットの作成手段(例:PLC1aのCPU41a)は、第一下位ユニットから収集されたデータと第二下位ユニットから収集されたデータとについてそれぞれのワーク識別情報を参照することで、各ワークごとにデータを統合してもよい。これにより、複数のPLCにまたがって取得されたデータに基づくワークごとの分析データが簡単に得られるようになろう。
【0100】
[観点9]
第一下位ユニット(例:PLC1bの拡張ユニット4)と第二下位ユニット(例:PLC1cの拡張ユニット4)とからそれぞれ収集される収集対象となるデータには、各データの収集時刻を示すタイムスタンプが含まれてもよい。つまり、PLC1b、1cのCPU41aは時系列データにこのようなタイムスタンプを付与して受け渡しバッファ40に格納してもよい。作成手段(例:PLC1aのCPU41a)は、第一下位ユニットから収集されたデータと第二下位ユニットから収集されたデータとについてそれぞれのタイムスタンプを参照することで、タイムスタンプが近いデータを統合してもよい。これは、時刻の近い時系列データを比較するのに役立つであろう。
【0101】
[観点10]
作成手段(例:PLC1aのCPU41a)は、第一下位ユニットから収集されたデータのタイムスタンプと第二下位ユニットから収集されたデータのタイムスタンプとのうち一方のデータのタイムスタンプを一定時間ずらした上で、当該タイムスタンプに基づきデータの統合を実行してもよい。
【0102】
[観点11]
図22や
図23を用いて説明されたように、CPU11a、41aや参照先指定部2301は、表示データを表示するダッシュボードの表示部品に対して、収集されたデータを指定する指定手段として機能してもよい。
図23に関して説明されたように、CPU11a、41aや参照先指定部2301は、ダッシュボードの表示部品に表示データを関連付ける際に、プロジェクトデータ15を解析することで取得された変数またはデバイスを表示データの候補として表示してもよい。これにより、表示部品に表示するデータの指定に関するユーザの負担が軽減されるであろう。
【0103】
発明は上記の実施形態に制限されるものではなく、発明の要旨の範囲内で、種々の変形・変更が可能である。
【手続補正書】
【提出日】2024-01-17
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
複数のデータ活用ユニットを有するデータ活用システムであって、
前記複数のデータ活用ユニットのうち上位ユニットは、
前記複数のデータ活用ユニットのうち下位ユニットに対して収集対象となるデータを指定する指定情報を設定する設定部と、
前記下位ユニットに蓄積された前記収集対象となるデータを収集する収集部と、
処理設定に従って、前記収集部により収集されたデータに対してデータ処理を実行するデータ処理部と、
前記データ処理部により前記データ処理を実行することで取得したデータ処理結果を表示するダッシュボードの表示データを送信するWEBサーバと、
を有し、
前記下位ユニットは、さらに、
前記指定情報にしたがって、前記下位ユニットに接続された基本ユニットにおいて取得されたデータを前記基本ユニットから取得する取得手段と、
前記上位ユニットまたは前記下位ユニットに設けられ、前記取得手段により取得された前記データを前記下位ユニットから前記上位ユニットに受け渡すために当該データを蓄積するバッファと、
を有し、
前記上位ユニットの前記収集部は、前記バッファから前記収集対象となるデータを読み出すように構成されていることを特徴とするデータ活用システム。
【請求項2】
前記上位ユニットの前記データ処理部は、前記バッファから収集された前記収集対象となるデータに対して前記データ処理として所定の分析処理を実行する分析手段を有し、
前記表示データは、前記上位ユニットにおいて実行された前記所定の分析処理の分析結果を含むことを特徴とする請求項1に記載のデータ活用システム。
【請求項3】
前記下位ユニットは、さらに、
前記取得手段により取得されたデータに基づき前記収集対象となるデータを生成する生成手段
を有し、
前記生成手段は、所定の分析処理を実行する分析手段を有し、
前記収集対象となるデータは前記所定の分析処理の分析結果を含み、
前記表示データは、前記下位ユニットにおいて実行された前記所定の分析処理の分析結果を含むことを特徴とする請求項1に記載のデータ活用システム。
【請求項4】
前記設定部は、前記下位ユニットにおいて実行されるユーザプログラムを含むプロジェクトデータを解析することで前記収集対象となるデータを特定し、前記特定されたデータの指定を含むように前記指定情報を作成するように構成されていることを特徴とする請求項1ないし3のいずれか一項に記載のデータ活用システム。
【請求項5】
前記設定部は、前記プロジェクトデータを解析することで収集対象の候補となる変数を特定し、当該特定された変数のうちユーザにより指定された変数または当該変数を格納するデバイスを含むように前記指定情報を作成するように構成されていることを特徴とする請求項4に記載のデータ活用システム。
【請求項6】
前記取得手段は、前記収集対象となるデータに対して前記下位ユニットの識別情報を付与して前記バッファに格納することを特徴とする請求項1ないし5のいずれか一項に記載のデータ活用システム。
【請求項7】
前記上位ユニットは、前記下位ユニットを含むプログラマブルロジックコントローラと
は異なる別のプログラマブルロジックコントローラにおける拡張ユニットであることを特徴とする請求項1ないし6のいずれか一項に記載のデータ活用システム。
【請求項8】
前記下位ユニットとして、
ワークの製造ラインにおいて上流側に配置された第一産業機械を制御する第一プログラマブルロジックコントローラに搭載された第一下位ユニットと、
前記製造ラインにおいて下流側に配置された第二産業機械を制御する第二プログラマブルロジックコントローラに搭載された第二下位ユニットと
を有し、
前記第一下位ユニットと前記第二下位ユニットとからそれぞれ収集される前記収集対象となるデータには、各ワークを識別するためのワーク識別情報が含まれており、
前記データ処理部は、前記第一下位ユニットから収集されたデータと前記第二下位ユニットから収集されたデータとについてそれぞれの前記ワーク識別情報を参照することで、各ワークごとにデータを統合するように構成されていることを特徴とする請求項1ないし7のいずれか一項に記載のデータ活用システム。
【請求項9】
前記下位ユニットとして、第一下位ユニットと第二下位ユニットとを有し、
前記第一下位ユニットと前記第二下位ユニットとからそれぞれ収集される前記収集対象となるデータには、各データの収集時刻を示すタイムスタンプが含まれており、
前記データ処理部は、前記第一下位ユニットから収集されたデータと前記第二下位ユニットから収集されたデータとについてそれぞれの前記タイムスタンプを参照することで、前記タイムスタンプが近いデータを統合するように構成されていることを特徴とする請求項1ないし7のいずれか一項に記載のデータ活用システム。
【請求項10】
前記データ処理部は、前記第一下位ユニットから収集されたデータのタイムスタンプと前記第二下位ユニットから収集されたデータのタイムスタンプとのうち一方のデータのタイムスタンプを一定時間ずらした上で、当該タイムスタンプに基づきデータの統合を実行することを特徴とする請求項9に記載のデータ活用システム。
【請求項11】
前記表示データを表示するダッシュボードの表示部品に前記収集されたデータを指定する指定手段をさらに有し、
前記指定手段は、前記ダッシュボードの表示部品に前記表示データを関連付ける際に、前記プロジェクトデータを解析することで取得された変数またはデバイスを前記表示データの候補として表示することを特徴とする請求項4または5に記載のデータ活用システム。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0007
【補正方法】変更
【補正の内容】
【0007】
本発明は、たとえば、
複数のデータ活用ユニットを有するデータ活用システムであって、
前記複数のデータ活用ユニットのうち上位ユニットは、
前記複数のデータ活用ユニットのうち下位ユニットに対して収集対象となるデータを指定する指定情報を設定する設定部と、
前記下位ユニットに蓄積された前記収集対象となるデータを収集する収集部と、
処理設定に従って、前記収集部により収集されたデータに対してデータ処理を実行するデータ処理部と、
前記データ処理部により前記データ処理を実行することで取得したデータ処理結果を表示するダッシュボードの表示データを送信するWEBサーバと、
を有し、
前記下位ユニットは、さらに、
前記指定情報にしたがって、前記下位ユニットに接続された基本ユニットにおいて取得されたデータを前記基本ユニットから取得する取得手段と、
前記上位ユニットまたは前記下位ユニットに設けられ、前記取得手段により取得された前記データを前記下位ユニットから前記上位ユニットに受け渡すために当該データを蓄積するバッファと、
を有し、
前記上位ユニットの前記収集部は、前記バッファから前記収集対象となるデータを読み出すように構成されていることを特徴とするデータ活用システムを提供する。