JPH04302026A - 制御プログラムの開発方法 - Google Patents

制御プログラムの開発方法

Info

Publication number
JPH04302026A
JPH04302026A JP6585691A JP6585691A JPH04302026A JP H04302026 A JPH04302026 A JP H04302026A JP 6585691 A JP6585691 A JP 6585691A JP 6585691 A JP6585691 A JP 6585691A JP H04302026 A JPH04302026 A JP H04302026A
Authority
JP
Japan
Prior art keywords
program
module
control
modules
program modules
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.)
Pending
Application number
JP6585691A
Other languages
English (en)
Inventor
Yasuhiro Harada
靖裕 原田
Mitsuo Nakamura
光男 中村
Akira Kamisakamoto
明 上坂元
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.)
Mazda Motor Corp
Original Assignee
Mazda Motor Corp
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 Mazda Motor Corp filed Critical Mazda Motor Corp
Priority to JP6585691A priority Critical patent/JPH04302026A/ja
Publication of JPH04302026A publication Critical patent/JPH04302026A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、例えばエンジン制御コ
ントローラ等の制御装置における制御プログラムの開発
方法に関し、特に、開発の効率化の改良に関するもので
ある。
【0002】
【従来の技術】一般の制御装置、特に、自動車の制御は
近年電子化に伴ない複雑さを極めている。例えば、特開
平2−193247号では、エンジン制御や後輪操舵制
御に複数のマイクロコンピユータを用い、各マイクロコ
ンピユータによりなされる制御機能を協調させることに
より、自動車全体として要求される機能を実現している
【0003】しかし、個々のマイクロコンピユータ内部
における制御、例えば、エンジン制御でさえも複雑であ
るのが実情である。
【0004】
【発明が解決しようとしている課題】例えば、エンジン
回転数NE ,空気吸入量Q等に基づいてエンジンの燃
料噴射量TP を計算する場合、噴射量TP は、TP
 =TE2×CT TE2=TE1×CBA×CA CT =1+CZ +CAC+CW TE1=K×(Q/NE ) により計算される。ここで、Kは定数、CBAは大気の
