(57)【要約】【課題】    外部信号入力時の位置データを少ないハードウェア素子で求める。【解決手段】モータ駆動回路（１１）と、エンコーダの検出信号を受信して位置データを生成する受信回路（１２）と、第１クロック信号をカウントし低周波の第２クロック信号をうけてカウント値を出力するカウンタ（１３）と、入力された位置指令と位置データをモータの制御演算処理し第２クロック信号に同期して指令を出力するＣＰＵ（１０）と、からなるモータ制御装置（１）において、カウンタは、外部信号Ｓｄを入力するとその時の外部信号入力時カウント値Ｎｘを出力し、ＣＰＵ（１０）は、カウンタが出力した外部信号入力時カウント値Ｎｘと、外部信号Ｓｄを入力する直前にカウンタが出力したカウント値Ｎ０およびそのときの位置データＰ０と、外部入力を受けた直後に出力したカウント値Ｎ１およびそのときの位置データＰ１とから、外部信号入力時の位置データＰｘを求める。【選択図】図１
2008148504.tif 000002
【特許請求の範囲】
【請求項１】
モータに電流を供給して駆動するモータ駆動回路と、
前記モータの位置を検出するエンコーダの検出信号を受信して位置データを生成する受信回路と、
第１クロック信号をカウントすると共に前記第1クロック信号より低周波の第２クロック信号をうけてカウント値を出力するカウンタと、
位置指令と前記位置データを入力すると前記モータの制御演算処理をして前記第２クロック信号に同期して前記モータ駆動回路に指令を出力するＣＰＵと、
からなるモータ制御装置において、
前記カウンタは、外部信号Ｓｄを入力するとその時のカウント値である外部信号入力時カウント値Ｎｘを出力し、  
前記ＣＰＵは、前記カウンタが出力した前記外部信号入力時カウント値Ｎｘと、前記外部信号Ｓｄを入力する直前に前記カウンタが出力したカウント値Ｎ０およびそのときの位置データＰ０と、前記外部入力を受けた直後に出力したカウント値Ｎ１およびそのときの位置データＰ１とから、前記外部信号入力時の位置データＰｘを求め、その位置データＰｘを基準位置として前記モータの制御演算処理をすることを特徴とするモータ制御装置。
【請求項２】
前記外部信号入力時の位置データＰｘは次の何れかの式で求められることを特徴とする請求項１に記載のモータ制御装置。
Ｐｘ＝Ｐ１−（Ｐ１−Ｐ０）（Ｎ１−Ｎｘ）／（Ｎ１−Ｎ０）      （１）
Ｐｘ＝Ｐ０＋（Ｐ１−Ｐ０）（Ｎｘ−Ｎ０）／（Ｎ１−Ｎ０）      （２）
ただし、Ｎ０：カウンタの前回カウント値
Ｎ１：カウンタの今回カウント値
Ｎｘ：カウンタの外部信号入力時のカウント値
Ｐ０：前回位置データ
Ｐ１：今回位置データ
Ｐｘ：外部信号入力時の位置データ
【請求項３】
モータに電流を供給して駆動するモータ駆動回路と、
前記モータの位置を検出するエンコーダの検出信号を受信して位置データを生成する受信回路と、
第１クロック信号をカウントすると共に前記第1クロック信号より低周波の第２クロック信号をうけてカウント値を出力するカウンタと、
位置指令と前記位置データを入力すると前記モータの制御演算処理をして前記第２クロック信号に同期して前記モータ駆動回路に指令を出力するＣＰＵと、
からなるモータ制御装置において、
前記カウンタは、外部信号Ｓｄを入力するとその時のカウント値である外部信号入力時カウント値Ｎｘを出力し、  
前記ＣＰＵは、前記カウンタが出力した前記外部信号入力時カウント値Ｎｘと、前記外部信号Ｓｄを入力する直前に前記カウンタが出力したカウント値Ｎ０およびそのときの位置データＰ０と、前記外部入力を受けた直後に出力したカウント値Ｎ１およびそのときの位置データＰ１と、前記エンコーダが位置を検出してから前記受信回路が前記検出信号を受信するまでの通信遅れの時間に相当する前記カウンタのカウント値Ｎｄとから、前記外部信号入力時の位置データＰｘを求め、その位置データＰｘを基準位置として前記モータの制御演算処理をすることを特徴とするモータ制御装置。
【請求項４】
前記外部信号入力時の位置データＰｘは次の何れかの式で求められることを特徴とする請求項３に記載のモータ制御装置。
Ｐｘ＝Ｐ１−（Ｐ１−Ｐ０）（Ｎ１−Ｎｘ−Ｎｄ）／（Ｎ１−Ｎ０）  （３）
Ｐｘ＝Ｐ０＋（Ｐ１−Ｐ０）（Ｎｘ−Ｎ０＋Ｎｄ）／（Ｎ１−Ｎ０）  （４）
ただし、Ｎ０：カウンタの前回カウント値
Ｎ１：カウンタの今回カウント値
Ｎｄ：シリアル通信の遅れ時間に相当するラッチ機能付きカウンタ１３の
カウント値
Ｎｘ：カウンタの外部信号入力時のカウント値
Ｐ０：前回位置データ
Ｐ１：今回位置データ
Ｐｘ：外部信号入力時の位置データ
【請求項５】
前記エンコーダの信号がシリアルデータであり、そのシリアルデータを入力した前記受信回路は前記ＣＰＵが取り込める形式の位置データに変換して出力することを特徴とする請求項１または３に記載のモータ制御装置。
【請求項６】
請求項１または３に記載のモータ制御装置と、このモータ制御装置によって駆動されるモータと、前記モータの回転位置を検出して前記モータ制御装置に出力するエンコーダと、からなることを特徴とするモータ制御システム。
【請求項７】
モータに電流を供給して駆動するモータ駆動回路と、
前記モータの位置を検出するエンコーダの検出信号を受信して位置データを生成する受信回路と、
第１クロック信号をカウントすると共に前記第1クロック信号より低周波の第２クロック信号をうけてカウント値を出力するカウンタと、
位置指令と前記位置データを入力すると前記モータの制御演算処理をして前記第２クロック信号に同期して前記モータ駆動回路に指令を出力するＣＰＵと、
からなるモータ制御装置において、
前記ＣＰＵは、
第２クロック信号に同期して出力された前記カウンタの今回カウント値と前回カウント値を内分する外部信号入力時カウント値の内分比率を用い、今回位置データと前回位置データの間を内分して外部信号入力時位置データを求め、
前記位置指令と前記外部信号入力時位置データを用いて前記モータの制御演算処理をする
ことを特徴とするモータ制御装置の制御演算処理方法。
【請求項８】
モータに電流を供給して駆動するモータ駆動回路と、
前記モータの位置を検出するエンコーダの検出信号を受信して位置データを生成する受信回路と、
第１クロック信号をカウントすると共に前記第1クロック信号より低周波の第２クロック信号をうけてカウント値を出力するカウンタと、
位置指令と前記位置データを入力すると前記モータの制御演算処理をして前記第２クロック信号に同期して前記モータ駆動回路に指令を出力するＣＰＵと、
からなるモータ制御装置において、
前記ＣＰＵは、
第２クロック信号に同期して出力された前記カウンタの今回カウント値と前回カウント値を内分する際に外部信号入力時カウント値と通信遅れ時間に相当するカウント値の和を用いて内分比率を求め、
その内分比率によって今回位置データと前回位置データの間を内分して外部信号入力時位置データを求め、
前記位置指令と前記外部信号入力時位置データを用いて前記モータの制御演算処理をする
ことを特徴とするモータ制御装置の制御演算処理方法。
【請求項９】
前記通信遅れ時間は、前記エンコーダが位置を検出してから前記受信回路が前記検出信号を受信するまでの時間であることを特徴とする請求項８に記載のモータ制御装置の制御演算処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンコーダを備えたモータの回転位置を制御するモータ制御装置に関し、とくに、外部信号を入力した時点の回転位置を位置制御に使用するモータ制御装置に関する。
【背景技術】
【０００２】
モータ回転を動力に使用するスライダなどで位置制御を行う場合、位置検出スイッチなどの外部信号を利用してスライダの物理的な位置を求めて位置制御に使用することが考えられる。
シリアルエンコーダを備えたモータを制御する従来のモータ制御装置は、エンコーダのシリアルデータを受信する受信回路の中に、シリアルデータを受信して位置データ（カウントデータのこと）に変換する回路と、エンコーダのカウントデータを模擬するアップダウンカウンタと、アップダウンカウンタのカウントデータをキャプチャするキャプチャ回路を内蔵している。そして、カウントデータを前記アップダウンカウンタにプリセットし、今回受信したカウントデータと前回までに受信したカウントデータの変化分から計算した周波数と方向によって前記アップダウンカウンタのカウントデータを変化させて実時間のカウントデータの推定値を導出しており、前記キャプチャ回路を使用して外部事象に同期したタイミングで前記アップダウンカウンタのカウントデータをキャプチャしている（特許文献１参照）。
このように、シリアルエンコーダを備えた従来のモータ制御装置は、外部信号が入力された位置を推定し、検出するために、複数の回路とハードウェア素子を使用しているのである。
【特許文献１】特開２００１−８２９８３号公報（第２−４頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところが従来のモータ制御装置の場合、特許文献１の図１に示されているように、外部信号が入力された時点の位置を推定検出するには、複数の回路とハードウェア素子が必要となり、それだけ費用がかかるというような問題があった。
本発明はこのような問題点に鑑みてなされたものであり、シリアルエンコーダを備えたモータの位置を制御するモータ制御装置において、外部信号入力時の位置データを少ないハードウェア素子で求めることができ、その位置データに基づいてモータの位置を制御するモータ制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記問題を解決するため、本発明は、次のようにしたのである。
第１の発明は、モータに電流を供給して駆動するモータ駆動回路と、モータの位置を検出するエンコーダの検出信号を受信して位置データを生成する受信回路と、第１クロック信号をカウントすると共に第1クロック信号より低周波の第２クロック信号をうけてカウント値を出力するカウンタと、位置指令と位置データを入力するとモータの制御演算処理をして第２クロック信号に同期してモータ駆動回路に指令を出力するＣＰＵと、からなるモータ制御装置において、カウンタは、外部信号Ｓｄを入力するとその時のカウント値である外部信号入力時カウント値Ｎｘを出力し、ＣＰＵは、カウンタが出力した外部信号入力時カウント値Ｎｘと、外部信号Ｓｄを入力する直前にカウンタが出力したカウント値Ｎ０およびそのときの位置データＰ０と、外部入力を受けた直後に出力したカウント値Ｎ１およびそのときの位置データＰ１とから、外部信号入力時の位置データＰｘを求め、その位置データＰｘを基準位置としてモータの制御演算処理をすることを特徴としており、また、外部信号入力時の位置データＰｘは次の何れかの式で求められることを特徴としている。
Ｐｘ＝Ｐ１−（Ｐ１−Ｐ０）（Ｎ１−Ｎｘ）／（Ｎ１−Ｎ０）    （１）
Ｐｘ＝Ｐ０＋（Ｐ１−Ｐ０）（Ｎｘ−Ｎ０）／（Ｎ１−Ｎ０）    （２）
ただし、Ｎ０：カウンタの前回カウント値
Ｎ１：カウンタの今回カウント値
Ｎｘ：カウンタの外部信号入力時のカウント値
Ｐ０：前回位置データ
Ｐ１：今回位置データ
Ｐｘ：外部信号入力時の位置データ
第２の発明は、第１の発明においてエンコーダが位置を検出してから受信回路が検出信号を受信するまで通信遅れの時間が考慮されたことを特徴としている。
第３の発明は、エンコーダの信号がシリアルデータであり、そのシリアルデータを入力した受信回路はＣＰＵが取り込める形式の位置データに変換して出力することを特徴としている。
第４の発明は、第１ないし第３の発明のモータ制御装置と、このモータ制御装置によって駆動されるモータと、モータの回転位置を検出してモータ制御装置に出力するエンコーダと、からなることを特徴としている。
【発明の効果】
【０００５】
第１ないし第４の発明によると、外部信号Ｓｄを入力するとその時の外部信号入力時カウント値Ｎｘをカウンタが出力し、カウンタが出力した外部信号入力時カウント値Ｎｘと、外部信号を入力する直前にカウンタが出力したカウント値Ｎ０およびそのときの位置データＰ０と、外部信号を受けた直後に出力したカウント値Ｎ１およびそのときの位置データＰ１とから、外部信号入力時の位置データＰｘを求めているので従来のモータ制御装置に比べて回路やハードウェア素子を少なくすることができ、装置を安価にすることができるという効果がある。
【発明を実施するための最良の形態】
【０００６】
以下、本発明の方法の具体的実施例について、図に基づいて説明する。
【実施例１】
【０００７】
図１は、本発明のモータ制御装置の構成を説明する図である。図において、１は本発明のモータ制御装置であり、２はモータ制御装置１が駆動するモータ、３はモータ２の回転位置検出用のシリアルエンコーダである。また１０はモータ制御の演算を行うＣＰＵであり、１１はＣＰＵ１０の演算結果に従ってモータ２に電流を印加するモータ駆動回路、１２はシリアルエンコーダ３から伝送されるシリアルデータを受信してＣＰＵ１０に入力できる形式の位置データＰを作成して出力する受信回路、１３は水晶振動子１４のクロック信号Ｃを受けて第１クロック信号Ｃｃと第２クロック信号Ｃｏを生成し、第１クロック信号Ｃｃをカウントして第２クロック信号Ｃｏに同期してカウント値Ｎを出力するカウンタ、１４はＣＰＵ１０とカウンタ１３にクロック信号Ｃを供給する水晶発振子である。モータ制御回路１１には公知のものが使われる。第１クロック信号Ｃｃは水晶振動子１４のクロック信号Ｃを元にして分周するなどして得られ、クロック信号Ｃより低周波数である。同様に第２クロック信号Ｃｏは第１クロック信号Ｃｃを元にして分周するなどして得られ、第１クロック信号Ｃｃより低周波数である。図示していないが、第１クロック信号Ｃｃと第２クロック信号ＣｏはＣＰＵ１０にも出力されている。
このように本発明のモータ制御装置は、ＣＰＵ１０とモータ駆動回路１１、受信回路１２、カウンタ１３、水晶発振子１４から構成されている。図中のカウンタ１３は１６ｂｉｔあるいは３２ｂｉｔなどの決められたデータ長を持っており、第２クロック信号Ｃｏに同期してカウント値Ｎを出力するほか、外部信号Ｓｄを入力したときもカウント値Ｎを出力するようになっている。
本発明のモータ制御装置が従来のモータ制御装置と異なるのは、シリアルエンコーダ３から伝送されるシリアルデータを受信してＣＰＵ１０に入力できる形式の位置データＰに変換して出力する受信回路１２と、上記のような機能を備えたカウンタ１３が、外部信号入力時の位置データを検出するために備えられた点である。このため従来のモータ制御装置に比べて使用するハードウェア素子が少なくなっている。
【０００８】
このようなモータ制御装置が動作するときは次のようになる。モータ制御装置１がモータ２を駆動している時、シリアルエンコーダ３はモータ２の回転位置を検出してシリアルデータを出力し、モータ制御装置１に伝送する。このシリアルデータを受信回路１２が受信すると、ＣＰＵ１０が取込むことができる形式の位置データＰを作成して出力する。受信回路１２が出力して第２クロック信号に同期してＣＰＵ１０に入力されたこの位置データＰは制御演算処理に使用される。ＣＰＵ１０は第２クロック信号Ｃｏに同期して出力されたカウンタ１３のカウント値を、そのときの位置データＰとともに次の第２クロック信号Ｃｏに同期して出力されるカウンタ１３のカウント値が入力されるまで保持する。
次に図２と図３を用いて外部信号Ｓｄが入力されたときの位置データＰｘを算出する方法について説明する。
【０００９】
図２は、第１クロック信号Ｃｃと第２クロック信号Ｃｏ、外部信号Ｓｄおよび時間等の関係を示すチャートである。この図の例では、時刻ｔ１と時刻ｔ２で第２クロック信号がＬｏからＨｉになっており、時刻ｔ１におけるカウンタ１３のカウント値がＮ０、そのときにＣＰＵ１０が受信回路１２から受け取った位置データがＰ０であり、時刻ｔ２におけるカウンタ１３のカウント値がＮ１、そのときにＣＰＵ１０が受信回路１２から受け取った位置データがＰ１であり、時刻ｔ１と時刻ｔ２の間にある時刻ｔｘと時刻ｔｘ’の間に外部信号Ｓｄが入力されている状況を示している。時刻ｔｘと時刻ｔｘ’は第１クロック信号Ｃｃに同期した時刻である。
【００１０】
図３は、時刻ｔｘと時刻ｔｘ’の間で外部信号Ｓｄを受けた時点の位置データＰｘを求める方法を説明する図である。横軸はカウンタ１３のカウント値を示す軸であり時間軸でもある。縦軸は位置データを示す軸である。図２の説明から、カウンタ１３のカウント値がＮ０からＮ１まで、すなわち時刻ｔ１から時刻ｔ２までは位置データがＰ０であり、カウンタ１３のカウント値がＮ１以降すなわち時刻ｔ２以降は位置データがＰ１となって階段状になっている。時刻ｔ１〜ｔ２間が一定であるので、図の（Ｎ０、Ｐ０）と（Ｎ１、Ｐ１）を結ぶ破線を引き、時刻ｔｘすなわちカウント値Ｎｘの交点を求めれば位置データＰｘを得ることができる。図３によると、Ｐｘは（１）または(２)式によって算出することができる。
Ｐｘ＝Ｐ０＋（Ｐ１−Ｐ０）（Ｎｘ−Ｎ０）／（Ｎ１−Ｎ０）    （１）
Ｐｘ＝Ｐ１−（Ｐ１−Ｐ０）（Ｎ１−Ｎｘ）／（Ｎ１−Ｎ０）    （２）
ここで、Ｎ１は時刻ｔ２におけるカウンタ１３のカウント値、
Ｎ０は時刻ｔ１におけるカウンタ１３のカウント値、
Ｎｘは時刻ｔｘにおけるカウンタ１３のカウント値、
Ｐ１は時刻ｔ２においてＣＰＵ１０に入力された位置データ、
Ｐ０は時刻ｔ１においてＣＰＵ１０に入力された位置データ、である。
この式からわかるように、カウント値Ｎ１、Ｎ０、Ｎｘから、制御演算周期に対する外部信号Ｓｄ入力時の時間的割合を演算し、位置データＰ１、Ｐ０の差分にその時間的割合を乗じたものを位置データＰ１から減じるか、あるいは位置データＰ０に加算して外部信号入力時の位置データを導出している。このようにして外部信号入力時の位置Ｐｘを推定検出することができる。
【実施例２】
【００１１】
次に第２のモータ制御装置について説明する。第２のモータ制御装置は図１に示した第１のモータ制御装置と同じ構成であるが、ＣＰＵ１０の処理方法が少し異なっている。
図４はシリアルエンコーダ３がモータ２の位置を検出してから受信回路１２がシリアルデータを受信するまでの間に通信遅れがある場合の図３に対応する図であり、図３と同様に、カウンタ１３が外部信号Ｓｄを入力した時の位置データＰｘを求める方法を説明する図である。上半分は縦軸と横軸が図３と同じになっており、下半分に時間軸が追加されている。
この図において、時刻ｔ１における第２クロック信号Ｃｏの立ち上がりでカウントしたカウンタ１３のカウント値がＮ０、ＣＰＵ１０が受信回路１２から入力した位置データがＰ０であり、時刻ｔ２における第２クロック信号Ｃｏの立ち上がりでカウントしたカウンタ１３のカウント値がＮ１、ＣＰＵ１０が受信回路１２から入力した位置データがＰ１である。シリアルエンコーダ３から受信回路１２までの間の伝送遅れをｔｄとすれば、外部信号Ｓｄを入力した時刻ｔｘのときの位置データＰｘは、時刻ｔｘから時間ｔｄ経過して受信回路１２が受信してＣＰＵ１０に位置データＰを出力するので、時刻ｔｘから時間ｔｄ経過した時点のカウンタ１３のカウント値はＰｘになる。
したがって、伝送遅れを考慮したときの外部信号Ｓｄが入力されたときの位置データＰｘは次のいずれかの式によって求めることができる。
Ｐｘ＝Ｐ１−（Ｐ１−Ｐ０）（Ｎ１−Ｎｘ−Ｎｄ）／（Ｎ１−Ｎ０）  （３）
Ｐｘ＝Ｐ０＋（Ｐ１−Ｐ０）（Ｎｘ−Ｎ０＋Ｎｄ）／（Ｎ１−Ｎ０）  （４）
ここで、Ｎｄはシリアルエンコーダ３から受信回路１２までの伝送遅れ時間に相当するカウンタ１３のカウント値であり、その他は実施例１で述べたものと同じである。
この何れかの式によって、シリアル通信の遅れを補償した外部信号入力時の位置Ｐｘを推定検出することができる。
【００１２】
このように、第２クロック信号Ｃｏの立ち上がりとその次の立ち上がりの間に入力された外部信号Ｓｄの時間的な内分比率に応じて、第２クロック信号Ｃｏの立ち上がりとその次の立ち上がりの時点の位置データを用いて外部信号Ｓｄの入力時の位置データＰｘを求めているので、用いる回路が受信回路１２とカウンタ１３だけでよく、従来技術に比べてハードウェア素子を削減してモータ制御装置を安価にすることができるのである。
【００１３】
なお、上記の説明ではクロック信号Ｃから第１クロック信号Ｃｃと第２クロック信号Ｃｏをカウンタ１３が作り出していたが、その機能を水晶発信子１４に持たせ、カウンタ１３とＣＰＵ１０に第１クロック信号Ｃｃと第２クロック信号Ｃｏを出力してもよい。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施例を示すモータ制御装置のブロック図
【図２】本発明の第１実施例の動作を示すタイムチャート図
【図３】本発明の第１実施例の演算を説明する図
【図４】本発明の第２実施例の演算を説明する図
【符号の説明】
【００１５】
１  モータ制御装置          ２  モータ                ３  エンコーダ
１０  ＣＰＵ                １１  モータ駆動回路      １２  受信回路
１３  カウンタ              １４  水晶発振子
【図１】
2008148504.tif 000003
【図２】
2008148504.tif 000004
【図３】
2008148504.tif 000005
【図４】
2008148504.tif 000006