(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-04
(45)【発行日】2023-12-12
(54)【発明の名称】ソースコード作成のためのモデルの変更方法
(51)【国際特許分類】
G06F 8/35 20180101AFI20231205BHJP
G05B 19/042 20060101ALI20231205BHJP
【FI】
G06F8/35
G05B19/042
【外国語出願】
(21)【出願番号】P 2019177227
(22)【出願日】2019-09-27
【審査請求日】2022-04-13
(31)【優先権主張番号】10 2018 124 064.3
(32)【優先日】2018-09-28
(33)【優先権主張国・地域又は機関】DE
(73)【特許権者】
【識別番号】506012213
【氏名又は名称】ディスペース ゲー・エム・ベー・ハー
【氏名又は名称原語表記】dSPACE GmbH
【住所又は居所原語表記】Rathenaustr.26,D-33102 Paderborn, Germany
(74)【代理人】
【識別番号】100114890
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100135633
【氏名又は名称】二宮 浩康
(74)【代理人】
【識別番号】100162880
【氏名又は名称】上島 類
(72)【発明者】
【氏名】ミヒャエル マイア
【審査官】小林 秀和
(56)【参考文献】
【文献】米国特許出願公開第2008/0046863(US,A1)
【文献】特開2018-005315(JP,A)
【文献】特開2008-225898(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/35
G05B 19/042
(57)【特許請求の範囲】
【請求項1】
コンピューターシステムのプロセッサによって実施される、ブロック図間で変更を移す方法であって、
前記ブロック図は、信号によって接続されている複数のブロックから成る、周期的に計算されるモデルを含んでおり、
基本モデルは、1つまたは複数のベースブロックを含んでおり、ベースブロックは、1つまたは複数のベースパラメータを有しており、拡張モデルは、1つまたは複数のベースブロックと少なくとも1つの拡張ブロックとを含んでおり、拡張ブロックは、少なくとも1つの付加的な拡張パラメータを有しており、
第1のブロック図は、第1のバージョンにおける基本モデルを含んでおり、第2のブロック図は、第1のバージョンの基本モデルから生じる拡張モデルを含んでおり、第3のブロック図は、第2のバージョンにおける基本モデルを含んでおり、
前記第1のバージョンは、前記第2のバージョンよりも古く、
前記方法は、
・第1の中間モデルを得るために、複数の変換規則を前記第1のブロック図に適用するステップであって、変換規則は、ブロックを識別するためのルールと、識別されたブロックに適用されるべき変更と、を含んでおり、少なくとも1つの拡張ブロックが挿入され、かつ/または、少なくとも1つのベースブロックが消去されるステップと、
・前記第2のブロック図を前記第1の中間モデルと比較するステップと、
・前記比較から少なくとも1つの設定規則を求めるステップであって、設定規則は、ブロックまたはパラメータを識別するためのルールと、少なくとも1つのパラメータの適用されるべき変更と、を含むステップと、
・第2の中間モデルを得るために、複数の変換規則を前記第3のブロック図に適用するステップと、
・第4のブロック図を得るために、少なくとも1つの設定規則を前記第2の中間モデルに適用するステップと、
を含んでいる方法。
【請求項2】
設定規則を求めることは、前記第2のブロック図と前記第1の中間モデルとの間の違いを示すことならびにユーザー入力を受け取ることを含んでおり、
ユーザーは、前記違いから導出された設定規則を編集、解放または拒絶することができ、
編集されたまたは解放された設定規則は格納される、
請求項1記載の方法。
【請求項3】
変換規則および/または設定規則がデータバンク内に格納されており、ユーザーに操作インタフェースが提供され、前記操作インタフェースにおいて、変換規則および/または設定規則を規定するかつ/または編集することができ、これに基づいて、新たなまたは変更された前記変換規則および/または前記設定規則が前記データバンク内に格納される、
請求項1または2記載の方法。
【請求項4】
一般化された設定規則を得るために、2つまたは2つより多くの、格納されている設定規則が共通点に関して比較され、
前記一般化された設定規則の編集、解放または拒絶を可能にする操作インタフェースに、一般化された設定規則が示され、
前記編集または解放の場合には、前記一般化された設定規則が格納される、
請求項2または3記載の方法。
【請求項5】
ブロック図は、階層的に規定されており、
高位のレベルの1つのブロックは、下位のレベルの複数のブロックを含んでいてよく、
下位のレベルの複数のブロックは、高位のレベルの1つのブロックに割り当てられており、
ブロックの識別は、機能性を示すブロックタイプに基づいてかつ/または階層的なモデルにおいてブロックの場所を記述するモデル経路に基づいてかつ/またはブロックの名称に基づいて行われる、
請求項1から4までのいずれか1項記載の方法。
【請求項6】
設定規則の前記適用後に、少なくとも1つの妥当性条件が検査され、
前記妥当性条件が満たされていない場合には、エラーメッセージが出力される、かつ/または、グラフィカルユーザインタフェースが、パラメータの変更のために示される、
請求項1から5までのいずれか1項記載の方法。
【請求項7】
ブロック図は、階層的に規定されており、
高位のレベルの1つのブロックは、下位のレベルの複数のブロックを含んでいてよく、
下位のレベルの複数のブロックは、高位のレベルの1つのブロックに割り当てられており、
2つのブロック図間の比較の前に、あるブロック図のブロックが、別のブロック図のブロックと同一視される、
請求項1から6までのいずれか1項記載の方法。
【請求項8】
少なくとも1つの既存のブロックに信号によって接続されているブロックを前記ブロック図に挿入する規則の場合、付加的な規則に従って、挿入される前記ブロックの少なくとも1つのパラメータの値が、信号フローにおいて隣接するブロックの1つまたは複数のパラメータ値に基づいて選択される、
請求項1から7までのいずれか1項記載の方法。
【請求項9】
機能性を提供する、事前に規定されているブロックが、ライブラリーから前記ブロック図に挿入可能であり、
同じ機能性を有する規定されているブロックが複数回、前記ブロック図内に存在していてよく、
少なくとも1つのあらかじめ規定されているブロックに、1つまたは複数の変換規則が割り当てられている、
請求項1から8までのいずれか1項記載の方法。
【請求項10】
信号フローにおいて相前後して配置されている、元来の前記ブロック図の3つのブロックのうち、中央の前記ブロックが、変更されたブロック図において欠落しているもしくは消去されている場合に、規則は、スケーリングブロックの自動的な挿入を含んでおり、前記中央のブロックは、信号フローにおいて上流に配置されている前記ブロックとは異なる出力信号のスケーリングを有しており、信号フローにおいて下流に配置されている前記ブロックは、調整に従ったスケーリングを受け継ぐもしくは引き継ぐべきである、
請求項1から9までのいずれか1項記載の方法。
【請求項11】
前記第4のブロック図からのソースコードの作成を特徴とする、
請求項1から10までのいずれか1項記載の方法。
【請求項12】
制御機器の設定方法であって、
前記制御機器は、物理的なプロセスのデータを検出するために、かつ/または、物理的なプロセスに作用するために、少なくとも1つの計算ユニットを含んでおり、さらに、有利には少なくとも1つのセンサおよび/または少なくとも1つのアクチュエータを有しており、前記方法は、
a.
請求項1から11までのいずれか1項記載の方法によって第4のブロック図を作成するステップと、
b.前記第4のブロック図からソースコードを作成するステップと、
c.前記計算ユニットのために前記ソースコードをコンパイルし、これによって実行可能なコードを作成するステップと、
d.実行可能な前記コードを前記制御機器に移すステップと、
e.前記制御機器の不揮発性メモリに前記実行可能なコードを格納する、かつ/または前記制御機器の前記計算ユニットによって、前記実行可能なコードを実行するステップと、
を含んでいる方法。
【請求項13】
コンピュータによって読み取り可能な記憶媒体を備えるコンピュータープログラムであって、
前記記憶媒体には、プロセッサによる実行時に、
請求項1から12までのいずれか1項記載の方法を実施するように前記プロセッサが構成されているようにする命令が埋め込まれている、
コンピュータープログラム。
【請求項14】
コンピューターシステムであって、
マン・マシンインタフェースと、不揮発性メモリと、プロセッサと、を含んでおり、
前記プロセッサは、
請求項1から12までのいずれか1項記載の方法を実施するように構成されている、
コンピューターシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、実行可能なモデル、特にブロック図の変更と、ブロック図からの、制御機器によるプログラミングのためのソースコードの作成と、に関する。
【背景技術】
【0002】
制御機器は、プロセスの物理的な量を検出するため、かつ/または接続されているアクチュエータを用いてプロセスに作用するために、多くの用途において使用される。これは例えば、制動過程のアンチロック調整であってよい。プロセスの動的な特性を特定する時定数はしばしば、1ms以下の周期時間を引き起こすので、制御機器のリアルタイム能力が必要とされる。コストの理由から、制御機器はしばしば、少数のメモリと制限された計算能力とを備えるマイクロコントローラを有している。したがって、実行可能なコードのサイズおよび効率は、極めて重要である。
【0003】
制御機器の設計速度を速めるためにしばしば、MATLAB/Simulink等の計算環境におけるモデルに基づいて、コントロールストラテジーが開発される。これによって、プロセスおよび/または調整器もしくは一般的に制御機器の特性をはじめにシミュレートし、所望の特性の存在を検査することができる。モデルは特に、計算等の演算を実行する複数のブロックを含んでいるブロック図であってよい。ここでブロックは、例えば複数の入力信号から、1つの出力信号を計算することができる。通常、ブロック図は周期的に実行され、ここではすべてのブロックが継続的に、メモリ内に保持され、各ブロックは時間ステップあたり一度、実行される。特に、ブロックは、現下のステップの出力信号を作成するために、最後のステップからの入力信号に、1つまたは複数の演算を適用することができる。ブロック図は、ほぼ時間に関して継続的な特性を記述する、周期的に実行される部分モデルの他に、離散的な特性を記述する部分ブロックも含んでいてよく、ここでは、多くの状態および移行条件が規定されている。
【0004】
モデルから、コードジェネレータを用いて、制御機器のプログラミングのためのソースコードを直接的に作成することができる。例えば、H. Hanselmann等著の文献「Production Quality Code Generation from Simulink Block Diagrams(Proceedings of the 1999 International Symposium on Computer Aided Control System Design, Kohala Coast, Hawai’i)」から、製品の品質におけるソースコード作成のためのコードジェネレータが既知である。ここでは、作成された製品コードが、ブロックもしくはブロック変数の付加的な注記(アノテーション)によって適合され得る。特に、元来、高い精度の浮動小数点変数での計算のために作成されたモデルにスケーリングが施され、これによって、制御機器は、精度における損失を僅かにしつつ、計算コストを格段に低減させるために、固定小数点数を計算に入れることができる。
【0005】
生じている大きいデータ量が効率的に評価されなければならないエッジコンピューティングの領域においても、データフロー向けのプログラミング言語が、使用されてきている。したがって、米国特許出願公開第2017/0277521号明細書から、開発環境において、一連の機能が適用されるべきである多くのデータストリームが識別される方法が既知である。入力データストリームは、多くの要素を備えるキューとして存在しており、これらは例えば「マージ」機能によって、1つの共通の出力データストリームにまとめられるべきである。設計されたプログラムは、二段階の変換ツールにおいて、最適なプラットフォーム特有の指示に変換される。ここでは、個々のデータストリームに適用される変換機能ならびに「マージ」機能が、決定性有限オートマトンに変換され、合成される。このような最適化によって、「マージ」機能の中間段階に対する緩衝が提供される必要がなくなり、したがって、データストリームの効率的な合併が可能になる。プログラムの変更は、視覚化構成要素を含んでいるグラフィカルユーザインタフェースにおいて行われ得る。分割方式の開発のための補助手段はこの文献において開示されていない。
【0006】
比較的大きい開発プロジェクトではしばしば、開発の異なる領域が複数の人物によって実行される。これらの人物は、異なる企業に勤めている場合もある。モデルを作成し、改良する機能開発者は、一貫して、浮動小数点数によって作業することがある。一度作成された機能モデルは、種々のプロジェクトに対しても使用可能であり、機能性において適合可能である。制御機器への移植に必要な付加的な注記は通常、コード作成の専門家によって行われ、モデルは相応するプロジェクト段階において、この専門家に渡される。このようなステップに対して、しばしば、僅かな日数、時間しか与えられておらず、この間に多くの、手動による変更が行われなければならない。プロジェクトが、それぞれ1つのコード作成が行われるべき複数の段階を含んでいる場合には、問題はより深刻になり、基礎になるモデルが実質的に変化しない場合でも、付加的な注釈はしばしば手作業のままである。
【0007】
それぞれ多くの語を備える行に配列されている、高級言語におけるソースコード等のテキストに対しては、しばしば、三方比較も可能にする比較プログラムが存在している。これは、複数の相違するテキストバージョンが、1つの初期のバージョンに基づいて作成されている場合に特に役に立ち、これは例えばソースコードで並行に作用する2つのプログラミングの場合である。テキストに関する、ブロック図もしくは一般的にグラフィカルモデルの複雑な構造は、モデル間の比較を難しくする。操作性を改善するために、米国特許出願公開第2018/0060457号明細書は、2つのブロック図間の比較の結果をスクリプトによってフィルタリングするもしくは後処理することを提案する。特に、多くの異なる階層レベルを含んでいる階層的なブロック図の場合には、変更を移すことは、極めて制限的にしか可能ではない。米国特許第8151244号明細書からは、複数のグラフィカルプログラムを「マージする」もしくは合併する方法が既知であり、ここでは、共通の先行する要素が考慮される。しかしここでは、モデルが、開発環境の同じバージョンを使用し、かつ異なる付加的な注記を有していないことが必要とされる。したがって、コード作成のために、注記が付けられたモデルに、機能モデルの変更を自動的に移すことは不可能である。
【発明の概要】
【発明が解決しようとする課題】
【0008】
したがって、本発明の課題は、従来技術を改良し、特に、異なるモデルの種類の間での変更を移すのを支援することである。
【課題を解決するための手段】
【0009】
上述の課題は、請求項1または12に記載されたブロック図間で変更を移す方法、請求項14記載のコンピュータープログラム製品および請求項15記載のコンピューターシステムによって解決される。有利な発展形態は、従属請求項に記載されている。
【0010】
すなわち、ブロック図間で変更を移す方法が提示される。これらのブロック図は、信号によって接続されている複数のブロックから成る、周期的に計算されるモデルを含んでおり、基本モデルは1つまたは複数のベースブロックを含んでおり、ベースブロックは1つまたは複数のベースパラメータを有しており、拡張モデルは1つまたは複数のベースブロックと少なくとも1つの拡張ブロックとを含んでおり、拡張ブロックは少なくとも1つの付加的な拡張パラメータを有しており、特にコード作成のための1つまたは複数のパラメータを有している。第1のブロック図は、第1のバージョンにおける基本モデルを含んでおり、第2のブロック図は、第1のバージョンの基本モデルから生じる拡張モデルを含んでおり、第3のブロック図は、第2のバージョンにおける基本モデルを含んでおり、第1のバージョンは、第2のバージョンよりも古い。本発明では、この方法は、
・第1の中間モデルを得るために、多くの変換規則を第1のブロック図に適用するステップを含んでおり、変換規則は、ブロックを識別するためのルールと、識別されたブロックに適用されるべき変更と、を含んでおり、少なくとも1つの拡張ブロックが挿入され、かつ/または少なくとも1つのベースブロックが消去され、
・第2のブロック図を第1の中間モデルと比較するステップを含んでおり、
・この比較から少なくとも1つの設定規則を求めるステップを含んでおり、設定規則は、ブロックまたはパラメータを識別するためのルールと、少なくとも1つのパラメータ、特に拡張パラメータの適用されるべき変更と、を含んでおり、
・第2の中間モデルを得るために、多くの変換規則を第3のブロック図に適用するステップを含んでおり、さらに、
・第4のブロック図を得るために、少なくとも1つの設定規則を第2の中間モデルに適用するステップを含んでいる。第4のブロック図は、有利には、第2のバージョンにおける拡張モデルを含んでおり、特にコード作成のために準備される。
【0011】
2つまたは2つより多くのブロックが、信号によって接続されている場合、このことはモデルにおいて、有利には信号線によって示され、結合されたブロックの間で信号もしくはデータを移すことが可能である。ここでは特に第1のブロックは1つの値または規定によっては複数の結束した値を出力し、第2のブロックはこれを受け取り、これは1つまたは複数の結束した、第2のブロックの出力値を求める際に考慮する。信号は、配列のようなスカラー変数および/または構造化されたデータタイプを含んでいてよく、これは例えば、バスの場合である。信号の場合とは異なり、ブロックのパラメータは、モデルもしくは作成されたコードの実行中、固定されたままである。これは特に、ブロックもしくは作成されたコードの特性を固定するために用いられ、したがって通常、モデリングの間のみ変更される。
【0012】
本発明は、異なるセマンティックレイヤーを有するモデル(すなわちここでは、少なくとも1つの基本モデルと少なくとも1つの拡張モデルが存在している)に対して、直接的な三方マージは合理的ではないという考察に基づいている。その代わりに、セマンティックレイヤーは異なるが同じバージョンのモデル間の違いが、異なるバージョンのモデルの間の違いとは分けて観察される。あるセマンティックレイヤーから別のセマンティックレイヤーへの移行時に、特にベースブロックは拡張ブロックによって置き換えることができる。ベースブロックが、1つまたは複数のブロックによって置き換えられてもよく、複数のブロックのうちの少なくとも1つは拡張ブロックである。ここではしばしば、基本モデルの実行される機能性と拡張モデルの実行される機能性は、ほぼ同じである。計算された信号値間のある程度の違いは、例えば、拡張モデルにおける固定小数点データタイプの使用が原因で生じ得る。ユーザーが例えばブロックのグループを挿入した場合には、異なるバージョンのモデルの間には、重大な機能的な違いが生じ得る。
【0013】
個々のブロックおよび/または限定されたブロックグループの取り扱いは、有利には変換規則として表される。これは、ブロックの識別のためのルールと識別されたブロックに適用されるべき変更とを含んでいる。ここで少なくとも1つの拡張ブロックが挿入される、かつ/または少なくとも1つのベースブロックが消去される。別の考察では、変換規則は、通常、固定的に設けられている。なぜなら、基本ブロックの置き換えは、その位置とは無関係に、常に、同じ拡張ブロックまたは同じブロックグループで行うことができる。例えば、変換規則は、信号を出力する基本ポートが相応する拡張ポートによって置き換えられるということを意味し得る。これは一般的に当てはまり、したがって容易に自動化可能である。有利には、基本モデルの各ブロックに対して、識別ルールが満たされているか否かが検査され、そうである場合には、それぞれ所定の変更が適用される。
【0014】
付加的な帰属もしくは少なくとも1つの拡張パラメータは特に、コード作成のための調整を含んでいてよく、これは例えばスケーリング、値領域、変数クラスまたはデータタイプである。例えば拡張ブロックのスケーリングは、隣接する拡張ブロック、すなわち局地的な環境のスケーリング、場合によっては演算にも関連している。したがって別の考察では、設定規則がコンテキストに関連していてもよく、したがって有利には、同じバージョンを有する2つのモデルの比較から求められる。このようなコンテキストに関連する変更をできるだけ多く、自動的に引き継ぐことを可能にするために、セマンティックレイヤーに関して拡張モデルに相当する中間モデルへの、第1のバージョンもしくは古いバージョンにおける基本モデルの変換によって、適切な比較基準が得られる。新たなバージョンにおけるモデルを、コード作成に対して準備するために、ユーザーが行わなければならない手動の適合は少なくなる。
【0015】
モデルが多くの異なるバージョンを経過する場合、過去において求められた設定規則もしばしば継続して適用可能である。したがって、モデルバージョンが増えるとともに、相応する拡張モデルを作成するための手動的なコストが格段に減る。すなわち、学習された規則の格納もしくは学習機構によって、ユーザーの負担をさらに格段に低減させることができる。
【0016】
基本的に、例えば付加的なブロックライブラリーが常に、1つまたは複数の別のパラメータを備えるブロックを含んでいる場合、2つよりも多くのセマンティックレベルが存在していてもよい。コード作成に対するモデルの「簡単な」注記から、全面的に注記が付けられたモデルへの(例えばAUTOSARに適合されたコード作成のための)移行も、セマンティックレイヤー間の移行として見なす、もしくは取り扱うことができる。この場合には漸次的な適合を行うことができ、ここで変換規則は有利には、常に、第1のセマンティックレイヤーと次のセマンティックレイヤーとの間の移行を含んでおり、ここで相応する拡張ブロックは、このような層の拡張パラメータのあらかじめ規定されているセットからの1つまたは複数の拡張パラメータを有している。
【0017】
有利には、設定規則を求めることは、第2のブロック図と第1の中間モデルとの間の違いを示すことならびにユーザー入力を受け取ることを含んでおり、ここでユーザーは、この違いから導出された設定規則を編集、解放または拒絶することができ、ここで編集されたまたは解放された設定規則は格納される。特に、この違いはグラフィカルユーザインタフェースにおいて示すことができ、ここでユーザーは、求められた設定規則を解放、適合または拒絶する。すなわち有利には、2つのブロック図の比較に基づいて、それぞれ個々のブロックまたは個々のブロックから成るグループに関連する多くの個々の設定規則が求められる。
【0018】
特に有利には、変換規則および/または設定規則がデータバンク内に格納されており、ユーザーに操作インタフェースが提供され、この操作インタフェースにおいて、変換規則および/または設定規則を規定する、かつ/または編集することができる。これに基づいて、新たなまたは変更された規則がデータバンク内に格納される。変換規則は種々の様式で構成されていてよく、例えば、モデルエディタを駆動制御することができるスクリプト環境におけるスクリプトとして構成されていてよい。例えば、セマンティックレイヤー内の変更を考慮するために、変換規則にバージョンを割り当て、変換規則の適用を、所定のバージョンおよび/または所定の作成時間を有する基本モデルまたは拡張モデルへ制限することもできる。
【0019】
特に有利には、一般化された設定規則を得るために、2つまたは2つより多くの、格納されている設定規則が共通点に関して比較され、一般化された設定規則の編集、解放または拒絶を可能にする操作インタフェースに、一般化された設定規則が示される。ここで、編集または解放の場合には、一般化された設定規則が格納される。有利には、設定規則に優先順位を割り当てることができ、したがって、例えばはじめに、一般化された設定規則が適用され、カバーされていないケースだけが特別な設定規則によって処理される。優先順位の割り当ては、ユーザーによって行われても、自動的に行われてもよく、これは例えば設定規則の汎用性に対する程度に基づいて行われる。
【0020】
有利には、ブロック図は階層的に規定されており、ここで、高位のレベルの1つのブロックが、下位のレベルの複数のブロックを含んでいてよい。ここで下位のレベルの複数のブロックは、高位のレベルの1つのブロックに割り当てられており、ブロックの識別は、機能性を示すブロックタイプに基づいて、かつ/または階層的なモデルにおいてブロックの場所を記述するモデル経路に基づいて、かつ/またはブロックの名称に基づいて行われる。ブロックが表示の設定のためにマスクを含んでいる場合、ブロックタイプがマスクタイプ(TL_CustomCode等)に基づいて求められてもよい。
【0021】
有利には、設定規則の適用後に、少なくとも1つの妥当性条件が検査され、ここでこの妥当性条件が満たされていない場合には、エラーメッセージが出力される、かつ/またはグラフィカルユーザインタフェースが、パラメータ、特に拡張パラメータの変更のために示される。有利には、注記が付けられた拡張モデルが、所定のルールセットに基づいて、場合によっては存在するユーザルールに基づいて、妥当性に関して検査される。エラーの場合には、ユーザーは、グラフィカル操作インタフェースにおいて、パラメータを適合させることができ、したがって換言すれば、クリチカルな箇所が自動的に立ち上げられる。妥当性条件は、あらかじめ定められていても、ユーザーによって定められてもよく、一般的な、すなわち常に検査される妥当性条件も、特別な、すなわち具体的な設定規則に割り当てられている妥当性条件も規定もしくは検査可能である。
【0022】
ブロック図が階層的に規定されている場合には、高位のレベルの1つのブロックが、下位のレベルの複数のブロックを含んでいてよい。ここで下位のレベルの複数のブロックは、高位のレベルの1つのブロックに割り当てられており、有利には、2つのブロック図間の比較の前に、あるブロック図のブロックが、別のブロック図のブロックと同一視される。すなわち、比較プログラムの視点から、2つのブロックは同じブロックである。この同一視によって、2つのモデルの間の相対的な配置が示され、例えば付加的な階層レベルが挿入された際の、多くの、誤解を招くエラーメッセージが回避される。このような配置もしくは同一視されるべきブロックをユーザーは、グラフィカル操作インタフェースにおいて示すことができる。割り当てが規則の形態で格納されていてもよく、この場合にはモデルの比較前の関係が適用される。さらに、サブシステムのような種々の階層レベルもしくは別個の領域に対して、それぞれ2つのブロックの間の特有の関係が示されてよく、これによって、各レベルに対して相対的な位置が定められる。
【0023】
有利には、少なくとも1つの既存のブロックに信号によって接続されているブロックをブロック図に挿入する規則の場合、付加的な規則に従って、挿入されるブロックの少なくとも1つのパラメータの値が、信号フローにおいて隣接するブロック、特に直接的に先行するブロックおよび/または直接的に後続するブロックの1つまたは複数のパラメータ値に基づいて選択される。有利には、この規則は変換規則であり、付加的な規則は設定規則である。例えば、挿入された新たなブロックに対して、信号のスケーリングを、特に、配置されているブロックの上方の信号フローにおける隣接するブロックに基づいて求めることができる。一般的に、信号の特性またはラベルもしくはレッテルも引き継ぐことができる。
【0024】
有利には、機能性を提供する、事前に規定されているブロックが、ライブラリーからブロック図に挿入可能であり、同じ機能性を有する規定されているブロックが複数回、このブロック図内に存在していてよく、少なくとも1つの規定されているブロックに、1つまたは複数の変換規則が割り当てられている。有利には1つまたは複数の変換規則は、付加的な情報としてブロックライブラリー内に格納される。1つのブロックの複数のインスタンスがブロック図内に存在している場合、これらのインスタンスに対して共通の機能が規定され、各インスタンスに対してデータ構造がブロック変数を伴って規定されるということを変換規則が含んでいてもよく、この場合には、実行されるべきブロックに応じて、相応するデータ構造が機能に渡される。
【0025】
有利には、信号フローにおいて相前後して配置されている、元来のブロック図の3つのブロックのうち、中央のブロックが、変更されたブロック図において欠落している、もしくは消去されている場合に、規則はスケーリングブロックの自動的な挿入を含んでおり、この中央のブロックは、信号フローにおいて上流に配置されているブロックとは異なる出力信号のスケーリングを有しており、信号フローにおいて下流に配置されているブロックは、調整に従ったスケーリングを受け継ぐもしくは引き継ぐべきである。
【0026】
有利には、この方法は付加的に、第4のブロック図からのソースコードの作成を含んでいる。
【0027】
本発明はさらに、ブロック図間で変更を移す方法に関し、これらのブロック図は、信号によって接続されている複数のブロックから成る、周期的に計算されるモデルを含んでおり、基本モデルは1つまたは複数のベースブロックを含んでおり、ベースブロックは1つまたは複数のベースパラメータを有しており、拡張モデルは1つまたは複数のベースブロックと少なくとも1つの拡張ブロックとを含んでおり、拡張ブロックは少なくとも1つの付加的な拡張パラメータを有しており、特にコード作成のための1つまたは複数のパラメータを有しており、第1のブロック図は、第1のバージョンにおける拡張モデルを含んでおり、第2のブロック図は、第1のバージョンにおける基本モデルを含んでおり、第3のブロック図は、第2のバージョンにおける拡張モデルを含んでおり、第1のバージョンは、第2のバージョンよりも低く、すなわち古く、この方法は、
・第1の中間モデルを得るために、少なくとも1つの反転された変換規則を第3のブロック図に適用するステップを含んでおり、変換規則は、ブロックを識別するためのルールと、識別されたブロックに適用されるべき変更と、を含んでおり、変更規則に従って、少なくとも1つの拡張ブロックが挿入され、かつ/または少なくとも1つのベースブロックが消去され、反転された変更規則は、割り当てられている変換規則の変更を取り消し、
・変更されたベースブロックおよび/またはベースパラメータを求めるために、第1の中間モデルを第2のブロック図と比較するステップを含んでおり、
・第2の中間モデルを得るために、求められた変更を第1のブロック図に移すステップを含んでおり、さらに、
・第4のブロック図を得るために、少なくとも1つの変換規則を第2の中間モデルに適用するステップを含んでいる。
【0028】
このような形態では、本発明の方法は、拡張モデルの新たなバージョンの変更を、拡張モデルの古いバージョンに移すことを可能にし、ここで異なるバージョン間で、セマンティックレイヤー内の変更が生じていることもある。シリーズ制御機器では通常、コードジェネレータもしくは全体的な一連のツールのバージョンは固定される。ここで本発明の方法は、例えば後に作成されたパッチを、古い一連のツールもしくは古いバージョンのコードジェネレータによって作成された古いモデルバージョンへ適用することを可能にする。基本モデルにわたった経路を進むことによって、新たなバージョンの互換性のない言語手段のコピーが回避される。有利には、異なるバージョンの変換規則が区別され、ここではバージョンに関連して、1つまたは複数の言語手段が規則において適用される、または回避される。
【0029】
本発明はさらに、制御機器の設定方法に関し、ここで制御機器は、物理的なプロセスのデータを検出するために、かつ/または物理的なプロセスに作用するために、少なくとも1つの計算ユニットを含んでおり、さらに、有利には少なくとも1つのセンサおよび/または少なくとも1つのアクチュエータを有している。この方法は、
a.本発明の変更を移す方法によって第4のブロック図を作成するステップと、
b.第4のブロック図からソースコードを作成するステップと、
c.計算ユニットのためにソースコードをコンパイルし、これによって実行可能なコードを作成するステップと、
d.実行可能なコードを制御機器に移すステップと、
e.制御機器の不揮発性メモリに実行可能なコードを格納する、かつ/または制御機器の計算ユニットによって、実行可能なコードを実行するステップと、
を含んでいる。
【0030】
さらに本発明は、コンピュータによって読み取り可能な記憶媒体を備えるコンピュータープログラム製品に関し、この記憶媒体には、プロセッサによる実行時に、本発明の変更を移す方法を実施するようにプロセッサが構成されているようにする命令が埋め込まれている。
【0031】
さらに本発明はマン・マシンインタフェースと、不揮発性メモリと、プロセッサと、を含んでいるコンピューターシステムに関し、ここでプロセッサは、本発明の変更を移す方法を実施するように構成されている。
【0032】
本発明を以降で、図面を参照して、より詳細に説明する。ここで同じ部分には同じ参照符号が付けられている。図示の実施形態は著しく概略化されており、縮尺通りではない。
【図面の簡単な説明】
【0033】
【
図2】有利にはコンピューターシステム上に存在しているソフトウェアコンポーネントの概略図
【発明を実施するための形態】
【0034】
図1は、コンピューターシステムPCの有利な実施形態を示している。これは特にマルチコアプロセッサとして実現されていてよいプロセッサCPUと、メインメモリRAMと、バスコントローラBCと、を有している。有利にはコンピューターシステムPCは、ユーザーによって直接的に手動で操作されるように構成されており、ここで、有利にはグラフィックカードGPUを介して、モニターDISが接続されており、ペリフェラル・インタフェースHMIを介してキーボードKEYとマウスMOUとが接続されている。基本的には、コンピューターシステムPCのマン・マシンインタフェースがタッチインタフェースとして構成されていてもよい。コンピューターシステムは、さらに、特にハードディスクおよび/またはソリッドステートディスクとして構成されていてよい不揮発性データメモリHDDならびにインタフェースNET、特にネットワークインタフェースを含んでいる。インタフェースNETを介して、制御機器ESが接続されていてよい。基本的には、1つまたは複数の任意のインタフェース、特に有線インタフェースが使用可能であり、ここにはコンピューターシステムPCが設けられ、それぞれ、制御機器ESとの接続のために使用可能である。有利には、イーサーネット規格に従ったネットワークインタフェースが使用可能である。インタフェースNETは、特にWLANインタフェースとして、またはBluetooth
(R)等の規格に従って無線に構成されていてもよい。
【0035】
制御機器ESは、シリーズ生産制御機器として、またはターゲットプラットフォーム用の評価ボードとして構成されていてよい。有利にはこれは、コンピューターシステムPCとの接続のためのインタフェースNET、コンピューターシステムのプロセッサとは異なるアーキテクチャを有するマイクロコントローラMCR、メインメモリRAMおよび不揮発性メモリNVMを含んでいる。本発明を実行するために、制御機器ESは不必要であり、これは有利にはモデルのテストのために使用される。
【0036】
コンピューターシステムは基本的に、クライアントサーバーシステムとして構成されていてもよく、この場合には1つまたは複数のソフトウェアコンポーネントが、外部のサーバーに出される。
【0037】
図2には、有利には、コンピューターシステムPC上にインストールされているソフトウェアコンポーネントのスキームが示されている。これはオペレーションシステムOSの機構を使用し、これによって例えば不揮発性メモリHDDにアクセスすることができる、またはネットワークインタフェースNETを介して、外部の計算機に対する接続が構築される。
【0038】
技術的な計算環境TCEは、モデルの作成と、モデルからのソースコードの作成と、を可能にする。モデリング環境MODにおいては有利には、グラフィカルユーザインタフェースを介して、動的なシステムのモデルを作成することができる。これは特に、複数のブロックを含んでおり、動的なシステムの時間的な特性および/または内部の状態を記述するブロック図であってよい。ブロックのうちの少なくともいくつかは、信号を介して接続されている。すなわち、データ交換のための、方向性を有する接続であり、スカラーまたは合成であってよい。ブロックはアトミックであってよく、すなわち1つのステップにおいて1つのあらかじめ規定されている機能性を提供する。ブロック図が階層的である場合、下位のレベルにある多くのブロックが、上位のレベルにある1つのブロックの構造を表す。有利には、アトミックなブロックが、下位のレベルにある多くのブロックを含んでいてもよい。合成されたブロックは、特にサブシステムであってよい。サブシステムは、分けられた機能での実装および/または専用の信号を介したサブシステムの実行のトリガのような付加的な特性を有していてよい。サブシステムには、サブシステムの特性を詳細に特定するために、特別なブロックが配置されていてよい。計算環境TCEは、有利には1つまたは複数のライブラリーを含んでおり、ここから、ブロックもしくはモジュールがモデルの構築のために選択可能である。スクリプト環境MATでは、指示が双方向でまたはバッチファイルを介して入力され、これによって計算を実行する、またはモデルを修正することができる。環境TCEはさらに、シミュレーション環境SIMを含んでおり、これは、システムの時間的な特性を検査するために、ブロック図を解釈もしくは実行するように構成されている。このような計算は有利には、より高い精度の浮動小数点数によって、コンピューターシステムのマイクロプロセッサCPUの1つまたは複数のコア上で行われる。
【0039】
作成されたモデルから、コードジェネレータPCGによって、ソースコードを、有利にはC等のプログラミング言語において作成することができる。規定データコレクションDDTには、有利にはモデルに対する、特にブロック変数に対する付加的な情報が格納されている。有利には、ブロック変数に、値の範囲および/またはスケーリングが割り当てられ、これによって、固定小数点インストラクションによるモデルの計算が支援される。ソースコードの所望の特性、例えばMISRA等の規格に対する適合性も、規定データコレクションDDTにおいて調整もしくは格納されていてよい。有利には、各ブロック変数は所定の変数タイプに割り当てられ、1つまたは複数の所望の特性、例えば変数の統括等の最適化の許容性が調整される。コードジェネレータPCGは有利には、規定データコレクションDDTの調整を評価し、これをソースコードの作成時に考慮する。規定データコレクションDDTは、ツリー構造を有することができる、もしくは簡易的なファイルとしてコンピューターシステムのメモリ内に格納されてよい。択一的に、規定データを専用のデータバンクシステム内に格納するようにすることができる。規定データコレクションは、プログラムインタフェースおよび/またはインポート/エクスポート機能を有していてよい。技術的な計算環境TCEはさらに、コンバータCNVを含んでおり、これは、コード作成に関係するパラメータを伴うモデルを、比較に適した中間形態に変換する。
【0040】
コンピューターシステムPCは、コンパイラCOMとリンカとを有しており、これらは有利には、制御機器ESおよび/またはコンピューターシステムPC上で実行可能なバイナリーファイルの作成のために構成されている。基本的に、制御機器もしくは評価ボードESを種々のプロセスアーキテクチャによって支援するために多くのコンパイラが存在していてよく、特に、種々の目的プラットフォームに対するクロスコンパイラが存在していてよい。さらに、比較プログラムMOCが存在しており、これは、2つのモデルを中間フォームにおいて受け取り、違いを求め、有利にはこれを示す。付加的に、1つまたは複数の、求められた違いから、設定規則を特定する、もしくは導出することができる。有利には、比較プログラムはグラフィカルユーザインタフェースを含んでおり、ここではユーザーは、導出された設定規則を見て、続いて、編集、確認または拒絶することができる。さらにバージョンコントロールシステムVCSが存在していてよく、これはブロック図の種々のバージョンおよび/または作成された中間フォームをデータバンク内に格納する。
【0041】
図3は、コードジェネレータによるソースコードの作成の一般的なスキームを示している。この方法は完全に、コンピューターシステムPCの有利な実施形態のプロセッサによって実行することができる。しかしこれが、操作計算機およびネットワークを介して接続されている1つまたは複数のサーバーを備えるクライアントサーバー環境における実行に対しても設定されていてよい。ここでは特に計算コストのかかるステップはサーバー上で実行される。
【0042】
第1のステップS1における変換において、ブロック
図BLDの1つまたは複数のブロックから成る選択されたモデルが、中間表現IRに変換される。これは有利には1つまたは複数の階層的なグラフを含んでいる。ここでこれは特にデータフローグラフ、制御フローグラフまたはツリー構造であってよい。
【0043】
ブロック
図BLDの他に、有利には、規定データコレクションDDTからの付加的な情報も、中間表現の作成時に考慮される、もしくはこれに影響を与える。これは、要素が、規定データコレクションDDTにおける情報に基づいて作成される、または要素の特性もしくはコード作成に関連する調整、例えば変数のデータタイプが、規定データコレクションDDTから抽出される状況も含んでいてよい。
【0044】
第2のステップS2における最適化では、階層的なグラフが最適化され、これによって、必要な変数の数および/またはメモリ消費、例えばスタックの占有、および/または演算もしくはプロセスインストラクションの数および/またはソースコードの実行時間が低減される。このような最適化は、多くの中間ステップを含んでいることがあり、ここでは、別の中間表現がモデル/ブロック図とソースコード/プログラムテキストとの間で作成される。特に、各中間ステップにおいて、元来の階層的なグラフのセットを、変更された階層的なグラフの別のセットに変換するようにすることができ、ここで1つまたは複数の最適化ルールが適用される。「定数畳み込み」のような種々のストラテジーまたは「デッドコード」の削除が、最適化の間に適用されてよい。個々の最適化を既に、ステップS1の変換の枠において適用することもできる。これは特に、これらがブロック図図上で容易に実行可能である場合である。
【0045】
第3のステップS3における変換では、実行されたすべての中間ステップから結果として生じる最適化された中間表現IRもしくは最適化された階層的なグラフが、特にCコード等のテキスト形式のプログラミング言語のソースコードPCOに変換される。このようなステップにおいても、別の最適化を行うことが可能であり、特に、基本的に言語に含まれている指示のサブセットの作成された指示を表す、かつ/または作成された制御構造が、基本的に言語に含まれている制御構造のサブセットを表すように行われる。これは、正確に規定されたルールを満たすことを可能にする。択一的または付加的に、プログラム行とブロック
図BLDのブロックとの間の関係等の付加的な情報を作成し、特にコメントの形態でソースコードに含めるようにすることができ、これによって、ソースコードPCOの読みやすさが改善される、かつ/またはデバッグが容易になる。
【0046】
コード作成の間または後に、現下のブロック図またはコード作成の結果に関する情報、例えば警告が、規定データコレクションに格納されてよい。このような情報は例えば、作成されたソースコードのコンパイリングを制御するため、または別のツールに対するメタ情報を提供するために利用されてよい。これは例えば、ASAP2フォーマットにおける較正情報またはAUTOSAR標準に従った中間層の作成のための情報である。択一的な実施形態では、ブロック図から、ハードウェア記述言語におけるコードまたはプログラミング可能なハードウェアモジュールの設定を作成することができる。
【0047】
図4は、2つのブロック図の間の比較を概略的に示している。ここでは第1のステップにおいて、第1の隣接するブロック図が技術的な計算環境TCE1のモデルエディタMODにおいて開放され、コンバータCNVによって、中間形態INF1に変換される。このような中間形態は、比較に特に適しており、スクリプト環境MATにおいて適合された現下のパラメータ値を含んでいる。スクリプト環境MATは、モデルエディタMODおよびコンバータの自動的な駆動制御のために使用可能である。さらに、フィルタスクリプトによって、比較結果をフィルタリングし、変更しまたは付加することができる。次に、または並行して、第2のステップにおいて、第2の隣接するブロック図が技術的な計算環境TCE2のモデルエディタMODにおいて開放され、コンバータCNVによって、中間形態INF2に変換される。ここでスクリプト環境MATを駆動制御する、かつ/またはフィルタリングすることができる。連続した処理では、TCE1およびTCE2が同じ技術的な計算環境を記述していてよく、中間形態INF1およびINF2は、少なくとも一時的にファイルシステムまたはデータバンク内に格納される。並行した実行時には、技術的な計算環境の2つの独立したインスタンスTCE1、TCE2が開放される。
【0048】
2つの中間形態は、違いのリストDIFFを作成する比較プログラムMOCに供給される。有利には、比較プログラムは、第1のブロック図と第2のブロック図との間の違いに基づいて設定規則を求めるコンポーネントも含んでいる。したがって、2つのブロック図の比較から、違いの数に応じて、多くの設定規則が導出可能である。得られた設定規則は、データバンク内に格納することができ、ここで有利には、相応する設定規則が既に存在しており、格納が新たに行われる必要がないか否かの検査が行われる。
【0049】
図5には、概略的に、基本モデルの変更が拡張モデルに移されるべき状況が示されている。特に、基本モデルはシミュリンクモデルであってよく、拡張モデルはTargetLinkモデルであってよい。
【0050】
図示されているのは、古いバージョンにおける基本モデルB1.0と、拡張モデルE1.0と、新たなバージョンにおける基本モデルB2.0と、である。基本モデルB1.0は、入力ポートIn1、入力信号を係数kぶん増幅する(または場合によって、k<1の場合には減衰させる)増幅ブロックGain、および出力ポートOut1を含んでいる。拡張モデルE1.0では、入力ポートおよび出力ポートが、付加的なパラメータを有する相応するポートによって置き換えられている(ポートにおける2つの斜線によって暗示されている)。Gainブロックも相応する拡張ブロックによって置き換えられている(2つの線によって暗示されている)。出力ポートに対しては例えば2つの拡張パラメータが示されており、詳細には、出力変数の所望のデータタイプInt8ならびに所望のスケーリング2-13が示されている。基本モデルB2.0の新たなバージョンは、飽和ブロックSaturationを含んでおり、これは、増幅ブロックの出力信号を、所定の間隔に制限する。コード作成のために、新たなバージョンにおける拡張モデルE2.0が必要である。
【0051】
元来の基本モデルB1.0と処理された基本モデルB2.0との間の違いを、比較プログラムMOCによる2つのモデルの比較に基づいて求めることができる。多くの疑似的な違いが発生するのを阻止するために、一般的に有利には、ここでモデルが「アライメント」され、すなわちユーザーは、古い基本モデルB1.0における特定のブロックが、新たな基本モデルB2.0における特定のブロックに相応する、もしくはこれと同一視されることを規定する。これは特に、複数の階層的なレベルおよび多くの個々のブロックを有する大規模なモデルに対して当てはまる。
【0052】
拡張モデルE1.0と元来の基本モデルB1.0との間の違いは、一般的な変換に分割することができ、これは例えば、拡張された表示における出力ポートによる、基本形における出力ポートの置換である。さらに、このような違いは特別な設定に分割することができ、これは例えば、出力ポートでの特定のスケーリングの選択である。すなわち、変換規則TVと設定規則KVとを区別することができる。変換規則だけを基本モデルに適用する場合、中間モデルE1.0*もしくはE2.0*が生じる。これは拡張ブロックを含んでいるが、適切な帰属が欠如しているため、コード作成には適していない。適切な帰属もしくは拡張パラメータはしばしばコンテキストに関連しており、したがってモデルおよび/または隣接するブロックにおける相応するブロックの配置によって、またはそのパラメータによって変わる。これとは異なり、一度規定された変換は通常、変えられずに、所定のタイプのすべての基本ブロックに適用可能である。
【0053】
図6は、
図5に示された状況の新たなモデルの変換された形態を概略的に示している。新たな基本モデルB2.0の入力ポートは変換規則によって、付加的なパラメータを伴う相応する拡張ポートによって置き換えられている。付加的なパラメータに対する値は、設定規則によって適合され得る。この設定規則は、変換された基本モデルB1.0、すなわち中間モデルE1.0
*における(拡張された)入力ポートと、拡張モデルE1.0における拡張された入力ポートと、の比較から特定される、または特定されている。増幅ブロックは、別の変換規則を用いて、拡張された増幅ブロックによって置き換えられている。付加的なパラメータに対する値は、設定規則によって適合され得る。この設定規則は、中間モデルE1.0
*における(拡張された)増幅ブロックと、拡張モデルE1.0における拡張された増幅ブロックと、の比較から特定される、または特定されている。同様に、出力ポートも、一般的な変換規則および位置に関連する設定規則によって、新たな拡張モデルE2.0に移すことができる。例として、データタイプに対する値Int8および出力ポートでのスケーリングに対する値2
-13が示されている。
【0054】
新たな基本モデルB2.0における飽和ブロックは、変換規則を用いて、拡張された飽和ブロックによって置き換えられている(上方および下方の2つの線によって暗示されている)。データタイプに対する値Dtおよびスケーリングに対する値Skは、拡張モデルE1.0と中間モデルE1.0*との比較から求めることはできない。なぜなら、基本モデルB1.0では、飽和ブロックが存在していないからである。したがって、直接的に適用可能な、場所に特有の設定規則は使用可能ではない。
【0055】
新たなブロック(飽和ブロック)が先行する要素(増幅ブロック)と後続する要素(出力ポート)との間に挿入される、このような状況では、有利には、拡張パラメータに対する可能な値は、隣接するブロックの観察から得られる。これは、一般化された設定規則、もしくはアダプティブな設定規則のことであり得る。ここでは例えば、拡張された出力ポートの拡張パラメータの値を引き継ぐことができる。択一的な手法では、先行する要素の値と後続する要素の値が比較可能であり、一致する場合には、付け加えられるべきブロックに対する共通の値を引き継ぐことが可能である。この手法が有利であるのか、または別の手法が有利であるのかは、各個々の拡張パラメータに対して異なっていてよい。したがって、有利には、比較プログラムは、操作インタフェースを含んでおり、ここでユーザーは、異なる手法間の選択をすることができる。ここで、選択された手法は有利には、新たな設定規則として格納される。
【0056】
図7は、2つの比較されるべき階層的なモデルの概略図を示している。左側には、第1のブロック図が示されており、これは、第1の階層レベルE1と第2の階層レベルE2とを有している。右側には、3つの階層レベルE1、E2およびE3を有する第2のブロック図が示されている。
【0057】
階層レベルE1において、第1のブロック図は規定ブロックD1と、信号によって結合された4つのブロックB1、B2、B4、B5と、を含んでいる。ブロックB4は、階層的なブロックであり、その機能性は、下位の階層レベルE2における多くのブロックによって規定されている。見やすくするために、ブロックB1、B2、B5を、下位の階層レベルを有していない簡易的なブロックと仮定する。しかし、基本的には、別の階層的なブロックが存在していてもよく、これらはそれぞれ、別個の下位の階層レベルにおいて実装されるだろう。
【0058】
下位の階層レベルE2において、第1のブロック図は、入力ポートP21、出力ポートP22および信号によって結合されている3つのブロックB21、B22、B23を含んでおり、これらは計算演算を実行する。
【0059】
第2のブロック図は、第1の階層レベルE1において、規定ブロックD1と、信号によって結合されている5つのブロックB1、B2、B3、B4、B5と、を含んでいる。第1のブロック図とは異なり、付加的なブロック(B3)がB2とB5の間に挿入されている。上述したように、変換されたブロックの拡張パラメータに対する値は、先行する要素と後続する要素との比較から求めることができる。しかし例えばスケーリングに対しては、新たに付け加えられたブロックが、後続する要素のこれまでの値を無効にすることがある。ブロックB3が、特に、大きい増幅を伴う増幅ブロックである場合、これまでのデータタイプがB5に供給される信号に対して過度なものとなることもある。したがって有利には、このような観点において問題となるブロックの挿入後に、後続のブロックに対する「ワースト・ケース」スケーリングが提案される。具体的には、例えば、8ビットの幅の整数変数を、16ビットの幅の整数変数によって置き換えることができる。有利には、提案された変更は、ユーザーに、グラフィカル操作インタフェースにおいて表示され、したがって、ユーザーは、これを確認、編集または拒絶することができる。付加的に、変更されたモデルにおけるこのような提案またはクリチカルな箇所のリストが表示されるようにすることもできる。これによって、ユーザーは所期のように、相応する箇所を立ち上がらせ、それぞれ、適切な手法を選択することができる。
【0060】
見やすくするために、ここでは、第2のブロック図の第1の階層レベルにおいて、ブロックB4だけが、階層的なブロックであると仮定する。第2の階層レベルは、入力ポートP21とブロックB21と出力ポートP22とを含んでいる。ブロックB21は階層的なブロックであり、その実装は、下位の第3の階層レベルE3における複数の別のブロックによって、モデリングされている。第3の階層レベルE3は、入力ポートP31と、3つのブロックB31、B32、B33と、出力ポートP32と、を含んでいる。第1のブロック図と第2のブロック図の直接的な比較において、各第1の階層レベルの下方のすべてのブロックは違いとして表示されるだろう。例えば、左側のブロックB4が意味論的に完全に相違するブロックによって置き換えられている場合、これは有利であり得る。しかし、例えば第1のブロック図のレベルE2が、第2のブロック図のレベルE3と一致する場合、これは誤解を招き得る。ここでは付加的な階層レベルが後の拡張のための空間として挿入されている(例えば入力信号の事前フィルタリング)。直接的な比較は、多くの、誤解を招く違いを生じさせるだろう。このような場合には、有利には、左側のブロックB4が右側のブロックB21と同一視されるべきである。なぜなら、このような場合には、下位の、構造的に一致するモデリングが、相違するパラメータに関して検査され得るからである。ユーザーはこのような判断を合理的に行い、これは例えば個々の、比較前に実行される規則として格納されてよい。
【0061】
図8は、概略的に、例示的な操作インタフェースを示しており、これは、変換規則および/または設定規則の編集を可能にする。基本的に規則は、フィルタ、すなわち、検査されるべき条件もしくは一致に関して検査されるべきパターンを含んでおり、さらに行動、すなわち条件が満たされている場合もしくはパターンが一致する場合に適用されるべき変更を含んでいる。
【0062】
拡張モデルと割り当てられた中間モデルとの比較から求められた設定規則は、通常、はじめは特殊である、もしくは場所に関連している。場所は、階層的なモデルでは、例えばブロック経路の形態で示されてよく、これは、上位のサブシステムもしくは階層レベルを含んでいる。多くの設定規則が求められ、データバンク内に格納された後、有利には、複数の個々の設定規則が、一般化可能か否かが検査される。付加的にユーザーは優先順位を設定することができ、ここで、一般的な設定規則の基本的な優遇も設定可能である。自由選択的に、一般化された設定規則を識別し、格納した後に1つ、複数またはすべての、これによってカバーされる個々の設定規則がデータバンクから消去される、または機能していないものとしてマークされるようにすることもできる。一般的な設定規則は、変換規則と同様に、ブロックタイプに基づくフィルタリングを含んでいてよい。しかし、特定の環境の存在、すなわち先行する要素および/または後続する要素である定義されたブロックが、フィルタリングの判断基準として使用されるようにすることもできる。
【0063】
図示されたユーザインタフェースでは左側に、部分「フィルタ」が示されており、ここではユーザーは、フィルタを入力することができる。このために、領域「経路」および割り当てられた入力面ならびに割り当てられた入力面を伴う領域「ブロックタイプ」が設けられている。基本的には、フィルタリングのために別の領域もしくは特性が使用されてもよい。すなわち図示の例では、ユーザーは、フィルタリングを具体的な経路または具体的なブロックタイプについてのみ設定することができる。さらに、「この経路は特定のサブシステムを含んでいる」および「このブロックタイプは特定の値を有している」等のように、組み合わされた判断基準をユーザーが定めることも可能である。
【0064】
図示されたユーザインタフェースの右側には、部分「行動」が示されており、ここではユーザーは、条件が満たされている場合にもしくは条件が満たされたすべての箇所において実行されるべき行動もしくは適用されるべき変更を示す。このために、領域「タイプ」、領域「名称」および領域「クラス」が、それぞれ割り当てられた入力面とともに設けられている。これに相応して、適用されるべき変更は、「タイプ」の下に示された値へのブロックタイプのセットおよび/または「名称」の下に示された値へのブロック名のセットおよび/または「クラス」の下に示された値への変数クラスのセットを含んでいてよい。基本的には、別の、示されていない変更も適用可能である、もしくは行動が実行可能である。
【0065】
図示されているユーザインタフェースの下方には、部分「妥当性」が示されており、ここではユーザーは、適用された変更に従って検査されるべき条件を設定することができる。このために、領域「パラメータ」、領域「最小値」、領域「最大値」がそれぞれ、割り当てられた入力面とともに設けられている。付加的に(図示されていない)、妥当性条件が満たされていない場合に、一般的な警告、またはモデル内の相当する箇所が示されるべきか否か、もしくは、妥当性が欠如している場合に、適用された変更が取り消されるべきか否かをユーザーが設定することもできる。
【0066】
本発明の方法もしくは相応するシステムによってユーザーは、設定規則もしくは変換規則のコレクションを相次いで構築することができる。特に、基本モデルの連続した複数のバージョンからそれぞれコードが作成されるべき場合、適合のコストは、バージョンが増えるとともに、著しく減少する。