(57)【特許請求の範囲】
【請求項１】
電子コミュテーション式モータ（３２）の少なくとも１つの駆動データ値を不揮発性に記憶するための方法であって、
前記電子コミュテーション式モータは、そのコミュテーションを制御するマイクロプロセッサまたはマイクロコントローラ（２３）（以下マイクロプロセッサと称する）と、マイクロプロセッサ（２３）に配属された不揮発性メモリ（７４）とを有する形式の方法において、
電子コミュテーション式モータ（３２）をスイッチオンする際、古い駆動データ値を、マイクロプロセッサ（２３）に配属された不揮発性メモリ（７４）から、マイクロプロセッサ（２３）に配属された揮発性メモリ（９７）に伝送し、そこに変数として記憶し、
該変数の値をマイクロプロセッサ（２３）により電子コミュテーション式モータ（３２）がスイッチオンされている間の所定の時点で更新し、
電子コミュテーション式モータ（３２）がスイッチオンされている間に一定の時間間隔をおいて、マイクロプロセッサ（２３）に配属された不揮発性メモリ（７４）に記憶された駆動データ値を、前記変数の更新された値により置換する、
ことを特徴とする方法。
【請求項２】
前記所定の時点は、コミュテーション過程間の時間領域にある、請求項１記載の方法。
【請求項３】
マイクロプロセッサ（２３）のリセット後に、古い駆動データ値をマイクロプロセッサ（２３）に配属された不揮発性メモリ（７４）から、マイクロプロセッサ（２３）に配属された揮発性メモリ（９７）に伝送し、そこに変数として記憶する、請求項１または２記載の方法。
【請求項４】
マイクロプロセッサ（２３）のリセット過程の際に、変数の更新値を古い駆動データ値として、マイクロプロセッサ（２３）に配属された不揮発性メモリ（７４）に伝送する、請求項１から３までのいずれか１項記載の方法。
【請求項５】
マイクロプロセッサ（２３）に配属された不揮発性メモリ（７４）に記憶された駆動データ値はデータ接続路（８２）を介して問い合わせ可能である、請求項１から４までのいずれか１項記載の方法。
【請求項６】
マイクロプロセッサ（２３）に配属された不揮発性メモリ（７４）に記憶された駆動データ値の問い合わせを、データ接続路（８２）を介してマイクロプロセッサ（２３）により制御する、請求項５記載の方法。
【請求項７】
電子コミュテーション式モータに温度センサ（１５２）を配属し、
該温度センサ（１５２）により検出された温度（Ｔ）の極値（ＯＤ＿ＴＭ）を駆動データ値（図８：ＯＤ＿ＴＭＡＸ）として、マイクロプロセッサ（２３）に配属された不揮発性メモリ（７４）に記憶する、請求項１から６までのいずれか１項記載の方法。
【請求項８】
電子コミュテーション式モータ（３２）はＡ／Ｄ変換器を有し、
該Ａ／Ｄ変換器によりアナログの駆動電圧（ＵＢ）がデジタル値に変換され、
当該Ａ／Ｄ変換器により変換された駆動電圧（ＵＢ）の上側極値（ＯＤ＿ＵＢＭ）を駆動データ値（図８：ＯＤ＿ＵＢＭＡＸ）として、マイクロプロセッサ（２３）に配属された不揮発性メモリ（７４）に記憶する、請求項１から７までのいずれか１項記載の方法。
【請求項９】
コミュテーションの数に相応する値（ＯＤ＿ＣＯＭＭ）を駆動データ値（図８：ＯＤ＿ＣＯＭＭＵＴ）として、マイクロプロセッサ（２３）に配属された不揮発性メモリ（７４）に記憶する、請求項１から８までのいずれか１項記載の方法。
【請求項１０】
電子コミュテーション式モータ（３２）の駆動持続時間（ＯＤ＿ＯＨ）を、駆動時間カウンタの形式に従って駆動データ値（図８：ＯＤ＿ＯＨＯ）として、マイクロプロセッサ（２３）に配属された不揮発性メモリ（７４）に記憶する、請求項１から９までのいずれか１項記載の方法。
【請求項１１】
電子コミュテーション式モータ（３２）のスタート時に複数の駆動データ値を、マイクロプロセッサ（２３）に配属された不揮発性メモリ（７４）から、マイクロプロセッサ（２３）に配属された揮発性メモリ（ＲＡＭ９７）の所属の変数にロードし、次いでマイクロプロセッサ（２３）により更新する、請求項１から１０までのいずれか１項記載の方法。
【請求項１２】
電子コミュテーション式モータであって、
当該電子コミュテーション式モータのコミュテーションを制御するマイクロプロセッサまたはマイクロコントローラ（２３）（以下マイクロプロセッサと称する）；
マイクロプロセッサ（２３）に配属された揮発性メモリ（９７）；
マイクロプロセッサ（２３）に配属された不揮発性メモリ（７４）；及び
マイクロプロセッサ（２３）に配属され、電子コミュテーション式モータ（３２）の少なくとも１つの駆動データ値を不揮発性に記憶するためのプログラムであって、電子コミュテーション式モータ（３２）をスイッチオンする際、古い駆動データ値を、マイクロプロセッサ（２３）に配属された不揮発性メモリ（７４）から、マイクロプロセッサ（２３）に配属された揮発性メモリ（９７）に伝送し、そこで変数として記憶し；該変数の値をマイクロプロセッサ（２３）により電子コミュテーション式モータ（３２）がスイッチオンされている間の所定の時点で更新し；電子コミュテーション式モータ（３２）がスイッチオンされている間に一定の時間間隔をおいて、マイクロプロセッサ（２３）に配属された不揮発性メモリ（７４）に記憶された駆動データ値を、前記変数の更新された値により置換するプログラム
を含む電子コミュテーション式モータ。
【請求項１３】
データ収集線路（８２）が設けられており、
該データ収集線路を介して、マイクロプロセッサ（２３）に配属された不揮発性メモリ（７４）に記憶されたデータへのアクセスおよび／またはデータの当該マイクロプロセッサ（２３）に配属された不揮発性メモリ（７４）への記憶が可能である、請求項１２記載の電子コミュテーション式モータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電気モータの少なくとも１つの駆動データ値を不揮発性に記憶するための方法に関し、この電気モータはそのコミュテーションを制御するマイクロプロセッサまたはマイクロコントローラ、以下マイクロプロセッサと称する、と不揮発性メモリとを有する。本発明はさらに、この方法を実施するためのモータに関する。
【０００２】
【発明の課題】
本発明の課題は、冒頭に述べた形式の方法および相応の電気モータを提供することである。
【０００３】
【発明による課題の解決手段】
この課題は請求項１に記載の方法により解決される。すなわち、本発明は、電気モータの少なくとも１つの駆動データ値を不揮発性に記憶するための方法であって、前記電気モータは、そのコミュテーションを制御するマイクロプロセッサまたはマイクロコントローラ（以下マイクロプロセッサと称する）と、不揮発性メモリとを有する形式の方法において、モータをスイッチオンする際、古い駆動データ値を不揮発性メモリから、マイクロプロセッサに配属された揮発性メモリに伝送し、そこに変数として記憶し、該変数をマイクロプロセッサにより所定の時点で更新し、時間間隔をおいて、不揮発性メモリに記憶された駆動データ値を、前記変数の更新された値により置換する、ことを特徴とする。
かくて、コミュテーションを行うマイクロプロセッサにさらなる有益な過程、すなわち少なくとも１つの駆動変数（ないし運転変数）の更新を行わせ、この変数を相応の時間的間隔をもってのみ不揮発性メモリに伝送すればよい。適切な時間間隔は例えば１時間の端数部分である。従って伝送は比較的稀に実行されれば良く、従って多くの計算時間を必要としない。それにもかかわらず、不揮発性メモリに記憶されているデータの良好な精度が得られる。なぜなら、電気モータは通常比較的長時間、中断なしで（継続的に）回転し、その際にその駆動（ないし運転）データはほとんど変化しないからである。
【０００４】
上記課題の別の有利な解決は請求項２の方法により得られる。少なくとも１つの駆動変数をコミュテーション過程とコミュテーション過程の間の時間領域で更新することによってマイクロプロセッサが最適に使用される。
【０００５】
前記課題の別の解決手段は請求項９の対象により得られる。即ち、コミュテーションの数に相当する値を駆動データ値として不揮発性メモリに記憶する。
【０００６】
【発明の実施の形態】
本発明のさらなる詳細および有利な展開形態は、以下の説明および図面に示された、本発明の限定として理解すべきではない実施例、並びに従属請求項から得られる。なお、特許請求の範囲に付した図面参照符号は専ら発明の理解を助けるためのものに過ぎず、本発明を図示の態様に限定することは意図していない。
ここに、本発明の好ましい実施の形態を示す：
・  本発明の第１の視点により、電子コミュテーション式モータの少なくとも１つの駆動データ値を不揮発性に記憶するための方法であって、
前記電子コミュテーション式モータは、そのコミュテーションを制御するマイクロプロセッサまたはマイクロコントローラ（以下マイクロプロセッサと称する）と、マイクロプロセッサに配属された不揮発性メモリとを有する形式の方法が提供される。この方法において、
電子コミュテーション式モータをスイッチオンする際、古い駆動データ値を、マイクロプロセッサに配属された不揮発性メモリから、マイクロプロセッサに配属された揮発性メモリに伝送し、そこに変数として記憶し、
該変数の値をマイクロプロセッサにより電子コミュテーション式モータがスイッチオンされている間の所定の時点で更新し、
電子コミュテーション式モータがスイッチオンされている間に一定の時間間隔をおいて、マイクロプロセッサに配属された不揮発性メモリに記憶された駆動データ値を、前記変数の更新された値により置換する、ことを特徴とする方法（形態１・基本構成１）。
・  上記の方法において、前記所定の時点は、コミュテーション過程間の時間領域にあることが好ましい（形態２）。
・  上記の方法において、マイクロプロセッサのリセット後に、古い駆動データ値をマイクロプロセッサに配属された不揮発性メモリから、マイクロプロセッサに配属された揮発性メモリに伝送し、そこに変数として記憶することが好ましい（形態３）。
・  上記の方法において、マイクロプロセッサのリセット過程の際に、変数の更新値を古い駆動データ値として、マイクロプロセッサに配属された不揮発性メモリに伝送することが好ましい（形態４）。
・  上記の方法において、マイクロプロセッサに配属された不揮発性メモリに記憶された駆動データ値はデータ接続路を介して問い合わせ可能であることが好ましい（形態５）。
・  上記の方法において、マイクロプロセッサに配属された不揮発性メモリに記憶された駆動データ値の問い合わせを、データ接続路を介してマイクロプロセッサにより制御することが好ましい（形態６）。
・  上記の方法において、電子コミュテーション式モータに温度センサを配属し、
該温度センサにより検出された温度の極値を駆動データ値として、マイクロプロセッサに配属された不揮発性メモリに記憶することが好ましい（形態７）。
・  上記の方法において、電子コミュテーション式モータはＡ／Ｄ変換器を有し、
該Ａ／Ｄ変換器によりアナログの駆動電圧がデジタル値に変換され、
当該Ａ／Ｄ変換器により変換された駆動電圧の上側極値を駆動データ値として、マイクロプロセッサに配属された不揮発性メモリに記憶することが好ましい（形態８）。
・  上記の方法において、コミュテーションの数に相応する値を駆動データ値として、マイクロプロセッサに配属された不揮発性メモリに記憶することが好ましい（形態９）。
・  上記の方法において、電子コミュテーション式モータの駆動持続時間を、駆動時間カウンタの形式に従って駆動データ値として、マイクロプロセッサに配属された不揮発性メモリに記憶することが好ましい（形態１０）。
・  上記の方法において、電子コミュテーション式モータのスタート時に複数の駆動データ値を、マイクロプロセッサに配属された不揮発性メモリから、マイクロプロセッサに配属された揮発性メモリの所属の変数にロードし、次いでマイクロプロセッサにより更新することが好ましい（形態１１）。
・  本発明の第２の視点において、電子コミュテーション式モータであって、
当該電子コミュテーション式モータのコミュテーションを制御するマイクロプロセッサまたはマイクロコントローラ（以下マイクロプロセッサと称する）；
マイクロプロセッサに配属された揮発性メモリ；
マイクロプロセッサに配属された不揮発性メモリ；及び
マイクロプロセッサに配属され、電子コミュテーション式モータの少なくとも１つの駆動データ値を不揮発性に記憶するためのプログラムであって、電子コミュテーション式モータをスイッチオンする際、古い駆動データ値を、マイクロプロセッサに配属された不揮発性メモリから、マイクロプロセッサに配属された揮発性メモリに伝送し、そこで変数として記憶し；該変数の値をマイクロプロセッサにより電子コミュテーション式モータがスイッチオンされている間の所定の時点で更新し；電子コミュテーション式モータ（３２）がスイッチオンされている間に一定の時間間隔をおいて、マイクロプロセッサに配属された不揮発性メモリに記憶された駆動データ値を、前記変数の更新された値により置換するプログラム
を含む電子コミュテーション式モータが提供される（形態１２・基本構成２）。
・  上記の電子コミュテーション式モータにおいて、データ収集線路が設けられており、該データ収集線路を介して、マイクロプロセッサに配属された不揮発性メモリに記憶されたデータへのアクセスおよび／またはデータの当該マイクロプロセッサに配属された不揮発性メモリへの記憶が可能であることが好ましい（形態１３）。
【０００７】
以下のフローチャートでＹ＝イエス、Ｎ＝ノーを意味する。同じ部材または同じ機能の部材には同じ参照符号が付してあり、通常は一度しか説明しない。
【０００８】
概要（図１）
図１は、電気モータ３２を備える本発明の装置の概略を示す。この電気モータは例えば図１に示すようにファンの駆動に用いる。電気モータ３２には駆動機能（ユニット）「ＡＦ」１５０，温度センサ１５２，駆動データ機能（ユニット）「ＢＤＦ」８９，エラー機能（ユニット）８５，アラーム機能（ユニット）「ＡＬＡＲＭ」８６，不揮発性メモリ７４（例えばＥＥＰＲＯＭ）、バス８２，バス端子８０，およびアラーム出力ＡＬＡＲＭ＿ＯＵＴ８８が配属されている。
【０００９】
温度センサ１５２は、モータ３２またはその近傍の温度Ｔを測定するのに用いられ、場合によりこの温度Ｔに依存して種々の過程を制御する。これは例えば温度に依存するモータ３２の回転数ｎ＿ｓを設定すること、またはこの温度が過度に高くなるときにアラーム信号を発すること、またはこの温度の最高値を記憶することである。
【００１０】
駆動機能「ＡＦ」１５０により、電気モータ３２を所望の方向および所望の回転数ｎ＿ｓで回転させる。このために駆動機能「ＡＦ」１５０は接続１５０Ａを介して電気モータ３２と接続されている。駆動機能は例えば電子コミュテーション式モータ（ＥＣＭ）の転流制御部として構成することができる。
【００１１】
駆動機能１５０はバス８２と接続されており、このバスは双方向性に構成されている。このバス８２は端子（インタフェース）８０を有し、この端子には例えばパーソナルコンピュータＰＣ８１を接続することができる。バス８２を介して駆動機能「ＡＦ」１５０，駆動データ機能「ＢＤＦ」８９，エラー機能８５およびアラーム機能「ＡＬＡＲＭ」８６を例えばＰＣ８１から、またはその他の入力機器からコンフィギュレートすることができる。しかしこれら機能およびＥＥＰＲＯＭ７４のデータをバス８２に書き込み、バスを介して例えば外部ＰＣ８１または他のモータに伝送することもできる。これは例えば、モータ３２の駆動時間の数、または発生したエラーについての情報、極端な温度、過度に高い駆動電圧等である。
【００１２】
電気モータ３２は接続１５４を介して駆動データを駆動データ機能「ＢＤＦ」８９に出力する。この駆動データ機能は駆動データを、接続１６０を介して不揮発性メモリ７４に記憶することができ（ＳＡＶＥ＿ＤＡＴＡ）、またはバス８２に書き込むことができる（ＷＲＩＴＥＢＵＳ）。これによりこれらのデータをバス端子８０を介してＰＣ８１により読み出すことができる。
【００１３】
電気モータ３２におけるエラーは接続１５６を介してエラー機能８５に通知される。後者はエラーの発生時に、駆動機能「ＡＦ」１５０に至る接続１６２を介して目標回転数ｎ＿ｓを変更することができ（ＳＥＴｎ＿ｓ）、接続１６６を介してエラーおよび瞬時駆動（運転）データ（このデータは接続１６４を介して駆動データ機能「ＢＤＦ」８９から得られる）についてのデータを不揮発性メモリ７４に書き込みことができ（ＳＡＶＥ＿ＤＡＴＡ）、バス８２を介してエラーおよび瞬時駆動データについてのデータを出力するか（ＷＲＩＴＥＢＵＳ）、または接続１６８を介してアラームをアラーム機能８６で発することができる（ＡＬＡＲＭ）。
【００１４】
アラーム機能８６は信号を、接続１６８を介してエラー機能８５から受け取るか、または接続１５８を介して信号を直接モータ３２から受け取る。アラーム機能は接続１７０を介して、アラームおよび瞬時駆動データについてのデータを不揮発性メモリ７４（ＳＡＶＥＤＡＴＡ）に書き込むことができ、および／またはアラーム機能はこれらデータをバス８２（ＷＲＩＴＥＢＵＳ）に書き込み、および／または信号を線路ＡＬＡＲＭ＿ＯＵＴ８８を介して出力する（ＷＲＩＴＥＡＬＡＲＭ＿ＯＵＴ）。
【００１５】
不揮発性メモリ７４はデータを含むことができる。このデータは機能８９，８５，８６によって記憶されていたものであり、これらにより再び読み出すことができ、また例えば問い合わせの際にバス８２を介して出力することができる。さらに不揮発性メモリ７４は各機能（ユニット）１５０，８９，８５，８６に対するコンフィギュレーションパラメータを含むことができる。
【００１６】
バス８２にはクロック（ユニット）ＣＬＫ１４９が接続されている。このクロックはバッテリー１４８を介してバッファされ、従って常時活動する。Ｉ２Ｃバス８２に対しては例えば次の形式が適する：ＰＣＦ８５６３，ＰＣＦ８５７３またはＰＣＦ８５８３。クロック１４９によってＥＥＰＲＯＭ７４に、エラーが発生した時計時間を場合により日付と共に記憶することができる。
【００１７】
【実施例】
以下図１の有利な装置の構造と、ここで使用されるプログラムについて説明する。
【００１８】
モータの概略（図２）
図２は、本発明の電子コミュテーション式モータ（ＥＣＭ）の有利な実施例の概略を示す。このモータはマイクロコントローラ（μＣ）２３により制御されるか、または択一的にマイクロプロセッサにより制御される。μＣ２３はＡ／Ｄ変換器６０，特性曲線関数６８，機能「ＲＧＬ」（制御機能）７０，機能「ＣＴＲＬ」（モータ電流監視）７１，機能「ＣＴＲＬＥＥＰＲＯＭ」７２，機能「ＣＯＭＭ」（通信機能）７８，機能「ＦＥＨＬＥＲ」（エラー機能）８５，機能「ＡＬＲＡＭ」（アラーム機能）８６，機能「ＢＤＦ」（駆動データ機能）８９および機能「ＡＦ」（駆動機能）１５０を含む。（「機能」は「機能ユニット」を表す。）
【００１９】
抵抗５２が接続点５６とアース（ＧＮＤ）との間の接続されており、抵抗５４が駆動電圧ＵＢと接続点５６との間に接続されている。接続点５６はＡ／Ｄ変換器６０の入力端５７と接続されている。この装置は、駆動電圧ＵＢに相応する値をデジタル化するのに用いられる。
【００２０】
ＮＴＣ抵抗（温度センサ１５２中の）が接続点６６とアース（ＧＮＤ）との間に、抵抗６４が被制御電圧Ｖｃｃ（例えば＋５Ｖ）と接続点６６との間に接続されている。接続点６６はＡ／Ｄ変換器６０の入力端６７と接続されている。この装置は、ＮＴＣ抵抗６２により検出された温度をデジタル化するのに用いられる。
【００２１】
ＥＥＰＲＯＭ７４はバス７６を介して機能「ＣＴＲＬＥＥＰＲＯＭ」７２と接続されている。ＥＥＰＲＯＭ７４の代わりに例えばフラッシュＲＯＭ、後プログラミング可能なＦｌｅｘＲＯＭセル、または他の不揮発性メモリを使用することができる。ＥＥＰＲＯＭ７４は場合によりμＣ２３に集積することができる。
【００２２】
バス端子８０はバス８２を介して通信機能ＣＯＭＭ７８と接続されている。この通信機能は接続８４を介して機能「ＣＴＲＬＥＥＰＲＯＭ」７２と、さらにμＣ２３の他の機能素子と接続されている。
【００２３】
機能「ＡＬＡＲＭ」８６は信号を出力端ＡＬＡＲＡＭ＿ＯＵＴ８８に出力することができる。
【００２４】
機能「ＲＧＬ」７０はこの実施例では例えばパルス幅変調発生器（ＰＷＭ発生器）１００と接続されている。このＰＷＭ発生器は制御電圧形成部１０４，三角波発生器１０６およびコンパレータ１０２を有し、その動作については図３で詳細に説明する。ＰＷＭ発生器１００の出力端１０７を介して信号ＰＷＭが論理積（ＡＮＤ）素子１０８，１１０に達する。信号ＰＷＭのパルス１０７Ａの幅は可変である。
【００２５】
簡単な実施例として図２には、単相（巻線相）１２８を有する電子コミュテーション式モータ３２が示されている。このような簡単なモータの原理は例えばドイツ特許ＤＥ２３４６３８０Ｃに説明されている。モータ３２は永久磁石ロータ１３０，ホールセンサ１３２および出力段（回路ユニット）１１２を有する。
【００２６】
出力段１１２はＨブリッジとして接続された４つのｎｐｎトランジスタ１１４，１１６，１１８，１２０と、低オーム抵抗の抵抗１２４を電流測定のために有する。
【００２７】
電流制限部「Ｉ＜Ｉｍａｘ」１２５は、抵抗１２４で測定されたモータ電流Ｉの値に相応する電圧を受け取り、モータ電流Ｉが過度に高いときに制御電圧形成部１０４を制御して、この電流を低減させる。さらに電流制限部１２５は、μＣ２３の機能「ＣＴＲＬ」（モータ電流監視）７１に接続されている。
【００２８】
ホールセンサ１３２の信号は評価回路１３４に供給される。この評価回路は例えばコンパレータの形式のローパスフィルタを含んでおり、さらに図４に示す信号ＨＡＬＬを形成する。この信号ＨＡＬＬは機能「ＡＦ」１５０に供給される。後者は２つの出力端ＯＵＴ１，ＯＵＴ２を制御し、これら出力端は上側トランジスタ１１４，１１６、ないしはアンド素子１０８，１１０を介して下側トランジスタ１１８，１２０を制御する。
【００２９】
マイクロプロセッサμＣ２３はさらにＲＯＭ９６，ＲＡＭ９７，およびタイマ９８を有する。タイマ９８はＴＩＭＥＲφとしても示されている。ＲＯＭ９６は通常のようにμＣ２３の製造と共にプログラミングされる。これはμＣ２３の外に配置することもでき、ＲＡＭ９７およびタイマ９８も同様に当業者には周知である。
【００３０】
作用（作動形態）
巻線相１２８の通電はトランジスタ出力段１１２により行われる。出力端ＯＵＴ１，ＯＵＴ２は、Ｈブリッジ１１２として接続されたトランジスタ１１４，１１６，１１８，１２０を制御する。ＯＵＴ１がＨＩＧＨであり、ＯＵＴ２がＬＯＷであるとき、トランジスタ１１４と１１８が導通し、電流がバッテリー電圧＋ＵＢからトランジスタ１１４，固定子巻線１２８，トランジスタ１１８および抵抗１２４を介してアースＧＮＤへ流れる。ここでは信号ＰＷＭ（線路１０７）が常時ＨＩＧＨであることが前提である。何故ならそうでないと、ＡＮＤ素子１０８，１１０およびひいてはトランジスタ１１８，１２０が阻止されるからである。
【００３１】
ＯＵＴ１がＬＯＷであり、ＯＵＴ２がＨＩＧＨであれば、電流がＵＢからトランジスタ１１６を介して反対方向に固定子巻線１２８，トランジスタ１２０および抵抗１２４を介してアースＧＮＤへ流れる。
【００３２】
固定子巻線１２８により形成された交番磁束により永久磁石ロータ１３０に回転トルクが生じ、これを駆動する。ロータ１３０はこの実施例では４極で示されている。
【００３３】
ロータ１３０の位置はホールセンサ１３２により検出される。その信号は回路１３４でローパスフィルタによりろ波され、矩形のデジタル信号ＨＡＬＬ（図４）に処理され、この信号は機能「ＡＦ」１５０に供給される。
【００３４】
機能「ＡＦ」１５０は、信号ＨＡＬＬに基づいて出力端ＯＵＴ１，ＯＵＴ２を制御する。モータ３２の転流はこの例では電子的に行われ、後で図１３において説明する。機能「ＡＦ」１５０によって、正しい転流を介してモータ３２が例えばトランジスタ出力段１１２の過負荷の場合でも確実に駆動される。転流の実施は次のようにすることも可能である。すなわち回転数の上昇と共にトランジスタ１１４〜１２０がより早期に転流されるようにしても可能である。これはガソリン機関での早期点火の場合と同様である。
【００３５】
もちろん本発明は同じように、３相ＥＣＭおよび他のいずれの形式のモータにも適する。簡単な実施例は専ら本発明の理解を容易にするためである。
【００３６】
回転数制御はこの実施例では、信号ＰＷＭのデューティ比ＰＷＭ＿ＴＶを制御器１００の出力端１０７で制御することにより達成される。すなわちこのことにより、パルス１０７Ａの幅は比較的に長くまたは短くなる。デューティ比を定義するためには図３Ｃを参照されたい。このデューティ比が大きければ大きいほど、パルス１０７Ａの幅は長くなり、長ければ長いほど、ＯＵＴ１またはＯＵＴ２により瞬時に制御されるＡＮＤ素子１０８または１１０の出力端はより長くＨＩＧＨに接続される。従って固定子巻線１２８は比較的長く通電され、モータ３２は比較的に強く駆動される。例えばＯＵＴ１がＨＩＧＨであり、ＯＵＴ２がＬＯＷであれば、上側トランジスタ１１４が導通接続され、下側トランジスタ１１８が信号ＰＷＭに相応してＡＮＤ素子１０８を介して、スイッチオン・オフされる。
【００３７】
機能「ＲＧＬ」７０はこの実施例ではＰＷＭ発生器１００を介してモータ３２の回転数ｎを制御する。機能「ＲＧＬ」７０はこのためにロータ１３０の回転数ｎと目標回転数ｎ＿ｓを使用する。ロータの回転数は信号ＨＡＬＬを介して計算される（図４の説明参照）。目標回転数はこの実施例では特性曲線機能６８により決められる。回転数ｎとｎ＿ｓはここでは例えばホール時間ｔ＿Ｈ（図４）の形態で、例えば単位［μｓ］または［ｓ］で、または回転数として単位［回転／min］（U/min）で存在する。
【００３８】
特性曲線機能６８はこの実施例では各温度Ｔ（図１のセンサ１５２により検出される）に目標回転数ｎ＿ｓ（Ｔ）を割り当てる（対応して規定する）。温度ＴはＮＴＣ抵抗６２によって検出される。このＮＴＣ抵抗は抵抗６４と共に、Ｖｃｃとアースとの間の分圧器を形成する（図２参照）。接続点６６の電位は抵抗６２の温度に対する尺度である。この電位はＡ／Ｄ変換器６０（μＣ２３に存在する）によってデジタル化され、特性曲線機能６８に供給される。
【００３９】
特性曲線機能６８は温度Ｔからモータ３２の目標回転数ｎ＿ｓを決定する。このために例えば機能「ＣＴＲＬＥＥＰＲＯＭ」７２を介して、所定温度に対応する値ｎ＿ｓ（Ｔ）がＥＥＰＲＯＭ７４の温度目標回転数テーブルからロードされる。
【００４０】
機能「ＣＯＭＭ」はバス接続（インターフェース）８０を管理（制御）する。このバス接続を介してデータを外部からμＣ２３に通知し、またこれを介して反対にデータをμＣ２３から外部へ通知することができる。バス接続８０を介し機能「ＣＯＭＭ」７８によってμＣ２３にロードされるデータは、接続（ライン）８４と機能「ＣＴＲＬＥＥＰＲＯＭ」７２を介してＥＥＰＲＯＭ７４に書き込むことができる。
【００４１】
ＰＷＭ発生器（図３）
図３Ａは三角波発生器１０６の三角信号ｕ１０６と目標値ｕ１０４を示す。この目標値は制御電圧形成部１０４により形成される。図３Ｂは、図３Ａから生じたパルス１０７Ａ（の幅）を示す。図３Ｃはパルス１０７Ａのデューティ比ＰＷＭ＿ＴＶの計算を示す。
【００４２】
三角波発生器１０６からの三角信号ｕ１０６は理想的に示されている。実際には完全な三角波形ではないが、しかし図２のＰＷＭ発生器１００の作用に変化はない。三角信号ｕ１０６は電圧０Ｖからのオフセット１３９を有する。従って調整値ｕ１０４は、これがオフセット１３９より大きくなって初めてデューティ比ＰＷＭ＿ＴＶ＞０に作用する。
【００４３】
信号ＰＷＭのデューティ比ＰＷＭ＿ＴＶは、信号ＰＷＭが三角信号ｕ１０６の期間中にＨＩＧＨである持続時間ｔＯＮと、三角信号ｕ１０６の全持続期間Ｔとの比である。図３Ｂ参照。従って
ＰＷＭ＿ＴＶ＝ｔＯＮ／Ｔ                    （１）
が当てはまる。
【００４４】
デューティ比ＰＷＭ＿ＴＶは０から１００％の間とすることができる。モータ回転数が例えば過度に高めれば、調整値ｕ１０４が低下され、これによりデューティ比ＰＷＭ＿ＴＶが縮小される。これが図３Ａに示されている。全体がパルス幅変調（ＰＷＭ）として示されている。
【００４５】
もちろん本発明のモータ３２をパルス幅変調なしで駆動することもでき、例えば制御または他の形式の制御なしで駆動することができる。これは単に理解を容易にするための例である。
【００４６】
信号ＨＡＬＬ（図４）
図４は信号ＨＡＬＬを示す。この信号はホールセンサ１３２（図１）により検出されたロータ１３０の位置に相応し、μＣ２３に回路１３４（図２）を介して供給される。
【００４７】
ロータ１３０は例としてｎ＝６０００回転／minの回転数を有することができ、１００回転／ｓに相応する。ロータ１３０の機械的回転は約１０ｍｓ持続する。ロータ１３０はこの実施例では４極で示されており、１つの機械的回転（３６０゜mech）で４つの半波変化が生じる。すなわちＨＩＧＨからＬＯＷへが２回と、ＬＯＷからＨＩＧＨへが２回である。これに対して電気的回転（３６０゜el）はすでに２つの半波変化後に実行される。従って４極モータでは、１回の機械的回転で２回の電気的回転が生じる。
【００４８】
回転数ｎは２つの半波変化間のホール時間ｔ＿Ｈ（図４）から計算される。ここでは、
ｔ＿Ｈ＝Ｔ／Ｐ                    （２）
が当てはまる。さらに
Ｔ＝（６０ｓ）／ｎ                （３）
が当てはまれば、式（２）と（３）から
ｔ＿Ｈ＝（（６０ｓ）／ｎ）／Ｐ        （４）
である。ここで
Ｔ＝ロータ１３０の機械的回転の持続時間（単位秒）
Ｐ＝ロータの極数（ここではＰ＝４）
ｎ＝回転／minでの回転数である。
【００４９】
ｎ＝６０００回転／minとＰ＝４であれば式（４）から、
ｔ＿Ｈ＝６０ｓ／６０００／４＝２．５ｍｓ
が得られる。
【００５０】
従って回転数が６０００回転／minの場合、信号ＨＡＬＬの変化間の時間間隔ｔ＿Ｈは２．５ｍｓであり、これが図４に例として示されている。
【００５１】
エラー機能およびアラーム機能についての概略（図５）
図５は、図１のモータ３２に対するプログラミング技術的観点からの、エラー機能８５と機能「ＡＬＡＲＭ」８６との共働作用の概略を示す。
【００５２】
最上位列には機能「センサ故障コントロール」９１，「バスエラーコントロール」９２，「温度コントロール」９４および「回転数コントロール」９５が示されている。９３は図示されていない任意の別のコントロールに対するものである。
【００５３】
コントロールは、プログラミング技術的に見て、それぞれの測定が行われる個所に配置される。従って例えばＡ／Ｄ変換器６０の問い合わせの際には「センサ故障コントロール」９１の値に基づいて、ＮＴＣ抵抗６２（図１）の「センサ故障」が存在するか否かが検査される。以下図１６のＳ２２６参照。このことは図２でＮＴＣ抵抗６２への接続が個所６２ａおよび／または６２ｂで中断されていること、すなわち線路が破壊（破断）されていることを意味する。この場合、「センサ故障コントロール」９１はエラーを通報する。すなわちエラー信号を形成する。このエラー信号は引き続き「エラー機能」８５（図２３）により認知され、この「エラー機能」が次に何をすべきか決定する。従って「エラー機能」は例えば目標回転数ｎ＿ｓを最大値にセットしたり、アラームをアラーム機能８６で要求したりすることができる。このことは以下、図２３で詳細に説明するが、ＥＥＰＲＯＭ７４に記憶されており、変更可能であるパラメータに依存して行われる。
【００５４】
「温度コントロール」９４及び「回転数コントロール」９５は特別位置を取る。温度と回転数はファンの機能性に対して重要であるから、所定の温度を上回ること、ないしは回転数の過度に大きな偏差は直接「アラーム機能」８６にさらに伝送される。
【００５５】
これに対して他のエラー、例えばＮＴＣ抵抗６２のセンサ故障は、ファンの満足のいく動作を除外しないから、エラー機能８５（図２３）を介して処理することができる。エラー機能８５は顧客の希望に応じてパラメータ化することができる。これについては後で説明する。
【００５６】
機能マネージャ（図６と図７）
図６は、μＣ２３で実行されるメインプログラムの可能な実施形態をいわゆる機能マネージャ６０１の形態のフローチャートで示す。
【００５７】
メインプログラムはイベント、すなわち例えば信号ＨＡＬＬの変化に応答するというタスクを有し、さらに各機能において必要な場合にはリソース、とりわけ計算時間を提供し、リソースの授与の際には優先度に注意するというタスクを有する。
【００５８】
モータ３２のスイッチオン後、μＣ２３で内部リセットがトリガされ、Ｓ６００でμＣ２３の初期化が行われる。ここでデータがＥＥＰＲＯＭ７４からμＣ２３のＲＡＭ９７にロードされ、これによりデータをプログラム実行のために迅速に使用することができる。以下に説明するようなメモリテストも行われる。
【００５９】
初期化後に機能マネージャ６０１へジャンプする。この機能マネージャはＳ６０２でスタートする。まず最初に時間的にクリティカルであり、各実行の際に処理しなければならない機能が処理される。これには、Ｄ６０４での機能「ＣＯＭＭ」（図２４参照）、Ｓ６０６での「Ａ／Ｄ」（図１６参照）、Ｓ６０８での「Ｉ＿ｍａｘ」およびＳ６１０での「ＲＧＬ」が含まれる。
【００６０】
機能「ＣＯＭＭ」（Ｓ６０４）では通信がバス８２（図１）を介して監視される。ボー速度（レート）が例えば２ｋの場合には、バス８２を２５０μｓごとに検査しなければならない。
【００６１】
Ｓ６０６でＡ／Ｄ変換器６０（図２）が問い合わされる。このＡ／Ｄ変換器は入力端５７，６７における電位をデジタル化する。さらなるＡ／Ｄ変換器をさらなる電位のデジタル化のために設けることもできる。
【００６２】
Ｓ６０８で場合により存在するモータ電流制限ルーチン「Ｉ＿ｍａｘ」が実行される。
【００６３】
回転数ｎを制御するための機能「ＲＧＬ」はＳ６１０で呼び出される。
【００６４】
図７は、例としての機能レジスタ６０５を示す。この機能レジスタには、Ｓ６２２，Ｓ６２６，Ｓ６３０，Ｓ６３４およびＳ６３８（図６）での機能の各々に対して１ビットがリザーブされている。
【００６５】
この実施例では機能レジスタ６０５は１バイトの大きさであり、このバイトは最下位ビット（ＬＳＢ）から始まって次の要求ビットを下に説明する要求可能機能に対して定義する。
・ＦＣＴ＿ＫＬ            特性曲線機能に対して
・ＦＣＴ＿ｎ              回転数領域機能に対して
・ＦＣＴ＿ＡＬ＿ｎ        アラーム回転数コントロールに対して
・ＦＣＴ＿ＤＩＳＴ        エラー識別に対して
・ＦＣＴ＿ＢＤＦ          駆動データ機能に対して
残りのビットは付加的に要求可能な機能に対してリザーブされており、これらの機能は必要な場合に機能マネージャに挿入することができる。
【００６６】
図６と図７で所定の要求可能機能が他の機能または割込ルーチンによって要求される場合には、要求すべき機能のビットが機能レジスタで１にセットされる。例えばＦＣＴ＿ＡＬ＿ｎ：＝１にセットされる。次に機能マネージャ６０１（図６）が、この要求に続く実行の際に、優先度の高い他の要求可能機能を発見しなければ、前記の機能がＳ６３０で呼び出される。すなわちアラーム回転数コントロールが呼び出される。
【００６７】
要求された機能が処理されると、その機能はそのビットは機能レジスタ６０５（図７）で再び０にセットする。例えばＦＣＴ＿ＡＬ＿ｎ：＝０がＳ６３０の終了時に実行される。
【００６８】
要求可能な機能が実行された後、再びＳ６０２に続いて機能マネージャ６０１の開始「ＦＣＴ＿ＭＡＮ」にジャンプする。
【００６９】
図６ではＳ６１０に続いて所定の順序で、すなわち最重要の要求可能機能から始まって、これらの要求ビットがセットされているか否かが検査される。セットされている場合には、要求された機能が実行される。このような機能が機能マネージャ６０１で上にあればあるほどその優先度は高い。
【００７０】
Ｓ６２０で、要求ビットＦＣＴ＿ＫＬがセットされているか否かが検査される。セットされていれば、特性曲線機能がＳ６２２で呼び出される。
【００７１】
Ｓ６２４でＦＣＴ＿ｎがセットされていれば、回転数計算機能がＳ６２６で呼び出される。
【００７２】
Ｓ６２８でＦＣＴ＿ＡＬ＿ｎがセットされていれば、アラーム回転数コントロールがＳ６３０で呼び出される。
【００７３】
Ｓ６３２でＦＣＴ＿ＤＩＳＴがセットされていれば、エラー識別がＳ６３４で呼び出される。これは図１７で説明する。
【００７４】
Ｓ６２６でＦＣＴ＿ＢＤＦがセットされていれば、駆動データ機能がＳ６３８で呼び出される。これは図１５で説明する。
【００７５】
機能レジスタ６０５の要求ビットがいずれもセットされていなければ、エラー機能がＳ６４０で、またアラーム機能がＳ６４２で実行され、Ｓ６０２へリターンジャンプする。エラー機能Ｓ６４０については図２３を参照されたい。この機能はエラー監視ルーチンとも称することができる。なぜならこの機能は、他のルーチンの１つがエラーを通報したか否かを監視し、このエラーに対する応答に作用するからである。
【００７６】
図６はまたホール割込６１（図１３）を象徴的に示す。このホール割込は最高の優先度Ｌ１（レベル１）を有する。このホール割込は機能マネージャ６０１の全てのプロセスを、モータ３２の精確な転流を得るために中断する（矢印６１３により示されている）。ホール割込６１１は、図４で信号ＨＡＬＬが変化するときには常に形成され、これにより転流カウンタＣＮＴ＿ＣＯＭがカウントアップされる。これについては図１３で説明する。さらにモータ３２の転流、すなわち信号ＯＵＴ１およびＯＵＴ２の形成は直接的または間接的にホール割込６１１により制御され、これによりモータの静粛な回転が得られる。同様に図１３参照。
【００７７】
ホール割込６１１の下には６１５に、タイマＴＩＭＥＲφ９８（図２）のＴＩＭＥＲφ割込が示されている。この割込は次に低い優先度Ｌ２を有し、矢印６１７により示したようにその下の全てのプロセスを中断する。これについては図１４で説明する。
【００７８】
ホール割込６１１とＴＩＭＥＲφ割込６１５が同時に要求される場合には、これらはその優先度の順序に従い処理されることになる。
【００７９】
以下の機能は常に比較的に低い優先度を、Ｓ６０４での機能「ＣＯＭＭ」Ｌ３からＳ６４２でのアラーム機能に対するＬ１３まで有する。
【００８０】
このようにして、モータ３２の種々の「必要性」（ないし要求）が所定の階層をもって配され、μＣ２３のリソースを最適にモータ３２の駆動に対して使用することができる。従ってエラー機能Ｓ６４０とアラーム機能Ｓ６４２は、μＣ２３がちょうど自由な計算時間を有する場合だけ実行される。
【００８１】
オブジェクトテーブル（図８）
図８は、モータ３２に対するコンフィギュレーションパラメータを含むオブジェクトのテーブル１１１を示す。個々のオブジェクトは、インデクス、メモリ形式（メモリタイプ）、アクセス権（アクセス）および名称を有する。
【００８２】
オブジェクトテーブル１１１は不揮発性メモリ、この実施例ではＥＥＰＲＯＭ７４（図１）に記憶される。μＣ２３の各リセットの後で、Ｓ６００（図６）での初期化の際にオブジェクトテーブル１１１がＥＥＰＲＯＭ７４から機能「ＣＴＲＬＥＥＰＲＯＭ」７２により、μＣ２３のＲＡＭ９７に伝送され、これに基づきμＣ２３でのプログラム実行（図６）に使用される。
【００８３】
テーブル１１１のインデクスは１６進で示されており、１６進数の前に０×が示されている。メモリ形式はunsigned8、すなわち符号ビットなしの１バイトであるか、またはunsigned16、すなわち符号ビットなしの２バイトであるか、またはunsigned24、すなわち符号ビットなしの３バイトである。アクセス権はＲ／Ｗ（Ｒ＝読み出し、Ｗ＝書き込み）である。オブジェクトを読み出し、変更することができる。オブジェクトの名称は使用を容易にするため用いられる。
【００８４】
意味するものは、
ＤＩＳＴ＿ＣＴＲＬ          エラー機能に対する制御語
ＤＩＳＴ＿ＳＴＡＴＥ        エラー機能に対する状態語
ＤＩＳＴ＿ＣＯＤＥ          エラー機能に対するエラーコード
ＤＩＳＴ＿ＲＥＡＣ          エラー機能に対する応答語
ｎ＿ＤＩＳＴ                エラー回転数
ｔ＿ＣＯＭＭ＿ＴＯ          通信機能に対する最大タイムアウト時間
ＯＤ＿ＴＭＡＸ              駆動データ機能に対する温度
ＯＤ＿ＵＢＭＡＸ            駆動データ機能に対する駆動電圧
ＯＤ＿ＯＨＯ                駆動データ機能に対する駆動時間（運転時間、例えば１０分単位）
ＯＤ＿ＣＯＭＭＵＴ          駆動データ機能に対する全転流数（例えば１００００単位）
である。
【００８５】
オブジェクトテーブル１１１のオープン構造によって、簡単に新たなオブジェクトを標準的方法を介して追加したり、テーブルを任意に拡張したりすることができる。オブジェクトテーブルおよびひいてはコンフィギュレーションの変更は有利にはバス８２、機能「ＣＯＭＭ」７８（図２）および機能「ＣＴＲＬＥＥＰＲＯＭ」７２を介して行われる。コンフィギュレーションは出荷前に顧客の希望に応じて行うか、または顧客が自分で変更を行う手段を得る。
【００８６】
オブジェクトテーブル１１１のオブジェクトの説明
ＤＩＳＴ＿ＣＴＲＬはエラー監視ルーチン８５に対する制御語である。これは図６と図２３にＳ６４０により示されている。その構造は図９および所属の説明から明かである。内容に応じてこの制御語は、エラーをＥＥＰＲＯＭ７４に記憶させるか、または記憶させない。ＤＩＳＴ＿ＣＴＲＬがＲＡＭ９７にロードされている場合には、これはＤＩ＿ＣＴＲＬとして示される。
【００８７】
ＤＩＳＴ＿ＳＴＡＴＥはエラー機能に対する状態語である。ＤＩＳＴ＿ＳＴＡＴＥがＲＡＭ９７にロードされている場合には、これはＤＩ＿ＳＴＡＴＥとして示される。ＤＩ＿ＳＴＡＴＥの構造は図１０および関連の説明から明かである。そのビット７はエラーが存在するか否かを指示し、そのビット０から２は発生したエラーの形式を粗く定義する。すなわち例えば転流時のエラーであるか、またはセンサ１５２でのエラーであるかを定義する。
【００８８】
ＤＩＳＴ＿ＣＯＤＥはエラー機能８５に対するエラーコードを含む。このエラーコードはエラーを正確に特定する。ＤＩＳＴ＿ＣＯＤＥがＲＡＭ９７にロードされている場合には、これはＤＩ＿ＣＯＤＥとして示される。その構造は図１１および所属の説明から明かである。例えば状態語ＤＩ＿ＳＴＡＴＥのエラークラスＤＳ＿ＣＯＭＭに対して、伝送エラーの形式に該当する４つの別個のエラーコードを設けることができる。
【００８９】
ＤＩＳＴ＿ＲＥＡＣはエラー機能８５に対する応答語であり、モータがエラーにどのように応答すべきであるか、例えば停止または制動または最大回転数により応答（対応）すべきことを指示する。ＤＩＳＴ＿ＲＥＡＣがＲＡＭ９７にロードされている場合には、これはＤＩ＿ＲＥＡＣとして示される。その構造は図１２および所属の説明から明かである。その評価は図２３から明かである。
【００９０】
ｎ＿ＤＩＳＴはエラー回転数である。これは、モータ３２がエラーの際に回転すべき固定の回転数である。図２３，Ｓ３７８とＳ３８０を参照されたい。
【００９１】
ｔ＿ＣＯＭＭ＿ＴＯは通信機能に対する最大タイムアウト時間である。これはバス８２上での伝送速度を定める。
【００９２】
ＯＤ＿ＴＭＡＸは、センサ１５２により測定された温度Ｔの極値である。この値は「最大温度計」と同じように機能するが、デジタルである。１０分おきに、瞬時温度が記憶された値ＯＤ＿ＴＭＡＸより高いか否かが検査され、高い場合には新たな比較的に高い値がＯＤ＿ＴＭＡＸとしてＥＥＰＲＯＭ７４に記憶される。これはエラーの分析にとって重要である。
【００９３】
ＯＤ＿ＵＢＭＡＸは、モータ３２の駆動電圧ＵＢの上側極値である。１０分おきに、瞬時の駆動電圧ＵＢが記憶された値ＯＤ＿ＵＢＭＡＸより高いか否かが検査され、高い場合には新たな比較的に高い値がＯＤ＿ＵＢＭＡＸとしてＥＥＰＲＯＭ７４に記憶される。これはエラーの分析にとって重要である。
【００９４】
ＯＤ＿ＯＨＯはモータ３２の全駆動時間であり、１０分単位で測定される。ＯＤ＿ＯＨＯ＝６０００は１０００駆動時間を意味する。
【００９５】
スイッチオン時にＯＤ＿ＯＨＯはＲＡＭ９７にロードされ、そこで図１４のルーチンにより継続的に更新される。常に１０分後に更新された値がＥＥＰＲＯＭ７４に他の値と共に書き込まれる。これについては図１５で説明する。
【００９６】
ＯＤ＿ＣＯＭＭＵＴはホール割込６１１（図４）の総数である。各ホール割込は転流を生じさせるから（図１３参照）、これはロータ１３０の回転総数に対する尺度である。
【００９７】
転流数は１００００単位で記憶される。従って値２０００００は、２０億の転流が生じたことを示す。４極ロータ１３０の場合、これは５億回転に相応し、３０００回転／minの定回転の際にこれは約２８００時間の駆動持続時間に相当する。この数字はモータ３２の支承部（軸受）の予想残留寿命についての情報を与える。
【００９８】
スイッチオン時にＯＤ＿ＣＯＭＭＵＴはＲＡＭ９７にロードされ、そこで図１３のルーチンにより継続的に更新される。各１０分後に、更新された値はＥＥＰＲＯＭ７４に他の値と共に書き込まれる。これについては図１５で説明する。
【００９９】
ＯＤ＿ＴＭＡＸ、ＯＤ＿ＵＢＭＡＸ、ＯＤ＿ＯＨＯおよびＯＤ＿ＣＯＭＭＵＴの瞬時値（ＲＡＭ９７にある）はエラーの発生時にＥＥＰＲＯＭ７４のＦＩＦＯに記憶される。図２２，Ｓ３４６，ｐｕｓｈ＿ＯＤ＿ＤＡＴＡ参照。
【０１００】
オブジェクトテーブル１１１（図８）はモータ３２の一種の経歴を含み、最初の４つのオブジェクトを変更することによって、モータ３２がエラーの際に応答するか否かおよびどのように応答するかと、記憶するか否かおよび何を記憶するか、どこにアラームを出力するか等を設定することができる。すなわち相応のパラメータを設定し、モータに入力することができる。
【０１０１】
制御語および状態語
図９は制御語ＤＩ＿ＣＴＲＬを示す。この制御語は、オブジェクトテーブル１１１（図８）のオブジェクトＤＩＳＴ＿ＣＴＲＬと同じ構造を有しており、オペレーティングシステム（図６）と個々のエラー機能との間のデータ交換に用いられる。これはＲＡＭ９７にある。ＲＡＭ９７にはメインプログラムのスタート時における「ＩＮＩＴ」Ｓ６００でのμＣ２３のリセット後に、ＤＩＳＴ＿ＣＴＲＬ（図８）の値がロードされる。ＤＩ＿ＣＴＲＬのビットには、０から７の通し番号が付されている。
【０１０２】
ビット０は名称ＤＣ＿ＬＡＴＣＨを有する。ＤＣ＿ＬＡＴＣＨ＝ＮＯ＿ＬＡＴＣＨであれば、すなわちＬＯＷ（０）であれば、エラーは記憶されず、エラーの消失時にエラー状態がリセットされる。これに対してＤＣ＿ＬＡＴＣＨ＝ＬＡＴＣＨであれば、すなわちＨＩＧＨ（１）であれば、エラー状態は消去の要求がバス８２を介して到来して初めて消去される。
【０１０３】
ビット１から６はここでは使用されず（ＲＥＳ）、将来の使用と拡張のためにリザーブされる。
【０１０４】
ビット７は名称ＤＣ＿ＣＬＥＡＲを有し、エラー状態の消去のために使用される。このためには、基本状態では０であるＤＣ＿ＣＬＥＡＲの値を１に、そして再び０にセットしなければならない。これについては図９に示されている。
【０１０５】
図１０は状態語ＤＩ＿ＳＴＡＴＥを示す。この状態語はオブジェクトＤＩＳＴ＿ＳＴＡＴＥ（図８）に相応し、ＤＩ＿ＣＴＲＬと同じように「ＩＮＩＴ」Ｓ６００で初期化される。
【０１０６】
ビット０〜２は名称ＤＳ＿ＣＬＡＳＳを有する。ＤＳ＿ＣＬＡＳＳは（１０進数）値０から７を取ることができる。ＤＳ＿ＣＬＡＳＳはエラークラスを含んでいる。ここでエラークラスの意味するのは：
・ＤＳ＿μＣ（０）                  μＣ２３のエラー
・ＤＳ＿ＣＯＭＭ（１）              通信のエラー
・ＤＳ＿ＳＥＮＳ（２）              センサ、例えばＮＴＣ抵抗６２のエラー・ＤＳ＿ＨＷ（３）                  他のハードウエアのエラー
ＤＳ＿ＣＬＡＳＳの残りの値４〜７はこの実施例では使用されない（ＲＥＳ）。
【０１０７】
ビット３〜６は使用されない（ＲＥＳ）。
【０１０８】
ビット７は名称ＤＳ＿ＡＣＴＩＶＥを有する。ＤＳ＿ＡＣＴＩＶＥ＝ＮＯ＿ＤＩＳＴ（０）であれば、エラーは存在しない。そしてＤＳ＿ＣＬＡＳＳの内容は無意味である。ＤＳ＿ＡＣＴＩＶＥ＝ＤＩＳＴ（１）の場合はエラーが存在し、ＤＳ＿ＣＬＡＳＳにはエラークラスが存在する。
【０１０９】
図１１はエラーコードＤＩ＿ＣＯＤＥを示す。このエラーコードはエラーをより正確に特定する。μＣ２３の各リセット後、Ｓ６００（図６）でオブジェクトＤＩＳＴ＿ＣＯＤＥ（図８）の値がＤＩ＿ＣＯＤＥにしたがって書き込まれる。ＤＩ＿ＣＯＤＥは１６ビットの大きさであり、従って値０から６５５３５を示すことができる。個々のエラークラス（図１０）に対してはそれぞれ１０００の値が設けられている。
【０１１０】
値（ＶＡＬ）０〜９９９はクラスＤＳ＿μＣに対してリザーブされている。すなわちμＣ２３のエラーに対してリザーブされている。これらエラーコードの意味するものは：
・ＤＮ＿ＷＤＴ                  ウオッチドッグタイマのエラー
・ＤＮ＿ＣＨＫＳ＿ＲＯＭ        ＲＯＭ９６のチェックサムエラー
・ＤＮ＿ＣＨＫＳ＿ＲＡＭ        ＲＡＭ９７の静的部分におけるチェックサムエラー
・ＤＮ＿ＣＨＫＳ＿ＥＥＰＲＯＭ  ＥＥＰＲＯＭ７４のチェックサムエラー
・ＤＮ＿ＴＥＳＴ＿ＲＡＭ        μＣ２３の内部ＲＡＭテスト時のエラー
値１０００〜１９９９はクラスＤＳ＿ＣＯＭＭに対してリザーブされている。エラーコードの意味するものは：
・ＤＮ＿ＴＩＭＥＯＵＴ＿ＴＲＡＮＳＦＥＲ    伝送中のタイムアウトエラー
・ＤＮ＿ＴＩＭＥＯＵＴ＿ＢＵＳ              バス８２でのアクセス時エラー・ＤＮ＿ＰＲＯＴ＿ＥＲＲ                    無効な伝送プロトコル（例えば９データビット）
・ＤＮ＿ＩＮＶＡＬ＿ＤＡＴＡ                無効なデータ
【０１１１】
値２０００〜２９９９はクラスＤＳ＿ＳＥＮＳＯＲに対してリザーブされている。エラーコードの意味するものは：
・ＤＮ＿ＳＥＮＳＯＲ＿ＩＮＴＥＲＲＵＰＴ    センサ故障（図２の個所６２ａまたは６２ｂでの故障）
・ＤＮ＿ＳＥＮＳＯＲ＿ＳＨＯＲＴ            センサ短絡（個所６２ａと６２ｂとの間）
【０１１２】
値３０００〜３９９９はクラスＤＳ＿ＨＷに対してリザーブされている（ＨＷ＝ハードウエア）。エラーコードの意味するものは：
・ＤＮ＿ＤＲＩＶＥＲ＿ＦＡＵＬＴ            出力段１１２（図２）のエラー残りの値はここでは定義されていない（ＲＥＳ）。
【０１１３】
図１２は応答語ＤＩ＿ＲＥＡＣを示す。この応答語はどの応答をエラーの際に行うべきかを指示する。ＤＩ＿ＲＥＡＣは図８のオブジェクトＤＩＳＴ＿ＲＥＡＣに相応し、ＤＩ＿ＣＴＲＬと同様にμＣ２３のリセット語にＳ６００（図６）で、オブジェクトテーブル１１１からのオブジェクトＤＩＳＴ＿ＲＥＡＣの値により書き込まれる。
【０１１４】
ビット０〜２は名称ＤＲ＿ＲＥＡＣを有し、ＤＲ＿ＲＥＡＣは（１０進数）値（ＶＡＬ）０〜７を取ることができる。ＤＲ＿ＲＥＡＣは、エラーの際にエラー機能により実行すべき応答を含む。ここで応答の意味するものは：
・ＤＲ＿ＯＦＦ              応答なし
・ＤＲ＿ｎ＿ｍａｘ          最大回転数
・ＤＲ＿ｎ＿ｍｉｎ          最小回転数
・ＤＲ＿ｎ＿０              回転数０
・ＤＲ＿ｎ＿ＤＩＳＴ        特別のエラー回転数
・ＤＲ＿ＢＲＡＫＥ          回転数０およびモータのアクティブ制動
【０１１５】
ビット３は名称ＤＲ＿ＡＬを有する。ＤＲ＿ＡＬ＝ＤＲ＿ＡＬ＿ＯＦＦであれば、エラーの際にアラームがアラーム機能ＡＦ８６で要求されない。これに対してＤＲ＿ＡＬ＝ＤＲ＿ＡＬ＿ＯＮであれば、エラーの際にアラームがアラーム機能８６で要求される。ビット４〜７はここでは使用されない（ＲＥＳ）。
【０１１６】
ホール割込およびＴＩＭＥＲφ割込
図１３はホール割込ルーチンＳ１４７の重要部を示す。この重要部はホール割込発生時に呼び出される（図６の６１１）。ホール割込６１１は信号ＨＡＬＬ（図４）のＨＩＧＨからＬＯＷないしはＬＯＷからＨＩＧＨへの各変化の際にトリガされる。すなわち図４からの例では時点ｔ＝０；２．５；５；７．５および１０ｍｓで呼び出される。
【０１１７】
Ｓ１５１により一般的ステップが示されている。このステップはホール時間ｔ＿Ｈ（図４）の計算に属し、例えば相応の時間の停止等である。
【０１１８】
ステップＳ１５３，Ｓ１５５およびＳ１５７でμＣ２３では信号ＨＡＬＬのエッジが調整される。このエッジにおいて次のホール割込がトリガされるべきものである。このためにＳ１５３でＨＡＬＬ＝１であるか否かが検査される。Ｙの場合はＳ１５５で次のホール割込がトリガされるべきエッジが下降縁（立下りフランク）（ＨＩＧＨ→ＬＯＷ）にセットされる。Ｎの場合は、Ｓ１５７でトリガが上昇縁（ＬＯＷ→ＨＩＧＨ）にセットされる。
【０１１９】
Ｓ１５９でＯＵＴ１とＯＵＴ２がゼロにセットされる。すなわちモータ３２が無電流状態にされる。このことはＨブリッジ１１２を短時間遮断するのに用い、これによりＨブリッジに転流の際に短絡が生じることがない。
【０１２０】
Ｓ１５９Ａでは種々のステップが実行される。例えば（図示しない）カウンタがｔ＿Ｈの測定のために新たにスタートされる。このプログラムステップは例えば５０μｓ持続するものである。
【０１２１】
Ｓ１６１からＳ１６５では転流が実施される。Ｓ１６１でＨＡＬＬ＝１であれば、Ｓ１６３でＯＵＴ１が１にセットされ、ＯＵＴ２はさらに０に留まる。Ｓ１５９参照。Ｓ１６１でＨＡＬＬ＝０であれば、Ｓ１６５でＯＵＴ２が１にセットされ、ＯＵＴ１は０のままである。Ｓ１５９参照。
【０１２２】
信号ＯＵＴ１＝１によりトランジスタ１１４と１１８がすでに説明したようにスイッチオンされ、信号ＯＵＴ２＝１によりトランジスタ１１６と１２０がスイッチオンされる。
【０１２３】
ステップＳ１６７〜１７１はカウンタであり、このカウンタはカウンタＯＤ＿ＣＯＭを例えば１００００転流ごとに１だけカウントアップする。このカウンタＯＤ＿ＣＯＭはμＣ２３の各リセット後にＳ６００（図６）で、オブジェクトテーブル１１１からのオブジェクトＯＤ＿ＣＯＭＭＵＴの値により書き込まれる。
【０１２４】
このためにＳ１６７で各ホール割込の際にカウンタＣＮＴ＿ＣＯＭが１だけカウントアップされる。Ｓ１６９で、ＣＮＴ＿ＣＯＭ＞９９９９であるか否かが検査される。Ｙの場合は、Ｓ１７１でＣＮＴ＿ＣＯＭが１にセットされ、カウンタＯＤ＿ＣＯＭが１だけカウントアップされる。Ｓ１６９でＣＮＴ＿ＣＯＭ＞９９９９でなければ、直接Ｓ１７２の終了へジャンプする。
【０１２５】
転流（回数）の計数は、図６で機能「駆動データ機能」Ｓ６３８と「エラー機能」Ｓ６４０のために必要である。
【０１２６】
図１４は、「ＴＩＭＥＲφ割込」ルーチンＳ１７３のプログラム部を示す。このプログラム部は図６に６１５によって示されている。タイマＴＩＭＥＲφ９８は例えば２５６μｄごとにＴＩＭＥＲφ割込をトリガする。従ってタイマＴＩＭＥＲφを時間測定に使用することができる。
【０１２７】
ステップＳ１７４はタイマ９８の考え得る他の使用のためのものであり、これは図示されていない。
【０１２８】
ステップＳ１７５からＳ１８０にはサブタイマが示されている。サブタイマは例えば１０分おきにステップＳ１８０を実行する。このためにカウンタＣＮＴ＿ＴＩが使用される。このカウンタは各ＴＩＭＥＲφ割込の際にＳ１７６で１だけ高められる。Ｓ１７８ではＣＮＴ＿ＴＩ＞２３９９９９９であるか否かが検査される。Ｙの場合は、Ｓ１８０へジャンプし、それ以外の場合は終了Ｓ１８２へジャンプする。
【０１２９】
ＣＮＴ＿ＴＩが値２４０００００に達していれば、２４０００００×２５６μｓが経過した。このことはちょうど１０分に相当する。Ｓ１８０でＣＮＴ＿ＴＩが１にリセットされ、ＲＡＭ９７にある「駆動時間カウンタ」ＯＤ＿ＯＨが１だけ高められる。この駆動時間カウンタはμＣ２３の各リセット後にＥＥＰＲＯＭ７４からのオブジェクトＯＤ＿ＯＨＯの値により書き込まされる。図６の機能レジスタ６０５のビットＦＣＴ＿ＢＤＦがセットされ、これにより機能マネージャ６０１により「駆動データ機能」Ｓ６３８が呼び出され、所定の駆動データ値がＥＥＰＲＯＭ７４にロードされる。図６参照。
【０１３０】
ＲＡＭ９７の「駆動時間カウンタ」ＯＤ＿ＯＨは従ってここでは、ファンの全駆動時間を１０分単位で含む。これはＥＥＰＲＯＭ７４の駆動時間カウンタＯＤ＿ＯＨＯと同じである。
【０１３１】
駆動データ機能ＢＤＦ（図１５）
図１５は「駆動データ機能」Ｓ６３８（図６）を示す。この駆動データ機能は、機能マネージャ６０１（図６）がステップＳ６３６に達し、機能レジスタ６０５（図７）からのビットＦＣＴ＿ＢＤＦが例えば「ＴＩＭＥＲφ割込」ルーチンＳ１７０（図１４）でのサブタイマによってセットされた場合に呼び出される。このことはこの実施例では１０分ごとに行われる。
【０１３２】
「駆動データ機能」Ｓ６３８は、重要な駆動データ値（例えば最大ファン温度または駆動時間）をＥＥＰＲＯＭ７４に記憶し、これにより例えばファン交換のための基準を得るために用いられる。
【０１３３】
これらのデータはＥＥＰＲＯＭ７４から読み出すことができ、モータ３２についての形式「健康情報」を送出する。
【０１３４】
付加的にＥＥＰＲＯＭ７４のＦＩＦＯにさらにモータ３２についての「病気情報」を、そのような「病気」発生するときに記憶することができる。この病気情報も後でＥＥＰＲＯＭから読み出し、発生したエラーの形式プロトコルおよび場合によりその原因、例えば高温、過電圧、または寿命の終了を送出することができる。
【０１３５】
駆動データ機能ＢＤＦの実行の際にはＳ１９０で、瞬時の駆動電圧Ｕ＿Ｂ（これはＡ／Ｄ変換器６０によりデジタル化されている）がこれまで最高駆動電圧ＯＤ＿ＵＢＭより大きいか否かが検査される。Ｙの場合は、Ｓ１９２でＵ＿Ｂが値ＯＤ＿ＵＢＭに配属され、オブジェクトＯＤ＿ＵＢＭＡＸ（これは実施例ではＥＥＰＲＯＭ７４の個所ｐＯＤ＿ＵＢＭＡＸにある）が命令ｗｒｉｔｅ＿ＥＥにより新たな値ＯＤ＿ＵＢＭにセットされる。オブジェクトがＥＥＰＲＯＭ７４中に存在する（図８参照）個所は先頭に付された「ｐ」により示される。従ってｐＯＤ＿ＵＢＭＡＸはＥＥＰＲＯＭ７４中の、オブジェクトＯＤ＿ＵＢＭＡＸが存在する個所である。図８参照。最大駆動電圧ＵＢＭＡＸは重要である。なぜなら、過度に高い駆動電圧は電子構成部材の摩耗を促進するからである。同様に最小駆動電圧（アンダー電圧）を保持することもできる。
【０１３６】
Ｓ１９４で、センサ１５３２により測定される瞬時温度Ｔがこれまでの最高温度ＯＤ＿ＴＭより高いか否かが検査される。Ｙの場合には、Ｓ１９６でこれまでの最高温度ＯＤ＿ＴＭに新たな最高温度Ｔが配属され、オブジェクトテーブル１１１（図８）のオブジェクトＯＤ＿ＴＭＡＸがＳ１９２と同じように命令ｗｒｉｔｅ＿ＥＥによって新たな最大値ＯＤ＿ＴＭにより上書きされる。（パラメータｐＯＤ＿ＴＭＡＸはここでもＥＥＰＲＯＭ７４中にオブジェクトＯＤ＿ＴＭＡＸがファイルされている個所を表す。）
【０１３７】
Ｓ１９８で瞬時駆動時間（これはＯＤ＿ＯＨに存在する）が命令ｗｒｉｔｅ＿ＥＥによりＥＥＰＲＯＭ７４のオブジェクトＯＤ＿ＯＨＯ（図８）に書き込まれる。これによりこの駆動時間はファン３２が遮断されても維持される。駆動時間ＯＤ＿ＯＨの測定は図１４で説明した。
【０１３８】
Ｓ２００で、ＯＤ＿ＣＯＭにファイルされている転流の瞬時数が命令ｗｒｉｔｅ＿ＥＥによりオブジェクトＯＤ＿ＣＯＭＭＵＴ（図８）に書き込まれる。転流数の測定は図１３で説明した。
【０１３９】
Ｓ２０２で要求ビットＦＣＴ＿ＢＤＦがゼロにリセットされる。なぜなら「駆動データ機能」Ｓ６３８は完全に処理され、Ｓ２０４で機能Ｓ６３８は終了するからである。
【０１４０】
エラー識別
図１６は、機能「Ａ／Ｄ」Ｓ６０６（図６）の一部を有するフローチャートを示す。
【０１４１】
Ｓ２２０でＡ／Ｄ変換器６０（図２）の入力端５７の電位が命令ＡＤ（ＡＤ＿ＵＢ）により読み込まれ、Ｕ＿Ｂに記憶される。値Ｕ＿Ｂは瞬時の駆動電圧、例えば４０Ｖに相応する。
【０１４２】
Ｓ２２２でＡ／Ｄ変換器６０（図６）の入力端６７の電位が命令ＡＤ（ＡＤ＿Ｔ）により読み込まれ、Ｔに記憶される。値ＴはＮＴＣ抵抗６２の瞬時温度、例えば８４℃に相応する。
【０１４３】
Ｓ２２４で場合により別のステップ、例えば「特性曲線機能」Ｓ６２２の要求が実行される。
【０１４４】
Ｓ２２６では、センサ故障が存在しているか否かが検査される。すなわちＮＴＣ抵抗６２への接続が個所６２ａまたは６２ｂで中断しているか否かが検査される。これはＴに対する値がセンサ故障値Ｔ＿ＳＩより小さい場合である。この場合、Ｓ２２８で温度値ＴがＴ＿ＳＩにセットされ、図２２で説明する機能ＮＥＷ＿ＤＩＳＴの呼び出しが準備される。このためにエラークラスＤＳ＿μＣとセンサ短絡エラーに対するエラーコードＤＮ＿ＳＥＮＳＯＲ＿ＩＮＴＥＲＲＵＰＴが変数ＴＥＭＰ＿ＣＬＡＳＳないしはＴＥＭＰ＿ＣＯＤＥに記憶され、Ｓ２３０でＮＥＷ＿ＤＩＳＴ（図２２）が呼び出される。
【０１４５】
Ｓ２３２では同様にセンサ短絡が検査される。すなわち図２での個所６２ａと６２ｂとの間の短絡が検査される。このために、値Ｔがセンサ短絡値Ｔ＿ＳＳより大きいか否かが比較される。Ｙの場合、Ｓ２３４で値Ｔがセンサ短絡値Ｔ＿ＳＳにセットされ、変数ＴＥＭＰ＿ＣＬＡＳＳとＴＥＭＰ＿ＣＯＤＥがセンサ短絡に対する値にセットされ、Ｓ２３６でＮＥＷ＿ＤＩＳＴ（図２２）が呼び出される。
【０１４６】
Ｓ２３８には場合により別のステップが続く。Ｓ２４０でＡ／Ｄルーチンが終了する。
【０１４７】
駆動電圧Ｕ＿Ｂの代わりにまたは付加的に、他の電圧、例えば使用される１２Ｖ補助電圧を測定し、その極値を記憶することもできる。
【０１４８】
図１７は、機能「エラー識別」Ｓ６３４（図６）に対するフローチャートを示す。これは要求可能な機能であり、この機能は要求ビットＦＣＴ＿ＤＩＳＴ＝１により要求される。この機能はモータのスイッチオン後の初期化（図６のＳ６００）の際に要求され、その後ほぼ１００ｍｓごとに時限素子、例えばＴＩＭＥＲφにより制御されるカウンタにより制御される。エラー識別は従って１００ｍｓごとにメモリを検査する。
【０１４９】
Ｓ２７２で機能「ＲＡＭ＿ＣＨＫ＿ＴＥＳＴ」が、Ｓ２７４で機能「ＲＯＭ＿ＣＨＫ＿ＴＥＳＴ」が、そしてＳ２７６で機能「ＥＥＰＲＯＭ＿ＣＨＫ＿ＴＥＳＴ」が実行される。これらの機能は、エラーがＲＡＭ９７，ＲＯＭ９６またはＥＥＰＲＯＭ７４に発生したか否かを検査する。例えばビットがＲＡＭ９７で切り替わることがあり得る。このことによりエラーがμＣ２３のプログラムに発生し、ひいてはファン３２の駆動が不安定になることがある。
【０１５０】
Ｓ２７７で要求ビットＦＣＴ＿ＤＩＳＴがゼロにリセットされる。なぜなら機能「エラー識別」Ｓ６３４は完全に処理されているからである。
【０１５１】
以下の図面に基づき、メモリテストを、ＲＡＭ９７をテストするための機能「ＲＡＭ＿ＣＨＫ＿ＴＥＳＴ」の例で説明する。ＥＥＰＲＯＭ７４とＲＯＭ９６でのテストもまったく同じである。
【０１５２】
図１８はＲＡＭ９７の領域１４０を示す。この領域はここでは静的領域「ＳＴＡＴＩＣ」１４２と非静的（動的）領域「ＮＯＮ＿ＳＴＡＴＩＣ」に分割される。
【０１５３】
分かり易くするため記憶語Ｗ１からＷ１１には通し番号が付してある。領域「ＳＴＡＴＩＣ」１４２は記憶語Ｗ１からＷ７を含む。記憶語Ｗ８には変数ＲＡＭ＿ＣＨＫ１４６があり、この変数は領域「ＳＴＡＴＩＣ」を検査するために用いられる。領域「ＳＴＡＴＩＣ」１４２には例えば関数と定数が存在する。領域「ＮＯＮ＿ＳＴＡＴＩＣ」１４４は記憶語Ｗ９〜Ｗ１１を含み、例えば変数を含む。
【０１５４】
図１９は機能「ＣＨＫ＿ＣＡＬＣ」Ｓ２９０を示す。この機能は検査値ＣＨＫを計算するために用いられる。このためにＳ２９２でＣＨＫがゼロにセットされ、ループカウンタＮが同様にゼロにセットされる。
【０１５５】
Ｓ２９４でループが開始する。Ｎはそれぞれ１だけ高められ、ＣＨＫとＲＡＭ（Ｎ）のＸＯＲ演算が行われる。ＲＡＭ（Ｎ）はここではＲＡＭ領域１４０（図１８）の個所ＷＮにある記憶語である。Ｓ２９６で、Ｎ＜７否かが検査される。否定の場合は、ＣＨＫと記憶語Ｗ１からＷ７およびひいては領域「ＳＴＡＴＩＣ」１４２にある全ての記憶語とのＸＯＲ演算が行われ、ルーチンはステップＳ２９８へ進む（終了）。
【０１５６】
図２０は、機能「ＲＡＭ＿ＣＨＫ＿ＳＥＴ」Ｓ３００のためのフローチャートを示す。この機能はＲＡＭ＿ＣＨＫ１４６（図１８）をセットするために使用される。
【０１５７】
Ｓ３０２で機能「ＣＨＫ＿ＣＡＬＣ」（図１９）が呼び出される。この機能は検査値ＣＨＫを計算する。この検査値はＳ３０４でＲＡＭ＿ＣＨＫ１４６（図１８）に記憶される。すなわちＲＡＭ領域１４０のワードＷ８に記憶される。Ｓ３０６でこのルーチンは終了する。
【０１５８】
機能「ＲＡＭ＿ＣＨＫ＿ＳＥＴ」は例えばμＣ２３の各リセット後にＳ６００（図６）で呼び出される。実行中に記憶語が領域「ＳＴＡＴＩＣ」１４２（図１８）で所望のように変化した場合には、「ＲＡＭ＿ＣＨＫ＿ＳＥＴ」Ｓ３００を新たに呼び出さなければならない。ＲＯＭ９６には相応のＲＯＭ＿ＣＨＫ検査語がＲＯＭ９６を焼く前に計算され、登録される。
【０１５９】
図２１は機能「ＲＡＭ＿ＣＨＫ＿ＴＥＳＴ」（図１７のＳ２７２）のフローチャートを示す。Ｓ３１２で再び機能「ＣＨＫ＿ＣＡＬＣ」（図１９のＳ２９０）が呼び出され、検査値ＣＨＫが計算される。
【０１６０】
Ｓ３１４でＣＨＫが記憶された値ＲＡＭ＿ＣＨＫ１４６（図１８）と比較される。２つの値が異なっていれば、エラーが領域「ＳＴＡＴＩＣ」１４２に発生しており、Ｓ３１６へジャンプする。Ｓ３１６では変数ＴＥＭＰ＿ＣＬＡＳＳがＤＳ＿μＣにより、ＴＥＭＰ＿ＣＯＤＥがＤＮ＿ＣＨＫＳ＿ＲＡＭにより占有され、Ｓ３１８で機能「ＮＥＷ＿ＤＩＳＴ」（図２２）が呼び出される。
【０１６１】
Ｓ３１４で値ＲＡＭ＿ＣＨＫとＣＨＫが等しければ、ルーチンはＳ３２０（終了）へ直接ジャンプする。
【０１６２】
ＲＯＭ９６とＥＥＰＲＯＭ７４のメモリ検査も同様に機能する。ＸＯＲ演算法の代わりに例えばチェックサム法またはその他の検査法、例えばＣＲＣ（サイクリック冗長性チェック）を使用することもできる。
【０１６３】
図２２は機能「ＮＥＷ＿ＤＩＳＴ」Ｓ３４０のフローチャートを示す。この機能はエラーが検知されるたびに呼び出される。
【０１６４】
Ｓ３４２で、状態語ビットＤＳ＿ＡＣＴＩＶＥ＝１であるか否かが検査される。図１０参照。Ｙの場合は、すでにエラーが存在しており、終了Ｓ３４８へジャンプし、新たなエラーは考慮されない。このことに意味があるのは、エラーがシーケンスエラーを引き起こす可能性があるからである。従って分析のためには、最初の古いエラーが最重要である。
【０１６５】
Ｓ３４２で新たなエラーが存在すれば（ＤＳ＿ＡＣＴＩＶＥ＝０）Ｓ３４４へジャンプする。Ｓ３４４ではＤＳ＿ＡＣＴＩＶＥ（図１０）が１にセットされ、エラークラスＤＳ＿ＣＬＡＳＳとエラーコードＤＩ＿ＣＯＤＥが、呼び出された機能によりセットされた値ＴＥＭＰ＿ＣＬＡＳＳないしＴＥＭＰ＿ＣＯＤＥにセットされる。例えば図２１はそこに、ＴＥＭＰ＿ＣＬＡＳＳがＤＳ＿μＣにセットされたことを示している。
【０１６６】
Ｓ３４６で、エラークラスＤＳ＿ＣＬＡＳＳ、エラーコードＤＩ＿ＣＯＤＥおよび瞬時駆動データＯＤ＿ＤＡＴＡが命令ｐｕｓｈ＿ＦＩＦＯによりＥＥＰＲＯＭ７４のＦＩＦＯにファイルされる。ＯＤ＿ＤＡＴＡは例えば、瞬時温度、瞬時駆動時間、瞬時転流数、エラークラス、エラーコード、およびリアルタイム時計１４９（図１）が設けられている場合には瞬時時計時間、および瞬時の日付を含むことができる。
【０１６７】
プロセッサ２３は状態信号をセットする。この信号は接続されたＰＣ８１により常時検査され、このＰＣ８１に対してエラーについての記憶されたデータを呼び出させる。例えばロータ１３０がブロックされたことにより、モータ３２がエラーにより停止すると、ＰＣ８１によりリザーブモータ（図示せず）を投入接続することができる。またはアラームがトリガ（発出）される。モータ３２がファンである場合、ＰＣ８１によって別のファンを比較的に高い回転数に切り替え、冷却をさらに保証することができる。
【０１６８】
エラー機能（エラー監視ルーチン）
図２３は、エラー機能Ｓ６４０（図６）のフローチャートを示す。このエラー機能はエラー監視ルーチンとも称することができる。
【０１６９】
Ｓ３６２でＤＳ＿ＡＣＴＩＶＥ（図１０）に基づいて、エラーが存在するか否かが検査ないし監視される。ＤＳ＿ＡＣＴＩＶＥ＝０であればエラーは存在せず、終了Ｓ３９０へジャンプする。
【０１７０】
ＤＳ＿ＡＣＴＩＶＥ＝１であればエラーが存在し、応答が実行される。この応答は、ＤＲ＿ＲＥＡＣ（図１２）の値ＶＡＬによって決められる。
【０１７１】
ＤＲ＿ＲＥＡＣ＝ＤＲ＿ＯＦＦであれば、Ｓ３６４からＳ３８６へ直接ジャンプし、応答は生じない。
【０１７２】
ＤＲ＿ＲＥＡＣ＝ＤＲ＿ｎ＿ｍａｘであれば、Ｓ３６６からＳ３６８へジャンプする。Ｓ３６８ではｎ＿ｃｏｎｓｔが１にセットされ、これにより機能「回転数計算機能」Ｓ６２６（図６）に、今や一定の回転数が設定されたことを通知する。さらに目標回転数ｎ＿ｓが最大回転数ｎ＿ｍａｘにセットされる。これによりパルス１０７Ａ（図２）のデューティ比ＰＷＭ＿ＴＶが１００％に調整される。
【０１７３】
Ｓ３７０でＤＲ＿ＲＥＡＣ＝ＤＲ＿ｎ＿ｍｉｎであれば、Ｓ３７２でｎ＿ｃｏｎｓｔが１にセットされ、目標回転数ｎ＿ｓが最小回転数ｎ＿ｍｉｎにセットされる。この回転数は次に制御器７０に目標回転数として設定される。
【０１７４】
Ｓ３７４でＤＲ＿ＲＥＡＣ＝ＤＲ＿ｎ＿０であれば、Ｓ３７６でｎ＿ｃｏｎｓｔが１にセットされ、目標回転数ｎ＿ｓが０にセットされる。このために図２のトランジスタ１１４，１１６，１１８，１２０が非導通状態にされ、これによりモータ３２に電流がそれ以上流れなくなる。
【０１７５】
Ｓ３７８でＤＲ＿ＲＥＡＣ＝ＤＲ＿ｎ＿ＤＩＳＴであれば、Ｓ３８０でｎ＿ｃｏｎｓｔが１に、目標回転数ｎ＿ｓがエラー回転数ｎ＿ＤＩＳＴにセットされる。このエラー回転数はオブジェクトｎ＿ＤＩＳＴ（図８）により与えられる。この目標回転数ｎ＿ＤＩＳＴは次に制御器７０に目標回転数ｎ＿ｓとして供給される。
【０１７６】
Ｓ３８２でＤＲ＿ＲＥＡＣ＝ＤＲ＿ＢＲＥＡＫＥであれば、Ｓ３８４でｎ＿ｃｏｎｓｔが１に、目標回転数ｎ＿ｓが０に、ＢＲＡＫＥが１にセットされ、機能「ＲＧＬ」Ｓ６１０（図６）に対して、アクティブ制動すべきであることが指示される。この場合例えば、Ｈブリッジ１１２（図２）の２つの下側トランジスタ１１８，１２０は常時導通状態に制御され、これにより固定子巻線１２８は短絡される。ここで上側トランジスタ１１４，１１６は開放される。
【０１７７】
Ｓ３６４からＳ３８２での検査の後、Ｓ３８６でＤＲ＿ＡＬ（図１２）に基づいて、エラーの際にアラームをトリガすべきか否かが検査される。
【０１７８】
ＤＲ＿ＡＬ＝ＤＲ＿ＡＬ＿ＯＮであれば、Ｓ３８８で状態語ＡＳ＿ＤＩＳＴが１にセットされ、アラーム機能Ｓ６４２（図６）に、エラーの存在していること、およびアラームをトリガすべきことが通知される。続いてルーチンはＳ３９０へ進む（終了）。
【０１７９】
コミュテーション機能（図２４）
図２４は機能「ＣＯＭＭ」Ｓ６０４（図６）のフローチャートを示す。このフローチャートは、入出力をバス８２を介して制御する（ステップＳ４０２，Ｓ４０６およびＳ４３０は別のプログラム部を象徴的に示す。すなわち図２４は、機能「ＣＯＭＭ」のうちここで重要な部分だけを示すものであり、不要な冗長を回避している。）
【０１８０】
Ｓ４０４からプログラム部ＰＲＯＣＥＳＳ＿ＩＮＳＴＲが始まる。ここでは、機能「ＣＯＭＭ」がシリアルバス８２（ここではＩＩＣバス）を介して受け取り、ＩＮＳＴＲにある命令が実行される。
【０１８１】
定義された命令はＯＣで始まる。ＯＣ＿ＧＥＴＤＩは例えば、状態語ＤＩ＿ＳＴＡＴＥ（図１０）とエラーコードＤＩ＿ＣＯＤＥ（図１１）が外部から問い合わされたことを意味する。Ｓ４１０で、ＩＮＳＴＲ＝ＯＣ＿ＧＥＴＤＩであるか否かが検査される。Ｙの場合は、Ｓ４１２で命令ｗｉｔｅ＿ＩＩＣにより所望の情報がＩＩＣバス８２へ出力される。ＯＣ＿ＤＩＤＡＴは、エラーデータであることを意味し、“２”は２つの別のアーギュメント、すなわちＤＩ＿ＳＴＡＴＥとＤＩ＿ＣＯＤＥの続くことを意味する。
【０１８２】
Ｓ４１４で、ＩＮＳＴＲ＝ＯＣ＿ＲＥＳＤＩであるか否かが比較され、場合によりＳ４１６へジャンプする。ＯＣ＿ＲＥＳＤＩは、エラー機能をリセットすべきことを意味する。場合によりＤＩ＿ＳＴＡＴＥ、ＤＩ＿ＣＯＤＥに記憶されたエラーは従って消去される。Ｓ４１６でＤＩ＿ＳＴＡＴＥとＤＩ＿ＣＯＤＥがリセットされる。ＤＩ＿ＳＴＡＴＥにより同時にＤＳ＿ＣＬＡＳＳとＤＳ＿ＡＣＴＩＶＥがリセットされる（図１０）。
【０１８３】
Ｓ４１８で、ＩＮＳＴＲ＝ＯＣ＿ＧＥＴＯＤであるか否かが検査され、場合によりＳ４２０へジャンプする。ＯＣ＿ＧＥＴＯＤは、バス８２を介して機能「駆動データ機能」（図１５）の駆動データを呼び出すべきことを意味する。Ｓ４２０で駆動データが命令ｗｒｉｔｅ＿ＩＩＣによりＩＩＣバス８２に書き込まれる。ここでＯＣ＿ＯＤＤＡＴは、機能「駆動データ機能」（図１５）のデータであることを意味し、“４”は４つの別のアーギュメント、すなわちＯＤ＿ＵＢＭ，ＯＤ＿ＴＭ，ＯＤ＿ＯＨおよびＯＤ＿ＣＯＭが続くことを意味する（図１５参照）。
【０１８４】
Ｓ４２２でＩＮＳＴＲがＯＣ＿ＧＥＴＦＩＦＯと比較され、等しい場合にはＳ４２４へジャンプする。ＯＣ＿ＧＥＴＦＩＦＯは、次の値がＦＩＦＯから読み出されることを意味する。このＦＩＦＯには、各新たなエラーの際にエラークラス、エラーコードおよび瞬時の駆動データが充填される（図２２）。このためにＳ４２４で次のデータがＦＩＦＯから取り出され、変数ＴＭＰ＿ＣＬＡＳＳ，ＴＥＭＰ＿ＣＯＤＥおよびＴＭＰ＿ＤＡＴＡに書き込まれる。これに基づきこれらのデータはｗｒｉｔｅ＿ＩＩＣによってバス８２に書き込まれる。ここでＯＣ＿ＦＩＦＯは、ＦＩＦＯからのデータであることを指示し、“３”はさらなるパラメータＴＭＰ＿ＣＬＡＳＳ，ＴＭＰ＿ＣＯＤＥおよびＴＭＰ＿ＤＡＴＡの数を指示する。
【０１８５】
Ｓ４３０により可能な別のステップが示されている。Ｄ４３２でルーチンＣＯＭＭは終了する。このルーチンは図６によれば優先度Ｌ３を有している。
【０１８６】
本発明では異なる優先度（図６：Ｌ１からＬ２３）を有する多数のルーチンが設けられており、それらの実行の際にエラーが検出されると、最初に「応急措置」が取られる。例えば図１６のＡ／ＤルーチンにおいてＳ２２６で、センサ１５２への線路に断線の存在することが検出されると、Ｓ２２８でまず最初に相応のエラークラスがそして相応のエラーコードが記憶され、続いて図２２のプログラムＮＥＷ＿ＤＩＳＴが実行される。すでに他のエラーが存在していなければ、そこでＤＳ＿ＡＣＴＩＶＥがセットされる。エラークラスとエラーコードは不揮発性メモリ７４に記憶され、恒久的情報がエラーの形式を介して得られ、同様に関連する全ての駆動データがメモリ７４に記憶される。続いて、まず図１６のルーチンがさらに実行される。
【０１８７】
そしていつかプログラムは図６で、図２３に示したエラー機能Ｓ６４０に達する。
【０１８８】
エラー機能では、ＤＳ＿ＡＣＴＩＶＥがセットされていることが検出され、オブジェクトテーブル１１１のワードＤＩＳＴ＿ＲＥＡＣ中のパラメータに相応して（これらのパラメータはモータの駆動中にもＲＡＭ９７に存在する）、エラーに対して応答される。これらのパラメータは図１２に示されている。ファンである場合には、ＤＲ＿ＲＥＡＣ（図１２）は通常、値１を有する。すなわちモータ３２の回転数は、温度センサ１５２のエラーの場合、最大値に調整され、これにより確実な送風が保証される。このことは図２３のステップＳ３６６とＳ３６８で行われる。従ってセンサ１５２への接続が中断されると直ちに、最短時間でモータ３２はその最大回転数に切り替えられる。
【０１８９】
例えばファンの騒音が非常に激しくなるため、このことを望まないならば、オブジェクトテーブルの値ｎ＿ＤＩＳＴに所定の回転数、例えば２５００回転／minを記憶することができる。このようにすれば図１２でＤＲ＿ＲＥＡＣに対して値４，すなわちＤＲ＿ｎ＿ＤＩＳＴが選択される。エラー機能（図２３）は次にエラーの際にステップＳ３７８とＳ３８０へ進み、モータ３２をエラーが検出された際に２５００回転／minの所定の回転数に切り替える。この回転数はモータのパラメータ化の際に任意に選択することができ、またユーザが適切なソフトウエアを有していれば後から変更することもできる。
【０１９０】
同じようにして図１２でＤＲ＿ＡＬにより、アラームを出力すべきか否かを設定することができる。そこでＤＲ＿ＡＬが値１を有していれば、図２３のステップＳ３８６とＳ３８８によりアラームがトリガされる。
【０１９１】
従ってモータにおいてエラーが検出される場合にこれが応答すべきか否か、およびどのように応答すべきかを簡単にパラメータ化することができる。いずれの場合でも、ＥＥＰＲＯＭ７４に記憶されたデータに、エラークラス、エラーコードおよびエラー時点での所属のモータデータ、例えば駆動時間、最大駆動電圧、最大温度、場合により時計時間、日付等が含まれており、これにより発生したエラーの後からの分析が格段に容易になり、あるいは可能となる。
【０１９２】
エラーが発生した際の作用は、事故の救出と比較することができる。まず、救急隊員が駆けつけ、救急包帯を施し、いくつかのデータを書き付け、これをラベルとして患者に貼り付ける。このことは、例えばルーチンＡ／Ｄ（図１６）またはルーチンエラー識別（図１７）でのエラーの検出、駆動データの記憶に相応する。引き続き救急隊員はフラグＤＳ＿ＡＣＴＩＶＥ＝１をセットし、救急車が到着するまで被害者を横たえる。
【０１９３】
プログラム；エラー機能（図２３）、すなわちエラー監視ルーチンは救急車に相応する。この救急車はいつか通過し、被害者をフラグＤＳ＿ＡＣＴＩＶＥ＝１で識別し、被害者を乗せ、記憶された指示に相応して被害者を治療する。
【０１９４】
このようなシステムは非常にオープンであり、いずれの方向にも拡張可能であり、変更可能である。なぜなら変更はプログラムに該当するものではなく、オブジェクトテーブル１１１（図８）のデータにのみ該当するものだからである。いずれの場合でもまず救急隊員が到着し、所定のステップを実行し、引き続き救急車が到着し、同様に所定のステップを実行する。そしてこれら所定のステップはメモリ７４にパラメータ化されている。
【０１９５】
本発明により、客観的データに基づいて、モータがその寿命に達しており、念のため交換すべきであるか否かを決定することができるという利点も得られる。
【０１９６】
駆動データの変数を不揮発性メモリに伝送するための適切な時間間隔は例えば時間の端数であり、１０分、２０分、３０分等である。従って伝送は比較的まれにしか行われず、多くの計算時間を必要としない。それにもかかわらず、不揮発性メモリに記憶されたデータの良好な精度が得られる。なぜなら、電気モータは通常、比較的長時間にわたって中断なしで回転し、その際にその駆動データが変化することは稀だからである。
【０１９７】
瞬時の変数を古い駆動データ値として不揮発性メモリ７４に確保するという別の手段では、マイクロプロセッサ２３で、例えば電流欠落または電気モータ３２の遮断時に発生するリセット時に終了ルーチンを実行することができる。この終了ルーチンでは、瞬時の変数を不揮発性メモリに記憶することができ、頻繁な中間記憶は必要なくなる。
【０１９８】
もちろん本発明の枠内で多種多様な変形および適用が可能である。
【図面の簡単な説明】
【図１】  図１は、電気モータを有する本発明の装置の全体概略図である。
【図２】  図２は、電子コミュテーション式モータを有する有利な実施例の全体回路図である。
【図３】  図３は、図２の三角波発生器に発生する電圧と信号の例としての線図である。
【図４】  図４は、ロータ位置センサ１３２により検知され、図２のμＣ２３に引き渡される信号ＨＡＬＬの概略的線図である。
【図５】  図５は、図１に実現されたエラー機能８５と警報機能８６の概略線図である。
【図６】  図６は、機能マネージャの形態のメインプログラムであり、このプログラムは有利には本発明のモータに使用することができる。
【図７】  図７は、８ビットの制御語を示し、この８ビットは図８の機能マネージャで機能を実行ないしはこの要求をリセットするのに用いられる。
【図８】  図８は、図２のモータ３２に対するパラメータを含むオブジェクトの表である。
【図９】  図９は、エラー機能（図２と図２３）により使用される制御語ＤＩ＿ＣＴＲＬである。
【図１０】  図１０は、エラー機能により使用される状態語ＤＩ＿ＳＴＡＴＥである。
【図１１】  図１１は、エラー機能により使用されるエラーコードＤＩ＿ＣＯＤＥである。
【図１２】  図１２は、エラー機能により使用される応答語ＤＩ＿ＲＥＡＣである。
【図１３】  図１３は、図６の機能「ホール割込」のフローチャートである。
【図１４】  図１４は、図６の機能「タイマφ割込」のフローチャートである。
【図１５】  図１５は、図６の機能「駆動データ機能」のフローチャートである。
【図１６】  図１６は、図６の機能「Ａ／Ｄ」のフローチャートである。
【図１７】  図１７は、図６の機能「エラー識別」のフローチャートである。
【図１８】  図１８は、図２のμＣ２３のＲＡＭ領域を示す。
【図１９】  図１９は、メモリ検査のための検査値を計算するための機能「ＣＨＫ＿ＣＡＬＣ」のフローチャートである。
【図２０】  図２０は、機能「ＲＡＭ＿ＣＨＫ＿ＳＥＴ」のフローチャートであり、この機能は検査値ＲＡＭ＿ＣＨＫの計算、およびＲＡＭ領域の所定桁での記憶に用いられる。
【図２１】  図２１は、図１７の機能「ＲＡＭ＿ＣＨＫ＿ＴＥＳＴ」のフローチャートであり、この機能はメモリ検査に用いられる。
【図２２】  図２２は、機能「ＮＥＷ＿ＤＩＳＴ」のフローチャートであり、このフローチャートは新たなエラーの際に呼び出される。
【図２３】  図２３は、図１と図６のルーチン「エラー機能」のフローチャートである。
【図２４】  図２４は、図６のルーチン「ＣＯＭＭ」のフローチャートである。
【図１】
0004618897.tif 000002
【図２】
0004618897.tif 000003
【図３】
0004618897.tif 000004
【図４】
0004618897.tif 000005
【図５】
0004618897.tif 000006
【図６】
0004618897.tif 000007
【図７】
0004618897.tif 000008
【図８】
0004618897.tif 000009
【図９】
0004618897.tif 000010
【図１０】
0004618897.tif 000011
【図１１】
0004618897.tif 000012
【図１２】
0004618897.tif 000013
【図１３】
0004618897.tif 000014
【図１４】
0004618897.tif 000015
【図１５】
0004618897.tif 000016
【図１６】
0004618897.tif 000017
【図１７】
0004618897.tif 000018
【図１８】
0004618897.tif 000019
【図１９】
0004618897.tif 000020
【図２０】
0004618897.tif 000021
【図２１】
0004618897.tif 000022
【図２２】
0004618897.tif 000023
【図２３】
0004618897.tif 000024
【図２４】
0004618897.tif 000025