気圧による補正定数、CAは吸入空気の温度による補正
定数、CZ は走行ゾーンによる補正定数、CACは加
速を考慮した補正定数、CW はエンジンの冷却水によ
る補正定数である。しかし、このTP をマイクロコン
ピユータで実際に計算する場合は、マイクロコンピユー
タのAX,BXレジスタを用い、 AX  ←  K・(Q/NE ) AX  ←  AX・CA AX  ←  AX・CBA BX  ←  1+CZ BX  ←  BX+CAC BX  ←  BX+CW AX  ←  AX・BX TP   ←  AX 等といった計算が必要となる。
【0005】このような計算方法、即ち、プログラミン
グ方法では、プログラム全体の見通しが悪くなり、一部
の変更が全体に大きく変更し、しかも、その変更の予測
は困難である。即ち、開発に多くの時間の無駄が発生し
、開発過程における修正にも無駄が発生する。
【0006】しかも、噴射量TP は例えば8ms毎に
必要となるが、例えばCw 等は短時間に変化しないた
めに1秒単位で計測しても間に合う。しかし、上記計算
方法では、Cw を8ms毎に計算することになり、や
はり無駄が多い。
【0007】
【課題を解決するための手段】本発明は上述の課題を解
決することを目的としてなされたもので、その目的は、
制御プログラムの全体構造を見通しのよいものにし、プ
ログラムの一部の修正があってもそれが不測の制御機能
上の変更をもたらすことのないような制御プログラムの
開発方法を提案するものである。
【0008】上述の課題を解決するための手段として、
以下の構成を備える。即ち、1つの命令解釈実行ユニツ
トが複数のプログラムモジュールを解釈実行し、それら
のプログラムモジュールの全体が機器の全体的な制御を
行なう制御装置の前記プログラムモジュールを開発する
開発方法であって、前記複数のプログラムモジュールに
、それらのモジュールを識別するモジュール識別子を付
し、前記複数のプログラムモジュール間の関係を、前記
モジュール識別子と、それらのモジュールに入力される
変数名と出力される変数名とにより記述し、2つ以上の
プログラムモジュールで共通に使われる変数はグローバ
ル変数として定義し、1つのプログラムモジュールだけ
で使われる変数はローカル変数として定義し、制御装置
の制御特性を変更するときは、個々のプログラムモジュ
ールをチューニングすることを特徴とする。
【0009】
【作用】以上の構成において、エンジン制御装置の制御
全体が複数のプログラムモジュールに分解され、制御全
体の構造はプログラムモジュール間のデータの依存関係
として表わされている。そして、2つ以上に共通に使わ
れる変数はグローバル変数として定義され、1つのプロ
グラムモジュールだけで使われる変数はローカル変数と
して定義されているので、制御プログラムの開発過程で
よくあるチューニングで制御特性を変更するときは、個
々のプログラムモジュールをチューニングするだけです
む。即ち、プログラムモジュール間の依存関係はプログ
ラマの知らないところで変更されることはない。
【0010】
【実施例】以下、添付図面を参照して本発明に係る好適
な実施例を詳細に説明する。この実施例は本発明をエン
ジン制御に適用したものである。
【0011】図1は、この実施例としてのエンジン制御
装置における燃料噴射制御を実行するための制御手順を
、複数のプログラムモジュールに分解して表わしたもの
である。最上位の「燃料噴射パルス」モジュールIi 
は、「同期噴射量」モジュールWGSYNと「同期噴射
時期」モジュールTSYN,「非同期噴射量」モジュー
ルWGASY…等の第2位のプログラムモジュールで出
力されたデータを用いる命令群からなる。更に、第2位
のプログラムモジュール「同期噴射量」モジュールWG
SYNは、第3位の「始動中噴射量」モジュールと「通
常噴射量」モジュールで作成されたデータを参照するよ
うに構成され、第3位の「通常噴射量」モジュールは、
第4位の「有効噴射時間」モジュールと「燃料分配」モ
ジュールと「インジエクタ切換補償」モジュールと「燃
料カット」モジュールとで作成されたデータを参照する
ように構成され、第4位の「有効噴射時間」モジュール
は、第5位の「基本噴射時間」モジュールと「増量率」
モジュールとで作成されたデータを参照するように構成
され、第5位の「基本噴射時間」モジュールは、第6位
の「吸入空気流量」モジュールと「空気密度補正」モジ
ュールと「なまし処理」モジュールとで作成されたデー
タを参照するように構成され、第5位の「増量率」モジ
ュールは、第6位の「ゾーン補正」モジュールと「加速
補正」モジュールと「水温補正」モジュールで作成され
たデータを参照するように構成されている。勿論、これ
らのモジュール間の関係は一例でしかなく、例えば、増
量率モジュールは、更に、不図示ではあるものの、「ア
イドル補正」モジュールや「付加補正」モジュールを追
加しても良い。
【0012】図1においては、「基本噴射時間」モジュ
ール等の「基本噴射時間」なる名称はプログラマが参照
するのに便利なように付された名称であり、プログラム
上、モジュールを参照するのはモジュール識別子を用い
て行なう。図1の例におけるモジュール識別子は、便宜
上、各モジュールの箱の下部に、例えば、「有効噴射時
間」モジュールに対しては“G000,B”と付されて
いる。
【0013】本実施例では、このモジュール識別子によ
っても、モジュール間のデータの依存関係が把握できる
ようになっている。即ち、識別子は、 Gn1 n2 n3 n4 …,X の表記を有する。Gはプログラムモジュールであること
を示す符号である。
【0014】n1 n2 n3 n4 …はその桁数が
当該モジュールの階層を表わす。例えば、「有効噴射時
間」モジュールは“G000,B”で表わされ、n1 
n2 n3 n4 …は3桁であるから、当モジュール
は第4位となる。 今、“Gn1 n2 n3 ”と表わされたモジュール
があるとする。本実施例のルールでは、この“Gn1 
n2 n3 ”で表わされたモジュールの1つ上位のモ
ジュールは“Gn1 n2 ”であることを意味する。 また、この“Gn1n2 n3 ”モジュールと同位の
階層に、前記上位モジュール“Gn1 n2 ”とデー
タ関係を有する他のモジュールがあるとすれば、そのモ
ジュールは“Gn1 n2 n4 ”で表わされる。
【0015】以上のようなモジュール識別子の表記によ
ればプログラムモジュール間のデータ依存関係が容易に
把握できる。
【0016】図2に、「有効噴射時間」モジュールと、
それの下位のプログラムモジュールとの階層関係を示す
【0017】エンジン制御は図1若しくは図2に示され
た制御手順だけで実行できるものではない。図1若しく
は図2に示された制御手順は制御構造を示すに過ぎない
からである。換言すれば、本実施例の制御装置のコンピ
ユータは図1の制御手順を解釈し実行することはできな
い。コンピユータはそれが解釈し実行できるだけの機械
語レベルの命令を必要とする。本実施例においては、プ
ログラムモジュールと機械語との橋渡しを行なうのが「
マクロモジュール」と呼ばれる機械語で書かれたマクロ
命令群である。一般に、コンピユータ技術において、高
級言語(COBOLやFORTRAN )で記述された
プログラムはコンパイラにより機械語に翻訳されて始め
て実行されることは良く知られている。つまり、本実施
例のプログラムモジュールが高級言語(COBOL や
FORTRAN )で記述されたプログラムとすれば、
「マクロモジュール」は機械語レベルのプログラムとい
うことができる。
【0018】図3乃至図6に「マクロモジュール」の例
を示す。図3は四則演算の1つである加算(ADD)の
マクロモジュールを、図4は四則演算の1つである乗算
(MUL)のマクロモジュールを、図5は論理演算の1
つである積(AND)のマクロモジュールを、図6は機
能処理の1つとしてフィルタ(なまし処理FIL)のマ
クロモジュールを示す。
【0019】例えば、図2の「基本噴射時間」モジュー
ルが乗算を2つ用いているのであれば、図4のMULモ
ジュールを2回コールするルーチンが「基本噴射時間」
モジュールに組まれている。また、図2の「増量率」モ
ジュールが加算を4つ用いているのであれば、図3のA
DDモジュールを4回コールするルーチンが「増量率」
モジュールに組まれている。更に具体的に説明すると、
「増量率」モジュールでCT =1+CZ を行なうに
は、CALL  $ADD DW  CT ,1,CZ となる。ここで、DW命令は引数を設定するマクロ命令
であり、各マクロモジュールでは、LAB0,LAB1
,LAB2はローカルな変数である。もし、コンピユー
タに8086系のマイクロコンピユータを使うのであれ
ば、上記$ADDモジュールにより、MOV  1, 
 LAB1 MOV  CZ ,LAB2 ADD  LAB1,LAB2 MOV  LAB1,CT が実行されることになろう。
