JP2023015770A - コントローラ及びその指令値の補外方法 - Google Patents

コントローラ及びその指令値の補外方法 Download PDF

Info

Publication number
JP2023015770A
JP2023015770A JP2021119735A JP2021119735A JP2023015770A JP 2023015770 A JP2023015770 A JP 2023015770A JP 2021119735 A JP2021119735 A JP 2021119735A JP 2021119735 A JP2021119735 A JP 2021119735A JP 2023015770 A JP2023015770 A JP 2023015770A
Authority
JP
Japan
Prior art keywords
command value
position command
extrapolation
motor
host device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021119735A
Other languages
English (en)
Inventor
正志 花岡
Masashi Hanaoka
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nidec Instruments Corp
Original Assignee
Nidec Sankyo Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nidec Sankyo Corp filed Critical Nidec Sankyo Corp
Priority to JP2021119735A priority Critical patent/JP2023015770A/ja
Priority to US17/863,392 priority patent/US20230024548A1/en
Publication of JP2023015770A publication Critical patent/JP2023015770A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/19Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34099Extrapolation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/42Servomotor, servo controller kind till VSS
    • G05B2219/42062Position and speed and current

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Control Of Position Or Direction (AREA)
  • Control Of Multiple Motors (AREA)

Abstract

【課題】上位装置側から送られてくる位置指令値に基づいてモータのサーボ制御を行なうコントローラにおいて、通信異常などによって位置指令値を受け取れない場合にも、そのモータを備えるロボットなどの機器がスムースに動けるようにする。【解決手段】通信により上位装置から指令値を受け取るとともに使用する指令値を所定の更新周期で更新しつつ指令値に基づいてモータをサーボ制御するときに、t番目の更新周期においてサーボ制御のために使用する指令値をy(t)とする。k番目の更新周期において上位装置から指令値を受け取らなかったときあるいは通信において異常が発生したときに、y(k)=y(k-2)+{y(k-1)-y(k-3)}またはy(k)=y(k-2)+{y(k-2)-y(k-4)}にしたがう補外演算によって、k番目の更新周期で用いる指令値y(k)を算出する。【選択図】図10

Description

