制御対象物に対して複数の機能を実行させる制御プログラムを生成する制御プログラム生成装置であって、予め決められている実行優先順位が決まっている機能分類の中から実行すべき機能が含まれる機能分類を選択させる機能分類選択手段と、前記機能を実行すべきタイミングを決めるための入力信号の条件情報を入力する実行条件入力手段と、前記条件を満たした場合に前記機能を実現するための前記制御対象物の動作を、予め決められている動作の選択肢の中から実行すべき順に少なくとも1つ選択し、選択した動作によって前記機能を実現するための動作を定義して動作定義情報を出力する動作定義手段と、前記機能分類に含まれる他の機能との実行優先順を定義する実行優先順位定義手段と、前記動作定義情報の動作と前記制御対象物を動作させる制御プログラムのソースコードが関係付けられて記憶されたソースコードデータベースと、複数の前記機能を実行する条件を満たす事象が同時に発生した際に、前記優先順位の高い機能が実行されるように、前記実行優先順位定義手段によって定義された優先順位情報を参照して、前記動作定義情報に基づき、制御プログラムのソースコードを生成して出力するソースコード生成手段とを備えたことを特徴とする制御プログラム生成装置。前記制御対象物がワイパ装置のモータであることを特徴とする請求項1に記載の制御プログラム生成装置。ところで、ワイパ装置のように、車両に搭載される装置は、車両メーカ毎に仕様が異なり、車種毎にも仕様が異なっていることが多く、その仕様毎に制御プログラムを生成していたのでは制御プログラムが大きくなってしまうという問題がある。また、仕様変更が発生する度に制御プログラムの変更作業が発生し、多大な労力を必要とする。特に、新たな機能を追加する場合には、既にある他の機能との実行順位を決めなければならないため、簡単な機能の追加であっても制御プログラム全体を見渡して、プログラムを生成しなければならず、多大な労力を必要とする。また、制御動作が同じであっても仕様毎に制御プログラムが存在してしまい、一貫した設計思想で制御プログラムを生成するのが困難であるという問題がある。本発明は、このような事情に鑑みてなされたもので、一貫した設計思想で制御対象物であるモータ等の制御プログラムを容易に生成することができる制御プログラム生成装置を提供することを目的とする。本発明は、制御対象物に対して複数の機能を実行させる制御プログラムを生成する制御プログラム生成装置であって、予め決められている実行優先順位が決まっている機能分類の中から実行すべき機能が含まれる機能分類を選択させる機能分類選択手段と、前記機能を実行すべきタイミングを決めるための入力信号の条件情報を入力する実行条件入力手段と、前記条件を満たした場合に前記機能を実現するための前記制御対象物の動作を、予め決められている動作の選択肢の中から実行すべき順に少なくとも1つ選択し、選択した動作によって前記機能を実現するための動作を定義して動作定義情報を出力する動作定義手段と、前記機能分類に含まれる他の機能との実行優先順を定義する実行優先順位定義手段と、前記動作定義情報の動作と前記制御対象物を動作させる制御プログラムのソースコードが関係付けられて記憶されたソースコードデータベースと、複数の前記機能を実行する条件が満たす事象が同時に発生した際に、前記優先順位の高い機能が実行されるように、前記実行優先順位定義手段によって定義された優先順位情報を参照して、前記動作定義情報に基づき、制御プログラムのソースコードを生成して出力するソースコード生成手段とを備えたことを特徴とする。本発明は、前記制御対象物がワイパ装置のモータであることを特徴とする。本発明によれば、機能を実現するための動作を定義することにより制御プログラムを生成するようにしたため、一貫した設計思想で制御対象物であるモータ等の制御プログラムを容易に生成することができるという効果が得られる。以下、図面を参照して、本発明の一実施形態による制御プログラム生成装置を説明する。図1は同実施形態の構成を示すブロック図である。この図において、符号1は、コンピュータ装置で構成する制御プログラム生成装置である。符号2は、キーボードやポインティングデバイスから構成する入力部である。符号3は、液晶のディスプレイ装置等から構成する表示部である。符号11は、制御対象物に行わせる機能を分類した機能分類情報が予め記憶された機能分類データベース以下、データベースをDBというである。符号12は、制御対象物の機能を実現するための制御対象物の動作の情報が予め記憶された動作DBである。符号13は、生成対象の制御プログラムの条件情報を入力する条件入力部である。符号14は、生成する制御プログラムの機能の機能分類を選択する機能分類選択部である。符号15は、生成対象の制御プログラムの機能を実現する動作を選択する動作選択部である。符号16は、複数の機能のそれぞれに実行の優先順位を定義する優先順位定義部である。符号17は、生成対象の制御プログラムを生成するのに必要なデータこれを中間データというが記憶される中間データ記憶部である。符号18は、所定の機能を実現するために既に生成済みのデータを記憶する流用機能DBである。符号19は、所定の機能を実現するために既に生成済みのデータを流用するための処理を行う流用機能処理部である。符号20は、動作と制御プログラムのソースコードを関係付けられて記憶されたソースコード変換DBである。符号21は、中間データ記憶部17に記憶されたデータに基づき、ソースコード変換DB20を参照して、制御プログラムのソースコードを生成するソースコード生成部である。符号21は、ソースコード生成部21が生成したソースコードを記憶するソースコード記憶部である。符号23は、ソースコード記憶部22に記憶されたソースコードを翻訳するコンパイラである。符号24は、コンパイラの出力である実行モジュールを記憶する実行モジュール記憶部である。ここでは、図8に示すワイパ装置の制御部6においてモータ9の動作を制御する制御プログラムを生成するものとして説明する。ここで、本明細書中で用いる用語について説明する。機能とは、図8に示すワイパ装置によって実現する1つの機能のことであり、例えば、スイッチがOFFになったらワイパアームを格納位置で停止する、スイッチがONになったらワイパアームを1分間に40回往復運動させるなどが機能である。制御プログラムは、このような多数の機能を実現するためのものである。モータ9とワイパアーム8は、リンク機構によって接続されているため、ワイパアーム8の動作を制御することは、モータ9の動作を制御することに相当する。動作とは、機能を実現するためのモータ9における5つの動作のことである、5つの動作には、ブレーキをかけて停止、フリーで停止、反復運動、目的位置へ移動、位置を保持がある。ワイパ装置の機能は、この5つのモータ8の動作のうち、1つの動作または、複数の動作の組合せによって実現する。例えば、スイッチがONになったらワイパアームを1分間に40回往復運動させるという機能は、反復運動の動作によって実現する。また、スイッチがOFFになったらワイパアームを格納位置で停止するという機能は、ワイパアーム8を格納位置まで移動目的位置へ移動し、そこでブレーキをかけて停止させて、その位置を保持することによって実現する。また、条件とは、その機能を実行する条件を示すものであり、前述の例では、スイッチがOFFになったら、スイッチがONになったらが機能実行の条件である。また、優先順位とは、機能実行の条件を満たす複数の事象が同時に発生した場合に、優先順位が高い方の機能を実行させるための順位である。例えば、優先順位の低いスイッチがONになったらワイパアームを1分間に40回往復運動させるという機能と、優先順位の高いボンネットが開いたらブレーキをかけて停止するという機能がある場合、スイッチON状態でワイパアームが往復運動している際に、ボンネットが開くという事象が発生した場合には、ブレーキをかけて停止するように機能することになる。次に、図3を参照して、図1に示す機能分類DB11のデータ構造を説明する。図3は、図1に示す機能分類DB11のデータ構造を示す図である。図3に示すように、機能分類DB11は、予め決められた機能分類毎に、機能分類を識別する機能分類IDと、優先順位と機能分類名が関係付けられて記憶されている。図3に示す例では、機能分類として、停止、緊急動作、モータ過負荷保護、基本払拭、ウォッシャ払拭、間欠動作または雨滴センサ動作の6つの機能分類がある。機能分類は、前述した機能例えば、スイッチがOFFになったらワイパアームを格納位置で停止するであり、これを詳細機能と称するを分類するためのものである。機能分類には、予め優先順位が定義されており、停止、緊急動作、モータ過負荷保護、基本払拭、ウォッシャ払拭、間欠動作または雨滴センサ動作の順になっている。優先順位は、値が小さい方が優先順位が高い。次に、図4を参照して、図1に示す動作DB12のデータ構造を説明する、図4は、図1に示す動作DB12のデータ構造を示す図である。図4に示すように、動作DB12は、5つの動作それぞれ対して、動作識別するための動作IDと、必要に応じてパラメータが関係付けられて記憶されている。パラメータとは、その動作を行うのに必要な数値等であり、例えば、反復運動であれば、1分当たりの回数、目的位置へ移動であれば、位置を示すモータの回転角度、位置を保持であれば保持するトルク値等である。次に、図5を参照して、図1に示す中間データ記憶部17のデータ構造を説明する。図5は、図1に示す中間データ記憶部17のデータ構造を示す図である。図5に示すように、中間データ記憶部17は、条件入力部13から入力された使用モータIDと、作業者の操作に応じて、データ追加単位でデータが追加されるフィールドを有している。データ追加単位のデータが1つの機能を実現するためのデータに相当し、選択された機能分類の機能分類IDと、機能実行条件である条件と、選択された動作の動作ID及びパラメータと、定義された優先順位で構成する。生成しようとする制御プログラムが複数機能を有するものであれば、データ追加単位のデータの集合が操作された順に追加されていく。また、流用機能を盛り込む場合は、その流用機能の機能分類IDと、条件と、動作ID及びパラメータと、優先順位とが追加されることになる。次に、図6を参照して、図1に示す流用機能DB18のデータ構造を説明する。図6は、図1に示す流用機能DB18のデータ構造を示す図である。図8に示すように、流用機能DB18は、機能分類ID、機能分類の優先順位、詳細機能を識別する詳細機能ID、詳細機能の優先順位、詳細機能を作業者が見て分かる表現の文字列である機能概要、条件、動作ID、パラメータが関係付けられて記憶される。詳細機能の優先順位は、その詳細機能が含まれる機能分類内での優先順位である。したがって、各詳細機能の優先順位は、機能分類の優先順位との組み合わせによって定義される。例えば、機能分類IDが2であり、詳細機能IDが21である詳細機能は、優先順位が1であるが、機能分類IDが1であり、詳細機能IDが13である詳細機能は、優先順位が3である。この場合、全体の優先順位は、詳細機能IDが13の詳細機能の方が優先順位は高いことになる。次に、図7を参照して、図1に示すソースコード変換DB20のデータ構造を説明する。図7は、図1に示すソースコード変換DB20のデータ構造を示す図である。図7に示すように、ソースコード変換DB20は、使用モータID毎に、動作IDと、そのパラメータに対応するソースコードが対応付けられて記憶されている。ソースコード中において、パラメータが埋め込むべき箇所には、パラメータが識別可能な情報が埋め込まれており、ソースコード生成部21は、その箇所に埋め込むべきパラメータの値を埋め込んでソースコードを完成させる。次に、図2を参照して、図1に示す制御プログラム生成装置1の処理動作を説明する。図2は、図1に示す制御プログラム生成装置1の処理動作を示すフローチャートである。まず、作業者が、入力部2を操作して、制御プログラム生成を開始する指示を行うと、条件入力部13は、表示部3に条件入力画面を表示する。ここで、作業者は、入力部2を操作して、使用するモータを特定するために、条件入力画面に対して使用モータIDを入力する。ここでは、モータの型名を入力し、条件入力部13が使用モータIDに変換してもよい。また、作業者は、機能実行の条件を条件入力画面に対して入力する。図8に示す信号入力部5は、CAN4を介して送信される信号を常に監視しており、各信号に割り当てられた変数の値を各信号の値に応じて更新する。例えば、ワイパスイッチは、WSWという変数が割り当てられており、ワイパスイッチがONの場合は、変数WSWが1となり、OFFの場合は、変数WSWが0となる。また、イグニッションキーは、IGSWという変数が割り当てられており、イグニッションキーがONの場合は、変数IGSWが1、OFFの場合は、変数IGSWが0となる。制御部6は、信号入力部5内の変数の値を入力し、制御部6上の制御プログラム内の変数を更新する。作業者は、この変数を用いて、機能実行の条件を特定する。例えば、これからソースコードを生成しようとする機能を、ワイパスイッチがONの間実行するとすれば、入力するべき条件は、変数WSW=1となる。条件入力部13は、条件入力画面に入力された情報を読み取り、内部に保持するステップS1。次に、機能分類選択部14は、機能分類DB11から機能分類を読み取り、読み取った機能分類を表示部3に表示するとともに、機能分類を選択するように指示するメッセージを表示する。これに対して、作業者は、これからソースコードを生成しようとする機能が属する1つの機能分類を入力部2を操作して選択する。機能分類選択部14は、ここで選択された機能分類を読み取り、内部に保持するステップS2。次に、動作選択部15は、動作DB12から動作を読み取り、読み取った動作を表示部3に表示するとともに、動作を選択するように指示するメッセージを表示する。これに対して、作業者は、機能を実現するための動作を入力部2を操作して選択する。動作選択部14は、ここで選択された動作を読み取り、内部に保持するステップS3。そして、選択された動作がパラメータを必要とする動作であった場合は、パラメータを入力するように指示を表示部3に表示する。ここで、作業者は、パラメータを入力部2から入力し、動作選択部15は、このパラメータの値を読み取り、内部に保持する。続いて、動作選択部15は、機能を実現するための全ての動作を選択したかを問い合わせるメッセージを表示部3に表示するステップS4。作業者は、さらに動作を選択する必要があれば、同様の操作によって動作を選択する。作業者は、ここで動作を選択する際に、機能を実現するために動作を行わせる順番に動作を選択する。そして、これからソースコードを生成しようとする1つの機能を実現するための全ての動作を選択し終わったら、先に進む操作を入力部2から行う。次に、条件入力部13、機能分類選択部14、動作選択部15は、内部に保持している情報を中間データ記憶部17に記憶するステップS5。これにより、図5に示す1つのデータ追加単位の中間データ機能分類ID、条件、動作ID、パラメータが中間データ記憶部17に記憶されたことになる。このとき、優先順位は空欄のままである。次に、条件入力部13は、再び条件入力画面を表示部3に表示する。ここで、作業者は、さらに他の機能を追加する場合には、条件入力画面に条件を入力し、機能分類選択、動作選択の処理動作を繰り返すステップS6。そして、新たに生成するべき機能の全ての処理が終わった時点で、作業者は、次へ進む操作を入力部2から行う。次に、流用機能処理部19は、流用機能DB18から機能概要を読み出し、読み出した機能概要を表示部3に表示するとともに、流用する機能を選択するように指示するメッセージを表示部3に表示する。これに対して、作業者は、流用する機能を選択する操作を入力部2から行う。流用処理部19は、選択された機能のパラメータを流用機能DB18から読み出し、表示部3に表示するとともに、このパラメータを変更する必要があるか否かを問い合わせるメッセージを表示部3に表示するステップS8。これに対して、作業者は、パラメータを変更する必要があれば入力部2から新たなパラメータの値を入力しステップS9、必要がなければ、必要ないこと示す操作を行う。作業者は、流用する機能が複数ある場合は、流用する機能を選択する操作を継続し、選択するべき流用機能を全て選択する。そして、流用機能処理部19は、選択された流用機能のデータ及び変更されたパラメータを中間データ記憶部17に追加するステップS10。次に、優先順位定義部16は、中間データ記憶部17に記憶された中間データを読み出し、表示部3に表示するともに、各詳細機能の優先順位を定義するように指示するメッセージを表示部3に表示する。ここで作業者は、各詳細機能の優先順位を定義するために、入力部2から優先順位の値を入力する。優先順位定義部16は、入力部2から入力された各詳細機能の優先順位の値を読み取り、中間データ記憶部17に記憶されている中間データの優先順位のフィールドに読み取ったそれぞれの優先順位の値を記憶するステップS11。この動作によって、中間データ記憶部17には、ソースコードを生成するための中間データが記憶されたことになる。続いて、作業者は、次に進む操作を入力部2から行う。次に、ソースコード生成部21は、中間データ記憶部17に記憶されている中間データを各詳細機能毎に読み出し、ソースコード変換DB20を参照して、中間データをソースコードに変換してソースコード記憶部22に記憶するステップS12。これにより、各詳細機能毎のソースコードが生成されてソースコード記憶部22に記憶されることになる。このとき、ソースコード生成部21は、各詳細機能のソースコード内に、優先順位の処理を埋め込む。この優先順位の処理とは、第1の詳細機能が実行中に、第2の詳細機能を実行するべき状態になった第2の詳細機能の実行条件を満たした場合に、第2の詳細機能は、実行中の詳細機能である第1の詳細機能の優先順位と自己第2の詳細機能の優先順位とを比較して、自己の優先順位が実行中の優先順位より低い場合は、自己の実行を行わず処理を行わず終了する、自己の優先順位が実行中の優先順位より高い場合は、実行中の詳細機能の実行を停止させ、自己の詳細機能を実行する処理である。実行中の詳細機能の優先順位を取得し、自己の優先順位と比較する処理と、優先順位に応じて、処理を終了するか、自己の処理を実行するかを選択する処理とを各ソースコード内に埋め込む。これにより、2つの事象が同時に発生した場合でも優先順位に基づいて実行処理が行われる制御プログラムを生成することができる。次に、流用機能処理部19は、中間データ記憶部17に記憶されている中間データのうち、流用された機能でない中間データを読み出し、流用機能DB18に書き込むことにより、流用機能DBを更新する。これにより、既に生成した機能のデータが流用機能DB18に記憶されることになるため、次回の制御プログラム生成時に流用することが可能となる。そして、作業者は、入力部2を操作して、コンパイラ23を起動して、ソースコード記憶部22に記憶されているソースコードを翻訳することにより実行モジュールに変換し、得られた実行モジュールを実行モジュール記憶部24に記憶する。この実行モジュール記憶部24に記憶された実行モジュールが図8に示す制御部6にインストールされて実行されることになる。以上説明したように、実現する詳細機能を予め決められた5つの動作の組み合わせによって定義するようにしたため、容易に制御プログラムの生成を行うことが可能になる。また、各詳細機能毎にソースコードを生成するようにしたため、メンテナンスを容易に行うことが可能になる。また、複数の詳細機能に対して優先順位を付与するようにして、2つの詳細機能を実行するべき事象が発生した場合に、優先順位に応じて、詳細機能が実行されるようにしたため、要求される仕様が異なっている場合でも一貫して詳細機能の実行順位を保つことが可能となる。また、制御プログラムを機能ベースで生成するようにしたため、生成された制御プログラムの品質を一定に保つことが可能となる。なお、前述した説明においては、ワイパ装置のモータを制御する制御プログラムを生成する例を説明したが、動作を定義することによって所望の機能を実現することができる制御対象物であれば、ワイパ装置のモータに限らず、他の制御対象物の制御プログラム生成にも適用可能である。また、図1における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより制御プログラム生成処理を行ってもよい。なお、ここでいうコンピュータシステムとは、OSや周辺機器等のハードウェアを含むものとする。また、コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらにコンピュータ読み取り可能な記録媒体とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリRAMのように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する伝送媒体は、インターネット等のネットワーク通信網や電話回線等の通信回線通信線のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル差分プログラムであってもよい。