JP4906286B2 - ソフトウェア開発環境システム - Google Patents

ソフトウェア開発環境システム Download PDF

Info

Publication number
JP4906286B2
JP4906286B2 JP2005236454A JP2005236454A JP4906286B2 JP 4906286 B2 JP4906286 B2 JP 4906286B2 JP 2005236454 A JP2005236454 A JP 2005236454A JP 2005236454 A JP2005236454 A JP 2005236454A JP 4906286 B2 JP4906286 B2 JP 4906286B2
Authority
JP
Japan
Prior art keywords
processing means
event
control software
time
machine model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005236454A
Other languages
English (en)
Other versions
JP2007052580A (ja
Inventor
昭吾 今田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Ten Ltd
Original Assignee
Denso Ten Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Ten Ltd filed Critical Denso Ten Ltd
Priority to JP2005236454A priority Critical patent/JP4906286B2/ja
Publication of JP2007052580A publication Critical patent/JP2007052580A/ja
Application granted granted Critical
Publication of JP4906286B2 publication Critical patent/JP4906286B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、実機を制御する制御ソフトウェアを開発するためのソフトウェア開発環境システムに関する。
実機を、例えばマイクロコンピュータ(マイコン)に組み込んだソフトウェアにより制御するといった構成の装置が、例えば家電機器分野や車両制御機器分野等において、多数存在する。以下、説明の都合上、その車両制御機器分野を例にとると、上記実機としての車両と上記制御ソフトウェアを内蔵するECU(Electronic Control Unit)とが、上記ソフトウェア開発環境システムの対象となる。
この制御ソフトウェアの開発において重要な作業は、ロジック検証であり、例えばその制御ソフトウェアのプログラムをデバッグすることである。この場合、実機である車両そのものを実際に制御してそのプログラムをデバッグする、ということをしていたのでは、その車両が完成するまでそのデバッグは事実上行えなくなってしまう。
そこで一般には実車両なしで上記デバッグを行うということが行われており、そのために実車両に代わる擬似車両をソフトウェアにより構築して、あたかも実車両があるかのごとく振舞うシミュレータが用いられる。
なお本発明に関連する公知技術としては、下記の〔特許文献1〜3〕がある。特許文献1は、同一OS上で動作させるソフトウェアおよびハードウェアのシミュレーションについて開示し、特許文献2は、CPU上のシミュレータ・プログラムとシミュレータ・ハードウェアとが、パソコンのシミュレータボード上で接続された構成を開示し、特許文献3では、実機デバイスおよび仮想デバイスを周辺デバイスとして用いる場合に、効率良くプログラムの検証が行える、マイコン先行プログラム開発支援用検証システムを開示している。
特開2002−175344号公報 特開2001−331346号公報 特開2003−316603号公報
図8は従来のソフトウェア開発環境システムの第1例を示す図であり、いわゆるHILS(Hardware In the Loop Simulation)環境システムである。本図において、参照番号1および5はそれぞれ、前述したECUおよび擬似車両である。
ECU1は、開発対象の制御ソフトウェア2と、この制御ソフトウェア2に入力を与えると共にその入力に対するプログラム処理の結果を出力するマイコン3と、マイコン3に対し擬似車両5側からの入力を印加しまた上記の処理結果を擬似車両5側に出力するECU回路4とからなる。
一方、擬似車両5は、実車両をソフトウェアにより構成した車両モデル6mと、この車両モデル6mからの出力データをアナログの電気信号に変換して、IOボード8を介しECU1側に入力し、また、ECU1側から出力されたアナログの電気信号を、そのIOボード8を介して受信し車両モデル6mへの入力データに変換するデバイス(マイコン3に相当)7とからなる。
図9は従来のソフトウェア開発環境システムの第2例を示す図であり、いわば仮想環境システムであって全ての構成要素がソフトウェアよりなる。すなわち図8の非ソフトウェア構成要素(3,4,7および8)が、ECU1においてはマイコンモデル3mおよびECUモデル4mとしてソフトウェア化され、一方擬似車両5においては、デバイスモデル7mおよびボードモデル8mとしてソフトウェア化される。したがって、図8に示す電気信号は、その電気信号相当の「1」「0」のデータ信号となる。
上述した従来のソフトウェア開発環境システムの第1例(図8)および第2例(図9)にはそれぞれ利害得失があり、これを示すと図10のとおりとなる。図10は従来システムの第1例(HILS環境)と第2例(仮想環境)の利点(OK)と欠点(NG)とを一覧表にて示す図である。
図10に示すとおり、「デバッグ機能」に関しては第2例(仮想環境)の方が優れ(OK)、「実行時間」に関しては第1例(HILS環境)の方が優れているが(OK)、「システム構築の時間・コスト」については第1例も第2例も共に好ましくない(NG)。
上述のとおり、ソフトウェア開発環境システムの主たる目的は、開発対象であるソフトウェアのロジック検証であるから、「デバッグ機能」に関して良好でない(NG)上記第1例(HILS環境)を採用するのは得策ではない。したがってその「デバッグ機能」に関して良好(OK)である上記第2例(仮想環境)の方を採用するのが有効である。
ところがこの第2例(仮想環境)は「実行時間」に関して良好でない(NG)。つまりデバッガを使用することができるものの、デバッグの実行時間すなわちマイコンモデル3mの動作時間、結局はソフト開発時間が、非常に長くなるという欠点がある。これは、上記マイコン3mのハードウェア的な動作を全てソフトウェアで実現するときに、アセンブラ言語で展開したプログラムによる動作結果をクロック単位で1つ1つ忠実に再現しているからであり、制御ソフトウェアの開発ということに特化して考えると、無駄な動作を大量に含むことになるからである。
したがって本発明は、上記従来例の問題点に鑑み、「システム構築の時間・コスト」、「デバッグ機能」および「実行時間」の全てにおいて優れたソフトウェア開発環境システムを提供することを目的とするものである。
図1は本発明に係るソフト開発環境システムの原理構成を示す図である。この原理構成は、前述した図9の構成と対比するとその違いは顕著であり、図9におけるマイコンモデル3m、ECUモデル4m、ボードモデル8mおよびデバイスモデル7mを全て取り去った構成となっている。この構成は図9と同様に「全ソフトウェア型」ではあるが、その図9の構成よりも極端に簡素化されている。いわば「簡易型仮想環境システム」を構築している。
この図1の構成においては、ハードウェア動作の模擬は対象外とする。したがって当然前述した電気信号相当の部分も存在しない。しかしそれに代えて、システム管理モジュール12を新たに導入する。このシステム管理モジュール12は制御ソフトウェア2と車両モデル6mとの間の情報伝達を一元管理する。このような簡素化を実現できるのは、開発対象である制御ソフトウェアの評価のみに特化することによって、上述のようにハードウェア動作の模擬を省略することができるからである。つまり制御ソフトウェア2の開発に目的を絞ったからである。このため、上記のマイコンモデル3mやECUモデル4mの動作は模擬の対象から外され、制御ソフトウェア2のデバッグ(最少限の目的)に集中させることができる。
上記のようにハードウェア動作の模擬を対象外とすることができたのは、予めハードウェアは完全に正常なものという前提を置いたからである。つまり開発対象のソフトウェアをハードウェアから完全に切り離し、そのソフトウェアの検証に特化したものである。この場合、上記のハードウェアが完全に正常なものという前提が成立していなかったとしても特段問題はないことに着目している。なぜなら、開発が完了したソフトウェアは最終的には実際にハードウェアと組み合わせた形でのチェックが行われ、ハードウェアとの整合性が確認されるので、ハードウェアに仮に異常があったとしても、この異常がこの最終段階で発見できるからである。
図2は本発明に係るソフトウェア環境システムの基本構成を示す図である。なお全図を通じて同様の構成要素には同一の参照番号または記号を付して示す。
本図において参照番号10が本発明に基づくソフトウェア開発環境システムであり、実機(車両)を制御する制御ソフトウェア2を開発するためのソフトウェア開発環境システムである。このシステム10は、大別して、3大モジュールすなわち制御ソフトウェアモジュール11と、システム管理モジュール12と、実機(車両)モデルモジュール13とからなる。
ここに実機モデルモジュール13は、実機(車両)を模擬した実機モデルをソフトウェアにより構成したものであり、
制御ソフトモジュール11は、その実機モデルとの間の入力/出力情報(IO情報)に基づいて、開発対象の制御ソフトウェア2を実行するものであり、
システム管理モジュール12は、実機モデルモジュール13と制御ソフトモジュール11との間に介在して、当該ソフトウェア開発環境システム全体の動作を管理するものである。
上記3大モジュール(11,12,13)のうち、特に本発明を特徴付けるモジュールは、図1にも示したシステム管理モジュール12である。その特徴は次のとおりである。すなわちシステム管理モジュール12は、(i)当該ソフトウェア開発環境システム10内に発生する各イベントを集約する。(ii)そして、その集約した各該イベント毎にそれぞれを起動すべき時刻を設定して管理する。(iii)さらに、各該イベント毎に各該時刻の順に時系列で、制御ソフトモジュール11および実機モデルモジュール13を起動し動作させる。つまり、対象モジュール(11,13)は、モジュール12により管理された時刻をパラメータとして制御対象のイベントを起動し、動作する。
この場合上記のイベントは、制御ソフトウェア2の評価のみに特化したときに実行すべきイベントとする。
本発明によれば、図1から理解されるように、ハードウェア部品の手配やワイヤハーネス等の作成は一切不要であり、また、制御ソフトモジュール11と実機モジュール13との間でやりとりされるIO情報はソフト開発に必要な情報のみに絞っているので、システム(10)を構築する時間・コストは大幅に低減される。
さらに仮想環境であるから実時間の処理はなく、デバッガ例えばICE(In Circuit Emulator)のようなラインデバッガの使用が可能となる。
さらにまた、時刻管理されたイベントの発生タイミングに次々と移って各イベント処理を行うから、つまりある時刻のイベント処理から次の時刻のイベント処理へと処理をスキップさせるから、前述した図9のマイコンモデル3mが行うようなクロック単位の精密な処理のほとんどが省略され、前述した実行時間は大幅に短縮される。結局、前述した図10の一覧表における3つの全ての項目が“OK”となる。
図3は図2における制御ソフトモジュール11の具体例を示す図である。ただし図2の構成の中に、組み込み用マイコンの中身として展開して示す。
図3の右端に示す「パルス入力」28−1は、車両モデルの場合、例えばエンジン回転数やスピードセンサ信号等である。このパルス入力28−1は、キャプチャ機能部24に入力される。キャプチャ機能部24は、フリーランで動作するシステムタイマ21のタイマ情報をもとに、指定したパルスの有効エッジの時刻を捉える。この時点で割込みも起こすことができる。またそのキャプチャ時刻はIOデータ部23に書き込まれる。
上記の割込みが発生したときは、割込みコントローラ22を介して、制御ソフト2内の該当の割込みルーチンが走る。
コンペア機能部25は、例えば現在時刻から1ms後に所定のパルスを「パルス出力」28−2として送出する、といったような制御を行うときに、その1ms後の時刻に一致したか否かを判定し、一致がとれたときにその所定のパルスを出力する。このとき割込みコントローラ22へ割込みを指示することもできる。なお、その「パルス出力」28−2は、車両モデルの場合、例えば点火信号や燃料噴射信号である。その点火時期や噴射時期は、最新のエンジン回転数に応じて、制御ソフトウェア2により演算され、更新される。
また通信機能部26は、「シリアル通信」29−1を介して、例えば外部のインテリジェントICと通信を行い、必要に応じて割込みを生じさせる。さらにまたポート機能部27は、IOポート29−1の入力ポートよりデータを読み込み、またその出力ポートよりデータを出力する。このIOポート29−2には、例えば外部のIGスイッチ、スタータスイッチやエアコンのマグネットクラッチ等が接続する。
次に図2に示す基本構成について、さらに詳しく説明する。図4は図2におけるモジュール11,12および13の具体的構成を示す図である。図4において、参照番号30は単一のCPUボードを示しており、したがってソフトウェア開発環境システム10(図2)は、同一のパソコン上で実現される。つまり本システム10は、好適には、実機(車両)モデルモジュール13と、制御ソフトモジュール11と、システム管理モジュール12とが、同一のOSのもとでかつ同一のCPU上で動作するモジュールである。本システム10全体は、システム管理モジュール12により制御され、制御ソフトモジュール11と実機(以下、「車両」とも称す)モデルモジュール13の各管理対象モジュールは、システム管理モジュール12により起動される。また、制御ソフトモジュール11と車両モデルモジュール13との間の入力/出力(I/O)情報の受渡しは、このシステム管理モジュール12を経由して行われる。このI/O情報には、モジュール11および12間に図示する“起動(イベント時刻付)”や“IOデータ(時刻付)”や“IOデータ”が含まれる。またそのIO情報には、モジュール12および13の間においても図示するとおり、“起動(時刻付)”や“IOデータ(時刻付)”や“IOデータ”が含まれる。
中央のシステム管理モジュール12は、前述したように、制御ソフトモジュール11および車両モデルモジュール13の各対象モジュールの起動を少なくとも制御し、まず、前述の時刻を生成するシステムタイマ22を包含する。ここに生成された時刻は当該ソフトウェア開発環境システム(10)全体の基準時刻をなす。したがって各対象モジュール11および13は、共に同一の仮想時間上で共通タイミングにて動作する。ここに、上述のイベントやIOデータにそれぞれ「時刻付」とした意義がある。このシステムタイマ21は、前述した時系列の順で直近に発生するイベントを選択し、かつ、その選択したイベントに設定された時刻に本システムタイマ21の時刻を更新する。
システム管理モジュール12はさらに、車両モデルモジュール13と制御ソフトモジュール11とにより共有される共有メモリ32を備え、車両モデルモジュール13および制御ソフトモジュール11から要求される各イベントを集約してシステムタイマ21により更新される時刻を各該イベントに設定して共有メモリ32に蓄積する。この共有メモリ32は、下記の入力/出力(IO)ドライバと協働する。このIOドライバは実機環境と同一のインタフェースを有し、上記IO情報を共有メモリ32に伝達する。
すなわちシステム10は、制御ソフトモジュール11および車両モデルモジュール13内にそれぞれ形成され、上記の共有メモリ32との間で、各イベントに関する時刻付のIOデータを書き込みまたは読み出す、制御ソフトモジュール側IOドライバ31および車両モデルモジュール側IOドライバ33を備える。
上記の、共有メモリ32と、IOドライバ31および33との間の連携において、第1の連携(点線枠35)では、IOデータを、システムタイマ21の時刻と関連付けて、管理する。したがってこの第1の連携35においては、例えば図3に示す「パルス入力」28−1のデータや「パルス出力」28−2のデータを扱うことになる。一方第2の連携(点線枠36)では、システムタイマ21の時刻が付されないタイミング非依存のIOデータを管理する。したがってこの第2の連携36においては、例えば図3に示す「シリアル通信」29−1のデータや「IOポート」29−2のデータを管理する。
なお図4において、CPUボード30には、本システム10の他に、前述のOS(37として示す)や前述のCPUに付帯するCPUタイマ(38として示す)が搭載される。以下、図を参照しながら、ソフトウェア開発環境システム10における具体的な一動作例を説明する。
図5はソフトウェア開発環境システム10における具体的動作例を表すタイミングチャートであり、
図6は図5における各時刻でのイベント管理について説明するための図である。
図5において、(a),(b),(c)および(d)の各欄はそれぞれ、システム管理モジュール12、制御ソフトモジュール11、車両モデルモジュール13、システムタイマ21および上述した時系列での時刻に対応する。これらの時刻はt0,t1,t2,t3,t4およびt5として示され、各時刻対応のイベント管理の内容が図6に示される。
図5および図6を参照すると、システム管理モジュール12は「1ms割込み」を内部で生成し、自内のシステムタイマ21が指定する時刻t0において、該「1ms割込み」を発生させる。これに応じて各モジュール11および13を起動後、次回タイミングを設定する。
上記の各モジュール11および13の起動に基づき、制御ソフトモジュール11は「1ms処理」を起動し、また、車両モデルモジュール13は「メイン処理」を起動する。なお、これらモジュール11および13はそれぞれ「定時処理」を繰り返し実行しており、各該定時処理の起動のために上記「1ms割込み」が発生する。
上記「1ms割込み」を受けた制御ソフトモジュール11は上記の「1ms処理」を実行し、その中で、システム管理モジュール12は、図5のa1にて、何らかの出力例えば「IO操作」(例えばIOパルスの出力等)をIOドライバ31を経由して自内の共有メモリ32にセットしながら「イベント管理の更新」を行う。車両モデルモジュール13での「メイン処理」(1ms処理)においても、図5のa2にて、「IO操作」が発生し、「イベント管理の更新」が行われて、共有メモリ32にイベントが蓄積する。
時刻t0での車両モデルモジュール13による「メイン処理」にて、システム管理モジュール12が該モジュール13より「パルス1」出力要求を受けたものとすると、これに対応するパルス発生時刻を設定する。ここに時刻t1にて、「パルス1」出力が発生し、制御ソフトモジュール11による「パルス1出力」処理が起動する。なおここでは(図5の“b1”)、モジュール11は、モジュール12内のシステムタイマ21のタイマ値を基に演算を実行する。演算とは、例えば最新のエンジン回転数を検出し、その回転数の変化に応じた次回タイミングの算出を行うことである。
モジュール12は、時刻t1でのモジュール11による「パルス1」出力処理により、モジュール11から「パルス2」出力要求を受けたものとすると、更新したシステムタイマ21のタイマ値をパラメータとして(図5の“a3”)、これに対応するパルス発生時刻を設定する。ここに時刻t2にて、モジュール11による「パルス2」出力処理が起動する。
一方、車両モデルモジュール13から「パルス3」出力要求をモジュール12が受けたものとすると、これに対応するパルス発生時刻をモジュール12が設定する。ここに時刻t3にて、「パルス3」入力が発生し、モジュール11による「パルス3入力」処理が起動する。
次にモジュール12は、モジュール11からの「パルス4」出力要求を受けたものとすると、これに対応するパルス発生時刻を設定する。ここに時刻t4にてモジュール11による「パルス4」出力処理が起動する。
時刻t5では、通信仕様に応じてモジュール12内部で生成された「受信イベント」が発生したものとすると、これに応答してモジュール11は、それに対応した「受信」処理を起動する。
以上の図5および図6の説明は1つの例示であるが、特に図5において注目すべき点は、第1に、各モジュールの処理中の時間が零であることである。例えば、時刻t0のステップについて見てみると、図示するTはT=0である。また第2に、イベントの発生がない区間は、処理をスキップしながら、時系列で順番にイベントを実行していくことである。これは図5に表すように、「階段状」に時刻が進む様子から明らかである。
上述の第1の点、すなわちT=0に関してみると、逆に、T=0であるから実際の処理時間の計測が行えない。つまり、対象モジュール(11,13)の各々の「処理起動時から処理終了時まで」の実処理時間が分からない。このことは、デバッガについてみると、処理中断しない場合(ステップ実行しない場合)の処理時間の推定ができないことにもなる。
そこで、かかる不都合を解消した処理負荷計測機能を実現するために、本発明では、所定のOS(図4の37)で動作するCPUに具備されるCPUタイマ(図4の38)による実時間を用いて、システムタイマ21により規定される1単位の時刻(t0,t1,t2等)内で処理されるイベントの実処理時間を計測するようにする。
以上の説明から明らかなとおり、本発明のソフトウェア開発環境システム10を動作させる主体はシステム管理モジュール12である。そこでこのモジュール12の動作についてさらに説明を補足しておく。
図7はシステム管理モジュール12の処理例を示すフローチャートである。本フローチャートにおいて、
ステップS11:先の図6に例示されるような種々のイベント管理情報を基にして、直近のイベントを選択する。例えば図5の時刻t0のステップにあっては、直近のイベントは時刻t1のイベントである。
ステップS12:上記の選択した直近のイベントの時刻(上記の例でt1)に、システムタイマ21の時刻を更新する。
ステップS13:該当システムタイマ時刻(上記の例でt1)で更新されるIOデータを、IOドライバ(図4の31)にセットして、制御ソフトモジュール11を起動する。
ステップS14:発生するイベント情報例えば割込みフラグを所定のレジスタに設定する。
ステップS15:上記の発生するイベントに対する該当のモジュールを起動する。そして上記の割込みフラグを見て、実行すべき処理を選択する。この処理にて、上記IOデータを用いて演算を行う。
なお、上記ステップS15と、後述するステップS17での各処理は(図7の11/13参照)、制御ソフトモジュール11あるいは車両モデルモジュール13内での処理である。
ステップS16:モジュール11あるいは13内からの要求により、IO情報の更新やイベント管理情報の更新を行う(図5において、a1ならびにa2における前述した「IO操作」や「イベント管理の更新」参照)。
ステップS17:かくして処理済みとなったイベントは、ステップS11のイベント管理情報から削除する。
以上詳述した本発明に係るソフトウェア開発環境システム10は、図3に示す3つの項目について全て“OK”という優れた機能を発揮するものの、逆に、その原理故に不都合が生じる場合もある。
これは、制御ソフトモジュール11内及び/又は車両モデルモジュール13内のアプリケーションに「時間待ちの処理」を含む場合である。このような場合、本発明のシステム管理モジュール12は、これらモジュール(11,13)のいずれかから、当該「時間待ちの処理」に起因するシステムタイマ21への参照要求が連続して発生したことを検知して、システムタイマ21の時間を所定時間進ませることとする。
ここに上記の「時間待ちの処理」とは、例えば
ステップS21:まず最初に時刻を取得し(例えば初期値時刻t(1)をt0とする)、
ステップS22:続いて若干のインターバルをおいて第2回目の時刻t(2)を取得し、
ステップS23:その第2回目の時刻t(2)が、例えばt0+1msを超えたか否か判別し、そのt0+1msを超えていなければ第3回目、第4回目…の時刻t(3),t(4)…を取得し、t0+1msを超えるまで本ステップS23を反復する、
といったプログラムである。
このような「時間待ちの処理」のプログラムがアプリケーションの中に含まれる場合には、上記のステップS23にて、対象モジュール(制御ソフトモジュール11/車両モデルモジュール13)は、上記の1msの経過を、システム管理モジュール12内のシステムタイマ21を何回も参照しながら待つことになり、素早くそのステップS23から抜け出すことができない。
このような参照要求が多発する状況になると、モジュール12は、ある何らかのアプリケーションが、システムタイマ21のタイマ値が進むことを期待していることを知るので、自内のシステムタイマ21の時間を所定時間だけ、一度にあるいは少しずつ、進ませる。これにより、上記ステップS23の繰り返しループから短時間のうちに抜け出ることができる。このようにシステムタイマ21の時間を任意に進めても(あるいは遅らせても)、前述のとおりシステムタイマ21の時間は常に当該ソフトウェア開発環境システム(10)全体の基準タイマとなるので、他のモジュール11および13に何ら問題は起こらない。
以上述べてきたように本発明によれば、図10に掲げるシステム構築の時間・コスト、デバッグ機能および実行時間の全てにおいて優れたソフトウェア開発環境システムが実現される。
本発明に係るソフトウェア開発環境システムの原理構成を示す図である。 本発明に係るソフトウェア開発環境システムの基本構成を示す図である。 図2における制御ソフトモジュール11の具体例を示す図である。 図2におけるモジュール11,12および13の具体的構成を示す図である。 ソフトウェア開発環境システム10における具体的動作例を表すタイミングチャートである。 図5における各時刻でのイベント管理について説明するための図である。 システム管理モジュール12の処理例を示すフローチャートである。 従来のソフトウェア開発環境システムの第1例を示す図である。 従来のソフトウェア開発環境システムの第2例を示す図である。 従来のソフトウェア開発環境システムの第1例および第2例の利害得失を示す図である。
符号の説明
1 ECU
2 制御ソフトウェア
5 擬似車両
6m 車両モデル
10 ソフトウェア開発環境システム
11 制御ソフトウェアモジュール
12 システム管理モジュール
13 実機(車両)モデルモジュール
21 システムタイマ
30 CPUボード
31 制御ソフトウェアモジュール側IOドライバ
32 共有モメリ
33 実機(車両)モデルモジュール側IOドライバ
35 第1の連携
36 第2の連携
37 OS
38 CPUタイマ

Claims (5)

  1. 実機を制御する制御ソフトウェアを動作させ、前記制御ソフトウェアのロジック検証を行うためのソフトウェア開発環境システムであって、
    前記実機を模擬したモデルであってソフトウェア構成した実機モデルを実行する実機モデル処理手段と、
    前記実機モデルとの間の入力/出力情報に基づいて、ロジック検証対象の前記制御ソフトウェアを実行する制御ソフト処理手段と、
    前記実機モデル処理手段と前記制御ソフト処理手段との間に介在して、当該ソフトウェア開発環境システム全体の動作を管理するシステム管理処理手段と、を備え、
    前記実機モデル処理手段と前記制御ソフト処理手段及び前記システム管理処理手段は、演算処理装置上でソフトウェアを動作させる形で構成され、
    前記システム管理処理手段は、
    前記実機モデル処理手段と前記制御ソフト処理手段での演算の結果、発生する各イベントを集め、集めた複数のイベントを、イベント毎に設定したそれぞれのイベントを起動すべき時刻と共に管理し、管理している複数のイベントを、イベント毎に設定された時刻の順に時系列で選択し、前記制御ソフトウェアと前記実機モデルの少なくとも一方における、選択したイベントで動作が必要な処理手段を起動させることで、前記制御ソフト処理手段および前記実機モデル処理手段を起動し動作させるイベント管理処理と、
    当該ソフトウェア開発環境システム内の基準時刻を生成するシステムタイマを管理するシステムタイマ管理処理と、を行う処理手段であり、
    前記実機モデル処理手段と前記制御ソフト処理手段は、前記システムタイマで生成される基準時刻に基づいて演算を行い、
    前記システム管理処理手段は、前記イベント管理処理にて管理するイベントとして、前記実機モデル処理手段又は前記制御ソフト処理手段からの要求によって生成するイベントと、当該システム管理処理手段の内部で生成するイベントとが存在し、前記イベント管理処理にてイベントを選択して処理手段の起動を行う際に、選択したイベントに対応して設定されている時刻に、前記システムタイマの時刻を更新することを特徴とするソフトウェア開発環境システム。
  2. 前記実機モデル処理手段と前記制御ソフト処理手段における演算に必要な入力/出力情報を受け渡しするためのメモリで、前記実機モデル処理手段と前記制御ソフト処理手段とがそれぞれ書き込みと読み出しが可能な共有メモリを備え、
    前記システム管理処理手段は、前記実機モデル処理手段又は前記制御ソフト処理手段によって前記共有メモリに入力/出力情報を書き込む処理が行われると、書き込まれた入力/出力情報からイベントの発生要求を取得し、前記イベント管理処理にて管理するイベント管理に関する情報を更新する処理を行うことを特徴とする請求項1記載のソフトウェア開発環境システム。
  3. 前記システム管理処理手段が前記イベント管理処理にて管理するイベントに関するイベント管理情報は、前記共有メモリに蓄積されており、
    前記実機モデル処理手段と前記制御ソフト処理手段は、前記システム管理処理手段からイベントに基づいて起動されると、起動される元となったイベントに対応する処理を行うとともに、処理が完了すると処理済のイベントを前記イベント管理情報から削除することを特徴とする請求項2記載のソフトウェア開発環境システム。
  4. 前記実機モデル処理手段と前記制御ソフト処理手段はそれぞれIOドライバを備えており、
    前記システム管理処理手段は、前記実機モデル処理手段又は前記制御ソフト処理手段をイベントに基づいて起動する際に、起動する際に更新するシステムタイマの時刻で更新される入力/出力情報を、前記IOドライバにセットし、
    前記実機モデル処理手段と前記制御ソフト処理手段は、前記システム管理処理手段からイベントに基づいて起動されると、前記IOドライバにセットされた入力/出力情報を用いてイベントに対応する処理を行うことを特徴とする請求項2記載のソフトウェア開発環境システム。
  5. 前記システム管理処理手段内部で生成するイベントは、システムタイマの基準時間が所定時間経過する毎に発生する割込みイベントであることを特徴とする請求項1記載のソフトウェア開発環境システム。
JP2005236454A 2005-08-17 2005-08-17 ソフトウェア開発環境システム Expired - Fee Related JP4906286B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005236454A JP4906286B2 (ja) 2005-08-17 2005-08-17 ソフトウェア開発環境システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005236454A JP4906286B2 (ja) 2005-08-17 2005-08-17 ソフトウェア開発環境システム

Publications (2)

Publication Number Publication Date
JP2007052580A JP2007052580A (ja) 2007-03-01
JP4906286B2 true JP4906286B2 (ja) 2012-03-28

Family

ID=37916998

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005236454A Expired - Fee Related JP4906286B2 (ja) 2005-08-17 2005-08-17 ソフトウェア開発環境システム

Country Status (1)

Country Link
JP (1) JP4906286B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008262318A (ja) * 2007-04-11 2008-10-30 Fujitsu Ten Ltd ソフトウェア評価装置及びその信号モニタ方法
JP5153465B2 (ja) * 2008-06-09 2013-02-27 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション方法、システム及びプログラム
JP5395397B2 (ja) 2008-10-16 2014-01-22 富士通テン株式会社 シミュレーションシステム
JP5500820B2 (ja) * 2008-12-08 2014-05-21 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション方法、システム及びプログラム
JP5475274B2 (ja) * 2008-12-22 2014-04-16 キヤノン株式会社 シミュレーション方法及びそれを実現する情報処理装置
CN102341787B (zh) * 2009-03-12 2015-06-17 国际商业机器公司 模拟方法、系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6349851A (ja) * 1986-08-19 1988-03-02 Hitachi Electronics Eng Co Ltd シミユレ−シヨンシステム
JPH10161906A (ja) * 1996-11-29 1998-06-19 Toshiba Corp ソフトウェア実行装置及びソフトウェア実行方法
JPH1114507A (ja) * 1997-06-19 1999-01-22 Denso Corp 車両シミュレーション装置
JPH11265297A (ja) * 1998-03-17 1999-09-28 Mitsubishi Electric Corp 分散シミュレータシステム
JP2000010813A (ja) * 1998-06-25 2000-01-14 Hitachi Ltd シミュレーションテスト方式
JP2000067030A (ja) * 1998-08-25 2000-03-03 Mitsubishi Electric Corp 分散シミュレーション装置
JP2003228495A (ja) * 2002-02-05 2003-08-15 Fujitsu Ltd 制御プログラム開発支援装置
JP4282390B2 (ja) * 2003-07-04 2009-06-17 富士通テン株式会社 マイコンのロジック開発装置

Also Published As

Publication number Publication date
JP2007052580A (ja) 2007-03-01

Similar Documents

Publication Publication Date Title
JP5395397B2 (ja) シミュレーションシステム
JP4906286B2 (ja) ソフトウェア開発環境システム
JP5270330B2 (ja) マルチコアマイコンシステムのシミュレーション方法及びシミュレーション装置
CN116049035B (zh) 一种缓存一致性的验证和调试的实现方法
JP2013137658A (ja) 協調シミュレーション用計算機システム、組込みシステムの検証方法及びプログラム
JP3018912B2 (ja) 検証支援システム
JP4137434B2 (ja) シミュレーション方式及びシミュレーション方法及びプログラムを記録したコンピュータ読取可能な記録媒体
US8170696B2 (en) Process control simulator and process control simulating method
JP4885639B2 (ja) Hils装置
US8412496B2 (en) Simulation system, method, and program
JP2008262318A (ja) ソフトウェア評価装置及びその信号モニタ方法
JP2008262318A5 (ja)
JP2010097405A (ja) シミュレーションシステム及びシミュレーション方法
JP2003167756A5 (ja)
US20210141710A1 (en) Development support device
Morelli et al. A system-level framework for the evaluation of the performance cost of scheduling and communication delays in control systems
JP2005284557A (ja) 内部メモリをモニタ可能なマイクロコンピュータ
JP4905782B2 (ja) プラント制御システム、プラント制御方法およびプラント制御のためのプログラム
Liakh et al. Four-component model for dynamic verification of process-oriented control software for cyber-physical systems
JP2012248055A (ja) シミュレーション装置及びシミュレーション方法
JP2011081560A (ja) システムレベルシミュレーション方法および装置
JP2010108075A (ja) プログラマブルコントローラ及びそのシーケンスプログラム動作検証方法
JP2004252824A (ja) 回路検証方法、回路シミュレータ、回路検証プログラム
JP3452708B2 (ja) プログラマブルコントローラ
JP2004046716A (ja) デバッグ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080730

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100409

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100511

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100712

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110322

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110622

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110913

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111114

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111213

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120110

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees