(57)【特許請求の範囲】
【請求項１】
制御装置（ＥＣＵ）の制御プログラム（ＳＴＰ）に対するインタラクション方法であって、
前記制御プログラム（ＳＴＰ）は、複数の第１の機能（Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎ）と該第１の機能（Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎ）に対応するサブプログラムとを含み、
前記複数の第１の機能（Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎ）のうち少なくとも１つはアクチュエータの制御のために構成されており、
前記制御装置（ＥＣＵ）は、前記制御プログラム（ＳＴＰ）を収容する第１のメモリ（ＳＰ１）を含んでおり、
前記制御プログラム（ＳＴＰ）はバイナリのプログラムコードとして存在しており、
前記制御プログラム（ＳＴＰ）のプログラムコードには、前記第１の機能（Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎ）のいずれかが呼び出される際に、機能呼び出しに関連する前記第１の機能のメモリアドレスを指示するジャンプアドレスが存在しており、
前記第１の機能はバイナリのプログラムコードのシーケンスとして存在しており、前記サブプログラムのプログラムコードのシーケンスの終了部にはジャンプバック命令とこれに対応するジャンプバックアドレスが存在しており、
前記第１の機能のプログラムコードのシーケンスは第１の個数の変数アクセスを含み、各変数アクセスにメモリアドレスが割り当てられており、少なくとも１つの変数に名称と第１の値とが割り当てられる、
方法において、
前記制御プログラム（ＳＴＰ）のプログラムコードが検査され、前記制御プログラム（ＳＴＰ）の前記プログラムコードに含まれる機能呼び出しに関連するジャンプアドレスと各第１の機能（Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎ）に関連する変数とがそれぞれのメモリアドレスによって求められ、
求められた第１の機能（Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎ）と各第１の機能（Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎ）に対応する変数とが関連するメモリアドレスとともに第１の割り当てテーブル（ＺＵＯＲＤ１）に記憶され、
前記第１の割り当てテーブル（ＺＵＯＲＤ１）と設定された第２の割り当てテーブル（ＺＵＯＲＤ２）との比較から、前記複数の第１の機能（Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎ）の少なくとも一部に機能名が割り当てられ、いずれかの変数の少なくとも１つの第１の値が第２の値によって置換される、
ことを特徴とする制御プログラムに対するインタラクション方法。
【請求項２】
前記制御プログラム（ＳＴＰ）のプログラムコードが検査される際に、それぞれの変数において、それぞれ割り当てられている読み出しアクセスもしくは書き込みアクセスが求められて前記第１の割り当てテーブル（ＺＵＯＲＤ１）へ記憶され、
比較の際に、前記変数に割り当てられている読み出しアクセスと書き込みアクセスとの一致度が検査される、
請求項１記載の方法。
【請求項３】
前記第２の割り当てテーブル（ＺＵＯＲＤ２）では、前記複数の第１の機能（Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎ）のうち少なくとも一部にそれぞれ１つずつの機能名と複数個ずつの変数とが割り当てられており、各変数に１つずつメモリアドレスが割り当てられている、
請求項１又は２記載の方法。
【請求項４】
比較の際に、前記第１の割り当てテーブル（ＺＵＯＲＤ１）に記憶されている複数の第１の機能（Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎ）につき、少なくとも、２つの割り当てテーブルに各第１の機能（Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎ）として記憶されている変数の個数及びアドレスに関する一致度に依存して、機能名が割り当てられる、
請求項１から３までのいずれか１項記載の方法。
【請求項５】
一致が完全な場合にのみ、機能名の割り当てが自動的に行われる、
請求項４記載の方法。
【請求項６】
比較の際に一致度が所定の閾値を下回る場合、前記第１の割り当てテーブル（ＺＵＯＲＤ１）の前記複数の第１の機能（Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎ）のいずれかに機能名を割り当てる前に、手動の割り当てが実行される、
請求項４記載の方法。
【請求項７】
比較の際に一致度が所定の閾値を上回る場合にのみ、自動割り当てが実行される、
請求項４または６記載の方法。
【請求項８】
比較の際に、所定の機能の一致度が所定の第１の閾値を上回り、かつ、２番目に良好に一致する機能の一致度が所定の第２の閾値を下回る場合にのみ、自動割り当てが実行される、
請求項７記載の方法。
【請求項９】
前記第１の機能（Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎ）のいずれについても一致度が所定の閾値以上とならない場合、モデリングシステム（ＭＯＤＳＹＳ）によりメッセージを出力する、
請求項５又は６記載の方法。
【請求項１０】
モデリングシステム（ＭＯＤＳＹＳ）により、前記複数の第１の機能（Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎ）のうち機能名が割り当てられている第１の機能が選択され、該選択された第１の機能（Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎ）の機能呼び出しが不活性化される、及び／又は、該選択された第１の機能（Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎ）が第２の機能によって置換される、
請求項１記載の方法。
【請求項１１】
第２の割り当てテーブル（ＺＵＯＲＤ２）はＡＳＡＰ２ファイルの形態で構成されている、
請求項１から１０までのいずれか１項記載の方法。
【請求項１２】
前記制御プログラム（ＳＴＰ）の前記プログラムコードにおいて、機能呼び出しが発生しているか否かを検査する、
請求項１記載の方法。
【請求項１３】
前記複数の第１の機能のうち所定の第１の機能に全ての変数が割り当てられ、
前記全ての変数には、前記制御プログラム（ＳＴＰ）のシーケンスにおいて、前記所定の第１の機能の呼び出し後、前記所定の第１の機能に割り当てられたジャンプバック命令の実行より前に、アクセスが行われる、
請求項１記載の方法。
【請求項１４】
前記複数の第１の機能のうち所定の第１の機能に全ての変数が割り当てられ、
前記全ての変数には、前記制御プログラム（ＳＴＰ）のシーケンスにおいて、前記所定の第１の機能の呼び出し後、前記所定の第１の機能に割り当てられたジャンプバック命令の実行より前に、アクセスが行われ、ただし、前記所定の第１の機能のサブ機能からのアクセスは行われない、
請求項１記載の方法。
【請求項１５】
アクチュエータの挙動に影響を及ぼす変数の第１の値が、第２の値によって置換される、
請求項１記載の方法。
【請求項１６】
前記第２の割り当てテーブル（ＺＵＯＲＤ２）において、前記第１の機能（Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎ）の少なくとも一部に複数の機能呼び出しが割り当てられており、
割り当てられた機能呼び出しのそれぞれは、前記第１の機能（Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎ）のそれぞれから呼び出されたサブ機能に対応し、
前記制御プログラム（ＳＴＰ）の前記プログラムコードが検査される際に、いずれかの第１の機能から行われるサブ機能呼び出しが、サブ機能のそれぞれの機能アドレスによって求められ、
本発明の方法に基づいて、求められ呼び出されたサブ機能の少なくとも一部に機能名が割り当てられ、求められたサブ機能呼び出しとこれに対応する機能名とが第１の割り当てテーブル（ＺＵＯＲＤ１）に記憶され、
第２の割り当てテーブル（ＺＵＯＲＤ２）内の対応する機能名との比較によって、少なくとも１つの別の第１の機能に機能名が割り当てられる、及び／又は、既に実行された、少なくとも１つの機能名の割り当ての正しさが検査される、
請求項１から１５までのいずれか１項記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、請求項１の上位概念記載の制御プログラムに対するインタラクション方法に関する。
【背景技術】
【０００２】
制御装置に対するインタラクション方法は、文献ＤＥ１０２００４０２７０３３Ａ１から公知である。
【０００３】
電子制御装置は、制御の目的で、多くの複雑な技術システム、特に自動車において使用されている。制御装置のプログラム（以下では制御プログラムと称する）は、大抵の場合、複数のサブプログラムを含んでおり、典型的には１つの制御プログラムが１００００個以上の制御装置変数を使用している。制御装置内に構成されている制御プログラムにより、特には、噴射ノズル又はパワーステアリングなどのアクチュエータが駆動され、ヨーレートセンサもしくは加速度センサ又はエアマスフローセンサもしくは排気ガスセンサなどのセンサが読み出され、その値が評価乃至処理される。多くの制御装置に潜在的安全性にとって重要なアプリケーションが存在しているため、制御プログラムの信頼性及び無誤謬性にはきわめて高い要求が課される。したがって、開発過程は複雑であり、多数のテストシーケンスにおいて行われることを要する。この場合、制御装置の開発中及び開発後又は持続的開発におけるテスト中に、制御プログラムの機能又はその少なくとも一部の変数を変更できることが望ましい。このために、例えば、従来技術から、制御プログラムの第１の機能を不活性化して事後的に構成された第２の機能によって置換するように構成された特別なサービス機能が公知である。これは、第１の機能によって記述されている変数を事後的に第２の機能の出力値によって上書きすることにより行われる。このサービス機能の呼び出しは、いわゆるソースコード平面で制御プログラムの開発中にプログラムコードへ挿入されるか、又は、制御プログラムの完成後に事後的に挿入される。
【０００４】
機能開発者及びテスト技術者は、上述したように、制御プログラムの変更を行おうとして、そのために、例えばサービス機能の呼び出しを事後的に制御プログラムのコードへ挿入することを要求するが、このときには制御プログラムのソースコードは存在していないことが多い。ソースコードはふつうＨＥＸファイル又はＳＲＥＣファイルの形態のバイナリコードであり、例えばＡＳＡＰ２ファイルの形態の制御装置仕様ファイルとともに、制御装置の較正及び測定及び揮発性プログラミングのために供給される。ただし、制御プログラムの機能変更は、上述したように、制御プログラムのバイナリコードに基づいて行われなければならない。このタスクを担当する開発者は、バイナリコードのなかから変更すべき機能を識別しなければならないという問題に直面する。パーシングと称されるバイナリコードの分析によれば、機能呼び出しと対応するメモリアドレスとをそれぞれ認識することはできるが、機能呼び出しを所定の機能に割り当てることは容易でない。言い換えれば、所定のメモリアドレスに何らかの機能が格納されていることは検出できるが、それが制御プログラムのどの機能であるかを識別することは困難なのである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】ＤＥ１０２００４０２７０３３Ａ１
【発明の概要】
【発明が解決しようとする課題】
【０００６】
こうした背景から、本発明の課題は、従来技術を拡張できる方法を提供することである。
【課題を解決するための手段】
【０００７】
この課題は、請求項１記載の特徴を有する制御プログラムに対するインタラクション方法によって解決される。本発明の有利な実施形態は従属請求項から得られる。
【０００８】
本発明の対象となっているのは、制御装置の制御プログラムに対するインタラクション方法であって、当該制御プログラムはバイナリのプログラムコードとして存在し、複数の第１の機能とこれらに対応するサブプログラムとを含み、複数の第１の機能のうち少なくとも１つはアクチュエータの制御のために構成されており、制御装置は制御プログラムを収容する第１のメモリを含んでおり、制御プログラムのプログラムコードには、複数の第１の機能のいずれかが呼び出された際に、機能呼び出しに関連する第１の機能のメモリアドレスを指示するジャンプアドレスが生じ、呼び出された第１の機能又はこれに対応するサブプログラムはバイナリのプログラムコードのシーケンスとして存在しており、プログラムコードのシーケンスの終了部にはジャンプバック命令とこれに対応するジャンプバックアドレスとが存在しており、呼び出された第１の機能のプログラムコードのシーケンスは第１の個数の変数アクセス、すなわち、変数に対する書き込みアクセス及び／又は読み出しアクセスを含み、各変数アクセスに１つずつメモリアドレスが割り当てられ、少なくとも１つの変数に第１の値が割り当てられる、方法である。ここで、本発明では、制御プログラムにつき、機能呼び出しの発生が検査されて、当該機能呼び出しのアドレスが求められ、第１の機能のプログラムコードにつき、変数アクセスが検査されて、各第１の機能に関連して読み出された変数及び書き込まれた変数のアドレスが求められ、求められた第１の機能と各第１の機能に対応する変数のアドレスとが第１の機能呼び出しに関連するジャンプアドレスとともに第１の割り当てテーブルに記憶され、第１の割り当てテーブルと設定された第２の割り当てテーブルとの比較から、複数の第１の機能の少なくとも一部に機能名が割り当てられ、いずれかの変数の少なくとも１つの第１の値が第２の値によって置換される。
【図面の簡単な説明】
【０００９】
【図１】制御装置の制御プログラムに対するインタラクション装置の平面図である。
【図２】第１のメモリに格納されている制御プログラムの構造を示す概略図である。
【図３】制御プログラム及び本発明の方法の実施例の詳細図である。
【図４】ＡＳＡＰ２フォーマットによるサブプログラムの仕様に関する詳細図である。
【発明を実施するための形態】
【００１０】
本発明によれば、設定された第２の割り当てテーブルは、制御プログラムの変数とメモリアドレスとの少なくとも１つの対応関係と、制御プログラムの機能と各機能からアクセスされる変数との対応関係とを含む。
【００１１】
本発明では、第１の機能に関連するジャンプアドレスが付加的に第１の割り当てテーブルに記憶されることに留意されたい。なお、本発明で云う「インタラクション（作用する）」とは、変更することとほぼ同義である。本発明において、プログラムに対する作用乃至変更とは、特に、アクチュエータの機能に影響を及ぼす少なくとも１つの変数への作用乃至変更であると理解されたい。変数の変更は、本発明によれば、当該変数に割り当てられたメモリアドレスに直接にアクセスすることにより行われる。変数の変更は、本発明によれば、制御プログラムのコード内の記述プロコトルを変更することによって行われ、特に、変数に対する記述プロコトルを含む機能が不活性化され、当該変数に対する別の記述プロコトルを含む別の機能によって置換されるように、行われる。また、変数の変更は、本発明によれば、制御プログラムのコード内の変数に対する書き込みアクセスが不活性化されるように行うこともできる。
【００１２】
本発明の方法の利点は、プログラムコード及び／又はソースコードの知識なしに、制御装置の制御プログラムを簡単に作用乃至変更できるということである。特に、本発明の方法によれば、制御プログラムのバイナリコードに設定されている機能を識別し、続けて変更又は置換することができる。このために、本発明の方法によれば、どの機能名及びこれに対応する変数が、制御プログラムのバイナリコード内で見出される機能呼び出しのどのジャンプアドレスに対応するかを求めることができる。
【００１３】
特には、既にビルトインされている制御装置の制御プログラムに対しても事後的に作用することができる。このために、既存のインタフェースが、例えばｄＳＰＡＣＥ ＤＣＩ−ＧＳＩ２などのインタラクション装置に基づいて使用される。プログラムに存在する第１の機能の個識別により、プログラムコードが既知である必要性、又は、第１の機能の完全なドキュメンテーションの存在の必要性を、多くの場合に無くせるという利点が得られる。特に、所定の機能の基本的な動作性と、この所定の機能によって書き込み及び読み出しされる変数とが既知であるケースでは、制御プログラムのバイナリコードにおける置換すべき機能のメモリアドレスが既知であれば、機能バイパス化として従来技術から知られている手法を用いて、或る機能を不活性化し、類似した動作性を有する別の機能によって置換することができる。こうした方法により、バイナリコード内の第１の機能乃至そのアドレスと、読み出し及び書き込みされる変数のアドレスとを求め、第１の割り当てテーブルに記憶し、設定された第２の割り当てテーブルとの比較から、見出された第１の機能のメモリアドレスに機能名を割り当てることができる。
【００１４】
一実施形態によれば、制御プログラムのプログラムコードが検査される際に、それぞれの変数において、割り当てられているそれぞれの読み出しアクセス乃至書き込みアクセスが求められて第１の割り当てテーブルへ記憶され、第１の割り当てテーブルと設定された第２の割り当てテーブルとの比較の際に、変数に割り当てられている読み出しアクセス及び書き込みアクセスの一致度が検査される。この場合、表示ユニットによって一致度を表示できるようになるので、有利である。
【００１５】
別の実施形態によれば、第２の割り当てテーブルにおいて、複数の第１の機能のいずれかに、それぞれ１つずつの機能名と所定数ずつの変数とが割り当てられる。ここで、各変数は名称とメモリアドレスとを有する。比較の際には、第１の割り当てテーブルに格納されている第１の機能ごとに、少なくとも、それぞれの第１の機能について２つの割り当てテーブルに格納されている変数の個数及び名称に関する一致度に依存して、機能名が割り当てられ、一致度が表示される。有利には、機能名の割り当ては、完全な一致が検出された場合にのみ、又は、所定の閾値を上回る一致度が検出された場合にのみ、自動で行われると有利である。
【００１６】
別の実施形態によれば、変数の個数及び名称に関して、第１の割り当てテーブルと第２の割り当てテーブルとの間で一致が完全でない場合、機能名の自動割り当てに代えて、手動割り当てが行われる。このために、例えば、表示ユニットにおいて、求められた第１の機能及び見出された変数の個数及び名称と、第２の割り当てテーブルにリスト化されている変数の個数及び名称とが、比較できるように表示される。また、同じ表示ユニットにおいて、それぞれの第１の機能に対し、一致度を表す特性量、例えばパーセンテージの形態で表される一致度を表示することができる。
【００１７】
本発明の別の有利な実施形態によれば、制御プログラムにおいて見出された機能呼び出しに対して、同一の個数及び名称を有する変数の機能名が見出されない場合には、発見的アルゴリズムを適用すると有利である。有利には、最大の一致度を有する機能名がユーザに報告される。別の有利な実施形態によれば、完全な一致度が得られず、一致度が報告される場合、示唆が出力される。こうした発見的アルゴリズムは、実際には第１の割り当てテーブルと第２の割り当てテーブルとが内容的に相互に異なっており、特に、変数もしくは機能呼び出しが個々に誤って割り当てられたり、又は、機能に割り当てられた変数もしくは機能呼び出しが部分的にドキュメント化されなかったり、又は、バイナリコードの分析時に無視されたりすることがありうるため、有利である。
【００１８】
別の有利な実施形態では、比較の際に一致度が所定の閾値を上回る場合にのみ、出力が実行される。言い換えれば、２つの割り当てテーブルの比較の際に変数の個数と名称に関して一致度が所定の閾値を上回った場合にのみ、表示ユニットにおいて、第１の機能が表示される。有利には、閾値は少なくとも５０％、有利には少なくとも８０％である。
【００１９】
別の実施形態では、２つの割り当てテーブルを比較して、制御プログラムの検査にかかった第１の機能のいずれについても完全な一致度が求められない場合、インタラクション装置によりメッセージが出力される。
【００２０】
さらに有利な実施形態によれば、比較の際に一致度が所定の閾値を上回る場合にのみ、機能に機能名が自動で割り当てられる。可能な態様として、比較の際に一致度が設定可能な閾値もしくは設定された閾値を上回った場合に、機能に対して１つの機能名を自動で割り当てることができる。別の可能な態様として、比較の際に、機能の一致度が所定の第１の閾値を上回り、かつ、２番目に良好に一致する機能の一致度が所定の第２の閾値を下回る場合にのみ、自動割り当てが実行される。別の可能な態様として、比較の際に、一致度が設定可能な第１の閾値又は設定された第１の閾値を上回り、かつ、機能の一致度と２番目に良好に一致する機能の一致度との差が設定可能な第２の閾値もしくは設定された第２の閾値を上回った場合に、自動で機能に機能名を割り当てることができる。
【００２１】
別の有利な実施形態によれば、比較結果を参照サンプルに基づいて検証することができる。このために、機能名を機能に割り当てる前に、或る機能名と制御プログラムの他の全ての機能との比較が行われる。ここで、本発明の方法に基づいて、一致度が求められ、他の機能のいずれについても一致度が設定可能な閾値もしくは設定された閾値を上回らない場合にのみ、機能に対する機能名の自動割り当てが行われる。
【００２２】
本発明の別の有利な実施形態によれば、第２の割り当てテーブルは、さらに、或る第１の機能とそのつど当該第１の機能から呼び出された別の第１の機能との対応関係を含む。これは、特に、第２の割り当てテーブルが、制御プログラムの第１の機能の少なくとも一部に、第１の機能から呼び出された機能やこれら呼び出された機能からさらに呼び出された機能などをリスト化した機能ツリーを対応させるように行われる。第１の機能から直接もしくは間接に呼び出された機能の少なくとも一部が本発明の方法にしたがって既に識別されている場合、このように、第１の割り当てテーブルにおいて識別されていない機能呼び出しに機能ツリーが割り当てられ、第２の割り当てテーブルの１つもしくは複数の機能ツリーとの比較が行われる。当該比較は、機能呼び出しに割り当てられた変数アクセスを本発明にしたがって比較することに加え、機能呼び出しを識別するための別の基準として用いられる。この実施形態では、特に、コードが専ら機能呼び出しのみから成るので、変数アクセスを含まない機能も本発明の方法に利用可能である。
【００２３】
別の実施形態では、モデリングシステムにより、複数の第１の機能のうちいずれか１つが選択され、選択された第１の機能の機能呼び出しが不活性化される、及び／又は、第１の機能が第２の機能によって置換される。特に、モデリングシステム及びインタラクション装置により、選択された第１の機能のうち１つもしくは複数の第１の機能のプログラムコードが１つもしくは複数の第２の機能のプログラムコードによって上書きされる。
【００２４】
別の態様として、モデリングシステムが第２のメモリユニットを含み、この第２のメモリユニットに第２の機能が記憶される。第２の機能によって置換される第１の機能においては、少なくとも変数アクセスが不活性化されるか又は変数が後から上書きされる。
【００２５】
有利には、第２の割り当てテーブルは、ＡＳＡＰ２ファイル（ＡＳＡＭ ＭＣＤ‐２ＭＣ又はＡ２Ｌファイルとも称される）として構成される。ＡＳＡＰ２フォーマットとは、自動車分野で標準化されている制御プログラムの技術的仕様のフォーマットであると理解されたい。特には、ＡＳＡＰ２ファイルは、変数及びこれに対応するメモリアドレスのリストであって、変数と個々の機能との対応関係、及び、機能呼び出しのツリーと個々の機能との対応関係とを含む。
【実施例】
【００２６】
本発明を以下に図に則して詳細に説明する。図中、同じ要素には同じ参照記号を付してある。図示の実施例はきわめて概略的なものであり、要素間の距離や要素の横方向乃至縦方向の大きさは縮尺通りとはなっておらず、特にことわりないかぎり、図から要素相互の幾何学的関係を導き出すことができない。
【００２７】
図１には制御プログラムＳＴＰに作用するためのインタラクション装置の概略図が示されており、図２には制御装置ＥＣＵの制御プログラムＳＴＰが示されている。制御装置ＥＣＵは第１のメモリＳＰ１とプロセッサＣとこのプロセッサに接続されたインタフェースＴＲＤＥとを含む。制御装置ＥＣＵは線路１０を介してモデリングシステムＭＯＤＳＹＳに接続されており、ここで、モデリングシステムＭＯＤＳＹＳは制御装置ＥＣＵの外部に構成されている。モデリングシステムＭＯＤＳＹＳは表示ユニットＫＰＣと制御装置ＧＳＩとを含んでいる。表示ユニットＫＰＣは、線路２０を介して、インタラクション装置ＧＳＩに接続されている。なお、制御プログラムＳＴＰはバイナリコード又はＨＥＸコードとして存在するものであると理解されたい。
【００２８】
図２には、メモリＳＰ１に格納された制御プログラムＳＴＰの構造が示されている。制御プログラムＳＴＰは複数の第１の機能Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎを有している。複数の第１の機能Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎはふつうサブプログラムの形態で形成されていることに注意されたい。
【００２９】
図３には、制御プログラムＳＴＰの構造と本発明の方法の第１の実施例とが詳細に示されている。制御プログラムＳＴＰは、複数のサブプログラム乃至サブプログラムに対応する複数の第１の機能Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎを含んでおり、図３ではこれらは集合的にｆｃｎで表されている。第１の機能Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎはそれぞれ、第１の命令で開始されており、その終了部にジャンプバック命令ｒｅｔｕｒｎを有する。この場合、制御プログラムＳＴＰの処理乃至実行に際しては第１の機能Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎのそれぞれに対してジャンプアドレスが形成されており、このジャンプアドレスが機能呼び出しに関連するサブプログラムのメモリアドレスを指示している。ジャンプ命令が指示しているメモリアドレスには第１の命令ｂｅｇｉｎ ｆｃｎが格納されている。サブプログラムはバイナリのプログラムコードのシーケンスとして存在する。それぞれのサブプログラムのプログラムコードシーケンスの終了部には、それぞれジャンプバック命令ｒｅｔｕｒｎがこれに対応するジャンプバックアドレスとともに存在している。
【００３０】
さらに、サブプログラム乃至図示の第１の機能Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎは、それぞれ１つずつ第１の個数の変数アクセスを含む。ここには、２種の変数アクセス、すなわち、書き込みアクセスに作用する書き込み命令ｓｔｏｒｅと読み出しアクセスに作用する読み出し命令ｌｏａｄとが示されており、つまり、各変数アクセスに１つずつメモリアドレスが割り当てられている。よって、書き込み命令ｓｔｏｒｅ及び読み出し命令ｌｏａｄは、メモリＳＰ１内の所定のメモリアドレスを指示しており、その結果、書き込み命令ｓｔｏｒｅ及び読み出し命令ｌｏａｄによって変数の値が所定のメモリセルに書き込まれるか又は所定のメモリセルから読み出される。
【００３１】
さらに、図には、第１のテーブルＴＡＢ１及び第２のテーブルＴＡＢ２を含む第１の割り当てテーブルＺＵＯＲＤ１と、第２の割り当てテーブルＺＵＯＲＤ２とが示されている。テーブルＴＡＢ１，ＴＡＢ２は第１の割り当てテーブルＺＵＯＲＤ１の２つの異なる処理段階を表している。第１のテーブルＴＡＢ１は所定のステップの終了後の第１の割り当てテーブルＺＵＯＲＤ１のステータスを表し、第２のテーブルＴＡＢ２はそれより後の別のステップの終了後の完成した第１の割り当てテーブルＺＵＯＲＤ１を表している。第２の割り当てテーブルＺＵＯＲＤ２は設定されたテーブルであり、特に、制御プログラムＳＴＰの変数及びこれに対応するメモリアドレスのリストと、制御プログラムＳＴＰの個々の機能と変数との対応関係とを含む。有利な実施例として、当該第２の割り当てテーブルが、制御装置仕様データファイル、特にＡＳＡＰ２ファイルの形態で構成されていてもよい。制御プログラムＳＴＰの検査結果は、第１の割り当てテーブルＺＵＯＲＤ１に記憶され、第２の割り当てテーブルＺＵＯＲＤ２の内容によって較正される。
【００３２】
本発明の方法の第１のステップでは、制御プログラムＳＴＰのプログラムコードにおいて機能呼び出しの発生が検査され、機能呼び出しに関連するジャンプアドレス、ジャンプバックアドレス、それぞれの第１の機能Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎに関連する変数、及び、この変数のメモリアドレスが求められる。このために、求められた機能呼び出しに全ての変数アクセスが割り当てられるが、この割り当ては、制御プログラムのシーケンスにおいて、機能呼び出しの後、これに対応するジャンプバック命令の前に行われる。当業者にプログラムパーシングとして知られている当該分析の結果が制御プログラムＳＴＰの仕様であり、これが図３に示されている。よって、制御プログラムＳＴＰは、理想的には（つまり、分析がエラーなく行われた場合には）、対応するジャンプバック命令のメモリアドレスの各機能に対する、全ての第１の機能Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎ及びこれに対応する機能アドレス（第１の機能のそれぞれに対応するプログラム命令のメモリアドレス）のリストと、当該機能からそれぞれのメモリアドレスに対して行われた変数の書き込みアクセス及び読み出しアクセスのリストとを含む。
【００３３】
第２のステップでは、第２の割り当てテーブルＺＵＯＲＤ２との第１の比較によって、変数のメモリアドレスに変数の名称が割り当てられ、この第１の比較の結果が第１の割り当てテーブルＺＵＯＲＤ１へ入力される。こうして得られるのが一時的な割り当てテーブルＴＡＢ１であり、この一時的な割り当てテーブルでは、この時点では識別されていないプログラム機能に対し、それぞれ１つずつ変数署名が割り当てられている。
【００３４】
本発明の方法の有利な構成では、プログラムコードが検査される際に、所定の機能に対し、当該機能から直接に行われた変数アクセスが割り当てられるだけでなく、当該機能のサブ機能から行われた変数アクセスも割り当てられる。所定の機能乃至その任意のサブ機能から行われるこうした２種の変数アクセスは、双方とも、同等の権限を付されて、一時的に第１のテーブルＴＡＢ１にエントリされる。所定の機能のサブ機能とは、本発明によれば、機能呼び出しのシーケンスに基づいて直接的もしくは間接的に所定の機能から呼び出される制御プログラムの機能であると理解されたい。こうした本発明の構成は有利である。特に、所定の第２の割り当てテーブルＺＵＯＲＤ２がサブ機能からの変数アクセスを所定の機能に割り当てるように構成されている場合に、ここでの割り当ても、本発明の方法が確実に動作するよう、第１の割り当てテーブルＺＵＯＲＤ１において相応に行われなければならないからである。
【００３５】
第３のステップでは、第１のテーブルＴＡＢ１の少なくとも一部の機能の変数署名が第２の割り当てテーブルＺＵＯＲＤ２の機能書き込みと比較されることにより、第１の機能Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎの少なくとも一部にそれぞれ１つずつ機能名が割り当てられる。当該機能名は、有利には、変数署名と最も良好に一致する機能の名称である。例えば、図３の２つの機能名ｆｃｎ＿ｌａｂｅｌ＿１，ｆｃｎ＿ｌａｂｅｌ＿３は、変数署名に基づいて、対応する第１の機能に割り当てられ、結果として、完成した第２のテーブルＴＡＢ２が得られる。機能名が割り当てられる全ての機能において、後続の名称及びメモリアドレスがユーザに既知となり、これらの機能に対する変更を行えるようになる。
【００３６】
図示されていない第４のステップでは、いずれかの変数の少なくとも第１の値が第２の値によって置換される。この置換は、例えば、アクチュエータの制御のために構成されている機能Ｆ１Ｘに所定の機能名が割り当てられ、当該機能Ｆ１Ｘが取得されたアドレス情報に基づいて不活性化され、第２の機能Ｆ２Ｘによって置換されるように行われる。ここで、第２の機能Ｆ２Ｘは、アクチュエータの制御のために構成されているが、第１の機能Ｆ１Ｘに比べて異なった、変数を書き込むためのプロトコルを有する。これは、変数が、その値によってアクチュエータの挙動に影響を及ぼすからである。
【００３７】
図４には、ＡＳＡＰ２フォーマットにしたがってサブプログラム“ｅｎｇｉｎｅ＿ｉｄｌｅ＿ｒｅｖ”を書き込む様子が示されている。書き込みブロックの第１の行では、サブプログラムに関連する機能名が実行される。第１のサブブロックＩＮ＿ＭＥＡＳＵＲＥＭＥＮＴは、サブプログラムによって読み込まれた全ての変数のリストを含み、第２のサブブロックＯＵＴ＿ＭＥＡＳＵＲＥＭＥＮＴは、サブプログラムによって書き込まれた変数のリストを含む。図４には示されていないが、ＡＳＡＰ２ファイルには全ての変数とそれぞれのメモリアドレスとの対応関係が含まれている。有利な構成では、ＡＳＡＰ２ファイルから読み出し可能な情報は、第２の割り当てテーブルＺＵＯＲＤ２の基礎となる。
【００３８】
ＡＳＡＰ２ファイルは、書き込まれたそれぞれのプログラム機能ごとに、或る機能から呼び出された全ての機能のリストを特に機能ツリーの形態で含む。アドレスが機能の少なくとも一部で既に識別されている場合、本発明の方法の有利な構成によれば、これらのアドレスが機能を識別する別の基準として使用される。このために、一時的な第１のテーブルＴＡＢ１において、プログラムコードで見出された全ての機能に対し、付加的に、それぞれの機能から行われた機能呼び出しが対応する機能アドレスとともにエントリされる。プログラムコードで見出された機能が第３のステップで識別された後、第４のステップで、第２のテーブルＴＡＢ２との比較により、機能呼び出しに機能名が割り当てられ、結果が第３のテーブルＴＡＢ３に記憶される。
【００３９】
第３のテーブルＴＡＢ３では、プログラムコード内で識別された全ての機能に機能呼び出しの署名が割り当てられ、第５のステップで、この機能呼び出しの署名が第２の割り当てテーブルＺＵＯＲＤ２の相応の機能書き込みと比較される。有利な構成によれば、この最後の比較の結果が第３のステップの割り当て結果の正確性を検査するために用いられる。別の有利な構成として、最後の比較の結果を用いて、変数アクセスを含まないプログラム機能に機能名を割り当ててもよい。第６のステップでは、変数のうち、特に、アクチュエータの挙動に影響を及ぼす変数の少なくとも第１の値が第２の値によって置換される。
【００４０】
ＡＳＡＰ２ファイルは、本発明の方法にとって必須でない別の情報を含むことができる。別の情報とは、例えば、図示されているような、サブブロックＤＥＦ＿ＣＨＡＲＡＣＴＥＲＩＳＴＩＣ及びサブプログラムによって宣言されている較正パラメータのリストである。有利には、第１の割り当てテーブルＺＵＯＲＤ１における変数への書き込みアクセス及び読み出しアクセスと、第２の割り当てテーブルＺＵＯＲＤ２における変数利用のデータ方向（読み出しもしくは書き込み、又は、ＩＮ＿ＭＥＡＳＵＲＥＭＥＮＴ乃至ＯＵＴ＿ＭＥＡＳＵＲＥＭＥＮＴ）とが別個に検出される。これは、第３のステップにおいて、高度な一致の確率が高められているからである。
【符号の説明】
【００４１】
ＥＣＵ  電子制御装置、  Ｃ  プロセッサ、  ＴＲＤＥ  インタフェース、  ＳＰ１  第１のメモリ、  １０，２０，３０  線路、  ＭＯＤＳＹＳ  モデリングシステム、  ＧＳＩ  インタラクション装置、  ＫＰＣ  ディスプレイユニット、  Ｆ１Ａ，Ｆ１Ｂ，Ｆ１Ｃ，…，Ｆ１Ｎ  第１の機能、  ＺＵＯＲＤ１  第１の割り当てテーブル、  ＴＡＢ１  第１のテーブル、  ＴＡＢ２  第２のテーブル、  ＺＵＯＲＤ２  第２の割り当てテーブル、  ＳＴＰ  制御プログラム
【図１】
0006053854.tif 000002
【図２】
0006053854.tif 000003
【図３】
0006053854.tif 000004
【図４】
0006053854.tif 000005