(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2021-12-20
(45)【発行日】2022-01-17
(54)【発明の名称】プログラマブル・ロジック・コントローラ、プログラマブル・ロジック・コントローラシステムおよびデータ収集装置
(51)【国際特許分類】
G05B 19/05 20060101AFI20220107BHJP
【FI】
G05B19/05 F
(21)【出願番号】P 2017135375
(22)【出願日】2017-07-11
【審査請求日】2020-03-26
(73)【特許権者】
【識別番号】000129253
【氏名又は名称】株式会社キーエンス
(74)【代理人】
【識別番号】110003281
【氏名又は名称】特許業務法人大塚国際特許事務所
(74)【代理人】
【識別番号】100076428
【氏名又は名称】大塚 康徳
(74)【代理人】
【識別番号】100112508
【氏名又は名称】高柳 司郎
(74)【代理人】
【識別番号】100115071
【氏名又は名称】大塚 康弘
(74)【代理人】
【識別番号】100116894
【氏名又は名称】木村 秀二
(74)【代理人】
【識別番号】100131886
【氏名又は名称】坂本 隆志
(72)【発明者】
【氏名】曽根田 祐介
(72)【発明者】
【氏名】杉村 和晃
(72)【発明者】
【氏名】南 友樹登
【審査官】山村 秀政
(56)【参考文献】
【文献】特開2016-143169(JP,A)
【文献】特開2008-287559(JP,A)
【文献】特開2005-115426(JP,A)
【文献】特開平07-056961(JP,A)
【文献】特開2013-218497(JP,A)
【文献】特開2000-235412(JP,A)
【文献】特開2010-250382(JP,A)
【文献】特開2010-250381(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05
(57)【特許請求の範囲】
【請求項1】
ユーザプログラムを繰り返し実行することで、被制御機器の動作を制御するプログラマブル・ロジック・コントローラであって、
前記ユーザプログラムを記憶するプログラム記憶部と、
前記ユーザプログラム上で指定可能であり、1ビットの情報を記憶するビットデバイスおよび1ワード又は数ワードの情報を記憶するワードデバイスを含む複数のデバイスを保持するデバイス記憶部と、
前記プログラム記憶部に記憶されているユーザプログラムを繰り返し実行し、当該ユーザプログラムにしたがって前記複数のデバイスに記憶されている情報を演算処理するプログラム実行部と、
前記デバイス記憶部に保持された少なくとも一つのデバイスに記憶されているデバイスデータを繰り返し収集することで、
前記被制御機器の
繰り返し動作に応じ
た周期性を有する時系列デバイスデータを形成するデータ収集部と、
前記時系列デバイスデータを解析することにより、当該時系列デバイスデータから前記
周期性に応じた複数の個別データを抽出するための抽出期間を決定する決定部と、
前記決定部により決定された各抽出期間に対応する
個別データを、前記時系列デバイスデータから抽出する抽出部と、
前記抽出部により抽出された
各個別データに対して、当該各個別データを識別するための識別情報を付与する付与部と
を有するプログラマブル・ロジック・コントローラ。
【請求項2】
前記抽出期間の開始位置と終了位置は、前記個別データの抽出の基準位置を示す情報と、前記抽出期間の時間的な長さを示す情報によって定義されていることを特徴とする請求項1に記載のプログラマブル・ロジック・コントローラ。
【請求項3】
前記時系列デバイスデータは、前記データ収集部が複数のデバイスからそれぞれ収集したデータを含むデータ群と、当該データを収集したタイミングを示すタイミング情報とを含むことを特徴とする請求項2に記載のプログラマブル・ロジック・コントローラ。
【請求項4】
前記決定部は、前記複数のデバイスのうち少なくとも一つのデバイスから収集された時系列デバイスデータの周期に基づき、各抽出期間の基準位置を決定することを特徴とする請求項3に記載のプログラマブル・ロジック・コントローラ。
【請求項5】
部品に対するタクトタイムの入力を受け付ける受付部をさらに有し、
前記決定部は、複数のデバイスからそれぞれ収集されたデータの周期を求め、前記タクトタイムに対して相対的に近い周期のデータに基づき各抽出期間の基準位置を決定することを特徴とする請求項4に記載のプログラマブル・ロジック・コントローラ。
【請求項6】
前記決定部は、前記時系列デバイスデータを微分して微分エッジを求め、当該求められた微分エッジの位置を前記抽出期間の基準位置に決定することを特徴とする請求項2に記載のプログラマブル・ロジック・コントローラ。
【請求項7】
前記決定部は、前記基準位置を決定する複数の決定手法を有しており、ユーザにより選択された決定手法を用いて前記基準位置を決定することを特徴とする請求項2ないし6のいずれか一項に記載のプログラマブル・ロジック・コントローラ。
【請求項8】
前記決定部は前記時系列デバイスデータをフーリエ変換または自己回帰モデルにより複数のスペクトルを取得し、当該複数のスペクトルのうち相対的に大きなスペクトルの周波数の逆数を前記抽出期間の時間的な長さに決定することを特徴とする請求項2ないし7のいずれか一項に記載のプログラマブル・ロジック・コントローラ。
【請求項9】
前記決定部は前記時系列デバイスデータにおける波形の類似性に基づき前記抽出期間の時間的な長さを決定することを特徴とする請求項2ないし7のいずれか一項に記載のプログラマブル・ロジック・コントローラ。
【請求項10】
前記決定部は、前記抽出期間の時間的な長さを決定する複数の決定手法を有しており、ユーザにより選択された決定手法を用いて前記抽出期間の時間的な長さを決定することを特徴とする請求項8または9に記載のプログラマブル・ロジック・コントローラ。
【請求項11】
前記プログラム記憶部は前記ユーザプログラムを管理するためのプロジェクト情報であって、ユーザにより登録されたデバック用のデバイスを指定する情報含むプロジェクト情報またはユーザにより登録された表示対象のデバイスを指定する情報を記憶しており、
前記データ収集部は、前記プロジェクト情報に含まれる前記デバック用のデバイスを指定する情報またはユーザにより登録された表示対象のデバイスを指定する情報に基づきデバイスデータを収集される複数のデバイスを選択し、当該選択された複数のデバイスのそれぞれからデバイスデータを収集することを特徴とする請求項1ないし10のいずれか一項に記載のプログラマブル・ロジック・コントローラ。
【請求項12】
請求項1ないし11のいずれか一項に記載のプログラマブル・ロジック・コントローラと、当該プログラマブル・ロジック・コントローラに接続されるプログラム作成支援装置とを有するプログラマブル・ロジック・コントローラシステムであって、
前記プログラマブル・ロジック・コントローラまたは前記プログラム作成支援装置は、前記プログラマブル・ロジック・コントローラの前記決定部により決定された抽出期間をユーザの操作に基づき調整する調整部を有することを特徴とするプログラマブル・ロジック・コントローラシステム。
【請求項13】
前記プログラマブル・ロジック・コントローラまたは前記プログラム作成支援装置は、前記調整部とともに、前記時系列デバイスデータと前記抽出期間とを表示する表示部をさらに有しているか、または接続されており、
前記調整部は、前記表示部に表示された前記抽出期間に対するユーザの操作を受け付けることを特徴とする請求項12に記載のプログラマブル・ロジック・コントローラシステム。
【請求項14】
前記表示部は、第一デバイスから収集された時系列デバイスデータの波形と、第二デバイスから収集された時系列デバイスデータの波形とを共通の時間軸上において並べて表示することを特徴とする請求項13に記載のプログラマブル・ロジック・コントローラシステム。
【請求項15】
前記表示部は、第一デバイスから収集された時系列デバイスデータの波形と、第二デバイスから収集された時系列デバイスデータの波形とを共通の時間軸上において重ねて表示することを特徴とする請求項13に記載のプログラマブル・ロジック・コントローラシステム。
【請求項16】
前記表示部は、前記プログラマブル・ロジック・コントローラに接続され、ユーザによる前記ユーザプログラムの作成を支援する前記プログラム作成支援装置に設けられていることを特徴とする請求項13ないし15のいずれか一項に記載のプログラマブル・ロジック・コントローラシステム。
【請求項17】
前記調整部が前記プログラム作成支援装置に設けられている場合に、前記プログラマブル・ロジック・コントローラに接続されたデータ収集装置は、前記識別情報を付与された個別データをクラウドに送信する送信部を有し、前記プログラム作成支援装置は該個別データをクラウドから受信する受信部をさらに有することを特徴とする請求項12ないし16のいずれか一項に記載のプログラマブル・ロジック・コントローラシステム。
【請求項18】
ユーザプログラムを繰り返し実行することで、被制御機器の動作を制御するプログラマブル・ロジック・コントローラに接続されたデータ収集装置であって、
前記プログラマブル・ロジック・コントローラは、
ユーザプログラムを記憶するプログラム記憶部と、
前記ユーザプログラム上で指定可能であり、1ビットの情報を記憶するビットデバイスおよび1ワード又は数ワードの情報を記憶するワードデバイスを含む複数のデバイスを保持するデバイス記憶部と、
前記プログラム記憶部に記憶されているユーザプログラムを繰り返し実行し、当該ユーザプログラムにしたがって前記複数のデバイスに記憶されている情報を演算処理するプログラム実行部と、を有し、
前記データ収集装置は、
前記デバイス記憶部に保持された少なくとも一つのデバイスに記憶されているデバイスデータを繰り返し収集することで、
前記被制御機器の
繰り返し動作に応じ
た周期性を有する時系列デバイスデータを形成するデータ収集部と、
前記時系列デバイスデータを解析することにより、当該時系列デバイスデータから前記
周期性に応じた複数の個別データを抽出するための抽出期間を決定する決定部と、
前記決定部により決定された各抽出期間に対応する
個別データを、前記時系列デバイスデータから抽出する抽出部と、
前記抽出部により抽出された
各個別データに対して、当該各個別データを識別するための識別情報を付与する付与部と
を有するデータ収集装置。
【請求項19】
前記データ収集装置は、クラウドを構成するサーバであることを特徴とする請求項18に記載のデータ収集装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラマブル・ロジック・コントローラおよびデータ収集装置に関する。
【背景技術】
【0002】
プログラマブル・ロジック・コントローラ(以下、PLCと称す)は、FA(Factory Automation)制御システムにおいて広く使用されているシーケンス制御装置であり、ラダープログラムなどのユーザプログラムにしたがって動作する。操作者(オペレータ)は、リミットスイッチ、センサ、温度計などの入力機器や、電磁開閉器、ソレノイド、モータ、アクチュエータ、シリンダ、リレー、位置決めシステムなどの出力機器をPLCに接続し、ラダープログラムによってこれらの被制御機器を制御する。オペレータは、パーソナルコンピュータ(以下、PCと称す)などのプログラム作成支援装置上でラダープログラムを作成し、PCとPLCを接続し、ラダープログラムをPLCの記憶部に記憶させる。PLCの記憶部にはデバイス情報等の各種データも記憶される。デバイス情報とは、入力機器からの入力状態、出力機器への出力状態およびラダープログラム上で設定される内部リレー(補助リレー)、タイマー、カウンタ、データメモリ等の状態を示す情報である。デバイスとは、デバイス情報を格納するために設けられたメモリ上の領域を指す名称である。PLCにプログラム作成支援装置を接続することで、PLCが保持しているデバイス情報(デバイスの値)をプログラム作成支援装置に表示させ、視認することもできる。PLCは一般に基本ユニット(CPUユニット)と拡張ユニットにより構成される。CPUユニットと拡張ユニットは予め割り付けられたデバイスを通じてスキャン周期ごとに実行されるリフレッシュによってデバイス値を相互に交換する。
【0003】
ところで、ワーク(部品)の生産工程において安定してワークを生産するためには、生産工程の予知保全が必要となる。これは生産工程において使用される製造機械にはメンテナンスが必要な部分が存在するからである。特許文献1によれば、産業機械が所定のテンプレートにしたがってデータをクラウドに転送することで、クラウドがデータを分析することが提案されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1によれば、予め用意されたテンプレートが必要となる。つまり、ユーザのニーズに応じたテンプレートがなければ、ユーザは自らテンプレートを作成しなければならず、面倒であった。また、上述した予知保全においては時系列データの中から個々の部品に対応した個別データの検討が必要となる。しかし、デバイス値の時系列データは膨大な量となるため、その中からユーザが必要な個別データを抽出することは困難であった。
【0006】
そこで、本発明は、時系列データから個別データを抽出することをユーザにとって容易にすることを目的とする。
【課題を解決するための手段】
【0007】
本発明は、たとえば、
ユーザプログラムを繰り返し実行することで、被制御機器の動作を制御するプログラマブル・ロジック・コントローラであって、
前記ユーザプログラムを記憶するプログラム記憶部と、
前記ユーザプログラム上で指定可能であり、1ビットの情報を記憶するビットデバイスおよび1ワード又は数ワードの情報を記憶するワードデバイスを含む複数のデバイスを保持するデバイス記憶部と、
前記プログラム記憶部に記憶されているユーザプログラムを繰り返し実行し、当該ユーザプログラムにしたがって前記複数のデバイスに記憶されている情報を演算処理するプログラム実行部と、
前記デバイス記憶部に保持された少なくとも一つのデバイスに記憶されているデバイスデータを繰り返し収集することで、前記被制御機器の繰り返し動作に応じた周期性を有する時系列デバイスデータを形成するデータ収集部と、
前記時系列デバイスデータを解析することにより、当該時系列デバイスデータから前記周期性に応じた複数の個別データを抽出するための抽出期間を決定する決定部と、
前記決定部により決定された各抽出期間に対応する個別データを、前記時系列デバイスデータから抽出する抽出部と、
前記抽出部により抽出された各個別データに対して、当該各個別データを識別するための識別情報を付与する付与部と
を有するプログラマブル・ロジック・コントローラを提供する。
【発明の効果】
【0008】
本発明によれば、時系列データから個別データを抽出することがユーザにとって容易になる。
【図面の簡単な説明】
【0009】
【
図12】データ収集と抽出に関連する機能を説明する図
【
図13】データ収集と抽出に関連する機能を説明する図
【
図14】データ収集と抽出に関連する機能を説明する図
【発明を実施するための形態】
【0010】
<システム構成>
はじめにプログラマブル・ロジック・コントローラ(PLC、単にプログラマブルコントローラと呼ばれてもよい)を当業者にとってよりよく理解できるようにするために、一般的なPLCの構成とその動作について説明する。
【0011】
図1は、本発明の実施の形態によるプログラマブル・ロジック・コントローラシステムの一構成例を示す概念図である。
図1が示すように、このシステムは、ラダープログラムなどのユーザプログラムの編集を行うためのプログラム作成支援装置2と、工場等に設置される各種制御装置を統括的に制御するためのPLC(プログラマブル・ロジック・コントローラ)1とを備えている。ユーザプログラムは、ラダー言語やSFC(シーケンシャルファンクションチャート)などのフローチャート形式のモーションプログラムなどのグラフィカルプログラミング言語を用いて作成されてもよいし、C言語などの高級プログラミング言語を用いて作成されてもよい。以下では、説明の便宜上、ユーザプログラムはラダープログラムとする。PLC1は、CPUが内蔵された基本ユニット3と、1つないし複数の拡張ユニット4を備えている。基本ユニット3に対して1つないし複数の拡張ユニット4が着脱可能となっている。基本ユニット3はCPUユニットと呼ばれることもある。
【0012】
基本ユニット3には、表示部5および操作部6が備えられている。表示部5は、基本ユニット3に取り付けられている各拡張ユニット4の動作状況などを表示することができる。操作部6の操作内容に応じて表示部5は表示内容を切り替える。表示部5は、通常、PLC1内のデバイスの現在値(デバイス値)やPLC1内で生じたエラー情報などを表示する。デバイスとは、デバイス値(デバイスデータ)を格納するために設けられたメモリ上の領域を指す名称であり、デバイスメモリと呼ばれてもよい。デバイス値とは、入力機器からの入力状態、出力機器への出力状態およびユーザプログラム上で設定される内部リレー(補助リレー)、タイマー、カウンタ、データメモリ等の状態を示す情報である。デバイス値の型にはビット型とワード型がある。ビットデバイスは1ビットのデバイス値を記憶する。ワードデバイスは1ワードのデバイス値を記憶する。
【0013】
拡張ユニット4は、PLC1の機能を拡張するために用意されている。各拡張ユニット4には、その拡張ユニット4の機能に対応するフィールドデバイス(被制御装置)10が接続され、これにより、各フィールドデバイス16が拡張ユニット4を介して基本ユニット3に接続される。フィールドデバイス10には、センサなどの入力機器や、アクチュエータなどの出力機器が含まれる。なお、複数のフィールドデバイス10を識別する必要があるときには、10a、10bのように参照符号の末尾にa、b、c・・・の文字が付与される。
【0014】
プログラム作成支援装置2は、たとえば、携帯可能なノートタイプやタブレットタイプのパーソナルコンピュータであって、表示部7および操作部8を備えている。PLC1を制御するためのユーザプログラムの一例であるラダープログラムは、プログラム作成支援装置2を用いて作成される。その作成されたラダープログラムは、プログラム作成支援装置2内でニモニックコードに変換される。プログラム作成支援装置2は、USB(Universal Serial Bus)などの通信ケーブル9を介してPLC1の基本ユニット3に接続され、ニモニックコードに変換されたラダープログラムを基本ユニット3に送る。基本ユニット3はラダープログラムをマシンコードに変換し、基本ユニット3に備えられたメモリ内に記憶する。なお、ここではニモニックコードが基本ユニット3に送信されているが、本発明はこれに限られない。たとえば、プログラム作成支援装置2は、ニモニックコードを中間コードに変換し、中間コードを基本ユニット3に送信してもよい。
【0015】
なお、
図1は示していないが、プログラム作成支援装置2の操作部8には、プログラム作成支援装置2に接続されたマウスなどのポインティングデバイスが含まれていてもよい。また、プログラム作成支援装置2は、USB以外の他の通信ケーブル9を介して、PLC1の基本ユニット3に対して着脱可能に接続されるような構成であってもよい。また、通信ケーブル9を介さず、PLC1の基本ユニット3に対して無線によって接続されるような構成であってもよい。
【0016】
IPC11はPLC1から時系列データを収集するデータ収集装置である。IPC11は時系列データをクラウド12に送信してもよい。クラウドとは、データを蓄積したり、データに所定の処理を実行したりするサーバ装置の集合体である。
【0017】
<ラダープログラム>
図2は、ラダープログラムの作成時にプログラム作成支援装置2の表示部7に表示されるラダー
図Ldの一例を示す図である。プログラム作成支援装置2はマトリックス状に配置された複数のセルを表示部7に表示する。各セルには仮想デバイスのシンボルが配置される。シンボルは入力リレーや出力リレーなどを示している。複数のシンボルによってリレー回路が形成される。ラダー
図Ldには、たとえば、10列×N行(Nは任意の自然数)のセルが配置されている。そして、各行のセル内には仮想デバイスのシンボルが適宜配置される。
【0018】
図2が示すリレー回路は、入力装置からの入力信号に基づいてオン/オフされる3つの仮想デバイス(以下、「入力デバイス」と呼ぶ。)のシンボルと、出力装置の動作を制御するためにオン/オフされる仮想デバイス(以下、「出力デバイス」と呼ぶ。)のシンボルとが適宜結合されることにより構成されている。
【0019】
各入力デバイスのシンボルの上方に表示されている文字(「R0001」、「R0002」および「R0003」)は、その入力デバイスのデバイス名(アドレス名)を表している。各入力デバイスのシンボルの下方に表示されている文字(「フラグ1」、「フラグ2」および「フラグ3」)は、その入力デバイスに対応付けられたデバイスコメントを表している。出力デバイスのシンボルの上方に表示されている文字(「原点復帰」)は、その出力デバイスの機能を表す文字列からなるラベルである。
【0020】
図2が示す例では、デバイス名「R0001」および「R0002」にそれぞれ対応する2つの入力デバイスのシンボルが直列的に結合されることにより、AND回路が構成されている。また、これらの2つの入力デバイスのシンボルからなるAND回路に対して、デバイス名「R0003」に対応する入力デバイスのシンボルが並列的に結合されることにより、OR回路が構成されている。すなわち、このリレー回路では、一行目の2つのシンボルに対応する入力デバイスがいずれもオンした場合、または、二行目のシンボルに対応する入力デバイスがオンした場合にのみ、一行目のシンボルに対応する出力デバイスがオンになる。
【0021】
<プログラム作成支援装置>
図3は、プログラム作成支援装置2の電気的構成について説明するためのブロック図である。
図3が示すように、プログラム作成支援装置2は、CPU21、表示部7、操作部8、記憶装置22および通信部23を備えている。表示部7、操作部8、記憶装置22および通信部23は、それぞれCPU21に対して電気的に接続されている。記憶装置22は、少なくともRAMを含み、プログラム記憶部24と、編集ソフト記憶部25とを備えている。
【0022】
ユーザは、編集ソフト記憶部25に記憶されている編集ソフトをCPU21に実行させて、操作部8を通じてラダープログラムを編集する。ここで、ラダープログラムの編集には、ラダープログラムの作成および変更が含まれる。編集ソフトを用いて作成されたラダープログラムは、プログラム記憶部24に記憶される。また、ユーザは、必要に応じてプログラム記憶部24に記憶されているラダープログラムを読み出し、そのラダープログラムを、編集ソフトを用いて変更することができる。通信部23は、通信ケーブル9を介してプログラム作成支援装置2を基本ユニット3に通信可能に接続するためのものである。
【0023】
<PLC>
図4は、PLC1の電気的構成について説明するためのブロック図である。
図4が示すように、基本ユニット3は、CPU31、表示部5、操作部6、記憶装置32および通信部33を備えている。表示部5、操作部6、記憶装置32、および通信部33は、それぞれCPU31に電気的に接続されている。記憶装置32は、RAMやROM、メモリカードなどを含んでもよい。記憶装置32はデバイス部34やプログラム記憶部35などの複数の記憶領域を有している。デバイス部34はビットデバイスやワードデバイスなどを有し、各デバイスはデバイス値を記憶する。プログラム記憶部35は、プログラム作成支援装置2から入力されたラダープログラムやユーザデータを記憶する。プログラム記憶部35は、基本ユニット3用の制御プログラムも記憶する。
図4が示すように基本ユニット3と拡張ユニット4とは拡張バスの一種であるユニット外部バス90を介して接続されている。なお、ユニット外部バス90に関する通信機能は通信部33の一部として実装されてもよい。
【0024】
図5は、基本ユニット3のスキャンタイムを示す模式図である。
図5が示すように1つのスキャンタイムTは、入出力のリフレッシュを行うためのユニット間通信201、プログラム実行202、END処理204により構成されている。ユニット間通信201で、基本ユニット3は、ラダープログラムを実行して得られた出力データを基本ユニット3内の記憶装置32から拡張ユニット4など外部機器などに送信する。さらに、基本ユニット3は、拡張ユニット4など外部機器などから受信した入力データを基本ユニット3内の記憶装置32に取り込む。つまり、基本ユニット3のデバイスに記憶されているデバイス値は出力リフレッシュによって拡張ユニット4のデバイスに反映される。同様に、拡張ユニット4のデバイスに記憶されているデバイス値は入力リフレッシュによって基本ユニット3のデバイスに反映される。このように入出力リフレッシュによって基本ユニット3のデバイスと拡張ユニット4のデバイスが同期する。なお、リフレッシュ以外のタイミングでデバイス値をユニット間で更新する仕組みが採用されてもよい。ただし、基本ユニット3のデバイスは基本ユニット3が随時書き換えており、同様に、拡張ユニット4のデバイスは拡張ユニット4が随時書き換えている。つまり、基本ユニット3のデバイスは基本ユニット3の内部の装置によって随時アクセス可能である。同様に、拡張ユニット4のデバイスは拡張ユニット4の内部の装置によって随時アクセス可能になっている。基本ユニット3と拡張ユニット4との間では基本的にリフレッシュのタイミングにおいて相互にデバイス値を更新して同期する。プログラム実行202で、基本ユニット3は、更新された入力データを用いてプログラムを実行(演算)する。基本ユニット3はプログラムの実行によりデータを演算処理する。なお、END処理とは、プログラム作成支援装置2や基本ユニット3に接続された表示器(図示せず)等の外部機器とのデータ通信、システムのエラーチェック等の周辺サービスに関する処理全般を意味する。IPC11はEND処理204においてPLC1から時系列データを収集してもよい。
【0025】
このように、プログラム作成支援装置2はユーザの操作に応じたラダープログラムを作成し、作成したラダープログラムをPLC1に転送する。PLC1は、入出力リフレッシュ、ラダープログラムの実行およびEND処理を1サイクル(1スキャン)として、このサイクルを周期的、すなわちサイクリックに繰り返し実行する。これにより、各種入力機器(センサ等)からのタイミング信号に基づいて、各種出力機器(モータ等)を制御する。よって、PLC1は汎用のパーソナルコンピュータ(PC)とは全く異なる動きをする。
【0026】
<データ収集装置>
図6はIPC11の電気的構成について説明するためのブロック図である。IPC11は、CPU51、記憶装置52、通信部53、表示部57、操作部58などを備えている。記憶装置52、通信部53、表示部57および操作部58は、内部バスなどを介してそれぞれCPU51に電気的に接続されている。記憶装置52は、RAMやROM、メモリカード、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)などを含んでもよい。記憶装置52には、PLC1から収集された時系列記憶データを記憶する時系列データ記憶部54や、CPU51により実行される制御プログラムを記憶するプログラム記憶部55が設けられている。IPC11は、通信部53を介してPLC1やクラウド12と通信する。たとえば、CPU51は通信部53を介してPLC1からデバイス値またはその集合体である時系列データを収集して時系列データ記憶部54に記憶する。また、CPU51は時系列データを時系列データ記憶部54から読み出して、通信部53を介してクラウド12へ送信してもよい。
【0027】
<クラウド>
図7はクラウド12の電気的構成について説明するためのブロック図である。クラウド12は、CPU61、記憶装置62、通信部63、表示部67および操作部68を備えている。記憶装置62、通信部63、表示部67および操作部68は、内部バスなどを介してそれぞれCPU61に電気的に接続されている。記憶装置62は、RAMやROM、メモリカード、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)などを含んでもよい。記憶装置62には、IPC11を介してPLC1から収集された時系列記憶データを記憶する時系列データ記憶部64や、CPU61により実行される制御プログラムを記憶するプログラム記憶部65が設けられている。クラウド12は、通信部63を介してPLC1やIPC11、クライアント(例:プログラム作成支援装置2)と通信する。たとえば、CPU61は通信部63を介してPLC1またはIPC11から時系列データを収集して時系列データ記憶部64に記憶する。また、CPU61は時系列データに演算を施し、通信部63を介してクライアントに送信してもよい。
【0028】
<抽出期間>
ある部品を製造する工場のラインにおいて部品の加工を制御したり、完成した部品を検査したりするためにPLC1が使用されることがある。たとえば、PLC1はユーザプログラムにしたがって部品に圧力を加えて切断したり、部品に熱を加えたりすることもある。また、PLC1は拡張ユニット4に接続されたXYステージなどを制御して部品の位置を移動させることもあろう。いずれの場合であっても部品の加工精度に問題が発生したときや発生しそうなときにその原因を探るにはPLC1のデバイス値を収集して分析することが必要となる。デバイス値は時々刻々と変化する。たとえば、一つの部品の加工や検査において数百回も変化することもあろう。これは、一つの部品につきラダープログラムが数百スキャンされることを意味する。また、時系列データの収集期間が長くなると、時系列データのうちどの部分がどの部品に対応した個別データであるかをユーザが目で確認して見つけ出すことは簡単ではない。そこで、本実施例では、PLC1やIPC11またはクラウド12が部品ごとの個別データを抽出することで、ユーザの負担を軽減する。ユーザは、プログラム作成支援装置2などのクライアントを通じて個別データを確認する。
【0029】
図8はデバイス値の時系列データを示す図である。ここでは4つのデバイス値91aないし91dが例示されているが、デバイス値は一つ以上である。抽出期間とは時系列データのうち個別データの時間的な位置を示す情報である。抽出期間は、個別データの開始位置(開始時刻)tsと終了位置(終了時刻)teにより定義される。また、抽出期間は、抽出期間の時間的な長さPと基準時trとによって定義されてもよい。長さPは位相期間と呼ばれてもよい。基準時trは基準位相と呼ばれてもよい。なお、抽出期間の長さPは開始位置tsから終了位置teまでの時間的な長さである。基準時trは、開始位置tsから終了位置teまでのいずれかの位置(時刻)を示している。たとえば、開始位置tsは基準時trからΔoffset1だけマイナスした時刻として定義されてもよい。終了位置teは基準時trからΔoffset2だけプラスした時刻として定義されてもよい。Δoffset1は0であり、Δoffset2はPであってもよい。つまり、終了位置teは開始位置tsから長さPをプラスした時刻として定義されてもよい。
図8では基準時trが開始位置tsに一致している事例を示している。
図8では横軸は時間を示しているが、スキャンの回数やデバイス値の収集回数(サンプリング数)であってもよい。なお、一スキャンの時間的な長さは必ずしも一定ではない。
【0030】
図8においてデバイス値91aはフィールドデバイスであるXYステージのX軸の座標変化を示している。デバイス値91bはXYステージのY軸の座標変化を示している。デバイス値91cは要求リレーを示している。要求リレーとは、基本ユニット3が拡張ユニット4に対して所定の処理の実行開始を指示するリレーである。デバイス値91dは完了リレーを示している。完了リレーとは、拡張ユニット4が基本ユニット3に対して所定の処理が完了したことを通知するリレーである。
【0031】
図8が示すように部品ごとの個別データには周期性がある。したがって、CPU31などが時系列データを解析して周期性を特定し、特定された周期性にしたがって個別データを抽出してもよい。
【0032】
●タクトタイムに基づく基準時の決定手法
CPU31は、ユーザにより入力されたタクトタイムttに基づいて基準時trを決定してもよい。タクトタイムttとは、一つの部品あたりの処理時間である。したがって、CPU31は、様々なビットデバイスのデバイス値の立ち上がりから次の立ち上がりまでの時間を求め、タクトタイムttに最も近い時間を求められたデバイス値の立ち上がりを基準時trに決定してもよい。
【0033】
図9はタクトタイムttに基づく基準時trの決定方法を示している。ここでは4つの一ビットデバイスのデバイス値91eないし91hが例示されている。デバイス値91eについての立ち上がり周期は0.4秒である。デバイス値91fについての立ち上がり周期は0.9秒である。デバイス値91gについての立ち上がり周期は3.2秒である。デバイス値91hについての立ち上がり周期は3.2秒である。ユーザはタクトタイムttとして3.2秒を設定したものとする。CPU31は、ユーザにより入力されたタクトタイムttに最も近い立ち上がり周期のデバイス値91gまたはデバイス値91hの立ち上がりを基準時trに決定する。デバイス値91gとデバイス値91hのように複数の候補が見つかった場合、CPU31は最も長い周期を採用する。デバイス値91gとデバイス値91hが同一であれば、CPU31は乱数によりいずれか一つを決定してもよい。
【0034】
●微分エッジに基づく基準時の決定手法
CPU31は時系列データの微分エッジを演算により求め、微分エッジが得られた位置を基準時trに決定してもよい。
図10が示すようにあるデバイスのデバイス値91iの時系列データを微分することで微分エッジ99が得られる。複数の位置に微分エッジ99が得られた場合、CPU31が閾値フィルタを用いて小さな微分エッジを除去する。CPU31は微分エッジ99が得られた時刻(位相)を基準時ttrに決定する。このようなエッジの検出方法としてはキャニー法やハイパスフィルタなどが採用されてもよい。
【0035】
●FFTやARモデルに基づく抽出期間の長さの決定手法
一般に時系列データには様々な周期の信号が重畳されている。部品の加工や検査では同様の工程が繰り返される。つまり、複数の部品についてのデバイス値は周期性を有している。特に、加工周期や検査周期などはほぼ一定期間であるため、これらの周期のスペクトルは最大となりやすい。そこで、CPU31は、時系列データを分析して見つかった複数のスペクトルのうち最も大きなスペクトルを見つけ、見つかった最大スペクトルの周期を抽出期間の長さPとしてもよい。たとえば、CPU31は高速フーリエ変換(FFT)やAR(自己回帰)モデルを用いて時系列データを分析し、抽出期間の長さPを決定してもよい。
【0036】
●個別データの波形の類似性に基づく抽出期間の長さの決定手法
CPU31は、個別データの波形の類似性に基づき周期を特定してもよい。これは同じ種類の部品であれば、その部品に対する加工や検査に対する処理も共通であるため、加工や検査についてのデバイス値の波形も類似するからである。
図11は部品ごとに抽出期間の長さPが変化しうるデバイス値91jを示している。
図11が示すようにある部品の抽出期間P1と、他の部品の抽出期間P2とが異なっていることがある。そこで、CPU31は、動的時間伸縮法などを用いて時系列データから波形の類似している複数の期間を抽出し、それぞれ抽出期間として決定する。この方法は部品ごとの抽出期間が一定でない場合に特に有用であろう。
【0037】
<機能ブロック>
図12は個別データの抽出処理に関与する機能を説明する図である。ここではPLC1に時系列データの収集と個別データの抽出に関与する機能が実装されている。ただし、
図13や
図14が示すようにこれらの機能はIPC11に実装されてもよいし、クラウド12に実装されてもよい。
【0038】
図12において基本ユニット3のCPU31は記憶装置32に記憶されている制御プログラムを実行することで以下の機能を実現する。ラダー実行部80はユーザプログラムを実行し、当該ユーザプログラムにしたがって複数のデバイスに記憶されている情報を演算処理するプログラム実行部である。ここではユーザプログラムの一例としてラダープログラム36が使用されている。ラダー実行部80は記憶装置32に記憶されているラダープログラム36を実行し、一スキャンごとにデバイス値91を更新する。収集部81は少なくとも一つのデバイスに記憶されているデバイスデータ(デバイス値91)を繰り返し収集することで時系列デバイスデータ(時系列データ92)を形成するデータ収集部である。選択部87は、収集部81により収集されるデバイス値を選択する。たとえば、選択部87はユーザによりプログラム作成支援装置2において作成された設定情報を分析し、収集対象のデバイス値を選択してもよい。ユーザはプログラム作成支援装置2において複数のデバイスをいくつかのグループに分け、各グループにロギング対象IDを付与することがある。さらに、ユーザは、プログラム作成支援装置2においてロギング対象IDを選択することでグループを選択する。選択されたグループのID、つまり、ロギング対象IDは設定情報に格納されて、ユーザプログラムとともにPLC1に転送される。そこで、選択部87は設定情報に格納されているロギング対象IDを取得し、さらにロギング対象IDに関連付けられている一つ以上のデバイスを取得し、取得したデバイスの識別情報を収集部81に設定する。収集部81は設定されたデバイスからデバイス値を収集する。
【0039】
ユーザはプログラム作成支援装置2においてリアルタイムでのチャート形式モニタやデバッグ用に一つ以上のデバイスを選択し、選択したデバイスの識別情報を設定情報に格納して、ユーザプログラムとともにPLC1に転送することがある。選択部87は設定情報に格納されているデバイスの識別情報を収集部81に設定してもよい。リアルタイムでのチャート形式モニタとは、プログラム作成支援装置2がPLC1からデバイス値を高速に読み出して、時系列のデバイス値を、チャート形式(グラフ形式)でリアルタイムに表示部7に表示する機能である。デバッグとはユーザプログラムのデバッグのことである。デバッグ用のデバイスの識別情報も設定情報に格納されて、ユーザプログラムとともにPLC1に転送される。プログラム作成支援装置2は、デバッグ用のデバイスのデバイス値をPLC1から取得して、表示部7に表示する。このように、リアルタイムでのチャート形式モニタやデバッグ用のデバイスが個別データ93の抽出のために選択されてもよい。
【0040】
プログラム作成支援装置2の表示部7だけではなく、PLC1の表示部5に一つ以上のデバイス値が表示されることもある。この場合にも取得対象のデバイスの識別情報は設定情報に格納されて、ユーザプログラムとともにPLC1に転送される。したがって、選択部87は設定情報を解析することで、収集部81に取得させるデバイス値を選択してもよい。選択部87は収集部81の内部に設けられていてもよい。
【0041】
決定部82は、時系列データ92から各部品ごとの個別データ93を抽出するための抽出期間を決定する。上述した抽出期間の基準時trを決定する手法や長さPを決定する手法を用いて抽出期間を決定する。調整部83はオプションであり、決定部82により決定された抽出期間を、ユーザの指示に応じて調整する。これにより抽出期間をユーザの意図したとおりに調整することが可能となる。調整部83は決定部82の内部に設けられていてもよい。調整部83が決定部82の外部に設けられている場合、調整部83は調整量を含む調整指示を決定部82に送信するように構成されてもよい。この場合、決定部82は、自ら決定した抽出期間を、調整部83により指示された調整量にしたがって、オフセットする。
【0042】
抽出部84は、決定部82により決定された各抽出期間における個別データ93を時系列データ92から抽出する。付与部85は、抽出部84により抽出された各個別データに対して各個別データを識別するための識別情報を付与する。識別情報は、たとえば、シリアル番号であってもよいが、各個別データを区別できる情報であれば他の情報であってもよい。送信部86はオプションであり、個別データ93をクライアントであるプログラム作成支援装置2へ送信する。ユーザによる個別データ93の検討がPLC1において実行される場合、CPU31は表示部5に個別データ93を表示してもよい。表示部5はPLC1に接続された外部表示装置であってもよい。個別データ93のフォーマットはCSV形式であってもよいし、SQL形式であってもよい。SQLはデータベース言語の一種である。
【0043】
図13はIPC11がデバイス値の収集機能や抽出機能を有している事例を示している。すでに説明されている機能については説明が省略されるか、簡潔に説明される。IPC11のCPU51はプログラム記憶部55に記憶されている制御プログラムを実行することで様々な機能を実現する。
図13が示すように、収集部81、選択部87、決定部82、調整部83、抽出部84、付与部85および送信部86などを実装する。収集部81は、取得条件(例:定期的)が満たされたときにPLC1からデバイス値91を取得し、記憶装置52の時系列データ記憶部54に記憶する。決定部82は時系列データ記憶部54に記憶されている時系列データ92の抽出期間を決定する。抽出部84は決定された抽出期間にしたがって部品ごとの個別データ93を抽出する。付与部85は抽出された個別データ93に識別情報を付与する。送信部86はオプションであり、クラウド12やプログラム作成支援装置2に個別データ93を送信する。なお、IPC11において個別データ93の検討が実行される場合、CPU51は表示部57に個別データ93を表示する。なお、IPC11が省略される場合、これらの機能はクラウド12のCPU61と記憶装置62、表示部67などにより実現される。
【0044】
図14はIPC11がデバイス値の収集機能を有し、クラウド12が抽出機能を有している事例を示している。クラウド12のCPU61はプログラム記憶部65に記憶されている制御プログラムを実行することで、決定部82、調整部83(オプション)、抽出部84および付与部85などを実現する。IPC11はPLC1から収集したデバイス値91を時系列データ92にまとめてクラウド12に転送する。IPC11は時系列データ92を一時的に記憶装置52に記憶してもよい。クラウド12のCPU61はIPC11から受信した時系列データ92を時系列データ記憶部64に記憶する。決定部82は時系列データ記憶部64に記憶されている時系列データ92の抽出期間を決定する。抽出部84は決定された抽出期間にしたがって部品ごとの個別データ93を抽出する。付与部85は抽出された個別データ93に識別情報を付与する。また、CPU61は表示部67に個別データ93を表示する。あるいは、プログラム作成支援装置2の表示部7に個別データ93を表示させるために、送信部86は個別データ93をプログラム作成支援装置に送信してもよい。
【0045】
<フローチャート>
●収集処理
図15はPLC1のCPU31が実行する収集処理を示すフローチャートである。操作部6には設定モードと運転モードとを切り替えるスイッチが設けられている。設定モードとは、プログラム作成支援装置2からユーザプログラムや設定情報を受信する処理である。運転モードとはユーザプログラムを実行するモードである。CPU31は設定モードから運転モードへの切り替えが指示されると、以下の処理を実行する。
・S1でCPU31(ラダー実行部80)はユーザプログラムをRAMにロードする。
・S2でCPU31(ラダー実行部80)はユーザプログラムのスキャンを実行する。ラダー実行部80はユーザプログラムにしたがって各種のデバイスに格納されているデバイス値に所定の演算を実行し、デバイス値を更新する。所定の演算の内容はユーザプログラムによって定義されている。
・S3でCPU31(収集部81)はデバイス値を収集する。収集部81は、選択部87により選択された取得対象のデバイス値をデバイスから読み出し、時系列データ92に追加する。上述したように収集処理はIPC11のCPU51により実行されてもよいし、クラウド12のCPU61により実行されてもよい。デバイス値の収集タイミング(サンプリングタイミング)は、一スキャンごとであってもよいし、数スキャンごとであってもよい。また、収集はエンド処理において実行されてもよいし、スキャン中であってもよい。また、一スキャンにおいて複数回の収集が実行されてもよい。
・S4でCPU31(ラダー実行部80)はプログラムの停止が指示されたかどうかを判定する。たとえば、CPU31は上述したスイッチが運転モードから設定モードに切り替えられると、プログラムの停止が指示されたと判定する。プログラムの停止が指示されていなければ、CPU31はS2ないしS4の処理を繰り返し実行する。プログラムの停止が指示されると、CPU31はユーザプログラムを停止する。このようにして時系列データ92が収集される。
【0046】
図16は時系列データ92の一例を示している。時刻情報は分:秒:1/100秒により表記されている。ここでは、選択部87により取得対象としてデバイスa、b、c、dが選択されている。デバイスa,bはXYステージのX座標とY座標など、1ワードのデータを格納している。デバイスcは、ビットデバイスであり、ここでは要求リレーである。デバイスdは、ビットデバイスであり、ここでは完了リレーである。
図16が示すようにこの段階では時系列データ92のどの部分がどの部品に対応しているかをユーザは特定しにくいだろう。
【0047】
●抽出処理
図17は個別データの抽出処理を示すフローチャートである。上述したように抽出処理はCPU21、31、51、61の何れにより実行されてもよいが、ここではCPU31により実行されるものとする。
・S11でCPU31(決定部82)は個別データの抽出期間を決定する。決定部82は、タクトタイムttに基づいて基準時trを決定したり、FFTなどにより時系列データ92から抽出期間の長さPを決定したりする。決定部82は抽出期間を抽出部84に設定する。
・S12でCPU31(抽出部84)は決定部82により決定された抽出期間にしたがって部品ごとの個別データ93を時系列データ92から抽出する。
・S13でCPU31(付与部85)は、抽出部84により抽出された各個別データ93に識別情報を付与する。
【0048】
図18は個別データ93の一例を示している。抽出部84は時系列データ92から部品ごとの個別データ93を切り出して、各個別データ93に識別情報を付与している。
図18においては二つの個別データ93が例示されており、それぞれ異なる識別情報として"01"と"02"が付与されている。
【0049】
S14でCPU31は個別データ93を表示部5に表示する。上述したようにCPU31は個別データ93をプログラム作成支援装置2に送信することで、表示部7に個別データ93を表示してもよい。なお、S13からS14は、同期実行であってもよいし、非同期実行であってもよい。すなわち、例えばCPU31は、ユーザの表示指示に基づきS14の処理へ移行してもよい。この場合、例えば操作部8を介してユーザの表示指示がなされるまでは、CPU31は、S12及びS13の処理を繰り返し実行し、ユーザの表示指示があったときに、S14の処理へと移行してもよい。
【0050】
図19は個別データ93を表示するユーザインタフェース(UI100)の一例を示している。個別データ表示部101は、個別データ93を表示する表示領域である。この例では二つの個別データ93が表示されている。UI100が抽出期間の調整UIを兼ねていてもよい。バー102は基準時trの位置を示すオブジェクトである。フレーム103は抽出期間を示すUIである。調整部83は、ユーザが操作部6を通じてバー102を右方向または左方向に移動させると、バー102の移動量と移動方向に応じて基準時trを調整する。また、調整部83は、ユーザが操作部6を通じてフレーム103の右辺を右方向または左方向に移動させると、フレーム103の右辺の移動量と移動方向に応じて位相期間の長さPを調整する。なお、フレーム103の左辺とバー102とが統合されてもよい。メニュー104は、基準時trの決定手法の選択を受け付けるメニューである。この例ではタクトタイム指定や微分エッジの検出などが選択可能となっている。数値入力ボックス105は、タクトタイムの入力を受け付けるオブジェクトである。メニュー106は抽出期間の長さPの決定手法の選択を受け付けるメニューである。この例では、FFTやARモデルなどが選択可能となっている。数値入力ボックス107はデバイス値の収集周期の入力を受け付けるオブジェクトである。収集部81はこの収集周期にしたがってデバイス値をサンプリングする。ここでは、操作部6を通じて抽出期間が調整されているが、プログラム作成支援装置2の操作部8を通じて抽出期間が調整されてもよい。
【0051】
図20は個別データ表示部101の他の例を示している。この例では二つの個別データ93が縦に並んで表示されている。
図21は個別データ表示部101の他の例を示している。この例では二つの個別データ93が重ねて表示されている。たとえば、CPU31は、二つの個別データ93の抽出期間が重なるように二つの個別データ93を重ねてもよい。CPU31は、二つの個別データ93の重なっている部分が多くなるように、一方の個別データ93を他方の個別データ93に対して位置合わせしてもよい。とりわけ、二つの個別データ93を重ねて表示することで、ユーザは二つの個別データ93の微妙な差を視覚的に見つけやすくなろう。
【0052】
図20や
図21においてもCPU31はバー102やフレーム103を二つの個別データ93に重ね、かつ、調整可能に表示してもよい。なお、バー102の調整量やフレーム103の調整量は、個別データ93ごとに適用されてもよいし、すべての個別データ93に対して共通に適用されてもよい。
【0053】
図17のS15でCPU31(調整部83)は操作部6を通じて調整実行の指示が入力されたかどうかを判定する。調整実行の指示が入力されていなければ、CPU31は、個別データ93の抽出処理を終了する。一方で、調整実行の指示が入力されると、CPU31は、S16に進む。
【0054】
S16でCPU31(調整部83)は操作部6を通じてユーザにより入力される抽出期間の調整を受け付ける。調整部83は、たとえば、
図19に示したUI100を通じて基準時trや抽出期間の長さPの調整を受け付けてもよい。抽出期間の調整が終了すると、調整部83は抽出期間の調整結果を抽出部84に設定し、S12に戻る。S12で抽出部84は、調整された抽出期間にしたがって個別データ93を抽出する。その後、CPU31はS13からS15また、または、S16まで実行する。なお、基準時trの調整量は決定部82により決定された基準時trに対するオフセット量として保持されてもよい。同様に、長さPの調整量は決定部82により決定された長さPに対するオフセット量として保持されてもよい。S16では、基準時trの決定手法や長さPの決定手法が変更されてもよい。この場合、CPU31はS11に戻り、変更後の決定手法にしたがって抽出期間を再度決定し、抽出部84に設定する。CPU31は、プログラム作成支援装置2に個別データ93や時系列データ92を送信し、プログラム作成支援装置2から抽出期間の調整結果を受け付けてもよい。
【0055】
<シーケンス>
図22は個別データ93の送受信に関連したシーケンスを示している。この例では、PLC1のCPU31に収集部81、選択部87、決定部82、抽出部84、付与部85、送信部86が実装される。プログラム作成支援装置2のCPU21には個別データ93の表示制御部や調整部83が実装される。
・Sq1でプログラム作成支援装置2はユーザプログラムと設定情報を送信し、PLC1がこれを受信して記憶装置32に記憶する。
・Sq2でPLC1はユーザプログラムにしたがってデバイス値を求め、時系列データ92を収集し、個別データ93を抽出して、プログラム作成支援装置2に送信する。プログラム作成支援装置2は個別データ93を受信して表示部7に表示する。なお、プログラム作成支援装置2のCPU21や通信部23は、個別データをPLC1から受信する受信部として機能する。
・Sq3は、プログラム作成支援装置2が調整部83を実装している場合に実行される。プログラム作成支援装置2は抽出期間(基準時trや長さP、これらの決定手法など)の調整を受け付けて調整指示を作成し、PLC1に送信する。
・Sq4でPLC1は調整指示にしたがって抽出期間を調整し、時系列データ92から個別データ93を再度抽出して、プログラム作成支援装置2に送信する。プログラム作成支援装置2は個別データ93を受信して表示部7に表示する。
【0056】
図23は個別データ93の送受信に関連した別のシーケンスを示している。この例では、IPC11のCPU51に収集部81、選択部87、決定部82、抽出部84、付与部85および送信部86が実装される。プログラム作成支援装置2のCPU21には個別データ93の表示制御部や調整部83が実装される。
・Sq1でプログラム作成支援装置2はユーザプログラムと設定情報を送信し、PLC1がこれを受信して記憶装置32に記憶する。
・Sq11でPLC1はユーザプログラムにしたがってデバイス値を求める。IPC11はデバイス値をPLC1から読み出す(受信する)。
・Sq12でIPC11は収集したデバイス値から時系列データ92を作成する。IPC11は、時系列データ92から個別データ93を抽出し、プログラム作成支援装置2に個別データ93を送信する。プログラム作成支援装置2は個別データ93をIPC11から受信すると、表示部7に個別データ93を表示する。なお、プログラム作成支援装置2のCPU21や通信部23は、個別データをIPC11から受信する受信部として機能する。
・Sq13は、プログラム作成支援装置2が調整部83を実装している場合に実行される。プログラム作成支援装置2は抽出期間(基準時trや長さP、これらの決定手法など)の調整を受け付けて調整指示を作成し、IPC11に送信する。
・Sq14でIPC11は調整指示にしたがって抽出期間を調整し、時系列データ92から個別データ93を再度抽出して、プログラム作成支援装置2に送信する。プログラム作成支援装置2は個別データ93を受信して表示部7に表示する。
【0057】
図24は個別データ93の送受信に関連したさらに別のシーケンスを示している。この例では、IPC11のCPU51に収集部81と選択部87が実装されている。クラウド12のCPU61に決定部82、抽出部84、付与部85、送信部86が実装される。プログラム作成支援装置2のCPU21には個別データ93の表示制御部や調整部83が実装される。
・Sq1でプログラム作成支援装置2はユーザプログラムと設定情報を送信し、PLC1がこれを受信して記憶装置32に記憶する。
・Sq11でPLC1はユーザプログラムにしたがってデバイス値を求める。IPC11はデバイス値をPLC1から読み出す(受信する)。
・Sq22でIPC11は収集したデバイス値から時系列データ92を作成し、クラウド12に時系列データ92を送信する。クラウド12はIPC11から時系列データ92を受信する。
・Sq23でからクラウド12は時系列データ92から個別データ93を抽出し、プログラム作成支援装置2に個別データ93を送信する。プログラム作成支援装置2はクラウド12から個別データ93を受信すると、表示部7に個別データ93を表示する。なお、プログラム作成支援装置2のCPU21や通信部23は、個別データをクラウド12から受信する受信部として機能する。同様の受信部がPLC1に設けられていてもよい。
・Sq24は、プログラム作成支援装置2が調整部83を実装している場合に実行される。プログラム作成支援装置2は抽出期間(基準時trや長さP、これらの決定手法など)の調整を受け付けて調整指示を作成し、クラウド12に送信する。
・Sq25でクラウド12は調整指示にしたがって抽出期間を調整し、時系列データ92から個別データ93を再度抽出して、プログラム作成支援装置2に送信する。プログラム作成支援装置2は個別データ93をクラウド12から受信して表示部7に表示する。
【0058】
図25は個別データ93の送受信に関連したさらに別のシーケンスを示している。この例では、クラウド12のCPU61に収集部81、選択部87、決定部82、抽出部84、付与部85、送信部86が実装される。プログラム作成支援装置2のCPU21には個別データ93の表示制御部や調整部83が実装される。
・Sq1でプログラム作成支援装置2はユーザプログラムと設定情報を送信し、PLC1がこれを受信して記憶装置32に記憶する。
・Sq31でPLC1はユーザプログラムにしたがってデバイス値を求める。PLC1はクラウド12へデバイス値を送信する。クラウド12は収集したデバイス値から時系列データ92を作成する。その後、Sq23ないしSq25が実行される。
【0059】
図22ないし
図24において個別データ93の表示制御部と調整部83がプログラム作成支援装置2に実装されているが、別のクライアントコンピュータに実装されてもよい。クライアントコンピュータの内部構成はプログラム作成支援装置2からプログラム作成支援機能を除いた内部構成と同じであってもよい。
【0060】
<表示結果>
図26は個別データ93の表示例を示している。プログラム作成支援装置2のCPU21(表示制御部)は複数の個別データ93を表示部7に表示する。この例では00:00:00から00:02:70までに取得されたデバイス値により第一の個別データ93が形成され、識別情報として"01"が付与されている。00:03:00から00:06:00までに取得されたデバイス値により第二の個別データ93が形成され、識別情報として"02"が付与されている。00:06:30から00:09:00までに取得されたデバイス値により第三の個別データ93が形成され、識別情報として"03"が付与されている。CPU21は各デバイス値と公差(閾値)とを比較し、公差を逸脱しているデバイス値を強調表示してもよい。また、CPU21は、通常のタイミングとは異なるタイミングに完了リレーが1となっているデバイス値を強調表示してもよい。
【0061】
図26に示した事例では第一の個別データ93における時刻00:01:50に取得されたデバイス値cがNGと判定されており、強調表示されている。ユーザは、時刻00:01:20に取得されたデバイス値aと、第二の個別データ93と第三の個別データ93における同位相(時刻00:04:20、00:07:20)のデバイス値aを比較する。時刻00:04:20に取得されたデバイス値aは5.9であり、ユーザは適正な値であると判断する。また、時刻00:07:20に取得されたデバイス値aは4.4であり、ユーザは適正な値であるが、NGである4.2に対するマージンはほとんどないと判断できる。これによりユーザはデバイス値aに関して何らかの対策が必要であると判断できる。
【0062】
<まとめ>
以上の実施例から導かれる技術思想について説明する。PLC1はユーザプログラムを繰り返し実行するプログラマブル・ロジック・コントローラの一例である。なお、PLC1はユーザプログラムにしたがって複数の部品に対する検査または加工を制御してもよい。部品はワークと呼ばれてもよく、完成品を含む用語である。記憶装置32はユーザプログラムを記憶するプログラム記憶部の一例である。記憶装置32はユーザプログラムにより指定可能であり、1ビットの情報を記憶するビットデバイスおよび1ワード又は数ワードの情報を記憶するワードデバイスを含む複数のデバイスを保持するデバイス記憶部の一例である。ラダー実行部80はプログラム記憶部に記憶されているユーザプログラムを繰り返し実行し、当該ユーザプログラムにしたがって複数のデバイスに記憶されている情報を演算処理するプログラム実行部の一例である。収集部81は少なくとも一つのデバイスに記憶されているデバイスデータを繰り返し収集することで、周期性を有する時系列デバイスデータを形成するデータ収集部の一例である。決定部82は時系列デバイスデータから周期ごとの個別データを抽出するための抽出期間を決定する決定部の一例である。抽出部84は決定部82により決定された各抽出期間における個別データを時系列デバイスデータから抽出する抽出部の一例である。付与部85は抽出部84により抽出された各個別データに対して各個別データを識別するための識別情報を付与する付与部の一例である。このように、本実施例によれば、時系列データから個別データを抽出することがユーザにとって容易になる。
【0063】
抽出期間の開始位置と終了位置は、個別データ93の抽出の基準位置を示す情報(例:基準時tr)と、抽出期間の時間的な長さ(例:長さP)を示す情報によって定義されてもよい。時系列デバイスデータは、収集部81が複数のデバイスからそれぞれ収集したデータを含むデータ群と、当該データを収集したタイミングを示すタイミング情報とを含んでもよい。
図16などに示したように時系列データ92においてデバイスa~dの各デバイス値はデータ群の一例である。取得時刻の情報はタイミング情報の一例である。
【0064】
決定部82は、複数のデバイスのうち少なくとも一つのデバイスから収集された時系列デバイスデータの周期に基づき、各抽出期間の基準位置を決定してもよい。数値入力ボックス105、部品に対するタクトタイムttの入力を受け付ける受付部の一例である。
図9に示したように、決定部82は、複数のデバイスからそれぞれ収集されたデータの周期を求め、タクトタイムttに対して相対的に近い周期のデータに基づき各抽出期間の基準位置を決定してもよい。
図10を用いて説明したように、決定部82は、時系列デバイスデータを微分して微分エッジを求め、当該求められた微分エッジの位置を抽出期間の基準位置に決定してもよい。メニュー104に関連して説明したように、決定部82は、基準位置を決定する複数の決定手法を有していてもよい。決定部82は、ユーザにより選択された決定手法を用いて基準位置を決定してもよい。
【0065】
決定部82は時系列デバイスデータをフーリエ変換または自己回帰モデルにより複数のスペクトルを取得し、当該複数のスペクトルのうち相対的に大きなスペクトルの周波数の逆数を抽出期間の時間的な長さに決定してもよい。部品などのワークは一定の周期で生産または検査される。そのため、時系列データは周期性を有する。よって、FFTやARモデルを用いることで比較的に正確に抽出期間の時間的な長さPが特定されよう。
図11を用いて説明したように、決定部82は時系列デバイスデータにおける波形の類似性に基づき抽出期間の時間的な長さPを決定してもよい。決定部82は、抽出期間の時間的な長さPを決定する複数の決定手法を有しており、ユーザにより選択された決定手法を用いて抽出期間の時間的な長さPを決定してもよい。ユーザはより適切と考える決定方法を選択しやすくなろう。たとえば、決定部82はFFTにより決定手法、ARモデルに基づく決定手法、形状類似性に基づく決定手法などからユーザにより選択された決定手法を採用してもよい。決定手法を選択するためのメニューがUI100に追加されてもよい。
【0066】
記憶装置32はユーザプログラムを管理するためのプロジェクト情報(設定情報)を記憶していてもよい。収集部81は、プロジェクト情報に基づきデバイスデータを収集される複数のデバイスを選択し、当該選択された複数のデバイスのそれぞれからデバイスデータを収集してもよい。たとえば、プロジェクト情報にはユーザにより登録されたデバック用のデバイスを指定する情報が含まれていてもよい。収集部81や選択部87は、デバック用のデバイスを指定する情報に基づきデバイスデータを収集される複数のデバイスを選択し、当該選択された複数のデバイスのそれぞれからデバイスデータを収集してもよい。これにより、収集対象のデバイスを指定するためのユーザの負担が軽減されよう。
【0067】
プロジェクト情報にはユーザにより登録された表示対象のデバイスを指定する情報が含まれていてもよい。収集部81や選択部87は、表示対象のデバイスを指定する情報に基づきデバイスデータを収集される複数のデバイスを選択し、当該選択された複数のデバイスのそれぞれからデバイスデータを収集してもよい。
【0068】
図19などに示したように、調整部83は、決定部82により決定された抽出期間をユーザの操作に基づき調整する調整部の一例である。決定部82により決定された抽出期間に誤差があると、ワークごとの個別データを正確に抽出することが困難となる。したがって、ユーザに抽出期間の調整する機会を付与することで、より正確に個別データが抽出されるようになろう。
図19に示したように、プログラム作成支援装置2の表示部7は、時系列デバイスデータまたは個別データ93と抽出期間とを表示する表示部の一例である。調整部83は、表示部7に表示された抽出期間に対するユーザの操作を受け付けてもよい。ユーザは個別データ93などを目で見て確認しながら、抽出期間を正しく調整できるであろう。
【0069】
図19や
図20に示したように、表示部7は、第一デバイスから収集された時系列デバイスデータの波形と、第二デバイスから収集された時系列デバイスデータの波形とを共通の時間軸上において並べて表示してもよい。
図21に示したように、表示部7は、第一デバイスから収集された時系列デバイスデータの波形と、第二デバイスから収集された時系列デバイスデータの波形とを共通の時間軸上において重ねて表示してもよい。これによりワークごとの個別データの違いをユーザは見つけやすくなろう。なお、表示部7は、PLC1に接続され、ユーザによるユーザプログラムの作成を支援するプログラム作成支援装置2に設けられていてもよい。
【0070】
送信部86は、時系列データ92や識別情報を付与された個別データ93をクラウド12に送信する送信部の一例である。これにより、クラウド12は時系列データ92から個別データを抽出してもよいし、個別データ93をさらに詳細に分析してもよい。たとえば、クラウド12のCPU61は、複数の個別データ93を比較したり、NGデータを含む個別データ93を特定したりしてもよい。NGはno goodの略称である。
【0071】
IPC11やクラウド12は、複数の部品に対する検査または加工を制御するプログラマブル・ロジック・コントローラに接続されたデータ収集装置の一例である。
図23ないし
図25を用いて説明したように、IPC11やクラウド12は、収集部81、決定部82、抽出部84、付与部85を適宜に有する。
【0072】
図12においてタクトタイムttは時間を単位とするデータであるが、単位時間あたりに処理される部品の数に置換されてもよい。また、タクトタイムttに代えて、一つのワークの検査に必要となる検査時間やワークの到着周期が採用されてもよい。
【0073】
抽出部84は、個別データ93からさらに所定期間のサブデータを抽出してもよい。所定期間は抽出期間よりも短い時間である。たとえば、ユーザが要求リレーの立ち上がり前後のデバイス値を確認することを希望すると、抽出部84は、要求リレーの立ち上がり前後の所定期間にわたるサブデータを抽出してもよい。なお、個別データ93とサブデータとは同時に表示されてもよい。サブデータはもともと個別データ93の一部分である。そのため、個別データ93の抽出期間を示すフレーム103に加え、サブデータの部分を囲むようなフレームが表示されてもよい。デバイス値の波形における面積(たとえば、上凸となっている領域の面積など)をユーザが確認したいと希望する場合、抽出部84は、この面積に相当するサブデータを個別データ93から抽出してもよい。このサブデータにもフレームが表示されてもよい。
【0074】
CPU31、51はそれぞれ識別情報を付与された複数の個別データ93から形成されたデータファイルを記憶装置32、52に記憶させてもよい。たとえば、CSV形式やSQL形式のデータファイルが作成されてもよい。CPU31、51の送信部86はデータファイルをクラウド12へ転送する。なお、CSV形式やSQL形式は一例にすぎず、クラウド12が要求する形式が採用されればよい。また、個別データ93は、データファイルの形式で記憶されるのではなく、時系列データ92の一部として記憶装置32、52に記憶されてもよい。すなわち、「個別データ93を時系列データ92から抽出する」とは、時系列データ92から個別データ93を切り出し又はコピーすることにより、時系列データ92から分離されたデータとして抽出することは勿論、時系列データ92中で個別データ93に相当する部分を特定することをも含む。この場合、個別データ93は、時系列データ92から分離されず、時系列データ92の一部として記憶装置32、52に記憶される。