本発明は、複数のサーボアンプを制御するサーボシステムおよびその制御方法に関し、特に、例えば産業用の高速ネットワーク通信のようなシリアル通信により、複数のサーボ軸が同期して動作するように、それぞれを同時制御する、サーボシステムおよびその制御方法において、そのサーボ演算における履歴データの保存および読み出しの構成および方法に関する。
従来、サーボシステムでは、サーボ演算における情報を履歴データとして記憶部であるメモリに保存するとともに、上位装置を介して接続された外部装置に、履歴データを読み出す機能を有するものがある。
例えば、図7に示すように、このような複数のサーボ軸を制御する従来のサーボシステム70のサーボアンプ71それぞれにおいて、サーボ演算部74におけるサーボ演算での情報は、履歴データSvとしてメモリ76に保存される。保存された履歴データSvは、上位装置85を介して外部装置95に読み出されて、サーボ制御ゲインの調整等に利用される。保存される履歴データSvは、サーボ演算周期の過去m回分(mは整数)の情報である。履歴データSvの例としては、例えばモータ現在位置や、モータ現在速度などがある。
図7中、サーボシステム70が備える、上位装置85と、複数のサーボアンプ71とは、通信線81で接続される。複数のサーボアンプ71それぞれのサーボ演算部74が演算を実行するときのサーボ演算の情報において、それらサーボ演算での情報が有する時間軸が揃っていれば、サーボアンプ71は、それぞれのサーボ軸を調整する際、より精度よく調整できる。
ところで、通信タイミングとサーボ演算処理との同期を取る技術として、例えば、特許文献1のような技術が開示されている。
また、それぞれのサーボ演算に基づく履歴データSvの時間軸を一致させる技術として、上述の図7に示す構成において、上位装置85からそれぞれのサーボアンプ71に対して、履歴データSvの保存開始や保存停止を指示するような構成が開示されている(例えば、特許文献2参照)。
つまり、上記従来のサーボシステム70では、上位装置85から、履歴データSvの保存停止の指示が必要となる。
ところで、近年、EtherCAT(登録商標)を始めとする、オープンネットワークが普及している。よって、オープンネットワークの普及に伴い、サーボシステムは、上位装置の提供者と、サーボアンプの提供者とが異なる組合せが増えている。したがって、上位装置がサーボ演算情報の保存停止を指示する機能を有していない場合、それぞれのサーボ演算情報が有する時間軸を一致させることができない。
特開2003―189654号公報
特開2008−176673号公報
本発明のサーボシステムは、上位装置と複数のサーボアンプとが、通信信号を送受信するサーボシステムである。本サーボシステムにおけるサーボアンプのそれぞれは、サーボ演算処理をするサーボ演算部と、通信信号の送受信を行う通信部と、サーボ演算処理におけるサーボ演算の情報を履歴データとして保存する記憶部と、履歴データの保存を停止するための保存停止条件を予め設定し、サーボ演算周期毎に、保存停止条件に合致するかを判定し、保存停止条件に合致したときにトリガを検出したとする判定の結果を、トリガ検出フラグとして通信部へ通知するトリガ情報処理部とを備える。
また、本発明のサーボシステムの制御方法は、上位装置と複数のサーボアンプとが、通信信号を送受信するサーボシステムである。本サーボシステムの制御方法は、サーボ演算処理におけるサーボ演算の情報を履歴データとして記憶する記憶部に、履歴データの保存を停止するための保存停止条件を予め設定するステップと、サーボ演算周期毎に、保存停止条件に合致するかの判定を行うステップと、保存停止条件に合致したときにトリガを検出したとする判定の結果を、トリガ検出フラグとするステップとを備える。
本発明のサーボシステムおよびその制御方法によれば、通信部を介して履歴データの保存停止を指示する機能を有していない上位装置を用いた構成であっても、複数のサーボアンプがサーボ演算を実行した履歴データが有する時間軸を一致させることができる。
図1は、本発明の実施の形態におけるサーボシステムの要部説明図である。
図2は、本発明の実施の形態におけるサーボシステムで用いる通信周期やサーボ演算周期を含むタイミングの一例を示すタイミングチャートである。
図3は、本発明の実施の形態におけるサーボシステムが有する、上位装置とサーボアンプとが送受信するデータのタイミングの一例を示すタイミングチャートである。
図4は、本発明の実施の形態におけるサーボシステムで用いる通信コマンドと通信レスポンスのデータ構成を示す図である。
図5は、トリガ条件の設定と、トリガの検出について、その一例を示す図である。
図6は、本発明の実施の形態におけるサーボシステムで用いられるサーボ演算情報の保存停止タイミングに関するタイミングチャートである。
図7は、従来のサーボシステムの構成図である。
図8は、比較例として図7における従来構成のサーボシステムでのタイミングを示すタイミングチャートである。
本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施の形態は、本発明を具現化した一例であって、本発明の技術的範囲を制限するものではない。
(実施の形態)
図1は、本発明の実施の形態におけるサーボシステム10の構成図である。
図1に示すように、本実施の形態におけるサーボシステム10は、上位装置45と複数のサーボアンプ11とが、通信線41を介して、1対1接続の双方向のライン型ネットワークトポロジーで通信接続される構成である。図1では、複数のサーボアンプ11として、それぞれ同じ内部構成である3つのサーボアンプ11が、第1のサーボアンプ111、第2のサーボアンプ112および第3のサーボアンプ113の順に上位装置45から接続されている一例を示している。そして、これらサーボアンプ11それぞれの出力には、負荷31を作動させるためのモータ30が接続されている。本実施の形態では、このような構成により、負荷31が所望の動作を実行するように、上位装置45からの指令に従って、サーボアンプ11がモータ30をそれぞれに駆動制御する。なお、以下、適宜、サーボアンプ11を特定する場合には、第1、第2、第3のサーボアンプをそれぞれ、サーボアンプ111、112、113として区分し、それぞれを総称する場合にサーボアンプ11として説明する。また、サーボアンプ11の台数は、複数であればよく、他の台数でもよい。
このようなサーボアンプ11それぞれに対して、制御パラメータを設定したり動作指令を与えたりするために、上位装置45が、通信用データの送受信を行う通信部46を備えるとともに、サーボアンプ11それぞれも、同様の通信部13を備えている。そして、図1に示すように、通信部46と通信部13のそれぞれとが接続されおり、通信線41を介して、各種情報を含む通信信号Cmが双方向に伝送される。この具体的な通信手法としては、同期型のシリアル通信などが好ましく、例えば、近年の産業用の高速ネットワーク通信として知られる上述のようなEtherCAT(登録商標)通信などが好適である。
また、通信内容として、パラメータ設定などに関しては、システムの立上げ時やシステムの動作を変更する場合などにおいて実行される。この制御パラメータとしては、制御ゲインやフィルタの特性に関する設定値などがある。さらに、上位装置45は、パラメータ設定に加えて、モータ30が所望の動き動作をするように、サーボアンプ11それぞれに対しての動作指令などを含めた各種情報を通信コマンドとして送出するとともに、サーボアンプ11それぞれからの各種情報を通信レスポンスとして受信する。
特に、パラメータ設定に関しては初期設定時など不定期であるのに対して、動作指令に関しては、逐次、システム内での動作を指示する必要がある。このため、本実施の形態では、動作指令を更新したり送出したりする基準周期を設定している。
すなわち、本実施の形態では、まず、上位装置45が動作指令などを更新する周期として、上位装置45は、動作指令更新周期Tinsごとに動作指令を生成し、更新している。そして、本実施の形態では、上位装置45と複数のサーボアンプ11とは、動作指令更新周期Tinsの1/L倍(Lは整数)の通信周期Tcmで、動作指令などのデータ交換を同期型シリアル通信で信号を送受信するような一例を挙げている。このように、上位装置45は、基準周期としての通信周期Tcm毎に、位置指令や速度指令などの動作指令を含む指令信号を送出している。また、サーボアンプ11それぞれは、受け取った指令信号に基づき、モータ30の動作を制御する。さらに、サーボアンプ11それぞれは、通信周期Tcm毎に上位装置45に対して、動作状態などの動作情報を含む返信信号を送信する。
さらに、詳細については以下で説明するが、上位装置45からは、通信周期Tcm毎に通信タイミング信号Stが送信されている。そして、サーボアンプ11それぞれは、この通信タイミング信号Stに位相ロックしたクロック信号Ckを基準に、各処理を実行している。
また、上位装置45は、図1に示すように、複数のサーボアンプ11との通信線41を介したシリアル通信とは別の外部のインタフェース部(以下、適宜、I/F部と記す)47を介して、外部装置55のI/F部57と接続されていても良い。
次に、図1を参照しながら、まず、サーボアンプ11の構成の概要について説明する。
図1に示すように、サーボアンプ11は、通信部13と、サーボ演算部14と、タイミング生成部15と、記憶部としてのメモリ16と、メモリ制御部17と、駆動部18と、履歴処理部12とを備える。また、履歴処理部12は、トリガ処理部22を有している。そして、駆動部18から出力される駆動信号Vdが、モータ30に供給される。モータ30には、負荷31が接続される。
このような構成において、通信部13は、上述のように上位装置45と通信信号Cmにより情報や信号のやり取りを行う。さらに、上位装置45からの指令に従って、モータ30の動作を駆動制御するため、サーボアンプ11は、モータ30の位置、速度やトルクを制御するためのサーボ演算部14と、モータ30の巻線を通電駆動するための駆動部18とを備えている。サーボ演算部14は、位置を制御する位置制御、速度を制御する速度制御およびトルクに関する処理を行うトルク処理など、以下で説明するサーボ演算周期Tsv毎にサーボ演算処理を行う。タイミング生成部15は、通信タイミング信号Stに位相ロックしたクロック信号Ckを生成するとともに、サーボ演算周期Tsvを通信周期Tcmの1/M倍(Mは整数)で同期させるなど、通信タイミング信号Stに位相ロックした各種のタイミング信号を生成する。また、駆動部18は、サーボ演算部14でのサーボ演算処理にて算出された駆動データDdに基づく駆動信号Vdを生成する。
そして、本実施の形態では、サーボ演算部14でのサーボ演算処理で使用するデータの履歴を取得可能なように、サーボアンプ11を構成していることを特徴としている。すなわち、本実施の形態では、サーボ演算部14でのデータの履歴に関する処理を実行するために、さらに、履歴処理部12と、メモリ16と、メモリ制御部17とを備えている。ここで、履歴処理部12は、上位装置45からの指示に基づき、履歴処理の実行が指示されると、サーボ演算部14における各種の制御データの中から、その一部である履歴データSvを抽出する。さらに、履歴処理部12は、メモリ16の読み書きなどを制御するためのメモリ制御部17を制御し、これによって、メモリ16は、過去N回分(Nは整数)のサーボ演算周期Tsvについて、サーボ演算情報である履歴データSvを記憶する。サーボ演算情報Svは、サーボ演算処理で用いた、制御データの一部である。サーボ演算情報Svの例としては、モータ現在位置やモータ現在速度などの情報があり、例えば、上位装置45からの位置指令に対し、モータ現在位置が順次追従していくような履歴データSvがメモリ16に保存される。
以上のように、上位装置45は、一定の通信周期Tcmで、同期型シリアル通信で通信を行う通信部46を介して、動作指令をそれぞれのサーボアンプ11に送信する。動作指令には、位置指令などが含まれる。それぞれのサーボアンプ11は、受信した動作指令に基いて、モータ30を駆動する。モータ30は、負荷31に動力を伝える。なお、以下の説明において、サーボアンプ11と、サーボアンプ11に接続されたモータ30とを、サーボ軸ともいう。
次に、サーボアンプ11における各部のより詳細な構成について説明する。
サーボアンプ11において、まず、通信部13は、上述したように、通信線41に接続されており、通信信号Cmとして、上位装置45から、制御パラメータや動作指令などを含めた各種情報を受信するとともに、上位装置45に対して、サーボアンプ11内での各種情報を送信する。
通信部13は、例えばシステムを立上げる初期設定時などにおいて、各種ゲインやフィルタ定数などの一群のデータを含む制御パラメータを、上位装置45から受け取り、サーボ演算部14に設定する。また、上位装置45は、初期設定などが完了すると、通信周期Tcm毎に、通信信号Cmでの通信コマンドCcmdとして、動作指令を含む情報を送出し、その情報を通信部13が受け取る。通信部13は、受け取った通信信号Cmを解析し、自身に対して送られた通信コマンドCcmdを抽出する。さらに、抽出した通信コマンドCcmdから、例えば、位置や速度指令である指令データRins、詳細については以下で説明する履歴処理用データHdtや保存開始コマンドStarをさらに抽出する。例えば、指令データRinsは、図1に示すように、位置や速度指令としてサーボ演算部14に通知され、サーボ演算部14によって、この指令データRinsが示す指令に追従するような動作制御が実行される。
図2は、本発明の実施の形態におけるサーボシステム10で用いる通信周期Tcmやサーボ演算周期Tsvを含むタイミングの一例を示すタイミングチャートである。また、図3は、上位装置45と第1のサーボアンプ111、第2のサーボアンプ112および第3のサーボアンプ113とが送受信するデータのタイミングの一例を示すタイミングチャートである。
ここで、図2および図3を参照しながら、具体的な一例を挙げて、通信周期Tcmやサーボ演算周期Tsvを含む各タイミングの関係について説明する。
すなわち、本実施の形態では、上述の動作指令更新周期Tinsと通信周期Tcmとの比率1/LでのLについては、L=2とし、さらに、通信周期Tcmとサーボ演算周期Tsvとの比率1/MでのMについては、M=3としている。
これより、本実施の形態において、上位装置45での指令を更新する周期、すなわち指令更新周期Tinsは、1周期が1.0msと設定すると、サーボアンプ11の通信周期Tcmは、指令更新周期Tinsの2分の1となり、1周期が0.5msである。さらに、通信周期Tcmは、1周期が0.5msであることより、サーボ演算周期Tsvは、図2に示すように、通信周期Tcmの3分の1となり、1周期が0.166msである。通信タイミング信号Stは、通信周期Tcmが1周期経過し、動作指令が送信される毎に、上位装置45から通信信号Cmに重畳して伝送される。また、サーボ演算周期Tsvが1周期経過する毎に、サーボ演算起動信号Ssvが発生する。サーボ演算起動信号Ssvが発生すると、それぞれのサーボアンプ11では、図2および図3に示すように、サーボ演算処理が行われる。よって、本実施の形態では、通信周期Tcmが1周期経過する間に、3回のサーボ演算処理が実行される。
また、通信タイミング信号Stに同期したサーボ演算起動信号Ssvなどを生成するため、通信部13は、この通信タイミング信号Stを検出し、タイミング生成部15に転送する。ここで、動作指令などはデータとなる信号であるのに対して、通信タイミング信号Stは、周期的なタイミングを示すためのパルス信号である。本実施の形態では、この通信タイミング信号Stを同期信号として利用し、タイミング生成部15において、通信タイミング信号Stの周期に同期したクロック信号Ckを生成している。さらに、タイミング生成部15は、クロック信号Ckを分周する分周カウンタや位相比較器などを有しており、これらを利用して、いわゆるPLL(Phase Locked Loop)回路を構成している。このような構成により、PLLの原理の基づき、クロック信号Ckが通信タイミング信号Stに位相ロックし、クロック信号Ckが通信タイミング信号Stに同期する。クロック信号Ckは、周知のとおり、サーボアンプ11内のデジタル処理に利用される。さらに、分周カウンタなどを利用し、このクロック信号Ckを所定の比率で分周することで、図2に示すようなパルス信号であるサーボ演算起動信号Ssvや、駆動部18で利用するPWM(パルス幅変調)キャリア信号を生成するための信号(図示せず)などを生成している。なお、図2では、タイミング生成部15が、通信タイミング信号Stに対するサーボ演算起動信号Ssvの遅れ時間tdlを一定にしたようなサーボ演算起動信号Ssvを生成する一例を示している。本実施の形態1において、遅れ時間tdlは、10μsである。
以上、サーボアンプ11のクロック信号が自走の場合には、ハードウェアの製造ばらつきを要因として、クロック誤差等が生じることがある。クロック誤差等が生じると、通信周期Tcmは、サーボ演算周期Tsvの完全な整数倍にならないこともある。これに対し、本実施の形態では、タイミング生成部15が通信タイミング信号Stの周期に同期したクロック信号Ckを生成する構成としている。よって、それぞれのサーボ軸で実行されるサーボ演算処理は、起動タイミングが一致する。
次に、サーボ演算部14には、タイミング生成部15から、通信タイミング信号Stに同期したサーボ演算起動信号Ssvが供給される。サーボ演算部14は、上述したように、このサーボ演算起動信号Ssvのタイミングに従い、同期してサーボ演算処理を実行する。よって、それぞれのサーボ軸で実行されるサーボ演算処理のタイミングも一致する。
さらに、サーボアンプ11において、このサーボ演算部14と駆動部18とは、モータ30の動作を制御するために設けている。ここで、モータ30は、例えば、UVW相の3相駆動のブラシレスモータである。すなわち、モータ30は、各相に対応する巻線を備えたステータと永久磁石を保持したロータとを含む構成である。このステータの各巻線に、互いの位相が異なる駆動信号Vdを加えることで巻線が通電され、巻線に電流が流れてロータが回転する。なお、モータ30は、負荷31に対して直接に直線的位置制御するリニアモータであってもよい。
このようなモータ30を駆動制御するため、サーボ演算部14は、モータ30の位置、速度やトルクを制御する。そして、駆動部18は、モータ30の巻線を通電駆動する。
サーボアンプ11がこのようにモータ30を制御するため、まず、上位装置45は、指令更新周期Tins毎に、動作指令としての指令データRinsを生成している。この指令データRinsは、通信周期Tcm毎に、上位装置45からサーボアンプ11に対して、通信信号Cmに含めて通知される。そして、通信部13は、受け取った通信信号Cmから指令データRinsを抽出し、この指令データRinsをサーボ演算部14に供給する。指令データRinsは、指令位置や指令速度を示すデータである。
ここで、例えば、上位装置45からロータ位置を指令する位置指令が供給される場合には、サーボ演算部14は、モータ30の位置制御を行うように、次のような動作を行う。すなわち、サーボ演算部14は、位置検出器などからの検出位置情報を利用したフィードバック制御によって、上位装置45からの指令データRinsが示す位置指令にモータ30のロータの実回転位置が追従するように、回転動作を制御する。
このようなフィードバック制御を行うため、サーボ演算部14は次のような演算処理を実行する。すなわち、サーボ演算部14は、まず、位置制御として、位置指令と位置検出器(図示せず)からの検出位置情報との差である位置偏差を算出する。さらに、位置制御として、その位置偏差に対して位置ゲインを乗算するなどの演算を行うことで速度指令を算出する。また、サーボ演算部14は、通知された位置検出情報に対して例えば微分演算を行うことによりモータ30の回転速度を算出する。さらに、サーボ演算部14は、この算出した回転速度と速度指令との差である速度偏差を算出する。さらに、サーボ演算部14は、その速度偏差に対して比例演算や積分演算を行うことにより、モータ30を作動させようとする駆動トルク量に対応したトルク指令を算出し、駆動データDdとして駆動部18に供給する。
駆動部18は、サーボ演算部14から供給された駆動データDdに基づく駆動電圧Vdを生成する。具体的には、駆動部18は、パルス幅変調(PWM)回路やスイッチ素子で構成されるインバータを有している。駆動部18は、PWM回路により、駆動データDdに応じてパルス幅変調されたパルス信号を生成し、それらパルス信号でインバータのスイッチ素子をオンオフ制御することで、駆動信号Vdを生成している。このように、駆動部18は、生成した駆動信号Vdを相ごとの巻線に印加し、モータ30を駆動している。
さらに、本実施の形態でのサーボアンプ11は、上述したように、サーボ演算部14での処理におけるデータを順次に抽出し、その履歴を保存するため、履歴処理部12と、メモリ16と、メモリ制御部17とを備えている。
このような履歴処理を実行するため、まず、上位装置45からの通信信号Cmには、履歴処理に関する通信コマンドCcmdが含まれており、通信部13は、履歴処理に関する通信コマンドCcmdを抽出して履歴処理部12に供給する。履歴処理に関する通信コマンドCcmdとしては、履歴処理データHdt、保存開始コマンドStarや読出コマンドRhsなどが含まれる。
ここで、履歴処理データHdtは、履歴として保存する対象データの保存種別情報Isv、保存停止のトリガとして利用する対象データのトリガ種別情報Itr、トリガでの判別値となるトリガレベル値Ithなどが含まれる。保存種別情報Isvは、サーボ演算部14における処理として、例えば、位置偏差、速度偏差、回転速度などと指定する情報である。また、トリガ種別情報Itrも、サーボ演算部14における処理として、例えば、指令データRinsや、保存種別情報Isvと同様の位置偏差、速度偏差、回転速度などと指定する情報である。また、保存開始コマンドStarは、メモリ16への履歴保存の開始を指示するためのコマンドである。読出コマンドRhsは、メモリ16に履歴保存されたデータの読み出しの開始を指示するためのコマンドである。
次に、履歴処理部12は、通信部13からの履歴処理データHdtや保存開始コマンドStarに応じて、履歴保存に関する処理を実行する。履歴処理部12は、保存開始コマンドStarを参照し、保存開始コマンドStarが保存開始を示すとき、履歴保存に関する処理を開始する。
また、履歴処理部12は、トリガ処理部22を有している。このトリガ処理部22は、履歴保存に関する処理を停止させるために設けている。トリガ処理部22には、履歴処理データHdtに含まれるトリガ種別情報Itrやトリガレベル値Ithなどが供給される。トリガ処理部22は、トリガ種別情報Itrが示す種別のデータをトリガ用データTrとして、サーボ演算部14から取り込む。さらに、トリガ処理部22は、トリガ用データTrとトリガレベル値Ithとを比較し、トリガ用データTrがトリガレベル値Ithを超えた時点で、履歴保存に関する処理を停止する。
トリガ処理部22は、このように履歴保存に関する処理を開始および停止させるため、メモリ制御部17に対して、保存開始信号Strおよび保存停止信号Stpを出力する。すなわち、トリガ処理部22は、保存開始コマンドStarに基づき保存開始信号Strを出力する。また、トリガ処理部22は、上述のようなトリガ用データTrとトリガレベル値Ithとの比較に基づき保存停止信号Stpを出力する。そして、メモリ制御部17は、保存開始信号Strの保存開始タイミングでメモリ16への書き込みを可能状態にし、保存停止信号Stpの保存停止タイミングでメモリ16への書き込みを不可状態にしている。
また、このようなトリガ処理部22の処理と並行して、履歴処理部12は、保存種別情報Isvが示す種別のデータを履歴データSvとして、サーボ演算部14から取り込み、書込用履歴データWsvとしてメモリ16に供給している。
履歴処理部12が以上のような動作を実行することで、メモリ16の演算履歴保存領域である履歴エリア26には、保存開始から保存停止までの履歴データSvが、サーボ演算周期Tsv毎に記憶される。
より具体的な履歴処理部12の動作例として、例えば、保存対象データを指定する保存種別情報Itrを「位置偏差」、トリガ対象データを指定するトリガ種別情報Isvを「回転速度」とし、トリガレベル値Ithを「1000rpm」とした場合、履歴処理部12は、次のような処理を実行する。すなわち、履歴処理部12は、サーボ演算部14における位置偏差のデータを履歴データSvとして取り込む。そして、履歴処理部12は、トリガ用データTrである回転速度が、トリガレベル値Ithである1000rpmとなるまで、サーボ演算周期Tsv毎に、履歴データSvとして取り込んだ位置偏差のデータを、メモリ16に履歴として記録する。
特に、詳細については以下で説明するが、保存停止の動作に関しては、トリガを最初に検出したサーボアンプ11とそれ以外のサーボアンプ11とで動作が異なるように、本実施の形態では構成している。本実施の形態では、このような構成とすることにより、最後に履歴データSvを取得するタイミングをそれぞれのサーボアンプ11間で一致させている。
また、読出コマンドRhsにより読み出しの指示が成されると、履歴処理部12は、メモリ16に保存された一群の履歴データSvを読出履歴データRsvとして読み出し、通信部13に転送する。そして、通信部13は、通信レスポンスCrspとして上位装置45に伝送する。
次に、上位装置45とそれぞれのサーボアンプ11との間で行われるデータの流れを中心に、本実施の形態におけるサーボシステムの詳細な動作について説明する。
上述したように、上位装置45とそれぞれのサーボアンプ11との間において、通信コマンドCcmdおよび通信レスポンスCrspを含む通信信号Cmが伝送されている。通信コマンドCcmdは、上位装置45からサーボアンプ11それぞれへ送信するデータであり、通信レスポンスCrspは、サーボアンプ11それぞれから上位装置45へ返信するデータである。通信コマンドCcmdは、上位装置45から発信され、通信線41を介して、各サーボアンプ11へ到達する。また、通信レスポンスCrspは、各サーボアンプ11から返信され、通信線41を介して、上位装置45へ到達する。
通信コマンドCcmdの送信は、図3に示すように、時刻taにおいて、上位装置45から各サーボアンプ11に向けて実行される。通信コマンドCcmdには、サーボアンプ111、112および113のそれぞれに対する個別の指示が含まれる。それぞれのサーボアンプ11の通信部は、受け取った通信コマンドCcmdを確認し、最初に、それぞれを識別するための軸アドレスを参照し、自らに対する指示である通信コマンドCcmdを抽出する。
まず、時刻taでは、上位装置45において通信部46に対して、各サーボアンプ11に指示すべき通信コマンドCcmdが設定される。ここで、時刻taは、指令更新周期Tinsと、通信部46の通信周期Tcmと、が更新されるタイミングである。
次に、時刻tbでは、通信部46からサーボアンプ111、112および113のそれぞれの通信部13に対して、通信コマンドCcmdが同時に送信される。ここで、時刻tbは、通信部46と通信部13との間の通信周期Tcmと、各サーボアンプ11のサーボ演算周期Tsvと、が更新されるタイミングである。
その後、通信コマンドCcmdを受け取った、それぞれのサーボアンプ11は、軸アドレスにより、自らに対する通信コマンドCcmdを識別する。それぞれのサーボアンプ11は、識別したそれぞれの通信コマンドCcmdに基づき、サーボ演算処理を実行する。
また、通信レスポンスCrspの返信は、図3に示すように、時刻tdにおいて、それぞれのサーボアンプ11から上位装置45に向けて、実行される。
まず、時刻tdでは、各サーボアンプ11内において、通信部13に対し、上位装置45への応答として、それぞれの通信レスポンスCrspが設定される。ここで、時刻tdは、各サーボアンプ11のサーボ演算周期Tsvと、通信部13の通信周期Tcmと、が更新されるタイミングである。
次に、時刻teでは、通信部13から上位装置45の通信部46に対して、通信レスポンスCrspが送信される。通信レスポンスCrspは、それぞれのサーボアンプ11における通信レスポンスが合成された情報である。ここで、時刻teは、通信部13と通信部46との間の通信周期Tcmと、指令更新周期Tinsと、が更新されるタイミングである。
ところで、時刻tcにおいて、各サーボアンプ11内で通信部13に対して、それぞれの通信レスポンスが設定されることがある。この場合、時刻tdで、通信部13から上位装置45の通信部46に対して、通信レスポンスCrspが送信できる状態となる。しかしながら、時刻tdは、通信部46の通信周期Tcmと、指令更新周期Tinsと、が更新されるタイミングではない。よって、時刻tdでは、通信部13から上位装置45に対して、通信レスポンスCrspが送信されない。その後、通信部46の通信周期Tcmと、指令更新周期Tinsと、が更新されるタイミングである時刻teにおいて、通信部13から上位装置45に対して、通信レスポンスCrspが送信される。
以上、上述した流れにより、上位装置45とサーボアンプ11のそれぞれとの間で、データの送受信が行われる。
また、サーボシステムが、リング型ネットワーク・トポロジー(Ring Network Topology)で構成されている場合、それぞれのサーボアンプには、各サーボアンプと上位装置との接続順に、通信コマンドが伝達される。同様に、上位装置には、上位装置と各サーボアンプとの接続順に、通信レスポンスが伝達される。つまり、全てのサーボアンプから送信された通信レスポンスを取得できるのは、最後段に位置するサーボアンプとなる。
あるいは、サーボシステムが、ライン型ネットワーク・トポロジー(Line Network Topology)で構成されている場合、それぞれのサーボアンプは、接続された順番に係わらず、通信周期が更新されるタイミングで、他のサーボアンプから送信された通信レスポンスを取得する。例えば、本実施の形態において、通信周期Tcmが更新されるタイミングとは、図3に示すような時刻ta、時刻tb、時刻tc、時刻td、時刻teなどである。
本実施の形態におけるサーボシステム10は、ライン型ネットワーク・トポロジーを用いることで、顕著な作用効果を得ることができる。よって、以下の説明において、サーボシステム10は、ライン型ネットワーク・トポロジーを前提として、説明を行う。
図4は、本発明の実施の形態におけるサーボシステムで用いる通信コマンドCcmdと通信レスポンスCrspとのデータ構成を示す図である。
次に、図4を参照しながら、通信コマンドCcmdおよび通信レスポンスCrspの構成とともに、サーボ演算情報として履歴データSvが、メモリ16に保存される処理について説明する。
上位装置45からサーボアンプ11へは、図4で一例を示すような1軸分のサーボ軸用の、1軸に着目した場合の通信コマンドCcmdが送信され、サーボアンプ11から上位装置45へは、通信レスポンスCrspが送信される。
図4に示すように、通信コマンドCcmdには、履歴処理部12における履歴保存および履歴読出に関連するデータやコマンドが含まれている。履歴保存用としては、上述したような次のデータがある。すなわち、メモリ16に保存する対象を特定するための保存種別情報Itr、メモリ16への保存開始を指示するための保存開始コマンドStar、トリガ処理に利用する対象を特定するためのトリガ対象情報Itrや、トリガ処理に利用するトリガのレベルを示すトリガレベル値Ithである。
また、履歴読出用としては、読み出しを指示するための読出コマンドRhs、メモリ16から読み出すデータを指定するための読出データ番号riがある。ここで、本実施の形態では、読出データ番号riは、データを保存した最新から過去に向かっての順番の数としている。すなわち、本実施の形態では、読出データ番号riが1のときは、最新の保存されたデータを指定し、読出データ番号riが2のときは、その1つ前にメモリ16に保存されたデータを指定するように設定している。このような設定とすることにより、上位装置45は、メモリ16のアドレスを指定することなく、最新の読出履歴データRsvから順に古い読出履歴データRsvを読み出していくことができる。さらに、最新の読出履歴データRsvから読み出せるため、サーボアンプ111、サーボアンプ112およびサーボアンプ113のそれぞれから、同時刻となる最新の読出履歴データRsvを読み出すことができ、サーボアンプ11それぞれのメモリ16に保存した一群の履歴データSvの時間軸を一致させることができる。
また、このようにメモリ16から読み出した読出履歴データRsvは、図4の通信レスポンスCrspに示すように、読出データRsv(ri)として、サーボアンプ11の通信部13から上位装置45へと伝送される。
以上のように、保存種別情報Itrで特定されたサーボ演算情報である履歴データSvは、メモリ16に保存される。履歴データSvは、サーボ演算処理にて用いられる制御データの一部である。履歴データSvは、例えば、モータ現在位置やモータ現在速度などのように、予めその内容が保存種別情報Itrによって定められる。サーボ演算処理は、サーボ演算部14で実行される。
上位装置45から送信される通信コマンドCcmdには、保存種別情報Itrとともに保存開始コマンドStarが含まれる。
履歴データSvをメモリ16に保存させるため、上位装置45から保存開始コマンドStarを各サーボアンプ11に同一通信周期Tcmにて送信する。
なお、保存開始コマンドStarは、外部装置55から、上位装置45のI/F部47を介して各サーボアンプ11に対して送信してもよい。
1つの通信コマンドCcmdには、保存開始コマンドStarとともに、動作コマンドと、トリガ対象情報Itrと、トリガレベル値Ithと、が含まれる。この通信コマンドCcmdに対して返信される、1軸分の通信レスポンスCrspには、保存種別情報Itrとともに、軸アドレスエコーと、動作コマンドエコーと、トリガ検出フラグと、保存開始コマンドエコーと、トリガ設定状態Strと、読出コマンドエコーとが含まれる。保存種別情報Itrで指定される履歴データSvには、最新のサーボ演算処理で算出された情報が用いられる。
トリガ設定状態Strは、2値の情報である。例えば、トリガ対象情報ItrとトリガレベルIthとがサーボアンプ11に設定されている場合、トリガ設定状態Strは、トリガ処理が設定されていることを示す“1”となる。他の場合、すなわち、トリガ対象情報ItrとトリガレベルIthとがサーボアンプ11に設定されていない場合、トリガ設定状態Strは、トリガ処理が設定されていないことを示す“0”となる。
上位装置45あるいは外部装置55において、通信レスポンスCrspに含まれるトリガ設定状態Strを確認すれば、それぞれのサーボアンプ11で、正しくトリガ対象情報Itrと、トリガレベルIthとが、設定できているか否かを判断できる。
履歴処理部12が保存開始コマンドStarを受信すれば、サーボアンプ11では、受信後のタイミングで実行されるサーボ演算処理で使用する履歴データSvを、メモリ16内に割り当てられている履歴エリア26[m](mは整数)に保存する。
履歴エリア26[m]において、mはメモリ16のアドレスに対応しており、1回目のデータは、履歴エリア26[1]に保存される。その後、順次演算された結果は、履歴エリア26[2]、履歴エリア26[3]、以下同様、に順に保存される。m回目のデータは、履歴エリア26[m]に保存される。
やがて、メモリ16内において、履歴データSvを保存する領域は、上限の回数であるm回に達する。このとき、m+1回目の履歴データSvは、履歴エリア26[1]に上書きされる。その後、m+2回目の履歴データSvは、順次、履歴エリア26[2]、履歴エリア26[3]、以下同様、に順に上書きされる。このように、本実施の形態の履歴エリア26[m]は、いわゆるリングバッファメモリを構成している。
次に、トリガ処理部22の動作について、説明する。
トリガ処理部22は、通信コマンドCcmdからのトリガ対象情報Itrおよびトリガレベル値Ithによりトリガ条件を設定し、トリガ対象情報Itrで指定されたトリガ用データTrとトリガレベル値Ithとの比較に基づき、履歴データSvの保存停止をメモリ16に指示する。
図5は、トリガ条件の設定と、トリガの検出について、その一例を示す図である。図5では、トリガ対象情報Itrとして「回転速度」を設定し、サーボ演算部14から、その「回転速度」に対応する回転速度データをトリガ用データTrとして抽出した一例を示している。図5に示すように、トリガ処理部22は、サーボ演算周期Tsv毎に、トリガ用データTrがトリガレベル値Ithを超えたかどうかを判定している。上述のトリガ対象情報Itrおよびトリガレベル値Ithによりトリガ条件が設定されると、図5に示すように、例えばモータ現在速度などのトリガ用データTrが、予め設定されたトリガレベル値Ith以上であるかをサーボ演算周期Tsv毎に判断する。
図5の場合は、サーボ演算周期Tsv毎にトリガ用データTrの値が増加する例を示しており、トリガ用データTrがトリガレベル値Ith以上となった場合、トリガ処理部22は、通信レスポンスCrspに含まれるトリガ検出フラグFtrに、トリガが検出されたという判断結果を2値の情報である“1”として設定する。
次に、履歴データSvの保存停止について図6を用いて説明する。なお、以下、適宜、トリガ用データTrがトリガレベル値Ith以上となったときを、トリガが検出されたとして説明する。
履歴データSvの保存停止は、トリガを最初に検出したサーボアンプ11とそれ以外のサーボアンプ11で動作が異なるため、まずトリガを最初に検出したサーボアンプ11における動作について説明する。なお、前者を保存停止の動作1、後者を保存停止の動作2とする。また、図6では、第1のサーボアンプ111がトリガを最初に検出し、第2のサーボアンプ112と第3のサーボアンプ113とがそれ以外の場合を示している。
まず、保存停止の動作1について説明する。
図6に示す時刻tfにおいて、第1のサーボアンプ111のトリガ処理部22でトリガが検出された場合、トリガ処理部22では続けて、メモリ16へ履歴データSvの保存停止を指示するタイミングまでの保留回数を算出する。すなわち、トリガを最初に検出したサーボアンプ11では、直ちに履歴データSvの保存を停止するのではなく、次に説明する保留回数だけ保存した後に、保存を停止する。この保留回数は、現在のサーボ演算周期Tsvが通信周期Tcmに対して何回目であるか、という情報をトリガ検出周期番号とした、次の演算によって求められる。
保留回数=(2×通信周期/サーボ演算周期−トリガ検出周期番号+1)、但し、小数点以下は切り捨て。
図6の例においては、次のように算出される。
保留回数=2×0.5/0.166―2+1=5(小数点以下は切り捨て)。
算出された保留回数は、トリガが検出された時刻tf以降、サーボ演算周期Tsv毎に「1」ずつ、減算される。その後、保留回数が「0」となる、時刻thのサーボ演算周期Tsvで、トリガを検出したサーボアンプ11のトリガ処理部22は、メモリ16へ履歴データSvの保存停止を指示し、履歴データSvの保存が停止される。
次に、保存停止の動作2について説明する。
すなわち、トリガを最初に検出した第1のサーボアンプ111以外の第2、第3のサーボアンプ112、113における、トリガ処理部22の動作について説明する。
図6の時刻tfで第1のサーボアンプ111のトリガ処理部22によって更新されたトリガ検出フラグFtrは、時刻tgのタイミングで通信レスポンスCrspとして通信部13に送信される。通信レスポンスCrspは、時刻thで、通信レスポンスCrspとして第2、第3のサーボアンプ112、113へ伝達される。ここで、時刻thは、通信部13の通信周期Tcmと、各サーボアンプ11のサーボ演算周期Tsvとが更新されるタイミングである。第2、第3のサーボアンプ112、113のトリガ処理部22は、第1のサーボアンプ111経由で伝達された通信レスポンスCrspに含まれるトリガ検出フラグFtrによって、自軸以外のサーボアンプ11でトリガが検出されたかどうかを判断する。そして、トリガが検出されていたと判断した場合、自軸のメモリ16へ履歴データSvの保存停止を指示し、履歴データSvの保存が停止される。
なお、保存停止の動作2の方が、保存停止の動作1よりも制御における優先度が高いものとする。これは、例えば時刻tgにおいて、第3のサーボアンプ113がトリガを検出した場合に、保存停止の動作1に従うと、実際に第3のサーボアンプ113での保存停止が行われるのは、時刻tiのタイミングとなってしまうためである。ここで、時刻tgは、時刻tfで第1のサーボアンプ111がトリガを検出し、その情報が他のサーボ軸へ伝達されない区間である。これに対し、保存停止の動作2の優先度を高くすることで、第3のサーボアンプ113は、時刻thのタイミングで伝達されるトリガ検出フラグFtrにより、自軸のメモリ16に対して履歴データSvの保存停止を指示し、履歴データSvの保存を停止することができる。
以上に示したトリガ処理部22の動作により、第1、第2、第3のサーボアンプ111、112、113それぞれにおける履歴データSvの保存を停止するタイミングが時刻thで揃うことになる。このため、それぞれの履歴データSvの時間軸を一致させる効果が得られる。
次に、サーボアンプ11のメモリ16に保存された情報の読み出しについて、図1、図4を用いて説明する。
上位装置45は、メモリ16に保存された履歴データSvを読み出すために、通信部46を介して、それぞれのサーボアンプ11に対して、読み出しを指示する。
実際には、読出コマンドRhsと、読み出す対象となる履歴データSvを指定するための読出データ番号riを送信する。
なお、読出コマンドRhsと読出データ番号riとは、外部装置55からI/F部57を用いて上位装置45経由で送信しても良い。
サーボアンプ11は、読出コマンドRhsと読出データ番号riとを受信すると、受信した読出データ番号riで指定される内容に従い、指定された履歴エリア26[m]から、指定された履歴データSvを読み出す。その後、サーボアンプ11は、読み出した履歴データSvを読出データRsv(ri)として、通信部13を介して上位装置45に返信する。
ここで、履歴エリア26[m]の指定方法について、一例を挙げて説明する。
読出データ番号riが、1の場合を最新の履歴データSvとする。このとき、サーボアンプ11は、最終保存データの保存先である履歴エリア26[i]が有するデータを返信する。
また、読出データ番号riが、2の場合を最新の状態より1回前のデータとすると、履歴エリア26[i−1]が有するデータを返信する。
保存停止したデータは、次の方法で利用できる。
それぞれのサーボ軸に含まれる履歴データSvは、履歴エリア26[i]から読み出される。読み出された履歴データSvは、通信部13を介して上位装置45に読み出される。読み出された履歴データSvは、サーボゲインの調整などに利用できる。
上位装置45からサーボシステム外部への読み出しは、次の方法で利用できる。
上位装置45は、例えばパーソナルコンピュータなどの外部装置55と接続される。
上位装置45と外部装置55とは、例えば、RS232C、USBなどの規格に対応した外部のシリアル通信手段としてのI/F部57で接続できる。外部装置55に読み込まれた履歴データSvは、外部装置55上で、グラフ化するなどして、利用できる。
あるいは、それぞれのサーボアンプ11と外部装置55とは、サーボアンプ11に備えられたUSB端子を介して、直接、USBケーブルなどで接続できる場合もある。その場合、履歴データSvは、USBケーブルを介して、直接、外部装置55に読み出される。
以上、本実施の形態の構成とすれば、上位装置45が履歴データSvの保存停止を指示する手段を有していないサーボシステムであっても、時間軸が一致した履歴データSvを取得できる。よって、本実施の形態におけるサーボシステムは、それぞれのサーボアンプが制御する複数のサーボ軸が相互に与える影響について、詳細に分析できる。
また、図8は、比較例として図7における従来構成のタイミングを示すタイミングチャートであり、ここで図8を参照しながら、本構成との差異を説明する。
図8の比較例において、サーボアンプ71が時刻tjでトリガを検出すると、トリガ検出フラグは時刻tkで上位装置85へ通知されることとなり、上位装置85から全てのサーボアンプ71へ履歴データSvの保存停止が指示されるのは時刻tlのサーボ演算周期となる。この場合、トリガを検出してから履歴データSvの保存を停止する指示がサーボアンプ71に伝わるまでに、サーボ演算周期の14周期分の時間だけ遅れることとなる。
一方で、本実施の形態の構成ではトリガを検出したサーボ演算周期からサーボ演算周期の5周期分の時間の遅れで停止の指示を実行することができ、比較例と比較した場合に、サーボ演算情報の保存停止タイミングを大幅に高速化することができる。
また、本実施の形態の構成を応用して、図6中の時刻tfにおけるトリガ条件をサーボアンプで検出できるサーボシステムの異常が発生した条件とし、時刻thにおける動作を履歴データの保存停止ではなく、モータの停止処理へと変更する。このように変更した場合に、異常発生時に複数のサーボ軸のモータ動作の停止タイミングを同期させることができる。
ガントリ構成の機構など、複数のサーボ軸の同時動作が必要な機構においては、モータの停止タイミングのずれにより機構がねじれ、装置破損などにつながる恐れがあるが、本実施の形態の応用例を適用した場合は、機構のねじれや装置破損を軽減する効果も得られる。
本発明のサーボシステム、およびサーボシステムの制御方法は、同期型シリアル通信で複数のサーボ軸を同期制御する半導体製造装置や電子部品実装機などに有用である。
10,70 サーボシステム
11,71,111,112,113 サーボアンプ
12 履歴処理部
13,46 通信部
14,74 サーボ演算部
18 駆動部
15 タイミング生成部
16,76 メモリ
17 メモリ制御部
22 トリガ処理部
26 履歴エリア
30 モータ
31 負荷
41,81 通信線
45,85 上位装置
47,57 I/F部
55,95 外部装置
本発明は、複数のサーボアンプを制御するサーボシステムおよびその制御方法に関し、特に、例えば産業用の高速ネットワーク通信のようなシリアル通信により、複数のサーボ軸が同期して動作するように、それぞれを同時制御する、サーボシステムおよびその制御方法において、そのサーボ演算における履歴データの保存および読み出しの構成および方法に関する。
従来、サーボシステムでは、サーボ演算における情報を履歴データとして記憶部であるメモリに保存するとともに、上位装置を介して接続された外部装置に、履歴データを読み出す機能を有するものがある。
例えば、図7に示すように、このような複数のサーボ軸を制御する従来のサーボシステム70のサーボアンプ71それぞれにおいて、サーボ演算部74におけるサーボ演算での情報は、履歴データSvとしてメモリ76に保存される。保存された履歴データSvは、上位装置85を介して外部装置95に読み出されて、サーボ制御ゲインの調整等に利用される。保存される履歴データSvは、サーボ演算周期の過去m回分(mは整数)の情報である。履歴データSvの例としては、例えばモータ現在位置や、モータ現在速度などがある。
図7中、サーボシステム70が備える、上位装置85と、複数のサーボアンプ71とは、通信線81で接続される。複数のサーボアンプ71それぞれのサーボ演算部74が演算を実行するときのサーボ演算の情報において、それらサーボ演算での情報が有する時間軸が揃っていれば、サーボアンプ71は、それぞれのサーボ軸を調整する際、より精度よく調整できる。
ところで、通信タイミングとサーボ演算処理との同期を取る技術として、例えば、特許文献1のような技術が開示されている。
また、それぞれのサーボ演算に基づく履歴データSvの時間軸を一致させる技術として、上述の図7に示す構成において、上位装置85からそれぞれのサーボアンプ71に対して、履歴データSvの保存開始や保存停止を指示するような構成が開示されている(例えば、特許文献2参照)。
つまり、上記従来のサーボシステム70では、上位装置85から、履歴データSvの保存停止の指示が必要となる。
ところで、近年、EtherCAT(登録商標)を始めとする、オープンネットワークが普及している。よって、オープンネットワークの普及に伴い、サーボシステムは、上位装置の提供者と、サーボアンプの提供者とが異なる組合せが増えている。したがって、上位装置がサーボ演算情報の保存停止を指示する機能を有していない場合、それぞれのサーボ演算情報が有する時間軸を一致させることができない。
特開2003―189654号公報
特開2008−176673号公報
本発明のサーボシステムは、上位装置と複数のサーボアンプとが、通信信号を送受信するサーボシステムである。本サーボシステムにおけるサーボアンプのそれぞれは、サーボ演算処理をするサーボ演算部と、通信信号の送受信を行う通信部と、サーボ演算処理におけるサーボ演算の情報を履歴データとして保存する記憶部と、履歴データの保存を停止するための保存停止条件を予め設定し、サーボ演算周期毎に、保存停止条件に合致するかを判定し、保存停止条件に合致したときにトリガを検出したとする判定の結果を、トリガ検出フラグとして通信部へ通知するトリガ情報処理部とを備える。
また、本発明のサーボシステムの制御方法は、上位装置と複数のサーボアンプとが、通信信号を送受信するサーボシステムである。本サーボシステムの制御方法は、サーボ演算処理におけるサーボ演算の情報を履歴データとして記憶する記憶部に、履歴データの保存を停止するための保存停止条件を予め設定するステップと、サーボ演算周期毎に、保存停止条件に合致するかの判定を行うステップと、保存停止条件に合致したときにトリガを検出したとする判定の結果を、トリガ検出フラグとするステップとを備える。
本発明のサーボシステムおよびその制御方法によれば、通信部を介して履歴データの保存停止を指示する機能を有していない上位装置を用いた構成であっても、複数のサーボアンプがサーボ演算を実行した履歴データが有する時間軸を一致させることができる。
図1は、本発明の実施の形態におけるサーボシステムの要部説明図である。
図2は、本発明の実施の形態におけるサーボシステムで用いる通信周期やサーボ演算周期を含むタイミングの一例を示すタイミングチャートである。
図3は、本発明の実施の形態におけるサーボシステムが有する、上位装置とサーボアンプとが送受信するデータのタイミングの一例を示すタイミングチャートである。
図4は、本発明の実施の形態におけるサーボシステムで用いる通信コマンドと通信レスポンスのデータ構成を示す図である。
図5は、トリガ条件の設定と、トリガの検出について、その一例を示す図である。
図6は、本発明の実施の形態におけるサーボシステムで用いられるサーボ演算情報の保存停止タイミングに関するタイミングチャートである。
図7は、従来のサーボシステムの構成図である。
図8は、比較例として図7における従来構成のサーボシステムでのタイミングを示すタイミングチャートである。
本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施の形態は、本発明を具現化した一例であって、本発明の技術的範囲を制限するものではない。
(実施の形態)
図1は、本発明の実施の形態におけるサーボシステム10の構成図である。
図1に示すように、本実施の形態におけるサーボシステム10は、上位装置45と複数のサーボアンプ11とが、通信線41を介して、1対1接続の双方向のライン型ネットワークトポロジーで通信接続される構成である。図1では、複数のサーボアンプ11として、それぞれ同じ内部構成である3つのサーボアンプ11が、第1のサーボアンプ111、第2のサーボアンプ112および第3のサーボアンプ113の順に上位装置45から接続されている一例を示している。そして、これらサーボアンプ11それぞれの出力には、負荷31を作動させるためのモータ30が接続されている。本実施の形態では、このような構成により、負荷31が所望の動作を実行するように、上位装置45からの指令に従って、サーボアンプ11がモータ30をそれぞれに駆動制御する。なお、以下、適宜、サーボアンプ11を特定する場合には、第1、第2、第3のサーボアンプをそれぞれ、サーボアンプ111、112、113として区分し、それぞれを総称する場合にサーボアンプ11として説明する。また、サーボアンプ11の台数は、複数であればよく、他の台数でもよい。
このようなサーボアンプ11それぞれに対して、制御パラメータを設定したり動作指令を与えたりするために、上位装置45が、通信用データの送受信を行う通信部46を備えるとともに、サーボアンプ11それぞれも、同様の通信部13を備えている。そして、図1に示すように、通信部46と通信部13のそれぞれとが接続されおり、通信線41を介して、各種情報を含む通信信号Cmが双方向に伝送される。この具体的な通信手法としては、同期型のシリアル通信などが好ましく、例えば、近年の産業用の高速ネットワーク通信として知られる上述のようなEtherCAT(登録商標)通信などが好適である。
また、通信内容として、パラメータ設定などに関しては、システムの立上げ時やシステムの動作を変更する場合などにおいて実行される。この制御パラメータとしては、制御ゲインやフィルタの特性に関する設定値などがある。さらに、上位装置45は、パラメータ設定に加えて、モータ30が所望の動き動作をするように、サーボアンプ11それぞれに対しての動作指令などを含めた各種情報を通信コマンドとして送出するとともに、サーボアンプ11それぞれからの各種情報を通信レスポンスとして受信する。
特に、パラメータ設定に関しては初期設定時など不定期であるのに対して、動作指令に関しては、逐次、システム内での動作を指示する必要がある。このため、本実施の形態では、動作指令を更新したり送出したりする基準周期を設定している。
すなわち、本実施の形態では、まず、上位装置45が動作指令などを更新する周期として、上位装置45は、動作指令更新周期Tinsごとに動作指令を生成し、更新している。そして、本実施の形態では、上位装置45と複数のサーボアンプ11とは、動作指令更新周期Tinsの1/L倍(Lは整数)の通信周期Tcmで、動作指令などのデータ交換を同期型シリアル通信で信号を送受信するような一例を挙げている。このように、上位装置45は、基準周期としての通信周期Tcm毎に、位置指令や速度指令などの動作指令を含む指令信号を送出している。また、サーボアンプ11それぞれは、受け取った指令信号に基づき、モータ30の動作を制御する。さらに、サーボアンプ11それぞれは、通信周期Tcm毎に上位装置45に対して、動作状態などの動作情報を含む返信信号を送信する。
さらに、詳細については以下で説明するが、上位装置45からは、通信周期Tcm毎に通信タイミング信号Stが送信されている。そして、サーボアンプ11それぞれは、この通信タイミング信号Stに位相ロックしたクロック信号Ckを基準に、各処理を実行している。
また、上位装置45は、図1に示すように、複数のサーボアンプ11との通信線41を介したシリアル通信とは別の外部のインタフェース部(以下、適宜、I/F部と記す)47を介して、外部装置55のI/F部57と接続されていても良い。
次に、図1を参照しながら、まず、サーボアンプ11の構成の概要について説明する。
図1に示すように、サーボアンプ11は、通信部13と、サーボ演算部14と、タイミング生成部15と、記憶部としてのメモリ16と、メモリ制御部17と、駆動部18と、履歴処理部12とを備える。また、履歴処理部12は、トリガ処理部22を有している。そして、駆動部18から出力される駆動信号Vdが、モータ30に供給される。モータ30には、負荷31が接続される。
このような構成において、通信部13は、上述のように上位装置45と通信信号Cmにより情報や信号のやり取りを行う。さらに、上位装置45からの指令に従って、モータ30の動作を駆動制御するため、サーボアンプ11は、モータ30の位置、速度やトルクを制御するためのサーボ演算部14と、モータ30の巻線を通電駆動するための駆動部18とを備えている。サーボ演算部14は、位置を制御する位置制御、速度を制御する速度制御およびトルクに関する処理を行うトルク処理など、以下で説明するサーボ演算周期Tsv毎にサーボ演算処理を行う。タイミング生成部15は、通信タイミング信号Stに位相ロックしたクロック信号Ckを生成するとともに、サーボ演算周期Tsvを通信周期Tcmの1/M倍(Mは整数)で同期させるなど、通信タイミング信号Stに位相ロックした各種のタイミング信号を生成する。また、駆動部18は、サーボ演算部14でのサーボ演算処理にて算出された駆動データDdに基づく駆動信号Vdを生成する。
そして、本実施の形態では、サーボ演算部14でのサーボ演算処理で使用するデータの履歴を取得可能なように、サーボアンプ11を構成していることを特徴としている。すなわち、本実施の形態では、サーボ演算部14でのデータの履歴に関する処理を実行するために、さらに、履歴処理部12と、メモリ16と、メモリ制御部17とを備えている。ここで、履歴処理部12は、上位装置45からの指示に基づき、履歴処理の実行が指示されると、サーボ演算部14における各種の制御データの中から、その一部である履歴データSvを抽出する。さらに、履歴処理部12は、メモリ16の読み書きなどを制御するためのメモリ制御部17を制御し、これによって、メモリ16は、過去N回分(Nは整数)のサーボ演算周期Tsvについて、サーボ演算情報である履歴データSvを記憶する。サーボ演算情報Svは、サーボ演算処理で用いた、制御データの一部である。サーボ演算情報Svの例としては、モータ現在位置やモータ現在速度などの情報があり、例えば、上位装置45からの位置指令に対し、モータ現在位置が順次追従していくような履歴データSvがメモリ16に保存される。
以上のように、上位装置45は、一定の通信周期Tcmで、同期型シリアル通信で通信を行う通信部46を介して、動作指令をそれぞれのサーボアンプ11に送信する。動作指令には、位置指令などが含まれる。それぞれのサーボアンプ11は、受信した動作指令に基いて、モータ30を駆動する。モータ30は、負荷31に動力を伝える。なお、以下の説明において、サーボアンプ11と、サーボアンプ11に接続されたモータ30とを、サーボ軸ともいう。
次に、サーボアンプ11における各部のより詳細な構成について説明する。
サーボアンプ11において、まず、通信部13は、上述したように、通信線41に接続されており、通信信号Cmとして、上位装置45から、制御パラメータや動作指令などを含めた各種情報を受信するとともに、上位装置45に対して、サーボアンプ11内での各種情報を送信する。
通信部13は、例えばシステムを立上げる初期設定時などにおいて、各種ゲインやフィルタ定数などの一群のデータを含む制御パラメータを、上位装置45から受け取り、サーボ演算部14に設定する。また、上位装置45は、初期設定などが完了すると、通信周期Tcm毎に、通信信号Cmでの通信コマンドCcmdとして、動作指令を含む情報を送出し、その情報を通信部13が受け取る。通信部13は、受け取った通信信号Cmを解析し、自身に対して送られた通信コマンドCcmdを抽出する。さらに、抽出した通信コマンドCcmdから、例えば、位置や速度指令である指令データRins、詳細については以下で説明する履歴処理用データHdtや保存開始コマンドStarをさらに抽出する。例えば、指令データRinsは、図1に示すように、位置や速度指令としてサーボ演算部14に通知され、サーボ演算部14によって、この指令データRinsが示す指令に追従するような動作制御が実行される。
図2は、本発明の実施の形態におけるサーボシステム10で用いる通信周期Tcmやサーボ演算周期Tsvを含むタイミングの一例を示すタイミングチャートである。また、図3は、上位装置45と第1のサーボアンプ111、第2のサーボアンプ112および第3のサーボアンプ113とが送受信するデータのタイミングの一例を示すタイミングチャートである。
ここで、図2および図3を参照しながら、具体的な一例を挙げて、通信周期Tcmやサーボ演算周期Tsvを含む各タイミングの関係について説明する。
すなわち、本実施の形態では、上述の動作指令更新周期Tinsと通信周期Tcmとの比率1/LでのLについては、L=2とし、さらに、通信周期Tcmとサーボ演算周期Tsvとの比率1/MでのMについては、M=3としている。
これより、本実施の形態において、上位装置45での指令を更新する周期、すなわち指令更新周期Tinsは、1周期が1.0msと設定すると、サーボアンプ11の通信周期Tcmは、指令更新周期Tinsの2分の1となり、1周期が0.5msである。さらに、通信周期Tcmは、1周期が0.5msであることより、サーボ演算周期Tsvは、図2に示すように、通信周期Tcmの3分の1となり、1周期が0.166msである。通信タイミング信号Stは、通信周期Tcmが1周期経過し、動作指令が送信される毎に、上位装置45から通信信号Cmに重畳して伝送される。また、サーボ演算周期Tsvが1周期経過する毎に、サーボ演算起動信号Ssvが発生する。サーボ演算起動信号Ssvが発生すると、それぞれのサーボアンプ11では、図2および図3に示すように、サーボ演算処理が行われる。よって、本実施の形態では、通信周期Tcmが1周期経過する間に、3回のサーボ演算処理が実行される。
また、通信タイミング信号Stに同期したサーボ演算起動信号Ssvなどを生成するため、通信部13は、この通信タイミング信号Stを検出し、タイミング生成部15に転送する。ここで、動作指令などはデータとなる信号であるのに対して、通信タイミング信号Stは、周期的なタイミングを示すためのパルス信号である。本実施の形態では、この通信タイミング信号Stを同期信号として利用し、タイミング生成部15において、通信タイミング信号Stの周期に同期したクロック信号Ckを生成している。さらに、タイミング生成部15は、クロック信号Ckを分周する分周カウンタや位相比較器などを有しており、これらを利用して、いわゆるPLL(Phase Locked Loop)回路を構成している。このような構成により、PLLの原理の基づき、クロック信号Ckが通信タイミング信号Stに位相ロックし、クロック信号Ckが通信タイミング信号Stに同期する。クロック信号Ckは、周知のとおり、サーボアンプ11内のデジタル処理に利用される。さらに、分周カウンタなどを利用し、このクロック信号Ckを所定の比率で分周することで、図2に示すようなパルス信号であるサーボ演算起動信号Ssvや、駆動部18で利用するPWM(パルス幅変調)キャリア信号を生成するための信号(図示せず)などを生成している。なお、図2では、タイミング生成部15が、通信タイミング信号Stに対するサーボ演算起動信号Ssvの遅れ時間tdlを一定にしたようなサーボ演算起動信号Ssvを生成する一例を示している。本実施の形態1において、遅れ時間tdlは、10μsである。
以上、サーボアンプ11のクロック信号が自走の場合には、ハードウェアの製造ばらつきを要因として、クロック誤差等が生じることがある。クロック誤差等が生じると、通信周期Tcmは、サーボ演算周期Tsvの完全な整数倍にならないこともある。これに対し、本実施の形態では、タイミング生成部15が通信タイミング信号Stの周期に同期したクロック信号Ckを生成する構成としている。よって、それぞれのサーボ軸で実行されるサーボ演算処理は、起動タイミングが一致する。
次に、サーボ演算部14には、タイミング生成部15から、通信タイミング信号Stに同期したサーボ演算起動信号Ssvが供給される。サーボ演算部14は、上述したように、このサーボ演算起動信号Ssvのタイミングに従い、同期してサーボ演算処理を実行する。よって、それぞれのサーボ軸で実行されるサーボ演算処理のタイミングも一致する。
さらに、サーボアンプ11において、このサーボ演算部14と駆動部18とは、モータ30の動作を制御するために設けている。ここで、モータ30は、例えば、UVW相の3相駆動のブラシレスモータである。すなわち、モータ30は、各相に対応する巻線を備えたステータと永久磁石を保持したロータとを含む構成である。このステータの各巻線に、互いの位相が異なる駆動信号Vdを加えることで巻線が通電され、巻線に電流が流れてロータが回転する。なお、モータ30は、負荷31に対して直接に直線的位置制御するリニアモータであってもよい。
このようなモータ30を駆動制御するため、サーボ演算部14は、モータ30の位置、速度やトルクを制御する。そして、駆動部18は、モータ30の巻線を通電駆動する。
サーボアンプ11がこのようにモータ30を制御するため、まず、上位装置45は、指令更新周期Tins毎に、動作指令としての指令データRinsを生成している。この指令データRinsは、通信周期Tcm毎に、上位装置45からサーボアンプ11に対して、通信信号Cmに含めて通知される。そして、通信部13は、受け取った通信信号Cmから指令データRinsを抽出し、この指令データRinsをサーボ演算部14に供給する。指令データRinsは、指令位置や指令速度を示すデータである。
ここで、例えば、上位装置45からロータ位置を指令する位置指令が供給される場合には、サーボ演算部14は、モータ30の位置制御を行うように、次のような動作を行う。すなわち、サーボ演算部14は、位置検出器などからの検出位置情報を利用したフィードバック制御によって、上位装置45からの指令データRinsが示す位置指令にモータ30のロータの実回転位置が追従するように、回転動作を制御する。
このようなフィードバック制御を行うため、サーボ演算部14は次のような演算処理を実行する。すなわち、サーボ演算部14は、まず、位置制御として、位置指令と位置検出器(図示せず)からの検出位置情報との差である位置偏差を算出する。さらに、位置制御として、その位置偏差に対して位置ゲインを乗算するなどの演算を行うことで速度指令を算出する。また、サーボ演算部14は、通知された位置検出情報に対して例えば微分演算を行うことによりモータ30の回転速度を算出する。さらに、サーボ演算部14は、この算出した回転速度と速度指令との差である速度偏差を算出する。さらに、サーボ演算部14は、その速度偏差に対して比例演算や積分演算を行うことにより、モータ30を作動させようとする駆動トルク量に対応したトルク指令を算出し、駆動データDdとして駆動部18に供給する。
駆動部18は、サーボ演算部14から供給された駆動データDdに基づく駆動電圧Vdを生成する。具体的には、駆動部18は、パルス幅変調(PWM)回路やスイッチ素子で構成されるインバータを有している。駆動部18は、PWM回路により、駆動データDdに応じてパルス幅変調されたパルス信号を生成し、それらパルス信号でインバータのスイッチ素子をオンオフ制御することで、駆動信号Vdを生成している。このように、駆動部18は、生成した駆動信号Vdを相ごとの巻線に印加し、モータ30を駆動している。
さらに、本実施の形態でのサーボアンプ11は、上述したように、サーボ演算部14での処理におけるデータを順次に抽出し、その履歴を保存するため、履歴処理部12と、メモリ16と、メモリ制御部17とを備えている。
このような履歴処理を実行するため、まず、上位装置45からの通信信号Cmには、履歴処理に関する通信コマンドCcmdが含まれており、通信部13は、履歴処理に関する通信コマンドCcmdを抽出して履歴処理部12に供給する。履歴処理に関する通信コマンドCcmdとしては、履歴処理データHdt、保存開始コマンドStarや読出コマンドRhsなどが含まれる。
ここで、履歴処理データHdtは、履歴として保存する対象データの保存種別情報Isv、保存停止のトリガとして利用する対象データのトリガ種別情報Itr、トリガでの判別値となるトリガレベル値Ithなどが含まれる。保存種別情報Isvは、サーボ演算部14における処理として、例えば、位置偏差、速度偏差、回転速度などと指定する情報である。また、トリガ種別情報Itrも、サーボ演算部14における処理として、例えば、指令データRinsや、保存種別情報Isvと同様の位置偏差、速度偏差、回転速度などと指定する情報である。また、保存開始コマンドStarは、メモリ16への履歴保存の開始を指示するためのコマンドである。読出コマンドRhsは、メモリ16に履歴保存されたデータの読み出しの開始を指示するためのコマンドである。
次に、履歴処理部12は、通信部13からの履歴処理データHdtや保存開始コマンドStarに応じて、履歴保存に関する処理を実行する。履歴処理部12は、保存開始コマンドStarを参照し、保存開始コマンドStarが保存開始を示すとき、履歴保存に関する処理を開始する。
また、履歴処理部12は、トリガ処理部22を有している。このトリガ処理部22は、履歴保存に関する処理を停止させるために設けている。トリガ処理部22には、履歴処理データHdtに含まれるトリガ種別情報Itrやトリガレベル値Ithなどが供給される。トリガ処理部22は、トリガ種別情報Itrが示す種別のデータをトリガ用データTrとして、サーボ演算部14から取り込む。さらに、トリガ処理部22は、トリガ用データTrとトリガレベル値Ithとを比較し、トリガ用データTrがトリガレベル値Ithを超えた時点で、履歴保存に関する処理を停止する。
トリガ処理部22は、このように履歴保存に関する処理を開始および停止させるため、メモリ制御部17に対して、保存開始信号Strおよび保存停止信号Stpを出力する。すなわち、トリガ処理部22は、保存開始コマンドStarに基づき保存開始信号Strを出力する。また、トリガ処理部22は、上述のようなトリガ用データTrとトリガレベル値Ithとの比較に基づき保存停止信号Stpを出力する。そして、メモリ制御部17は、保存開始信号Strの保存開始タイミングでメモリ16への書き込みを可能状態にし、保存停止信号Stpの保存停止タイミングでメモリ16への書き込みを不可状態にしている。
また、このようなトリガ処理部22の処理と並行して、履歴処理部12は、保存種別情報Isvが示す種別のデータを履歴データSvとして、サーボ演算部14から取り込み、書込用履歴データWsvとしてメモリ16に供給している。
履歴処理部12が以上のような動作を実行することで、メモリ16の演算履歴保存領域である履歴エリア26には、保存開始から保存停止までの履歴データSvが、サーボ演算周期Tsv毎に記憶される。
より具体的な履歴処理部12の動作例として、例えば、保存対象データを指定する保存種別情報Itrを「位置偏差」、トリガ対象データを指定するトリガ種別情報Isvを「回転速度」とし、トリガレベル値Ithを「1000rpm」とした場合、履歴処理部12は、次のような処理を実行する。すなわち、履歴処理部12は、サーボ演算部14における位置偏差のデータを履歴データSvとして取り込む。そして、履歴処理部12は、トリガ用データTrである回転速度が、トリガレベル値Ithである1000rpmとなるまで、サーボ演算周期Tsv毎に、履歴データSvとして取り込んだ位置偏差のデータを、メモリ16に履歴として記録する。
特に、詳細については以下で説明するが、保存停止の動作に関しては、トリガを最初に検出したサーボアンプ11とそれ以外のサーボアンプ11とで動作が異なるように、本実施の形態では構成している。本実施の形態では、このような構成とすることにより、最後に履歴データSvを取得するタイミングをそれぞれのサーボアンプ11間で一致させている。
また、読出コマンドRhsにより読み出しの指示が成されると、履歴処理部12は、メモリ16に保存された一群の履歴データSvを読出履歴データRsvとして読み出し、通信部13に転送する。そして、通信部13は、通信レスポンスCrspとして上位装置45に伝送する。
次に、上位装置45とそれぞれのサーボアンプ11との間で行われるデータの流れを中心に、本実施の形態におけるサーボシステムの詳細な動作について説明する。
上述したように、上位装置45とそれぞれのサーボアンプ11との間において、通信コマンドCcmdおよび通信レスポンスCrspを含む通信信号Cmが伝送されている。通信コマンドCcmdは、上位装置45からサーボアンプ11それぞれへ送信するデータであり、通信レスポンスCrspは、サーボアンプ11それぞれから上位装置45へ返信するデータである。通信コマンドCcmdは、上位装置45から発信され、通信線41を介して、各サーボアンプ11へ到達する。また、通信レスポンスCrspは、各サーボアンプ11から返信され、通信線41を介して、上位装置45へ到達する。
通信コマンドCcmdの送信は、図3に示すように、時刻taにおいて、上位装置45から各サーボアンプ11に向けて実行される。通信コマンドCcmdには、サーボアンプ111、112および113のそれぞれに対する個別の指示が含まれる。それぞれのサーボアンプ11の通信部は、受け取った通信コマンドCcmdを確認し、最初に、それぞれを識別するための軸アドレスを参照し、自らに対する指示である通信コマンドCcmdを抽出する。
まず、時刻taでは、上位装置45において通信部46に対して、各サーボアンプ11に指示すべき通信コマンドCcmdが設定される。ここで、時刻taは、指令更新周期Tinsと、通信部46の通信周期Tcmと、が更新されるタイミングである。
次に、時刻tbでは、通信部46からサーボアンプ111、112および113のそれぞれの通信部13に対して、通信コマンドCcmdが同時に送信される。ここで、時刻tbは、通信部46と通信部13との間の通信周期Tcmと、各サーボアンプ11のサーボ演算周期Tsvと、が更新されるタイミングである。
その後、通信コマンドCcmdを受け取った、それぞれのサーボアンプ11は、軸アドレスにより、自らに対する通信コマンドCcmdを識別する。それぞれのサーボアンプ11は、識別したそれぞれの通信コマンドCcmdに基づき、サーボ演算処理を実行する。
また、通信レスポンスCrspの返信は、図3に示すように、時刻tdにおいて、それぞれのサーボアンプ11から上位装置45に向けて、実行される。
まず、時刻tdでは、各サーボアンプ11内において、通信部13に対し、上位装置45への応答として、それぞれの通信レスポンスCrspが設定される。ここで、時刻tdは、各サーボアンプ11のサーボ演算周期Tsvと、通信部13の通信周期Tcmと、が更新されるタイミングである。
次に、時刻teでは、通信部13から上位装置45の通信部46に対して、通信レスポンスCrspが送信される。通信レスポンスCrspは、それぞれのサーボアンプ11における通信レスポンスが合成された情報である。ここで、時刻teは、通信部13と通信部46との間の通信周期Tcmと、指令更新周期Tinsと、が更新されるタイミングである。
ところで、時刻tcにおいて、各サーボアンプ11内で通信部13に対して、それぞれの通信レスポンスが設定されることがある。この場合、時刻tdで、通信部13から上位装置45の通信部46に対して、通信レスポンスCrspが送信できる状態となる。しかしながら、時刻tdは、通信部46の通信周期Tcmと、指令更新周期Tinsと、が更新されるタイミングではない。よって、時刻tdでは、通信部13から上位装置45に対して、通信レスポンスCrspが送信されない。その後、通信部46の通信周期Tcmと、指令更新周期Tinsと、が更新されるタイミングである時刻teにおいて、通信部13から上位装置45に対して、通信レスポンスCrspが送信される。
以上、上述した流れにより、上位装置45とサーボアンプ11のそれぞれとの間で、データの送受信が行われる。
また、サーボシステムが、リング型ネットワーク・トポロジー(Ring Network Topology)で構成されている場合、それぞれのサーボアンプには、各サーボアンプと上位装置との接続順に、通信コマンドが伝達される。同様に、上位装置には、上位装置と各サーボアンプとの接続順に、通信レスポンスが伝達される。つまり、全てのサーボアンプから送信された通信レスポンスを取得できるのは、最後段に位置するサーボアンプとなる。
あるいは、サーボシステムが、ライン型ネットワーク・トポロジー(Line Network Topology)で構成されている場合、それぞれのサーボアンプは、接続された順番に係わらず、通信周期が更新されるタイミングで、他のサーボアンプから送信された通信レスポンスを取得する。例えば、本実施の形態において、通信周期Tcmが更新されるタイミングとは、図3に示すような時刻ta、時刻tb、時刻tc、時刻td、時刻teなどである。
本実施の形態におけるサーボシステム10は、ライン型ネットワーク・トポロジーを用いることで、顕著な作用効果を得ることができる。よって、以下の説明において、サーボシステム10は、ライン型ネットワーク・トポロジーを前提として、説明を行う。
図4は、本発明の実施の形態におけるサーボシステムで用いる通信コマンドCcmdと通信レスポンスCrspとのデータ構成を示す図である。
次に、図4を参照しながら、通信コマンドCcmdおよび通信レスポンスCrspの構成とともに、サーボ演算情報として履歴データSvが、メモリ16に保存される処理について説明する。
上位装置45からサーボアンプ11へは、図4で一例を示すような1軸分のサーボ軸用の、1軸に着目した場合の通信コマンドCcmdが送信され、サーボアンプ11から上位装置45へは、通信レスポンスCrspが送信される。
図4に示すように、通信コマンドCcmdには、履歴処理部12における履歴保存および履歴読出に関連するデータやコマンドが含まれている。履歴保存用としては、上述したような次のデータがある。すなわち、メモリ16に保存する対象を特定するための保存種別情報Itr、メモリ16への保存開始を指示するための保存開始コマンドStar、トリガ処理に利用する対象を特定するためのトリガ対象情報Itrや、トリガ処理に利用するトリガのレベルを示すトリガレベル値Ithである。
また、履歴読出用としては、読み出しを指示するための読出コマンドRhs、メモリ16から読み出すデータを指定するための読出データ番号riがある。ここで、本実施の形態では、読出データ番号riは、データを保存した最新から過去に向かっての順番の数としている。すなわち、本実施の形態では、読出データ番号riが1のときは、最新の保存されたデータを指定し、読出データ番号riが2のときは、その1つ前にメモリ16に保存されたデータを指定するように設定している。このような設定とすることにより、上位装置45は、メモリ16のアドレスを指定することなく、最新の読出履歴データRsvから順に古い読出履歴データRsvを読み出していくことができる。さらに、最新の読出履歴データRsvから読み出せるため、サーボアンプ111、サーボアンプ112およびサーボアンプ113のそれぞれから、同時刻となる最新の読出履歴データRsvを読み出すことができ、サーボアンプ11それぞれのメモリ16に保存した一群の履歴データSvの時間軸を一致させることができる。
また、このようにメモリ16から読み出した読出履歴データRsvは、図4の通信レスポンスCrspに示すように、読出データRsv(ri)として、サーボアンプ11の通信部13から上位装置45へと伝送される。
以上のように、保存種別情報Itrで特定されたサーボ演算情報である履歴データSvは、メモリ16に保存される。履歴データSvは、サーボ演算処理にて用いられる制御データの一部である。履歴データSvは、例えば、モータ現在位置やモータ現在速度などのように、予めその内容が保存種別情報Itrによって定められる。サーボ演算処理は、サーボ演算部14で実行される。
上位装置45から送信される通信コマンドCcmdには、保存種別情報Itrとともに保存開始コマンドStarが含まれる。
履歴データSvをメモリ16に保存させるため、上位装置45から保存開始コマンドStarを各サーボアンプ11に同一通信周期Tcmにて送信する。
なお、保存開始コマンドStarは、外部装置55から、上位装置45のI/F部47を介して各サーボアンプ11に対して送信してもよい。
1つの通信コマンドCcmdには、保存開始コマンドStarとともに、動作コマンドと、トリガ対象情報Itrと、トリガレベル値Ithと、が含まれる。この通信コマンドCcmdに対して返信される、1軸分の通信レスポンスCrspには、保存種別情報Itrとともに、軸アドレスエコーと、動作コマンドエコーと、トリガ検出フラグと、保存開始コマンドエコーと、トリガ設定状態Strと、読出コマンドエコーとが含まれる。保存種別情報Itrで指定される履歴データSvには、最新のサーボ演算処理で算出された情報が用いられる。
トリガ設定状態Strは、2値の情報である。例えば、トリガ対象情報ItrとトリガレベルIthとがサーボアンプ11に設定されている場合、トリガ設定状態Strは、トリガ処理が設定されていることを示す“1”となる。他の場合、すなわち、トリガ対象情報ItrとトリガレベルIthとがサーボアンプ11に設定されていない場合、トリガ設定状態Strは、トリガ処理が設定されていないことを示す“0”となる。
上位装置45あるいは外部装置55において、通信レスポンスCrspに含まれるトリガ設定状態Strを確認すれば、それぞれのサーボアンプ11で、正しくトリガ対象情報Itrと、トリガレベルIthとが、設定できているか否かを判断できる。
履歴処理部12が保存開始コマンドStarを受信すれば、サーボアンプ11では、受信後のタイミングで実行されるサーボ演算処理で使用する履歴データSvを、メモリ16内に割り当てられている履歴エリア26[m](mは整数)に保存する。
履歴エリア26[m]において、mはメモリ16のアドレスに対応しており、1回目のデータは、履歴エリア26[1]に保存される。その後、順次演算された結果は、履歴エリア26[2]、履歴エリア26[3]、以下同様、に順に保存される。m回目のデータは、履歴エリア26[m]に保存される。
やがて、メモリ16内において、履歴データSvを保存する領域は、上限の回数であるm回に達する。このとき、m+1回目の履歴データSvは、履歴エリア26[1]に上書きされる。その後、m+2回目の履歴データSvは、順次、履歴エリア26[2]、履歴エリア26[3]、以下同様、に順に上書きされる。このように、本実施の形態の履歴エリア26[m]は、いわゆるリングバッファメモリを構成している。
次に、トリガ処理部22の動作について、説明する。
トリガ処理部22は、通信コマンドCcmdからのトリガ対象情報Itrおよびトリガレベル値Ithによりトリガ条件を設定し、トリガ対象情報Itrで指定されたトリガ用データTrとトリガレベル値Ithとの比較に基づき、履歴データSvの保存停止をメモリ16に指示する。
図5は、トリガ条件の設定と、トリガの検出について、その一例を示す図である。図5では、トリガ対象情報Itrとして「回転速度」を設定し、サーボ演算部14から、その「回転速度」に対応する回転速度データをトリガ用データTrとして抽出した一例を示している。図5に示すように、トリガ処理部22は、サーボ演算周期Tsv毎に、トリガ用データTrがトリガレベル値Ithを超えたかどうかを判定している。上述のトリガ対象情報Itrおよびトリガレベル値Ithによりトリガ条件が設定されると、図5に示すように、例えばモータ現在速度などのトリガ用データTrが、予め設定されたトリガレベル値Ith以上であるかをサーボ演算周期Tsv毎に判断する。
図5の場合は、サーボ演算周期Tsv毎にトリガ用データTrの値が増加する例を示しており、トリガ用データTrがトリガレベル値Ith以上となった場合、トリガ処理部22は、通信レスポンスCrspに含まれるトリガ検出フラグFtrに、トリガが検出されたという判断結果を2値の情報である“1”として設定する。
次に、履歴データSvの保存停止について図6を用いて説明する。なお、以下、適宜、トリガ用データTrがトリガレベル値Ith以上となったときを、トリガが検出されたとして説明する。
履歴データSvの保存停止は、トリガを最初に検出したサーボアンプ11とそれ以外のサーボアンプ11で動作が異なるため、まずトリガを最初に検出したサーボアンプ11における動作について説明する。なお、前者を保存停止の動作1、後者を保存停止の動作2とする。また、図6では、第1のサーボアンプ111がトリガを最初に検出し、第2のサーボアンプ112と第3のサーボアンプ113とがそれ以外の場合を示している。
まず、保存停止の動作1について説明する。
図6に示す時刻tfにおいて、第1のサーボアンプ111のトリガ処理部22でトリガが検出された場合、トリガ処理部22では続けて、メモリ16へ履歴データSvの保存停止を指示するタイミングまでの保留回数を算出する。すなわち、トリガを最初に検出したサーボアンプ11では、直ちに履歴データSvの保存を停止するのではなく、次に説明する保留回数だけ保存した後に、保存を停止する。この保留回数は、現在のサーボ演算周期Tsvが通信周期Tcmに対して何回目であるか、という情報をトリガ検出周期番号とした、次の演算によって求められる。
保留回数=(2×通信周期/サーボ演算周期−トリガ検出周期番号+1)、但し、小数点以下は切り捨て。
図6の例においては、次のように算出される。
保留回数=2×0.5/0.166―2+1=5(小数点以下は切り捨て)。
算出された保留回数は、トリガが検出された時刻tf以降、サーボ演算周期Tsv毎に「1」ずつ、減算される。その後、保留回数が「0」となる、時刻thのサーボ演算周期Tsvで、トリガを検出したサーボアンプ11のトリガ処理部22は、メモリ16へ履歴データSvの保存停止を指示し、履歴データSvの保存が停止される。
次に、保存停止の動作2について説明する。
すなわち、トリガを最初に検出した第1のサーボアンプ111以外の第2、第3のサーボアンプ112、113における、トリガ処理部22の動作について説明する。
図6の時刻tfで第1のサーボアンプ111のトリガ処理部22によって更新されたトリガ検出フラグFtrは、時刻tgのタイミングで通信レスポンスCrspとして通信部13に送信される。通信レスポンスCrspは、時刻thで、通信レスポンスCrspとして第2、第3のサーボアンプ112、113へ伝達される。ここで、時刻thは、通信部13の通信周期Tcmと、各サーボアンプ11のサーボ演算周期Tsvとが更新されるタイミングである。第2、第3のサーボアンプ112、113のトリガ処理部22は、第1のサーボアンプ111経由で伝達された通信レスポンスCrspに含まれるトリガ検出フラグFtrによって、自軸以外のサーボアンプ11でトリガが検出されたかどうかを判断する。そして、トリガが検出されていたと判断した場合、自軸のメモリ16へ履歴データSvの保存停止を指示し、履歴データSvの保存が停止される。
なお、保存停止の動作2の方が、保存停止の動作1よりも制御における優先度が高いものとする。これは、例えば時刻tgにおいて、第3のサーボアンプ113がトリガを検出した場合に、保存停止の動作1に従うと、実際に第3のサーボアンプ113での保存停止が行われるのは、時刻tiのタイミングとなってしまうためである。ここで、時刻tgは、時刻tfで第1のサーボアンプ111がトリガを検出し、その情報が他のサーボ軸へ伝達されない区間である。これに対し、保存停止の動作2の優先度を高くすることで、第3のサーボアンプ113は、時刻thのタイミングで伝達されるトリガ検出フラグFtrにより、自軸のメモリ16に対して履歴データSvの保存停止を指示し、履歴データSvの保存を停止することができる。
以上に示したトリガ処理部22の動作により、第1、第2、第3のサーボアンプ111、112、113それぞれにおける履歴データSvの保存を停止するタイミングが時刻thで揃うことになる。このため、それぞれの履歴データSvの時間軸を一致させる効果が得られる。
次に、サーボアンプ11のメモリ16に保存された情報の読み出しについて、図1、図4を用いて説明する。
上位装置45は、メモリ16に保存された履歴データSvを読み出すために、通信部46を介して、それぞれのサーボアンプ11に対して、読み出しを指示する。
実際には、読出コマンドRhsと、読み出す対象となる履歴データSvを指定するための読出データ番号riを送信する。
なお、読出コマンドRhsと読出データ番号riとは、外部装置55からI/F部57を用いて上位装置45経由で送信しても良い。
サーボアンプ11は、読出コマンドRhsと読出データ番号riとを受信すると、受信した読出データ番号riで指定される内容に従い、指定された履歴エリア26[m]から、指定された履歴データSvを読み出す。その後、サーボアンプ11は、読み出した履歴データSvを読出データRsv(ri)として、通信部13を介して上位装置45に返信する。
ここで、履歴エリア26[m]の指定方法について、一例を挙げて説明する。
読出データ番号riが、1の場合を最新の履歴データSvとする。このとき、サーボアンプ11は、最終保存データの保存先である履歴エリア26[i]が有するデータを返信する。
また、読出データ番号riが、2の場合を最新の状態より1回前のデータとすると、履歴エリア26[i−1]が有するデータを返信する。
保存停止したデータは、次の方法で利用できる。
それぞれのサーボ軸に含まれる履歴データSvは、履歴エリア26[i]から読み出される。読み出された履歴データSvは、通信部13を介して上位装置45に読み出される。読み出された履歴データSvは、サーボゲインの調整などに利用できる。
上位装置45からサーボシステム外部への読み出しは、次の方法で利用できる。
上位装置45は、例えばパーソナルコンピュータなどの外部装置55と接続される。
上位装置45と外部装置55とは、例えば、RS232C、USBなどの規格に対応した外部のシリアル通信手段としてのI/F部57で接続できる。外部装置55に読み込まれた履歴データSvは、外部装置55上で、グラフ化するなどして、利用できる。
あるいは、それぞれのサーボアンプ11と外部装置55とは、サーボアンプ11に備えられたUSB端子を介して、直接、USBケーブルなどで接続できる場合もある。その場合、履歴データSvは、USBケーブルを介して、直接、外部装置55に読み出される。
以上、本実施の形態の構成とすれば、上位装置45が履歴データSvの保存停止を指示する手段を有していないサーボシステムであっても、時間軸が一致した履歴データSvを取得できる。よって、本実施の形態におけるサーボシステムは、それぞれのサーボアンプが制御する複数のサーボ軸が相互に与える影響について、詳細に分析できる。
また、図8は、比較例として図7における従来構成のタイミングを示すタイミングチャートであり、ここで図8を参照しながら、本構成との差異を説明する。
図8の比較例において、サーボアンプ71が時刻tjでトリガを検出すると、トリガ検出フラグは時刻tkで上位装置85へ通知されることとなり、上位装置85から全てのサーボアンプ71へ履歴データSvの保存停止が指示されるのは時刻tlのサーボ演算周期となる。この場合、トリガを検出してから履歴データSvの保存を停止する指示がサーボアンプ71に伝わるまでに、サーボ演算周期の14周期分の時間だけ遅れることとなる。
一方で、本実施の形態の構成ではトリガを検出したサーボ演算周期からサーボ演算周期の5周期分の時間の遅れで停止の指示を実行することができ、比較例と比較した場合に、サーボ演算情報の保存停止タイミングを大幅に高速化することができる。
また、本実施の形態の構成を応用して、図6中の時刻tfにおけるトリガ条件をサーボアンプで検出できるサーボシステムの異常が発生した条件とし、時刻thにおける動作を履歴データの保存停止ではなく、モータの停止処理へと変更する。このように変更した場合に、異常発生時に複数のサーボ軸のモータ動作の停止タイミングを同期させることができる。
ガントリ構成の機構など、複数のサーボ軸の同時動作が必要な機構においては、モータの停止タイミングのずれにより機構がねじれ、装置破損などにつながる恐れがあるが、本実施の形態の応用例を適用した場合は、機構のねじれや装置破損を軽減する効果も得られる。
本発明のサーボシステム、およびサーボシステムの制御方法は、同期型シリアル通信で複数のサーボ軸を同期制御する半導体製造装置や電子部品実装機などに有用である。
10,70 サーボシステム
11,71,111,112,113 サーボアンプ
12 履歴処理部
13,46 通信部
14,74 サーボ演算部
18 駆動部
15 タイミング生成部
16,76 メモリ
17 メモリ制御部
22 トリガ処理部
26 履歴エリア
30 モータ
31 負荷
41,81 通信線
45,85 上位装置
47,57 I/F部
55,95 外部装置