【0020】このように、本実施例の制御装置は、階層
関係(データ間の関連)を有する複数のプログラムモジ
ュールと、階層関係を有さない個々が独立した複数のマ
クロモジュールとからなる。そして、前述したように、
プログラムモジュール間の連関は、制御装置に与えられ
た制御の制御構造を表わす。この制御構造モデルは制御
の機能を表わすから、もし制御の機能が変更されたなら
ば、この制御構造モデル自体を変更しなくてはならない
。そして、ある自動車のモデルで制御のチューニングが
必要ならば、前述のマクロモジュールを変更し、あるい
は追加するようにする。例えば、フィルタ特性を変更し
ようとするならば、図6の$FIL$NAモジュールの
定数を変更すればよい。前述したように、各マクロモジ
ュールの変数はローカル変数として定義されているから
、あるマクロモジュールの定数値を変更しても、プログ
ラマの知らないところで他のマクロモジュールに影響を
与えることはない。
【0021】このように、本実施例の制御装置は、階層
関係(データ間の関連)を有する複数のプログラムモジ
ュールと、階層関係を有さない個々が独立した複数のマ
クロモジュールとを少なくとも有する。図7は、制御装
置のメインメモリ内における上記のプログラムモジュー
ルとマクロモジュールと他のプログラムとの関係を示す
ものである。
【0022】図7中、300はメモリ中のユーザ領域で
ある。このユーザ領域300には、複数のプログラムモ
ジュールを格納する領域302と、これらのプログラム
モジュールのラベル(即ち、各プログラムモジュールの
先頭ポインタ)と、各プログラムモジュールで使われる
変数を示すポインタとを記憶するラベルエリア301と
が含まれる。プログラムモジュール領域302は、例え
ば、燃料噴射量を制御するプログラムモジュール群(3
02−1)を格納する領域と、点火時期を制御するプロ
グラムモジュール群(302−2)とからなる。
【0023】また、ラベルエリア301にはマクロモジ
ュールのラベルポインタも記憶される。これらのラベル
やポインタはプログラムモジュールで使われるものであ
り、グローバル変数として扱われる。一方、マクロモジ
ュールのプログラム自体や、マクロモジュールで使われ
るローカル変数はメモリ領域303に格納される。
【0024】メイン領域100は、オペレーテイングシ
ステムやコンパイラあるいはインタプリタ等を含むプロ
グラム領域である。本実施例の制御では、入出力デバイ
ス(センサやソレノイド)に対する入出力命令はユーザ
は直接は制御せずに、オペレーテイングシステムを介し
て行なうからである。
【0025】タイミングスケジューラ200は、各プロ
グラムモジュール間の実行順序を制御する。本実施例の
プログラムモジュールの実行制御では、1つのプログラ
ムモジュールだけがあるタイムスロツト内での実行を許
されるようになっている。換言すれば、複数のプログラ
ムモジュールが同時に実行されるようにはなっていない
。これは、複数のプログラムモジュールを同時に実行す
るようにすると、個々のプログラムモジュールの実際の
終了に要する時間が不定となり、例えば、同じプログラ
ムモジュールでも、並列実行される相手のプログラムモ
ジュール次第で、終了時間が変動する等の制御の確実さ
が失われるからである。そこで、本実施例の各プログラ
ムモジュールは、その実行に要する時間が所定の短い幅
に収まるようにプログラムされている。図1,図2の例
において、「有効噴射時間(TP)」と、「基本噴射時
間(TE2)」モジュール、「増量率(WGCT)」モ
ジュールと、「吸入空気流量(TE1)」モジュールと
、「加速補正(CAC)」モジュールとは高速処理を必
要とするために8ms毎に繰返される。また、「空気密
度補正(CBA&CA)」 モジュールは16ms毎に
、「ゾーン補正(CZ)」 モジュールは32ms毎に
行なわれる。変化の最も遅い水温はその温度を測定する
頻度は少なくてよいから、「水温補正(Cw)」 モジ
ュールは512ms毎に実行されるようになっている。
【0026】今、8msのプログラムモジュールと16
msのプログラムモジュールと32msのプログラムモ
ジュールが1つづつある場合の制御が実行される場合に
は、スケジューラプログラムは図8に示すような順序で
それらの3つのプログラムモジュール間で実行プログラ
ムモジュールを切り替える。
【0027】以上説明したように、本実施例によれば、
エンジン制御装置の制御全体が複数のプログラムモジュ
ールに分解され、制御全体の構造はプログラムモジュー
ル間のデータの依存関係として表わされている。そして
、2つ以上に共通に使われる変数はグローバル変数とし
て定義され、1つのプログラムモジュールだけで使われ
る変数はローカル変数として定義されているので、制御
プログラムの開発過程でよくあるチューニングで制御特
性を変更するときは、個々のプログラムモジュールをチ
ューニングするだけですむ。即ち、プログラムモジュー
ル間の依存関係はプログラマの知らないところで変更さ
れることはない。
【0028】しかも、プログラムモジュール間でデータ
の依存関係があるときは、上位のプログラムモジュール
と下位のプログラムモジュールの識別子には、共通項が
あるので、階層関係をたぐるのが容易である。
【0029】また、個々のプログラムモジュールは、複
数のシンボル化されたマクロ命令モジュールからなるの
で、その修正は容易で且つ確実である。
【0030】また、個々のマクロ命令モジュールは、1
つの機能単位にシンボル化されているので、その機能を
把握するのは容易である。
【0031】本発明はその主旨を逸脱しない範囲で種々
変形が可能である。
【0032】例えば、本発明はその対象をエンジン制御
に限定されない。
【0033】
【発明の効果】以上説明したように、本発明によれば、
エンジン制御装置の制御全体が複数のプログラムモジュ
ールに分解され、制御全体の構造はプログラムモジュー
ル間のデータの依存関係として表わされている。そして
、2つ以上に共通に使われる変数はグローバル変数とし
て定義され、1つのプログラムモジュールだけで使われ
る変数はローカル変数として定義されているので、制御
プログラムの開発過程でよくあるチューニングで制御特
性を変更するときは、個々のプログラムモジュールをチ
ューニングするだけですむ。即ち、プログラムモジュー
ル間の依存関係はプログラマの知らないところで変更さ
れることはない。従って、制御プログラムの全体構造を
見通しのよいものにし、プログラムの一部の修正があっ
てもそれが不測の制御機能上の変更をもたらすことのな
いような制御プログラムの開発方法が提供できた。
【0034】また、本発明の好ましい態様によれば、プ
ログラムモジュール間でデータの依存関係があるときは
、上位のプログラムモジュールと下位のプログラムモジ
ュールの識別子には、共通項があるので、階層関係をた
ぐるのが容易である。
【0035】また、本発明の好ましい態様によれば、個
々のプログラムモジュールは、複数のシンボル化された
マクロ命令モジュールからなるので、その修正は容易で
且つ確実である。
【0036】また、本発明の好ましい態様によれば、個
々のマクロ命令モジュールは、1つの機能単位にシンボ
ル化されているので、その機能を把握するのは容易であ
る。
【図面の簡単な説明】
【図1】本発明をエンジン制御に適用した場合における
プログラムモジュールの構造を示す図。
【図2】図1の一部を取出して詳細に説明した図。
【図3】,
【図4】,
【図5】,
【図6】実施例で使われるマクロモジュールの一例を示
す図。
【図7】実施例の制御装置内におけるプログラムとデー
タの関係を示す図。
【図8】実施例において、スケジューラがプログラムモ
ジュールをスケジューリングするタイミングを説明する
図。

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】1つの命令解釈実行ユニツトが複数のプロ
    グラムモジュールを解釈実行し、それらのプログラムモ
    ジュールの全体が機器の全体的な制御を行なう制御装置
    の前記プログラムモジュールを開発する開発方法であっ
    て、前記複数のプログラムモジュールに、それらのモジ
    ュールを識別するモジュール識別子を付し、前記複数の
    プログラムモジュール間の関係を、前記モジュール識別
    子と、それらのモジュールに入力される変数名と出力さ
    れる変数名とにより記述し、2つ以上のプログラムモジ
    ュールで共通に使われる変数はグローバル変数として定
    義し、1つのプログラムモジュールだけで使われる変数
    はローカル変数として定義し、制御装置の制御特性を変
    更するときは、個々のプログラムモジュールをチューニ
    ングすることを特徴とする制御プログラムの開発方法。
  2. 【請求項2】個々のプログラムモジュールは夫々に割り
    当てられた1つのタイムスロツトの時間幅内でその動作
    を終了するようにプログラム化され、前記命令解釈実行
    ユニツトは、個々のプログラムモジュールがそれに割り
    当てられた実行順序に従って、前記個々のプログラムモ
    ジュールを解釈実行するスケジューラプログラムを有す
    ることを特徴とする請求項第1項に記載の制御プログラ
    ムの開発方法。
  3. 【請求項3】1つのプログラムモジュールが1つの変数
    に係るデータを出力し、その変数のデータを他のプログ
    ラムモジュールが同一の変数名で入力することにより、
    これらのプログラムモジュール間に上下の階層関係が発
    生するときは、下位のプログラムモジュールのモジュー
    ル識別子は、上位のプログラムモジュールのモジュール
    識別子の一部を含むことを特徴とする請求項第1項に記
    載の制御プログラムの開発方法。
  4. 【請求項4】前記制御装置はエンジン制御コントローラ
    であることを特徴とする請求項第1項に記載の制御プロ
    グラムの開発方法。
  5. 【請求項5】個々のプログラムモジュールは、複数のシ
    ンボル化されたマクロ命令モジュールからなることを特
    徴とする請求項第1項に記載の制御プログラムの開発方
    法。
  6. 【請求項6】個々のマクロ命令モジュールは、1つの機
    能単位にシンボル化されていることを特徴とする請求項
    第1項に記載の制御プログラムの開発方法。
  7. 【請求項7】前記機能単位は、時間遅延機能、スイツチ
    機能、タイマ機能、フィルタ機能、四則演算機能、論理
    関数機能のいずれかであることを特徴とする請求項第6
    項に記載の制御プログラムの開発方法。