本発明は、軸ごとにその軸を駆動するモータを備える機器を制御するコントローラに関し、特にコントローラにおける指令値の補外に関する。
軸ごとにその軸を駆動するモータが設けられている機器として、例えばロボットや、あるいは各種の搬送機器などがある。これらの機器を制御するコントローラは、例えば、ロボットコントローラやモーションコントローラなどと呼ばれ、モータごとに対応して設けられてそのモータに対する位置指令値に基づいてそのモータを制御する位置制御部を備えている。以下では、このようなコントローラの一例として、ロボットコントローラを説明する。指定された軌道に沿ってロボットを動作させるためにはロボットが備える複数の軸を同時に動かす必要があるから、ロボットコントローラは、ロボットの複数の軸(例えばロボットの全ての軸)に対する位置指令値を一括して計算して出力する複数軸位置指令生成部も備える。複数軸位置指令生成部は、位置制御部に対する上位装置として機能するので、軸ごとの位置制御部を備えたロボットコントローラとは別体のものとして設けられてもよい。複数軸位置指令生成部と位置制御部との間は信号線あるいは通信ネットワークで接続される。
位置制御部は、例えば百μsから数百μsの一定の周期で複数軸位置指令生成部側から対応する軸についての位置指令値を受け取り、受け取った位置指令値に基づいてその軸のモータのサーボ制御を行なう。このとき、複数軸位置指令生成部での処理負荷や通信ネットワークの帯域などの制限によっては、位置制御部側での位置指令値の更新周期(サンプリング周期ともいう)よりも複数軸位置指令生成部から位置指令部への位置指令値の送信間隔が長くなることがある。そのような場合には、位置制御部において、受け取った位置指令値に基づいて補間演算(内挿演算ともいう)を行って、サーボ制御のための位置指令を生成する必要がある。また、通信異常のために位置制御部が位置指令値を受け取れない場合があり、その場合は既に受け取った位置指令値に基いて位置指令値の補外演算(外挿演算ともいう)を行う必要がある。補間演算や補外演算による位置指令値が適切な値でないときは、ロボットの動きが滑らかなものではなくなり、ロボットにおいて異音や振動が発生する。位置指令値ではなく速度指令値によってモータのサーボ制御を行なう場合であっても、同様に速度指令値の補間演算や補外演算を行う必要が生じる。
ロボットコントローラにおける位置指令値の補外演算の例として特許文献1は、補外演算による位置指令値を所定の更新周期だけ遅らせるともに、前回の更新周期と今回の更新周期での補外演算による位置指令値の差分値が上位装置側から受けとった位置指令値における差分値よりも大きい場合に、補外演算による位置指令値をさらに補正することを開示している。また特許文献2は、上位装置から受け取った位置指令値とその受信時刻とをリングバッファに書き込み、リングバッファに書き込まれている位置指令値と受信時刻とに基づいて現在時刻に対する位置指令値を補外演算で算出することを開示している。
特開2009-134380号公報 特開昭63-280307号公報
特許文献1に記載された方法では、位置指令値の更新周期が異なる位置指令部が混在する場合にロボットの動きにおける不自然さをもたらすおそれがある。また、補外演算による位置指令値をさらに補正するので、演算負荷が大きいという課題も有する。特許文献2に記載された方法は、位置指令値を常に受信できることが前提であるので、通信異常などのために1つ以上の位置指令値を取りこぼしたような場合には適用することができない。軸ごとにその軸を駆動するモータを備える、ロボット以外の機器においてもこのような課題が生じる。
本発明の目的は、通信異常によって上位装置側から送られてくる指令値の取りこぼしがあるときにも異音や振動を発生させず、かつ、補外演算の演算負荷が小さいコントローラと、そのようなコントローラにおける指令値の補外方法とを提供することにある。
本発明のコントローラは、軸ごとにその軸を駆動するモータを備える機器を制御するコントローラであって、軸ごとのモータに対応して設けられそのモータに対する指令値に基づいてそのモータをサーボ制御する制御部を備え、制御部は、通信により上位装置から指令値を受信するとともに使用する指令値を所定の更新周期で更新するものであり、t番目の更新周期において制御部が使用する指令値をy(t)として、制御部は、k番目の更新周期において上位装置から指令値を受け取らなかったときあるいは通信において異常が発生したときに、
y(k)=y(k-2)+{y(k-1)-y(k-3)}
または、
y(k)=y(k-2)+{y(k-2)-y(k-4)}
にしたがってk番目の更新周期で使用する指令値y(k)を算出する補外演算部を備える。
本発明の別のコントローラは、軸ごとにその軸を駆動するモータを備える機器を制御するコントローラであって、軸ごとのモータに対応して設けられそのモータに対する指令値に基づいてそのモータをサーボ制御する制御部を備え、制御部は、通信により上位装置から指令値を受信するとともに使用する指令値を所定の更新周期で更新するものであって、mを2以上の整数として、上位装置が指令値を送信する送信周期は制御部が指令値を更新する周期のm倍であり、t番目の更新周期において制御部が使用する指令値をy(t)として、制御部は、k番目の更新周期において上位装置から指令値を受け取らなかったときあるいは通信において異常が発生したときに、
y(k)=y(k-m)+{y(k-1)-y(k-m-1)}
にしたがってk番目の更新周期で使用する指令値y(k)を算出する補外演算部を備える。
上述した本発明の各コントローラによれば、
y(k)=y(k-2)+{y(k-1)-y(k-3)}、
y(k)=y(k-2)+{y(k-2)-y(k-4)}、または
y(k)=y(k-m)+{y(k-1)-y(k-m-1)}
によって表される補外演算を行うことにより、通信異常などもよって上位装置から指令値を受信できなかった場合においても異音や振動の発生を抑えてモータを備える機器をスムースに動かすことができるようになる。本発明に基づくコントローラは、例えば、ロボットコントローラあるいはモーションコントローラである。
本発明のコントローラは、制御部に、モータに接続するエンコーダからそのモータの位置に関する情報がフィードバックされてサーボ制御に必要な演算を行うサーボ演算部と、更新周期ごとに指令値を上位装置から有効に受信したかを判定する異常検出部と、を備えてもよい。この場合、補外演算部は、指令値を有効に受信したと異常検出部が判定したときは上位装置から受け取った指令値をサーボ演算部に渡し、指令値を有効に受信したと異常検出部が判定しなかったときは補外演算部で算出した指令値をサーボ演算部に渡す。このようにロボットコントローラを構成することにより、上位装置から指令値を受信できた更新周期では受信した指令値によってサーボ制御が行なわれることとなり、上位装置側で生成した指令値に対してより忠実な制御を行なうことができるようになる。
本発明のコントローラでは、指令値は例えばモータに対する位置指令値である。位置指令値を補外演算の対象とすることより、モータを備える機器におけるよりスムースな動きを実現することができる。
本発明のコントローラでは、上位装置は、例えば、モータを備える機器における複数の軸のモータに対する指令値を一括して計算し出力する複数軸指令生成部を含む。複数軸指令生成部側での処理能力などのために制御部での指令値の更新周期に合わせて上位装置側から指令値を送信できない場合に通信異常などが発生しても、本発明によればモータを備える機器をスムースに動かすことが可能になる。
本発明の補外方法は、軸ごとのモータに対する指令値を上位装置から受け取るとともに使用する指令値を所定の更新周期で更新しつつ指令値に基づいてそのモータをサーボ制御するコントローラにおける補外方法であって、t番目の更新周期においてサーボ制御のために使用する指令値をy(t)として、k番目の更新周期において上位装置から指令値を受け取らなかったときあるいは通信において異常が発生したときに、
y(k)=y(k-2)+{y(k-1)-y(k-3)}
または、
y(k)=y(k-2)+{y(k-2)-y(k-4)}
にしたがってk番目の更新周期で用いる指令値y(k)を算出する。
本発明の別の補外方法は、軸ごとのモータに対する指令値を上位装置から受け取るとともに使用する指令値を所定の更新周期で更新しつつ指令値に基づいてそのモータをサーボ制御するコントローラにおける補外方法であって、mを2以上の整数として、上位装置が指令値を送信する送信周期は更新周期のm倍であり、t番目の更新周期においてサーボ制御のために使用する指令値をy(t)として、k番目の更新周期において上位装置から指令値を受け取らなかったときあるいは通信において異常が発生したときに、
y(k)=y(k-m)+{y(k-1)-y(k-m-1)}
にしたがってk番目の更新周期で用いる指令値y(k)を算出する。
上述した本発明の各補外方法によれば、
y(k)=y(k-2)+{y(k-1)-y(k-3)}、
y(k)=y(k-2)+{y(k-2)-y(k-4)}、または
y(k)=y(k-m)+{y(k-1)-y(k-m-1)}
によって表される補外演算を行うことにより、通信異常などもよって上位装置から指令値を受信できなかった場合においても異音や振動の発生を抑えてモータを備える機器をスムースに動かすことができるようになる。本発明の補外方法の適用対象となるコントローラは、例えば、ロボットコントローラあるいはモーションコントローラである。
本発明の補外方法では、指令値は例えばモータに対する位置指令値である。位置指令値を補外演算の対象とすることより、モータを備える機器におけるよりスムースな動きを実現することができる。
本発明によれば、通信異常によって上位装置側から送られてくる指令値の取りこぼしがあるときであっても、異音や振動を発生させることなく、小さな演算負荷で補外演算を行うことができるようになる。
ロボットコントローラの構成の一例を示す図である。 位置制御部の構成の一例を示すブロック図である。 ロボットコントローラの構成の別の例を示す図である。 ロボットコントローラの構成の別の例を示す図である。 ロボットコントローラの構成の別の例を示す図である。 位置指令値とその2周期間後退差分値との関係を示す図である。 補外方法の例を示す図である。 補外方法の例を示す図である。 本発明に基づく補外方法を示す図である。 本発明に基づく補外方法の別の例を示す図である。 本発明に基づく補外方法の別の例を示す図である。 本発明に基づく補外方法の別の例を示す図である。 本発明に基づく補外方法の別の例を示す図である。 本発明に基づく補外方法の別の例を示す図である。 本発明に基づく補外方法の別の例を示す図である。 本発明に基づく補外方法の別の例を示す図である。 補外演算部の構成の一例を示すブロック図である。
次に、本発明を実施するための形態について、図面を参照して説明する。以下では、本発明が適用されるコントローラがロボットの制御に用いられるロボットコントローラであるものとするが、本発明は、軸ごとにその軸を駆動するモータを備える機器を制御するコントローラに広く適用することができる。そのようなコントローラの例として、ロボットコントローラのほかに、例えばモーションコントローラがある。図1は、本発明が適用可能なロボットコントローラの構成の一例を示している。図1に示すロボットコントローラ10は、複数の軸を備えるロボット50の制御を行なうものである。ロボット50では、軸ごとに、モータ(M)51とモータ51に接続してモータ51の回転位置を検出するエンコーダ(E)52とが設けられている。図示される例では、ロボット50は8軸のロボットである。
ロボットコントローラ10は、ロボット50内のモータ51ごとに対応して設けられてそのモータ51に対する位置指令値に基づいてそのモータ51を制御する位置制御部30を備えている。ロボット50が8軸であるので、位置制御部30も図においてC-1からC-8で示されるように8個設けられている。また、指定された軌道に沿ってロボット30を運動させるためにロボット50が備える複数の軸に対する位置指令値を一括して計算して出力する複数軸位置指令生成部20もロボットコントローラ10に設けられている。複数軸位置指令生成部20は、例えばマイクロプロセッサによって構成される。ロボットコントローラ10は、通常、ロボット50に近接して設けられるが、複数軸位置指令生成部20は、複数のロボット50を統括する上位装置として、少なくとも位置制御部30を備えるロボットコントローラ10の本体からは離れた場所に設けられていてもよい。複数のロボット50を統括するような大規模な複数軸位置指令生成部20は、例えば、サーバコンピュータによって構成することもできる。複数軸位置指令生成部20は複数軸指令生成部に対応し、位置制御部30は制御部に対応する。
複数軸位置指令生成部20と複数の位置制御部30とは信号線あるいは通信ネットワークを介して接続され、複数軸位置指令生成部20から各位置制御部30に対して位置指令値が送信される。図1に示したものでは、複数軸位置指令生成部20から位置制御部30への位置指令値の送信を中継するために、通信中継MCU(マイクロコントローラユニット)25が設けられている。1つの通信中継MCU25には最大2つの位置制御部30との通信が可能であり、ここに示した例では、8つの位置制御部30が設けられているので、図においてB-1からB-4で示す4つの通信中継MCU25が設けられている。図においてAで示す複数軸位置指令生成部20と4つの通信中継MCU25との間は、高速通信が可能なネットワーク22によって接続している。ネットワーク22では、オープンな産業用通信ネットワークプロトコルによる通信が行われる。そのようなネットワーク22でのプロトコルの例として、EtherCAT(登録商標)やCC-Link(登録商標)がある。
通信中継MCU25と位置制御部30との間は、通信中継MCU25ごとに設けられているネットワーク27を介して接続している。ネットワーク27ごとに最大で2つの位置制御部30が接続する。このネットワーク27では、位置制御部30に特有のプロトコルで通信が行われる。図1に示すロボットコントローラ10では、マイクロプロセッサなどを備える通信中継MCU25を介して複数軸位置指令生成部20と各位置制御部30の間の通信が行われるから、プロトコル変換機能を通信中継MCU25に持たせることにより、位置制御部30側の通信プロトコルがどのようなものであれ、複数軸位置指令生成部20側のさまざまな通信プロトコルに対応することが可能になる。言い換えれば、複数のロボット50を統括する上位装置として複数軸位置指令生成部20を設ける場合に、通信中継MCU25の置き換えや通信中継MCU25で実行されるソフトウエアでの選択により、種々のロボットコントローラ10を接続することが可能になる。なお、通信中継MCU25は、複数軸位置指令生成部20とその通信中継MCU25との間の通信の異常状態を判定し、その判定結果に基づいて各位置制御部30に向けて、通信有効状態の信号を送信する。
図2は、位置制御部30の構成を示している。位置制御部30は、複数軸位置指令生成部20から送られてきた位置指令に基づいてその軸のモータ51を制御するものであり、例えばマイクロプロセッサなどによって構成される位置制御MCU(マイクロコントローラユニット)31と、三相モータであるモータ51を駆動するドライブ回路36とを備えている。ドライブ回路36にはインバータ回路が含まれる。位置制御MCU31は、その論理的な構成として、受信した位置指令値に対して誤り検出符号などの技術を適用して通信異常などの発生の有無を検出する異常検出部32と、位置指令値を受信して必要なときに補外処理を行って内部位置指令値を生成する補外演算部33と、モータ51に接続したエンコーダ52からのモータ51の回転位置がフィードバックされ、内部位置指令値とフィードバックされた回転位置とに基づいてサーボ制御のための演算を行い、演算結果に基づいてドライブ回路36を制御するサーボ演算部34と、を備えている。異常検出部32には、通信中継MCU25からの通信有効状態の信号も入力する。異常検出部32は、後述する更新周期ごとに、位置指令値として受信したデータが有効かどうかを判定し、受信値有効状態の信号を補外演算部33に送信する。受信値有効状態の信号は、位置指令値を正常に受信したときは「正常」を示す値をとり、位置指令値を受信しなかった場合や通信異常を検出した場合には「異常」を示す値をとる。通信中継MCU25から受信した通信有効状態の信号が、複数軸位置指令生成部20と通信中継MCU25との間の通信が「無効」であることを示すときも、異常検出部32は、「無効」を示す受信値有効状態の信号を出力する。補外演算部33は、受信値有効状態が「正常」の場合には入力した位置指令値を内部位置指令値としてそのままサーボ演算部34に渡し、受信値有効状態が「異常」の場合には補外演算の結果を内部位置指令値としてサーボ演算部34に渡す。
図1に示すロボットコントローラ10では、ロボット50の軸数すなわち位置制御部30の数に応じて複数軸位置指令生成部20と通信中継MCU25での処理負荷が変動し、軸数が多いときには処理負荷が重くなる。個々の位置制御部30は例えば250μsを更新周期(サンプリング周期)として位置指令値を取り込もうとする。理想的には各位置制御部30に対してその位置制御部30の位置指令値の更新周期で位置指令値を送信することが望まれる。しかしながら複数軸位置指令生成部20や通信中継MCU25での処理負荷が重いときには、位置制御部30での更新周期で位置指令値を生成して位置制御部30に対して送信することができなくなり、位置指令値の送信周期が長くせざるを得なくなる。例えば図3に示すように1つの通信中継MCU25に対して1つの位置制御部30が接続するときは、通信中継MCU25は250μsの周期で位置制御部30に位置指令値を送信できるが、図1に示すように1つの通信中継MCU25に対して2つの位置制御部30が接続するときは、通信中継MCU25は、それぞれの位置制御部30に対して500μsの周期で位置指令値を送信する。
複数軸位置指令生成部20においても同様にそこに直接または通信中継MCU25を介して接続される位置制御部30の数に応じて位置指令値の送信周期が変化する。図4は、通中継MCU25を介さずにネットワーク22を介して8つの位置制御部30が複数軸位置指令生成部20に接続しているロボットコントローラ10を示している。図5は、図4と同様のロボットコントローラ10であるが、複数軸位置指令生成部20に接続する位置制御部30の数が4個であるロボットコントローラ10を示している。図5に示す場合は、複数軸位置指令生成部20は、位置制御部30の更新周期(例えば250μs)でそれぞれの位置制御部30に位置指令値を送ることができる。これに対し図4に示す場合には、位置制御部30の個数が多く複数軸位置指令生成部20の演算負荷が大きくなるので、複数軸位置指令生成部20から各位置制御部30に対して位置制御部30での更新周期よりも長い周期(例えば500μs)でしか位置指令値を送信することができない。
位置制御部30で考えると、位置制御部30での更新周期ごとに位置指令値が存在しないと、対応するモータ51のサーボ制御を行なえなくなる。したがって、位置制御部30での更新周期より長い周期でしか位置指令値を受信できないときは、位置指令値を受信できなかった更新周期について、それまでに受信した位置指令値に基づいてその更新周期で用いる位置指令値を算出する。これが補外演算部33が実行する補外演算である。実際には、位置制御部30への位置指令値の送信周期を位置制御部での位置指令の更新周期の整数倍とし、位置指令値を受信しなかった更新周期については前回受信した位置指令値をそのまま使用することが一般的である。
位置指令値を受信すべきタイミングであるが通信異常などによって受信できず位置指令値が欠落したときも、補外演算部33において同様に補外演算を実行する。ただし受信すべき位置指令値が通信異常などのために欠落したときに前回受信した位置指令値をそのまま使用すると、本来受信すべき位置指令値とはかけ離れた位置指令値によってモータ51がサーボ制御され、そのためロボット50において異音や振動が発生することがある。したがって本発明は、このような異音や振動が発生しないような補外方法を提供することを目的とする。
図6は、図1を用いて説明したロボットコントローラ10において位置制御部30での更新周期が例えば250μsであるとして、通信中継MCU25が位置制御部30に本来送るべき位置指令値と、その位置指令値の2周期間後退差分値とを示している。図6では横軸が時間、縦軸が位置指令値あるいはその2周期間後退差分値であり、破線で示す垂直線は、更新周期ごとに位置制御部30が位置指令値を取り込むべきすなわちサンプリングすべきタイミングを示している。ここでは図1に示すロボットコントローラ10の複数軸位置指令生成部20はロボット50の全ての軸すなわち8軸分の位置指令値を生成しており、そのため、着目している位置制御部30に対する位置指令値は、位置制御部30での2更新周期(例えば500μs)ごとに生成されているものとする。図6に示した例では、等速でモータ51を回転させるものとして、2更新周期ごとに位置指令値が一定の増加量で大きくなっている。このとき、2周期間後退差分値には変化が生じていない。2周期間後退差分値に急激な変化があるときは、ロボット50がスムースな動きをしていないときであり、ロボット50における異音や振動の発生が起こり得るときである。
ある更新周期tすなわちある基準時刻から数えてt番目の更新周期での位置指令値をy(t)で表すこととする。図7は、本来の位置指令値の変化が図6で示されるものであるときに、更新周期kでの位置指令値y(k)をその1つ前の更新周期k-1での位置指令値y(k-1)で補外するとして、位置指令値を正常に受信できなかったときの位置指令値とその2周期間後退差分値の挙動を示している。すなわちこの場合の補外演算は、(1)式で示されるものとなる。
y(k)=y(k-1) (1)
図において実線の白抜き円は、正常に受信できた位置指令値を示し、破線の白抜き円は、異常発生により受信できなかった位置指令値を示している。異常の発生の有無は、例えば通信データに対する誤り検出を行うことによって知ることができる。そしてハッチングを付した円は、異常発生により受信できなかった位置指令値があったときにその位置指令値を補外演算によって求めたときの、補外演算による位置指令値と、補外演算を行ったことによる2周期間後退差分値を示している。図7は(a)に示すように、前回の更新周期よりも位置指令値が増加すべき更新周期において異常が発生し補外演算を行った場合、位置制御部30では位置指令値が変化せず、その結果、2周期間後退差分値に急激な変化が生じている。2周期間後退差分値に急激な変化が生じているので、図7(a)に示す場合では、ロボット50における異音や振動が誘発されるおそれがある。
図7(b)は、図6に示すように位置指令値が変化するとして、前回の更新周期での位置指令値と同じ位置指令値が送信されるべきタイミングで異常が発生した場合の、補外後の位置指令値とその2周期間後退差分値をと示している。異常が発生したタイミングが、前回の更新周期での位置指令値からは変化がないタイミングであるので、(1)式によって補外したときは本来の位置指令値と同じ値が得られ、その結果、2周期間後退差分値には急激な変化は生じず、ロボット50においても異音や振動は誘発されない。図7(a)に示す場合において2周期間後退差分値に急激な変化が生じているので、(1)式による補外では、通信異常による位置指令値の欠落に適切に対応できないことになる。
図8は、図6に示すように位置指令値が変化するとして、下記の(2)式に基づいて補外演算を行ったときの位置指令値とその2周期間後退差分値を示している。
y(k)=y(k-1)+{y(k-1)-y(k-2)} (2)
図8(a)は、前回の更新周期よりも位置指令値が増加すべき更新周期において異常が発生した場合を示している。このとき、補外によって算出される位置指令値は図7(a)の場合と同じであり、2周期間後退差分値に急激な変化が生じている。図8(b)は、前回の更新周期での位置指令値と同じ位置指令値が送信されるべきタイミングで異常が発生した場合を示している。このときは、(2)式における{y(k-1)-y(k-2)}の項が影響して、補外によって算出される位置指令値は本来の位置指令値よりも大きなものとなる。その結果、2周期間後退差分値にも急激な変化が生じている。(2)式による補外でも、通信異常による位置指令値の欠落に適切に対応できないことになる。
図9は、本発明に基づく補外方法を説明する図であって、図6に示すように位置指令値が変化するとして、下記の(3)式に基づいて補外演算を行ったときの位置指令値とその2周期間後退差分値を示している。(3)式は本発明の補外方法での演算アルゴリズムの一例を示すものである。ここでは、位置指令値の位置制御部30への送信周期は、位置制御部30での位置指令値の更新周期の2倍であるものとのとする。
y(k)=y(k-2)+{y(k-2)-y(k-4)} (3)
図9(a)は、前回の更新周期よりも位置指令値が増加すべき更新周期において異常が発生した場合を示している。図9(b)は、前回の更新周期での位置指令値と同じ位置指令値が送信されるべきタイミングで異常が発生した場合を示している。いずれの場合においても補外演算によって算出される位置指令値は本来の位置指令値であり、2周期間後退差分値は一定である。図6に示すように位置指令値が変化するときの通信異常による位置指令値の欠落に対して(3)式による補外演算が適切に対応できることが分かる。
本発明に基づく補外演算は、(3)式に示すものに限られない。図10は、本発明に基づく補外方法の別の例を説明する図であって、図6に示すように位置指令値が変化するとして、下記の(4)式に基づいて補外演算を行ったときの位置指令値とその2周期間後退差分値を示している。(4)式は本発明の補外方法での演算アルゴリズムの別の例を示すものである。
y(k)=y(k-2)+{y(k-1)-y(k-3)} (4)
図10(a)は、前回の更新周期よりも位置指令値が増加すべき更新周期において異常が発生した場合を示している。図10(b)は、前回の更新周期での位置指令値と同じ位置指令値が送信されるべきタイミングで異常が発生した場合を示している。いずれの場合においても補外演算によって算出される位置指令値は本来の位置指令値であり、2周期間後退差分値は一定である。図6に示すように位置指令値が変化するときの通信異常による位置指令値の欠落に対して(4)式による補外演算が適切に対応できることが分かる。
図9及び図10に示した例は、位置指令値の位置制御部30への送信周期は、位置制御部30での位置指令値の更新周期の2倍であって、位置指令値が送信されてこない更新周期においては補外演算を行うことが必要な場合についてのものである。これに対し、位置指令値の位置制御部30への送信周期が位置制御部30での位置指令値の更新周期と一致する場合には、原則的には補外演算を行う必要はないが、通信障害などにより位置指令値を受信できなかったときには補外演算を行う必要がある。ここでは、位置指令値の位置制御部30への送信周期が位置制御部30での位置指令値の更新周期と一致する場合における補外演算を説明する。
図11は、各更新周期ごとに一定の増加分で位置指令値が増加するときに通信異常が発生したとして、(3)式による補外を行った場合の位置指令値とその2周期間後退差分値を示している。補外演算によって本来の位置指令値と一致する位置指令値が算出されており、2周期間後退差分値も一定である。図12は、図11に示す場合と同様に通信異常が発生したとして、(4)式による補外を行った場合の位置指令値とその1周期間後退差分値を示している。(4)式を用いる場合においても補外演算によって本来の位置指令値と一致する位置指令値が算出されており、1周期間後退差分値も一定である。以上より、等速でモータ51を回転させようとするときは、位置制御値の送信周期が位置制御部30での位置指令値の更新周期の1倍であっても2倍であっても、また(3)式による補外を行っても(4)式による補外を行っても、通信異常による位置指令値の欠落の際に滑らかに補外を行うことができることが分かる。(3)式と(4)式との間に性能の差はない。
図11及び図12は、モータ51を等速で回転させる位置指令値を位置制御部30に送信する場合を示しているが、モータ51を加速または減速させる位置指令値を位置制御部30に送信しているときに通信異常が発生することもある。加速であるか減速であるかは補外演算には本質的な影響を与えないので、ここでは、位置指令値の位置制御部30への送信周期が位置制御部30での位置指令値の更新周期と一致する場合にモータ51を加速させる位置指令値を位置制御部30に送信する場合を考える。図13は、(3)式を用いて補外演算を行ったときの位置指令値とその1周期間後退差分値を示している。同様に図14は、(4)式を用いて補外演算を行ったときの位置指令値とその1周期間後退差分値を示している。加速時であるので、通信異常などがなければ、位置指令値は放物線に沿うように増加し、1周期間後退差分値は右上がりの直線に沿うように増加する。(3)式を用いたときは、異常が発生した更新周期において、補外演算後の位置指令値が直前の更新周期の位置指令値よりもやや小さくなっており、1周期間後退差分値も同様にやや小さくなっている。これに対して(4)式を用いたときは、異常が発生した更新周期において、補外演算後の位置指令値は、本来の値よりも小さいものの直前の更新周期における値よりも大きく、これに伴って、1周期間後退差分値における本来の値からの差も軽微なものとなっている。(3)式による補外演算も(4)式による補外演算も、モータ51の加減速時における通信異常による位置指令値の欠落には対応できるものであるが、性能としては(4)式による補外演算の方が優れている。
以上説明した例は、位置制御部30の一連の更新周期のうちの1つだけにおいて通信異常などが発生して位置指令値が欠落する場合を示している。本発明に基づく補外方法は、モータ51を等速で駆動する場合において、連続する更新周期において通信異常などにより位置指令値が欠落するときにも有効である。図15は、図6に示すように位置指令値が変化するとして、位置制御部30での更新周期で数えて連続する4つの更新周期において通信異常などにより位置指令値が欠落した場合における。(4)式に示す補外演算を行ったときの位置指令値とその2周期間後退差分値を示している。補外演算で使用する位置指令値には、先の補外演算によって求めた位置指令値も含まれるものとする。図15に示されるように、本発明の補外方法によれば、連続する2以上の更新周期の位置指令値を補外演算で求めることができる。
位置指令値の位置制御部30への送信周期が、位置制御部30での位置指令値の更新周期の3倍以上である場合にも本発明の補外方法は有効である。そこで、mを2以上の整数として、位置指令値の位置制御部30への送信周期が、位置制御部30での位置指令値の更新周期のm倍である場合に一般化して本発明に基づく補外方法を説明する。図16は、このように一般化した補外方法を説明する図であり、モータ51を等速で駆動しようとするときにこの一般化した補外方法を適用したときの位置指令値とそのm周期間後退差分値とを示している。図16で示す例では、一般化した補外演算の式として、(5)式を使用している。
y(k)=y(k-m)+{y(k-1)-y(k-m-1)} (5)
m=2とすれば、(5)式は(4)式に一致する。位置制御部30での更新周期に比べて位置制御部30への位置指令値の送信周期を極端に長くするとロボット50の適切な制御を行なうことができなくなるから、実用的にはmは4以下であると考えられる。位置制御部30での更新周期に比べて位置制御部30への位置指令値の送信周期がm倍となっているので、位置制御部30では更新周期でm周期ごとに位置指令値を受信する。位置指令値を受信してから次の位置指令値を受信するまでの更新周期では、直近に受信した位置指令値をその更新周期での位置指令値として使用する。図15(a)は、位置指令値を受信すべき更新周期において通信異常が発生した場合を示し、図15(b)は、位置指令値を受信すべき更新周期の次の更新周期において通信異常が発生した場合を示している。いずれの場合も補外演算によって本来の位置指令値が算出されており、m周期間後退差分値も一定のままである。すなわち、(5)式による補外演算によれば、通信異常などにより位置指令値が欠落した場合であっても適切に位置指令値を算出できることが分かる。(5)式による補外は、上位装置側からの位置指令値の送信知タイミングではないが位置制御部30の更新周期による位置指令値のサンプリングタイミングであるときの補外演算にも使用できる。
図17は、位置制御部30の位置制御MCU31内において(5)式で示す補外演算を実行する補外演算部33の論理的な構成を示す図である。補外演算部33は、異常検出部32から受信した受信値有効状態の信号によって選択動作を行うセレクタ41と、受信した位置指令値をm更新周期だけ遅延させる遅延要素42と、遅延要素42の出力からセレクタ41の出力を減算する減算要素43と、減算要素43の出力を1更新周期だけ遅延させる遅延要素44と、遅延要素42の出力と遅延要素44の出力とを加算する加算要素45とを備えている。受信した位置指令値と加算要素45の出力とがセレクタ41に入力しており、セレクタ41の出力が内部位置指令値としてサーボ演算部34に出力される。セレクタ41は、受信値有効状態が「有効」のときに、受信した位置指令値を選択し、受信値有効状態が「無効」のときに、加算要素45の出力を選択する。加算要素45の出力は明らかに(5)式で示される値となっており、その結果、受信値有効状態が「有効」のときには受信した位置指令値がそのまま内部位置指令値としてサーボ演算部34に送られ、「無効」のときには(5)式による補外演算を行った結果が内部位置指令値としてサーボ演算部34に送られることになる。
以上説明したロボットコントローラでは、(3)式、(4)式あるいは(5)式に示す補外方法を使用することにより、通信異常などによって上位装置側からの位置指令値を受け取ることができない場合に、位置指令値の適切な補外演算を行うことができて、ロボット50における異音や振動の発生などを防ぐことができる。ここでは位置指令値についての補外を説明したが、本発明に基づく補外は、速度指令値に対する補外にも適用することができる。
10…ロボットコントローラ;20…複数軸位置指令生成部;22,27…ネットワーク;25…通信中継MCU;30…位置制御部;31…位置制御MCU;32…異常検出部;33…補外演算部;34…サーボ演算部;36…ドライブ回路;41…セレクタ;42,44…遅延要素;43…減算要素:44…加算要素;50…ロボット;51…モータ;52…エンコーダ。

