JP2015170367A - グラフィック制御モデルから制御システム上で実行可能な制御プログラムを形成するためにコンピュータ上で実行される方法およびコンピュータプログラム - Google Patents

グラフィック制御モデルから制御システム上で実行可能な制御プログラムを形成するためにコンピュータ上で実行される方法およびコンピュータプログラム Download PDF

Info

Publication number
JP2015170367A
JP2015170367A JP2015044745A JP2015044745A JP2015170367A JP 2015170367 A JP2015170367 A JP 2015170367A JP 2015044745 A JP2015044745 A JP 2015044745A JP 2015044745 A JP2015044745 A JP 2015044745A JP 2015170367 A JP2015170367 A JP 2015170367A
Authority
JP
Japan
Prior art keywords
fxp
program code
unit
flp
control
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
JP2015044745A
Other languages
English (en)
Other versions
JP6333201B2 (ja
Inventor
ヒレブラント ゼバスティアン
Hillebrand Sebastian
ヒレブラント ゼバスティアン
フィッシャー カーステン
Karsten Fischer
フィッシャー カーステン
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.)
Dspace Digital Signal Processing and Control Engineering GmbH
Original Assignee
Dspace Digital Signal Processing and Control Engineering GmbH
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 Dspace Digital Signal Processing and Control Engineering GmbH filed Critical Dspace Digital Signal Processing and Control Engineering GmbH
Publication of JP2015170367A publication Critical patent/JP2015170367A/ja
Application granted granted Critical
Publication of JP6333201B2 publication Critical patent/JP6333201B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/04Program control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Program control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23217Parallel processing
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23258GUI graphical user interface, icon, function bloc editor, labview
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23266Compiler
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23292Use of model of process, divided in part models with IN, OUT and actuator
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Computer Hardware Design (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

【課題】グラフィック制御モデルから、実行可能な制御プログラムを生成するための方法を提供して、この方法により、上記の制御システムの資源が一層良好に利用できるようにすること。
【解決手段】グラフィック制御モデルをプログラムコードに翻訳して、生成したこのプログラムコードが少なくとも1つのFXP演算および少なくとも1つのFLP演算を有しており、かつ、生成したこのプログラムコードをつぎに上記の実行可能な制御プログラムに翻訳して、上記の制御システム上でこの制御プログラムを実行する際にこの制御プログラムの一部分が上記のFXPユニット上で実行され、この制御プログラムの他の一部分が上記のFLPユニット上で実行されるようにする。
【選択図】図2

Description

本発明は、グラフィック制御モデルから、制御システム上で実行可能な制御プログラムを形成するための方法であって、コンピュータ上で実現される方法に関する。この制御システムは、プロセスインタフェースを有しており、またこの制御システムは、このプロセスインタフェースを介して、物理プロセスの少なくとも1つのプロセス変量を上記の制御システムによって検出し、および/または、物理プロセスに影響を及ぼすための出力量を上記の制御システムによって送出することができるように構成されている。この制御システムは、少なくとも1つの固定小数点演算実行ユニット(FXPユニット)と、少なくとも1つの浮動小数点演算実行ユニット(FLPユニット)とを備えた少なくとも1つの電子計算ユニットを有しており、上記のグラフィック制御モデルは、複数のモデル演算を有する。
グラフィック制御モデルから、実行可能な制御プログラムをコンピュータ支援によって(すなわち計算機によって自動化されて)形成する上記のような方法は、かなり以前から公知であり、また例えば制御装置のような制御システム用のプログラムを形成するための開発環境の基礎的な機能に属している。上記のグラフィック制御モデルは、ほとんどの場合にブロック線図の形態をしており、このブロック線図により、例えば、制御アルゴリズムの数学的な機能がモデル化されて表される。産業分野における業務においてこのような制御システムは、上位の技術プロセスに埋め込まれる小型計算機であることが多く、自動車分野ではこのような制御システムは制御装置と称される。
グラフィック制御モデルから、実行可能な制御プログラムを形成するための方法は具体的にはコードジェネレータと称される。このコードジェネレータにより、抽象的な機能記述(グラフィック制御モデル)がターゲットシステム(制御システム)用のハードウェア寄りのプログラムに確実かつ誤りなく翻訳されることが保証される。制御プログラムの形成方法は、例えばDE 10347891 A1により詳細に記載されている。
制御システムの計算ユニットは一般的に、英語ではInteger-Execution-Unit(IEU)と称される整数計算ユニットを有しており、以下ではこれをFXPユニット(Fixed-Point-Executionユニット)と称する。この整数または固定小数点演算ユニットを用いれば、整数も固定小数点数(Fixed-Point-Number)も計算することができる。なぜならば、固定小数点数演算は基本的に整数演算に相応するからである。以下ではFixed-Point-Operation(かつ整数演算ではない演算)およびFloating-Point-Operation(浮動小数点数演算、FLP演算)について扱うため、FLPユニット(Floating-Point-Execution-Unit)称されることが一般的である浮動小数点計算ユニットに対し、上記の整数計算ユニットをFXPユニット(Fixed-Point-Execution-Unit)と称する。このような理解によれば、固定小数点演算(Fixed-Point-Operation)には整数演算(Integer-Operation)が含まれる。
殊に組み込み式制御システムの電子計算ユニットはかつてただ1つのFXPユニットしか有しないことが多かったため、従来技術から公知の方法では、グラフィック制御モデルのすべてのモデル演算はもっぱら、上記の生成されるプログラムコードのFixed-Point-Operation(FXP演算)に翻訳されていた。この手法によって確かに、適用された上記の方法によって生成されるプログラムコードおよびこれから翻訳した制御プログラムはその原理にしたがい、実質的に任意の計算ユニット上で動作可能であることが保証されたが、制御システムの電子計算ユニットがFXPユニットの他にFLPユニットを有する場合には、上記のハードウェア資源は部分的にだけしか使用されなかったのである。ここで考察している制御システムは一般的にリアルタイム条件下で動作するサンプリングシステムを扱っており、つまり上記の制御プログラムの実行に対して任意の多くの時間を費やすことができないため、上記のFXPユニットがフルに使われ、あらかじめ設定された時間インターバルでさらなる計算ステップをもはや実行できない場合には、一層性能のよい制御システムを使用しなければならないのである。
DE 10347891 A1
本発明の課題は、グラフィック制御モデルから、実行可能な制御プログラムを形成するための方法を提供して、この方法により、上記の制御システムの資源が一層良好に利用できるようにすることである。
上記の課題は、実行可能な制御プログラムを形成する上記の方法においてまず、上記のグラフィック制御モデルをプログラムコードに翻訳して、生成したこのプログラムコードが少なくとも1つのFXP演算および少なくとも1つのFLP演算を有しており、かつ、生成したこのプログラムコードをつぎに上記の実行可能な制御プログラムに翻訳して、上記の制御システム上でこの制御プログラムを実行する際にこの制御プログラムの一部分が上記のFXPユニット上で実行され、この制御プログラムの別の一部分が上記のFLPユニット上で実行されるようにすることによって解決される。
制御システム上で実行可能な制御プログラムを形成するための従来技術から公知の方法を示す図である。 制御システム用の制御プログラムを形成するための本発明の方法を略示する図である。 制御プログラムを形成するための本発明の方法の別の実施形態を略示する図である。 制御プログラムを形成するための本発明の方法の、図3に基づく別の実施形態を略示する図である。 制御プログラムに翻訳すべきグラフィックモデルを示す図である。 FLP演算によって実現される特徴的なモデル部分を有する、図5のグラフィック制御モデルを示す図である。 FLP演算に翻訳される別の特徴的なモデル部分を有する、図5の制御モデルを示す図である。
本発明による上記の方法によって回避されるのは、上記のグラフィック制御モジュールをプログラムコードに翻訳する際に、上記のFXPユニットだけで使用されるプログラムコードだけが形成されるか、または、上記のFLPユニットだけで使用されるプログラムコードだけが生成されることである。すなわち、本発明による方法において強制されるのは、ターゲットシステム上の上記のグラフィック制御モデルが、FXPユニット上でも、またFLPユニット上でも計算されることであり、これによって全体として一層良好に資源が利用されることになる。公知の方法に比べ、同じ1つの制御システム上で、従来公知のコード生成方法によって形成される制御プログラムよりも格段に大量の制御プログラムを計算することができる。これによって可能になるのは、同じ1つの制御システムにより、上記のプロセスインタフェースを介して、一層高いサンプリングレートで、および/または、一層多くの個数のプロセス変量を交換して、接続された物理プロセスに影響を及ぼすことができる。
上記のコンピュータ上で実現される方法の一発展形態の特徴は、時間平均において上記の制御システムの計算ユニットのFXPユニットおよびFLPユニットの負荷が同程度になるような個数の制御モデルのモデル演算を、上記のプログラムコードのFXP演算およびFLP演算に変換することである。FXPユニットおよびFLPユニットに同じように負荷を加えることにより、平均的にはこれらの2つのユニットの負荷は可能な限りに少なくなるため、これらのユニットにおける実行時間変動によって複数のリアルタイム条件が損なわれてしまう確率が小さくなる。
上記の有利な実施形態によれば、上記のプログラムコードのFLP演算の個数に対するFXP演算の個数の比は、単位時間当たりにFXPユニット上で実行可能なFXP演算と、FLPユニット上で実行可能なFLP演算との比に対応する。この結果は、上記の制御システムの計算ユニットないしはこの計算ユニットの種々異なるユニットが、所定のFXPおよびFLP演算にどのくらいのクロックサイクルが必要であるか考慮すれば、上記の方法により、容易に自動化して得ることができる。上記の制御モデルの変換すべきモデル演算の選択は、ランダムに行うことができるかまたは以下で検討する所定の選択判定基準にしたがって行うこともできる。
上記の制御プログラムによる上記の計算ユニットのFXPユニットおよびFLPユニットの利用の上記のただ1つの状況は、上記の計算の時間的な配位を考慮しなくても、それ自体ですでに有利である。殊に大きな効果は、コンピュータ上で実現される方法の別の有利な実施形態において、つぎのような場合に得られる。すなわち、制御システムの計算ユニット上で制御プログラムを実行する際に、上記のプログラムコードないしは制御プログラムが、計算ユニットのFXPユニットおよびFLPユニット上で同時に実行されるように、プログラムコードのFXP演算と、プログラムコードのFLP演算とを混合する。すなわち、FXP演算とFLP演算とを必要に応じて混合することにより、FXPユニットおよびFLPユニットは実際に、交互だけではなく同時にも計算を実行するようにFXPユニットおよびFLPユニットに命令が供給されることになり、これにより、実行時に最大限の効果が得られる。
本発明による方法において有利な作用は、例えば、制御モデルのモデル演算からランダムに選択したモデル演算を、プログラムコードの対応するFLP演算ないしはFXP演算に変換することによってすでに得られるが、この方法の有利な実施形態によれば、所期のように適用可能な判定基準があり、この判定基準によれば、制御モデルのどの部分が変換に殊に適しているかを決定することできる。
コンピュータ上で実現される上記の方法の有利な実施形態では、FXPユニット上で計算するため、制御モデルの整数のモデル演算を、プログラムコードのFXP演算に翻訳する。例えば、ループ、switch-case演算用のインクリメントまたはデクリメントカウンタまたはビット演算のような上記の整数のモデル演算は、浮動小数点データ型に変換することの利点があると思われない。
しかしながら有利であり得るのは、プログラムコードにおいてFXP演算として実現する際に固定小数点数リスケーリングが行われ得る、制御モデルのモデル演算をプログラムコードのFLP演算に変換することである。このような手段により、固定小数点リスケーリングに対する計算ステップを節約することができるため、元々の浮動小数点計算の時間が節約されるか、ないしはプログラムコードにおけるFXPからFLPへの必要な変換がもはや重要ではなくなる。この発明の別の実施形態によれば、計算ユニットがmビットFLPユニットを有しているがmビットFXPユニットを有していない場合、プログラムコードにおけるFXP演算として翻訳するときに、プログラムコードにおいて1つまたは複数のmビットFXP演算が生じ得る、制御モデルのモデル演算を、その代わりにプログラムコードにおける1つまたは複数のmビットFLP演算に変換する。例えば、モデルの設定により、プログラムコードにおいて64ビットFXP演算が生じるが、32ビットFXPユニットしか存在しない場合、生成されたコードでは、所要の64ビット演算を複数の別個の32ビットFXP演算によって模造しなければならないが、これは極めて繁雑である。この場合には、計算ユニット上に64ビットFLPユニットが設けられている場合には、64ビットFLP演算への変換を行うことは大いに手間をかける甲斐があるのである。
グラフィック制御モデルでは、直列および並列に接続された演算があり、直列接続された演算は時間的に必ず相前後して実施しなければならない。なぜならば1つの演算の結果が、後続の演算の入力量になるからである。制御モデルの並列の矢印線ないしは並列の演算は時間的に並列に処理することができる。なぜならば異なる矢印線において計算される値は、互いに影響し合わないからである。
本発明による方法の有利な実施形態によれば、制御モデルが複数の並列な矢印線が有する場合、制御モデルのモデル演算の矢印線のうちで、最も多くのFXPリスケーリングを有するか、ないしはFXP演算に変換するときに、最も多くのFXPリスケーリングを有し得る矢印線をプログラムコードのFLP演算に変換する。先行してFLP演算が使用される場合、プログラムコードにおけるこれらのFXPリスケーリングは省略される。この場合に有利には上記の矢印線は、FLP演算とFXP演算との間で交換されるのではなく、プログラムコードにおいてFLP演算にとどまる。この際にはプログラムコードにおける独立したモデル矢印線のコード部分は交互に配置することもでき、これによって(例えば、使用されるコンパイラにおいて場合によっては存在する検出欠陥を保証するため等のような)FXPおよびFLPユニットの時間的な負荷にさらに有利に作用が及ぼされる。
ここでは、プログラムコードにおいてFXP演算ないしはFLP演算に翻訳されるようにモデル演算が定められているまたは設けられている制御モデルも考えられる。このような制御モデルでは、この方法の有利な一実施形態によれば、この制御モデルの少なくとも1つのFLP演算は、プログラムコードの1つのFXP演算に変換され、および/または、この制御モデルの少なくとも1つのFXP演算は、プログラムコードの1つのFLP演算に変換される。この手法によって可能になるのは、プログラムコード内でFXP演算およびFLP演算の実質的に任意の比を調整することであり、これにより、制御システムの計算ユニットのFXPユニットおよびFLPユニットの負荷も調整可能である。
別の有利な実施例によれば、変換によって生じる、プログラムコードにおける固定小数点データ型から浮動小数点データ型への、および/または、プログラムコードにおける浮動小数点データ型から固定小数点データ型への型変換の個数が少なくとも局所的に最小になるように、制御モデルのFLP演算の選択されたFLP演算をプログラムコードのFXP演算に変換し、および/または、制御モデルのFXP演算の選択されたFXP演算をプログラムコードのFLP演算に変換する。この点から「局所的な最小」とは,FLP演算およびFXP演算の考えられ得るすべての選択が必ずしも評価されるのではなく、理論的に考えられ得る選択の一部だけが評価されることを意味し、考察される変化形態は、例えばランダムな選択とすることも可能である。
上記の方法の別の実施例では、上記のグラフィック制御モデルから形成されるプログラムコードは、ハードウェア記述言語のプログラムコードであり、このプログラムコードは、少なくとも1つのFXPユニットおよび少なくとも1つのFLPユニットを有する制御システムの計算ユニットを表し、付加的にはこの計算ユニットにより、上記の制御モデルの機能が実現される。すなわち、このプログラムコードは、所定のターゲットハードウェア上だけで動作できるのではなく、これはターゲットハードウェアをも表し得るのである。ここでは、例えば、上記のハードウェア記述言語により、FPGA(Field Programmable Gate Array)を表しかつプログラミングすることができる。すなわち、この場合にこのプログラムコードは、FPGAに設けられる機能構造が互いにどのように接続されて協調動作するかを定めるのである。今日のFPGAの一部には、例えばFLP演算に特別に使用される固定のHW構造(いわゆるDSPユニット)が含まれているため、FXPプログラムコードとFLPプログラムコードとを混合する比を考慮する際にこのようなハードウェア素子の負荷/利用度に着目することは有利である。
個別的にみれば、本発明にしたがってコンピュータ上で実現される方法を構成して発展させるのには多くの選択肢がある。これについては請求項1に従属する複数の請求項ならびに図面を参照して行われる本発明の有利な実施例の以下の詳細な説明を参照されたい。
図1には、グラフィック制御モデル4から、制御システム2上で実行可能な制御プログラム3を形成するための方法であって、コンピュータ上で実現される方法1が示されており、この制御システム2はプロセスインタフェース5を有する。制御システム2は、プロセスインタフェース5を介して、物理プロセス6の少なくとも1つのプロセス変量を制御システム2によって検出し、および/または、物理プロセス6に影響を及ぼすための出力量を制御システム2によって送出できるように構成されている。制御システム2は、FXPユニット(Fixed-Point-Execution Unit)8およびFLPユニット(Floating-Point-Execution Unit)9を備えた電子計算ユニット7を有する。
グラフィック制御モデル4には、図示の実施例において複数のモデル演算10,11が含まれている。制御モデル4のモデル演算10,11は、データ型が特定されていない。シミュレーションを制御モデル4によって実行しようとする場合(「オフラインシミュレーション」)、これらの計算は一般的に完全に複数のFLP演算として実行される。しかしながら、このことは、ここで関心の対象となっており、かつ、以下の説明の対象である制御モデル4からのコード生成プロセスとは直接的には関係がない。
従来技術からは図1のように、グラフィック制御モデル4のすべてのモデル演算10,11をプログラムコード13のFXP演算に翻訳して、生成したプログラムコード13をほとんど「汎用的に」使用できるようにすることが公知である。なぜならば一般的な制御システム2は、整数ないしは固定小数点数を計算するための少なくとも1つのFXPユニット8を有するが、浮動小数点演算を計算するためのFLPユニット9は必ずしも有する必要がないからである。この手法により、FLPユニット9によって使用されないため、制御システム2には部分的にしか負荷が加わらないことになる。
これに対し、図2に示した本発明によるコンピュータ上で実現される方法では、上記のグラフィック制御モデル4がプログラムコード13に翻訳されて、生成したプログラムコード13が少なくとも1つのFXP演算12と、少なくとも1つのFLP演算14とを有しており、生成したこのプログラムコード13が、実行可能な制御プログラム3に翻訳されて、制御システム2上で制御プログラム3を実行する際に制御プログラム3の一部分がFXPユニット8上で実行され、制御プログラム3の別の一部分がFLPユニット9で実行されるようにする。このことは、制御システム2の計算ユニット7の双方のユニット8,9が使用されることを意味する。
制御プログラム3を制御システム2のFXPユニット8にもFLPユニット9にも翻訳することは、図2において制御プログラム3と計算ユニット7との間の矢印によって示されている。生成したプログラム13が少なくとも1つのFXP演算12および少なくとも1つのFLP演算14を有するというこのような手法により、制御システム2の計算ユニット7のFXPユニット8もFLPユニット9も共に使用されることが強制され、これによってランタイム時の挙動が、図1に示した実施例に比べて改善される。
図3において一層詳細に再度示されているのは、制御モデル4のいくつかのモデル演算10,11が、プログラムコード13の複数のFXP演算12に翻訳され、制御モデル4のいくつかのモデル演算が複数のFLP演算14に変換されることである。ここでこの変換はつぎのような条件で行われる。すなわち、時間平均において計算ユニット7のFXPユニット8およびFLPユニット9の負荷が同程度になるように、制御モデル4のモデル演算10,11が、プログラムコード13のFXP演算12に変換される個数と、制御モデル4のモデル演算10,11が、プログラムコード13のFLP演算14に変換される個数とが決められるのである。
さらに、制御モデル4の変換すべきモデル演算10,11を選択する際に考慮されるのは、プログラムコード13のFXP演算12と、プログラムコード13のFLP演算14とが混合されて、制御システム2の計算ユニット7上で制御プログラム3を実行する際に、プロクラムコード13が計算ユニット7のFXPユニット8およびFLPユニット9上で同時に実行されるようにする。これらの演算を時間的に同時に実行しまた計算ユニット7のユニット8,9が時間的に同時に酷使されることにより、制御プログラム3の最適な実行時間について最大限の効果が得られる。
図3においてさらにわかるのは、上記の手法により、(制御プログラム3と、計算ユニット7のユニット8,9との間に示した)命令ストリームにおいてもFLP命令およびFXP命令の混合が得られるため、処理ユニット8,9の供給時にも、これらの2つのユニット8,9に同時に負荷が加えられることが保証されることである。
図4に示した方法のフローチャート1は実質的に、図3に示した方法のフローチャート1をベースにしている。実質的な違いは、上記のコード生成に対し、すでに制御モデル4においていつかのモデル演算がFXP演算10として、また別のいつかのモデル演算がFLP演算11として決定されているかないしは予定されていることにある。上記の方法では、制御モデル4のFXP演算10がプログラムコード13のFXP演算12に、また制御モデル4のFLP演算11がプログラムコード13のFLP演算14に単純に翻訳されることはない。むしろここでは、制御モデル4の少なくとも1つのFLP演算11がプログラムコード13のFXP演算12に変換され、および/または、制御モデル4においてFXP演算10として設けられている少なくとも1つのモデル演算がプログラムコード13のFLP演算14に変換されるようにする。この際に有利にはつぎのようにする。すなわち、プログラムコード13において変換によって発生する固定小数点数データ型から浮動小数点数データ型へのデータ型変換、および/または、プログラムコード13において変換によって発生した浮動小数点データ型から固定小数点データ型へのデータ型変換の個数が少なくとも局所的に最小になるように、制御モデル4のFLP演算11として決定された、モデル演算の選定された演算が、プログラムコード13のFXP演算12に変換され、および/または、制御モデル4のFXP演算12として決定されたないしは予定された、モデル演算の選定された演算が、プログラムコード13のFLP演算14に変換されるようにするのである。
図5,6および7にはそれぞれ、複数の伝達素子を有するブロック線図の形態で同じグラフィック制御モデル4が示されている。まず2つの入力量から制御偏差eが形成される。この制御偏差eは、上側の矢印線において係数Kpが乗算され、また下側の矢印線ではフィードバックむだ時間素子(Unit Delay)の後、係数Kiが乗算される。後続の加算素子sUでは2つの矢印線の結果が加算されて出力量Uが得られる。
以下では図4を考慮し、制御モデル4をプログラムコードに翻訳した結果を示す。このプログラムコードにはFXP演算だけが含まれている。この例は、(複数のログラムコードの以下の例も同様に)プログラミング言語Cで実現されている。FXP演算は整数データ型の変数だけで動作するため、このプログラムコードにはint変数だけが含まれている。種々異なるスケーリングを行った整数ないしは固定小数点数を互いに計算できるようにするため、対応するシフト演算(「<<」,「>>」)を行わなければならない。それ自体公知の固定小数点数四則演算の詳細はここでは重要ではなく、重要であるのは、ここで示すプログラムコード例が結果的に、図1ないし4のようにFXPユニット8上だけ実行することができるという状況であり、これにより、ハードウェア資源が部分的にしか使用されないことである。
int e /* LSB: 2^-10 OFF: 0 MIN/MAX: -32 .. 31.9990234375 */;
int x /* LSB: 2^-6 OFF: 0 MIN/MAX: -512 .. 511.984375 */
static unsigned int Unit_Delay = 0
/* LSB: 2^-6 OFF: 0 MIN/MAX: 0 .. 1023.984375 */;
e = (int) ((((int) REF) - ((int) Y)) >> 1);
x = (int) (((unsigned int) (int) (e >> 4)) + Unit_Delay);
Unit _Delay = (unsigned int) x;
sU = (int) (((int) ((((int) e) * ((int) P_Kp)) >> 7)) + ((int) ((((int) x) * ((int) P_Ki)) >> 6)));
U = sU;。
つぎのコード例は、図5に示した制御モデル4のプログラムコードへの完全な翻訳を示しており、このプログラムコードは、FLP演算だけで実現されており、その結果、浮動小数点数データ型の変数だけが含まれている。ここでは浮動小数点数演算が扱われるため、FXP演算の場合のような絶え間ないリスケーリングは不要である。制御プログラムに翻訳されるこのようなプログラムコードは、制御システム2の計算ユニット7のFLPユニット上だけで実行されることになるため、FXPユニット8は利用されないままになる。
float e;
float x;
static float Unit_Delay = 0.F;
e = REF - Y;
x = e + Unit_Delay;
Unit_Delay = x;
sU = (e * P_Kp) + (x * P_Ki)
U = sU;。
図6および7に示した実施例においてそれぞれ出発点としているのは、グラフィック制御モデル4ないしはそこに示された複数の演算が、通常のように、上記のプログラムコードにおけるFXP演算に翻訳されることである。破線でマークした複数の領域はそれぞれ、プログラムコードのFLP演算に翻訳される制御モデル4の部分を示している。
以下で説明するプログラムコードは、図6に示した制御モデルの翻訳を表している。ここで容易にわかるのは、形成したプログラムコードが、浮動小数点数演算も固定小数点数演算も(FLP演算およびFXP演算)共に有することであり、これらの演算は、ここから形成される制御プログラムが、図1ないし4に示したFXPユニット8上で実行されると共にFLPユニット9上でも実行されることである。
float Ki;
float x;
int Kp /* LSB: 2^-6 OFF: 0 MIN/MAX: -512 .. 511.984375 */;
int e /* LSB: 2^-10 OFF: O MIN/MAX: -32 .. 31.9990234375 */;
e =(int) ((((int) REF) - ((int) Y)) >> 1);
Kp = (int) ((((int) e) * ((int) P_Kp)) >> 7);
x = (((float) e) * 0.0009765625F) + Unit_Delay;
Ki = x * P_Ki;
sU = (int) (((((float) Kp) * 0.015625F) + Ki) * 64.F);
U = sU;
Unit Delay = x;。
以下のプログラムコードは、図7に示した制御モデル4の翻訳を表しており、制御偏差eと係数Kpとの乗算だけが浮動小数点数四則演算で実行される。この結果、変数Kpだけが浮動小数点データ型であり、他のすべての変数および計算は整数データ型であり、ないしはFXP演算である。
float Kp;
int Ki /* LSB: 2^-6 OFF: 0 MIN/MAX: -512 .. 511.984375 */;
int e /* LSB: 2^-10 OFF: 0 MIN/MAX: -32 .. 31.9990234375 */;
int x /* LSB: 2^-6 OFF: 0 MIN/MAX: -512 .. 511.984375 */;
e = (int) ((((int) REF) - ((int) Y)) >> 1);
Kp =((float) e) * 0.0009765625F * P_Kp;
x = (int) (((unsigned int) (int) (e >> 4)) + Unit _Delay);
Ki = (int) ((((int) x) * ((int) P_Ki)) >> 6);
sU = (int) ((Kp + (((float) Ki) * 0.015625F)) * 64.F);
U = sU;
Unit_Delay = (unsigned int) x;。
上記のプログラムコード例を比較することによって明らかになったのは、プログラムコードのFXP演算ないしはFLP演算に変換されるグラフィック制御モデル4の部分の選択が、異なる2つの演算タイプについてのプログラムコードの混合に影響を及ぼすことである。一般的な説明部分で述べた判定基準により、このような混合を所期のように行うことができる。
2 制御システム、 3 制御プログラム、 4 グラフィック制御モデル、 5 プロセスインタフェース、 6 物理プロセス、 7 電子計算ユニット、 8 FXPユニット、 9 FLPユニット、 10,11 モデル演算、 12 FXP演算、 13 プログラムコード、 14 FLP演算

Claims (13)

  1. グラフィック制御モデル(4)から、制御システム(2)上で実行可能な制御プログラム(3)を形成するため、コンピュータ上で実現される方法(1)であって、
    前記制御システム(2)は、プロセスインタフェースを有しており、
    前記制御システム(2)は、前記プロセスインタフェース(5)を介して、物理プロセス(6)の少なくとも1つのプロセス変量を前記制御システム(2)によって検出し、および/または、前記物理プロセス(6)に影響を及ぼすための出力量を前記制御システム(2)によって送出することができるように構成されており、
    前記制御システム(2)は、少なくとも1つの固定小数点数演算実行ユニット(FXPユニット,8)と、少なくとも1つの浮動小数点数演算実行ユニット(FLPユニット,9)とを有する少なくとも1つの電子計算ユニット(7)を有しており、
    前記グラフィック制御モデル(4)は複数のモデル演算(10,11)を有している、コンピュータ上で実現される方法(1)において、
    前記グラフィック制御モデル(4)をプログラムコード(13)に翻訳して、生成される当該プログラムコード(13)が少なくとも1つのFXP演算(12)と少なくとも1つのFLP演算(14)を有するようにし、
    生成された前記プログラムコード(13)を前記実行可能な制御プログラム(3)に翻訳して、前記制御システム(2)上で前記制御プログラム(3)を実行する際に当該制御プログラム(3)の一部分が前記FXPユニット(8)上で実行され、当該制御プログラム(3)の別の一部分が前記FLPユニット(9)で実行されるようにした、
    ことを特徴とする方法(1)。
  2. 請求項1に記載の、コンピュータ上で実現される方法(1)において、
    時間平均において前記制御システム(2)の前記計算ユニット(7)の前記FXPユニット(8)および前記FLPユニット(9)の負荷が同程度になるような個数の前記制御モデル(4)のモデル演算(10,11)を、前記制御プログラムコード(13)の前記FXP演算(12)および前記FLP演算(14)に翻訳する、
    ことを特徴とする方法(1)。
  3. 請求項1または2に記載の、コンピュータ上で実現される方法(1)において、
    前記制御システム(2)の前記計算ユニット(7)上で前記制御プログラム(3)を実行する際に、前記プログラムコード(13)が、前記計算ユニット(7)の前記FXPユニット(8)および前記FLPユニット(9)上で同時に実行されるように、前記プログラムコード(13)のFXP演算(12)と、前記プログラムコード(13)のFLP演算(14)とを混合する、
    ことを特徴とする方法(1)。
  4. 請求項1から3までのいずれか1項に記載の、コンピュータ上で実現される方法(1)において、
    前記プログラムコード(13)のFLP演算(14)の個数に対するFXP演算(12)の個数の比は、単位時間当たりに前記FXPユニット(8)上で実行可能なFXP演算と、前記FLPユニット(9)上で実行可能なFXP演算との比に対応する、
    ことを特徴とする方法(1)。
  5. 請求項1から4までのいずれか1項に記載の、コンピュータ上で実現される方法(1)において、
    前記FXPユニット(8)上で計算するため、前記制御モデル(4)の整数のモデル演算を前記プログラムコード(13)のFXP演算(12)に翻訳し、例えば、ループ、switch-case演算またはビット演算に対するインクリメントまたはデクリメントカウンタを前記プログラムコード(13)のFXP演算(12)に翻訳する、
    ことを特徴とする方法(1)。
  6. 請求項1から5までのいずれか1項に記載の、コンピュータ上で実現される方法(1)において、
    前記プログラムコード(13)におけるFXP演算に翻訳する際に、固定小数点数リスケーリングが行われ得る、前記制御モデル(4)のモデル演算(10,11)を、前記プログラムコード(13)のFLP演算(14)に変換する、
    ことを特徴とする方法(1)。
  7. 請求項1から6までのいずれか1項に記載の、コンピュータ上で実現される方法(1)において、
    前記計算ユニット(7)がmビットFLPユニット(9)を有しているがmビットFXPユニット(8)を有していない場合、前記プログラムコード(13)におけるFXP演算として翻訳するときに、当該プログラムコードにおいて1つまたは複数のmビットFXP演算が生じ得る、前記制御モデル(4)のモデル演算(10)を、その代わりに前記プログラムコードにおける1つまたは複数のmビットFLP演算に変換する、
    ことを特徴とする方法(1)。
  8. 請求項1から7までのいずれか1項に記載の、コンピュータ上で実現される方法(1)において、
    前記制御モデル(4)が複数の並列の矢印線を有する場合、前記制御モデル(4)の複数のモデル演算(10,11)の矢印線のうちで、FXP演算に翻訳するときに前記プログラムコード(13)おいて最も多くのFXPリスケーリングを有し得る矢印線を、前記プログラムコード(13)のFLP演算(14)に変換する、
    ことを特徴とする方法(1)。
  9. 請求項1から8までのいずれか1項に記載の、コンピュータ上で実現される方法(1)において、
    前記制御モデル(4)における少なくとも1つのモデル演算を、FLP演算(11)としかつ前記プログラムコード(13)のFXP演算(12)に変換し、および/または、
    前記制御モデル(4)における少なくとも1つのモデル演算を、FXP演算(10)としかつ前記プログラムコード(13)のFLP演算(14)に変換する、
    ことを特徴とする方法(1)。
  10. 請求項9に記載の、コンピュータ上で実現される方法(1)において、
    変換によって生じる、前記プログラムコード(13)における固定小数点データ型から浮動小数点データ型への、および/または、前記プログラムコード(13)における浮動小数点データ型から固定小数点データ型への型変換の個数が少なくとも局所的に最小になるように、前記制御モデル(4)のFLP演算(11)として決定され選択されたモデル演算を前記プログラムコード(13)のFXP演算(12)に変換し、および/または、前記制御モデル(4)のFXP演算(12)として決定され選択されたモデル演算を前記プログラムコード(13)のFLP演算(14)に変換する、
    ことを特徴とする方法(1)。
  11. 請求項1から10までのいずれか1項に記載の、コンピュータ上で実現される方法(1)において、
    前記グラフィック制御モデル(4)から形成したプログラムコード(13)は、ハードウェア記述言語のプログラムコードであり、
    前記プログラムコード(13)は、少なくとも1つのFXPユニット(8)および少なくとも1つのFLPユニット(9)を有する制御システム(2)の前記計算ユニット(7)を表し、
    当該計算ユニット(7)により、前記制御モデル(4)の機能が実現される、
    ことを特徴とする方法(1)。
  12. 請求項11に記載の、コンピュータ上で実現される方法(1)において、
    前記ハードウェア記述言語は、FPGAを表しかつこれをプログラムする、
    ことを特徴とする方法(1)。
  13. コンピュータプログラムを有するコンピュータプログラム製品において、
    前記コンピュータプログラムがコンピュータによって実行される場合、前記コンピュータプログラムは、請求項1から12までのいずれか1項に記載の方法を実施するためのソフトウェア手段を有する、
    ことを特徴とするコンピュータプログラム製品。
JP2015044745A 2014-03-06 2015-03-06 グラフィック制御モデルから制御システム上で実行可能な制御プログラムを形成するためにコンピュータ上で実行される方法およびコンピュータプログラム Active JP6333201B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP14158000.1 2014-03-06
EP14158000.1A EP2916183B1 (de) 2014-03-06 2014-03-06 Verfahren zur Erzeugung eines auf einem Steuerungssystem ausführbaren Steuerungsprogramms

Publications (2)

Publication Number Publication Date
JP2015170367A true JP2015170367A (ja) 2015-09-28
JP6333201B2 JP6333201B2 (ja) 2018-05-30

Family

ID=50241136

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015044745A Active JP6333201B2 (ja) 2014-03-06 2015-03-06 グラフィック制御モデルから制御システム上で実行可能な制御プログラムを形成するためにコンピュータ上で実行される方法およびコンピュータプログラム

Country Status (3)

Country Link
US (1) US9928803B2 (ja)
EP (1) EP2916183B1 (ja)
JP (1) JP6333201B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115756269A (zh) 2021-09-02 2023-03-07 荣耀终端有限公司 翻译方法及电子设备
CN114997186B (zh) * 2021-09-02 2023-03-31 荣耀终端有限公司 翻译控件的控制方法及电子设备
EP4567585A1 (de) 2023-12-06 2025-06-11 dSPACE GmbH Verfahren zum erzeugen eines steuerungsprogrammes für eine zielplattform, vorrichtung zur datenverarbeitung, computerprogrammprodukt und datenträger
EP4654005A1 (de) 2024-05-22 2025-11-26 dSPACE GmbH Entwicklungssystem für graphische regelungstechnische modelle (autosar), in denen ein signal eines nicht unterstützten typs durch eine bibliotheksfunktion ersetzt wird
DE102024131471A1 (de) 2024-10-29 2026-04-30 Dspace Se & Co Kg Computerimplementiertes Verfahren zum Generieren eines Steuerungsprogrammes für eine Zielplattform, Verfahren zum Konfigurieren einer als Steuergerät ausgestalteten Zielplattform, Vorrichtung zur Datenverarbeitung, Computerprogrammprodukt und Datenträger

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1522910A1 (de) * 2003-10-10 2005-04-13 dSPACE GmbH Verfahren und Einrichtung zur Konfiguration eines Steuerungssystems

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804642B1 (en) * 1997-06-24 2004-10-12 Itt Manufacturing Enterprises, Inc. Apparatus and method for continuous speech recognition on a PCMCIA card
US6115795A (en) * 1997-08-06 2000-09-05 International Business Machines Corporation Method and apparatus for configurable multiple level cache with coherency in a multiprocessor system
US6681383B1 (en) * 2000-04-04 2004-01-20 Sosy, Inc. Automatic software production system
US8522196B1 (en) * 2001-10-25 2013-08-27 The Mathworks, Inc. Traceability in a modeling environment
US7885792B2 (en) * 2003-04-15 2011-02-08 The Mathworks, Inc. Programming Environment
DE102004037686A1 (de) * 2003-08-01 2005-02-17 Robert Bosch Gmbh Implementierungstypen bei der automatisierten Generierung von Code für Mikroprozessor basierte Steuergeräte
US7752559B1 (en) * 2003-12-05 2010-07-06 The Mathworks, Inc. Graphical model preparation for embedded deployment
US7821520B1 (en) * 2004-12-10 2010-10-26 Nvidia Corporation Fragment processor having dual mode register file
US7757222B2 (en) 2005-09-30 2010-07-13 Intel Corporation Generating efficient parallel code using partitioning, coalescing, and degenerative loop and guard removal
US8181150B2 (en) * 2006-05-12 2012-05-15 The Mathworks, Inc. System and method for synchronized workflow management
US8015543B1 (en) * 2007-01-10 2011-09-06 The Mathworks, Inc. Hardware specific code generation
US7865254B2 (en) * 2007-01-11 2011-01-04 The Mathworks, Inc. Modeling of control systems with open-loop representations and factorization of components
US9442701B1 (en) * 2007-06-21 2016-09-13 The Mathworks, Inc. Verifying models for exceptional behavior
US8219378B1 (en) * 2007-09-28 2012-07-10 The Mathworks, Inc. Automatic numerical simulation of processor environment
US8869103B2 (en) * 2008-10-06 2014-10-21 The Mathworks, Inc. Using intermediate representations to verify computer-executable code generated from a model
US8856726B2 (en) * 2009-09-14 2014-10-07 The Mathworks, Inc. Verification of computer-executable code generated from a slice of a model
US8381004B2 (en) * 2010-05-26 2013-02-19 International Business Machines Corporation Optimizing energy consumption and application performance in a multi-core multi-threaded processor system
US8629867B2 (en) * 2010-06-04 2014-01-14 International Business Machines Corporation Performing vector multiplication
US9081583B2 (en) * 2012-08-23 2015-07-14 National Instruments Corporation Compile time execution
US9235395B2 (en) * 2013-05-30 2016-01-12 National Instruments Corporation Graphical development and deployment of parallel floating-point math functionality on a system with heterogeneous hardware components
US9678726B1 (en) * 2015-03-27 2017-06-13 Amazon Technologies, Inc. Automatic generation of plugins for development tools

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1522910A1 (de) * 2003-10-10 2005-04-13 dSPACE GmbH Verfahren und Einrichtung zur Konfiguration eines Steuerungssystems

Also Published As

Publication number Publication date
EP2916183B1 (de) 2016-11-09
JP6333201B2 (ja) 2018-05-30
US20150255038A1 (en) 2015-09-10
US9928803B2 (en) 2018-03-27
EP2916183A1 (de) 2015-09-09

Similar Documents

Publication Publication Date Title
JP6333201B2 (ja) グラフィック制御モデルから制御システム上で実行可能な制御プログラムを形成するためにコンピュータ上で実行される方法およびコンピュータプログラム
US8418154B2 (en) Fast vector masking algorithm for conditional data selection in SIMD architectures
JP2013545169A5 (ja)
Damavandpeyma et al. Modeling static-order schedules in synchronous dataflow graphs
US8799858B2 (en) Efficient execution of human machine interface applications in a heterogeneous multiprocessor environment
EP3912074B1 (en) Generating a synchronous digital circuit from a source code construct defining a function call
Wahler et al. FASA: A software architecture and runtime framework for flexible distributed automation systems
US10387126B2 (en) Data marshalling optimization via intermediate representation of workflows
Eichelberger et al. Experiences with the model-based generation of big data pipelines
Eassa et al. RISC-V based implementation of Programmable Logic Controller on FPGA for Industry 4.0
Bispo et al. Transparent trace-based binary acceleration for reconfigurable HW/SW systems
Wu et al. Task mapping and scheduling on RISC-V MIMD processor with vector accelerator using model-based parallelization
US20230107200A1 (en) Program generation apparatus, program generation method and program
WO2010029812A1 (ja) マルチコアにおけるプログラミングシステム、その方法及びそのプログラム
KR20200121788A (ko) 프로세서 아키텍처들
CN120958431A (zh) 用于在实时平台上生成控制应用程序的系统和方法
US8775147B1 (en) Algorithm and architecture for multi-argument associative operations that minimizes the number of components using a latency of the components
Barnes et al. Checking process-oriented operating system behaviour using CSP and refinement
CN116483482B (zh) 深度学习任务处理方法、系统、装置、设备及介质
Heulot et al. Just-in-time scheduling techniques for multicore signal processing systems
JP5120166B2 (ja) 組込みソフトウェア開発支援システム、支援方法およびプログラム
Do et al. Self-timed periodic scheduling of data-dependent tasks in embedded streaming applications
Hajjar et al. Synthesizing safe control-command systems out of reusable components
Goulas et al. Coarse grain parallelization using integer programming
JP2007080049A (ja) 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180327

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180424

R150 Certificate of patent or registration of utility model

Ref document number: 6333201

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250