(57)【特許請求の範囲】
【請求項１】
制御対象物に対して複数の機能を実行させる制御プログラムを生成する制御プログラム生成装置であって、
予め実行優先順位が決まっている機能分類の中から実行すべき機能が含まれる機能分類を選択させる機能分類選択手段と、
前記機能を実行すべきタイミングを決めるための入力信号の条件情報を入力する実行条件入力手段と、
前記条件情報の条件を満たした場合に前記機能を実現するための前記制御対象物の動作を、予め決められている動作の選択肢の中から実行すべき順に少なくとも１つ選択し、選択した動作によって前記機能を実現するための動作を定義して動作定義情報を出力する動作定義手段と、
同じ前記機能分類に含まれる前記機能が複数存在する際に、前記機能それぞれについて前記機能分類内の実行優先順位を定義する実行優先順位定義手段と、
前記動作定義情報の動作と前記制御対象物を動作させる制御プログラムのソースコードが関係付けられて記憶されたソースコードデータベースと、
前記実行優先順位定義手段によって定義された前記実行優先順位と、前記定義された前記実行優先順位より優先する予め決まっている前記機能分類の前記実行優先順位とを参照して、複数の前記機能を実行する前記条件情報の条件を満たす事象が同時に発生した際に、前記実行優先順位の高い機能が実行されるように、前記動作定義情報に基づき、前記ソースコードデータベースに記憶されている制御プログラムのソースコードを利用して、生成すべき前記制御プログラムのソースコードを生成して出力するソースコード生成手段と
を備えたことを特徴とする制御プログラム生成装置。
【請求項２】
前記制御対象物がワイパ装置のモータであることを特徴とする請求項１に記載の制御プログラム生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータ等の制御対象物の動作を制御する制御プログラムを生成する制御プログラム生成装置に関する。
【背景技術】
【０００２】
車両には、ウィンドシールドに付着した雨や前車の飛沫等を拭き取り、運転者の視界を確保するワイパ装置が設けられている。ワイパ装置は、ワイパ駆動装置によって揺動制御されるワイパアームを有し、ワイパアームの先端にウィンドシールドに当接させられるワイパブレードが装着されている。ワイパブレードが装着されたワイパアームが往復運動することにより、ウインドシールドの払拭が行われることになる。ワイパアームは、モータの回転運動をリンク機構によって往復運動に変えることにより、払拭動作が行われる。
【０００３】
図８を参照して、ワイパ装置の構成を説明する。図８は、ワイパ装置の構成を示すブロック図である。図８において、符号４は、車両内に備えられた車内ＬＡＮ、例えば、ＣＡＮ（Controller Area Network）であり、車両内でやり取りされる信号が送信される。符号５は、ＣＡＮ４を介して、車両内でやり取りされる信号を入力する信号入力部である。符号６は、ワイパ装置の動作を統括して制御する制御部であり、マイクロコンピュータ等が用いられる。符号７は、制御部６から出力する駆動指令に応じてモータに流す電流を制御してモータを駆動するモータ駆動部である。符号８は、ウインドシールドを払拭するワイパアームである。符号９は、ワイパアーム８を動作させる動力を発生するモータである。ワイパアーム８は、モータ９とリンク機構によって接続されており、モータ９の回転運動を往復運動に変換されて動作する。実際には、図８に示すモータ９、信号入力部５、制御部６、モータ駆動部７が一体構成となっている機電一体型のワイパ装置である。
【０００４】
制御部６内には、制御プログラムの実行モジュールがインストールされており、この制御プログラムに応じて、モータ９の回転が制御されて、ワイパアーム８による払拭動作が制御されることになる。ワイパ装置は、車種によっても要求される仕様が異なり、多種多様になっている。そのため、制御プログラムを生成する作業は多大な労力を必要とする。
【０００５】
このような問題を解決するために、モデルベース開発を実現するオートコーディングの利便性向上と、生産性向上を目的として、モデルをソースコード生成可能なブロックを組み合わせたライブラリモデルとして記述し、ソースコードをコントローラ用にスケーリング管理して生成し、複数の関数と合わせてソースファイルにするインターフェイス手段を有するコントローラ開発ツールが知られている（例えば、特許文献１参照）。この開発ツールによれば、制御ソフトの生産性を向上させ、制御ソフトの品質低下を抑制することができるようになる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−００９４３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、ワイパ装置のように、車両に搭載される装置は、車両メーカ毎に仕様が異なり、車種毎にも仕様が異なっていることが多く、その仕様毎に制御プログラムを生成していたのでは制御プログラムが大きくなってしまうという問題がある。また、仕様変更が発生する度に制御プログラムの変更作業が発生し、多大な労力を必要とする。特に、新たな機能を追加する場合には、既にある他の機能との実行順位を決めなければならないため、簡単な機能の追加であっても制御プログラム全体を見渡して、プログラムを生成しなければならず、多大な労力を必要とする。また、制御動作が同じであっても仕様毎に制御プログラムが存在してしまい、一貫した設計思想で制御プログラムを生成するのが困難であるという問題がある。
【０００８】
本発明は、このような事情に鑑みてなされたもので、一貫した設計思想で制御対象物であるモータ等の制御プログラムを容易に生成することができる制御プログラム生成装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、制御対象物に対して複数の機能を実行させる制御プログラムを生成する制御プログラム生成装置であって、予め実行優先順位が決まっている機能分類の中から実行すべき機能が含まれる機能分類を選択させる機能分類選択手段と、前記機能を実行すべきタイミングを決めるための入力信号の条件情報を入力する実行条件入力手段と、前記条件情報の条件を満たした場合に前記機能を実現するための前記制御対象物の動作を、予め決められている動作の選択肢の中から実行すべき順に少なくとも１つ選択し、選択した動作によって前記機能を実現するための動作を定義して動作定義情報を出力する動作定義手段と、同じ前記機能分類に含まれる前記機能が複数存在する際に、前記機能それぞれについて前記機能分類内の実行優先順位を定義する実行優先順位定義手段と、前記動作定義情報の動作と前記制御対象物を動作させる制御プログラムのソースコードが関係付けられて記憶されたソースコードデータベースと、前記実行優先順位定義手段によって定義された前記実行優先順位と予め決まっている前記機能分類の前記実行優先順位とを参照して、複数の前記機能を実行する前記条件情報の条件を満たす事象が同時に発生した際に、前記実行優先順位の高い機能が実行されるように、前記動作定義情報に基づき、前記ソースコードデータベースに記憶されている制御プログラムのソースコードを利用して、生成すべき前記制御プログラムのソースコードを生成して出力するソースコード生成手段とを備えたことを特徴とする。
【００１０】
本発明は、前記制御対象物がワイパ装置のモータであることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、機能を実現するための動作を定義することにより制御プログラムを生成するようにしたため、一貫した設計思想で制御対象物であるモータ等の制御プログラムを容易に生成することができるという効果が得られる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態の構成を示すブロック図である。
【図２】図１に示す制御プログラム生成装置１の処理動作を示すフローチャートである。
【図３】図１に示す機能分類ＤＢ１１のデータ構造を示す説明図である。
【図４】図１に示す動作ＤＢ１２のデータ構造を示す説明図である。
【図５】図１に示す中間データ記憶部１７のデータ構造を示す説明図である。
【図６】図１に示す流用機能ＤＢ１８のデータ構造を示す説明図である。
【図７】図１に示すソースコード変換ＤＢ２０のデータ構造を示す説明図である。
【図８】ワイパ装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、本発明の一実施形態による制御プログラム生成装置を説明する。図１は同実施形態の構成を示すブロック図である。この図において、符号１は、コンピュータ装置で構成する制御プログラム生成装置である。符号２は、キーボードやポインティングデバイスから構成する入力部である。符号３は、液晶のディスプレイ装置等から構成する表示部である。符号１１は、制御対象物に行わせる機能を分類した機能分類情報が予め記憶された機能分類データベース（以下、データベースをＤＢという）である。符号１２は、制御対象物の機能を実現するための制御対象物の動作の情報が予め記憶された動作ＤＢである。符号１３は、生成対象の制御プログラムの条件情報を入力する条件入力部である。符号１４は、生成する制御プログラムの機能の機能分類を選択する機能分類選択部である。符号１５は、生成対象の制御プログラムの機能を実現する動作を選択する動作選択部である。符号１６は、複数の機能のそれぞれに実行の優先順位を定義する優先順位定義部である。
【００１４】
符号１７は、生成対象の制御プログラムを生成するのに必要なデータ（これを中間データという）が記憶される中間データ記憶部である。符号１８は、所定の機能を実現するために既に生成済みのデータを記憶する流用機能ＤＢである。符号１９は、所定の機能を実現するために既に生成済みのデータを流用するための処理を行う流用機能処理部である。
符号２０は、動作と制御プログラムのソースコードを関係付けられて記憶されたソースコード変換ＤＢである。符号２１は、中間データ記憶部１７に記憶されたデータに基づき、ソースコード変換ＤＢ２０を参照して、制御プログラムのソースコードを生成するソースコード生成部である。符号２２は、ソースコード生成部２１が生成したソースコードを記憶するソースコード記憶部である。符号２３は、ソースコード記憶部２２に記憶されたソースコードを翻訳するコンパイラである。符号２４は、コンパイラ２３の出力である実行モジュールを記憶する実行モジュール記憶部である。
【００１５】
ここでは、図８に示すワイパ装置の制御部６においてモータ９の動作を制御する制御プログラムを生成するものとして説明する。
【００１６】
ここで、本明細書中で用いる用語について説明する。機能とは、図８に示すワイパ装置によって実現する１つの機能のことであり、例えば、「スイッチがＯＦＦになったらワイパアームを格納位置で停止する」、「スイッチがＯＮになったらワイパアームを１分間に４０回往復運動させる」などが機能である。制御プログラムは、このような多数の機能を実現するためのものである。モータ９とワイパアーム８は、リンク機構によって接続されているため、ワイパアーム８の動作を制御することは、モータ９の動作を制御することに相当する。
【００１７】
動作とは、機能を実現するためのモータ９における５つの動作のことである、５つの動作には、「ブレーキをかけて停止」、「フリーで停止」、「反復運動」、「目的位置へ移動」、「位置を保持」がある。ワイパ装置の機能は、この５つのモータ９の動作のうち、１つの動作または、複数の動作の組合せによって実現する。例えば、「スイッチがＯＮになったらワイパアームを１分間に４０回往復運動させる」という機能は、「反復運動」の動作によって実現する。また、「スイッチがＯＦＦになったらワイパアームを格納位置で停止する」という機能は、ワイパアーム８を格納位置まで移動（「目的位置へ移動」）し、そこで「ブレーキをかけて停止」させて、その「位置を保持」することによって実現する。
【００１８】
また、条件とは、その機能を実行する条件を示すものであり、前述の例では、「スイッチがＯＦＦになったら」、「スイッチがＯＮになったら」が機能実行の条件である。また、優先順位とは、機能実行の条件を満たす複数の事象が同時に発生した場合に、優先順位が高い方の機能を実行させるための順位である。例えば、優先順位の低い「スイッチがＯＮになったらワイパアームを１分間に４０回往復運動させる」という機能と、優先順位の高い「ボンネットが開いたらブレーキをかけて停止する」という機能がある場合、「スイッチＯＮ」状態でワイパアームが往復運動している際に、「ボンネットが開く」という事象が発生した場合には、ブレーキをかけて停止するように機能することになる。
【００１９】
次に、図３を参照して、図１に示す機能分類ＤＢ１１のデータ構造を説明する。図３は、図１に示す機能分類ＤＢ１１のデータ構造を示す図である。図３に示すように、機能分類ＤＢ１１は、予め決められた機能分類毎に、機能分類を識別する機能分類ＩＤと、優先順位と機能分類名が関係付けられて記憶されている。図３に示す例では、機能分類として、「停止」、「緊急動作」、「モータ過負荷保護」、「基本払拭」、「ウォッシャ払拭」、「間欠動作または雨滴センサ動作」の６つの機能分類がある。機能分類は、前述した機能（例えば、「スイッチがＯＦＦになったらワイパアームを格納位置で停止する」であり、これを詳細機能と称する）を分類するためのものである。機能分類には、予め優先順位が定義されており、「停止」、「緊急動作」、「モータ過負荷保護」、「基本払拭」、「ウォッシャ払拭」、「間欠動作または雨滴センサ動作」の順になっている。優先順位は、値が小さい方が優先順位が高い。
【００２０】
次に、図４を参照して、図１に示す動作ＤＢ１２のデータ構造を説明する、図４は、図１に示す動作ＤＢ１２のデータ構造を示す図である。図４に示すように、動作ＤＢ１２は、５つの動作それぞれ対して、動作識別するための動作ＩＤと、必要に応じてパラメータが関係付けられて記憶されている。パラメータとは、その動作を行うのに必要な数値等であり、例えば、「反復運動」であれば、１分当たりの回数、「目的位置へ移動」であれば、位置を示すモータの回転角度、「位置を保持」であれば保持するトルク値等である。
【００２１】
次に、図５を参照して、図１に示す中間データ記憶部１７のデータ構造を説明する。図５は、図１に示す中間データ記憶部１７のデータ構造を示す図である。図５に示すように、中間データ記憶部１７は、条件入力部１３から入力された「使用モータＩＤ」と、作業者の操作に応じて、データ追加単位でデータが追加されるフィールドを有している。データ追加単位のデータが１つの機能を実現するためのデータに相当し、選択された機能分類の「機能分類ＩＤ」と、機能実行条件である「条件」と、選択された動作の「動作ＩＤ」及び「パラメータ」と、定義された「優先順位」で構成する。生成しようとする制御プログラムが複数機能を有するものであれば、データ追加単位のデータの集合が操作された順に追加されていく。また、流用機能を盛り込む場合は、その流用機能の「機能分類ＩＤ」と、「条件」と、「動作ＩＤ」及び「パラメータ」と、「優先順位」とが追加されることになる。
【００２２】
次に、図６を参照して、図１に示す流用機能ＤＢ１８のデータ構造を説明する。図６は、図１に示す流用機能ＤＢ１８のデータ構造を示す図である。図８に示すように、流用機能ＤＢ１８は、「機能分類ＩＤ」、機能分類の「優先順位」、詳細機能を識別する「詳細機能ＩＤ」、詳細機能の「優先順位」、詳細機能を作業者が見て分かる表現の文字列である「機能概要」、「条件」、「動作ＩＤ」、「パラメータ」が関係付けられて記憶される。詳細機能の「優先順位」は、その詳細機能が含まれる機能分類内での優先順位である。したがって、各詳細機能の優先順位は、機能分類の優先順位との組み合わせによって定義される。例えば、機能分類ＩＤが「２」であり、詳細機能ＩＤが「２１」である詳細機能は、優先順位が「１」であるが、機能分類ＩＤが「１」であり、詳細機能ＩＤが「１３」である詳細機能は、優先順位が「３」である。この場合、全体の優先順位は、詳細機能ＩＤが「１３」の詳細機能の方が優先順位は高いことになる。
【００２３】
次に、図７を参照して、図１に示すソースコード変換ＤＢ２０のデータ構造を説明する。図７は、図１に示すソースコード変換ＤＢ２０のデータ構造を示す図である。図７に示すように、ソースコード変換ＤＢ２０は、使用モータＩＤ毎に、動作ＩＤと、そのパラメータに対応するソースコードが対応付けられて記憶されている。ソースコード中において、パラメータが埋め込むべき箇所には、パラメータが識別可能な情報が埋め込まれており、ソースコード生成部２１は、その箇所に埋め込むべきパラメータの値を埋め込んでソースコードを完成させる。
【００２４】
次に、図２を参照して、図１に示す制御プログラム生成装置１の処理動作を説明する。図２は、図１に示す制御プログラム生成装置１の処理動作を示すフローチャートである。まず、作業者が、入力部２を操作して、制御プログラム生成を開始する指示を行うと、条件入力部１３は、表示部３に条件入力画面を表示する。ここで、作業者は、入力部２を操作して、使用するモータを特定するために、条件入力画面に対して使用モータＩＤを入力する。ここでは、モータの型名を入力し、条件入力部１３が使用モータＩＤに変換してもよい。また、作業者は、機能実行の条件を条件入力画面に対して入力する。
【００２５】
図８に示す信号入力部５は、ＣＡＮ４を介して送信される信号を常に監視しており、各信号に割り当てられた変数の値を各信号の値に応じて更新する。例えば、ワイパスイッチは、ＷＳＷという変数が割り当てられており、ワイパスイッチがＯＮの場合は、変数ＷＳＷが「１」となり、ＯＦＦの場合は、変数ＷＳＷが「０」となる。また、イグニッションキーは、ＩＧＳＷという変数が割り当てられており、イグニッションキーがＯＮの場合は、変数ＩＧＳＷが「１」、ＯＦＦの場合は、変数ＩＧＳＷが「０」となる。制御部６は、信号入力部５内の変数の値を入力し、制御部６上の制御プログラム内の変数を更新する。作業者は、この変数を用いて、機能実行の条件を特定する。例えば、これからソースコードを生成しようとする機能を、ワイパスイッチがＯＮの間実行するとすれば、入力するべき条件は、「変数ＷＳＷ＝１」となる。条件入力部１３は、条件入力画面に入力された情報を読み取り、内部に保持する（ステップＳ１）。
【００２６】
次に、機能分類選択部１４は、機能分類ＤＢ１１から機能分類を読み取り、読み取った機能分類を表示部３に表示するとともに、機能分類を選択するように指示するメッセージを表示する。これに対して、作業者は、これからソースコードを生成しようとする機能が属する１つの機能分類を入力部２を操作して選択する。機能分類選択部１４は、ここで選択された機能分類を読み取り、内部に保持する（ステップＳ２）。
【００２７】
次に、動作選択部１５は、動作ＤＢ１２から動作を読み取り、読み取った動作を表示部３に表示するとともに、動作を選択するように指示するメッセージを表示する。これに対して、作業者は、機能を実現するための動作を入力部２を操作して選択する。動作選択部１５は、ここで選択された動作を読み取り、内部に保持する（ステップＳ３）。そして、選択された動作がパラメータを必要とする動作であった場合は、パラメータを入力するように指示を表示部３に表示する。ここで、作業者は、パラメータを入力部２から入力し、動作選択部１５は、このパラメータの値を読み取り、内部に保持する。続いて、動作選択部１５は、機能を実現するための全ての動作を選択したかを問い合わせるメッセージを表示部３に表示する（ステップＳ４）。作業者は、さらに動作を選択する必要があれば、同様の操作によって動作を選択する。作業者は、ここで動作を選択する際に、機能を実現するために動作を行わせる順番に動作を選択する。そして、これからソースコードを生成しようとする１つの機能を実現するための全ての動作を選択し終わったら、先に進む操作を入力部２から行う。
【００２８】
次に、条件入力部１３、機能分類選択部１４、動作選択部１５は、内部に保持している情報を中間データ記憶部１７に記憶する（ステップＳ５）。これにより、図５に示す１つのデータ追加単位の中間データ（機能分類ＩＤ、条件、動作ＩＤ、パラメータ）が中間データ記憶部１７に記憶されたことになる。このとき、優先順位は空欄のままである。
【００２９】
次に、条件入力部１３は、再び条件入力画面を表示部３に表示する。ここで、作業者は、さらに他の機能を追加する場合には、条件入力画面に条件を入力し、機能分類選択、動作選択の処理動作を繰り返す（ステップＳ６）。そして、新たに生成するべき機能の全ての処理が終わった時点で、作業者は、次へ進む操作を入力部２から行う。
【００３０】
次に、流用機能処理部１９は、流用機能ＤＢ１８から機能概要を読み出し、読み出した機能概要を表示部３に表示するとともに、流用する機能を選択するように指示するメッセージを表示部３に表示する。これに対して、作業者は、流用する機能を選択する操作を入力部２から行う。流用機能処理部１９は、選択された機能のパラメータを流用機能ＤＢ１８から読み出し、表示部３に表示するとともに、このパラメータを変更する必要があるか否かを問い合わせるメッセージを表示部３に表示する（ステップＳ８）。これに対して、作業者は、パラメータを変更する必要があれば入力部２から新たなパラメータの値を入力し（ステップＳ９）、必要がなければ、必要ないこと示す操作を行う。作業者は、流用する機能が複数ある場合は、流用する機能を選択する操作を継続し、選択するべき流用機能を全て選択する。そして、流用機能処理部１９は、選択された流用機能のデータ及び変更されたパラメータを中間データ記憶部１７に追加する（ステップＳ１０）。
【００３１】
次に、優先順位定義部１６は、中間データ記憶部１７に記憶された中間データを読み出し、表示部３に表示するともに、各詳細機能の優先順位を定義するように指示するメッセージを表示部３に表示する。ここで作業者は、各詳細機能の優先順位を定義するために、入力部２から優先順位の値を入力する。優先順位定義部１６は、入力部２から入力された各詳細機能の優先順位の値を読み取り、中間データ記憶部１７に記憶されている中間データの優先順位のフィールドに読み取ったそれぞれの優先順位の値を記憶する（ステップＳ１１）。この動作によって、中間データ記憶部１７には、ソースコードを生成するための中間データが記憶されたことになる。続いて、作業者は、次に進む操作を入力部２から行う。
【００３２】
次に、ソースコード生成部２１は、中間データ記憶部１７に記憶されている中間データを各詳細機能毎に読み出し、ソースコード変換ＤＢ２０を参照して、中間データをソースコードに変換してソースコード記憶部２２に記憶する（ステップＳ１２）。これにより、各詳細機能毎のソースコードが生成されてソースコード記憶部２２に記憶されることになる。このとき、ソースコード生成部２１は、各詳細機能のソースコード内に、優先順位の処理を埋め込む。この優先順位の処理とは、第１の詳細機能が実行中に、第２の詳細機能を実行するべき状態になった（第２の詳細機能の実行条件を満たした）場合に、第２の詳細機能は、実行中の詳細機能である第１の詳細機能の優先順位と自己（第２の詳細機能）の優先順位とを比較して、自己の優先順位が実行中の優先順位より低い場合は、自己の実行を行わず（処理を行わず終了する）、自己の優先順位が実行中の優先順位より高い場合は、実行中の詳細機能の実行を停止させ、自己の詳細機能を実行する処理である。実行中の詳細機能の優先順位を取得し、自己の優先順位と比較する処理と、優先順位に応じて、処理を終了するか、自己の処理を実行するかを選択する処理とを各ソースコード内に埋め込む。これにより、２つの事象が同時に発生した場合でも優先順位に基づいて実行処理が行われる制御プログラムを生成することができる。
【００３３】
次に、流用機能処理部１９は、中間データ記憶部１７に記憶されている中間データのうち、流用された機能でない中間データを読み出し、流用機能ＤＢ１８に書き込むことにより、流用機能ＤＢを更新する。これにより、既に生成した機能のデータが流用機能ＤＢ１８に記憶されることになるため、次回の制御プログラム生成時に流用することが可能となる。
【００３４】
そして、作業者は、入力部２を操作して、コンパイラ２３を起動して、ソースコード記憶部２２に記憶されているソースコードを翻訳することにより実行モジュールに変換し、得られた実行モジュールを実行モジュール記憶部２４に記憶する。この実行モジュール記憶部２４に記憶された実行モジュールが図８に示す制御部６にインストールされて実行されることになる。
【００３５】
以上説明したように、実現する詳細機能を予め決められた５つの動作の組み合わせによって定義するようにしたため、容易に制御プログラムの生成を行うことが可能になる。また、各詳細機能毎にソースコードを生成するようにしたため、メンテナンスを容易に行うことが可能になる。また、複数の詳細機能に対して優先順位を付与するようにして、２つの詳細機能を実行するべき事象が発生した場合に、優先順位に応じて、詳細機能が実行されるようにしたため、要求される仕様が異なっている場合でも一貫して詳細機能の実行順位を保つことが可能となる。また、制御プログラムを機能ベースで生成するようにしたため、生成された制御プログラムの品質を一定に保つことが可能となる。
【００３６】
なお、前述した説明においては、ワイパ装置のモータを制御する制御プログラムを生成する例を説明したが、動作を定義することによって所望の機能を実現することができる制御対象物であれば、ワイパ装置のモータに限らず、他の制御対象物の制御プログラム生成にも適用可能である。
【００３７】
また、図１における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより制御プログラム生成処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００３８】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【産業上の利用可能性】
【００３９】
モータ等の制御対象物の動作を制御する制御プログラムを生成する際に、機能を定義し、機能を動作の集まりで実現することが不可欠な用途に適用できる。
【符号の説明】
【００４０】
１・・・制御プログラム生成装置、２・・・入力部、３・・・表示部、４・・・ＣＡＮ、５・・・信号入力部、６・・・制御部、７・・・モータ駆動部、８・・・ワイパアーム、９・・・モータ（制御対象物）、１１・・・機能分類ＤＢ、１２・・・動作ＤＢ、１３・・・条件入力部、１４・・・機能分類選択部、１５・・・動作選択部、１６・・・優先順位定義部、１７・・・中間データ記憶部、１８・・・流用機能ＤＢ、１９・・・流用機能処理部、２０・・・ソースコード変換ＤＢ、２１・・・ソースコード生成部、２２・・・ソースコード記憶部、２３・・・コンパイラ、２４・・・実行モジュール記憶部
【図１】
0005745942.tif 000002
【図２】
0005745942.tif 000003
【図３】
0005745942.tif 000004
【図４】
0005745942.tif 000005
【図５】
0005745942.tif 000006
【図６】
0005745942.tif 000007
【図７】
0005745942.tif 000008
【図８】
0005745942.tif 000009