(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023150751
(43)【公開日】2023-10-16
(54)【発明の名称】コントローラおよび制御プログラム
(51)【国際特許分類】
G05B 23/02 20060101AFI20231005BHJP
G05B 19/05 20060101ALI20231005BHJP
【FI】
G05B23/02 Z
G05B19/05 F
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022060009
(22)【出願日】2022-03-31
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】見置 孝昌
(72)【発明者】
【氏名】阪谷 信幸
(72)【発明者】
【氏名】阿部 泰明
(72)【発明者】
【氏名】森 瑞樹
(72)【発明者】
【氏名】溝口 健二
【テーマコード(参考)】
3C223
5H220
【Fターム(参考)】
3C223AA11
3C223BA03
3C223CC02
3C223DD03
3C223EB01
3C223EB02
3C223FF04
3C223FF12
3C223FF18
5H220AA04
5H220BB03
5H220CC06
5H220DD10
5H220FF05
5H220GG08
5H220GG17
5H220JJ60
(57)【要約】
【課題】効率的に特徴量を算出することが可能なコントローラを提供する。
【解決手段】コントローラは、入力される信号波形データを所定の周期毎にサンプリングするサンプリング部と、所定の周期毎にサンプリングした値をソートするソート部と、複数の所定の周期間隔の区間毎にソート部にソートされたサンプリングした値の中から第1特徴量を抽出する第1特徴量抽出部とを含む。
【選択図】
図4
【特許請求の範囲】
【請求項1】
入力される信号波形データを所定の周期毎にサンプリングするサンプリング部と、
前記所定の周期毎に前記サンプリングした値をソートするソート部と、
複数の所定の周期間隔の区間毎に前記ソート部にソートされた前記サンプリングした値の中から第1特徴量を抽出する第1特徴量抽出部とを含む、コントローラ。
【請求項2】
前記第1特徴量抽出部で抽出された第1特徴量に基づいて近似曲線を算出する曲線算出部と、
算出された近似曲線に基づいて第2特徴量を抽出する第2特徴量抽出部とをさらに含む、請求項1記載のコントローラ。
【請求項3】
前記ソート部は、前記サンプリングした値を昇降順にソートする、請求項1記載のコントローラ。
【請求項4】
前記第1特徴量抽出部は、前記区間毎にソートされた複数のサンプリングした値の中央値を抽出する、請求項1記載のコントローラ。
【請求項5】
前記ソート部は、前記区間毎に前記サンプリングした値をリセットする、請求項1記載のコントローラ。
【請求項6】
コンピュータで実行される制御プログラムであって、
前記制御プログラムは、前記コンピュータに、
入力される信号波形データを所定の周期毎にサンプリングするステップと、
前記所定の周期毎に前記サンプリングした値をソートするステップと、
複数の所定の周期間隔の区間毎にソートされた前記サンプリングした値の中から第1特徴量を抽出するステップとを備える、制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、特徴量を算出するコントローラ、および制御プログラムに関する。
【背景技術】
【0002】
機械や設備などの動作を制御するために用いられるコントローラには、汎用のPLCや、個別の機械等に専用のプログラム制御のコントローラがある。
【0003】
PLCは、例えば、制御プログラムを実行するマイクロプロセッサを含むCPU(Central Processing Unit)ユニット、外部のスイッチやセンサからの信号入力および外部のリレーやアクチュエータへの信号出力を担当するIO(Input Output)ユニット、といった複数のユニットで構成される。それらのユニット間で、制御プログラムの実行サイクル毎に、PLCシステムバスおよび/またはフィールドネットワークを経由してデータの授受をしながら、PLCは制御動作を実行する。
【0004】
CPUユニットは、外部のスイッチやセンサからの信号入力を処理して特徴量をデータ解析のために算出して保存する(特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
一方で、CPUユニットは、実行サイクル毎に、外部のリレーやアクチュエータへの信号出力やデータの授受等を実行する。各種の制御のための処理と、それと同期して実行する処理とを定時性かつ高速化の要求を満たしつつ限られた演算リソース内で実行サイクル毎に実行する必要がある。したがって、演算リソースの負荷を軽減することは重要である。
【0007】
本開示は、上記課題を解決するためのものであって、効率的に特徴量を算出することが可能なコントローラおよび制御プログラムを提供することである。
【課題を解決するための手段】
【0008】
ある局面に基づくコントローラは、入力される信号波形データを所定の周期毎にサンプリングするサンプリング部と、所定の周期毎にサンプリングした値をソートするソート部と、複数の所定の周期間隔の区間毎にソート部にソートされたサンプリングした値の中から第1特徴量を抽出する第1特徴量抽出部とを含む。この構成によれば、区間毎の演算リソースの負荷を各実行サイクルの所定の周期毎に分散することが可能であり、効率的に特徴量を算出することが可能である。
【0009】
コントローラは、第1特徴量抽出部で抽出された第1特徴量に基づいて近似曲線を算出する曲線算出部と、算出された近似曲線に基づいて第2特徴量を抽出する第2特徴量抽出部とをさらに含む。この構成によれば、抽出された第1特徴量に基づいて別の第2特徴量を抽出することが可能であり、効率的に特徴量を算出することが可能である。
【0010】
ソート部は、サンプリングした値を昇降順にソートする。この構成によれば、昇降順にソートするため効率的に特徴量を算出することが可能である。
【0011】
第1特徴量抽出部は、区間毎にソートされた複数のサンプリングした値の中央値を抽出する。この構成によれば、ソートされた中から中央値を抽出するため効率的に特徴量を算出することが可能である。
【0012】
ソート部は、区間毎にサンプリングした値をリセットする。この構成によれば、区間毎にサンプリングした値をリセットするため効率的に特徴量を算出することが可能である。
【0013】
コンピュータで実行される制御プログラムであって、制御プログラムは、コンピュータに、入力される信号波形データを所定の周期毎にサンプリングするステップと、所定の周期毎にサンプリングした値をソートするステップと、複数の所定の周期間隔の区間毎にソートされたサンプリングした値の中から第1特徴量を抽出するステップとを備える。この構成によれば、制御プログラムは、区間毎の演算リソースの負荷を各実行サイクルの所定の周期毎に分散することが可能であり、効率的に特徴量を算出することが可能である。
【0014】
なお、本開示において、「部」および「装置」とは、単に物理的手段を意味するものではなく、その「部」および「装置」が有する機能をソフトウェアによって実現する構成も含む。また、1つの「部」および「装置」が有する機能が2つ以上の物理的手段や装置によって実現されてもよく、あるいは、2つ以上の「部」および「装置」の機能が1つの物理的手段や装置によって実現されてもよい。さらに、「部」および「装置」とは、例えば「手段」および「システム」と言い換えることも可能な概念である。
【発明の効果】
【0015】
本開示のコントローラおよび制御プログラムは、効率的に特徴量を算出することが可能である。
【図面の簡単な説明】
【0016】
【
図1】実施形態に係るシステム1の全体構成を概略的に示す図である。
【
図2】実施形態に従うユニット200の構成を概略的に示す図である。
【
図3】実施形態に従うPLC100のハードウェア構成を模式的に示す図である。
【
図4】実施形態に従うPLC100が有する機能の構成を概略的に示す図である。
【
図5】実施形態に従うCPU110における特徴量を抽出する処理について説明するフロー図である。
【
図6】実施形態に従う取得したrawデータ26の一例について説明する図である。
【
図7】実施形態に従うフレーム周期毎に分割されたデータの一例について説明する図である。
【
図8】実施形態に従うフレーム周期と実行サイクルとの関係について説明する図である。
【
図9】実施形態に従うCPU110における特徴量を抽出する処理の概念図である。
【
図10】実施形態に従う第1特徴量に基づく波形について説明する図である。
【発明を実施するための形態】
【0017】
実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0018】
(システム構成)
図1は、実施形態に係るシステム1の全体構成を概略的に示す図である。システム1は、対象物(以下、ワークWともいう)を製造するためのFA(Factory Automation)などの製造ラインに、複数のユニット200、「コントローラ」の一実施例であるPLC(Programmable Logic Controller)100等の制御コンピュータ、および管理者が操作するコンピュータ300を備える。これらの各部は、有線または無線で相互に通信する。また、PLC100またはコンピュータ300は、作業者または管理者が携帯する端末11と通信することが可能である。
【0019】
図2は、実施形態に従うユニット200の構成を概略的に示す図である。各ユニット200は、同様の構成を有する。ユニット200は、例えば、一例として製造ラインの部品の加工工程、部品を組立てる組立工程、および組立てられたワークWを包装する包装工程に備えられる機器を含む。具体的には、ユニット200は、ワークW、部品および材料等を撮像し画像処理によりワークW、部品および材料等を検査する検査装置71、およびワークWまたは部品に識別コード(識別子)を付けるレーザマーカ72、およびワークWまたは部品の識別コードを読取るコードリーダ73を備える。なお、本例においては、一例として包装工程に備えられる機器について説明しているがこれに限られず他の工程に備えられる機器とすることも当然に可能である。
【0020】
ユニット200は、さらに、部品またはワークWの搬送コンベアに関連した上流のローラ55および下流のサーボモータ60、ならびに包装工程において、包装材をカットしてワークWを包装するための包装機器(パッケージマシン)70を備える。包装機器70は、包装材をカットするカッタを接続したアーム5Dを備える。アーム5Dは、包装機器70の内部モータ(図示せず)の回転に連動して往復運動することにより、カッタによる包装材の切断がなされる。
【0021】
ユニット200は、さらに、ローラ55の回転の加速度を計測する加速度センサ5B、およびサーボモータ60の回転量(方向、回転数等)を計測するサーボ/エンコーダ5C、およびアーム5Dの往復運動に関する加速度を計測する加速度センサ5Aを備える。
【0022】
PLC100は、各ユニット200の各部に制御用のデータを送信して、各部を制御する。また、PLC100は、製造ラインに備えられる機器の状態を表す機器情報を収集し、収集した機器情報を処理する。そして、処理結果に基づき制御用データを生成し、生成した制御用データを用いて各部を制御する。
【0023】
実施形態では、上記に述べた機器情報は、上記に述べた各センサからの計測情報、検査装置71からの情報(ワークWまたは部品の検査情報、検査装置71の情報(装置の使用期間、場所、解像度等の属性)を含む。
【0024】
なお、製造ラインに備えられる機器およびセンサは、
図2に示す種類に限定されない。例えば、機器の発熱を検出する温度センサ、振動音を検出する音センサ等が含まれてもよい。
【0025】
(PLC100のハードウェア構成)
図3は、実施形態に従うPLC100のハードウェア構成を模式的に示す図である。
図3を参照して、PLC100は、演算処理部であるCPU(Central Processing Unit)110と、記憶部としてのメモリ112およびハードディスク114と、時間を計時し計時データをCPU110に出力するタイマ113と、入力インタフェイス118と、ディスプレイ122を制御する表示コントローラ120と、通信インタフェイス124と、データリーダ/ライタ126とを含む。これらの各部は、バス128を介して、互いにデータ通信可能に接続される。
【0026】
CPU110は、ハードディスク114に格納されたプログラム(コード)を実行することで、各種の演算を実施する。ハードディスク114の代わりにSSD(Solid State Drive)を用いるようにしてもよい。メモリ112は、典型的には、DRAM(Dynamic Random Access Memory)などの記憶装置であり、ハードディスク114から読み出されたプログラム・データに加えて、機器情報33を含む各種のデータおよび情報が格納される。
【0027】
通信インタフェイス124は、ユニット200の各部またはコンピュータ300または端末11との間のデータ伝送を仲介する。データリーダ/ライタ126は、CPU110と記録媒体であるメモリカード123(例えばSDカード等)との間のデータ伝送を仲介する。
【0028】
(PLC100の機能構成)
図4は、実施形態に従うPLC100が有する機能の構成を概略的に示す図である。なお、実装の形態は、この態様に限定されない。各部は、CPU110が実行するプログラムとして示されるが、各部は回路またはプログラムと回路の組合せにより実現することも可能である。
【0029】
図4を参照して、CPU110は、データ取得部20と、サンプリング部21と、ソート部22と、曲線算出部23と、第1特徴量抽出部24と、第2特徴量抽出部25とを含む。また、CPU110と接続されるメモリ112には、rawデータ26と、第1特徴量27と、第2特徴量28が格納されている。
【0030】
データ取得部20は、メモリ112に格納されたrawデータ26を取得する。rawデータ26は、一例として製造ラインに備えられる機器の状態を表す機器情報である。なお、rawデータ26は、1つに限られず複数格納されていてもよく、複数種類の情報が組み合わされたものであってもよい。
【0031】
サンプリング部21は、取得したrawデータ26について所定の周期毎にサンプリングする。
【0032】
ソート部22は、所定の周期毎にサンプリングした値をソートする。
第1特徴量抽出部24は、複数の所定の周期間隔の区間毎にソート部22にソートされたサンプリングした値の中から第1特徴量を抽出する。第1特徴量抽出部24は、メモリ112に第1特徴量27として保存する。
【0033】
曲線算出部23は、メモリ112に保存された第1特徴量27に基づいて近似曲線を算出する。
【0034】
第2特徴量抽出部25は、算出された近似曲線に基づいて第2特徴量を抽出する。第2特徴量抽出部25は、メモリ112に第2特徴量28として保存する。
【0035】
図5は、実施形態に従うCPU110における特徴量を抽出する処理について説明するフロー図である。
図5を参照して、CPU110は、取得したrawデータ26について所定の実行サイクル(所定周期)毎にサンプリングするサンプリング処理を実行する(ステップS1)。実行サイクルは、CPU110が処理を実行する周期を示す。サンプリング部21は、データ取得部20で取得したrawデータ26について実行サイクル毎にサンプリング処理を実行する。サンプリング部21は、サンプリング処理したサンプリング値をバッファに格納する。バッファとしてメモリ112の一部の領域を用いるようにしてもよいし、専用のハードウェアを用いるようにしてもよい。
【0036】
次に、CPU110は、所定の周期毎にサンプリングした値をソートするソート処理を実行する(ステップS2)。ソート部22は、バッファに格納されたサンプリング値についてソート処理する。一例としてソート部22は、バッファ内においてサンプリング値を昇順に並べ替える。なお、ソート部22は、所定の周期毎にサンプリングした値をソートするソート処理を実行するが、フレーム周期毎にバッファ内のサンプリング値を初期化(リセット)する。これにより、フレーム周期毎の単位でバッファ内のデータが処理される。なお、本例においては、フレーム周期毎にバッファ内のデータを初期化する場合について説明するが、これに限られず初期化しないようにすることも可能である。
【0037】
次に、CPU110は、所定の周期が経過したか否かを判断する(ステップS3)。所定の周期が経過するまでは、ステップS3の状態を維持する。
【0038】
CPU110は、ステップS3において、所定の周期が経過したと判断した場合(ステップS3においてYES)には、次にフレーム周期(区間)が経過したか否かを判断する(ステップS4)。フレーム周期は、複数の実行サイクル(複数の所定の周期)に相当し、予め設定されたものである。なお、フレーム周期を規定する実行サイクルの数は任意の値に調整することが可能である。
【0039】
ステップS4において、CPU110は、フレーム周期が経過していない判断した場合(ステップS4においてNO)には、ステップS1に戻り、上記のサンプリング処理に戻り処理を継続する。
【0040】
一方、ステップS4において、CPU110は、フレーム周期が経過したと判断した場合(ステップS4においてYES)には、第1特徴量を抽出する(ステップS5)。第1特徴量抽出部24は、バッファ内に格納された複数のサンプリング値のうち所定の値を特徴量として抽出する。一例として、第1特徴量抽出部24は、昇順にソートされた複数のサンプリング値のうちの中央値を第1特徴量として抽出する。
【0041】
次に、CPU110は、特徴量を抽出する処理が終了したか否かを判断する(ステップS6)。
【0042】
ステップS6において、CPU110は、特徴量を抽出した処理が終了していないと判断した場合(ステップS6においてNO)には、ステップS1に戻り、上記のサンプリング処理に戻り処理を継続する。
【0043】
一方、ステップS6において、CPU110は、特徴量を抽出した処理が終了したと判断した場合(ステップS6においてYES)には、処理を終了する(エンド)。
【0044】
図6は、実施形態に従う取得したrawデータ26の一例について説明する図である。
図6を参照して、高周波のノイズが発生するようなロングタームの信号波形データが示されている。ここで、信号波形400は、検出したい波形である。また、一例としてフレーム周期毎に分割される場合が示されている。
【0045】
図7は、実施形態に従うフレーム周期毎に分割されたデータの一例について説明する図である。
【0046】
図7を参照して、1フレーム周期(区間)における波形が示されている。ここで、平均値および中央値が示されている。実施形態においては、中央値を抽出する場合について説明する。中央値は、分布が不均一な一定区間の代表値を抽出するものであり、例えばロングタームの波形からノイズ成分を除去する一つの特徴量として平均値よりも分布に影響が少なく分離性を実現することが可能である。
【0047】
図8は、実施形態に従うフレーム周期と実行サイクルとの関係について説明する図である。
【0048】
図8に示されるように、フレーム周期に分割されており、各フレーム周期は、複数の実行サイクルを含む。一例として、フレーム周期F1~F3が示されている。また、フレーム周期F1は、複数の実行サイクルC1~Cn(n≧2)で構成されている場合が示されている。他のフレーム周期Fについても同様である。
【0049】
図9は、実施形態に従うCPU110における特徴量を抽出する処理の概念図である。
図9(A)を参照して、各実行サイクルCnでサンプリング処理を実行して、サンプリング値をバッファに格納する。一例として、実行サイクルCnのサンプリング値が格納された場合が示されている。
【0050】
次に、
図9(B)を参照して、各実行サイクル毎にサンプリング処理を実行したサンプリング値をソートする。一例として、実行サイクルCnのサンプリング値をソートした場合が示されている。
【0051】
次に、
図9(C)を参照して、フレーム周期でソート済みのバッファから中央値を取得する。
【0052】
当該方式により、各実行サイクル毎にソート処理が実行される。また、各実行サイクルでソート処理するべき対象は、1つであり当該実行サイクルでサンプリングした値である。フレーム周期では、ソート処理されたバッファの中から中央値を抽出する処理が実行される。したがって、フレーム周期において、複数のサンプリング値をソートして中央値を抽出するのではなく、各実行サイクルで複数のサンプリング値がソートされているためフレーム周期における負荷を大幅に軽減することが可能である。そして、その演算結果を後段の特徴量演算や判定ロジックにすぐに活用することも可能である。
【0053】
フレーム周期における演算リソースの負荷を各実行サイクルに分散することが可能である。
【0054】
図10は、実施形態に従う第1特徴量に基づく波形について説明する図である。
図10を参照して、本例においては、曲線算出部23は、メモリ112に保存された第1特徴量に基づいて近似曲線を算出する。一例として多項式近似により曲線を算出するようにしてもよい。
【0055】
また、第2特徴量抽出部25は、算出された近似曲線に基づいて第2特徴量を抽出する。具体的には、近似曲線の振幅あるいは周波数を抽出する。なお、これに限られず、他の特徴量を抽出するようにしてもよい。なお、第2特徴量抽出部25を複数設けた構成とすることも可能である。さらに、第1および第2の特徴量に限られず、当該特徴量を用いて第3、第4の特徴量等を抽出する多段構成の特徴量抽出部を採用するようにしてもよい。これにより、高分解能のサンプリング値のクレンジング効果(データ圧縮)にも活用することが可能である。
【0056】
当該処理により、例えば高周波ノイズが発生するようなロングタームの信号波形データに対してノイズ成分を除去するとともに、当該ノイズ成分を除去した信号の特徴を容易に抽出することが可能である。従来においては、当該信号波形データを抽出するために特別なハードウェアや前処理が必要であったが、本方式により演算リソースへの負荷を軽減して効率的に特徴量を算出することが可能である。
【0057】
なお、本例においては、ソート部22は、ソート処理としてサンプリング値を値の小さい方から大きい方へ順に並べる昇順に並べ替える場合について説明したが、サンプリング値を値の大きい方から小さい方へ順に並べる降順に並べ替えるようにしてもよいし、他の規則に基づいて順序関係を並べ替えてもよい。
【0058】
第1特徴量抽出部24は、複数の所定の周期間隔毎の区間毎にソート部22にソートされたサンプリングした値の中から中央値を第1特徴量として抽出する場合について説明したが、中央値に限られず他の値であっても良い。例えば、最大値あるいは最小値であってもよいし、1つに限られず複数の値を抽出するようにしてもよい。例えば、最大あるいは最小の値から上位あるいは下位数%(一例として10%)の範囲に入る値を抽出するようにしてもよい。
【0059】
さらに、本例においては、製造ラインの機器情報について特徴量を抽出する場合について説明したが、製造ラインに限られる例えば一般的なデータ分析の場合においても同様に適用可能である。
【0060】
<付記>
上述したような本実施の形態は、以下のような技術思想を含む。
【0061】
[構成1]
入力される信号波形データを所定の周期毎にサンプリングするサンプリング部(21)と、
前記所定の周期毎に前記サンプリングした値をソートするソート部(22)と、
複数の所定の周期間隔の区間毎に前記ソート部にソートされた前記サンプリングした値の中から第1特徴量を抽出する第1特徴量抽出部(24)とを含む、コントローラ。
【0062】
[構成2]
前記第1特徴量抽出部で抽出された第1特徴量に基づいて近似曲線を算出する曲線算出部(23)と、
算出された近似曲線に基づいて第2特徴量を抽出する第2特徴量抽出部(25)とをさらに含む、上記記載のコントローラ。
【0063】
[構成3]
前記ソート部は、前記サンプリングした値を昇降順にソートする、上記記載のコントローラ。
【0064】
[構成4]
前記第1特徴量抽出部は、前記区間毎にソートされた複数のサンプリングした値の中央値を抽出する、上記記載のコントローラ。
【0065】
[構成5]
前記ソート部は、前記区間毎に前記サンプリングした値をリセットする、上記記載のコントローラ。
【0066】
[構成6]
コンピュータで実行される制御プログラムであって、
前記制御プログラムは、前記コンピュータに、
入力される信号波形データを所定の周期毎にサンプリングするステップ(S1)と、
前記所定の周期毎に前記サンプリングした値をソートするステップ(S2)と、
複数の所定の周期間隔の区間毎にソートされた前記サンプリングした値の中から第1特徴量を抽出するステップ(S5)とを備える、制御プログラム。
【0067】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0068】
1 システム、5A,5B 加速度センサ、5C エンコーダ、5D アーム、11 端末、20 データ取得部、21 サンプリング部、22 ソート部、23 曲線算出部、24 第1特徴量抽出部、25 第2特徴量抽出部、26 rawデータ、27 第1特徴量、28 第2特徴量、33 機器情報、55 ローラ、60 サーボモータ、70 包装機器、71 検査装置、72 レーザマーカ、73 コードリーダ、112 メモリ、113 タイマ、114 ハードディスク、118 入力インタフェイス、120 表示コントローラ、121 キーボード、122 ディスプレイ、123 メモリカード、124 通信インタフェイス、126 データリーダ/ライタ、128 バス、200 ユニット、300 コンピュータ。