(57)【要約】【課題】上位制御装置からの指令が受信できない場合であっても制御対象のサーボモータが急加速・急減速することを防止できるサーボ制御装置を提供することである。【解決手段】本発明のサーボ制御装置は、上位制御装置から指令が受信できなかった制御周期ｎにおいて、該制御周期ｎよりも前の制御周期において前記サーボモータの制御に用いた移動量に基づいて算出された加々速度と、該制御周期ｎの１つ前の制御周期において前記サーボモータの制御に用いた移動量とに基づいて代替指令移動量を算出する代替指令算出部１０３と、上位制御装置から指令が受信できなかった制御周期ｎにおいて、代替指令移動量を用いて前記サーボモータの移動を制御する指令移動量調整部１０４と、を備える。【選択図】図２
2018073034.tif 000002
【特許請求の範囲】
【請求項１】
所定の制御周期で上位制御装置から受信した指令による移動量に基づいてサーボモータを制御するサーボ制御装置において、
前記上位制御装置から指令が受信できなかった制御周期ｎにおいて、該制御周期ｎよりも前の制御周期において前記サーボモータの制御に用いた移動量に基づいて算出された加々速度と、該制御周期ｎの１つ前の制御周期において前記サーボモータの制御に用いた移動量とに基づいて代替指令移動量を算出する代替指令算出部と、
前記上位制御装置から指令が受信できなかった制御周期ｎにおいて、前記代替指令移動量を用いて前記サーボモータの移動を制御する指令移動量調整部と、
を備えるサーボ制御装置。
【請求項２】
前記指令移動量調整部は、前記制御周期ｎの次の制御周期（ｎ＋１）において前記上位制御装置から受信した指令による移動量と、前記制御周期ｎに前記サーボモータの移動制御に用いた前記代替指令移動量との差分を算出し、該差分を前記制御周期（ｎ＋１）以降において解消するように前記サーボモータの制御に用いる移動量を調整する、
請求項１に記載のサーボ制御装置。
【請求項３】
制御周期毎に、あらかじめ定められた加速度と、１つ前の制御周期において前記サーボモータの制御に用いた移動量とに基づいて、当該制御周期における前記サーボモータの移動量の上限である指令移動量上限値を算出する指令上限値算出部と、
制御周期毎に、前記指令移動量調整部から出力された余り移動量から残移動量を算出し、算出した残移動量を当該制御周期の次の制御周期に出力する残移動量算出部と、
前記指令移動量調整部は、制御周期毎に、前記上位制御装置から受信した指令による移動量に前記残移動量を加算した移動量を、前記指令移動量上限値によりクランプして当該制御周期における前記サーボモータの制御に用いる移動量とし、前記指令移動量上限値によりクランプされた移動量を余り移動量として前記残移動量算出部へ出力する、
請求項１または２に記載のサーボ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーボ制御装置に関し、特に上位制御装置から受信できなかった指令をリカバリするサーボ制御装置に関する。
【背景技術】
【０００２】
サーボ制御装置は、上位制御装置との間でシリアル通信などの通信路で接続され、制御周期（通信周期）毎に上位制御装置から指令を受信し、受信した指令による移動量に基づいてサーボモータを移動制御する。
【０００３】
サーボ制御装置と上位制御装置との間で通信障害が発生すると、サーボ制御装置は、当該通信障害が発生した制御周期における上位制御装置からの指令を得ることができなくなり、サーボ制御装置は当該制御周期においてサーボモータに対して出力するべき移動量を該指令に基いて決定できなくなる。サーボ制御装置が制御しているサーボモータが所定の速度で駆動している最中にこのような通信障害が発生した場合、サーボ制御装置が当該制御周期においてサーボモータに対して移動量を出力しないようにすると、サーボモータが急停止して機械にショックが発生するという問題がある。このような問題に対応するために、例えば特許文献１には、上位制御装置との間で通信異常が発生した際に、前回の制御周期において受信した指令による移動量に基づいて代替指令移動量を作成してモータに対して出力すると共に、受信できなかった指令の再送を上位制御装置に要求するモータ制御装置が開示されている。特許文献１に開示されるモータ制御装置は、通信障害が発生した次の制御周期に再送された前回の指令を受信し、指令未受信時の代替指令との誤差を解消するように移動量を補正して誤差を収束している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３１３０４２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
図５は、特許文献１に開示されるモータ制御装置における通信障害発生時の処理について説明する図である。図５のグラフは、横軸に時間、縦軸に各制御周期にモータに対して出力される移動量（制御周期を単位時間と見た場合の速度）を表しており、制御周期ｎにおいて通信障害が発生した場合を示している。特許文献１に開示されるモータ制御装置は、制御周期ｎにおいて通信障害が発生し、当該制御周期に上位制御装置から受信するべき指令（移動量（３））を受け取れなかった場合、当該制御周期（制御周期ｎ）には前の制御周期である制御周期（ｎ−１）に受信した指令による移動量と同じ移動量を代替移動量（移動量（１））としてモータに対して出力する（代替指令出力）。そして、次の制御周期（ｎ＋１）において、当該制御周期において上位制御装置から受信した指令による移動量（２）と、制御周期ｎで受取れなかった実際の指令による移動量（３）を得たモータ制御装置は、制御周期ｎの実際の指令による移動量（３）と代替移動量（移動量（１））の差分（残移動量、移動量（４））を算出し、今回周期（制御周期（ｎ＋１））の指令による移動量（２）に加えて出力する（残移動量の解消）。
【０００６】
このように動作する特許文献１のモータ制御装置では、制御周期（ｎ＋１）において前回制御周期ｎに出力できなかった残移動量（移動量（４））全て解消するため、残移動量が大きい場合、例えば制御周期（ｎ−１）から制御周期ｎにおいて加速中や減速中であった場合、制御周期（ｎ＋１）でモータは急加速、急減速することとなり、機械にショックが発生してしまう可能性があった。
【０００７】
そこで、本発明の目的は、上位制御装置からの指令が受信できない場合であっても制御対象のサーボモータが急加速・急減速することを防止できるサーボ制御装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明のサーボ制御装置は、上位制御装置から指令を受信できなかった制御周期においてサーボモータに出力する代替移動量を、過去の所定数の制御周期においてサーボモータに対して出力された移動量から算出される加々速度から算出することにより上記課題を解決する。
また、本発明のサーボ制御装置は、上位制御装置から指令を受信できなかった制御周期の次の制御周期において残移動量を解消する際に、あらかじめパラメータなどで設定された指定加速度と代替移動量とに基づいて指令移動量上限値を算出し、算出した指令移動量上限値でクランプした移動量をサーボモータに対して出力するように制御する。そして、クランプにより出力されなかった移動量を余り移動量として当該制御周期以降の制御周期で解消するようにする。
【０００９】
そして、本願の請求項１に係る発明は、所定の制御周期で上位制御装置から受信した指令による移動量に基づいてサーボモータを制御するサーボ制御装置において、前記上位制御装置から指令が受信できなかった制御周期ｎにおいて、該制御周期ｎよりも前の制御周期において前記サーボモータの制御に用いた移動量に基づいて算出された加々速度と、該制御周期ｎの１つ前の制御周期において前記サーボモータの制御に用いた移動量とに基づいて代替指令移動量を算出する代替指令算出部と、前記上位制御装置から指令が受信できなかった制御周期ｎにおいて、前記代替指令移動量を用いて前記サーボモータの移動を制御する指令移動量調整部と、を備えるサーボ制御装置である。
【００１０】
本願の請求項２に係る発明は、前記指令移動量調整部は、前記制御周期ｎの次の制御周期（ｎ＋１）において前記上位制御装置から受信した指令による移動量と、前記制御周期ｎに前記サーボモータの移動制御に用いた前記代替指令移動量との差分を算出し、該差分を前記制御周期（ｎ＋１）以降において解消するように前記サーボモータの制御に用いる移動量を調整する、請求項１に記載のサーボ制御装置である。
【００１１】
本願の請求項３に係る発明は、制御周期毎に、あらかじめ定められた加速度と、１つ前の制御周期において前記サーボモータの制御に用いた移動量とに基づいて、当該制御周期における前記サーボモータの移動量の上限である指令移動量上限値を算出する指令上限値算出部と、制御周期毎に、前記指令移動量調整部から出力された余り移動量から残移動量を算出し、算出した残移動量を当該制御周期の次の制御周期に出力する残移動量算出部と、前記指令移動量調整部は、制御周期毎に、前記上位制御装置から受信した指令による移動量に前記残移動量を加算した移動量を、前記指令移動量上限値によりクランプして当該制御周期における前記サーボモータの制御に用いる移動量とし、前記指令移動量上限値によりクランプされた移動量を余り移動量として前記残移動量算出部へ出力する、請求項１または２に記載のサーボ制御装置である。
【発明の効果】
【００１２】
本発明により、通信障害などにより上位制御装置からの指令が受信できない場合に、精度の高い代替移動量を算出してサーボモータを制御するため、サーボモータの急加速・急減速を防止することができる。また、指定加速度を超えない範囲で各制御周期で残移動量を解消する制御を行うため、サーボモータの急加速・急減速を防止することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態によるサーボ制御装置の要部を示すハードウェア構成図である。
【図２】本発明の一実施形態によるサーボ制御装置の概略的な機能ブロック図である。
【図３】本発明の一実施形態による指令移動量調整部の動作を示すフローチャートである。
【図４】本発明の一実施形態によるサーボ制御装置の移動制御について説明する図である。
【図５】従来技術におけるモータ制御装置の問題点を説明する図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態を図面と共に説明する。
図１は、本発明の一実施形態によるサーボ制御装置の要部を示すハードウェア構成図である。図１に示した外部装置がサーボ制御装置に対する上位制御装置に相当する。
サーボ制御装置１が備えるＣＰＵ１１は、サーボ制御装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたデータをバス２０を介して読み出し、該データに従ってサーボ制御装置１全体を制御する。ＲＡＭ１３には一時的な計算データや表示データ及びＣＲＴ／ＭＤＩユニット７０を介してオペレータが入力した各種データ等が格納される。
【００１５】
不揮発性メモリ１４は、例えば図示しないバッテリでバックアップされるなどして、サーボ制御装置１の電源がオフされても記憶状態が保持されるメモリとして構成される。不揮発性メモリ１４には、インタフェース１５を介して読み込まれた各種パラメータ等のデータや後述するＣＲＴ／ＭＤＩユニット７０を介して入力されたデータが記憶されている。
【００１６】
インタフェース１５は、サーボ制御装置１と上位制御装置７２と接続するためのインタフェースである。上位制御装置７２側からは指令や各種入力信号や各種パラメータ等が読み込まれる。また、サーボ制御装置１内のフィードバックデータや各種出力信号等のデータを、上位制御装置７２に出力することができる。
【００１７】
ＣＲＴ／ＭＤＩユニット７０はディスプレイやキーボード等を備えた手動データ入力装置であり、インタフェース１８はＣＲＴ／ＭＤＩユニット７０のキーボードからの指令，データを受けてＣＰＵ１１に渡す。インタフェース１９は手動パルス発生器等を備えた操作盤７１に接続されている。
【００１８】
工作機械が備える軸を制御するための軸制御回路３０はＣＰＵ１１からの軸の移動指令量を受けて、軸の指令をサーボアンプ４０に出力する。サーボアンプ４０はこの指令を受けて、工作機械が備える軸を移動させるサーボモータ５０を駆動する。軸のサーボモータ５０は図示しないパルスコーダを内蔵し、このパルスコーダからの位置フィードバック信号を軸制御回路３０にフィードバックし、位置フィードバック制御を行う。なお、図１のハードウェア構成図では軸制御回路３０、サーボアンプ４０、サーボモータ５０は１つずつしか示されていないが、実際には工作機械に備えられた軸の数だけ用意される。
【００１９】
図２は、本実施形態のサーボ制御装置の概略的な機能ブロック図である。本実施形態のサーボ制御装置１００は、上位制御装置から受信した指令を指令受信メモリ１０１、通常時と通信障害発生時とにおける移動量の入力を選択的に切り替える選択器１０２、通信障害発生時の代替指令移動量を算出する代替指令算出部１０３、急加速・急減速が起きないように移動量を調整する指令移動量調整部１０４、位置フィードバック制御に用いられる位置偏差カウンタ１０５、サーボモータ５０の位置を制御する位置制御部１０６、制御周期における移動量の上限値を算出する指令上限値算出部１０７、制御周期において出力できなかった残移動量を算出する残移動量算出部１０８を備える。
【００２０】
サーボ制御装置１００は、上位制御装置から指令を受信すると、受信した指令を指令受信メモリ１０１に記憶する。選択器１０２は、通常時（指令受信メモリ１０１に指令が記憶されている時）には指令移動量調整部１０４から指令受信メモリ１０１に記憶された指令による移動量が読み出せるようにしており、指令移動量調整部１０４は、指令受信メモリ１０１から読み出した指令による移動量を出力指令移動量として位置偏差カウンタ１０５へと出力する。位置偏差カウンタ１０５は指令移動量調整部１０４から受けた出力指令移動量と、サーボモータ５０のパルスコーダ５１からの位置フィードバックとに基づいて位置偏差を算出し、位置制御部１０６は位置偏差カウンタ１０５が算出した位置偏差に基づいてサーボモータ５０を移動制御する。
【００２１】
ここで、サーボ制御装置１００と上位制御装置との間で通信障害が発生すると、該通信障害が発生した制御周期（通信周期）には指令受信メモリ１０１に指令が記憶されなくなる。このような場合、選択器１０２は、指令移動量調整部１０４から代替指令算出部１０３が算出する代替指令移動量が読み出せるように接続を切り替える。なお、上位制御装置には、通信障害により受信できなかった指令の再送要求がなされる。この再送要求は、次回の上位制御装置から指令の送信が開始される前にその受信が完了するようなタイミングで行われる必要があるため、通信障害を検出してからできるだけ速いタイミングで再送要求を行うのが好ましい。
【００２２】
また、指令の送受信に上書きしない限りデータが残されるリングバッファを用いてもよい。リングバッファを用いた指令の送受信では、上位制御装置は書込みポインタを、指令受信メモリは読出しポインタを制御周期毎に毎回更新することにより、指令受信メモリは通信障害により受信できなかった制御周期以後の制御周期でも未受信の指令とその周期の指令を同時に取得することができる。そして、読出しポインタが更新されていない場合に上位制御装置は前回の制御周期に指令受信メモリが指令を受信できなかったことを検出することができる。
代替指令算出部１０３は、過去の所定数の制御周期において指令移動量調整部１０４が出力した出力指令移動量に基づいて算出される加々速度と、前回の制御周期出力された出力指令移動量とに基づいて代替指令移動量を算出する。代替指令算出部１０３は、少なくとも過去の３回の制御周期に出力された出力指令移動量から加々速度を算出することができるが、更に過去の制御周期に出力された出力指令移動量も考慮して加々速度を算出するようにしても良い。
【００２３】
通信障害が発生した制御周期の次の制御周期において、サーボ制御装置１００は、上位制御装置から、今回の制御周期の指令と、前回の制御周期の指令とを受信する。この時、指令移動量調整部１０４は、前回の制御周期の指令による移動量と、前回の制御周期で出力した出力指令移動量（代替指令移動量）との差分を算出し、当該差分を今回の制御周期の指令による移動量に加算した移動量を暫定的な出力指令移動量として算出する。そして、指令移動量調整部１０４は、算出した暫定的な出力指令移動量と、指令上限値算出部１０７が算出した指令移動量上限値とを比較し、暫定的な出力指令移動量が指令移動量上限値を超えている場合には、暫定的な出力指令移動量を指令移動量上限値でクランプし、クランプした値を出力指令移動量として位置偏差カウンタ１０５へと出力し、クランプによる出力されなかった移動量を余り移動量として残移動量算出部１０８へと出力する。
【００２４】
指令上限値算出部１０７は、指令移動量調整部１０４が前回の制御周期に出力した出力指令移動量と、あらかじめパラメータなどで設定された指定加速度とに基づいて指令移動量上限値を算出して指令移動量調整部１０４に対して出力している。指令移動量上限値は、例えば以下の数１式で算出することができる。
【００２５】
【数１】
2018073034.tif 000003
【００２６】
残移動量算出部１０８は、指令移動量調整部１０４から受けた余り移動量を積算して残移動量を算出し、次回の指令移動量に加えるように加減算器に入力する。
【００２７】
図３は、図２の機能ブロック図で示したサーボ制御装置１００が備える指令移動量調整部１０４の動作を示すフローチャートである。
●［ステップＳＡ０１］指令移動量調整部１０４は、選択器１０２を介して今回の制御周期における移動量を取得する。指令移動量調整部１０４が取得する移動量は、上位制御装置から指令を受信できた制御周期においては、当該指令による移動量と残移動量算出部１０８が出力する残移動量との合計値となり、上位制御装置から指令を受信できなかった制御周期においては、代替指令算出部１０３が出力する代替指令移動量となる。
●［ステップＳＡ０２］指令移動量調整部１０４は、暫定的な出力指令移動量ＶtmpとしてステップＳＡ０１で取得した移動量を設定する。
【００２８】
●［ステップＳＡ０３］指令移動量調整部１０４は、指令移動量上限算出部が出力した指令移動量上限値Ｖlimを取得する。
●［ステップＳＡ０４］指令移動量調整部１０４は、暫定的な出力指令移動量Ｖtmpが指令移動量上限値Ｖlimよりも大きいか否かを判定する。暫定的な出力指令移動量Ｖtmpが指令移動量上限値Ｖlimよりも大きい場合にはステップＳＡ０６へ処理を移行し、暫定的な出力指令移動量Ｖtmpが指令移動量上限値Ｖlim以下である場合にはステップＳＡ０５へ処理を移行する。
【００２９】
●［ステップＳＡ０５］指令移動量調整部１０４は、余り移動量を０に設定する。
●［ステップＳＡ０６］指令移動量調整部１０４は、余り移動量を（暫定的な出力指令移動量Ｖtmp−指令移動量上限値Ｖlim）に設定する。
●［ステップＳＡ０７］指令移動量調整部１０４は、暫定的な出力指令移動量Ｖtmpを指令移動量上限値Ｖlimでクランプする（暫定的な出力指令移動量Ｖtmpとして指令移動量上限値Ｖlimを設定する）。
【００３０】
●［ステップＳＡ０８］指令移動量調整部１０４は、暫定的な出力指令移動量Ｖtmpを出力指令移動量として位置偏差カウンタ１０５へ出力する。
●［ステップＳＡ０９］指令移動量調整部１０４は、余り移動量を残移動量算出部１０８へ出力する。
【００３１】
図４は、上記した構成を備えた本実施形態のサーボ制御装置１００による通信障害発生時の移動制御について説明する図である。図４のグラフは、従来技術のモータ制御装置について説明した図５と同様に、横軸に時間、縦軸に各制御周期にサーボモータに対して出力される移動量（制御周期を単位時間と見た場合の速度）を表しており、制御周期ｎにおいて通信障害が発生した場合を示している。
【００３２】
図４に示すように、本実施形態のサーボ制御装置１００では、上位制御装置からの指令が受信できなかった制御周期ｎにおいて、過去の所定数の制御周期においてて出力された出力指令移動量に基づいて算出される加々速度と、前回の制御周期出力された出力指令移動量とに基づいて代替指令移動量（移動量（１））が算出され、算出した第該指令移動量が指令移動量調整部１０４へと出力される。このような制御をすることで、本実施形態のサーボ制御装置１００では、図５で示した従来技術の場合の通信障害発生時の移動制御と比較して、本来の指令による移動量に対する代替指令移動量の精度を上げることが可能となり、次の制御周期以降における残移動量の解消の制御において急加速・急減速が発生する可能性を低くすることができるようになる。
【００３３】
また、通信障害が発生した制御周期ｎの次の制御周期（ｎ＋１）では、本実施形態のサーボ制御装置１００は、制御周期ｎで出力されなかった残移動量（制御周期ｎの実際の指令移動量から代替指令移動量を引いた値、移動量（４））を状況に応じて全て解消しないように制御する。即ち、本実施形態のサーボ制御装置１００は、制御周期（ｎ＋１）では出力指令移動量がパラメータ等で指定された加速度Ａを超えないように指令移動量上限値Ｖlimにクランプして出力し、余り移動量（移動量（６））は次回の制御周期（ｎ＋２）の残移動量として繰越す。
【００３４】
そして、本実施形態のサーボ制御装置１００は、制御周期（ｎ＋２）では上位制御装置からの指令移動量（移動量（７））と、前回の制御周期（ｎ＋１）の残移動量（移動量（６））の合計が、指定加速度Ａを超えないかチェックして出力する。このような制御をすることで、本実施形態のサーボ制御装置１００では、図５で示した従来技術の場合の通信障害発生時の移動制御と比較して、残移動量の解消の制御において指定加速度Ａの範囲内での加速・減速が行われるため、急加速・急減速の発生を防止することができる。
【００３５】
以上、ここまで本発明の実施の形態について説明したが、本発明は上記した実施の形態の例にのみ限定されるものでなく、適宜の変更を加えることにより様々な態様で実施することができる。
例えば、本発明のサーボ制御装置は、数値制御装置、ロボット、他のモータを備えた機械の制御に広く適用することが可能である。
【符号の説明】
【００３６】
１  サーボ制御装置
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
１５，１８，１９  インタフェース
２０  バス
３０  軸制御回路
４０  サーボアンプ
５０  サーボモータ
５１  パルスコーダ
７０  ＣＲＴ／ＭＤＩユニット
７１  操作盤
７２  上位制御装置
１００  サーボ制御装置
１０１  指令受信メモリ
１０２  選択器
１０３  代替指令算出部
１０４  指令移動量調整部
１０５  位置偏差カウンタ
１０６  位置制御部
１０７  指令上限値算出部
１０８  残移動量算出部
【図１】
2018073034.tif 000004
【図２】
2018073034.tif 000005
【図３】
2018073034.tif 000006
【図４】
2018073034.tif 000007
【図５】
2018073034.tif 000008