(57)【特許請求の範囲】
【請求項１】
複数の信号を入力して制御信号を形成する制御装置のプログラムをデバッグするデバック装置において、
前記制御装置のプログラムを規定する仕様書を基に制御の内容をＡＮＤ論理及びＯＲ論理で分岐し、ＡＮＤ論理又はＯＲ論理の対象となるＡＮＤ論理、ＯＲ論理及びイベントを１つのブロックとして、順次、上位から下位に展開する条件ツリー構造を入力し、この条件ツリー構造から一連のイベントの発生で形成される前記制御信号のチェックルートを抽出するチェックルート抽出部と、
前記制御部からの制御信号と前記チェックルート抽出部からの抽出可信号とが一定の時系列変化内にある場合に前記制御部のプログラムを正常と判断し、異常の場合には異常箇所を直すために特定する時系列判断部とを具備し、
前記チェックルート抽出部は、
前記仕様書を基に予めイベントを格納し、前記複数の信号を入力して、入力信号が一定の条件の場合にイベント発生して出力するイベント発生部と、
前記条件ツリー構造を入力し、前記ＡＮＤ論理、前記ＯＲ論理のいずれかを単位にブロックとして展開してＡＮＤ論理又はＯＲ論理を識別し前記ブロックにはイベント、ＡＮＤ論理及びＯＲ論理が含められるブロック展開部と、
前記展開されたブロックを構成するイベントを番号で表し、下位のブロックがＡＮＤ論理の場合には各イベントの番号をｘ方向に並らべてブロックをマップにし、ブロックがＯＲ論理の場合には各イベントの番号をｙ方向に並べてブロックをマップにし、且つ上位のブロックがＯＲ論理の場合には下位で形成された２次元マップのｘ方向にイベントの番号０を並べて、各２次元マップのｘ方向の桁数を合わせ、桁数を合わされた各２次元マップをｙ方向に重ね並べてマップにし、且つ上位のブロックがＡＮＤ論理の場合には、下位で形成された各２次元のマップをｙ方向に繰り返し形成し繰り返された各２次元マップのｙ方向の桁数を合わせ、桁数を合わされた各２次元マップをｘ方向に並べてマップにすることにより、最上位のブロックの２次元マップを形成して、このマップの各行がチェックルートを表すチェックルート展開部と、
前記チェックルート展開部により得られたチェックルートを形成するイベントの番号と前記イベント発生部からの発生イベントの番号とを比較して、前記チェックルートを形成するイベントの番号が前記発生イベントの番号に含まれるときチェックルートの抽出可信号を出力する比較部とを具備することを特徴とする自動デバッグ装置。
【請求項２】
前記ブロック展開部は混在しているイベント、ＡＮＤ論理及びＯＲ論理をイベントのグループと、ＡＮＤ論理及びＯＲ論理のグループの２つに分類して整理することを特徴とする、請求項１に記載の自動デバッグ装置。
【請求項３】
前記ブロック展開部はＡＮＤ論理とＡＮＤ論理が重なる場合には１つのＡＮＤ論理に簡略化し、ＯＲ論理とＯＲ論理が重なる場合には１つのＯＲ論理に簡略化し、ＡＮＤ論理に１つのイベントしかつながらない場合にはＡＮＤ論理を省略し、ＯＲ論理に１つのイベントしかつながらない場合にはＯＲ論理の省略することを特徴とする、請求項１に記載の自動デバッグ装置。
【請求項４】
前記時系列判断部は前記制御部の入力から出力までに要する時間を考慮して時系列変化を決定することを特徴とする、請求項１に記載の自動デバッグ装置。
【請求項５】
前記時系列判断部は前記チェックルート抽出部により抽出された全チェックルートに対する抽出可信号に対して前記制御部のプログラムの正常及び異常を判断し、いずれか１つのチェックルートに異常があれば、前記制御部のプログラムが異常であると判断を行うことを特徴とする、請求項１に記載の自動デバッグ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はシステムの制御プログラムの自動デバッグ装置に関する。特に、本発明は、制御プログラムの実行を基に、仕様書通りの実行を行っているかを容易にチェックして不良箇所を改善できる自動デバッグ装置に関する。
【０００２】
【従来の技術】
従来、制御装置の時系列の計測結果を人手により仕様書通りに動作しいるかがチェックされていた。例えば、自動車のＡＢＳ（アンチロックブレーキシステム）制御のソフトプログラムの実行では、入出力関係において、車速１０ｋｍ／ｈ以上の入力とＡＢＳの許可の入力とがあるときのみＡＢＳのＯＮ出力が行われているかがチェックされる。逆に、ＡＢＳのＯＮ出力時に車速１０ｋｍ／ｈ以上の入力とＡＢＳの許可入力とが行われているかがチェックされる。このようなチェックで不良箇所が発見されれば修正される。
【０００３】
【発明が解決しようとする課題】
しかしながら、試験の項目が多くなりこの試験を人手に頼るとかなりの工数が必要となり、またミスチェックなどが発生するという問題がある。
したがって、本発明は上記問題点に鑑み、低工数で信頼性の高い制御装置の自動デバッグ装置を提供することを目的とする。
【０００４】
【課題を解決するための手段】
本発明は、前記問題点を解決するために、複数の信号を入力して制御信号を形成する制御装置のプログラムをデバッグするデバック装置において、前記制御装置のプログラムを規定する仕様書を基に制御の内容をＡＮＤ論理及びＯＲ論理で分岐し、ＡＮＤ論理又はＯＲ論理の対象となるＡＮＤ論理、ＯＲ論理及びイベントを１つのブロックとして、順次、上位から下位に展開する条件ツリー構造を入力し、この条件ツリー構造から一連のイベントの発生で形成される前記制御信号のチェックルートを抽出するチェックルート抽出部と、前記制御部からの制御信号と前記チェックルート抽出部からの抽出可信号とが一定の時系列変化内にある場合に前記制御部のプログラムを正常と判断し、異常の場合には異常箇所を直すために特定する時系列判断部とを具備し、前記チェックルート抽出部は、前記仕様書を基に予めイベントを格納し、前記複数の信号を入力して、入力信号が一定の条件の場合にイベント発生して出力するイベント発生部と、前記条件ツリー構造を入力し、前記ＡＮＤ論理、前記ＯＲ論理のいずれかを単位にブロックとして展開してＡＮＤ論理又はＯＲ論理を識別し前記ブロックにはイベント、ＡＮＤ論理及びＯＲ論理が含められるブロック展開部と、前記展開されたブロックを構成するイベントを番号で表し、下位のブロックがＡＮＤ論理の場合には各イベントの番号をｘ方向に並らべてブロックをマップにし、ブロックがＯＲ論理の場合には各イベントの番号をｙ方向に並べてブロックをマップにし、且つ上位のブロックがＯＲ論理の場合には下位で形成された２次元マップのｘ方向にイベントの番号０を並べて、各２次元マップのｘ方向の桁数を合わせ、桁数を合わされた各２次元マップをｙ方向に並べてマップにし、且つ上位のブロックがＡＮＤ論理の場合には、下位で形成された各２次元マップをｙ方向に繰り返し形成し繰り返された各２次元マップのｙ方向の桁数を合わせ、桁数を合わされた各２次元マップをｘ方向に並べてマップにすることにより、最上位のブロックの２次元マップを形成して、このマップの各行がチェックルートを表すチェックルート展開部と、前記チェックルート展開部により得られたチェックルートを形成するイベントの番号と前記イベント発生部からの発生イベントの番号とを比較して、前記チェックルートを形成するイベントの番号が前記発生イベントの番号に含まれるときチェックルートの抽出可信号を出力する比較部とを具備する。この手段により、低工数且つ高い信頼性で制御装置を構成する全要素について正常、異常のチェックを行うことが可能になる。
【０００５】
前記ブロック展開部は混在しているイベント、ＡＮＤ論理及びＯＲ論理をイベントのグループと、ＡＮＤ論理及びＯＲ論理のグループの２つに分類して整理する。さらに、前記ブロック展開部はＡＮＤ論理とＡＮＤ論理が重なる場合には１つのＡＮＤ論理に簡略化し、ＯＲ論理とＯＲ論理が重なる場合には１つのＯＲ論理に簡略化し、ＡＮＤ論理に１つのイベントしかつながらない場合にはＡＮＤ論理を省略し、ＯＲ論理に１つのイベントしかつながらない場合にはＯＲ論理の省略する。この手段により、本自動デバッグ装置の構成が簡単でき、処理量を低減できる。
【０００６】
【発明の実施の形態】
以下本発明の実施の形態について図面を参照して説明する。
図１は本発明の自動デバッグ装置の例を示す図である。本図に示す如く、制御装置１はシステムの制御を行うためにソフトプログラムを搭載しており、複数の信号を入力し、これらの信号を処理して制御信号Ａを出力する。チェックルート抽出部２及び時系列判断部３は制御装置１のデバッグ装置を形成する。チェックルート抽出部２は制御装置の仕様書の入出力関係を後述する条件ツリー構造で入力して制御装置１のチェックすべき複数のルートを求めて各々のチェックルートの抽出「可否」を判断してその結果が抽出「可」ならば抽出信号Ｒを出力する。時系列判断部３は制御装置１からの制御信号Ａ及びチェックルート抽出部２の抽出可信号Ｒが一定の時系列の変化内にあれば制御装置１のプログラムが正常（ＯＫ）であると判断し、そうでなければ異常（ＮＧ）であると判断する。
【０００７】
図２は図１のチェックルート抽出部２の例を示す図である。本図に示す如く、チェックルート抽出部２は、入力信号を基にイベントを発生するイベント発生部２１と、条件ツリー構造を入力して条件ツリー構造のブロック論理を基に展開するブロック展開部２２と、ブロック論理を構成するＡＮＤ（論理積）論理とＯＲ（論理和）とを用いて条件ツリー構造の下位から上位にイベントをマップ状に展開して展開したマップから一連のイベントのチェックルートを求めるチェックルート展開部２３と、イベント発生部２１の発生イベントとチェックルート展開部２３で発生するチェック用イベントを比較しチェック用イベントが発生イベントに含まれる場合にはチェックルートの抽出「可」と判断し抽出可信号Ｒを出力する比較部２４とを具備する。
【０００８】
図３は図２のイベント発生部２１を説明する図である。本図に示す如く、イベント発生部２１は、番号１、２、３、…に対応して複数のイベントＡ、Ｂ、Ｃ、…をそれぞれフラグを立てる判定方法と共にサンプリングＲＡＭに格納される。例えば、イベントＡは、前述の例では、車速信号の入力に対して車速１０ｋｍ／ｈ以上（Ｃ1)でフラグが立って発生し、イベントＢはＡＢＳの許可（ＯＮ）の入力に対してフラグが立ち発生する。
【０００９】
図４は図２のブロック展開部に入力させる条件ツリー構造の例を説明する図である。仕様書の記載に沿って条件ツリーを入力するが、本図に示す如く、条件ツリー構造はＡＮＤ論理と、ＯＲ論理と、イベントで構成され、ＡＮＤ論理又はＯＲ論理から分岐が発生する。このような条件ツリー構造は制御の論理展開の考察の結果得られたものである。ＡＮＤ論理、ＯＲ論理の下の括弧の数はブロック番号を示す。１つのブロック、例えばＡＮＤ（０）を構成するイベントＡ、ＯＲ（１）、ＯＲ（２）はステートと呼び、ステート数は最大Ｎ1 に制限される。
【００１０】
図５は図４のブロック例を説明する図である。本図に示す如く、図４の条件ツリー構造にはブロック（０）、ブロック（１）、ブロック（２）、ブロック（３）、ブロック（４）が設けられている。なお、条件ツリー構造はブロック数を最大Ｎ2 に制限する。
図６は図２のブロック展開部２２の例を説明する図である。本図に示す如く、ブロック展開部２２では、ブロック番号（０）、（１）、（２）、（３）、（４）の各々に対して、ブロック論理の種類を識別している、すなわちＡＮＤ論理なら１−＊と、ＯＲ論理なら０−＊と識別してある。さらにブロックのステートについて、ブロック指定なら０、イベント指定なら１と識別し、ブロックならその後にブロック番号を付け、イベントならその後にイベント番号を付けてある。
【００１１】
図７はステートの整理例を説明する図である。本図（ａ）に示す如く、条件ツリー構造のブロックにイベントと論理とのステートが混在している場合に、本図（ｂ）に示す如く、イベントとブロックの２つに分けて先頭にイベントを位置づけように、ブロック展開のステートを整理する。このようにするのは整理の便宜のためであり、以降の処理の結果に影響を与えない。
【００１２】
図８は同一論理のブロックの簡略化を説明する図である。ＡＮＤ−ＡＮＤ、ＯＲ−ＯＲ、ＡＮＤ−ステート１個、ＯＲ−ステート１個のような論理を含む条件ツリー構造、ブロック展開に対して、例として、本図（ａ）から本図（ｂ）の条件ツリー構造に対するブロック展開にする。このようにするのはブロックの展開の簡略化のためであり、以降の処理の結果に影響を与えない。これらの整理、簡略化により本自動デバッグ装置の処理の構成が簡単化でき、処理量が少なくなる。
【００１３】
図９は図２のチェックルート展開部２３の下位ブロックでの論理展開例を説明する図である。ブロック指定の無い、つまり、イベントだけからなる下位ブロックでは、本図（ａ）に示す如く、ＡＮＤ論理のブロック内のイベント番号をｘ方向（横方向）に並べて展開する。本図（ｂ）に示すように、ＯＲ論理のブロック内のイベント番号をｙ方向（縦方向）に並べて展開する。
【００１４】
図１０は図２チェックルート展開部２３の上位ブロックでの論理展開例を説明する図である。本図（ａ）に示す如く、上位ブロックでは、ＯＲ論理のブロック内のｘ1 ×ｙ1 のイベントＡ、ｘ2 ×ｙ2 のイベントＢ、ｘ3 ×ｙ3 のイベントＣをｍａｘ（ｘn,n=1,2,3)×（ｙ1 ＋ｙ2 ＋ｙ3 ）のようにマップに展開する。本図（ｂ）に示す如く、ＡＮＤ論理積のブロック内でのｘ1 ×ｙ1 のイベントＡ、ｘ2 ×ｙ2 のイベントＢ、ｘ3 ×ｙ3 のイベントＣを（ｘ1 ＋ｘ2 ＋ｘ3 ）×（ｙ1 ×ｙ2 ×ｙ3)のマップに展開する。このようにして得られたブロック（０）での最終的なマップの横方向の各行がチェックルートを表す。
【００１５】
以下に具体例について説明する。
図１１は具体例を説明する条件ツリー構造を説明する図であり、図１２は図１１の整理されたブロック展開を説明する図であり、図１３は図１２の簡略されたブロック展開図であり、図１４は図１１の簡略化された条件構造を説明する図であり、図１５はチェックルートを抽出するための下位ブロックの論理展開を説明する図であり、図１６はチェックルートを抽出するための上位ブロックの論理展開を説明する図である。なお、図１３のおけるゴミブロックがブロック間の存在する場合には、その後のブロックを前方につめる。図１１〜１６に示す如く、得られたチェックルートは、
１−２−７、
１−２−８、
１−２−９−１０、
１−３−７、
１−３−８、
１−３−９−１０、
１−４−７、
１−４−８、
１−４−９−１０、
１−５−６、
１−５−６−７、
１−５−６−８、
のように、１２のルートになる。なお、図１６のマップ内のゼロは無視してある。
【００１６】
また、図２に戻り、比較部２４では、例えば、チェックルート展開部２３から得られた上記のチェックルート１−２−７に対して、イベント発生部２１においてイベント１、２、７のフラグが立っていれば、このチェックルートに対して抽出「可」の抽出可信号Ｒが出力される。
図１７は図１の時系列判断部３を説明する図である。本図（ａ）に示す如く、チェックルート抽出部２からの抽出可信号Ｒが出力される間に制御装置１から制御信号Ａが出力される保持型の場合に制御装置１のプログラムが正常（ＯＫ）と判断する。また、本図（ｂ）に示す如く、チェックルート抽出部２からの抽出可信号Ｒに対して制御装置１から制御信号Ａが出力されているトリガ型の場合に制御装置１のプログラムが正常（ＯＫ）と判断されてもよい。なお、制御装置１とチェックルート抽出部２の処理では、チェックルート抽出部２の処理が通常速い。このため以下の如く、タイミングの調整が行われる。
【００１７】
図１８は図１の時系列判断部３において処理タイミングを考慮して制御装置１のプログラムの正常／異常の判断を行う判断例を説明する図である。本図（ａ）に示す如くトリガ型の場合、制御装置１の入力から出力までの処理時間をΔＴとして、制御装置１からの制御信号Ａが抽出可信号Ｒの出力後ΔＴ内に出力されれば、正常（ＯＫ）との判断がを行われる。本図（ｂ）に示す如く保持型の場合、抽出可信号Ｒの出力の間に制御信号Ａを出力すれば制御装置１のプログラムが正常（ＯＫ）と判断される。
【００１８】
図１９は図１の時系列判断部３における異常（ＮＧ）の判断例を説明する図である。本図（ａ）に示す如く、抽出可信号Ｒの出力後ΔＴ内に制御信号Ａが出力されない場合、制御装置１のプログラムが異常（ＮＧ）と判断される。また、本図（ｂ）に示す如く抽出可信号Ｒが出力されずに制御信号Ａを出力した場合、本図（ｃ）に示す如く抽出可信号Ｒの出力中に制御信号Ａを出力し抽出可信号Ｒの出力が無くなった後ΔＴ後にもまだ制御信号Ａを出力している場合、本図（ｄ）に示す如く抽出可信号Ｒの出力中に制御信号Ａの出力が無くなる場合等、制御装置１のプログラムが異常（ＮＧ）と判断される。ただし、（ｃ）（ｄ）の判断は、ただ１個の保持型Ｒについてのみ、行う。
【００１９】
なお、時系列判断部３において、チェックルート抽出部２により抽出された全チェックルートについて制御装置１のプログラムが正常（ＯＫ）、異常（ＮＧ）の判断を行い、全チェックルートについて正常（ＯＫ）を判断したときのみ制御装置１のプログラムが正常（ＯＫ）と判断される。１つでもチェックルートに異常（ＮＧ）があれば、制御装置１のプログラム全体を異常（ＯＫ）と判断して、そのルートが明示される。この明示を基に不良箇所を直すことができる。
【００２０】
したがって、本発明によれば、仕様書の制御論理を条件ツリー構造で入力し、この条件ツリー構造を基に変換したチェックルートにおいて制御装置の制御信号の有無を判断するようにしたので、制御装置のデバッグが自動的に行われるようになった。このため、所期の目的である低工数、信頼性の向上を達成することが可能になった。
【００２１】
また、本発明は、条件ツリー構造を用いて、チェックルート抽出部２に道路地図のルートを検索させることにより、ナビゲーションのルート検索にも適用可能である。
【図面の簡単な説明】
【図１】本発明の自動デバッグ装置の例を示す図である。
【図２】図１のチェックルート抽出部２の例を示す図である。
【図３】図２のイベント発生部２１を説明する図である。
【図４】図２のブロック展開部に入力させる条件ツリー構造の例を説明する図である。
【図５】図４のブロック例を説明する図である。
【図６】図２のブロック展開部２２の例を説明する図である。
【図７】ステートの整理例を説明する図である。
【図８】同一論理のブロックの簡略化を説明する図である。
【図９】図２のチェックルート展開部２３の下位ブロックでの論理展開例を説明する図である。
【図１０】図２チェックルート展開部２３の上位ブロックでの論理展開例を説明する図である。
【図１１】具体例を説明する条件ツリー構造を説明する図である。
【図１２】図１１の整理されたブロック展開を説明する図である。
【図１３】図１２の簡略されたブロック展開図である。
【図１４】図１１の簡略化された条件構造例を説明する図である。
【図１５】チェックルートを抽出するための下位ブロックの論理展開を説明する図である。
【図１６】チェックルートを抽出するための上位ブロックの論理展開を説明する図である。
【図１７】図１の時系列判断部３を説明する図である。
【図１８】図１の時系列判断部３において処理タイミングを考慮して制御装置１のプログラムの正常／異常の判断を行う判断例を説明する図である。
【図１９】図１の時系列判断部３における異常（ＮＧ）の判断例を説明する図である。
【符号の説明】
１…制御装置
２…チェックルート抽出部
３…時系列判断部
２１…イベント発生部
２２…ブロック展開部
２３…チェックルート展開部
２４…比較部
【図１】
0003703581.tif 000002
【図２】
0003703581.tif 000003
【図３】
0003703581.tif 000004
【図４】
0003703581.tif 000005
【図５】
0003703581.tif 000006
【図６】
0003703581.tif 000007
【図７】
0003703581.tif 000008
【図８】
0003703581.tif 000009
【図９】
0003703581.tif 000010
【図１０】
0003703581.tif 000011
【図１１】
0003703581.tif 000012
【図１２】
0003703581.tif 000013
【図１３】
0003703581.tif 000014
【図１４】
0003703581.tif 000015
【図１５】
0003703581.tif 000016
【図１６】
0003703581.tif 000017
【図１７】
0003703581.tif 000018
【図１８】
0003703581.tif 000019
【図１９】
0003703581.tif 000020