JP2005222221A - 組込コントローラ開発ツール、組込コントローラ、及び組込コントローラ開発プロセス - Google Patents

組込コントローラ開発ツール、組込コントローラ、及び組込コントローラ開発プロセス Download PDF

Info

Publication number
JP2005222221A
JP2005222221A JP2004027999A JP2004027999A JP2005222221A JP 2005222221 A JP2005222221 A JP 2005222221A JP 2004027999 A JP2004027999 A JP 2004027999A JP 2004027999 A JP2004027999 A JP 2004027999A JP 2005222221 A JP2005222221 A JP 2005222221A
Authority
JP
Japan
Prior art keywords
embedded controller
block
development tool
development
execution order
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
JP2004027999A
Other languages
English (en)
Inventor
Taizo Miyazaki
泰三 宮崎
Kentaro Yoshimura
健太郎 吉村
Takanori Yokoyama
孝典 横山
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004027999A priority Critical patent/JP2005222221A/ja
Publication of JP2005222221A publication Critical patent/JP2005222221A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • General Factory Administration (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

【課題】 開発期間や開発コストを低減する組込コントローラ開発ツール、組込コントローラ、及び組込コントローラ開発プロセスを提供する。
【解決手段】 実行順序抽出ツール11はブロック線図12aおよびその下位構造であるブロック線図12bを読み込み、ソフトウェア統合化手段18が認識できるコードを出力する。ブロック名は、ブロックを一意的に示す「語幹」と本発明による開発ツールの動作を既定する「識別子」により構成される。語幹と識別子とは‘_’(アンダーバー)により結合される。識別子「box」をブロック名に持つブロックは下位構造を有することを示すため、実行順序抽出ツール11は下位構造を示すブロック線図12bも再帰的に検索する。識別子「calc」をブロック名に持つブロックはソフトウェア部品に対応するため、このブロックが下位構造を有していたとしてもブロックの検索を打ち切る。
【選択図】 図1

Description

本発明は、時間的制約条件を有する組込システムのプログラムを開発するための組込コントローラ開発ツールと、その組込コントローラ開発ツールを用いる組込コントローラ及び組込コントローラ開発プロセスとに関する。
近年、GUI(グラフィカル・ユーザ・インタフェース)を用いたソフトウェア開発手段が広く行なわれるようになっている。一般的に、コンピュータは逐次処理を行なうため、GUIから開発言語に変換するには、GUIで用いられる図面情報から実行順序を抽出し、処理を並べなおす手段が必要となってくる。例えば数値解析の分野では、解析対象の構成毎に計算順序が変化するため、ルールベースを用いて実行順序を抽出する方法が知られている(例えば特許文献1参照)。
また、互いにソフトウェア同士が複雑な依存関係を有する大規模ソフトウェア開発の分野では、ソースファイルの依存情報に基づいてソフトウェア統合作業の順序を決定する方法が知られている(例えば特許文献2参照)。
さらに、組み込みコントローラ開発ツールにおいては、制御系ブロック線図よりそのブロック線図の実行順序を画面上に表示するものが知られている(例えば非特許文献1参照)。
特開平7−311762号公報 特開2000−231479号公報 The MathWorks Inc., Simulink Model-Based and System-Based Design Version 5,(July 2002)
ところで、上記従来技術にあっては、いずれも開発対象の全情報を取得することができる統合開発環境を想定したものである。組み込みソフトでは、開発対象の性質が多岐にわたるため、各開発部分に別の開発ツールを用いて、それらを組み合わせて用いる場合が多い。例えば、制御記述部分はブロック線図作成ツール、状態判定部分は状態遷移記述手段、また、ハード依存部分はシステム記述言語という使い分けが行われる。これら全てに対応できる統合開発環境を用いて開発することも出来るが、一般的に大きな開発環境は導入費用、メンテナンス費用がかかり、特に多人数で開発を行なう場合コスト増となる。
本発明は、上述した事情に鑑みてなされるもので、単機能であるものの安価で速度や信頼性に優れる開発ツールを組み合わせた組込コントローラ開発プロセスを対象とし、その開発プロセスにおいて、GUI記述から実行順序情報を取得するツールを提供することを課題とする。
上記課題を解決するためなされた請求項1記載の本発明の組込コントローラ開発ツールは、時間的制約条件を有する組込システムのプログラムを開発するための組込コントローラ開発ツールであって、複数個の演算処理ブロック間におけるデータの流れを示した有向グラフを入力とし、前記演算処理ブロックにつけられた付加情報に基づいて対象とする前記演算処理ブロックを選択する演算処理ブロック選択手段を有し、該演算処理ブロック選択手段により選択された前記演算処理ブロックを対象として該演算処理ブロックの実行順序情報を出力することを特徴としている。このような特徴を有する本発明によれば、アプリケーションソフトウェアをソフトウェア部品の集まりとして表す際、その実行順序を有向グラフ表記により容易に得ることができるようになるため、プラットフォームソフトウェア上にアプリケーションソフトウェアを実装する手順が容易になるという効果がある。
請求項2記載の本発明の組込コントローラ開発ツールは、請求項1に記載の組込コントローラ開発ツールにおいて、前記付加情報は名前に付加された識別子であることを特徴としている。このような特徴を有する本発明によれば、実行順序の抽出対象となるブロックを有向グラフの付加情報、たとえば命名規則から判断することができるため、実際には製品に組み込まないシミュレーション用のブロック、たとえば模擬入力を発生するブロックが記載されている有向グラフでも実行順序抽出のために用いることができるようになる。したがって、組込ソフト本体をあらわす有向グラフ表記と、シミュレーション用の有向グラフ表記とを作成する必要がなく、開発期間が短くなるという効果がある。
請求項3記載の本発明の組込コントローラ開発ツールは、請求項1に記載の組込コントローラ開発ツールにおいて、前記有向グラフはブロック線図であることを特徴としている。このような特徴を有する本発明によれば、自動制御で事実上の標準表記方法となっているブロック線図を用いてソフトウェア部品の実行順序抽出を行うことができるようになるため、特に制御用組込機器の開発において、これまでの設計資産を利用することができ、開発期間の短縮やバグの作りこみを少なくする上で好適である。
請求項4記載の本発明の組込コントローラ開発ツールは、請求項3に記載の組込コントローラ開発ツールにおいて、前記ブロック線図は階層的に記述されていることを特徴としている。このような特徴を有する本発明によれば、階層表記されたブロック線図であっても命名規則などから構造を推測できるため、階層表記されたブロック線図からでも実行順序の抽出が可能であるという効果がある。
請求項5記載の本発明の組込コントローラ開発ツールは、請求項1に記載の組込コントローラ開発ツールにおいて、前記有向グラフを閉路なし有向グラフに変換する閉路除去手段を有することを特徴としている。閉路除去手段の作用効果は、発明を実施するための最良の形態の欄において、シリアライズ処理の中で説明する。
請求項6記載の本発明の組込コントローラ開発ツールは、請求項1に記載の組込コントローラ開発ツールにおいて、前記実行順序情報は対象とする組込コントローラの開発言語で出力されることを特徴としている。このような特徴を有する本発明によれば、実行順序情報は開発言語のコンパイラに可読な形式で出力されるため、そのまま実機に組み込めるという効果がある。
上記課題を解決するためなされた請求項7記載の本発明の組込コントローラは、請求項1ないし請求項6いずれか記載の組込コントローラ開発ツールを用いて開発されることを特徴としている。このような特徴を有する本発明によれば、開発の過程で実行順序抽出工程が短いため、開発期間や開発コストが低減できるという効果がある。
請求項8記載の本発明の組込コントローラは、請求項7に記載の組込コントローラにおいて、輸送機器に用いることを特徴としている。このような特徴を有する本発明によれば、特に開発期間や開発コストに関しての要求を高いレベルで両立させる必要がある自動車などの輸送機器に好適である。
上記課題を解決するためなされた請求項9記載の本発明の組込コントローラ開発プロセスは、請求項1ないし請求項6いずれか記載の組込コントローラ開発ツールを用いることを特徴としている。このような特徴を有する本発明によれば、実行順序抽出を自動化することにより開発期間や開発コストが低減できるという効果がある。
本発明によれば、開発期間や開発コストを低減することができるという効果を奏する。
以下、図面を参照しながら説明する。
図1に本発明による組込コントローラ開発ツール、組込コントローラのソフトウェア、および組込コントローラ開発プロセスの全体図を示す。なお、本発明で対象としている組込コントローラは、一定時間ごとにタスクを実行する周期タスクを有するものを想定している。
図1において、引用符号11は実行順序抽出ツールを示す。これは組込コントローラ開発ツールの一つであり、本発明の対象である。また、引用符号12a、12bは実行順序抽出ツール11に入力されるブロック線図を示す。なお、ブロック線図12bはブロック線図12aの下位構造であり、階層的に記述される。また、ブロック線図12aは「Top1_box」、ブロック線図12bは「A_box」と命名される。命名規則の一例については後述する。
引用符号13a、13b、13cはソフトウェア部品作成手段を示し、これらはブロック線図、実験データ、シミュレーション結果、開発言語による直接コーディングなどによりソフトウェアの一部分を作成する。なお、上記ソフトウェア部品とは、再利用しやすいように外部プログラムとの依存性を少なくしてソフトウェアの一部分を部品化したものである。
引用符号14はソースコード集合体を示し、これは後述の組込コントローラ19に組み込まれるソフトウェアのソースコード、定義ファイル、変数設定データファイル、メイクファイルなどを含む。ソースコード集合体14中、引用符号15で示される部分はタスク振り分け手段を示し、これは周期タスクを実現するタイマ割込みや外部割込みなどのイベントに基づきアプリケーションソフトウェア16を実行する。アプリケーションソフトウェア16は制御対象に依存する部分であり、通常制御対象に詳しい担当者がこの部分の作成を行なう。この部分、すなわちアプリケーションソフトウェア16は製品の改良などにより変更が多い部分であるため、前記のようにソフトウェア部品を組み合わせてソフトウェアを作成することが有効である。本発明ではこのようにアプリケーションソフトウェア16をソフトウェア部品の組み合わせとして実現する。また、アプリケーションソフトウェア16が図1においては複数層(ここでは4並列)に表現されているが、これはタスク振り分け手段15によって振り分けられる処理が複数個あることを表したものである。例えば、タイマ割込み、センサ信号割り込み、A/D終了割込み、ソフトウェア割込みなどにより、各タスクは起動される。本発明による実行順序抽出ツール11は、同一要因により起動されるタスク上で各ソフトウェア部品の順序関係を決定する。
アプリケーションソフトウェア16において、「_calc」で終わる名前が付けられているものはソフトウェア部品である。図1において、ソフトウェア部品A1_calc、A2_calc、A3_calc、D_calcはソフトウェア部品作成手段13aにより作成される。また、ソフトウェア部品B_calcはソフトウェア部品作成手段13bにより作成される。また、ソフトウェア部品C_calcはソフトウェア部品作成手段13cにより作成される。また、ソフトウェア部品E_calcはソフトウェア部品作成手段13dにより作成される。
一方、「_box.h」で終わる名前が付けられているヘッダファイル(アプリケーションソフトウェア16における「A_box」がこれに相当する)は、実行順序抽出ツール11により作成された実行順序定義ファイルである。実行順序定義ファイルの作成方法の一例については後述する。
ソースコード集合体14中、引用符号17で示される部分はプラットフォームソフトウェアを示し、これはOS、通信、入出力など組込コントローラの土台となるソフトウェアである。
引用符号18はソフトウェア統合化手段を示し、19は開発対象である組込コントローラを示す。ソフトウェア統合化手段18は、ソースコード集合体14を入力としてコンパイル、リンクを行い、実行可能ソフトウェアを作成する。ソフトウェア統合化手段18により作成された実行可能ソフトウェアは、シリアル通信、ROM書き込みなどにより組込コントローラ19に転送される。
次に、図1のブロック線図12a、12bとソースコード集合体14との対応について説明する。
図1において、ブロック線図12aの「A_box」はソースコード集合体14の同名ブロックである「A_box」に対応する。また、ブロック線図12bの「A1_sim_calc」はソースコード集合体14の「A1_calc」に対応する。同様に、ブロック線図12bの「A2_sim_calc」はソースコード集合体14の「A2_calc」に、ブロック線図12bの「A3_sim_calc」はソースコード集合体14の「A3_calc」に対応する。
ここで、ブロック名は、ブロック(演算処理ブロック)を一意的に示す「語幹」と本発明による開発ツールの動作を既定する「識別子」とにより構成される。語幹と識別子とは‘_’(以降アンダーバーと表記)により結合される。図1の説明において用いられる識別子は「box」、「calc」、「sim」の3種である。
識別子「box」をブロック名に持つブロックは下位構造を有することを示す。例えばブロック線図12a中の「A_box」は、ブロック線図12bを下位構造として有する。識別子「calc」をブロック名に持つブロックは、ソフトウェア部品に対応する。識別子「sim」は識別子「calc」と共に用いられ、ブロックがシミュレーションモデルであることを表す。例えば、ブロック線図12a中の「B_sim_calc」はソフトウェア部品作成手段13bにより定義・作成されるソフトウェア部品と対応し、「B_sim_calc」はシミュレーションを行なうためのビヘイビアモデル(実際に組み込むコードではなく、シミュレーション上で動作を模擬するもの)であることを示す。
実行順序抽出ツール11はブロック線図12aおよびその下位構造であるブロック線図12bを読み込み、ソフトウェア統合化手段18が認識できるコードを出力する。図1では「Top1_box」と「A_box」とで示されるヘッダファイル「Top1_box.h」と「A_box.h」とがこれに相当する。なお、本例ではファイル名称をブロック線図名称にあわせている。
なお、図1ではソフトウェア部品作成手段13a〜13dで生成されるブロックと、その挙動を示すビヘイビアモデルとに別の名前を付けているが、これは、ソフトウェア本体とビヘイビアモデルとをデータベースにより集中管理する場合を想定した為である。特に集中管理の必要がない場合には、ソフトウェア本体とビヘイビアモデルとに同一の名前を付けても差し支えない。例えばブロック線図12aにおいて、B_sim_calcのかわりにB_calcと命名しても良い。
また、図1では実行順序抽出ツール11とソフトウェア部品作成手段13a〜13dとを別体として実現しているが、一般的にはどちらもコンピュータにより実現されるため、この両者を一つのコンピュータで同時に実現する方式も考えられる。図2は図1のソフトウェア部品作成手段13a〜13dを同時に備えた実行順序抽出ツール11を用いて本発明を実現した一実施例である。この場合、ソフトウェア本体とビヘイビアモデルとの区別が必要なくなるため、識別子「_sim」が付加されないブロック名となっている。
次に、図3を用いて実行順序抽出ツール11の動作について説明する。
図3において、引用符号21は実行順序抽出ツール11の主処理、22は主処理21より呼び出される副処理を示す。主処理21は引用符号23のデータフロー図23を入力とし、実行順序抽出ツール11の実行結果は副処理22においてソースファイル24として出力される。
データフロー図23は、処理や機能をブロックとして表現し、データを矢印などの表現を用いて記載したものである。図1におけるブロック線図12a、12bは図3のデータフロー図23に相当する。データフロー図23の例としては、ブロック線図以外にも業務管理に用いるPERT図や複雑な同期システムを記述するペトリネットなどが存在する。いずれも矢印とノードの組み合わせ(有向グラフ)によって表現が可能である。本発明では組込コントローラ開発ツールを対象としており、特に最適制御やPID制御といった制御システムの開発効率化を目指すため、以後の説明ではデータフロー図やブロック線図、有向グラフとを特に区別せず扱うものとする。
ソースファイル24は、図1の「Top1_box」や「A_box」で示される「Top1_box.h」や「A_box.h」といったヘッダファイルを指すものである。
図3において、主処理21はデータフロー図23を読み込み、階層内順序抽出処理に移行する。ここで階層内順序抽出処理の概要は副処理22に記載されている。
副処理22は、まずデータフロー図23に記載されるブロック名を逐次読み出し、ブロック名の識別子に基づき処理を選択する(演算処理ブロック選択手段に相当)。ブロック名識別子が「_box」ならば、これは下位階層を有するため、下位階層における順序を抽出する作業を行なう。ここで、順序を抽出する処理は副処理22そのものなので、副処理22は下位階層がなくなるまで再帰的に呼び出される。
ブロック名抽出後、データフロー図23に記載される矢印から、ブロック間のつながりを有向グラフとして実行順序抽出ツール11内に構築する。有向グラフの内部表現としては、例えば遷移可能行列や、ネットリストなど一般的に知られた手法が用いられる。構築したブロック間のつながりはシリアライズ処理によってブロックの実行順序情報に変換される。例えば、実行順にブロック名が並んだ1次元リストとして表現される。このシリアライズ処理の概要については後述する。
シリアライズ処理の後、識別子により処理が選択される(演算処理ブロック選択手段に相当)。まずブロック名に識別子がない場合、ソフトウェア部品とはみなさず、実行順序情報より削除する。本実施例では組込コントローラ19に組込可能であることを保証されたソフトウェア部品の組み合わせとして定義するため、ソフトウェア部品以外のブロックはシミュレーションのためだけに用いる要素と判断する。
次に、ブロック名に「_sim」を含む場合(演算処理ブロック選択手段に相当)、「_sim」を削除する。例えば、ブロック名が「B_sim_calc」の場合、「B_calc」に変換される。
上記の操作を行なった後、実行順序情報を書き出し、ソースファイル24とする。ソースファイル24の例は後述する。
最後に、副処理22は再帰呼び出しされる場合があるため、現在の階層をチェックし、最上位層であればそのまま主処理21に戻り、さもなければ上位階層に復帰してリターンする。
次に、図4および図5を参照しながらシリアライズ処理の概要について説明する。
シリアライズ処理は、ブロック線図から各ブロックの実行順序を抽出し、実行順に並べることである。例として、図4に示すブロック線図について説明する。ここで「In」は入力ブロック、「Out」は出力ポートである。「Monitor」はシミュレーション結果表示のためのモニタブロックであり、「UnitDelay」は1サンプリング前の値を出力するブロックである。Goto[タグ名]は同じタグ名を持つFrom[タグ名]ブロックへの矢印と等価である。
シリアライズ処理は以下の手順で行なう。
(1)1つのブロック(ここでは「start」)を追加し、全ての終点ブロックからそのブロックに矢印を付加する。
(2)ブロック線図の矢印の方向を全て反対に付け直す。
(3)タグ名の等しい「From」と「Goto」について、「From」から「Goto」へ矢印を付加する。
(4)後退弧(後戻りする矢印)を切断する(図4の変数x8、x21が図5には存在しない)。
(5)完成した後戻りなし有向グラフ(図5)に示した各ブロックについてそれらの実行順序を抽出する。
なお、後戻りなし有向グラフの順序抽出方法については、例えば「石畑 清,アルゴリズムとデータ構造,岩波書店(1989)」に開示されるため、ここでは詳しい説明を省略する。
今回のように離散時間制御を目的とした組込システムの場合、時間遅れ要素(ここでは「UnitDelay」)を伴わないループが存在すると、ブロック線図では「代数ループ」となり、シミュレーションを行なうことが出来ない。そのため、きちんと動作する組込システムを表現したブロック線図では、もしループが存在するならばそのループは常に時間遅れ要素を伴う。時間遅れは通常マイコン内のタイマによって実現されるが、ソフトウェア部品としてソフトウェアを再利用するという観点からは、タイマといったハードウェア依存部分はアプリケーションソフトウェア16からは分離しておく方が望ましい。本実施例において、時間遅れ要素は通常タスク振り分け手段15によって実現する構成とした。このため、単純に時間遅れ要素の一方の矢印を切断して順序を抽出しても、アプリケーションソフトウェア16の範囲では問題ない。
図6は前記手順により抽出された実行順序情報である。これを用いて図3に示したソースファイル24を生成する方法を以下に示す。なお、各ブロックに対応する部分はC言語表記としている(C言語に限定するものではない。C言語は一例である)。ここでx1〜x24は図4中の矢印に付加した変数名に対応している。例えば第6行め、「UnitDelay2(&x8,&x10);」は変数x8、x10を参照呼出しすることに相当する。
ここで、特に処理に関係しない入出力ポートを削除し、Goto−Fromの対応を考慮すると図7のように書き直すことが出来る。図7はC言語のヘッダファイルとして実現した例である。図7において、文頭の「#include<defVer.h>」はプラットフォームソフトウェア17とアプリケーションソフトウェア16内での変数(例えば入力x1や出力x17など)との対応を定義したファイルであり、通常プラットフォームソフトウェアでの定義に従って手動生成、またはデータベース情報から手順に従って生成されるものである。図6のような実行順序情報が得られれば、awkやperlといったスクリプト言語を用いて図7のようなファイルを生成することは容易である。
さらに、関数の引数を隠蔽することにより図8のように記載することも可能である。図8において、#include<funcA.h>より6行にわたって記載されるインクルードファイルは図7における引数付き関数を、引数を明示しない「_update()」関数として定義しなおすことにより実現できる。図8のような記法は変数情報を考慮する必要がなくなるために実行順序抽出ツール11の実現が容易となる。
各ブロックの命名規則を利用して実行順序抽出の対象とするブロックを選択する方法について説明したが、本発明は命名規則に拠らずとも、各ブロックに付加する追加情報によって選別することも可能である。例えば、各ブロックに対し注釈をつけられるブロック線図エディタを実行順序抽出ツール11が使用している場合、図9のように注釈部分を付記することで実行順序抽出の対象とするブロックを選別できる。例えば図9中のinはinternalの略で、実行順序抽出ツール11内部で定義可能なブロック、exはexternalの略で、外部定義ブロックを表す注釈である。また、atomはatomicの略でこれ以上分解して順序を抽出する必要のないブロックであり、nestはnestingの略で、下位階層が存在するブロックを表す注釈である。ソフトウェア部品をデータベースに登録する際にこれらの属性を定義しておき、自動的に属性が注釈に反映させるシステムを構築しておけば、容易に運用できる。
以上、図面を参照しながら説明してきたように、実行順序抽出ツール11はブロック線図12aおよびその下位構造であるブロック線図12bを読み込み、ソフトウェア統合化手段18が認識できるコードを出力する。ブロック名は、ブロックを一意的に示す「語幹」と本発明による開発ツールの動作を既定する「識別子」により構成される。語幹と識別子とは‘_’(アンダーバー)により結合される。識別子「box」をブロック名に持つブロックは下位構造を有することを示すため、実行順序抽出ツール11は下位構造を示すブロック線図12bも再帰的に検索する。識別子「calc」をブロック名に持つブロックはソフトウェア部品に対応するため、このブロックが下位構造を有していたとしてもブロックの検索を打ち切る。
本発明によれば、アプリケーションソフトウェアをソフトウェア部品の集まりとして表す際、その実行順序を有向グラフ表記により容易に得ることができるようになるため、プラットフォームソフトウェア上にアプリケーションソフトウェアを実装する手順が容易になるという効果がある。この場合、実行順序の抽出対象となるブロックを有向グラフの付加情報、たとえば命名規則から判断することができるため、実際には製品に組み込まないシミュレーション用のブロック、たとえば模擬入力を発生するブロックが記載されている有向グラフでも実行順序抽出のために用いることができるようになる。したがって、組込ソフト本体をあらわす有向グラフ表記と、シミュレーション用の有向グラフ表記とを作成する必要がなく、開発期間が短くなるという効果がある。
また、本発明によれば、自動制御で事実上の標準表記方法となっているブロック線図を用いてソフトウェア部品の実行順序抽出を行うことができるようになるため、特に制御用組込機器の開発において、これまでの設計資産を利用することができ、開発期間の短縮やバグの作りこみを少なくする上で好適である。
また、本発明によれば、階層表記されたブロック線図であっても命名規則などから構造を推測できるため、階層表記されたブロック線図からでも実行順序の抽出が可能であるという効果がある。
また、本発明によれば、実行順序情報は開発言語のコンパイラに可読な形式で出力されるため、そのまま実機に組み込めるという効果がある。
一方、本発明により実現された組込コントローラは、その開発の過程で実行順序抽出工程が短いため、開発期間や開発コストが低減できるという効果がある。この特性は、特に開発期間や開発コストに関しての要求を高いレベルで両立させる必要がある自動車などの輸送機器に好適である。
また、本発明により実現された組込コントローラ開発プロセスは、実行順序抽出を自動化することにより開発期間や開発コストが低減できるという効果がある。
その他、本発明は本発明の主旨を変えない範囲で種々変更実施可能なことは勿論である。
本発明の一実施の形態を示す全体図である。 本発明の別の例の全体図である。 実行順序抽出ツールの動作を示すアクティビティ図である。 シリアライズ処理の概要図である。 シリアライズ処理の概要図(後戻りなし有向グラフ)である。 抽出された実行順序情報である。 実行順序情報をC言語のヘッダファイルとして表した例である。 実行順序情報をC言語のヘッダファイルとして表し、引数を隠蔽した例である。 注釈部分を付記したブロック図である。
符号の説明
11…実行順序抽出ツール
12…ブロック線図
13…ソフトウェア部品作成手段
14…ソースコード集合体
15…タスク振り分け手段
16…アプリケーションソフトウェア
17…プラットフォームソフトウェア
18…ソフトウェア統合化手段
19…組込コントローラ
21…実行順序抽出ツールの主処理
22…主処理より呼び出される副処理
23…データフロー図
24…ソースファイル

Claims (9)

  1. 時間的制約条件を有する組込システムのプログラムを開発するための組込コントローラ開発ツールであって、
    複数個の演算処理ブロック間におけるデータの流れを示した有向グラフを入力とし、前記演算処理ブロックにつけられた付加情報に基づいて対象とする前記演算処理ブロックを選択する演算処理ブロック選択手段を有し、該演算処理ブロック選択手段により選択された前記演算処理ブロックを対象として該演算処理ブロックの実行順序情報を出力する
    ことを特徴とする組込コントローラ開発ツール。
  2. 請求項1に記載の組込コントローラ開発ツールにおいて、
    前記付加情報は名前に付加された識別子である
    ことを特徴とする組込コントローラ開発ツール。
  3. 請求項1に記載の組込コントローラ開発ツールにおいて、
    前記有向グラフはブロック線図である
    ことを特徴とする組込コントローラ開発ツール。
  4. 請求項3に記載の組込コントローラ開発ツールにおいて、
    前記ブロック線図は階層的に記述されている
    ことを特徴とする組込コントローラ開発ツール。
  5. 請求項1に記載の組込コントローラ開発ツールにおいて、
    前記有向グラフを閉路なし有向グラフに変換する閉路除去手段を有する
    ことを特徴とする組込コントローラ開発ツール。
  6. 請求項1に記載の組込コントローラ開発ツールにおいて、
    前記実行順序情報は対象とする組込コントローラの開発言語で出力される
    ことを特徴とする組込コントローラ開発ツール。
  7. 請求項1ないし請求項6いずれか記載の組込コントローラ開発ツールを用いて開発される
    ことを特徴とする組込コントローラ。
  8. 請求項7に記載の組込コントローラにおいて、
    輸送機器に用いる
    ことを特徴とする組込コントローラ。
  9. 請求項1ないし請求項6いずれか記載の組込コントローラ開発ツールを用いる
    ことを特徴とする組込コントローラ開発プロセス。

JP2004027999A 2004-02-04 2004-02-04 組込コントローラ開発ツール、組込コントローラ、及び組込コントローラ開発プロセス Pending JP2005222221A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004027999A JP2005222221A (ja) 2004-02-04 2004-02-04 組込コントローラ開発ツール、組込コントローラ、及び組込コントローラ開発プロセス

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004027999A JP2005222221A (ja) 2004-02-04 2004-02-04 組込コントローラ開発ツール、組込コントローラ、及び組込コントローラ開発プロセス

Publications (1)

Publication Number Publication Date
JP2005222221A true JP2005222221A (ja) 2005-08-18

Family

ID=34997809

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004027999A Pending JP2005222221A (ja) 2004-02-04 2004-02-04 組込コントローラ開発ツール、組込コントローラ、及び組込コントローラ開発プロセス

Country Status (1)

Country Link
JP (1) JP2005222221A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009258814A (ja) * 2008-04-14 2009-11-05 Fujitsu Ltd 工程設定支援処理プログラム及び業務プログラム生成処理プログラム
JP2010061649A (ja) * 2008-08-04 2010-03-18 Avl List Gmbh 実行可能な設定の生成
JP2010204855A (ja) * 2009-03-02 2010-09-16 Toshiba Corp プログラム生成装置およびブロック線図生成装置
JP2011039618A (ja) * 2009-08-07 2011-02-24 Meidensha Corp ソフトウェアの開発支援システム、支援方法およびプログラム
JP2012074066A (ja) * 2011-11-22 2012-04-12 Hitachi Ltd コントローラ開発ツールとそれを利用して開発したモータドライブシステムを有する機器
JP2013089044A (ja) * 2011-10-18 2013-05-13 Sumitomo Heavy Ind Ltd ブロック線図処理装置およびブロック線図の処理方法
US8671386B2 (en) 2008-01-31 2014-03-11 Kabushiki Kaisha Toshiba Program generating apparatus and block diagram generating apparatus
JP2014130627A (ja) * 2014-02-26 2014-07-10 Hitachi Ltd コントローラ開発ツールとそれを利用して開発したモータドライブシステムを有する機器
JP2014206976A (ja) * 2013-04-11 2014-10-30 ザ・ボーイング・カンパニーTheBoeing Company オブジェクトサイクルを有するモデルの管理

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0689305A (ja) * 1992-09-08 1994-03-29 Hitachi Ltd データ関連検索方式
JPH06214777A (ja) * 1993-01-20 1994-08-05 Hitachi Ltd プログラム開発方法及び装置
JPH08106380A (ja) * 1994-10-03 1996-04-23 Toshiba Corp プログラム作成装置及び方法並びにプログラムを取り扱う制御装置
JPH1185824A (ja) * 1997-09-09 1999-03-30 Hitachi Ltd 制御回路の階層記述方法
JP2000057187A (ja) * 1998-08-07 2000-02-25 Babcock Hitachi Kk プラントのブロック線図の表示方法
JP2000138288A (ja) * 1998-10-29 2000-05-16 Fuji Xerox Co Ltd 情報処理システム
JP2002351509A (ja) * 2001-05-25 2002-12-06 Mitsubishi Electric Corp プログラミングツール及びプログラミング方法
JP2003173256A (ja) * 2001-12-06 2003-06-20 Denso Corp プログラムコード生成装置及びプログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0689305A (ja) * 1992-09-08 1994-03-29 Hitachi Ltd データ関連検索方式
JPH06214777A (ja) * 1993-01-20 1994-08-05 Hitachi Ltd プログラム開発方法及び装置
JPH08106380A (ja) * 1994-10-03 1996-04-23 Toshiba Corp プログラム作成装置及び方法並びにプログラムを取り扱う制御装置
JPH1185824A (ja) * 1997-09-09 1999-03-30 Hitachi Ltd 制御回路の階層記述方法
JP2000057187A (ja) * 1998-08-07 2000-02-25 Babcock Hitachi Kk プラントのブロック線図の表示方法
JP2000138288A (ja) * 1998-10-29 2000-05-16 Fuji Xerox Co Ltd 情報処理システム
JP2002351509A (ja) * 2001-05-25 2002-12-06 Mitsubishi Electric Corp プログラミングツール及びプログラミング方法
JP2003173256A (ja) * 2001-12-06 2003-06-20 Denso Corp プログラムコード生成装置及びプログラム

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8671386B2 (en) 2008-01-31 2014-03-11 Kabushiki Kaisha Toshiba Program generating apparatus and block diagram generating apparatus
JP2009258814A (ja) * 2008-04-14 2009-11-05 Fujitsu Ltd 工程設定支援処理プログラム及び業務プログラム生成処理プログラム
JP2010061649A (ja) * 2008-08-04 2010-03-18 Avl List Gmbh 実行可能な設定の生成
US8392874B2 (en) 2008-08-04 2013-03-05 Avl List Gmbh Creating an executable configuration
JP2010204855A (ja) * 2009-03-02 2010-09-16 Toshiba Corp プログラム生成装置およびブロック線図生成装置
JP2011039618A (ja) * 2009-08-07 2011-02-24 Meidensha Corp ソフトウェアの開発支援システム、支援方法およびプログラム
JP2013089044A (ja) * 2011-10-18 2013-05-13 Sumitomo Heavy Ind Ltd ブロック線図処理装置およびブロック線図の処理方法
JP2012074066A (ja) * 2011-11-22 2012-04-12 Hitachi Ltd コントローラ開発ツールとそれを利用して開発したモータドライブシステムを有する機器
JP2014206976A (ja) * 2013-04-11 2014-10-30 ザ・ボーイング・カンパニーTheBoeing Company オブジェクトサイクルを有するモデルの管理
JP2014130627A (ja) * 2014-02-26 2014-07-10 Hitachi Ltd コントローラ開発ツールとそれを利用して開発したモータドライブシステムを有する機器

Similar Documents

Publication Publication Date Title
Krahn et al. Roles in software development using domain specific modeling languages
CN110262794B (zh) 一种基于规范与描述语言的aadl功能行为拓展方法及工具
JP4978233B2 (ja) シミュレータ開発システム及びシミュレータ開発方法
JP2005222221A (ja) 組込コントローラ開発ツール、組込コントローラ、及び組込コントローラ開発プロセス
US10884714B2 (en) Method for modifying models for generating source code
Brosch et al. Towards end-user adaptable model versioning: The by-example operation recorder
Merschen et al. Experiences of applying model-based analysis to support the development of automotive software product lines
US11126408B2 (en) Incremental code generation method
Hussein et al. Scenario-based validation of requirements for context-aware adaptive services
Fahringer et al. Teuta: Tool support for performance modeling of distributed and parallel applications
EP2037374A1 (en) Method for translating a graphical workflow in a textual description
JP2009289162A (ja) 制御プログラム及び試験方案自動作成装置
JP5041990B2 (ja) ソフトウェア部品抽出支援装置
JP2008226090A (ja) プラントモデル開発システム
WO2007122639A2 (en) A system and method for pattern based services extraction
Bucaioni et al. From modeling to deployment of component-based vehicular distributed real-time systems
Al Maruf et al. Facilitating reuse of functions in embedded software
JP2010049439A (ja) ソフトウェアモデルを用いたシステム構築方法およびモデリング装置
US8694293B2 (en) Simulation support method, computer-readable storage medium storing simulation support program, and simulation support apparatus
Stürmer et al. Modeling Guidelines and Model Analysis Tools in Embedded Automotive Software Development.
Niang et al. Using Moose platform for the implementation of a Software Product Line according to model-based Delta-Oriented Programming
Ruchkin Architectural and Analytic Integration of Cyber-Physical System Models.
JP2009251927A (ja) プログラム開発支援システム
JP5050624B2 (ja) ソフトウェア開発支援システム
Li et al. Automated transformations from UML behavior models to contracts

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090121

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090318

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090805

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091002

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20091225

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20091225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100302

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100427

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100727