Claims (8)

  1. 軸ごとに当該軸を駆動するモータを備える機器を制御するコントローラであって、
    前記軸ごとのモータに対応して設けられ当該モータに対する指令値に基づいて当該モータをサーボ制御する制御部を備え、
    前記制御部は、通信により上位装置から前記指令値を受信するとともに使用する前記指令値を所定の更新周期で更新するものであり、
    t番目の前記更新周期において前記制御部が使用する指令値をy(t)として、前記制御部は、k番目の前記更新周期において前記上位装置から前記指令値を受け取らなかったときあるいは前記通信において異常が発生したときに、
    y(k)=y(k-2)+{y(k-1)-y(k-3)}
    または、
    y(k)=y(k-2)+{y(k-2)-y(k-4)}
    にしたがって前記k番目の更新周期で使用する指令値y(k)を算出する補外演算部を備える、コントローラ。
  2. 軸ごとに当該軸を駆動するモータを備える機器を制御するコントローラであって、
    前記軸ごとのモータに対応して設けられ当該モータに対する指令値に基づいて当該モータをサーボ制御する制御部を備え、
    前記制御部は、通信により上位装置から前記指令値を受信するとともに使用する前記指令値を所定の更新周期で更新するものであって、mを2以上の整数として、前記上位装置が前記指令値を送信する送信周期は前記制御部が前記指令値を更新する周期のm倍であり、
    t番目の前記更新周期において前記制御部が使用する指令値をy(t)として、前記制御部は、k番目の前記更新周期において前記上位装置から前記指令値を受け取らなかったときあるいは前記通信において異常が発生したときに、
    y(k)=y(k-m)+{y(k-1)-y(k-m-1)}
    にしたがって前記k番目の更新周期で使用する指令値y(k)を算出する補外演算部を備える、コントローラ。
  3. 前記制御部は、
    前記モータに接続するエンコーダから当該モータの位置に関する情報がフィードバックされてサーボ制御に必要な演算を行うサーボ演算部と、
    前記更新周期ごとに前記指令値を前記上位装置から有効に受信したかを判定する異常検出部と、
    を備え、
    前記補外演算部は、前記指令値を有効に受信したと前記異常検出部が判定したときは前記上位装置から受け取った前記指令値を前記サーボ演算部に渡し、前記指令値を有効に受信したと前記異常検出部が判定しなかったときは前記補外演算部で算出した前記指令値を前記サーボ演算部に渡す、請求項1または2に記載のコントローラ。
  4. 前記指令値は位置指令値である、請求項1乃至3のいずれか1項に記載のコントローラ。
  5. 前記上位装置は、前記機器における複数の軸の前記モータに対する前記指令値を一括して計算し出力する複数軸指令生成部を含む、請求項1乃至4のいずれか1項に記載のコントローラ。
  6. 軸ごとのモータに対する指令値を上位装置から受け取るとともに使用する前記指令値を所定の更新周期で更新しつつ前記指令値に基づいて当該モータをサーボ制御するコントローラにおける補外方法であって、
    t番目の前記更新周期においてサーボ制御のために使用する指令値をy(t)として、k番目の前記更新周期において前記上位装置から前記指令値を受け取らなかったときあるいは前記通信において異常が発生したときに、
    y(k)=y(k-2)+{y(k-1)-y(k-3)}
    または、
    y(k)=y(k-2)+{y(k-2)-y(k-4)}
    にしたがって前記k番目の更新周期で用いる指令値y(k)を算出する補外方法。
  7. 軸ごとのモータに対する指令値を上位装置から受け取るとともに使用する前記指令値を所定の更新周期で更新しつつ前記指令値に基づいて当該モータをサーボ制御するコントローラにおける補外方法であって、
    mを2以上の整数として、前記上位装置が前記指令値を送信する送信周期は前記更新周期のm倍であり、
    t番目の前記更新周期においてサーボ制御のために使用する指令値をy(t)として、k番目の前記更新周期において前記上位装置から前記指令値を受け取らなかったときあるいは前記通信において異常が発生したときに、
    y(k)=y(k-m)+{y(k-1)-y(k-m-1)}
    にしたがって前記k番目の更新周期で用いる指令値y(k)を算出する補外方法。
  8. 前記指令値は位置指令値である、請求項6または7に記載の補外方法。
