(57)【特許請求の範囲】
【請求項１】
制御装置により制御される産業装置の複数の変数のうち、公開可能であり、前記制御装置により周期的に取得される公開変数を設定する公開変数設定部と、
前記公開変数に基づいて、前記産業装置に関するデータを収集する収集部と、
前記データを記憶部に記録する記録部と、
を有するデータ収集システムであって、
前記制御装置は、前記産業装置から前記公開変数の値を取得して記憶部に記録し、当該公開変数の値に基づいて、前記産業装置を制御する制御部を有し、
前記データ収集システムは、前記制御装置の前記記憶部に記録された前記公開変数の値を、別の記憶部にコピーするコピー部を更に有し、
前記収集部は、前記別の記憶部にコピーされた前記公開変数の値に基づいて、前記データを収集する、
データ収集システム。
【請求項２】
前記制御部は、前記制御装置のＣＰＵにより実現され、
前記別の記憶部は、前記制御装置のＩｏＴ部により実現され、
前記記憶部は、前記ＩｏＴ部とは異なる、前記制御装置内のメモリにより実現される、
請求項１に記載のデータ収集システム。
【請求項３】
前記記憶部と前記別の記憶部の各々には、全ての前記公開変数の値が記録され、
前記ＩｏＴ部は、前記別の記憶部に記憶された前記全ての公開変数のうちの一部を、収集対象の公開変数として絞り込み、
前記収集部は、前記絞り込まれた一部の公開変数に基づいて、前記データを収集する、
請求項２に記載のデータ収集システム。
【請求項４】
前記コピー部は、前記記憶部に記録された前記公開変数の値を前記別の記憶部にコピーする処理を周期的に実行する、
請求項１〜３の何れかに記載のデータ収集システム。
【請求項５】
前記データ収集システムは、前記公開変数設定部を有する第１ユーザ端末を有し、
前記第１ユーザ端末の前記公開変数設定部は、前記公開変数のリストを設定し、
前記制御装置は、第２ユーザ端末に対し、前記第１ユーザ端末の前記公開変数設定部により設定された前記リストを送信し、
前記収集部は、前記リストのうち、前記第２ユーザ端末において指定された公開変数に基づいて、前記データを収集する、
請求項１〜４の何れかに記載のデータ収集システム。
【請求項６】
前記データ収集システムは、前記公開変数に基づいて、前記データに関する収集設定を行う収集設定部を更に有し、
前記収集部は、前記公開変数と前記収集設定とに基づいて、前記データを収集する、
請求項１〜５の何れかに記載のデータ収集システム。
【請求項７】
前記収集設定は、収集対象となる前記公開変数の種類を示し、
前記収集部は、前記収集設定が示す種類に基づいて、前記データを収集する、
請求項６に記載のデータ収集システム。
【請求項８】
前記収集設定は、前記データの収集頻度を示し、
前記収集部は、前記収集設定が示す収集頻度に基づいて、前記データを収集する、
請求項６又は７に記載のデータ収集システム。
【請求項９】
前記収集設定は、データ収集の開始条件を示し、
前記収集部は、前記収集設定が示す開始条件に基づいて、前記データの収集を開始する、
請求項６〜８の何れかに記載のデータ収集システム。
【請求項１０】
前記データ収集システムは、前記データに基づいて、前記制御装置に対し、前記産業装置に関する動作指令を送信する動作指令送信部、
を更に有する請求項１〜９の何れかに記載のデータ収集システム。
【請求項１１】
前記制御装置と前記産業装置との各々は、同期通信可能なネットワークに接続され、
前記収集部は、前記ネットワークとは異なるネットワークに基づいて、前記データを送信する、
請求項１〜１０の何れかに記載のデータ収集システム。
【請求項１２】
前記データ収集システムは、前記公開変数と、前記産業装置におけるレジスタと、の関係を示すレジスタ情報に基づいて、前記産業装置から前記公開変数の値を取得する取得部を更に有し、
前記収集部は、前記取得部により取得された前記公開変数の値に基づいて、前記データを収集する、
請求項１〜１１の何れかに記載のデータ収集システム。
【請求項１３】
前記公開変数設定部は、前記制御装置及び前記産業装置の少なくとも一方のユーザにより指定された前記公開変数を設定し、
前記収集部は、前記ユーザとは異なるユーザに対し、収集した前記データを送信し、
前記記録部は、前記異なるユーザに対応して送信された前記データを前記記憶部に記録する、
請求項１〜１２の何れかに記載のデータ収集システム。
【請求項１４】
制御装置により制御される産業装置の複数の変数のうち、公開可能であり、前記制御装置により周期的に取得される公開変数を設定し、
前記公開変数に基づいて、前記産業装置に関するデータを収集し、
前記データを記憶部に記録するデータ収集方法であって、
前記制御装置は、前記産業装置から前記公開変数の値を取得して記憶部に記録し、当該公開変数の値に基づいて、前記産業装置を制御する制御部を有し、
前記データ収集方法は、
前記制御装置の前記記憶部に記録された前記公開変数の値を、別の記憶部にコピーし、
前記別の記憶部にコピーされた前記公開変数の値に基づいて、前記データを収集する、
データ収集方法。
【請求項１５】
制御装置により制御される産業装置の複数の変数のうち、公開可能であり、前記制御装置により周期的に取得される公開変数に基づいて、前記産業装置に関するデータを収集する収集部、
としてコンピュータを機能させるためのプログラムであって、
前記制御装置は、前記産業装置から前記公開変数の値を取得して記憶部に記録し、当該公開変数の値に基づいて、前記産業装置を制御する制御部を有し、
前記プログラムは、前記制御装置の前記記憶部に記録された前記公開変数の値を、別の記憶部にコピーするコピー部として前記コンピュータを更に機能させ、
前記収集部は、前記別の記憶部にコピーされた前記公開変数の値に基づいて、前記データを収集する、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ収集システム、データ収集方法、及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、制御装置により制御される産業装置の動作に関するデータを収集し、収集したデータをクラウドサーバにアップロードし、解析者に対してデータの解析を依頼するシステムが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１５−０６８２１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、例えば、公開可能な公開変数に基づいて産業装置に関するデータを収集して記録することである。
【課題を解決するための手段】
【０００５】
本発明の一側面に係るデータ収集システムは、制御装置により制御される産業装置の複数の変数のうち、公開可能な公開変数を設定する公開変数設定部と、前記公開変数に基づいて、前記産業装置に関するデータを収集する収集部と、前記データを記憶部に記録する記録部と、を有する。
【０００６】
本発明の一側面に係るデータ収集方法は、制御装置により制御される産業装置の複数の変数のうち、公開可能な公開変数を設定し、前記公開変数に基づいて、前記産業装置に関するデータを収集し、前記データを記憶部に記録する。
【０００７】
本発明の一側面に係るプログラムは、制御装置により制御される産業装置の複数の変数のうち、公開可能な公開変数に基づいて、前記産業装置に関するデータを収集する収集部、としてコンピュータを機能させる。
【０００８】
本発明の一側面に係るデータ収集システムは、前記公開変数に基づいて、前記データに関する収集設定を行う収集設定部を更に有し、前記収集部は、前記公開変数と前記収集設定とに基づいて、前記データを収集する。
【０００９】
本発明の一側面に係るデータ収集システムは、前記収集設定は、収集対象となる前記公開変数の種類を示し、前記収集部は、前記収集設定が示す種類に基づいて、前記データを収集する。
【００１０】
本発明の一側面に係るデータ収集システムは、前記収集設定は、前記データの収集頻度を示し、前記収集部は、前記収集設定が示す収集頻度に基づいて、前記データを収集する。
【００１１】
本発明の一側面に係るデータ収集システムは、前記収集設定は、データ収集の開始条件を示し、前記収集部は、前記収集設定が示す開始条件に基づいて、前記データの収集を開始する。
【００１２】
本発明の一側面に係るデータ収集システムは、前記制御装置は、前記産業装置から前記公開変数の値を取得して記憶部に記録し、当該公開変数の値に基づいて、前記産業装置を制御する制御部を有し、前記収集部は、前記制御装置の前記記憶部に記録された前記公開変数の値に基づいて、前記データを収集する。
【００１３】
本発明の一側面に係るデータ収集システムは、前記データ収集システムは、前記制御装置の前記記憶部に記録された前記公開変数の値を、別の記憶部にコピーするコピー部を更に有し、前記収集部は、前記別の記憶部にコピーされた前記公開変数の値に基づいて、前記データを収集する。
【００１４】
本発明の一側面に係るデータ収集システムは、前記データ収集システムは、前記データに基づいて、前記制御装置に対し、前記産業装置に関する動作指令を送信する動作指令送信部、を更に有する。
【００１５】
本発明の一側面に係るデータ収集システムは、前記制御装置と前記産業装置との各々は、同期通信可能なネットワークに接続され、前記収集部は、前記ネットワークとは異なるネットワークに基づいて、前記データを送信する。
【００１６】
本発明の一側面に係るデータ収集システムは、前記データ収集システムは、前記公開変数と、前記産業装置におけるレジスタと、の関係を示すレジスタ情報に基づいて、前記産業装置から前記公開変数の値を取得する取得部を更に有し、前記収集部は、前記取得部により取得された前記公開変数の値に基づいて、前記データを収集する。
【００１７】
本発明の一側面に係るデータ収集システムは、前記公開変数設定部は、前記制御装置及び前記産業装置の少なくとも一方のユーザにより指定された前記公開変数を設定し、前記収集部は、前記ユーザとは異なるユーザに対し、収集した前記データを送信し、前記記録部は、前記異なるユーザに対応して送信された前記データを前記記憶部に記録する。
【発明の効果】
【００１８】
上記発明によれば、例えば、公開可能な公開変数に基づいて産業装置に関するデータを収集して記録することができる。
【図面の簡単な説明】
【００１９】
【図１】データ収集システムの全体構成の一例を示す図である。
【図２】データ収集システムにおいて公開変数が設定される様子を示す図である。
【図３】データ収集システムで実現される機能を示す機能ブロック図である。
【図４】公開変数リストのデータ格納例を示す図である。
【図５】レジスタ情報のデータ格納例を示す図である。
【図６】変数値データのデータ格納例を示す図である。
【図７】収集設定データのデータ格納例を示す図である。
【図８】データ収集システムで実行される処理の一例を示すフロー図である。
【図９】変形例（３）の機能ブロック図である。
【発明を実施するための形態】
【００２０】
［１．データ収集システムの全体構成］
本発明の発明者の見地によれば、産業装置の変数に基づいて産業装置に関するデータを収集する場合に、公開する変数と公開しない変数との区別がなく、どの変数についてもデータを収集できるようになっていた。そこで本発明の発明者は、公開可能な公開変数に基づいて産業装置に関するデータを収集して記録するために鋭意研究開発を行った結果、新規かつ独創的なデータ収集システム等に想到した。以降、本実施形態に係るデータ収集システム等を詳細に説明する。
【００２１】
図１は、データ収集システムの全体構成の一例を示す図である。図１に示すように、データ収集システム１は、第１ユーザ端末１０、コントローラ２０、産業装置３０、第２ユーザ端末４０、及びサーバ５０を含む。を含み、これらは互いに通信可能に接続される。本実施形態では、第１ユーザ端末１０、コントローラ２０、及び産業装置３０の各々は、Ｅｔｈｅｒｎｅｔ（登録商標）又は専用の通信規格等の任意のネットワークに接続され、コントローラ２０、第２ユーザ端末４０、及びサーバ５０の各々は、インターネットＮに接続される。
【００２２】
第１ユーザ端末１０は、第１ユーザが操作するコンピュータである。第１ユーザは、コントローラ２０及び産業装置３０の少なくとも一方のユーザ（中間的なユーザ）であり、例えば、装置メーカのエンジニア、又は、コントローラ２０及び産業装置３０が稼働する施設における保守担当者等である。第１ユーザは、コントローラ２０及び産業装置３０の両方を管理してもよいし、何れか一方のみを管理してもよい。即ち、コントローラ２０のユーザと、産業装置３０のユーザと、は同じであってもよいし、異なってもよい。例えば、第１ユーザは、第１ユーザ端末１０を操作して、コントローラ２０及び産業装置３０の少なくとも一方のプログラムの作成、コントローラ２０及び産業装置３０の少なくとも一方のパラメータの設定、又は、異常時の復旧作業等を行う。
【００２３】
例えば、第１ユーザ端末１０は、パーソナルコンピュータ、携帯電話（スマートフォンを含む）、又は携帯端末（タブレット型端末を含む）である。第１ユーザ端末１０は、ＣＰＵ１１、記憶部１２、通信部１３、操作部１４、及び表示部１５を含む。
【００２４】
ＣＰＵ１１は、少なくとも１つのプロセッサを含む。記憶部１２は、ＲＡＭやハードディスクを含み、各種プログラムやデータを記憶する。ＣＰＵ１１は、これらプログラムやデータに基づいて各種処理を実行する。通信部１３は、ネットワークカードや各種通信コネクタ等の通信インタフェースを含み、他の装置との通信を行う。操作部１４は、マウスやキーボード等の入力デバイスである。表示部１５は、液晶ディスプレイ又は有機ＥＬディスプレイ等であり、ＣＰＵ１１の指示により各種画面を表示する。
【００２５】
コントローラ２０は、少なくとも１つの産業装置３０を制御するコンピュータである。コントローラ２０は、本発明に係る制御装置の一例である。このため、本実施形態でコントローラ２０と記載した箇所は、制御装置と読み替えることができる。コントローラ２０は、他の装置を制御可能なコンピュータであればよく、例えば、ＰＬＣ（Programmable Logic Controller）であってもよいし、ＰＬＣと同等の機能を有する他の名称のコンピュータであってもよい。また例えば、コントローラ２０は、モータコントローラ又はロボットコントローラ等であってもよい。データ収集システム１全体は、ラインよりも小さな単位であるセルと呼ばれることがあり、この場合には、コントローラ２０は、セルコントローラと呼ばれることもある。
【００２６】
コントローラ２０は、ＣＰＵ２１、記憶部２２、通信部２３、及びＩｏＴ（Internet of Things）部２４を含む。ＣＰＵ２１、記憶部２２、及び通信部２３の物理的構成は、それぞれＣＰＵ１１、記憶部１２、及び通信部１３と同様であってよい。
【００２７】
ＩｏＴ部２４は、インターネットＮ等のネットワークを介して、他のコンピュータにデータを送信するための集積回路である。例えば、ＩｏＴ部２４は、ＣＰＵ２１、記憶部２２、及び通信部２３の各々と同等の機能のＣＰＵ、記憶部、及び通信部を有してもよいし、ＣＰＵのような汎用プロセッサではなく、特定の処理を実行するために作成された専用回路であってもよい。例えば、ＣＰＵ２１、記憶部２２、及び通信部２３の各々は、主に産業装置３０を制御するために利用され、ＩｏＴ部２４は、主にデータの収集に利用される。なお、データ収集の機能をＣＰＵ２１、記憶部２２、及び通信部２３の各々に持たせる場合には、ＩｏＴ部２４は省略してもよい。
【００２８】
産業装置３０は、予め定められた工程を実行する装置である。産業装置３０は、コントローラ２０により制御される被制御装置、又は、コントローラ２０の管理下に置かれる被管理装置ということもできる。産業装置３０は、任意の種類の機器を適用可能であり、例えば、ロボットコントローラ、産業用ロボット、モータコントローラ、工作機械、プレス加工機、又は搬送機器などである。ＰＬＣも産業装置の一種である。産業装置３０は、ＣＰＵ３１、記憶部３２、及び通信部３３を含む。ＣＰＵ３１、記憶部３２、及び通信部３３の物理的構成は、それぞれＣＰＵ１１、記憶部１２、及び通信部１３と同様であってよい。
【００２９】
なお、産業装置３０は、他の物理的構成が含まれもよく、例えば、ＡＳＩＣと呼ばれる特定用途向けの集積回路が含まれてもよい。また、産業装置３０には、任意の物理的構成が接続されてよく、例えば、モータ等の制御対象の機器、モータ等の動作を検出するためのセンサ、加工対象となるワークの状態を撮影するカメラ、入出力機器、又は他の産業装置などが接続されていてもよい。コントローラ２０の制御対象となる産業装置３０の台数は、任意の台数であってよく、例えば、１台だけであってもよいし、２台以上であってもよい。
【００３０】
第２ユーザ端末４０は、第２ユーザが操作するコンピュータである。第２ユーザは、データの収集者である。第２ユーザは、データ収集システム１のエンドユーザであり、例えば、データの収集や解析をする会社の担当者である。例えば、第２ユーザは、収集したデータを管理したり、データの解析をしたりする。本実施形態では、第２ユーザは、第１ユーザとは異なるユーザである。例えば、第１ユーザの会社と、第２ユーザの会社と、は異なる。
【００３１】
例えば、第２ユーザ端末４０は、パーソナルコンピュータ、携帯電話（スマートフォンを含む）、又は携帯端末（タブレット型端末を含む）である。第２ユーザ端末４０は、ＣＰＵ４１、記憶部４２、通信部４３、操作部４４、及び表示部４５を含む。ＣＰＵ４１、記憶部４２、通信部４３、操作部４４、及び表示部４５の物理的構成は、それぞれＣＰＵ１１、記憶部１２、通信部１３、操作部１４、及び表示部１５と同様であってよい。
【００３２】
サーバ５０は、サーバコンピュータである。サーバ５０は、ＣＰＵ５１、記憶部５２、及び通信部５３を含む。ＣＰＵ５１、記憶部５２、及び通信部５３の物理的構成は、それぞれＣＰＵ１１、記憶部１２、及び通信部１３と同様であってよい。サーバ５０は、コントローラ２０が収集したデータを管理したり、データに基づいて産業装置３０の動作を解析したりする。本実施形態では、サーバ５０は、第２ユーザの管理下に置かれる。
【００３３】
なお、記憶部１２，２２，３２，４２，５２の各々に記憶されるものとして説明するプログラム及びデータは、ネットワークを介して供給されるようにしてもよい。また、各装置のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部（例えば、光ディスクドライブやメモリカードスロット）や外部機器と直接的に接続するための入出力部（例えば、ＵＳＢ端子）が含まれていてもよい。この場合、情報記憶媒体に記憶されたプログラムやデータが、読取部又は入出力部を介して供給されるようにしてもよい。
【００３４】
［２．データ収集システムの概要］
本実施形態では、コントローラ２０は、産業装置３０を制御するための制御プログラムを記憶する。例えば、産業装置３０が複数の工程を所定の順序で実行する場合、制御プログラムには、各工程の実行順が記述されている。また例えば、複数の産業装置３０が所定の順序で動作する場合、制御プログラムには、各産業装置３０の動作順が記述されている。コントローラ２０は、制御プログラムに基づいて、産業装置３０に対して指示を送る。産業装置３０は、工程を実行するための装置プログラムと、変数と、を関連付けて記憶する。産業装置３０は、コントローラ２０からの指示を受信し、変数の値に基づいて、装置プログラムを実行する。
【００３５】
工程とは、産業装置３０が行う作業又は動作である。工程は、１つの作業だけから構成されてもよいし、複数の作業の組み合わせから構成されてもよい。工程は、産業装置３０の用途に応じた任意の内容であってよく、例えば、ワークの認識、ワークの把持、扉の開閉、ワークのセット、又は工作機器を利用した加工などである。産業装置３０は、少なくとも１つの工程を行う。産業装置３０が行う工程の数は、任意の数であってよく、産業装置３０は、１つの工程だけを行ってもよいし、複数の工程を行ってもよい。
【００３６】
装置プログラムは、産業装置３０の動作を定義したプログラムである。装置プログラムには、各工程における個々の手順が定義されている。装置プログラムは、産業装置３０に応じた任意の言語で作成可能であり、例えば、ラダー言語又はロボット言語等によって作成される。本実施形態では、工程ごとに装置プログラムが用意されている。このため、ある産業装置３０がｎ個（ｎは自然数）の工程を行うとすると、当該産業装置３０は、少なくともｎ個の装置プログラムを記憶していることになる。
【００３７】
変数は、工程の実行条件となる情報である。例えば、産業装置３０は、工程を開始するための変数、工程を一時停止するための変数、又は、工程を終了するための変数を記憶する。変数は、入出力変数と呼ばれることもある。変数は、産業装置３０の記憶部３２における特定のレジスタに格納される。変数とレジスタの関係（どの変数をどのレジスタに格納するか）については、装置プログラムの作成者等によって予め指定されているものとする。レジスタに格納された変数は、他の機器（例えば、コントローラ２０）によって適宜参照可能となる。
【００３８】
本実施形態では、産業装置３０は、工程の実行条件となる変数以外にも、途中の計算結果を示す変数、又は、センサにより検出された物理量（例えば、トルクセンサにより検出されたトルク値、又は、エンコーダにより検出されたモータの回転速度）を示す変数といった種々の変数を記憶する。このような変数の中には、第２ユーザに公開しない方が好ましい変数もある。例えば、第１ユーザのノウハウとして隠したい変数、又は、装置プログラムに詳しくない第２ユーザが取り扱うと産業装置３０の誤動作を起こす可能性のある変数については、第２ユーザに公開しない方が好ましい。
【００３９】
そこで、本実施形態のデータ収集システム１は、産業装置３０における複数の変数の中から、公開可能な公開変数を設定するようにしている。例えば、第１ユーザは、第１ユーザ端末１０を操作して、制御プログラムと装置プログラムを作成し、産業装置３０における複数の変数を定義すると、当該複数の変数の中から、第２ユーザに公開可能な変数である公開変数を設定する。
【００４０】
図２は、データ収集システム１において公開変数が設定される様子を示す図である。図２の（１）に示すように、第１ユーザは、第１ユーザ端末１０を操作して第２ユーザに対して公開可能な公開変数を指定し、公開変数リストを作成してコントローラ２０に設定する。第１ユーザは、産業装置３０における複数の変数のうち、任意の変数を公開変数として設定することができる。第１ユーザは、全ての変数を公開変数として設定してもよいが、本実施形態では、一部の変数についてのみ公開変数として設定するものとする。公開変数リストは、コントローラ２０に記憶される。
【００４１】
図２の（２）に示すように、コントローラ２０は、第２ユーザ端末４０に対し、公開変数リストを送信する。第２ユーザ端末４０が公開変数リストを受信すると、第２ユーザは、第２ユーザ端末４０を操作してデータ収集の対象となる公開変数を選択する。第２ユーザは、公開変数リストに示された全ての公開変数をデータ収集の対象として選択してもよいし、その一部だけをデータ収集の対象として選択してもよい。
【００４２】
図２の（３）に示すように、第２ユーザ端末４０は、コントローラ２０に対し、第２ユーザが選択した公開変数を示す収集設定データを送信する。コントローラ２０は、収集設定データを受信すると、収集設定データをＩｏＴ部２４に記憶する。以降、第２ユーザが選択した公開変数に基づいて、データ収集が可能な状態となる。
【００４３】
本実施形態では、コントローラ２０のＣＰＵ２１が、産業装置３０から全ての公開変数を取得し、サーバ５０に対して送信される公開変数が、ＩｏＴ部２４によって絞られる場合を説明する。このため、図２の（４）に示すように、コントローラ２０のＣＰＵ２１は、産業装置３０から全ての公開変数の値を取得し、記憶部２２に記録する。記憶部２２に記録された公開変数の値は、ＩｏＴ部２４にコピーされる。ＩｏＴ部２４は、収集設定データに基づいて、自身にコピーされた公開変数の中から、第２ユーザが選択した公開変数の値を絞り込む。
【００４４】
図２の（５）に示すように、コントローラ２０のＩｏＴ部２４は、第２ユーザが選択した公開変数の値に基づいて、産業装置３０に関するデータを収集し、任意のタイミングでサーバ５０にデータを送信する。サーバ５０は、データを受信すると、データベースに蓄積する。データベースに蓄積されたデータは、任意の用途で利用可能であり、例えば、第２ユーザの解析のために利用されてもよいし、産業装置３０において異常が発生した場合の復旧に利用されてもよい。
【００４５】
以上のように、データ収集システム１は、第１ユーザが設定した公開変数を示す公開変数リストを第２ユーザに対して送信する。データ収集システム１は、公開変数リストの中から第２ユーザが選択した公開変数に基づいて、産業装置３０に関するデータを収集し、サーバ５０に蓄積する。これにより、第２ユーザが選択した公開変数の値だけを第２ユーザに収集させ、公開変数として設定されていない変数の値については第２ユーザに収集させないようにしている。以降、データ収集システム１の詳細を説明する。
【００４６】
［３．データ収集システムで実現される機能］
図３は、データ収集システム１で実現される機能を示す機能ブロック図である。本実施形態では、第１ユーザ端末１０、コントローラ２０、産業装置３０、第２ユーザ端末４０、及びサーバ５０の各々で実現される機能について説明する。
【００４７】
［３−１．第１ユーザ端末で実現される機能］
図３に示すように、第１ユーザ端末１０では、データ記憶部１００及び公開変数設定部１０１が実現される。
【００４８】
［データ記憶部］
データ記憶部１００は、記憶部１２を主として実現される。データ記憶部１００は、コントローラ２０及び産業装置３０の各々に対して設定したデータを記憶する。例えば、データ記憶部１００は、制御プログラム、装置プログラム、公開変数リスト、及びレジスタ情報を記憶する。
【００４９】
本実施形態では、産業装置３０が変数に基づいて装置プログラムを実行するので、制御プログラムは、装置プログラムに関連付けられた変数の値を制御するためのプログラムである。例えば、産業装置３０に複数の工程を次々と実行させる場合、制御プログラムには、各工程の装置プログラムに関連付けられた変数の値を変更するための指示が記述される。他にも例えば、ある装置プログラムの終了が別の装置プログラムの開始の条件となる場合には、制御プログラムには、ある装置プログラムの終了を示す変数が所定の値になることが、別の装置プログラムの開始の条件として記述される。なお、特に工程の制御に変数を用いない場合には、制御プログラムは、ラダー言語又はロボット言語等の公知の言語によって作成されるようにしてもよい。例えば、第１ユーザは、第１ユーザ端末１０にインストールされたエンジニアリングツールを利用して、制御プログラムを作成する。
【００５０】
本実施形態では、変数に基づいて装置プログラムが実行されるので、データ記憶部１００は、装置プログラムに関連付けられた変数の設定も記憶する。変数は、任意の内容の変数を設定可能であり、例えば、装置プログラムを開始させるためのｓｔａｒｔ変数、装置プログラムの終了を示すｅｎｄ変数、装置プログラムの実行中に異常が発生したことを示すａｂｏｒｔ変数、及びビジー状態になったことを示すｂｕｓｙ変数などを設定可能である。例えば、第１ユーザは、第１ユーザ端末１０にインストールされたエンジニアリングツールを利用して、装置プログラムを作成し、変数の設定を行う。先述したように、装置プログラムは、ラダー言語又はロボット言語等の公知の言語によって作成されるようにすればよい。
【００５１】
図４は、公開変数リストのデータ格納例を示す図である。図４に示すように、公開変数リストＬは、公開変数として指定された変数を識別する情報を含む。例えば、公開変数リストＬには、公開変数として指定された変数の名前と、変数のコメントと、が格納されている。変数の名前は、変数を識別する情報の一例であり、名前以外にもＩＤのような情報によって変数が識別されてもよい。コメントは、第１ユーザにより入力された任意の文字列であり、変数が示す内容や用途等の情報が示される。なお、公開変数リストＬは、図４の例に限られず、公開変数リストＬには、全ての変数の一覧と、公開変数であるか否かを示すフラグと、が格納されているようにしてもよい。この場合、第１ユーザによりフラグの値が指定されることになる。
【００５２】
図５は、レジスタ情報のデータ格納例を示す図である。図５に示すように、レジスタ情報Ｒは、産業装置３０における複数の変数の各々が格納されたレジスタ（アドレス）を示す。例えば、レジスタ情報Ｒは、変数ごとに、当該変数の値が格納されたレジスタのアドレスを示す。なお、レジスタ情報Ｒには、産業装置３０の全ての変数のレジスタが示されてもよいし、一部の変数のレジスタだけが示されてもよい。例えば、レジスタ情報Ｒには、公開変数のレジスタだけが示されてもよい。例えば、第１ユーザは、装置プログラムの作成時等において、変数とレジスタの対応関係を指定し、レジスタ情報を作成する。
【００５３】
なお、データ記憶部１００が記憶するデータは、上記の例に限られない。例えば、データ記憶部１００は、第１ユーザがプログラムの作成や各種設定作業をするためのエンジニアリングツールを記憶してもよい。また例えば、データ記憶部１００は、作成途中の制御プログラムや装置プログラムのコード情報を記憶してもよい。
【００５４】
［公開変数設定部］
公開変数設定部１０１は、ＣＰＵ１１を主として実現される。公開変数設定部１０１は、コントローラ２０により制御される産業装置３０の複数の変数のうち、公開可能な公開変数を設定する。公開変数を設定するとは、複数の変数の中から公開変数を決定することである。別の言い方をすれば、公開変数として指定された変数を識別する情報をコントローラ２０等のコンピュータに記録することは、公開変数を設定することに相当する。本実施形態では、公開変数リストＬを作成することが、公開変数を設定することに相当する。
【００５５】
例えば、公開変数設定部１０１は、コントローラ２０及び産業装置３０の少なくとも一方のユーザである第１ユーザにより指定された公開変数を設定する。公開変数設定部１０１は、第１ユーザにより指定された公開変数を識別する情報を公開変数リストＬに格納する。なお、フラグの値によって公開変数を識別する場合には、公開変数設定部１０１は、第１ユーザにより指定された公開変数のフラグの値を決定する。また、公開変数は、第１ユーザ以外の者によって指定されてもよく、例えば、産業装置３０の製造時に既に指定されているようにしてもよい。
【００５６】
［３−２．コントローラで実現される機能］
図３に示すように、コントローラ２０では、データ記憶部２００、取得部２０１、動作制御部２０２、コピー部２０３、及び収集部２０４が実現される。
【００５７】
［データ記憶部］
データ記憶部２００は、記憶部２２及びＩｏＴ部２４を主として実現される。データ記憶部２００は、産業装置３０の制御、データの収集、及び収集したデータの送信に必要なデータを記憶する。本実施形態では、データ記憶部２００は、第１データ記憶部２００Ａと、第２データ記憶部２００Ｂと、を含む。第１データ記憶部２００Ａは、記憶部２２を主として実現され、第２データ記憶部２００Ｂは、ＩｏＴ部２４を主として実現される。
【００５８】
第１データ記憶部２００Ａは、主に産業装置３０の制御に必要なデータを記憶し、例えば、制御プログラム、公開変数リストＬ、レジスタ情報Ｒ、及び変数値データを記憶する。第１データ記憶部２００Ａの制御プログラム、公開変数リストＬ、及びレジスタ情報Ｒは、データ記憶部１００の制御プログラム、公開変数リストＬ、及びレジスタ情報Ｒと同じである。本実施形態では、第１ユーザが作成した制御プログラム、公開変数リストＬ、及びレジスタ情報Ｒは、第１データ記憶部２００Ａに書き込まれる。
【００５９】
図６は、変数値データＤ１のデータ格納例を示す図である。図６に示すように、変数値データＤ１は、公開変数の現在値を示すデータである。例えば、変数値データＤ１には、公開変数ごとに、現在値が示される。変数値データＤ１は、後述する取得部２０１の処理によって更新される。なお、変数値データＤ１には、公開変数以外の変数の現在値が格納されてもよい。
【００６０】
第２データ記憶部２００Ｂは、主にデータ収集に必要なデータを記憶し、例えば、変数値データＤ１と、収集設定データと、を記憶する。変数値データＤ１は、第１データ記憶部２００Ａに記憶された変数値データＤ１と同じであり、後述するコピー部２０３によってコピーされる。
【００６１】
図７は、収集設定データのデータ格納例を示す図である。図７に示すように、収集設定データＤ２は、第２ユーザにより指定された収集設定を示すデータである。本実施形態では、収取対象の公開変数の種類が収集設定に相当する場合を説明する。例えば、収集設定データＤ２には、第２ユーザにより収集対象として指定された公開変数を識別する情報を含む。収集設定データＤ２は、第２ユーザ端末４０から取得されて第２データ記憶部２００Ｂに記録される。このため、第２データ記憶部２００Ｂの収集設定データＤ２は、データ記憶部４００の収集設定データＤ２と同じである。
【００６２】
なお、データ記憶部２００は、第１データ記憶部２００Ａと第２データ記憶部２００Ｂに分かれていなくてもよい。例えば、ＣＰＵ２１が産業装置３０の制御だけでなく、データ収集についての処理も実行し、ＩｏＴ部２４を省略する場合には、第２データ記憶部２００Ｂは省略してもよい。この場合、第２データ記憶部２００Ｂに記憶されるものとして説明したデータは、第１データ記憶部２００Ａに記憶されるようにすればよい。
【００６３】
［取得部］
取得部２０１は、ＣＰＵ２１を主として実現される。取得部２０１は、産業装置３０から公開変数の値を取得する。本実施形態では、公開変数に対応するレジスタがレジスタ情報Ｒに示されているので、取得部２０１は、公開変数と、産業装置３０におけるレジスタと、の関係を示すレジスタ情報Ｒに基づいて、産業装置３０から公開変数の値を取得する。
【００６４】
取得部２０１は、公開変数に関連付けられたレジスタの読み出し要求を産業装置３０に送信する。産業装置３０は、読み出し要求を受信すると、対象となるレジスタを読み出してコントローラ２０に送信する。取得部２０１は、産業装置３０から受信した公開変数の値をデータ記憶部２００に記録する。本実施形態では、取得部２０１が定期的（周期的）に公開変数の値を取得する場合を説明するが、取得部２０１は、不定期的（非周期的）に公開変数の値を取得してもよい。
【００６５】
なお、本実施形態では、コントローラ２０側で変数とレジスタの対応関係を管理している場合を説明するが、コントローラ２０側で特にこれらの対応関係を管理しなくてもよい。この場合、産業装置３０側で変数とレジスタの対応関係を管理し、取得部２０１は、値を取得したい変数を識別する情報を産業装置３０に送信すればよい。産業装置３０は、コントローラ２０から受信した情報が示す変数に対応するレジスタを読み出して、その値をコントローラ２０に送信すればよい。
【００６６】
［動作制御部］
動作制御部２０２は、ＣＰＵ２１を主として実現される。動作制御部２０２は、制御プログラムに基づいて、産業装置３０の動作を制御する。例えば、動作制御部２０２は、産業装置３０に対して指示を送り、産業装置３０は、当該指示に基づいて動作する。本実施形態では、装置プログラムに関連付けられた変数の値に基づいて産業装置３０が動作するので、例えば、動作制御部２０２は、産業装置３０に対し、装置プログラムを開始させるための変数の値を変える旨の指示を送り、産業装置３０は、当該指示に基づいて変数の値を変えて装置プログラムを実行する。なお、産業装置３０の動作制御のために特に変数を利用しない場合には、動作制御部２０２は、産業装置３０が実行すべき動作を示すコマンドを送信することによって、産業装置３０の動作を制御すればよい。
【００６７】
公開変数は、産業装置３０の動作に用いられることがあるので、動作制御部２０２は、産業装置３０から公開変数の値を取得してデータ記憶部２００に記録し、当該公開変数の値に基づいて、産業装置３０を制御する。例えば、ある装置プログラムを実行させた後に、別の装置プログラムを実行させる場合、動作制御部２０２は、ある装置プログラムの終了を示す公開変数の値が所定の値になった場合に、産業装置３０に対し、別の装置プログラムの実行を指示する。他にも例えば、動作制御部２０２は、装置プログラムの異常発生を示す公開変数が所定の値になった場合に、産業装置３０に対し、動作の停止を指示するようにしてもよい。
【００６８】
［コピー部］
コピー部２０３は、ＩｏＴ部２４を主として実現される。コピー部２０３は、コントローラ２０の第１データ記憶部２００Ａに記録された公開変数の値を、別の第２データ記憶部２００Ｂにコピーする。本実施形態では、コピー部２０３が定期的（周期的）に公開変数の値をコピーする場合を説明するが、取得部２０１は、不定期的（非周期的）に公開変数の値をコピーしてもよい。また、取得部２０１が公開変数を取得する周期と、コピー部２０３が公開変数をコピーする周期と、は同じであってもよいし、異なってもよい。
【００６９】
公開変数の値は、変数値データＤ１に示されているので、コピー部２０３は、第１データ記憶部２００Ａに記録された変数値データＤ１を、第２データ記憶部２００Ｂにそのままコピーすることになる。このため、第２データ記憶部２００Ｂの変数値データＤ１は、第１データ記憶部２００Ａの最新の変数値データＤ１に置き換わる（上書きされる）ことになる。コピー部２０３は、第１データ記憶部２００Ａに記憶された変数値データＤ１の一部の内容だけをコピーしてもよく、例えば、収集対象となった公開変数の値だけをコピーしてもよい。
【００７０】
［収集部］
収集部２０４は、ＩｏＴ部２４を主として実現される。収集部２０４は、公開変数に基づいて、産業装置３０に関するデータを収集する。産業装置３０に関するデータとは、産業装置３０の動作に関するデータであり、公開変数の値が格納されたデータである。以降、このデータを収集データという。収集データには、ある一時点の公開変数の値が格納されてもよいし、公開変数の値の時系列的な変化が格納されてもよい。また、収集データには、１つの公開変数の値だけが格納されていてもよいし、複数の公開変数の値が格納されていてもよい。他にも例えば、収集データには、複数の公開変数の値に基づいて計算された値が格納されていてもよい。
【００７１】
収集データを収集するとは、収集データに格納すべき公開変数の値を取得することである。別の言い方をすれば、収集データを収集するとは、公開変数の値に基づいて、収集データを作成することである。収集部２０４は、コントローラ２０のデータ記憶部２００に記録された公開変数の値に基づいて、収集データを収集する。
【００７２】
本実施形態では、第２ユーザにより収集設定が指定されるので、収集部２０４は、公開変数と収集設定とに基づいて、収集データを収集する。例えば、収集設定データＤ２に収集対象となる公開変数の種類が示されているので、収集部２０４は、収集設定データＤ２が示す種類の公開変数の値に基づいて、収集データを収集する。即ち、収集部２０４は、収集設定データＤ２に示されていない公開変数の値については、収集データに格納しない。収集設定データＤ２に示されていない公開変数は、データ収集の対象から除外されることになる。
【００７３】
本実施形態では、第１データ記憶部２００Ａの変数値データＤ１が第２データ記憶部２００Ｂにコピーされたうえでデータ収集が行われるので、収集部２０４は、コントローラ２０の第２データ記憶部２００Ｂにコピーされた公開変数の値に基づいて、収集データを収集する。即ち、収集部２０４は、産業装置３０を制御するための第１データ記憶部２００Ａの変数値データＤ１ではなく、第１データ記憶部２００Ａからコピーされた第２データ記憶部２００Ｂの変数値データＤ１に基づいて、収集データを収集する。
【００７４】
本実施形態では、コントローラ２０と産業装置３０との各々は、同期通信可能なネットワークに接続され、収集部２０４は、当該ネットワークとは異なるネットワークに基づいて、収集データを送信する。同期通信は、指令を送信してからレスポンスを受信するまでの間に、原則として他の処理を挟まない通信方式である。同期通信可能なネットワークは、同期通信をする環境を有すればよく、必ずしも常に同期通信をしている必要はない。特に産業装置３０の種類によっては同期通信可能であることを要件としないネットワークに接続されていてもよい。
【００７５】
コントローラ２０と産業装置３０とは、いわゆるフィールドネットワークによって接続される。一方、コントローラ２０とサーバ５０は、フィールドネットワークとは異なるネットワークによって接続され、例えば、一般的なインターネットによって接続されてもよいし、ＬＡＮによって接続されてもよい。別の言い方をすれば、コントローラ２０と産業装置３０とは、第１の通信プロトコル（例えば、産業装置３０専用の通信プロトコル）のネットワークによって接続され、コントローラ２０とサーバ５０は、第１の通信プロトコルとは異なる第２の通信プロトコルのネットワークによって接続される。
【００７６】
本実施形態では、取得部２０１がレジスタ情報Ｒに基づいて公開変数の値を取得するので、収集部２０４は、取得部２０１により取得された公開変数の値に基づいて、収集データを収集する。収集部２０４は、取得部２０１により取得された全ての公開変数の値に基づいて収集データを収集してもよいし、一部の公開変数の値に基づいて収集データを収集してもよい。
【００７７】
本実施形態では、第２ユーザに対して収集データが送信されるので、収集部２０４は、第１ユーザとは異なる第２ユーザに対し、収集した収集データを送信する。第２ユーザに対して収集データを送信するとは、第２ユーザが管理するコンピュータに対して収集データを送信することである。本実施形態では、収集部２０４は、サーバ５０に対して収集データを送信するものとするが、第２ユーザ端末４０等の他のコンピュータに対して収集データを送信してもよい。収集データは、任意の方法で送信されるようにすればよく、例えば、電子メール等に添付して送信されてもよいし、ＦＴＰ等を利用して送信されてもよい。
【００７８】
［３−３．産業装置で実現される機能］
図３に示すように、産業装置３０では、データ記憶部３００及び工程実行部３０１が実現される。
【００７９】
［データ記憶部］
データ記憶部３００は、記憶部３２を主として実現される。データ記憶部３００は、産業装置３０が所定の動作をするために必要なデータを記憶する。例えば、データ記憶部３００は、装置プログラムと、公開変数の現在値と、を記憶する。装置プログラムは、データ記憶部１００に記憶された装置プログラムと同じである。公開変数の現在値は、変数値データＤ１に格納される値と同じである。なお、データ記憶部３００は、公開変数以外の変数の値も記憶する。各変数の値は、予め定められたレジスタに格納されることになる。
【００８０】
［工程実行部］
工程実行部３０１は、ＣＰＵ３１を主として実現される。工程実行部３０１は、データ記憶部３００に記憶された装置プログラムと、コントローラ２０から受信した指示と、に基づいて、所定の工程を実行する。例えば、コントローラ２０は、ある装置プログラムを開始させる場合に、当該装置プログラムに関連付けられた変数を所定の値にする旨の指示を産業装置３０に送信する。産業装置３０は、当該指示を受信すると変数を所定の値に変更する。工程実行部３０１は、変数が所定の値になったことを検知すると、当該変数に関連付けられた装置プログラムを実行する。
【００８１】
工程実行部３０１は、装置プログラムが示す工程が終了すると、当該装置プログラムに関連付けられた変数を所定の値に変更し、その旨をコントローラ２０に対して送信する。その後に、別の装置プログラムを実行させる場合には、コントローラ２０は、当該別の装置プログラムに関連付けられた変数を所定の値にする旨の指示を産業装置３０に送信し、工程実行部３０１は、別の装置プログラムを実行させることになる。なお、産業装置３０の中で複数の装置プログラムの実行順が定義されている場合には、コントローラ２０に対して、装置プログラムの終了が送信されずに、工程実行部３０１は、当該複数の装置プログラムを次々と実行するようにしてもよい。
【００８２】
［３−４．第２ユーザ端末で実現される機能］
図３に示すように、第２ユーザ端末４０では、データ記憶部４００及び収集設定部４０１が実現される。
【００８３】
［データ記憶部］
データ記憶部は、記憶部４２を主として実現される。データ記憶部４００は、データ収集を実行するために必要なデータを記憶する。例えば、データ記憶部４００は、公開変数リストＬ及び収集設定データＤ２を記憶する。公開変数リストＬは、データ記憶部１００及び第２データ記憶部２００Ｂの各々の公開変数リストＬと同じであり、収集設定データＤ２は、第２データ記憶部２００Ｂの収集設定データＤ２と同じである。第１ユーザにより公開変数リストＬが更新されると、更新後の公開変数リストＬが第２ユーザ端末４０に送信される。一方、第２ユーザにより収集設定データＤ２が更新されると、更新後の収集設定データＤ２がコントローラ２０に対して送信される。
【００８４】
［収集設定部］
収集設定部４０１は、ＣＰＵ４１を主として実現される。収集設定部４０１は、公開変数に基づいて、データに関する収集設定を行う。収集設定は、データ収集の際の条件であり、本実施形態では、収集設定として、データ収集の対象となる公開変数の種類が指定される。例えば、収集設定部４０１は、公開変数リストＬに示された複数の公開変数の中から、データ収集の対象となる公開変数の種類を設定する。収集設定の内容は、収集設定データＤ２に示されるので、収集設定部４０１は、収集設定データＤ２を作成してコントローラ２０に送信することによって、収集設定を行う。即ち、収集設定部４０１は、収集設定データＤ２に基づいてデータ収集をするように、コントローラ２０の設定を行う。
【００８５】
［３−５．サーバで実現される機能］
図３に示すように、サーバ５０では、データ記憶部５００及び記録部５０１が実現される。
【００８６】
［データ記憶部］
データ記憶部５００は、記憶部５２を主として実現される。データ記憶部５００は、収集データが蓄積された収集データベースを記憶する。収集データベースは、サーバ５０が受信した収集データが蓄積されたデータベースである。サーバ５０は、コントローラ２０から収集データを受信すると、収集データベースに格納する。収集データベースには、過去に収集された収集データの履歴が格納されることになる。
【００８７】
［記録部］
記録部５０１は、ＣＰＵ５１を主として実現される。記録部５０１は、収集データをデータ記憶部５００に記録する。記録部５０１は、サーバ５０がコントローラ２０から受信した収集データを収集データベースに格納する。本実施形態では、第１ユーザとは異なる第２ユーザに対して収集データが送信されるので、記録部５０１は、第１ユーザとは異なる第２ユーザに対して送信された収集データをデータ記憶部５００に記録することになる。
【００８８】
［４．データ収集システムで実行される処理］
図８は、データ収集システム１で実行される処理の一例を示すフロー図である。図８に示す処理は、ＣＰＵ１１，２１，３１，４１，５１の各々が記憶部１２，２２，３２，４２，５２に記憶されたプログラムに従って動作することによって実行される。図８に示す処理は、図３に示す機能ブロックにより実行される処理の一例である。なお、図８に示す処理が実行されるにあたり、制御プログラム、装置プログラム、及びレジスタ情報Ｒは予め作成されているものとする。また、図８では、主にデータ収集に関する処理について説明し、コントローラ２０が産業装置３０を制御する処理については省略する。
【００８９】
図８に示すように、まず、第１ユーザ端末１０は、第１ユーザの操作に基づいて、公開変数リストＬを作成し、コントローラ２０に対して公開変数リストＬを送信する（Ｓ１）。Ｓ１においては、第１ユーザ端末１０は、産業装置３０における全ての変数を表示部１５に表示させる。産業装置３０における変数を識別する情報は、予め記憶部１２に記憶されているものとする。第１ユーザは、操作部１４を操作して、表示部１５に表示された変数の中から公開変数を指定し、必要に応じてコメントを入力する。第１ユーザ端末１０は、ユーザが指定した公開変数と、ユーザが入力したコメントと、を含む公開変数リストＬを生成する。なお、コメントは、予め変数に関連付けられて記憶部１２に記憶されていてもよい。
【００９０】
コントローラ２０は、公開変数リストＬを受信すると、記憶部２２に公開変数リストＬを記録し（Ｓ２）、第２ユーザ端末４０に対して公開変数リストＬを送信する（Ｓ３）。なお、本実施形態では、コントローラ２０が第２ユーザ端末４０に対して公開変数リストＬを送信する場合を説明するが、第１ユーザ端末１０が第２ユーザ端末４０に対して公開変数リストを送信してもよい。
【００９１】
第２ユーザ端末４０は、公開変数リストＬを受信すると、記憶部４２に公開変数リストＬを記録し（Ｓ４）、第２ユーザの操作に基づいて、収集設定データＤ２を作成し、コントローラ２０に対して収集設定データＤ２を送信する（Ｓ５）。Ｓ５においては、第２ユーザ端末４０は、公開変数リストＬの内容を表示部４５に表示させ、第２ユーザによる選択を受け付ける。第２ユーザ端末４０は、第２ユーザが収集対象として選択した公開変数を示す収集設定データＤ２を作成し、コントローラ２０に対して送信する。
【００９２】
コントローラ２０は、収集設定データＤ２を受信すると、ＩｏＴ部２４に収集設定データＤ２を記録する（Ｓ６）。収集設定データＤ２が記録されると、産業装置３０からのデータ収集が可能な状態となる。
【００９３】
コントローラ２０は、記憶部２２に記憶されたレジスタ情報Ｒに基づいて、産業装置３０に対し、公開変数の取得要求を送信する（Ｓ７）。Ｓ７においては、収集設定データＤ２に示された公開変数に関係なく、全ての公開変数の取得要求が送信される。例えば、コントローラ２０は、レジスタ情報Ｒを参照して全ての公開変数のレジスタを特定し、各レジスタの読み出し要求を送信する。
【００９４】
産業装置３０は、公開変数の取得要求を受信すると、コントローラ２０に対し、記憶部３２に記録された公開変数の値を送信する（Ｓ８）。Ｓ８においては、産業装置３０は、公開変数の取得要求に含まれるアドレスのレジスタを参照し、当該レジスタに格納された値のデータセットを送信する。
【００９５】
コントローラ２０は、産業装置３０から取得した公開変数の値に基づいて、記憶部２２の変数値データＤ１を更新し（Ｓ９）、記憶部２２の変数値データＤ１をＩｏＴ部２４にコピーする（Ｓ１０）。Ｓ９においては、コントローラ２０は、公開変数の値が最新の値となるように、記憶部２２の変数値データＤ１を更新し、更新後の変数値データＤ１をＩｏＴ部２４にコピーする。
【００９６】
コントローラ２０は、収集設定データＤ２に基づいて、ＩｏＴ部２４にコピーした変数値データＤ１の中から、収取対象の公開変数の値を収集し、サーバ５０に対し、収集データを送信する（Ｓ１１）。Ｓ１１においては、コントローラ２０は、変数値データＤ１に格納された公開変数の中から、第２ユーザが指定した収取対象の公開変数の値に基づいて、収集データを作成し、サーバ５０に対して送信する。
【００９７】
サーバ５０は、収集データを受信して収集データベースに格納し（Ｓ１３）、本処理は終了する。Ｓ１３においては、サーバ５０は、受信した収集データを収集データベースに追加する。
【００９８】
以上説明したデータ収集システム１によれば、コントローラ２０により制御される産業装置３０の複数の変数のうち、公開可能な公開変数を設定し、公開可能な公開変数に基づいて産業装置３０に関する収集データを収集して記録することができる。また、産業装置３０側の開発者がノウハウとして秘匿したい変数については公開変数から外すことで、開発者のノウハウが第三者に漏洩することを防止できる。また、公開変数に絞って収集データを収集することで、不要なデータ収集が行われることを防止できる。その結果、記録されるデータの量が減るので、メモリ消費量を削減することができる。また、不要な収集データが送信されないので、通信負荷を軽減することもできる。また、不要なデータ収集が実行されないので、データ収集システム１における処理負荷を軽減することもできる。
【００９９】
また、データ収集システム１は、公開変数に基づいて収集データに関する収集設定を行い、当該収集設定に基づいて収集データを収集することにより、データ収集の利便性を高めることができる。
【０１００】
また、データ収集システム１は、収集対象となる公開変数の種類を設定し、当該設定された種類に基づいて収集データを収集することにより、データ収集の利便性を効果的に高めることができる。例えば、データ収集の対象となる公開変数を絞ることにより、不要なデータ収集が行われることを防止できる。その結果、メモリ消費量の削減、ネットワークにおける通信量の削減、及び処理負荷の軽減を図ることができる。
【０１０１】
また、データ収集システム１は、コントローラ２０が産業装置３０を制御するために記録した公開変数の値を利用してデータ収集をすることで、データ収集を効率化することができる。例えば、産業装置３０の制御のための公開変数の値の取得と、データ収集のための公開変数の値の取得と、を別々に行うと、産業装置３０は同様の処理を２重で実行する必要があり、産業装置３０の処理負荷が増大するが、このような２重の処理を発生させないようにすることができる。その結果、産業装置３０の処理負荷を軽減することができる。
【０１０２】
また、データ収集システム１は、ＣＰＵ２１からＩｏＴ部２４にコピーされた公開変数の値に基づいて、データ収集をすることにより、コントローラ２０の制御に必要な値を記憶する記憶部と、データ収集のために必要な値を記憶する記憶部と、を別々のものとし、データ収集のために産業装置３０の制御に支障をきたす可能性を低減することができる。
【０１０３】
また、データ収集システム１は、コントローラ２０と産業装置３０との各々を接続するネットワークとは異なるネットワークに基づいて、データ収集を行うことにより、産業装置３０の動作に支障をきたすことなく、データ収集を実行することができる。
【０１０４】
また、データ収集システム１は、公開変数とレジスタとの関係を示すレジスタ情報Ｒに基づいてデータ収集をすることにより、データの収集者がレジスタ体系を把握していなくても、データの収集を可能とすることができる。その結果、データ収集を容易化し、収集者の利便性を高めることができる。
【０１０５】
また、データ収集システム１は、コントローラ２０及び産業装置３０の少なくとも一方を管理するユーザと、産業装置３０に関するデータを収集するユーザと、が異なる場合であったとしても、公開変数に基づいて、収集データを収集して記録することができる。その結果、データを収集するユーザに対して公開したくない変数についての情報は、収集させないようにすることができる。
【０１０６】
［５．変形例］
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【０１０７】
（１）例えば、実施形態では、収集設定として、収集対象の公開変数の種類が指定される場合を説明したが、収集設定として指定される情報は、公開変数の種類に限られない。例えば、収集設定は、収集データの収集頻度を示してもよく、本変形例の収集部２０４は、収集設定が示す収集頻度に基づいて、収集データを収集する。
【０１０８】
収集頻度は、収集データを収集する頻度であり、サンプリング頻度ということもできる。例えば、第２ユーザは、公開変数を収集する時間間隔、又は、単位時間あたりの収集回数を収集頻度として指定する。収集頻度は、収集設定データＤ２に格納され、収集部２０４は、収集設定データＤ２に示された収集頻度に基づいて、収集データを収集する。例えば、収集部２０４は、収集頻度が示す時間ごとに、公開変数の値を取得して収集データを作成する。本変形例では、取得部２０１による公開変数の値の取得は、収集頻度に関係なく周期的に行われるものとするが、取得部２０１は、収集頻度に合わせて公開変数の値を取得してもよい。
【０１０９】
変形例（１）によれば、収集データの収集頻度を設定し、当該設定された収集頻度に基づいて収集データを収集することにより、データ収集の利便性を効果的に高めることができる。例えば、収集頻度を高く設定する場合には、詳細なデータ収集をすることができる。その結果、産業装置３０の動作解析を詳細に行うことができる。また例えば、収集頻度を低く設定する場合には、不要なデータ収集が行われることを防止できる。その結果、メモリ消費量の削減、ネットワークにおける通信量の削減、及び処理負荷の軽減を図ることができる。
【０１１０】
（２）また例えば、収集設定は、データ収集の開始条件を示してもよく、収集部２０４は、収集設定が示す開始条件に基づいて、収集データの収集を開始してもよい。開始条件は、収集データの収集を開始するための条件であり、任意の条件を設定可能である。例えば、開始条件は、所定の日時が訪れること、所定の装置プログラムの実行が開始されること、又は公開変数の値が所定の値となることなどである。
【０１１１】
本変形例では、ある収集データの値が所定の値になることが、他の収集データの開始条件になる場合を説明する。別の言い方をすれば、ある公開変数に基づいて収集された収集データが所定の値になった場合に、他の公開変数に基づくデータ収集が開始される場合を説明する。例えば、収集データがトルク値を示す場合に、トルク値が変化の変化をした場合に、モータの回転速度を示す収集データの収集が開始されるようにしてもよい。この場合、収集部２０４は、収集データが示すトルク値が所定の変化をしたか否かを判定し、トルク値が所定の変化をしたと判定した場合に、モータの回転速度を示す収取データの収集を開始する。
【０１１２】
変形例（２）によれば、データ収集の開始条件を設定し、当該設定された開始条件に基づいてデータの収集を開始することにより、データ収集の利便性を効果的に高めることができる。開始条件が満たされるまではデータを収集しないので、不要なデータ収集が行われることを防止できる。その結果、メモリ消費量の削減、ネットワークにおける通信量の削減、及び処理負荷の軽減を図ることができる。
【０１１３】
（３）また例えば、サーバ５０に蓄積された収集データは、産業装置３０に対する動作指示に用いられてもよい。図９は、変形例（３）の機能ブロック図である。図９に示すように、変形例（３）のデータ収集システム１は、動作指令送信部５０２を含む。動作指令送信部５０２は、ＣＰＵ５１を主として実現される。
【０１１４】
動作指令送信部５０２は、収集データに基づいて、コントローラ２０に対し、産業装置３０に関する動作指令を送信する。動作指令は、産業装置３０に任意の動作をさせるための指令であればよく、例えば、装置プログラムの実行指示である。本変形例では、動作指令の一例として、産業装置３０において異常が発生した場合の復旧動作の指令について説明する。なお、動作指令は、復旧動作に限られず、任意の動作を実行させるための指令であってよい。例えば、それまでは収集対象ではなかった公開変数の値を収集するための指令であってもよいし、任意の動作を実行させるための割り込みであってもよい。
【０１１５】
例えば、サーバ５０のデータ記憶部５００には、異常発生時の復旧手順を示す復旧手順データが記憶されているものとする。産業装置３０は、装置プログラムに基づいて動作するので、復旧手順データには、復旧手順の際に実行すべき少なくとも１つの装置プログラムの実行順が定義されている。例えば、復旧手順データは、第２ユーザにより作成される。動作指令送信部５０２は、収集データに基づいて、産業装置３０における異常発生を判定し、異常が発生したと判定された場合に、コントローラ２０に対し、復旧手順データを送信する。コントローラ２０は、復旧手順データを受信すると、復旧手順データに示された復旧手順に基づいて、産業装置３０を復旧させる。例えば、復旧手順に示された装置プログラムも変数に基づいて実行される場合には、コントローラ２０は、復旧手順データに示された復旧手順に基づいて各装置プログラムが実行されるように、産業装置３０の変数を制御する。
【０１１６】
変形例（３）によれば、収集した収集データに基づいて、産業装置３０に対し、産業装置３０に関する動作指令を送信することにより、収集したデータを産業装置３０の動作にフィードバックすることができる。例えば、産業装置３０に異常が発生した場合に、収集したデータに基づいて復旧動作をさせることにより、産業装置３０に発生した異常を確実に復旧させることができる。
【０１１７】
（４）また例えば、上記変形例を組み合わせてもよい。
【０１１８】
また例えば、コントローラ２０は、第２ユーザにより、公開変数以外の変数が収集対象として指定された場合には、当該変数の収集を拒否するようにしてもよい。例えば、コントローラ２０は、第２ユーザにより収集対象として指定された変数が公開変数リストＬに含まれるか否かを判定する。コントローラ２０は、第２ユーザにより収集対象として指定された変数が公開変数リストＬに含まれる場合、変数の値の取得を許可し、第２ユーザにより収集対象として指定された変数が公開変数リストＬに含まれない場合、変数の値の取得を禁止する。この処理は、産業装置３０によって実行されてもよい。この場合、産業装置３０は、公開変数以外の変数については、外部からのレジスタ読み出しを禁止することになる。
【０１１９】
また例えば、収集設定は、収集対象の変数、収集頻度、又は開始条件以外の設定であってもよく、例えば、収集データのデータ形式、収集データの送信先、又は収集データを収集する産業装置３０などの設定であってもよい。また例えば、第２ユーザにより収集設定が行われる場合を説明したが、特に第２ユーザによる収集設定が行われなくてもよい。この場合、公開変数の全てが収集対象となってもよい。また例えば、記憶部２２の公開変数の値がＩｏＴ部２４にコピーされる場合を説明したが、特にコピーが行われることなく、ＣＰＵ２１がデータ収集を実行してもよい。また例えば、コントローラ２０と産業装置３０の間のネットワークと、コントローラ２０とサーバ５０の間のネットワークと、が異なる場合を説明したが、これらは同じネットワークであってもよい。また例えば、コントローラ２０がレジスタ情報Ｒに基づいて公開変数の値を取得する場合を説明したが、変数に対応するレジスタ操作は、産業装置３０側で実行されてもよい。また例えば、第１ユーザとは異なる第２ユーザによってデータ収集が行われる場合を説明したが、データ収集を行うユーザと、コントローラ２０及び産業装置３０の少なくとも一方のユーザと、は同じであってもよい。
【０１２０】
また例えば、図３又は図９に示すようにして、第１ユーザ端末１０、コントローラ２０、産業装置３０、第２ユーザ端末４０、及びサーバ５０の各々により各機能を分担される場合を説明したが、機能の分担は、図３又は図９の例に限られない。例えば、取得部２０１及び収集部２０４の少なくとも一方が、第１ユーザ端末１０、第２ユーザ端末４０、又はサーバ５０によって実現されてもよい。また例えば、記録部５０１が第１ユーザ端末１０、コントローラ２０、又は第２ユーザ端末４０によって実現されてもよい。また例えば、各機能が複数のコンピュータによって分担されるのではなく、１つのコンピュータによって実現されてもよい。また例えば、収集データは、データ収集システム１以外の外部のコンピュータに記録されてもよい。
【０１２１】
また、以上説明した実施形態は具体例として示したものであり、本明細書にて開示される発明をこれら具体例の構成やデータ格納例そのものに限定するものではない。当業者はこれら開示された実施形態に種々の変形、例えば、物理的構成の形状や数、データ構造、処理の実行順を変更したりしてもよい。本明細書にて開示される発明の技術的範囲は、そのようになされた変形をも含むものと理解すべきである。
【符号の説明】
【０１２２】
１  データ収集システム、１１，２１，３１，４１，５１  ＣＰＵ、１２，２２，３２，４２，５２  記憶部、１３，２３，３３，４３，５３  通信部、２４  ＩｏＴ部、１４，４４  操作部、１５，４５  表示部、１０  第１ユーザ端末、２０  コントローラ、３０  産業装置、４０  第２ユーザ端末、５０  サーバ、Ｄ１  変数値データ、Ｄ２  収集設定データ、１００  データ記憶部、１０１  公開変数設定部、２００  データ記憶部、２００Ａ  第１データ記憶部、２００Ｂ  第２データ記憶部、２０１  取得部、２０２  取得部、２０２  動作制御部、２０３  コピー部、２０４  収集部、３００  データ記憶部、３０１  工程実行部、４００  データ記憶部、４０１  収集設定部、５００  データ記憶部、５０１  記録部、５０２  動作指令送信部、Ｌ  公開変数リスト、Ｎ  インターネット、Ｒ  レジスタ情報。
【図１】
0006849029.tif 000002
【図２】
0006849029.tif 000003
【図３】
0006849029.tif 000004
【図４】
0006849029.tif 000005
【図５】
0006849029.tif 000006
【図６】
0006849029.tif 000007
【図７】
0006849029.tif 000008
【図８】
0006849029.tif 000009
【図９】
0006849029.tif 000010