特許第6849029号(P6849029)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社安川電機の特許一覧

特許6849029データ収集システム、データ収集方法、及びプログラム
<>
  • 特許6849029-データ収集システム、データ収集方法、及びプログラム 図000002
  • 特許6849029-データ収集システム、データ収集方法、及びプログラム 図000003
  • 特許6849029-データ収集システム、データ収集方法、及びプログラム 図000004
  • 特許6849029-データ収集システム、データ収集方法、及びプログラム 図000005
  • 特許6849029-データ収集システム、データ収集方法、及びプログラム 図000006
  • 特許6849029-データ収集システム、データ収集方法、及びプログラム 図000007
  • 特許6849029-データ収集システム、データ収集方法、及びプログラム 図000008
  • 特許6849029-データ収集システム、データ収集方法、及びプログラム 図000009
  • 特許6849029-データ収集システム、データ収集方法、及びプログラム 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6849029
(24)【登録日】2021年3月8日
(45)【発行日】2021年3月24日
(54)【発明の名称】データ収集システム、データ収集方法、及びプログラム
(51)【国際特許分類】
   G05B 19/05 20060101AFI20210315BHJP
   G16Y 10/25 20200101ALI20210315BHJP
   G16Y 20/20 20200101ALI20210315BHJP
   G16Y 40/10 20200101ALI20210315BHJP
【FI】
   G05B19/05 DZIT
   G16Y10/25
   G16Y20/20
   G16Y40/10
