"ステッピングモータを駆動する駆動電流を設定する駆動電流設定手段と、前記ステッピングモータの駆動波形から前記ステッピングモータの負荷を検出する負荷検出手段と、前記負荷検出手段によって検出された負荷がある閾値を超えた際に、脱調の予兆があると判定する脱調予兆判定手段と、前記ステッピングモータの負荷に対して、さらに当該負荷に所定の増加分を見込んだマージン値を設定するマージン設定手段と、前記脱調予兆判定段が脱調の予兆であると判定したときに出力する脱調予兆信号を元に前記駆動電流を制御する際に、前記マージン設定手段で設定されたマージン値を含む駆動電流とする駆動電流最適化制御手段と、を備えることを特徴とするステッピングモータの制御装置。前記マージン設定手段は、前記脱調予兆判定段から出力されるある一定時間の予兆信号の数をカウントし、そのカウント数の値に応じて前記マージン値を上げる値を決定することを特徴とする請求項1に記載のステッピングモータの制御装置。前記マージン設定手段は、前記脱調予兆判定段からの予兆信号の出力がある一定時間内に再度発生した場合は、脱調が比較的発生しやすい状態であると判断し、前記マージン値を上げることを特徴とする請求項1または2に記載のステッピングモータ制御装置。さらに、報知手段を有し、前記駆動電流最適化制御手段は、マージンレベルがある一定値を超えた場合、前記報知手段を介して異常である旨の報知処理を行うことを特徴とする請求項1、2または3に記載のステッピングモータの制御装置。駆動電流設定手段が、ステッピングモータを駆動する駆動電流を設定する駆動電流設定工程と、負荷検出手段が、前記ステッピングモータの駆動波形から前記ステッピングモータの負荷を検出する負荷検出工程と、脱調予兆判定手段が、前記負荷検出工程によって検出された負荷がある閾値を超えた際に、脱調の予兆があると判定する脱調予兆判定工程と、マージン設定手段が、前記ステッピングモータの負荷に対して、さらに当該負荷に所定の増加分を見込んだマージン値を設定するマージン設定工程と、駆動電流最適化制御手段が、前記脱調予兆判定工程で脱調の予兆があると判定したときに出力する脱調予兆信号を元に前記駆動電流を制御する際に、前記マージン設定工程で設定されたマージン値を含む駆動電流とする駆動電流最適化制御工程と、を含むことを特徴とするステッピングモータの制御方法。しかしながら、上記に示されるようなステッピングモータの消費電力を低減する装置にあっては、ステッピングモータの脱調回避手段として、モータの脱調が検出してステッピングモータの駆動電流を上げる制御を行っているため、最低でも一度は脱調が起きてしまうという問題点があった。また、最適化処理を行うにあたりステッピングモータを脱調させてしまうため、次起動時にホームポジション検出を行わない場合には、位置情報を把握することができず、暴走やロック状態を引き起こし装置を破損させてしまう可能性もあった。また、ホームポジション検出を行なう場合には、ホームポジション検出に要する時間がかかるので、ダウンタイムが発生してしまうという問題もあった。また、特許文献2に開示されている技術にあっては、駆動電流を最適と判断する閾値は、あらかじめ設定された値であるため、駆動環境の変化、装置間の負荷バラツキなども加味したマージンを設定する必要がある。また、この閾値を操作パネルなどの入力設定手段を用いて変更できるような構成としてもよいが、その場合にはユーザーまたはサービスマンが設定する必要があり、自動で必要なトルクに近い出力を得ることのできる電流値に設定することができない。また、上記バラツキが大きい場合には、脱調する可能性もあると考えられる。本発明は、上記に鑑みてなされたものであって、モータ負荷を常時モニタして、モータを脱調させることなく、その時々の負荷に対して最適な駆動電流を設定することで消費電力を低減し、さらに脱調予兆が発生した場合に駆動電流値のマージン値を設定することで、脱調を発生させることなくモータを制御することを目的とする。上述した課題を解決し、目的を達成するために、本発明は、ステッピングモータを駆動する駆動電流を設定する駆動電流設定手段と、前記ステッピングモータの駆動波形から前記ステッピングモータの負荷を検出する負荷検出手段と、前記負荷検出手段によって検出された負荷がある閾値を超えた際に、脱調の予兆があると判定する脱調予兆判定手段と、前記ステッピングモータの負荷に対して、さらに当該負荷に所定の増加分を見込んだマージン値を設定するマージン設定手段と、前記脱調予兆判定段が脱調の予兆があると判定したときに出力する脱調予兆信号を元に前記駆動電流を制御する際に、前記マージン設定手段で設定されたマージン値を含む駆動電流とする駆動電流最適化制御手段と、を備えることを特徴とする。本発明は、ステッピングモータの負荷を常時モニタして、モータが脱調しそうになったときに出力される脱調の予兆信号の情報を元に、その時々の駆動条件に応じて設定電流値に対して最適なマージンを設定した駆動電流を設定することができるので、ステッピングモータの負荷を常時モニタして、モータを脱調させることなく、その時々の負荷に対して最適な駆動電流を設定することで消費電力を低減することができ、脱調予兆が発生した場合は、その脱調予兆の情報を元に、駆動電流値のマージンを設定することで、使用条件や環境条件により負荷が大きくなった場合でも脱調を起こすことなくモータを制御することができる。以下に添付図面を参照して、この発明にかかるステッピングモータの制御装置およびステッピングモータの制御方法の一実施の形態を詳細に説明する。実施の形態本発明は、ステッピングモータの負荷を常時モニタして、モータが脱調しそうになったときに出力される脱調予兆信号に基づいて、負荷の変動に応じた駆動電流の設定を行うことにより、ステッピングモータを脱調させることなく、ステッピングモータの消費電力を低減するものである。以下、具体的に説明する。図1は、この実施の形態にかかるステッピングモータ制御装置を搭載したシステム構成を示すブロック図である。この図1において、符号100はステッピングモータ、符号110はシステム制御部、符号111はモータドライバ、符号112はモータ制御部、符号113は記憶部、符号114は温度検出素子、符号115は報知部、符号120は被駆動部である。ステッピングモータ100は、たとえば複写機などの自動原稿読取装置ADFの給紙搬送機構、キャリッジ走査機構、複写機などの各種搬送および駆動機構といった被駆動部120の駆動源として用いられる。システム制御部110は、モータドライバ111、モータ制御部112、記憶部113などを有し、上記装置全体を制御するものである。モータドライバ111は、ステッピングモータ100を駆動する。モータ制御部112は、ステッピングモータ100を駆動するモータドライバ111に対してモータ回転方向、励磁パターン、駆動周波数などの制御信号のやりとりを行う。記憶部113は、ステッピングモータ100の駆動電流値、最適時条件などを記憶する。温度検出素子114には、ステッピングモータ100の近傍に配置され、その駆動時の温度を検知することが可能な公知の温度検出素子を用いる。報知部115は、ステッピングモータ100が搭載される装置の表示部、あるいはサービスセンターなどの装置に通信接続され、後述する警告処理の動作を行うために用いられる。上記の各制御部は、CPU,ROM,RAM,タイマー,I/Oポートなどを有するマイクロコンピュータシステムにより構成されており、CPUがROMに記憶されている制御プログラムにしたがって後述する制御動作を実行する。図2は、この実施の形態にかかるステッピングモータ制御装置の機能構成例を示すブロック図である。この図2において、符号121は駆動電流設定部、符号122は出力制御部、符号123は駆動波形出力部、符号124は負荷検出部、符号125は脱調予兆判定部、符号126は脱調予兆フラグ発生部、符号127は駆動電流調整部、符号128はマージン設定部である。駆動電流設定部121は、ステッピングモータ100へ流す駆動電流を設定する。出力制御部122は、モータ制御部112から送られる回転方向や励磁パターン、駆動周波数などの指令情報を元に後述する駆動波形出力部123を制御する。駆動波形出力部123は、出力制御部122からの指令信号にしたがってステッピングモータ100を駆動する。負荷検出部124は、ステッピングモータ100の駆動波形をモニタし、ステッピングモータ100に掛かる負荷情報を検出する。脱調予兆判定部125は、負荷検出部124で検出して得られたステッピングモータ100の負荷情報が所定の閾値を超えたときに脱調しつつあるかどうかの予兆を判定する。脱調予兆フラグ判定部126は、脱調予兆判定部125にて脱調の予兆がありと判定された場合にフラグを発生させる。駆動電流調整部127は、負荷検出部124より負荷情報を取得し、その負荷情報にあったステッピングモータ100の駆動電流に適時調整する。マージン設定部128は、所定のトルクマージンを持たせるための、駆動電流調整部127による負荷フィードバック制御では補えないバラツキたとえば、急激な負荷変動などに対し、マージン値を設定する。また、駆動電流調整部127は、ステッピングモータ100へ流す駆動電流を設定する駆動電流設定部121にマージン設定部128のマージン値を付加した電流値へと駆動電流を調整する。記憶部113は、脱調予兆フラグ発生部126より発生した脱調予兆信号を受け、そのときの動作条件とマージンレベルを記憶する。駆動電流最適化制御部130は、マージン設定部128のマージン値を最適化する制御を行う。なお、最適化とは、駆動電流値を可変して負荷に必要な脱調しない最小電流値に設定制御する処理をいう。一般的に負荷トルクのバラツキや電圧変動、温度変動なども考慮し、十分なマージンをみて電流値を設定する必要がある。しかし、この実施の形態でのステッピングモータ制御装置ではその十分なマージンをみて設定電流値を決める必要はない。もし電流値が低くて十分なトルクが得られない場合でも、モータが脱調する前に脱調予兆判定部125で脱調の予兆が判定されると脱調予兆フラグが立ち、脱調予兆信号がモータ制御部112へ出力される。脱調予兆信号を受けたモータ制御部112はそのときの駆動条件のマージンレベルを記憶部113から読み取り、最適なマージン情報をマージン設定部128へ出力し、電流値を上げることによって低電力で脱調させることなくステッピングモータ100を駆動させることができる。つぎに、以上のように構成されたステッピングモータ制御装置の動作について説明する。図3は、ステッピングモータ制御装置の全体の制御動作を示すフローチャートである。この制御動作は、図2に示すステッピングモータ制御装置によって行われるものである。図3において、まず、モータ制御部112は、ステッピングモータ100を動作させる際、ステッピングモータ100の種類と動作条件に応じたマージンレベルを記憶部113より読み込むステップS11。つぎに動作させるモータの駆動電流設定部121へ励磁モードや駆動周波数や回転方向の情報を出力し、マージンレベルの情報をマージン設定部128へ出力するステップS12。ここでステッピングモータ100は設定された動作条件に応じて駆動を行うが、脱調予兆判定部125を介して駆動中に脱調予兆があるかどうかの確認を行い、脱調予兆がある場合はマージンレベルを上げマージン設定部128へその情報を出力するステップS13。図4は、脱調予兆を確認するための動作例1を示すフローチャートである。この制御動作は、図2に示すステッピングモータ制御装置によって行われるものである。図4において、まず、タイマーt1と脱調予兆信号をカウントする予兆カウントn1をクリアし、タイマーt1はクリア後にスタートするステップS21。続いて、脱調予兆があるか否かを判断するステップS22。ここで脱調予兆がある場合は判断Yes、予兆カウントn1のカウントを1とするステップS23。一方、脱調予兆がない場合は判断No、ステップS24に移行し、ある一定時間Tが経過するまで脱調予兆の有無を判断しカウントする。ステップS24において一定時間Tを過ぎていない場合判断No、ステップS22の動作に戻り、以降の動作を実行する。一方、ステップS24において一定時間Tを過ぎた場合は判断Yes、さらに、予兆カウントn1がある一定の脱調予兆回数Nを上回っているか否かを判断するステップS25。ここで予兆カウントn1がNを上回っていた場合判断Yes、モータ制御部112は記憶部113からそのときの駆動条件にあったマージンレベルを読み込み、そのマージンレベルを1とし、記憶部113へその1としたマージンレベルを書き込むステップS26。続いて、そのマージンレベルの情報をマージン設定部128へ出力するステップS27。一方、ステップS25において予兆カウントn1がNを上回っていない場合判断No、予兆カウントn1がある一定の脱調予兆回数N以下であった場合はマージン設定部128へマージンレベルを出力することなく終了する。ここでたとえば脱調予兆回数Nを0と設定している場合は、一定時間Tが経過するまで予兆カウントn1をカウントする意味がない。そこで、そのような場合は脱調予兆信号を割り込み処理として、マージンレベルを記憶部113からそのときの駆動条件にあったマージンレベルを読み込み、そのマージンレベルを1とし、記憶部113へその1としたマージンレベルを書き込む。つぎにそのマージンレベルの情報をマージン設定部128へ出力する。そうすることで処理の時間短縮が可能である。つぎにマージン設定部128におけるマージン値、すなわちステッピングモータ100を駆動する駆動電流にマージン電流を付加する設定方法について説明する。図5は、あるモータを駆動させたときに、時間の経過と共に変動する負荷と、モータ設定電流値を示すグラフである。なお、ここでは、ステッピングモータ100の設定電流値は一律で0.5Aという設定になっている。また、前述した図3の一定時間Tを簡単のため200msとして説明する。図5において、0~200msの間はステッピングモータ100はホールド状態を維持しているだけということもあり、脱調予兆信号は出力されなかった。これに対して200~400msの間は負荷が大きくなることから、設定電流値0.5Aのままでステッピングモータ100を駆動させたところ、脱調予兆信号が何回か出力されたため、マージンレベルが1に増加される。また、400~600msの間も同様に脱調予兆信号が何回か出力され、マージンレベルが1に増加される。600~1000msの間は脱調予兆信号が出力されずにマージンレベルの増加は行われなかった。このとき、たとえばマージンレベル1に対し駆動電流値が0.1Aに上昇する設定とすると、200ms~600msの間のマージン設定電流値は設定電流値0.5Aにマージン分が0.1Aに上昇され、0.6Aに設定される。この内容はマージンレベルが1に増加されたときに記憶部113に、そのときの駆動時の条件と一緒にマージンレベルとして記憶される。図6は、図5においてマージン設定電流値が設定されたときの状態1を示すグラフである。この図6に示すように、2回目にこのステッピングモータ100が駆動された場合、先にも説明したとおり200~400msの間は設定電流値の0.5Aにマージン分が0.1Aに上昇されるため0.6Aに設定される。しかし、0.6Aでモータを駆動させても、脱調予兆信号が何回か出力されたため、マージンレベルがさらに1に増加される。400~600msの間は0.6Aでステッピングモータ100を駆動させるとトルクがその分上がったため、2回目では脱調予兆が出力されずにマージンアップは行われなかった。図7は、図5においてマージン設定電流値が設定されたときの状態2を示すグラフである。この図7では、最終的に200~400msの間はマージンレベルが2、400~600msの間はマージンレベルが1となったときの様子が示されている。このとき、たとえば200ms毎に区切られた場所は駆動エリアとして駆動条件の1つのパラメータとしてマージンレベルを記憶するときの条件の1つなっている。そうすることで負荷が大きいところ、小さいところそれぞれに応じたマージンレベルの設定が可能となる。ただし、ここでは経過時間をそのまま駆動エリアとしているがこれはステッピングモータ100がホームポジション位置から駆動していることを前提としているのであって、そうでない場合には駆動エリアをステッピングモータ100へ入力するクロック数から算出し、それぞれのエリアを把握しておく必要がある。なお、上記例において駆動エリアの区切りは、200ms毎とする例について説明したが、本来はもっと細かい方がきめ細かく電流値を設定でき、より消費電流が低減できるので望ましい。また、エリア内の期間のある決められた時間をそのエリアの代表としてサンプリングし、それをそのエリアのマージン設定電流値とすればCPUの負荷を軽減することが可能である。マージン設定電流値は工場出荷段階で、その個々の機械に応じてマージンレベルをあらかじめ設定しその情報を記憶部113へ記憶する。そうすることで、装置は工場出荷時にその装置の負荷に応じたマージン設定電流値が設定されているので、その分、消費電流を低減することができる。このようにして工場から出荷された機械は実際にユーザーのところで使用されると、そのユーザーの使用条件や環境条件に応じて、都度マージンレベルが変更され脱調することなく駆動電流値を最適な状態を保ち続ける。たとえば、装置の使用される温度が低いところでは、ベルトのテンションが大きくなりモータの負荷がその分大きくなることが考えられる。また使用頻度が多いときや、長い期間使用したりしているお客様の場合は、時間の経過と共に少しずつモータの負荷が大きくなることが考えられる。このような場合でも少しずつマージンレベルを上げていくことで、その時々の負荷に応じて最適な駆動電流でモータを駆動させることができる。図8は、記憶部113へ保存するデータ例を示す図表である。この図8の[1]には、排紙モータを駆動エリアAで駆動周波数1000pps励磁モード2相励磁状態で駆動したときのマージンレベルが1であることが記録されている。このマージンレベルは値が大きいほど、マージン設定部128で設定されるマージンが大きくなる。たとえばマージンレベルが1の場合、マージン電流部128における設定電流値Aは設定値0.1なのに対し、マージンレベルが4の場合の設定電流値は設定値0.4となる。なお、ここで示した例はあくまでも一例であってモータによってたとえば設定値×マージンレベルとして使用することも考えられる。ところで、本例では、使用されているステッピングモータ100それぞれの駆動エリア、駆動周波数と励磁モードのみを条件として記憶しているが、温度検出素子114図1参照などを設け、ステッピングモータ100を駆動したときの温度条件も考慮した制御を行ってもよい。図9は、脱調予兆を確認するための動作例2を示すフローチャートである。この制御動作は、図2に示すステッピングモータ制御装置によって行われるものである。図9において、まず、タイマーt1と脱調予兆信号をカウントする予兆カウントn1をクリアし、タイマーt1はクリア後にスタートするステップS31。続いて、脱調予兆があるか否かを判断するステップS32。ここで脱調予兆がある場合は判断Yes、予兆カウントn1のカウントを1とするステップS33。一方、脱調予兆がない場合は判断No、ある一定時間Tが経過するまで脱調予兆の有無を判断しカウントするステップS34。ここで一定時間Tを過ぎていなければ判断No、ステップS32に戻り、以降の動作を実行する。ステップS34において一定時間Tを過ぎた場合は判断Yes、n1の値がいくつであるかを判断するステップS35。予兆カウントn1の値に応じてマージンレベルを、予兆カウンn1=1、n1=2、n1=3、n1≧4それぞれについて設定するステップS36、S37、S38、S39。そして、ここで設定されたマージンレベルをマージン設定部128に出力するステップS40。一方、ステップS35において予兆カウントn1が0だった場合はマージン設定部128へマージンレベルを出力することなく終了する。すなわち、たとえば予兆カウントn1が3の場合は、モータ制御部112は記憶部113からそのときの駆動条件にあったマージンレベルを読み込み、そのマージンレベルを3として記憶部113へその3としたマージンレベルを書き込む。つぎにそのマージンレベルの情報をマージン設定部128へ出力する。このフローチャートでは予兆カウントn1の値が4以上の場合はマージンレベルを4とする記載となっているが、これはあくまで一例であって予兆カウントn1が5だった場合はマージンレベルを5とする制御でもよい。図10は、脱調予兆を確認するための動作例3を示すフローチャートである。この制御動作は、図2に示すステッピングモータ制御装置によって行われるものである。図10において、まず、タイマーt1とタイマーt2と予兆カウントn1をクリアし、タイマーt1、t2はクリア後にスタートするステップS41。続いて、脱調予兆があるか否かを判断するステップS42。ここで脱調予兆がない場合は判断No、ある一定時間T1が経過するまで脱調予兆の有無を確認するステップS47。一方、脱調予兆がある場合は判断Yes、予兆カウントn1のカウントを1としステップS43、さらに予兆カウント:n1>一定の脱調予兆回数:Nであるか否かを判断するステップS44。ステップS44において予兆カウント:n1<一定の脱調予兆回数:Nでない場合は判断No、脱調予兆信号の出力間の時間をカウントするt2の値がある一定時間T2を過ぎているか否かの確認を行うステップS48。ここで先のステップS44で予兆カウント:n1>一定の脱調予兆回数:Nである場合判断Yesや、t2<T2で脱調予兆信号が検出される間隔が短く、脱調が比較的発生しやすい状態であると判断された場合は判断Yes、モータ制御部112は記憶部113からそのときの駆動条件にあったマージンレベルを読み込み、そのマージンレベルを1とし、記憶部113へその1としたマージンレベルを書き込むステップS45。さらそのマージンレベルの情報をマージン設定部128へ出力するステップS46。ステップS48においてt2≧T2の場合は判断No、脱調予兆信号が出力される間隔が長く、脱調はしないと判断しタイマーt2をクリアしステップS49、ステップS42に移行し、クリア後にタイマーt2をスタートし、再び次の脱調予兆信号を検出する動作に入る。ステップS47においてt1>T1であれば判断Yes、この動作を終了し、一方、t1<T1であれば判断No、ステップS42に戻り、以降の動作を実行する。図11は、脱調予兆を確認するための動作例4を示すフローチャートである。この制御動作は、図2に示すステッピングモータ制御装置によって行われるものである。この動作は前述した図4の動作に対してステップS57、S59を付加したものである。図11において、まず、図4のステップS21~S26と同様の動作を実行ステップS51~S56した後、その書き込んだマージンレベルが、マージンレベル≦M一定値であるか否かを判断するステップS57。ここでマージンレベル≦M一定値である場合判断Yes、そのマージンレベルがアップした情報をマージン設定部128へ出力するステップS58。一方、ステップS57において一定値Mより大きい場合は判断No、ステッピングモータ100のギアにゴミなどの不純物がつまっていたり、ステッピングモータ100がロック状態になっていることが原因でステッピングモータ100の負荷が異常に大きくなっていると判断し、報知部115へ該当するモータが異常である旨を出力してユーザーに修理が必要である旨を知らせるステップS59。このとき本装置は異常であるので、本装置は動作できない状態になっていることが望ましい。上記ステップS59における警告の報知は、報知部115が装置の表示部不図示に、たとえばサービス管理センターに連絡する必要がある旨の警告メッセージあるいはサービスマンコールを表すキーマークなどを表示出力することで行われる。また、報知部115がファクシミリ回線網、あるいは専用の通信回線などで繋がれている場合にはこれらの回線を用いて上記と同様な主旨の報知処理を実行することでもよい。したがって、上述した実施の形態にかかるステッピングモータ制御装置によれば、ステッピングモータ100へ流す電流や励磁状態等を設定する駆動電流設定部121と、ステッピングモータ100の駆動波形からステッピングモータ100の負荷を検出する負荷検出部124と、負荷検出部124によって算出された負荷がある閾値を超えた際に脱調の予兆があると判断する脱調予兆判定部125と、脱調予兆判定部125が脱調の予兆を検知したときに出力する脱調予兆信号の情報をもとに駆動電流のマージン設定を行う駆動電流最適化制御部130を有する構成とすることで、ステッピングモータ100の負荷を常時モニタし、脱調予兆信号を元にその時々の負荷に対して最適な駆動電流を設定しているため、ステッピングモータ100を脱調させることなく消費電力の低減を図ることができる。また、上記構成のステッピングモータ制御装置は、ある一定時間の脱調予兆信号の数をカウントし、そのカウント数の値に応じてマージンレベルを上げる値を決定するので、最適化に要するダウンタイムを低減できる。すなわち、ステッピングモータ100の駆動電流のマージン設定を行うのに要するダウンタイムをさらに低減することができる。また、上記構成のステッピングモータ制御装置は、脱調予兆信号の出力がある一定時間内に再度発生した場合は、脱調が比較的発生しやすい状態であると判断し、即座にマージンレベルを上げるため、突然の負荷変動に対しても対応することができる。また、上記構成のステッピングモータ制御装置は、マージンレベルがある一定値を超えた場合にはモータ制御部112より報知部115へその旨の通知を出し、異常であることをユーザーに知らせるので、装置が危険な状態になる前にユーザー、サービスマンへすばやく知らせることができ、その後の迅速な処置が可能となる。"