JP2006201841A - プログラム生成装置 - Google Patents

プログラム生成装置 Download PDF

Info

Publication number
JP2006201841A
JP2006201841A JP2005010088A JP2005010088A JP2006201841A JP 2006201841 A JP2006201841 A JP 2006201841A JP 2005010088 A JP2005010088 A JP 2005010088A JP 2005010088 A JP2005010088 A JP 2005010088A JP 2006201841 A JP2006201841 A JP 2006201841A
Authority
JP
Japan
Prior art keywords
model
program
definition
divided
division
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.)
Granted
Application number
JP2005010088A
Other languages
English (en)
Other versions
JP4141443B2 (ja
Inventor
Shinji Fujiwara
慎二 藤原
Hiroshi Matsui
博 松井
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2005010088A priority Critical patent/JP4141443B2/ja
Publication of JP2006201841A publication Critical patent/JP2006201841A/ja
Application granted granted Critical
Publication of JP4141443B2 publication Critical patent/JP4141443B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】 組み込み型マイコンに搭載可能なプログラムを生成することができるプログラム生成装置を得る。
【解決手段】 プログラムを自動生成するために作成されたモデル2を、演算周期毎に分割した分割モデル21をモデル分割手段11により生成し、この分割モデル21からプログラム生成手段12によりソースプログラム22にし、この各ソースプログラム22を重複メモリ削除手段13により重複メモリを削除した後、コンパイル手段14によりコンパイルし、さらにリンク手段15によりメモリ領域を割付けて、実行プログラムにし、各実行プログラムを予め作成された基幹プログラムにより呼び出して統合することにより、組込みマイコンで動作できるプログラム3を生成する。
【選択図】図1

Description

この発明は、プログラムを自動生成するために作成されたモデルに基づき、組み込み型マイコンに用いられるプログラムを自動生成するプログラム生成装置に関するものである。
近年、コンピュータシステムに搭載されているプログラムの仕様をモデル化し、そのモデルから自動的にプログラムを作成する自動生成装置が開発されてきた。モデルは、ブロック線図、状態遷移図などで記述され、最近では、オブジェクト指向プログラムを自動生成するオブジェクト指向モデルが注目されている。
このモデルから実行プログラムを生成するプログラム生成装置では、従来は、モデルからソースプログラムを作成し、これをコンパイルしてオブジェクトを作成し、このオブジェクトにメモリ領域を割付けてコンピュータ上で実行可能なファイルを作成していた。
特開2002−91762号公報(第4〜10頁、図1)
ところが、従来のプログラムの自動生成装置は、汎用のパーソナルコンピュータやワークステーション上で実行されるプログラム開発を狙ったものであり、例えば組み込み型マイコン上で動作するプログラムの開発に、そのまま適用することができないという問題があった。
また、最近では高級なマイコンを使用した車両制御装置において、モデルからダウンロード可能な実行プログラムを生成するものも市販されている。この車両制御装置において、実行プログラムを生成するオブジェクト指向プログラムでは、定数がRAM領域に定義されるようメモリ割り付けがなされるため、RAM領域の少ないマイコンへの応用が困難なことと、モデルの子プロセス内で使用されている定数と、別の子プロセスで使用される同一名の定数が、別の定数として扱われるため、例えば共通して各子プロセスにおいて用いられる定数のキャリブレーションをする際に、各子プロセス毎にそれぞれ設定する必要があった。
特許文献1には、モデルから自動生成されたプログラムの初期化処理を実行することによってメモリ領域に定数データが定義格納されるが、このとき、定数データの格納先アドレスに1対1に対応する変数記述などの識別記号を用いて、定数データ中のアドレス値を置き換え、このアドレス値が識別記号に変換された定数データに基づき、メモリ領域に依存しない定数データが予め定義されたソースプログラムを生成するようにして、少ないRAM領域しか持たない組み込み型マイコンへの搭載を可能にしたものが、記載されている。
特許文献1のものは、OSなどを持たないためにプログラムのスケジューリング機能を持たない組込みマイコンへの搭載の問題や、子プロセスに共通に使用される定数についての上述の問題を解決するものではなかった。
その上、動作確認済みの既存プログラムを所定の演算周期、実行順序で流用するためには、グローバル参照可能な変数を定義し、メモリを用いてデータの受け渡しを行うことが一般的であったが、生成されたソースプログラムとは別に構成する場合は、タイミングがずれてしまうことが問題となる。
この発明は、上述のような課題を解決するためになされたものであり、組み込み型マイコンに搭載可能なスケジューリングされたプログラムを生成することができるプログラム生成装置を得ることを目的にしている。
この発明に係わるプログラム生成装置においては、予め作成されたモデルから、このモデルの機能毎に分割された分割モデルを作成するモデル分割手段、このモデル分割手段により作成された各分割モデルに基づきそれぞれソースプログラムを生成するプログラム生成手段、このプログラム生成手段により生成された各ソースプログラムをそれぞれコンパイルしてオブジェクトを作成するコンパイル手段、及びこのコンパイル手段により作成された各オブジェクトにメモリ領域を割付けることによりそれぞれ実行プログラムを作成すると共に、予め作成された基幹プログラムから各実行プログラムを呼び出すことにより各実行プログラムを統合するリンク手段を備えたものである。
この発明は、以上説明したように、予め作成されたモデルから、このモデルの機能毎に分割された分割モデルを作成するモデル分割手段、このモデル分割手段により作成された各分割モデルに基づきそれぞれソースプログラムを生成するプログラム生成手段、このプログラム生成手段により生成された各ソースプログラムをそれぞれコンパイルしてオブジェクトを作成するコンパイル手段、及びこのコンパイル手段により作成された各オブジェクトにメモリ領域を割付けることによりそれぞれ実行プログラムを作成すると共に、予め作成された基幹プログラムから各実行プログラムを呼び出すことにより各実行プログラムを統合するリンク手段を備えたので、スケジューリング機能を持たない組込みマイコンにおいても動作可能なプログラムを生成することができる。
実施の形態1.
以下、本発明の実施の形態1について、図を用いて説明する。
図1は、この発明の実施の形態1によるプログラム生成装置を示す構成図である。
図1において、プログラム生成装置1には、プログラムを自動生成するためにプログラムの仕様をモデル化して別途作成されたモデル2が入力され、組込みマイコンで実行可能なファイルにした実行プログラム3を出力する。
プログラム生成装置1は、入力されたモデル2を各タスク処理毎に分割するモデル分割手段11と、このモデル分割手段11により分割されたモデル21が入力され、この分割された各モデル21からソースプログラム22を作成するプログラム生成手段12と、このプログラム生成手段12により作成された各ソースプログラム22を基にして、モデル内で定義され、分割モデルで共通に使用される定数について、この定数のメモリ領域への重複定義を削除したソースプログラム23を作成する重複メモリ削除手段13と、この重複メモリ削除手段13により定数の重複定義が削除された各ソースプログラム23をコンパイルしてオブジェクト24を生成するコンパイル手段14と、このコンパイル手段14により生成された各オブジェクト24にメモリ領域をリンクして、実行プログラムを作成すると共に、予め作成された基幹プログラムから、この作成された実行プログラムを呼び出すことにより各実行プログラムを統合するリンク手段15とにより構成されている。
OSを持たない組込みマイコンでは、スケジューリングできないため、リンク手段15によるプログラムの統合は、予め作成された基幹プログラムから各プログラムを読出すことにより、スケジューリングして、実行プログラムとする。
次に、モデル2及びその分割されたモデル21について説明する。
図2は、この発明の実施の形態1によるプログラム生成装置で用いられるプログラムを自動生成するために作成されたモデルを示す図である。
図2において、演算モデルM000は、プログラムを自動生成するために記述された演算モデルの全体を表している。定数M010は、演算モデルM000内で使用されている定数A、定数B、定数C、定数Dで、これらを間接的に参照させ、プログラム作成後の定数設定を容易にさせるために定義される。このため、演算モデルM000内で使用される定数を、プログラム作成後に再設定しなければ、このような定義は不要になる。
入力処理ブロックM200は、各種入力信号処理をまとめて記述され、入力処理ブロックM200で演算された結果を次の演算処理AブロックM210に出力する。演算処理AブロックM210は、入力処理ブロックM200の出力「イ」、「ロ」を入力とし、所定の演算を行い、演算結果を次の演算処理である出力処理ブロックM220に出力する。出力処理ブロックM220は、演算処理AブロックM210の出力信号「ハ」を入力とし、出力演算処理を行う。
演算処理BブロックM230は、入力処理ブロックM200、演算処理AブロックM210、出力処理ブロックM220と同じ周期で実行される。この演算処理BブロックM230は、入力処理ブロックM200、演算処理AブロックM210、出力処理ブロックM220で記述された演算と同じ周期で実行されるが、生成されたプログラムの実行順序については、プログラム生成装置による。
演算処理CブロックM300は、入力処理ブロックM200、演算処理AブロックM210、出力処理ブロックM220や、演算処理BブロックM230とは別の周期で実行される。この演算処理CブロックM300の演算周期を、入力処理ブロックM200、演算処理AブロックM210、出力処理ブロックM220や、演算処理BブロックM230のn倍に設定したり、全く別の独立した演算周期で設定する記述や特定の条件が成立した時にのみ実行するような設定が可能である。
変数M020は、演算モデルM000内で使用される変数A、変数B、変数Cで、入力処理ブロックM200、演算処理AブロックM210、出力処理ブロックM220、演算処理BブロックM230や、演算処理CブロックM300内で定義することも、それらの子プロセス内に定義することも可能であるが、ここでは、演算モデルM000の最上位階層で定義する。
次に、図2の動作について説明する。
演算モデルM000は、演算全体を示しており、演算周期などの情報が定義される。入力信号「イ」および「ロ」を入力処理ブロックM200で正規化し、演算処理AブロックM210に出力する。演算処理AブロックM210内では、それら入力信号「イ」および「ロ」を用いて、制御アルゴリズムを四則演算等のブロックを用いて記述し、演算結果を出力信号「ハ」として出力処理ブロックM220に出力する。出力処理ブロックM220は、図示しないポート出力などの出力器や表示器あるいは通信器などを用いて指示される。
また、演算処理BブロックM230は、入力処理ブロックM200、演算処理AブロックM210、出力処理ブロックM220と同じ制御周期で実行される制御アルゴリズムや入出力処理が記述されている。
演算処理CブロックM300は、入力処理ブロックM200、演算処理AブロックM210、出力処理ブロックM220や演算処理BブロックM230とは別の演算周期で実行される制御アルゴリズムや入出力処理が記述されている。
上記のようなモデルを基にプログラムを生成する方法を以下に説明する。
従来のプログラム生成装置により生成されるプログラムは、パーソナルコンピュータやワークステーション用プログラムの開発を狙っており、オペレーティングシステム上で動作することを前提にプログラムが生成される。また、オペレーティングシステムにおいても固有のスケジュール管理を有するため、プログラム生成装置が対応していないオペレーティングシステムやオペレーティングシステムを搭載しないプログラム開発において自動生成プログラムを用いることは困難であった。
このため、この発明では、モデルを分割することにより、組込み型マイコンに搭載されるプログラムを生成するようにしたものである。
図3は、図2のモデルを分割した分割モデルAを示す図である。
図3では、演算周期が同一のブロックである、入力処理ブロックM200と、演算処理AブロックM210と、出力処理ブロックM220と、演算処理BブロックM230が含まれている。
図4は、図2のモデルを分割した分割モデルBを示す図である。
図4では、演算周期が図3とは異なる演算処理CブロックM300が含まれ、定数M010及び変数M020は図3と同じである。
図3の分割モデルAと、図4の分割モデルBは、演算周期が同一のブロックのみでまとめた分割モデルとして、それぞれ編集したもので、独立したプログラムが生成できるように工夫されている。
図5は、図3の分割モデルAのプログラム化を示す図である。
図5は、分割モデルAを用いて、プログラム生成装置1により生成したもので、生成物は、分割モデルAの演算モデルをプログラム化(分割モデルA*SA000)したものと、分割モデルAの定数・変数定義部分をプログラム化(変数定義*SA100)したものとの大きく2つの構成で生成される。さらに変数定義*SA100は、シンボル定義部分SA110と設定値・初期値部分SA120とで構成される。
図6は、図4の分割モデルBのプログラム化を示す図である。
図6は、分割モデルBを用いた場合で、図5で説明した内容と同様である。
図7は、図5の変数定義A*を示す図である。
図7は、変数定義*の構成を詳細に説明したもので、シンボル定義部分SA110は、さらに定数部分SA111と、変数部分SA112とで構成される。また、設定値・初期値部分SA120は、さらに定数部分SA121と、変数部分SA122とで構成され、それらはお互いに同じ構成の配置で定義される。
プログラム生成装置1により生成されたプログラムは、定数であっても変数として定義し、設定値の代入が容易にできるよう変数と設定値として定義され、定数・変数を同一構成の構造体でそれぞれ生成し、生成されたプログラム内では、それら変数・定数を使用するプロセスが実行される直前、あるいはプログラム全体の初期設定時に、変数として定義された定数あるいは変数に設定値・初期値を代入する方法をとる。
図8は、図5の変数定義A*のシンボル情報定義部を示す図である。
図9は、図5の変数定義A*の設定値・初期値定義部を示す図である。
図10は、図6の変数定義B*のシンボル情報定義部を示す図である。
図11は、図6の変数定義B*の設定値・初期値定義部を示す図である。
分割モデルA、Bは、それぞれ独立したプログラムとして生成されるため、分割モデルが複数存在する場合は、図8の変数定義部分の内容と、図10の変数定義部分の内容が、また、図9の変数定義部分の内容と、図11での変数定義部分の内容が、それぞれ重複するため、これらプログラム化された分割モデルA*と分割モデルB*をそのまま統合させると、コンパイル時にシンボル情報の重複定義エラーとなる。
次に、図12により、プログラム化された分割モデルA、分割モデルBの統合方法について説明する。
図12は、図5の分割モデルAを基にプログラム化したものと、図6の分割モデルBを基にプログラム化したものとの統合を示す説明図である。
図12において、分割モデルA*’SA010は、分割モデルAをプログラム化した分割モデルA*を基に変数定義参照部分を変更したものである。分割モデルB*’SB010は、分割モデルBをプログラム化した分割モデルB*を基に変数定義参照部分を変更したものである。
なお、SA100、SA110、SA120、SB100、SB110、SB120、SB111、SB112、SB121、SB122は図5〜図7に示されるものと同一のものである。
モデル統合変数定義ファイルSC100は、モデル統合変数定義のシンボル情報SC110及びモデル統合変数定義の設定値・初期値SC120を有している。
次に、図12の動作について説明する。
まず分割モデルA*’SA010は、分割モデルA*の変数定義参照部分を、変数定義A*SA100からモデル統合変数定義SC100を参照するよう変更し、分割モデルB*’SB010も同様に分割モデルB*の変数定義参照部分を、変数定義B*SB100からモデル統合変数定義SC100を参照するよう変更しておく。
次に、統合モデル変数定義ファイルSC100を作成する。統合モデル変数定義ファイルSC100は、シンボル情報定義部分SC110と、設定値・初期値定義部分SC120で構成され、シンボル情報定義部分SC110は、分割モデルAを基にプログラム化された変数定義A*SA100のシンボル情報定義部分SA110と、分割モデルBを基にプログラム化された変数定義B*SB100のシンボル情報定義部分SB110の定数定義部分から構成される。
分割モデルの変数定義部分は、全て同様にプログラム化されるため、変数定義部分は、何れかの分割モデルのプログラム化された変数定義部分を用いるだけでよい。
同様に設定値・初期値定義部分SC120も、分割モデルAを基にプログラム化された変数定義A*SA100の設定値・初期値定義部分SA120と、分割モデルBを基にプログラム化された変数定義B*SB100の設定値・初期値定義部分SB120の定数定義部分から構成される。
上記では、モデル統合変数定義ファイルSC100のシンボル情報定義部分SC110に、分割モデルAのプログラム化されたシンボル情報定義部分SA110を用いたが、分割モデルBのプログラム化されたシンボル情報定義部分SB110と分割モデルAを基にプログラム化されたシンボル情報定義部分SA110の定数部分で構成されても同様の効果を奏する。
同様に、モデル統合変数定義ファイルSC100の設定値・初期値定義部分SC120に、分割モデルAのプログラム化された設定値・初期値定義部分SA120を用いたが、分割モデルBのプログラム化された設定値・初期値定義部分SB120と分割モデルAを基にプログラム化された初期値・設定値定義部分SA120の定数部分で構成されても同様の効果を奏する。
図13は、図12のモデル統合変数定義内のシンボル情報定義部を示す図である。
図14は、図12のモデル統合変数定義内の設定値・初期値定義部を示す図である。
図13、図14は、上述のモデル統合変数定義ファイルの具体例を示す。
追加の記述部分の分割モデルを基にプログラム化された変数定義部分の定数定義部分を示す。このままでも分割モデルの統合は行えるが、図13、図14中に記載の重複部分の定数Cが二重定義されてしまう。これは上段に記述されている定数Cは、分割モデルAを基にプログラム化された分割モデルA*および分割モデルA*’で用いられ、下段に記述されている定数Cは、分割モデルBを基にプログラム化された分割モデルB*および分割モデルB*’で用いられることを意味している。定数Cは、もともと分割前は1つの定数であり、モデルを分割した際に別の定数Cとして定義されたものである。
プログラム生成装置により生成されたプログラムでは、パーソナルコンピュータやワークステーション用プログラム開発を狙っており、定数であっても変数として定義される。また、それらはモデル内で共通に扱う変数として定義されるのではなく、オブジェクト指向プログラムを自動生成するオブジェクト指向モデルにおいては同一名の定数であっても別の定数としてプログラム化される。
ところが、各ブロック内で共通で使用し、調整したい定数については、各モジュール毎に調整設定する必要がある。
これを行うものが、図1の重複メモリ削除手段13である。
図15は、図5の分割モデルAを基にプログラム化したものと、図6の分割モデルBを基にプログラム化したものとの統合を示す説明図である。
図16は、図15のモデル統合変数定義内のシンボル情報定義部を示す図である。
図17は、図15のモデル統合変数定義内の設定値・初期値定義部を示す図である。
図15で、分割モデルA*”SA020は、分割モデルA*’SA010を基に変数定義参照部分を変更し、更に内部で用いる定数において共通で用いるものは定数名を分割モデルAおよびBを基にプログラム化された分割モデルA*’、B*’で共通となるよう変更されている。分割モデルB*”SB020は、分割モデルB*を基に変数定義参照部分を変更し、更に内部で用いる定数において共通で用いるものは定数名を分割モデルAおよびBを基にプログラム化されたものである。
モデル統合変数定義ファイル*SC200は、モデル統合変数定義のシンボル情報SC210及びモデル統合変数定義の設定値・初期値SC220を有している。
次に、重複メモリ削除手段13の動作を説明する図15について説明する。
まず、分割モデルA*”SA020は、分割モデルA*’SA010内で用いる定数において共通で用いるものは、定数名を分割モデルAおよびBを基にプログラム化された分割モデルA*’SA010、分割モデルB*’SB010で共通となるよう変更したものである。同様に分割モデルB*”SB020は、分割モデルB*’SB010内で用いる定数において共通で用いるものは定数名を分割モデルAおよびBを基にプログラム化された分割モデルA*’SA010、分割モデルB*’SB010で共通となるよう変更したものである。
次に、統合モデル変数定義ファイル*SC200を作成する。統合モデル変数定義ファイル*SC200は、シンボル情報定義部分SC210と、設定値・初期値定義部分SC220で構成され、シンボル情報定義部分SC210は、分割モデルAを基にプログラム化された変数定義A*SA100のシンボル情報定義部分SA110と分割モデルBを基にプログラム化された変数定義B*SB100のシンボル情報定義部分SB110の定数定義部分で共通で用いられる定数の重複するシンボル情報定義を削除し、上記において変更された定数名を追加したもので構成される。
分割モデルの変数定義部分は、全て同様にプログラム化されるため、変数定義部分は、何れかの分割モデルのプログラム化された変数定義部分を用いるだけでよい。
同様に、設定値・初期値定義部分も分割モデルAを基にプログラム化された変数定義A*SA100の設定値・初期値定義部分SA120と分割モデルBを基にプログラム化された変数定義B*SB100の設定値・初期値定義部分SB120の定数定義部分で共通で用いられる定数の重複する設定値・初期値定義を削除し、上記において変更された定数名を追加したもので構成される。
実施の形態1によれば、以上のように構成することで、分割モデルで共通に用いられる定数について重複定義がなくなるため、モジュール毎に定数調整をする必要がなくなる。
また、ROM使用量を削減できるなどの効果も奏する。
このため、RAMの少ないマイコンにおいても動作可能なプログラムが生成可能となる。
また、複数の子プロセスにおいて同じ設定値として扱うことを目的とした定数の調整(キャリブレーション)が容易になる。モデルを基に生成されたソースプログラムを基幹プログラムやオペレーティングシステムなどに容易に組み込むことができる。
実施の形態2.
以下に、本発明の実施の形態2について、図を用いて説明する。
図18は、この発明の実施の形態2によるプログラム生成装置で用いられるプログラムを自動生成するために作成されたモデルを示す図である。
図18は、本発明のプログラム生成装置において用いられるプログラムを自動生成するために作成されたモデルで、すでに実績のあるプログラム(ここでは正規化ブロック)を、自動生成することを目的として、モデルに融合させる場合の一記述例である。
図18において、入力処理ブロック300は、図2に記載のプログラムを自動生成することを目的として作成されたモデル内に記述されている。入力信号イ301は、図示しないマイコンなどの入力ポートの読み取り処理実施後の値あるいは通信などで受信した値などである。正規化ブロック302は、入力信号イを入力し、正規化処理を行い、演算結果をイとして出力する。
入力信号ロ311は、図示しないマイコンなどの入力ポートの読み取り処理実施後の値あるいは通信などで受信した値などである。正規化ブロック312は、入力信号ロを入力し、正規化処理を行い、演算結果をロとして出力する。
このとき、従来から用いられている演算プログラムを、例えば正規化ブロックに用いたい場合、そのブロックに関数として設定し、この関数からプログラム生成するようにする。
図19は、図18のモデルをプログラム化する時の流れを示すフローチャートである。
次に、図18で説明したブロックにより、プログラム生成装置を用いて生成されたプログラム作成の動作について、図19を用いて説明する。
入力処理ブロック300は、まずステップF301で、入力信号イの処理をするプログラムが生成される。次に、ステップF302で、正規化処理を行う関数には、入力信号イが引数として与えられ、戻り値として「イ」が得られる。ここで正規化処理を行う関数が、従来から用いられているキー入力により生成されたプログラムを読み出すよう、本プログラムに関連付けを行う。
また、この関数が読み出すプログラムは、別のモデルで構成され、プログラム生成装置により生成されたプログラムであっても同様の効果が得られる。
同様にステップF311で、入力信号ロの処理をするプログラムが生成され、ステップF312で正規化処理を行う関数に入力信号ロを引数として与え、戻り値として「ロ」を得る。
実施の形態2によれば、上記のように関数を用いて記述することにより、動作検証済みの既存プログラムの再利用や、プログラム生成コードの削減などが図れる。
この発明の実施の形態1によるプログラム生成装置を示す構成図である。 この発明の実施の形態1によるプログラム生成装置で用いられるプログラムを自動生成するために作成されたモデルを示す図である。 図2のモデルを分割した分割モデルAを示す図である。 図2のモデルを分割した分割モデルBを示す図である。 図3の分割モデルAのプログラム化を示す図である。 図4の分割モデルBのプログラム化を示す図である。 図5の変数定義A*を示す図である。 図5の変数定義A*のシンボル情報定義部を示す図である。 図5の変数定義A*の設定値・初期値定義部を示す図である。 図6の変数定義B*のシンボル情報定義部を示す図である。 図6の変数定義B*の設定値・初期値定義部を示す図である。 図5の分割モデルAを基にプログラム化したものと、図6の分割モデルBを基にプログラム化したものとの統合を示す説明図である。 図12のモデル統合変数定義内のシンボル情報定義部を示す図である。 図12のモデル統合変数定義内の設定値・初期値定義部を示す図である。 図5の分割モデルAを基にプログラム化したものと、図6の分割モデルBを基にプログラム化したものとの統合を示す説明図である。 図15のモデル統合変数定義内のシンボル情報定義部を示す図である。 図15のモデル統合変数定義内の設定値・初期値定義部を示す図である。 この発明の実施の形態2によるプログラム生成装置で用いられるプログラムを自動生成するために作成されたモデルを示す図である。 図18のモデルをプログラム化する時の流れを示すフローチャートである。
符号の説明
1 プログラム生成装置
2 モデル
3 実行プログラム
11 モデル分割手段
12 プログラム生成手段
13 重複メモリ削除手段
14 コンパイル手段
15 リンク手段
21 分割されたモデル
22 ソースプログラム
23 重複メモリの削除されたソースプログラム
24 オブジェクト
M000 モデル
M010 定数
M020 変数
M200 入力処理ブロック
M210 演算処理Aブロック
M220 出力処理ブロック
M230 演算処理Bブロック
M300 演算処理Cブロック

Claims (5)

  1. 予め作成されたモデルから、このモデルの機能毎に分割された分割モデルを作成するモデル分割手段、このモデル分割手段により作成された各分割モデルに基づきそれぞれソースプログラムを生成するプログラム生成手段、このプログラム生成手段により生成された各ソースプログラムをそれぞれコンパイルしてオブジェクトを作成するコンパイル手段、及びこのコンパイル手段により作成された各オブジェクトにメモリ領域を割付けることによりそれぞれ実行プログラムを作成すると共に、予め作成された基幹プログラムから上記各実行プログラムを呼び出すことにより上記各実行プログラムを統合するリンク手段を備えたことを特徴とするプログラム生成装置。
  2. 上記モデル分割手段は、上記モデル内の演算処理ブロックの演算周期に基づき上記モデルを分割することを特徴とする請求項1記載のプログラム生成装置。
  3. 上記モデル内で定義される変数は、一箇所にまとめて記述されていることにより、上記各分割モデルで同一の変数定義が行われることを特徴とする請求項1または請求項2記載のプログラム生成装置。
  4. 上記モデル内で定義され、上記分割モデルで共通に使用される定数について、上記プログラム生成手段により生成された各ソースプログラムを基に、上記定数のメモリ領域への重複定義を削除したソースプログラムを作成する重複メモリ削除手段を備え、上記コンパイル手段は、上記重複メモリ削除手段により上記定数のメモリ領域への重複定義が削除された各ソースプログラムをコンパイルすることを特徴とする請求項1〜請求項3のいずれかに記載のプログラム生成装置。
  5. 上記モデルには、既成のプログラムを結合する関数が設定されていることを特徴とする請求項1〜請求項4のいずれかに記載のプログラム生成装置。
JP2005010088A 2005-01-18 2005-01-18 プログラム生成装置 Expired - Fee Related JP4141443B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005010088A JP4141443B2 (ja) 2005-01-18 2005-01-18 プログラム生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005010088A JP4141443B2 (ja) 2005-01-18 2005-01-18 プログラム生成装置

Publications (2)

Publication Number Publication Date
JP2006201841A true JP2006201841A (ja) 2006-08-03
JP4141443B2 JP4141443B2 (ja) 2008-08-27

Family

ID=36959807

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005010088A Expired - Fee Related JP4141443B2 (ja) 2005-01-18 2005-01-18 プログラム生成装置

Country Status (1)

Country Link
JP (1) JP4141443B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008269581A (ja) * 2007-04-20 2008-11-06 Hitachi Ltd コントローラの制御アルゴリズム構成方法およびこれを用いたコントローラ
JP2009289162A (ja) * 2008-05-30 2009-12-10 Toshiba Mitsubishi-Electric Industrial System Corp 制御プログラム及び試験方案自動作成装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008269581A (ja) * 2007-04-20 2008-11-06 Hitachi Ltd コントローラの制御アルゴリズム構成方法およびこれを用いたコントローラ
JP2009289162A (ja) * 2008-05-30 2009-12-10 Toshiba Mitsubishi-Electric Industrial System Corp 制御プログラム及び試験方案自動作成装置

Also Published As

Publication number Publication date
JP4141443B2 (ja) 2008-08-27

Similar Documents

Publication Publication Date Title
CN103814333B (zh) 用于对可编程控制装置编程和配置的方法和设备
KR101154730B1 (ko) 컴퓨터 프로그램의 구성 방법
KR101213275B1 (ko) 무선 장치에서 사용할모놀리식(monolithic)이미지를 제공하기 위한시스템 및 방법
EP3647941B1 (en) Engineering apparatus, control method of engineering apparatus, and program
US8464236B2 (en) Data consistency in data processing systems
CN108874438A (zh) 补丁生成方法、装置、电子设备及计算机程序产品
US10445074B2 (en) Method of optimally compiling PLC command
CN103645888A (zh) 一种自动构建操作系统的系统及方法
JP4141443B2 (ja) プログラム生成装置
CN117744548A (zh) 一种芯片验证方法、装置和存储介质
CN102289367A (zh) 根据模式的命令行外壳命令生成
US11221828B2 (en) Support device and support program
TWI442316B (zh) 可編程邏輯控制器程式編輯系統及方法
Kumar Comparison of instruction scheduling and register allocation for Mips And Hpl-Pd architecture for exploitation of instruction level parallelism
JP6455096B2 (ja) コントロールシステム、その支援装置、プログラマブルコントロール装置
US20020073133A1 (en) Register allocation method and software development method for various execution environments and LSI for executing developed software
Beuche et al. Managing flexibility: Modeling binding-times in simulink
US8826267B2 (en) Association of object elements to operational modes
US9841975B2 (en) Method and apparatus for performing register allocation
Al-Refai et al. Using models to dynamically refactor runtime code
JP7208441B1 (ja) Fa制御テスト支援プログラム、fa制御テスト支援装置、fa制御テスト支援方法及びfa制御テスト支援システム
US20080127069A1 (en) Reusable class library for multi-threaded application
Lanoe et al. A modeling and code generation framework for critical embedded systems design: From Simulink down to VHDL and Ada/C code
JP2009098963A (ja) モジュール自動生成システム
JP2004288076A (ja) ネイティブライブラリへのアクセス方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070904

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080125

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080328

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080502

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080527

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: 20080610

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120620

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130620

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees