(57)【要約】モータ制御装置のカスタマイズ方法であって、カスタマイズ要素における特定機能の変更処理を実行するカスタマイズモジュールを形成し、カスタマイズモジュールの集合によりカスタマイズモジュール群を構成し、カスタマイズ要素における特定機能に関する処理を実行するユーザモジュールをユーザにより形成可能とし、カスタマイズモジュールとユーザモジュールとのそれぞれからアクセス可能なバッファメモリを設ける。そして、バッファメモリを介してユーザモジュールから受け取ったデータに基づき、カスタマイズモジュールが特定機能に関する処理を実行するように、カスタマイズモジュールを構成している。
2017110061.tif 000002
【特許請求の範囲】
【請求項１】
モータの制御を行うモータ制御装置において、特定機能に対してユーザが変更できるカスタマイズ要素を機能単位ごとに設けることにより、カスタマイズ化を図るモータ制御装置のカスタマイズ方法であって、
前記カスタマイズ要素における前記特定機能の変更処理を実行するカスタマイズモジュールを形成し、前記カスタマイズモジュールの集合によりカスタマイズモジュール群を構成し、
前記カスタマイズ要素における前記特定機能に関する処理を実行するユーザモジュールを、前記ユーザにより形成可能とし、
前記カスタマイズモジュールと前記ユーザモジュールとのそれぞれからアクセス可能なバッファメモリを設け、
前記バッファメモリを介して前記ユーザモジュールから受け取ったデータに基づき前記特定機能に関する処理を実行するように、前記カスタマイズモジュールを構成したことを特徴とするモータ制御装置のカスタマイズ方法。
【請求項２】
前記ユーザモジュールは前記バッファメモリのみに対して書き込みが可能なように、前記ユーザモジュールの処理を制限し、
前記カスタマイズモジュールは前記バッファメモリのデータをパラメータとして処理を実行するように、前記カスタマイズモジュールの処理を制限したことを特徴とする請求項１に記載のモータ制御装置のカスタマイズ方法。
【請求項３】
前記カスタマイズモジュールは、あらかじめ組み込まれた手順に従って前記変更処理を実行し、
前記ユーザモジュールは、ユーザが作成したコマンドの手順に従って、前記特定機能に関する処理を実行することを特徴とする請求項１に記載のモータ制御装置のカスタマイズ方法。
【請求項４】
前記カスタマイズモジュールは、前記バッファメモリを介してのみ前記ユーザモジュールからのデータを受け取るように制限したことを特徴とする請求項１に記載のモータ制御装置のカスタマイズ方法。
【請求項５】
前記ユーザモジュールは、前記ユーザが設定したコマンドに従って、変更すべき前記特定機能の区分番号と設定値とを、前記バッファメモリに書込み、
前記カスタマイズモジュールは、前記ユーザモジュールが前記バッファメモリに書込んだ前記区分番号と前記設定値とを参照して、前記特定機能の変更処理を実行することを特徴とする請求項１に記載のモータ制御装置のカスタマイズ方法。
【請求項６】
前記ユーザモジュールと前記カスタマイズモジュールとは、互いに独立したタスクとして起動されることを特徴とする請求項１に記載のモータ制御装置のカスタマイズ方法。
【請求項７】
モータの制御を行うモータ制御装置において、特定機能に対してユーザが変更できるカスタマイズ要素を機能単位ごとに複数設けたカスタマイズ機能を備えたモータ制御装置であって、
プログラムに従って処理を実行するＣＰＵと、
前記モータの動きを制御するためのモータ制御プログラムを含むプログラムを記憶するプログラム記憶部と、
前記ＣＰＵが前記モータ制御プログラムを実行することで生成されたモータ制御信号を入力し、前記モータ制御信号に基づき、前記モータを通電駆動するためのモータ駆動信号を生成する駆動回路部と、
前記カスタマイズ要素における前記特定機能の変更処理を実行するカスタマイズモジュールのそれぞれの集合であるカスタマイズモジュール群を記憶するカスタマイズモジュール記憶部と、
前記ユーザにより形成されて、前記カスタマイズ要素における前記特定機能に関する処理を実行するユーザモジュールを記憶するユーザモジュール記憶部と、
前記カスタマイズモジュールと前記ユーザモジュールとのそれぞれからアクセス可能なバッファメモリとを備え、
前記カスタマイズモジュールが、前記バッファメモリを介して前記ユーザモジュールから受け取ったデータに基づき処理を行うことで、前記カスタマイズ機能が実行されることを特徴とするモータ制御装置。
【請求項８】
前記ユーザモジュールが、前記バッファメモリのみに対しての書き込みの処理を行うとともに、前記カスタマイズモジュールが、前記バッファメモリのデータをパラメータとして処理を行うことで、前記カスタマイズ機能が実行されることを特徴とする請求項７に記載のモータ制御装置。
【請求項９】
前記カスタマイズモジュールは、あらかじめ組み込まれた手順に従って前記変更処理を実行し、
前記ユーザモジュールは、ユーザが作成したコマンドの手順に従って、前記特定機能に関する処理を実行することを特徴とする請求項７に記載のモータ制御装置。
【請求項１０】
前記カスタマイズモジュールは、前記バッファメモリを介してのみ前記ユーザモジュールからのデータを受け取るように制限したことを特徴とする請求項７に記載のモータ制御装置。
【請求項１１】
前記ユーザモジュールは、前記ユーザが設定したコマンドに従って、変更すべき前記特定機能の区分番号と設定値とを、前記バッファメモリに書込み、
前記カスタマイズモジュールは、前記ユーザモジュールが前記バッファメモリに書込んだ前記区分番号と前記設定値とを参照して、前記特定機能の変更処理を実行することを特徴とする請求項７に記載のモータ制御装置。
【請求項１２】
前記ユーザモジュールと前記カスタマイズモジュールとは、互いに独立したタスクとして起動されることを特徴とする請求項７に記載のモータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータの位置や速度などを制御するモータ制御装置のカスタマイズ方法およびカスタマイズ機能を備えたモータ制御装置に関し、特に、産業用のモータ制御装置のカスタマイズ化に関する。
【背景技術】
【０００２】
このような産業用のモータ制御装置は、サーボアンプなどとも呼ばれており、通常、フィードバック制御を基本として動作する。すなわち、モータ制御装置は、モータの動作位置や動作速度を検出しながら、外部から入力される位置指令や速度指令へ追従するように、モータの位置や速度などの動きを制御している。このような制御は、通常、モータ制御装置内に組み込まれたシステムソフトウエアに基づき実行される。【０００３】
ところが、例えば、モータに接続された負荷などが変更されると、この新たな負荷に対して、システムソフトウエアに含まれる制御パラメータが必ずしも最適とはならなくなる場合が生じ得る。このため、最適化を図ろうとすると、ユーザは、その都度装置メーカに対して、処理変更を依頼しなければならない。このように、産業用のような比較的に制約の厳しいモータ制御装置においては、システムソフトウエアの機能の一部に変更の必要性が生じた場合、ユーザは、簡単に変更することができないという課題があった。【０００４】
そこで、従来、このようなシステムソフトウエアの一部をユーザが独自に簡単に変更することができるカスタマイズ方法が提案されている（例えば、特許文献１参照）。この従来のカスタマイズ方法は、システムソフトウエアで実現されている機能の関数単位で、システムソフトウエアの処理に代えて、ユーザが作成したユーザ関数を有効とするユーザ関数選択パラメータを備えた構成としている。そして、ユーザ関数が有効かどうかの判別に基づき、ユーザ関数が有効であればシステムソフトウエアの処理に代えてユーザ関数を実行する。【０００５】
このような従来の特許文献１のような手法によれば、システムソフトウエアの機能の一部に変更の必要性が生じた場合に、迅速に対応できる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−２３４６３９号公報
【発明の概要】
【０００７】
本発明のモータ制御装置のカスタマイズ方法は、モータの制御を行うモータ制御装置において、特定機能に対してユーザが変更できるカスタマイズ要素を、機能単位ごとに設けることにより、カスタマイズ化を図る方法である。本モータ制御装置のカスタマイズ方法は、カスタマイズ要素における特定機能の変更処理を実行するカスタマイズモジュールを形成し、カスタマイズモジュールの集合により、カスタマイズモジュール群を構成し、そのカスタマイズ要素における特定機能に関する処理を実行するユーザモジュールをユーザにより形成可能とし、カスタマイズモジュールとユーザモジュールとのそれぞれからアクセス可能なバッファメモリを設けている。そして、本カスタマイズ方法は、バッファメモリを介してユーザモジュールから受け取ったデータに基づき、カスタマイズモジュールが特定機能に関する処理を実行するように、カスタマイズモジュールを構成している。
【０００８】
また、本発明のモータ制御装置は、モータの制御を行うモータ制御装置において、特定機能に対してユーザが変更できるカスタマイズ要素を機能単位ごとに複数設けたカスタマイズ機能を備えたモータ制御装置である。本モータ制御装置は、プログラムに従って処理を実行するＣＰＵと、モータの動きを制御するためのモータ制御プログラムを含むプログラムを記憶するプログラム記憶部と、ＣＰＵがモータ制御プログラムを実行することで生成されたモータ制御信号を入力し、モータ制御信号に基づき、モータを通電駆動するためのモータ駆動信号を生成する駆動回路部と、カスタマイズ要素における特定機能の変更処理を実行するカスタマイズモジュールのそれぞれの集合であるカスタマイズモジュール群を記憶するカスタマイズモジュール記憶部と、ユーザにより形成されて、カスタマイズ要素における特定機能に関する処理を実行するユーザモジュールを記憶するユーザモジュール記憶部と、カスタマイズモジュールとユーザモジュールとのそれぞれからアクセス可能なバッファメモリとを備えている。そして、本モータ制御装置は、カスタマイズモジュールが、バッファメモリを介してユーザモジュールから受け取ったデータに基づき処理を行うことで、カスタマイズ機能が実行される構成である。
【図面の簡単な説明】
【０００９】
【図１】図１は、本発明の実施の形態におけるモータ制御装置を含むモータ制御システムの構成を示すブロック図である。
【図２】図２は、同、モータ制御装置のカスタマイズ機能の構成を示すブロック図である。
【図３】図３は、同、モータ制御装置のカスタマイズ機能の動作例を示す図である。
【図４】図４は、同、モータ制御装置のメインの処理であるモータ制御のプログラム、およびカスタマイズ機能を実現するためのカスタマイズモジュールとユーザモジュールとの処理の流れを示すフローチャートである。
【図５】図５は、同、各処理をタスクとして起動したとき、時間軸に沿ってそれぞれの処理を実行する流れを示すシーケンス図である。
【発明を実施するための形態】
【００１０】
上述した従来の手法は、ユーザが作成したユーザ関数がシステムソフトウエアを直接に変更する構成であるため、ユーザ関数を作成する熟練した技術およびシステムソフトウエアに関する知識が必要である。さらに、ユーザが作成したユーザ関数がシステムソフトウエアに対して直接に影響するため、モータ動作における誤動作のリスクや安全性の低下などが考えられ、メーカ側として、商品としての動作保証が非常に厳しくなる。しかも、システムソフトウエアにおいて変更する機能に関連した箇所をユーザに公開することにもなり、メーカ側のノウハウが流出し兼ねないという課題もある。
【００１１】
以下、本発明の実施の形態におけるモータ制御装置について図面を参照しながら説明する。
【００１２】
（実施の形態）
図１は、本発明の実施の形態におけるモータ制御装置１０を含むモータ制御システムの構成を示すブロック図である。
【００１３】
本モータ制御システムは、図１に示すように、モータ５０と、モータ５０に接続された負荷５１と、モータ５０を制御および通電駆動するモータ制御装置１０と、モータ５０における可動部の位置を検出するエンコーダ５９と、動作指令通知などによってモータ制御装置１０をコントロールする上位コントローラ６０とを備えた構成である。本モータ制御システムとしては、主に産業用としてのシステムの構成例を挙げている。すなわち、本モータ制御システムは、サーボアンプなどと呼ばれるモータ制御装置１０によって、サーボモータのようなモータ５０が制御および駆動される。また、本実施の形態では、モータ５０の可動部として、回転動作をするロータを備えたモータの一例を挙げて説明する。なお、以下、このようなロータを備えたモータの一例を挙げて説明するが、可動部が直線動作をするようなリニアモータにも適用できる。
【００１４】
このようなモータ５０としては、Ｕ相、Ｖ相、Ｗ相とする３相の巻線を有したステータと、ステータに対向して回転軸を中心に回転自在に配置されたロータとを備えたブラシレスモータが好適である。モータ５０は、そのステータの巻線がモータ制御装置１０によって通電駆動されることで、ロータが回転する。そして、ロータの回転により、回転軸を介して負荷５１が回転するように回転駆動される。
【００１５】
また、モータ５０を回転動作させるため、モータ５０には、ロータの回転位置を検出する位置センサとしてのエンコーダ５９が装着されている。これにより、エンコーダ５９からは、検出した回転位置を示す位置検出信号Ｐｄｅｔが出力される。モータ制御装置１０には、エンコーダ５９からこの位置検出信号Ｐｄｅｔが供給されている。
【００１６】
さらに、図１に示すように、モータ制御装置１０は、上位コントローラ６０と通信接続されている。本実施の形態では、モータ制御装置１０に対して、パラメータを設定したり動作指令を与えたりするために、上位コントローラ６０をモータ制御装置１０に接続している。具体的な例として、例えばパラメータ設定などの場合にはパーソナルコンピュータ、動作指令を与える場合にはＰＬＣ（Ｐｒｏｇｒａｍａｂｌｅ  Ｌｏｇｉｃ  ｃｏｎｔｒｏｌｅｒ）やモーションコントローラを、上位コントローラ６０として利用している。上位コントローラ６０は、モータ５０が所望の動き動作をするように、モータ制御装置１０に対しての動作指令などを含めた各種情報を送出するとともに、モータ制御装置１０から各種情報を受信する。例えば、モータ制御装置１０によってモータ５０のロータ位置を制御する場合には、目標とする位置指令を、ロータ速度を制御する場合には、目標とする速度指令を、上位コントローラ６０が通知する。
【００１７】
また、特に、本モータ制御システムは産業用としてのシステムである。このため、上位コントローラ６０は、単にモータ制御装置１０に対する指令のみでなく、モータ制御に関するアプリケーションプログラムなど数々のソフトウエアを装備しており、モータ制御装置１０との接続により各種の処理を実行する。例えば、上位コントローラ６０は、本実施の形態でのカスタマイズ機能に関するユーザモジュールのプログラミング用、モータ制御装置１０における特性や機能を設定する各種パラメータのセッティング用などのアプリケーションや、その他、オートチューニングや、制御状況のモニタ、データ測定、エラー通知などするためのソフトウエアを装備している。
【００１８】
そして、この上位コントローラ６０に接続されるモータ制御装置１０は、モータの動き位置や速度に対する検出や推定をしながら、動作指令に追従するように動作するフィードバック制御の機能を備えている。すなわち、モータ制御装置１０は、基本的な機能として、エンコーダ５９からの位置検出信号Ｐｄｅｔを利用したフィードバック制御によって、上位コントローラ６０から供給された動作指令に追従するように、モータ５０のロータの動きを制御している。
【００１９】
次に、このようなモータ制御装置１０の詳細な構成について、図１を参照しながら説明する。
【００２０】
図１に示すように、モータ制御装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１を内蔵した１チップのマイクロコンピュータ（以下、マイコンと呼ぶ）２０と、通信接続部１１と、駆動回路部１２と、パネル操作部１３と、入出力端子部１４と、電源回路部１５と、保護回路部１６とを備えている。
【００２１】
通信接続部１１は、上位コントローラ６０とのデータ通信用として設けており、上位コントローラ６０との間でデータの送受信を行う。具体的には、ＲＳ２３２Ｃ／４８５などのシリアル通信規格や、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）規格に対応したデータ送受信回路である。また、動作指令の伝達には、専用のＦＡネットワーク通信仕様である、ＲＴＥＸ（Ｒｅａｌｔｉｍｅ  Ｅｘｐｒｅｓｓ）やＥｔｈｅｒＣＡＴ通信が用いられることも多い。
【００２２】
パネル操作部１３は、モータ制御装置１０を利用するユーザとのインタフェース用として設けている。このパネル操作部１３によって、ユーザがパラメータやデータをモータ制御装置１０に対して直接に入力したり、モータ制御装置１０内のデータをユーザに対して直接に提示したりする。具体的には、ユーザによる入力機能としては、例えばボタンスイッチの組み合わせやデイップスイッチ、ロータリスイッチなどである。また、ユーザに対する提示機能としては、例えば７セグメントディスプレイである。ユーザは、このパネル操作部１３を介して、モータ制御装置１０に対する操作を行う。なお、実際には、簡易な操作についてはパネル操作部１３を利用し、高度な操作については上位コントローラ６０を利用して、モータ制御装置１０に対する操作を行う。
【００２３】
入出力端子部１４は、デジタルＩ／Ｏやアナログ・パルス信号による外部機器とのデータ接続などのために設けている。入出力端子部１４は、モータ制御装置１０に対してデータを入力したり、モータ制御装置１０からデータを出力したりするコネクタなどの端子である。
【００２４】
保護回路部１６は、電源関連の保護、過熱に対する保護、オーバーロードに対する保護など、モータ制御装置１０やモータ制御システム内の安全性を確保するために設けた一連の保護回路である。
【００２５】
電源回路部１５は、モータ制御装置１０内の各部に必要な電力を供給するための電源である。
【００２６】
マイコン２０は、基本的には、モータ制御装置１０のメイン機能であるモータ制御の処理を行う。すなわち、マイコン２０には、モータ制御の処理を行うためのモータ制御プログラムが組み込まれており、内蔵のＣＰＵ２１がそのプログラムに従って処理を実行することにより、モータの回転動作を制御する。このような制御を行うため、マイコン２０には、上位コントローラ６０から通信接続部１１を介して動作指令が供給され、エンコーダ５９から位置検出信号Ｐｄｅｔが供給されている。そして、マイコン２０は、位置検出信号Ｐｄｅｔに基づくモータの動きが、動作指令に追従するようなモータ制御信号Ｄｄを生成して、駆動回路部１２へと出力する。なお、より具体的には、マイコン２０は、このようなモータ制御の処理のみでなく、他の処理プログラムに従った処理をも実行し、その詳細については以下でさらに説明する。
【００２７】
マイコン２０によって生成されたモータ制御信号Ｄｄは、駆動回路部１２に供給される。駆動回路部１２は、いわゆるインバータを備えており、このインバータを用いて、供給されたモータ制御信号Ｄｄに応じたモータ駆動信号Ｖｄを生成する。このモータ駆動信号Ｖｄをモータ５０の巻線に印加することで、モータ５０が通電駆動され、モータ内のロータが回転する。
【００２８】
次に、このようなマイコン２０の詳細な構成について、図１を参照しながら説明する。
【００２９】
マイコン２０は、図１に示すように、ＣＰＵ２１と、通信インタフェース部２４と、パネルインタフェース部２５と、外部インタフェース部２６と、ＲＡＭ３０と、ＲＯＭ４０と、ユーザモジュールメモリ３２と、制御パラメータメモリ３４と、バッファメモリ３６と、モニタ情報メモリ３７と、これら各部のデータやアドレスなどのデジタル信号をマイコン２０の内部で接続する内部バス２９とを備えている。
【００３０】
通信インタフェース部（以下、適宜、通信Ｉ／Ｆ部と呼ぶ）２４は、通信接続部１１との間でデータの送受信を行う。すなわち、通信Ｉ／Ｆ部２４は、通信接続部１１が受け取ったデータを、内部バス２９を介してＣＰＵ２１に伝送するとともに、ＣＰＵ２１が生成したデータを、内部バス２９を介して受け取り、通信接続部１１へと伝送する。
【００３１】
パネルインタフェース部（以下、適宜、パネルＩ／Ｆ部と呼ぶ）２５は、パネル操作部１３との間、および入出力端子部１４との間でデータの送受信を行う。すなわち、パネルＩ／Ｆ部２５は、パネル操作部１３に入力されたデータを、内部バス２９を介してＣＰＵ２１に伝送するとともに、ＣＰＵ２１が生成したデータを、内部バス２９を介して受け取り、パネル操作部１３へと伝送する。同様に、パネルＩ／Ｆ部２５は、入出力端子部１４の入力端子に入力されたデータを、内部バス２９を介してＣＰＵ２１に伝送するとともに、ＣＰＵ２１が生成したデータを、内部バス２９を介して受け取り、入出力端子部１４の出力端子へと伝送する。
【００３２】
外部インタフェース部（以下、適宜、外部Ｉ／Ｆ部と呼ぶ）２６は、マイコン２０とモータ制御装置１０内の各回路との間で、制御信号などの各種信号を入出力する。例えば、外部Ｉ／Ｆ部２６は、モータ制御信号Ｄｄとして、駆動量に応じてパルス幅変調された信号であるＰＷＭ（Ｐｕｌｓｅ  Ｗｉｄｔｈ  Ｍｏｄｕｌａｔｉｏｎ）信号を駆動回路部１２へと出力する。この場合、ＣＰＵ２１から内部バス２９を介して外部Ｉ／Ｆ部２６には、駆動量に応じたデジタル信号が供給される。そして、外部Ｉ／Ｆ部２６は、そのデジタル信号をＰＷＭ信号に変換して出力する。また、例えば、外部Ｉ／Ｆ部２６は、エンコーダ５９から位置検出信号Ｐｄｅｔを取り込む。この場合、外部Ｉ／Ｆ部２６は、供給された位置検出信号Ｐｄｅｔから位置を示すデジタル信号へと変換する。そして、外部Ｉ／Ｆ部２６は、内部バス２９を介して、そのデジタル信号をＣＰＵ２１へと転送する。さらに、外部Ｉ／Ｆ部２６は、保護回路部１６や電源回路部１５とも接続されており、制御信号や検出／測定信号などの入出力を行う。
【００３３】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）４０は、不揮発性の読み出し専用メモリであり、主に、装置内部での各種の処理や制御をＣＰＵ２１に実行させるための組み込みプログラムを記憶している。本実施の形態では、ＲＯＭ４０は、このようなプログラムを記憶するプログラム記憶部として機能する。例えば、ＲＯＭ４０には、各種の処理や制御を管理する管理プログラムや、モータ制御の処理を行うためのモータ制御プログラムなど、主要なプログラムが格納されている。図１では、ＲＯＭ４０において、管理プログラム領域４１には管理プログラム、カスタマイズモジュール領域４２には以下で詳細について説明するカスタマイズモジュール群、モータ制御モジュール領域４６にはモータ制御モジュールを格納している。さらに、モータ制御モジュール領域４６において、モータ制御プログラム領域４３にモータ制御プログラムを格納するとともに、モータ制御プログラムが参照する制御パラメータのデフォルト値をパラメータデフォルト値領域４４に格納するような一例を示している。なお、ＲＯＭ４０に関して、書込み不可のＲＯＭに限定されず、書き換えが可能なフラッシュメモリや、データに関してはＥＥＰＲＯＭに書き込んだり、さらには外部記憶媒体を利用したりするような、書き換えも可能な形態であってもよい。要するに、ここでのＲＯＭ４０の機能として、その記憶対象のプログラムの性質上、記憶するプログラムに対して、ユーザが容易にはアクセスしたり書き換えたりできなければよい。
【００３４】
ＣＰＵ２１は、マイクロプロセッサであり、内部バス２９を介して、ＲＯＭ４０などに格納されたプログラムを順次読み込み、読み込んだプログラムに従って動作することにより、プログラムに応じた処理が実行される。
【００３５】
ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０は、書き換え可能でランダムアクセス可能なメモリであり、ＣＰＵ２１が処理を実行する作業用として用いられる。
【００３６】
そして、本実施の形態では、さらに、ユーザモジュールメモリ３２、制御パラメータメモリ３４、バッファメモリ３６、およびモニタ情報メモリ３７を備えている。これらメモリも、ＲＡＭ３０と同様に書き換え可能でランダムアクセス可能なメモリである。本実施の形態では、説明をわかりやすくするため、これらメモリをこのように機能ごとに分けて説明するが、例えば、ユーザモジュールメモリ領域、制御パラメータメモリ領域、バッファメモリ領域やモニタ情報メモリ領域のように、ＲＡＭ３０内での特定領域をさらに設けた構成であってもよい。
【００３７】
制御パラメータメモリ３４は、モータ制御プログラムが参照する制御パラメータを記憶するメモリである。モータ制御プログラムに従ってＣＰＵ２１は、立ち上げ時のみ、パラメータデフォルト値領域４４に格納された制御パラメータに基づき処理を実行する。そして、その後に、ＣＰＵ２１は、この制御パラメータメモリ３４に格納された制御パラメータに基づき処理を実行する。すなわち、処理が進むに従って、制御パラメータメモリ３４に格納された制御パラメータを適宜に変更が可能なように、モータ制御装置１０を構成している。
【００３８】
ここで、上述のように、モータ制御プログラムは、基本的にフィードバック制御の処理に基づきモータの動作を制御するプログラムである。そして、ここでの制御パラメータとは、モータに対するこのフィードバック制御を含めた制御において、その特性や機能を特定するために設定する変数である。具体的には、ここでの制御パラメータとは、例えば、フィードバック制御ループでの各種ゲインやフィルタの設定である。ゲインとしては、例えば、位置、速度、トルクなどの制御に対する比例ゲイン、積分ゲイン、微分ゲインやフィードフォワードゲインなどがある。また、フィルタの設定としては、周波数、帯域幅、減衰量などがある。また、このようなパラメータ以外にも、制御パラメータとして、制御や処理に付随する特性の切替えや、位置、速度およびトルク制御の切替えの指定などを含む。ＣＰＵ２１は、制御パラメータメモリ３４に記憶されているこのような制御パラメータに基づきモータ制御の処理を実行する。例えば、ＣＰＵ２１は、制御パラメータメモリ３４に記憶された制御ゲインＧの初期値”ｇ０”に基づき処理を実行する。そして、その後、制御パラメータメモリ３４の制御ゲインの値が”ｇ１”に変更されると、ＣＰＵ２１は、変更された値”ｇ１”の制御ゲインＧに基づき処理を実行する。
【００３９】
モニタ情報メモリ３７は、モータ制御装置１０内の各部における設定状態をデータとして一括に記憶しているメモリである。すなわち、ＣＰＵ２１は、上述の制御パラメータに加えて、通信接続部１１、駆動回路部１２、パネル操作部１３、入出力端子部１４、電源回路部１５、および保護回路部１６などにおいて、設定したり測定したりしている情報をモニタリングしている。そして、それらの情報をモニタ情報としてモニタ情報メモリ３７に記録している。このようなモニタ情報の例として、例えば、通信接続部１１で使用中の通信方式や通信レートに関するデータおよび送受信データ、パネル操作部１３での入力および出力表示の設定値、入出力端子部１４の端子の値などである。
【００４０】
ユーザモジュールメモリ３２は、ユーザが作成した一括りのプログラムを１つのモジュールとし、このモジュール単位でユーザプログラムを格納しておくためのメモリであり、ユーザモジュール記憶部として機能する。すなわち、本実施の形態でのモータ制御システムでは、ユーザは、所望の特定機能をこのようなユーザモジュールとして作成できるように構成している。そして、そのユーザモジュールがユーザモジュールメモリ３２に記憶される。ユーザモジュールは、具体的には、ユーザがこのような特定機能を実行させるためのプログラムである。すなわち、ＣＰＵ２１がこのモジュールのプログラムを読み込んで実行することにより、ユーザが動作させようとする機能の処理が実行される。
【００４１】
このようなユーザモジュールの例として、例えば、ある制御ゲインＧを変更するように特定した機能を、本実施の形態では、ユーザモジュールとすることができる。言い換えると、ユーザは、制御ゲインＧを変更するようなユーザモジュールを作成して、ユーザモジュールメモリ３２に保存し、動作させることができる。このように、本実施の形態では、特定機能に関する処理を実行するユーザモジュールを、ユーザにより形成可能なように構成している。
【００４２】
バッファメモリ３６は、ユーザモジュールメモリ３２に格納されたユーザモジュールが読み込んだり書き込んだりして利用できる読み書き可能なメモリである。なお、モジュールはそれぞれにプログラムであり、正確には、ＣＰＵ２１が、モジュールのプログラムに従ってメモリを読み書きするなどの処理を実行する。しかし、以下、冗長な言い回しを省いて説明をわかりやすくするため、適宜、モジュールがメモリを読み書きするなど、モジュールが処理を実行するような表現を用いて説明する。
【００４３】
以上のように、マイコン２０は構成されている。
【００４４】
そして、上述したように、ＲＯＭ４０のカスタマイズモジュール領域４２には、カスタマイズモジュール群、すなわち複数のカスタマイズモジュールが格納されている。このカスタマイズモジュール領域４２は、カスタマイズモジュール記憶部として機能する。カスタマイズモジュールは、モジュールとしては、ユーザモジュールと同様に、特定の機能に対応した一括りのプログラムで構成されている。一方、ユーザモジュールはユーザが変更可能であるのに対して、カスタマイズモジュールは、書込み不可のＲＯＭ４０にあらかじめ組み込んだプログラムの集合であり、ユーザが自由に変更できないように構成されている。また、カスタマイズモジュールは、バッファメモリ３６の参照を含むプログラムで構成されている。このようなカスタマイズモジュールを機能単位ごとに複数集めて、カスタマイズモジュール群を構成している。本実施の形態では、このようなカスタマイズモジュールを利用して、モータ制御装置１０内の各部における特定機能の設定等を変更することにより、カスタマイズ化が可能なように構成している。
【００４５】
このようなカスタマイズモジュールが具有する機能の例として、例えば、制御パラメータの変更や、パネル操作部１３での入力および出力表示の設定の変更や、バッファメモリ３６のデータを、パネル操作部１３で出力表示させたり、通信接続部１１に送出したりするなどの機能がある。カスタマイズモジュールのより具体的な例として、例えば、制御パラメータにおける速度比例ゲイン、速度積分ゲイン、速度フィードフォワードゲインなどの一連のゲイン設定がある。このゲイン設定の場合、カスタマイズモジュールは、バッファメモリ３６に設定された値を参照して、対応するゲインの値を制御パラメータメモリ３４に設定する。このように、本実施の形態では、カスタマイズ要素における特定機能の変更処理を実行するカスタマイズモジュールを形成し、カスタマイズモジュールの集合によりカスタマイズモジュール群を構成している。
【００４６】
以上の説明のように、本実施の形態では、特定機能の変更処理を実行するカスタマイズモジュール群をあらかじめ形成しておくとともに、ユーザによるユーザモジュールの形成を可能としている。そして、本実施の形態では、ユーザが、ユーザモジュールとカスタマイズモジュール群とを用いて、特定機能に対して変更したり特定機能を追加したりできるような構成としている。言い換えると、本実施の形態は、ユーザモジュールとカスタマイズモジュール群とを利用して、ユーザに対するカスタマイズ要素を機能単位ごとに設けることを可能としている。
【００４７】
そして、さらに、本実施の形態では、ユーザモジュールがデータを書き込むとともに、カスタマイズモジュールがそのデータを読み出すように構成されたバッファメモリ３６を備えている。すなわち、本実施の形態は、バッファメモリ３６を介してのみ、ユーザがカスタマイズ要素としての機能を変更できる構成である。
【００４８】
以上をまとめると、本実施の形態では、モータ制御装置１０のカスタマイズ方法として、まず、カスタマイズモジュール群を構成しておくとともに、ユーザがユーザモジュールを形成可能としている。さらに、カスタマイズモジュールとユーザモジュールとのそれぞれからアクセス可能なバッファメモリ３６を設けている。そして、カスタマイズモジュールは、バッファメモリ３６を介してユーザモジュールから受け取ったデータに基づき、特定機能に関する処理を実行するように、構成している。より具体的には、ユーザモジュールはバッファメモリ３６のみに対して書き込みが可能なように、ユーザモジュールの処理を制限し、カスタマイズモジュールはバッファメモリ３６のデータをパラメータとして処理を実行するように、カスタマイズモジュールの処理を制限している。
【００４９】
本実施の形態では、このように構成されたカスタマイズ機能に基づくカスタマイズ方法をモータ制御装置１０に組み込むことにより、誤動作のリスクや安全性の低下などなく、ユーザによる容易かつ迅速な特定機能の変更を可能としている。
【００５０】
次に、以上のように構成された本実施の形態のモータ制御装置１０において、カスタマイズ機能を実現するための詳細な構成およびその動作について説明する。
【００５１】
図２は、本実施の形態におけるモータ制御装置１０のカスタマイズ機能に関連した要部の構成を示すブロック図である。本実施の形態では、上述のように、ＲＯＭ４０のカスタマイズモジュール領域４２に保存されているカスタマイズモジュール群と、ユーザモジュールメモリ３２に書き込まれたユーザモジュールと、カスタマイズモジュールとユーザモジュールとのそれぞれからアクセス可能なバッファメモリ３６とにより、カスタマイズ機能を実現している。なお、正確にはＣＰＵ２１が処理を実行するが、上述の注釈のように、ここでもモジュールそれぞれが処理を実行するものとして説明する。
【００５２】
まず、図２に示すように、カスタマイズモジュール領域４２においては、機能ごとにさらに分類したカスタマイズモジュール群が格納されている。図２では、ＲＯＭ４０において、次のようなカスタマイズモジュールが格納された一例を示している。カスタマイズモジュール領域４２中において、領域４２０にはモータ制御用カスタマイズモジュール、領域４２１には通信接続用カスタマイズモジュール、領域４２３にはパネル操作用カスタマイズモジュール、領域４２４には入出力用カスタマイズモジュール、領域４２５には電源用カスタマイズモジュール、領域４２６には保護回路用カスタマイズモジュールが、それぞれの領域に少なくとも１つ格納されている。
【００５３】
モータ制御用カスタマイズモジュールは、主に制御パラメータメモリ３４の設定値を変更するようなモジュールであり、このようなモジュールの集合が領域４２０に記憶されている。ここでのモジュールのそれぞれは、モータ制御における特定の機能や特性に対応しており、モジュールを実行させることで、モータ制御プログラムに従った処理におけるパラメータが変更される。例えば、速度制御に対応した第１のモジュールは速度比例ゲイン、第２のモジュールは速度積分ゲイン、第３のモジュールは速度フィードフォワードゲインというように区分されており、所望のモジュールを利用してゲインの設定値を変更する。
【００５４】
なお、説明をわかりやすくするため、ここでは、ゲインを個別に設定するような例を挙げたが、より具体的には、例えば、ゲインはそれぞれのゲインが互いに関連して最適な設定となる場合が多い。すなわち、速度比例ゲインを上げた場合には速度積分ゲインを下げるなどである。そこで、例えば、最適なゲインの組み合わせ一式を複数種類あらかじめテーブル式に準備しておき、モジュールごとにゲインの組み合わせを選択するようなモジュールにするなどと、モジュール構成してもよい。すなわち、例えば、第１のモジュールが、位置ゲイン＝１００、速度比例ゲイン＝２００、速度積分ゲイン＝１０、・・・と設定し、第２のモジュールが、位置ゲイン＝２００、速度比例ゲイン＝１００、速度積分ゲイン＝１０、・・・と設定するようなモジュール構成である。
【００５５】
通信接続用カスタマイズモジュールは、通信接続部１１でのデータ送受信の機能に関連した操作を行うモジュールであり、このようなモジュールの集合が領域４２１に記憶されている。ここでのモジュールを実行させることで、例えば、通信接続部１１によるデータ送受信に関する動作などが変更される。具体的な例として、上位コントローラ６０との通信方式や通信速度（通信ボーレート）などを変更する。
【００５６】
パネル操作用カスタマイズモジュールは、パネル操作部１３でのパネル操作の機能に関連した操作を行うモジュールであり、このようなモジュールの集合が領域４２３に記憶されている。ここでのモジュールを実行させることで、例えば、パネル操作部１３のユーザ入力やユーザ提示に関する動作などが行われる。具体的な例として、パラメータで指定したバッファメモリ３６でのアドレスに格納されているデータを、パネルの提示機能で表示したり、ユーザ入力のデータを、パラメータで指定したバッファメモリ３６のアドレスに格納したりする。
【００５７】
入出力用カスタマイズモジュールは、入出力端子部１４での入出力データに関連した操作を行うモジュールであり、このようなモジュールの集合が領域４２４に記憶されている。ここでのモジュールを実行させることで、例えば、入出力端子部１４の入出力データに関する動作などが行われる。具体的な例として、パラメータで指定したバッファメモリ３６でのアドレスに格納されているデータを、データ出力端子から出力したり、データ入力端子のデータを、パラメータで指定したバッファメモリ３６のアドレスに格納したりする。
【００５８】
電源用カスタマイズモジュールは、電源回路部１５での電源に関連した操作を行うモジュールであり、このようなモジュールの集合が領域４２５に記憶されている。ここでのモジュールを実行させることで、例えば、電源回路部１５からの電源供給に関する動作などが変更される。
【００５９】
保護回路用カスタマイズモジュールは、保護回路部１６での保護に関連した操作を行うモジュールであり、このようなモジュールの集合が領域４２６に記憶されている。ここでのモジュールを実行させることで、例えば、保護回路部１６での保護機能に関する動作などが変更される。
【００６０】
本実施の形態では、このように、カスタマイズ要素における特定機能の変更処理を実行するカスタマイズモジュールを形成し、カスタマイズモジュールの集合によりカスタマイズモジュール群を構成している。なお、カスタマイズモジュールは、特定機能に対しての変更処理に加えて、さらに、上述のような各種の操作を行う処理も含んでいる。また、本実施の形態では、このようなカスタマイズモジュールを特定機能ごとに集めた構成であるため、例えばソフトのアップデートを通じての拡張も可能である。すなわち、本実施の形態によれば、例えば、市場動向を見ながら徐々にカスタマイズ機能をアドオンのような形で充実させていくといったアプローチを取ることも可能である。
【００６１】
また、カスタマイズモジュールが各部の特定機能に対して処理を行うのに対応して、各部の特定機能に関する情報がモニタ情報メモリ３７に取り込まれている。すなわち、制御パラメータメモリ３４に設定されている設定値に加えて、通信接続部１１、駆動回路部１２、パネル操作部１３、入出力端子部１４、電源回路部１５および保護回路部１６における設定値や設定状態を示すデータ、測定データなど、各種の情報を示すデータが、モニタ情報としてモニタ情報メモリ３７に取り込まれて記憶されている。モニタ情報の具体例として、各制御パラメータの設定値に加えて、例えば、通信接続部１１での通信方式や、パネル操作部１３での入力スイッチによる入力値や７セグメントディスプレイが表示中の値などである。なお、カスタマイズモジュール、対応する機能、モニタ情報は常に１対１である必要はない。
【００６２】
次に、上述のように、本実施の形態では、カスタマイズ要素における特定機能に関する処理を実行するユーザモジュールを、ユーザにより形成可能としている。図２では、このようにユーザが形成したユーザモジュールがユーザモジュールメモリ３２に格納されている様子を示している。すなわち、図２では、ユーザモジュールメモリ３２の領域３２１に第１のユーザモジュール（ユーザモジュールＮｏ．１）が格納され、領域３２Ｎに第Ｎのユーザモジュール（ユーザモジュールＮｏ．Ｎ）が格納されている一例を示している。
【００６３】
ユーザモジュールは、ユーザが作成した一括りのプログラムで構成されるモジュールである。本実施の形態では、このようなユーザモジュールを作成するため、一連のプログラミング要素としてのコマンドを提供している。一連のコマンド中の種別としては、加減乗除のような算術演算、論理和および論理積やシフトなどの論理演算、比較や分岐命令、および各メモリの内容を読み込む命令に加えて、バッファメモリ３６に対してパラメータで指定したアドレスに書き込む命令を準備している。ユーザはこれらのコマンドを組み合わせてプログラミングすることができる。特に、本実施の形態では、ユーザモジュールは、モニタ情報メモリ３７を利用して、モータ制御装置１０内の各部における設定状態を取得することができる。そして、さらに、本実施の形態では、ユーザモジュールにおけるメモリに対する書き込みの命令としては、図２に示すようなバッファメモリ３６に対する書き込みに制限している。すなわち、ユーザモジュールは、バッファメモリ３６に対してのみ書き込みが可能である。
【００６４】
一方、このようなユーザモジュールに対して、カスタマイズモジュールは、図２に示すように、少なくともバッファメモリ３６のデータをパラメータとして処理を実行する。このように、本実施の形態では、カスタマイズモジュールがバッファメモリ３６のデータのみをパラメータとして処理を実行するように、カスタマイズモジュールの処理も制限している。
【００６５】
以上のような構成により、本実施の形態のカスタマイズ方法に基づいて、本カスタマイズ機能が次のように動作する。まず、ユーザが作成した一連のコマンドがユーザモジュールメモリ３２に保存されて、ユーザによるプログラムが形成され、このプログラムで構成されたユーザモジュールが形成される。ユーザモジュールメモリ３２に保存されたユーザモジュールは、それらのコマンドの手順に従って、特定機能に関する処理を実行する。そして、ユーザモジュールは、その処理結果をバッファメモリ３６にデータとして書き込む。それとともに、その特定機能に関連したカスタマイズモジュールが起動される。それによって、起動されたカスタマイズモジュールは、あらかじめ組み込まれた手順に従って、バッファメモリ３６を参照する。そして、そのカスタマイズモジュールは、参照したデータを用いて、例えば変更処理を実行する。このように、本実施の形態でのカスタマイズ機能として、カスタマイズモジュールは、バッファメモリ３６を介してのみユーザモジュールからのデータを受け取るように制限している。そして、本実施の形態では、カスタマイズ機能の実施を可能とするとともに、このような制限を設けることにより、モータ動作における誤動作のリスクや安全性の低下などを抑制している。
【００６６】
また、本カスタマイズ方法では、ユーザモジュールとカスタマイズモジュールとをバッファメモリ３６により完全に分離した構成としている。言い換えると、バッファメモリ３６は、ユーザモジュールの機能とカスタマイズモジュールの機能とを繋ぎつつも、両者を明確に分離するためのインタフェースである。このようなバッファメモリ３６を用いた構成とすることによって、変更する機能関連についてはユーザに対しての完全な公開とはならず、これにより、メーカ側のノウハウなどの流出を防ぐとともに、商品としての動作保証は確保している。
【００６７】
さらに、本カスタマイズ方法では、ユーザモジュールでの処理による結果をバッファメモリ３６のみに書き込む手法であるため、ユーザはバッファメモリ３６を参照すれば処理結果が確認できる。よって、ユーザモジュールのデバッグも容易となり、これによる誤動作の防止効果もある。
【００６８】
図３は、本実施の形態のカスタマイズ方法に基づき、モータ制御装置１０におけるカスタマイズ機能のこのような動作の一例を示す図である。また、図４は、モータ制御装置１０のメインの処理であるモータ制御のプログラム、およびカスタマイズ機能を実現するためのカスタマイズモジュールとユーザモジュールとの処理の流れを示すフローチャートである。次に、図３および図４を用いて、モータ制御での位置制御における位置ゲインＰ０１を変更する動作を一例として、カスタマイズ機能を実施するための詳細な動作について説明する。
【００６９】
まず、図３において、ＲＯＭ４０のカスタマイズモジュール領域４２のさらに領域４２０には、主に制御パラメータメモリ３４の設定値を変更するようなモジュールの集合が記憶されている。図３では、ここでのモジュールとして、例えば、ゲインを設定するための「ＳｅｔＧａｉｎ０１（）」、「ＳｅｔＧａｉｎ０ｎ（）」や、オフセットを設定するための「ＳｅｔＯｆｆｓｅｔ０１（）」とするカスタマイズモジュールがそれぞれの機能ごとに記憶されている例を示している。
【００７０】
ここで、カスタマイズモジュールＳｅｔＧａｉｎ０１（）を用いて、その動作の一例を説明する。カスタマイズモジュールＳｅｔＧａｉｎ０１（）は、そのプログラムにおいて、「ＳＥＴ  ＧａｉｎＰ０１，  ＢＵＦ  ＃００１」というような表記に基づくコマンドを含んでいる。このコマンドは、表記「ＢＵＦ  ＃００１」として、バッファメモリ３６でのアドレス＃００１を指定するとともに、表記「ＧａｉｎＰ０１」として制御パラメータメモリ３４での位置ゲインＰ０１を格納するアドレスＰ０１を指定している。そして、カスタマイズモジュールＳｅｔＧａｉｎ０１（）が起動されて、このコマンドが実行されることで、バッファメモリ３６でのアドレス＃００１のデータが、制御パラメータメモリ３４でのアドレスＰ０１に格納される。すなわち、図４のＳｅｔＧａｉｎ０１（）で示すような各ステップの処理が次のように実行される。まず、バッファメモリ３６が読み出される（ステップＳｃ１０２）。次に、ＳｅｔＧａｉｎ０１（）での特定のカスタマイズ処理が実行される（ステップＳｃ１０４）。そして、カスタマイズ処理の結果得られたデータが、制御パラメータメモリ３４のアドレスＰ０１に格納されて（ステップＳｃ１０６）、カスタマイズモジュールＳｅｔＧａｉｎ０１（）の処理が終了する。
【００７１】
また、このカスタマイズモジュールＳｅｔＧａｉｎ０１（）の場合、特定機能としては、位置ゲインＰ０１を設定するということに特定した機能である。そして、このカスタマイズモジュールＳｅｔＧａｉｎ０１（）は、ユーザモジュールとの組み合わせで、位置ゲインＰ０１が変更できるようにカスタマイズ化したカスタマイズ要素に利用される。すなわち、ここでの例では、カスタマイズ機能の１つとして位置ゲインＰ０１を変更するため、位置ゲインＰ０１の変更処理を実行するカスタマイズモジュールＳｅｔＧａｉｎ０１（）を形成している。
【００７２】
同様に、例えば、カスタマイズモジュールＳｅｔＧａｉｎ０ｎ（）が起動されると、バッファメモリ３６でのアドレス＃００１のデータが、制御パラメータメモリ３４でのアドレスＰ０ｎに格納される。カスタマイズモジュールＳｅｔＯｆｆｓｅｔ０１（）が起動されると、バッファメモリ３６でのアドレス＃００２のデータが、制御パラメータメモリ３４でのアドレスＶ０１に格納される。
【００７３】
本実施の形態でのカスタマイズモジュールは、以上のように構成されている。
【００７４】
また、図３に示すように、モニタ情報メモリ３７には、各部の情報が取り込まれて記憶されている。図３では、パネル操作部１３のパネル入力データの値”ｐｎｌ１”がモニタ情報メモリ３７のアドレスＰＮＬ０１に、制御パラメータメモリ３４のアドレスＰ０１の値”ｐ１”がモニタ情報メモリ３７のアドレスＰ００１に、制御パラメータメモリ３４のアドレスＰ０ｎの値”ｐｎ”がモニタ情報メモリ３７のアドレスＰ００ｎに、取り込まれ、記憶されている一例を示している。
【００７５】
次に、図３では、ユーザモジュールメモリ３２において、ユーザが作成したユーザモジュールとして、第１のユーザモジュールや第ＮのユーザモジュールであるユーザモジュールＵｓｅｒＮ（）が記憶されている例を示している。
【００７６】
ここで、ユーザモジュールＵｓｅｒＮ（）を用いて、その動作の一例を説明する。まず、ユーザモジュールＵｓｅｒＮ（）は、そのプログラムにおいて、「ＲＥＡＤ  ＰＮＬ０１」、「ＡＮＤ  ａａａ，  ”ｂｂｂ”」、「ＡＤＤ  ａａａ，ｃｃｃ」、「Ｉｆ  ＰＮＬ０１＝”０”  ｔｈｅｎ」、「ＷＲＩＴＥ  ＢＵＦ  ＃００１，ａａａ」というような表記に基づく一連のコマンドを組み合わせて、一括りのプログラムが構成されている。表記「ＲＥＡＤ  ＰＮＬ０１」のコマンドでは、モニタ情報メモリ３７のアドレスＰＮＬ０１のデータを読み込む命令を示している。表記「ＡＮＤ  ａａａ，  ”ｂｂｂ”」では、変数ａａａと値”ｂｂｂ”との論理積ＡＮＤの実行を示している。表記「ＡＤＤ  ａａａ，ｃｃｃ」では、変数ａａａと変数ｃｃｃとの加算ＡＤＤの実行を示している。表記「Ｉｆ  ＰＮＬ０１＝”０”  ｔｈｅｎ」では、変数ＰＮＬ０１の値に基づく条件分岐の命令を示している。そして、表記「ＷＲＩＴＥ  ＢＵＦ  ＃００１，ａａａ」では、バッファメモリ３６に対してパラメータ「ＢＵＦ  ＃００１」で指定したアドレス＃００１に、変数ａａａの値を書き込む命令を示している。本実施の形態では、この例のように、算術演算、論理演算、条件分岐や、コマンドメモリの内容を読み込む命令に加えて、バッファメモリ３６に対してパラメータで指定したアドレスに書き込む命令を準備している。
【００７７】
このユーザモジュールＵｓｅｒＮ（）の場合、これらのコマンドにより、所望のデータとしてモニタ情報メモリ３７のアドレスＰＮＬ０１のデータを利用し、所望の処理を実行することで、書込データが作成されて変数ａａａに格納される。そして、表記「ＰＮＬ０１＝”０”」に基づき、変数ＰＮＬ０１の値が値”０”に等しいという条件が満足されると、表記「ＷＲＩＴＥ  ＢＵＦ  ＃００１，ａａａ」に基づく最後のコマンドによって、バッファメモリ３６のアドレス＃００１に変数ａａａの値が格納される。図３では、ユーザモジュールＵｓｅｒＮ（）によって、バッファメモリ３６のアドレス＃００１に変数ａａａの値”１００”が格納された例を示している。
【００７８】
図４では、このようなユーザモジュールＵｓｅｒＮ（）の処理について、ＵｓｅｒＮ（）のフローとして、次のような各ステップで示している。まず、モニタ情報メモリ３７からモニタ情報が読み出される（ステップＳｕ１０２）。次に、例えば読み出したモニタ情報を利用して演算処理を行うなどのユーザが作成したユーザ処理が実行される（ステップＳｕ１０４）。そして、変数ＰＮＬ０１の値が”０”であるかどうか判定し（ステップＳｕ１０６）、”０”の場合には、バッファメモリ３６のアドレス＃００１に、値”１００”を書き込み（ステップＳｕ１０８）、ユーザモジュールＵｓｅｒＮ（）の処理が終了する。
【００７９】
以上、ユーザモジュールＵｓｅｒＮ（）についてステップごとに細かく説明したが、例えば、ユーザモジュールＵｓｅｒＮ（）として、パネル操作部１３のパネル入力データの値”ｐｎｌ１”が値”０”になったときをイベントとして、バッファメモリ３６のアドレス＃００１に変数ａａａの値を書き込むようなモジュールとすることができる。
【００８０】
また、図４では、モータ制御装置１０のメインの処理であるモータ制御のプログラムにおいて、次のような各ステップを実行するような一例も示している。図４に示すモータ制御プログラムでは、まず、制御パラメータメモリ３４に設定されている設定値が読み出される（ステップＳｍ１０２）。そして、例えば読み出した制御パラメータに基づき、位置制御処理（ステップＳｍ１０４）、速度制御処理（ステップＳｍ１０６）、電流制御処理（ステップＳｍ１０８）を行い、それらの処理によってモータ５０への駆動量に応じたＰＷＭ信号を生成する。そして、マイコン２０から、生成されたＰＷＭ信号が出力される（ステップＳｍ１１０）。
【００８１】
以上のような図３および図４の構成の場合には、カスタマイズ機能は、本実施の形態のカスタマイズ方法に基づいて次のように動作する。まず、ユーザが作成した一連のコマンドがユーザモジュールメモリ３２に保存されて、ユーザによるプログラムが形成され、このプログラムで構成されたユーザモジュールＵｓｅｒＮ（）が形成される。ユーザモジュールＵｓｅｒＮ（）は、それらのコマンドの手順に従って、特定機能に関する処理を実行する。そして、ユーザモジュールＵｓｅｒＮ（）は、その処理結果である変数ａａａの値”１００”を、バッファメモリ３６のアドレス＃００１にデータとして書き込む。それとともに、その特定機能に関連したカスタマイズモジュールＳｅｔＧａｉｎ０１（）が起動される。それによって、起動されたカスタマイズモジュールＳｅｔＧａｉｎ０１（）は、あらかじめ組み込まれた手順に従って、バッファメモリ３６のアドレス＃００１を参照する。そして、そのカスタマイズモジュールＳｅｔＧａｉｎ０１（）は、参照したデータの値”１００”を、制御パラメータメモリ３４でのアドレスＰ０１に格納する。これにより、制御パラメータメモリ３４でのアドレスＰ０１では、値”ｐ１”から値”１００”へと変更される。
【００８２】
次に、上述した各モジュールをそれぞれタスクとして管理し、そのタスク管理下において、各タスクを起動する動作について説明する。図５は、図４に示す各処理をタスクとして起動したとき、時間軸に沿ってそれぞれの処理を実行する流れを示すシーケンス図である。図５では、主タスクとしてのモータ制御プログラムを０．２５ｍｓ（ミリ秒）の周期で起動するとともに、カスタマイズモジュールＳｅｔＧａｉｎ０１（）とユーザモジュールＵｓｅｒＮ（）とをそれぞれ、副タスクとして１ｍｓ（ミリ秒）ごとに起動するような一例を示している。主タスクとしてのモータ制御プログラムに対して、図４および図５の例のようにカスタマイズモジュールとユーザモジュールとを周期的に独立かつ並行して起動するような構成とすることで、両モジュールによるカスタマイズ機能を実行させることができる。図４および図５では、変数ＰＮＬ０１の値が値”０”になったことをイベントとして、位置ゲインＰ０１の設定値が変更される一例を示している。
【００８３】
すなわち、図３において、例えばパネル操作部１３が操作されたことにより、アドレスＰＮＬ０１の値が値”０”になる。すると、図５のユーザモジュールでの処理で示すように、その後に副タスクとして起動されたユーザモジュールＵｓｅｒＮ（）は、その処理結果である変更値”１００”を、バッファメモリ３６の所定のアドレス＃００１にデータとして書き込む。そして、図５のカスタマイズモジュールでの処理で示すように、次のタイミングで副タスクとして起動されたカスタマイズモジュールＳｅｔＧａｉｎ０１（）は、バッファメモリ３６を参照して変更値”１００”を取得し、その変更値”１００”を制御パラメータメモリ３４での所定のアドレスＰ０１に格納する。これにより、主タスクとして実行中のモータ制御処理での位置制御処理において、位置ゲインが変更値”１００”へと変更されることになる。なお、ここで、ユーザモジュールが、変更すべき特定機能の区分番号と設定値とをバッファメモリ３６に書込み、カスタマイズモジュールが、バッファメモリ３６に書き込まれた区分番号と設定値とを参照して特定機能の変更処理を実行するような構成としてもよい。また、図４および図５では２つの副タスクをともに１ｍｓ周期とした例を挙げて説明したが、これらは起動周期が異なっていてもよく、同期・非同期もどちらでもよい。また、不定期なイベントで起動してもよく、初期化時１回のみの実行も考えられる。
【００８４】
以上説明したように、本発明のモータ制御装置およびそのカスタマイズ方法は、カスタマイズモジュールとユーザモジュールとのそれぞれからアクセス可能なバッファメモリを設けている。そして、ユーザモジュールは、バッファメモリのみに対して書き込みが可能なように、ユーザモジュールの処理を制限し、カスタマイズモジュールは、バッファメモリのデータのみをパラメータとして処理を実行するように、カスタマイズモジュールの処理を制限している。
【００８５】
このため、本発明によれば、バッファメモリを介して間接的に変更処理を行う手法であるため、モータ動作における誤動作のリスクや安全性の低下などなく、ユーザは、容易かつ迅速に、カスタマイズ単位の特定機能を変更できる。
【産業上の利用可能性】
【００８６】
本発明に係るモータ制御装置およびそのカスタマイズ方法は、モータ動作における誤動作のリスクや安全性の低下などなくカスタマイズ機能が利用できるため、サーボアンプなどの産業用の機械設備や産業用ロボットに利用されるモータ制御装置に有用である。
【符号の説明】
【００８７】
１０    モータ制御装置
１１    通信接続部
１２    駆動回路部
１３    パネル操作部
１４    入出力端子部
１５    電源回路部
１６    保護回路部
２０    マイコン
２４    通信インタフェース部
２５    パネルインタフェース部
２６    外部インタフェース部
２９    内部バス
３２    ユーザモジュールメモリ
３４    制御パラメータメモリ
３６    バッファメモリ
３７    モニタ情報メモリ
４１    管理プログラム領域
４２    カスタマイズモジュール領域
４３    モータ制御プログラム領域
４４    パラメータデフォルト値領域
４６    モータ制御モジュール領域
５０    モータ
５１    負荷
５９    エンコーダ
６０    上位コントローラ
【図１】
2017110061.tif 000003
【図２】
2017110061.tif 000004
【図３】
2017110061.tif 000005
【図４】
2017110061.tif 000006
【図５】
2017110061.tif 000007
【手続補正書】
【提出日】平成29年4月18日(2017.4.18)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータの位置や速度などを制御するモータ制御装置のカスタマイズ方法およびカスタマイズ機能を備えたモータ制御装置に関し、特に、産業用のモータ制御装置のカスタマイズ化に関する。
【背景技術】
【０００２】
このような産業用のモータ制御装置は、サーボアンプなどとも呼ばれており、通常、フィードバック制御を基本として動作する。すなわち、モータ制御装置は、モータの動作位置や動作速度を検出しながら、外部から入力される位置指令や速度指令へ追従するように、モータの位置や速度などの動きを制御している。このような制御は、通常、モータ制御装置内に組み込まれたシステムソフトウエアに基づき実行される。
【０００３】
ところが、例えば、モータに接続された負荷などが変更されると、この新たな負荷に対して、システムソフトウエアに含まれる制御パラメータが必ずしも最適とはならなくなる場合が生じ得る。このため、最適化を図ろうとすると、ユーザは、その都度装置メーカに対して、処理変更を依頼しなければならない。このように、産業用のような比較的に制約の厳しいモータ制御装置においては、システムソフトウエアの機能の一部に変更の必要性が生じた場合、ユーザは、簡単に変更することができないという課題があった。
【０００４】
そこで、従来、このようなシステムソフトウエアの一部をユーザが独自に簡単に変更することができるカスタマイズ方法が提案されている（例えば、特許文献１参照）。この従来のカスタマイズ方法は、システムソフトウエアで実現されている機能の関数単位で、システムソフトウエアの処理に代えて、ユーザが作成したユーザ関数を有効とするユーザ関数選択パラメータを備えた構成としている。そして、ユーザ関数が有効かどうかの判別に基づき、ユーザ関数が有効であればシステムソフトウエアの処理に代えてユーザ関数を実行する。
【０００５】
このような従来の特許文献１のような手法によれば、システムソフトウエアの機能の一部に変更の必要性が生じた場合に、迅速に対応できる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−２３４６３９号公報
【発明の概要】
【０００７】
本発明のモータ制御装置のカスタマイズ方法は、モータの制御を行うモータ制御装置において、特定機能に対してユーザが変更できるカスタマイズ要素を、機能単位ごとに設けることにより、カスタマイズ化を図る方法である。本モータ制御装置のカスタマイズ方法は、カスタマイズ要素における特定機能の変更処理を実行するカスタマイズモジュールを形成し、カスタマイズモジュールの集合により、カスタマイズモジュール群を構成し、そのカスタマイズ要素における特定機能に関する処理を実行するユーザモジュールをユーザにより形成可能とし、カスタマイズモジュールとユーザモジュールとのそれぞれからアクセス可能なバッファメモリを設けている。そして、本カスタマイズ方法は、バッファメモリを介してユーザモジュールから受け取ったデータに基づき、カスタマイズモジュールが特定機能に関する処理を実行するように、カスタマイズモジュールを構成している。
【０００８】
また、本発明のモータ制御装置は、モータの制御を行うモータ制御装置において、特定機能に対してユーザが変更できるカスタマイズ要素を機能単位ごとに複数設けたカスタマイズ機能を備えたモータ制御装置である。本モータ制御装置は、プログラムに従って処理を実行するＣＰＵと、モータの動きを制御するためのモータ制御プログラムを含むプログラムを記憶するプログラム記憶部と、ＣＰＵがモータ制御プログラムを実行することで生成されたモータ制御信号を入力し、モータ制御信号に基づき、モータを通電駆動するためのモータ駆動信号を生成する駆動回路部と、カスタマイズ要素における特定機能の変更処理を実行するカスタマイズモジュールのそれぞれの集合であるカスタマイズモジュール群を記憶するカスタマイズモジュール記憶部と、ユーザにより形成されて、カスタマイズ要素における特定機能に関する処理を実行するユーザモジュールを記憶するユーザモジュール記憶部と、カスタマイズモジュールとユーザモジュールとのそれぞれからアクセス可能なバッファメモリとを備えている。そして、本モータ制御装置は、カスタマイズモジュールが、バッファメモリを介してユーザモジュールから受け取ったデータに基づき処理を行うことで、カスタマイズ機能が実行される構成である。
【図面の簡単な説明】
【０００９】
【図１】図１は、本発明の実施の形態におけるモータ制御装置を含むモータ制御システムの構成を示すブロック図である。
【図２】図２は、同、モータ制御装置のカスタマイズ機能の構成を示すブロック図である。
【図３】図３は、同、モータ制御装置のカスタマイズ機能の動作例を示す図である。
【図４】図４は、同、モータ制御装置のメインの処理であるモータ制御のプログラム、およびカスタマイズ機能を実現するためのカスタマイズモジュールとユーザモジュールとの処理の流れを示すフローチャートである。
【図５】図５は、同、各処理をタスクとして起動したとき、時間軸に沿ってそれぞれの処理を実行する流れを示すシーケンス図である。
【発明を実施するための形態】
【００１０】
上述した従来の手法は、ユーザが作成したユーザ関数がシステムソフトウエアを直接に変更する構成であるため、ユーザ関数を作成する熟練した技術およびシステムソフトウエアに関する知識が必要である。さらに、ユーザが作成したユーザ関数がシステムソフトウエアに対して直接に影響するため、モータ動作における誤動作のリスクや安全性の低下などが考えられ、メーカ側として、商品としての動作保証が非常に厳しくなる。しかも、システムソフトウエアにおいて変更する機能に関連した箇所をユーザに公開することにもなり、メーカ側のノウハウが流出し兼ねないという課題もある。
【００１１】
以下、本発明の実施の形態におけるモータ制御装置について図面を参照しながら説明する。
【００１２】
（実施の形態）
図１は、本発明の実施の形態におけるモータ制御装置１０を含むモータ制御システムの構成を示すブロック図である。
【００１３】
本モータ制御システムは、図１に示すように、モータ５０と、モータ５０に接続された負荷５１と、モータ５０を制御および通電駆動するモータ制御装置１０と、モータ５０における可動部の位置を検出するエンコーダ５９と、動作指令通知などによってモータ制御装置１０をコントロールする上位コントローラ６０とを備えた構成である。本モータ制御システムとしては、主に産業用としてのシステムの構成例を挙げている。すなわち、本モータ制御システムは、サーボアンプなどと呼ばれるモータ制御装置１０によって、サーボモータのようなモータ５０が制御および駆動される。また、本実施の形態では、モータ５０の可動部として、回転動作をするロータを備えたモータの一例を挙げて説明する。なお、以下、このようなロータを備えたモータの一例を挙げて説明するが、可動部が直線動作をするようなリニアモータにも適用できる。
【００１４】
このようなモータ５０としては、Ｕ相、Ｖ相、Ｗ相とする３相の巻線を有したステータと、ステータに対向して回転軸を中心に回転自在に配置されたロータとを備えたブラシレスモータが好適である。モータ５０は、そのステータの巻線がモータ制御装置１０によって通電駆動されることで、ロータが回転する。そして、ロータの回転により、回転軸を介して負荷５１が回転するように回転駆動される。
【００１５】
また、モータ５０を回転動作させるため、モータ５０には、ロータの回転位置を検出する位置センサとしてのエンコーダ５９が装着されている。これにより、エンコーダ５９からは、検出した回転位置を示す位置検出信号Ｐｄｅｔが出力される。モータ制御装置１０には、エンコーダ５９からこの位置検出信号Ｐｄｅｔが供給されている。
【００１６】
さらに、図１に示すように、モータ制御装置１０は、上位コントローラ６０と通信接続されている。本実施の形態では、モータ制御装置１０に対して、パラメータを設定したり動作指令を与えたりするために、上位コントローラ６０をモータ制御装置１０に接続している。具体的な例として、例えばパラメータ設定などの場合にはパーソナルコンピュータ、動作指令を与える場合にはＰＬＣ（Ｐｒｏｇｒａｍａｂｌｅ  Ｌｏｇｉｃ  ｃｏｎｔｒｏｌｅｒ）やモーションコントローラを、上位コントローラ６０として利用している。上位コントローラ６０は、モータ５０が所望の動き動作をするように、モータ制御装置１０に対しての動作指令などを含めた各種情報を送出するとともに、モータ制御装置１０から各種情報を受信する。例えば、モータ制御装置１０によってモータ５０のロータ位置を制御する場合には、目標とする位置指令を、ロータ速度を制御する場合には、目標とする速度指令を、上位コントローラ６０が通知する。
【００１７】
また、特に、本モータ制御システムは産業用としてのシステムである。このため、上位コントローラ６０は、単にモータ制御装置１０に対する指令のみでなく、モータ制御に関するアプリケーションプログラムなど数々のソフトウエアを装備しており、モータ制御装置１０との接続により各種の処理を実行する。例えば、上位コントローラ６０は、本実施の形態でのカスタマイズ機能に関するユーザモジュールのプログラミング用、モータ制御装置１０における特性や機能を設定する各種パラメータのセッティング用などのアプリケーションや、その他、オートチューニングや、制御状況のモニタ、データ測定、エラー通知などするためのソフトウエアを装備している。
【００１８】
そして、この上位コントローラ６０に接続されるモータ制御装置１０は、モータの動き位置や速度に対する検出や推定をしながら、動作指令に追従するように動作するフィードバック制御の機能を備えている。すなわち、モータ制御装置１０は、基本的な機能として、エンコーダ５９からの位置検出信号Ｐｄｅｔを利用したフィードバック制御によって、上位コントローラ６０から供給された動作指令に追従するように、モータ５０のロータの動きを制御している。
【００１９】
次に、このようなモータ制御装置１０の詳細な構成について、図１を参照しながら説明する。
【００２０】
図１に示すように、モータ制御装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１を内蔵した１チップのマイクロコンピュータ（以下、マイコンと呼ぶ）２０と、通信接続部１１と、駆動回路部１２と、パネル操作部１３と、入出力端子部１４と、電源回路部１５と、保護回路部１６とを備えている。
【００２１】
通信接続部１１は、上位コントローラ６０とのデータ通信用として設けており、上位コントローラ６０との間でデータの送受信を行う。具体的には、ＲＳ２３２Ｃ／４８５などのシリアル通信規格や、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）規格に対応したデータ送受信回路である。また、動作指令の伝達には、専用のＦＡネットワーク通信仕様である、ＲＴＥＸ（Ｒｅａｌｔｉｍｅ  Ｅｘｐｒｅｓｓ）やＥｔｈｅｒＣＡＴ通信が用いられることも多い。
【００２２】
パネル操作部１３は、モータ制御装置１０を利用するユーザとのインタフェース用として設けている。このパネル操作部１３によって、ユーザがパラメータやデータをモータ制御装置１０に対して直接に入力したり、モータ制御装置１０内のデータをユーザに対して直接に提示したりする。具体的には、ユーザによる入力機能としては、例えばボタンスイッチの組み合わせやデイップスイッチ、ロータリスイッチなどである。また、ユーザに対する提示機能としては、例えば７セグメントディスプレイである。ユーザは、このパネル操作部１３を介して、モータ制御装置１０に対する操作を行う。なお、実際には、簡易な操作についてはパネル操作部１３を利用し、高度な操作については上位コントローラ６０を利用して、モータ制御装置１０に対する操作を行う。
【００２３】
入出力端子部１４は、デジタルＩ／Ｏやアナログ・パルス信号による外部機器とのデータ接続などのために設けている。入出力端子部１４は、モータ制御装置１０に対してデータを入力したり、モータ制御装置１０からデータを出力したりするコネクタなどの端子である。
【００２４】
保護回路部１６は、電源関連の保護、過熱に対する保護、オーバーロードに対する保護など、モータ制御装置１０やモータ制御システム内の安全性を確保するために設けた一連の保護回路である。
【００２５】
電源回路部１５は、モータ制御装置１０内の各部に必要な電力を供給するための電源である。
【００２６】
マイコン２０は、基本的には、モータ制御装置１０のメイン機能であるモータ制御の処理を行う。すなわち、マイコン２０には、モータ制御の処理を行うためのモータ制御プログラムが組み込まれており、内蔵のＣＰＵ２１がそのプログラムに従って処理を実行することにより、モータの回転動作を制御する。このような制御を行うため、マイコン２０には、上位コントローラ６０から通信接続部１１を介して動作指令が供給され、エンコーダ５９から位置検出信号Ｐｄｅｔが供給されている。そして、マイコン２０は、位置検出信号Ｐｄｅｔに基づくモータの動きが、動作指令に追従するようなモータ制御信号Ｄｄを生成して、駆動回路部１２へと出力する。なお、より具体的には、マイコン２０は、このようなモータ制御の処理のみでなく、他の処理プログラムに従った処理をも実行し、その詳細については以下でさらに説明する。
【００２７】
マイコン２０によって生成されたモータ制御信号Ｄｄは、駆動回路部１２に供給される。駆動回路部１２は、いわゆるインバータを備えており、このインバータを用いて、供給されたモータ制御信号Ｄｄに応じたモータ駆動信号Ｖｄを生成する。このモータ駆動信号Ｖｄをモータ５０の巻線に印加することで、モータ５０が通電駆動され、モータ内のロータが回転する。
【００２８】
次に、このようなマイコン２０の詳細な構成について、図１を参照しながら説明する。
【００２９】
マイコン２０は、図１に示すように、ＣＰＵ２１と、通信インタフェース部２４と、パネルインタフェース部２５と、外部インタフェース部２６と、ＲＡＭ３０と、ＲＯＭ４０と、ユーザモジュールメモリ３２と、制御パラメータメモリ３４と、バッファメモリ３６と、モニタ情報メモリ３７と、これら各部のデータやアドレスなどのデジタル信号をマイコン２０の内部で接続する内部バス２９とを備えている。
【００３０】
通信インタフェース部（以下、適宜、通信Ｉ／Ｆ部と呼ぶ）２４は、通信接続部１１との間でデータの送受信を行う。すなわち、通信Ｉ／Ｆ部２４は、通信接続部１１が受け取ったデータを、内部バス２９を介してＣＰＵ２１に伝送するとともに、ＣＰＵ２１が生成したデータを、内部バス２９を介して受け取り、通信接続部１１へと伝送する。
【００３１】
パネルインタフェース部（以下、適宜、パネルＩ／Ｆ部と呼ぶ）２５は、パネル操作部１３との間、および入出力端子部１４との間でデータの送受信を行う。すなわち、パネルＩ／Ｆ部２５は、パネル操作部１３に入力されたデータを、内部バス２９を介してＣＰＵ２１に伝送するとともに、ＣＰＵ２１が生成したデータを、内部バス２９を介して受け取り、パネル操作部１３へと伝送する。同様に、パネルＩ／Ｆ部２５は、入出力端子部１４の入力端子に入力されたデータを、内部バス２９を介してＣＰＵ２１に伝送するとともに、ＣＰＵ２１が生成したデータを、内部バス２９を介して受け取り、入出力端子部１４の出力端子へと伝送する。
【００３２】
外部インタフェース部（以下、適宜、外部Ｉ／Ｆ部と呼ぶ）２６は、マイコン２０とモータ制御装置１０内の各回路との間で、制御信号などの各種信号を入出力する。例えば、外部Ｉ／Ｆ部２６は、モータ制御信号Ｄｄとして、駆動量に応じてパルス幅変調された信号であるＰＷＭ（Ｐｕｌｓｅ  Ｗｉｄｔｈ  Ｍｏｄｕｌａｔｉｏｎ）信号を駆動回路部１２へと出力する。この場合、ＣＰＵ２１から内部バス２９を介して外部Ｉ／Ｆ部２６には、駆動量に応じたデジタル信号が供給される。そして、外部Ｉ／Ｆ部２６は、そのデジタル信号をＰＷＭ信号に変換して出力する。また、例えば、外部Ｉ／Ｆ部２６は、エンコーダ５９から位置検出信号Ｐｄｅｔを取り込む。この場合、外部Ｉ／Ｆ部２６は、供給された位置検出信号Ｐｄｅｔから位置を示すデジタル信号へと変換する。そして、外部Ｉ／Ｆ部２６は、内部バス２９を介して、そのデジタル信号をＣＰＵ２１へと転送する。さらに、外部Ｉ／Ｆ部２６は、保護回路部１６や電源回路部１５とも接続されており、制御信号や検出／測定信号などの入出力を行う。
【００３３】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）４０は、不揮発性の読み出し専用メモリであり、主に、装置内部での各種の処理や制御をＣＰＵ２１に実行させるための組み込みプログラムを記憶している。本実施の形態では、ＲＯＭ４０は、このようなプログラムを記憶するプログラム記憶部として機能する。例えば、ＲＯＭ４０には、各種の処理や制御を管理する管理プログラムや、モータ制御の処理を行うためのモータ制御プログラムなど、主要なプログラムが格納されている。図１では、ＲＯＭ４０において、管理プログラム領域４１には管理プログラム、カスタマイズモジュール領域４２には以下で詳細について説明するカスタマイズモジュール群、モータ制御モジュール領域４６にはモータ制御モジュールを格納している。さらに、モータ制御モジュール領域４６において、モータ制御プログラム領域４３にモータ制御プログラムを格納するとともに、モータ制御プログラムが参照する制御パラメータのデフォルト値をパラメータデフォルト値領域４４に格納するような一例を示している。なお、ＲＯＭ４０に関して、書込み不可のＲＯＭに限定されず、書き換えが可能なフラッシュメモリや、データに関してはＥＥＰＲＯＭに書き込んだり、さらには外部記憶媒体を利用したりするような、書き換えも可能な形態であってもよい。要するに、ここでのＲＯＭ４０の機能として、その記憶対象のプログラムの性質上、記憶するプログラムに対して、ユーザが容易にはアクセスしたり書き換えたりできなければよい。
【００３４】
ＣＰＵ２１は、マイクロプロセッサであり、内部バス２９を介して、ＲＯＭ４０などに格納されたプログラムを順次読み込み、読み込んだプログラムに従って動作することにより、プログラムに応じた処理が実行される。
【００３５】
ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０は、書き換え可能でランダムアクセス可能なメモリであり、ＣＰＵ２１が処理を実行する作業用として用いられる。
【００３６】
そして、本実施の形態では、さらに、ユーザモジュールメモリ３２、制御パラメータメモリ３４、バッファメモリ３６、およびモニタ情報メモリ３７を備えている。これらメモリも、ＲＡＭ３０と同様に書き換え可能でランダムアクセス可能なメモリである。本実施の形態では、説明をわかりやすくするため、これらメモリをこのように機能ごとに分けて説明するが、例えば、ユーザモジュールメモリ領域、制御パラメータメモリ領域、バッファメモリ領域やモニタ情報メモリ領域のように、ＲＡＭ３０内での特定領域をさらに設けた構成であってもよい。
【００３７】
制御パラメータメモリ３４は、モータ制御プログラムが参照する制御パラメータを記憶するメモリである。モータ制御プログラムに従ってＣＰＵ２１は、立ち上げ時のみ、パラメータデフォルト値領域４４に格納された制御パラメータに基づき処理を実行する。そして、その後に、ＣＰＵ２１は、この制御パラメータメモリ３４に格納された制御パラメータに基づき処理を実行する。すなわち、処理が進むに従って、制御パラメータメモリ３４に格納された制御パラメータを適宜に変更が可能なように、モータ制御装置１０を構成している。
【００３８】
ここで、上述のように、モータ制御プログラムは、基本的にフィードバック制御の処理に基づきモータの動作を制御するプログラムである。そして、ここでの制御パラメータとは、モータに対するこのフィードバック制御を含めた制御において、その特性や機能を特定するために設定する変数である。具体的には、ここでの制御パラメータとは、例えば、フィードバック制御ループでの各種ゲインやフィルタの設定である。ゲインとしては、例えば、位置、速度、トルクなどの制御に対する比例ゲイン、積分ゲイン、微分ゲインやフィードフォワードゲインなどがある。また、フィルタの設定としては、周波数、帯域幅、減衰量などがある。また、このようなパラメータ以外にも、制御パラメータとして、制御や処理に付随する特性の切替えや、位置、速度およびトルク制御の切替えの指定などを含む。ＣＰＵ２１は、制御パラメータメモリ３４に記憶されているこのような制御パラメータに基づきモータ制御の処理を実行する。例えば、ＣＰＵ２１は、制御パラメータメモリ３４に記憶された制御ゲインＧの初期値”ｇ０”に基づき処理を実行する。そして、その後、制御パラメータメモリ３４の制御ゲインの値が”ｇ１”に変更されると、ＣＰＵ２１は、変更された値”ｇ１”の制御ゲインＧに基づき処理を実行する。
【００３９】
モニタ情報メモリ３７は、モータ制御装置１０内の各部における設定状態をデータとして一括に記憶しているメモリである。すなわち、ＣＰＵ２１は、上述の制御パラメータに加えて、通信接続部１１、駆動回路部１２、パネル操作部１３、入出力端子部１４、電源回路部１５、および保護回路部１６などにおいて、設定したり測定したりしている情報をモニタリングしている。そして、それらの情報をモニタ情報としてモニタ情報メモリ３７に記録している。このようなモニタ情報の例として、例えば、通信接続部１１で使用中の通信方式や通信レートに関するデータおよび送受信データ、パネル操作部１３での入力および出力表示の設定値、入出力端子部１４の端子の値などである。
【００４０】
ユーザモジュールメモリ３２は、ユーザが作成した一括りのプログラムを１つのモジュールとし、このモジュール単位でユーザプログラムを格納しておくためのメモリであり、ユーザモジュール記憶部として機能する。すなわち、本実施の形態でのモータ制御システムでは、ユーザは、所望の特定機能をこのようなユーザモジュールとして作成できるように構成している。そして、そのユーザモジュールがユーザモジュールメモリ３２に記憶される。ユーザモジュールは、具体的には、ユーザがこのような特定機能を実行させるためのプログラムである。すなわち、ＣＰＵ２１がこのモジュールのプログラムを読み込んで実行することにより、ユーザが動作させようとする機能の処理が実行される。
【００４１】
このようなユーザモジュールの例として、例えば、ある制御ゲインＧを変更するように特定した機能を、本実施の形態では、ユーザモジュールとすることができる。言い換えると、ユーザは、制御ゲインＧを変更するようなユーザモジュールを作成して、ユーザモジュールメモリ３２に保存し、動作させることができる。このように、本実施の形態では、特定機能に関する処理を実行するユーザモジュールを、ユーザにより形成可能なように構成している。
【００４２】
バッファメモリ３６は、ユーザモジュールメモリ３２に格納されたユーザモジュールが読み込んだり書き込んだりして利用できる読み書き可能なメモリである。なお、モジュールはそれぞれにプログラムであり、正確には、ＣＰＵ２１が、モジュールのプログラムに従ってメモリを読み書きするなどの処理を実行する。しかし、以下、冗長な言い回しを省いて説明をわかりやすくするため、適宜、モジュールがメモリを読み書きするなど、モジュールが処理を実行するような表現を用いて説明する。
【００４３】
以上のように、マイコン２０は構成されている。
【００４４】
そして、上述したように、ＲＯＭ４０のカスタマイズモジュール領域４２には、カスタマイズモジュール群、すなわち複数のカスタマイズモジュールが格納されている。このカスタマイズモジュール領域４２は、カスタマイズモジュール記憶部として機能する。カスタマイズモジュールは、モジュールとしては、ユーザモジュールと同様に、特定の機能に対応した一括りのプログラムで構成されている。一方、ユーザモジュールはユーザが変更可能であるのに対して、カスタマイズモジュールは、書込み不可のＲＯＭ４０にあらかじめ組み込んだプログラムの集合であり、ユーザが自由に変更できないように構成されている。また、カスタマイズモジュールは、バッファメモリ３６の参照を含むプログラムで構成されている。このようなカスタマイズモジュールを機能単位ごとに複数集めて、カスタマイズモジュール群を構成している。本実施の形態では、このようなカスタマイズモジュールを利用して、モータ制御装置１０内の各部における特定機能の設定等を変更することにより、カスタマイズ化が可能なように構成している。
【００４５】
このようなカスタマイズモジュールが具有する機能の例として、例えば、制御パラメータの変更や、パネル操作部１３での入力および出力表示の設定の変更や、バッファメモリ３６のデータを、パネル操作部１３で出力表示させたり、通信接続部１１に送出したりするなどの機能がある。カスタマイズモジュールのより具体的な例として、例えば、制御パラメータにおける速度比例ゲイン、速度積分ゲイン、速度フィードフォワードゲインなどの一連のゲイン設定がある。このゲイン設定の場合、カスタマイズモジュールは、バッファメモリ３６に設定された値を参照して、対応するゲインの値を制御パラメータメモリ３４に設定する。このように、本実施の形態では、カスタマイズ要素における特定機能の変更処理を実行するカスタマイズモジュールを形成し、カスタマイズモジュールの集合によりカスタマイズモジュール群を構成している。
【００４６】
以上の説明のように、本実施の形態では、特定機能の変更処理を実行するカスタマイズモジュール群をあらかじめ形成しておくとともに、ユーザによるユーザモジュールの形成を可能としている。そして、本実施の形態では、ユーザが、ユーザモジュールとカスタマイズモジュール群とを用いて、特定機能に対して変更したり特定機能を追加したりできるような構成としている。言い換えると、本実施の形態は、ユーザモジュールとカスタマイズモジュール群とを利用して、ユーザに対するカスタマイズ要素を機能単位ごとに設けることを可能としている。
【００４７】
そして、さらに、本実施の形態では、ユーザモジュールがデータを書き込むとともに、カスタマイズモジュールがそのデータを読み出すように構成されたバッファメモリ３６を備えている。すなわち、本実施の形態は、バッファメモリ３６を介してのみ、ユーザがカスタマイズ要素としての機能を変更できる構成である。
【００４８】
以上をまとめると、本実施の形態では、モータ制御装置１０のカスタマイズ方法として、まず、カスタマイズモジュール群を構成しておくとともに、ユーザがユーザモジュールを形成可能としている。さらに、カスタマイズモジュールとユーザモジュールとのそれぞれからアクセス可能なバッファメモリ３６を設けている。そして、カスタマイズモジュールは、バッファメモリ３６を介してユーザモジュールから受け取ったデータに基づき、特定機能に関する処理を実行するように、構成している。より具体的には、ユーザモジュールはバッファメモリ３６のみに対して書き込みが可能なように、ユーザモジュールの処理を制限し、カスタマイズモジュールはバッファメモリ３６のデータをパラメータとして処理を実行するように、カスタマイズモジュールの処理を制限している。
【００４９】
本実施の形態では、このように構成されたカスタマイズ機能に基づくカスタマイズ方法をモータ制御装置１０に組み込むことにより、誤動作のリスクや安全性の低下などなく、ユーザによる容易かつ迅速な特定機能の変更を可能としている。
【００５０】
次に、以上のように構成された本実施の形態のモータ制御装置１０において、カスタマイズ機能を実現するための詳細な構成およびその動作について説明する。
【００５１】
図２は、本実施の形態におけるモータ制御装置１０のカスタマイズ機能に関連した要部の構成を示すブロック図である。本実施の形態では、上述のように、ＲＯＭ４０のカスタマイズモジュール領域４２に保存されているカスタマイズモジュール群と、ユーザモジュールメモリ３２に書き込まれたユーザモジュールと、カスタマイズモジュールとユーザモジュールとのそれぞれからアクセス可能なバッファメモリ３６とにより、カスタマイズ機能を実現している。なお、正確にはＣＰＵ２１が処理を実行するが、上述の注釈のように、ここでもモジュールそれぞれが処理を実行するものとして説明する。
【００５２】
まず、図２に示すように、カスタマイズモジュール領域４２においては、機能ごとにさらに分類したカスタマイズモジュール群が格納されている。図２では、ＲＯＭ４０において、次のようなカスタマイズモジュールが格納された一例を示している。カスタマイズモジュール領域４２中において、領域４２０にはモータ制御用カスタマイズモジュール、領域４２１には通信接続用カスタマイズモジュール、領域４２３にはパネル操作用カスタマイズモジュール、領域４２４には入出力用カスタマイズモジュール、領域４２５には電源用カスタマイズモジュール、領域４２６には保護回路用カスタマイズモジュールが、それぞれの領域に少なくとも１つ格納されている。
【００５３】
モータ制御用カスタマイズモジュールは、主に制御パラメータメモリ３４の設定値を変更するようなモジュールであり、このようなモジュールの集合が領域４２０に記憶されている。ここでのモジュールのそれぞれは、モータ制御における特定の機能や特性に対応しており、モジュールを実行させることで、モータ制御プログラムに従った処理におけるパラメータが変更される。例えば、速度制御に対応した第１のモジュールは速度比例ゲイン、第２のモジュールは速度積分ゲイン、第３のモジュールは速度フィードフォワードゲインというように区分されており、所望のモジュールを利用してゲインの設定値を変更する。
【００５４】
なお、説明をわかりやすくするため、ここでは、ゲインを個別に設定するような例を挙げたが、より具体的には、例えば、ゲインはそれぞれのゲインが互いに関連して最適な設定となる場合が多い。すなわち、速度比例ゲインを上げた場合には速度積分ゲインを下げるなどである。そこで、例えば、最適なゲインの組み合わせ一式を複数種類あらかじめテーブル式に準備しておき、モジュールごとにゲインの組み合わせを選択するようなモジュールにするなどと、モジュール構成してもよい。すなわち、例えば、第１のモジュールが、位置ゲイン＝１００、速度比例ゲイン＝２００、速度積分ゲイン＝１０、・・・と設定し、第２のモジュールが、位置ゲイン＝２００、速度比例ゲイン＝１００、速度積分ゲイン＝１０、・・・と設定するようなモジュール構成である。
【００５５】
通信接続用カスタマイズモジュールは、通信接続部１１でのデータ送受信の機能に関連した操作を行うモジュールであり、このようなモジュールの集合が領域４２１に記憶されている。ここでのモジュールを実行させることで、例えば、通信接続部１１によるデータ送受信に関する動作などが変更される。具体的な例として、上位コントローラ６０との通信方式や通信速度（通信ボーレート）などを変更する。
【００５６】
パネル操作用カスタマイズモジュールは、パネル操作部１３でのパネル操作の機能に関連した操作を行うモジュールであり、このようなモジュールの集合が領域４２３に記憶されている。ここでのモジュールを実行させることで、例えば、パネル操作部１３のユーザ入力やユーザ提示に関する動作などが行われる。具体的な例として、パラメータで指定したバッファメモリ３６でのアドレスに格納されているデータを、パネルの提示機能で表示したり、ユーザ入力のデータを、パラメータで指定したバッファメモリ３６のアドレスに格納したりする。
【００５７】
入出力用カスタマイズモジュールは、入出力端子部１４での入出力データに関連した操作を行うモジュールであり、このようなモジュールの集合が領域４２４に記憶されている。ここでのモジュールを実行させることで、例えば、入出力端子部１４の入出力データに関する動作などが行われる。具体的な例として、パラメータで指定したバッファメモリ３６でのアドレスに格納されているデータを、データ出力端子から出力したり、データ入力端子のデータを、パラメータで指定したバッファメモリ３６のアドレスに格納したりする。
【００５８】
電源用カスタマイズモジュールは、電源回路部１５での電源に関連した操作を行うモジュールであり、このようなモジュールの集合が領域４２５に記憶されている。ここでのモジュールを実行させることで、例えば、電源回路部１５からの電源供給に関する動作などが変更される。
【００５９】
保護回路用カスタマイズモジュールは、保護回路部１６での保護に関連した操作を行うモジュールであり、このようなモジュールの集合が領域４２６に記憶されている。ここでのモジュールを実行させることで、例えば、保護回路部１６での保護機能に関する動作などが変更される。
【００６０】
本実施の形態では、このように、カスタマイズ要素における特定機能の変更処理を実行するカスタマイズモジュールを形成し、カスタマイズモジュールの集合によりカスタマイズモジュール群を構成している。なお、カスタマイズモジュールは、特定機能に対しての変更処理に加えて、さらに、上述のような各種の操作を行う処理も含んでいる。また、本実施の形態では、このようなカスタマイズモジュールを特定機能ごとに集めた構成であるため、例えばソフトのアップデートを通じての拡張も可能である。すなわち、本実施の形態によれば、例えば、市場動向を見ながら徐々にカスタマイズ機能をアドオンのような形で充実させていくといったアプローチを取ることも可能である。
【００６１】
また、カスタマイズモジュールが各部の特定機能に対して処理を行うのに対応して、各部の特定機能に関する情報がモニタ情報メモリ３７に取り込まれている。すなわち、制御パラメータメモリ３４に設定されている設定値に加えて、通信接続部１１、駆動回路部１２、パネル操作部１３、入出力端子部１４、電源回路部１５および保護回路部１６における設定値や設定状態を示すデータ、測定データなど、各種の情報を示すデータが、モニタ情報としてモニタ情報メモリ３７に取り込まれて記憶されている。モニタ情報の具体例として、各制御パラメータの設定値に加えて、例えば、通信接続部１１での通信方式や、パネル操作部１３での入力スイッチによる入力値や７セグメントディスプレイが表示中の値などである。なお、カスタマイズモジュール、対応する機能、モニタ情報は常に１対１である必要はない。
【００６２】
次に、上述のように、本実施の形態では、カスタマイズ要素における特定機能に関する処理を実行するユーザモジュールを、ユーザにより形成可能としている。図２では、このようにユーザが形成したユーザモジュールがユーザモジュールメモリ３２に格納されている様子を示している。すなわち、図２では、ユーザモジュールメモリ３２の領域３２１に第１のユーザモジュール（ユーザモジュールＮｏ．１）が格納され、領域３２Ｎに第Ｎのユーザモジュール（ユーザモジュールＮｏ．Ｎ）が格納されている一例を示している。
【００６３】
ユーザモジュールは、ユーザが作成した一括りのプログラムで構成されるモジュールである。本実施の形態では、このようなユーザモジュールを作成するため、一連のプログラミング要素としてのコマンドを提供している。一連のコマンド中の種別としては、加減乗除のような算術演算、論理和および論理積やシフトなどの論理演算、比較や分岐命令、および各メモリの内容を読み込む命令に加えて、バッファメモリ３６に対してパラメータで指定したアドレスに書き込む命令を準備している。ユーザはこれらのコマンドを組み合わせてプログラミングすることができる。特に、本実施の形態では、ユーザモジュールは、モニタ情報メモリ３７を利用して、モータ制御装置１０内の各部における設定状態を取得することができる。そして、さらに、本実施の形態では、ユーザモジュールにおけるメモリに対する書き込みの命令としては、図２に示すようなバッファメモリ３６に対する書き込みに制限している。すなわち、ユーザモジュールは、バッファメモリ３６に対してのみ書き込みが可能である。
【００６４】
一方、このようなユーザモジュールに対して、カスタマイズモジュールは、図２に示すように、少なくともバッファメモリ３６のデータをパラメータとして処理を実行する。このように、本実施の形態では、カスタマイズモジュールがバッファメモリ３６のデータのみをパラメータとして処理を実行するように、カスタマイズモジュールの処理も制限している。
【００６５】
以上のような構成により、本実施の形態のカスタマイズ方法に基づいて、本カスタマイズ機能が次のように動作する。まず、ユーザが作成した一連のコマンドがユーザモジュールメモリ３２に保存されて、ユーザによるプログラムが形成され、このプログラムで構成されたユーザモジュールが形成される。ユーザモジュールメモリ３２に保存されたユーザモジュールは、それらのコマンドの手順に従って、特定機能に関する処理を実行する。そして、ユーザモジュールは、その処理結果をバッファメモリ３６にデータとして書き込む。それとともに、その特定機能に関連したカスタマイズモジュールが起動される。それによって、起動されたカスタマイズモジュールは、あらかじめ組み込まれた手順に従って、バッファメモリ３６を参照する。そして、そのカスタマイズモジュールは、参照したデータを用いて、例えば変更処理を実行する。このように、本実施の形態でのカスタマイズ機能として、カスタマイズモジュールは、バッファメモリ３６を介してのみユーザモジュールからのデータを受け取るように制限している。そして、本実施の形態では、カスタマイズ機能の実施を可能とするとともに、このような制限を設けることにより、モータ動作における誤動作のリスクや安全性の低下などを抑制している。
【００６６】
また、本カスタマイズ方法では、ユーザモジュールとカスタマイズモジュールとをバッファメモリ３６により完全に分離した構成としている。言い換えると、バッファメモリ３６は、ユーザモジュールの機能とカスタマイズモジュールの機能とを繋ぎつつも、両者を明確に分離するためのインタフェースである。このようなバッファメモリ３６を用いた構成とすることによって、変更する機能関連についてはユーザに対しての完全な公開とはならず、これにより、メーカ側のノウハウなどの流出を防ぐとともに、商品としての動作保証は確保している。
【００６７】
さらに、本カスタマイズ方法では、ユーザモジュールでの処理による結果をバッファメモリ３６のみに書き込む手法であるため、ユーザはバッファメモリ３６を参照すれば処理結果が確認できる。よって、ユーザモジュールのデバッグも容易となり、これによる誤動作の防止効果もある。
【００６８】
図３は、本実施の形態のカスタマイズ方法に基づき、モータ制御装置１０におけるカスタマイズ機能のこのような動作の一例を示す図である。また、図４は、モータ制御装置１０のメインの処理であるモータ制御のプログラム、およびカスタマイズ機能を実現するためのカスタマイズモジュールとユーザモジュールとの処理の流れを示すフローチャートである。次に、図３および図４を用いて、モータ制御での位置制御における位置ゲインＰ０１を変更する動作を一例として、カスタマイズ機能を実施するための詳細な動作について説明する。
【００６９】
まず、図３において、ＲＯＭ４０のカスタマイズモジュール領域４２のさらに領域４２０には、主に制御パラメータメモリ３４の設定値を変更するようなモジュールの集合が記憶されている。図３では、ここでのモジュールとして、例えば、ゲインを設定するための「ＳｅｔＧａｉｎ０１（）」、「ＳｅｔＧａｉｎ０ｎ（）」や、オフセットを設定するための「ＳｅｔＯｆｆｓｅｔ０１（）」とするカスタマイズモジュールがそれぞれの機能ごとに記憶されている例を示している。
【００７０】
ここで、カスタマイズモジュールＳｅｔＧａｉｎ０１（）を用いて、その動作の一例を説明する。カスタマイズモジュールＳｅｔＧａｉｎ０１（）は、そのプログラムにおいて、「ＳＥＴ  ＧａｉｎＰ０１，  ＢＵＦ  ＃００１」というような表記に基づくコマンドを含んでいる。このコマンドは、表記「ＢＵＦ  ＃００１」として、バッファメモリ３６でのアドレス＃００１を指定するとともに、表記「ＧａｉｎＰ０１」として制御パラメータメモリ３４での位置ゲインＰ０１を格納するアドレスＰ０１を指定している。そして、カスタマイズモジュールＳｅｔＧａｉｎ０１（）が起動されて、このコマンドが実行されることで、バッファメモリ３６でのアドレス＃００１のデータが、制御パラメータメモリ３４でのアドレスＰ０１に格納される。すなわち、図４のＳｅｔＧａｉｎ０１（）で示すような各ステップの処理が次のように実行される。まず、バッファメモリ３６が読み出される（ステップＳｃ１０２）。次に、ＳｅｔＧａｉｎ０１（）での特定のカスタマイズ処理が実行される（ステップＳｃ１０４）。そして、カスタマイズ処理の結果得られたデータが、制御パラメータメモリ３４のアドレスＰ０１に格納されて（ステップＳｃ１０６）、カスタマイズモジュールＳｅｔＧａｉｎ０１（）の処理が終了する。
【００７１】
また、このカスタマイズモジュールＳｅｔＧａｉｎ０１（）の場合、特定機能としては、位置ゲインＰ０１を設定するということに特定した機能である。そして、このカスタマイズモジュールＳｅｔＧａｉｎ０１（）は、ユーザモジュールとの組み合わせで、位置ゲインＰ０１が変更できるようにカスタマイズ化したカスタマイズ要素に利用される。すなわち、ここでの例では、カスタマイズ機能の１つとして位置ゲインＰ０１を変更するため、位置ゲインＰ０１の変更処理を実行するカスタマイズモジュールＳｅｔＧａｉｎ０１（）を形成している。
【００７２】
同様に、例えば、カスタマイズモジュールＳｅｔＧａｉｎ０ｎ（）が起動されると、バッファメモリ３６でのアドレス＃００１のデータが、制御パラメータメモリ３４でのアドレスＰ０ｎに格納される。カスタマイズモジュールＳｅｔＯｆｆｓｅｔ０１（）が起動されると、バッファメモリ３６でのアドレス＃００２のデータが、制御パラメータメモリ３４でのアドレスＶ０１に格納される。
【００７３】
本実施の形態でのカスタマイズモジュールは、以上のように構成されている。
【００７４】
また、図３に示すように、モニタ情報メモリ３７には、各部の情報が取り込まれて記憶されている。図３では、パネル操作部１３のパネル入力データの値”ｐｎｌ１”がモニタ情報メモリ３７のアドレスＰＮＬ０１に、制御パラメータメモリ３４のアドレスＰ０１の値”ｐ１”がモニタ情報メモリ３７のアドレスＰ００１に、制御パラメータメモリ３４のアドレスＰ０ｎの値”ｐｎ”がモニタ情報メモリ３７のアドレスＰ００ｎに、取り込まれ、記憶されている一例を示している。
【００７５】
次に、図３では、ユーザモジュールメモリ３２において、ユーザが作成したユーザモジュールとして、第１のユーザモジュールや第ＮのユーザモジュールであるユーザモジュールＵｓｅｒＮ（）が記憶されている例を示している。
【００７６】
ここで、ユーザモジュールＵｓｅｒＮ（）を用いて、その動作の一例を説明する。まず、ユーザモジュールＵｓｅｒＮ（）は、そのプログラムにおいて、「ＲＥＡＤ  ＰＮＬ０１」、「ＡＮＤ  ａａａ，  ”ｂｂｂ”」、「ＡＤＤ  ａａａ，ｃｃｃ」、「Ｉｆ  ＰＮＬ０１＝”０”  ｔｈｅｎ」、「ＷＲＩＴＥ  ＢＵＦ  ＃００１，ａａａ」というような表記に基づく一連のコマンドを組み合わせて、一括りのプログラムが構成されている。表記「ＲＥＡＤ  ＰＮＬ０１」のコマンドでは、モニタ情報メモリ３７のアドレスＰＮＬ０１のデータを読み込む命令を示している。表記「ＡＮＤ  ａａａ，  ”ｂｂｂ”」では、変数ａａａと値”ｂｂｂ”との論理積ＡＮＤの実行を示している。表記「ＡＤＤ  ａａａ，ｃｃｃ」では、変数ａａａと変数ｃｃｃとの加算ＡＤＤの実行を示している。表記「Ｉｆ  ＰＮＬ０１＝”０”  ｔｈｅｎ」では、変数ＰＮＬ０１の値に基づく条件分岐の命令を示している。そして、表記「ＷＲＩＴＥ  ＢＵＦ  ＃００１，ａａａ」では、バッファメモリ３６に対してパラメータ「ＢＵＦ  ＃００１」で指定したアドレス＃００１に、変数ａａａの値を書き込む命令を示している。本実施の形態では、この例のように、算術演算、論理演算、条件分岐や、コマンドメモリの内容を読み込む命令に加えて、バッファメモリ３６に対してパラメータで指定したアドレスに書き込む命令を準備している。
【００７７】
このユーザモジュールＵｓｅｒＮ（）の場合、これらのコマンドにより、所望のデータとしてモニタ情報メモリ３７のアドレスＰＮＬ０１のデータを利用し、所望の処理を実行することで、書込データが作成されて変数ａａａに格納される。そして、表記「ＰＮＬ０１＝”０”」に基づき、変数ＰＮＬ０１の値が値”０”に等しいという条件が満足されると、表記「ＷＲＩＴＥ  ＢＵＦ  ＃００１，ａａａ」に基づく最後のコマンドによって、バッファメモリ３６のアドレス＃００１に変数ａａａの値が格納される。図３では、ユーザモジュールＵｓｅｒＮ（）によって、バッファメモリ３６のアドレス＃００１に変数ａａａの値”１００”が格納された例を示している。
【００７８】
図４では、このようなユーザモジュールＵｓｅｒＮ（）の処理について、ＵｓｅｒＮ（）のフローとして、次のような各ステップで示している。まず、モニタ情報メモリ３７からモニタ情報が読み出される（ステップＳｕ１０２）。次に、例えば読み出したモニタ情報を利用して演算処理を行うなどのユーザが作成したユーザ処理が実行される（ステップＳｕ１０４）。そして、変数ＰＮＬ０１の値が”０”であるかどうか判定し（ステップＳｕ１０６）、”０”の場合には、バッファメモリ３６のアドレス＃００１に、値”１００”を書き込み（ステップＳｕ１０８）、ユーザモジュールＵｓｅｒＮ（）の処理が終了する。
【００７９】
以上、ユーザモジュールＵｓｅｒＮ（）についてステップごとに細かく説明したが、例えば、ユーザモジュールＵｓｅｒＮ（）として、パネル操作部１３のパネル入力データの値”ｐｎｌ１”が値”０”になったときをイベントとして、バッファメモリ３６のアドレス＃００１に変数ａａａの値を書き込むようなモジュールとすることができる。
【００８０】
また、図４では、モータ制御装置１０のメインの処理であるモータ制御のプログラムにおいて、次のような各ステップを実行するような一例も示している。図４に示すモータ制御プログラムでは、まず、制御パラメータメモリ３４に設定されている設定値が読み出される（ステップＳｍ１０２）。そして、例えば読み出した制御パラメータに基づき、位置制御処理（ステップＳｍ１０４）、速度制御処理（ステップＳｍ１０６）、電流制御処理（ステップＳｍ１０８）を行い、それらの処理によってモータ５０への駆動量に応じたＰＷＭ信号を生成する。そして、マイコン２０から、生成されたＰＷＭ信号が出力される（ステップＳｍ１１０）。
【００８１】
以上のような図３および図４の構成の場合には、カスタマイズ機能は、本実施の形態のカスタマイズ方法に基づいて次のように動作する。まず、ユーザが作成した一連のコマンドがユーザモジュールメモリ３２に保存されて、ユーザによるプログラムが形成され、このプログラムで構成されたユーザモジュールＵｓｅｒＮ（）が形成される。ユーザモジュールＵｓｅｒＮ（）は、それらのコマンドの手順に従って、特定機能に関する処理を実行する。そして、ユーザモジュールＵｓｅｒＮ（）は、その処理結果である変数ａａａの値”１００”を、バッファメモリ３６のアドレス＃００１にデータとして書き込む。それとともに、その特定機能に関連したカスタマイズモジュールＳｅｔＧａｉｎ０１（）が起動される。それによって、起動されたカスタマイズモジュールＳｅｔＧａｉｎ０１（）は、あらかじめ組み込まれた手順に従って、バッファメモリ３６のアドレス＃００１を参照する。そして、そのカスタマイズモジュールＳｅｔＧａｉｎ０１（）は、参照したデータの値”１００”を、制御パラメータメモリ３４でのアドレスＰ０１に格納する。これにより、制御パラメータメモリ３４でのアドレスＰ０１では、値”ｐ１”から値”１００”へと変更される。
【００８２】
次に、上述した各モジュールをそれぞれタスクとして管理し、そのタスク管理下において、各タスクを起動する動作について説明する。図５は、図４に示す各処理をタスクとして起動したとき、時間軸に沿ってそれぞれの処理を実行する流れを示すシーケンス図である。図５では、主タスクとしてのモータ制御プログラムを０．２５ｍｓ（ミリ秒）の周期で起動するとともに、カスタマイズモジュールＳｅｔＧａｉｎ０１（）とユーザモジュールＵｓｅｒＮ（）とをそれぞれ、副タスクとして１ｍｓ（ミリ秒）ごとに起動するような一例を示している。主タスクとしてのモータ制御プログラムに対して、図４および図５の例のようにカスタマイズモジュールとユーザモジュールとを周期的に独立かつ並行して起動するような構成とすることで、両モジュールによるカスタマイズ機能を実行させることができる。図４および図５では、変数ＰＮＬ０１の値が値”０”になったことをイベントとして、位置ゲインＰ０１の設定値が変更される一例を示している。
【００８３】
すなわち、図３において、例えばパネル操作部１３が操作されたことにより、アドレスＰＮＬ０１の値が値”０”になる。すると、図５のユーザモジュールでの処理で示すように、その後に副タスクとして起動されたユーザモジュールＵｓｅｒＮ（）は、その処理結果である変更値”１００”を、バッファメモリ３６の所定のアドレス＃００１にデータとして書き込む。そして、図５のカスタマイズモジュールでの処理で示すように、次のタイミングで副タスクとして起動されたカスタマイズモジュールＳｅｔＧａｉｎ０１（）は、バッファメモリ３６を参照して変更値”１００”を取得し、その変更値”１００”を制御パラメータメモリ３４での所定のアドレスＰ０１に格納する。これにより、主タスクとして実行中のモータ制御処理での位置制御処理において、位置ゲインが変更値”１００”へと変更されることになる。なお、ここで、ユーザモジュールが、変更すべき特定機能の区分番号と設定値とをバッファメモリ３６に書込み、カスタマイズモジュールが、バッファメモリ３６に書き込まれた区分番号と設定値とを参照して特定機能の変更処理を実行するような構成としてもよい。また、図４および図５では２つの副タスクをともに１ｍｓ周期とした例を挙げて説明したが、これらは起動周期が異なっていてもよく、同期・非同期もどちらでもよい。また、不定期なイベントで起動してもよく、初期化時１回のみの実行も考えられる。
【００８４】
以上説明したように、本発明のモータ制御装置およびそのカスタマイズ方法は、カスタマイズモジュールとユーザモジュールとのそれぞれからアクセス可能なバッファメモリを設けている。そして、ユーザモジュールは、バッファメモリのみに対して書き込みが可能なように、ユーザモジュールの処理を制限し、カスタマイズモジュールは、バッファメモリのデータのみをパラメータとして処理を実行するように、カスタマイズモジュールの処理を制限している。
【００８５】
このため、本発明によれば、バッファメモリを介して間接的に変更処理を行う手法であるため、モータ動作における誤動作のリスクや安全性の低下などなく、ユーザは、容易かつ迅速に、カスタマイズ単位の特定機能を変更できる。
【産業上の利用可能性】
【００８６】
本発明に係るモータ制御装置およびそのカスタマイズ方法は、モータ動作における誤動作のリスクや安全性の低下などなくカスタマイズ機能が利用できるため、サーボアンプなどの産業用の機械設備や産業用ロボットに利用されるモータ制御装置に有用である。
【符号の説明】
【００８７】
１０    モータ制御装置
１１    通信接続部
１２    駆動回路部
１３    パネル操作部
１４    入出力端子部
１５    電源回路部
１６    保護回路部
２０    マイコン
２４    通信インタフェース部
２５    パネルインタフェース部
２６    外部インタフェース部
２９    内部バス
３２    ユーザモジュールメモリ
３４    制御パラメータメモリ
３６    バッファメモリ
３７    モニタ情報メモリ
４１    管理プログラム領域
４２    カスタマイズモジュール領域
４３    モータ制御プログラム領域
４４    パラメータデフォルト値領域
４６    モータ制御モジュール領域
５０    モータ
５１    負荷
５９    エンコーダ
６０    上位コントローラ
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
モータの制御を行うモータ制御装置において、特定機能に対してユーザが変更できるカスタマイズ要素を機能単位ごとに設けることにより、カスタマイズ化を図るモータ制御装置のカスタマイズ方法であって、
前記カスタマイズ要素における前記特定機能の変更処理を実行するカスタマイズモジュールを形成し、前記カスタマイズモジュールの集合によりカスタマイズモジュール群を構成し、
前記カスタマイズ要素における前記特定機能に関する処理を実行するユーザモジュールを、前記ユーザにより形成可能とし、
前記カスタマイズモジュールと前記ユーザモジュールとのそれぞれからアクセス可能なバッファメモリを設け、
前記バッファメモリを介して前記ユーザモジュールから受け取ったデータに基づき前記特定機能に関する処理を実行するように、前記カスタマイズモジュールを構成したことを特徴とするモータ制御装置のカスタマイズ方法。
【請求項２】
前記ユーザモジュールは前記バッファメモリのみに対して書き込みが可能なように、前記ユーザモジュールの処理を制限し、
前記カスタマイズモジュールは前記バッファメモリのデータをパラメータとして処理を実行するように、前記カスタマイズモジュールの処理を制限したことを特徴とする請求項１に記載のモータ制御装置のカスタマイズ方法。
【請求項３】
前記カスタマイズモジュールは、あらかじめ組み込まれた手順に従って前記変更処理を実行し、
前記ユーザモジュールは、ユーザが作成したコマンドの手順に従って、前記特定機能に関する処理を実行することを特徴とする請求項１に記載のモータ制御装置のカスタマイズ方法。
【請求項４】
前記カスタマイズモジュールは、前記バッファメモリを介してのみ前記ユーザモジュールからのデータを受け取るように制限したことを特徴とする請求項１に記載のモータ制御装置のカスタマイズ方法。
【請求項５】
前記ユーザモジュールは、前記ユーザが設定したコマンドに従って、変更すべき前記特定機能の区分番号と設定値とを、前記バッファメモリに書込み、
前記カスタマイズモジュールは、前記ユーザモジュールが前記バッファメモリに書込んだ前記区分番号と前記設定値とを参照して、前記特定機能の変更処理を実行することを特徴とする請求項１に記載のモータ制御装置のカスタマイズ方法。
【請求項６】
前記ユーザモジュールと前記カスタマイズモジュールとは、互いに独立したタスクとして起動されることを特徴とする請求項１に記載のモータ制御装置のカスタマイズ方法。
【請求項７】
モータの制御を行うモータ制御装置において、特定機能に対してユーザが変更できるカスタマイズ要素を機能単位ごとに複数設けたカスタマイズ機能を備えたモータ制御装置であって、
プログラムに従って処理を実行するＣＰＵと、
前記モータの動きを制御するためのモータ制御プログラムを含むプログラムを記憶するプログラム記憶部と、
前記ＣＰＵが前記モータ制御プログラムを実行することで生成されたモータ制御信号を入力し、前記モータ制御信号に基づき、前記モータを通電駆動するためのモータ駆動信号を生成する駆動回路部と、
前記カスタマイズ要素における前記特定機能の変更処理を実行するカスタマイズモジュールのそれぞれの集合であるカスタマイズモジュール群を記憶するカスタマイズモジュール記憶部と、
前記ユーザにより形成されて、前記カスタマイズ要素における前記特定機能に関する処理を実行するユーザモジュールを記憶するユーザモジュール記憶部と、
前記カスタマイズモジュールと前記ユーザモジュールとのそれぞれからアクセス可能なバッファメモリとを備え、
前記カスタマイズモジュールが、前記バッファメモリを介して前記ユーザモジュールから受け取ったデータに基づき処理を行うことで、前記カスタマイズ機能が実行されることを特徴とするモータ制御装置。
【請求項８】
前記ユーザモジュールが、前記バッファメモリのみに対しての書き込みの処理を行うとともに、前記カスタマイズモジュールが、前記バッファメモリのデータをパラメータとして処理を行うことで、前記カスタマイズ機能が実行されることを特徴とする請求項７に記載のモータ制御装置。
【請求項９】
前記カスタマイズモジュールは、あらかじめ組み込まれた手順に従って前記変更処理を実行し、
前記ユーザモジュールは、ユーザが作成したコマンドの手順に従って、前記特定機能に関する処理を実行することを特徴とする請求項７に記載のモータ制御装置。
【請求項１０】
前記カスタマイズモジュールは、前記バッファメモリを介してのみ前記ユーザモジュールからのデータを受け取るように制限したことを特徴とする請求項７に記載のモータ制御装置。
【請求項１１】
前記ユーザモジュールは、前記ユーザが設定したコマンドに従って、変更すべき前記特定機能の区分番号と設定値とを、前記バッファメモリに書込み、
前記カスタマイズモジュールは、前記ユーザモジュールが前記バッファメモリに書込んだ前記区分番号と前記設定値とを参照して、前記特定機能の変更処理を実行することを特徴とする請求項７に記載のモータ制御装置。
【請求項１２】
前記ユーザモジュールと前記カスタマイズモジュールとは、互いに独立したタスクとして起動されることを特徴とする請求項７に記載のモータ制御装置。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2017110061.tif 000008
【図２】
2017110061.tif 000009
【図３】
2017110061.tif 000010
【図４】
2017110061.tif 000011
【図５】
2017110061.tif 000012
【国際調査報告】
2017110061.tif 000013
2017110061.tif 000014