【請求項の数】15
【全頁数】23
(21)【出願番号】特願2019-158087(P2019-158087)
(22)【出願日】2019年8月30日
(65)【公開番号】特開2021-36392(P2021-36392A)
(43)【公開日】2021年3月4日
【審査請求日】2019年9月12日
【早期審査対象出願】
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】110000154
【氏名又は名称】特許業務法人はるか国際特許事務所
(72)【発明者】
【氏名】進来 太彦
(72)【発明者】
【氏名】小畑 慎一朗
(72)【発明者】
【氏名】正垣 隆章
(72)【発明者】
【氏名】安田 恵
【審査官】 影山 直洋
(56)【参考文献】
【文献】 特開2002−163016(JP,A)
【文献】 特開2011−248833(JP,A)
【文献】 特表2011−527806(JP,A)
【文献】 特開平11−338535(JP,A)
【文献】 特開平11−015520(JP,A)
【文献】 特開2019−096210(JP,A)
【文献】 特開2017−102720(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05
G16Y 10/25
G16Y 20/20
G16Y 40/10
(57)【特許請求の範囲】
【請求項1】
制御装置により制御される産業装置の複数の変数のうち、公開可能であり、前記制御装置により周期的に取得される公開変数を設定する公開変数設定部と、
前記公開変数に基づいて、前記産業装置に関するデータを収集する収集部と、
前記データを記憶部に記録する記録部と、
を有するデータ収集システムであって、
前記制御装置は、前記産業装置から前記公開変数の値を取得して記憶部に記録し、当該公開変数の値に基づいて、前記産業装置を制御する制御部を有し、
前記データ収集システムは、前記制御装置の前記記憶部に記録された前記公開変数の値を、別の記憶部にコピーするコピー部を更に有し、
前記収集部は、前記別の記憶部にコピーされた前記公開変数の値に基づいて、前記データを収集する、
データ収集システム。
【請求項2】
前記制御部は、前記制御装置のCPUにより実現され、
前記別の記憶部は、前記制御装置のIoT部により実現され、
前記記憶部は、前記IoT部とは異なる、前記制御装置内のメモリにより実現される、
請求項1に記載のデータ収集システム。
【請求項3】
前記記憶部と前記別の記憶部の各々には、全ての前記公開変数の値が記録され、
前記IoT部は、前記別の記憶部に記憶された前記全ての公開変数のうちの一部を、収集対象の公開変数として絞り込み、
前記収集部は、前記絞り込まれた一部の公開変数に基づいて、前記データを収集する、
請求項2に記載のデータ収集システム。
【請求項4】
前記コピー部は、前記記憶部に記録された前記公開変数の値を前記別の記憶部にコピーする処理を周期的に実行する、
請求項1〜3の何れかに記載のデータ収集システム。
【請求項5】
前記データ収集システムは、前記公開変数設定部を有する第1ユーザ端末を有し、
前記第1ユーザ端末の前記公開変数設定部は、前記公開変数のリストを設定し、
前記制御装置は、第2ユーザ端末に対し、前記第1ユーザ端末の前記公開変数設定部により設定された前記リストを送信し、
前記収集部は、前記リストのうち、前記第2ユーザ端末において指定された公開変数に基づいて、前記データを収集する、
請求項1〜4の何れかに記載のデータ収集システム。
【請求項6】
前記データ収集システムは、前記公開変数に基づいて、前記データに関する収集設定を行う収集設定部を更に有し、
前記収集部は、前記公開変数と前記収集設定とに基づいて、前記データを収集する、
請求項1〜5の何れかに記載のデータ収集システム。
【請求項7】
前記収集設定は、収集対象となる前記公開変数の種類を示し、
前記収集部は、前記収集設定が示す種類に基づいて、前記データを収集する、
請求項6に記載のデータ収集システム。
【請求項8】
前記収集設定は、前記データの収集頻度を示し、
前記収集部は、前記収集設定が示す収集頻度に基づいて、前記データを収集する、
請求項6又は7に記載のデータ収集システム。
【請求項9】
前記収集設定は、データ収集の開始条件を示し、
前記収集部は、前記収集設定が示す開始条件に基づいて、前記データの収集を開始する、
請求項6〜8の何れかに記載のデータ収集システム。
【請求項10】
前記データ収集システムは、前記データに基づいて、前記制御装置に対し、前記産業装置に関する動作指令を送信する動作指令送信部、
を更に有する請求項1〜9の何れかに記載のデータ収集システム。
【請求項11】
前記制御装置と前記産業装置との各々は、同期通信可能なネットワークに接続され、
前記収集部は、前記ネットワークとは異なるネットワークに基づいて、前記データを送信する、
請求項1〜10の何れかに記載のデータ収集システム。
【請求項12】
前記データ収集システムは、前記公開変数と、前記産業装置におけるレジスタと、の関係を示すレジスタ情報に基づいて、前記産業装置から前記公開変数の値を取得する取得部を更に有し、
前記収集部は、前記取得部により取得された前記公開変数の値に基づいて、前記データを収集する、
請求項1〜11の何れかに記載のデータ収集システム。
【請求項13】
前記公開変数設定部は、前記制御装置及び前記産業装置の少なくとも一方のユーザにより指定された前記公開変数を設定し、
前記収集部は、前記ユーザとは異なるユーザに対し、収集した前記データを送信し、
前記記録部は、前記異なるユーザに対応して送信された前記データを前記記憶部に記録する、
請求項1〜12の何れかに記載のデータ収集システム。
【請求項14】
制御装置により制御される産業装置の複数の変数のうち、公開可能であり、前記制御装置により周期的に取得される公開変数を設定し、
前記公開変数に基づいて、前記産業装置に関するデータを収集し、
前記データを記憶部に記録するデータ収集方法であって、
前記制御装置は、前記産業装置から前記公開変数の値を取得して記憶部に記録し、当該公開変数の値に基づいて、前記産業装置を制御する制御部を有し、
前記データ収集方法は、
前記制御装置の前記記憶部に記録された前記公開変数の値を、別の記憶部にコピーし、
前記別の記憶部にコピーされた前記公開変数の値に基づいて、前記データを収集する、
データ収集方法。
【請求項15】
制御装置により制御される産業装置の複数の変数のうち、公開可能であり、前記制御装置により周期的に取得される公開変数に基づいて、前記産業装置に関するデータを収集する収集部、
としてコンピュータを機能させるためのプログラムであって、
前記制御装置は、前記産業装置から前記公開変数の値を取得して記憶部に記録し、当該公開変数の値に基づいて、前記産業装置を制御する制御部を有し、
前記プログラムは、前記制御装置の前記記憶部に記録された前記公開変数の値を、別の記憶部にコピーするコピー部として前記コンピュータを更に機能させ、
前記収集部は、前記別の記憶部にコピーされた前記公開変数の値に基づいて、前記データを収集する、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ収集システム、データ収集方法、及びプログラムに関する。
【背景技術】
【0002】
特許文献1には、制御装置により制御される産業装置の動作に関するデータを収集し、収集したデータをクラウドサーバにアップロードし、解析者に対してデータの解析を依頼するシステムが記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】国際公開第2015−068210号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明が解決しようとする課題は、例えば、公開可能な公開変数に基づいて産業装置に関するデータを収集して記録することである。
【課題を解決するための手段】
【0005】
本発明の一側面に係るデータ収集システムは、制御装置により制御される産業装置の複数の変数のうち、公開可能な公開変数を設定する公開変数設定部と、前記公開変数に基づいて、前記産業装置に関するデータを収集する収集部と、前記データを記憶部に記録する記録部と、を有する。
【0006】
本発明の一側面に係るデータ収集方法は、制御装置により制御される産業装置の複数の変数のうち、公開可能な公開変数を設定し、前記公開変数に基づいて、前記産業装置に関するデータを収集し、前記データを記憶部に記録する。
【0007】
本発明の一側面に係るプログラムは、制御装置により制御される産業装置の複数の変数のうち、公開可能な公開変数に基づいて、前記産業装置に関するデータを収集する収集部、としてコンピュータを機能させる。
【0008】
本発明の一側面に係るデータ収集システムは、前記公開変数に基づいて、前記データに関する収集設定を行う収集設定部を更に有し、前記収集部は、前記公開変数と前記収集設定とに基づいて、前記データを収集する。
【0009】
本発明の一側面に係るデータ収集システムは、前記収集設定は、収集対象となる前記公開変数の種類を示し、前記収集部は、前記収集設定が示す種類に基づいて、前記データを収集する。
【0010】
本発明の一側面に係るデータ収集システムは、前記収集設定は、前記データの収集頻度を示し、前記収集部は、前記収集設定が示す収集頻度に基づいて、前記データを収集する。
【0011】
本発明の一側面に係るデータ収集システムは、前記収集設定は、データ収集の開始条件を示し、前記収集部は、前記収集設定が示す開始条件に基づいて、前記データの収集を開始する。
【0012】
本発明の一側面に係るデータ収集システムは、前記制御装置は、前記産業装置から前記公開変数の値を取得して記憶部に記録し、当該公開変数の値に基づいて、前記産業装置を制御する制御部を有し、前記収集部は、前記制御装置の前記記憶部に記録された前記公開変数の値に基づいて、前記データを収集する。
【0013】
本発明の一側面に係るデータ収集システムは、前記データ収集システムは、前記制御装置の前記記憶部に記録された前記公開変数の値を、別の記憶部にコピーするコピー部を更に有し、前記収集部は、前記別の記憶部にコピーされた前記公開変数の値に基づいて、前記データを収集する。
【0014】
本発明の一側面に係るデータ収集システムは、前記データ収集システムは、前記データに基づいて、前記制御装置に対し、前記産業装置に関する動作指令を送信する動作指令送信部、を更に有する。
【0015】
本発明の一側面に係るデータ収集システムは、前記制御装置と前記産業装置との各々は、同期通信可能なネットワークに接続され、前記収集部は、前記ネットワークとは異なるネットワークに基づいて、前記データを送信する。
【0016】
本発明の一側面に係るデータ収集システムは、前記データ収集システムは、前記公開変数と、前記産業装置におけるレジスタと、の関係を示すレジスタ情報に基づいて、前記産業装置から前記公開変数の値を取得する取得部を更に有し、前記収集部は、前記取得部により取得された前記公開変数の値に基づいて、前記データを収集する。
【0017】
本発明の一側面に係るデータ収集システムは、前記公開変数設定部は、前記制御装置及び前記産業装置の少なくとも一方のユーザにより指定された前記公開変数を設定し、前記収集部は、前記ユーザとは異なるユーザに対し、収集した前記データを送信し、前記記録部は、前記異なるユーザに対応して送信された前記データを前記記憶部に記録する。
【発明の効果】
【0018】
上記発明によれば、例えば、公開可能な公開変数に基づいて産業装置に関するデータを収集して記録することができる。
【図面の簡単な説明】
【0019】
図1】データ収集システムの全体構成の一例を示す図である。
図2】データ収集システムにおいて公開変数が設定される様子を示す図である。
図3】データ収集システムで実現される機能を示す機能ブロック図である。
図4】公開変数リストのデータ格納例を示す図である。
図5】レジスタ情報のデータ格納例を示す図である。
図6】変数値データのデータ格納例を示す図である。
図7】収集設定データのデータ格納例を示す図である。
図8】データ収集システムで実行される処理の一例を示すフロー図である。
図9】変形例(3)の機能ブロック図である。
【発明を実施するための形態】
【0020】
[1.データ収集システムの全体構成]
本発明の発明者の見地によれば、産業装置の変数に基づいて産業装置に関するデータを収集する場合に、公開する変数と公開しない変数との区別がなく、どの変数についてもデータを収集できるようになっていた。そこで本発明の発明者は、公開可能な公開変数に基づいて産業装置に関するデータを収集して記録するために鋭意研究開発を行った結果、新規かつ独創的なデータ収集システム等に想到した。以降、本実施形態に係るデータ収集システム等を詳細に説明する。
【0021】
図1は、データ収集システムの全体構成の一例を示す図である。図1に示すように、データ収集システム1は、第1ユーザ端末10、コントローラ20、産業装置30、第2ユーザ端末40、及びサーバ50を含む。を含み、これらは互いに通信可能に接続される。本実施形態では、第1ユーザ端末10、コントローラ20、及び産業装置30の各々は、Ethernet(登録商標)又は専用の通信規格等の任意のネットワークに接続され、コントローラ20、第2ユーザ端末40、及びサーバ50の各々は、インターネットNに接続される。
【0022】
第1ユーザ端末10は、第1ユーザが操作するコンピュータである。第1ユーザは、コントローラ20及び産業装置30の少なくとも一方のユーザ(中間的なユーザ)であり、例えば、装置メーカのエンジニア、又は、コントローラ20及び産業装置30が稼働する施設における保守担当者等である。第1ユーザは、コントローラ20及び産業装置30の両方を管理してもよいし、何れか一方のみを管理してもよい。即ち、コントローラ20のユーザと、産業装置30のユーザと、は同じであってもよいし、異なってもよい。例えば、第1ユーザは、第1ユーザ端末10を操作して、コントローラ20及び産業装置30の少なくとも一方のプログラムの作成、コントローラ20及び産業装置30の少なくとも一方のパラメータの設定、又は、異常時の復旧作業等を行う。
【0023】
例えば、第1ユーザ端末10は、パーソナルコンピュータ、携帯電話(スマートフォンを含む)、又は携帯端末(タブレット型端末を含む)である。第1ユーザ端末10は、CPU11、記憶部12、通信部13、操作部14、及び表示部15を含む。
【0024】
CPU11は、少なくとも1つのプロセッサを含む。記憶部12は、RAMやハードディスクを含み、各種プログラムやデータを記憶する。CPU11は、これらプログラムやデータに基づいて各種処理を実行する。通信部13は、ネットワークカードや各種通信コネクタ等の通信インタフェースを含み、他の装置との通信を行う。操作部14は、マウスやキーボード等の入力デバイスである。表示部15は、液晶ディスプレイ又は有機ELディスプレイ等であり、CPU11の指示により各種画面を表示する。
【0025】
コントローラ20は、少なくとも1つの産業装置30を制御するコンピュータである。コントローラ20は、本発明に係る制御装置の一例である。このため、本実施形態でコントローラ20と記載した箇所は、制御装置と読み替えることができる。コントローラ20は、他の装置を制御可能なコンピュータであればよく、例えば、PLC(Programmable Logic Controller)であってもよいし、PLCと同等の機能を有する他の名称のコンピュータであってもよい。また例えば、コントローラ20は、モータコントローラ又はロボットコントローラ等であってもよい。データ収集システム1全体は、ラインよりも小さな単位であるセルと呼ばれることがあり、この場合には、コントローラ20は、セルコントローラと呼ばれることもある。
【0026】
コントローラ20は、CPU21、記憶部22、通信部23、及びIoT(Internet of Things)部24を含む。CPU21、記憶部22、及び通信部23の物理的構成は、それぞれCPU11、記憶部12、及び通信部13と同様であってよい。
【0027】
IoT部24は、インターネットN等のネットワークを介して、他のコンピュータにデータを送信するための集積回路である。例えば、IoT部24は、CPU21、記憶部22、及び通信部23の各々と同等の機能のCPU、記憶部、及び通信部を有してもよいし、CPUのような汎用プロセッサではなく、特定の処理を実行するために作成された専用回路であってもよい。例えば、CPU21、記憶部22、及び通信部23の各々は、主に産業装置30を制御するために利用され、IoT部24は、主にデータの収集に利用される。なお、データ収集の機能をCPU21、記憶部22、及び通信部23の各々に持たせる場合には、IoT部24は省略してもよい。
【0028】
産業装置30は、予め定められた工程を実行する装置である。産業装置30は、コントローラ20により制御される被制御装置、又は、コントローラ20の管理下に置かれる被管理装置ということもできる。産業装置30は、任意の種類の機器を適用可能であり、例えば、ロボットコントローラ、産業用ロボット、モータコントローラ、工作機械、プレス加工機、又は搬送機器などである。PLCも産業装置の一種である。産業装置30は、CPU31、記憶部32、及び通信部33を含む。CPU31、記憶部32、及び通信部33の物理的構成は、それぞれCPU11、記憶部12、及び通信部13と同様であってよい。
【0029】
なお、産業装置30は、他の物理的構成が含まれもよく、例えば、ASICと呼ばれる特定用途向けの集積回路が含まれてもよい。また、産業装置30には、任意の物理的構成が接続されてよく、例えば、モータ等の制御対象の機器、モータ等の動作を検出するためのセンサ、加工対象となるワークの状態を撮影するカメラ、入出力機器、又は他の産業装置などが接続されていてもよい。コントローラ20の制御対象となる産業装置30の台数は、任意の台数であってよく、例えば、1台だけであってもよいし、2台以上であってもよい。
【0030】
第2ユーザ端末40は、第2ユーザが操作するコンピュータである。第2ユーザは、データの収集者である。第2ユーザは、データ収集システム1のエンドユーザであり、例えば、データの収集や解析をする会社の担当者である。例えば、第2ユーザは、収集したデータを管理したり、データの解析をしたりする。本実施形態では、第2ユーザは、第1ユーザとは異なるユーザである。例えば、第1ユーザの会社と、第2ユーザの会社と、は異なる。
【0031】
例えば、第2ユーザ端末40は、パーソナルコンピュータ、携帯電話(スマートフォンを含む)、又は携帯端末(タブレット型端末を含む)である。第2ユーザ端末40は、CPU41、記憶部42、通信部43、操作部44、及び表示部45を含む。CPU41、記憶部42、通信部43、操作部44、及び表示部45の物理的構成は、それぞれCPU11、記憶部12、通信部13、操作部14、及び表示部15と同様であってよい。
【0032】
サーバ50は、サーバコンピュータである。サーバ50は、CPU51、記憶部52、及び通信部53を含む。CPU51、記憶部52、及び通信部53の物理的構成は、それぞれCPU11、記憶部12、及び通信部13と同様であってよい。サーバ50は、コントローラ20が収集したデータを管理したり、データに基づいて産業装置30の動作を解析したりする。本実施形態では、サーバ50は、第2ユーザの管理下に置かれる。
【0033】
なお、記憶部12,22,32,42,52の各々に記憶されるものとして説明するプログラム及びデータは、ネットワークを介して供給されるようにしてもよい。また、各装置のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、光ディスクドライブやメモリカードスロット)や外部機器と直接的に接続するための入出力部(例えば、USB端子)が含まれていてもよい。この場合、情報記憶媒体に記憶されたプログラムやデータが、読取部又は入出力部を介して供給されるようにしてもよい。
【0034】
[2.データ収集システムの概要]
本実施形態では、コントローラ20は、産業装置30を制御するための制御プログラムを記憶する。例えば、産業装置30が複数の工程を所定の順序で実行する場合、制御プログラムには、各工程の実行順が記述されている。また例えば、複数の産業装置30が所定の順序で動作する場合、制御プログラムには、各産業装置30の動作順が記述されている。コントローラ20は、制御プログラムに基づいて、産業装置30に対して指示を送る。産業装置30は、工程を実行するための装置プログラムと、変数と、を関連付けて記憶する。産業装置30は、コントローラ20からの指示を受信し、変数の値に基づいて、装置プログラムを実行する。
【0035】
工程とは、産業装置30が行う作業又は動作である。工程は、1つの作業だけから構成されてもよいし、複数の作業の組み合わせから構成されてもよい。工程は、産業装置30の用途に応じた任意の内容であってよく、例えば、ワークの認識、ワークの把持、扉の開閉、ワークのセット、又は工作機器を利用した加工などである。産業装置30は、少なくとも1つの工程を行う。産業装置30が行う工程の数は、任意の数であってよく、産業装置30は、1つの工程だけを行ってもよいし、複数の工程を行ってもよい。
【0036】
装置プログラムは、産業装置30の動作を定義したプログラムである。装置プログラムには、各工程における個々の手順が定義されている。装置プログラムは、産業装置30に応じた任意の言語で作成可能であり、例えば、ラダー言語又はロボット言語等によって作成される。本実施形態では、工程ごとに装置プログラムが用意されている。このため、ある産業装置30がn個(nは自然数)の工程を行うとすると、当該産業装置30は、少なくともn個の装置プログラムを記憶していることになる。
【0037】
変数は、工程の実行条件となる情報である。例えば、産業装置30は、工程を開始するための変数、工程を一時停止するための変数、又は、工程を終了するための変数を記憶する。変数は、入出力変数と呼ばれることもある。変数は、産業装置30の記憶部32における特定のレジスタに格納される。変数とレジスタの関係(どの変数をどのレジスタに格納するか)については、装置プログラムの作成者等によって予め指定されているものとする。レジスタに格納された変数は、他の機器(例えば、コントローラ20)によって適宜参照可能となる。
【0038】
本実施形態では、産業装置30は、工程の実行条件となる変数以外にも、途中の計算結果を示す変数、又は、センサにより検出された物理量(例えば、トルクセンサにより検出されたトルク値、又は、エンコーダにより検出されたモータの回転速度)を示す変数といった種々の変数を記憶する。このような変数の中には、第2ユーザに公開しない方が好ましい変数もある。例えば、第1ユーザのノウハウとして隠したい変数、又は、装置プログラムに詳しくない第2ユーザが取り扱うと産業装置30の誤動作を起こす可能性のある変数については、第2ユーザに公開しない方が好ましい。
【0039】
そこで、本実施形態のデータ収集システム1は、産業装置30における複数の変数の中から、公開可能な公開変数を設定するようにしている。例えば、第1ユーザは、第1ユーザ端末10を操作して、制御プログラムと装置プログラムを作成し、産業装置30における複数の変数を定義すると、当該複数の変数の中から、第2ユーザに公開可能な変数である公開変数を設定する。
【0040】
図2は、データ収集システム1において公開変数が設定される様子を示す図である。図2の(1)に示すように、第1ユーザは、第1ユーザ端末10を操作して第2ユーザに対して公開可能な公開変数を指定し、公開変数リストを作成してコントローラ20に設定する。第1ユーザは、産業装置30における複数の変数のうち、任意の変数を公開変数として設定することができる。第1ユーザは、全ての変数を公開変数として設定してもよいが、本実施形態では、一部の変数についてのみ公開変数として設定するものとする。公開変数リストは、コントローラ20に記憶される。
【0041】
図2の(2)に示すように、コントローラ20は、第2ユーザ端末40に対し、公開変数リストを送信する。第2ユーザ端末40が公開変数リストを受信すると、第2ユーザは、第2ユーザ端末40を操作してデータ収集の対象となる公開変数を選択する。第2ユーザは、公開変数リストに示された全ての公開変数をデータ収集の対象として選択してもよいし、その一部だけをデータ収集の対象として選択してもよい。
【0042】
図2の(3)に示すように、第2ユーザ端末40は、コントローラ20に対し、第2ユーザが選択した公開変数を示す収集設定データを送信する。コントローラ20は、収集設定データを受信すると、収集設定データをIoT部24に記憶する。以降、第2ユーザが選択した公開変数に基づいて、データ収集が可能な状態となる。
【0043】
本実施形態では、コントローラ20のCPU21が、産業装置30から全ての公開変数を取得し、サーバ50に対して送信される公開変数が、IoT部24によって絞られる場合を説明する。このため、図2の(4)に示すように、コントローラ20のCPU21は、産業装置30から全ての公開変数の値を取得し、記憶部22に記録する。記憶部22に記録された公開変数の値は、IoT部24にコピーされる。IoT部24は、収集設定データに基づいて、自身にコピーされた公開変数の中から、第2ユーザが選択した公開変数の値を絞り込む。
【0044】
図2の(5)に示すように、コントローラ20のIoT部24は、第2ユーザが選択した公開変数の値に基づいて、産業装置30に関するデータを収集し、任意のタイミングでサーバ50にデータを送信する。サーバ50は、データを受信すると、データベースに蓄積する。データベースに蓄積されたデータは、任意の用途で利用可能であり、例えば、第2ユーザの解析のために利用されてもよいし、産業装置30において異常が発生した場合の復旧に利用されてもよい。
【0045】
以上のように、データ収集システム1は、第1ユーザが設定した公開変数を示す公開変数リストを第2ユーザに対して送信する。データ収集システム1は、公開変数リストの中から第2ユーザが選択した公開変数に基づいて、産業装置30に関するデータを収集し、サーバ50に蓄積する。これにより、第2ユーザが選択した公開変数の値だけを第2ユーザに収集させ、公開変数として設定されていない変数の値については第2ユーザに収集させないようにしている。以降、データ収集システム1の詳細を説明する。
【0046】
[3.データ収集システムで実現される機能]
図3は、データ収集システム1で実現される機能を示す機能ブロック図である。本実施形態では、第1ユーザ端末10、コントローラ20、産業装置30、第2ユーザ端末40、及びサーバ50の各々で実現される機能について説明する。
【0047】
[3−1.第1ユーザ端末で実現される機能]
図3に示すように、第1ユーザ端末10では、データ記憶部100及び公開変数設定部101が実現される。
【0048】
[データ記憶部]
データ記憶部100は、記憶部12を主として実現される。データ記憶部100は、コントローラ20及び産業装置30の各々に対して設定したデータを記憶する。例えば、データ記憶部100は、制御プログラム、装置プログラム、公開変数リスト、及びレジスタ情報を記憶する。
【0049】
本実施形態では、産業装置30が変数に基づいて装置プログラムを実行するので、制御プログラムは、装置プログラムに関連付けられた変数の値を制御するためのプログラムである。例えば、産業装置30に複数の工程を次々と実行させる場合、制御プログラムには、各工程の装置プログラムに関連付けられた変数の値を変更するための指示が記述される。他にも例えば、ある装置プログラムの終了が別の装置プログラムの開始の条件となる場合には、制御プログラムには、ある装置プログラムの終了を示す変数が所定の値になることが、別の装置プログラムの開始の条件として記述される。なお、特に工程の制御に変数を用いない場合には、制御プログラムは、ラダー言語又はロボット言語等の公知の言語によって作成されるようにしてもよい。例えば、第1ユーザは、第1ユーザ端末10にインストールされたエンジニアリングツールを利用して、制御プログラムを作成する。
【0050】
本実施形態では、変数に基づいて装置プログラムが実行されるので、データ記憶部100は、装置プログラムに関連付けられた変数の設定も記憶する。変数は、任意の内容の変数を設定可能であり、例えば、装置プログラムを開始させるためのstart変数、装置プログラムの終了を示すend変数、装置プログラムの実行中に異常が発生したことを示すabort変数、及びビジー状態になったことを示すbusy変数などを設定可能である。例えば、第1ユーザは、第1ユーザ端末10にインストールされたエンジニアリングツールを利用して、装置プログラムを作成し、変数の設定を行う。先述したように、装置プログラムは、ラダー言語又はロボット言語等の公知の言語によって作成されるようにすればよい。
【0051】
図4は、公開変数リストのデータ格納例を示す図である。図4に示すように、公開変数リストLは、公開変数として指定された変数を識別する情報を含む。例えば、公開変数リストLには、公開変数として指定された変数の名前と、変数のコメントと、が格納されている。変数の名前は、変数を識別する情報の一例であり、名前以外にもIDのような情報によって変数が識別されてもよい。コメントは、第1ユーザにより入力された任意の文字列であり、変数が示す内容や用途等の情報が示される。なお、公開変数リストLは、図4の例に限られず、公開変数リストLには、全ての変数の一覧と、公開変数であるか否かを示すフラグと、が格納されているようにしてもよい。この場合、第1ユーザによりフラグの値が指定されることになる。
【0052】
図5は、レジスタ情報のデータ格納例を示す図である。図5に示すように、レジスタ情報Rは、産業装置30における複数の変数の各々が格納されたレジスタ(アドレス)を示す。例えば、レジスタ情報Rは、変数ごとに、当該変数の値が格納されたレジスタのアドレスを示す。なお、レジスタ情報Rには、産業装置30の全ての変数のレジスタが示されてもよいし、一部の変数のレジスタだけが示されてもよい。例えば、レジスタ情報Rには、公開変数のレジスタだけが示されてもよい。例えば、第1ユーザは、装置プログラムの作成時等において、変数とレジスタの対応関係を指定し、レジスタ情報を作成する。
【0053】
なお、データ記憶部100が記憶するデータは、上記の例に限られない。例えば、データ記憶部100は、第1ユーザがプログラムの作成や各種設定作業をするためのエンジニアリングツールを記憶してもよい。また例えば、データ記憶部100は、作成途中の制御プログラムや装置プログラムのコード情報を記憶してもよい。
【0054】
[公開変数設定部]
公開変数設定部101は、CPU11を主として実現される。公開変数設定部101は、コントローラ20により制御される産業装置30の複数の変数のうち、公開可能な公開変数を設定する。公開変数を設定するとは、複数の変数の中から公開変数を決定することである。別の言い方をすれば、公開変数として指定された変数を識別する情報をコントローラ20等のコンピュータに記録することは、公開変数を設定することに相当する。本実施形態では、公開変数リストLを作成することが、公開変数を設定することに相当する。
【0055】
例えば、公開変数設定部101は、コントローラ20及び産業装置30の少なくとも一方のユーザである第1ユーザにより指定された公開変数を設定する。公開変数設定部101は、第1ユーザにより指定された公開変数を識別する情報を公開変数リストLに格納する。なお、フラグの値によって公開変数を識別する場合には、公開変数設定部101は、第1ユーザにより指定された公開変数のフラグの値を決定する。また、公開変数は、第1ユーザ以外の者によって指定されてもよく、例えば、産業装置30の製造時に既に指定されているようにしてもよい。
【0056】
[3−2.コントローラで実現される機能]
図3に示すように、コントローラ20では、データ記憶部200、取得部201、動作制御部202、コピー部203、及び収集部204が実現される。
【0057】
[データ記憶部]
データ記憶部200は、記憶部22及びIoT部24を主として実現される。データ記憶部200は、産業装置30の制御、データの収集、及び収集したデータの送信に必要なデータを記憶する。本実施形態では、データ記憶部200は、第1データ記憶部200Aと、第2データ記憶部200Bと、を含む。第1データ記憶部200Aは、記憶部22を主として実現され、第2データ記憶部200Bは、IoT部24を主として実現される。
【0058】
第1データ記憶部200Aは、主に産業装置30の制御に必要なデータを記憶し、例えば、制御プログラム、公開変数リストL、レジスタ情報R、及び変数値データを記憶する。第1データ記憶部200Aの制御プログラム、公開変数リストL、及びレジスタ情報Rは、データ記憶部100の制御プログラム、公開変数リストL、及びレジスタ情報Rと同じである。本実施形態では、第1ユーザが作成した制御プログラム、公開変数リストL、及びレジスタ情報Rは、第1データ記憶部200Aに書き込まれる。
【0059】
図6は、変数値データD1のデータ格納例を示す図である。図6に示すように、変数値データD1は、公開変数の現在値を示すデータである。例えば、変数値データD1には、公開変数ごとに、現在値が示される。変数値データD1は、後述する取得部201の処理によって更新される。なお、変数値データD1には、公開変数以外の変数の現在値が格納されてもよい。
【0060】
第2データ記憶部200Bは、主にデータ収集に必要なデータを記憶し、例えば、変数値データD1と、収集設定データと、を記憶する。変数値データD1は、第1データ記憶部200Aに記憶された変数値データD1と同じであり、後述するコピー部203によってコピーされる。
【0061】
図7は、収集設定データのデータ格納例を示す図である。図7に示すように、収集設定データD2は、第2ユーザにより指定された収集設定を示すデータである。本実施形態では、収取対象の公開変数の種類が収集設定に相当する場合を説明する。例えば、収集設定データD2には、第2ユーザにより収集対象として指定された公開変数を識別する情報を含む。収集設定データD2は、第2ユーザ端末40から取得されて第2データ記憶部200Bに記録される。このため、第2データ記憶部200Bの収集設定データD2は、データ記憶部400の収集設定データD2と同じである。
【0062】
なお、データ記憶部200は、第1データ記憶部200Aと第2データ記憶部200Bに分かれていなくてもよい。例えば、CPU21が産業装置30の制御だけでなく、データ収集についての処理も実行し、IoT部24を省略する場合には、第2データ記憶部200Bは省略してもよい。この場合、第2データ記憶部200Bに記憶されるものとして説明したデータは、第1データ記憶部200Aに記憶されるようにすればよい。
【0063】
[取得部]
取得部201は、CPU21を主として実現される。取得部201は、産業装置30から公開変数の値を取得する。本実施形態では、公開変数に対応するレジスタがレジスタ情報Rに示されているので、取得部201は、公開変数と、産業装置30におけるレジスタと、の関係を示すレジスタ情報Rに基づいて、産業装置30から公開変数の値を取得する。
【0064】
取得部201は、公開変数に関連付けられたレジスタの読み出し要求を産業装置30に送信する。産業装置30は、読み出し要求を受信すると、対象となるレジスタを読み出してコントローラ20に送信する。取得部201は、産業装置30から受信した公開変数の値をデータ記憶部200に記録する。本実施形態では、取得部201が定期的(周期的)に公開変数の値を取得する場合を説明するが、取得部201は、不定期的(非周期的)に公開変数の値を取得してもよい。
【0065】
なお、本実施形態では、コントローラ20側で変数とレジスタの対応関係を管理している場合を説明するが、コントローラ20側で特にこれらの対応関係を管理しなくてもよい。この場合、産業装置30側で変数とレジスタの対応関係を管理し、取得部201は、値を取得したい変数を識別する情報を産業装置30に送信すればよい。産業装置30は、コントローラ20から受信した情報が示す変数に対応するレジスタを読み出して、その値をコントローラ20に送信すればよい。
【0066】
[動作制御部]
動作制御部202は、CPU21を主として実現される。動作制御部202は、制御プログラムに基づいて、産業装置30の動作を制御する。例えば、動作制御部202は、産業装置30に対して指示を送り、産業装置30は、当該指示に基づいて動作する。本実施形態では、装置プログラムに関連付けられた変数の値に基づいて産業装置30が動作するので、例えば、動作制御部202は、産業装置30に対し、装置プログラムを開始させるための変数の値を変える旨の指示を送り、産業装置30は、当該指示に基づいて変数の値を変えて装置プログラムを実行する。なお、産業装置30の動作制御のために特に変数を利用しない場合には、動作制御部202は、産業装置30が実行すべき動作を示すコマンドを送信することによって、産業装置30の動作を制御すればよい。
【0067】
公開変数は、産業装置30の動作に用いられることがあるので、動作制御部202は、産業装置30から公開変数の値を取得してデータ記憶部200に記録し、当該公開変数の値に基づいて、産業装置30を制御する。例えば、ある装置プログラムを実行させた後に、別の装置プログラムを実行させる場合、動作制御部202は、ある装置プログラムの終了を示す公開変数の値が所定の値になった場合に、産業装置30に対し、別の装置プログラムの実行を指示する。他にも例えば、動作制御部202は、装置プログラムの異常発生を示す公開変数が所定の値になった場合に、産業装置30に対し、動作の停止を指示するようにしてもよい。
【0068】
[コピー部]
コピー部203は、IoT部24を主として実現される。コピー部203は、コントローラ20の第1データ記憶部200Aに記録された公開変数の値を、別の第2データ記憶部200Bにコピーする。本実施形態では、コピー部203が定期的(周期的)に公開変数の値をコピーする場合を説明するが、取得部201は、不定期的(非周期的)に公開変数の値をコピーしてもよい。また、取得部201が公開変数を取得する周期と、コピー部203が公開変数をコピーする周期と、は同じであってもよいし、異なってもよい。
【0069】
公開変数の値は、変数値データD1に示されているので、コピー部203は、第1データ記憶部200Aに記録された変数値データD1を、第2データ記憶部200Bにそのままコピーすることになる。このため、第2データ記憶部200Bの変数値データD1は、第1データ記憶部200Aの最新の変数値データD1に置き換わる(上書きされる)ことになる。コピー部203は、第1データ記憶部200Aに記憶された変数値データD1の一部の内容だけをコピーしてもよく、例えば、収集対象となった公開変数の値だけをコピーしてもよい。
【0070】
[収集部]
収集部204は、IoT部24を主として実現される。収集部204は、公開変数に基づいて、産業装置30に関するデータを収集する。産業装置30に関するデータとは、産業装置30の動作に関するデータであり、公開変数の値が格納されたデータである。以降、このデータを収集データという。収集データには、ある一時点の公開変数の値が格納されてもよいし、公開変数の値の時系列的な変化が格納されてもよい。また、収集データには、1つの公開変数の値だけが格納されていてもよいし、複数の公開変数の値が格納されていてもよい。他にも例えば、収集データには、複数の公開変数の値に基づいて計算された値が格納されていてもよい。
【0071】
収集データを収集するとは、収集データに格納すべき公開変数の値を取得することである。別の言い方をすれば、収集データを収集するとは、公開変数の値に基づいて、収集データを作成することである。収集部204は、コントローラ20のデータ記憶部200に記録された公開変数の値に基づいて、収集データを収集する。
【0072】
本実施形態では、第2ユーザにより収集設定が指定されるので、収集部204は、公開変数と収集設定とに基づいて、収集データを収集する。例えば、収集設定データD2に収集対象となる公開変数の種類が示されているので、収集部204は、収集設定データD2が示す種類の公開変数の値に基づいて、収集データを収集する。即ち、収集部204は、収集設定データD2に示されていない公開変数の値については、収集データに格納しない。収集設定データD2に示されていない公開変数は、データ収集の対象から除外されることになる。
【0073】
本実施形態では、第1データ記憶部200Aの変数値データD1が第2データ記憶部200Bにコピーされたうえでデータ収集が行われるので、収集部204は、コントローラ20の第2データ記憶部200Bにコピーされた公開変数の値に基づいて、収集データを収集する。即ち、収集部204は、産業装置30を制御するための第1データ記憶部200Aの変数値データD1ではなく、第1データ記憶部200Aからコピーされた第2データ記憶部200Bの変数値データD1に基づいて、収集データを収集する。
【0074】
本実施形態では、コントローラ20と産業装置30との各々は、同期通信可能なネットワークに接続され、収集部204は、当該ネットワークとは異なるネットワークに基づいて、収集データを送信する。同期通信は、指令を送信してからレスポンスを受信するまでの間に、原則として他の処理を挟まない通信方式である。同期通信可能なネットワークは、同期通信をする環境を有すればよく、必ずしも常に同期通信をしている必要はない。特に産業装置30の種類によっては同期通信可能であることを要件としないネットワークに接続されていてもよい。
【0075】
コントローラ20と産業装置30とは、いわゆるフィールドネットワークによって接続される。一方、コントローラ20とサーバ50は、フィールドネットワークとは異なるネットワークによって接続され、例えば、一般的なインターネットによって接続されてもよいし、LANによって接続されてもよい。別の言い方をすれば、コントローラ20と産業装置30とは、第1の通信プロトコル(例えば、産業装置30専用の通信プロトコル)のネットワークによって接続され、コントローラ20とサーバ50は、第1の通信プロトコルとは異なる第2の通信プロトコルのネットワークによって接続される。
【0076】
本実施形態では、取得部201がレジスタ情報Rに基づいて公開変数の値を取得するので、収集部204は、取得部201により取得された公開変数の値に基づいて、収集データを収集する。収集部204は、取得部201により取得された全ての公開変数の値に基づいて収集データを収集してもよいし、一部の公開変数の値に基づいて収集データを収集してもよい。
【0077】
本実施形態では、第2ユーザに対して収集データが送信されるので、収集部204は、第1ユーザとは異なる第2ユーザに対し、収集した収集データを送信する。第2ユーザに対して収集データを送信するとは、第2ユーザが管理するコンピュータに対して収集データを送信することである。本実施形態では、収集部204は、サーバ50に対して収集データを送信するものとするが、第2ユーザ端末40等の他のコンピュータに対して収集データを送信してもよい。収集データは、任意の方法で送信されるようにすればよく、例えば、電子メール等に添付して送信されてもよいし、FTP等を利用して送信されてもよい。
【0078】
[3−3.産業装置で実現される機能]
図3に示すように、産業装置30では、データ記憶部300及び工程実行部301が実現される。
【0079】
[データ記憶部]
データ記憶部300は、記憶部32を主として実現される。データ記憶部300は、産業装置30が所定の動作をするために必要なデータを記憶する。例えば、データ記憶部300は、装置プログラムと、公開変数の現在値と、を記憶する。装置プログラムは、データ記憶部100に記憶された装置プログラムと同じである。公開変数の現在値は、変数値データD1に格納される値と同じである。なお、データ記憶部300は、公開変数以外の変数の値も記憶する。各変数の値は、予め定められたレジスタに格納されることになる。
【0080】
[工程実行部]
工程実行部301は、CPU31を主として実現される。工程実行部301は、データ記憶部300に記憶された装置プログラムと、コントローラ20から受信した指示と、に基づいて、所定の工程を実行する。例えば、コントローラ20は、ある装置プログラムを開始させる場合に、当該装置プログラムに関連付けられた変数を所定の値にする旨の指示を産業装置30に送信する。産業装置30は、当該指示を受信すると変数を所定の値に変更する。工程実行部301は、変数が所定の値になったことを検知すると、当該変数に関連付けられた装置プログラムを実行する。
【0081】
工程実行部301は、装置プログラムが示す工程が終了すると、当該装置プログラムに関連付けられた変数を所定の値に変更し、その旨をコントローラ20に対して送信する。その後に、別の装置プログラムを実行させる場合には、コントローラ20は、当該別の装置プログラムに関連付けられた変数を所定の値にする旨の指示を産業装置30に送信し、工程実行部301は、別の装置プログラムを実行させることになる。なお、産業装置30の中で複数の装置プログラムの実行順が定義されている場合には、コントローラ20に対して、装置プログラムの終了が送信されずに、工程実行部301は、当該複数の装置プログラムを次々と実行するようにしてもよい。
【0082】
[3−4.第2ユーザ端末で実現される機能]
図3に示すように、第2ユーザ端末40では、データ記憶部400及び収集設定部401が実現される。
【0083】
[データ記憶部]
データ記憶部は、記憶部42を主として実現される。データ記憶部400は、データ収集を実行するために必要なデータを記憶する。例えば、データ記憶部400は、公開変数リストL及び収集設定データD2を記憶する。公開変数リストLは、データ記憶部100及び第2データ記憶部200Bの各々の公開変数リストLと同じであり、収集設定データD2は、第2データ記憶部200Bの収集設定データD2と同じである。第1ユーザにより公開変数リストLが更新されると、更新後の公開変数リストLが第2ユーザ端末40に送信される。一方、第2ユーザにより収集設定データD2が更新されると、更新後の収集設定データD2がコントローラ20に対して送信される。
【0084】
[収集設定部]
収集設定部401は、CPU41を主として実現される。収集設定部401は、公開変数に基づいて、データに関する収集設定を行う。収集設定は、データ収集の際の条件であり、本実施形態では、収集設定として、データ収集の対象となる公開変数の種類が指定される。例えば、収集設定部401は、公開変数リストLに示された複数の公開変数の中から、データ収集の対象となる公開変数の種類を設定する。収集設定の内容は、収集設定データD2に示されるので、収集設定部401は、収集設定データD2を作成してコントローラ20に送信することによって、収集設定を行う。即ち、収集設定部401は、収集設定データD2に基づいてデータ収集をするように、コントローラ20の設定を行う。
【0085】
[3−5.サーバで実現される機能]
図3に示すように、サーバ50では、データ記憶部500及び記録部501が実現される。
【0086】
[データ記憶部]
データ記憶部500は、記憶部52を主として実現される。データ記憶部500は、収集データが蓄積された収集データベースを記憶する。収集データベースは、サーバ50が受信した収集データが蓄積されたデータベースである。サーバ50は、コントローラ20から収集データを受信すると、収集データベースに格納する。収集データベースには、過去に収集された収集データの履歴が格納されることになる。
【0087】
[記録部]
記録部501は、CPU51を主として実現される。記録部501は、収集データをデータ記憶部500に記録する。記録部501は、サーバ50がコントローラ20から受信した収集データを収集データベースに格納する。本実施形態では、第1ユーザとは異なる第2ユーザに対して収集データが送信されるので、記録部501は、第1ユーザとは異なる第2ユーザに対して送信された収集データをデータ記憶部500に記録することになる。
【0088】
[4.データ収集システムで実行される処理]
図8は、データ収集システム1で実行される処理の一例を示すフロー図である。図8に示す処理は、CPU11,21,31,41,51の各々が記憶部12,22,32,42,52に記憶されたプログラムに従って動作することによって実行される。図8に示す処理は、図3に示す機能ブロックにより実行される処理の一例である。なお、図8に示す処理が実行されるにあたり、制御プログラム、装置プログラム、及びレジスタ情報Rは予め作成されているものとする。また、図8では、主にデータ収集に関する処理について説明し、コントローラ20が産業装置30を制御する処理については省略する。
【0089】
図8に示すように、まず、第1ユーザ端末10は、第1ユーザの操作に基づいて、公開変数リストLを作成し、コントローラ20に対して公開変数リストLを送信する(S1)。S1においては、第1ユーザ端末10は、産業装置30における全ての変数を表示部15に表示させる。産業装置30における変数を識別する情報は、予め記憶部12に記憶されているものとする。第1ユーザは、操作部14を操作して、表示部15に表示された変数の中から公開変数を指定し、必要に応じてコメントを入力する。第1ユーザ端末10は、ユーザが指定した公開変数と、ユーザが入力したコメントと、を含む公開変数リストLを生成する。なお、コメントは、予め変数に関連付けられて記憶部12に記憶されていてもよい。
【0090】
コントローラ20は、公開変数リストLを受信すると、記憶部22に公開変数リストLを記録し(S2)、第2ユーザ端末40に対して公開変数リストLを送信する(S3)。なお、本実施形態では、コントローラ20が第2ユーザ端末40に対して公開変数リストLを送信する場合を説明するが、第1ユーザ端末10が第2ユーザ端末40に対して公開変数リストを送信してもよい。
【0091】
第2ユーザ端末40は、公開変数リストLを受信すると、記憶部42に公開変数リストLを記録し(S4)、第2ユーザの操作に基づいて、収集設定データD2を作成し、コントローラ20に対して収集設定データD2を送信する(S5)。S5においては、第2ユーザ端末40は、公開変数リストLの内容を表示部45に表示させ、第2ユーザによる選択を受け付ける。第2ユーザ端末40は、第2ユーザが収集対象として選択した公開変数を示す収集設定データD2を作成し、コントローラ20に対して送信する。
【0092】
コントローラ20は、収集設定データD2を受信すると、IoT部24に収集設定データD2を記録する(S6)。収集設定データD2が記録されると、産業装置30からのデータ収集が可能な状態となる。
【0093】
コントローラ20は、記憶部22に記憶されたレジスタ情報Rに基づいて、産業装置30に対し、公開変数の取得要求を送信する(S7)。S7においては、収集設定データD2に示された公開変数に関係なく、全ての公開変数の取得要求が送信される。例えば、コントローラ20は、レジスタ情報Rを参照して全ての公開変数のレジスタを特定し、各レジスタの読み出し要求を送信する。
【0094】
産業装置30は、公開変数の取得要求を受信すると、コントローラ20に対し、記憶部32に記録された公開変数の値を送信する(S8)。S8においては、産業装置30は、公開変数の取得要求に含まれるアドレスのレジスタを参照し、当該レジスタに格納された値のデータセットを送信する。
【0095】
コントローラ20は、産業装置30から取得した公開変数の値に基づいて、記憶部22の変数値データD1を更新し(S9)、記憶部22の変数値データD1をIoT部24にコピーする(S10)。S9においては、コントローラ20は、公開変数の値が最新の値となるように、記憶部22の変数値データD1を更新し、更新後の変数値データD1をIoT部24にコピーする。
【0096】
コントローラ20は、収集設定データD2に基づいて、IoT部24にコピーした変数値データD1の中から、収取対象の公開変数の値を収集し、サーバ50に対し、収集データを送信する(S11)。S11においては、コントローラ20は、変数値データD1に格納された公開変数の中から、第2ユーザが指定した収取対象の公開変数の値に基づいて、収集データを作成し、サーバ50に対して送信する。
【0097】
サーバ50は、収集データを受信して収集データベースに格納し(S13)、本処理は終了する。S13においては、サーバ50は、受信した収集データを収集データベースに追加する。
【0098】
以上説明したデータ収集システム1によれば、コントローラ20により制御される産業装置30の複数の変数のうち、公開可能な公開変数を設定し、公開可能な公開変数に基づいて産業装置30に関する収集データを収集して記録することができる。また、産業装置30側の開発者がノウハウとして秘匿したい変数については公開変数から外すことで、開発者のノウハウが第三者に漏洩することを防止できる。また、公開変数に絞って収集データを収集することで、不要なデータ収集が行われることを防止できる。その結果、記録されるデータの量が減るので、メモリ消費量を削減することができる。また、不要な収集データが送信されないので、通信負荷を軽減することもできる。また、不要なデータ収集が実行されないので、データ収集システム1における処理負荷を軽減することもできる。
【0099】
また、データ収集システム1は、公開変数に基づいて収集データに関する収集設定を行い、当該収集設定に基づいて収集データを収集することにより、データ収集の利便性を高めることができる。
【0100】
また、データ収集システム1は、収集対象となる公開変数の種類を設定し、当該設定された種類に基づいて収集データを収集することにより、データ収集の利便性を効果的に高めることができる。例えば、データ収集の対象となる公開変数を絞ることにより、不要なデータ収集が行われることを防止できる。その結果、メモリ消費量の削減、ネットワークにおける通信量の削減、及び処理負荷の軽減を図ることができる。
【0101】
また、データ収集システム1は、コントローラ20が産業装置30を制御するために記録した公開変数の値を利用してデータ収集をすることで、データ収集を効率化することができる。例えば、産業装置30の制御のための公開変数の値の取得と、データ収集のための公開変数の値の取得と、を別々に行うと、産業装置30は同様の処理を2重で実行する必要があり、産業装置30の処理負荷が増大するが、このような2重の処理を発生させないようにすることができる。その結果、産業装置30の処理負荷を軽減することができる。
【0102】
また、データ収集システム1は、CPU21からIoT部24にコピーされた公開変数の値に基づいて、データ収集をすることにより、コントローラ20の制御に必要な値を記憶する記憶部と、データ収集のために必要な値を記憶する記憶部と、を別々のものとし、データ収集のために産業装置30の制御に支障をきたす可能性を低減することができる。
【0103】
また、データ収集システム1は、コントローラ20と産業装置30との各々を接続するネットワークとは異なるネットワークに基づいて、データ収集を行うことにより、産業装置30の動作に支障をきたすことなく、データ収集を実行することができる。
【0104】
また、データ収集システム1は、公開変数とレジスタとの関係を示すレジスタ情報Rに基づいてデータ収集をすることにより、データの収集者がレジスタ体系を把握していなくても、データの収集を可能とすることができる。その結果、データ収集を容易化し、収集者の利便性を高めることができる。
【0105】
また、データ収集システム1は、コントローラ20及び産業装置30の少なくとも一方を管理するユーザと、産業装置30に関するデータを収集するユーザと、が異なる場合であったとしても、公開変数に基づいて、収集データを収集して記録することができる。その結果、データを収集するユーザに対して公開したくない変数についての情報は、収集させないようにすることができる。
【0106】
[5.変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【0107】
(1)例えば、実施形態では、収集設定として、収集対象の公開変数の種類が指定される場合を説明したが、収集設定として指定される情報は、公開変数の種類に限られない。例えば、収集設定は、収集データの収集頻度を示してもよく、本変形例の収集部204は、収集設定が示す収集頻度に基づいて、収集データを収集する。
【0108】
収集頻度は、収集データを収集する頻度であり、サンプリング頻度ということもできる。例えば、第2ユーザは、公開変数を収集する時間間隔、又は、単位時間あたりの収集回数を収集頻度として指定する。収集頻度は、収集設定データD2に格納され、収集部204は、収集設定データD2に示された収集頻度に基づいて、収集データを収集する。例えば、収集部204は、収集頻度が示す時間ごとに、公開変数の値を取得して収集データを作成する。本変形例では、取得部201による公開変数の値の取得は、収集頻度に関係なく周期的に行われるものとするが、取得部201は、収集頻度に合わせて公開変数の値を取得してもよい。
【0109】
変形例(1)によれば、収集データの収集頻度を設定し、当該設定された収集頻度に基づいて収集データを収集することにより、データ収集の利便性を効果的に高めることができる。例えば、収集頻度を高く設定する場合には、詳細なデータ収集をすることができる。その結果、産業装置30の動作解析を詳細に行うことができる。また例えば、収集頻度を低く設定する場合には、不要なデータ収集が行われることを防止できる。その結果、メモリ消費量の削減、ネットワークにおける通信量の削減、及び処理負荷の軽減を図ることができる。
【0110】
(2)また例えば、収集設定は、データ収集の開始条件を示してもよく、収集部204は、収集設定が示す開始条件に基づいて、収集データの収集を開始してもよい。開始条件は、収集データの収集を開始するための条件であり、任意の条件を設定可能である。例えば、開始条件は、所定の日時が訪れること、所定の装置プログラムの実行が開始されること、又は公開変数の値が所定の値となることなどである。
【0111】
本変形例では、ある収集データの値が所定の値になることが、他の収集データの開始条件になる場合を説明する。別の言い方をすれば、ある公開変数に基づいて収集された収集データが所定の値になった場合に、他の公開変数に基づくデータ収集が開始される場合を説明する。例えば、収集データがトルク値を示す場合に、トルク値が変化の変化をした場合に、モータの回転速度を示す収集データの収集が開始されるようにしてもよい。この場合、収集部204は、収集データが示すトルク値が所定の変化をしたか否かを判定し、トルク値が所定の変化をしたと判定した場合に、モータの回転速度を示す収取データの収集を開始する。
【0112】
変形例(2)によれば、データ収集の開始条件を設定し、当該設定された開始条件に基づいてデータの収集を開始することにより、データ収集の利便性を効果的に高めることができる。開始条件が満たされるまではデータを収集しないので、不要なデータ収集が行われることを防止できる。その結果、メモリ消費量の削減、ネットワークにおける通信量の削減、及び処理負荷の軽減を図ることができる。
【0113】
(3)また例えば、サーバ50に蓄積された収集データは、産業装置30に対する動作指示に用いられてもよい。図9は、変形例(3)の機能ブロック図である。図9に示すように、変形例(3)のデータ収集システム1は、動作指令送信部502を含む。動作指令送信部502は、CPU51を主として実現される。
【0114】
動作指令送信部502は、収集データに基づいて、コントローラ20に対し、産業装置30に関する動作指令を送信する。動作指令は、産業装置30に任意の動作をさせるための指令であればよく、例えば、装置プログラムの実行指示である。本変形例では、動作指令の一例として、産業装置30において異常が発生した場合の復旧動作の指令について説明する。なお、動作指令は、復旧動作に限られず、任意の動作を実行させるための指令であってよい。例えば、それまでは収集対象ではなかった公開変数の値を収集するための指令であってもよいし、任意の動作を実行させるための割り込みであってもよい。
【0115】
例えば、サーバ50のデータ記憶部500には、異常発生時の復旧手順を示す復旧手順データが記憶されているものとする。産業装置30は、装置プログラムに基づいて動作するので、復旧手順データには、復旧手順の際に実行すべき少なくとも1つの装置プログラムの実行順が定義されている。例えば、復旧手順データは、第2ユーザにより作成される。動作指令送信部502は、収集データに基づいて、産業装置30における異常発生を判定し、異常が発生したと判定された場合に、コントローラ20に対し、復旧手順データを送信する。コントローラ20は、復旧手順データを受信すると、復旧手順データに示された復旧手順に基づいて、産業装置30を復旧させる。例えば、復旧手順に示された装置プログラムも変数に基づいて実行される場合には、コントローラ20は、復旧手順データに示された復旧手順に基づいて各装置プログラムが実行されるように、産業装置30の変数を制御する。
【0116】
変形例(3)によれば、収集した収集データに基づいて、産業装置30に対し、産業装置30に関する動作指令を送信することにより、収集したデータを産業装置30の動作にフィードバックすることができる。例えば、産業装置30に異常が発生した場合に、収集したデータに基づいて復旧動作をさせることにより、産業装置30に発生した異常を確実に復旧させることができる。
【0117】
(4)また例えば、上記変形例を組み合わせてもよい。
【0118】
また例えば、コントローラ20は、第2ユーザにより、公開変数以外の変数が収集対象として指定された場合には、当該変数の収集を拒否するようにしてもよい。例えば、コントローラ20は、第2ユーザにより収集対象として指定された変数が公開変数リストLに含まれるか否かを判定する。コントローラ20は、第2ユーザにより収集対象として指定された変数が公開変数リストLに含まれる場合、変数の値の取得を許可し、第2ユーザにより収集対象として指定された変数が公開変数リストLに含まれない場合、変数の値の取得を禁止する。この処理は、産業装置30によって実行されてもよい。この場合、産業装置30は、公開変数以外の変数については、外部からのレジスタ読み出しを禁止することになる。
【0119】
また例えば、収集設定は、収集対象の変数、収集頻度、又は開始条件以外の設定であってもよく、例えば、収集データのデータ形式、収集データの送信先、又は収集データを収集する産業装置30などの設定であってもよい。また例えば、第2ユーザにより収集設定が行われる場合を説明したが、特に第2ユーザによる収集設定が行われなくてもよい。この場合、公開変数の全てが収集対象となってもよい。また例えば、記憶部22の公開変数の値がIoT部24にコピーされる場合を説明したが、特にコピーが行われることなく、CPU21がデータ収集を実行してもよい。また例えば、コントローラ20と産業装置30の間のネットワークと、コントローラ20とサーバ50の間のネットワークと、が異なる場合を説明したが、これらは同じネットワークであってもよい。また例えば、コントローラ20がレジスタ情報Rに基づいて公開変数の値を取得する場合を説明したが、変数に対応するレジスタ操作は、産業装置30側で実行されてもよい。また例えば、第1ユーザとは異なる第2ユーザによってデータ収集が行われる場合を説明したが、データ収集を行うユーザと、コントローラ20及び産業装置30の少なくとも一方のユーザと、は同じであってもよい。
【0120】
また例えば、図3又は図9に示すようにして、第1ユーザ端末10、コントローラ20、産業装置30、第2ユーザ端末40、及びサーバ50の各々により各機能を分担される場合を説明したが、機能の分担は、図3又は図9の例に限られない。例えば、取得部201及び収集部204の少なくとも一方が、第1ユーザ端末10、第2ユーザ端末40、又はサーバ50によって実現されてもよい。また例えば、記録部501が第1ユーザ端末10、コントローラ20、又は第2ユーザ端末40によって実現されてもよい。また例えば、各機能が複数のコンピュータによって分担されるのではなく、1つのコンピュータによって実現されてもよい。また例えば、収集データは、データ収集システム1以外の外部のコンピュータに記録されてもよい。
【0121】
また、以上説明した実施形態は具体例として示したものであり、本明細書にて開示される発明をこれら具体例の構成やデータ格納例そのものに限定するものではない。当業者はこれら開示された実施形態に種々の変形、例えば、物理的構成の形状や数、データ構造、処理の実行順を変更したりしてもよい。本明細書にて開示される発明の技術的範囲は、そのようになされた変形をも含むものと理解すべきである。
【符号の説明】
【0122】
1 データ収集システム、11,21,31,41,51 CPU、12,22,32,42,52 記憶部、13,23,33,43,53 通信部、24 IoT部、14,44 操作部、15,45 表示部、10 第1ユーザ端末、20 コントローラ、30 産業装置、40 第2ユーザ端末、50 サーバ、D1 変数値データ、D2 収集設定データ、100 データ記憶部、101 公開変数設定部、200 データ記憶部、200A 第1データ記憶部、200B 第2データ記憶部、201 取得部、202 取得部、202 動作制御部、203 コピー部、204 収集部、300 データ記憶部、301 工程実行部、400 データ記憶部、401 収集設定部、500 データ記憶部、501 記録部、502 動作指令送信部、L 公開変数リスト、N インターネット、R レジスタ情報。
図1
図2
図3
図4
図5
図6
図7
図8
図9