(58)【調査した分野】(Int.Cl.,DB名)
制御装置が指令更新周期ごとに出力する指令を、指令受信周期ごとに非同期で受信する指令受信部と、前記指令に応じてモータを制御するサーボ制御演算部と、を有するサーボ制御装置であって、
測定モードにおいて、前記指令受信部は前記制御装置が前記指令更新周期ごとに出力するカウンタを、前記指令受信周期ごとに非同期で受信し、
前記測定モードにおいて、前記カウンタの受信間隔にばらつきが生じるイベントの発生を検知するイベント検出部と、
前記測定モードにおいて、前記イベントの発生周期と、前記指令受信周期と、に基づいて、前記制御装置と前記サーボ制御装置との時計のずれ量を算出するずれ量算出部と、
運転モードにおいて、前記指令受信周期あたりの前記ずれ量の積算値が前記指令受信周期を超えることがないように、前記ずれ量に基づいて、前記指令受信周期を調整する受信周期調整部と、を有することを特徴とする
サーボ制御装置。
【発明の概要】
【発明が解決しようとする課題】
【0004】
このようなモーションシステムにおいては、制御装置が一定周期で指令更新(すなわち指令出力)を行っていても、サーボ制御装置が当該指令を一定周期で受信できないことがある。具体的には、指令受信タイミングがサーボ制御装置の動作周期1回分だけずれる事象が、周期的に発生する。
【0005】
図2に具体例を示す。制御装置は、指令更新周期Mにしたがって周期的に指令を更新する。サーボ制御装置は、指令受信周期Sにしたがって周期的に指令の受信を試行する。例えば指令更新周期M=指令受信周期S×3であれば、理論的には、サーボ制御装置は必ず3回の指令受信周期毎に1度のタイミングで指令を受信できるはずである。しかしながら、実際には
図2に示すように、3回でなく4回の指令受信周期を隔てて指令を受信する事象が、一定時間毎に発生する。
【0006】
このような事象の主な発生原因として、制御装置とサーボ制御装置とがそれぞれ別個の時計を持っていることが挙げられる。両装置の時計は、基準時刻やクロック間隔において完全に一致していることが理想であるが、実際にはわずかなずれがある。こうしたずれが蓄積し、指令受信周期Sを上回るまでに達すると、上述の事象が発生することとなる。
【0007】
制御装置とサーボ制御装置とは、一定周期で指令を更新及び受信することを前提とした制御を行っている。そのため、サーボ制御装置における指令受信が一定周期でなくなると、制御装置が出力する指令と、サーボ制御装置が駆動するモータの速度又は位置との間に不一致が生じ、位置決め精度が低下してしまう。また、指令更新からサーボ制御装置が受信してモータが駆動するまでの応答時間が遅れてしまう。
【0008】
図3に、ある位置における、制御装置が出力する移動指令(実線)と、サーボ制御装置の受信指令に基づくモータの速度(破線)との比較を示す。サーボ制御装置における指令受信が完全に一定周期であれば、すなわち指令更新周期Mが厳密に指令受信周期Sの整数倍であれば、両者は本来は一致するはずである。しかし、サーボ制御装置における指令受信に1周期分のずれが生じると、図中に円囲みで示したように、制御装置が出力する移動指令(実線)と、サーボ制御装置の受信指令に基づくモータの動作(破線)との間には1×指令受信周期Sに相当する差分が生じてしまう。なお、
図3では速度指令を例として取り上げたが、位置指令でも同様の問題が生じうる。
【0009】
本発明はこのような課題を解決するためのものであり、指令受信間隔のばらつきを改善することが可能なサーボ制御装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明の一実施形態にかかるサーボ制御装置は、制御装置が指令更新周期ごとに出力する指令を、指令受信周期ごとに非同期で受信する指令受信部と、前記指令に応じてモータを制御するサーボ制御演算部と、を有するサーボ制御装置であって、測定モードにおいて、前記指令受信部は前記制御装置が前記指令更新周期ごとに出力するカウンタを、前記指令受信周期ごとに非同期で受信し、前記測定モードにおいて、前記カウンタの受信間隔にばらつきが生じるイベントの発生を検知するイベント検出部と、前記測定モードにおいて、前記イベントの発生周期と、前記指令受信周期と、に基づいて、前記制御装置と前記サーボ制御装置との時計のずれ量を算出するずれ量算出部と、運転モードにおいて、
前記指令受信周期あたりの前記ずれ量の積算値が前記指令受信周期を超えることがないように、前記ずれ量に基づいて、前記指令受信周期を調整する受信周期調整部と、を有することを特徴とする。
本発明の一実施形態にかかるサーボ制御装置は、前記受信周期調整部による前記指令受信周期の調整時間は、前記サーボ制御装置の最小クロック値の整数倍であることを特徴とする。
本発明の一実施形態にかかるサーボ制御装置は、前記受信周期調整部による前記指令受信周期の調整前後において、前記指令受信周期の位相は略半周期ずれていることを特徴とする。
本発明の一実施形態にかかるサーボ制御装置は、前記ずれ量を記憶するずれバッファ部をさらに有することを特徴とする。
【発明の効果】
【0011】
本発明により、指令受信間隔のばらつきを改善することが可能なサーボ制御装置を提供することができる。
【図面の簡単な説明】
【0012】
【
図1】サーボ制御装置を含むモーションシステムの構成を説明する図である。
【
図2】従来のサーボ制御装置を含むモーションシステムの動作を示す図である。
【
図3】従来のサーボ制御装置を含むモーションシステムの動作を示す図である。
【
図4】サーボ制御装置100がずれ量を算出する手法を示す図である。
【
図5】サーボ制御装置100がずれ量を算出する手法を示す図である。
【
図6】実施例1のサーボ制御装置100を含むモーションシステム1の動作を示す図である。
【
図7】実施例1のサーボ制御装置100を含むモーションシステム1の動作を示す図である。
【
図8】実施例2のサーボ制御装置100を含むモーションシステム1の動作を示す図である。
【
図9】実施例2のサーボ制御装置100を含むモーションシステム1の動作を示す図である。
【
図10】サーボ制御装置100を含むモーションシステム1の構成を示す図である。
【
図11】サーボ制御装置100を含むモーションシステム1の他の構成例を示す図である。
【発明を実施するための形態】
【0013】
本発明にかかるサーボ制御装置100の動作の概要を説明する。サーボ制御装置100は、指令受信間隔のばらつきを検出し、ばらつきを補正する機構を備える。サーボ制御装置100は、測定モード及び運転モードの2つの動作モードを有する。
【0014】
測定モードとは、実際の指令に基づいて運転する前に、制御装置200とサーボ制御装置100との時計のずれ量を算出するためのモードである。サーボ制御装置100は、予め以下のような両装置の指令更新周期の関係を記憶しているものとする。
指令更新周期M = 指令受信周期S × a (a=1,2,3・・・)
【0015】
図4及び
図5を用いて、サーボ制御装置100が両装置の時計のずれ量を算出する手法について説明する。制御装置200は、指令の代わりにカウンタと呼ばれる信号をサーボ制御装置100に対して周期的に出力する。カウンタの出力周期は指令更新周期Mである。サーボ制御装置100は、カウンタの受信を周期的に試行する。受信試行周期は指令受信周期Sである。サーボ制御装置100は、殆どの場合はa回の受信試行毎にカウンタを受信するが、時計のずれが蓄積してくると、a回の受信試行毎にカウンタを受信できない事象(以下、イベントと称する)が発生する。具体的にいえば、イベント発生時のサーボ制御装置100は、前回の受信からa+1回目(
図4参照)又はa−1回目(
図5参照)の受信試行時にカウンタを受信する。イベントの発生には周期性があり、その周期はカウンタ更新x回毎である。サーボ制御装置100は、この周期xを測定する。そして、イベント発生周期xと指令受信周期Sとから、以下の式により時計のずれ量tを算出する。ずれ量tは、指令受信周期Sあたりの、制御装置200の時計に対するサーボ制御装置100の時計の進み具合を示す。ずれ量tが正であればサーボ制御装置100の時計のほうが進んでおり、ずれ量tが負であればサーボ制御装置100の時計のほうが遅れていることを示している。
・カウンタ更新x回毎に、サーボ制御装置100がa+1回の受信試行時にカウンタを受信する場合(
図4参照)、ずれ量tは次式で表される。
t = S/(x×a) (受信間隔>a)
・カウンタ更新x回毎に、サーボ制御装置100がa−1回の受信試行時にカウンタを受信する場合(
図5参照)、ずれ量tは次式で表される。
t = −S/(x×a) (受信間隔<a)
【0016】
運転モードとは、制御装置200が出力する実際の指令に基づいて運転するモードである。サーボ制御装置100は、測定モードにおいて算出した時計のずれ量に基づいて、指令受信時毎に、イベントが発生しなくなるように指令受信周期Sを調整する。すなわち指令受信周期Sの長さを変化させる。
【0017】
サーボ制御装置100におけるn回目の指令受信時におけるずれ量D
nは次式で表される。tは指令受信周期Sあたりのずれ量、R
n−1は前回(n−1回目)の指令受信時に調整しきれなかったずれ量(以下、繰越時間と称する)を示す。
D
n = t+R
n−1
【0018】
D
nのうち、n回目の指令受信時に調整可能なずれ量(以下、調整時間と称する)は、最小クロック値Tに依存する。最小クロック値Tは、サーボ制御装置100のあらゆる処理のタイミングを規定するクロック周期であり、指令受信周期Sの長さを調整する際の最小時間単位である。よって調整時間は、最小クロック値Tの整数倍となり、次式で表される。
調整時間 = Q
n×T
Q
n = D
n/T の商の整数部
【0019】
サーボ制御装置100は、算出された調整時間を指令受信周期Sに加算する。これにより、指令受信周期Sの長さが調整される。n回目の指令受信時に調整しきれなかったずれ量は、次回(n+1回目)の指令受信時に繰越時間として扱われる。n+1回目への繰越時間R
nは次式で表される。
R
n = D
n−(Q
n×T)
【0020】
これらの処理によれば、指令受信の各回において、最小クロック値T単位で受信周期が調整される。これにより、制御装置200とサーボ制御装置100との時計のずれ量tの蓄積が随時解消され、イベントの発生が抑制される。
【0021】
なお、サーボ制御装置100を含むモーションシステム1を再起動しても、ずれ量tは不変であるので、再度算出する必要はない。しかし、処理開始のタイミングは変化する。したがって、再起動後は一度、測定モードで次回のイベント発生タイミングを予測し、それから運転モードに切り替えて、指令受信周期Sを調整することが好ましい。
【0022】
図10は、本発明の実施の形態にかかるサーボ制御装置100を含むモーションシステム1の構成を示すブロック図である。モーションシステム1は、サーボ制御装置100、制御装置200、モータ300及びパルスコーダ310を含む。
【0023】
制御装置200は、例えば数値制御装置やPLCなどの上位制御装置である。測定モードではカウンタを、運転モードでは位置指令や速度指令などの指令を、サーボ制御装置100に対して出力する。
【0024】
サーボ制御装置100は、指令受信部110、イベント検出部111、ずれ算出部112、ずれバッファ部113、受信周期調整部114、サーボ制御演算部120を含む。
【0025】
指令受信部110は、制御装置200が出力したカウンタ、又は位置指令や速度指令などの指令を受信する。
【0026】
イベント検出部111は、測定モードにおいて、サーボ制御装置100におけるイベントの発生を検出する。
【0027】
ずれ算出部112は、測定モードにおいて、イベント発生周期x(カウンタ更新x回毎にイベントが発生)と指令受信周期Sとに基づいて、制御装置200とサーボ制御装置100との相対的な内部時計のずれ量tを算出する。
【0028】
ずれバッファ部113は、測定モードにおいてずれ算出部112が算出したずれ量tを一時的に保存する。
【0029】
受信周期調整部114は、運転モードにおいて、ずれバッファ部113に保存されたずれ量tに基づいて指令受信周期Sを調整し、イベント発生を抑制する。
【0030】
サーボ制御演算部120は、指令に応じた指令パルス信号をモータ300に対して出力する。モータ300は、指令パルス信号に応じた回転角度及び回転速度で駆動する。パルスコーダ310は、モータ300の軸の回転角度及び回転速度を検知し、サーボ制御演算部120にエンコーダ信号としてフィードバックする。サーボ制御演算部120は、エンコーダ信号に基づいてフィードバック制御を行い、指令パルス信号を調整する。
【0031】
実施例として、サーボ制御装置100の具体的な動作例を開示する。
<実施例1>
図6及び
図7を用いて、実施例1にかかるサーボ制御装置100を含むモーションシステム1の動作について説明する。
図6に示すように、測定モードにおいて、制御装置200は、指令更新周期M≒1msecでカウンタを出力した。調整前の、すなわち測定モードにおけるサーボ制御装置100は、指令受信周期S=250μsecでカウンタの受信を試行した。その結果、指令受信間隔が長くなるイベントが周期的に発生し、その際のx=5000、a=4であった。つまり、殆どの場合、指令受信部110は4回の受信試行毎にカウンタを受信したが、まれに5回の受信試行でカウンタを受信した(イベント発生)。イベントは5000回の指令更新毎に発生した。その結果、ずれ算出部112は、指令受信周期Sあたりのずれ量tを12.5と算出した。
【0032】
運転モードにおいて、サーボ制御装置100の受信周期調整部114は、指令受信毎に、ずれ量D
n、調整量Q
n、繰越時間R
nを算出した。
図7は、算出されたずれ量D
n、調整量Q
n、繰越時間R
nの遷移を示している。調整量Q
nが1となった指令受信回(星印で示す)においては、最小クロック値T=20nsec単位で指令受信周期Sが調整されてずれ量の蓄積が一部解消されたため、次の指令受信回においては、ずれ量D
nが減少していることがわかる。
【0033】
図6に示すように、調整後の、すなわち運転モードにおけるサーボ制御装置100は、星印で示した指令受信回において、指令受信周期Sを250μsec+20nsecに調整した。なお、無印の指令受信回においては調整がなされないので、指令受信周期Sは250μsecのままである。この調整により、時計のずれ量tの蓄積が随時解消されたため、運転モードにおいてはイベントが発生していない。
【0034】
なお、
図6に示すように、サーボ制御装置100は、測定モードから運転モードに移行するとき、換言すれば調整を開始するとき、調整前の指令受信周期と、調整後の指令受信周期と、の位相を約a/2ほど割込みによりずらすことが好ましい。これにより、イベントが最も発生しにくいタイミングで指令受信を開始することができる。また、この割込みは、イベントの発生が予測される指令受信回よりも1回以上前のタイミングで行うことが好ましい。これにより、指令受信周期Sの調整を行うための処理時間を確保することができるため、スムーズに運転モードへ移行することが可能となる。
【0035】
<実施例2>
図8及び
図9を用いて、実施例2にかかるサーボ制御装置100を含むモーションシステム1の動作について説明する。
図8に示すように、測定モードにおいて、制御装置200は、指令更新周期M≒1msecでカウンタを出力した。調整前の、すなわち測定モードにおけるサーボ制御装置100は、指令受信周期S=250μsecでカウンタの受信を試行した。その結果、指令受信間隔が短くなるイベントが周期的に発生し、その際のx=5000、a=4であった。つまり、殆どの場合、指令受信部110は4回の受信試行毎にカウンタを受信したが、まれに3回の受信試行でカウンタを受信した(イベント発生)。イベントは5000回の指令更新毎に発生した。その結果、ずれ算出部112は、指令受信周期Sあたりのずれ量tを−12.5と算出した。
【0036】
運転モードにおいて、サーボ制御装置100の受信周期調整部114は、指令受信毎に、ずれ量D
n、調整量Q
n、繰越時間R
nを算出した。
図9は、算出されたずれ量D
n、調整量Q
n、繰越時間R
nの遷移を示している。調整量Q
nが−1となった指令受信回(星印で示す)においては、最小クロック値T=20nsec単位で指令受信周期Sが調整されてずれ量の蓄積が一部解消されたため、次の指令受信回においては、ずれ量D
nの絶対値が減少していることがわかる。
【0037】
図8に示すように、調整後の、すなわち運転モードにおけるサーボ制御装置100は、星印で示した指令受信回において、指令受信周期Sを250μsec−20nsecに調整した。なお、無印の指令受信回においては調整がなされないので、指令受信周期Sは250μsecのままである。この調整により、時計のずれ量tの蓄積が随時解消されたため、運転モードにおいてはイベントが発生していない。
【0038】
なお、実施例2においても、
図8に示すように、サーボ制御装置100は、測定モードから運転モードに移行するとき、換言すれば調整を開始するとき、調整前の指令受信周期と、調整後の指令受信周期と、の位相を約a/2ほど割込みによりずらすことが好ましい。これにより、イベントが最も発生しにくいタイミングで指令受信を開始することができる。また、この割込みは、イベントの発生が予測される指令受信回よりも1回以上前のタイミングで行うことが好ましい。これにより、指令受信周期Sの調整を行うための処理時間を確保することができるため、スムーズに運転モードへ移行することが可能となる。
【0039】
本実施の形態によれば、制御装置200による指令更新とサーボ制御装置100による指令受信が非同期である場合であっても、サーボ制御装置100は、両装置の時計のずれ量を算出し、ずれ量に基づいて指令受信周期を調整するので、指令受信間隔のばらつきを抑制することができる。その結果、制御装置200が出力した指令と、サーボ制御装置100が実際に出力する指令との不一致が改善されるので、応答性が向上する。また、位置決め精度が向上する。さらに、加工精度が向上することで不良率が低減し、生産性が向上する。また、安定した試験設備の運用が可能となる。
【0040】
なお、本発明は上述の実施の形態に限定されるものではなく、発明の趣旨を損なわない範囲内において種々の変形を行うことが可能である。例えば、
図11に示すように、制御装置200には複数のサーボ制御装置100が接続されていても良い。この場合、制御装置200と、個々のサーボ制御装置100との間で、上述の実施の形態で示した処理が実施される。