〔実施形態1〕
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。本実施の形態においては、例えば異常検出装置10を、異常検出装置の典型例として説明を行う。以下では先ず、異常検出装置10の理解を容易にするために、異常検出装置10を含む異常検出システム1の概要を、図2を用いて説明する。
§1.適用例
(制御システムの概要)
図2は、異常検出装置10を含む異常検出システム1の概要を示す図である。異常検出システム1は、異常検出装置10、PLC(Programmable Logic Controller、プログラマブル・ロジック・コントローラ)20、方向切替弁30、アクチュエータ40、第1スイッチ(スイッチitch、スイッチ)51、および、第2スイッチ52を含んでいる。
PLC20は、異常検出装置10を介して、方向切替弁30に制御信号(以下、「制御指令」ともいう。具体的には、Push指令またはPull指令)を出力して、方向切替弁30に、アクチュエータ40への圧力流体(例えば、圧力気体)の供給を指示する。PLC20は、異常検出装置10を介して、Push指令またはPull指令を方向切替弁30に出力し、シリンダ41の第1端部42と第2端部43との間で、ピストン46およびピストンロッド47を一体的に、図2の紙面左右方向に往復移動させる。
具体的には、ピストン46がシリンダ41の第1端部42に位置する状態において、PLC20は、Push指令を出力することにより、ピストン46の位置を、第1端部42から第2端部43へと変位させる。ピストン46がシリンダ41の第2端部43に位置する状態において、PLC20は、Pull指令を出力することにより、ピストン46の位置を、第2端部43から第1端部42へと変位させる。
PLC20は、ピストン46およびピストンロッド47をシリンダ41の第1端部42と第2端部43との間で繰り返し往復させる。以下の説明においては、ピストン46およびピストンロッド47の1往復を「1Frame(フレーム)」と称することがある。
また、PLC20は、第1スイッチ51および第2スイッチ52の各々の検知結果を示す検知信号を、つまり、第1検知信号および第2検知信号の各々を、異常検出装置10を介して取得する。以下の説明および図面において、「スイッチ」は「SW」と略記することがある。
さらに、PLC20は、異常検出装置10から、異常判定の判定結果を、つまり、アクチュエータ40における異常(具体的には、ピストンパッキン48およびロッドパッキン49の少なくとも一方の破損)の発生の有無を示す信号を取得する。
方向切替弁30は、周知の電磁弁により実現することができ、異常検出装置10を介して、PLC20からの制御指令を取得し、取得した制御指令に従って、圧力流体をアクチュエータ40の第1端部42または第2端部43に、選択的に供給する。
例えば、方向切替弁30は、Push指令(押出指令)を取得すると、第1ポート44を介してシリンダ41の第1端部42側に圧力流体を供給すると共に、シリンダ41の第2端部43側の圧力流体を、第2ポート45を介して外部に排気する。これにより、ピストン46およびピストンロッド47は、シリンダ41の第1端部42から第2端部43に向かって、一体的に変位する。以下の説明において、ピストン46およびピストンロッド47が、ピストンロッド47のピストン46が備えられていない側へと、一体的に変位する場合のその変位方向を、「押出方向(図2において、紙面左側から右側への方向)」と表現する。
また、方向切替弁30は、Pull指令(引戻指令)を取得すると、第2ポート45を介してシリンダ41の第2端部43側に圧力流体を供給すると共に、シリンダ41の第1端部42側の圧力流体を、第1ポート44を介して外部に排気する。これにより、ピストン46およびピストンロッド47は、シリンダ41の第2端部43から第1端部42に向かって、一体的に変位する。以下の説明において、ピストン46およびピストンロッド47が、ピストンロッド47のピストン46が備えられている側へと、一体的に変位する場合のその変位方向を、「引戻方向(図2において、紙面右側から左側への方向)」と表現する。
アクチュエータ40は、方向切替弁30からの圧力流体(例えば、圧力気体)の供給によって、ピストンロッド47に連結されたピストン46(可動部)が、図2の左右方向(変位方向)に変位するアクチュエータであり、例えば、周知のエアシリンダである。アクチュエータ40において、ピストンロッド47に連結されたピストン46は、シリンダ41の第1端部42と第2端部43との間で、図2の左右方向に変位する。つまり、ピストン46およびピストンロッド47は、シリンダ41の第1端部42から第2端部43に向かって(つまり、押出方向に)、または、第2端部43から第1端部42に向かって(つまり、引戻方向に)、一体的に変位する。
アクチュエータ40は、シリンダ41とピストン46との間から圧力流体が漏れ出てしまうのを防ぐためのピストンパッキン48と、シリンダ41とピストンロッド47との間から圧力流体が漏れ出てしまうのを防ぐためのロッドパッキン49とを備えている。
第1スイッチ51は、シリンダ41の第1端部42に変位したピストン46を検知するセンサであり、第2スイッチ52は、シリンダ41の第2端部43に変位したピストン46を検知するセンサである。例えば、第1スイッチ51は、アクチュエータ40を構成する流体圧シリンダであるシリンダ41の第1端部42側の外周面に配設され、第2スイッチ52は、シリンダ41の第2端部43側の外周面に配設される。第1スイッチ51および第2スイッチ52の各々は、例えば、リミットスイッチまたは磁気式スイッチである。
第1スイッチ51および第2スイッチ52の各々は、ピストン46が第1スイッチ51および第2スイッチ52の各々に対向する位置に変位したときに、ピストン46を検知し、その旨を示す検知信号を異常検出装置10に出力する。また、ピストン46が変位して第1スイッチ51および第2スイッチ52の各々と対向しなくなると、第1スイッチ51および第2スイッチ52の各々は、検知信号の出力を停止する。
すなわち、第1スイッチ51は、ピストン46が第1スイッチ51に対向する位置に変位したときにピストン46を検知し、つまり、シリンダ41の第1端部42に変位したピストン46を検知し、第1検知信号を異常検出装置10に出力する(第1検知信号=1)。また、第1スイッチ51は、ピストン46が変位して第1スイッチ51と対向しなくなると、第1検知信号の出力を停止する(第1検知信号=0)。
同様に、第2スイッチ52は、ピストン46が第2スイッチ52に対向する位置に変位したときにピストン46を検知し、つまり、シリンダ41の第2端部43に変位したピストン46を検知し、第2検知信号を異常検出装置10に出力する(第2検知信号=1)。また、第2スイッチ52は、ピストン46が変位して第2スイッチ52と対向しなくなると、第2検知信号の出力を停止する(第2検知信号=0)。
図2に示すように、異常検出システム1は、さらにHMI60を含んでいてもよい。図2に示す例において、PLC20には、例えばUSB(Universal Serial Bus)ケーブルである通信ケーブルを介して、HMI(Human Machine Interface)60が接続している。HMI60は、異常検出システム1に対して各種のパラメータ(特に、異常検出装置10等が用いるパラメータ)を設定したり、ユーザに通知したりする(例えば、表示したりする)ための情報処理装置である。HMI60は、例えば、汎用のコンピュータで構成される。HMI60は、異常検出装置10に接続されていてもよい。
HMI60は、PLC20から介して異常検出装置10から取得する各種の情報を、ユーザに通知し、例えば、各種の情報を表示する。HMI60は、異常検出装置10による異常判定の結果を、PLC20から介して異常検出装置10から取得し、取得した異常判定の結果を表示する。HMI60は、「制御指令(Push指令またはPull指令)の開始時点」と、「ピストン46が、シリンダ41の第1端部42または第2端部43へと到着した時点」との差分である移動時間の初期値(T10およびT20)を、異常検出装置10から取得する。HMI60は、取得した移動時間の初期値(T10およびT20)を、ユーザに、編集可能に表示する。HMI60は、異常検出装置10が異常判定に用いる基準値(TH1およびTH2)を、PLC20から介して異常検出装置10から取得し、取得した基準値を、ユーザに、編集可能に表示する。
また、異常検出システム1は、方向切替弁30へのPush指令およびPull指令の各々の入力を検知する、不図示の第1切替センサおよび第2切替センサをさらに含んでいてもよい。すなわち、異常検出システム1は、方向切替弁30に対する制御指令(Push指令およびPull指令の各々)の開始を検知する、第1切替センサおよび第2切替センサをさらに含んでいてもよい。
例えば、第1切替センサは、方向切替弁30の「Push指令を取得することで励磁され、第1ポート44を介してシリンダ41の第1端部42側に圧力流体を供給する第1ソレノイド」に設けられ、Push指令の入力を検知する。具体的には、第1切替センサは、第1ソレノイドが取得するPush指令がローレベル(例えば、「0」)からハイレベル(例えば、「1」)に変化するのを検知する。第1切替センサは、「Push指令の入力」として、Push指令による第1ソレノイドの励磁を検知してもよい。
例えば、第2切替センサは、方向切替弁30の「Pull指令を取得することで励磁され、第2ポート45を介してシリンダ41の第2端部43側に圧力流体を供給する第2ソレノイド」に設けられ、Pull指令の入力を検知する。具体的には、第2切替センサは、第2ソレノイドが取得するPull指令がローレベル(例えば、「0」)からハイレベル(例えば、「1」)に変化するのを検知する。第2切替センサは、「Pull指令の入力」として、Pull指令による第2ソレノイドの励磁を検知してもよい。
異常検出装置10は、PLC20から制御指令を取得し、取得した制御指令を方向切替弁30へと出力し、また、第1スイッチ51および第2スイッチ52の各々から検知信号を取得し、取得した検知信号をPLC20へと出力する。
異常検出装置10は、PLC20から取得する制御指令によって、「方向切替弁30が制御指令を取得する時点」を、つまり、「PLC20による、方向切替弁30への、アクチュエータ40におけるピストン46の変位(移動)の指令の開始時点」を、取得する。
また、異常検出装置10は、第1スイッチ51および第2スイッチ52の各々から取得する検知信号によって、「ピストン46が、シリンダ41の第1端部42または第2端部43へと到着した時点」を取得する。
異常検出装置10は、「PLC20による、方向切替弁30への、アクチュエータ40におけるピストン46の変位(移動)の指令の開始時点」と、「ピストン46が、シリンダ41の第1端部42または第2端部43へと到着した時点」とから、ピストン46の移動時間(変位時間)を算出する。
具体的には、異常検出装置10は、移動時間として、「ピストン46が第1端部42に位置している状態において、PLC20が出力するPush指令の開始時刻」から、「ピストン46が第2端部43へと到着した時刻」までの時間である押出時間T1を算出する。また、異常検出装置10は、移動時間として、「ピストン46が第2端部43に位置している状態において、PLC20が出力するPull指令の開始時刻」から、「ピストン46が第1端部42へと到着した時刻」までの時間である引戻時間T2を算出する。
異常検出装置10は、算出した移動時間を用いて、ピストンパッキン48およびロッドパッキン49の少なくとも一方の破損等の、アクチュエータ40における異常の発生の有無を判定し、判定結果を示す信号を、PLC20へと出力する。
すなわち、異常検出装置10は、繰り返し移動時間を算出し、例えば、PLC20から制御指令(Push指令またはPull指令)を取得するたびに、移動時間(押出時間T1または引戻時間T2)を算出する。異常検出装置10は、現在までに算出した移動時間の最大値から、現在までに算出した移動時間の最小値を差し引いた値を、移動時間の初期値によって除することによって、特徴量を算出する。言い換えれば、異常検出装置10は、現在までに算出した移動時間の最大値を、現在までに算出した移動時間の最小値によって減算した値を、移動時間の初期値によって除して、特徴量を算出する。異常検出装置10は、算出した特徴量と基準値とを比較することにより、ピストンパッキン48およびロッドパッキン49の少なくとも一方の破損等の異常の発生の有無を判定し、判定結果を示す信号を、PLC20へと出力する。
ここで、アクチュエータ40を起動させた直後の時点である動作初期時点(起動時点)においては、ピストン46の移動時間が安定しない。そのため、異常検出装置10は、「アクチュエータ40を起動させた後、所定時間が経過した(または、所定の回数のフレームが完了した)」時点で計時した移動時間を、「移動時間の初期値」として取得する。異常検出装置10が「移動時間の初期値」を取得する際に用いる「所定時間(または、所定の回数)」は、ユーザがHMI60を操作して設定できるようにしておいてもよいし、異常検出装置10の工場出荷段階で決められていてもよい。異常検出装置10は、「アクチュエータ40を起動させた後、所定時間が経過した(または、所定の回数のフレームが完了した)」時点で、「移動時間の初期値」を取得し、また、特徴量と基準値との比較による異常判定を開始する。
さらに、異常検出装置10は、移動時間の初期値を、具体的には、「押出時間T1の初期値T10」および「引戻時間T2の初期値T20」を、PLC20を介してHMI60に出力し、HMI60に、移動時間の初期値を、ユーザによって編集可能に表示させる。異常検出装置10は、基準値についても、HMI60に、ユーザによって編集可能に表示させてもよい。
§2.構成例
(コントローラの詳細)
図1は、異常検出装置10等の要部構成を示すブロック図である。図1に示すように、異常検出装置10は、記憶部170以外の機能ブロックとして、指令取得部110、検知信号取得部120、計時部130、更新制御部140、判定部150、および、通知制御部160を備えている。なお、記載の簡潔性を担保するため、本実施の形態に直接関係のない構成は、説明およびブロック図から省略している。ただし、実施の実情に則して、異常検出装置10は、当該省略された構成を備えてもよい。図1に例示した各機能ブロックは、例えば、CPU(central processing unit)等が、ROM(read only memory)、NVRAM(non-Volatile random access memory)等で実現された記憶装置(記憶部170)に記憶されているプログラムを不図示のRAM(random access memory)等に読み出して実行することで実現できる。以下、異常検出装置10における各機能ブロックについて説明する。
(記憶部以外の機能ブロックの詳細)
指令取得部110は、PLC20から制御指令(Push指令およびPull指令)を取得し、取得した制御指令を方向切替弁30および計時部130の各々へと出力する機能ブロックであり、第1指令取得部111と第2指令取得部112とを含む。第1指令取得部111は、PLC20からPush指令を取得し、取得したPush指令を方向切替弁30および計時部130の各々へと出力する。第2指令取得部112は、PLC20からPull指令を取得し、取得したPull指令を方向切替弁30および計時部130の各々へと出力する。
検知信号取得部120は、第1スイッチ51および第2スイッチ52の各々から検知信号(第1検知信号および第2検知信号)を取得し、取得した検知信号をPLC20および計時部130の各々へと出力する機能ブロックである。検知信号取得部120は、第1検知信号取得部121と第2検知信号取得部122とを含む。第1検知信号取得部121は、第1スイッチ51から第1検知信号を取得し、取得した第1検知信号をPLC20および計時部130の各々へと出力する。第2検知信号取得部122は、第2スイッチ52から第2検知信号を取得し、取得した第2検知信号をPLC20および計時部130の各々へと出力する。
計時部130は、指令取得部110から取得した制御指令によって、「方向切替弁30が制御指令を取得する時点」を、つまり、「PLC20による、ピストン46の変位(移動)を指示する制御指令の開始時点」を、取得する。計時部130は、検知信号取得部120から取得した検知信号によって、「ピストン46が、シリンダ41の第1端部42または第2端部43へと到着した時点」を取得する。計時部130は、「ピストン46の変位(移動)を指示する制御指令の開始時点」と、「ピストン46が、シリンダ41の第1端部42または第2端部43へと到着した時点」とから、ピストン46の移動時間(変位時間)を算出する。計時部130は、算出した移動時間(変位時間)を、更新制御部140に通知する。計時部130は、第1計時部131と第2計時部132とを含む。
第1計時部131は、移動時間として、「ピストン46が第1端部42に位置している状態において、PLC20が出力するPush指令の開始時刻」から、「ピストン46が第2端部43へと到着した時刻」までの時間である押出時間T1を算出する。第1計時部131は、算出した押出時間T1を、更新制御部140に通知する。
第2計時部132は、移動時間として、「ピストン46が第2端部43に位置している状態において、PLC20が出力するPull指令の開始時刻」から、「ピストン46が第1端部42へと到着した時刻」までの時間である引戻時間T2を算出する。第2計時部132は、算出した引戻時間T2を、更新制御部140に通知する。
更新制御部140は、計時部130から通知された移動時間を用いて、移動時間テーブル180の更新処理(押出時間テーブル更新処理および引戻時間テーブル更新処理)を実行する機能ブロックであり、第1更新制御部141と第2更新制御部142とを含む。具体的には、更新制御部140は、移動時間テーブル180について、移動時間の初期値を設定する処理(初期値設定)、移動時間の最大値を更新する処理(最大値設定)、および、移動時間の最小値を更新する処理(最小値設定)を実行する。
更新制御部140は、移動時間の初期値を設定する処理として、以下の処理を実行する。すなわち、移動時間テーブル180(押出時間テーブル181および引戻時間テーブル182)に初期値が格納されていないと、計時部130から通知された移動時間を、初期値として移動時間テーブル180に格納する。
更新制御部140は、移動時間の最大値を更新する処理として、以下の2つの処理を実行する。すなわち、更新制御部140は、移動時間テーブル180に移動時間の最大値が格納されていないと、計時部130から通知された移動時間を、移動時間の最大値として移動時間テーブル180に格納する。更新制御部140は、計時部130から通知された移動時間の値が、移動時間テーブル180に格納されている移動時間の最大値よりも大きいと、計時部130から通知された移動時間の値で、移動時間テーブル180に格納されている移動時間の最大値を更新する。
更新制御部140は、移動時間の最小値を更新する処理として、以下の2つの処理を実行する。すなわち、更新制御部140は、移動時間テーブル180に移動時間の最小値が格納されていないと、計時部130から通知された移動時間を、移動時間の最小値として移動時間テーブル180に格納する。更新制御部140は、計時部130から通知された移動時間の値が、移動時間テーブル180に格納されている移動時間の最小値よりも小さいと、計時部130から通知された移動時間の値で、移動時間テーブル180に格納されている移動時間の最小値を更新する。
更新制御部140の実行する「移動時間の最大値を更新する処理」によって、移動時間テーブル180(押出時間テーブル181および引戻時間テーブル182)には常に、計時部130によって現在までに計測された移動時間の最大値が格納される。更新制御部140の実行する「移動時間の最小値を更新する処理」によって、移動時間テーブル180(押出時間テーブル181および引戻時間テーブル182)には常に、計時部130によって現在までに計測された移動時間の最小値が格納される。以下、第1更新制御部141および第2更新制御部142の各々による、移動時間の初期値を設定する処理(初期値設定)、移動時間の最大値を更新する処理(最大値設定)、および、移動時間の最小値を更新する処理(最小値設定)の詳細を説明する。
第1更新制御部141は、第1計時部131から通知される押出時間T1を用いて押出時間テーブル181に格納されている値を更新する処理である押出時間テーブル更新処理を実行する。
すなわち、押出時間テーブル181に押出時間T1の初期値T10が格納されていないと、第1更新制御部141は、第1計時部131から通知される押出時間T1を、初期値T10として押出時間テーブル181に格納する(初期値設定)。
押出時間テーブル181に押出時間T1の最大値T1MAXが格納されていないと、第1更新制御部141は、第1計時部131から通知される押出時間T1を、最大値T1MAXとして押出時間テーブル181に格納する(最大値設定)。第1計時部131から通知される押出時間T1が、押出時間テーブル181に格納されている最大値T1MAXよりも大きいと、第1更新制御部141は、第1計時部131から通知される押出時間T1で、最大値T1MAXを更新する(最大値設定)。
押出時間テーブル181に押出時間T1の最小値T1minが格納されていないと、第1更新制御部141は、第1計時部131から通知される押出時間T1を、最小値T1minとして押出時間テーブル181に格納する(最小値設定)。第1計時部131から通知される押出時間T1が、押出時間テーブル181に格納されている最小値T1minよりも小さいと、第1更新制御部141は、第1計時部131から通知される押出時間T1で、最小値T1minを更新する(最小値設定)。
第2更新制御部142は、第2計時部132から通知される引戻時間T2を用いて引戻時間テーブル182に格納されている値を更新する処理である引戻時間テーブル更新処理を実行する。
すなわち、引戻時間テーブル182に引戻時間T2の初期値T20が格納されていないと、第2更新制御部142は、第2計時部132から通知される引戻時間T2を、初期値T20として引戻時間テーブル182に格納する(初期値設定)。
引戻時間テーブル182に引戻時間T2の最大値T2MAXが格納されていないと、第2更新制御部142は、第2計時部132から通知される引戻時間T2を、最大値T2MAXとして引戻時間テーブル182に格納する(最大値設定)。第2計時部132から通知される引戻時間T2が、引戻時間テーブル182に格納されている最大値T2MAXよりも大きいと、第2更新制御部142は、第2計時部132から通知される引戻時間T2で、最大値T2MAXを更新する(最大値設定)。
引戻時間テーブル182に引戻時間T2の最小値T2minが格納されていないと、第2更新制御部142は、第2計時部132から通知される引戻時間T2を、最小値T2minとして引戻時間テーブル182に格納する(最小値設定)。第2計時部132から通知される引戻時間T2が、引戻時間テーブル182に格納されている最小値T2minよりも小さいと、第2更新制御部142は、第2計時部132から通知される引戻時間T2で、最小値T2minを更新する(最小値設定)。
判定部150は、移動時間テーブル180(押出時間テーブル181および引戻時間テーブル182)を参照して、移動時間(押出時間T1および引戻時間T2)の初期値、最大値、および、最小値を用いて特徴量(W1およびW2)を算出する。具体的には、判定部150は、移動時間テーブル180に格納されている最大値から、移動時間テーブル180に格納されている最小値を差し引いた値を、移動時間テーブル180に格納されている初期値によって除することによって、特徴量を算出する。
判定部150は、算出した特徴量(W1およびW2)と基準値(TH1およびTH2)とを比較して、ピストンパッキン48およびロッドパッキン49の少なくとも一方の破損等の異常の発生の有無を判定する。
基準値TH1および基準値TH2の各々は、「0」よりも大きな数値として、例えばユーザによって設定され、記憶部170に格納されている。異常検出装置10の開発者が実験を重ねて得た知見では、基準値TH1および基準値TH2の各々は、「0」よりも大きく「0.5」以下の数値であるのが望ましく、「0」よりも大きく「0.3」以下の数値であるのがより望ましい。基準値TH1および基準値TH2の各々は、例えば「0.25」である。基準値TH1の値と基準値TH2の値とは、同じ数値であってもよいし、異なる数値であってもよい。
判定部150は、異常の発生の有無に係る判定の結果を、通知制御部160に通知する。判定部150は、第1判定部151と第2判定部152とを含む。
第1判定部151は、押出時間テーブル181を参照して、押出時間T1の初期値T10、押出時間T1の最大値T1MAX、および、押出時間T1の最小値T1minを取得する。第1判定部151は、最大値T1MAXから最小値T1minを差し引いた値を、初期値T10によって除することによって、特徴量W1を算出し、つまり、
により、特徴量W1を算出する。第1判定部151は、算出した特徴量W1と基準値TH1とを比較して、異常の発生の有無を判定する。
第1判定部151は、特徴量W1が基準値TH1よりも大きいと、少なくともロッドパッキン49について、破損等の異常が発生していると判定し、特徴量W1が、基準値TH1以下であると、異常は発生していないと判定する。そして、第1判定部151は、この判定結果を、通知制御部160に通知する。
ロッドパッキン49に破損等の異常が発生すると、シリンダ41とピストンロッド47との間から圧力流体がシリンダ41の外部に漏れ出てしまうため、押出時間T1が短くなる(小さくなる)。そこで、第1判定部151は、特徴量W1が基準値TH1よりも大きいと、少なくともロッドパッキン49について、破損等の異常が発生していると判定する。
第2判定部152は、引戻時間テーブル182を参照して、引戻時間T2の初期値T20、引戻時間T2の最大値T2MAX、および、引戻時間T2の最小値T2minを取得する。第2判定部152は、最大値T2MAXから最小値T2minを差し引いた値を、初期値T20によって除することによって、特徴量W2を算出し、つまり、
により、特徴量W2を算出する。第2判定部152は、算出した特徴量W2と基準値TH2とを比較して、異常の発生の有無を判定する。
第2判定部152は、特徴量W2が基準値TH2よりも大きいと、少なくともピストンパッキン48について、破損等の異常が発生していると判定し、特徴量W2が、基準値TH2以下であると、異常は発生していないと判定する。そして、第2判定部152は、この判定結果を、通知制御部160に通知する。
ピストンパッキン48に破損等の異常が発生すると、シリンダ41とピストンパッキン48との間から圧力流体が第2端部43側から第1端部42側へと漏れ出てしまうため、引戻時間T2が長くなる(大きくなる)。そこで、第2判定部152は、特徴量W2が基準値TH2よりも大きいと、少なくともピストンパッキン48について、破損等の異常が発生していると判定する。
通知制御部160は、判定部150(第1判定部151および第2判定部152の各々)から通知された判定結果をPLC20へと出力する。また、通知制御部160は、移動時間テーブル180(押出時間テーブル181および引戻時間テーブル182)を参照し、移動時間の初期値(T10およびT20)を、PLC20を介してHMI60に出力し、移動時間の初期値をHMI60に表示させる。通知制御部160は、基準値(TH1およびTH2)を、PLC20を介してHMI60に出力し、基準値をHMI60に表示させる。
(記憶部の詳細)
記憶部170は、異常検出装置10が使用する各種データを格納する記憶装置である。なお、記憶部170は、異常検出装置10が実行する(1)制御プログラム、(2)OSプログラム、(3)異常検出装置10が有する各種機能を実行するためのアプリケーションプログラム、および、(4)該アプリケーションプログラムを実行するときに読み出す各種データを非一時的に記憶してもよい。上記の(1)〜(4)のデータは、例えば、ROM(read only memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(登録商標)(Electrically EPROM)、HDD(Hard Disc Drive)等の不揮発性記憶装置に記憶される。異常検出装置10は、図示しない一時記憶部を備えていてもよい。一時記憶部は、異常検出装置10が実行する各種処理の過程で、演算に使用するデータおよび演算結果等を一時的に記憶するいわゆるワーキングメモリであり、RAM(Random Access Memory)等の揮発性記憶装置で構成される。どのデータをどの記憶装置に記憶するのかについては、異常検出装置10の使用目的、利便性、コスト、または、物理的な制約等から適宜決定される。記憶部170はさらに移動時間テーブル180を格納している。
移動時間テーブル180には、更新制御部140によって、移動時間(押出時間T1および引戻時間T2)の初期値(T10およびT20)、最大値(T1MAXおよびT2MAX)、最小値(T1minおよびT2min)が格納される。移動時間テーブル180は、押出時間テーブル181と引戻時間テーブル182とを含む。
押出時間テーブル181には、第1更新制御部141によって、押出時間T1の初期値T10、押出時間T1の最大値T1MAX、および、押出時間T1の最小値T1minが格納される。引戻時間テーブル182には、第2更新制御部142によって、引戻時間T2の初期値T20、引戻時間T2の最大値T2MAX、および、引戻時間T2の最小値T2minが格納される。
(異常検出装置についての整理)
これまでに図1を用いて構成を説明してきた異常検出装置10について、その理解を容易にするため、以下のように整理しておく。すなわち、異常検出装置10は、圧力流体の供給によりピストン46(可動部)が変位するアクチュエータ40の異常を、ピストン46の移動時間(変位時間)を用いて検出する異常検出装置であって、計時部130と判定部150とを備えている。計時部130は、移動時間(具体的には、押出時間T1および引戻時間T2)として、「ピストン46がアクチュエータ40の第1端部42または第2端部43(一端)にある状態で、第2端部43または第1端部42(他端)への変位の制御指令(Push指令およびPull指令)が開始された時刻」から、「ピストン46が第2端部43または第1端部42へと到着した時刻」までの時間を計測する。判定部150は、「計時部130によって現在までに計測された前記移動時間の最大値(T1MAXおよびT2MAX)」から、「計時部130によって現在までに計測された前記移動時間の最小値(T1minおよびT2min)」を差し引いた値を、「アクチュエータ40の起動時点から所定時間経過した時点で計時部130によって計測された前記移動時間(つまり、初期値(T10およびT20))」によって除した値である特徴量(W1およびW2)を用いて、異常の有無を判定する。
前記の構成によれば、異常検出装置10は、最大値(T1MAXおよびT2MAX)から最小値(T1minおよびT2min)を差し引いた値を、初期値(T10およびT20)によって除した値である特徴量(W1およびW2)を用いて、アクチュエータ40の異常の有無を判定する。
一般に、圧力流体の供給によりピストン46が変位するアクチュエータ40について、ピストン46の前記移動時間は、アクチュエータ40の周囲の温度の影響を受ける。例えば、アクチュエータ40の周囲の温度が上昇すると前記移動時間は短くなる傾向があり、アクチュエータ40の周囲の温度が下降すると前記移動時間は長くなる傾向がある。また、前記移動時間は、アクチュエータ40の種類、負荷条件、設置位置、これまでの使用時間等によっても変動する。
そのため、前記移動時間について正常値を予め設定しておき、計測した前記移動時間と正常値とを比較して異常を判定する従来の方法には、以下の課題がある。すなわち、異常判定の精度を維持するためには、従来の方法は、アクチュエータ40の周囲の温度、アクチュエータ40の種類、負荷条件、設置位置、これまでの使用時間等といった種々の要因に応じて個別に、前記正常値を設定する必要がある。言い換えれば、従来の方法は、「周囲の温度、アクチュエータ40の種類等の条件」に応じて変動する前記移動時間に対応させて、「周囲の温度、アクチュエータ40の種類等の条件」に応じた適切な正常値を適宜設定しなければ、異常判定の精度を維持できない。
これに対して、異常検出装置10はアクチュエータ40の異常の有無を、最大値(T1MAXおよびT2MAX)から最小値(T1minおよびT2min)を差し引いた値を、初期値(T10およびT20)によって除した値である特徴量(W1およびW2)を用いて判定する。
ここで、周囲の温度変化に伴う前記移動時間の変動の大きさは、故障等の異常の発生に伴う前記移動時間の変動の大きさに比べて、十分に小さいと想定することができる。つまり、異常の発生の影響による前記移動時間の変動の大きさは、周囲の温度変化の影響による前記移動時間の変動の大きさに比べて、十分に大きい。
したがって、異常が発生した時点で計時される移動時間は、直前までに計測された(つまり、異常の発生していない、せいぜい周囲の温度変化の影響を受けたに過ぎない)移動時間の最大値(つまり、移動時間テーブル180に格納されている最大値)よりも大きくなり、または、直前までに計測された移動時間の最小値(つまり、移動時間テーブル180に格納されている最小値)よりも小さくなる。つまり、異常が発生すると、現在時点(=異常発生時点)で計時される移動時間が、最大値または最小値となり、言い換えれば、現在時点(=異常発生時点)で計時される移動時間によって、移動時間テーブル180の最大値または最小値が更新される。したがって、移動時間テーブル180の最大値と最小値の差を用いて算出される特徴量に、異常の発生が影響する。そのため、異常検出装置10は、移動時間テーブル180の最大値と最小値の差を用いて算出される特徴量によって、異常の発生の有無を判定することができる。
これに対して、周囲の温度変化の影響を受けた、現在の移動時間が、移動時間テーブル180の最大値以下、かつ、最小値以上である場合、移動時間テーブル180の最大値と最小値との差を用いる特徴量は、現在の移動時間によって変動しない。言い換えれば、移動時間テーブル180の最大値および最小値は、現在時点で計時される移動時間によって更新されず、したがって、移動時間テーブル180の最大値と最小値との差を用いる特徴量も変動しない。つまり、現在の移動時間が、移動時間テーブル180の最大値以下、かつ、最小値以上である場合、移動時間テーブル180の最大値と最小値との差を用いる特徴量において、周囲の温度変化の影響は無視される。
また、周囲の温度変化の影響を受けた、現在の移動時間が、移動時間テーブル180の最大値より大きく、または、前記最小値より小さい場合、移動時間テーブル180の最大値と最小値との差を用いる特徴量は、現在の移動時間によって変動する。しかしながら、周囲の温度変化の影響による特徴量の変動の大きさは、異常の発生の影響による特徴量の変動の大きさに比べて、十分に小さい。周囲の温度変化に伴う移動時間の変動の大きさは、故障等の異常の発生に伴う移動時間の変動の大きさに比べて、十分に小さいからである。
したがって、移動時間テーブル180の最大値と最小値との差を用いる特徴量において、周囲の温度変化の影響は、無視され、または、異常の発生の影響に比べて十分に小さなものとして無視することができる。
つまり、異常検出装置10は、移動時間テーブル180の最大値と最小値との差を用いる特徴量によって、「異常を原因とする移動時間の変動」を、「周囲の温度変化を原因とする移動時間の変動」から区別して、捉えることができるとの効果を奏する。
異常検出装置10は、初期値(T10およびT20)によって「最大値(T1MAXおよびT2MAX)と最小値(T1minおよびT2min)との差分」を除して無次元化した値を、アクチュエータ40の異常判定に用いる特徴量とする。つまり、異常検出装置10は、アクチュエータ40の種類等からの影響を受けない値を、アクチュエータ40の異常判定に用いる特徴量とする。
異常検出装置10は、「移動時間テーブル180の最大値と最小値との差分」を、移動時間テーブル180の初期値によって除して無次元化することによって、「最大値と最小値との差分」への、アクチュエータ40の種類等からの影響を無効化する。
したがって、異常検出装置10は、「最大値(T1MAXおよびT2MAX)と最小値(T1minおよびT2min)との差分」を初期値(T10およびT20)によって除して無次元化した特徴量を用いることによって、同一の指標で、様々な種類のアクチュエータ40の異常を判定することができるとの効果を奏する。
異常検出装置10において、ピストン46は、シリンダ41内を、押出方向、または、前記押出方向の逆方向である引戻方向に変位し、計時部130は、前記移動時間として、「ピストン46がアクチュエータ40の第1端部42(前記引戻方向側の端部)にある状態で、Push指令(前記押出方向への変位の指令)が開始された時刻」から、「ピストン46がアクチュエータ40の第2端部43(前記押出方向側の端部)へと到着した時刻」までの時間である押出時間T1を計測し、判定部150は、押出時間T1に係る特徴量W1を用いて、少なくとも、ピストン46に連結されたピストンロッド47とシリンダ41との間から前記圧力流体が漏れ出てしまうのを防ぐためのロッドパッキン49の異常の有無を判定する。
前記の構成によれば、異常検出装置10は、押出時間T1に係る特徴量W1を用いて、少なくともロッドパッキン49の異常の有無を判定する。ここで、ロッドパッキン49に破損等の異常が発生すると、ピストンロッド47とシリンダ41との間から前記圧力流体が漏れ出てしまうため、押出時間T1が短くなる(小さくなる)傾向がある。したがって、異常検出装置10は、押出時間T1に係る特徴量W1を用いて、少なくともロッドパッキン49の異常の有無を判定することができるとの効果を奏する。
異常検出装置10において、ピストン46は、シリンダ41内を、押出方向、または、前記押出方向の逆方向である引戻方向に変位し、計時部130は、前記移動時間として、「ピストン46がアクチュエータ40の第2端部43にある状態で、Pull指令(前記引戻方向への変位の指令)が開始された時刻」から、「ピストン46がアクチュエータ40の第1端部42へと到着した時刻」までの時間である引戻時間T2を計測し、判定部150は、引戻時間T2に係る特徴量W2を用いて、少なくとも、ピストン46とシリンダ41との間から前記圧力流体が漏れ出てしまうのを防ぐためのピストンパッキン48の異常の有無を判定する。
前記の構成によれば、異常検出装置10は、引戻時間T2に係る特徴量W2を用いて、少なくともピストンパッキン48の異常の有無を判定する。ここで、ピストンパッキン48に破損等の異常が発生すると、ピストン46とシリンダ41との間から前記圧力流体が漏れ出てしまうため、引戻時間T2が長くなる(大きくなる)傾向がある。したがって、異常検出装置10は、引戻時間T2に係る特徴量W2を用いて、少なくともピストンパッキン48の異常の有無を判定することができるとの効果を奏する。
異常検出装置10は、アクチュエータ40の起動時点から所定時間経過した時点で計時部130によって計測された前記移動時間(つまり、初期値(T10およびT20))を、ユーザに通知する通知制御部160をさらに備えている。前記の構成によれば、異常検出装置10は、初期値(T10およびT20)を、ユーザに通知することができるとの効果を奏する。
(移動時間について)
図3は、異常検出装置10(特に、計時部130)による「ピストン46の移動時間」の算出方法の一例を示す図であり、具体的には、押出時間T1および引戻時間T2の各々の算出方法の一例を示す図である。図3の縦軸は、スイッチ(第1スイッチ51および第2スイッチ52の各々)からの検知信号(第1検知信号および第2検知信号)、および、指令(Push指令およびPull指令の各々)のLevelを示している。また、図3の横軸は、時間(Time)を示しており、単位はms(ミリ秒)である。
(押出時間について)
第1計時部131は、「ピストン46が第1端部42に位置している状態において、PLC20が出力するPush指令の開始時刻」として、例えば図3に示すように、Push指令のLevelが「0(ロー)」から「1(ハイ)」に変化する時刻を検知する。第1計時部131は、「ピストン46が第1端部42に位置している状態において、PLC20が出力するPush指令の開始時刻」として、第1指令取得部111からPush指令を通知された時刻を検知してもよい。言い換えれば、第1計時部131は、第1指令取得部111から通知されるPush指令のLevelが「0(ロー)」から「1(ハイ)」に変化する時刻を検知してもよい。また、第1計時部131は、「ピストン46が第1端部42に位置している状態において、PLC20が出力するPush指令の開始時刻」として、第1指令取得部111が方向切替弁30にPush指令を出力する時刻を検知してもよい。言い換えれば、第1計時部131は、第1指令取得部111が方向切替弁30に出力するPush指令のLevelが「0(ロー)」から「1(ハイ)」に変化する時刻を検知してもよい。
第1計時部131は、「ピストン46が第2端部43へと到着した時刻」として、例えば図3に示すように、第2スイッチ52からの第2検知信号のLevelが「0(ロー)」から「1(ハイ)」に変化する時刻を検知する。第1計時部131は、「ピストン46が第2端部43へと到着した時刻」として、第2検知信号取得部122から第2検知信号を通知された時刻(または、第2検知信号取得部122が第2検知信号を取得した時刻)を検知してもよい。言い換えれば、第1計時部131は、第2検知信号取得部122から通知される(または、第2検知信号取得部122が第2スイッチ52から取得する)第2検知信号のLevelが「0(ロー)」から「1(ハイ)」に変化する時刻を検知してもよい。
第1計時部131は、押出時間T1を、図3に示すように、「ピストン46が第1端部42に位置している状態において、PLC20が出力するPush指令の開始時刻」から、「ピストン46が第2端部43へと到着した時刻」までの時間として、算出する。
(引戻時間について)
第2計時部132は、「ピストン46が第2端部43に位置している状態において、PLC20が出力するPull指令の開始時刻」として、例えば図3に示すように、Pull指令のLevelが「0(ロー)」から「1(ハイ)」に変化する時刻を検知する。第2計時部132は、「ピストン46が第2端部43に位置している状態において、PLC20が出力するPull指令の開始時刻」として、第2指令取得部112からPull指令を通知された時刻を検知してもよい。言い換えれば、第2計時部132は、第2指令取得部112から通知されるPull指令のLevelが「0(ロー)」から「1(ハイ)」に変化する時刻を検知してもよい。また、第2計時部132は、「ピストン46が第2端部43に位置している状態において、PLC20が出力するPull指令の開始時刻」として、第2指令取得部112が方向切替弁30にPull指令を出力する時刻を検知してもよい。言い換えれば、第2計時部132は、第2指令取得部112が方向切替弁30に出力するPull指令のLevelが「0(ロー)」から「1(ハイ)」に変化する時刻を検知してもよい。
第2計時部132は、「ピストン46が第1端部42へと到着した時刻」として、例えば図3に示すように、第1スイッチ51からの第1検知信号のLevelが「0(ロー)」から「1(ハイ)」に変化する時刻を検知する。第2計時部132は、「ピストン46が第1端部42へと到着した時刻」として、第1検知信号取得部121から第1検知信号を通知された時刻(または、第1検知信号取得部121が第1検知信号を取得した時刻)を検知してもよい。言い換えれば、第2計時部132は、第1検知信号取得部121から通知される(または、第1検知信号取得部121が第1スイッチ51から取得する)第1検知信号のLevelが「0(ロー)」から「1(ハイ)」に変化する時刻を検知してもよい。
第2計時部132は、引戻時間T2を、図3に示すように、「ピストン46が第2端部43に位置している状態において、PLC20が出力するPull指令の開始時刻」から、「ピストン46が第1端部42へと到着した時刻」までの時間として、算出する。
§3.動作例
(異常検出装置の実行する処理の全体概要)
図4は、異常検出装置10が実行する処理の概要を示すフロー図である。指令取得部110は、PLC20から制御指令(Push指令およびPull指令)を取得し、つまり、第1指令取得部111がPush指令を取得し、また、第2指令取得部112がPull指令を取得する(S110)。指令取得部110は、取得した制御指令を計時部130に通知し、つまり、第1指令取得部111がPush指令を計時部130に通知し、また、第2指令取得部112がPull指令を計時部130に通知する。
検知信号取得部120は、第1スイッチ51および第2スイッチ52の各々から検知信号(第1検知信号および第2検知信号)を取得する。つまり、第1検知信号取得部121が、第2スイッチ52から第2検知信号を取得し、また、第2検知信号取得部122が、第1スイッチ51から第1検知信号を取得する(S120)。検知信号取得部120は、取得した検知信号を計時部130に通知し、つまり、第1検知信号取得部121が第2検知信号を計時部130に通知し、また、第2検知信号取得部122が第1検知信号を計時部130に通知する。
計時部130は、指令取得部110から通知された制御指令(Push指令およびPull指令)により、「ピストン46の移動を指示する制御指令の開始時点」を算出する。また、計時部130は、検知信号取得部120から通知された検知信号(第1検知信号および第2検知信号)により、「ピストン46が、第1端部42または第2端部43へと到着した時点」を算出する。計時部130は、算出した「ピストン46の移動を指示する制御指令の開始時点」と「ピストン46が、第1端部42または第2端部43へと到着した時点」とから、移動時間(押出時間T1および引戻時間T2)を算出する。
すなわち、第1計時部131は、「ピストン46が第1端部42に位置している状態において、PLC20が出力するPush指令の開始時刻」から、「ピストン46が第2端部43へと到着した時刻」までの時間である押出時間T1を算出する。第2計時部132は、「ピストン46が第2端部43に位置している状態において、PLC20が出力するPull指令の開始時刻」から、「ピストン46が第1端部42へと到着した時刻」までの時間である引戻時間T2を算出する(S130)。計時部130(第1計時部131、および、第2計時部132)は、算出した移動時間(押出時間T1および引戻時間T2)を、更新制御部140に通知する。
更新制御部140は、移動時間テーブル180の更新処理を実行し、つまり、第1更新制御部141が押出時間テーブル更新処理を、第2更新制御部142が引戻時間テーブル更新処理を、実行する(S140)。押出時間テーブル更新処理および引戻時間テーブル更新処理の詳細については、図5を用いて後述する。
判定部150は、移動時間テーブル180(押出時間テーブル181および引戻時間テーブル182)を参照して、移動時間(押出時間T1および引戻時間T2)の初期値、最大値、および、最小値を用いて特徴量(W1およびW2)を算出する。
すなわち、第1判定部151は、押出時間テーブル181を参照して、数式1によって、つまり、最大値T1MAXから最小値T1minを差し引いた値を、初期値T10によって除することによって、特徴量W1を算出する。第2判定部152は、引戻時間テーブル182を参照して、数式2によって、つまり、最大値T2MAXから最小値T2minを差し引いた値を、初期値T20によって除することによって、特徴量W2を算出する(S150)。
判定部150は、算出した特徴量(W1およびW2)と基準値(TH1およびTH2)とを比較して、アクチュエータ40の破損等の異常の発生の有無を判定する(S160)。
すなわち、第1判定部151は、特徴量W1が基準値TH1以下であることを確認すると(S160でYes)、異常は発生していないと判定し、この判定結果を通知制御部160に通知する。通知制御部160は、第1判定部151から通知された「異常は発生していない」との判定結果をPLC20に通知する(S170)。
第1判定部151は、特徴量W1が基準値TH1よりも大きいことを確認すると(S160でNo)、少なくともロッドパッキン49について、破損等の異常が発生していると判定し、この判定結果を通知制御部160に通知する。通知制御部160は、第1判定部151から通知された「少なくともロッドパッキン49について、破損等の異常が発生している」との判定結果をPLC20に通知する(S180)。
第2判定部152は、特徴量W2が基準値TH2以下であることを確認すると(S160でYes)、異常は発生していないと判定し、この判定結果を通知制御部160に通知する。通知制御部160は、第2判定部152から通知された「異常は発生していない」との判定結果をPLC20に通知する(S170)。
第2判定部152は、特徴量W2が基準値TH2よりも大きいことを確認すると(S160でNo)、少なくともピストンパッキン48について、破損等の異常が発生していると判定し、この判定結果を通知制御部160に通知する。通知制御部160は、第2判定部152から通知された「少なくともピストンパッキン48について、破損等の異常が発生している」との判定結果をPLC20に通知する(S180)。
これまで図4を参照しながら説明してきた「異常検出装置10が実行する処理」は、以下のように整理することができる。すなわち、「異常検出装置10が実行する処理」は、圧力流体の供給によりピストン46(可動部)が変位するアクチュエータ40の異常を、ピストン46の移動時間(変位時間)を用いて検出する異常検出装置の制御方法であって、計時ステップ(S130)と、判定ステップ(S160)と、を含んでいる。計時ステップ(S130)において、前記移動時間(具体的には、押出時間T1および引戻時間T2)として、「ピストン46がアクチュエータ40の第1端部42または第2端部43(一端)にある状態で、第2端部43または第1端部42(他端)への変位の制御指令(Push指令およびPull指令)が開始された時刻」から、「ピストン46が第2端部43または第1端部42へと到着した時刻」までの時間が計測される。判定ステップ(S160)は、「計時ステップ(S130)にて現在までに計測された前記移動時間の最大値(T1MAXおよびT2MAX)」から、「計時ステップ(S130)にて現在までに計測された前記移動時間の最小値(T1minおよびT2min)」を差し引いた値を、「アクチュエータ40の起動時点から所定時間経過した時点で計時ステップ(S130)にて計測された前記移動時間(つまり、初期値(T10およびT20))」によって除した値である特徴量(W1およびW2)を用いて、異常の有無を判定する。
前記の方法によれば、前記制御方法は、最大値(T1MAXおよびT2MAX)から最小値(T1minおよびT2min)を差し引いた値を、初期値(T10およびT20)によって除した値である特徴量(W1およびW2)を用いて、アクチュエータ40の異常の有無を判定する。
一般に、圧力流体の供給によりピストン46が変位するアクチュエータ40について、ピストン46の前記移動時間は、アクチュエータ40の周囲の温度の影響を受ける。例えば、アクチュエータ40の周囲の温度が上昇すると前記移動時間は短くなる傾向があり、アクチュエータ40の周囲の温度が下降すると前記移動時間は長くなる傾向がある。また、前記移動時間は、アクチュエータ40の種類、負荷条件、設置位置、これまでの使用時間等によっても変動する。
そのため、前記移動時間について正常値を予め設定しておき、計測した前記移動時間と正常値とを比較して異常を判定する従来の方法には、以下の課題がある。すなわち、異常判定の精度を維持するためには、従来の方法は、アクチュエータ40の周囲の温度、アクチュエータ40の種類、負荷条件、設置位置、これまでの使用時間等といった種々の要因に応じて個別に、前記正常値を設定する必要がある。言い換えれば、従来の方法は、「周囲の温度、アクチュエータ40の種類等の条件」に応じて変動する前記移動時間に対応させて、「周囲の温度、アクチュエータ40の種類等の条件」に応じた適切な正常値を適宜設定しなければ、異常判定の精度を維持できない。
これに対して、前記制御方法は、アクチュエータ40の異常の有無を、最大値(T1MAXおよびT2MAX)から最小値(T1minおよびT2min)を差し引いた値を、初期値(T10およびT20)によって除した値である特徴量(W1およびW2)を用いて判定する。
ここで、周囲の温度変化に伴う前記移動時間の変動の大きさは、故障等の異常の発生に伴う前記移動時間の変動の大きさに比べて、十分に小さいと想定することができる。つまり、異常の発生の影響による前記移動時間の変動の大きさは、周囲の温度変化の影響による前記移動時間の変動の大きさに比べて、十分に大きい。
したがって、異常が発生した時点で計時される移動時間は、直前までに計測された(つまり、異常の発生していない、せいぜい周囲の温度変化の影響を受けたに過ぎない)移動時間の最大値(つまり、移動時間テーブル180に格納されている最大値)よりも大きくなり、または、直前までに計測された移動時間の最小値(つまり、移動時間テーブル180に格納されている最小値)よりも小さくなる。つまり、異常が発生すると、現在時点(=異常発生時点)で計時される移動時間が、最大値または最小値となり、言い換えれば、現在時点(=異常発生時点)で計時される移動時間によって、移動時間テーブル180の最大値または最小値が更新される。したがって、移動時間テーブル180の最大値と最小値の差を用いて算出される特徴量に、異常の発生が影響する。そのため、異常検出装置10は、移動時間テーブル180の最大値と最小値の差を用いて算出される特徴量によって、異常の発生の有無を判定することができる。
これに対して、周囲の温度変化の影響を受けた、現在の移動時間が、移動時間テーブル180の最大値以下、かつ、最小値以上である場合、移動時間テーブル180の最大値と最小値との差を用いる特徴量は、現在の移動時間によって変動しない。言い換えれば、移動時間テーブル180の最大値および最小値は、現在時点で計時される移動時間によって更新されず、したがって、移動時間テーブル180の最大値と最小値との差を用いる特徴量も変動しない。つまり、現在の移動時間が、移動時間テーブル180の最大値以下、かつ、最小値以上である場合、移動時間テーブル180の最大値と最小値との差を用いる特徴量において、周囲の温度変化の影響は無視される。
また、周囲の温度変化の影響を受けた、現在の移動時間が、移動時間テーブル180の最大値より大きく、または、前記最小値より小さい場合、移動時間テーブル180の最大値と最小値との差を用いる特徴量は、現在の移動時間によって変動する。しかしながら、周囲の温度変化の影響による特徴量の変動の大きさは、異常の発生の影響による特徴量の変動の大きさに比べて、十分に小さい。周囲の温度変化に伴う移動時間の変動の大きさは、故障等の異常の発生に伴う移動時間の変動の大きさに比べて、十分に小さいからである。
したがって、移動時間テーブル180の最大値と最小値との差を用いる特徴量において、周囲の温度変化の影響は、無視され、または、異常の発生の影響に比べて十分に小さなものとして無視することができる。
つまり、前記制御方法は、移動時間テーブル180の最大値と最小値との差を用いる特徴量によって、「異常を原因とする移動時間の変動」を、「周囲の温度変化を原因とする移動時間の変動」から区別して、捉えることができるとの効果を奏する。
前記制御方法は、初期値(T10およびT20)によって「最大値(T1MAXおよびT2MAX)と最小値(T1minおよびT2min)との差分」を除して無次元化した値を、アクチュエータ40の異常判定に用いる特徴量とする。つまり、前記制御方法は、アクチュエータ40の種類等からの影響を受けない値を、アクチュエータ40の異常判定に用いる特徴量とする。
前記制御方法は、「移動時間テーブル180の最大値と最小値との差分」を、移動時間テーブル180の初期値によって除して無次元化することによって、「最大値と最小値との差分」への、アクチュエータ40の種類等からの影響を無効化する。
したがって、前記制御方法は、「最大値(T1MAXおよびT2MAX)と最小値(T1minおよびT2min)との差分」を初期値(T10およびT20)によって除して無次元化した特徴量を用いることによって、同一の指標で、様々な種類のアクチュエータ40の異常を判定することができるとの効果を奏する。
(押出時間テーブル更新処理および引戻時間テーブル更新処理)
図5は、異常検出装置10が実行する押出時間テーブル更新処理および引戻時間テーブル更新処理の概要を示すフロー図である。押出時間テーブル更新処理は、第1更新制御部141によって実行され、引戻時間テーブル更新処理は、第2更新制御部142によって実行される。
更新制御部140は、移動時間テーブル180を参照して、初期値が格納済であるかを判定する。つまり、第1更新制御部141は、押出時間テーブル181に初期値T10が格納済であるかを判定し、第2更新制御部142は、引戻時間テーブル182に初期値T20が格納済であるかを判定する(S1410)。
移動時間テーブル180に初期値が格納されていないことを確認すると(S1410でNo)、更新制御部140は、計時部130の算出した移動時間を、移動時間テーブル180に、初期値として格納する。つまり、押出時間テーブル181に初期値T10が格納されていないことを確認すると、第1更新制御部141は、第1計時部131の算出した押出時間T1を、押出時間テーブル181に、初期値T10として格納する(S1420)。また、引戻時間テーブル182に初期値T20が格納されていないことを確認すると、第2更新制御部142は、第2計時部132の算出した引戻時間T2を、引戻時間テーブル182に、初期値T20として格納する(S1420)。
更新制御部140は、「計時部130の算出した移動時間が、移動時間テーブル180に格納されている最大値以下であるか」を判定する。つまり、第1更新制御部141は、「第1計時部131の算出した押出時間T1が、押出時間テーブル181に格納されている最大値T1MAX以下であるか」を判定する(S1430)。また、第2更新制御部142は、「第2計時部132の算出した引戻時間T2が、引戻時間テーブル182に格納されている最大値T2MAX以下であるか」を判定する(S1430)。
移動時間テーブル180に最大値が格納されていない場合、更新制御部140は、「計時部130の算出した移動時間は、移動時間テーブル180に格納されている最大値以下ではない(例えば、最大値より大きい)」と判定する。つまり、押出時間テーブル181に最大値T1MAXが格納されていない場合、第1更新制御部141は、「第1計時部131の算出した押出時間T1は、押出時間テーブル181に格納されている最大値T1MAX以下ではない」と判定する。また、引戻時間テーブル182に最大値T2MAXが格納されていない場合、第2更新制御部142は、「第2計時部132の算出した引戻時間T2は、引戻時間テーブル182に格納されている最大値T2MAX以下ではない」と判定する。
「計時部130の算出した移動時間が、移動時間テーブル180に格納されている最大値より大きい」と判定すると(S1430でNo)、更新制御部140は、計時部130の算出した移動時間によって、移動時間テーブル180の最大値を更新する。つまり、「第1計時部131の算出した押出時間T1が、押出時間テーブル181に格納されている最大値T1MAXより大きい」と判定すると(S1430でNo)、第1更新制御部141は、以下の処理を実行する。すなわち、第1更新制御部141は、第1計時部131の算出した押出時間T1によって、押出時間テーブル181の最大値T1MAXを更新する(S1440)。また、「第2計時部132の算出した引戻時間T2が、引戻時間テーブル182に格納されている最大値T2MAXより大きい」と判定すると(S1430でNo)、第2更新制御部142は、以下の処理を実行する。すなわち、第2更新制御部142は、第2計時部132の算出した引戻時間T2によって、引戻時間テーブル182の最大値T2MAXを更新する(S1440)。
押出時間テーブル181に最大値T1MAXが格納されていない場合、第1更新制御部141は、第1計時部131の算出した押出時間T1を、押出時間テーブル181に、最大値T1MAXとして格納する。また、引戻時間テーブル182に最大値T2MAXが格納されていない場合、第2更新制御部142は、第2計時部132の算出した引戻時間T2を、引戻時間テーブル182に、最大値T2MAXとして格納する。
更新制御部140は、「計時部130の算出した移動時間が、移動時間テーブル180に格納されている最小値以上であるか」を判定する。つまり、第1更新制御部141は、「第1計時部131の算出した押出時間T1が、押出時間テーブル181に格納されている最小値T1min以上であるか」を判定する(S1450)。また、第2更新制御部142は、「第2計時部132の算出した引戻時間T2が、引戻時間テーブル182に格納されている最小値T2min以上であるか」を判定する(S1450)。
移動時間テーブル180に最小値が格納されていない場合、更新制御部140は、「計時部130の算出した移動時間は、移動時間テーブル180に格納されている最小値以上ではない(例えば、最大値より小さい)」と判定する。つまり、押出時間テーブル181に最小値T1minが格納されていない場合、第1更新制御部141は、「第1計時部131の算出した押出時間T1は、押出時間テーブル181に格納されている最小値T1min以上ではない」と判定する。また、引戻時間テーブル182に最小値T2minが格納されていない場合、第2更新制御部142は、「第2計時部132の算出した引戻時間T2は、引戻時間テーブル182に格納されている最小値T2min以上ではない」と判定する。
「計時部130の算出した移動時間が、移動時間テーブル180に格納されている最小値より小さい」と判定すると(S1450でNo)、更新制御部140は、計時部130の算出した移動時間によって、移動時間テーブル180の最小値を更新する。つまり、「第1計時部131の算出した押出時間T1が、押出時間テーブル181に格納されている最小値T1minより小さい」と判定すると(S1450でNo)、第1更新制御部141は、以下の処理を実行する。すなわち、第1更新制御部141は、第1計時部131の算出した押出時間T1によって、押出時間テーブル181の最小値T1minを更新する(S1460)。また、「第2計時部132の算出した引戻時間T2が、引戻時間テーブル182に格納されている最小値T2minより小さい」と判定すると(S1450でNo)、第2更新制御部142は、以下の処理を実行する。すなわち、第2更新制御部142は、第2計時部132の算出した引戻時間T2によって、引戻時間テーブル182の最小値T2minを更新する(S1460)。
押出時間テーブル181に最小値T1minが格納されていない場合、第1更新制御部141は、第1計時部131の算出した押出時間T1を、押出時間テーブル181に、最小値T1minとして格納する。また、引戻時間テーブル182に最小値T2minが格納されていない場合、第2更新制御部142は、第2計時部132の算出した引戻時間T2を、引戻時間テーブル182に、最小値T2minとして格納する。
(移動時間と特徴量との関係について)
図6は、移動時間と特徴量との関係を示す図であり、特に、引戻時間T2と特徴量W2との関係を示す図である。押出時間T1と特徴量W1との関係も、図6に示すのと同様となる。図6の横軸は、ピストン46およびピストンロッド47の往復回数(Frame回数)を示し、縦軸は、紙面左側の縦軸が引戻時間T2(の値)を示しており、単位はμs(μ秒)である。紙面右側の縦軸は特徴量を示している。以下、図6を参照して、移動時間と特徴量との関係について説明し、また、アクチュエータ40の周囲の温度による移動時間への影響と、アクチュエータ40の故障等の異常による移動時間への影響との区別について説明する。
(周辺の温度変化による移動時間への影響)
アクチュエータ40において、方向切替弁30から供給される圧力流体(例えば、圧力気体)は熱膨張し、また、シリンダ41およびピストン46等も熱膨張するため、アクチュエータ40の動作は、アクチュエータ40の周囲の温度からの影響を受ける。すなわち、図6に示すように、アクチュエータ40に故障等の異常が発生していない段階でも、ピストン46(可動部)の移動時間(変位時間)である引戻時間T2(押出時間T1)は、アクチュエータ40の周囲の温度によって変動している。
アクチュエータ40の周囲の温度が変化しないという条件下では、すなわち、恒温条件下では、ピストン46の移動時間のみを監視して、アクチュエータ40の破損等の異常を検知することができるが、実際には、アクチュエータ40の周囲の温度は変化する。日時、季節、アクチュエータ40の周囲の装置の稼働状況等の影響によりアクチュエータ40の周囲の温度が変化する条件下では、ピストン46の移動時間の変動が、周囲の温度変化によるものか、アクチュエータ40の故障等の異常によるものかを区別できない。
異常検出装置10は、「異常を原因とする移動時間の変動量Der」が「周囲の温度変化を原因とする移動時間の変動量Dte」よりも大きいという条件の下で、移動時間の特徴量W2(W1)を用いることにより、変動量Derと変動量Dteとを区別する。異常検出装置10は、測定期間中に計時した、つまり、異常判定を開始してから現在までの間に計時した、移動時間の最大値と最小値の差を特徴量として用いることによって、変動量Derと変動量Dteとを区別する。以下、変動量Derと変動量Dteとの区別が可能となる理由について、詳細を説明する。
図6に示すように、「異常を原因とする移動時間の変動量Der」は、「周囲の温度変化を原因とする移動時間の変動量Dte」に比べて、十分に大きい。そして、移動時間の最大値と最小値の差を用いて算出される特徴量において、変動量Dteは無視できるほど小さいのに対して、変動量Derは十分に大きい。
すなわち、アクチュエータ40の故障等の異常が発生した場合に計時される移動時間は、変動量Derが十分に大きいため、異常発生前に計時された移動時間の最大値よりも大きくなり、または、異常発生前に計時された移動時間の最小値よりも小さくなる。そのため、異常が発生すると、移動時間の最大値または最小値は、異常が発生した場合に計時される移動時間によって更新され、つまり、異常発生時点(=現在時点)で計時される移動時間によって更新される。そして、変動量Derは十分に大きいため、更新後の「最大値から最小値を差し引いた値」は、更新前の(つまり、異常発生前の)「最大値から最小値を差し引いた値」に比べて、十分に大きい。つまり、「異常を原因とする移動時間の変動量Der」は、移動時間の最大値と最小値の差を用いて算出される特徴量においても無視されない。
これに対して、移動時間の最大値と最小値の差を用いて算出される特徴量において、「周囲の温度変化を原因とする移動時間の変動量Dte」は、十分に小さく、無視することができる。
例えば、現在時点で計時された移動時間(恒温条件下で計時されるであろう移動時間に、変動量Dteが加算された移動時間)が、現在時点までの最大値以下、かつ、最小値以上である場合、現在時点の移動時間によって最大値および最小値が更新されることはない。そのため、移動時間の最大値と最小値の差を用いて算出される特徴量は変動せず、つまり、特徴量において変動量Dteは無視される。
また、変動量Dteが加算された現在時点の移動時間によって最大値または最小値が更新される場合であっても、移動時間の最大値と最小値の差を用いて算出される特徴量について、更新前と更新後との間の変動は十分に小さい。すなわち、変動量Dteが加算された移動時間によって最大値または最小値が更新された場合の、更新前後での特徴量の変動は、変動量Derが加算された移動時間によって最大値または最小値が更新された場合の、更新前後での特徴量の変動に比べて、十分小さい。「異常を原因とする移動時間の変動量Der」は、「周囲の温度変化を原因とする移動時間の変動量Dte」に比べて、十分に大きいからである。
したがって、適切な基準値TH2(TH1)を設定することによって、変動量Dteの加算による特徴量の変動は無視して、変動量Derの加算による特徴量の変動のみを捉えることができる。つまり、移動時間の最大値と最小値の差を用いて算出される特徴量において、変動量Dteの影響を無視しつつ、変動量Derの影響を確実に捉えることができる。異常検出装置10は、移動時間の最大値と最小値の差を用いて算出される特徴量によって、「異常を原因とする移動時間の変動」を、「周囲の温度変化を原因とする移動時間の変動」から区別して、捉えることができる。
(アクチュエータの種類等と移動時間との関係)
ピストン46(可動部)の移動時間(変位時間)は、シリンダ41の径の大きさおよび長さなど、アクチュエータ40の種類等によって異なり、また、アクチュエータ40の負荷条件等によっても異なる。
そこで、異常検出装置10は、「移動時間の初期値」によって「移動時間の最大値と最小値の差分」を除して無次元化した値を、つまり、アクチュエータ40の種類等からの影響を受けない値を、アクチュエータ40の異常判定に用いる特徴量とする。「移動時間の最大値と最小値の差分」を、「移動時間の初期値」によって除して無次元化することによって、異常検出装置10は、「移動時間の最大値と最小値の差分」への、アクチュエータ40の種類等からの影響を無効化する。
異常検出装置10は、「移動時間の最大値と最小値の差分」を、「移動時間の初期値」によって除して無次元化した値である特徴量を、異常判定に用いる指標とすることによって、同一の指標で、様々な種類のアクチュエータ40の異常を判定することができる。
§4.変形例
(制御指令の開始時点の取得について)
異常検出装置10がPLC20からPush指令およびPull指令の各々を取得することは必須ではなく、異常検出装置10は、方向切替弁30がPush指令およびPull指令の各々を取得する時点を取得できればよい。例えば、方向切替弁30において、Push指令を取得する第1ソレノイド、および、Pull指令を取得する第2ソレノイドの各々に不図示のセンサ(第1切替センサおよび第2切替センサ)を設ける。そして、第1切替センサおよび第2切替センサの各々に、「第1ソレノイドおよび第2ソレノイドの各々による、Push指令およびPull指令の各々を取得」を検知させる。異常検出装置10は、第1切替センサおよび第2切替センサの各々の検知結果から、方向切替弁30がPush指令およびPull指令の各々を取得する時点を取得してもよい。すなわち、異常検出装置10は、第1切替センサの検知結果から、Push指令のLevelが「0(ロー)」から「1(ハイ)」に変化する時刻を取得してもよい。異常検出装置10は、第2切替センサの検知結果から、Pull指令のLevelが「0(ロー)」から「1(ハイ)」に変化する時刻を取得してもよい。
(異常検知システムの構成について)
これまで、PLC20が、異常検出装置10を介して、方向切替弁30、第1スイッチ51、および、第2スイッチ52の各々と接続する構成を説明してきたが、このような接続構成は、異常検出装置10およびPLC20の各々にとって必須ではない。PLC20が、方向切替弁30、第1スイッチ51、および、第2スイッチ52の各々と直接接続してもよい。また、異常検出装置10は、PLC20を介して、方向切替弁30(または、第1切替センサおよび第2切替センサの各々)、第1スイッチ51、および、第2スイッチ52の各々に接続してもよい。
例えば、異常検出装置10が、PLC20を介して、方向切替弁30、第1スイッチ51、および、第2スイッチ52の各々と接続する構成を採用してもよい。異常検出装置10は、PLC20から、Push指令のLevelが「0(ロー)」から「1(ハイ)」に変化する時刻、および、Pull指令のLevelが「0(ロー)」から「1(ハイ)」に変化する時刻の各々を取得してもよい。異常検出装置10は、PLC20を介して、第2検知信号のLevelが「0(ロー)」から「1(ハイ)」に変化する時刻、および、第1検知信号のLevelが「0(ロー)」から「1(ハイ)」に変化する時刻の各々を取得してもよい。
(異常検出装置の構成について)
これまで、異常検出装置10と、PLC20とが別個の装置である例を説明してきたが、異常検出装置10を、PLC20から独立した装置として構成することは必須ではなく、異常検出装置10を、PLC20に一体の装置として構成してもよい。
〔ソフトウェアによる実現例〕
異常検出装置10の制御ブロック(特に、指令取得部110、検知信号取得部120、計時部130、更新制御部140、判定部150、および、通知制御部160)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(CenTral Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、異常検出装置10は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)等を備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路等を用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。