(57)【特許請求の範囲】
【請求項１】
複数のタスクに分割される制御プログラムが計算装置によって処理されると共に，前記各タスクは少なくとも１つのプロセスを有し，かつ協働的又は割込み的モードにおいて処理される，車両内の技術的プロセスの制御方法であって，
前記制御プログラムの処理の間，プロセスシーケンスが記憶され、
前記制御プログラムの処理の前に，前記各プロセスに一義的な識別子が対応付けられると共に，前記制御プログラムの処理の間に前記プロセスシーケンスは前記プロセスの前記識別子を使用して記憶され，
前記制御プログラムの処理の間，その都度新たなタスクに対してのみ，前記新しいタスクの開始前に最後に処理されたプロセスの識別子が記憶される，
ことを特徴とする車両内の技術的プロセスの制御方法。
【請求項２】
複数のタスクに分割される制御プログラムが計算装置によって処理されると共に，前記各タスクは少なくとも１つのプロセスを有し，かつ協働的又は割込み的モードにおいて処理される，車両内の技術的プロセスの制御方法であって，
前記制御プログラムの処理の間，プロセスシーケンスが記憶され、
前記制御プログラムの処理の前に，前記各プロセスに一義的な識別子が対応付けられると共に，前記制御プログラムの処理の間に前記プロセスシーケンスは前記プロセスの前記識別子を使用して記憶され，
前記制御プログラムの処理の間，その都度終了したタスクに対してのみ，前記終了したタスクの開始前に最後に処理されたプロセスの識別子が記憶される，
ことを特徴とする車両内の技術的プロセスの制御方法。
【請求項３】
前記制御プログラムの処理の間，各処理されたプロセスの識別子が変数に記憶されると共に，
前記各タスクの処理の間，前記変数の内容がプロセスシーケンスデータファイルに記憶される，
ことを特徴とする請求項１又は２に記載の車両内の技術的プロセスの制御方法。
【請求項４】
前記各タスクの最初に，前記変数の内容がタスク固有変数に記憶されると共に，
前記タスクをさらに処理する間，前記タスク固有変数の内容が前記プロセスシーケンスデータファイルに記憶される，
ことを特徴とする請求項３に記載の車両内の技術的プロセスの制御方法。
【請求項５】
車両の制御装置のためのメモリ素子であって，
前記メモリ素子には，制御プログラムが記憶されており，前記制御プログラムは計算装置によって実行されることが可能であり，
かつ請求項１から４のいずれか１項に記載の方法を実行することが可能である，
ことを特徴とするメモリ素子。
【請求項６】
計算装置に対し，請求項１から４のいずれか１項に記載の方法を実行させるための制御プログラム。
【請求項７】
前記制御プログラムは，メモリ素子に記憶されている，
ことを特徴とする請求項６に記載の制御プログラム。
【請求項８】
複数のタスクに分割された制御プログラムが実行される計算装置を有し，かつ前記各タスクは少なくとも１つのプロセスを有しており，かつタスクの処理は協働的又は割込み的モードで行われる，車両内の技術的プロセスを制御する制御装置において，
前記制御装置は，前記制御プログラムの処理の間プロセスシーケンスを記憶する記憶手段と，
前記制御プログラムの処理の前に，前記各プロセスに一義的な識別子を対応付ける手段と，を有し，
前記記憶手段は、
前記制御プログラムの処理の間に前記プロセスシーケンスを前記プロセスの前記識別子を使用して記憶し，
前記制御プログラムの処理の間，その都度新たなタスクに対してのみ，前記新しいタスクの開始前に最後に処理されたプロセスの識別子を記憶する，
ことを特徴とする制御装置。
【請求項９】
複数のタスクに分割された制御プログラムが実行される計算装置を有し，かつ前記各タスクは少なくとも１つのプロセスを有しており，かつタスクの処理は協働的又は割込み的モードで行われる，車両内の技術的プロセスを制御する制御装置において，
前記制御装置は，前記制御プログラムの処理の間プロセスシーケンスを記憶する記憶手段と，
前記制御プログラムの処理の前に，前記各プロセスに一義的な識別子を対応付ける手段と，を有し，
前記記憶手段は、
前記制御プログラムの処理の間に前記プロセスシーケンスを前記プロセスの前記識別子を使用して記憶され，
前記制御プログラムの処理の間，その都度終了したタスクに対してのみ，前記終了したタスクの開始前に最後に処理されたプロセスの識別子を記憶する，
ことを特徴とする制御装置。
【請求項１０】
前記記憶手段において、
前記制御プログラムの処理の間，各処理されたプロセスの識別子が変数に記憶されると共に，
前記各タスクの処理の間，前記変数の内容がプロセスシーケンスデータファイルに記憶される，
ことを特徴とする請求項８又は９に記載の制御装置。
【請求項１１】
前記記憶手段において、
前記各タスクの最初に，前記変数の内容がタスク固有変数に記憶されると共に，
前記タスクをさらに処理する間，前記タスク固有変数の内容が前記プロセスシーケンスデータファイルに記憶される，
ことを特徴とする請求項１０に記載の制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は，車両内の技術的プロセスの制御方法，制御プログラム，メモリ素子，制御装置に関する。
【０００２】
【従来の技術】
協同的なモードにおける制御プログラムの各タスクの処理においては，タスクが異なる優先順位を有する場合には，より高位の実行優先順位を有するタスクが，実際に実行されている低位の優先順位のタスクの中断をもたらす。
【０００３】
協同的モードにおいては，より高い実行優先順位を有するタスクが実際に実行されている低位の優先順位を有するタスクのプロセスを中断する割込み的モードとは異なり，より高位の優先順位を有するタスクは実際に実行されている低位の優先順位を有するタスクのプロセスの終了を待機する。
【０００４】
その後，初めて，低位の優先順位を有するタスクが中断され，より高位の優先順位を有するタスクが実行される。より高位の優先順位を有するタスクが完了した場合に，低位の優先順位を有するタスクは，その前で中断されていたプロセスから続行される。
【０００５】
上記協同的モードにおける制御プログラムのタスクの処理は，ＤＥ１９５００９５７Ａ１から既知である。より高位の優先順位を有するタスクによる低位の優先順位を有するタスクの中断は，マルチタスキングオペレーションシステムの課題に属する。制御プログラムを処理する際に協同的モードも割込み的モードも支援するマルチタスキングオペレーションシステムは，例えばドイツ，シュトゥットガルトの，ＥＴＡＳ  エントヴィックルング−ウント−アプリカチオーンスヴェルクツォイゲ  フュア  エレクトロニッシェ  ジステーメ（ＥＴＡＳ  Ｅｎｔｗｉｃｋｌｕｎｇ−  ｕｎｄ  Ａｐｐｌｉｋａｔｉｏｎｓｗｅｒｋｚｅｕｇｅ  ｆｕｅｒ  ｅｌｅｋｔｒｏｎｉｓｃｈｅ  Ｓｙｓｔｅｍｅ）ＧｍｂＨ  ＆  Ｃｏ．ＫＧ社のリアルタイムオペレーションシステムＥＲＣＯＳＥＫである（ＥＴＡＳ  ＧｍｂＨ  ＆  Ｃｏ．ＫＧ：ＥＲＣＯＳＥＫ  Ｖ２．０．０マニュアル，シュトゥットガルト，１９９８を参照）。ＤＥ１９５００９５７Ａ１とＥＲＣＯＳＥＫは，明らかに関連している。
【０００６】
プロセスのラン時間は，各々計算装置の負荷に応じて変動する。かかる理由から，また他のより高位の優先順位を有するタスクによりもたらされる中断によって，１つの同じ制御プログラムのプロセス呼出しの順序は，何回も処理する場合には異なる可能性がある。即ち，制御プログラムの処理後に，プロセス呼出しの正確な順序は認識されておらず，例えばシミュレーション目的のために再構築することもできない。
【０００７】
制御プログラム又はその一部（アルゴリズム）のシュミレーションについては，複数の方法が既知である。アルゴリズム又は制御プログラムを測定されたデータによって後からシミュレートすることは，オフライン−オープンループ−シミュレーション（ＯＯＬ）と称される。いわゆるオフライン−クローズドループ−シミュレーション（ＯＣＬ）とは，閉成されたシミュレーション回路内でシミュレーションモデルによってアルゴリズム又は制御プログラムをシミュレートすることである。処理されたプロセスの順序が再現可能ではないことが，特に測定されたデータによってアルゴリズムを後からシミュレートする場合（ＯＯＬ）に，著しい困難をもたらす。
【０００８】
従来技術によれば，マルチタスキングオペレーションシステムによって制御されるアルゴリズムは，通常は最適な状態でシミュレーションされる。即ち，制御プログラムの各タスクは，中断が生じないように，呼び出される。
【０００９】
ＤＥ１９５００９５７Ａ１には，協同的モードで処理すべき制御プログラムのシミュレーションは，割込み的モードで処理すべき制御プログラムのシミュレーションと比較して，プログラム処理の時間的シーケンスと特に中断の効果をシミュレートできるという利点が記載されている。
【００１０】
これは，協同的モードにおいては，各プロセスは中断されず，かつプログラム状態を記述し，スタックメモリに格納される変量の数が一定であるので，容易に可能である。このことにより，プロセス間の中断は，開発行程において極めて良好にシミュレートすることができる。というのは，中断の可能性の数は制限されており，かつ中断はプログラムシーケンスとは無関係だからである。
【００１１】
【発明が解決しようとする課題】
しかしながら，上記従来の方法では，制御プログラムの実際の処理に続いてプロセスシーケンスを再現することができないので，従来技術から既知の全ての協同的又は割込み的モード内で処理すべき制御プログラムのアルゴリズムのシミュレーションは，実際の条件下ではシミュレーションできないという問題がある。
【００１２】
したがって，本発明の目的は，可能な限り実際に近い条件下で協同的又は割込み的モードにおいて実行すべき制御プログラムのアルゴリズム，測定されたデータによりシミュレーション（ＯＯＬ）を行うための基礎となるプロセスを再現することが可能な新規かつ改良された車両内の技術的プロセスの制御方法，制御プログラム，メモリ素子，制御装置を提供することにある。
【００１３】
【課題を解決するための手段】
上記課題を解決するため，本発明の第１の観点においては，複数のタスク（Ａ，Ｂ）に分割される制御プログラムが計算装置（３１）によって処理されると共に，前記各タスク（Ａ；Ｂ）は少なくとも１つのプロセス（３４５，３４６，…，３８３，３８４；１２１，１２２，…１２８，１２９）を有し，かつ協同的又は割込み的モードにおいて処理される，車両内の技術的プロセスの制御方法であって，前記制御プログラムの処理の間，プロセスシーケンスが記憶される，ことを特徴とする車両内の技術的プロセスの制御方法が提供される。
【００１４】
上記記載の発明では，制御プログラムの処理の間プロセスシーケンスが格納されるので，制御プログラムの処理後に，記憶されている情報を使用してプログラムシーケンスを再現することができる。この再現されたプロセスシーケンスは，その後制御プログラムのアルゴリズムのシミュレーションの基礎とされる。したがって，特にＯＯＬ−シミュレーションに基づく測定されたデータによって，アルゴリズムの特に実際に近いシミュレーションが可能となる。測定とシミュレーション結果を相互に比較することができ，かつ制御プログラム内の効果的なエラーサーチが可能である。このように，初めて制御プログラムの実際のプロセスシーケンスをシミュレートできるための基礎を提供する。このために，例えば各プロセス内及び／又は各タスク内に好適な指令が付加される。
【００１５】
また，前記制御プログラムの処理の前に，前記各プロセス（３４５，３４６，…３８３，３８４；１２１，１２２，…１２８，１２９）に一義的な識別子が対応づけられると共に，前記制御プログラムの処理の間に前記プロセスシーケンスは前記プロセス（３４５，３４６，…，３８３，３８４；１２１，１２２，…１２８，１２９）の前記識別子を使用して記憶される，如く構成すれば，プロセスの処理の枠内で，その識別子が所定のメモリ領域に格納され，メモリ領域に格納されている識別子を使用して，制御プログラムの実行後にプロセスシーケンスを再現することができる。なお，識別子は，例えば複数桁の数として形成することができる。
【００１６】
また，前記制御プログラムの処理の間，その都度新しいタスク（Ａ，Ｂ）に対してのみ，前記新しいタスク（Ａ，Ｂ）の開始前に最後に処理されたプロセス（３４５，３４６，…，３８３，３８４；１２１，１２２，…１２８，１２９）の識別子が記憶される，如く構成すれば，制御プログラムのタスクのプロセスリストを使用して，新しいタスクの開始前に最後に処理されたプロセスの，記憶されている識別子と共に，制御プログラムの実行後にプロセスシーケンスが完全に再現される。このことにより，プロセスシーケンスを完全に再現できるようにするために必要とされる，格納すべきデータ量を著しく削減することができる。なお，制御プログラムの各タスクは，タスクの各プロセスのその処理の順序を順次リストアップしている，いわゆるプロセスリストによって定義されている。
【００１７】
また，前記制御プログラムの処理の間，その都度終了したタスク（Ａ，Ｂ）に対してのみ，前記終了したタスク（Ａ，Ｂ）の開始前に最後に処理されたプロセス（３４５，３４６，…，３８３，３８４；１２１，１２２，…１２８，１２９）の識別子が記憶される，如く構成すれば，タスクのプロセスリストを使用して，終了したタスクの開始前に最後に処理されたタスクの，格納されている識別子と共に，制御プログラムの処理後にプロセスシーケンスが完全に再現される。このように，プロセスシーケンスを完全に再現できるようにするために必要とされる，格納すべきデータ量を著しく削減することができる。
【００１８】
また，前記制御プログラムの処理の間，各処理されたプロセス（３４５，３４６，…，３８３，３８４；１２１，１２２，…１２８，１２９）の識別子が変数（ＦｉｎｉｓｈｅｄＰｒｏｃｅｓｓＮｕｍｂｅｒ，ＦＰＮ）に，そして各タスク（Ａ，Ｂ）の処理の間，前記変数の内容がプロセスシーケンスデータファイル（ＰＡＤ）に記憶される，如く構成すれば，各処理されたプロセスの識別子がその中に格納される，変数は，好ましくはグローバル変数として形成されている。制御プログラムの処理後にプロセスシーケンスを再現するために，タスクのプロセスリストとプロセスシーケンスデータファイルが評価される。
【００１９】
また，前記各タスク（Ａ，Ｂ）の最初に，前記変数（ＦｉｎｉｓｈｅｄＰｒｏｃｅｓｓＮｕｍｂｅｒ，ＦＰＮ）の内容がタスク固有変数（ＴａｓｋＡ＿ＰｒｅｄｅｃｅｓｓｏｒＰＲＣ，ＴＡ＿ＰｒｅＰＲＣ；ＴａｓｋＢ＿ＰｒｅｄｅｃｅｓｓｏｒＰＲＣ  ＴＢ＿ＰｒｅＰＲＣ）に記憶されると共に，前記タスク（Ａ，Ｂ）をさらに処理する間，前記タスク固有変数（ＴａｓｋＡ＿ＰｒｅｄｅｃｅｓｓｏｒＰＲＣ，ＴＡ＿ＰｒｅＰＲＣ；ＴａｓｋＢ＿ＰｒｅｄｅｃｅｓｓｏｒＰＲＣＴＢ＿ＰｒｅＰＲＣ）の内容が，プロセスシーケンスデータファイル（ＰＡＤ）に記憶される，如く構成すれば，変数の内容は，制御プログラムの処理の間常に実際に処理されたプロセスの識別子によって上書きされるので，新しいタスクを呼び出す場合に，変数内にタスクの呼出し前に最後に処理されたプロセスの識別子が格納されている。タスクの最初に，この変数の内容がタスク固有変数に書き込まれる。従ってタスク固有変数内には，常に，実際のタスクの開始直前に処理されたプロセスの識別子が存在している。タスクをさらに処理する間，タスク固有変数の内容がプロセスシーケンスデータファイルに格納される。タスク固有変数の内容をタスクをさらに処理する間，測定技術によってこのタスクの他の全ての測定量と共に測定データファイルに格納することできる。従ってプロセスシーケンスデータファイルは，この測定データファイルの構成部分となる。
【００２０】
上記課題を解決するため，本発明の第２の観点によれば，車両の制御装置（３０）のためのメモリ素子（３２）であって，前記メモリ素子には，制御プログラムが記憶されており，前記制御プログラムは計算装置（３１）上で実行可能であり，かつ請求項１から６のいずれか１項に記載の方法を実行することが可能である，ことを特徴とするメモリ素子が提供される。
【００２１】
上記記載の発明では，メモリ素子上に制御プログラムが格納されており，その制御プログラムは計算装置上，特にマイクロプロセッサ上で，本発明に基づく方法を実行できる。
【００２２】
上記課題を解決するため，本発明の第３の観点においては，計算装置に対し，請求項１から６のいずれか１項に記載の方法を実行させる制御プログラムが提供される。
【００２３】
上記記載の発明では，計算装置上（特にマイクロプロセッサ上）で，制御プログラムが本発明にかかる方法を実行することができる。なお，ここで，制御プログラムは，特に車両内の技術的プロセスを制御するのに用いられる，コンピュータプログラムである。
【００２４】
また，前記制御プログラムは，メモリ素子（３２）に記憶されている，如く構成れば，メモリ素子上に格納されている制御プログラムによって本発明にかかる方法を実行することができるので効果的である。この場合に，メモリ素子として，特に電気的メモリ媒体，例えばリードオンリーメモリ，ランダムアクセスメモリ又はフラッシュメモリを使用することができる。
【００２５】
上記課題を解決するため，本発明の第４の観点によれば，複数のタスク（Ａ，Ｂ）に分割された制御プログラムが実行される計算装置（３１）を有し，かつ前記各タスク（Ａ，Ｂ）は少なくとも１つのプロセス（３４５，３４６，…，３８３，３８４；１２１，１２２，…１２８，１２９）を有しており，かつタスク（Ａ，Ｂ）の処理は協働的又は割込み的モードで行われる，車両内の技術的プロセスを制御する制御装置（３０）において，前記制御装置（３０）は，前記制御プログラムの処理の間プロセスシーケンスを記憶する記憶手段と、前記制御プログラムの処理の前に，前記各プロセスに一義的な識別子を対応付ける手段と，を有し、前記記憶手段は、前記制御プログラムの処理の間に前記プロセスシーケンスを前記プロセスの前記識別子を使用して記憶し，前記制御プログラムの処理の間，その都度新たなタスクに対してのみ，前記新しいタスクの開始前に最後に処理されたプロセスの識別子を記憶する，ことを特徴とする制御装置が提供される。
【００２６】
上記記載の発明では，制御プログラムの処理の間プロセスシーケンスが格納されるので，制御プログラムの処理後に，記憶されている情報を使用してプログラムシーケンスを再現することができる。この再現されたプロセスシーケンスは，その後制御プログラムのアルゴリズムのシミュレーションの基礎とされる。それによって，特にＯＯＬ−シミュレーションに基づく測定されたデータによって，アルゴリズムの特に実際に近いシミュレーションが可能となる。測定とシミュレーション結果を相互に比較することができ，かつ制御プログラム内の効果的なエラーサーチが可能である。このように，初めて制御プログラムの実際のプロセスシーケンスをシミュレートできるための基礎を提供する。このために，例えば各プロセス内及び／又は各タスク内に好適な指令が付加される。また、プロセスの処理の枠内で，その識別子が所定のメモリ領域に格納され，メモリ領域に格納されている識別子を使用して，制御プログラムの実行後にプロセスシーケンスを再現することができる。なお，識別子は，例えば複数桁の数として形成することができる。また、制御プログラムのタスクのプロセスリストを使用して，新しいタスクの開始前に最後に処理されたプロセスの，記憶されている識別子と共に，制御プログラムの実行後にプロセスシーケンスが完全に再現される。このことにより，プロセスシーケンスを完全に再現できるようにするために必要とされる，格納すべきデータ量を著しく削減することができる。なお，制御プログラムの各タスクは，タスクの各プロセスのその処理の順序を順次リストアップしている，いわゆるプロセスリストによって定義されている。
【００２７】
上記課題を解決するため，本発明の第５の観点によれば，複数のタスクに分割された制御プログラムが実行される計算装置を有し，かつ前記各タスクは少なくとも１つのプロセスを有しており，かつタスクの処理は協働的又は割込み的モードで行われる，車両内の技術的プロセスを制御する制御装置において，前記制御装置は，前記制御プログラムの処理の間プロセスシーケンスを記憶する記憶手段と，前記制御プログラムの処理の前に，前記各プロセスに一義的な識別子を対応付ける手段と，を有し，前記記憶手段は、前記制御プログラムの処理の間に前記プロセスシーケンスを前記プロセスの前記識別子を使用して記憶され，前記制御プログラムの処理の間，その都度終了したタスクに対してのみ，前記終了したタスクの開始前に最後に処理されたプロセスの識別子を記憶する，ことを特徴とする制御装置が提供される。
上記記載の発明では，制御プログラムの処理の間プロセスシーケンスが格納されるので，制御プログラムの処理後に，記憶されている情報を使用してプログラムシーケンスを再現することができる。この再現されたプロセスシーケンスは，その後制御プログラムのアルゴリズムのシミュレーションの基礎とされる。それによって，特にＯＯＬ−シミュレーションに基づく測定されたデータによって，アルゴリズムの特に実際に近いシミュレーションが可能となる。測定とシミュレーション結果を相互に比較することができ，かつ制御プログラム内の効果的なエラーサーチが可能である。このように，初めて制御プログラムの実際のプロセスシーケンスをシミュレートできるための基礎を提供する。このために，例えば各プロセス内及び／又は各タスク内に好適な指令が付加される。また、プロセスの処理の枠内で，その識別子が所定のメモリ領域に格納され，メモリ領域に格納されている識別子を使用して，制御プログラムの実行後にプロセスシーケンスを再現することができる。なお，識別子は，例えば複数桁の数として形成することができる。また、タスクのプロセスリストを使用して，終了したタスクの開始前に最後に処理されたタスクの，格納されている識別子と共に，制御プログラムの処理後にプロセスシーケンスが完全に再現される。このように，プロセスシーケンスを完全に再現できるようにするために必要とされる，格納すべきデータ量を著しく削減することができる。
また、上記記載の制御装置に係る発明では、前記記憶手段において、前記制御プログラムの処理の間，各処理されたプロセスの識別子が変数に記憶されると共に，前記各タスクの処理の間，前記変数の内容がプロセスシーケンスデータファイルに記憶される，如く構成すれば，各処理されたプロセスの識別子がその中に格納される，変数は，好ましくはグローバル変数として形成されている。制御プログラムの処理後にプロセスシーケンスを再現するために，タスクのプロセスリストとプロセスシーケンスデータファイルが評価される。
また、上記記載の制御装置に係る発明では、前記記憶手段において、前記各タスクの最初に，前記変数の内容がタスク固有変数に記憶されると共に，前記タスクをさらに処理する間，前記タスク固有変数の内容が前記プロセスシーケンスデータファイルに記憶される，如く構成すれば，変数の内容は，制御プログラムの処理の間常に実際に処理されたプロセスの識別子によって上書きされるので，新しいタスクを呼び出す場合に，変数内にタスクの呼出し前に最後に処理されたプロセスの識別子が格納されている。タスクの最初に，この変数の内容がタスク固有変数に書き込まれる。従ってタスク固有変数内には，常に，実際のタスクの開始直前に処理されたプロセスの識別子が存在している。タスクをさらに処理する間，タスク固有変数の内容がプロセスシーケンスデータファイルに格納される。タスク固有変数の内容をタスクをさらに処理する間，測定技術によってこのタスクの他の全ての測定量と共に測定データファイルに格納することできる。従ってプロセスシーケンスデータファイルは，この測定データファイルの構成部分となる。
【００２８】
【発明の実施の形態】
以下，本発明の好適な実施の形態について，添付図面を参照しながら詳細に説明する。尚，以下の説明及び添付図面において，同一の機能及び構成を有する構成要素については，同一符号を付することにより，重複説明を省略する。
【００２９】
（第１の実施の形態）
まず，図１から図１０を参照しながら，第１の実施の形態について説明する。
なお，図１は，本実施形態にかかる車両における技術的プロセスの制御装置の構成を示すブロック図である。
【００３０】
まず，図１に示すように，制御装置３０は，計算装置（例えばマイクロプロセッサ）３１を有しており，その上で制御プログラムが実行可能である。制御装置３０は，さらに，メモリ素子３２を有しており，そのメモリ素子３２に制御プログラムが格納されている。例えばバス導線として形成されているデータ接続３３を介して，マイクロプロセッサ３１によって実行すべき制御プログラムあるいはその部分がマイクロプロセッサ３１へ伝達されて，そこで処理される。
【００３１】
好適なインターフェイスを介してマイクロプロセッサ３１へ測定量３４が供給され，かつマイクロプロセッサ３１内で処理される。測定量３４は，例えばメモリ素子３２内の測定データファイルに格納される。この測定データファイルには，本実施形態においては，制御プログラムの処理の間，プロセスシーケンスに関する情報，特にプロセスの処理の順序も格納することができる。この情報と測定量３４は，制御プログラムの処理後に，シミュレーション目的のために利用することができる。
【００３２】
次に，図２に基づいて，制御プログラムを処理する間のプロセスシーケンスを説明する。なお，図２は，本実施形態にかかる制御プログラムを処理する間のプロセスシーケンスを示す説明図である。なお，本実施形態においては，制御プログラムを処理する間のプロセスシーケンスを２つのサイクルで示している。
【００３３】
本実施形態においては，制御装置の計算装置上（特にマイクロプロセッサ上）で，特に車両内の技術的プロセスを制御するための制御プログラムを処理することができる。制御プログラムを複数のタスクに，そして各タスクがさらに複数のプロセスに分割されている。
【００３４】
タスクは，所定の時点であるいは所定の走査時間で規則的に呼び出されて処理される。各タスクには，所定の優先順位が対応づけられている。制御プログラムの処理の間に２つのタスクを同時に実行しようとする場合には，２つのタスクの優先順位が比較され，より高い優先順位を有するタスクが第１のタスクとして処理される。
【００３５】
例えばタスクＡが処理され，かつタスクＢを実行しようとする場合には，各々プログラマにより選択された，タスクのコンフィグレーションに従って種々の場合が生じ得る：
【００３６】
タスクＡがタスクＢよりも高い優先順位を有する場合には，タスクＢの実行は，タスクＡが終了するまで待機される。
【００３７】
タスクＢがタスクＡよりも高い優先順位を有する場合には，タスクＡの処理は中断されて，タスクＢが実行される。プログラマがいわゆる協同的モードにおけるタスクの実行を選択している場合には，タスクＢの実行は，タスクＡの現在のプロセスの終了まで待機される。このプロセスが終了すると，即座にタスクＡは中断されて，タスクＢが実行される。タスクＢが終了した場合に，タスクＡは，タスクＢを実行するためにその前で中断されたプロセスの最初からさらに実行される。
【００３８】
プログラマが，割込み的モードにおけるタスクの処理を選択している場合には，タスクＢはタスクＡの現在のプロセスを中断し，タスクＢが直接実行される。
次にタスクＡが，中断されたプロセスにおいてさらに処理される。
【００３９】
あるタスクの，より高位の優先順位を有する他のタスクによる中断は，マルチタスキングオペレーションシステムの課題に属する。プロセスのラン時間は，各々制御プログラムが処理される計算機の負荷に応じて変動する。
【００４０】
かかる理由から，そして他のタスクによりもたらされる中断によって，図２の第１と第２のサイクルにおける２つのタスクの処理に示すように，１つの同じ制御プログラムを複数回実行する場合にプロセス呼出しの順序が異なることがあり得る。従って制御プログラムの処理後に，タスクの各プロセスが呼び出された順序は認識されていない。
【００４１】
また，図３に示すように，タスクの個々のプロセスには，各々３桁の数字の形式の一義的な識別子が設けられている。タスクの個々のプロセスは，制御プログラムの処理の間の実行の順序においてプロセスリストに記憶される。
【００４２】
プロセスリストは，オンラインでプロセスシーケンスを定めるために，オペレーションシステムによって評価される。タスクＡはプロセス３４５から３８４を有し，タスクＢはプロセス１２１から１２９を有している。タスクＡは，２０ミリ秒毎に呼び出される。タスクＢは，タスクＡよりも高い優先順位で１０ミリ秒毎に呼び出される。２つのタスクは，協同的モードで作動し，即ちタスクＡは，より優先順位の高いタスクＢによって２つのプロセス間で中断される。
【００４３】
また，図４には，第１のサイクルと第２のサイクルにおけるプロセスの処理の順序が図示されている。
【００４４】
図４に示すように，第１のサイクルにおいては，タスクＢのプロセス１２１から１２９が処理される。次に，タスクＡのプロセスがプロセス３４５から始るように処理される。
【００４５】
しかし，タスクＡのプロセスの処理は，タスクＢによって中断される。第１のサイクルにおいては，タスクＡの中断はプロセス３７２の処理後に発生し，第２のサイクルにおいてはプロセス３８３の処理後に初めて発生する。
【００４６】
従って，第１のサイクルにおいてはタスクＢの第２の処理後には，タスクＡのプロセス３７３から３８４が実行されなければならず，第２のサイクルにおいてはタスクＡのプロセス３８４のみが実行される。
【００４７】
プロセスの順序が異なることがあり得るという事実は，制御プログラムの処理後に所定のプロセスシーケンスはもはや再現できないことを意味している。これは特に，測定されたデータによって制御プログラムのアルゴリズムを後からシミュレートする場合には（いわゆるオフラインオープンループ（ＯＯＬ）シミュレーション），著しい困難をもたらす。
【００４８】
従って，従来技術によれば，マルチタスキングオペレーションシステムによって制御されるアルゴリズムは，通常，最適な状態でシミュレートされ，即ちタスクＡ，Ｂは中断が発生しないように呼び出される。
【００４９】
従来技術から既知のシミュレーション方法を用いたシミュレーションにおける，第１のサイクルと第２のサイクルにおけるプロセスのそれに応じた順序が，図５に示されている。図４に示す実際のプロセスシーケンスから明らかなように，シミュレートされたプロセスシーケンス（図５）と実際のプロセスシーケンス（図４）とは，明らかに異なる。
【００５０】
本実施形態においては，制御プログラムのアルゴリズムの可能な限り実際に近いシミュレーション（特に実際に近いＯＯＬ−シミュレーション）を可能にするために，制御プログラムの処理の間プロセスシーケンスを記憶する構成を採用している。
【００５１】
記憶すべきデータ量を削減するために，処理される全てのプロセスが記憶されるのではなく，新しいタスク，あるいは終了したタスクＡ，Ｂの開始前に処理された最後のプロセスのみが記憶される。
【００５２】
各プロセスには，一義的な標徴（識別子）が対応づけられており，それは本実施形態においては，３桁の数（タスクＡについてはプロセス３４５から３８４そしてタスクＢについてはプロセス１２１から１２９）からなる。
【００５３】
各プロセスにおいて，かつ制御プログラムの各タスクにおいて，本実施形態にかかる方法の実現のために必要とされる好適なプログラム指令が付加される。
【００５４】
制御プログラムの処理の間，各プロセスの最後に，今処理されたプロセスの識別子がグローバルな変数処理済みプロセス番号（ＦｉｎｉｓｈｅｄＰｒｏｃｅｓｓＮｕｍｂｅｒ）（ＦＰＮ）で続けられる。従って，変数ＦＰＮ内には，常に最後に処理されたプロセスの識別子が存在している。
【００５５】
各タスクＡ，Ｂの最初に，変数ＦＰＮがタスク固有の変数（ＴａｓｋＡ＿ＰｒｅｄｅｃｅｓｓｏｒＰＲＣ，ＴａｓｋＢ＿ＰｒｅｄｅｃｅｓｓｏｒＰＲＣ）にコピーされる。従ってこのタスク固有の変数内には，常に，現在のタスクＡ，Ｂの開始直前に処理されたプロセスの識別子が存在している。各タスクがさらに処理される間，各々タスク固有の変数（ＴａｓｋＡ＿ＰｒｅｄｅｃｅｓｓｏｒＰＲＣ，ＴａｓｋＢ＿ＰｒｅｄｅｃｅｓｓｏｒＰＲＣ）の内容は，プロセスシーケンスデータファイル（ＰＡＤ）内に記憶される。特に，各々タスク固有の変数は，測定技術によってこれらタスクＡ，Ｂの他の全ての測定量と共に測定データファイル内に記憶され，その場合にプロセスシーケンスデータファイルは，測定データファイルの構成部分である。
【００５６】
図６には，他の制御プログラムのプロセスシーケンスが図示されている。制御プログラムは，異なる優先順位の４つのタスクＣ，Ｄ，Ｅ及びＦを有している。
各タスクＣ，Ｄ，Ｅ，Ｆは，１つ以上のプロセスを有している。
【００５７】
タスクＣは，プロセス１１１を有し，タスクＤはプロセス２１２と２２２，タスクＥはプロセス３１３，３２３，３３３を有し，かつタスクＦはプロセス４１３，４２３，４３３を有している。各プロセスは，図６においては，バーで示されている。バーの高さは，タスクＣ，Ｄ，Ｅ，Ｆの優先順位を表している。制御プログラムの処理の間，プロセスシーケンスが全プロセスの識別子によってプロセスシーケンスデータファイルに格納される場合に，表は次の内容を有する：「１１１，３１３，２１２，１１１，２２２，３２３，１１１，２１２，２２２，３３３，４１３，４２３，４３３，１１１，３１３，１１１，３２３，３３３，４１３，４２３，４３３，１１１」。
【００５８】
プロセスシーケンスデータファイルに格納すべき，プロセスシーケンスの完全な再現のために必要なデータ量を削減するために，制御プログラムの処理の間，終了したタスクの開始前に最後に処理されたプロセスの識別子のみが格納される。
【００５９】
それによって得られる，プロセスシーケンスデータファイルの内容を図７に示す。上記の２２個の要素の代わりに，図７に示すプロセスシーケンスデータファイルは１２の要素のみを有する。
【００６０】
最初に終了したタスクは，タスクＣである。タスクＣの開始前に処理されたプロセスは，認識されていない。従って，プロセスシーケンスデータファイルには「ｘｘｘ」が記入される。
【００６１】
その後，タスクＥが開始されるが終了されない。その後，タスクＤが開始されるが同様に終了されない。次に終了したタスクは再びタスクＣである。タスクＣの開始前に処理されたプロセスは，「２１２」である。従ってプロセスシーケンスデータファイルには，「２１２」が記入される。
【００６２】
その後，タスクＤが続行されて終了される。タスクＤの開始前に処理されたプロセスは，「３１３」である。従ってプロセスシーケンスデータファイルには，「３１３」が記入される。
【００６３】
その後タスクＥが続行されるが，終了されない。次に終了したタスクは，またタスクＣである。タスクＣの開始前に処理されたプロセスは，「３２３」である。従ってプロセスシーケンスデータファイルには「３２３」が記入される。
【００６４】
その後，タスクＤが開始されて終了もされる。タスクＤの開始前に処理されたプロセスは，「１１１」である。従ってプロセスシーケンスデータファイルには「１１１」が記入される。
【００６５】
その後，タスクＥが続行されて終了される。タスクＥの開始前に処理されたプロセスは「１１１」である。従って再びプロセスシーケンスデータファイルには「１１１」が記入される。
【００６６】
その後，タスクＦが開始されて終了もされる。タスクＦの開始前に処理されたプロセスは「３３３」である。従ってプロセスシーケンスデータファイルには「３３３」が記入される。かかる工程は，制御プログラムが終了するまでの間，続行される。プロセスシーケンスデータファイルの次の内容が得られる：「ｘｘｘ，２１２，３１３，３２３，１１１，１１１，３３３，４３３，３１３，１１１，３３３，４３３」。
【００６７】
制御プログラムの処理後に，シミュレーション目的のために，まず測定データファイルが読み込まれる。プロセスシーケンスが，プロセスリスト（図３を参照）と測定データファイル内に記憶されている情報を使用して再構築される。
【００６８】
本実施形態にかかる方法は，制御プログラムにおいて初めて実際のプロセスシーケンスをシミュレートすることができる基礎を提供する。測定とシミュレーション結果は，相互に比較されて，制御プログラムのソフトウェア内での効果的なエラーサーチが可能になる。
【００６９】
図８には，図２に示すプロセスシーケンスについて，グローバル変数ＦｉｎｉｓｈｅｄＰｒｏｃｅｓｓＮｕｍｂｅｒ（ＦＰＮ）とタスク固有変数（ＴａｓｋＡ＿ＰｒｅｄｅｃｅｓｓｏｒＰＲＣ，ＴａｓｋＢ＿ＰｒｅｄｅｃｅｓｓｏｒＰＲＣ）の内容が図示されている。これらの情報は，測定データファイルに格納される。
【００７０】
次に，図９に基づいて，本実施形態にかかるタスクＡの処理方法について説明する。なお，図９は，本実施形態にかかるタスクＡの処理方法を示すフローチャートである。
【００７１】
まず，ステップＳ１０で，処理が開始される（ステップＳ１０）。次いで，ステップＳ１１で，タスクＡが選択される（ステップＳ１１）。その後，ステップＳ１２で，グローバル変数の内容（ＦｉｎｉｓｈｅｄＰｒｏｃｅｓｓＮｕｍｂｅｒ，ＦＰＮ）がタスク固有変数（ＴａｓｋＡ＿ＰｒｅｄｅｃｅｓｓｏｒＰＲＣ）にコピーされる（ステップＳ１２）。
【００７２】
さらに，ステップＳ１３で，タスク固有変数の内容がプログラムシーケンスデータファイル（ＰＡＤ）に格納される（ステップＳ１３）。次いで，ステップＳ１４で，タスクＡのプロセスリスト（図３を参照）を使用して選択されたプロセス（ＰＲＣ）が実行される（ステップＳ１４）。このプロセスの標徴（識別子）は，ステップＳ１５で，グローバル変数（ＦｉｎｉｓｈｅｄＰｒｏｃｅｓｓＮｕｍｂｅｒ）に格納される。
【００７３】
さらに，ステップＳ１６で，タスクＡが終了しているか，が判断される（ステップＳ１６）。タスクＡが終了していないと判断される場合には，ステップＳ１４に移行し，プロセスリストに従ってタスクＡの次のプロセスが選択される。タスクＡが終了していると判断される場合には，ステップＳ１７に移行し，処理を終了する（ステップＳ１７）。
【００７４】
また，タスクＢの処理方法は，図１０に示すように，ステップＳ２０から２７は，図９のステップＳ１０から１７が該当する。タスクＢの実行は，上記タスクＡの実行と同様に行われる。なお，図１０は，本実施形態にかかるタスクＢの処理方法を示すフローチャートである。
【００７５】
タスクＡとタスクＢの実行は，当然ながら，常時，あるいは協同的モードにおいては現在のプロセスの終了後に，より高位の優先順位のタスクによって中断することができる。これは，例えばインターラプトコールによって行われる。
【００７６】
以上，本発明に係る好適な実施の形態について説明したが，本発明はかかる構成に限定されない。当業者であれば，特許請求の範囲に記載された技術思想の範囲内において，各種の修正例及び変更例を想定し得るものであり，それらの修正例及び変更例についても本発明の技術範囲に包含されるものと了解される。
【００７７】
【発明の効果】
制御プログラムの処理の間プロセスシーケンスが格納されるので，制御プログラムの処理後に，記憶されている情報を使用してプログラムシーケンスを再現することができる。この再現されたプロセスシーケンスは，その後制御プログラムのアルゴリズムのシミュレーションの基礎とされる。それによって，特にＯＯＬ−シミュレーションに基づく測定されたデータによって，アルゴリズムの特に実際に近いシミュレーションが可能となる。測定とシミュレーション結果を相互に比較することができ，かつ制御プログラム内の効果的なエラーサーチが可能である。このように，初めて制御プログラムの実際のプロセスシーケンスをシミュレートできるための基礎を提供する。このために，例えば各プロセス内及び／又は各タスク内に好適な指令が付加される。
【図面の簡単な説明】
【図１】第１の実施の形態にかかる技術的プロセスの制御装置を示すブロック図である。
【図２】本実施形態にかかる制御プログラムを処理する間のプロセスシーケンスを２つのサイクルで示す説明図である。
【図３】本実施形態にかかるタスクＡとタスクＢについてのプロセスリストを示す説明図である。
【図４】図２にかかる２つのサイクルの間のプロセスの順序表を示す説明図である。
【図５】従来におけるシミュレーション方法による制御プログラムを示す説明図である。
【図６】本実施形態にかかる他の制御プログラムを処理する間のプロセスシーケンスを示す説明図である。
【図７】終了したタスクの開始前に，図６に示すプロセスシーケンスの間に処理された各々最後のプロセスを有する表を示す説明図である。
【図８】図２にかかる２つのサイクルの実行の間の種々の変数で占められた表を示す説明図である。
【図９】本実施形態にかかるタスクＡの処理方法を示すフローチャートである。
【図１０】本実施形態にかかるタスクＢの処理方法を示すフローチャートである。
【符号の説明】
３０  制御装置
３１  計算装置（例えばマイクロプロセッサ）
３２  メモリ素子
３３  データ接続
３４  測定量
【図１】
0004571355.tif 000002
【図２】
0004571355.tif 000003
【図３】
0004571355.tif 000004
【図４】
0004571355.tif 000005
【図５】
0004571355.tif 000006
【図６】
0004571355.tif 000007
【図７】
0004571355.tif 000008
【図８】
0004571355.tif 000009
【図９】
0004571355.tif 000010
【図１０】
0004571355.tif 000011