JP2021119735A 2021-07-20 2021-07-20 コントローラ及びその指令値の補外方法 Pending JP2023015770A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021119735A JP2023015770A (ja) 2021-07-20 2021-07-20 コントローラ及びその指令値の補外方法
US17/863,392 US20230024548A1 (en) 2021-07-20 2022-07-13 Controller and extrapolation method of command value

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021119735A JP2023015770A (ja) 2021-07-20 2021-07-20 コントローラ及びその指令値の補外方法

Publications (1)

Publication Number Publication Date
JP2023015770A true JP2023015770A (ja) 2023-02-01

Family

ID=84976706

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021119735A Pending JP2023015770A (ja) 2021-07-20 2021-07-20 コントローラ及びその指令値の補外方法

Country Status (2)

Country Link
US (1) US20230024548A1 (ja)
JP (1) JP2023015770A (ja)

Also Published As

Publication number Publication date
US20230024548A1 (en) 2023-01-26

Similar Documents

Publication Publication Date Title
EP3770706B1 (en) Industrial control system with distributed motion planning
JP5438175B2 (ja) 制振制御ロボットシステム
US11613015B2 (en) Technique for providing reliable control in a cloud robotics system
KR20230021162A (ko) 로봇 조인트 공간 그래프 경로 플래닝 및 이동 실행
KR102088182B1 (ko) 통신 제어 시스템 및 통신 제어 방법
JP7498684B2 (ja) マシン制御システム、プログラム、マシン、及び通信方法
CN109240219A (zh) 一种多轴运动控制器
JP2019038089A (ja) ロボットシステム
JP2023015770A (ja) コントローラ及びその指令値の補外方法
US20230339113A1 (en) Path Generation Method Of Generating Path Of Robot Using Command From External Apparatus And Robot Control System
JP7453268B2 (ja) 多軸サーボ制御システム
US10754320B2 (en) Method and apparatus for integrating an external motion planner with an industrial controller
JP2006227717A (ja) モーション制御システムとその制御方法
US20030173928A1 (en) Servo control method
JP6594268B2 (ja) モーション制御システム
JP3130426B2 (ja) モータ制御装置
JPH11188687A (ja) 制御装置
CN108170102B (zh) 一种运动控制系统
JP3871030B2 (ja) サーボ制御方法
JP2005071086A (ja) モーションコントロールシステム
JP2002268751A (ja) サーボ制御装置
US20230067306A1 (en) Machine control via synchronous communication
WO2023138536A1 (zh) 电机控制系统、电机控制方法和电机驱动和转发装置
JPH01188904A (ja) ロボットの制御装置
US7085664B2 (en) Method and device for axis control for machine tools and the like

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240611