しかしながら、上述のような従来のカウンタユニットには、パルス信号のパルス数(つまり、カウント値)を用いて計測した実測値と比較する目標値を増減することによって、アクチュエータへの出力のタイミングを調整するため、以下に示す問題点がある。すなわち、目標値を増減することで出力のタイミングを調整する従来のカウンタユニットは、調整可能なタイミングの幅をパルス信号の周期よりも小さくすることができず、パルス信号の周期が長いとタイミング誤差が大きくなるという問題があった。また、従来のカウンタユニットは、パルス信号の周期が変化した場合、周期の変化の前後で出力のタイミングを同一に維持しようとすると、実測値と比較する目標値の増減が必要となり、ユーザ利便性が低いという問題があった。以下、従来のカウンタユニットについて、図12および図13を参照しながら、その詳細を説明する。
(マウントアプリに係る従来例)
図12は、アクチュエータ40がワーク60に部品(マウント部材70)を取り付ける(マウントする)処理(以下、「マウントアプリ」とも称する)について、従来のカウンタユニットであるカウンタユニット98等が実行する処理を示す図である。図12の(A)、(B)、および(C)において、ワーク60は、コンベヤに載せられて、紙面左から紙面右の方向に一定速度で移動しているものとする。
図12の(A)に示すように、カウンタユニット98は、エンコーダ30からのパルス信号を用いて、つまり、カウント値を用いて、ワーク60の位置(実測値)を把握している。カウンタユニット98は、「ワーク60が開始位置(目標値)に到達した」と判定すると、マウント部材70を把持するアクチュエータ40への出力(比較一致出力)を実行する。
図12の(B)に示すように、カウンタユニット98からの出力を受信したアクチュエータ40は、ワーク60にマウント部材70を取り付ける。アクチュエータ40によってマウント部材70を取り付けられたワーク60は、図12の(C)に示すように、紙面左から紙面右の方向に一定速度でさらに移動していく。
ここで、図12の(D)に示すように、カウンタユニット98によって「ワーク60が開始位置に到達した」と判定された時点から、アクチュエータ40によってマウント部材70がワーク60へと取り付けられる時点までの間には、応答時間が必要とされる。応答時間とは、「回路応答に要する時間」と、「メカ応答に要する時間」とを含む時間であり、一定とみなすことができる。すなわち、「ワーク60の位置が開始位置に一致した」と判定してから、「一致した」と判定した時点でカウンタユニット98が実行した出力をアクチュエータ40が受け付けるまでには、回路応答に要する時間が必要となる。また、アクチュエータ40がカウンタユニット98からの出力を受信してから、アクチュエータ40がカウンタユニット98からの出力に対応する処理を実行するまでには、メカ応答に要する時間が必要となる。つまり、カウンタユニット98がアクチュエータ40への出力を実行してから、アクチュエータ40によってマウント部材70がワーク60へと取り付けられるまでには、メカ応答に要する時間が必要となる。
図12の(D)において、「マウント位置」とは、「ワーク60が開始位置に到達した」と判定された時点から応答時間が経過した時点における、ワーク60の位置であり、マウント部材70が取り付けられた時点の、ワーク60の位置である。
ここで、マウント部材70が取り付けられた時点の、実際のワーク60の位置が、マウント部材70を取り付ける時点での、理想的なワーク60の位置よりも、紙面右側にある場合、カウンタユニット98は、以下の処理を実行する。すなわち、カウンタユニット98は、元々の開始位置を紙面左側にずらした位置にワーク60が到達すると、アクチュエータ40への出力を実行して、アクチュエータ40に、ワーク60へのマウント部材70の取り付けを実行させる。元々の開始位置を紙面左側にずらした位置にワーク60が到達したのを契機として出力を実行することにより、カウンタユニット98は、マウント部材70が取り付けられる時点のワーク60の位置を、元々のマウント位置よりも紙面左側にずらすことができる。
元々の開始位置から「パルス信号の1周期分(つまり、1パルス周期)」に相当する距離をさかのぼった位置を、「修正開始位置(前方)」とすると、修正開始位置(前方)を用いることによって、カウンタユニット98は、以下の状態を実現することができる。すなわち、修正開始位置(前方)にワーク60が到達したのを契機として出力を実行することにより、カウンタユニット98は、マウント部材70が取り付けられる時点の、ワーク60の位置を、修正マウント位置(前方)に変更することができる。「修正マウント位置(前方)」は、カウンタユニット98が「ワーク60が修正開始位置(前方)に到達した」と判定した時点から応答時間が経過した時点における、ワーク60の位置である。パルス信号の周期(パルス周期)が一定の場合、「修正マウント位置(前方)」は、元々のマウント位置から「1パルス周期」に相当する距離をさかのぼった位置である。
同様に、マウント部材70が取り付けられた時点の、実際のワーク60の位置が、マウント部材70を取り付ける時点での、理想的なワーク60の位置よりも、紙面左側にある場合、カウンタユニット98は、以下の処理を実行する。すなわち、カウンタユニット98は、元々の開始位置を紙面右側にずらした位置にワーク60が到達すると、アクチュエータ40への出力を実行して、アクチュエータ40に、ワーク60へのマウント部材70の取り付けを実行させる。元々の開始位置を紙面右側にずらした位置にワーク60が到達したのを契機として出力を実行することにより、カウンタユニット98は、マウント部材70が取り付けられる時点のワーク60の位置を、元々のマウント位置よりも紙面右側にずらすことができる。
元々の開始位置から「パルス信号の1周期分(つまり、1パルス周期)」に相当する距離を進んだ位置を、「修正開始位置(後方)」とすると、修正開始位置(後方)を用いることによって、カウンタユニット98は、以下の状態を実現することができる。すなわち、修正開始位置(後方)にワーク60が到達したのを契機として出力を実行することにより、カウンタユニット98は、マウント部材70が取り付けられる時点の、ワーク60の位置を、修正マウント位置(後方)に変更することができる。「修正マウント位置(後方)」は、カウンタユニット98が「ワーク60が修正開始位置(後方)に到達した」と判定した時点から応答時間が経過した時点における、ワーク60の位置である。パルス信号の周期(パルス周期)が一定の場合、「修正マウント位置(後方)」は、元々のマウント位置から「1パルス周期」に相当する距離を進んだ位置である。
応答時間は一定とみなすことができるので、マウント部材70が取り付けられる時点のワーク60の位置は、カウンタユニット98が、アクチュエータ40へ、所定の出力を実行するタイミングに依存する。そして、カウンタユニット98は、ワークの位置(実測値)と比較する開始位置(目標値)を変化させることによって、マウント部材70が取り付けられる時点のワーク60の位置を、つまり、出力のタイミングを、調整する。
ここで、「パルス信号の1周期分(つまり、1パルス周期)」に相当する、ワーク60の移動距離は一定である。したがって、開始位置によって出力のタイミング(=マウント部材70が取り付けられる時点のワーク60の位置)を調整するカウンタユニット98は、ワーク60の位置について、「1パルス周期」に相当する距離の整数倍でしか調整することができない。
つまり、目標値を変更することで出力のタイミングを調整するカウンタユニット98は、調整可能なタイミングの幅をパルス信号の周期よりも小さくすることができず、パルス信号の周期が長いとタイミング誤差が大きくなる。また、カウンタユニット98は、パルス信号の周期が変化した場合、周期の変化の前後で出力のタイミングを同一に維持しようとすると、実測値と比較する目標値の変更が必要となり、ユーザ利便性が低い。
(液体充填アプリに係る従来例)
図13は、ワークに液体を充填する処理(以下、「液体充填アプリ」とも称する)について、従来技術を示す図である。図13の(A)に示すように、カウンタユニット98は、流量計31(パルス信号生成装置)からのパルス信号を用いて、つまり、カウント値を用いて、ワークに充填された液体の充填量(実測値)を把握している。
カウンタユニット98は、「ワークへ充填している液体の量(充填量、実測値)が、バルブ閉動作開始量(目標値)に到達した」と判定すると、バルブ41(アクチュエータ)への出力(比較一致出力)を実行する。つまり、カウンタユニット98は、「カウント値が、バルブ閉動作開始量に対応付けられて設定された比較カウント値に一致した」と判定すると、バルブ41への出力を実行して、バルブ41を閉じて、ワークへの液体の充填を停止させる。
ここで、図13の(B)に示すように、カウンタユニット98によって「充填量が、バルブ閉動作開始量に到達した」と判定された時点から、バルブ41が閉じて充填が停止される時点までの間には、応答時間が必要とされる。応答時間とは、「回路応答に要する時間」と、「メカ応答に要する時間」とを含む時間であり、一定とみなすことができる。すなわち、「カウント値と比較カウント値とが一致した」と判定してから、「一致した」と判定した時点でカウンタユニット98が実行した出力をバルブ41が受け付けるまでには、回路応答に要する時間が必要となる。また、バルブ41がカウンタユニット98からの出力を受信してから、バルブ41がカウンタユニット98からの出力に対応する処理を実行するまでには、メカ応答に要する時間が必要となる。つまり、カウンタユニット98がバルブ41への出力を実行してから、バルブ41が閉じて充填が停止されるまでには、メカ応答に要する時間が必要となる。
図13の(B)において、「カウント値が比較カウント値に一致した」と判定された時点から、応答時間が経過した時点における、ワークへの充填量を、充填量の実際値という意味で「充填量実際値」と称する。充填量実際値は、バルブ41が閉じて充填が停止された時点における、実際の充填量とも理解することができる。また、「充填量目標値」は、バルブ41が閉じて充填が停止された時点における、ワークへの所定の理想的な充填量を示している。
図13の(B)に示すように、充填量実際値が充填量目標値よりも大きく、つまり、充填量が多すぎる場合、カウンタユニット98は比較カウント値の値を小さくすることによって、充填量実際値の値を小さくする。
しかしながら、カウンタユニット98の「充填量を調整できる分解能」は、最大であっても、1パルス周期分の流量であり、つまり、カウンタユニット98は、「1パルス周期」に相当する流量の整数倍でしか、充填量実際値を調整することができない。その結果、図13の(B)に示すように、カウンタユニット98は、比較カウント値の値を小さくしたことによって、充填量目標値に満たない充填量しか充填できない(充填量実際値が充填量目標値に不足する)といったことが起こりうる。
応答時間は一定とみなすことができるので、バルブ41が閉じる時点のワークへの充填量は、カウンタユニット98が、バルブ41へ、所定の出力を実行するタイミングに依存する。そして、カウンタユニット98は、ワークへの充填量(実測値)と比較するバルブ閉動作開始量(目標値)を変化させることによって、充填量実際値を、つまり、出力のタイミングを、調整する。
ここで、「パルス信号の1周期分(つまり、1パルス周期)」に相当する、ワークへの充填量は一定である。したがって、バルブ閉動作開始量(目標値)によって出力のタイミング(=充填量実際値)を調整するカウンタユニット98は、充填量実際値について、「1パルス周期」に相当する充填量の整数倍でしか調整することができない。
つまり、目標値を変更することで出力のタイミングを調整するカウンタユニット98は、調整可能なタイミングの幅をパルス信号の周期よりも小さくすることができず、パルス信号の周期が長いとタイミング誤差が大きくなる。また、カウンタユニット98は、パルス信号の周期が変化した場合、周期の変化の前後で出力のタイミングを同一に維持しようとすると、実測値と比較する目標値の変更が必要となり、ユーザ利便性が低い。
図12および図13を参照しながら、その詳細を説明した従来のカウンタユニットは、以下のように整理することができる。すなわち、一般にカウンタユニットは、カウント値(パルス信号のパルス数)を用いて計測した実測値が目標値に一致したと判定すると、バルブなどアクチュエータへの制御を行い、つまり、アクチュエータへの所定の出力を実行する。
そして、カウンタユニットによって「実測値と目標値とが一致した」と判定された時点から、カウンタユニットからアクチュエータへの出力によって、その出力に対応するワークの状態が実現する時点までには、応答時間が必要となる。つまり、「実測値と目標値とが一致した」と判定されてから、ワークが所望の状態になるまでには、「回路応答に要する時間」と、「メカ応答に要する時間」との合計時間(応答時間)だけ、タイミング誤差が生じる。「応答時間」は、「遅延時間」と表現されることもある。
従来のカウンタユニットは、実測値と比較する(つまり、実測値との一致を判定する)目標値を増減することによって、タイミング誤差の影響を打ち消していた。しかしながら、目標値は、「1パルス周期」に相当する移動距離・充填量の整数倍でしか増減させることができず、つまり、従来のカウンタユニットには、出力タイミングの調整に係る分解能がパルス周期となるという問題がある。そのため、特に、パルス周期が長い場合、従来のカウンタユニットは、出力タイミングの精緻な調整ができず、タイミング誤差が大きくなってしまう。また、応答時間はパルス周期にかかわらず一定であるため、パルス周期が変化した場合、従来のカウンタユニットは、変化するパルス周期に併せて目標値を増減させなければ出力のタイミングを維持できず、ユーザ利便性が低いという問題がある。
本発明の一態様は、前記の問題点に鑑みてなされたものであり、パルス信号のパルス数を用いて計測した実測値と目標値とが一致したと判定すると実行する、アクチュエータへの出力のタイミングを、パルス信号の周期に依存せずに調整できるカウンタユニット等を実現することを目的としている。
上記の課題を解決するために、本発明の一態様に係るカウンタユニットは、パルス信号のパルス数をカウントして実測値を計測する計測部と、前記計測部により計測された前記実測値と目標値との一致を判定する比較部と、前記比較部により前記実測値と前記目標値とが一致したと判定されると、アクチュエータへの出力を実行する出力部と、を備え、前記出力部は、前記出力のタイミングを、前記比較部により前記実測値と前記目標値とが一致したと判定された時点から、タイミング調整値の示す、前記パルス信号の周期から独立した時間が経過した時点に調整する出力遅延部を含んでいる。
前記の構成によれば、前記カウンタユニットは、例えば、エンコーダまたは流量計のような、検出量に応じて前記パルス信号を生成するパルス信号生成装置から、前記パルス信号を入力として受け付け、受け付けた前記パルス信号から前記実測値を計測する。そして、前記カウンタユニットは、前記実測値と前記目標値とが一致したと判定すると、一致したと判定した時点から、前記タイミング調整値の示す、前記パルス信号の周期Tpから独立した時間が経過した時点で、前記出力を実行する。以下では、前記タイミング調整値は、「タイミング調整値Ta」とも称する。
従来、前記パルス信号のパルス数をカウントして計測した実測値と目標値とが一致したと判定すると、前記出力を実行するカウンタユニットについて、目標値を増減することにより、前記出力のタイミングを調整する技術が知られている。
ここで、目標値は、「パルス信号の周期(パルス周期Tp)」に相当する実測値の整数倍でしか増減させることができない。そのため、目標値のみによって出力のタイミングを調整する従来までのカウンタユニットは、出力タイミングの調整に係る分解能がパルス周期Tpに制限される。特に、パルス周期Tpが長い場合、従来までのカウンタユニットは、出力タイミングの精緻な調整ができず、タイミング誤差が大きくなってしまう。また、応答時間はパルス周期Tpにかかわらず一定であるため、パルス周期Tpが変化した場合、従来までのカウンタユニットは、変化するパルス周期Tpに併せて目標値を増減させなければ出力のタイミングを維持できず、ユーザ利便性が低い。
このような従来までのカウンタユニットに対して、前記カウンタユニットは、目標値に加えて、前記パルス信号の周期Tpから独立した時間(待機時間)を示す前記タイミング調整値Taを用いて、前記出力のタイミングを調整する。すなわち、前記カウンタユニットは、前記実測値と前記目標値とが一致したと判定した時点から、前記タイミング調整値Taの示す、前記パルス信号の周期Tpから独立した時間が経過した時点に、前記出力のタイミングを調整する。
したがって、前記カウンタユニットは、前記パルス信号の周期Tpに依存せずに、つまり、前記パルス信号の周期Tpから独立して、前記タイミング調整値Taを用いて、前記出力のタイミングを調整することができるとの効果を奏する。特に、前記タイミング調整値Taの示す時間は、前記パルス信号の周期Tpから独立しているので、パルス周期Tpが長い場合であっても、前記カウンタユニットは、前記出力のタイミングを精緻に調整することができる。また、前記カウンタユニットは、パルス周期Tpが変化した場合であっても、パルス周期Tpの変化分だけ前記タイミング調整値Taの値を変えるだけで、前記出力のタイミングを容易に調整することができ、ユーザ利便性が高い。
本発明の一態様に係るカウンタユニットにおいて、前記出力部は、ハードウェアによる論理回路で構成され、前記タイミング調整値の示す時間は、前記論理回路のクロックの整数倍であってもよい。
前記の構成によれば、前記カウンタユニットにおいて、前記出力部は、ハードウェアによる論理回路で構成される。例えば、前記出力部は、FPGA(Field Programmable Gate Array)、CPLD(Complex Programmable Logic Device)、および、ASIC(Application Specific Integrated Circuit)の少なくとも1つを用いて実現されてもよい。そして、前記カウンタユニットにおいて、前記タイミング調整値Taの示す時間は、前記論理回路のクロックの整数倍である。
ここで、前記出力部をハードウェアによる論理回路によって実現することで、前記出力部をソフトウェアによって実現する場合に比べて、遅延量をより小さくすることができる。つまり、前記出力部をハードウェアによる論理回路によって実現することで、前記出力部をソフトウェアによって実現する場合に比べて、前記タイミング調整値Taの示す時間(待機時間)について、より小さな値を設定することができる。また、前記出力部をハードウェアによる論理回路によって実現することで、前記出力部をソフトウェアによって実現する場合に比べて、遅延のばらつきを抑制することができる。
したがって、前記カウンタユニットは、前記実測値と前記目標値とが一致したと判定すると、前記出力部をソフトウェアによって実現する場合に比べて、より小さな待機時間で、前記アクチュエータへの出力を実行することができるとの効果を奏する。また、前記カウンタユニットは、前記出力部をソフトウェアによって実現する場合に比べて、遅延のばらつきを抑制することができるとの効果を奏する。
本発明の一態様に係るカウンタユニットは、所定の制御周期でON/OFFデータの入出力処理を実行する制御装置から、前記目標値と前記タイミング調整値とを受信する通信部をさらに備えてもよい。
前記の構成によれば、前記カウンタユニットは、前期制御装置から、前記目標値と前記タイミング調整値Taとを受信し、受信した前記目標値と前記タイミング調整値Taとを用いて、前記出力のタイミングを調整する。
ここで、前記カウンタユニットと前期制御装置との通信方式は、特に限定されない。前記カウンタユニットと前期制御装置とは、例えばフィールドネットワークを介して相互に通信可能に接続され、前記カウンタユニットは、フィールドネットワークを介して、前期制御装置から前記目標値と前記タイミング調整値Taとを受信してもよい。また、前記カウンタユニットは、前期制御装置と一体に形成されてもよく、つまり、内部バスを介して、前期制御装置と通信可能に接続されていてもよい。その場合、前記カウンタユニットは、内部バスを介して、前期制御装置から前記目標値と前記タイミング調整値Taとを受信してもよい。
例えば、前記カウンタユニットは、前記制御周期ごとに繰り返し前記目標値と前記タイミング調整値Taとを前期制御装置から受信し、受信した前記目標値と前記タイミング調整値Taとを用いて、前記出力のタイミングを調整する。
したがって、前記カウンタユニットは、自装置にて計測した前記実測値と、前期制御装置から受信した前記目標値とを比較し、また、前期制御装置から受信した前記タイミング調整値Taを用いて、前記出力のタイミングを調整することができるとの効果を奏する。つまり、ユーザは、前期制御装置が前記カウンタユニットに(例えば周期的に)送信する前記目標値と前記タイミング調整値Taとを用いて、前記出力のタイミングを調整することができる。
本発明の一態様に係るカウンタユニットにおいて、前記タイミング調整値は、前記カウンタユニットからの前記出力を受け付けた前記アクチュエータによって実現されたワークの実際の状態を示すフィードバック値を用いて更新されてもよい。
前記の構成によれば、前記カウンタユニットは、前記アクチュエータへの前記出力に係るフィードバック値を用いて適切な値に更新された前記タイミング調整値Taを用いて、前記出力のタイミングを高精度に調整することができるとの効果を奏する。
本発明の一態様に係るカウンタユニットにおいて、前記出力を受け付けた前記アクチュエータによって実現されるべき、前記ワークの所定の理想的な状態を示す基準値と、複数の前記フィードバック値を統計処理して算出した値との差異を用いて、前記タイミング調整値は更新されてもよい。
前記の構成によれば、前記カウンタユニットは、前記基準値と、複数の前記フィードバック値を統計処理して算出した値との差異を用いて適切な値に更新された前記タイミング調整値Taを用いて、前記出力のタイミングを調整する。
ここで、複数の前記フィードバック値を統計処理して算出した値を用いて前記タイミング調整値Taが更新されることによって、前記フィードバック値が一時的に異常値を示した場合にも、そのような異常値からの前記タイミング調整値Taへの影響は抑制される。
したがって、前記カウンタユニットは、前記フィードバック値が一時的に異常値を示した場合にも、そのような異常値からの影響を抑制して適切な値に更新された前記タイミング調整値Taを用いて、前記出力のタイミングを高精度に調整できるとの効果を奏する。
本発明の一態様に係る制御装置は、所定の制御周期でON/OFFデータの入出力処理を実行する制御装置であって、前記カウンタユニットからの前記出力を受け付けた前記アクチュエータによって実現されたワークの実際の状態を示す値を、前記出力に係るフィードバック値として用いて、前記タイミング調整値を更新する更新部を備え、前記更新部によって更新された前記タイミング調整値と前記目標値とを、前記カウンタユニットに送信してもよい。
前記の構成によれば、前記制御装置は、前記フィードバック値を用いて前記タイミング調整値Taを適切な値に更新し、更新した前記タイミング調整値Taと前記目標値とを、前記カウンタユニットに送信する。
したがって、前記制御装置は、適切な値に更新した前記タイミング調整値Taと前記目標値とを送信することによって、前記出力のタイミングを、前記パルス信号の周期Tpから独立した適切な時点に調整することができるとの効果を奏する。
ここで、前記制御装置は、例えば、撮像装置(カメラ)、各種のセンサ(具体的には、変位センサ、ロードセル、および、レーザー等を用いた距離計測装置など)等を用いて実現される状態検知装置から、前記フィードバック値を取得してもよい。また、前記制御装置は、前記カウンタユニットと一体に形成されもよい。
本発明の一態様に係る制御装置において、前記更新部は、前記出力を受け付けた前記アクチュエータによって実現されるべき、前記ワークの所定の理想的な状態を示す基準値と、複数の前記フィードバック値を統計処理して算出した値との差異を用いて、前記タイミング調整値を更新してもよい。
前記の構成によれば、前記制御装置は、前記基準値と、複数の前記フィードバック値を統計処理して算出した値との差異を用いて、前記出力のタイミングを調整するための前記タイミング調整値Taを、適切な値に更新する。
ここで、複数の前記フィードバック値を統計処理して算出した値を用いて前記タイミング調整値Taが更新されることによって、前記フィードバック値が一時的に異常値を示した場合にも、そのような異常値からの前記タイミング調整値Taへの影響は抑制される。
したがって、前記制御装置は、前記フィードバック値が一時的に異常値を示した場合にも、前記タイミング調整値Taを、そのような異常値からの影響を抑制した適切な値に更新することができるとの効果を奏する。
本発明の一態様に係る制御システムは、前記カウンタユニットと、前記制御装置と、前記カウンタユニットからの前記出力を受け付けた前記アクチュエータによって実現されたワークの実際の状態を検知し、検知した前記ワークの実際の状態を示す値を、前記フィードバック値として、前記制御装置に送信する状態検知装置と、を含んでもよい。
前記の構成によれば、前記制御システムは、前記カウンタユニットと、前記制御装置と、前記状態検知装置と、を含み、前記カウンタユニットは、前記更新部によって更新された前記タイミング調整値を用いて、前記出力のタイミングを調整する。
前記制御システムは、前記状態検知装置が検知した前記フィードバック値を用いて、前記タイミング調整値Taを適切な値に更新することができるとの効果を奏する。また、前記制御システムは、適切な値に更新された前記タイミング調整値Taを用いて、前記出力のタイミングを、前記パルス信号の周期Tpから独立したタイミングに調整することができるとの効果を奏する。
特に、前記タイミング調整値Taの示す時間は、前記パルス信号の周期Tpから独立しているので、パルス周期Tpが長い場合であっても、前記制御システムは、前記出力のタイミングを精緻に調整することができる。また、前記制御システムは、パルス周期Tpが変化した場合であっても、パルス周期Tpの変化分だけ前記タイミング調整値Taの値を変えるだけで、前記出力のタイミングを容易に調整することができ、ユーザ利便性が高い。
ここで、前記状態検知装置は、例えば、撮像装置(カメラ)、各種のセンサ(具体的には、変位センサ、ロードセル、および、レーザー等を用いた距離計測装置など)等を用いて実現することができる。また、前記カウンタユニットと前記制御装置とは一体に形成されてもよい。
本発明の一態様に係る制御システムにおいて、前記制御装置は、前記出力を受け付けた前記アクチュエータによって実現されるべき、前記ワークの所定の理想的な状態を示す基準値と、複数の前記フィードバック値を統計処理して算出した値との差異を用いて、前記タイミング調整値を更新してもよい。
前記の構成によれば、前記制御システムは、前記基準値と、複数の前記フィードバック値を統計処理して算出した値との差異を用いて更新される前記タイミング調整値Taを用いて、前記出力のタイミングを調整する。
ここで、複数の前記フィードバック値を統計処理して算出した値を用いて前記タイミング調整値Taが更新されることによって、前記フィードバック値が一時的に異常値を示した場合にも、そのような異常値からの前記タイミング調整値Taへの影響は抑制される。
したがって、前記制御システムは、前記フィードバック値が一時的に異常値を示した場合にも、そのような異常値からの影響を抑制して適切な値に更新された前記タイミング調整値Taを用いて、前記出力のタイミングを高精度に調整できるとの効果を奏する。
上記の課題を解決するために、本発明の一態様に係るカウンタユニットの制御方法は、パルス信号のパルス数をカウントして実測値を計測する計測ステップと、前記計測ステップにて計測された前記実測値と目標値との一致を判定する比較ステップと、前記比較ステップにて前記実測値と前記目標値とが一致したと判定されると、アクチュエータへの出力を実行する出力ステップと、を含み、前記出力ステップは、前記出力のタイミングを、前記比較ステップにて前記実測値と前記目標値とが一致したと判定された時点から、タイミング調整値の示す、前記パルス信号の周期から独立した時間が経過した時点に調整する出力遅延ステップを含んでいる。
前記の構成によれば、前記制御方法は、例えば、エンコーダまたは流量計のような、検出量に応じて前記パルス信号を生成するパルス信号生成装置から、前記パルス信号を入力として受け付け、受け付けた前記パルス信号から前記実測値を計測する。そして、前記制御方法は、前記実測値と前記目標値とが一致したと判定すると、一致したと判定した時点から、前記タイミング調整値の示す、前記パルス信号の周期Tpから独立した時間が経過した時点で、前記出力を実行する。以下では、前記タイミング調整値は、「タイミング調整値Ta」とも称する。
従来、前記パルス信号のパルス数をカウントして計測した実測値と目標値とが一致したと判定すると、前記出力を実行するカウンタユニットについて、目標値を増減することにより、前記出力のタイミングを調整する技術が知られている。
ここで、目標値は、「パルス信号の周期(パルス周期Tp)」に相当する実測値の整数倍でしか増減させることができない。そのため、目標値のみによって出力のタイミングを調整する従来までのカウンタユニットは、出力タイミングの調整に係る分解能がパルス周期Tpに制限される。特に、パルス周期Tpが長い場合、従来までのカウンタユニットは、出力タイミングの精緻な調整ができず、タイミング誤差が大きくなってしまう。また、応答時間はパルス周期Tpにかかわらず一定であるため、パルス周期Tpが変化した場合、従来までのカウンタユニットは、変化するパルス周期Tpに併せて目標値を増減させなければ出力のタイミングを維持できず、ユーザ利便性が低い。
このような従来までのカウンタユニットに対して、前記制御方法は、目標値に加えて、前記パルス信号の周期Tpから独立した時間(待機時間)を示す前記タイミング調整値Taを用いて、前記出力のタイミングを調整する。すなわち、前記制御方法は、前記実測値と前記目標値とが一致したと判定した時点から、前記タイミング調整値Taの示す、前記パルス信号の周期Tpから独立した時間が経過した時点に、前記出力のタイミングを調整する。
したがって、前記制御方法は、前記パルス信号の周期Tpに依存せずに、つまり、前記パルス信号の周期Tpから独立して、前記タイミング調整値Taを用いて、前記出力のタイミングを調整することができるとの効果を奏する。特に、前記タイミング調整値Taの示す時間は、前記パルス信号の周期Tpから独立しているので、パルス周期Tpが長い場合であっても、前記制御方法は、前記出力のタイミングを精緻に調整することができる。また、前記制御方法は、パルス周期Tpが変化した場合であっても、パルス周期Tpの変化分だけ前記タイミング調整値Taの値を変えるだけで、前記出力のタイミングを容易に調整することができ、ユーザ利便性が高い。
本発明の一態様によれば、カウンタユニットは、アクチュエータへの出力のタイミングを、パルス信号の周期に依存せずに調整することができるとの効果を奏する。
〔実施形態1〕
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図1から図13に基づいて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。本実施の形態においては、例えばカウンタユニット10をカウンタユニットの典型例として説明を行う。本発明の一態様に係るカウンタユニット10についての理解を容易にするため、先ず、カウンタユニット10を含む制御システム1の概要を、図2を用いて説明する。
§1.適用例
(制御システムの全体概要)
図2は、カウンタユニット10を含む制御システム1の全体概要を示す図である。図2の(A)に示すように、制御システム1は、カウンタユニット10と、制御装置(コントローラ)であるPLC(Programmable Logic Controller)20と、を含んでいる。図2の(A)に示すように、制御システム1は、さらに、エンコーダ30等の、パルス信号を生成するセンサ(パルス信号生成装置)と、アクチュエータ40とを含んでいてもよい。
カウンタユニット10は、例えばフィールドネットワークを介して、PLC20と通信可能に接続され、PLC20との間で、一定の通信周期ごとに、具体的には、PLC20の制御周期ごとに、データを送受信する。例えば、カウンタユニット10は、PLC20から、PLC20の制御周期ごとに、目標値およびタイミング調整値Taを受信し、また、PLC20へ、PLC20の制御周期ごとに、カウント値を用いて把握したワーク60の位置を示す情報を送信する。
また、カウンタユニット10は、エンコーダ30およびアクチュエータ40の各々と通信可能に接続されている。カウンタユニット10は、エンコーダ30から、エンコーダ30が生成したパルス信号(パルス波)を入力として受け付け、受け付けたパルス信号のパルス数をカウントして、つまりカウント値を用いて、ワーク等の状態を計測する。カウンタユニット10は、例えば、コンベヤに取り付けられたエンコーダ30からのパルス信号からコンベヤの移動距離を算出し、つまり、コンベヤの上のワークの位置を把握する。以下の説明においては、カウンタユニット10がパルス信号のパルス数をカウントして計測する「ワーク等の状態(例えば、ワーク等の位置、大きさ、重さなど)」を「実測値」とも称する。
カウンタユニット10は、コンベヤの移動距離が、つまり、ワーク60の位置が、PLC20から受信した目標値に一致すると、以下の処理を実行する。すなわち、カウンタユニット10は、ワーク60の位置が目標値に一致したと判定した時点から、PLC20から受信したタイミング調整値Taによって示される時間待機してから、アクチュエータ40へ、所定の信号を出力する。以下の説明においては、実測値と目標値とが一致したと判定したカウンタユニット10が実行する、アクチュエータ40への所定の信号の出力を「比較一致出力」とも称する。カウンタユニット10は、実測値と目標値とが一致したと判定すると、例えば、アクチュエータ40に、ワーク60の位置が目標値に一致したことを示す信号を出力する。
カウンタユニット10は、アクチュエータ40に所定の信号を出力することによって、アクチュエータ40に所定の処理(動作)を、つまり、所定の信号に対応する処理を、実行させる。特に、カウンタユニット10は、アクチュエータ40への出力のタイミングを調整することによって、アクチュエータ40が所定の処理を実行するタイミングを調整し、つまり、所望のタイミングでワークの状態を所望の状態にする。
PLC20は、制御システム1全体を制御する制御装置(コントローラ)であり、カウンタユニット10と通信可能に接続されている。PLC20には、例えば、不図示の表示部および操作部が接続されてもよい。表示部は、画像を表示可能な液晶パネル等で構成され、また、操作部は、典型的には、タッチパネル、キーボード、マウス等で構成される。
PLC20は、アクチュエータ40が所定のタイミングで所定の処理するように、カウンタユニット10へ、目標値およびタイミング調整値Taを送信し、特に、目標値およびタイミング調整値Taを一定の通信周期ごとにカウンタユニット10へ送信する。
エンコーダ30は、例えば、コンベヤに取り付けられ、コンベヤの移動量に応じて、つまり、ワーク60の移動量に応じて、パルス信号を生成する。エンコーダ30は、コンベヤ(つまり、ワーク60)が所定量移動するごとに、パルス波をカウンタユニット10に出力する。
アクチュエータ40は、カウンタユニット10と接続している。アクチュエータ40は、カウンタユニット10からの出力を受け付けると、所定の動作(例えば、アクチュエータ40が把持している部品を、ワーク60に取り付ける動作)を実行する。
図2の(B)に示すように、すなわち、「実測値と目標値とが一致した」と判定してから、「一致した」と判定した時点でカウンタユニット10が実行した出力をアクチュエータ40が受け付けるまでには、回路応答に要する時間が必要となる。つまり、アクチュエータ40がカウンタユニット10からの出力を受信できる時点は、カウンタユニット10が「実測値と目標値とが一致した」と判定した時点から、回路応答に要する時間が経過した時点以降の時点となる。
また、アクチュエータ40がカウンタユニット10からの出力に対応する処理を実行する時点と、アクチュエータ40がカウンタユニット10からの出力を受信した時点との間には、メカ応答に要する時間が必要となる。つまり、アクチュエータ40がカウンタユニット10からの出力に対応する処理を実行できるのは、アクチュエータ40がカウンタユニット10からの出力を受信した時点から、メカ応答に要する時間が経過した時点以降の時点となる。
そのため、アクチュエータ40がカウンタユニット10からの出力に対応する処理を実行できる時点は、最も早くとも、カウンタユニット10が「実測値と目標値とが一致した」と判定した時点から、図2の(B)の「応答時間」が経過した時点となる。図2の(B)の「応答時間」とは、「回路応答に要する時間」と、「メカ応答に要する時間」との合計値であり、「遅延」とも称される。
つまり、「実測値と目標値とが一致した」と判定してからアクチュエータ40への出力を実行したのでは、カウンタユニット10は、目標値の時点(=実測値が目標値に一致した時点)でアクチュエータ40に所定の処理を実行させることができない。
そこで、制御システム1は、目標値の時点でアクチュエータ40に所定の処理を実行させるために、実測値との一致が判定される値を「修正目標値」に変更し、また、「タイミング調整値Ta」を用いて、カウンタユニット10に待機処理を実行させる。
すなわち、「実測値と修正目標値とが一致した」と判定すると、カウンタユニット10は、タイミング調整値Taによって示される時間待機してから、アクチュエータ40への出力を実行する。つまり、カウンタユニット10は、「実測値と修正目標値とが一致した」と判定した時点から、タイミング調整値Taによって示される時間が経過した時点で、アクチュエータ40への出力を実行する。
これによって、アクチュエータ40がカウンタユニット10からの出力を受信する時点は、「実測値と修正目標値とが一致した」と判定された時点から、タイミング調整値Taによって示される時間と回路応答に要する時間との合計時間が経過した時点となる。さらに、アクチュエータ40がカウンタユニット10からの出力に対応する処理を実行する時点は、アクチュエータ40がカウンタユニット10からの出力を受信した時点から、メカ応答に要する時間が経過した時点である。
したがって、カウンタユニット10が「実測値と修正目標値とが一致した」と判定した時点から、タイミング調整値Taによって示される時間と応答時間との合計時間が経過した時点において、アクチュエータ40は、所定の処理を実行する。つまり、図2の(B)に示すように、アクチュエータ40は、目標値の時点で所定の処理を実行する。
以上に説明したように、制御システム1は、カウンタユニット10の比較一致出力の実行タイミングを、カウンタユニット10とPLC20との間の定周期通信(サイクリック通信)によって調整することができる。つまり、カウンタユニット10は、PLC20から周期的に受信する目標値(修正目標値)とタイミング調整値Taとを用いて、アクチュエータ40への比較一致出力の実行タイミングを調整する。具体的には、カウンタユニット10は、パルス信号を用いて計測した実測値が目標値(修正目標値)に一致したと判定した時点から、タイミング調整値Taによって示される時間が経過した時点を、比較一致出力の実行タイミングとする。
ここで、図12および図13に示す従来のカウンタユニットは、実測値と比較する(つまり、実測値との一致を判定する)目標値のみによって、タイミング調整値Taを用いずに、比較一致出力の実行タイミングを調整する。そして、目標値は、「1パルス周期Tp(パルス信号の1周期)」に相当する実測値(移動距離・充填量)の整数倍でしか増減させることができない。そのため、従来のカウンタユニットには、比較一致出力の実行タイミングの調整に係る分解能がパルス周期Tpとなる。
これに対して、カウンタユニット10は、目標値に加えて、PLC20から受信したタイミング調整値Taを用いて、比較一致出力の実行タイミングを調整する。そして、タイミング調整値Taは、パルス信号の周期Tpとは無関係である。したがって、カウンタユニット10は、パルス信号の周期Tpに依存せずに、つまり、パルス信号の周期Tpから独立して、比較一致出力タイミングを調整できるので、比較一致出力タイミングについて、高精度の制御が可能になる。
ここで、図2を用いて説明した制御システム1において、カウンタユニット10は、エンコーダ30からのパルス信号を用いて計測したワークの位置(実測値)が所定の位置(目標値)に一致したと判定すると、アクチュエータ40への出力を実行する。
しかしながら、カウンタユニット10がパルス信号を用いて計測するワークの状態は、ワークの位置に限られるものではない。カウンタユニット10は、例えば、パルス信号生成装置である流量計からのパルス信号を用いて、ワークに充填される液体の充填量(実測値)を計測してもよい。カウンタユニット10は、パルス信号を用いて計測したワークへの充填量が所定の充填量(目標値に対応する充填量)に一致したと判定すると、ワークに液体を充填するバルブ等のアクチュエータ40へ、所定の信号の出力を実行してもよい。
例えば、液体を流す流路である配管と、配管に連結され、充填用液体の充填速度を制御可能なバルブ(アクチュエータ)との間に、管路内の液体の流量に比例したパルス出力信号を出力する流量計を配置する。カウンタユニット10は、流量計からのパルス信号のパルス数をカウントして、バルブの開閉により制御された液体を受ける被充填容器であるワークへの充填量(実測値)を計測する。ワークへの充填量が所定の充填量(目標値に対応する充填量)に一致したと判定すると、カウンタユニット10は、バルブへ所定の信号を出力してバルブを閉じさせ、ワークへの液体の充填を停止させる。特に、カウンタユニットは、ワークへの充填量が所定の充填量に一致したと判定すると、その時点からタイミング調整値Taによって示される時間が経過した時点を、バルブへの比較一致出力の実行タイミングとする。
§2.構成例
これまでに図2を用いて概要を説明してきた制御システム1について、以下にその詳細を説明する。図1等を用いて詳細を説明する制御システム1(特に、カウンタユニット10およびPLC20)について、最初に概要を整理しておけば、以下の通りである。
すなわち、カウンタユニット10は、パルス信号のパルス数をカウントして実測値を計測する計測部130と、計測部130により計測された前記実測値と目標値との一致を判定する判定部140(比較部)と、判定部140により前記実測値と前記目標値とが一致したと判定されると、アクチュエータ40への出力(比較一致出力)を実行する出力部150と、を備える。出力部150は、前記出力のタイミングを、判定部140により前記実測値と前記目標値とが一致したと判定された時点から、タイミング調整値Taの示す、パルス信号の周期Tpから独立した時間が経過した時点に調整する出力遅延部160を含んでいる。
前記の構成によれば、カウンタユニット10は、例えば、エンコーダ30または流量計のような、検出量に応じて前記パルス信号を生成するパルス信号生成装置から、前記パルス信号を入力として受け付け、受け付けた前記パルス信号から前記実測値を計測する。そして、カウンタユニット10は、前記実測値と前記目標値とが一致したと判定すると、一致したと判定した時点から、前記タイミング調整値Taの示す、前記パルス信号の周期Tpから独立した時間が経過した時点で、前記出力を実行する。
従来、前記パルス信号のパルス数をカウントして計測した実測値と目標値とが一致したと判定すると、前記出力を実行するカウンタユニットについて、目標値を増減することにより、前記出力のタイミングを調整する技術が知られている。
ここで、目標値は、「パルス信号の周期(パルス周期Tp)」に相当する実測値の整数倍でしか増減させることができない。そのため、目標値のみによって出力のタイミングを調整する従来までのカウンタユニットは、出力タイミングの調整に係る分解能がパルス周期Tpに制限される。特に、パルス周期Tpが長い場合、従来までのカウンタユニットは、出力タイミングの精緻な調整ができず、タイミング誤差が大きくなってしまう。また、応答時間はパルス周期Tpにかかわらず一定であるため、パルス周期Tpが変化した場合、従来までのカウンタユニットは、変化するパルス周期Tpに併せて目標値を増減させなければ出力のタイミングを維持できず、ユーザ利便性が低い。
このような従来までのカウンタユニットに対して、カウンタユニット10は、目標値に加えて、前記パルス信号の周期Tpから独立した時間(待機時間)を示す前記タイミング調整値Taを用いて、前記出力のタイミングを調整する。すなわち、カウンタユニット10は、前記実測値と前記目標値とが一致したと判定した時点から、前記タイミング調整値Taの示す、前記パルス信号の周期Tpから独立した時間が経過した時点に、前記出力のタイミングを調整する。
したがって、カウンタユニット10は、前記パルス信号の周期Tpに依存せずに、つまり、前記パルス信号の周期Tpから独立して、前記タイミング調整値Taを用いて、前記出力のタイミングを調整することができるとの効果を奏する。特に、前記タイミング調整値Taの示す時間は、前記パルス信号の周期Tpから独立しているので、パルス周期Tpが長い場合であっても、カウンタユニット10は、前記出力のタイミングを精緻に調整することができる。また、カウンタユニット10は、パルス周期Tpが変化した場合であっても、パルス周期Tpの変化分だけ前記タイミング調整値Taの値を変えるだけで、前記出力のタイミングを容易に調整することができ、ユーザ利便性が高い。
カウンタユニット10において、出力部150は、ハードウェアによる論理回路で構成され、前記タイミング調整値Taの示す時間は、前記論理回路のクロックの整数倍である。
前記の構成によれば、カウンタユニット10において、出力部150は、ハードウェアによる論理回路で構成される。例えば、出力部150は、FPGA(Field Programmable Gate Array)、CPLD(Complex Programmable Logic Device)、および、ASIC(Application Specific Integrated Circuit)の少なくとも1つを用いて実現されてもよい。そして、カウンタユニット10において、前記タイミング調整値Taの示す時間は、前記論理回路のクロックの整数倍である。
ここで、出力部150をハードウェアによる論理回路によって実現することで、出力部150をソフトウェアによって実現する場合に比べて、遅延量をより小さくすることができる。つまり、出力部150をハードウェアによる論理回路によって実現することで、出力部150をソフトウェアによって実現する場合に比べて、前記タイミング調整値Taの示す時間(待機時間)について、より小さな値を設定することができる。また、出力部150をハードウェアによる論理回路によって実現することで、出力部150をソフトウェアによって実現する場合に比べて、遅延のばらつきを抑制することができる。
したがって、カウンタユニット10は、前記実測値と前記目標値とが一致したと判定すると、出力部150をソフトウェアによって実現する場合に比べて、より小さな待機時間で、アクチュエータ40への出力を実行することができるとの効果を奏する。また、カウンタユニット10は、出力部150をソフトウェアによって実現する場合に比べて、遅延のばらつきを抑制することができるとの効果を奏する。
カウンタユニット10は、所定の制御周期でON/OFFデータの入出力処理を実行するPLC20(制御装置)から、前記目標値と前記タイミング調整値Taとを受信する通信部110をさらに備えている。
前記の構成によれば、カウンタユニット10は、PLC20から、前記目標値と前記タイミング調整値Taとを受信し、受信した前記目標値と前記タイミング調整値Taとを用いて、前記出力(比較一致出力)のタイミングを調整する。
ここで、カウンタユニット10とPLC20との通信方式は、特に限定されない。カウンタユニット10とPLC20とは、例えばフィールドネットワークを介して相互に通信可能に接続され、カウンタユニット10は、フィールドネットワークを介して、PLC20から前記目標値と前記タイミング調整値Taとを受信してもよい。また、カウンタユニット10は、PLC20と一体に形成されてもよく、つまり、内部バスを介して、PLC20と通信可能に接続されていてもよい。その場合、カウンタユニット10は、内部バスを介して、PLC20から前記目標値と前記タイミング調整値Taとを受信してもよい。
例えば、カウンタユニット10は、前記制御周期ごとに繰り返し前記目標値と前記タイミング調整値TaとをPLC20から受信し、受信した前記目標値と前記タイミング調整値Taとを用いて、前記出力のタイミングを調整する。
したがって、カウンタユニット10は、自装置にて計測した前記実測値と、PLC20から受信した前記目標値とを比較し、また、PLC20から受信した前記タイミング調整値Taを用いて、前記出力のタイミングを調整することができるとの効果を奏する。つまり、ユーザは、PLC20がカウンタユニット10に(例えば周期的に)送信する前記目標値と前記タイミング調整値Taとを用いて、前記出力のタイミングを調整することができる。
前記タイミング調整値Taは、「カウンタユニット10からの前記出力(比較一致出力)を受け付けたアクチュエータ40によって実現されたワーク60等の実際の状態を示すフィードバック値」を用いて更新された値である。
前記の構成によれば、カウンタユニット10は、アクチュエータ40への前記出力に係るフィードバック値を用いて適切な値に更新された前記タイミング調整値Taを用いて、前記出力のタイミングを高精度に調整することができるとの効果を奏する。
前記タイミング調整値Taは、「前記出力を受け付けたアクチュエータ40によって実現されるべき、ワーク60等の所定の理想的な状態を示す基準値」と、複数の前記フィードバック値を統計処理して算出した値との差異を用いて、更新された値である。
前記の構成によれば、カウンタユニット10は、前記基準値と、複数の前記フィードバック値を統計処理して算出した値との差異を用いて適切な値に更新された前記タイミング調整値Taを用いて、前記出力のタイミングを調整する。
ここで、複数の前記フィードバック値を統計処理して算出した値を用いて前記タイミング調整値Taが更新されることによって、前記フィードバック値が一時的に異常値を示した場合にも、そのような異常値からの前記タイミング調整値Taへの影響は抑制される。
したがって、カウンタユニット10は、前記フィードバック値が一時的に異常値を示した場合にも、そのような異常値からの影響を抑制して適切な値に更新された前記タイミング調整値Taを用いて、前記出力のタイミングを高精度に調整できるとの効果を奏する。
これまでに概要を説明したカウンタユニット10等について、次に、その構成の詳細について図1を参照しながら説明し、その後、カウンタユニット10等が実行する処理について、図3を参照しながら説明していく。
(カウンタユニットの詳細)
図1は、制御システム1に含まれる、カウンタユニット10等の要部構成を示すブロック図である。図1に示すように、カウンタユニット10は、アクチュエータに実行させる所定の動作について、その実行タイミングを調整する装置であって、機能ブロックとして、通信部110、設定部120、計測部130、判定部140、および、出力部150を備える。
通信部110は、PLC20から、目標値とタイミング調整値Taとを受信し、特に、PLC20の制御周期ごとに繰り返し、PLC20から、目標値とタイミング調整値Taとを受信する。通信部110は、PLC20から受信した目標値とタイミング調整値Taとを設定部120に通知する。
通信部110は、例えば、通信IC(Integrated Circuits)などの集積回路を用いて実現される。具体的には、通信部110は、FPGA(Field Programmable Gate Array)、CPLD(Complex Programmable Logic Device)、および、ASIC(Application Specific Integrated Circuit)の少なくとも1つを用いて実現されてもよい。
設定部120は、通信部110がPLC20から受信した目標値とタイミング調整値Taとを、判定部140および出力部150に通知する。具体的には、設定部120は、通信部110がPLC20から受信した目標値を判定部140に通知し、また、通信部110がPLC20から受信したタイミング調整値Taを出力部150に通知する。
計測部130は、エンコーダ30等のパルス信号生成装置から、そのパルス信号生成装置によって生成されたパルス信号を受信し、受信したパルス信号のパルス数(カウント値)をカウントして、ワークの位置、充填量などの実測値を計測する。計測部130は、パルス信号を用いて計測した実測値を、判定部140に通知する。
判定部140は、計測部130がパルス信号を用いて計測した実測値が、設定部120から通知された目標値(つまり、PLC20から取得した目標値)に一致するかを判定する。判定部140は、「実測値が目標値に一致した」と判定すると、「実測値が目標値に一致した」との判定結果を、出力部150に通知する。
設定部120は、例えば、CPU(Central Processing Unit)またはMPU(Micro Processor Unit)を用いて、ソフトウェアによって実現される。計測部130および判定部140はハードウェアにより実現され、例えば、MPU内部のカウンタ機能等を利用して実現されてもよく、また、FPGA、ASICなどのICを用いて実現されてもよい。
出力部150は、判定部140から「実測値が目標値に一致した」との判定結果を通知されると、アクチュエータ40へ所定の信号(例えば、「実測値が目標値に一致した」ことを示す信号)を出力し、つまり、所定の出力(比較一致出力)を実行する。出力部150は、比較一致出力を実行することによって、アクチュエータ40に、比較一致出力に対応する所定の処理(動作)を実行させる。
特に、出力部150は、比較一致出力の実行タイミングを調整することによって、アクチュエータ40が所定の処理(動作)を実行するタイミングを調整し、具体的には、以下のタイミングで、比較一致出力を実行する。すなわち、出力部150は、判定部140から「実測値が目標値に一致した」との判定結果を通知された時点から、出力遅延部160によって設定された時間(待機時間)が経過するまで待機し、待機時間が経過した時点で、比較一致出力を実行する。出力部150は、待機時間を設定する出力遅延部160を含む。
出力遅延部160は、出力部150が「実測値が目標値に一致した」との判定結果を通知された時点から、出力部150が比較一致出力(アクチュエータ40への所定の信号の出力)を実行する時点までの時間間隔である「待機時間」を設定する。出力遅延部160は、設定部120から通知されたタイミング調整値Ta(つまり、PLC20から取得したタイミング調整値Ta)の示す時間を待機時間として設定し、例えば、タイミング調整値Taを待機時間として設定する。
前述の通り、タイミング調整値Taは、PLC20から受信する信号(データ)であり、計測部130がエンコーダ30等のパルス信号生成装置から受信するパルス信号の周期とは無関係の、つまり、パルス信号の周期から独立した時間を示す信号である。したがって、出力遅延部160は、タイミング調整値Taを用いて、待機時間を、パルス信号の周期から独立した時間に設定することができる。
出力部150は、例えば、集積回路(IC(Integrated Circuits)チップ)上に形成された論理回路によって、ハードウェアとして構成されてもよく、具体的には、FPGA、CPLD、および、ASICの少なくとも1つを用いて実現されてもよい。出力遅延部160は、出力部150を構成するMPU内部(または、CPLD内部)の機能を利用して実現されてもよく、FPGAまたはASICといったハードウェアで構成されてもよい。
また、出力部150を構成するハードウェアは、通信部110を構成するハードウェアとは別個のハードウェアであり、設定部120、計測部130、および、判定部140を実現するCPU(またはMPU)とも別個のハードウェアであってもよい。すなわち、カウンタユニット10は、通信IC(通信部110)、設定部120、計測部130、および、判定部140を実現するCPU(またはMPU)、および、出力部150を構成するハードウェアという3つのハードウェアを含んでいてもよい。
(PLCの詳細)
PLC20は、所定の制御周期でON/OFFデータの入出力処理を実行する制御装置であり、例えば、所定の制御周期で、カウンタユニット10に、目標値とタイミング調整値Taとを送信する。
図1において、PLC20は撮像装置50(状態検知装置)と接続しており、つまり、図1に示す制御システム1は、カウンタユニット10と、PLC20と、撮像装置50と、を含んでいる。
PLC20は、撮像装置50から、カウンタユニット10からの比較一致出力を受け付けたアクチュエータ40によって実現されたワーク60の実際の状態を示すデータ(撮像画像データ)を、比較一致出力に係るフィードバック値として取得する。特に、PLC20は、PLC20の制御周期ごとに繰り返し、撮像装置50から、フィードバック値としての撮像画像データを取得する。
図1に示すように、PLC20は、機能ブロックとして、記憶部210と、タイミング算出部220(更新部)とを備えている。PLC20は、上述の各機能ブロックに加えて、撮像装置50から撮像画像データを取得する不図示の取得部などを備えていてもよいが、記載の簡潔性を担保するため、本実施の形態に直接関係のない構成は、説明およびブロック図から省略している。ただし、実施の実情に則して、PLC20は、当該省略された構成を備えてもよい。タイミング算出部220は、例えば、CPU(central processing unit)等が、ROM(read only memory)、NVRAM(non-Volatile random access memory)等で実現された記憶装置(記憶部210)に記憶されているプログラムを不図示のRAM(random access memory)等に読み出して実行することで実現できる。以下、PLC20におけるタイミング算出部220について説明する。
タイミング算出部220は、撮像装置50からフィードバック値として取得した撮像画像データから、「カウンタユニット10からの比較一致出力を受け付けたアクチュエータ40によって実現されたワーク60の実際の位置(フィードバック値)」を特定する。タイミング算出部220は、特定したワーク60の実際の位置を示す情報(フィードバック値)を用いて、タイミング調整値Taを更新する。
例えば、タイミング算出部220は、撮像装置50から取得した複数の撮像画像データから、複数のフィードバック値を特定し、特定した複数のフィードバック値の平均値を算出する。そして、タイミング算出部220は、算出した平均値と、「比較一致出力を受け付けたアクチュエータ40によって実現されるべき、ワーク60の所定の理想的な位置(状態)」を示す基準値との差異を用いて、タイミング調整値Taを更新する。タイミング算出部220による、フィードバック値を用いたタイミング調整値Taの更新について、詳細は図9等を用いて後述する。
PLC20は、タイミング算出部220によって更新されたタイミング調整値Taと目標値とを、カウンタユニット10に送信する。カウンタユニット10はPLC20から受信する最新のタイミング調整値Ta(タイミング算出部220によって更新されたタイミング調整値Ta)と目標値とを用いて、比較一致出力を実行する。
記憶部210は、PLC20が使用する各種データを格納する記憶装置である。なお、記憶部210は、PLC20が実行する(1)制御プログラム、(2)OSプログラム、(3)PLC20が有する各種機能を実行するためのアプリケーションプログラム、および、(4)該アプリケーションプログラムを実行するときに読み出す各種データを非一時的に記憶してもよい。上記の(1)~(4)のデータは、例えば、ROM(read only memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(登録商標)(Electrically EPROM)、HDD(Hard Disc Drive)等の不揮発性記憶装置に記憶される。PLC20は、図示しない一時記憶部を備えていてもよい。一時記憶部は、PLC20が実行する各種処理の過程で、演算に使用するデータおよび演算結果等を一時的に記憶するいわゆるワーキングメモリであり、RAM(Random Access Memory)等の揮発性記憶装置で構成される。どのデータをどの記憶装置に記憶するのかについては、PLC20の使用目的、利便性、コスト、または、物理的な制約等から適宜決定される。記憶部210はさらに、基準値および目標値を格納している。
基準値は、「カウンタユニット10からの比較一致出力を受け付けたアクチュエータ40によって実現されるべき、ワーク60等の所定の理想的な状態」を示すデータである。基準値は、例えば、マウントアプリにおける、「アクチュエータ40によってマウント部材70が取り付けられる時点における、ワーク60の理想的な位置」を示す設定マウント位置である。また、液体充填アプリにおける、「バルブが閉じて充填が停止した時点における、ワークの理想的な重量・累積量(つまり、理想的な充填量)」も、基準値の一例として挙げることができる。
目標値は、基準値に対応する「ワーク60等の所定の理想的な状態」を実現するためにカウンタユニット10に送信される、カウンタユニット10によって実測値との一致が判定する値である。ここで、目標値と実測値とが一致したと判定された時点から、タイミング調整値Taの示す待機時間と応答時間との合計時間が経過した時点が、ワーク60等が、基準値に対応する所定の理想的な状態となる時点である。つまり、「ワーク60等が、基準値に対応する所定の理想的な状態となる時点」から「タイミング調整値Taの示す待機時間と応答時間との合計時間」をさかのぼった時点に対応する実測値(例えば、図2の(B)における修正目標値)が、目標値に設定される。
目標値は、例えばマウントアプリにおける動作開始位置であり、カウンタユニット10は、「ワーク60の位置(実測値)が動作開始位置に到達した」と判定した時点から、タイミング調整値Taの示す待機時間を待機して、比較一致出力を実行する。また、目標値は、例えば液体充填アプリにおけるバルブ閉動作開始量であり、カウンタユニット10は、「充填量(実測値)がバルブ閉動作開始量に一致した」と判定した時点から、タイミング調整値Taの示す待機時間を待機して、比較一致出力を実行する。
すなわち、PLC20(制御装置)は、タイミング算出部220(更新部)を備え、タイミング算出部220によって更新された前記タイミング調整値Taと前記目標値とを、カウンタユニット10に送信する。タイミング算出部220は、「カウンタユニット10からの前記出力を受け付けたアクチュエータ40によって実現されたワーク60等の実際の状態を示す値」を、前記出力に係るフィードバック値として用いて、前記タイミング調整値Taを更新する。
前記の構成によれば、PLC20は、前記フィードバック値を用いて前記タイミング調整値Taを適切な値に更新し、更新した前記タイミング調整値Taと前記目標値とを、カウンタユニット10に送信する。
したがって、PLC20は、適切な値に更新した前記タイミング調整値Taと前記目標値とを送信することによって、前記出力のタイミングを、前記パルス信号の周期Tpから独立した適切な時点に調整することができるとの効果を奏する。
ここで、PLC20は、例えば、撮像装置50(カメラ)、各種のセンサ(具体的には、変位センサ、ロードセル、および、レーザー等を用いた距離計測装置など)等を用いて実現される状態検知装置から、前記フィードバック値を取得してもよい。また、PLC20は、カウンタユニット10と一体に形成されもよい。
タイミング算出部220は、前記出力を受け付けたアクチュエータ40によって実現されるべき、ワーク60等の所定の理想的な状態を示す基準値と、複数の前記フィードバック値を統計処理して算出した値との差異を用いて、前記タイミング調整値Taを更新する。
前記の構成によれば、PLC20は、前記基準値と、複数の前記フィードバック値を統計処理して算出した値との差異を用いて、前記出力のタイミングを調整するための前記タイミング調整値Taを、適切な値に更新する。
ここで、複数の前記フィードバック値を統計処理して算出した値を用いて前記タイミング調整値Taが更新されることによって、前記フィードバック値が一時的に異常値を示した場合にも、そのような異常値からの前記タイミング調整値Taへの影響は抑制される。
したがって、PLC20は、前記フィードバック値が一時的に異常値を示した場合にも、前記タイミング調整値Taを、そのような異常値からの影響を抑制した適切な値に更新することができるとの効果を奏する。
(撮像装置の詳細)
撮像装置50(状態検知装置)は、カウンタユニット10からの比較一致出力を受け付けたアクチュエータ40によって実現されたワーク60の実際の状態を撮像し、撮像画像データを、比較一致出力に係るフィードバック値として、PLC20に送信する。特に、撮像装置50は、ワーク60の実際の状態を撮影する度に、撮像画像データをPLC20に送信する。
例えば、撮像装置50は、比較一致出力を受け付けたアクチュエータ40によってマウント部材70が取り付けられた時点における、ワーク60の状態(具体的には、マウント部材70が取り付けられた時点における、ワーク60の位置)を撮像する(検知する)。撮像装置50は、撮像によって生成した撮像画像データを、比較一致出力に係るフィードバック値として、PLC20に送信する。
(制御システムの全体)
図1に例示するように、制御システム1は、カウンタユニット10と、PLC20と、撮像装置50等の状態検知装置と、を含んでいる。状態検知装置は、カウンタユニット10からの前記出力を受け付けたアクチュエータ40によって実現されたワーク60等の実際の状態を検知し、検知したワーク60の実際の状態を示す値を、前記フィードバック値として、PLC20に送信する。
前記の構成によれば、制御システム1は、カウンタユニット10と、PLC20と、前記状態検知装置と、を含んでいる。そして、制御システム1においてカウンタユニット10は、PLC20のタイミング算出部220によって更新された前記タイミング調整値Taを用いて、前記出力のタイミングを調整する。
制御システム1は、前記状態検知装置が検知した前記フィードバック値を用いて、前記タイミング調整値Taを適切な値に更新することができるとの効果を奏する。また、制御システム1は、適切な値に更新された前記タイミング調整値Taを用いて、前記出力のタイミングを、前記パルス信号の周期Tpから独立したタイミングに調整することができるとの効果を奏する。
特に、前記タイミング調整値Taの示す時間は、前記パルス信号の周期Tpから独立しているので、パルス周期Tpが長い場合であっても、制御システム1は、前記出力のタイミングを精緻に調整することができる。また、制御システム1は、パルス周期Tpが変化した場合であっても、パルス周期Tpの変化分だけ前記タイミング調整値Taの値を変えるだけで、前記出力のタイミングを容易に調整することができ、ユーザ利便性が高い。
ここで、前記状態検知装置は、例えば、撮像装置50(カメラ)、各種のセンサ(具体的には、変位センサ、ロードセル、および、レーザー等を用いた距離計測装置など)等を用いて実現することができる。また、カウンタユニット10とPLC20とは一体に形成されてもよい。
制御システム1において、PLC20は、前記出力を受け付けたアクチュエータ40によって実現されるべき、ワーク60の所定の理想的な状態を示す基準値と、複数の前記フィードバック値を統計処理して算出した値との差異を用いて、前記タイミング調整値Taを更新する。
前記の構成によれば、制御システム1は、前記基準値と、複数の前記フィードバック値を統計処理して算出した値との差異を用いて更新される前記タイミング調整値Taを用いて、前記出力のタイミングを調整する。
ここで、複数の前記フィードバック値を統計処理して算出した値を用いて前記タイミング調整値Taが更新されることによって、前記フィードバック値が一時的に異常値を示した場合にも、そのような異常値からの前記タイミング調整値Taへの影響は抑制される。
したがって、制御システム1は、前記フィードバック値が一時的に異常値を示した場合にも、そのような異常値からの影響を抑制して適切な値に更新された前記タイミング調整値Taを用いて、前記出力のタイミングを高精度に調整できるとの効果を奏する。
§3.動作例
図3は、制御システム1の全体において実行される処理の一例を示すフロー図である。図3に示すように、PLC20のタイミング算出部220は、タイミング調整値更新処理として、撮像装置50等の状態検知装置から、フィードバック量(つまり、比較一致出力に係るフィードバック値)を取得する(S210)。
PLC20が状態検知装置から取得するフィードバック量は、各アプリにおいて、比較一致出力を受け付けたアクチュエータ40によって実現された、ワーク60等の実際の状態を示すデータである。フィードバック量は、例えば、マウントアプリ(制御システム1が、アクチュエータ40に、ワーク60へのマウント部材70の取り付けを実行させる処理)であれば実際のマウント位置を示すデータであり、詳細は図10等を用いて後述する。また、フィードバック量は、例えば、液体充填アプリ(制御システム1が、アクチュエータであるバルブに、ワークへの液体充填を停止させる処理)であれば実際の充填量を示すデータであり、詳細は図11等を用いて後述する。
タイミング算出部220は、S210で取得したフィードバック量を用いて、タイミング調整値Taの算出(更新)を実行する(S220)。そして、PLC20は、S220でタイミング算出部220によって算出(更新)されたタイミング調整値Taをカウンタユニット10に送信する(S230)。
カウンタユニット10の通信部110は、タイミング調整値設定処理として、S230でPLC20が送信したタイミング調整値Taを取得し(S110)、例えば、PLC20の制御周期ごとに繰り返し、目標値と共に最新のタイミング調整値Taを取得する。そして、カウンタユニット10の出力遅延部160は、S110で取得したタイミング調整値Taを、待機時間として、つまり、出力遅延として、設定する(S120、出力遅延ステップ)。
カウンタユニット10において、計測部130は、エンコーダ30等のパルス信号生成装置からのパルス信号を用いて、ワークの位置、充填量などの実測値を計測する(計測ステップ)。判定部140は、計測ステップにて計測された実測値が目標値に一致するかを判定し(判定ステップ)、判定ステップにおいて実測値と目標値とが一致したと判定されると、出力部150は、アクチュエータ40への比較一致出力を実行する(出力ステップ)。特に、出力部150は、判定ステップにおいて実測値と目標値とが一致したと判定された時点から、出力遅延ステップ(S120)において出力遅延部160が設定した待機時間が経過した時点で、比較一致出力を実行する。
これまでに図3を参照しながら説明してきたカウンタユニット10が実行する処理(言い換えれば、カウンタユニット10が実行する制御方法)は、以下のように整理することができる。すなわち、カウンタユニット10が実行する処理(制御方法)は、パルス信号のパルス数をカウントして実測値を計測する計測ステップと、前記計測ステップにて計測された前記実測値と目標値との一致を判定する比較ステップと、前記比較ステップにて前記実測値と前記目標値とが一致したと判定されると、アクチュエータへの出力を実行する出力ステップと、を含み、前記出力ステップは、前記出力のタイミングを、前記比較ステップにて前記実測値と前記目標値とが一致したと判定された時点から、タイミング調整値の示す、前記パルス信号の周期から独立した時間が経過した時点に調整する出力遅延ステップ(S120)を含んでいる。
前記の構成によれば、前記制御方法は、例えば、エンコーダ30または流量計のような、検出量に応じて前記パルス信号を生成するパルス信号生成装置から、前記パルス信号を入力として受け付け、受け付けた前記パルス信号から前記実測値を計測する。そして、前記制御方法は、前記実測値と前記目標値とが一致したと判定すると、一致したと判定した時点から、前記タイミング調整値Taの示す、前記パルス信号の周期Tpから独立した時間が経過した時点で、前記出力を実行する。
従来、前記パルス信号のパルス数をカウントして計測した実測値と目標値とが一致したと判定すると、前記出力を実行するカウンタユニットについて、目標値を増減することにより、前記出力のタイミングを調整する技術が知られている。
ここで、目標値は、「パルス信号の周期(パルス周期Tp)」に相当する実測値の整数倍でしか増減させることができない。そのため、目標値のみによって出力のタイミングを調整する従来までのカウンタユニットは、出力タイミングの調整に係る分解能がパルス周期Tpに制限される。特に、パルス周期Tpが長い場合、従来までのカウンタユニットは、出力タイミングの精緻な調整ができず、タイミング誤差が大きくなってしまう。また、応答時間はパルス周期Tpにかかわらず一定であるため、パルス周期Tpが変化した場合、従来までのカウンタユニットは、変化するパルス周期Tpに併せて目標値を増減させなければ出力のタイミングを維持できず、ユーザ利便性が低い。
このような従来までのカウンタユニットに対して、前記制御方法は、目標値に加えて、前記パルス信号の周期Tpから独立した時間(待機時間)を示す前記タイミング調整値Taを用いて、前記出力のタイミングを調整する。すなわち、前記制御方法は、前記実測値と前記目標値とが一致したと判定した時点から、前記タイミング調整値Taの示す、前記パルス信号の周期Tpから独立した時間が経過した時点に、前記出力のタイミングを調整する。
したがって、前記制御方法は、前記パルス信号の周期Tpに依存せずに、つまり、前記パルス信号の周期Tpから独立して、前記タイミング調整値Taを用いて、前記出力のタイミングを調整することができるとの効果を奏する。特に、前記タイミング調整値Taの示す時間は、前記パルス信号の周期Tpから独立しているので、パルス周期Tpが長い場合であっても、前記制御方法は、前記出力のタイミングを精緻に調整することができる。また、前記制御方法は、パルス周期Tpが変化した場合であっても、パルス周期Tpの変化分だけ前記タイミング調整値Taの値を変えるだけで、前記出力のタイミングを容易に調整することができ、ユーザ利便性が高い。
(タイミング調整値の概要)
図4は、カウンタユニット10が設定するタイミング調整値Taを説明する図である。カウンタユニット10は、パルス信号を用いて計測した実測値と目標値とが一致したと判定すると実行する、「アクチュエータ40への出力(比較一致出力)」のタイミングを、パルス信号の周期Tpに依存せずに調整することにより、高精度の制御を可能とする。
図4の(A)は、ワーク60に部品(図1に示す例ではマウント部材70)をマウントする処理(マウントアプリ)について、カウンタユニット10が設定するタイミング調整値Taを説明する図である。
カウンタユニット10は、エンコーダ30からのパルス信号のパルス数をカウントすることによって、つまり、カウント値によって、ワーク60(言い換えれば、コンベヤ)の移動量を算出して、ワーク60の位置(実測値)を把握する。カウンタユニット10は、「ワーク60が開始位置(目標値)に到達した」と判定した時点からタイミング調整値Ta(待機時間)が経過した時点で、アクチュエータ40への出力を実行する。そして、「ワーク60が開始位置に到達した」と判定された時点から、「応答時間とタイミング調整値Taとの合計時間」が経過した時刻に、アクチュエータ40は、マウント部材70をワーク60に取り付ける(マウントする)。
カウンタユニット10が、タイミング調整値Taの時間分だけ待機してから、アクチュエータ40への出力を実行することによって、アクチュエータ40は、ワーク60上の理想的な位置に、マウント部材70を取り付けることができるようになる。つまり、カウンタユニット10は、アクチュエータ40への出力を、タイミング調整値Taの時間分だけ待機することによって、マウント部材70の実際のマウント位置を、マウント部材70の理想的なマウント位置に一致させる。
図4の(B)は、ワーク60に液体を充填する処理(液体充填アプリ)について、カウンタユニット10が設定するタイミング調整値Taを説明する図である。
カウンタユニット10は、パルス信号生成装置である流量計からのパルス信号のパルス数をカウントすることによって、つまり、カウント値によって、ワーク60への液体の充填量を算出して、ワーク60に充填された液体の充填量を把握する。カウンタユニット10は、「カウント値(つまり、パルス信号のパルス数)が比較カウント値(目標値)に一致した」と判定した時点からタイミング調整値Ta(待機時間)が経過した時点で、バルブ(つまり、アクチュエータ)への出力を実行する。そして、「カウント値が比較カウント値に一致した」と判定された時点から、「応答時間とタイミング調整値Taとの合計時間」が経過した時刻に、バルブは、ワーク60への液体の充填を停止する。
カウンタユニット10が、タイミング調整値Taの時間分だけ待機してから、バルブへの出力を実行することによって、バルブは、ワーク60への実際の充填量を、ワーク60への充填量の目標値(理想的な充填量)に一致させることができるようになる。つまり、カウンタユニット10は、バルブへの出力を、タイミング調整値Taの時間分だけ待機することによって、ワーク60への充填量実際値を、ワーク60への充填量目標値に一致させる。
(カウンタユニットとPLCとの接続例)
カウンタユニット10とPLC20とは、一定の通信周期ごとに相互に信号(データ)を送受信できるように通信可能に接続されていればよく、カウンタユニット10とPLC20との接続方式は特に限定されない。
図5は、カウンタユニット10とPLC20との接続例を示す図である。カウンタユニット10とPLC20とは、相互に通信可能に接続され、特に、所定の通信周期(例えば、PLC20の制御周期)で繰り返し、相互にデータを送受信する。カウンタユニット10は、PLC20と周期的に通信できればよく、カウンタユニット10とPLC20との間のバス/ネットワーク構成は、特に限定されない。
すなわち、図5の(A)に示すように、カウンタユニット10とPLC20とは、PLC直結バスを介して、相互に通信可能に接続されていてもよい。つまり、カウンタユニット10は、PLC20と一体的に(言い換えれば、PLC20の機能ユニットとして)構成され、カウンタユニット10とPLC20(特に、PLC20のCPUユニット)とが内部バスによって接続されてもよい。
また、図5の(B)に示すように、カウンタユニット10とPLC20とは、フィールドネットワークを介して、相互に通信可能に接続されていてもよい。カウンタユニット10とPLC20とを接続するフィールドネットワークとしては、典型的には、各種の産業用イーサネット(登録商標)を用いることができる。産業用イーサネット(登録商標)としては、たとえば、EtherCAT(登録商標)、Profinet IRT、MECHATROLINK(登録商標)-III、Powerlink、SERCOS(登録商標)-III、CIP Motionなどが知られており、これらのうちのいずれを採用してもよい。さらに、産業用イーサネット(登録商標)以外のフィールドネットワークを用いてもよい。たとえば、モーション制御を行わない場合であれば、DeviceNet、CompoNet/IP(登録商標)などを用いてもよい。図5の(B)に示す例では、PLC20をマスタ装置とするマスタスレーブ制御システムにおいて、スレーブ装置としてのカウンタユニット10が、フィールドネットワークを介して、PLC20に接続されている。
さらに、図5の(C)に示すように、カウンタユニット10とPLC20とは、IOターミナル内部バスを介して、相互に通信可能に接続されていてもよい。より正確には、カウンタユニット10とカプラユニット(通信カプラ)とは、IOターミナル内部バス(内部バス)を介して互いに通信可能に接続され、一体となってIOユニットを構成してもよい。そして、PLC20をマスタ装置とするマスタスレーブ制御システムにおいて、カウンタユニット10とカプラユニットとを含むIOユニットは、スレーブ装置として、フィールドネットワークを介して、PLC20に接続されていてもよい。
(タイミング調整値の詳細)
図6は、カウンタユニット10が設定するタイミング調整値Taの詳細を説明する図である。出力部150をハードウェアによって実現した場合、タイミング調整値Taは、出力部150を実現するハードウェアのクロック周波数に依存し、つまり、タイミング調整値Taは、1クロックの整数倍となる。したがって、例えば、出力部150を、40MHzのクロック周波数で動作するハードウェアによって実現した場合、カウンタユニット10は、1クロック(つまり、25ns)の分解能で、アクチュエータ40への出力のタイミングを調整することができる。つまり、出力部150がアクチュエータ40への出力のタイミングを40MHzのクロックで制御する場合、タイミング調整値Taは1クロック(つまり、25ns)の整数倍で設定でき、カウンタユニット10の出力タイミングに係る分解能は25nsとなる。
例えば、最速出力として、タイミング調整値Taについて「25ns」を設定でき、その場合、カウンタユニット10は、「パルス信号を用いて計測した実測値と目標値とが一致した」と判定した時点から25ns後に、アクチュエータ40への出力を実行する。
また、タイミング調整値Taについて「最速出力から1クロック遅延させた値」を設定した場合、カウンタユニット10は、「パルス信号を用いて計測した実測値と目標値とが一致した」と判定した時点から50ns後に、アクチュエータ40への出力を実行する。
同様に、タイミング調整値Taについて「最速出力から2クロック遅延させた値」を設定した場合、カウンタユニット10は、「一致した」と判定した時点から75ns後に、アクチュエータ40への出力を実行する。
(制御システムに含まれる各装置の性能例)
図7は、制御システム1に含まれるPLC20およびカウンタユニット10の性能等を説明する図である。図7の(A)に示すように、PLC20の制御周期(タスク周期)は、例えば、「0.5ms」から「4ms」であり、デフォルトでは「1ms」である。ここで、「制御周期」とは、ON/OFFデータの読み出し周期を指す。
PLC20によってパルス信号のパルス数をカウントするためには、タスク周期がパルス信号の周期Tpの半分以下である必要がある。したがって、PLC20のタスク周期が「1ms」の場合、PLC20がパルス数をカウントすることのできるパルス信号の周期は、「2ms(つまり、500Hz)」が限界となる。
図7の(B)に示すように、カウンタユニット10の最大応答周波数は、例えば、「500000Hz」または「4000000Hz」であり、PLC20の読み出し周期(制御周期)に比べて、カウンタユニット10の最大応答周波数は桁違いに大きい。カウンタユニット10は、PLC20がカウントすることのできるパルス信号に比べて、桁違いに高速な周期のパルス信号をカウントすることができる。
図8は、制御システム1に含まれるエンコーダ30および流量計などのパルス信号生成装置の性能等を説明する図である。図8の(A)に示すように、例えば、720分解能で300rpm(1秒間に5回転)のエンコーダ30は、1秒間に「720*5=3600パルス」、つまり、3600Hzであるため、パルス周期は「1/3600=278μs」である。
したがって、タイミング調整値Taを用いずに目標値のみによって出力タイミングを調整しようとする場合、出力タイミング(言い換えれば、タイミング調整)に係る分解能は「278μs」となる。同じ速度で、タイミング調整値Taを用いずにタイミング調整に係る分解能をこれ以上向上させたい場合、分解能が高い(つまり、パルス周期がより高速な)エンコーダを使用する必要があるが、これは、エンコーダ30の調達コストが上昇することを意味する。
図8の(B)に示すように、例えば、最大6000Hzの半分の3000Hzのパルス信号を出力する流量計の場合、パルス周期は「1/3000=333μs」となる。流量計は、一般的に、エンコーダよりも低速のパルスを生成するパルス信号生成装置である。
タイミング調整値Taを用いずに目標値のみによってタイミング調整を高精度で行いたい場合、エンコーダと同じく、高分解能の流量計が必要となり、これは、流量計の調達コストが上昇することを意味する。
(タイミング調整値Taの更新)
図9は、マウントアプリにおける、タイミング調整値Taの更新方法の概要を示す図である。PLC20のタイミング算出部220は、カウンタユニット10による比較一致出力に係るフィードバック値の統計処理を行い、例えば、複数のフィードバック値の平均値を算出する。カウンタユニット10による比較一致出力に係るフィードバック値とは、カウンタユニット10からの比較一致出力を受け付けたアクチュエータ40によって実現された、「ワーク60等の実際の状態」を示す値であり、その一例は、後述するマウント位置である。
タイミング算出部220は、フィードバック値に係る統計値(例えば、平均値)に変化が生じたと判定すると、タイミング調整値Taの調整を行い、つまり、フィードバック値に係る統計値の基準値からの差異を打ち消すように、タイミング調整値Taを更新する。基準値とは、カウンタユニット10からの比較一致出力を受け付けたアクチュエータ40によって実現されるべき、「ワーク60等の、所定の理想的な状態」を示す値であり、その一例は、所定の理想的なマウント位置である。
タイミング算出部220は、例えば、フィードバック値として位置データ(マウント位置を示すデータ)を常時ロギングし、一定時間毎に、フィードバック値の平均値について、基準値を用いてt検定などの統計的検定を行う。統計的検定により、「フィードバック値の平均値が、正常時から有意に変化している」と判定すると、タイミング算出部220は、フィードバック値の平均値の変化(基準値からの差異)を打ち消すように、タイミング調整値Taの更新を実行する。
図9の(A)は、マウントアプリにおけるフィードバック値としての「ワーク60のマウント位置x」について説明する図である。マウント位置xは、図9の(A)のローカル座標系における、マウント部材70が取り付けられたワーク60の位置を示しており、言い換えれば、ワーク60における、マウント部材70の取り付け位置を示している。図9において、ワーク60は、コンベヤに載せられて、紙面左側から紙面右側へと速度一定で移動しているものとすると、マウント位置xは、以下の位置を示している。すなわち、マウント位置xは、コンベヤの移動方向に係る、ワーク60における、マウント部材70の取り付け位置を示している。
図9の(B)には、基準値に係る統計分布が示されており、「平均値が、基準値に一致する」フィードバック値(=マウント位置x)を「正常時のフィードバック値」と表現すれば、正常時のフィードバック値に係る統計分布が示されている。図9の(B)に示す「正常時のフィードバック値(つまり、基準値)に係る統計分布」において、横軸はマウント位置xの平均値を、縦軸は確率密度を示している。タイミング算出部220は、図9の(B)に例示するような「正常時のフィードバック値に係る統計分布」を、例えば、予めティーチ等を用いて取得しておく。図9の(B)に示す「正常時のフィードバック値(つまり、基準値)に係る統計分布」は、図9の(C)においては、点線で示している。
図9の(C)に示すように、タイミング算出部220は、t検定などの統計的検定によって、フィードバック値が基準値(つまり、「正常時のフィードバック値」)から所定の大きさ以上乖離したかを判定する。そして、タイミング算出部220は、フィードバック値が基準値から所定の大きさ以上乖離したと判定すると、両者の乖離を解消するように、タイミング調整値Taを変更する(更新する)。
例えば、タイミング算出部220は、フィードバック値の平均値と基準値とのずれ(差異)が所定値以上となると、異常時(異常が発生した)と判定する。そして、異常が発生したと判定したタイミング算出部220は、ずれを補正するように、タイミング調整値Taを調整する。
図9の(C)に示す例では、実線で示すフィードバック値の平均値は、点線で示す基準値(正常時のフィードバック値の平均値)から所定の大きさ以上、紙面右側にずれており、つまり、マウント位置が理想的なマウント位置よりも紙面右側にずれている。これは、マウント時点(マウント部材70が取り付けられる時点)において、ワーク60が、図9の(B)に例示する正常時における「マウント時のワーク60の位置」よりも、紙面左側にずれていることを示している。
そこで、タイミング算出部220は、フィードバック値の平均値を紙面右側に移動させるために、つまり、マウント部材70が取り付けられる時点におけるワーク60の位置の平均値を紙面右側に移動させるために、タイミング調整値Taの値を大きくする。ワーク60は紙面左側から紙面右側へと速度一定で移動しているので、タイミング調整値Taの値を大きくした分だけ、ワーク60にマウント部材70が取り付けられる時点が遅くなり、取り付けられる時点におけるワーク60の位置は、紙面右側に移動する。
制御システム1は、基準値とフィードバック値との差分をタイミング調整値Taに反映してタイミング調整値Taを適切な値に更新することができ、更新したタイミング調整値Taを用いた高精度な制御を実現することができる。
(フィードバック値の取得例(1) マウント位置について)
図10は、マウントアプリについて、マウント位置xを検知する方法の具体例を示す図である。状態検知装置は、カウンタユニット10からの比較一致出力を受け付けたアクチュエータ40によって実現されたワーク60等の実際の状態(例えば、マウント位置x)を検知し、検知結果を、比較一致出力に係るフィードバック値として、PLC20に送信する。
図10の(A)は、状態検知装置として撮像装置50(カメラ)を用いて、比較一致出力に係るフィードバック値として、マウント部材70が取り付けられた時点における、ワーク60の実際の状態(特に、マウント位置x)を検知する例を示している。図10の(A)に示すように、撮像装置50の撮像した撮像画像において、比較一致出力を受け付けたアクチュエータ40によってマウント部材70の取り付けられた時点における、ワーク60の位置(マウント位置x)が特定される。
撮影画像において、「マウント位置x」は、図10の(A)のローカル座標系における、マウント部材70が取り付けられたワーク60の位置を示しており、言い換えれば、ワーク60における、マウント部材70の取り付け位置を示している。図10において、ワーク60は、コンベヤに載せられて、紙面左側から紙面右側へと速度一定で移動しているものとすると、マウント位置xは、以下の位置を示している。すなわち、マウント位置xは、コンベヤの移動方向に係る、ワーク60における、マウント部材70の取り付け位置を示している。PLC20のタイミング算出部220は、制御周期ごとに撮像装置50から取得する撮像画像を用いて、比較一致出力に係るフィードバック値として、マウント部材70が取り付けられた時点における、ワーク60等の状態(例えば、マウント位置x)を特定する。
図10の(B)は、状態検知装置として変位センサ51を用いて、比較一致出力に係るフィードバック値として、マウント部材70が取り付けられた時点における、ワーク60の実際の状態(特に、マウント位置x)を検知する例を示している。図10の(B)において、「部品(マウント部材70)の位置」は、測定距離を、つまり、「マウント部材70が取り付けられた時点における、ワーク60の位置(=マウント位置x)」を示している。
図10の(B)に示すように、変位センサ51は、比較一致出力を受け付けたアクチュエータ40によってマウント部材70が取り付けられた時点における測定距離を検知し、検知した測定距離を、フィードバック値としてPLC20に送信する。PLC20のタイミング算出部220は、制御周期ごとに変位センサ51から取得する測定距離を用いて、比較一致出力に係るフィードバック値として、マウント部材70が取り付けられた時点における、ワーク60等の状態(例えば、マウント位置x)を特定する。
(フィードバック値の取得例(1) 充填量について)
図11は、液体充填アプリについて、実際の充填量を検知する方法の具体例を示す図である。状態検知装置は、カウンタユニット10からの比較一致出力を受け付けたアクチュエータ40によって実現されたワーク60等の実際の状態(例えば、重量・累積量)を検知し、検知結果を、比較一致出力に係るフィードバック値として、PLC20に送信する。
図11の(A)は、状態検知装置としてロードセル52を用いて、比較一致出力に係るフィードバック値として、バルブ(アクチュエータ)が充填を停止させた時点における、ワーク61に充填された液体の実際の重量・累積量を検知する例を示している。
図11の(A)に示すように、ロードセル52は、比較一致出力を受け付けたバルブによって液体充填が停止された時点におけるワーク61の重量・累積量を検知し、検知した重量・累積量を示す電圧値を、フィードバック値としてPLC20に送信する。PLC20のタイミング算出部220は、制御周期ごとにロードセル52から取得する電圧値を用いて、比較一致出力に係るフィードバック値として、液体充填が停止された時点におけるワーク61の状態(例えば、重量・累積量)を特定する。
図11の(B)は、状態検知装置として距離計測装置53を用いて、比較一致出力に係るフィードバック値として、バルブ(アクチュエータ)が充填を停止させた時点における、ワーク61に充填された液体の液面までの距離を検知する例を示している。図11の(B)において、「液面までの距離」は、「バルブが充填を停止させた時点における、ワーク61に充填された液体の充填量」を示している。
図11の(B)に示すように、距離計測装置53は、レーザー等を用いて、比較一致出力を受け付けたバルブが充填を停止させた時点における、ワーク61に充填された液体の液面までの距離を検知する。距離計測装置53は、検知した測定距離を、フィードバック値としてPLC20に送信する。PLC20のタイミング算出部220は、制御周期ごとに距離計測装置53から取得する測定距離を用いて、比較一致出力に係るフィードバック値として、バルブが充填を停止させた時点における、ワーク61等の状態(例えば、ワーク61への充填量)を特定する。
§4.変形例
(制御装置について)
これまで、カウンタユニット10に対して一定の通信周期ごとに目標値およびタイミング調整値Taを送信する制御装置がPLC20である例を説明してきた。しかしながら、カウンタユニット10に目標値およびタイミング調整値Taを送信する制御装置がPLCであることは必須ではない。カウンタユニット10に目標値およびタイミング調整値Taを送信する制御装置は、IPC(Industrial PC)などであってもよい。
(パルス信号について)
また、これまでの説明においては、原則として、パルス信号の周期Tpが一定である例を説明してきた。例えば、ワーク(コンベヤ)の単位時間当たりの移動量(移動速度)が一定であり、また、ワークに充填する液体の単位時間当たりの充填量(充填速度)が一定であるものとして、説明を行ってきた。
しかしながら、パルス信号の周期Tpはカウンタユニット10にとって予測可能であればよく、パルス信号の周期Tpが一定であることは、カウンタユニット10にとって必須ではない。カウンタユニット10は、パルス信号の周期Tpを予測できれば、目標値およびタイミング調整値Taを設定でき、アクチュエータの動作完了タイミングから応答時間以上前のタイミングで目標値一致(実測値と目標値との一致)を発生させることができる。
制御システム1において、タイミング調整値Taは、パルス信号の周期Tpに依存しない(パルス信号の周期Tpから独立した)値として設定できればよい。カウンタユニット10は、タイミング調整値Taを用いて、パルス信号の周期Tpに依存しない時間を待機時間として、実測値と目標値とが一致したと判定した時点から待機時間が経過した時点で、アクチュエータへ所定の出力を実行する。
〔ソフトウェアによる実現例〕
カウンタユニット10およびPLC20の各々の機能ブロック(具体的には、通信部110、設定部120、計測部130、判定部140、出力部150、および、タイミング算出部220)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(CenTral Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、カウンタユニット10およびPLC20の各々は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)等を備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路等を用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。