JP4571355B2 - 車両内の技術的プロセスの制御方法,制御プログラム,メモリ素子,制御装置 - Google Patents
車両内の技術的プロセスの制御方法,制御プログラム,メモリ素子,制御装置 Download PDFInfo
- Publication number
- JP4571355B2 JP4571355B2 JP2001374622A JP2001374622A JP4571355B2 JP 4571355 B2 JP4571355 B2 JP 4571355B2 JP 2001374622 A JP2001374622 A JP 2001374622A JP 2001374622 A JP2001374622 A JP 2001374622A JP 4571355 B2 JP4571355 B2 JP 4571355B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- control program
- processing
- stored
- during
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Programmable Controllers (AREA)
- Testing And Monitoring For Control Systems (AREA)
Description
【発明の属する技術分野】
本発明は,車両内の技術的プロセスの制御方法,制御プログラム,メモリ素子,制御装置に関する。
【0002】
【従来の技術】
協同的なモードにおける制御プログラムの各タスクの処理においては,タスクが異なる優先順位を有する場合には,より高位の実行優先順位を有するタスクが,実際に実行されている低位の優先順位のタスクの中断をもたらす。
【0003】
協同的モードにおいては,より高い実行優先順位を有するタスクが実際に実行されている低位の優先順位を有するタスクのプロセスを中断する割込み的モードとは異なり,より高位の優先順位を有するタスクは実際に実行されている低位の優先順位を有するタスクのプロセスの終了を待機する。
【0004】
その後,初めて,低位の優先順位を有するタスクが中断され,より高位の優先順位を有するタスクが実行される。より高位の優先順位を有するタスクが完了した場合に,低位の優先順位を有するタスクは,その前で中断されていたプロセスから続行される。
【0005】
上記協同的モードにおける制御プログラムのタスクの処理は,DE19500957A1から既知である。より高位の優先順位を有するタスクによる低位の優先順位を有するタスクの中断は,マルチタスキングオペレーションシステムの課題に属する。制御プログラムを処理する際に協同的モードも割込み的モードも支援するマルチタスキングオペレーションシステムは,例えばドイツ,シュトゥットガルトの,ETAS エントヴィックルング−ウント−アプリカチオーンスヴェルクツォイゲ フュア エレクトロニッシェ ジステーメ(ETAS Entwicklung− und Applikationswerkzeuge fuer elektronische Systeme)GmbH & Co.KG社のリアルタイムオペレーションシステムERCOSEKである(ETAS GmbH & Co.KG:ERCOSEK V2.0.0マニュアル,シュトゥットガルト,1998を参照)。DE19500957A1とERCOSEKは,明らかに関連している。
【0006】
プロセスのラン時間は,各々計算装置の負荷に応じて変動する。かかる理由から,また他のより高位の優先順位を有するタスクによりもたらされる中断によって,1つの同じ制御プログラムのプロセス呼出しの順序は,何回も処理する場合には異なる可能性がある。即ち,制御プログラムの処理後に,プロセス呼出しの正確な順序は認識されておらず,例えばシミュレーション目的のために再構築することもできない。
【0007】
制御プログラム又はその一部(アルゴリズム)のシュミレーションについては,複数の方法が既知である。アルゴリズム又は制御プログラムを測定されたデータによって後からシミュレートすることは,オフライン−オープンループ−シミュレーション(OOL)と称される。いわゆるオフライン−クローズドループ−シミュレーション(OCL)とは,閉成されたシミュレーション回路内でシミュレーションモデルによってアルゴリズム又は制御プログラムをシミュレートすることである。処理されたプロセスの順序が再現可能ではないことが,特に測定されたデータによってアルゴリズムを後からシミュレートする場合(OOL)に,著しい困難をもたらす。
【0008】
従来技術によれば,マルチタスキングオペレーションシステムによって制御されるアルゴリズムは,通常は最適な状態でシミュレーションされる。即ち,制御プログラムの各タスクは,中断が生じないように,呼び出される。
【0009】
DE19500957A1には,協同的モードで処理すべき制御プログラムのシミュレーションは,割込み的モードで処理すべき制御プログラムのシミュレーションと比較して,プログラム処理の時間的シーケンスと特に中断の効果をシミュレートできるという利点が記載されている。
【0010】
これは,協同的モードにおいては,各プロセスは中断されず,かつプログラム状態を記述し,スタックメモリに格納される変量の数が一定であるので,容易に可能である。このことにより,プロセス間の中断は,開発行程において極めて良好にシミュレートすることができる。というのは,中断の可能性の数は制限されており,かつ中断はプログラムシーケンスとは無関係だからである。
【0011】
【発明が解決しようとする課題】
しかしながら,上記従来の方法では,制御プログラムの実際の処理に続いてプロセスシーケンスを再現することができないので,従来技術から既知の全ての協同的又は割込み的モード内で処理すべき制御プログラムのアルゴリズムのシミュレーションは,実際の条件下ではシミュレーションできないという問題がある。
【0012】
したがって,本発明の目的は,可能な限り実際に近い条件下で協同的又は割込み的モードにおいて実行すべき制御プログラムのアルゴリズム,測定されたデータによりシミュレーション(OOL)を行うための基礎となるプロセスを再現することが可能な新規かつ改良された車両内の技術的プロセスの制御方法,制御プログラム,メモリ素子,制御装置を提供することにある。
【0013】
【課題を解決するための手段】
上記課題を解決するため,本発明の第1の観点においては,複数のタスク(A,B)に分割される制御プログラムが計算装置(31)によって処理されると共に,前記各タスク(A;B)は少なくとも1つのプロセス(345,346,…,383,384;121,122,…128,129)を有し,かつ協同的又は割込み的モードにおいて処理される,車両内の技術的プロセスの制御方法であって,前記制御プログラムの処理の間,プロセスシーケンスが記憶される,ことを特徴とする車両内の技術的プロセスの制御方法が提供される。
【0014】
上記記載の発明では,制御プログラムの処理の間プロセスシーケンスが格納されるので,制御プログラムの処理後に,記憶されている情報を使用してプログラムシーケンスを再現することができる。この再現されたプロセスシーケンスは,その後制御プログラムのアルゴリズムのシミュレーションの基礎とされる。したがって,特にOOL−シミュレーションに基づく測定されたデータによって,アルゴリズムの特に実際に近いシミュレーションが可能となる。測定とシミュレーション結果を相互に比較することができ,かつ制御プログラム内の効果的なエラーサーチが可能である。このように,初めて制御プログラムの実際のプロセスシーケンスをシミュレートできるための基礎を提供する。このために,例えば各プロセス内及び/又は各タスク内に好適な指令が付加される。
【0015】
また,前記制御プログラムの処理の前に,前記各プロセス(345,346,…383,384;121,122,…128,129)に一義的な識別子が対応づけられると共に,前記制御プログラムの処理の間に前記プロセスシーケンスは前記プロセス(345,346,…,383,384;121,122,…128,129)の前記識別子を使用して記憶される,如く構成すれば,プロセスの処理の枠内で,その識別子が所定のメモリ領域に格納され,メモリ領域に格納されている識別子を使用して,制御プログラムの実行後にプロセスシーケンスを再現することができる。なお,識別子は,例えば複数桁の数として形成することができる。
【0016】
また,前記制御プログラムの処理の間,その都度新しいタスク(A,B)に対してのみ,前記新しいタスク(A,B)の開始前に最後に処理されたプロセス(345,346,…,383,384;121,122,…128,129)の識別子が記憶される,如く構成すれば,制御プログラムのタスクのプロセスリストを使用して,新しいタスクの開始前に最後に処理されたプロセスの,記憶されている識別子と共に,制御プログラムの実行後にプロセスシーケンスが完全に再現される。このことにより,プロセスシーケンスを完全に再現できるようにするために必要とされる,格納すべきデータ量を著しく削減することができる。なお,制御プログラムの各タスクは,タスクの各プロセスのその処理の順序を順次リストアップしている,いわゆるプロセスリストによって定義されている。
【0017】
また,前記制御プログラムの処理の間,その都度終了したタスク(A,B)に対してのみ,前記終了したタスク(A,B)の開始前に最後に処理されたプロセス(345,346,…,383,384;121,122,…128,129)の識別子が記憶される,如く構成すれば,タスクのプロセスリストを使用して,終了したタスクの開始前に最後に処理されたタスクの,格納されている識別子と共に,制御プログラムの処理後にプロセスシーケンスが完全に再現される。このように,プロセスシーケンスを完全に再現できるようにするために必要とされる,格納すべきデータ量を著しく削減することができる。
【0018】
また,前記制御プログラムの処理の間,各処理されたプロセス(345,346,…,383,384;121,122,…128,129)の識別子が変数(FinishedProcessNumber,FPN)に,そして各タスク(A,B)の処理の間,前記変数の内容がプロセスシーケンスデータファイル(PAD)に記憶される,如く構成すれば,各処理されたプロセスの識別子がその中に格納される,変数は,好ましくはグローバル変数として形成されている。制御プログラムの処理後にプロセスシーケンスを再現するために,タスクのプロセスリストとプロセスシーケンスデータファイルが評価される。
【0019】
また,前記各タスク(A,B)の最初に,前記変数(FinishedProcessNumber,FPN)の内容がタスク固有変数(TaskA_PredecessorPRC,TA_PrePRC;TaskB_PredecessorPRC TB_PrePRC)に記憶されると共に,前記タスク(A,B)をさらに処理する間,前記タスク固有変数(TaskA_PredecessorPRC,TA_PrePRC;TaskB_PredecessorPRCTB_PrePRC)の内容が,プロセスシーケンスデータファイル(PAD)に記憶される,如く構成すれば,変数の内容は,制御プログラムの処理の間常に実際に処理されたプロセスの識別子によって上書きされるので,新しいタスクを呼び出す場合に,変数内にタスクの呼出し前に最後に処理されたプロセスの識別子が格納されている。タスクの最初に,この変数の内容がタスク固有変数に書き込まれる。従ってタスク固有変数内には,常に,実際のタスクの開始直前に処理されたプロセスの識別子が存在している。タスクをさらに処理する間,タスク固有変数の内容がプロセスシーケンスデータファイルに格納される。タスク固有変数の内容をタスクをさらに処理する間,測定技術によってこのタスクの他の全ての測定量と共に測定データファイルに格納することできる。従ってプロセスシーケンスデータファイルは,この測定データファイルの構成部分となる。
【0020】
上記課題を解決するため,本発明の第2の観点によれば,車両の制御装置(30)のためのメモリ素子(32)であって,前記メモリ素子には,制御プログラムが記憶されており,前記制御プログラムは計算装置(31)上で実行可能であり,かつ請求項1から6のいずれか1項に記載の方法を実行することが可能である,ことを特徴とするメモリ素子が提供される。
【0021】
上記記載の発明では,メモリ素子上に制御プログラムが格納されており,その制御プログラムは計算装置上,特にマイクロプロセッサ上で,本発明に基づく方法を実行できる。
【0022】
上記課題を解決するため,本発明の第3の観点においては,計算装置に対し,請求項1から6のいずれか1項に記載の方法を実行させる制御プログラムが提供される。
【0023】
上記記載の発明では,計算装置上(特にマイクロプロセッサ上)で,制御プログラムが本発明にかかる方法を実行することができる。なお,ここで,制御プログラムは,特に車両内の技術的プロセスを制御するのに用いられる,コンピュータプログラムである。
【0024】
また,前記制御プログラムは,メモリ素子(32)に記憶されている,如く構成れば,メモリ素子上に格納されている制御プログラムによって本発明にかかる方法を実行することができるので効果的である。この場合に,メモリ素子として,特に電気的メモリ媒体,例えばリードオンリーメモリ,ランダムアクセスメモリ又はフラッシュメモリを使用することができる。
【0025】
上記課題を解決するため,本発明の第4の観点によれば,複数のタスク(A,B)に分割された制御プログラムが実行される計算装置(31)を有し,かつ前記各タスク(A,B)は少なくとも1つのプロセス(345,346,…,383,384;121,122,…128,129)を有しており,かつタスク(A,B)の処理は協働的又は割込み的モードで行われる,車両内の技術的プロセスを制御する制御装置(30)において,前記制御装置(30)は,前記制御プログラムの処理の間プロセスシーケンスを記憶する記憶手段と、前記制御プログラムの処理の前に,前記各プロセスに一義的な識別子を対応付ける手段と,を有し、前記記憶手段は、前記制御プログラムの処理の間に前記プロセスシーケンスを前記プロセスの前記識別子を使用して記憶し,前記制御プログラムの処理の間,その都度新たなタスクに対してのみ,前記新しいタスクの開始前に最後に処理されたプロセスの識別子を記憶する,ことを特徴とする制御装置が提供される。
【0026】
上記記載の発明では,制御プログラムの処理の間プロセスシーケンスが格納されるので,制御プログラムの処理後に,記憶されている情報を使用してプログラムシーケンスを再現することができる。この再現されたプロセスシーケンスは,その後制御プログラムのアルゴリズムのシミュレーションの基礎とされる。それによって,特にOOL−シミュレーションに基づく測定されたデータによって,アルゴリズムの特に実際に近いシミュレーションが可能となる。測定とシミュレーション結果を相互に比較することができ,かつ制御プログラム内の効果的なエラーサーチが可能である。このように,初めて制御プログラムの実際のプロセスシーケンスをシミュレートできるための基礎を提供する。このために,例えば各プロセス内及び/又は各タスク内に好適な指令が付加される。また、プロセスの処理の枠内で,その識別子が所定のメモリ領域に格納され,メモリ領域に格納されている識別子を使用して,制御プログラムの実行後にプロセスシーケンスを再現することができる。なお,識別子は,例えば複数桁の数として形成することができる。また、制御プログラムのタスクのプロセスリストを使用して,新しいタスクの開始前に最後に処理されたプロセスの,記憶されている識別子と共に,制御プログラムの実行後にプロセスシーケンスが完全に再現される。このことにより,プロセスシーケンスを完全に再現できるようにするために必要とされる,格納すべきデータ量を著しく削減することができる。なお,制御プログラムの各タスクは,タスクの各プロセスのその処理の順序を順次リストアップしている,いわゆるプロセスリストによって定義されている。
【0027】
上記課題を解決するため,本発明の第5の観点によれば,複数のタスクに分割された制御プログラムが実行される計算装置を有し,かつ前記各タスクは少なくとも1つのプロセスを有しており,かつタスクの処理は協働的又は割込み的モードで行われる,車両内の技術的プロセスを制御する制御装置において,前記制御装置は,前記制御プログラムの処理の間プロセスシーケンスを記憶する記憶手段と,前記制御プログラムの処理の前に,前記各プロセスに一義的な識別子を対応付ける手段と,を有し,前記記憶手段は、前記制御プログラムの処理の間に前記プロセスシーケンスを前記プロセスの前記識別子を使用して記憶され,前記制御プログラムの処理の間,その都度終了したタスクに対してのみ,前記終了したタスクの開始前に最後に処理されたプロセスの識別子を記憶する,ことを特徴とする制御装置が提供される。
上記記載の発明では,制御プログラムの処理の間プロセスシーケンスが格納されるので,制御プログラムの処理後に,記憶されている情報を使用してプログラムシーケンスを再現することができる。この再現されたプロセスシーケンスは,その後制御プログラムのアルゴリズムのシミュレーションの基礎とされる。それによって,特にOOL−シミュレーションに基づく測定されたデータによって,アルゴリズムの特に実際に近いシミュレーションが可能となる。測定とシミュレーション結果を相互に比較することができ,かつ制御プログラム内の効果的なエラーサーチが可能である。このように,初めて制御プログラムの実際のプロセスシーケンスをシミュレートできるための基礎を提供する。このために,例えば各プロセス内及び/又は各タスク内に好適な指令が付加される。また、プロセスの処理の枠内で,その識別子が所定のメモリ領域に格納され,メモリ領域に格納されている識別子を使用して,制御プログラムの実行後にプロセスシーケンスを再現することができる。なお,識別子は,例えば複数桁の数として形成することができる。また、タスクのプロセスリストを使用して,終了したタスクの開始前に最後に処理されたタスクの,格納されている識別子と共に,制御プログラムの処理後にプロセスシーケンスが完全に再現される。このように,プロセスシーケンスを完全に再現できるようにするために必要とされる,格納すべきデータ量を著しく削減することができる。
また、上記記載の制御装置に係る発明では、前記記憶手段において、前記制御プログラムの処理の間,各処理されたプロセスの識別子が変数に記憶されると共に,前記各タスクの処理の間,前記変数の内容がプロセスシーケンスデータファイルに記憶される,如く構成すれば,各処理されたプロセスの識別子がその中に格納される,変数は,好ましくはグローバル変数として形成されている。制御プログラムの処理後にプロセスシーケンスを再現するために,タスクのプロセスリストとプロセスシーケンスデータファイルが評価される。
また、上記記載の制御装置に係る発明では、前記記憶手段において、前記各タスクの最初に,前記変数の内容がタスク固有変数に記憶されると共に,前記タスクをさらに処理する間,前記タスク固有変数の内容が前記プロセスシーケンスデータファイルに記憶される,如く構成すれば,変数の内容は,制御プログラムの処理の間常に実際に処理されたプロセスの識別子によって上書きされるので,新しいタスクを呼び出す場合に,変数内にタスクの呼出し前に最後に処理されたプロセスの識別子が格納されている。タスクの最初に,この変数の内容がタスク固有変数に書き込まれる。従ってタスク固有変数内には,常に,実際のタスクの開始直前に処理されたプロセスの識別子が存在している。タスクをさらに処理する間,タスク固有変数の内容がプロセスシーケンスデータファイルに格納される。タスク固有変数の内容をタスクをさらに処理する間,測定技術によってこのタスクの他の全ての測定量と共に測定データファイルに格納することできる。従ってプロセスシーケンスデータファイルは,この測定データファイルの構成部分となる。
【0028】
【発明の実施の形態】
以下,本発明の好適な実施の形態について,添付図面を参照しながら詳細に説明する。尚,以下の説明及び添付図面において,同一の機能及び構成を有する構成要素については,同一符号を付することにより,重複説明を省略する。
【0029】
(第1の実施の形態)
まず,図1から図10を参照しながら,第1の実施の形態について説明する。
なお,図1は,本実施形態にかかる車両における技術的プロセスの制御装置の構成を示すブロック図である。
【0030】
まず,図1に示すように,制御装置30は,計算装置(例えばマイクロプロセッサ)31を有しており,その上で制御プログラムが実行可能である。制御装置30は,さらに,メモリ素子32を有しており,そのメモリ素子32に制御プログラムが格納されている。例えばバス導線として形成されているデータ接続33を介して,マイクロプロセッサ31によって実行すべき制御プログラムあるいはその部分がマイクロプロセッサ31へ伝達されて,そこで処理される。
【0031】
好適なインターフェイスを介してマイクロプロセッサ31へ測定量34が供給され,かつマイクロプロセッサ31内で処理される。測定量34は,例えばメモリ素子32内の測定データファイルに格納される。この測定データファイルには,本実施形態においては,制御プログラムの処理の間,プロセスシーケンスに関する情報,特にプロセスの処理の順序も格納することができる。この情報と測定量34は,制御プログラムの処理後に,シミュレーション目的のために利用することができる。
【0032】
次に,図2に基づいて,制御プログラムを処理する間のプロセスシーケンスを説明する。なお,図2は,本実施形態にかかる制御プログラムを処理する間のプロセスシーケンスを示す説明図である。なお,本実施形態においては,制御プログラムを処理する間のプロセスシーケンスを2つのサイクルで示している。
【0033】
本実施形態においては,制御装置の計算装置上(特にマイクロプロセッサ上)で,特に車両内の技術的プロセスを制御するための制御プログラムを処理することができる。制御プログラムを複数のタスクに,そして各タスクがさらに複数のプロセスに分割されている。
【0034】
タスクは,所定の時点であるいは所定の走査時間で規則的に呼び出されて処理される。各タスクには,所定の優先順位が対応づけられている。制御プログラムの処理の間に2つのタスクを同時に実行しようとする場合には,2つのタスクの優先順位が比較され,より高い優先順位を有するタスクが第1のタスクとして処理される。
【0035】
例えばタスクAが処理され,かつタスクBを実行しようとする場合には,各々プログラマにより選択された,タスクのコンフィグレーションに従って種々の場合が生じ得る:
【0036】
タスクAがタスクBよりも高い優先順位を有する場合には,タスクBの実行は,タスクAが終了するまで待機される。
【0037】
タスクBがタスクAよりも高い優先順位を有する場合には,タスクAの処理は中断されて,タスクBが実行される。プログラマがいわゆる協同的モードにおけるタスクの実行を選択している場合には,タスクBの実行は,タスクAの現在のプロセスの終了まで待機される。このプロセスが終了すると,即座にタスクAは中断されて,タスクBが実行される。タスクBが終了した場合に,タスクAは,タスクBを実行するためにその前で中断されたプロセスの最初からさらに実行される。
【0038】
プログラマが,割込み的モードにおけるタスクの処理を選択している場合には,タスクBはタスクAの現在のプロセスを中断し,タスクBが直接実行される。
次にタスクAが,中断されたプロセスにおいてさらに処理される。
【0039】
あるタスクの,より高位の優先順位を有する他のタスクによる中断は,マルチタスキングオペレーションシステムの課題に属する。プロセスのラン時間は,各々制御プログラムが処理される計算機の負荷に応じて変動する。
【0040】
かかる理由から,そして他のタスクによりもたらされる中断によって,図2の第1と第2のサイクルにおける2つのタスクの処理に示すように,1つの同じ制御プログラムを複数回実行する場合にプロセス呼出しの順序が異なることがあり得る。従って制御プログラムの処理後に,タスクの各プロセスが呼び出された順序は認識されていない。
【0041】
また,図3に示すように,タスクの個々のプロセスには,各々3桁の数字の形式の一義的な識別子が設けられている。タスクの個々のプロセスは,制御プログラムの処理の間の実行の順序においてプロセスリストに記憶される。
【0042】
プロセスリストは,オンラインでプロセスシーケンスを定めるために,オペレーションシステムによって評価される。タスクAはプロセス345から384を有し,タスクBはプロセス121から129を有している。タスクAは,20ミリ秒毎に呼び出される。タスクBは,タスクAよりも高い優先順位で10ミリ秒毎に呼び出される。2つのタスクは,協同的モードで作動し,即ちタスクAは,より優先順位の高いタスクBによって2つのプロセス間で中断される。
【0043】
また,図4には,第1のサイクルと第2のサイクルにおけるプロセスの処理の順序が図示されている。
【0044】
図4に示すように,第1のサイクルにおいては,タスクBのプロセス121から129が処理される。次に,タスクAのプロセスがプロセス345から始るように処理される。
【0045】
しかし,タスクAのプロセスの処理は,タスクBによって中断される。第1のサイクルにおいては,タスクAの中断はプロセス372の処理後に発生し,第2のサイクルにおいてはプロセス383の処理後に初めて発生する。
【0046】
従って,第1のサイクルにおいてはタスクBの第2の処理後には,タスクAのプロセス373から384が実行されなければならず,第2のサイクルにおいてはタスクAのプロセス384のみが実行される。
【0047】
プロセスの順序が異なることがあり得るという事実は,制御プログラムの処理後に所定のプロセスシーケンスはもはや再現できないことを意味している。これは特に,測定されたデータによって制御プログラムのアルゴリズムを後からシミュレートする場合には(いわゆるオフラインオープンループ(OOL)シミュレーション),著しい困難をもたらす。
【0048】
従って,従来技術によれば,マルチタスキングオペレーションシステムによって制御されるアルゴリズムは,通常,最適な状態でシミュレートされ,即ちタスクA,Bは中断が発生しないように呼び出される。
【0049】
従来技術から既知のシミュレーション方法を用いたシミュレーションにおける,第1のサイクルと第2のサイクルにおけるプロセスのそれに応じた順序が,図5に示されている。図4に示す実際のプロセスシーケンスから明らかなように,シミュレートされたプロセスシーケンス(図5)と実際のプロセスシーケンス(図4)とは,明らかに異なる。
【0050】
本実施形態においては,制御プログラムのアルゴリズムの可能な限り実際に近いシミュレーション(特に実際に近いOOL−シミュレーション)を可能にするために,制御プログラムの処理の間プロセスシーケンスを記憶する構成を採用している。
【0051】
記憶すべきデータ量を削減するために,処理される全てのプロセスが記憶されるのではなく,新しいタスク,あるいは終了したタスクA,Bの開始前に処理された最後のプロセスのみが記憶される。
【0052】
各プロセスには,一義的な標徴(識別子)が対応づけられており,それは本実施形態においては,3桁の数(タスクAについてはプロセス345から384そしてタスクBについてはプロセス121から129)からなる。
【0053】
各プロセスにおいて,かつ制御プログラムの各タスクにおいて,本実施形態にかかる方法の実現のために必要とされる好適なプログラム指令が付加される。
【0054】
制御プログラムの処理の間,各プロセスの最後に,今処理されたプロセスの識別子がグローバルな変数処理済みプロセス番号(FinishedProcessNumber)(FPN)で続けられる。従って,変数FPN内には,常に最後に処理されたプロセスの識別子が存在している。
【0055】
各タスクA,Bの最初に,変数FPNがタスク固有の変数(TaskA_PredecessorPRC,TaskB_PredecessorPRC)にコピーされる。従ってこのタスク固有の変数内には,常に,現在のタスクA,Bの開始直前に処理されたプロセスの識別子が存在している。各タスクがさらに処理される間,各々タスク固有の変数(TaskA_PredecessorPRC,TaskB_PredecessorPRC)の内容は,プロセスシーケンスデータファイル(PAD)内に記憶される。特に,各々タスク固有の変数は,測定技術によってこれらタスクA,Bの他の全ての測定量と共に測定データファイル内に記憶され,その場合にプロセスシーケンスデータファイルは,測定データファイルの構成部分である。
【0056】
図6には,他の制御プログラムのプロセスシーケンスが図示されている。制御プログラムは,異なる優先順位の4つのタスクC,D,E及びFを有している。
各タスクC,D,E,Fは,1つ以上のプロセスを有している。
【0057】
タスクCは,プロセス111を有し,タスクDはプロセス212と222,タスクEはプロセス313,323,333を有し,かつタスクFはプロセス413,423,433を有している。各プロセスは,図6においては,バーで示されている。バーの高さは,タスクC,D,E,Fの優先順位を表している。制御プログラムの処理の間,プロセスシーケンスが全プロセスの識別子によってプロセスシーケンスデータファイルに格納される場合に,表は次の内容を有する:「111,313,212,111,222,323,111,212,222,333,413,423,433,111,313,111,323,333,413,423,433,111」。
【0058】
プロセスシーケンスデータファイルに格納すべき,プロセスシーケンスの完全な再現のために必要なデータ量を削減するために,制御プログラムの処理の間,終了したタスクの開始前に最後に処理されたプロセスの識別子のみが格納される。
【0059】
それによって得られる,プロセスシーケンスデータファイルの内容を図7に示す。上記の22個の要素の代わりに,図7に示すプロセスシーケンスデータファイルは12の要素のみを有する。
【0060】
最初に終了したタスクは,タスクCである。タスクCの開始前に処理されたプロセスは,認識されていない。従って,プロセスシーケンスデータファイルには「xxx」が記入される。
【0061】
その後,タスクEが開始されるが終了されない。その後,タスクDが開始されるが同様に終了されない。次に終了したタスクは再びタスクCである。タスクCの開始前に処理されたプロセスは,「212」である。従ってプロセスシーケンスデータファイルには,「212」が記入される。
【0062】
その後,タスクDが続行されて終了される。タスクDの開始前に処理されたプロセスは,「313」である。従ってプロセスシーケンスデータファイルには,「313」が記入される。
【0063】
その後タスクEが続行されるが,終了されない。次に終了したタスクは,またタスクCである。タスクCの開始前に処理されたプロセスは,「323」である。従ってプロセスシーケンスデータファイルには「323」が記入される。
【0064】
その後,タスクDが開始されて終了もされる。タスクDの開始前に処理されたプロセスは,「111」である。従ってプロセスシーケンスデータファイルには「111」が記入される。
【0065】
その後,タスクEが続行されて終了される。タスクEの開始前に処理されたプロセスは「111」である。従って再びプロセスシーケンスデータファイルには「111」が記入される。
【0066】
その後,タスクFが開始されて終了もされる。タスクFの開始前に処理されたプロセスは「333」である。従ってプロセスシーケンスデータファイルには「333」が記入される。かかる工程は,制御プログラムが終了するまでの間,続行される。プロセスシーケンスデータファイルの次の内容が得られる:「xxx,212,313,323,111,111,333,433,313,111,333,433」。
【0067】
制御プログラムの処理後に,シミュレーション目的のために,まず測定データファイルが読み込まれる。プロセスシーケンスが,プロセスリスト(図3を参照)と測定データファイル内に記憶されている情報を使用して再構築される。
【0068】
本実施形態にかかる方法は,制御プログラムにおいて初めて実際のプロセスシーケンスをシミュレートすることができる基礎を提供する。測定とシミュレーション結果は,相互に比較されて,制御プログラムのソフトウェア内での効果的なエラーサーチが可能になる。
【0069】
図8には,図2に示すプロセスシーケンスについて,グローバル変数FinishedProcessNumber(FPN)とタスク固有変数(TaskA_PredecessorPRC,TaskB_PredecessorPRC)の内容が図示されている。これらの情報は,測定データファイルに格納される。
【0070】
次に,図9に基づいて,本実施形態にかかるタスクAの処理方法について説明する。なお,図9は,本実施形態にかかるタスクAの処理方法を示すフローチャートである。
【0071】
まず,ステップS10で,処理が開始される(ステップS10)。次いで,ステップS11で,タスクAが選択される(ステップS11)。その後,ステップS12で,グローバル変数の内容(FinishedProcessNumber,FPN)がタスク固有変数(TaskA_PredecessorPRC)にコピーされる(ステップS12)。
【0072】
さらに,ステップS13で,タスク固有変数の内容がプログラムシーケンスデータファイル(PAD)に格納される(ステップS13)。次いで,ステップS14で,タスクAのプロセスリスト(図3を参照)を使用して選択されたプロセス(PRC)が実行される(ステップS14)。このプロセスの標徴(識別子)は,ステップS15で,グローバル変数(FinishedProcessNumber)に格納される。
【0073】
さらに,ステップS16で,タスクAが終了しているか,が判断される(ステップS16)。タスクAが終了していないと判断される場合には,ステップS14に移行し,プロセスリストに従ってタスクAの次のプロセスが選択される。タスクAが終了していると判断される場合には,ステップS17に移行し,処理を終了する(ステップS17)。
【0074】
また,タスクBの処理方法は,図10に示すように,ステップS20から27は,図9のステップS10から17が該当する。タスクBの実行は,上記タスクAの実行と同様に行われる。なお,図10は,本実施形態にかかるタスクBの処理方法を示すフローチャートである。
【0075】
タスクAとタスクBの実行は,当然ながら,常時,あるいは協同的モードにおいては現在のプロセスの終了後に,より高位の優先順位のタスクによって中断することができる。これは,例えばインターラプトコールによって行われる。
【0076】
以上,本発明に係る好適な実施の形態について説明したが,本発明はかかる構成に限定されない。当業者であれば,特許請求の範囲に記載された技術思想の範囲内において,各種の修正例及び変更例を想定し得るものであり,それらの修正例及び変更例についても本発明の技術範囲に包含されるものと了解される。
【0077】
【発明の効果】
制御プログラムの処理の間プロセスシーケンスが格納されるので,制御プログラムの処理後に,記憶されている情報を使用してプログラムシーケンスを再現することができる。この再現されたプロセスシーケンスは,その後制御プログラムのアルゴリズムのシミュレーションの基礎とされる。それによって,特にOOL−シミュレーションに基づく測定されたデータによって,アルゴリズムの特に実際に近いシミュレーションが可能となる。測定とシミュレーション結果を相互に比較することができ,かつ制御プログラム内の効果的なエラーサーチが可能である。このように,初めて制御プログラムの実際のプロセスシーケンスをシミュレートできるための基礎を提供する。このために,例えば各プロセス内及び/又は各タスク内に好適な指令が付加される。
【図面の簡単な説明】
【図1】第1の実施の形態にかかる技術的プロセスの制御装置を示すブロック図である。
【図2】本実施形態にかかる制御プログラムを処理する間のプロセスシーケンスを2つのサイクルで示す説明図である。
【図3】本実施形態にかかるタスクAとタスクBについてのプロセスリストを示す説明図である。
【図4】図2にかかる2つのサイクルの間のプロセスの順序表を示す説明図である。
【図5】従来におけるシミュレーション方法による制御プログラムを示す説明図である。
【図6】本実施形態にかかる他の制御プログラムを処理する間のプロセスシーケンスを示す説明図である。
【図7】終了したタスクの開始前に,図6に示すプロセスシーケンスの間に処理された各々最後のプロセスを有する表を示す説明図である。
【図8】図2にかかる2つのサイクルの実行の間の種々の変数で占められた表を示す説明図である。
【図9】本実施形態にかかるタスクAの処理方法を示すフローチャートである。
【図10】本実施形態にかかるタスクBの処理方法を示すフローチャートである。
【符号の説明】
30 制御装置
31 計算装置(例えばマイクロプロセッサ)
32 メモリ素子
33 データ接続
34 測定量
Claims (11)
- 複数のタスクに分割される制御プログラムが計算装置によって処理されると共に,前記各タスクは少なくとも1つのプロセスを有し,かつ協働的又は割込み的モードにおいて処理される,車両内の技術的プロセスの制御方法であって,
前記制御プログラムの処理の間,プロセスシーケンスが記憶され、
前記制御プログラムの処理の前に,前記各プロセスに一義的な識別子が対応付けられると共に,前記制御プログラムの処理の間に前記プロセスシーケンスは前記プロセスの前記識別子を使用して記憶され,
前記制御プログラムの処理の間,その都度新たなタスクに対してのみ,前記新しいタスクの開始前に最後に処理されたプロセスの識別子が記憶される,
ことを特徴とする車両内の技術的プロセスの制御方法。 - 複数のタスクに分割される制御プログラムが計算装置によって処理されると共に,前記各タスクは少なくとも1つのプロセスを有し,かつ協働的又は割込み的モードにおいて処理される,車両内の技術的プロセスの制御方法であって,
前記制御プログラムの処理の間,プロセスシーケンスが記憶され、
前記制御プログラムの処理の前に,前記各プロセスに一義的な識別子が対応付けられると共に,前記制御プログラムの処理の間に前記プロセスシーケンスは前記プロセスの前記識別子を使用して記憶され,
前記制御プログラムの処理の間,その都度終了したタスクに対してのみ,前記終了したタスクの開始前に最後に処理されたプロセスの識別子が記憶される,
ことを特徴とする車両内の技術的プロセスの制御方法。 - 前記制御プログラムの処理の間,各処理されたプロセスの識別子が変数に記憶されると共に,
前記各タスクの処理の間,前記変数の内容がプロセスシーケンスデータファイルに記憶される,
ことを特徴とする請求項1又は2に記載の車両内の技術的プロセスの制御方法。 - 前記各タスクの最初に,前記変数の内容がタスク固有変数に記憶されると共に,
前記タスクをさらに処理する間,前記タスク固有変数の内容が前記プロセスシーケンスデータファイルに記憶される,
ことを特徴とする請求項3に記載の車両内の技術的プロセスの制御方法。 - 車両の制御装置のためのメモリ素子であって,
前記メモリ素子には,制御プログラムが記憶されており,前記制御プログラムは計算装置によって実行されることが可能であり,
かつ請求項1から4のいずれか1項に記載の方法を実行することが可能である,
ことを特徴とするメモリ素子。 - 計算装置に対し,請求項1から4のいずれか1項に記載の方法を実行させるための制御プログラム。
- 前記制御プログラムは,メモリ素子に記憶されている,
ことを特徴とする請求項6に記載の制御プログラム。 - 複数のタスクに分割された制御プログラムが実行される計算装置を有し,かつ前記各タスクは少なくとも1つのプロセスを有しており,かつタスクの処理は協働的又は割込み的モードで行われる,車両内の技術的プロセスを制御する制御装置において,
前記制御装置は,前記制御プログラムの処理の間プロセスシーケンスを記憶する記憶手段と,
前記制御プログラムの処理の前に,前記各プロセスに一義的な識別子を対応付ける手段と,を有し,
前記記憶手段は、
前記制御プログラムの処理の間に前記プロセスシーケンスを前記プロセスの前記識別子を使用して記憶し,
前記制御プログラムの処理の間,その都度新たなタスクに対してのみ,前記新しいタスクの開始前に最後に処理されたプロセスの識別子を記憶する,
ことを特徴とする制御装置。 - 複数のタスクに分割された制御プログラムが実行される計算装置を有し,かつ前記各タスクは少なくとも1つのプロセスを有しており,かつタスクの処理は協働的又は割込み的モードで行われる,車両内の技術的プロセスを制御する制御装置において,
前記制御装置は,前記制御プログラムの処理の間プロセスシーケンスを記憶する記憶手段と,
前記制御プログラムの処理の前に,前記各プロセスに一義的な識別子を対応付ける手段と,を有し,
前記記憶手段は、
前記制御プログラムの処理の間に前記プロセスシーケンスを前記プロセスの前記識別子を使用して記憶され,
前記制御プログラムの処理の間,その都度終了したタスクに対してのみ,前記終了したタスクの開始前に最後に処理されたプロセスの識別子を記憶する,
ことを特徴とする制御装置。 - 前記記憶手段において、
前記制御プログラムの処理の間,各処理されたプロセスの識別子が変数に記憶されると共に,
前記各タスクの処理の間,前記変数の内容がプロセスシーケンスデータファイルに記憶される,
ことを特徴とする請求項8又は9に記載の制御装置。 - 前記記憶手段において、
前記各タスクの最初に,前記変数の内容がタスク固有変数に記憶されると共に,
前記タスクをさらに処理する間,前記タスク固有変数の内容が前記プロセスシーケンスデータファイルに記憶される,
ことを特徴とする請求項10に記載の制御装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10061001.3 | 2000-12-08 | ||
DE10061001A DE10061001B4 (de) | 2000-12-08 | 2000-12-08 | Verfahren und Steuergerät zur Steuerung von technischen Vorgängen in einem Kraftfahrzeug, sowie Speicherelement und Steuerprogramm hierfür |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002251291A JP2002251291A (ja) | 2002-09-06 |
JP4571355B2 true JP4571355B2 (ja) | 2010-10-27 |
Family
ID=7666242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001374622A Expired - Fee Related JP4571355B2 (ja) | 2000-12-08 | 2001-12-07 | 車両内の技術的プロセスの制御方法,制御プログラム,メモリ素子,制御装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7296270B2 (ja) |
JP (1) | JP4571355B2 (ja) |
DE (1) | DE10061001B4 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6797998B2 (en) | 2002-07-16 | 2004-09-28 | Nvidia Corporation | Multi-configuration GPU interface device |
US7984446B1 (en) * | 2003-09-18 | 2011-07-19 | Nvidia Corporation | Method and system for multitasking BIOS initialization tasks |
DE10351019A1 (de) * | 2003-10-31 | 2005-06-30 | P21 - Power For The 21St Century Gmbh | Verfahren zum Steuern und/oder Regeln wenigstens eines Aggregats in einem technischen System sowie technisches System |
DE102005021986A1 (de) | 2005-05-09 | 2006-11-16 | Robert Bosch Gmbh | Verfahren zur Steuergeräte-Überwachung |
JP4551349B2 (ja) * | 2006-03-31 | 2010-09-29 | 富士通テン株式会社 | 制御対象シミュレーション装置 |
GB2521151B (en) * | 2013-12-10 | 2021-06-02 | Advanced Risc Mach Ltd | Configurable thread ordering for a data processing apparatus |
GB2521155B (en) | 2013-12-10 | 2021-06-02 | Advanced Risc Mach Ltd | Configuring thread scheduling on a multi-threaded data processing apparatus |
JP6218645B2 (ja) * | 2014-03-05 | 2017-10-25 | 三菱電機株式会社 | プログラム解析装置及びプログラム解析方法及びプログラム |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3662401A (en) * | 1970-09-23 | 1972-05-09 | Collins Radio Co | Method of program execution |
DE2555963C2 (de) * | 1975-12-12 | 1982-10-28 | Ibm Deutschland Gmbh, 7000 Stuttgart | Einrichtung zur Funktionsmodifizierung |
US4937740A (en) * | 1985-09-18 | 1990-06-26 | Cadre Technologies, Inc. | Real time software analyzing system for storing selective m-bit addresses based upon correspondingly generated n-bit tags |
US4954948A (en) * | 1986-12-29 | 1990-09-04 | Motorola, Inc. | Microprocessor operating system for sequentially executing subtasks |
US6304891B1 (en) * | 1992-09-30 | 2001-10-16 | Apple Computer, Inc. | Execution control for processor tasks |
US5680645A (en) * | 1992-11-18 | 1997-10-21 | Canon Kabushiki Kaisha | System for executing first and second independently executable programs until each program relinquishes control or encounters real time interrupts |
JPH0749790A (ja) * | 1993-06-01 | 1995-02-21 | Matsushita Electric Ind Co Ltd | プロセッサにおける割り込み制御方法及び割り込み制御回路 |
DE19500957A1 (de) | 1994-07-19 | 1996-01-25 | Bosch Gmbh Robert | Verfahren zur Steuerung von technischen Vorgängen oder Prozessen |
US6009454A (en) * | 1994-09-30 | 1999-12-28 | Allen-Bradley Company, Llc | Multi-tasking operation system for industrial controller |
US5872909A (en) * | 1995-01-24 | 1999-02-16 | Wind River Systems, Inc. | Logic analyzer for software |
US5619409A (en) * | 1995-06-12 | 1997-04-08 | Allen-Bradley Company, Inc. | Program analysis circuitry for multi-tasking industrial controller |
US5844795A (en) * | 1995-11-01 | 1998-12-01 | Allen Bradley Company, Llc | Diagnostic aid for industrial controller using multi-tasking architecture |
JP3139392B2 (ja) * | 1996-10-11 | 2001-02-26 | 日本電気株式会社 | 並列処理システム |
US6128641A (en) * | 1997-09-12 | 2000-10-03 | Siemens Aktiengesellschaft | Data processing unit with hardware assisted context switching capability |
US5991792A (en) * | 1998-01-02 | 1999-11-23 | International Business Machines Corporation | Method, apparatus and computer program product for dynamically managing a thread pool of reusable threads in a computer system |
US6272388B1 (en) * | 1998-09-29 | 2001-08-07 | Rockwell Technologies, Llc | Program structure and method for industrial control |
-
2000
- 2000-12-08 DE DE10061001A patent/DE10061001B4/de not_active Expired - Lifetime
-
2001
- 2001-12-07 JP JP2001374622A patent/JP4571355B2/ja not_active Expired - Fee Related
- 2001-12-10 US US10/013,167 patent/US7296270B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US7296270B2 (en) | 2007-11-13 |
US20020099757A1 (en) | 2002-07-25 |
DE10061001B4 (de) | 2005-05-04 |
DE10061001A1 (de) | 2002-06-27 |
JP2002251291A (ja) | 2002-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4571355B2 (ja) | 車両内の技術的プロセスの制御方法,制御プログラム,メモリ素子,制御装置 | |
US7086054B2 (en) | Method and device for reconstructing the process sequence of a control program | |
JPS585848A (ja) | プログラム呼出し制御方式 | |
JP3207333B2 (ja) | プログラマブルコントロ−ラ | |
JP2621631B2 (ja) | プログラマブルコントローラ | |
JPH04308940A (ja) | 仮想計算機システムにおける資源の自動割当て管理方式 | |
JPH05224711A (ja) | プログラマブルコントローラの制御方法 | |
JPS58155406A (ja) | フロ−チヤ−ト式プログラマブル・コントロ−ラ | |
JP3503531B2 (ja) | オンラインリアルタイム処理システム及び該システムにおける副ロードモジュール置換方法 | |
JPS5835648A (ja) | プログラム実行制御方式 | |
JP2767817B2 (ja) | シーケンサの接点の模擬動作方法 | |
JPH04332003A (ja) | プログラマブルコントローラ | |
JPH04299417A (ja) | トグル動作方法 | |
JPH07287660A (ja) | プログラマブルコントローラの割り込み処理方法 | |
JPH0756746A (ja) | システムコール関数処理装置 | |
JPH09223039A (ja) | オンラインシステムのデバッグ装置 | |
JP2000039989A (ja) | プログラムの自動配布システム、プログラムの自動配布方法およびプログラムの自動配布用プログラムを記録した記録媒体 | |
JPS61156339A (ja) | トレ−ス処理方式 | |
JPH08249024A (ja) | プログラマブルコントローラ | |
JPH03271812A (ja) | シーケンスデータの記憶方式 | |
JPH05241853A (ja) | プログラマブルコントローラ | |
JPH11312108A (ja) | 副ロードモジュールのトランザクション同期置換方式 | |
JPH0883188A (ja) | マルチタスク処理を行う計算機 | |
JPH05127945A (ja) | プログラム実行状況解析方式 | |
JPH03139703A (ja) | プログラマブルコントローラのタイマ命令処理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041122 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061031 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070131 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070807 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071205 |
|
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: 20100812 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130820 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |