(57)【特許請求の範囲】
【請求項１】
制御プログラムのソースコードおよび前記ソースコードにて使用されているデータ型を定義する定義ファイルに基づいて生成された実行形式ファイルをメモリにロードし、前記メモリにロードした実行形式ファイルにしたがって電動機の駆動制御を実行する駆動装置の制御を行う制御装置において、
前記実行形式ファイルとともに生成されたマップファイルであって、前記メモリに外部変数として記憶されるデータを識別するための識別子として前記ソースコードに埋め込まれているシンボル名に対応付けて前記メモリにて当該データを記憶する記憶領域のアドレスが書き込まれているとともに、前記外部変数のデータ型が構造体型である場合には当該構造体型の構成要素である各メンバのシンボル名に対応付けて前記メモリにて当該メンバに対応するデータを記憶する記憶領域のアドレスが書き込まれているマップファイルと、
読み出し対象または更新対象のデータを示すものとして与えられたシンボル名を前記マップファイルを参照してアドレスに変換する変換手段と、を有し、
前記変換手段により得られたアドレスの示す記憶領域に記憶されているデータの読み出しまたは更新を前記駆動装置に指示する
ことを特徴とする制御装置。
【請求項２】
制御プログラムのソースコードおよび前記ソースコードにて使用されているデータ型を定義する定義ファイルに基づいて生成された実行形式ファイルであって、各々版数の異なる前記ソースコードおよび前記定義ファイルに基づいて生成される複数種の前記実行形式ファイルの何れかをメモリにロードし、前記メモリにロードした実行形式ファイルにしたがって電動機の駆動制御を実行する駆動装置の制御を行う制御装置において、
前記複数種の実行形式ファイルの各々の生成の際に生成されたマップファイルであって、前記メモリに外部変数として記憶されるデータを識別するための識別子として当該マップファイルに対応する版数のソースコードに埋め込まれているシンボル名に対応付けて前記メモリにて当該データを記憶する記憶領域のアドレスが各々書き込まれている複数種のマップファイルと、
読み出し対象または更新対象のデータを示すものとして与えられたシンボル名を前記複数種のマップファイルの何れかを参照してアドレスに変換する変換手段と、を有し、
前記駆動装置には、前記メモリへロードする実行形式ファイルの版数を示す版数情報が記憶されており、
前記変換手段は、前記駆動装置に記憶されている版数情報の示す版数に対応するマップファイルを使用し、
前記変換手段により得られたアドレスの示す記憶領域に記憶されているデータの読み出しまたは更新を前記駆動装置に指示する
ことを特徴とする制御装置。
【請求項３】
前記駆動装置では、各々版数の異なる前記ソースコードおよび前記定義ファイルに基づいて生成された複数種の前記実行形式ファイルの何れかが前記メモリへロードされるとともに、前記駆動装置には前記メモリにロードする実行形式ファイルの版数を示す版数情報が記憶されており、
前記制御装置は、複数種の前記実行形式ファイルの各々の生成の際に生成された前記マップファイルを有し、
前記変換手段は、前記駆動装置に記憶されている版数情報の示す版数に対応する前記マップファイルを使用することを特徴とする請求項１に記載の制御装置。
【請求項４】
入力手段と、
制御手段と、を有し、
前記制御手段は、
電動機の駆動制御を行う駆動装置の制御プログラムのソースコードと、前記ソースコードにて使用されているデータ型を定義する定義ファイルと、前記ソースコードおよび前記定義ファイルに基づいて前記制御プログラムの実行形式ファイルを生成する際に生成されたマップファイルであって、外部変数として前記駆動装置に記憶されるデータを識別するための識別子として前記ソースコードに埋め込まれているシンボル名に対応付けて前記駆動装置にて当該データを記憶する記憶領域のアドレスが書き込まれているマップファイルと、を前記入力手段を介して受け取り、
前記入力手段を介して受け取った前記ソースコードに構造体型の外部変数を表すシンボル名が含まれている場合には、前記入力手段を介して受け取った定義ファイルを参照して前記構造体型の外部変数の構成要素となるメンバを特定し、特定したメンバの各々について、前記構造体型の先頭を基準とした当該メンバの相対位置であるオフセットを当該構造体型にて当該メンバに先行する各メンバのデータ型に応じて算出し、前記駆動装置において当該外部変数の記憶される記憶領域のアドレスに当該オフセットを加算して得られるアドレスを当該メンバを示すシンボル名に対応付けて前記入力手段を介して受け取ったマップファイルに追記するマップファイル変換処理を実行する
ことを特徴とするマップファイル変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、電動機に供給する電力を制御することで当該電動機の駆動制御を行う駆動装置の制御技術に関する。
【背景技術】
【０００２】
近年、環境問題への関心の高まりに伴い、車載電池を電源とする電池式電気自動車（以下、単に「電気自動車」と呼ぶ）が注目を集めている。電気自動車には、三相交流電動機などの電動機が動力源として搭載されているとともに、車載電池から供給される直流電力を交流電力に変換して電動機に供給するインバータなどの駆動装置と、駆動装置の制御を行う制御装置（ＶＣＵ（Vehicle Control Unit））が搭載されている。制御装置は、駆動装置へ与えるトルク指令等の各種指令値を運転者の操作に応じて調整し、駆動装置は、制御装置から与えられる指令値に応じて、電動機に与える電力を調整する。これにより、当該電動機のトルク或いは回転速度が変化し、運転操作に応じた走行制御が実現される。また、制御装置は、信号線を介して駆動装置のメモリに格納されている各種データ（例えば、モータ定数などのパラメータ情報や各相の電流値を表すデータなど）を取得し、各種メータ類の表示制御をそれらデータに基づいて行う処理も実行する。これにより、車両の状態を運転者に把握させることができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭６１−２７９９０６号公報
【特許文献２】特開２００９−２４５４５６号公報
【特許文献３】特開２００５−３５２６１２号公報
【特許文献４】特開２００３−１５０２０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このように、駆動装置と制御装置との間では信号線を介して各種データの送受信が行われる。また、駆動装置の保守点検の際には、パーソナルコンピュータなどの試験装置を上記制御装置として駆動装置に接続し、駆動装置のメモリに格納されているデータの参照或いは当該データを更新したときの電動機の振る舞いの観察などの各種試験が行われる。従来、駆動装置のメモリに格納されている各種データに対する試験装置等の外部装置によるアクセスは、データ毎に固有の機能コードを割り振っておき、メモリからの読み出し或いは書き換えを所望するデータを機能コードにより指定することで実現されることが一般的であった。より詳細に説明すると、駆動装置には、メモリにおいて各データを記憶する記憶領域の先頭アドレス（以下、単に「アドレス」と呼ぶ）に対応づけて各データの機能コードが書き込まれたテーブルを記憶させておく。そして、読み出し対象或いは更新対象のデータを指定するものとして試験装置から与えられた機能コードを上記テーブルの格納内容を参照してアドレスに変換し、当該アドレスの示す記憶領域に記憶されているデータを読み出して返信する、或いは当該データを更新する処理を駆動装置に実行させるのである。【０００５】
しかし、機能コードによるデータの指定には以下のような問題点があった。まず、第１に、保守点検の際の作業効率が悪いという点である。機能コードは一連番号のように割り振られていることが多いため、どのようなデータを表しているのかを機能コードから判断することは難しく、また、読み出し或いは更新を所望するデータの機能コードを試験担当者に類推させることも難しい。このため、試験担当者は、読み出し或いは更新を所望するデータにどのような機能コードが割り振られているのかを逐一マニュアル等を参照して調べつつ各種試験を行わなければならなかった。第２に、読み出し対象或いは更新対象のデータの追加や変更、削除が発生する都度、各駆動装置に記憶されているテーブルを更新する必要があるという点である。そして、第３に、機能コードからアドレスへの変換処理のために保守点検の対象の駆動装置に余計な処理負荷がかかり、正確な点検を行えない虞があるといった点である。【０００６】
本発明は上記課題に鑑みて為されたものであり、駆動装置に余計な処理負荷を掛けることなく、読み出し対象或いは更新対象のデータの追加、変更、削除に柔軟に対処することが可能で、かつ読み出し或いは更新を所望するデータを直感的に指定できるようにする技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために本発明は、メモリにロードした制御プログラムにしたがって電動機の駆動制御を行う駆動装置の制御を行う制御装置に、マップファイルを記憶させておくとともに、以下の変換手段を設ける。マップファイルには、制御プログラムをロードして実行中の駆動装置のメモリに記憶されるデータを識別するための識別子としてその制御プログラムのソースコードに含まれているシンボル名（変数名を表す文字列）に対応付けて当該データを記憶する記憶領域のアドレスが書き込まれている。上記変換手段には、読み出し対象または更新対象のデータを示すものとして与えられたシンボル名を、上記マップファイルを参照してアドレスに変換する処理を実行させる。本発明の制御装置は、変換手段により得られたアドレスにより読み出し対象或いは更新対象のデータを指定して、当該データの読み出しまたは更新を駆動装置に指示するのである。【０００８】
上記制御装置の具体例としては、駆動装置の保守点検を行う際に使用される試験装置や、車載コントローラ（前述したＶＣＵ）が挙げられる。例えば、試験装置に本発明を適用すれば、試験担当者は、読み出しまたは更新を所望するデータをシンボル名を用いて指定することができる。一般に、制御プログラムのソースコードにおいては、各データに対応するシンボル名としてそのデータの意味を直感的に把握できるような文字列が採用されることが多い。このため、本発明によれば、読み出し或いは更新を所望するデータを直感的に判りやすいシンボル名を用いて試験担当者に指定させることが可能になり、保守点検作業の効率が従来よりも向上する。また、本発明によれば、シンボル名からアドレスへの変換は制御装置側で実行されるため、駆動装置に余計な処理負荷がかかることはない。加えて、制御装置側のマップファイルの更新により読み出し対象或いは更新対象のデータの追加、変更、削除に柔軟に対処することもできる。
【０００９】
引用文献１〜４の各文献には、プログラムのソースコードにおけるシンボル名と当該シンボル名により識別されるデータの格納先のアドレスとを対応づけ、当該シンボル名によるアクセスを可能とする技術が記載されている。しかしながら、引用文献１〜４の各文献に開示の技術は、電動機の駆動装置の制御を行う技術に関する発明ではなく、本願発明とは異なる発明である。【００１０】
上記制御プログラムのソースコードを記述するプログラム言語の一例としては、Ｃ言語が挙げられる。Ｃ言語は、アドレス指定による柔軟なメモリアクセスを実現できるなどアセンブラや機械語と同等な処理を実行するプログラムを記述できる一方、アセンブラや機械語に比較してコーディングし易いといった特徴があり、制御系のプログラムのコーディングに用いられることが多い。Ｃ言語を用いて制御プログラムのソースコードを記述する場合、ｃｈａｒ型やｓｈｏｒｔ型などの予め用意されたデータ型の他に、これら既存のデータ型を組み合わせた新たなデータ型である構造体型を定義し、この構造体型の変数（当該変数を単に「構造体」と呼ぶ場合がある）を使用することが可能である。制御プログラムのソースコードにおいて構造体型の変数が用いられている場合には、その構造体の構成要素（以下、メンバ）の各々を表すシンボル名に対応付けて当該メンバに対応するデータを記憶する記憶領域のアドレスの書き込まれたマップファイルを使用することが好ましい。このようなマップファイルを制御装置に記憶させておけば、読み出し対象または更新対象のデータを構造体のメンバ単位で指定することが可能になるからである。【００１１】
マップファイルは、ソースコードおよびヘッダファイルに基づいて実行形式ファイルを生成する過程で当該実行形式ファイルとともに生成されるのであるが、このような一般的なマップファイルでは、構造体型の変数についてはその変数のシンボル名に対応付けてその構造体のデータを記憶する記憶領域のアドレスのみが書き込まれており、各メンバに関する情報は含まれていない。このため、一般的なマップファイルを用いたのでは、読み出し対象または更新対象のデータを構造体のメンバ単位で指定することはできない。そこで、構造体のメンバのシンボル名に対応付けて当該メンバに対応するデータの記憶領域のアドレスを追記するマップファイル変換処理を上記一般的なマップファイルに対して施すマップファイル変換装置を提供し、このマップファイル変換処理を経たマップファイルを上記制御装置に記憶させるようにしても良い。【００１２】
マップファイル変換装置の具体的な構成としては、各種データを入力するための入力手段と、マップファイル変換処理を実行する制御手段とを有する構成が考えられる。すなわち、電動機の駆動制御を行う駆動装置の制御プログラムのソースコードと、そのソースコードにて使用されているデータ型を定義する定義ファイル（ソースコードがＣ言語で記述されている場合は、ヘッダファイル）と、そのソースコードおよび定義ファイルに基づいて制御プログラムとともに生成されたマップファイルとを上記入力手段を介してマップファイル変換装置へ入力する。そして、上記制御手段には、入力手段を介して受け取ったソースコードに構造体型の変数が含まれている場合には、同入力手段を介して受け取った定義ファイルを参照してその構造体のメンバを特定し、各メンバのシンボル名に対応付けて、先行する各メンバのデータ型に応じたオフセットを駆動装置においてその構造体の記憶される記憶領域のアドレスに加算して得られるアドレスを、同入力手段を介して受け取ったマップファイルに追記するマップファイル変換処理を実行させるのである。【００１３】
また、別の好ましい態様においては、駆動装置には、自装置に記憶されている制御プログラムの版数（バージョン）を表す版数情報を予め記憶させておき、制御装置の変換手段には、駆動装置から版数情報を取得し、その版数情報の示す版数に対応したマップファイルを使用させることを特徴とする。例えば、制御装置には、各々版数の異なる複数のマップファイルを記憶させておき、制御対象の駆動装置から取得した版数情報の示す版数のマップファイルを変換手段に使用させる態様が考えられる。また、版数情報としてマップファイルそのものを用いる様にしても良い。具体的には、駆動装置には、制御プログラムとともにその制御プログラムに対応する版数のマップファイルを予め記憶させておき、制御装置には当該マップファイルを駆動装置から取得して使用させるようにすれば良い。制御プログラムとマップファイルの版数が一致していないと、変換手段によって正しいアドレスが得られない虞があるが、本態様によればこのような不整合の発生を回避することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の制御装置の一実施形態の試験装置１０を含む試験システム１の構成例を示す図である。
【図２】試験装置１０の構成例を示す図である。
【図３】試験装置１０に記憶されているマップファイル１４４ｂの生成に用いたマップファイル変換装置４０の構成例を示す図である。
【図４】マップファイル１４４ｂの生成工程を説明するための図である。
【図５】マップファイル変換装置４０が実行するマップファイル生成処理の流れを示すフローチャートである。
【図６】試験装置１０のユーザＩ／Ｆ部１２０の表示部に表示されるシンボル名リストの一例を示す図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照しつつ本発明の実施形態を説明する。
図１は、本発明の制御装置の一実施形態の試験装置１０を含む試験システム１の構成例を示す図である。この試験システム１は、電動機３０とともに電気自動車に搭載される駆動装置２０の保守点検を行うためのものである。図１に示すように、試験システム１は、保守点検の対象となる駆動装置２０と、駆動装置２０により駆動制御される電動機３０と、保守点検の実行過程において駆動装置２０の制御を行う制御装置の役割を果たす試験装置１０とを含んでいる。
【００１６】
電動機３０は三相交流電動機である。駆動装置２０は、車載電池などの直流電源を三相交流電力に変換して電動機３０に与えるインバータである。駆動装置２０は、制御装置（実運用の際にはＶＣＵ、本実施形態では、試験装置１０）から与えられる各種指令に応じて電動機３０に与える三相交流電圧の各相の電流値を制御する処理を予めインストールされた制御プログラムにしたがって実行する制御部（図示略）と、この制御プログラムを実行する際のワークエリアとして使用されるメモリとを含んでいる。
【００１７】
駆動装置２０に記憶されている制御プログラムは、その制御プログラムにしたがって実現される処理の手順を所定のプログラム言語で記述したソースコードにコンパイルおよびリンクを施して得られた実行形式ファイルである。本実施形態では、上記ソースコードを記述するためのプログラム言語としてＣ言語が用いられている。Ｃ言語は、アドレス指定による柔軟なメモリアクセスを実現できるなどアセンブラや機械語と同等な処理を実行するプログラムを記述できる一方、アセンブラや機械語に比較してコーディングがし易いといった特徴があり、制御系のプログラムのコーディングに好適だからである。
【００１８】
試験装置１０は、例えばパーソナルコンピュータであり、ツイストペアケーブルなどの信号線を介して駆動装置２０に接続されている。本実施形態では、当該信号線を介して試験装置１０から駆動装置２０に各種指令を与えて電動機３０の動作の変化を観察したり、駆動装置２０のメモリに格納されているデータを読み出してその値を確認することで駆動装置２０の保守点検が進められる。
【００１９】
前述したように、従来技術では、駆動装置２０のメモリに格納されているデータに対する外部装置からのアクセスは、データ毎に固有の機能コードを割り振っておき、機能コードを用いて読み出し対象或いは更新対象のデータを指定することで実現されることが一般的であった。これに対して、本実施形態では、駆動装置２０のメモリに記憶されるデータを識別するための識別子として制御プログラムのソースコードに含まれている外部変数のシンボル名を使用して読み出し対象或いは更新対象のデータを試験担当者が指定できるように構成されている点が従来技術と異なる。読み出し対象或いは更新対象のデータをシンボル名により指定させることとしたのは、一般にソースコードにおいては、データの意味を直感的に把握できるようなシンボル名が採用されることが多く、逐一マニュアル等を参照しなくても、読み出し或いは更新を所望するデータを試験担当者に直感的に指定させることができるからである。
【００２０】
図２は、試験装置１０の構成例を示す図である。図２に示すように試験装置１０は、制御部１１０、ユーザインタフェース（以下、「Ｉ／Ｆ」と略記する）部１２０、通信Ｉ／Ｆ部１３０、記憶部１４０、およびこれら構成要素間のデータ授受を仲介するバス１５０を有している。
【００２１】
制御部１１０は、例えばＣＰＵ（Central Processing Unit）である。制御部１１０は記憶部１４０（より正確には不揮発性記憶部１４４）に記憶されている試験プログラム１４４ａを実行することで試験装置１０の制御中枢として機能する。
【００２２】
ユーザＩ／Ｆ部１２０は、表示部と操作部とを含んでいる（図２では何れも図示略）。表示部は液晶ディスプレイとその駆動回路により構成されている。表示部には、駆動装置２０の保守点検を行うための各種画面が制御部１１０による制御の下で表示される。操作部はマウスなどのポインティングデバイスやキーボードにより構成されている。操作部は、駆動装置２０の保守点検を行うための各種入力操作を試験担当者に行わせるためのものであり、ポインティングデバイス等に対して為された操作の内容に応じたデータを制御部１１０に与える。これにより、上記試験担当者の操作内容が制御部１１０に伝達される。
【００２３】
通信Ｉ／Ｆ部１３０は、例えばＮＩＣ（Network Interface Card）であり、ツイストペアケーブルなどの信号線を介して駆動装置２０に接続されている。通信Ｉ／Ｆ部１３０は、上記信号線を介して駆動装置２０から受信したデータを制御部１１０に与える一方、制御部１１０から与えられたデータを上記信号線を介して駆動装置２０に送信する。
【００２４】
記憶部１４０は、揮発性記憶部１４２と不揮発性記憶部１４４を含んでいる。揮発性記憶部１４２は、例えばＲＡＭ（Random Access Memory）により構成されている。揮発性記憶部１４２は、試験プログラム１４４ａを実行する際のワークエリアとして制御部１１０によって利用される。不揮発性記憶部１４４は、例えばハードディスクやフラッシュメモリにより構成されている。不揮発性記憶部１４４には、試験プログラム１４４ａとマップファイル１４４ｂが予め格納されている。なお、不揮発性記憶部１４４には、試験プログラム１４４ａとマップファイル１４４ｂの他にＯＳ（Operating System）を実現するＯＳソフトウェアも記憶されているが、本発明との関連が薄いため、図示を省略した。
【００２５】
制御部１１０は、試験装置１０の電源（図示略）の投入を契機としてＯＳソフトウェアを不揮発性記憶部１４４から揮発性記憶部１４２に読み出し、その実行を開始する。この状態において、制御部１１０は、ユーザＩ／Ｆ部１２０の操作部を介して試験プログラム１４４ａの実行指示を与えられると、試験プログラム１４４ａを不揮発性記憶部１４４から揮発性記憶部１４２に読み出し、その実行を開始する。試験プログラム１４４ａにしたがって作動している制御部１１０は、駆動装置２０の保守点検の実行を支援する各種画面をユーザＩ／Ｆ部１２０の表示部に表示させる。そして、ユーザＩ／Ｆ部１２０の操作部に対する操作により読み出し対象または更新対象のデータを示すシンボル名が入力されると、制御部１１０は当該シンボル名により指定されたデータの読み出しまたは更新のための通信を駆動装置２０との間で行う。
【００２６】
より詳細に説明すると、制御部１１０は、まず、読み出し対象または更新対象のデータを示すものとして入力されたシンボル名を、マップファイル１４４ｂを利用して当該シンボル名の示すデータの駆動装置２０のメモリにおける記憶領域のアドレスに変換する変換処理を実行し、この変換処理により得られたアドレスを信号線を介して駆動装置２０へ通知して読み出し対象或いは更新対象のデータを指定する。駆動装置２０は、このようにして通知されたアドレスの示す記憶領域に記憶されているデータを読み出して返信する処理、または当該記憶領域に記憶されているデータを更新する処理を実行する。これにより、試験担当者により指定されたデータの読み出し或いは更新が実現される。
【００２７】
マップファイル１４４ｂには、制御プログラムのソースコードに含まれている外部変数のシンボル名に対応付けて、当該制御プログラムをメモリにロードして実行中の駆動装置２０において当該シンボル名に対応するデータを記憶する記憶領域のアドレスが書き込まれている。ここで、ソースコードの含まれる変数のうち外部変数についてのみそのシンボル名とアドレスとを対応付けてマップファイル１４４ｂに書き込んだのは、外部変数以外の変数については制御プログラムの実行過程で記憶領域が動的に確保され、シンボル名に対応付けるアドレスが固定されないためである。
【００２８】
ところで、ソースコードに含まれている外部変数のシンボル名と当該シンボル名に対応するデータを記憶する記憶領域のアドレスとを対応付けるマップファイルは、それらソースコードおよびヘッダファイルからコンパイルおよびリンクにより実行形式ファイルをビルドする際にその実行形式ファイルとともに生成される。しかし、試験装置１０の不揮発性記憶部１４４に記憶されているマップファイル１４４ｂは、制御プログラムのビルドの際にその制御プログラムとともに生成された一般的なマップファイルそのものではなく、当該一般的なマップファイルに対して図３に示すマップファイル変換装置４０によるマップファイル変換処理を施して得られたものである。この点に本実施形態の第２の特徴がある。
【００２９】
図３は、マップファイル変換装置４０の構成例を示すブロック図である。マップファイル変換装置４０は、試験装置１０と同様にパーソナルコンピュータであり、そのハードウェア構成は試験装置１０のハードウェア構成と同一である。すなわち、マップファイル変換装置４０は、図４に示すように、制御部４１０、ユーザＩ／Ｆ部４２０、通信Ｉ／Ｆ部４３０、記憶部４４０、およびこれら構成要素間のデータ授受を仲介するバス４５０を有している。そして、記憶部４４０は揮発性記憶部４４２と不揮発性記憶部４４４を含んでおり、不揮発性記憶部４４４には、制御部４１０に本実施形態の特徴を顕著に示すマップファイル変換処理を実現させるためのマップファイル変換プログラム４４４ａが予め記憶されている。
【００３０】
図４は、制御部４１０がマップファイル変換プログラム４４４ａにしたがって実行するマップファイル変換処理を説明するための図である。より詳細に説明すると、図４（ａ）は、同マップファイル変換処理の概要を示す図である。図４（ａ）に示すように、本実施形態では、制御プログラムのソースコードＳＣ（具体例については図４（ｂ）参照）とヘッダファイルＨＦ（具体例については図４（ｂ）参照）とから実行形式ファイルがビルド（コンパイルおよびリンク）によって生成される。この実行形式ファイルは、制御プログラムとして駆動装置２０にインストールされる。また、上記ビルドにおいては、制御プログラム（実行形式ファイル）とともに一般的なマップファイルＢＭＦ（図４（ｂ）参照）が生成される。このマップファイルＢＭＦには、上記ソースコードの含まれる外部変数のシンボル名に対応付けて上記実行形式ファイルをメモリにロードした際の当該外部変数に対応するデータの記憶領域のアドレスが書き込まれている。
【００３１】
図４（ａ）に示すように、本実施形態のマップファイル変換処理では、制御プログラムのソースコードＳＣ、ヘッダファイルＨＦ、および制御プログラムのビルドの過程で生成されたマップファイルＢＭＦが入力データとなる。例えば、上記ビルドを実行したコンピュータ装置が信号線を介してマップファイル変換装置４０の通信Ｉ／Ｆ部４３０に接続されている場合には、上記各入力データは、上記ビルドを実行したコンピュータ装置から通信Ｉ／Ｆ部４３０を介してマップファイル変換装置４０に入力される。つまり、図３の通信Ｉ／Ｆ部４３０は、マップファイル変換装置４０に上記各入力データを入力するための入力手段の役割を果たす。本実施形態では、これら入力データに基づいてマップファイル変換処理を実行することでマップファイルＡＭＦが生成され、このマップファイルＡＭＦが前述したマップファイル１４４ｂとして試験装置１０の不揮発性記憶部１４４に格納される。
【００３２】
図５は、マップファイル変換処理の流れを示すフローチャートである。図５に示すように、マップファイル変換処理において制御部４１０は、まず、通信Ｉ／Ｆ部４３０を介して入力されたソースコードに含まれている外部変数のうち、構造体型の変数を抽出する（ステップＳＡ１００）。例えば、図４（ｂ）におけるソースコードＳＣおよびヘッダファイルＨＦが入力された場合には、当該ソースコードＳＣには構造体型の外部変数としてADC_AD0_VALUE型（このデータ型についてはヘッダファイルＨＦにて定義）の外部変数gAD0_Valueが含まれているため、上記ステップＳＡ１００では外部変数gAD0_Valueが抽出される。なお、ADC_AD0_VALUE型の変数gAD0_Valueは外部変数であるため、図４（ｂ）におけるマップファイルＢＭＦには、当該変数の変数名gAD0_Valueに対応付けて、当該変数に対応するデータを記憶する記憶領域のアドレスfff80092が書き込まれている。
【００３３】
次いで、制御部４１０は、ステップＳＡ１００にて抽出した構造体の各メンバのシンボル名およびデータ型を入力データに含まれるヘッダファイルＨＦを参照して特定する（ステップＳＡ１１０）。例えば、図４（ｂ）に示すヘッダファイルＨＦにおいては、ADC_AD0_VALUE型の構造体は、各々short型の８個のメンバ（mIu、mIv、mIw、mAi1、mAi2、mMAi1、mMAi2およびmVDC）により構成されると定義されており、これら各メンバには各々に格納されるデータの意味を反映した名称が付与されている。例えば、メンバmIuには、駆動装置２０から電動機３０へ供給されるｕ相の電流値を表すデータが、メンバmIvには、駆動装置２０から電動機３０へ供給されるｖ相の電流値を表すデータが、メンバmIwには、駆動装置２０から電動機３０へ供給されるｗ相の電流値を表すデータが各々格納されるといった具合である。上記ステップＳＡ１１０では外部変数gAD0_Valueのメンバのシンボル名およびデータ型として（gAD0_Value.mIu、short）、（gAD0_Value.mIv、short）、（gAD0_Value.mIw、 short）、（gAD0_Value.mAi1、short）、（gAD0_Value.mAi2、short）、（gAD0_Value.mMAi1、short）、（gAD0_Value.mMAi2、short）および（gAD0_Value.mVDC、short）が抽出される。
【００３４】
そして、制御部４１０は、通信Ｉ／Ｆ部４３０を介して入力されたマップファイルＢＭＦに、ステップＳＡ１１０にて特定した各メンバのシンボル名に対応付けて、当該シンボル名の表すメンバに先行する各メンバのデータ型に応じたオフセットを当該構造体を記憶する記憶領域のアドレスに加算して得られるアドレスを追記してマップファイルＡＭＦを生成する（ステップＳＡ１２０）。例えば、メンバmIuについては１つ目のメンバ（すなわし、先行するメンバは無い）であるから上記オフセットは０となり、制御部４１０は、当該メンバを表すシンボル名（gAD0_Value.mIu）に対応付けてアドレス（fff80092+0=fff80092）をマップファイルＢＭＦに追記する。２つ目のメンバであるメンバmIvについては、先行するメンバ（すなわち、メンバmIu）のデータ型はshort型（２バイトのデータ型）であるから上記オフセットは２となる。このため、制御部４１０は、メンバmIvを表すシンボル名（gAD0_Value.mIv）に対応付けてアドレス（fff80092+2=fff80094）をマップファイルＢＭＦに追記する。３っ目のメンバであるメンバmIwについては、先行する各メンバ（メンバmIuおよびメンバmIv）のデータ型は何れもshort型（２バイトのデータ型）であり、上記オフセットは４となる。このため、制御部４１０は、メンバmIwを表すシンボル名（gAD0_Value.mIw）に対応付けてアドレス（fff80092+4=fff80096）をマップファイルＢＭＦに追記する。４っ目以降のメンバについても同様である。その結果、図４（ｂ）に示すマップファイルＡＭＦが得られるのである。なお、構造体のメンバにchar型変数が含まれている場合には、所謂バウンダリ調整を行って上記オフセットの算出を行うようにすれば良い。
【００３５】
以上がマップファイル変換装置４０におけるマップファイル変換処理の流れである。なお、マップファイル変換装置４０に入力されるソースコードに構造体型の外部変数が含まれていない場合には、同マップファイル変換装置４０に入力されたマップファイルがそのまま、変換後のマップファイルとして出力される。
【００３６】
ここで注目すべき点は、本実施形態では、制御プログラムとともに生成される一般的なマップファイル（例えば、図４（ｂ）におけるマップファイルＢＭＦ）ではなく、マップファイル変換装置４０によるマップファイル変換処理を経たマップファイル（図４（ｂ）におけるマップファイルＡＭＦ）を試験装置１０の不揮発性記憶部１４４に記憶させたという点である。その理由は以下の通りである。
【００３７】
一般的なマップファイルには、構造体型の変数のシンボル名に対応付けてその構造体を記憶する記憶領域の先頭アドレスが書き込まれているものの、当該構造体のメンバに関する情報は含まれていない。したがって、一般的なマップファイルを試験装置１０に記憶させておいたとしても、読み出し対象或いは更新対象のデータを構造体のメンバ単位でシンボル名により指定することはできない。これに対して、本実施形態では、上記マップファイル変換処理により得られたマップファイルＡＭＦをマップファイル１４４ｂとして試験装置１０に記憶させたため、読み出し対象または更新対象のデータを構造体のメンバ単位でシンボル名により試験担当者に指定させることが可能になっている。このように、読み出しまたは更新対象のデータを構造体のメンバ単位で指定することを可能にするため、本実施形態では、マップファイル変換装置４０によるマップファイル変換処理を経たマップファイルを試験装置１０に記憶させたのである。なお、読み出し対象または更新対象のデータを構造体のメンバ単位で指定する必要がない場合には、マップファイル１４４ｂとして一般的なマップファイルを試験装置１０に記憶させておけば良いことは言うまでもない。
【００３８】
このように、本実施形態では、マップファイル変換装置４０によるマップファイル変換処理を経たマップファイルが試験装置１０の不揮発性記憶部１４４に記憶されている。例えば、図４（ｂ）のマップファイルＡＭＦがマップファイル１４４ｂとして試験装置１０の不揮発性記憶部１４４に記憶されている場合には、試験担当者はシンボル名（gAD0_Value.mIu）を指定することで、駆動装置２０から電動機３０に供給されるｕ相の電流値を参照或いは更新することができる、といった具合である。
【００３９】
また、マップファイル１４４ｂに書き込まれているシンボル名を図６に示すようにリスト表示させる処理を制御部１１０に実行させ、読み出しまたは更新を所望するデータのシンボル名を試験担当者に選択させるようにしても良い。前述したように、シンボル名にはそのシンボル名に対応するデータの意味が反映されていることが多いため、試験担当者は、マニュアル等を参照せずとも直感的に、読み出しまたは更新を所望するデータのシンボル名を選択することができる。このように、マニュアルを逐一参照することなく、読み出しまたは更新を所望するデータをシンボル名により指定することができるため、本実施形態によれば、機能コードにより指定する従来技術に比較して保守点検作業の効率が向上する。
【００４０】
以上説明したように、本実施形態の試験システム１においては、試験担当者は駆動装置２０のメモリに格納されているデータのうち、読み出しまたは更新を所望するデータを、シンボル名を用いて直感的に指定することができる。また、本実施形態では、シンボル名からアドレスへの変換は試験装置１０において実行されるため、駆動装置２０に余計な処理負荷がかかることはない。加えて、読み出し対象或いは更新対象のデータの追加や変更、削除が生じた場合であっても、試験装置１０に記憶されているマップファイル１４４ｂの更新により柔軟に対処することができる。
【００４１】
以上、本発明の一実施形態について説明したが、上記実施形態を以下のように変形しても勿論良い。
（１）上記実施形態では、試験装置１０には、駆動装置２０に記憶されている制御プログラムのビルドの過程で生成されたマップファイルにマップファイル変換装置４０によるマップファイル変換処理を施して得られたマップファイル１４４ｂが格納されていた。これは、駆動装置２０に記憶されている制御プログラムの版数（バージョン）と試験装置１０に記憶されているマップファイルの版数とが異なっている（例えば、制御プログラムのビルドの際に用いられたソースコードおよびヘッダファイルの版数と、マップファイルの生成に用いられたソースコードおよびヘッダファイルの版数が異なる場合など）と、シンボル名／アドレス変換処理によって正しいアドレスが得られない虞があるからである。
【００４２】
しかしながら、その一方で、駆動装置２０の利用者（例えば、電気自動車のベンダなど）の要求に応じて複数のバージョンのソースコードおよびヘッダファイルが作成されることは多く、駆動装置２０に記憶されている制御プログラムの版数と試験装置１０に記憶されているマップファイルの版数とに食い違いが生じる虞は多分にある。そこで、このような食い違いの発生を回避するために、駆動装置２０には、制御プログラムの版数を示す版数情報を記憶させておく一方、試験装置１０には、駆動装置２０に記憶されている版数情報を取得させ、当該版数情報の示す版数に対応するマップファイルを使用させるようにしても良い。
【００４３】
例えば、各々版数の異なる複数のマップファイル（各々マップファイル変換装置４０によるマップファイル変換処理を経たマップファイル）を試験装置１０に記憶させておき、駆動装置２０から取得した版数情報の示す版数に応じたものをそれら複数のマップファイルのうちから選択して使用する処理を試験装置１０の制御部１１０に実行させるのである。なお、各々版数の異なる複数のマップファイルの格納先は試験装置１０の不揮発性記憶部１４４には限定されず、インターネットなどの電気通信回線を介して試験装置１０がアクセス可能なサーバ装置（或いはネットワーク対応のハードディスク）であっても良い。また、制御プログラムのビルドの過程で生成されたマップファイルにマップファイル変換装置４０によるマップファイル変換処理を施して得られたマップファイルを上記版数情報として駆動装置２０に記憶させておき、試験装置１０には、試験開始に先立って（例えば信号線を介した駆動装置２０の接続の検出を契機として）駆動装置２０から版数情報（マップファイル）を取得させ、このマップファイルを使用させるようにしても良い。
【００４４】
（２）上記実施形態では、駆動装置２０の保守点検を行うための試験装置への本発明の適用例を説明したが、駆動装置２０の開発段階での試験を行うための試験装置に本発明を適用しても勿論良く、また、駆動装置２０の実運用の際に駆動装置２０と通信しその作動制御を行う制御装置に本発明を適用しても良い。例えば、電動機３０および駆動装置２０が電気自動車に搭載される場合には、その電気自動車の運転者の運転操作に応じて駆動装置２０の作動制御を行う車載コントローラ（ＶＣＵ）に本発明を適用しても良い。また、本発明の適用対象は、電気自動車用の駆動装置の制御を行う制御装置に限定されるものではなく、例えば昇降機を昇降させる電動機を駆動する駆動装置や、空調機の電動機を駆動する駆動装置の制御を行う制御装置に本発明を適用しても良い。
【００４５】
（３）上記実施形態では、駆動装置２０の制御プログラムのソースコードをＣ言語を用いて記述する場合について説明したが、Ｃ＋＋などの他のプログラム言語を用いて記述しても勿論良い。要は、制御プログラムの実行過程において駆動装置２０のメモリに記憶されるデータにそのデータの意味を反映したシンボル名を付与し、そのシンボル名を用いてソースコードの記述が可能なプログラム言語であれば良い。
【００４６】
（４）上記実施形態では、本発明の特徴を顕著に示すシンボル名／アドレス変換処理を制御部１１０に実行させる試験プログラム１４４ａ（換言すれば、シンボル名／アドレス変換処理を実行する変換手段として制御部１１０を機能させるプログラム）が試験装置１０の不揮発性記憶部に予め格納されていた。しかし、当該プログラムをＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）などのコンピュータ読み取り可能な記録媒体に書き込んで配布しても良く、また、インターネットなどの電気通信回線経由のダウンロードにより配布しても良い。パーソナルコンピュータなどの一般的なコンピュータ装置の制御部をこのようにして配布されるプログラにしたがって作動させることで、当該コンピュータ装置を上記実施形態の試験装置１０として機能させることが可能になるからである。マップファイル変換プログラム４４４ａについても同様である。
【符号の説明】
【００４７】
１…試験システム、１０…試験装置、１１０，４１０…制御部、１２０，４２０…ユーザＩ／Ｆ部、１３０，４３０…通信Ｉ／Ｆ部、１４０，４４０…記憶部、１４２，４４２…揮発性記憶部、１４４，４４４…不揮発性記憶部、１４４ａ…試験プログラム、１４４ｂ…マップファイル、４４４ａ…マップファイル変換プログラム、１５０，４５０…バス、２０…駆動装置、３０…電動機、４０…マップファイル変換装置。
【図１】
0006028856.tif 000002
【図２】
0006028856.tif 000003
【図３】
0006028856.tif 000004
【図４】
0006028856.tif 000005
【図５】
0006028856.tif 000006
【図６】
0006028856.tif 000007