(57)【要約】【課題】安価でコンパクトな構成により実現できるＨＩＬＳ装置を提供する。【解決手段】実機をコントロールするコントローラを含むターゲットボード１００に接続され、前記ターゲットボード１００との通信により前記実機の動作をシミュレートする。Windows２１及びリアルタイムＯＳ２２と、前記リアルタイムＯＳ２２の下において稼働し、前記実機のハードウエアに関する動作をシミュレートする１又は２以上のハードウエアシミュレーションタスクであるタスク７１〜７４，８１〜８４と、前記Windows２１の下において稼働し、前記タスク７１〜７４，８１〜８４に対する指示を送出すると共に、前記タスク７１〜７４，８１〜８４の状態の取り出し及び表示を行うＨＭＩアプリケーションタスクであるタスク６１，６２と、前記タスク７１〜７４，８１〜８４と前記タスク６１，６２との間のインタフェースに用いられるシェアードメモリ１２とを具備する。【選択図】図４
2008033672.tif 000002
【特許請求の範囲】
【請求項１】
実機をコントロールするコントローラを含むターゲットボードに接続され、前記ターゲットボードとの通信により前記実機の動作をシミュレートするＨＩＬＳ装置において、
汎用オペレーティングシステム及びリアルタイムオペレーティングシステムと、
前記リアルタイムオペレーティングシステムの下において稼働し、前記実機のハードウエアに関する動作をシミュレートする１又は２以上のハードウエアシミュレーションタスクと、
前記汎用オペレーティングシステムの下において稼働し、前記１又は２以上のハードウエアシミュレーションタスクに対する指示を送出すると共に、前記ハードウエアシミュレーションタスクの状態の取り出し及び表示を行うＨＭＩアプリケーションタスクと、
前記ハードウエアシミュレーションタスクと前記ＨＭＩアプリケーションタスクとの間のインタフェースに用いられるシェアードメモリと
を具備することを特徴とするＨＩＬＳ装置。
【請求項２】
汎用オペレーティングシステムは、Windowsであることを特徴とする請求項１に記載のＨＩＬＳ装置。
【請求項３】
汎用オペレーティングシステムにはActiveXが備えられ、前記ＨＭＩアプリケーションタスクがActiveXを用いてシェアードメモリをアクセスすることを特徴とする請求項２に記載のＨＩＬＳ装置。
【請求項４】
パーソナルコンピュータにおいて実現されていることを特徴とする請求項１乃至３のいずれか１項に記載のＨＩＬＳ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、組込みマイコン（マイクロコンピュータ）による制御システムの開発などに用いた場合に好適なＨＩＬＳ（Hardware In the loop Simulator）装置に関するものである。
【背景技術】
【０００２】
近年、組込みマイコンによる制御システムの開発などにおいては、ＨＩＬＳを利用して検証を行う仕組みが注目されてきている。ＨＩＬＳを利用することにより、ハードウエアが完成する前に検証を開始することができ、実機では実現が難しいレアケースについて検証を行うことができる利点があり、また、検証シナリオの自動実行を可能にするなどの利点がある。
【０００３】
しかしながら、従来のＨＩＬＳは非特許文献１に示されるように、ＨＭＩ（ヒューマンマシンインタフェース）用コンピュータであるホストＣＰＵと、制御用コンピュータとＩ／ＯインタフェースＢＯＸからなるシミュレータ本体とからなり、専用のＯＳ（オペレーティングシステム）と専用アプリケーションが用いられており、高価で大掛かりなものである。
【非特許文献１】ＦＵＪＩＴＳＵ  ＴＥＮ  Ｈｏｍｅ  “ＣＲＡＭＡＳ  Ｔｏｐ”［平成18年7月28日検索］インターネット＜ＵＲＬ：http://www.fujitsu-ten.co.jp/cramas/content/about.html＞
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、ＨＩＬＳにおける上記の如き現状に鑑みてなされたもので、その目的は、安価でコンパクトな構成により実現できるＨＩＬＳ装置を提供することである。
【課題を解決するための手段】
【０００５】
本発明に係るＨＩＬＳ装置は、実機をコントロールするコントローラを含むターゲットボードに接続され、前記ターゲットボードとの通信により前記実機の動作をシミュレートするＨＩＬＳ装置において、汎用オペレーティングシステム及びリアルタイムオペレーティングシステムと、前記リアルタイムオペレーティングシステムの下において稼働し、前記実機のハードウエアに関する動作をシミュレートする１又は２以上のハードウエアシミュレーションタスクと、前記汎用オペレーティングシステムの下において稼働し、前記１又は２以上のハードウエアシミュレーションタスクに対する指示を送出すると共に、前記ハードウエアシミュレーションタスクの状態の取り出し及び表示を行うＨＭＩアプリケーションタスクと、前記ハードウエアシミュレーションタスクと前記ＨＭＩアプリケーションタスクとの間のインタフェースに用いられるシェアードメモリとを具備することを特徴とする。
【０００６】
本発明に係るＨＩＬＳ装置は、汎用オペレーティングシステムは、Windows（登録商標）であることを特徴とする。
【０００７】
本発明に係るＨＩＬＳ装置は、汎用オペレーティングシステムにはActiveXが備えられ、前記ＨＭＩアプリケーションタスクがActiveXを用いてシェアードメモリをアクセスすることを特徴とする。
【０００８】
本発明に係るＨＩＬＳ装置は、パーソナルコンピュータにおいて実現されていることを特徴とする。
【発明の効果】
【０００９】
本発明に係るＨＩＬＳ装置は、汎用オペレーティングシステム及びリアルタイムオペレーティングシステムというマルチＯＳの下に、リアルタイムＯＳにてハードウエアシミュレーションタスクを稼働させ、また汎用ＯＳにてＨＭＩアプリケーションタスクを稼働させ、これらタスク間のインタフェースにシェアードメモリを用いる構成であるため、構成がコンパクトとなり、安価で実現可能である。
【００１０】
特に、汎用オペレーティングシステムは、Windowsとしているので、ＨＭＩアプリケーションをWindows上で動作する汎用的なツールで作成することができ、ソフトウエアの開発が容易となる。また、パーソナルコンピュータにおいて実現されている構成となっており、小型で便利な装置として実現可能である。
【発明を実施するための最良の形態】
【００１１】
本発明では、汎用オペレーティングシステム及びリアルタイムオペレーティングシステム（以下、オペレーティングシステムをＯＳと称す）というマルチＯＳにおけるリアルタイムＯＳにてハードウエアシミュレーションタスクを稼働させ、また汎用ＯＳにてＨＭＩアプリケーションタスクを稼働させ、これらタスク間のインタフェースにシェアードメモリを用いるようにして、構成をコンパクト化し、安価で実現可能としたものである。
【００１２】
以下、添付図面を参照して本発明に係るＨＩＬＳ装置の実施例を説明する。各図において同一の構成要素には、同一の符号を付して重複する説明を省略する。図１には、本発明に係るＨＩＬＳ装置の実施例を示すブロック図が示されている。ＨＩＬＳ装置１は、ＰＣ／ＡＴ互換機によるコンピュータ１０により構成されており、例えば自動車におけるパワーウインドウなどの実機をコントロールするターゲットボード（組込みマイコンボード）１００との接続に用いられるＩ／Ｏボード１１が備えられている。
【００１３】
ＨＩＬＳ装置１のソフトウエアとしては、汎用ＯＳであるWindows ２１、リアルタイムＯＳ２２、Windows ２１の下で稼働される標準Windows アプリケーション２３、リアルタイムＯＳ２２の下で稼働されるリアルタイムアプリケーション２４、Windows ２１とリアルタイムＯＳ２２との動作に関しタイムスケジュール管理を行うリアルタイムスケジューラ２５が備えられている。また、ＨＩＬＳ装置１には、シェアードメモリ１２が備えられている。
【００１４】
本実施例に係るＨＩＬＳ装置１では、例えば、図２に示されるパワーウインドウに関し、ウインドウを開閉するモータ部３１と開閉指示を送るスイッチ部３２とを実機とし、スイッチ部３２からの指示信号を受けてモータ部３１を駆動制御する信号へ変換してモータ部３１へ送出するターゲットボード１００の開発を行う場合を例とする。
【００１５】
本実施例では、図２に示したシステムを図３に示すMATLAB（登録商標）/Simulink（登録商標）５０を用いてモータ部３１の動作から図３に示すパワーウインドウモデル（MATLAB/Simulinkによるモデル）５１を生成し、スイッチ部３２の動作から図３に示すスイッチモデル（MATLAB/Simulinkによるモデル）５２を生成し、ターゲットボード１００の動作から図３に示すコントローラモデル（MATLAB/Simulinkによるモデル）５３を生成する。
【００１６】
生成されたパワーウインドウモデル５１は、モータ部３１と全く同じ制御信号を受けて対応する回転数で対応する時間の回転シミュレートを行い、回転数などに対応する信号を返送するモータブロック５１Ａを有する。パワーウインドウモデル５１に、入力されるＰＷＭ信号や、返送する回転数の信号に関するログをシェアードメモリ１２へ書き込む機能部であるログ排出ブロック５１Ｂ、５１Ｃが設けられているものである。スイッチモデル５２は、スイッチ部３２と全く同じく運転者等によるスイッチの操作シミュレートに応じて信号を送出するスイッチブロック５２Ａを有する。スイッチモデル５２には、送出した信号に関するログをシェアードメモリ１２へ書き込む機能部であるログ排出ブロック５２Ｂが設けられているものである。
【００１７】
更に、コントローラモデル５３は、ターゲットボード１００と全く同様にモータ部３１とスイッチ部３２との間において制御動作を模擬するモータ回転制御ブロック５３Ａを含むものである。パワーウインドウモデル５１、スイッチモデル５２及びコントローラモデル５３の動作は、様々な条件毎に幾つかのテストシナリオにまとめられてプログラム化される。なお、コントローラモデル５３にもログ排出ブロックを含むＣＡＮ・ＩＦ（インタフェース）５３Ｂ、Ｉ／Ｏボード５３Ｂ、５３Ｄが設けられるが、ＨＩＬＳに直接関係する構成ではないので、ここでは詳細説明を省略する。
【００１８】
上記パワーウインドウモデル５１とスイッチモデル５２からは、MATLAB/Simulink５０を用いてリアルタイムオペレーションシステムにおいて稼働可能なコード（プログラム）が自動生成され、コンピュータ１０に実装される。同様に、コントローラモデル５３からは、MATLAB/Simulink５０を用いてターゲットボード１００において稼働可能なコード（プログラム）が自動生成され、ターゲットボード１００に実装される。
【００１９】
ＨＩＬＳ装置１には、標準Windows アプリケーション２３以外に、Windows ２１の下で稼働されるプログラムとして、ＨＩＬＳにおけるＨＭＩ部分のプログラムが実装される。このＨＭＩ部分のプログラムは、図４に示すようにWindows ２１上で動作し、シミュレーションの開始及び終了、更にテストシナリオの選択及び指示をオペレータが与えるための設定タスク６１と、シミュレーション実行時にパワーウインドウモデル５１とスイッチモデル５２の状態を取得すると共に取得した情報についてディスプレイへの表示を行うモニタタスク６２が実装される。これらのタスク６１、６２は、標準Windows アプリケーション２３、例えば、Excel （登録商標）やVB,VCによって作成されたものである。
【００２０】
パワーウインドウモデル５１とスイッチモデル５２からMATLAB/Simulink５０を用いて自動生成されたコード（プログラム）であって、コンピュータ１０に実装されたリアルタイムＯＳ２２において稼働可能なプログラムの一例を図４に示す。ここでは、パワーウインドウの窓として、右前窓、左前窓、右後窓、左後窓の四窓があり、これに対応する右前窓操作スイッチ、左前窓操作スイッチ、右後窓操作スイッチ、左後窓操作スイッチが設けられ、上記四窓の開閉には、右前窓用モータ、左前窓用モータ、右後窓用モータ、左後窓用モータが用いられるものとする。係る場合には、右前窓操作スイッチ用ＨＷ(ハードウエア、以下同じ)タスク７１、左前窓操作スイッチ用ＨＷタスク７２、右後窓操作スイッチ用ＨＷタスク７３、左後窓操作スイッチ用ＨＷタスク７４、右前窓モータ用ＨＷタスク８１、左前窓モータ用ＨＷタスク８２、右後窓モータ用ＨＷタスク８３、左後窓モータ用ＨＷタスク８４がリアルタイムオペレーション上にて動作するように構成されている。
【００２１】
これらのタスク７１〜７４、８１〜８４は、パワーウインドウモデル５１とスイッチモデル５２からMATLAB/Simulink５０を用いて自動生成されたものであり、ログ排出ブロック５１Ｂ、５１Ｃ、５２Ｂに対応するプログラムが含まれている（図３）。各タスク７１〜７４、８１〜８４におけるログ排出ブロックに対応するプログラムは設定された通りに、シェアードメモリ１２に対してログの書き込みを行うものである。一方、モニタタスク６２はシェアードメモリ１２にアクセスして、シェアードメモリ１２に書き込まれている状態情報等を取り込み、リスト化するなどの表示情報に変更してディスプレイ画面へ表示する。Windows ２１には、ActiveX６３が備えられており、モニタタスク６２はActiveX６３を介してシェアードメモリ１２にアクセスする。また、設定タスク６１は、シェアードメモリ１２にアクセスしてタスク７１〜７４、８１〜８４に対する制御情報を書き込む場合にActiveX６３を介してシェアードメモリ１２にアクセスする。
【００２２】
以上のように構成されたコンピュータ１０においては、コンピュータ１０が立ち上げられ、ＨＩＬＳのプログラムが起動されると設定タスク６１により図５に示されるフローチャートに沿った処理が行われる。即ち、初期画面として例えばテストシナリオの選択画面がディスプレイに表示される（Ｓ１）。設定タスク６１は、入力を検出する（Ｓ２）と共に選択か終了かを判定して（Ｓ３）、オペレータが例えばｎ個のテストシナリオのいずれか１つをマウスでクリックするなどして選択すると、対応するテストシナリオの実行要求をActiveX６３を介してシェアードメモリ１２に書き込む（Ｓ４）。ステップＳ３において終了が選択された場合には、処理を終了する。
【００２３】
図６のフローチャートは、一例のテストシナリオに対応する設定タスク６１の処理を示している。ここでは、説明を簡単にするため、該一例のテストシナリオは、右前窓操作スイッチを５秒開操作して、その２秒後に、３秒間閉操作することに対応するものとする。このため、設定タスク６１は、右前窓操作スイッチを５秒開操作のコマンドをシェアードメモリ１２に書き込み（Ｓ１１）、２秒間処理無しとするコマンドをシェアードメモリ１２に書き込み（Ｓ１２）、３秒間閉操作のコマンドをシェアードメモリ１２に書き込む（Ｓ１３）。
【００２４】
これに対し、リアルタイムＯＳ２２及びタスク７１〜７４、８１〜８４中の所要のタスクは、図７のフローチャートに示すような処理を行う。リアルタイムＯＳ２２は、テストシナリオ実行要求がシェアードメモリ１２に書き込まれたかを検出しており（Ｓ２１）、書き込みがあるとこれを読み出して、対応するタスクの起動を行う（Ｓ２２）。この例では、右前窓操作スイッチ用ＨＷタスク７１及び右前窓モータ用ＨＷタスク８１が起動される。
【００２５】
シェアードメモリ１２に書き込まれた右前窓操作スイッチを５秒開操作のコマンドに基づき右前窓操作スイッチ用ＨＷタスク７１にコントロールが渡され、右前窓操作スイッチが５秒開操作された場合に出力される情報が右前窓操作スイッチ用ＨＷタスク７１からターゲットボード１００へ送られると共にシェアードメモリ１２に対してログの書き込みを行う（Ｓ２３）。これを受けたターゲットボード１００が右前窓モータに対して所定のＰＷＭ信号を送る（Ｓ２４）。このＰＷＭ信号を右前窓モータ用ＨＷタスク８１が受けてログの書き込みを行うと共に窓を開ける方向へのモータ回転を模擬して、回転に応じた回転数信号がターゲットボード１００へ検出出力されると共にシェアードメモリ１２に対してログの書き込みが行われ（Ｓ２５）、上記回転数信号をターゲットボード１００が受け取る（Ｓ２６）。ターゲットボード１００は必要な場合に状態情報を右前窓操作スイッチ用ＨＷタスク７１へ返送する一方、返送を受けた場合には右前窓操作スイッチ用ＨＷタスク７１はシェアードメモリ１２に対してログの書き込みを行う（Ｓ２７）。２秒間処理無しとするコマンドに対しては、右前窓操作スイッチ用ＨＷタスク７１及び右前窓モータ用ＨＷタスク８１の動作が行われることはない。
【００２６】
次の３秒間閉操作のコマンドに対しては、右前窓操作スイッチ用ＨＷタスク７１にコントロールが渡され、図７のフローチャートに示す如く、右前窓操作スイッチが３秒閉操作された場合に出力される情報が右前窓操作スイッチ用ＨＷタスク７１からターゲットボード１００へ送られると共にシェアードメモリ１２に対してログの書き込みを行う（Ｓ２８）。これを受けたターゲットボード１００が右前窓モータに対して所定のＰＷＭ信号を送る（Ｓ２９）。このＰＷＭ信号を右前窓モータ用ＨＷタスク８１が受けてログの書き込みを行うと共に窓を閉じる方向へのモータ回転を模擬して、回転に応じた回転数信号がターゲットボード１００へ検出出力されると共にシェアードメモリ１２に対してログの書き込みが行われる（Ｓ３０）。上記回転数信号をターゲットボード１００が受け取り、必要な場合に状態情報を右前窓操作スイッチ用ＨＷタスク７１へ返送し、この返送を受けた場合には右前窓操作スイッチ用ＨＷタスク７１はシェアードメモリ１２に対してログの書き込みを行う（Ｓ３１）。
【００２７】
一方、モニタタスク６２は、図８のフローチャートに示される通りにActiveX６３を介してシェアードメモリ１２に対するアクセスを行っており（Ｓ４１）、このとき取り込んだ情報（ログ）を用いて表示情報の作成を行いディスプレイへの表示を行う（Ｓ４２）。この結果、図７のフローチャートにおけるステップＳ２３〜Ｓ３１においてシェアードメモリ１２に書き込まれた「右前窓操作スイッチが５秒開操作された場合に出力される情報」、「５秒間窓開の場合にターゲットボード１００から右前窓モータに対して送られるＰＷＭ信号」、「５秒間窓開の場合にターゲットボード１００へ検出出力される回転に応じた回転数信号」、「５秒間窓開の場合に右前窓操作スイッチにおいて受け取られる信号」、「右前窓操作スイッチが３秒閉操作された場合に出力される情報」、「３秒間窓閉の場合にターゲットボード１００から右前窓モータに対して送られるＰＷＭ信号」、「３秒間窓閉の場合にターゲットボード１００へ検出出力される回転に応じた回転数信号」、「３秒間窓閉の場合に右前窓操作スイッチにおいて受け取られる信号」などがモニタタスク６２により所定のフォーマットにまとめられてディスプレイへ表示される。
【００２８】
斯して、本実施例では、Windows とリアルタイムＯＳとを搭載した一台のパーソナルコンピュータによりＨＩＬＳを実現できると共に、ＨＩＬＳ検証の場合にデータ・信号の入出力をモニタしたい所要位置（Ｉ／Ｏの位置）にログ排出ブロックを配置して、MATLAB/Simulink５０による自動コード生成を行ってタスクとしてリアルタイムＯＳ上に実装するだけで、シェアードメモリ１２へログが排出され、Windows のモニタタスク６２にてシェアードメモリ１２をアクセスして動作確認ができる。このため、装置を小型化することができ、ＨＭＩ部の開発が容易となる利点がある。
【００２９】
なお、本実施例では、四窓を持つ自動車におけるパワーウインドウの制御に用いるコントローラの開発に用いられるＨＩＬＳを一例として示したが、これに限定されるものではない。即ち、自動車のエンジンを含めた各部の制御に用いるコントローラの開発に用いられるＨＩＬＳについても適用することができ、また、自動車に限ることなく、各種の装置、システムの制御に用いるコントローラの開発に用いられるＨＩＬＳに対しても本発明は適用可能である。
【図面の簡単な説明】
【００３０】
【図１】本発明に係るＨＩＬＳ装置の実施例を示すブロック図。
【図２】本発明に係るＨＩＬＳ装置の実施例を用いてシミュレートするシステムの構成図。
【図３】図２に示したシステムのシミュレートモデルを示すブロック図。
【図４】本発明に係るＨＩＬＳ装置の実施例のソフトウエア構成を示すブロック図。
【図５】本発明に係るＨＩＬＳ装置の実施例のプログラムが起動された場合の処理の一例を示すフローチャート。
【図６】本発明に係るＨＩＬＳ装置の実施例のプログラムが起動された場合の処理の一例を示すフローチャート。
【図７】本発明に係るＨＩＬＳ装置の実施例のプログラムが起動された場合のハードウエアシミュレーションタスクが実行する処理の一例を示すフローチャート。
【図８】本発明に係るＨＩＬＳ装置の実施例のプログラムが起動された場合のモニタタスクが実行する処理の一例を示すフローチャート。
【符号の説明】
【００３１】
１  ＨＩＬＳ装置
１０  コンピュータ
１１  Ｉ／Ｏボード
１２  シェアードメモリ
２１  Windows
２２  リアルタイムＯＳ
２３  標準Windowsアプリケーション
２４  リアルタイムアプリケーション
２５  リアルタイムスケジューラ
６１  設定タスク
６２  モニタタスク
６３  ActiveX
７１  右前窓操作スイッチ用ＨＷタスク
７２  左前窓操作スイッチ用ＨＷタスク
７３  右後窓操作スイッチ用ＨＷタスク
７４  左後窓操作スイッチ用ＨＷタスク
８１  右前窓モータ用ＨＷタスク
８１  左前窓モータ用ＨＷタスク
８１  右後窓モータ用ＨＷタスク
８１  左後窓モータ用ＨＷタスク
【図１】
2008033672.tif 000003
【図２】
2008033672.tif 000004
【図３】
2008033672.tif 000005
【図４】
2008033672.tif 000006
【図５】
2008033672.tif 000007
【図６】
2008033672.tif 000008
【図７】
2008033672.tif 000009
【図８】
2008033672.tif 000010