(57)【要約】【課題】時系列データから個別データを抽出することをユーザにとって容易にすること。【解決手段】収集部８１は少なくとも一つのデバイスに記憶されているデバイスデータを繰り返し収集することで時系列データを形成する。決定部８２は時系列データから周期ごとの個別データを抽出するための抽出期間を決定する。抽出部８４は各抽出期間における個別データを時系列データから抽出する。付与部８５は抽出部８４により抽出された各個別データに対して各個別データを識別するための識別情報を付与する。【選択図】図１２
2019016325.tif 000002
【特許請求の範囲】
【請求項１】
ユーザプログラムを繰り返し実行するプログラマブル・ロジック・コントローラであって、
前記ユーザプログラムを記憶するプログラム記憶部と、
前記ユーザプログラムにより指定可能であり、１ビットの情報を記憶するビットデバイスおよび１ワード又は数ワードの情報を記憶するワードデバイスを含む複数のデバイスを保持するデバイス記憶部と、
前記プログラム記憶部に記憶されているユーザプログラムを繰り返し実行し、当該ユーザプログラムにしたがって前記複数のデバイスに記憶されている情報を演算処理するプログラム実行部と、
少なくとも一つのデバイスに記憶されているデバイスデータを繰り返し収集することで、周期性を有する時系列デバイスデータを形成するデータ収集部と、
前記時系列デバイスデータから周期ごとの個別データを抽出するための抽出期間を決定する決定部と、
前記決定部により決定された各抽出期間における個別データを前記時系列デバイスデータから抽出する抽出部と、
前記抽出部により抽出された各個別データに対して各個別データを識別するための識別情報を付与する付与部と
を有するプログラマブル・ロジック・コントローラ。
【請求項２】
前記抽出期間の開始位置と終了位置は、前記個別データの抽出の基準位置を示す情報と、前記抽出期間の時間的な長さを示す情報によって定義されていることを特徴とする請求項１に記載のプログラマブル・ロジック・コントローラ。
【請求項３】
前記時系列デバイスデータは、前記データ収集部が複数のデバイスからそれぞれ収集したデータを含むデータ群と、当該データを収集したタイミングを示すタイミング情報とを含むことを特徴とする請求項２に記載のプログラマブル・ロジック・コントローラ。
【請求項４】
前記決定部は、前記複数のデバイスのうち少なくとも一つのデバイスから収集された時系列デバイスデータの周期に基づき、各抽出期間の基準位置を決定することを特徴とする請求項３に記載のプログラマブル・ロジック・コントローラ。
【請求項５】
部品に対するタクトタイムの入力を受け付ける受付部をさらに有し、
前記決定部は、複数のデバイスからそれぞれ収集されたデータの周期を求め、前記タクトタイムに対して相対的に近い周期のデータに基づき各抽出期間の基準位置を決定することを特徴とする請求項４に記載のプログラマブル・ロジック・コントローラ。
【請求項６】
前記決定部は、前記時系列デバイスデータを微分して微分エッジを求め、当該求められた微分エッジの位置を前記抽出期間の基準位置に決定することを特徴とする請求項４に記載のプログラマブル・ロジック・コントローラ。
【請求項７】
前記決定部は、前記基準位置を決定する複数の決定手法を有しており、ユーザにより選択された決定手法を用いて前記基準位置を決定することを特徴とする請求項２ないし６のいずれか一項に記載のプログラマブル・ロジック・コントローラ。
【請求項８】
前記決定部は前記時系列デバイスデータをフーリエ変換または自己回帰モデルにより複数のスペクトルを取得し、当該複数のスペクトルのうち相対的に大きなスペクトルの周波数の逆数を前記抽出期間の時間的な長さに決定することを特徴とする請求項２ないし７のいずれか一項に記載のプログラマブル・ロジック・コントローラ。
【請求項９】
前記決定部は前記時系列デバイスデータにおける波形の類似性に基づき前記抽出期間の時間的な長さを決定することを特徴とする請求項２ないし７いずれか一項に記載のプログラマブル・ロジック・コントローラ。
【請求項１０】
前記決定部は、前記抽出期間の時間的な長さを決定する複数の決定手法を有しており、ユーザにより選択された決定手法を用いて前記抽出期間の時間的な長さを決定することを特徴とする請求項８または９に記載のプログラマブル・ロジック・コントローラ。
【請求項１１】
前記プログラム記憶部は前記ユーザプログラムを管理するためのプロジェクト情報を記憶しており、
前記データ収集部は、前記プロジェクト情報に基づきデバイスデータを収集される複数のデバイスを選択し、当該選択された複数のデバイスのそれぞれからデバイスデータを収集することを特徴とする請求項１ないし１０のいずれか一項に記載のプログラマブル・ロジック・コントローラ。
【請求項１２】
前記プロジェクト情報にはユーザにより登録されたデバック用のデバイスを指定する情報が含まれており、
前記データ収集部は、前記デバック用のデバイスを指定する情報に基づきデバイスデータを収集される複数のデバイスを選択し、当該選択された複数のデバイスのそれぞれからデバイスデータを収集することを特徴とする請求項１１に記載のプログラマブル・ロジック・コントローラ。
【請求項１３】
前記プロジェクト情報にはユーザにより登録された表示対象のデバイスを指定する情報が含まれており、
前記データ収集部は、前記表示対象のデバイスを指定する情報に基づきデバイスデータを収集される複数のデバイスを選択し、当該選択された複数のデバイスのそれぞれからデバイスデータを収集することを特徴とする請求項１１に記載のプログラマブル・ロジック・コントローラ。
【請求項１４】
前記決定部により決定された抽出期間をユーザの操作に基づき調整する調整部をさらに有することを特徴とする請求項１ないし１３のいずれか一項に記載のプログラマブル・ロジック・コントローラ。
【請求項１５】
前記時系列デバイスデータと前記抽出期間とを表示する表示部をさらに有しているか、または接続されており、
前記調整部は、前記表示部に表示された前記抽出期間に対するユーザの操作を受け付けることを特徴とする請求項１４に記載のプログラマブル・ロジック・コントローラ。
【請求項１６】
前記表示部は、第一デバイスから収集された時系列デバイスデータの波形と、第二デバイスから収集された時系列デバイスデータの波形とを共通の時間軸上において並べて表示することを特徴とする請求項１５に記載のプログラマブル・ロジック・コントローラ。
【請求項１７】
前記表示部は、第一デバイスから収集された時系列デバイスデータの波形と、第二デバイスから収集された時系列デバイスデータの波形とを共通の時間軸上において重ねて表示することを特徴とする請求項１５に記載のプログラマブル・ロジック・コントローラ。
【請求項１８】
前記表示部は、前記プログラマブル・ロジック・コントローラに接続され、ユーザによる前記ユーザプログラムの作成を支援するプログラム作成支援装置に設けられていることを特徴とする請求項１５ないし１７のいずれか一項に記載のプログラマブル・ロジック・コントローラ。
【請求項１９】
前記識別情報を付与された個別データをクラウドに送信する送信部及び該個別データをクラウドから受信する受信部をさらに有することを特徴とする請求項１ないし１８のいずれか一項に記載のプログラマブル・ロジック・コントローラ。
【請求項２０】
ユーザプログラムを繰り返し実行するプログラマブル・ロジック・コントローラに接続されたデータ収集装置であって、
前記プログラマブル・ロジック・コントローラは、
ユーザプログラムを記憶するプログラム記憶部と、
前記ユーザプログラムにより指定可能であり、１ビットの情報を記憶するビットデバイスおよび１ワード又は数ワードの情報を記憶するワードデバイスを含む複数のデバイスを保持するデバイス記憶部と、
前記プログラム記憶部に記憶されているユーザプログラムを繰り返し実行し、当該ユーザプログラムにしたがって前記複数のデバイスに記憶されている情報を演算処理するプログラム実行部と、を有し、
前記データ収集装置は、
少なくとも一つのデバイスに記憶されているデバイスデータを繰り返し収集することで、周期性を有する時系列デバイスデータを形成するデータ収集部と、
前記時系列デバイスデータから周期ごとの個別データを抽出するための抽出期間を決定する決定部と、
前記決定部により決定された各抽出期間における個別データを前記時系列デバイスデータから抽出する抽出部と、
前記抽出部により抽出された各個別データに対して各個別データを識別するための識別情報を付与する付与部と
を有するデータ収集装置。
【請求項２１】
前記データ収集装置は、クラウドを構成するサーバであることを特徴とする請求項２０に記載のデータ収集装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル・ロジック・コントローラおよびデータ収集装置に関する。
【背景技術】
【０００２】
プログラマブル・ロジック・コントローラ（以下、ＰＬＣと称す）は、ＦＡ（Factory Automation）制御システムにおいて広く使用されているシーケンス制御装置であり、ラダープログラムなどのユーザプログラムにしたがって動作する。操作者（オペレータ）は、リミットスイッチ、センサ、温度計などの入力機器や、電磁開閉器、ソレノイド、モータ、アクチュエータ、シリンダ、リレー、位置決めシステムなどの出力機器をＰＬＣに接続し、ラダープログラムによってこれらの被制御機器を制御する。オペレータは、パーソナルコンピュータ（以下、ＰＣと称す）などのプログラム作成支援装置上でラダープログラムを作成し、ＰＣとＰＬＣを接続し、ラダープログラムをＰＬＣの記憶部に記憶させる。ＰＬＣの記憶部にはデバイス情報等の各種データも記憶される。デバイス情報とは、入力機器からの入力状態、出力機器への出力状態およびラダープログラム上で設定される内部リレー（補助リレー）、タイマー、カウンタ、データメモリ等の状態を示す情報である。デバイスとは、デバイス情報を格納するために設けられたメモリ上の領域を指す名称である。ＰＬＣにプログラム作成支援装置を接続することで、ＰＬＣが保持しているデバイス情報（デバイスの値）をプログラム作成支援装置に表示させ、視認することもできる。ＰＬＣは一般に基本ユニット（ＣＰＵユニット）と拡張ユニットにより構成される。ＣＰＵユニットと拡張ユニットは予め割り付けられたデバイスを通じてスキャン周期ごとに実行されるリフレッシュによってデバイス値を相互に交換する。
【０００３】
ところで、ワーク（部品）の生産工程において安定してワークを生産するためには、生産工程の予知保全が必要となる。これは生産工程において使用される製造機械にはメンテナンスが必要な部分が存在するからである。特許文献１によれば、産業機械が所定のテンプレートにしたがってデータをクラウドに転送することで、クラウドがデータを分析することが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第９１２８４７２号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１によれば、予め用意されたテンプレートが必要となる。つまり、ユーザのニーズに応じたテンプレートがなければ、ユーザは自らテンプレートを作成しなければならず、面倒であった。また、上述した予知保全においては時系列データの中から個々の部品に対応した個別データの検討が必要となる。しかし、デバイス値の時系列データは膨大な量となるため、その中からユーザが必要な個別データを抽出することは困難であった。
【０００６】
そこで、本発明は、時系列データから個別データを抽出することをユーザにとって容易にすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、たとえば、
ユーザプログラムを繰り返し実行するプログラマブル・ロジック・コントローラであって、
前記ユーザプログラムを記憶するプログラム記憶部と、
前記ユーザプログラムにより指定可能であり、１ビットの情報を記憶するビットデバイスおよび１ワード又は数ワードの情報を記憶するワードデバイスを含む複数のデバイスを保持するデバイス記憶部と、
前記プログラム記憶部に記憶されているユーザプログラムを繰り返し実行し、当該ユーザプログラムにしたがって前記複数のデバイスに記憶されている情報を演算処理するプログラム実行部と、
少なくとも一つのデバイスに記憶されているデバイスデータを繰り返し収集することで、周期性を有する時系列デバイスデータを形成するデータ収集部と、
前記時系列デバイスデータから周期ごとの個別データを抽出するための抽出期間を決定する決定部と、
前記決定部により決定された各抽出期間における個別データを前記時系列デバイスデータから抽出する抽出部と、
前記抽出部により抽出された各個別データに対して各個別データを識別するための識別情報を付与する付与部と
を有するプログラマブル・ロジック・コントローラを提供する。
【発明の効果】
【０００８】
本発明によれば、時系列データから個別データを抽出することがユーザにとって容易になる。
【図面の簡単な説明】
【０００９】
【図１】ＰＬＣシステムを示す図
【図２】ラダープログラムを説明する図
【図３】プログラム作成支援装置を説明する図
【図４】ＰＬＣを説明する図
【図５】ラダープログラムのスキャンを説明する図
【図６】ＩＰＣを説明する図
【図７】クラウドを説明する図
【図８】時系列データと抽出期間を説明する図
【図９】抽出期間の決定方法を説明する図
【図１０】抽出期間の基準時の決定方法を説明する図
【図１１】抽出期間の決定方法を説明する図
【図１２】データ収集と抽出に関連する機能を説明する図
【図１３】データ収集と抽出に関連する機能を説明する図
【図１４】データ収集と抽出に関連する機能を説明する図
【図１５】収集処理を説明するフローチャート
【図１６】時系列データを説明する図
【図１７】抽出処理を説明するフローチャート
【図１８】個別データを説明する図
【図１９】個別データを表示するＵＩを説明する図
【図２０】個別データを表示するＵＩを説明する図
【図２１】個別データを表示するＵＩを説明する図
【図２２】個別データの送受信に関するシーケンス図
【図２３】個別データの送受信に関するシーケンス図
【図２４】個別データの送受信に関するシーケンス図
【図２５】個別データの送受信に関するシーケンス図
【図２６】個別データの表示例を示す図
【発明を実施するための形態】
【００１０】
＜システム構成＞
はじめにプログラマブル・ロジック・コントローラ（ＰＬＣ、単にプログラマブルコントローラと呼ばれてもよい）を当業者にとってよりよく理解できるようにするために、一般的なＰＬＣの構成とその動作について説明する。
【００１１】
図１は、本発明の実施の形態によるプログラマブル・ロジック・コントローラシステムの一構成例を示す概念図である。図１が示すように、このシステムは、ラダープログラムなどのユーザプログラムの編集を行うためのプログラム作成支援装置２と、工場等に設置される各種制御装置を統括的に制御するためのＰＬＣ（プログラマブル・ロジック・コントローラ）１とを備えている。ユーザプログラムは、ラダー言語やＳＦＣ（シーケンシャルファンクションチャート）などのフローチャート形式のモーションプログラムなどのグラフィカルプログラミング言語を用いて作成されてもよいし、Ｃ言語などの高級プログラミング言語を用いて作成されてもよい。以下では、説明の便宜上、ユーザプログラムはラダープログラムとする。ＰＬＣ１は、ＣＰＵが内蔵された基本ユニット３と、１つないし複数の拡張ユニット４を備えている。基本ユニット３に対して１つないし複数の拡張ユニット４が着脱可能となっている。基本ユニット３はＣＰＵユニットと呼ばれることもある。
【００１２】
基本ユニット３には、表示部５および操作部６が備えられている。表示部５は、基本ユニット３に取り付けられている各拡張ユニット４の動作状況などを表示することができる。操作部６の操作内容に応じて表示部５は表示内容を切り替える。表示部５は、通常、ＰＬＣ１内のデバイスの現在値（デバイス値）やＰＬＣ１内で生じたエラー情報などを表示する。デバイスとは、デバイス値（デバイスデータ）を格納するために設けられたメモリ上の領域を指す名称であり、デバイスメモリと呼ばれてもよい。デバイス値とは、入力機器からの入力状態、出力機器への出力状態およびユーザプログラム上で設定される内部リレー（補助リレー）、タイマー、カウンタ、データメモリ等の状態を示す情報である。デバイス値の型にはビット型とワード型がある。ビットデバイスは１ビットのデバイス値を記憶する。ワードデバイスは１ワードのデバイス値を記憶する。
【００１３】
拡張ユニット４は、ＰＬＣ１の機能を拡張するために用意されている。各拡張ユニット４には、その拡張ユニット４の機能に対応するフィールドデバイス（被制御装置）１０が接続され、これにより、各フィールドデバイス１６が拡張ユニット４を介して基本ユニット３に接続される。フィールドデバイス１０には、センサなどの入力機器や、アクチュエータなどの出力機器が含まれる。なお、複数のフィールドデバイス１０を識別する必要があるときには、１０ａ、１０ｂのように参照符号の末尾にａ、ｂ、ｃ・・・の文字が付与される。
【００１４】
プログラム作成支援装置２は、たとえば、携帯可能なノートタイプやタブレットタイプのパーソナルコンピュータであって、表示部７および操作部８を備えている。ＰＬＣ１を制御するためのユーザプログラムの一例であるラダープログラムは、プログラム作成支援装置２を用いて作成される。その作成されたラダープログラムは、プログラム作成支援装置２内でニモニックコードに変換される。プログラム作成支援装置２は、ＵＳＢ(Universal Serial Bus)などの通信ケーブル９を介してＰＬＣ１の基本ユニット３に接続され、ニモニックコードに変換されたラダープログラムを基本ユニット３に送る。基本ユニット３はラダープログラムをマシンコードに変換し、基本ユニット３に備えられたメモリ内に記憶する。なお、ここではニモニックコードが基本ユニット３に送信されているが、本発明はこれに限られない。たとえば、プログラム作成支援装置２は、ニモニックコードを中間コードに変換し、中間コードを基本ユニット３に送信してもよい。
【００１５】
なお、図１は示していないが、プログラム作成支援装置２の操作部８には、プログラム作成支援装置２に接続されたマウスなどのポインティングデバイスが含まれていてもよい。また、プログラム作成支援装置２は、ＵＳＢ以外の他の通信ケーブル９を介して、ＰＬＣ１の基本ユニット３に対して着脱可能に接続されるような構成であってもよい。また、通信ケーブル９を介さず、ＰＬＣ１の基本ユニット３に対して無線によって接続されるような構成であってもよい。
【００１６】
ＩＰＣ１１はＰＬＣ１から時系列データを収集するデータ収集装置である。ＩＰＣ１１は時系列データをクラウド１２に送信してもよい。クラウドとは、データを蓄積したり、データに所定の処理を実行したりするサーバ装置の集合体である。
【００１７】
＜ラダープログラム＞
図２は、ラダープログラムの作成時にプログラム作成支援装置２の表示部７に表示されるラダー図Ｌｄの一例を示す図である。プログラム作成支援装置２はマトリックス状に配置された複数のセルを表示部７に表示する。各セルには仮想デバイスのシンボルが配置される。シンボルは入力リレーや出力リレーなどを示している。複数のシンボルによってリレー回路が形成される。ラダー図Ｌｄには、たとえば、１０列×Ｎ行（Ｎは任意の自然数）のセルが配置されている。そして、各行のセル内には仮想デバイスのシンボルが適宜配置される。
【００１８】
図２が示すリレー回路は、入力装置からの入力信号に基づいてオン／オフされる３つの仮想デバイス（以下、「入力デバイス」と呼ぶ。）のシンボルと、出力装置の動作を制御するためにオン／オフされる仮想デバイス（以下、「出力デバイス」と呼ぶ。）のシンボルとが適宜結合されることにより構成されている。
【００１９】
各入力デバイスのシンボルの上方に表示されている文字（「Ｒ０００１」、「Ｒ０００２」および「Ｒ０００３」）は、その入力デバイスのデバイス名（アドレス名）を表している。各入力デバイスのシンボルの下方に表示されている文字（「フラグ１」、「フラグ２」および「フラグ３」）は、その入力デバイスに対応付けられたデバイスコメントを表している。出力デバイスのシンボルの上方に表示されている文字（「原点復帰」）は、その出力デバイスの機能を表す文字列からなるラベルである。
【００２０】
図２が示す例では、デバイス名「Ｒ０００１」および「Ｒ０００２」にそれぞれ対応する２つの入力デバイスのシンボルが直列的に結合されることにより、ＡＮＤ回路が構成されている。また、これらの２つの入力デバイスのシンボルからなるＡＮＤ回路に対して、デバイス名「Ｒ０００３」に対応する入力デバイスのシンボルが並列的に結合されることにより、ＯＲ回路が構成されている。すなわち、このリレー回路では、一行目の２つのシンボルに対応する入力デバイスがいずれもオンした場合、または、二行目のシンボルに対応する入力デバイスがオンした場合にのみ、一行目のシンボルに対応する出力デバイスがオンになる。
【００２１】
＜プログラム作成支援装置＞
図３は、プログラム作成支援装置２の電気的構成について説明するためのブロック図である。図３が示すように、プログラム作成支援装置２は、ＣＰＵ２１、表示部７、操作部８、記憶装置２２および通信部２３を備えている。表示部７、操作部８、記憶装置２２および通信部２３は、それぞれＣＰＵ２１に対して電気的に接続されている。記憶装置２２は、少なくともＲＡＭを含み、プログラム記憶部２４と、編集ソフト記憶部２５とを備えている。
【００２２】
ユーザは、編集ソフト記憶部２５に記憶されている編集ソフトをＣＰＵ２１に実行させて、操作部８を通じてラダープログラムを編集する。ここで、ラダープログラムの編集には、ラダープログラムの作成および変更が含まれる。編集ソフトを用いて作成されたラダープログラムは、プログラム記憶部２４に記憶される。また、ユーザは、必要に応じてプログラム記憶部２４に記憶されているラダープログラムを読み出し、そのラダープログラムを、編集ソフトを用いて変更することができる。通信部２３は、通信ケーブル９を介してプログラム作成支援装置２を基本ユニット３に通信可能に接続するためのものである。
【００２３】
＜ＰＬＣ＞
図４は、ＰＬＣ１の電気的構成について説明するためのブロック図である。図４が示すように、基本ユニット３は、ＣＰＵ３１、表示部５、操作部６、記憶装置３２および通信部３３を備えている。表示部５、操作部６、記憶装置３２、および通信部３３は、それぞれＣＰＵ３１に電気的に接続されている。記憶装置３２は、ＲＡＭやＲＯＭ、メモリカードなどを含んでもよい。記憶装置３２はデバイス部３４やプログラム記憶部３５などの複数の記憶領域を有している。デバイス部３４はビットデバイスやワードデバイスなどを有し、各デバイスはデバイス値を記憶する。プログラム記憶部３５は、プログラム作成支援装置２から入力されたラダープログラムやユーザデータを記憶する。プログラム記憶部３５は、基本ユニット３用の制御プログラムも記憶する。図４が示すように基本ユニット３と拡張ユニット４とは拡張バスの一種であるユニット外部バス９０を介して接続されている。なお、ユニット外部バス９０に関する通信機能は通信部３３の一部として実装されてもよい。
【００２４】
図５は、基本ユニット３のスキャンタイムを示す模式図である。図５が示すように１つのスキャンタイムＴは、入出力のリフレッシュを行うためのユニット間通信２０１、プログラム実行２０２、ＥＮＤ処理２０４により構成されている。ユニット間通信２０１で、基本ユニット３は、ラダープログラムを実行して得られた出力データを基本ユニット３内の記憶装置３２から拡張ユニット４など外部機器などに送信する。さらに、基本ユニット３は、拡張ユニット４など外部機器などから受信した入力データを基本ユニット３内の記憶装置３２に取り込む。つまり、基本ユニット３のデバイスに記憶されているデバイス値は出力リフレッシュによって拡張ユニット４のデバイスに反映される。同様に、拡張ユニット４のデバイスに記憶されているデバイス値は入力リフレッシュによって基本ユニット３のデバイスに反映される。このように入出力リフレッシュによって基本ユニット３のデバイスと拡張ユニット４のデバイスが同期する。なお、リフレッシュ以外のタイミングでデバイス値をユニット間で更新する仕組みが採用されてもよい。ただし、基本ユニット３のデバイスは基本ユニット３が随時書き換えており、同様に、拡張ユニット４のデバイスは拡張ユニット４が随時書き換えている。つまり、基本ユニット３のデバイスは基本ユニット３の内部の装置によって随時アクセス可能である。同様に、拡張ユニット４のデバイスは拡張ユニット４の内部の装置によって随時アクセス可能になっている。基本ユニット３と拡張ユニット４との間では基本的にリフレッシュのタイミングにおいて相互にデバイス値を更新して同期する。プログラム実行２０２で、基本ユニット３は、更新された入力データを用いてプログラムを実行（演算）する。基本ユニット３はプログラムの実行によりデータを演算処理する。なお、ＥＮＤ処理とは、プログラム作成支援装置２や基本ユニット３に接続された表示器（図示せず）等の外部機器とのデータ通信、システムのエラーチェック等の周辺サービスに関する処理全般を意味する。ＩＰＣ１１はＥＮＤ処理２０４においてＰＬＣ１から時系列データを収集してもよい。
【００２５】
このように、プログラム作成支援装置２はユーザの操作に応じたラダープログラムを作成し、作成したラダープログラムをＰＬＣ１に転送する。ＰＬＣ１は、入出力リフレッシュ、ラダープログラムの実行およびＥＮＤ処理を１サイクル（１スキャン）として、このサイクルを周期的、すなわちサイクリックに繰り返し実行する。これにより、各種入力機器（センサ等）からのタイミング信号に基づいて、各種出力機器（モータ等）を制御する。よって、ＰＬＣ１は汎用のパーソナルコンピュータ（ＰＣ）とは全く異なる動きをする。
【００２６】
＜データ収集装置＞
図６はＩＰＣ１１の電気的構成について説明するためのブロック図である。ＩＰＣ１１は、ＣＰＵ５１、記憶装置５２、通信部５３、表示部５７、操作部５８などを備えている。記憶装置５２、通信部５３、表示部５７および操作部５８は、内部バスなどを介してそれぞれＣＰＵ５１に電気的に接続されている。記憶装置５２は、ＲＡＭやＲＯＭ、メモリカード、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）などを含んでもよい。記憶装置５２には、ＰＬＣ１から収集された時系列記憶データを記憶する時系列データ記憶部５４や、ＣＰＵ５１により実行される制御プログラムを記憶するプログラム記憶部５５が設けられている。ＩＰＣ１１は、通信部５３を介してＰＬＣ１やクラウド１２と通信する。たとえば、ＣＰＵ５１は通信部５３を介してＰＬＣ１からデバイス値またはその集合体である時系列データを収集して時系列データ記憶部５４に記憶する。また、ＣＰＵ５１は時系列データを時系列データ記憶部５４から読み出して、通信部５３を介してクラウド１２へ送信してもよい。
【００２７】
＜クラウド＞
図７はクラウド１２の電気的構成について説明するためのブロック図である。クラウド１２は、ＣＰＵ６１、記憶装置６２、通信部６３、表示部６７および操作部６８を備えている。記憶装置６２、通信部６３、表示部６７および操作部６８は、内部バスなどを介してそれぞれＣＰＵ６１に電気的に接続されている。記憶装置６２は、ＲＡＭやＲＯＭ、メモリカード、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）などを含んでもよい。記憶装置６２には、ＩＰＣ１１を介してＰＬＣ１から収集された時系列記憶データを記憶する時系列データ記憶部６４や、ＣＰＵ６１により実行される制御プログラムを記憶するプログラム記憶部６５が設けられている。クラウド１２は、通信部６３を介してＰＬＣ１やＩＰＣ１１、クライアント（例：プログラム作成支援装置２）と通信する。たとえば、ＣＰＵ６１は通信部６３を介してＰＬＣ１またはＩＰＣ１１から時系列データを収集して時系列データ記憶部６４に記憶する。また、ＣＰＵ６１は時系列データに演算を施し、通信部６３を介してクライアントに送信してもよい。
【００２８】
＜抽出期間＞
ある部品を製造する工場のラインにおいて部品の加工を制御したり、完成した部品を検査したりするためにＰＬＣ１が使用されることがある。たとえば、ＰＬＣ１はユーザプログラムにしたがって部品に圧力を加えて切断したり、部品に熱を加えたりすることもある。また、ＰＬＣ１は拡張ユニット４に接続されたＸＹステージなどを制御して部品の位置を移動させることもあろう。いずれの場合であっても部品の加工精度に問題が発生したときや発生しそうなときにその原因を探るにはＰＬＣ１のデバイス値を収集して分析することが必要となる。デバイス値は時々刻々と変化する。たとえば、一つの部品の加工や検査において数百回も変化することもあろう。これは、一つの部品につきラダープログラムが数百スキャンされることを意味する。また、時系列データの収集期間が長くなると、時系列データのうちどの部分がどの部品に対応した個別データであるかをユーザが目で確認して見つけ出すことは簡単ではない。そこで、本実施例では、ＰＬＣ１やＩＰＣ１１またはクラウド１２が部品ごとの個別データを抽出することで、ユーザの負担を軽減する。ユーザは、プログラム作成支援装置２などのクライアントを通じて個別データを確認する。
【００２９】
図８はデバイス値の時系列データを示す図である。ここでは４つのデバイス値９１ａないし９１ｄが例示されているが、デバイス値は一つ以上である。抽出期間とは時系列データのうち個別データの時間的な位置を示す情報である。抽出期間は、個別データの開始位置（開始時刻）ｔｓと終了位置（終了時刻）ｔｅにより定義される。また、抽出期間は、抽出期間の時間的な長さＰと基準時ｔｒとによって定義されてもよい。長さＰは位相期間と呼ばれてもよい。基準時ｔｒは基準位相と呼ばれてもよい。なお、抽出期間の長さＰは開始位置ｔｓから終了位置ｔｅまでの時間的な長さである。基準時ｔｒは、開始位置ｔｓから終了位置ｔｅまでのいずれかの位置（時刻）を示している。たとえば、開始位置ｔｓは基準時ｔｒからΔoffset１だけマイナスした時刻として定義されてもよい。終了位置ｔｅは基準時ｔｒからΔoffset２だけプラスした時刻として定義されてもよい。Δoffset１は０であり、Δoffset２はＰであってもよい。つまり、終了位置ｔｅは開始位置ｔｓから長さＰをプラスした時刻として定義されてもよい。図８では基準時ｔｒが開始位置ｔｓに一致している事例を示している。図８では横軸は時間を示しているが、スキャンの回数やデバイス値の収集回数（サンプリング数）であってもよい。なお、一スキャンの時間的な長さは必ずしも一定ではない。
【００３０】
図８においてデバイス値９１ａはフィールドデバイスであるＸＹステージのＸ軸の座標変化を示している。デバイス値９１ｂはＸＹステージのＹ軸の座標変化を示している。デバイス値９１ｃは要求リレーを示している。要求リレーとは、基本ユニット３が拡張ユニット４に対して所定の処理の実行開始を指示するリレーである。デバイス値９１ｄは完了リレーを示している。完了リレーとは、拡張ユニット４が基本ユニット３に対して所定の処理が完了したことを通知するリレーである。
【００３１】
図８が示すように部品ごとの個別データには周期性がある。したがって、ＣＰＵ３１などが時系列データを解析して周期性を特定し、特定された周期性にしたがって個別データを抽出してもよい。
【００３２】
●タクトタイムに基づく基準時の決定手法
ＣＰＵ３１は、ユーザにより入力されたタクトタイムｔｔに基づいて基準時ｔｒを決定してもよい。タクトタイムｔｔとは、一つの部品あたりの処理時間である。したがって、ＣＰＵ３１は、様々なビットデバイスのデバイス値の立ち上がりから次の立ち上がりまでの時間を求め、タクトタイムｔｔに最も近い時間を求められたデバイス値の立ち上がりを基準時ｔｒに決定してもよい。
【００３３】
図９はタクトタイムｔｔに基づく基準時ｔｒの決定方法を示している。ここでは４つの一ビットデバイスのデバイス値９１ｅないし９１ｈが例示されている。デバイス値９１ｅについての立ち上がり周期は０．４秒である。デバイス値９１ｆについての立ち上がり周期は０．９秒である。デバイス値９１ｇについての立ち上がり周期は３．２秒である。デバイス値９１ｈについての立ち上がり周期は３．２秒である。ユーザはタクトタイムｔｔとして３．２秒を設定したものとする。ＣＰＵ３１は、ユーザにより入力されたタクトタイムｔｔに最も近い立ち上がり周期のデバイス値９１ｇまたはデバイス値９１ｈの立ち上がりを基準時ｔｒに決定する。デバイス値９１ｇとデバイス値９１ｈのように複数の候補が見つかった場合、ＣＰＵ３１は最も長い周期を採用する。デバイス値９１ｇとデバイス値９１ｈが同一であれば、ＣＰＵ３１は乱数によりいずれか一つを決定してもよい。
【００３４】
●微分エッジに基づく基準時の決定手法
ＣＰＵ３１は時系列データの微分エッジを演算により求め、微分エッジが得られた位置を基準時ｔｒに決定してもよい。図１０が示すようにあるデバイスのデバイス値９１ｉの時系列データを微分することで微分エッジ９９が得られる。複数の位置に微分エッジ９９が得られた場合、ＣＰＵ３１が閾値フィルタを用いて小さな微分エッジを除去する。ＣＰＵ３１は微分エッジ９９が得られた時刻（位相）を基準時ｔｔｒに決定する。このようなエッジの検出方法としてはキャニー法やハイパスフィルタなどが採用されてもよい。
【００３５】
●ＦＦＴやＡＲモデルに基づく抽出期間の長さの決定手法
一般に時系列データには様々な周期の信号が重畳されている。部品の加工や検査では同様の工程が繰り返される。つまり、複数の部品についてのデバイス値は周期性を有している。特に、加工周期や検査周期などはほぼ一定期間であるため、これらの周期のスペクトルは最大となりやすい。そこで、ＣＰＵ３１は、時系列データを分析して見つかった複数のスペクトルのうち最も大きなスペクトルを見つけ、見つかった最大スペクトルの周期を抽出期間の長さＰとしてもよい。たとえば、ＣＰＵ３１は高速フーリエ変換（ＦＦＴ）やＡＲ（自己回帰）モデルを用いて時系列データを分析し、抽出期間の長さＰを決定してもよい。
【００３６】
●個別データの波形の類似性に基づく抽出期間の長さの決定手法
ＣＰＵ３１は、個別データの波形の類似性に基づき周期を特定してもよい。これは同じ種類の部品であれば、その部品に対する加工や検査に対する処理も共通であるため、加工や検査についてのデバイス値の波形も類似するからである。図１１は部品ごとに抽出期間の長さＰが変化しうるデバイス値９１ｊを示している。図１１が示すようにある部品の抽出期間Ｐ１と、他の部品の抽出期間Ｐ２とが異なっていることがある。そこで、ＣＰＵ３１は、動的時間伸縮法などを用いて時系列データから波形の類似している複数の期間を抽出し、それぞれ抽出期間として決定する。この方法は部品ごとの抽出期間が一定でない場合に特に有用であろう。
【００３７】
＜機能ブロック＞
図１２は個別データの抽出処理に関与する機能を説明する図である。ここではＰＬＣ１に時系列データの収集と個別データの抽出に関与する機能が実装されている。ただし、図１３や図１４が示すようにこれらの機能はＩＰＣ１１に実装されてもよいし、クラウド１２に実装されてもよい。
【００３８】
図１２において基本ユニット３のＣＰＵ３１は記憶装置３２に記憶されている制御プログラムを実行することで以下の機能を実現する。ラダー実行部８０はユーザプログラムを実行し、当該ユーザプログラムにしたがって複数のデバイスに記憶されている情報を演算処理するプログラム実行部である。ここではユーザプログラムの一例としてラダープログラム３６が使用されている。ラダー実行部８０は記憶装置３２に記憶されているラダープログラム３６を実行し、一スキャンごとにデバイス値９１を更新する。収集部８１は少なくとも一つのデバイスに記憶されているデバイスデータ（デバイス値９１）を繰り返し収集することで時系列デバイスデータ（時系列データ９２）を形成するデータ収集部である。選択部８７は、収集部８１により収集されるデバイス値を選択する。たとえば、選択部８７はユーザによりプログラム作成支援装置２において作成された設定情報を分析し、収集対象のデバイス値を選択してもよい。ユーザはプログラム作成支援装置２において複数のデバイスをいくつかのグループに分け、各グループにロギング対象ＩＤを付与することがある。さらに、ユーザは、プログラム作成支援装置２においてロギング対象ＩＤを選択することでグループを選択する。選択されたグループのＩＤ、つまり、ロギング対象ＩＤは設定情報に格納されて、ユーザプログラムとともにＰＬＣ１に転送される。そこで、選択部８７は設定情報に格納されているロギング対象ＩＤを取得し、さらにロギング対象ＩＤに関連付けられている一つ以上のデバイスを取得し、取得したデバイスの識別情報を収集部８１に設定する。収集部８１は設定されたデバイスからデバイス値を収集する。
【００３９】
ユーザはプログラム作成支援装置２においてリアルタイムでのチャート形式モニタやデバッグ用に一つ以上のデバイスを選択し、選択したデバイスの識別情報を設定情報に格納して、ユーザプログラムとともにＰＬＣ１に転送することがある。選択部８７は設定情報に格納されているデバイスの識別情報を収集部８１に設定してもよい。リアルタイムでのチャート形式モニタとは、プログラム作成支援装置２がＰＬＣ１からデバイス値を高速に読み出して、時系列のデバイス値を、チャート形式（グラフ形式）でリアルタイムに表示部７に表示する機能である。デバッグとはユーザプログラムのデバッグのことである。デバッグ用のデバイスの識別情報も設定情報に格納されて、ユーザプログラムとともにＰＬＣ１に転送される。プログラム作成支援装置２は、デバッグ用のデバイスのデバイス値をＰＬＣ１から取得して、表示部７に表示する。このように、リアルタイムでのチャート形式モニタやデバッグ用のデバイスが個別データ９３の抽出のために選択されてもよい。
【００４０】
プログラム作成支援装置２の表示部７だけではなく、ＰＬＣ１の表示部５に一つ以上のデバイス値が表示されることもある。この場合にも取得対象のデバイスの識別情報は設定情報に格納されて、ユーザプログラムとともにＰＬＣ１に転送される。したがって、選択部８７は設定情報を解析することで、収集部８１に取得させるデバイス値を選択してもよい。選択部８７は収集部８１の内部に設けられていてもよい。
【００４１】
決定部８２は、時系列データ９２から各部品ごとの個別データ９３を抽出するための抽出期間を決定する。上述した抽出期間の基準時ｔｒを決定する手法や長さＰを決定する手法を用いて抽出期間を決定する。調整部８３はオプションであり、決定部８２により決定された抽出期間を、ユーザの指示に応じて調整する。これにより抽出期間をユーザの意図したとおりに調整することが可能となる。調整部８３は決定部８２の内部に設けられていてもよい。調整部８３が決定部８２の外部に設けられている場合、調整部８３は調整量を含む調整指示を決定部８２に送信するように構成されてもよい。この場合、決定部８２は、自ら決定した抽出期間を、調整部８３により指示された調整量にしたがって、オフセットする。
【００４２】
抽出部８４は、決定部８２により決定された各抽出期間における個別データ９３を時系列データ９２から抽出する。付与部８５は、抽出部８４により抽出された各個別データに対して各個別データを識別するための識別情報を付与する。識別情報は、たとえば、シリアル番号であってもよいが、各個別データを区別できる情報であれば他の情報であってもよい。送信部８６はオプションであり、個別データ９３をクライアントであるプログラム作成支援装置２へ送信する。ユーザによる個別データ９３の検討がＰＬＣ１において実行される場合、ＣＰＵ３１は表示部５に個別データ９３を表示してもよい。表示部５はＰＬＣ１に接続された外部表示装置であってもよい。個別データ９３のフォーマットはＣＳＶ形式であってもよいし、ＳＱＬ形式であってもよい。ＳＱＬはデータベース言語の一種である。
【００４３】
図１３はＩＰＣ１１がデバイス値の収集機能や抽出機能を有している事例を示している。すでに説明されている機能については説明が省略されるか、簡潔に説明される。ＩＰＣ１１のＣＰＵ５１はプログラム記憶部５５に記憶されている制御プログラムを実行することで様々な機能を実現する。図１３が示すように、収集部８１、選択部８７、決定部８２、調整部８３、抽出部８４、付与部８５および送信部８６などを実装する。収集部８１は、取得条件（例：定期的）が満たされたときにＰＬＣ１からデバイス値９１を取得し、記憶装置５２の時系列データ記憶部５４に記憶する。決定部８２は時系列データ記憶部５４に記憶されている時系列データ９２の抽出期間を決定する。抽出部８４は決定された抽出期間にしたがって部品ごとの個別データ９３を抽出する。付与部８５は抽出された個別データ９３に識別情報を付与する。送信部８６はオプションであり、クラウド１２やプログラム作成支援装置２に個別データ９３を送信する。なお、ＩＰＣ１１において個別データ９３の検討が実行される場合、ＣＰＵ５１は表示部５７に個別データ９３を表示する。なお、ＩＰＣ１１が省略される場合、これらの機能はクラウド１２のＣＰＵ６１と記憶装置６２、表示部６７などにより実現される。
【００４４】
図１４はＩＰＣ１１がデバイス値の収集機能を有し、クラウド１２が抽出機能を有している事例を示している。クラウド１２のＣＰＵ６１はプログラム記憶部６５に記憶されている制御プログラムを実行することで、決定部８２、調整部８３（オプション）、抽出部８４および付与部８５などを実現する。ＩＰＣ１１はＰＬＣ１から収集したデバイス値９１を時系列データ９２にまとめてクラウド１２に転送する。ＩＰＣ１１は時系列データ９２を一時的に記憶装置５２に記憶してもよい。クラウド１２のＣＰＵ６１はＩＰＣ１１から受信した時系列データ９２を時系列データ記憶部６４に記憶する。決定部８２は時系列データ記憶部６４に記憶されている時系列データ９２の抽出期間を決定する。抽出部８４は決定された抽出期間にしたがって部品ごとの個別データ９３を抽出する。付与部８５は抽出された個別データ９３に識別情報を付与する。また、ＣＰＵ６１は表示部６７に個別データ９３を表示する。あるいは、プログラム作成支援装置２の表示部７に個別データ９３を表示させるために、送信部８６は個別データ９３をプログラム作成支援装置に送信してもよい。
【００４５】
＜フローチャート＞
●収集処理
図１５はＰＬＣ１のＣＰＵ３１が実行する収集処理を示すフローチャートである。操作部６には設定モードと運転モードとを切り替えるスイッチが設けられている。設定モードとは、プログラム作成支援装置２からユーザプログラムや設定情報を受信する処理である。運転モードとはユーザプログラムを実行するモードである。ＣＰＵ３１は設定モードから運転モードへの切り替えが指示されると、以下の処理を実行する。
・Ｓ１でＣＰＵ３１（ラダー実行部８０）はユーザプログラムをＲＡＭにロードする。
・Ｓ２でＣＰＵ３１（ラダー実行部８０）はユーザプログラムのスキャンを実行する。ラダー実行部８０はユーザプログラムにしたがって各種のデバイスに格納されているデバイス値に所定の演算を実行し、デバイス値を更新する。所定の演算の内容はユーザプログラムによって定義されている。
・Ｓ３でＣＰＵ３１（収集部８１）はデバイス値を収集する。収集部８１は、選択部８７により選択された取得対象のデバイス値をデバイスから読み出し、時系列データ９２に追加する。上述したように収集処理はＩＰＣ１１のＣＰＵ５１により実行されてもよいし、クラウド１２のＣＰＵ６１により実行されてもよい。デバイス値の収集タイミング（サンプリングタイミング）は、一スキャンごとであってもよいし、数スキャンごとであってもよい。また、収集はエンド処理において実行されてもよいし、スキャン中であってもよい。また、一スキャンにおいて複数回の収集が実行されてもよい。
・Ｓ４でＣＰＵ３１（ラダー実行部８０）はプログラムの停止が指示されたかどうかを判定する。たとえば、ＣＰＵ３１は上述したスイッチが運転モードから設定モードに切り替えられると、プログラムの停止が指示されたと判定する。プログラムの停止が指示されていなければ、ＣＰＵ３１はＳ２ないしＳ４の処理を繰り返し実行する。プログラムの停止が指示されると、ＣＰＵ３１はユーザプログラムを停止する。このようにして時系列データ９２が収集される。
【００４６】
図１６は時系列データ９２の一例を示している。時刻情報は分：秒：１／１００秒により表記されている。ここでは、選択部８７により取得対象としてデバイスａ、ｂ、ｃ、ｄが選択されている。デバイスａ，ｂはＸＹステージのＸ座標とＹ座標など、１ワードのデータを格納している。デバイスｃは、ビットデバイスであり、ここでは要求リレーである。デバイスｄは、ビットデバイスであり、ここでは完了リレーである。図１６が示すようにこの段階では時系列データ９２のどの部分がどの部品に対応しているかをユーザは特定しにくいだろう。
【００４７】
●抽出処理
図１７は個別データの抽出処理を示すフローチャートである。上述したように抽出処理はＣＰＵ２１、３１、５１、６１の何れにより実行されてもよいが、ここではＣＰＵ３１により実行されるものとする。
・Ｓ１１でＣＰＵ３１（決定部８２）は個別データの抽出期間を決定する。決定部８２は、タクトタイムｔｔに基づいて基準時ｔｒを決定したり、ＦＦＴなどにより時系列データ９２から抽出期間の長さＰを決定したりする。決定部８２は抽出期間を抽出部８４に設定する。
・Ｓ１２でＣＰＵ３１（抽出部８４）は決定部８２により決定された抽出期間にしたがって部品ごとの個別データ９３を時系列データ９２から抽出する。
・Ｓ１３でＣＰＵ３１（付与部８５）は、抽出部８４により抽出された各個別データ９３に識別情報を付与する。
【００４８】
図１８は個別データ９３の一例を示している。抽出部８４は時系列データ９２から部品ごとの個別データ９３を切り出して、各個別データ９３に識別情報を付与している。図１８においては二つの個別データ９３が例示されており、それぞれ異なる識別情報として"０１"と"０２"が付与されている。
【００４９】
Ｓ１４でＣＰＵ３１は個別データ９３を表示部５に表示する。上述したようにＣＰＵ３１は個別データ９３をプログラム作成支援装置２に送信することで、表示部７に個別データ９３を表示してもよい。なお、Ｓ１３からＳ１４は、同期実行であってもよいし、非同期実行であってもよい。すなわち、例えばＣＰＵ３１は、ユーザの表示指示に基づきＳ１４の処理へ移行してもよい。この場合、例えば操作部８を介してユーザの表示指示がなされるまでは、ＣＰＵ３１は、Ｓ１２及びＳ１３の処理を繰り返し実行し、ユーザの表示指示があったときに、Ｓ１４の処理へと移行してもよい。
【００５０】
図１９は個別データ９３を表示するユーザインタフェース（ＵＩ１００）の一例を示している。個別データ表示部１０１は、個別データ９３を表示する表示領域である。この例では二つの個別データ９３が表示されている。ＵＩ１００が抽出期間の調整ＵＩを兼ねていてもよい。バー１０２は基準時ｔｒの位置を示すオブジェクトである。フレーム１０３は抽出期間を示すＵＩである。調整部８３は、ユーザが操作部６を通じてバー１０２を右方向または左方向に移動させると、バー１０２の移動量と移動方向に応じて基準時ｔｒを調整する。また、調整部８３は、ユーザが操作部６を通じてフレーム１０３の右辺を右方向または左方向に移動させると、フレーム１０３の右辺の移動量と移動方向に応じて位相期間の長さＰを調整する。なお、フレーム１０３の左辺とバー１０２とが統合されてもよい。メニュー１０４は、基準時ｔｒの決定手法の選択を受け付けるメニューである。この例ではタクトタイム指定や微分エッジの検出などが選択可能となっている。数値入力ボックス１０５は、タクトタイムの入力を受け付けるオブジェクトである。メニュー１０６は抽出期間の長さＰの決定手法の選択を受け付けるメニューである。この例では、ＦＦＴやＡＲモデルなどが選択可能となっている。数値入力ボックス１０７はデバイス値の収集周期の入力を受け付けるオブジェクトである。収集部８１はこの収集周期にしたがってデバイス値をサンプリングする。ここでは、操作部６を通じて抽出期間が調整されているが、プログラム作成支援装置２の操作部８を通じて抽出期間が調整されてもよい。
【００５１】
図２０は個別データ表示部１０１の他の例を示している。この例では二つの個別データ９３が縦に並んで表示されている。図２１は個別データ表示部１０１の他の例を示している。この例では二つの個別データ９３が重ねて表示されている。たとえば、ＣＰＵ３１は、二つの個別データ９３の抽出期間が重なるように二つの個別データ９３を重ねてもよい。ＣＰＵ３１は、二つの個別データ９３の重なっている部分が多くなるように、一方の個別データ９３を他方の個別データ９３に対して位置合わせしてもよい。とりわけ、二つの個別データ９３を重ねて表示することで、ユーザは二つの個別データ９３の微妙な差を視覚的に見つけやすくなろう。
【００５２】
図２０や図２１においてもＣＰＵ３１はバー１０２やフレーム１０３を二つの個別データ９３に重ね、かつ、調整可能に表示してもよい。なお、バー１０２の調整量やフレーム１０３の調整量は、個別データ９３ごとに適用されてもよいし、すべての個別データ９３に対して共通に適用されてもよい。
【００５３】
図１７のＳ１５でＣＰＵ３１（調整部８３）は操作部６を通じて調整実行の指示が入力されたかどうかを判定する。調整実行の指示が入力されていなければ、ＣＰＵ３１は、個別データ９３の抽出処理を終了する。一方で、調整実行の指示が入力されると、ＣＰＵ３１は、Ｓ１６に進む。
【００５４】
Ｓ１６でＣＰＵ３１（調整部８３）は操作部６を通じてユーザにより入力される抽出期間の調整を受け付ける。調整部８３は、たとえば、図１９に示したＵＩ１００を通じて基準時ｔｒや抽出期間の長さＰの調整を受け付けてもよい。抽出期間の調整が終了すると、調整部８３は抽出期間の調整結果を抽出部８４に設定し、Ｓ１２に戻る。Ｓ１２で抽出部８４は、調整された抽出期間にしたがって個別データ９３を抽出する。その後、ＣＰＵ３１はＳ１３からＳ１５また、または、Ｓ１６まで実行する。なお、基準時ｔｒの調整量は決定部８２により決定された基準時ｔｒに対するオフセット量として保持されてもよい。同様に、長さＰの調整量は決定部８２により決定された長さＰに対するオフセット量として保持されてもよい。Ｓ１６では、基準時ｔｒの決定手法や長さＰの決定手法が変更されてもよい。この場合、ＣＰＵ３１はＳ１１に戻り、変更後の決定手法にしたがって抽出期間を再度決定し、抽出部８４に設定する。ＣＰＵ３１は、プログラム作成支援装置２に個別データ９３や時系列データ９２を送信し、プログラム作成支援装置２から抽出期間の調整結果を受け付けてもよい。
【００５５】
＜シーケンス＞
図２２は個別データ９３の送受信に関連したシーケンスを示している。この例では、ＰＬＣ１のＣＰＵ３１に収集部８１、選択部８７、決定部８２、抽出部８４、付与部８５、送信部８６が実装される。プログラム作成支援装置２のＣＰＵ２１には個別データ９３の表示制御部や調整部８３が実装される。
・Ｓｑ１でプログラム作成支援装置２はユーザプログラムと設定情報を送信し、ＰＬＣ１がこれを受信して記憶装置３２に記憶する。
・Ｓｑ２でＰＬＣ１はユーザプログラムにしたがってデバイス値を求め、時系列データ９２を収集し、個別データ９３を抽出して、プログラム作成支援装置２に送信する。プログラム作成支援装置２は個別データ９３を受信して表示部７に表示する。なお、プログラム作成支援装置２のＣＰＵ２１や通信部２３は、個別データをＰＬＣ１から受信する受信部として機能する。
・Ｓｑ３は、プログラム作成支援装置２が調整部８３を実装している場合に実行される。プログラム作成支援装置２は抽出期間（基準時ｔｒや長さＰ、これらの決定手法など）の調整を受け付けて調整指示を作成し、ＰＬＣ１に送信する。
・Ｓｑ４でＰＬＣ１は調整指示にしたがって抽出期間を調整し、時系列データ９２から個別データ９３を再度抽出して、プログラム作成支援装置２に送信する。プログラム作成支援装置２は個別データ９３を受信して表示部７に表示する。
【００５６】
図２３は個別データ９３の送受信に関連した別のシーケンスを示している。この例では、ＩＰＣ１１のＣＰＵ５１に収集部８１、選択部８７、決定部８２、抽出部８４、付与部８５および送信部８６が実装される。プログラム作成支援装置２のＣＰＵ２１には個別データ９３の表示制御部や調整部８３が実装される。
・Ｓｑ１でプログラム作成支援装置２はユーザプログラムと設定情報を送信し、ＰＬＣ１がこれを受信して記憶装置３２に記憶する。
・Ｓｑ１１でＰＬＣ１はユーザプログラムにしたがってデバイス値を求める。ＩＰＣ１１はデバイス値をＰＬＣ１から読み出す（受信する）。
・Ｓｑ１２でＩＰＣ１１は収集したデバイス値から時系列データ９２を作成する。ＩＰＣ１１は、時系列データ９２から個別データ９３を抽出し、プログラム作成支援装置２に個別データ９３を送信する。プログラム作成支援装置２は個別データ９３をＩＰＣ１１から受信すると、表示部７に個別データ９３を表示する。なお、プログラム作成支援装置２のＣＰＵ２１や通信部２３は、個別データをＩＰＣ１１から受信する受信部として機能する。
・Ｓｑ１３は、プログラム作成支援装置２が調整部８３を実装している場合に実行される。プログラム作成支援装置２は抽出期間（基準時ｔｒや長さＰ、これらの決定手法など）の調整を受け付けて調整指示を作成し、ＩＰＣ１１に送信する。
・Ｓｑ１４でＩＰＣ１１は調整指示にしたがって抽出期間を調整し、時系列データ９２から個別データ９３を再度抽出して、プログラム作成支援装置２に送信する。プログラム作成支援装置２は個別データ９３を受信して表示部７に表示する。
【００５７】
図２４は個別データ９３の送受信に関連したさらに別のシーケンスを示している。この例では、ＩＰＣ１１のＣＰＵ５１に収集部８１と選択部８７が実装されている。クラウド１２のＣＰＵ６１に決定部８２、抽出部８４、付与部８５、送信部８６が実装される。プログラム作成支援装置２のＣＰＵ２１には個別データ９３の表示制御部や調整部８３が実装される。
・Ｓｑ１でプログラム作成支援装置２はユーザプログラムと設定情報を送信し、ＰＬＣ１がこれを受信して記憶装置３２に記憶する。
・Ｓｑ１１でＰＬＣ１はユーザプログラムにしたがってデバイス値を求める。ＩＰＣ１１はデバイス値をＰＬＣ１から読み出す（受信する）。
・Ｓｑ２２でＩＰＣ１１は収集したデバイス値から時系列データ９２を作成し、クラウド１２に時系列データ９２を送信する。クラウド１２はＩＰＣ１１から時系列データ９２を受信する。
・Ｓｑ２３でからクラウド１２は時系列データ９２から個別データ９３を抽出し、プログラム作成支援装置２に個別データ９３を送信する。プログラム作成支援装置２はクラウド１２から個別データ９３を受信すると、表示部７に個別データ９３を表示する。なお、プログラム作成支援装置２のＣＰＵ２１や通信部２３は、個別データをクラウド１２から受信する受信部として機能する。同様の受信部がＰＬＣ１に設けられていてもよい。
・Ｓｑ２４は、プログラム作成支援装置２が調整部８３を実装している場合に実行される。プログラム作成支援装置２は抽出期間（基準時ｔｒや長さＰ、これらの決定手法など）の調整を受け付けて調整指示を作成し、クラウド１２に送信する。
・Ｓｑ２５でクラウド１２は調整指示にしたがって抽出期間を調整し、時系列データ９２から個別データ９３を再度抽出して、プログラム作成支援装置２に送信する。プログラム作成支援装置２は個別データ９３をクラウド１２から受信して表示部７に表示する。
【００５８】
図２５は個別データ９３の送受信に関連したさらに別のシーケンスを示している。この例では、クラウド１２のＣＰＵ６１に収集部８１、選択部８７、決定部８２、抽出部８４、付与部８５、送信部８６が実装される。プログラム作成支援装置２のＣＰＵ２１には個別データ９３の表示制御部や調整部８３が実装される。
・Ｓｑ１でプログラム作成支援装置２はユーザプログラムと設定情報を送信し、ＰＬＣ１がこれを受信して記憶装置３２に記憶する。
・Ｓｑ３１でＰＬＣ１はユーザプログラムにしたがってデバイス値を求める。ＰＬＣ１はクラウド１２へデバイス値を送信する。クラウド１２は収集したデバイス値から時系列データ９２を作成する。その後、Ｓｑ２３ないしＳｑ２５が実行される。
【００５９】
図２２ないし図２４において個別データ９３の表示制御部と調整部８３がプログラム作成支援装置２に実装されているが、別のクライアントコンピュータに実装されてもよい。クライアントコンピュータの内部構成はプログラム作成支援装置２からプログラム作成支援機能を除いた内部構成と同じであってもよい。
【００６０】
＜表示結果＞
図２６は個別データ９３の表示例を示している。プログラム作成支援装置２のＣＰＵ２１（表示制御部）は複数の個別データ９３を表示部７に表示する。この例では００：００：００から００：０２：７０までに取得されたデバイス値により第一の個別データ９３が形成され、識別情報として"０１"が付与されている。００：０３：００から００：０６：００までに取得されたデバイス値により第二の個別データ９３が形成され、識別情報として"０２"が付与されている。００：０６：３０から００：０９：００までに取得されたデバイス値により第三の個別データ９３が形成され、識別情報として"０３"が付与されている。ＣＰＵ２１は各デバイス値と公差（閾値）とを比較し、公差を逸脱しているデバイス値を強調表示してもよい。また、ＣＰＵ２１は、通常のタイミングとは異なるタイミングに完了リレーが１となっているデバイス値を強調表示してもよい。
【００６１】
図２６に示した事例では第一の個別データ９３における時刻００：０１：５０に取得されたデバイス値ｃがＮＧと判定されており、強調表示されている。ユーザは、時刻００：０１：２０に取得されたデバイス値ａと、第二の個別データ９３と第三の個別データ９３における同位相（時刻００：０４：２０、００：０７：２０）のデバイス値ａを比較する。時刻００：０４：２０に取得されたデバイス値ａは５．９であり、ユーザは適正な値であると判断する。また、時刻００：０７：２０に取得されたデバイス値ａは４．４であり、ユーザは適正な値であるが、ＮＧである４．２に対するマージンはほとんどないと判断できる。これによりユーザはデバイス値ａに関して何らかの対策が必要であると判断できる。
【００６２】
＜まとめ＞
以上の実施例から導かれる技術思想について説明する。ＰＬＣ１はユーザプログラムを繰り返し実行するプログラマブル・ロジック・コントローラの一例である。なお、ＰＬＣ１はユーザプログラムにしたがって複数の部品に対する検査または加工を制御してもよい。部品はワークと呼ばれてもよく、完成品を含む用語である。記憶装置３２はユーザプログラムを記憶するプログラム記憶部の一例である。記憶装置３２はユーザプログラムにより指定可能であり、１ビットの情報を記憶するビットデバイスおよび１ワード又は数ワードの情報を記憶するワードデバイスを含む複数のデバイスを保持するデバイス記憶部の一例である。ラダー実行部８０はプログラム記憶部に記憶されているユーザプログラムを繰り返し実行し、当該ユーザプログラムにしたがって複数のデバイスに記憶されている情報を演算処理するプログラム実行部の一例である。収集部８１は少なくとも一つのデバイスに記憶されているデバイスデータを繰り返し収集することで、周期性を有する時系列デバイスデータを形成するデータ収集部の一例である。決定部８２は時系列デバイスデータから周期ごとの個別データを抽出するための抽出期間を決定する決定部の一例である。抽出部８４は決定部８２により決定された各抽出期間における個別データを時系列デバイスデータから抽出する抽出部の一例である。付与部８５は抽出部８４により抽出された各個別データに対して各個別データを識別するための識別情報を付与する付与部の一例である。このように、本実施例によれば、時系列データから個別データを抽出することがユーザにとって容易になる。
【００６３】
抽出期間の開始位置と終了位置は、個別データ９３の抽出の基準位置を示す情報（例：基準時ｔｒ）と、抽出期間の時間的な長さ（例：長さＰ）を示す情報によって定義されてもよい。時系列デバイスデータは、収集部８１が複数のデバイスからそれぞれ収集したデータを含むデータ群と、当該データを収集したタイミングを示すタイミング情報とを含んでもよい。図１６などに示したように時系列データ９２においてデバイスａ〜ｄの各デバイス値はデータ群の一例である。取得時刻の情報はタイミング情報の一例である。
【００６４】
決定部８２は、複数のデバイスのうち少なくとも一つのデバイスから収集された時系列デバイスデータの周期に基づき、各抽出期間の基準位置を決定してもよい。数値入力ボックス１０５、部品に対するタクトタイムｔｔの入力を受け付ける受付部の一例である。図９に示したように、決定部８２は、複数のデバイスからそれぞれ収集されたデータの周期を求め、タクトタイムｔｔに対して相対的に近い周期のデータに基づき各抽出期間の基準位置を決定してもよい。図１０を用いて説明したように、決定部８２は、時系列デバイスデータを微分して微分エッジを求め、当該求められた微分エッジの位置を抽出期間の基準位置に決定してもよい。メニュー１０４に関連して説明したように、決定部８２は、基準位置を決定する複数の決定手法を有していてもよい。決定部８２は、ユーザにより選択された決定手法を用いて基準位置を決定してもよい。
【００６５】
決定部８２は時系列デバイスデータをフーリエ変換または自己回帰モデルにより複数のスペクトルを取得し、当該複数のスペクトルのうち相対的に大きなスペクトルの周波数の逆数を抽出期間の時間的な長さに決定してもよい。部品などのワークは一定の周期で生産または検査される。そのため、時系列データは周期性を有する。よって、ＦＦＴやＡＲモデルを用いることで比較的に正確に抽出期間の時間的な長さＰが特定されよう。図１１を用いて説明したように、決定部８２は時系列デバイスデータにおける波形の類似性に基づき抽出期間の時間的な長さＰを決定してもよい。決定部８２は、抽出期間の時間的な長さＰを決定する複数の決定手法を有しており、ユーザにより選択された決定手法を用いて抽出期間の時間的な長さＰを決定してもよい。ユーザはより適切と考える決定方法を選択しやすくなろう。たとえば、決定部８２はＦＦＴにより決定手法、ＡＲモデルに基づく決定手法、形状類似性に基づく決定手法などからユーザにより選択された決定手法を採用してもよい。決定手法を選択するためのメニューがＵＩ１００に追加されてもよい。
【００６６】
記憶装置３２はユーザプログラムを管理するためのプロジェクト情報（設定情報）を記憶していてもよい。収集部８１は、プロジェクト情報に基づきデバイスデータを収集される複数のデバイスを選択し、当該選択された複数のデバイスのそれぞれからデバイスデータを収集してもよい。たとえば、プロジェクト情報にはユーザにより登録されたデバック用のデバイスを指定する情報が含まれていてもよい。収集部８１や選択部８７は、デバック用のデバイスを指定する情報に基づきデバイスデータを収集される複数のデバイスを選択し、当該選択された複数のデバイスのそれぞれからデバイスデータを収集してもよい。これにより、収集対象のデバイスを指定するためのユーザの負担が軽減されよう。
【００６７】
プロジェクト情報にはユーザにより登録された表示対象のデバイスを指定する情報が含まれていてもよい。収集部８１や選択部８７は、表示対象のデバイスを指定する情報に基づきデバイスデータを収集される複数のデバイスを選択し、当該選択された複数のデバイスのそれぞれからデバイスデータを収集してもよい。
【００６８】
図１９などに示したように、調整部８３は、決定部８２により決定された抽出期間をユーザの操作に基づき調整する調整部の一例である。決定部８２により決定された抽出期間に誤差があると、ワークごとの個別データを正確に抽出することが困難となる。したがって、ユーザに抽出期間の調整する機会を付与することで、より正確に個別データが抽出されるようになろう。図１９に示したように、プログラム作成支援装置２の表示部７は、時系列デバイスデータまたは個別データ９３と抽出期間とを表示する表示部の一例である。調整部８３は、表示部７に表示された抽出期間に対するユーザの操作を受け付けてもよい。ユーザは個別データ９３などを目で見て確認しながら、抽出期間を正しく調整できるであろう。
【００６９】
図１９や図２０に示したように、表示部７は、第一デバイスから収集された時系列デバイスデータの波形と、第二デバイスから収集された時系列デバイスデータの波形とを共通の時間軸上において並べて表示してもよい。図２１に示したように、表示部７は、第一デバイスから収集された時系列デバイスデータの波形と、第二デバイスから収集された時系列デバイスデータの波形とを共通の時間軸上において重ねて表示してもよい。これによりワークごとの個別データの違いをユーザは見つけやすくなろう。なお、表示部７は、ＰＬＣ１に接続され、ユーザによるユーザプログラムの作成を支援するプログラム作成支援装置２に設けられていてもよい。
【００７０】
送信部８６は、時系列データ９２や識別情報を付与された個別データ９３をクラウド１２に送信する送信部の一例である。これにより、クラウド１２は時系列データ９２から個別データを抽出してもよいし、個別データ９３をさらに詳細に分析してもよい。たとえば、クラウド１２のＣＰＵ６１は、複数の個別データ９３を比較したり、ＮＧデータを含む個別データ９３を特定したりしてもよい。ＮＧはno goodの略称である。
【００７１】
ＩＰＣ１１やクラウド１２は、複数の部品に対する検査または加工を制御するプログラマブル・ロジック・コントローラに接続されたデータ収集装置の一例である。図２３ないし図２５を用いて説明したように、ＩＰＣ１１やクラウド１２は、収集部８１、決定部８２、抽出部８４、付与部８５を適宜に有する。
【００７２】
図１２においてタクトタイムｔｔは時間を単位とするデータであるが、単位時間あたりに処理される部品の数に置換されてもよい。また、タクトタイムｔｔに代えて、一つのワークの検査に必要となる検査時間やワークの到着周期が採用されてもよい。
【００７３】
抽出部８４は、個別データ９３からさらに所定期間のサブデータを抽出してもよい。所定期間は抽出期間よりも短い時間である。たとえば、ユーザが要求リレーの立ち上がり前後のデバイス値を確認することを希望すると、抽出部８４は、要求リレーの立ち上がり前後の所定期間にわたるサブデータを抽出してもよい。なお、個別データ９３とサブデータとは同時に表示されてもよい。サブデータはもともと個別データ９３の一部分である。そのため、個別データ９３の抽出期間を示すフレーム１０３に加え、サブデータの部分を囲むようなフレームが表示されてもよい。デバイス値の波形における面積（たとえば、上凸となっている領域の面積など）をユーザが確認したいと希望する場合、抽出部８４は、この面積に相当するサブデータを個別データ９３から抽出してもよい。このサブデータにもフレームが表示されてもよい。
【００７４】
ＣＰＵ３１、５１はそれぞれ識別情報を付与された複数の個別データ９３から形成されたデータファイルを記憶装置３２、５２に記憶させてもよい。たとえば、ＣＳＶ形式やＳＱＬ形式のデータファイルが作成されてもよい。ＣＰＵ３１、５１の送信部８６はデータファイルをクラウド１２へ転送する。なお、ＣＳＶ形式やＳＱＬ形式は一例にすぎず、クラウド１２が要求する形式が採用されればよい。また、個別データ９３は、データファイルの形式で記憶されるのではなく、時系列データ９２の一部として記憶装置３２、５２に記憶されてもよい。すなわち、「個別データ９３を時系列データ９２から抽出する」とは、時系列データ９２から個別データ９３を切り出し又はコピーすることにより、時系列データ９２から分離されたデータとして抽出することは勿論、時系列データ９２中で個別データ９３に相当する部分を特定することをも含む。この場合、個別データ９３は、時系列データ９２から分離されず、時系列データ９２の一部として記憶装置３２、５２に記憶される。
【図１】
2019016325.tif 000003
【図２】
2019016325.tif 000004
【図３】
2019016325.tif 000005
【図４】
2019016325.tif 000006
【図５】
2019016325.tif 000007
【図６】
2019016325.tif 000008
【図７】
2019016325.tif 000009
【図８】
2019016325.tif 000010
【図９】
2019016325.tif 000011
【図１０】
2019016325.tif 000012
【図１１】
2019016325.tif 000013
【図１２】
2019016325.tif 000014
【図１３】
2019016325.tif 000015
【図１４】
2019016325.tif 000016
【図１５】
2019016325.tif 000017
【図１６】
2019016325.tif 000018
【図１７】
2019016325.tif 000019
【図１８】
2019016325.tif 000020
【図１９】
2019016325.tif 000021
【図２０】
2019016325.tif 000022
【図２１】
2019016325.tif 000023
【図２２】
2019016325.tif 000024
【図２３】
2019016325.tif 000025
【図２４】
2019016325.tif 000026
【図２５】
2019016325.tif 000027
【図２６】
2019016325.tif 000028