DE102013113686A1 - Method for influencing a control program of a control unit - Google Patents
Method for influencing a control program of a control unit Download PDFInfo
- Publication number
- DE102013113686A1 DE102013113686A1 DE102013113686.9A DE102013113686A DE102013113686A1 DE 102013113686 A1 DE102013113686 A1 DE 102013113686A1 DE 102013113686 A DE102013113686 A DE 102013113686A DE 102013113686 A1 DE102013113686 A1 DE 102013113686A1
- Authority
- DE
- Germany
- Prior art keywords
- control program
- function
- functions
- variables
- time
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3013—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/056—Programming the PLC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3096—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents wherein the means or processing minimize the use of computing system or of computing system component resources, e.g. non-intrusive monitoring which minimizes the probe effect: sniffing, intercepting, indirectly deriving the monitored data from other directly available data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Abstract
Verfahren zur Beeinflussung eines Steuerprogramms eines Steuergerätes, wobei das Steuergerät einen ersten Speicher zur Aufnahme des Steuerprogramms aufweist, und das Steuerprogramm eine Vielzahl von ersten Funktionen aufweist, wobei wenigstens eine der ersten Funktionen für die Steuerung eines Aktuators ausgebildet ist, und eine Vielzahl von Variablen vorgesehen sind und jeder der Variablen eine Speicheradresse zugeordnet ist, wobei zwischen den Variablen und den ersten Funktionen eine vorgegebene Zuordnung ausgebildet ist, und das Steuergerät einen Prozessor mit einer Vielzahl von Rechenkernen aufweist, und in einem ersten Rechenkern das Steuerprogramm mit den ersten Funktionen ausgeführt wird, dadurch gekennzeichnet, dass während der Ausführung des Steuerprogramms in einem zweiten Rechenkern eine zweite Funktion abgearbeitet wird, wobei die zweite Funktion wenigstens teilweise eine zu dem Steuerprogramm unterschiedlichen Programmkode aufweist, und mittels der zweiten Funktion ein Wert einer der ersten Funktionen zugeordneten Variablen verändert wird und anschließend auf den geänderten Wert von dem Steuerprogramm zugegriffen wird.A method for influencing a control program of a control device, wherein the control device has a first memory for receiving the control program, and the control program has a plurality of first functions, wherein at least one of the first functions for the control of an actuator is formed, and a plurality of variables provided and each of the variables is assigned a memory address, wherein a predetermined assignment is formed between the variables and the first functions, and the control device has a processor with a plurality of calculation cores, and in a first calculation kernel the control program with the first functions is executed, characterized in that during the execution of the control program in a second arithmetic a second function is processed, wherein the second function at least partially has a different program code to the control program, and by means of the second function a value of one of the first functions associated variables is changed and then the changed value is accessed by the control program.
Description
Die Erfindung betrifft ein Verfahren zur Beeinflussung eines Steuerprogramms eines Steuergerätes gemäß dem Oberbegriff des Patentanspruchs 1. The invention relates to a method for influencing a control program of a control device according to the preamble of patent claim 1.
Steuergeräte werden in großer Zahl in vielen Bereichen der Technik eingesetzt. Ein besonders wichtiger Anwendungsbereich ist unter anderem die Motor-, Getriebe- und Fahrwerksteuerung bei den Automobilen und die Steuerung von Triebwerken bei Flugzeugen. Bei derartigen Steuergeräten ist im Allgemeinen der Programmkode in binärer Form abgelegt. Eine Änderung des jeweiligen vorzugsweise in einem Festwertspeicher abgelegten Steuerprogramms ist sehr aufwändig und kostenintensiv. Control devices are used in large numbers in many areas of technology. A particularly important area of application is, inter alia, engine, transmission and chassis control in automobiles and the control of aircraft engines. In such controllers, the program code is generally stored in binary form. A change of the respective preferably stored in a read-only memory control program is very complex and costly.
Ein Verfahren zur Beeinflussung eines Steuergerätes ist aus der Druckschrift
Vor diesem Hintergrund besteht die Aufgabe der Erfindung darin, ein Verfahren zur Beeinflussung eines Steuerprogramms eines Steuergerätes anzugeben, das den Stand der Technik weiterbildet.Against this background, the object of the invention is to provide a method for influencing a control program of a control unit, which further develops the prior art.
Die Aufgabe wird durch ein Verfahren zur Beeinflussung eines Steuerprogramms eines Steuergerätes mit den Merkmalen des Patentanspruchs 1 gelöst. Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand von Unteransprüchen.The object is achieved by a method for influencing a control program of a control unit having the features of patent claim 1. Advantageous embodiments of the invention are the subject of dependent claims.
Gemäß dem ersten Gegenstand der Erfindung wird ein Verfahren zur Beeinflussung eines Steuerprogramms eines Steuergerätes bereitgestellt, wobei das Steuergerät einen ersten Speicher zur Aufnahme des Steuerprogramms aufweist, und das Steuerprogramm eine Vielzahl von ersten Funktionen aufweist, wobei wenigstens eine der ersten Funktionen für die Steuerung eines Aktuators ausgebildet ist, und des Weiteren eine Vielzahl von Variablen vorgesehen sind und jeder der Variablen eine Speicheradresse zugeordnet ist, wobei zwischen den Variablen und den ersten Funktionen eine vorgegebene Zuordnung ausgebildet ist, und das Steuergerät einen Prozessor mit einer Vielzahl von Rechenkernen aufweist, und in einem ersten Rechenkern das Steuerprogramm mit den ersten Funktionen ausgeführt wird, wobei während der Ausführung des Steuerprogramms in einem zweiten Rechenkern eine zweite Funktion abgearbeitet wird, wobei die zweite Funktion wenigstens teilweise eine zu dem Steuerprogramm unterschiedlichen Programmkode aufweist, und mittels der zweiten Funktion ein Wert einer der ersten Funktionen zugeordneten Variablen verändert wird und anschließend auf den geänderten Wert von dem Steuerprogramm zugegriffen wird.According to the first aspect of the invention, there is provided a method of influencing a control program of a controller, the controller having a first memory for receiving the control program, and the control program having a plurality of first functions, at least one of the first functions for controlling an actuator is formed, and further provided a plurality of variables and each of the variables is assigned a memory address, wherein between the variables and the first functions a predetermined assignment is formed, and the controller has a processor with a plurality of computing cores, and in one the control program is executed with the first functions of the first processor, wherein during the execution of the control program in a second arithmetic core, a second function is processed, wherein the second function at least partially different from the control program n program code, and by means of the second function, a value of one of the first functions associated variables is changed and then the changed value is accessed by the control program.
Ein Vorteil des Verfahrens zur Beeinflussung eines Steuerprogramms eines Steuergerätes ist es, dass auch bei älteren Steuergeräten, welche bereits zur Steuerung von Motoren verwendet werden, sich Änderungen an den Steuerprogrammen durchführen lassen. In vorteilhafter Weise wird hierbei bei den Steuergeräten, welche Prozessoren mit mehreren Rechenkernen aufweisen, ein Rechenkern, der nicht mit der Abarbeitung des Steuerprogramms beaufschlagt ist, verwendet, um mittels einer zweiten Funktion eine oder mehrere Variablenwerte einer als erste Funktion bezeichnete Funktion des Steuerprogramms zu verändern. Dabei ist es unerheblich, ob der genannte Rechenkern von vornherein nicht mit der Abarbeitung des Steuerprogramms beauschlagt ist oder ob das Steuergerät vor der Ausführung des erfindungsgemäßen Verfahrens derart entsprechend manipuliert wird. Beispielsweise könnte ein Rechenkern zunächst mit einer redundanten Ausführung des Steuerprogramms beaufschlagt sein, das während des Entwicklungsprozesses nicht benötigt wird und deshalb im Rahmen des Entwicklungsprozesses zur Durchführung des erfindungsgemäßen Verfahrens ausgeschaltet wird. Es versteht sich, dass die zweite Funktion nicht Teil des Steuerprogramms ist. Untersuchungen haben gezeigt, dass sich mit dem vorliegenden Verfahren die Auswirkungen der Veränderung des Steuerprogramms einfach und kostengünstig vorzugsweise in Echtzeit durchführen lassen. Gerade in dem Bereich des Tunings von Motoren ermöglicht das Verfahren einen einfachen und kostengünstigen sehr weitgehenden Eingriff in das Steuerprogramm. Es versteht sich, dass sich mit dem vorliegenden Verfahren die Variablenwerte auch von einer Vielzahl von ersten Funktionen verändern lassen. One advantage of the method for influencing a control program of a control unit is that even with older control units, which are already used to control motors, changes can be made to the control programs. In this case, in the case of the control devices which have processors with a plurality of processor cores, an arithmetic core which is not acted upon by the execution of the control program is advantageously used to change one or more variable values of a function of the control program designated as a first function by means of a second function , It is irrelevant whether the said calculation kernel is from the outset not beauschlagt with the execution of the control program or whether the controller is manipulated before the execution of the method according to the invention accordingly. For example, a calculation kernel could initially be supplied with a redundant design of the control program, which is not required during the development process and is therefore switched off in the course of the development process for carrying out the method according to the invention. It is understood that the second function is not part of the control program. Research has shown that with the present method, the effects of altering the control program can be easily and inexpensively performed preferably in real time. Especially in the field of engine tuning, the method allows a simple and cost-effective very extensive intervention in the control program. It is understood that the variable values can also be changed by a multiplicity of first functions with the present method.
In einer Weiterbildung werden mittels eines Zusatzprogrammteils und / oder einer Überwachungseinheit Aufrufe von einen oder mehreren ersten Funktionen detektiert, wobei der Zusatzprogrammteil auf dem zweiten Rechenkern implementiert und abgearbeitet wird und / oder das Steuerprogramm durch den Zusatzprogrammteil ergänzt wird. In einer andern Ausführungsform ist die Überwachungseinheit als Schnittstelleneinheit ausgeführt. Eine Ausführungsform einer Schnittstelleneinheit ist ein sogenanntes Beeinflussungsgerät. In einer bevorzugten Weiterbildung ist die Überwachungseinheit als eine von dem Steuergerät getrennte Einheit ausgebildet. Des Weiteren ist es bevorzugt, wenn die Überwachungseinheit ein fest-verdrahtetes Programm zur Detektion von den Aufrufen der ersten Funktion aufweist. Der Vorteil des fest-verdrahteten Programms ist, dass das Programm sich schnell und zuverlässig von der Überwachungseinheit abarbeiten lässt. Untersuchungen haben gezeigt, dass sich die Aufrufe der ersten Funktion auch ohne genaue Kenntnis des Quellcodes des Steuerprogramms detektieren lassen. Es sei angemerkt, dass sich die Überwachungseinheit sowohl als eine Software-Lösung als auch als eine Hardware-Lösung als auch als eine Kombination von beiden Lösungen ausführen lässt. In a development, calls of one or more first functions are detected by means of an additional program part and / or a monitoring unit, wherein the additional program part is implemented and executed on the second processor and / or the control program is supplemented by the additional program part. In another embodiment, the monitoring unit is designed as an interface unit. An embodiment of an interface unit is a so-called influencing device. In a preferred embodiment, the monitoring unit is designed as a separate unit from the control unit. Furthermore, it is preferred if the monitoring unit has a hardwired program for detecting the calls of the first function. The advantage of the hard-wired program is that the program can be processed quickly and reliably by the monitoring unit. Investigations have shown that the calls of the first function can also be detected without precise knowledge of the source code of the control program. It should be noted that the monitoring unit can be used both as a software solution and as a hardware solution as well as a combination of both solutions.
Gemäß einer anderen Ausführungsform erfolgt die Abarbeitung der zweiten Funktion wenigstens teilweise parallel zu der Abarbeitung einer oder mehrerer der ersten Funktionen. Es versteht sich, dass bei einem Vorhandensein von mehreren zweiten Rechnerkernen, beispielweise bei einem Einsatz von sogenannten Quadcore-Prozessoren, die Abarbeitung der zweiten Funktion wenigstens teilweise parallel in mehreren zweiten Rechenkernen durchgeführt werden kann. Ferner ist es bevorzugt, die Abarbeitung der zweiten Funktion durch einen Triggerbefehl zu starten. According to another embodiment, the execution of the second function is at least partially parallel to the execution of one or more of the first functions. It is understood that in the presence of a plurality of second computer cores, for example, when using so-called quad-core processors, the execution of the second function can be performed at least partially in parallel in several second cores. Furthermore, it is preferable to start the execution of the second function by a trigger command.
In einer anderen Weiterbildung wird von der zweiten Funktion zu einem ersten Zeitpunkt der Wert einer der ersten Funktionen zugeordneten Variable berechnet oder aus einer Speicheradresse eingelesen und nach der Berechnung oder der Änderung des Wertes zu einem zweiten Zeitpunkt der berechnete oder geänderte Wert in die der Variablen zugeordneten Speicheradresse zurückgeschrieben. In einer alternativen Ausführungsform werden zu dem ersten Zeitpunkt die Werte von mehreren einer der ersten Funktionen zugeordneten Variablen berechnet und / oder die Werte aus den Variablen jeweils zugeordneten Speicheradressen eingelesen und nach der Berechnung oder nach der Änderung der Werte die Werte in die der Variablen zugeordneten Speicheradressen oder alternativ in Speicheradressen von weiteren Variablen zurückgeschrieben. Anschließend werden zu einem dritten Zeitpunkt von dem Steuerprogramm die Werte aus den der Variablen zugeordneten Speicheradressen ausgelesen, wobei der zweite Zeitpunkt später als der erste Zeitpunkt und der dritte Zeitpunkt später als der zweite Zeitpunkt liegt. Hierdurch wird sichergestellt, dass insbesondere bei zeitkritischen Anwendungen, das Steuerprogramm mit den neuen Werten der Variablen weiterarbeitet, d.h. eine Konsistenz der Daten in den Speicherbereichen gewährleistet wird, indem das Schreiben der geänderten Werte vor dem Lesen der Werte durch das Steuerprogramm beendet wird. In another development, the second function calculates the value of a variable assigned to the first function at a first time or reads it from a memory address and, after the calculation or the change of the value at a second time, the calculated or changed value in the variable assigned to the variable Memory address written back. In an alternative embodiment, at the first time the values of several variables associated with one of the first functions are calculated and / or the values are read from the variables of respectively associated memory addresses and after the calculation or after the change of the values the values in the memory addresses associated with the variables or alternatively written back into memory addresses of further variables. Subsequently, at a third time, the control program reads out the values from the memory addresses assigned to the variables, the second time being later than the first time and the third time being later than the second time. This ensures that, especially in time-critical applications, the control program continues to operate with the new values of the variables, i. Consistency of the data in the memory areas is ensured by terminating the writing of the changed values before reading the values by the control program.
In einer bevorzugten Ausführungsform wird von der zweiten Funktion zu einem ersten Zeitpunkt der Wert aus einer der Variablen zugeordneten Speicheradresse und / oder aus einer zugeordneten Speicheradresse eines Pufferbereichs, in denen sich ein Abbild der Werte der Variablen befindet, eingelesen, wobei der erste Zeitpunkt nach der Detektion des Funktionsaufrufs der ersten Funktion liegt und der erste Zeitpunkt von der Überwachungseinheit und / oder des Kontrollprogramms und / oder des Zusatzprogrammteils ermittelt wird und von der Überwachungseinheit und / oder des Kontrollprogramms und / oder des Zusatzprogrammteils sicher gestellt wird, dass sich der Wert der Variablen an der zugeordneten Speicheradresse in dem Zeitraum zwischen dem Aufruf der ersten Funktion und dem ersten Zeitpunkt nicht verändert. Hierdurch wird sichergestellt, dass die Anfangswerte der ersten Funktion und der zweiten Funktion nicht unterscheiden, d.h. konsistent sind.In a preferred embodiment, the second function reads the value from a memory address assigned to the variables at a first time and / or from an assigned memory address of a buffer area in which an image of the values of the variables is located, wherein the first time after the Detection of the function call the first function is located and the first time is determined by the monitoring unit and / or the control program and / or the additional program part and is ensured by the monitoring unit and / or the control program and / or the additional program part, that the value of the variables at the assigned memory address in the period between the call of the first function and the first time not changed. This ensures that the initial values of the first function and the second function do not differ, i. are consistent.
In einer anderen Ausführungsform ist vorgesehen, dass mittels der Überwachungseinheit und / oder des Kontrollprogramms und / oder des Zusatzprogrammteils die Beeinflussung der Werte der Variablen durch die zweite Funktion derart synchronisiert wird, dass mittels des Steuerprogramms auf die Werte der Variablen nach der Abarbeitung der zweiten Funktion oder nach den mittels der zweiten Funktion durchgeführten Änderungen zugegriffen wird. In another embodiment, it is provided that the influencing of the values of the variables by the second function is synchronized by means of the monitoring unit and / or the control program and / or the additional program part such that by means of the control program on the values of the variables after the execution of the second function or after the changes made by the second function are accessed.
Des Weiteren ist es vorteilhaft, dass mittels der Überwachungseinheit und / oder des Kontrollprogramms und / oder des Zusatzprogrammteils die Verteilung der zweiten Funktion auf ein oder mehrere zweite Rechenkerne gesteuert wird. Furthermore, it is advantageous that the distribution of the second function is controlled to one or more second calculation cores by means of the monitoring unit and / or the control program and / or the additional program part.
Gerade bei kritischen Werten, beispielsweise zur Steuerung einer Lenkung oder von automatischen Bremsvorgängen, werden die Berechnungen von Variablenwerten parallel und mehrfach durchgeführt und teilweise alle vorhandenen Rechenkerne verwendet. Hierdurch kann es vorteilhaft sein, mittels der Überwachungseinheit die zweite Funktion auf einer externen Berechnungseinheit abzuarbeiten. Es versteht sich, dass in einer Weiterbildung auch mehrere zweite Funktionen vorgesehen sind und in einer Weiterbildung auch mehrere der zweiten Funktionen auf der externen Berechnungseinheit abgearbeitet werden. In einer anderen Weiterbildung ist die zweite Funktion in einer Endlosschleife integriert oder eine mehrfache Abarbeitung der zweiten Funktion wird mittels eines Triggerimpulses gestartet.Especially with critical values, for example for controlling a steering or automatic braking processes, the calculations of variable values are carried out in parallel and multiple times, and in some cases all existing calculation cores are used. As a result, it may be advantageous to process the second function on an external calculation unit by means of the monitoring unit. It is understood that in a development, a plurality of second functions are provided and in a development, more of the second functions are processed on the external calculation unit. In another development, the second function is integrated in an endless loop or a multiple execution of the second function is started by means of a trigger pulse.
In einer Ausführungsform wird mittels einer Überwachungseinheit und / oder des Kontrollprogramms ein Abbild der Werte der Variablen, die identisch zu den Werten der Variablen zum Zeitpunkt des Aufrufes der ersten Funktion sind, in den Pufferbereich abgelegt.In one embodiment, an image of the values of the variables which are identical to the values of the variables at the time of the call of the first function are stored in the buffer area by means of a monitoring unit and / or the control program.
In einer anderen Weiterbildung weisen die mehreren zweiten Funktionen unterschiedliche Prioritäten auf, wobei mittels der Überwachungseinheit und / oder des Kontrollprogramms und / oder des Zusatzprogrammteils die Verteilung der zweiten Funktionen auf ein oder mehrere zweite Rechenkerne anhand der unterschiedlichen Prioritäten der zweiten Funktionen gesteuert wird und / oder eine oder mehrere zweite Funktionen auf einem oder mehreren zweiten Rechenkernen pausiert werden, um eine oder weitere zweite Funktionen mit einer höheren Priorität auf den zweiten Rechenkernen zu bearbeiten. In another development, the plurality of second functions have different priorities, wherein by means of the monitoring unit and / or the control program and / or the additional program part, the distribution of the second functions is controlled on one or more second cores based on the different priorities of the second functions and / or one or more second functions are paused on one or more second cores to handle one or more second higher priority functions on the second cores.
In einer Ausführungsform wird mittels der Überwachungseinheit und / oder des Kontrollprogramms und / oder des Zusatzprogrammteils ein zweiter Rechenkern nur dann gestartet, wenn der ausgewählte zweite Rechenkern eine zweite Funktion bearbeiten soll. In one embodiment, a second calculation kernel is only started by means of the monitoring unit and / or the control program and / or the additional program part if the selected second calculation kernel is to process a second function.
Die Erfindung wird nachfolgend unter Bezugnahme auf die Zeichnungen näher erläutert. Hierbei werden gleichartige Teile mit identischen Bezeichnungen beschriftet. Die dargestellte Ausführungsformen sind stark schematisiert, d.h. die Abstände und laterale und vertikale Erstreckung sind nicht maßstäblich und weisen, sofern nicht anders angegeben, auch keine ableitbare geometrische Relation zueinander auf. Darin zeigen die:The invention will be explained in more detail with reference to the drawings. Here similar parts are labeled with identical names. The illustrated embodiments are highly schematic, i. the distances and lateral and vertical extension are not to scale and, unless otherwise stated, also have no derivable geometric relation to one another. In it show:
Die Abbildung der
Es versteht sich, dass der Programmkode der zweiten Funktionen F2A, F2B ... F2N wenigstens in Teilen unterschiedlich zu dem Programmkode der ersten Funktionen F1A, F1B ... F1N ist. Der Prozessor CPU enthält neben einem ersten Rechenkern P1 und einem zweiten Rechenkern P2 eine weitere Vielzahl von Rechenkernen bis zu dem Rechenkern PN. Außerdem weist der Prozessor eine nicht dargestellte Schnittstelleneinheit für eine Kommunikation mit einer außerhalb des Steuergerätes ECU ausgebildeten Überwachungseinheit – ebenfalls nicht dargestellt, auf. In der Steuereinheit ECU wird in dem ersten Rechenkern P1 der CPU ein Steuerprogramm abgearbeitet. Das Steuerprogramm (STP) liegt als binärer Programmkode vor. Das Steuerprogramm umfasst eine Vielzahl von Aufrufen von ersten Funktionen F1A, F1B, ... F1N, die während der Abarbeitung des Steuerprogramms aufgerufen werden. Eine bevorzugte Aufgabe wenigstens eines Teils der ersten Funktionen F1A, F1B, ... F1N ist das Einlesen von Daten des Sensors SE und / oder das Einlesen von Daten weiterer Sensoren (nicht dargestellt) und / oder die Steuerung von dem Aktuator AK und / oder das Steuern weiterer Aktuatoren, nicht dargestellt. Ferner sind den ersten Funktionen F1A, F1B, ... F1N innerhalb des Speichers SP1 Adressen A1, A2, ..., AN mit Variablen V1, V2, ... VN zugeordnet. Bei einem Aufruf der ersten Funktionen F1A, F1B, ... F1N werden die den jeweiligen Funktionen F1A, F1B, ... F1N zugeordneten Variablen V1, V2, ... VN gelesen oder geschrieben, anders ausgedrückt werden die mit den Variablen verknüpften Werte aus der jeweiligen Speicheradresse gelesen oder in die jeweilige Speicheradresse geschrieben. It is understood that the program code of the second functions F2A, F2B ... F2N is at least partially different from the program code of the first functions F1A, F1B ... F1N. The processor CPU contains, in addition to a first calculation core P1 and a second calculation core P2, a further multiplicity of calculation cores up to the calculation kernel PN. In addition, the processor has an interface unit, not shown, for communication with a monitoring unit formed outside of the control unit ECU-likewise not shown. In the control unit ECU, a control program is executed in the first processor P1 of the CPU. The control program (STP) is available as a binary program code. The control program comprises a plurality of calls of first functions F1A, F1B,... F1N which are called during the execution of the control program. A preferred task of at least a part of the first functions F1A, F1B,... F1N is the reading in of data of the sensor SE and / or the reading in of data of further sensors (not shown) and / or the control of the actuator AK and / or the control of other actuators, not shown. Furthermore, the first functions F1A, F1B,... F1N within the memory SP1 are assigned addresses A1, A2,..., AN with variables V1, V2,... VN. When the first functions F1A, F1B,... F1N are called, the variables V1, V2,... VN assigned to the respective functions F1A, F1B,... F1N are read or written, in other words the values associated with the variables read from the respective memory address or written in the respective memory address.
Während des Ausführens des Steuerprogramms in dem ersten Rechenkern P1 wird in dem zweiten Rechenkern P2 ein Überwachungsprogramm abgearbeitet. Das Überwachungsprogramm detektiert die jeweiligen Aufrufe der ersten Funktionen F1A, F1B, ... F1N und startet zu einem vorgegebenen Zeitpunkt eine der zweiten Funktionen F2A, F2B, ... F2N. Hierdurch wird mittels der zweiten Funktionen F2A, F2B, ... F2N wenigstens ein Wert einer der ersten Funktionen F1A, F1B, ... F1N zugeordneten Variablen V1, V2, ... VN verändert. Anschließend wird von dem Steuerprogramm auf den geänderten Wert zugegriffen. Hierdurch lassen sich die Werte der Variablen V1, V2, ... VN mittels den zweiten Funktionen F2A, F2B, ... F2N manipulieren und beispielsweise den Aktuator AK anders beeinflussen und / oder die Werte des Sensors SE zu einem anderen Zeitpunkt auslesen oder die Daten von Sensor SE manipulieren.During the execution of the control program in the first calculation core P1, a monitoring program is processed in the second calculation core P2. The monitoring program detects the respective calls of the first functions F1A, F1B,... F1N and, at a given time, starts one of the second functions F2A, F2B,... F2N. In this way, by means of the second functions F2A, F2B, ... F2N, at least one value of one of the first functions F1A, F1B,... F1N assigned variables V1, V2,... VN is changed. Subsequently, the control program accesses the changed value. This allows the values of the variables V1, V2,... VN to be determined by means of the second Functions F2A, F2B, ... F2N manipulate and affect, for example, the actuator AK different and / or read the values of the sensor SE at another time or manipulate the data from sensor SE.
Die Abbildung der
In einer weiteren bevorzugten Ausführungsform wartet der Zusatzprogrammteil S1AE auf die Berechnungsergebnisse der zweiten Funktion F2A und schreibt, je nach Konfiguration, entweder die Berechnungsergebnisse der zweiten Funktion F2A oder die eigenen Berechnungsergebnisse in die Adressen der jeweiligen Variablen oder lässt sie durch Aufruf einer gesonderten Funktion, die auf dem ersten Prozessorkern P1 oder dem zweiten Prozessorkern P2 ausgeführt werden kann, dorthin schreiben.In a further preferred embodiment, the additional program part S1AE waits for the calculation results of the second function F2A and, depending on the configuration, either writes the calculation results of the second function F2A or its own calculation results into the addresses of the respective variables or leaves them by calling a separate function on the first processor core P1 or the second processor core P2 can write there.
Die Abbildung der
Es sei angemerkt, dass in einer alternativen Ausführungsform mehrere Kontrollprogrammteile MON1, MON2, ... MONN ausgebildet sind, wobei die mehreren Kontrollprogrammteile MON1, MON2, ... MONN jeweils auf unterschiedlichen Prozessorkernen laufen können. Vorteilhaft ist, dass insbesondere bei einem Überwachen mittels zwei getrennten Kontrollprogrammteile MON1 und MON2, welche jeweils auf getrennten zweiten Rechenkernen laufen, zwei „erste Funktionen“, welche auf einem oder alternativ ebenfalls auf zwei „ersten“ Kernen laufen, parallel überwachen können. It should be noted that in an alternative embodiment, a plurality of control program parts MON1, MON2, ... MONN are formed, wherein the plurality of control program parts MON1, MON2, ... MONN can each run on different processor cores. It is advantageous that, in particular when monitoring by means of two separate control program parts MON1 and MON2, which respectively run on separate second computing cores, two "first functions" which run on one or alternatively also on two "first" cores can monitor in parallel.
Die Abbildung der
Es zeigt sich, dass in dem ersten Rechenkern P1 das Steuerprogramm STP ausgeführt wird, wobei das Steuerprogramm STP die erste Funktion F1A umfasst. Während des Zeitraums, in dem das Steuerprogramm STP in dem ersten Rechenkern P1 ausgeführt wird, wird in dem zweiten Rechenkern P2 die zweite Funktion F2A abgearbeitet. Zu einem Zeitpunkt A wird von dem Steuerprogramm STP ein Wert in den Speicherbereich der ersten Variablen V1 und zu einem Zeitpunkt B ein Wert in den Speicherbereich der vierten Variablen V4 und zu einem Zeitpunkt C ein Wert in den Speicherbereich der zweiten Variablen V2 geschrieben. Zu einem Zeitpunkt D wird von dem Steuerprogramm mit der Abarbeitung der ersten Funktion F1A begonnen. Mit der Abarbeitung der ersten Funktion F1A wird unmittelbar folgend mittels eines Triggerimpulses TR auch mit der Ausführung der zweiten Funktion F2A begonnen, d. h. der Triggerimpuls TR synchronisiert die Ausführung der zweiten Funktion F2A in Bezug auf den Beginn der ersten Funktion F1A. It can be seen that the control program STP is executed in the first calculation kernel P1, the control program STP comprising the first function F1A. During the period in which the control program STP is executed in the first processor P1, the second function F2A is executed in the second processor P2. At a point in time A, the control program STP writes a value into the memory area of the first variable V1 and at a time B a value into the memory area of the fourth variable V4 and at a time C a value into the memory area of the second variable V2. At a point in time D, the control program starts to process the first function F1A. Immediately following the execution of the first function F1A, the execution of the second function F2A is also started by means of a trigger pulse TR, ie. H. the trigger pulse TR synchronizes the execution of the second function F2A with respect to the beginning of the first function F1A.
Mittels der ersten Funktion F1A wird zu einem Zeitpunkt E der Wert der zweiten Variablen V2 aus dem Speicherbereich eingelesen und zu einem wenig späteren Zeitpunkt F wird von der zweiten Funktion F2A ebenfalls der Wert der zweiten Variablen V2 aus dem Speicherbereich eingelesen. Zu einem Zeitpunkt G wird mittels der ersten Funktion F1A der Wert der ersten Variablen V1 aus dem Speicherbereich eingelesen, wobei zu einem Zeitpunkt H mittels der zweiten Funktion F2A der Wert der vierten Variablen V4 aus dem Speicherbereich eingelesen wird. Anschließend wird kurz vor Ende der ersten Funktion F1A an einem Zeitpunkt J, mittels der ersten Funktion F1A zu einem Zeitpunkt I, der Wert der dritten Variablen V3 in den zugeordneten Speicherbereich geschrieben. Zu einem Zeitpunkt K nach dem Ende der ersten Funktion F1A an dem Zeitpunkt J, wird mittels der zweiten Funktion F2A der Wert der dritten Variablen V3 in den zugeordneten Speicherbereich geschrieben. Hierdurch wird also der Wert der dritten Variablen V3 alleine von der zweiten Funktion F2A bestimmt und die erste Funktion F1A wenigstens hinsichtlich des Wertes der dritten Variablen V3 effektiv ersetzt. Schließlich wird von dem Steuerprogramm STP zu einem Zeitpunkt L der Wert der dritten Variablen V3 eingelesen und weiterverarbeitet. By means of the first function F1A, the value of the second variable V2 is output at a time E The memory area is read in and, at a later time F, the value of the second variable V2 is likewise read from the memory area by the second function F2A. At a time G, the value of the first variable V1 is read from the memory area by means of the first function F1A, the value of the fourth variable V4 being read from the memory area at a time H by means of the second function F2A. Subsequently, shortly before the end of the first function F1A at a time J, by means of the first function F1A at a time I, the value of the third variable V3 is written into the allocated memory area. At a point in time K after the end of the first function F1A at the instant J, the value of the third variable V3 is written into the allocated memory area by means of the second function F2A. As a result, the value of the third variable V3 alone is determined by the second function F2A and the first function F1A is at least effectively replaced with respect to the value of the third variable V3. Finally, the value of the third variable V3 is read in by the control program STP at a time L and further processed.
Die Abbildung der
Anschließend wird mittels der zweiten Funktion F2A zu einem Zeitpunkt F1 aus dem Pufferspeicher BU die erste Puffervariable und zu dem Zeitpunkt H die zweite Puffervariable eingelesen und zu einem Zeitpunkt H1 der Wert der dritten Puffervariablen in den Pufferspeicher BU geschrieben. Zu dem Zeitpunkt K wird von dem zweiten Zusatzprogrammteils S1AE aus dem Pufferspeicher BU der Wert der dritten Puffervariablen ausgelesen und zu einem Zeitpunkt K1 in den Speicherbereich der dritten Variablen V3 geschrieben. Der zweite Zusatzprogrammteil S1AE ist zu einem Zeitpunkt K2 beendet. Subsequently, by means of the second function F2A, the first buffer variable is read from the buffer memory BU at a time F1 and the second buffer variable is read at the time H, and the value of the third buffer variable is written into the buffer memory BU at a time H1. At the instant K, the value of the third buffer variable is read from the buffer memory BU by the second additional program part S1AE and written into the memory area of the third variable V3 at a time K1. The second additional program part S1AE is finished at a time K2.
Die Abbildung der
Das Steuerprogramm STP umfasst neben der ersten Funktion F1A nur den zweiten Zusatzprogrammteil S1AE. Sowohl die Schreiboperationen zu den Zeitpunkten A, B und C als auch der Beginn der Abarbeitung der ersten Funktion zu einem Zeitpunkt C01 werden von der Überwachungseinheit GSI detektiert, wobei die Werte der ersten Variablen V1, der vierten Variablen V4 und der zweiten Variablen V2 ebenfalls mitgelesen werden. Nach dem Start der ersten Funktion F1A zu dem Zeitpunkt C01 wird mittels der ersten Funktion zu dem Zeitpunkt C41 der Wert aus dem Adressbereich der zweiten Variablen V2 eingelesen. Zu dem Zeitpunkt E und dem Zeitpunkt F1 werden der Wert der ersten Puffervariablen und der Wert der zweiten Puffervariablen in den Pufferspeicher BU mittels der Überwachungseinheit GSI geschrieben. Ferner wird mittels der Überwachungseinheit GSI die zweite Funktion F2A zu dem Zeitpunkt H gestartet. Anschließend wird mittels der zweiten Funktion F2A zu einem Zeitpunkt H01 der Wert der ersten Puffervariablen und zu einem Zeitpunkt H02 der Wert der zweiten Puffervariablen aus dem Pufferspeicher BU gelesen. Die weitere Ausführung ist mit dem in Zusammenhang mit der
Die Abbildung der
Die Abbildung der
ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.
Zitierte PatentliteraturCited patent literature
- DE 102004027033 A1 [0003] DE 102004027033 A1 [0003]
Claims (19)
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102013113686.9A DE102013113686A1 (en) | 2013-12-09 | 2013-12-09 | Method for influencing a control program of a control unit |
CN201480051803.8A CN105556402A (en) | 2013-12-09 | 2014-12-01 | Method for manipulating a control program of a control device |
PCT/EP2014/076067 WO2015086357A1 (en) | 2013-12-09 | 2014-12-01 | Method for manipulating a control program of a control device |
EP14809323.0A EP3080668B1 (en) | 2013-12-09 | 2014-12-01 | Method for influencing a control program of a control unit |
US15/177,372 US10162324B2 (en) | 2013-12-09 | 2016-06-09 | Method for manipulating a control program of a control device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102013113686.9A DE102013113686A1 (en) | 2013-12-09 | 2013-12-09 | Method for influencing a control program of a control unit |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102013113686A1 true DE102013113686A1 (en) | 2015-06-11 |
Family
ID=53184992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102013113686.9A Withdrawn DE102013113686A1 (en) | 2013-12-09 | 2013-12-09 | Method for influencing a control program of a control unit |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102013113686A1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030074650A1 (en) * | 2001-10-17 | 2003-04-17 | Tankut Akgul | Debugger operating system for embedded systems |
DE102004027033A1 (en) | 2004-03-15 | 2005-10-13 | Dspace Gmbh | Influencing device for control units |
US20090210069A1 (en) * | 2007-11-13 | 2009-08-20 | Schultz Ronald E | Industrial controller using shared memory multicore architecture |
DE102011052511A1 (en) * | 2011-08-09 | 2013-02-14 | Dspace Digital Signal Processing And Control Engineering Gmbh | Method for processing data in an influencing device |
-
2013
- 2013-12-09 DE DE102013113686.9A patent/DE102013113686A1/en not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030074650A1 (en) * | 2001-10-17 | 2003-04-17 | Tankut Akgul | Debugger operating system for embedded systems |
DE102004027033A1 (en) | 2004-03-15 | 2005-10-13 | Dspace Gmbh | Influencing device for control units |
US20090210069A1 (en) * | 2007-11-13 | 2009-08-20 | Schultz Ronald E | Industrial controller using shared memory multicore architecture |
DE102011052511A1 (en) * | 2011-08-09 | 2013-02-14 | Dspace Digital Signal Processing And Control Engineering Gmbh | Method for processing data in an influencing device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2009525B1 (en) | Test device and method for testing at least one electronic control system | |
DE10211889B4 (en) | Processing unit to execute event processes in real time without causing a process fault | |
EP3080668B1 (en) | Method for influencing a control program of a control unit | |
DE102009056758A1 (en) | Method for influencing a control unit and manipulation unit | |
DE102015107654A1 (en) | Service and system for supporting coherent data access on a multicore controller | |
DE102018205204A1 (en) | Method for providing application data of at least one application executable on a control device of a vehicle, method for calibrating a control device, control device and evaluation device | |
EP2698678A2 (en) | Configuration technique for a control device with applications that communicate with each other | |
EP2869145B1 (en) | Method for influencing a control program of a control unit | |
DE102018131833A1 (en) | SIMULATION LATENCY INDICATION | |
EP0784747B1 (en) | Process and device for controlling a regulating member | |
DE102016009011A1 (en) | Systems and methods for adaptive throttle filtering | |
EP3320431A1 (en) | Computer-implemented method for processing data object variants | |
EP3015992B1 (en) | Method for managing prioritized input data | |
DE102010009994A1 (en) | Method for optimizing a control program for actuators | |
DE102010039021A1 (en) | Method for reconfiguring software parameters in a microcontroller and microcontroller and controller | |
EP2592504B1 (en) | Method for estimating resource consumption in the generation of a control device program code | |
DE102013113686A1 (en) | Method for influencing a control program of a control unit | |
EP2881814A1 (en) | Method for influencing a control program of a control unit | |
EP2990941B1 (en) | Computer-implemented method for generating a control device program codes and related report management environment | |
DE102015201868A1 (en) | Optimized storage of an environment map in the memory of a vehicle | |
WO2015177226A1 (en) | Method for creating a hypervisor unit for embedded systems | |
WO2017153411A1 (en) | Method for operating a control device for a motor vehicle | |
DE102016225308A1 (en) | Method and device for calibrating a control unit | |
EP3331740B1 (en) | Method for operating a control device and diagnosis system | |
DE102022202335A1 (en) | COMPUTER-IMPLEMENTED METHOD FOR MEMORY OPTIMIZATION OF A PARTITIONED SYSTEM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R163 | Identified publications notified | ||
R005 | Application deemed withdrawn due to failure to request examination |