(57)【要約】【課題】ステッピングモータの速度周波数パルスを発生する場合、パルス発生周期を計算して発生させると計算誤差が大きくなり、場合によってはモータが脱調し、運転不能となる。【解決手段】この改善策として、基準発振クロックを必要な分解能が得られるビット数の２進カウンタでカウントし、１サイクル中のカウント位置情報から論理演算し、適正なパルス発生位置を計算することによって設定されたパルス数を発生するパルス発生装置とした。複雑な回路やソフトウェアを構成することなく最小のシステムで構成できる格別なパルス発生装置を提供することができる。【選択図】図１
2008054382.tif 000002
【特許請求の範囲】
【請求項１】
ステッピングモータの回転指令パルスを制御する装置において、所望の回転速度を２進デジタル値で設定する設定機能と、内部基本クロックを順次カウントアップするカウンタ機能と、カウントアップした値とデジタル値で設定した設定値との論理演算を実施する論理演算機能と、論理演算した結果の論理値（オンまたはオフ）を出力パルスとして出力する前に、オンとオフの比率を平均化するために予め設定した値で分周する周波数割り算機能とを有し、モータの速度設定値に比例した一定の周波数のパルスを出力することを特徴とするパルス発生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般産業用モータの速度制御用パルス発生装置に関するものである。
【背景技術】
【０００２】
従来、一般産業用に使用されるモータのなかでも機械加工等に使用され、厳密な回転角度位置まで制御する必要のあるものについてはステッピングモータが使用されている。ステッピングモータの回転指令は最小分解能単位の回転指令パルスによって回転方向を指定してなされ、目的とする回転位置に到達するまで指定のパルス数を指定した時間に発生させながらモータを回転させていく。この場合の回転指令パルスはモータの回転に従った滑らかに変化する必要があり、急激な周波数の変化によっては最大トルクを超えモータが制御不能の脱調状態となる場合もある。したがって回転指令パルスの発生装置はこのモータの位置と速度とを正確に計算しながら制御するのが目的である。また回転指令パルスを設定したパターンで出力することによってモータを回転させ、制御対象である機械を設定した動作パターンで適切な動作することができれば最小量の機械動作量ですむ。このため、いかに細かく回転指令パルスを制御することによってモータ電力の消費量が減り、無駄な費用を抑制することも可能となってくる。
【０００３】
このため、マイクロプロセッサを利用したパルス発生回路を構成して回転指令パルスを利用してモータ制御を演算することが考えられたが、回転指令パルスの周期を変更してモータ位置制御することは可能であるが速度制御する場合、速度が周期の逆数となるため制御誤差が大きくなり、細かく制御できないという欠点があった。
【０００４】
さらに、信号処理プロセッサ等の精密波型処理装置（所謂シンセサイザー）による場合も考えられるが装置が大掛かりとなり高価で適さないという欠点があった。
【０００５】
この改善策として、所望の回転速度を２進デジタル値で設定する設定機能と、内部基本クロックを順次カウントアップするカウンタ機能と、カウントアップしたビット位置を検出するためにカウントアップした値とカウントアップする前の値の論理反転値とデジタル値で設定した設定値のビット位置逆転値との論理演算を実施する数値論理演算機能と、数値論理演算した結果の論理値（オンまたはオフ）を出力パルスとして出力する前に、オンとオフの比率を平均化するために予め設定した値で分周する周波数分周機能とをもって、モータの速度設定値に比例した一定の周波数のパルスを出力するパルス発生装置とした。
【特許文献１】特開２００４-１４５６５６公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は上述したようなステッピングモータの回転指令パルスの発生を論理化したもので速度制御する場合、速度制御に相当する出力パルスを周波数で制御するが、出力パルスの周期を制御したほうがパルス出力としては制御しやすいが、周期は周波数の逆数となるため、速度周波数の設定分解能が大きくなり、クロック周波数と比較して設定比率を大きくとり、低い速度周波数でのみ使用せざるをえなかったが、本装置を利用することによって最小量のハードウェアで構成できる装置を提供することが可能である。
【課題を解決するための手段】
【０００７】
最高周波数の２倍以上で発振される基準発振器からの基準クロックをカウントするために２進カウンタを設け、カウントアップしたビット位置を検出するために、基準クロックをカウントする度に前回値の論理反転値と、カウントアップされた今回値と、モータを運転する速度データを設定する設定器と、設定器によって設定された周波数値の２進値の上位ビットから下位ビットまでのビット位置を反転させる演算器とを演算する論理乗算器と、論理演算器の演算結果であるパルスデータの論理値からなる周波数をさらに分周するための周波数分周器によって分周し、目的とする周波数のパルスを発生させるパルス発生装置。
【発明の効果】
【０００８】
以上説明したように本発明によれば、複雑な回路やソフトウェアを構成することなく最小のシステムで構成できる格別なパルス発生装置を提供することができる。
【発明を実施するための最良の形態】
【０００９】
第１図は本発明の一実施例の概要構成を示すものであり、この動作の理解を容易にするためのパルス発生メカニズムを示したものが第２図〜第４図で、本装置をソフトウェアにて構成した場合についてのフローチャートが図５および図６である。
【実施例１】
【００１０】
第１図において１は基準発振クロックであり、水晶発振子を利用した所望の最高周波数の数倍以上の周波数を発振する基準クロックである。２は２進カウンタであり、基準発振クロック１から発振される信号をカウントし必要な分解能におけるカウント位置情報を取り出すための必要なビット数で構成されるものである。３は２進カウンタ２から入力されるカウンタ前回値である。４は２進カウンタ２から出力されるカウンタ今回値でありカウンタ前回値３に１加算された値となる。５はＮＯＴ論理演算器でカウンタ前回値３の値をＮＯＴ演算するためのものである。６はＮＯＴ論理演算器５から出力されるカウンタＮＯＴ値である。７は所望の出力周波数を設定するための周波数設定器である。８は前記周波数設定器７によって設定された所望の分解能におけるデジタル値を確保するための設定用レジスタである。９は前記レジスタの上位ビットから下位ビットまでのビット位置を逆転するためのビット位置逆転器である。１０はビット位置逆転器９によって生成された周波数設定器７によって設定された設定器ビット逆転値である。
１１は前記カウンタ今回値４、カウンタＮＯＴ値６および設定器ビット逆転値１０の３つのレジスタ値のＡＮＤ論理を実行するためのＡＮＤ論理演算器である。
１２はＡＮＤ論理演算器１１の演算結果とビット比較値１３とを比較するための比較を実施するためのビット比較器で比較が一致した場合０となり、一致しない場合は１となる。
１３はビット比較器１２で比較されるビット比較値で０を設定しておくためのものである。１４はビット比較器１２で比較された結果が１の場合のみカウントを進めるための分周カウンタである。１５は分周カウンタ１４によってカウントされた値を確保するためのカウンタ今回値レジスタである。１６は分周カウンタ１４の最大値を設定するための分周カウンタ設定値である。１７は分周カウンタ今回値１５と分周カウンタ設定値１６とを比較するための分周カウント比較器である。１８は分周カウンタ初期値で分周カウント比較器１７の比較結果が一致した場合のみ分周カウンタ今回値１５をプリセットするための分周カウンタ初期値で、数値０の値をもっている。１９は分周カウント比較器１７の比較結果によって一致であれば論理値１を、不一致であれば論理値０を確保するための分周パルス出力値である。２０は分周パルス出力値１９を最終的に外部へ導入するためのパルス出力回路であり、モータ制御用として適切なインタフェース回路を含んだもので外部機器で使用することも可能である。
【００１１】
つぎに基準発振クロック１をカウントする２進カウンタ２の動作とカウンタ前回値３、カウンタ今回値４、カウンタＮＯＴ値６の値について、図２を用いて詳細説明する。図２は簡単のため各レジスタ値を分かりやすく５ビットの値で表したもので、上下方向は時間軸となり、紙面上部が過去の時間となり、左右方向はビット位置で、本図において２１は図１におけるカウンタ前回値３の時間的変化を表に表したものである。２２は図１におけるカウンタ今回値４の時間的変化を表に表したものである。
２３は図１におけるカウンタＮＯＴ値６の時間的変化を表に表したものである。２４は図１におけるＡＮＤ論理器１１の値を設定器ビット逆転値１０が１、２、４、８、１６の場合の時のパルス出力レベルの時間的変化を表に表したものである。本図より５ビットのカウンタが０から３１まで１回転する間に設定値が１の時に１パルス分のパルスが出力され、同様に２、４、８、１６の場合、設定した値に相当するパルスが出力される。
【００１２】
つぎに設定データが０から３１の場合について、図２で設定した１、２、４、８、１６の合成値となったものを図３でも設定できることを説明する。図３は図２の設定値１、２、４、８、１６の各ビット要素を合成して設定される周波数設定器の設定値０から３１の場合について、２進カウンタの前回値が０から３１までの時間についてパルスがＯＮとなる時点を色分けしたもので図のように設定値０においては設定値０から３１までの１サイクル中におけるパルス数は０であり、設定値を１から３１まで順次値を上昇させることによって、１サイクル中のパルス数も順次、上昇していくことがわかる。１例として設定値を１４とした場合、図中の太線枠内のパルスとなり、１サイクル中のパルス数は１４となる。従って基準クロックを一定の周波数とすれば１サイクルに掛かる時間は一定時間となり、一定時間に出力されるパルス数が設定データに比例するので、設定したデジタル値に比例した周波数の出力信号となる。
【００１３】
さらに設定データが０から３１の場合について、図３で設定した０から３１の場合について合成値となったものを図４で説明する。図４は図１のパルス出力値１９の出力波形を設定値０から３１の場合について横軸を時間軸としてパルス前回値を基準に表したもので、図１での分周カウンタ設定値１６が２の場合について表している。分周カウンタ設定値１６は図３のパルス波形のＯＮレベルの比率を大きくするためのもので、最低でも２以上の値を設定する。いま分周カウンタ設定値１６を２としたため、図３における１サイクルはパルス前回値が０から６３までの２倍となり、１サイクルにおけるパルス数は変わらないが、１サイクルに要する時間が分周カウンタ設定値１６にて設定した値に相当する２倍となり、周波数としては２分の１となる。各タイミングにおける信号レベルは図３における各設定値のカウンタの前回値が０から６３まで時間を延伸させてパルスがＯＮとなる時点では図４の信号レベルが反転する形となり、図のように設定値０においては設定値０から３１までの１サイクル中におけるパルス数は０であり、設定値を１から３１まで順次値を上昇させることによって、１サイクル中のパルス数も順次、上昇していくことがわかる。１例をあげた設定値が１４とした場合、図中の太線枠内のパルスとなり、１サイクル中のパルス数は１４となる。従って基準クロックを一定の周波数とすれば１サイクルに掛かる時間は一定時間となり、一定時間に出力されるパルス数が設定データに比例するので、設定したデジタル値に比例した周波数の出力信号となる。
【００１４】
さらに本装置をソフトウェアにて構成した場合について図５および図６を用いて説明する。図５は本装置のメインプログラムのフローチャートを記述したもので、電源が投入されるとまずハードウェアを初期化し、レジスタＡ，Ｂ，Ｃを数値０で初期化し、さらにビットデータＸ，Ｙも０に初期化し、カウンタレジスタＣＮＴに初期値Ｄを設定し、引き続き周波数設定値であるレジスタＳを予め０に設定する。この状態において初期化終了で出力パルスはオフとなっており、以降は周波数設定値Ｓが変更されるのを待っている。周波数設定値が変更されると、ビット分解能数である数値ＮをレジスタＣＴに設定し、レジスタＳを右シフトし、左シフトしたレジスタＢに発生したＣＡＲＲＹフラグによって数値１を加算し、ＣＴレジスタを１減算し、Ｎビット回数分ループすることによってレジスタＢはレジスタＳの上位ビットから下位ビットまでビット位置を反転させることができる。
【００１５】
次に図６の割り込みソフトウェアについて説明する。本フローチャートは、基本発振クロックの周波数に相当する割り込みで、割り込みが発生する時間間隔は一定となる。割り込みが発生すると、まずプロセッサが必要とするレジスタを退避し、クロックカウンタであるレジスタＣのＮＯＴ値をとりレジスタＡに格納し、レジスタＣは１加算してからレジスタＣに再び格納する。一方レジスタＢはメインプログラムによって予め設定された設定周波数に対してビット位置を逆転させたもので、上記３個のレジスタＡ，Ｂ，Ｃを論理積演算を実施し、その結果をＸレジスタに格納する。さらにＸレジスタの値をチェックし、０であればこのまま割り込み処理ルーチンを終了するが、０でない場合は分周カウンタレジスタＣＮＴを１減算し、レジスタＣＮＴが０の場合、レジスタＣＮＴを分周値Ｄに初期化し、パルス信号レジスタＹを反転する。さらにレジスタＹの状態をプロセッサのポート上に出力し、レジスタを復帰後、割り込み処理を終了する。
【００１６】
いま２進カウンタビット値をＮ、基準クロック周波数をＣ、周波数設定用レジスタ値をＳ、分周カウンタ設定値をＤとすれば、２進カウンタは〔（２のＮ乗）−１〕のパルス数で１周しており、例えば図２〜図４の５ビットで計算すると〔（２の５乗）−１〕＝３１となり、周波数設定用レジスタ値Ｓと基準クロック周波数値Ｃに比例し、分周カウンタによる分周値Ｄにより分周されるので最終的に得られる周波数をＦ（Ｈｚ）とすると
【数１】
2008054382.tif 000003
となり、最終的に得られる周波数Ｆは設定値０から〔（２のＮ乗）−１〕の範囲で周波数設定用レジスタ値Ｓに比例し、適切な比例定数を使用しモータ制御に適用することができる。
【００１７】
以上説明したように本発明によれば、無駄な回路やソフトウェアを構成することなく最小のシステムで構成できる格別なパルス発生装置を提供することができる。
【産業上の利用可能性】
【００１８】
本装置の技術を応用すれば、ステッピングモータの回転指令パルスの発生する装置や、モータ速度制御用の速度設定周波数の分解能が大きくとることが可能で、最小量のハードウェアで構成することが可能である。
【図面の簡単な説明】
【００１９】
【図１】本発明における一実施例を示す全体ブロック図
【図２】本発明における一実施例を示す論理値データ図
【図３】本発明における一実施例を示すタイミングチャート図
【図４】本発明における一実施例を示す出力タイミングチャート図
【図５】本発明における一実施例を示すメインフローチャート図
【図６】本発明における一実施例を示す割り込みフローチャート図
【符号の説明】
【００２０】
１    基準発振クロック
２    ２進カウンタ
３    カウンタ前回値
４    カウンタ今回値
５    ＮＯＴ論理演算器
６    カウンタＮＯＴ値
７    周波数設定器
８    設定用レジスタ
９    ビット位置逆転器
１０    設定器ビット逆転値
１１    ＡＮＤ論理演算器
１２    ビット比較器
１３    ビット比較値
１４    分周カウンタ
１５    分周カウンタ今回値
１６    分周カウンタ設定値
１７    分周カウント比較器
１８    分周カウンタ初期値
１９    分周パルス出力値
２０    パルス出力回路
２１    カウンタ前回値３の時間的変化
２２    カウンタ今回値４の時間的変化
２３    カウンタＮＯＴ値６の時間的変化
２４    論理積値
３１    Ａ：２進カウンタＮＯＴ値、Ｂ：周波数設定器逆転値、Ｃ：２進カウンタ今回値
３２    Ｘ：ＡＮＤ論理演算結果、  Ｙ：パルス出力値
３３    Ｄ：分周カウンタ設定値、  ＣＮＴ：分周カウンタ値
３４    Ｓ：周波数設定用レジスタ
３５    Ｎ：２進カウンタビット値、  ＣＴ：ビットカウンタ
【図１】
2008054382.tif 000004
【図２】
2008054382.tif 000005
【図３】
2008054382.tif 000006
【図４】
2008054382.tif 000007
【図５】
2008054382.tif 000008
【図６】
2008054382.tif 000009