JP6585691A 1991-03-29 1991-03-29 制御プログラムの開発方法 Pending JPH04302026A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6585691A JPH04302026A (ja) 1991-03-29 1991-03-29 制御プログラムの開発方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6585691A JPH04302026A (ja) 1991-03-29 1991-03-29 制御プログラムの開発方法

Publications (1)

Publication Number Publication Date
JPH04302026A true JPH04302026A (ja) 1992-10-26

Family

ID=13299078

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6585691A Pending JPH04302026A (ja) 1991-03-29 1991-03-29 制御プログラムの開発方法

Country Status (1)

Country Link
JP (1) JPH04302026A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996019759A1 (de) * 1994-12-21 1996-06-27 Robert Bosch Gmbh Verfahren zur steuerung von technischen vorgängen

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996019759A1 (de) * 1994-12-21 1996-06-27 Robert Bosch Gmbh Verfahren zur steuerung von technischen vorgängen

Similar Documents

Publication Publication Date Title
Clarke et al. A language for compositional specification and verification of finite state hardware controllers
Camposano et al. Synthesizing circuits from behavioural descriptions
Henzinger et al. Giotto: A time-triggered language for embedded programming
Berry Preemption in concurrent systems
Gross et al. Compilation for a high-performance systolic array
Sifakis et al. Building models of real-time systems from application software
US7987075B2 (en) Apparatus and method to develop multi-core microcomputer-based systems
Forget et al. Verifying end-to-end real-time constraints on multi-periodic models
Hu et al. Codesign of architectures for automotive powertrain modules
Kramer et al. Compositional semantics of a real-time prototyping language
JPH04302026A (ja) 制御プログラムの開発方法
US5167025A (en) Programmable controller generating plural alternating clocks with each clock controlling different parts of instruction sequencing mechanism
Socci et al. Priority-based scheduling of mixed-critical jobs
Yokoyama An aspect-oriented development method for embedded control systems with time-triggered and event-triggered processing
Baufreton et al. Efficient fine-grain parallelism in shared memory for real-time avionics
Campos et al. The Verus language: representing time efficiently with BDDs
Luth et al. HW/SW cosynthesis using Statecharts and symbolic timing diagrams
Fischmeister et al. Non-blocking deterministic replacement of functionality, timing, and data-flow for hard real-time systems at runtime
Naderlinger et al. Simulating real-time software components based on logical execution time
Savoiu et al. design for synthesis, transform for simulation: Automatic transformation of threading structures in high-level system models
Colnaric State of the art review paper: advances in embedded hard real-time systems design
Camus et al. A verifiable architecture for multi-task, multi-rate synchronous software
Zhu The PLC Operating System Machine with Modes-A Multi-Priority Queue Schema
Cottet et al. Multi-Tasking Programming with a Rate-Monotonic Scheduling Based Upon a Visual Data Flow Language
CLARKE JR et al. A Language for Compositional Specification and