(57)【特許請求の範囲】
【請求項１】
モータを駆動するアンプと接続してモータ制御情報に基づいて前記アンプを制御する軸制御部と、上位制御装置との通信によりモータ制御情報の元となるモータ制御指令を受信する通信制御部と、を備えるモーションコントローラにおいて、
前記通信制御部により前記上位制御装置から受信された制御関数を格納する制御関数格納部と、
制御対象からフィードバックされる、前記モータの情報とセンサの情報との少なくともいずれかを入力として前記制御関数を実行する制御関数実行部と、
前記制御関数実行部による前記制御関数格納部に格納された前記制御関数の実行結果に基づいて前記モータ制御情報を変更する制御情報変更部と、
を有し、
前記制御情報変更部により変更された前記モータ制御情報を前記軸制御部の入力とする、ことを特徴とするモーションコントローラ。
【請求項２】
前記制御関数実行部は、前記モータとは異なる他のモータの情報を前記制御関数の入力に使用できる、
ことを特徴とする請求項１に記載のモーションコントローラ。
【請求項３】
前記制御関数実行部は、複数の制御関数のうち実行するものをモータ制御指令と同期して選択することができ、
前記制御情報変更部は、前記選択された制御関数の実行結果により前記モータ制御情報を変更する、
ことを特徴とする請求項１または２に記載のモーションコントローラ。
【請求項４】
前記通信制御部は、前記モータ制御指令と同期して複数回の通信に分割して前記制御関数の受信を行う、
ことを特徴とする請求項１〜３のいずれか１つに記載のモーションコントローラ。
【請求項５】
前記通信制御部は、前記モータ制御指令の通信周期と異なる通信周期により前記制御関数の受信を行う、
ことを特徴とする請求項１〜３のいずれか１つに記載のモーションコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モーションコントローラに関し、特にモータへの高応答な指令を上位制御装置によりカスタマイズ可能なモーションコントローラに関する。
【背景技術】
【０００２】
上位制御装置からの指令により適応的な制御を行うモーションコントローラでは、センサのフィードバック情報に対する高い応答性が求められる。応答性を向上させるために、上位制御装置とコントローラとの間の通信周期の高速化や、フィードバック情報に基づいて上位制御装置が算出した指令（位置や速度）をモータに反映させる周期の高速化を行っている。
【０００３】
図５は、従来技術のモーションコントローラの機能ブロック図である。従来技術のモーションコントローラ１０は、上位制御装置２０とＥｔｈｅｒＣＡＴなどによるリアルタイムな通信を行う通信手段により接続されており、モーションコントローラ１０内の通信制御部１１により、上位制御装置２０から送信されてくるモータ制御指令を受信する。そして、モーションコントローラ１０は、受信したモータ制御指令の値を元にしてモータ２の制御に用いる図示しないメモリ上に設けられたモータ制御情報格納部１３に記憶されているモータ制御情報を更新する。このモータ制御情報格納部１３に記憶されるモータ制御情報は軸制御部１２に入力され、軸制御部１２は入力されたモータ制御情報に基づいてアンプ３を制御することで制御対象となる機械に取り付けられているモータ２を駆動する。また、制御対象となる機械に取り付けられているセンサ５の値は通信制御部１１により上位制御装置２０へ入力される。なお、上位制御装置２０はＩ／Ｏユニット３０を介して機械の操作盤などと接続され、オペレータによる操作盤に対する操作を受ける。
【０００４】
図６は、従来技術のモーションコントローラと上位制御装置とにより機械を制御する例を示す図である。なお、図６ではモータ制御情報格納部１３などの一部の記載を省略している。上位制御装置２０は、モータ２の目標位置などを指令するモータ制御指令を生成する指令算出処理部２１を備え、指令算出処理部２１はモーションコントローラ１０が備える通信制御部１１と接続されている。
軸制御部１２は、移動量およびトルクリミットなどのモータ制御情報の値に応じてアンプ３を制御してモータ２を駆動する。上位制御装置２０からモーションコントローラ１０に対してはモータ制御指令により目標位置が逐次送られ、モータ制御情報の移動量に変換されて軸制御部１２に入力され、モータ２は位置制御を行うことで入力された目標位置に追従するように動作する。
上位制御装置２０およびモーションコントローラ１０の制御対象となる機械には、モータ２の回転によって駆動する機構部４があり、また、機構部４の稼動範囲内には圧力センサ５ａが取り付けられた被加工部６が設置されており、一定の圧力で押し付け動作を行おうとしている。
【０００５】
このようなシステムの制御において従来技術のモーションコントローラ１０を用いた場合、上位制御装置２０の指令算出処理部２１が圧力センサ５ａにより検出されたセンサ情報の値に応じて、モータ制御指令としてモータの目標位置およびトルクリミットを計算する。モーションコントローラ１０は受信したモータ制御指令の目標位置から、モータ制御情報の、たとえばエンコーダの単位での移動量に変換し、軸制御部１２への入力とする。ただしモータ制御指令とモータ制御情報で同一の定義であれば変換が無くてもかまわない。
【０００６】
なお、高い応答性を実現するための従来技術として、例えば特許文献１に開示される技術では、制御装置の各軸の特性に応じて複数に分割された制御演算部分をサーボアンプ又はサーボコントローラに分配することで、サーボ制御の制御応答性を高めている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１３−７３３５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来技術のモーションコントローラによるモータの制御は、上位制御装置にセンサの計測値をフィードバックし、その値を利用してモータの指令を変更するので、通信の遅れのためにシステム全体の応答性を向上させることは困難であった。例えば、図６の例において、モーションコントローラ１０にフィードバックされた圧力センサ５ａが検出したセンサ情報の値を上位制御装置２０が監視してモータ２の制御を行うと、上位制御装置２０とモーションコントローラ１０との間の通信時間による遅れなどの影響で圧力値の変動に対する応答性が低くなる。また、応答性を高めるために軸制御部１２にセンサ情報を使用する処理を組み込んであると、上位制御装置２０は軸制御部１２に組み込まれている制御方法の中から実行するものを選択することしか出来ず、制御の自由度が低くなるという問題がある。
【０００９】
また、特許文献１に開示される技術をモーションコントローラ１０に適用することで、モーションコントローラ１０に組み込まれたサーボ制御の一部を高速な周期で行うことはできるが、上位制御装置２０が行っている位置や速度の指令を算出する処理の応答性を向上させることはできない。
【００１０】
そこで本発明の目的は、モータへの高応答な指令を上位制御装置によりカスタマイズ可能なモーションコントローラを提供することである。
【課題を解決するための手段】
【００１１】
本発明のモーションコントローラでは、上位制御装置から送信された制御関数を登録して実行することで、上位制御装置との通信時間を削減する。また、上位制御装置の指令によって必要に応じたモータの高応答な制御を実行できるようにする。
【００１２】
そして、本願の請求項１に係る発明は、モータを駆動するアンプと接続してモータ制御情報に基づいて前記アンプを制御する軸制御部と、上位制御装置との通信によりモータ制御情報の元となるモータ制御指令を受信する通信制御部と、を備えるモーションコントローラにおいて、前記通信制御部により前記上位制御装置から受信された制御関数を格納する制御関数格納部と、制御対象からフィードバックされる、前記モータの情報とセンサの情報との少なくともいずれかを入力として前記制御関数を実行する制御関数実行部と、前記制御関数実行部による前記制御関数格納部に格納された前記制御関数の実行結果に基づいて前記モータ制御情報を変更する制御情報変更部と、を有し、前記制御情報変更部により変更された前記モータ制御情報を前記軸制御部の入力とする、ことを特徴とするモーションコントローラである。
【００１３】
本願の請求項２に係る発明は、前記制御関数実行部は、前記モータとは異なる他のモータの情報を前記制御関数の入力に使用できる、ことを特徴とする請求項１に記載のモーションコントローラである。
【００１４】
本願の請求項３に係る発明は、前記制御関数実行部は、複数の制御関数のうち実行するものをモータ制御指令と同期して選択することができ、前記制御情報変更部は、前記選択された制御関数の実行結果により前記モータ制御情報を変更する、ことを特徴とする請求項１または２に記載のモーションコントローラである。
【００１５】
本願の請求項４に係る発明は、前記通信制御部は、前記モータ制御指令と同期して複数回の通信に分割して前記制御関数の受信を行う、ことを特徴とする請求項１〜３のいずれか１つに記載のモーションコントローラである。
【００１６】
本願の請求項５に係る発明は、前記通信制御部は、前記モータ制御指令の通信周期と異なる通信周期により前記制御関数の受信を行う、ことを特徴とする請求項１〜３のいずれか１つに記載のモーションコントローラである。
【発明の効果】
【００１７】
本発明により、上位制御装置との通信周期とは別の周期で動作可能なため、コントローラが直接入出力できるセンサフィードバック情報に対して高速に応答する制御が可能となる。また、制御関数を運転の途中に登録しなおすことで、上位制御装置の目的に応じた制御のカスタマイズが可能となる。特に、独自の制御と通常の制御を切替えられるので、機械に応じた独自の条件に対する応答を実現することが出来る。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１の実施形態によるモーションコントローラの機能ブロック図である。
【図２】図１のモーションコントローラで実行される処理のフローチャートである。
【図３】図１のモーションコントローラを用いて機械を制御する例を示す図である。
【図４】本発明の第２の実施形態によるモーションコントローラを用いて機械を制御する例を示す図である。
【図５】従来技術によるモーションコントローラの機能ブロック図である。
【図６】図５のモーションコントローラを用いて機械を制御する例を示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態を図面と共に説明する。
上記したように、本発明のモーションコントローラには、上位制御装置から受信した制御関数を登録することができる。モーションコントローラは登録された制御関数を毎制御周期実行してモータなどの制御に用いられるモータ制御情報を算出する。
本発明のモーションコントローラに登録される制御関数の入力には、モータもしくは接続したセンサから取得したセンサ値と、上位制御装置から受信したモータ制御指令の指令値を使用され、制御関数の実行結果として、モータの位置、速度、トルクもしくは圧力、トルクリミットなどのアンプへの指令またはその補正量などが出力される。そして、本発明のモーションコントローラは、制御関数の出力である指令または補正量により、モータ制御情報を変更して、変更後のモータ制御情報によりモータの軸制御を行う。
【００２０】
＜第１の実施形態＞
図１は、本発明の第１の実施形態によるモーションコントローラの機能ブロック図である。本実施形態のモーションコントローラ１０は、従来技術のモーションコントローラ１０と同様に、上位制御装置２０と通信手段により接続されており、モーションコントローラ１０内の通信制御部１１により、上位制御装置２０から送信されてくるモータ制御指令および制御関数を受信する。モーションコントローラ１０は、受信したモータ制御指令の値を元にしてモータ２の制御に用いる図示しないメモリ上に設けられたモータ制御情報格納部１３に記憶されているモータ制御情報を更新すると共に、受信した制御関数を図示しないメモリ上に設けられた制御関数格納部１４へと格納する。
【００２１】
上位制御装置２０から送信されてくる制御関数は、モータもしくは接続したセンサから取得したセンサ値と、上位制御装置から受信したモータ制御指令の指令値を入力（引数）として、モータの位置、速度、トルクもしくは圧力、トルクリミットなどのアンプへの指令値またはその補正量を出力する関数である。制御関数は、例えば計算式やプログラムなどの形式とすることが可能であるが、少なくともモーションコントローラ１０の制御関数実行部１５において算出乃至実行ができるものであり、入力に基づいて１以上の出力が得られるものであればどのような形式で制御関数を実装してもよい。制御関数は、文字列でもバイナリ形式のデータでもよい。また、制御関数に含まれる処理は四則演算などの数値処理に限らず、条件分岐などの実行制御を含むことができる。
【００２２】
制御関数格納部１４は、複数の制御関数を格納することが可能である。モーションコントローラ１０は、制御関数格納部１４に対して制御関数を格納する際に、後述する制御関数実行部１５がいずれの制御関数を実行するべきであるかを判別できるようにして制御関数を格納する。例えば、モーションコントローラ１０は、上位制御装置２０から１または複数の制御関数が送信されてきた場合には制御関数格納部１４に格納されているすべての制御関数を削除して新たに受信した制御関数を制御関数格納部１４へと格納するようにしてもよい。また、モーションコントローラ１０は、制御関数格納部１４に対して制御関数を格納する際に、既に同じ種類の指令値または補正値を出力する制御関数が格納されている場合には、先に格納されている制御関数を削除してから新たな制御関数を格納するようにしてもよい。
【００２３】
制御関数実行部１５は、モーションコントローラ１０の制御周期毎に制御関数格納部１４に格納されている制御関数を実行し、実行結果として出力される指令値または補正値を制御変更指令として制御情報変更部１６へと出力する。制御関数実行部１５は、制御関数を実行する際の入力（引数）として、軸制御部１２から取得したモータ２の状態を示す値やセンサ５から取得したセンサ値、上位制御装置２０から受信したモータ制御指令の指令値などを使用する。制御関数実行部１５は、制御関数格納部１４に格納されている制御関数のうちで実行対象とされる制御関数を実行する。制御関数実行部１５による実行対象とされる制御関数は、制御関数格納部１４への制御関数の格納方法に依存する。例えば、制御関数格納部１４に対して同じ種類の指令値または補正値を出力する制御関数が格納されないように構成されている場合には制御関数実行部１５は制御関数格納部１４に格納されているすべての制御関数が実行対象とするように構成すればよい。
【００２４】
制御情報変更部１６は、モータ制御情報格納部１３に格納されているモータ制御情報と、制御関数実行部１５から入力された制御変更指令とに基づいて、モータ２の制御に用いるモータ制御情報を生成し、生成したモータ制御情報を軸制御部１２へと出力する。制御情報変更部１６は、制御変更指令が指令値を含む場合には、当該指令値でモータ制御情報を更新し、また、制御情報変更部１６は、制御変更指令が補正値を含む場合には、当該補正値でモータ制御情報に含まれる同じ種類の指令値を補正することで、モータ２の制御に用いるモータ制御情報を生成する。
【００２５】
図２は、図１に示したモーションコントローラ１０が毎制御周期に実行する処理を示すフローチャートである。
●［ステップＳＡ０１］通信制御部１１は、上位制御装置２０から制御関数を受信したか判定する。制御関数を受信した場合にはステップＳＡ０２へと処理を移行し、制御関数を受信していない場合にはステップＳＡ０３へと処理を移行する。
●［ステップＳＡ０２］通信制御部１１は、受信した制御関数を制御関数格納部１４へと格納する。
【００２６】
●［ステップＳＡ０３］制御関数実行部１５は、制御関数格納部１４に格納されている制御関数を実行する。
●［ステップＳＡ０４］制御情報変更部１６は、制御関数実行部１５が実行した制御関数の実行結果をモータ制御情報へと反映する。
●［ステップＳＡ０５］制御情報変更部１６は、ステップＳＡ０４で制御関数の実行結果を反映したモータ制御情報を軸制御部１２へと入力し、軸制御部１２は入力されたモータ制御情報に基づいてアンプ３を制御してモータ２を駆動する。
【００２７】
図３は、図１に示した本実施形態のモーションコントローラと上位制御装置とにより機械を制御する例を示す図である。なお、図３ではモータ制御情報格納部１３、制御関数格納部１４などの一部の記載を省略している。図３の例では、上位制御装置２０が備える指令算出処理部２１は、モータ２の目標位置などを指令するモータ制御指令を生成してモーションコントローラ１０へと送信することに加えて、機構部４を被加工部６に押し付ける動作を行う際に、モーションコントローラ１０に対して押し付け動作の軸制御のための制御関数を送信する。モーションコントローラ１０は、上位制御装置２０から制御関数が送信される前は、上位制御装置２０から送られてくる目標位置を含むモータ制御指令に従うだけの制御を行うが、受信した制御関数を制御関数実行部１５で実行することに得られる出力結果を用いてモータ制御情報の変更や補正を行うことで、圧力センサ５ａからフィードバックされるセンサ値に対する高い応答性での押し付け動作のための軸制御を行うことができる。図３のような制御において用いられる具体的な制御関数の例としては、圧力センサ５ａにより検出されるセンサ値（圧力値）が一定以上になると、指定した目標圧力との差分に応じてトルクリミットを増減させる制御関数が考えられる。
【００２８】
上記したような制御関数を制御関数実行部１５が制御周期毎に実行している場合について考える。モーションコントローラ１０の制御情報変更部１６は、上位制御装置２０からモータ制御指令として目標位置を受けると、その値をモータ制御情報の移動量に反映し、反映したモータ制御情報を軸制御部１２へと出力する。そして、軸制御部１２はモータ２を指令された位置まで移動するように制御を行う。この移動中に機構部４が被加工部６に押し当てられると圧力センサ５ａの値が急激に大きくなる。このとき、制御関数実行部１５が毎制御周期に実行している制御関数が、一定の値を超える圧力センサ５ａが検出するセンサ値に反応して、目標圧力との差分に応じてトルクリミット値を出力する。
【００２９】
制御関数実行部１５から出力されたトルクリミット値が入力された制御情報変更部１６では、入力されたトルクリミットの値によりモータ制御情報のトルクリミットを変更し、その変更後のモータ制御情報を軸制御部１２へと出力する。これにより、被加工部６に機構部４を押し付けている間、その押し付け力を圧力センサ５ａが検出するセンサ値に対して高応答で一定に保つことができる。
【００３０】
次に、これまでと異なるモータ２の制御を行う際には、上位制御装置２０から新たな制御関数をモーションコントローラ１０に送信することで、異なるモータ２の動きを行うことができる。あらかじめ組み込まれた制御方法を選択するのと違い、上位制御装置２０の送信した通りの制御方法を実現できるため、制御の自由度を高くすることができる。
【００３１】
また、上位制御装置２０の計算能力が小さく、上位制御装置２０の処理実行周期とそれに伴って通信の実行周期が長くなる場合でも、モーションコントローラ１０の性能に応じて特定のセンサフィードバック情報に対する応答性を向上させることができる。
【００３２】
また、トルク補正量を出力する制御関数を用いる場合には、制御情報変更部１６は、制御関数実行部１５が実行する制御関数の実行結果に応じて、モータ制御情報に対して補正を行う。このような場合には、例えば、モータ制御情報として、移動量とトルク指令が指定されているとしたとして、モーションコントローラ１０に格納された制御関数は実行結果としてトルク補正量を出力し、出力されたトルク補正量を入力として受けた制御情報変更部１６は、入力されたトルク補正量をモータ制御情報に反映させる。具体的な制御関数の例としては、圧力センサ５ａが検出するセンサ値が一定以上になると、指定した目標圧力との差分に応じてトルク補正量を増減させる。なお、補正値を出力する制御関数を使用する場合には、補正可能な量はモータ制御情報の種類ごとに範囲が定められ、その範囲内であれば値を増減させるような補正が行われる。
【００３３】
＜第２の実施形態＞
第２の実施形態のモーションコントローラ１０は、制御関数実行部１５において、その実行結果が反映される軸制御部１２とは異なる軸制御部１２から得られる情報も入力に使用できる。例えば、図４に示すように、モーションコントローラ１０が２つのモータ２ａ，２ｂを制御し、これら２つのモータ２ａ，２ｂを連結させて１つの機構部４を駆動させるシステムを考える。この場合、モーションコントローラ１０は、モータ２ａ，２ｂのそれぞれに対して、モータ制御情報格納部１３（図示せず）、制御関数格納部１４（図示せず）、制御関数実行部１５、制御情報変更部１６、軸制御部１２を備える。
【００３４】
図４の例において、モータ２ａの制御は第１の実施形態と同様に、例えば、圧力センサ５ａにより検出されたセンサ値に応じてトルク補正量を算出することで制御を行う。そして、制御関数実行部１５ｂが実行する制御関数を格納する制御関数格納部１４ｂ（図示せず）には予め上位制御装置２０から送信された「モータ２ａのトルク指令値を取得してモータ２ｂのトルク指令値とする制御関数」を格納しておき、当該制御関数をモータ２ｂの制御関数実行部１５ｂは毎制御周期に実行する。これにすることで、２軸に対して同一のトルク指令が行われることから、連結した機械において２軸が協調して機械を制御することができる。
【００３５】
＜第３の実施形態＞
第３の実施形態のモーションコントローラ１０は、制御関数格納部１４に複数の制御関数が格納されている場合において、制御関数実行部１５が実行するべき制御関数を上位制御装置２０から送られてくるモータ制御指令と同期した通信に基づいて決定する。本実施形態におけるモーションコントローラ１０の基本的な機能構成は第１の実施形態の場合と同様である。
【００３６】
この場合、上位制御装置２０は制御関数をモーションコントローラ１０へと送信する際に、それぞれの制御関数に対して当該制御関数を他の制御関数と識別できる識別情報を関連付けて送信する。また、上位制御装置２０は実行する制御関数に対応する識別情報の配列またはビットパターンを指令しておくことで、所望のタイミングで制御方法を切替えることができる。たとえば制御関数を登録する際に０〜３１のいずれかの番号を識別情報として付加する。上位制御装置２０はモータ制御指令と同時に３２ビットのデータを送信し、モーションコントローラ１０はオンになっているビットに対応する番号を識別情報として有する制御関数をすべて実行する。または、０〜３１の値を同時に複数送信することとして、それらの番号を識別情報として有する制御関数をすべて実行する。
【００３７】
図３で示した例と同様に、圧力センサ５ａが検出するセンサ値に応じてトルクリミット値の計算を行う制御関数を制御関数格納部１４に登録して制御する例を考える。本実施形態のモーションコントローラ１０では、異なる目標圧力ごとに制御関数を複数登録しておき、押し付け動作の途中でその時点での目標圧力のための制御関数に切替えることで、段階的に圧力値を変更していくことが可能になる。
上記に加えて、モータ２の電流値が一定値を上回る場合に、トルク指令として０を出力する制御関数を登録しておくと、この制御関数を実行している間にモータ２に対して過剰な負荷が加わると、即座にモータ２の制御を停止させることができる。
本実施形態のモーションコントローラ１０では、押し付け動作中でも、それ以外の動作中でも、このような制御関数を実行するべき制御関数として選択することで、機械を保護することができる。
【００３８】
＜第４の実施形態＞
第４の実施形態のモーションコントローラ１０は、上位制御装置２０との通信制御部１１において、モータ制御指令を入出力する通信と同期して、複数回の通信に分割して制御関数の受信を行う。本実施形態におけるモーションコントローラ１０の基本的な機能構成は第１の実施形態の場合と同様である。
【００３９】
通常の通信制御部１１においては、１通信周期の間に送信可能なデータの長さは限りがある。そこで、１通信周期で送信可能なデータの長さよりも制御関数が大きい場合には、上位制御装置２０から複数回の通信に分割して制御関数を送信する。分割した制御関数をすべて転送し終えると、通信制御部１１で受信された分割された制御関数は結合された上で制御関数格納部１４へと格納される。格納された制御関数は制御関数実行部１５によって実行可能となる。
【００４０】
＜第５の実施形態＞
第５の実施形態のモーションコントローラ１０は、上位制御装置２０との通信制御部１１において、モータ制御指令を入出力する高速な通信と別に、より低速な周期の通信により制御関数の受信が行われる。本実施形態におけるモーションコントローラ１０の基本的な機能構成は第１の実施形態の場合と同様である。
本実施形態のモーションコントローラ１０が備える通信制御部１１は、モータ制御指令のための通信の残り時間で低速な周期の通信を行い、制御関数の受信を行うことで、モータ制御指令の通信に遅延を引き起こすことなく、制御関数の受信が可能となる。
【００４１】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例にのみ限定されるものでなく、適宜の変更を加えることにより様々な態様で実施することができる。
【符号の説明】
【００４２】
２，２ａ，２ｂ  モータ
３  アンプ
４  機構部
５  センサ
５ａ  圧力センサ
６  被加工部
１０  モーションコントローラ
１１  通信制御部
１２，１２ａ，１２ｂ  軸制御部
１３，１３ａ，１３ｂ  モータ制御情報格納部
１４，１４ａ，１４ｂ  制御関数格納部
１５，１５ａ，１５ｂ  制御関数実行部
１６，１６ａ，１６ｂ  制御情報変更部
２０  上位制御装置
２１  指令算出処理部
【図１】
0006356709.tif 000002
【図２】
0006356709.tif 000003
【図３】
0006356709.tif 000004
【図４】
0006356709.tif 000005
【図５】
0006356709.tif 000006
【図６】
0006356709.tif 000007