JP2015088188A - 制御装置の制御プログラムに影響を与えるための方法 - Google Patents

制御装置の制御プログラムに影響を与えるための方法 Download PDF

Info

Publication number
JP2015088188A
JP2015088188A JP2014218868A JP2014218868A JP2015088188A JP 2015088188 A JP2015088188 A JP 2015088188A JP 2014218868 A JP2014218868 A JP 2014218868A JP 2014218868 A JP2014218868 A JP 2014218868A JP 2015088188 A JP2015088188 A JP 2015088188A
Authority
JP
Japan
Prior art keywords
function
memory area
program code
memory
functions
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
JP2014218868A
Other languages
English (en)
Other versions
JP6080826B2 (ja
Inventor
ロルフスマイアー アンドレ
Andre Rolfsmeier
ロルフスマイアー アンドレ
フーフナーゲル トルステン
Thorsten Hufnagel
フーフナーゲル トルステン
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 JP2015088188A publication Critical patent/JP2015088188A/ja
Application granted granted Critical
Publication of JP6080826B2 publication Critical patent/JP6080826B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • 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/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13165Program plc by independent build in processor

Landscapes

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

Abstract

【課題】制御プログラムの情報が欠如している場合にも、制御プログラムのソースコード又は記述を把握することなく制御プログラムを変更可能にする。【解決手段】関数呼び出しに応じて、制御プログラムのプログラムコードを検査し、関数呼び出しに関連したジャンプ先アドレスと、リターン命令のアドレスとを検出し、各プログラムコードが占有するメモリ領域のサイズを検出し、各第1の関数に割り当てられているメモリ領域のサイズとアドレスとを有する識別子を表示ユニットに表示し、第1の関数の少なくとも1つを削除すべきであるとして選択し、選択された第1の関数のサイズとアドレスとを情報構造に格納し、選択された第1の関数の関数呼び出しを非アクティベートし、及び/又は、選択された第1の関数を第2の関数によって置換し、選択された第1の関数のプログラムコードを、第2の関数のプログラムコードによって上書きする。【選択図】図1

Description

本発明は、請求項1の上位概念に記載の、制御装置の制御プログラムに影響を与えるための方法に関する。
多数の技術分野において、多数の制御装置が使用されている。特に重要な使用分野は、とりわけ自動車におけるエンジン、トランスミッション、駆動装置の制御、並びに、航空機におけるエンジン装置の制御である。このような制御装置においては、一般的に、バイナリ形態のプログラムコードが格納されている。それぞれ有利にはリードオンリーメモリに格納されている制御プログラムは、簡単には変更することができない。
制御装置に影響を与えるための方法は、DE102004027033A1から公知である。
DE102004027033A1
このような技術背景を前にして、本発明の課題は、制御装置の制御プログラムに影響を与えるための従来技術を発展させる方法を提供することである。
この課題は、請求項1の特徴部分に記載の、制御装置の制御プログラムに影響を与えるための方法によって解決される。本発明の有利な実施形態は、従属請求項に記載されている。
本発明の第1の対象によれば、制御装置の制御プログラムに影響を与えるための方法であって、前記制御プログラムは、複数の第1の関数を含んでおり、前記複数の第1の関数のうちの少なくとも1つは、アクチュエータを制御するために構成されており、メモリが設けられており、前記メモリは、前記第1の関数が割り当てられたサブプログラムによって占有されているメモリ領域を有しており、前記制御プログラムは、バイナリのプログラムコードとして設けられており、前記制御プログラムの前記プログラムコードには、前記複数の第1の関数のうちの1つの関数呼び出し時に、ジャンプ先アドレスが設けられており、前記ジャンプ先アドレスは、前記関数呼び出しに関連した前記サブプログラムのメモリアドレスを指示するものであり、前記サブプログラムは、バイナリのプログラムコードのシーケンスとして設けられており、前記サブプログラムの前記プログラムコードのシーケンス末尾には、リターン命令が設けられている、方法において、関数呼び出しの発生に応じて、前記制御プログラムの前記プログラムコードを検査し、前記関数呼び出しに関連したジャンプ先アドレスと、前記リターン命令のアドレスとを検出し、前記検出から、各前記プログラムコードによって占有されている前記メモリのメモリ領域のサイズを検出し、前記第1の関数に割り当てられた識別子を、各前記第1の関数に割り当てられている、前記メモリ領域のサイズとアドレスと共に、コンピュータシステムの一部として構成されている表示ユニットに表示し、前記コンピュータシステムによって、前記複数の第1の関数のうちの少なくとも1つを、削除すべきであるとして選択し、前記選択された第1の関数の前記サイズと前記アドレスとを、情報構造に格納し、前記選択された第1の関数の少なくとも1つの関数呼び出しを非アクティベートし、及び/又は、前記選択された第1の関数を第2の関数によって置換し、前記選択された第1の関数の前記プログラムコードを、前記第2の関数のプログラムコードによって上書きする、ことを特徴とする方法が提供される。
本発明における情報構造という用語は、データ、並びに、データ構造、並びに、作業プログラム内のデータ構造を意味することに留意されたい。さらにサブシステムという用語は、選択された関数、すなわち削除すべき関数の、又は、メモリのうち占有されていない領域の、有利にはグラフィカルに示されたモデルを意味することに留意されたい。この場合には各選択された第1の関数と、占有されていない空きメモリ領域とに、それぞれ1つのサブシステムを割り当てると有利である。さらに“識別子”という用語は、特にサブプログラムのいわゆる最初の仮の名前を意味することに留意されたい。基本的に本来の、すなわち“正しい”関数名が検出された後には、この最初の仮の名前はこの“正しい”関数名に置換される。
制御装置の制御プログラムに影響を与えるための本発明の方法の利点は、既にエンジン制御のために使用中の比較的古い制御装置であっても、制御プログラムのソースコードを把握することなく、又は、サブプログラムの一覧乃至サブプログラムの名前及びジャンプ先アドレスを有する制御プログラムの記述を把握することなく、制御プログラムを変更できること、いわゆるアップデートを実施できることである。本発明の方法によれば、ユーザは、制御プログラムの作成者の情報の欠如には充分に左右されなくなる。本発明の方法によれば、エンジンのチューニング分野においても、制御プログラムに簡単かつ低コストに非常に広範囲に介入することができる。
本発明の方法の1つの発展形態においては、削除すべき第1の関数が複数選択され、複数の第2の関数によって置換される。このために、識別子によって名付けられた関数が、当該関数のサイズとアドレスと共に、ディスプレイユニットにグラフィカルに表示される。その後、変更又は削除すべき関数が選択され、第2の関数に置換される。さらにメモリが、サブプログラムによって占有されているメモリ領域の他に、空きメモリ領域も有していると有利である。研究によって、削除すべきであるとして選択された第1の関数によって占有されているメモリ領域と、空きメモリ領域とにも、それぞれ一義的なセグメント名を割り当て、情報構造に格納すると有利であることが判明している。有利には、識別子はセグメント名に相当しているか、又は、識別子とセグメント名とは同一である。従ってつまり、各空きメモリ領域に対する情報構造には、識別子と、サブプログラムの呼び出し用のジャンプ先アドレスと、長さ、すなわちサブプログラムのサイズと、セグメント名とが格納されていることとなる。セグメント名を割り当てることの利点は、メモリ領域が複数ある場合に、さらなる別の順序付け基準を使用できること、及び、セグメント名に応じた分類、すなわち順序付けを実施できることである。
別の1つの発展形態においては、削除すべき前記第1の関数のメモリ領域のサイズとアドレスの分析から、統合された個々のメモリ領域と、個々のメモリ領域のサイズとアドレスとを検出して、情報構造に格納すると有利である。別の1つの実施形態においては、前記コンピュータシステムによって、削除すべき第1の関数の各メモリ領域のため、及び/又は、各空きメモリ領域のために、前記第2の関数の前記プログラムコードを作成する前に、空のサブシステムを形成してメモリ領域に割り当て、そして、当該メモリ領域へのサブシステムの割り当てを、情報構造及び/又はサブシステムに格納する。特に有利には、第2の関数も、空のサブシステムに割り当てる。さらに1つの実施形態によれば、空のサブシステムにメタ情報を割り当て、当該メタ情報を、情報構造及び/又はサブシステムに格納する。
別の1つの発展形態では、複数のサブシステム同士を、プログラム呼び出しによって互いに関連付け、前記複数のサブシステム同士を結び付けている当該関連付けを、情報構造及び/又はサブシステムに格納する。研究により、各サブシステムにつき1つの別個のプログラムコードを、有利にはCファイルの形態で作成すると有利であることが判明している。もちろん、別のプログラミング言語も使用可能である。
有利な1つの実施形態によれば、前記第2の関数に対し、コンパイラによってバイナリのプログラムコードを作成し、メタ情報が存在する場合には、当該メタ情報を、前記バイナリのプログラムコードで入力する。
研究により、前記第1の関数に割り当てられた前記メモリ領域が、所定の最小サイズを上回っている場合にのみ、前記第1の関数に割り当てられた当該メモリ領域を前記コンピュータシステムに示すと有利であることが判明している。別の1つの実施形態においては、選択された唯1つの第1の関数の、又は、選択された複数の第1の関数の前記メモリ領域が、前記第2の関数のサイズに対して充分であるか否かを、チェックプログラムによって検査すると有利である。
別の1つの実施形態においては、ヒューリスティック法によってメモリ領域のチェックを実施し、使用されているブロックの数及び/又は形式によって第2の関数のメモリ消費量を求める。特に有利な1つの実施形態においては、前記第2の関数の前記バイナリのプログラムコードの作成時に、当該第2の関数のバイナリのプログラムコードを複数のメモリ領域に割り当てる際、当該複数のメモリ領域への割り当てに基づいて、作成されたプログラムコードに適当なジャンプ命令を挿入する。この場合における適当なジャンプ命令という用語は、特に、メモリ領域のアドレス末尾において、さらなる別のメモリ領域のアドレス先頭を指示するジャンプ命令が呼び出されることを意味する。プログラムコードの作成が、プログラミング言語から、特にCプログラミングステップからバイナリのプログラムコードを作成するコンパイルステップを意味することは自明である。特に、第2の関数のバイナリのプログラムコードを、1つ又は複数の割り当てられたメモリ領域に書き込むと有利である。
有利な1つの発展形態においては、前記第2の関数の割り当て後、残っているメモリ領域を前記コンピュータシステムに表示する。第2の関数が複数ある場合に、さらなる別の第2の関数に対して充分なメモリ領域を使用することが可能であるか否かを連続的にチェックできるという利点がある。
別の1つの発展形態においては、前記メモリにおいて、前記選択された第1の関数の前記ジャンプ先アドレスのデスティネーションに、リターン命令を格納する。リターン命令が書き込まれるアドレスは、第2の関数のプログラムコードに対して非表示にされ、また、第2の関数のプログラムコードによって記述されないことは自明である。選択された複数の第1の関数のうちの1つの関数呼び出しが発見されず、非アクティベートされず、従ってさらに当該第1の関数が呼び出される場合には、プログラムコードが実行されると簡単にジャンプして戻り、プログラムが引き続き実行される。第2の関数が呼び出されると、当該呼び出しは、リターン命令に後続するメモリアドレスへとセットされる。もしくは換言すると、第2の関数は、リターン命令に後続するメモリアドレスにおいて初めて開始する。こうすることにより、メモリ内容の変更時における安全性が向上する。
別の1つの実施形態では、削除すべき第1の関数のメモリ領域の前に、既に空きメモリ領域が設けられている。2つの領域が統合されて1つの大きいメモリ領域が形成され、これに対して唯1つのサブシステムが形成され、複数の第2の関数のうちの1つに割り当てられる。第1の関数の呼び出しが第2の関数の途中にジャンプしないよう保証するために、第1の関数のジャンプ先アドレスの元々のアドレス位置にリターン命令がセットされる。第2の関数のプログラムコードは、メモリ領域の残りの領域を占有しているが、リターン命令のアドレスは占有していない。第2の関数のための全ての呼び出しが、第2の関数の開始アドレスを指示することは自明である。
以下、本発明を、図面を参照しながらより詳細に説明する。図面では、同じ種類の部分には同一の参照符号を付している。図示した実施形態は非常に概略化されている。すなわち間隔や、縦方向及び横方向の長さは縮尺通りではなく、特に明記しない限り、相互に導出可能な幾何学的関係性を示しているわけではない。
ディスプレイユニットに接続された制御装置の概略構造図である。 メモリユニットの変更前及び変更後における、図1のメモリの詳細な細分図である。 本発明の方法の1つの実施形態の概略図である。
図1は、メモリSP1と、インターフェースユニットSIと、プロセッサPCと有する制御装置ECUを示す。制御装置ECUは、インターフェースユニットSIを介してコンピュータシステムGUIにデータ接続されている。コンピュータシステムGUIは、ディスプレイユニット(図示せず)を含む。一般的にディスプレイユニットは、グラフィカルインターフェースユニットとも呼ばれている。制御装置ECUでは、プロセッサPCによって制御プログラムが処理される。制御プログラムは、バイナリのプログラムコードとして設けられており、メインプログラムとも呼ぶことができる。制御プログラムは、図2に図示された複数の第1の関数F1A,F1B,F1C・・・F1Nを含む。複数の第1の関数F1A,F1B,F1C・・・F1Nの少なくとも一部は、有利には1つ又は複数のアクチュエータ(図示せず)を制御するというタスクを有する。さらに、第1の関数F1A,F1B,F1C・・・F1Nには、サブプログラムが割り当てられている。
制御プログラムは、プロセッサPCによって処理される。制御プログラムのプログラムコードには、第1の関数の1つを呼び出すためにジャンプ先アドレスが設けられている。このジャンプ先アドレスは、関数呼び出しに関連しているサブプログラムのメモリアドレスを示すものである。各サブプログラムは、制御プログラムと同様に、バイナリのプログラムコードのシーケンスとして設けられている。サブプログラムのプログラムコードのシーケンス末尾において、リターン命令によってメインプログラムの所定の箇所にジャンプして戻り、引き続き、制御プログラムのプログラムコードが処理される。
制御プログラムのプログラムコードは、関数呼び出しの発生に応じてコンピュータシステムGUIによって検査され、当該関数呼び出しに関連したジャンプ先アドレスと、リターン命令のアドレスとが検出され、この検出から、各サブプログラムによって占有されているメモリSP1のメモリ領域のサイズが導出される。さらに、検出されたサブプログラムに対して識別子が設けられる。この場合の「識別子」という用語は、サブプログラムに割り当てられる名称を含んでいる。検出されたデータ、すなわち検出された第1の関数F1A,F1B,F1C・・・F1Nのサイズとアドレスと、識別子とは、図3に図示された情報構造ISTに格納される。さらに、第1の関数F1A,F1B,F1C・・・F1Nに割り当てられた識別子は、各第1の関数F1A,F1B,F1C・・・F1Nに割り当てられているメモリ領域のサイズとアドレスと共に、ディスプレイユニットに表示される。
図2は、図1に図示されたメモリSP1に関する、メモリ領域の占有状況を示す概略図である。以下では、図1との相違点のみ説明する。メモリSP1には、複数の第1の関数F1A,F1B,F1C・・・F1Nが格納されている。第1の関数F1A,F1B,F1C・・・F1Nのうちのいくつかの間には、空きメモリ領域FR1及びFR2が形成されている。コンピュータシステムGUIによって、検出された複数の第1の関数F1A,F1B,F1C・・・F1Nから、1番目の第1の関数F1Aと2番目の第1の関数F1Bとが、消去すべきであるとして選択される。最後に、選択された第1の関数F1Aのプログラムコードと、選択された第1の関数F1Bのプログラムコードとが、1番目の第2の関数F2Aのプログラムコードと、2番目の第2の関数F2Bのプログラムコードとによって上書きされる。プログラムコードが検査された後、コンピュータシステムGUIによって、1番目の第2の関数F2Aと2番目の第2の関数F2Bとが、これまで第1の関数F1Aと第1の関数F1Bとが格納されていた場所に格納される。換言すると、選択された第1の関数F1A及び第1の関数F1Bが置換される。
図3は、コンピュータシステムGUIの構造の一部の概略図である。以下では、図1及び図2との相違点のみ説明する。第1ステップU1における制御プログラムのプログラムコードの分析時、つまり検査時に、削除すべき第1の関数F1A及びF1Bに関する検出されたデータが情報構造ISTに格納される。検出されたデータに加えてさらに、削除すべき第1の関数F1A及びF1Bのメモリ領域にセグメント名が割り当てられ、情報構造ISTに格納される。従って、第1の関数F1A及びF2Bが割り当てられていたが今は空き状態として分類されている2つのメモリ領域に関して、識別子と、当該空きメモリ領域の開始アドレスと、メモリ領域の長さ、すなわちサイズと、セグメント名とが、情報構造ISTに格納されることとなる。
次いで、1番目の第1の関数F1Aに関連した空きメモリ領域に、第1サブシステムSUB1が割り当てられ、2番目の第1の関数F1Bに関連した空きメモリ領域に、第2サブシステムSUB2が割り当てられる。メモリSP1のメモリ領域の、変更された割り当ては、メモリSP1のモデルMSP1としてディスプレイユニットに表示される。空きメモリ領域FR1及びFR2も、ディスプレイユニットに表示される。ここでは、2つの空きメモリ領域FR1及びFR2は、サブシステムには関連付けられていない。図示していない別の択一的実施形態では、空きメモリ領域FR1及びFR2のサイズが所定の最小サイズを上回っている場合には、当該空きメモリ領域FR1及びFR2をサブシステムに関連付け、表示することも可能である。
第2ステップU2においては、情報構造ISTからのデータを使用して、第1サブシステムSUB1に対して1番目の第2の関数F2AのCコードが作成され、第2サブシステムSUB2に対して2番目の第2の関数F2BのCコードが作成され、そして、これらのCコードが各々のサブシステムSUB1及びSUB2に割り当てられる。Cコードの作成時には、コンパイラ専用のCコード命令の形成により、1番目の第2の関数F2Aと、2番目の第2の関数F2Bとが、それぞれ1つのセグメント名に割り当てられる。後続のコンパイルステップにおいては、コンパイラCIによって、第1オブジェクトデータCSUB1及び第2オブジェクトデータCSUB2として、バイナリのプログラムコードが作成される。作成された2つのオブジェクオデータCSUB1及びCSUB2は、バイナリのプログラムコードの他に、いわゆるメタアドレス情報を含む。第1オブジェクトデータCSUB1のプログラムコードが1番目の第2の関数F2Aに相当し、第2オブジェクトデータCSUB2のプログラムコードが2番目の第2の関数F2Bに相当することは自明である。
2つのオブジェクトデータCSUB1及びCSUB2の、各々必要とするメモリ領域のサイズを検査し、使用可能なメモリ領域のサイズとそれぞれ比較すると有利であることが、研究により判明している。比較の際に、割り当てられているメモリ領域のサイズが充分ではないことが判明した場合には、さらなる別の第1の関数F1C及びF1Dを削除することによって、さらなるメモリ領域を形成することができる、及び/又は、第1の関数F1A,F1B,F1C・・・F1Nによって占有されていないメモリ領域FR1及びFR2が早くも使用される。
第2の関数F2A及びF2Bのうちの1つを、複数のサブシステム又は複数のメモリ領域に割り当てる場合には、Cコードの作成時に、これに応じたジャンプ命令が挿入される。
隣接している空きメモリ領域と、削除済みの第1の関数のメモリ領域とを統合して、より大きな1つの空きメモリ領域にすることができることに留意すべきである。後続のステップでは、リンカLIによって、オブジェクトデータCSUB1及びCSUB2の、作成されたバイナリのプログラムコードが、空きメモリ領域に割り当てられる。つまりここでは、削除済みの第1の関数のメモリ領域、又は、統合された空きメモリ領域に割り当てられる。リンカLIには、割り当てに必要な情報が、情報構造ISTから供給される。有利には、情報構造ISTの情報から、リンカLIが読出可能ないわゆるリンカコマンドファイルが作成される。その後、リンカLIは、有利には“ELF”データフォーマットのバイナリデータELFを作成する。“ELF”フォーマットのバイナリデータELFは、削除済みの第1の関数のメモリ領域、又は、統合された空きメモリ領域に割り当てられた、オブジェクトデータCSUB1及びCSUB2のプログラムコードを含む。さらに、リンカLIは、個々のセグメントの位置及びサイズに関する情報を有する、いわゆる“マップ”データMAPを作成する。
さらなるステップにおいては、“マップ”データMAPの内容と、情報構造ISTの内容とを比較することによって、各サブシステムSUB1及びSUB2の不要なメモリ領域が検出され、ディスプレイユニットに表示される。
方法の個々のステップを、複数回実行可能であることは自明である。特に、削除すべき第1の関数を最初に選択した後、さらに別の削除すべき第1の関数を選択することが可能である。コンピュータシステムGUIによるサイズの検査を常に実施することも可能である。さらには、最後のコード作成の結果を、変更されたブロックと組み合わせて、メモリ領域消費量のサイズをより良好に推定するために利用すると有利である。

Claims (19)

  1. 制御装置の制御プログラムに影響を与えるための方法であって、
    前記制御プログラムは、複数の第1の関数(F1A,F1B,F1C・・・F1N)を含んでおり、前記複数の第1の関数(F1A,F1B,F1C・・・F1N)のうちの少なくとも1つは、アクチュエータを制御するために構成されており、
    メモリ(SP1)が設けられており、
    前記メモリ(SP1)は、前記第1の関数(F1A,F1B,F1C・・・F1N)に割り当てられたサブプログラムによって占有されたメモリ領域を有しており、
    前記制御プログラムは、バイナリのプログラムコードとして設けられており、
    前記制御プログラムの前記プログラムコードには、前記複数の第1の関数(F1A,F1B,F1C・・・F1N)のうちの1つの関数呼び出し時に、ジャンプ先アドレスが設けられており、
    前記ジャンプ先アドレスは、前記関数呼び出しに関連した前記サブプログラムのメモリアドレスを指示するものであり、
    前記サブプログラムは、バイナリのプログラムコードのシーケンスとして設けられており、
    前記サブプログラムの前記プログラムコードのシーケンス末尾には、リターン命令が設けられている、
    方法において、
    関数呼び出しの発生に応じて、前記制御プログラムの前記プログラムコードを検査し、
    前記関数呼び出しに関連したジャンプ先アドレスと、前記リターン命令のアドレスとを検出し、
    前記検出から、各前記サブプログラムによって占有されている前記メモリ(SP1)のメモリ領域のサイズを検出し、
    前記第1の関数(F1A,F1B,F1C・・・F1N)に割り当てられた識別子を、各前記第1の関数(F1A,F1B,F1C・・・F1N)に割り当てられている、前記メモリ領域のサイズとアドレスと共に、コンピュータシステム(GUI)の一部として構成されているディスプレイユニットに表示し、
    前記コンピュータシステム(GUI)によって、前記複数の第1の関数(F1A,F1B,F1C・・・F1N)のうちの少なくとも1つを、削除すべきであるとして選択し、
    前記選択された第1の関数(F1A,F1B,F1C・・・F1N)のサイズとアドレスとを、情報構造(IST)に格納し、
    前記選択された第1の関数(F1A,F1B,F1C・・・F1N)の少なくとも1つの関数呼び出しを非アクティベートし、及び/又は、前記選択された第1の関数(F1A,F1B,F1C・・・F1N)を第2の関数(F2A)によって置換し、
    前記選択された第1の関数(F1A,F1B,F1C・・・F1N)の前記プログラムコードを、前記第2の関数(F2A)のプログラムコードによって上書きする、
    ことを特徴とする方法。
  2. 削除すべき第1の関数(F1A,F1B,F1C・・・F1N)を複数選択し、複数の第2の関数(F2A,F2B)によって置換する、
    ことを特徴とする請求項1記載の方法。
  3. 前記メモリ(SP1)は、空きメモリ領域(FR1,FR2)を有する、
    ことを特徴とする請求項1記載の方法。
  4. 削除すべきであるとして選択された前記第1の関数(F1A,F1B)によって占有されている前記メモリ領域と、前記空きメモリ領域(FR1,FR2)とに、それぞれ一義的なセグメント名を割り当てる、
    ことを特徴とする請求項1から3のいずれか一項記載の方法。
  5. 削除すべき前記第1の関数(F1A,F1B)の前記メモリ領域のサイズとアドレスの分析から、統合された個々のメモリ領域と、個々のメモリ領域のサイズとアドレスとを検出して、前記情報構造(IST)に格納する、
    ことを特徴とする請求項1から4のいずれか一項記載の方法。
  6. 前記情報構造(IST)に、前記セグメント名を格納する、
    ことを特徴とする請求項4又は5記載の方法。
  7. 前記コンピュータシステム(GUI)によって、削除すべき第1の関数(F1A,F1B)の各メモリ領域のため、及び/又は、各空きメモリ領域のために、前記第2の関数(F1A,F2B)の前記プログラムコードを作成する前に、空のサブシステム(SUB1,SUB2)を作成して前記メモリ領域に割り当て、そして、当該メモリ領域への前記サブシステム(SUB1,SUB2)の前記割り当てを、前記情報構造(IST)及び/又は前記サブシステム(SUB1,SUB2)に格納する、
    ことを特徴とする請求項1から5のいずれか一項記載の方法。
  8. 前記第2の関数(F2A,F2B)を、空のサブシステム(SUB2)に割り当てる、
    ことを特徴とする請求項7記載の方法。
  9. 前記空のサブシステム(SUB1,SUB2)に、メタ情報を割り当て、当該メタ情報を、前記情報構造(IST)及び/又は前記サブシステム(SUB1,SUB2)に格納する、
    ことを特徴とする請求項7又は8記載の方法。
  10. 複数のサブシステム(SUB1,SUB2)同士を、プログラム呼び出しによって互いに関連付け、当該関連付けを、前記情報構造(IST)及び/又は前記サブシステム(SUB1,SUB2)に格納する、
    ことを特徴とする請求項7から9のいずれか一項記載の方法。
  11. 各サブシステム(SUB1,SUB2)につき1つの、Cファイルの形態の別個のプログラムコードを作成する、
    ことを特徴とする請求項7から10のいずれか一項記載の方法。
  12. 前記第2の関数(F2A,F2B)に対し、コンパイラ(CI)によってバイナリのプログラムコードを作成し、メタ情報が存在する場合には、当該メタ情報を、前記バイナリのプログラムコードで入力する、
    ことを特徴とする請求項1から11のいずれか一項記載の方法。
  13. 前記第1の関数(F1A,F1B,F1C・・・F1N)に割り当てられた前記メモリ領域が、所定の最小サイズを上回っている場合に、前記第1の関数に割り当てられた当該メモリ領域を前記コンピュータシステム(GUI)に示す、
    ことを特徴とする請求項1から12のいずれか一項記載の方法。
  14. 前記選択された第1の関数(F1A,F1B)の前記メモリ領域が、前記第2の関数(F2A,F2B)のサイズに対して充分であるか否かを、チェックプログラムによって検査する、
    ことを特徴とする請求項1から13のいずれか一項記載の方法。
  15. ヒューリスティック法によって前記メモリ領域のチェックを実施し、使用されているブロックの数及び/又は形式によって前記第2の関数(F1A,F2B)のメモリ消費量を求める、
    ことを特徴とする請求項1から14のいずれか一項記載の方法。
  16. 前記第2の関数(F2A,F2B)の前記バイナリのプログラムコードの作成時に、当該第2の関数(F2A,F2B)の前記バイナリのプログラムコードを複数のメモリ領域に割り当てる際、当該割り当てに基づいて、前記プログラムコードに適当なジャンプ命令を挿入する、
    ことを特徴とする請求項1から15のいずれか一項記載の方法。
  17. 前記第2の関数の割り当て後、残っているメモリ領域を前記コンピュータシステムに表示する、
    ことを特徴とする請求項1から16のいずれか一項記載の方法。
  18. 前記第2の関数の前記バイナリのプログラムコードを、前記割り当てられたメモリ領域に書き込む、
    ことを特徴とする請求項1から17のいずれか一項記載の方法。
  19. 前記メモリ(SP1)において、前記選択された第1の関数(F1A,F1B)の前記ジャンプ先アドレスのデスティネーションに、リターン命令を格納する、
    ことを特徴とする請求項1から18のいずれか一項記載の方法。
JP2014218868A 2013-10-29 2014-10-28 制御装置の制御プログラムに影響を与えるための方法 Active JP6080826B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP13190584.6 2013-10-29
EP13190584.6A EP2869145B1 (de) 2013-10-29 2013-10-29 Verfahren zur Beeinflussung eines Steuerprogramms eines Steuergerätes

Publications (2)

Publication Number Publication Date
JP2015088188A true JP2015088188A (ja) 2015-05-07
JP6080826B2 JP6080826B2 (ja) 2017-02-15

Family

ID=49486373

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014218868A Active JP6080826B2 (ja) 2013-10-29 2014-10-28 制御装置の制御プログラムに影響を与えるための方法

Country Status (4)

Country Link
US (1) US9791844B2 (ja)
EP (1) EP2869145B1 (ja)
JP (1) JP6080826B2 (ja)
CN (1) CN104570787B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11521040B2 (en) 2018-01-19 2022-12-06 Fujitsu Limited Computer-readable recording medium, learning method, and learning device

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101757407B1 (ko) * 2015-06-11 2017-07-12 라인 가부시키가이샤 바이너리 병합 장치, 방법 및 컴퓨터 프로그램
US9929734B2 (en) 2015-09-08 2018-03-27 Dspace Digital Signal Processing And Control Engineering Gmbh Method for changing the configuration of a programmable logic module
EP3142032B1 (de) 2015-09-08 2019-01-16 dSPACE digital signal processing and control engineering GmbH Verfahren zum ändern der konfiguration eines programmierbaren logikbausteins
DE102015115022A1 (de) 2015-09-08 2017-03-09 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren zum Ändern der Konfiguration eines programmierbaren Logikbausteins

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1196051A (ja) * 1997-09-16 1999-04-09 Nintendo Co Ltd ソフトウェア書換システム
JP2002335186A (ja) * 2001-01-25 2002-11-22 Toshiba Corp 複数の無線通信システムに対応可能な無線通信装置
JP2011028648A (ja) * 2009-07-28 2011-02-10 Renesas Electronics Corp オブジェクトコード生成システム、及びオブジェクトコード生成方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3703645C2 (de) * 1987-02-06 1998-08-06 Bosch Gmbh Robert Verfahren zur Beeinflussung der Fahrgeschwindigkeit eines Kraftfahrzeugs und Einrichtung zur Durchführung des Verfahrens
DE19531435B4 (de) * 1995-08-26 2006-11-16 Fev Motorentechnik Gmbh Verfahren zur Anpassung der Steuerung eines elektromagnetischen Aktuators an betriebsbedingte Veränderungen
US7043393B2 (en) * 2001-08-15 2006-05-09 National Instruments Corporation System and method for online specification of measurement hardware
DE10335989B4 (de) 2003-08-01 2019-07-11 Kw-Software Gmbh Online-Änderungen von CIL-Code-Programmen für die Industrieautomatisierung
DE102004027033B4 (de) 2004-03-15 2009-07-02 Dspace Digital Signal Processing And Control Engineering Gmbh Beeinflussungsgerät für Steuergeräte und Verfahren zur Beeinflussung eines Steuergeräts
JP4516046B2 (ja) * 2006-04-10 2010-08-04 三菱電機株式会社 プログラマブルコントローラ
US7689334B2 (en) * 2006-09-28 2010-03-30 Perkins Engines Company Limited Engine diagnostic method
WO2008111382A1 (ja) * 2007-02-22 2008-09-18 Nec Corporation 情報処理装置、情報処理方法およびプログラム
US8074118B2 (en) * 2009-01-28 2011-12-06 Dspace Digital Signal Processing And Control Engineering Gmbh Method for influencing a control unit and manipulation unit
US20120185859A1 (en) 2009-08-13 2012-07-19 Sony Corporation Methods and systems for program analysis and program conversion
CN101763291B (zh) * 2009-12-30 2012-01-18 中国人民解放军国防科学技术大学 一种程序控制流错误检测方法
DE102010053668A1 (de) * 2010-12-07 2012-06-14 Klaus-Dieter Becker Vorrichtung und Verfahren zur Erstellung eines Programms für computergesteuerte Maschinen
DE102011052512A1 (de) * 2011-08-09 2013-02-14 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren zur Verarbeitung von Daten in einem Beeinflussungsgerät

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1196051A (ja) * 1997-09-16 1999-04-09 Nintendo Co Ltd ソフトウェア書換システム
JP2002335186A (ja) * 2001-01-25 2002-11-22 Toshiba Corp 複数の無線通信システムに対応可能な無線通信装置
JP2011028648A (ja) * 2009-07-28 2011-02-10 Renesas Electronics Corp オブジェクトコード生成システム、及びオブジェクトコード生成方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11521040B2 (en) 2018-01-19 2022-12-06 Fujitsu Limited Computer-readable recording medium, learning method, and learning device

Also Published As

Publication number Publication date
EP2869145B1 (de) 2016-04-27
CN104570787B (zh) 2017-06-09
EP2869145A1 (de) 2015-05-06
US20150120011A1 (en) 2015-04-30
US9791844B2 (en) 2017-10-17
CN104570787A (zh) 2015-04-29
JP6080826B2 (ja) 2017-02-15

Similar Documents

Publication Publication Date Title
JP6080826B2 (ja) 制御装置の制御プログラムに影響を与えるための方法
CN108351764B (zh) 数据处理方法和系统
US8484630B2 (en) Code motion based on live ranges in an optimizing compiler
US20150227674A1 (en) Dynamically loaded system-level simulation
CN102193810A (zh) 模块间内联候选标识
JP4638484B2 (ja) データ処理装置におけるデータ整合性
CN111796831A (zh) 一种多芯片兼容的编译方法和装置
US20070240101A1 (en) System & method for manipulating source code in a text editor
JP2018502391A (ja) ユーザインタフェースを表示するためのコンピュータ実装方法
JP5849592B2 (ja) プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法
US8769498B2 (en) Warning of register and storage area assignment errors
JP2019109688A (ja) ソフトウェア評価システム
US9417871B2 (en) Automatic generation of certificate of origin (COO) for software systems
JP6053854B2 (ja) 制御プログラムに対するインタラクション方法
JP2011170697A (ja) ソフトウェア構造分析装置
US20150082278A1 (en) Clone detection method and clone function commonalizing method
KR102185294B1 (ko) 병렬 프로그램의 소스 코드 분석 장치 및 방법, 기록매체
KR101918430B1 (ko) 시스템 설계 지원 툴
JP6455096B2 (ja) コントロールシステム、その支援装置、プログラマブルコントロール装置
JP5637182B2 (ja) プログラム開発支援装置、及びプログラム開発支援ツール
JP5970080B2 (ja) プログラマブル表示器、プログラム
CN108108180B (zh) 一种运行时动态更新应用的方法和装置
JP2017142574A (ja) 制御プログラム、制御装置、及び制御方法
JP6812637B2 (ja) プログラマブルコントローラシステム、その開発支援装置、ターゲット装置
US20180341601A1 (en) Information processing apparatus, control method thereof, and control program thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160616

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160616

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160627

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161028

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170117

R150 Certificate of patent or registration of utility model

Ref document number: 6080826

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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