(57)【要約】【課題】多軸のモータ制御演算を高速に処理でき、これを安価なシステムとして提供する。【解決手段】全体を統括するＣＰＵ８と、プログラムとデータが格納されたメモリ７と、パワーアンプ及び位置検出器とのインターフェイスを行うモータインターフェイス回路９と、上位コントローラとの通信を行う通信インターフェイス回路１０とを備えた多軸モータ制御装置１７において、入力データＡ、Ｂが格納された入力メモリ１５と、入力データＡ、Ｂとオペコードを入力すると加減乗除演算と論理演算と数値比較演算の少なくとも１つを演算して結果を出力する複数の演算器１と、その演算結果を受けて格納する出力メモリ１６からなる並列演算回路６を備える。【選択図】    図１
2004260890.tif 000002
【特許請求の範囲】
【請求項１】
多軸モータ制御装置全体を統括するＣＰＵと、
そのＣＰＵを動作させるためのプログラムとデータが格納されたメモリと、
複数のモータに対応して設けられ、パワーアンプ及び位置検出器とのインターフェイスを行う複数のモータインターフェイス回路と、
上位コントローラとの通信を行う通信インターフェイス回路と
を備えて前記複数のモータを制御する前記多軸モータ制御装置において、
入力データＡ及びＢが格納された入力メモリと、前記入力データＡ及びＢとオペコードを入力すると加減乗除演算と論理演算と数値比較演算の少なくとも１つの演算をして結果を出力する複数の演算器と、その演算器の演算結果を受けて格納する出力メモリからなる並列演算回路を備えたことを特徴とする多軸モータ制御装置。
【請求項２】
前記演算器は前記複数のモータに対応して並列に且つ１軸毎順番に演算することを特徴とする請求項１記載の多軸モータ制御演算装置。
【請求項３】
前記並列演算回路は前記複数のモータに対応した複数の特定演算器を備えており、この特定演算器を利用して逐次的に演算を行う処理を、複数軸分並列に実行することを特徴とする請求項１記載の多軸モータ制御演算装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のモータの制御演算処理を並列に実行する多軸モータ制御装置に関する。
【０００２】
【従来の技術】
従来の多軸モータ制御装置は、複数のモータ制御回路と、統括ＣＰＵと、共有メモリと、通信インターフェイス回路から構成されており、モータ制御回路は各軸の制御演算を行うＣＰＵと、そのＣＰＵを動作させるためのプログラムとデータを格納するメモリと、モータ駆動用のパワーアンプと位置検出器とのインターフェイスを行うモータインターフェイス回路を備えている。各モータ制御回路と多軸モータ制御装置の全体を統括する統括ＣＰＵとの間は共有メモリを介して接続されており、上位との通信を行うために通信インターフェイス回路が設置されている（例えば、特許文献１参照）。また、第２の従来の多軸モータ制御装置は、モータ制御回路にモータ駆動用のパワーアンプや位置検出器とのインターフェイスを行うモータインターフェイス回路を備えており、多軸モータ制御装置全体を統括する高速ＣＰＵと、その高速ＣＰＵを動作させるためのプログラムとデータを格納する高速メモリと、上位との通信を行う通信インターフェイス回路から構成されている。
【０００３】
【特許文献１】
特開平１２−２８７４７６号公報
【０００４】
以下、２つの従来例について図を用いて説明する。図６において、１２は多軸モータ制御装置の全体を統括する統括ＣＰＵであり、その統括ＣＰＵを動作させるためのプログラムおよびデータを格納するメモリ７とともに動作する。通信インターフェイス回路１０を介して上位コントローラからモータの回転を指示する指令値が入力されると、統括ＣＰＵ１２は軸毎に設置された共有メモリ１１にモータ指令値を書き込む。一方、８は各軸の制御を行うＣＰＵであり、そのＣＰＵ８を動作させるためのプログラムおよびデータを格納するメモリ７を利用してモータの制御演算を行う。モータの制御演算を行う際、共有メモリ１１に書き込まれている上位からのモータ指令値を読み出して制御演算を行うものである。最終的なモータへの指令値はモータインターフェイス回路９を介してパワーアンプに入力され電力増幅されてモータを駆動することになる。モータに接続された位置検出器から出力される検出データは、モータインターフェイス回路９を介してＣＰＵ８で確認され、次の制御演算のフィードバック値として利用されることになる。また、このフィードバック値はＣＰＵ８により共有メモリ１１に書き込まれ、統括ＣＰＵ１２により読み出され、通信インターフェイス回路を介して上位コントローラへ送信される。これら一連の動作を制御周期毎に繰り返し行い、多軸モータの制御が行われている。
【０００５】
図７は、図６の多軸モータ制御装置とは異なり、各軸毎に制御演算を行うＣＰＵを設け、多軸モータ制御装置全体で１つの高速ＣＰＵ１３とその高速ＣＰＵが動作するために必要となる１つの高速メモリ１４を設けたものである。つまり、多軸モータの制御演算を１つの高速ＣＰＵで行わせ、ＣＰＵ間に配置されていた図６の例の共有メモリを削除してハードウェア構成を簡単にしたものである。
このように、従来の多軸モータ制御装置では、制御演算をＣＰＵにて行っており、図６のように各軸毎にＣＰＵを配置するか、図７のように高速ＣＰＵを利用して複数軸の制御演算を行うようになっていた。
【０００６】
【発明が解決しようとする課題】
しかしながら、従来の多軸モータ制御装置は、モータ各軸毎に制御演算を行うためのＣＰＵを設けるとか、あるいは１つの高速ＣＰＵにより複数軸の制御演算を行うというハードウェア構成にしていたため、ハードウェアが複雑となったり、高価なシステムとなったりしていた。そこで本発明は、多軸のモータ制御演算を高速に処理でき、これを安価なシステムとして提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記問題を解決するため、本発明は、多軸モータ制御装置全体を統括するＣＰＵと、そのＣＰＵを動作させるためのプログラムとデータが格納されたメモリと、複数のモータに対応して設けられ、パワーアンプ及び位置検出器とのインターフェイスを行う複数のモータインターフェイス回路と、上位コントローラとの通信を行う通信インターフェイス回路とを備えて前記複数のモータを制御する前記多軸モータ制御装置において、入力データＡ及びＢが格納された入力メモリと、前記入力データＡ及びＢとオペコードを入力すると加減乗除演算と論理演算と数値比較演算の少なくとも１つの演算をして結果を出力する複数の演算器と、その演算器の演算結果を受けて格納する出力メモリからなる並列演算回路を備えたことを特徴としている。
このようになっているため、制御演算がハードウェアにて並列に実行されて高速に処理することが可能となる。また、従来のＣＰＵの処理を並列演算回路で実行してＣＰＵの処理負荷が削減されるため、複数のＣＰＵを利用した多軸モータ制御装置とする必要はなくなり、ハードウェア構成を単純なものとすることができる。
【０００８】
また、請求項２に記載の本発明は、軸毎の制御演算を並列演算回路内部に配置された演算器にて並列に実行し、複数軸の制御演算を１軸毎順番に処理することを特徴とするものである。
このため従来のＣＰＵのように１つの演算器で逐次的に行っていた制御演算を複数の演算器で並列に処理することにより、高速に制御演算を行うことが可能となる。また、複数軸の制御演算を１軸毎にまとめて処理することにより、並列演算回路内部のメモリ容量を削減することができる。
さらに、請求項３に記載の発明は、軸毎の制御演算を並列演算回路内部の特定演算器にて逐次的に実行し、その逐次的な処理が複数軸並列して実行されることを特徴とするものである。
このため並列演算回路の演算器が待ち状態となる時間が無くなり、ハードウェアが効率良く活用されて、制御演算を高速に処理することが可能となる。
【０００９】
【発明の実施の形態】
以下、本発明の具体的実施例を図に基づいて説明する。
（第１実施例）
図１は本発明の多軸モータ制御装置のブロック図であり、図２はその中にある並列演算回路の内部構成図である。図１には、多軸モータ制御装置全体を統括するＣＰＵ８と、そのＣＰＵを動作させるためのプログラムおよびデータを格納するメモリ７と、制御演算の並列処理が可能な並列演算回路６と、パワーアンプや位置検出器とのインターフェイスを行うモータインターフェイス回路９と、上位コントローラと通信する通信インターフェイス回路１０とを備えて複数のモータを制御する多軸モータ制御装置を示している。また図２には、並列演算回路６の内部構成を示しており、制御演算する際の入力データＡ３、Ｂ４と、演算器の演算処理内容を決定するオペコード２を入力し、演算結果５を出力する加減乗除、論理演算および数値比較を行う演算器１を並列に演算できるように複数備えていることを示している。
【００１０】
以下、その動作について説明する。８は多軸モータ制御装置の統括ＣＰＵであり、そのＣＰＵ８を動作させるためのプログラムおよびデータを格納するメモリ７とともに動作する。通信インターフェイス回路１０を介して上位コントローラからモータへの指令値が入力され、ＣＰＵはその指令値とモータの制御演算に必要となるパラメータ値を並列演算回路６の入力データに設定し、各軸のモータ制御演算が並列演算回路内部にて実行される。制御演算が完了したことを割込み等の手段によりＣＰＵへ通知し、ＣＰＵは演算結果５を並列演算回路から読み出し、そのデータを最終的なモータへの指令値としてモータインターフェイス回路９に書き込む。その後、指令値はパワーアンプにて電力増幅されモータを駆動することになる。モータに接続された位置検出器から出力される検出データは、モータインターフェイス回路９を介してＣＰＵ８にて確認され、ＣＰＵ８では次の制御演算のフィードバック値として利用される。このフィードバック値はＣＰＵ８により読み出され、通信インターフェイス回路１０を介して上位コントローラへ送信される。これら一連の動作を制御周期毎に繰り返し行い、多軸モータの制御が行われる。
次に並列演算回路６内部でのモータ制御演算方法について、請求項２に記載の方法に基づき図３、図４を用いて説明する。なお、分かり易くするため、ここでは３軸のモータ制御演算を行うものとし、各軸での演算式についても簡略化した演算を実行するものとして説明する。
まず、図３の演算では、（ａ＋ｂ）＊ｃ＋ｄの処理Ｒ１を行いｘ１の結果を得る。さらに、（ｅ＋ｆ）＊ｇ＋ｈの処理Ｒ２と、演算結果ｘ１を加算した処理Ｒ４によりｘ２を得る。引き続き、（ｉ＋ｊ）＊ｋ＋ｍの処理Ｒ３と、演算結果ｘ１を加算した処理Ｒ５を行い、その結果に演算結果ｘ２を加算した処理Ｒ６を行うものである。
【００１１】
並列演算回路６内部には、演算器がＡＬＵ１、ＡＬＵ２、ＡＬＵ３と３つ並列に演算処理が可能なように配置されている。各演算器では積和演算と加算処理を１度に処理が可能であり、３つの演算器を並列に動作させて３軸の演算処理を行ったものを図４に示す。図４のＡＬＵ１とＡＬＵ２とＡＬＵ３は横に並列に配置された演算器を示し、その演算器で処理される各軸の処理内容を各内部に示している。また、その演算器で処理されるサイクル数を上から下へ順番に記載している。よって、図４では図３に示す３軸分の演算処理が、７サイクルで完了することを示している。
以下に具体的な演算処理の内容を説明する。３つの演算器ＡＬＵ１、ＡＬＵ２、ＡＬＵ３を並列に制御演算処理させて、１軸目の制御演算を実行する場合、Ｒ１とＲ２とＲ３の処理をサイクル１に実行することができる。引き続き、サイクル１の演算結果を利用する処理Ｒ４とＲ５がサイクル２で実行できる。このとき、サイクル２のＡＬＵ１にて、１軸目の残る処理Ｒ６を行いたいところではあるが、Ｒ６の処理は、Ｒ４の演算結果を利用する処理であるため、サイクル３にて処理しなければならない。よって、１軸目の制御演算では、サイクル１ではＡＬＵ１とＡＬＵ２とＡＬＵ３を並列で利用し、サイクル２ではＡＬＵ２とＡＬＵ３を、サイクル３ではＡＬＵ３を利用することになる。
次に２軸目の制御演算では、１軸目の演算でサイクル２およびサイクル３にて使用しなかった演算器を利用することができる。つまり、サイクル２では処理Ｒ１をＡＬＵ１にて実行し、サイクル３では処理Ｒ２とＲ３をＡＬＵ１とＡＬＵ２にて実行することができる。引き続き、サイクル３の演算結果を利用する処理Ｒ４とＲ５をサイクル４にて実行する。このとき、サイクル４のＡＬＵ３にて、２軸目の残る処理Ｒ６を行いたいところではあるが、Ｒ６の処理は、Ｒ４の演算結果を利用する処理であるため、サイクル５にて処理しなければならない。よって、２軸目の制御演算では、サイクル２ではＡＬＵ１を利用し、サイクル３およびサイクル４ではＡＬＵ１とＡＬＵ２を、サイクル５ではＡＬＵ１を利用することになる。
【００１２】
さらに、３軸目の制御演算では、２軸目の演算でサイクル４およびサイクル５にて使用しなかった演算器を利用することができる。つまり、サイクル４では処理Ｒ１をＡＬＵ３にて実行し、サイクル５では処理Ｒ２とＲ３をＡＬＵ２とＡＬＵ３にて実行することができる。引き続き、サイクル５の演算結果を利用する処理Ｒ４とＲ５をサイクル６で実行する。このとき、サイクル６のＡＬＵ１にて、３軸目の残る処理Ｒ６を行いたいところではあるが、Ｒ６の処理は、Ｒ４の演算結果を利用する処理であるため、サイクル７にて処理しなければならない。よって、３軸目の制御演算では、サイクル４ではＡＬＵ３を利用し、サイクル５およびサイクル６ではＡＬＵ２とＡＬＵ３を、サイクル７ではＡＬＵ３を利用することになる。
以上のように１軸目の制御演算を行い、１軸目の演算にて使用しない演算器を利用して２軸目の制御演算を開始し、その後２軸目の演算にて使用しない演算器を利用して３軸目の制御演算を開始して各処理を完了する。これら３軸のモータ制御演算を制御周期毎に繰り返し行う。このように並列演算回路を利用し、３つの演算器を並列に処理させてモータの制御演算を行うことで、従来のようにＣＰＵにて３軸のモータ制御演算を行うより、制御演算を高速に実行させることができるようになる。
【００１３】
（第２実施例）
図５は第２のモータ制御演算を説明する図である。これは、請求項３の多軸モータ制御装置に相当する。また、この説明においても前述と同様に、３軸のモータ制御演算を行うものとし、各軸での演算式についても簡略化した図３に示す演算式を実行するものとして説明する。
並列演算回路６内部には、演算器がＡＬＵ１、ＡＬＵ２、ＡＬＵ３と３つ並列に演算処理が可能なように配置されている。各演算器では積和演算と加算処理を１度に処理が可能であり、３つの演算器を並列に動作させて３軸の演算処理を行ったものを図５に示す。図５の制御演算方法では、並列演算回路内部の演算器のうち、ＡＬＵ１では１軸目のモータの制御演算のみを行い、ＡＬＵ２では２軸目のモータの制御演算のみを行い、ＡＬＵ３では３軸目のモータの制御演算のみを行うものとする。
以下に具体的な演算処理の内容を説明する。並列に配置された３つの演算器ＡＬＵ１、ＡＬＵ２、ＡＬＵ３のうち、ＡＬＵ１にて１軸目の全ての制御演算を実行すると、Ｒ１の処理をサイクル１にて実行し、Ｒ２の処理をサイクル２、Ｒ３の処理をサイクル３、Ｒ４の処理をサイクル４、Ｒ５の処理をサイクル５、Ｒ６の処理をサイクル６と順番に実行することになる。これと並行してＡＬＵ２、ＡＬＵ３にて２軸目および３軸目の制御演算を実行するため、結果的に第１実施例と同じ処理を６サイクルで演算できることになる。
このように、各軸の制御演算処理を実行する並列演算回路内部の演算器を固定することは、並列で制御演算処理させる場合に、演算器間に生じる演算結果のデータ待ち等の時間を無くすことができ、Ｒ４の処理が完了しなければ、Ｒ６の処理が実行できないというデータ待ちサイクルが無くなる。すなわち、演算器を効率良く動作させることができて制御演算をより高速に実行させることが可能となるのである。
【００１４】
【発明の効果】
以上述べたように、本発明の多軸モータ制御装置によれば、従来のＣＰＵのように逐次的に処理していた制御演算をハードウェアにて並列に実行し、高速に処理することが可能になるという効果がある。また、従来のＣＰＵにて行っていた処理を並列演算回路が実行することによりＣＰＵの処理負荷は削減されるため、複数のＣＰＵを利用した多軸モータ制御装置とする必要はなく、ハードウェア構成を単純化することで安価なシステムが構築可能になるという効果がある。
また、請求項２に記載の多軸モータ制御装置によれば、従来のＣＰＵのように逐次的に行っていた制御演算を並列に処理することにより、高速に制御演算を行うことが可能になるという効果がある。このため、モータの制御周期を短縮することが可能となり制御性能の向上につながる。また、複数軸の制御演算を１軸毎にまとめて処理することにより、並列演算回路内部のメモリ容量を削減できるという効果がある。
さらに、請求項３に記載の多軸モータ制御装置によれば、並列演算回路の演算器が待ち状態となる時間を無くし、ハードウェアを効率良く活用することができるため、制御演算をより高速に処理することが可能になるという効果がある。このため、モータの制御周期を短縮することが可能となり制御性能の向上につながる。
【図面の簡単な説明】
【図１】本発明の多軸モータ制御装置の構成を示すブロック図
【図２】並列演算回路の内部構成図
【図３】第１、第２実施例の制御演算式を説明する図
【図４】第１の制御演算を説明する図
【図５】第２の制御演算を説明する図
【図６】第１従来例の多軸モータ制御装置のブロック図
【図７】第２従来例の多軸モータ制御装置のブロック図
１  演算器
２  オペコード
３  入力データＡ
４  入力データＢ
５  演算結果
６  並列演算回路
７  メモリ
８  ＣＰＵ
９  モータインターフェイス回路
１０  通信インターフェイス回路
１１  共有メモリ
１２  統括ＣＰＵ
１３  高速ＣＰＵ
１４  高速メモリ
１５  入力メモリ
１６  出力メモリ
１７  多軸モータ制御装置
２０  ＡＬＵ１
２１  ＡＬＵ２
２２  ＡＬＵ３
【図１】
2004260890.tif 000003
【図２】
2004260890.tif 000004
【図３】
2004260890.tif 000005
【図４】
2004260890.tif 000006
【図５】
2004260890.tif 000007
【図６】
2004260890.tif 000008
【図７】
2004260890.tif 000009