WO2018134061A1 - Verfahren und vorrichtung zum betreiben eines steuergeräts, computerprogramm und verfahren zum generieren des computerprogramms - Google Patents

Verfahren und vorrichtung zum betreiben eines steuergeräts, computerprogramm und verfahren zum generieren des computerprogramms Download PDF

Info

Publication number
WO2018134061A1
WO2018134061A1 PCT/EP2018/050236 EP2018050236W WO2018134061A1 WO 2018134061 A1 WO2018134061 A1 WO 2018134061A1 EP 2018050236 W EP2018050236 W EP 2018050236W WO 2018134061 A1 WO2018134061 A1 WO 2018134061A1
Authority
WO
WIPO (PCT)
Prior art keywords
task
time slot
task program
result
program
Prior art date
Application number
PCT/EP2018/050236
Other languages
English (en)
French (fr)
Inventor
Eckart Schlottmann
Sagar Subbaramaiah
Hakan Atasayar
Original Assignee
Robert Bosch 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 Robert Bosch Gmbh filed Critical Robert Bosch Gmbh
Priority to US16/478,734 priority Critical patent/US11500679B2/en
Priority to CN201880018446.3A priority patent/CN110392883B/xx
Priority to JP2019538414A priority patent/JP2020506465A/ja
Publication of WO2018134061A1 publication Critical patent/WO2018134061A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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
    • 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/26Pc applications
    • G05B2219/2637Vehicle, car, auto, wheelchair

Definitions

  • the invention relates to a method for operating a control device, in particular in a motor vehicle, a computer program and a computer for performing the method and a machine-readable storage medium, on which the computer program is stored.
  • the invention further relates to a method for (automated) generating the computer program.
  • A1 describes a method for operating a bus system, in particular a CAN bus.
  • Several stations can be connected to the bus system.
  • a transmitted message has an identifier, and a particular identifier (e.g., IDENT2) may only ever be used by a single station.
  • Each of the stations compares the identifier of a transmitted message with the identifiers used by itself (e.g., IDENT2). If there is a match, an error message is generated.
  • a method for operating a control device wherein the control unit has at least one executed for execution of task programs execution units, at least temporarily a first task and a second task are executed, the first task a notification to sends an execution unit that executes the second task program, wherein the notification signals to the second task program and / or the execution unit executing the second task program that the first task is ready to receive data from the second task.
  • the method having the features of independent claim 1 has the advantage that the execution of task programs can be carried out particularly reliably, even if the calculation is distributed over several execution units (for example processors).
  • the invention relates to a method for operating a
  • Control unit in particular for a motor vehicle, wherein the control unit has at least one, preferably at least two, execution units, wherein the execution units are in particular designed for the execution of task programs.
  • a first task (English: task) in a first time grid of first time slots executed (the first
  • Time slots therefore advantageously follow one another directly and are the same length in each operating cycle). Furthermore, a second task program is performed in a second time frame from second time slots (the second time slots therefore advantageously follow one another directly).
  • a status variable is determined which indicates whether a result of the first task program has been released.
  • the second task determines a second result depending on the value of the status variable and the result of the first task.
  • FID lock matrix in which the release of a task program (in the example, the plausibility check) can be set depending on the value of the status variable (in the example, the achievement of the electrical diagnosis).
  • the problem may arise that the physical values are distributed across execution unit boundaries and over time calculation steps. As the number of execution units increases (in so-called many-core systems), this distribution increases because only in this way can the resources of the execution units be optimally utilized.
  • Timed Communication also known as Logical Execution Time
  • the value of the status variable is also transmitted in the current first time slot to a status memory area associated with the second task, wherein determining and transmitting both the result of the first task and the value of the status variable after the beginning the execution of the first task and before a re-execution of the first task.
  • the determination of the transmission times becomes particularly simple if the durations of the longer time slot and of the shorter time slot are integer multiples of one another. If the result of the first task program and the status variable are stored at arbitrary locations of a memory area before being transmitted to the status memory area assigned to the second task program, it is possible that they can not be transmitted by the execution unit in a single copy operation. Depending on the hardware used, this can happen, for example, if they are not stored in the same memory bank. Vorteihaft note can therefore be provided that the result of the first task and the status variable from the first task are stored so that they can be transmitted at the same time. This can be done, for example, by placing them in the same memory bank.
  • an analogous dependency as between the first and the second task program also exists between the second and a third task program. That is, it can be provided that a second status variable is determined, which indicates whether a status variable The result of the second task program is determined in a current second time slot and transmitted in this current second time slot to a memory area which is assigned to the third task program, the third task program having a third result depending on the value of the status variable and deriving from the result of the second task program, wherein the value of the second status variable is also transmitted in the current second time slot to a status memory area associated with the third task program, wherein determining and transmitting both the result of the second task program and the value the second status variable after completion of the execution of the second task and before a second execution of the task.
  • such a chain of dependencies may be provided in particular that the third task is executed in a third time frame of successive third time slots, wherein the transmission of the value of the status variable per longer time slot from the first time slot and second time slot is only once, and the transmission the value of the status variable per longest slot of the first time slot and the second time slot and the third time slot takes place only once.
  • the structure of the blocking matrix is not flat but hierarchical. It is envisaged that the task programs whose status variable is transmitted will be assigned a structure object that summarizes the results of the task programs and those of the task programs that are included in the respective task program. The dependencies between the task programs are summarized in these structural objects.
  • a structure object contains the information that the result of the second task depending on the value of
  • This structure object is assigned to the first task. Furthermore, it is then provided that a further structure object contains the information that the result of the third task program is determined as a function of the value of the second status variable and of the result of the second task program. This further structural project is assigned to the second task program. The computer program is then determined depending on the structure object and on the further structure object.
  • the invention relates to a machine-readable storage medium on which said computer program is stored. Also, a computer that is set up (i.e., appropriately programmed) to perform the method of generating this computer program, and another computer (in particular, a controller) configured to execute said method.
  • FIG. 1 shows a prior art Fl D blocking matrix
  • FIG. 2 shows schematically a flowchart according to the prior art
  • FIG. 3 schematically shows a flow chart according to an embodiment of the invention
  • FIG. 4 schematically shows a flowchart according to a second embodiment of the invention
  • Figure 5 schematically shows a flowchart according to a third embodiment of the invention.
  • FIG. 1 shows a prior art Fl D blocking matrix.
  • the task program which runs on an execution unit of a motor vehicle is assigned to which diagnostic task programs have to be carried out, so that the corresponding task program can reliably determine a result itself.
  • the lines are assigned to function identifiers FID1, FID2, FID3, ..., the columns diagnostic fault check programs DFCl, DFCT2, DFC3, DFC4, ...
  • Each function identifier corresponds uniquely to one task program.
  • a binary value is entered in the fields of the matrix so spanned. "1" means that the corresponding diagnostic task program should be completed successfully before the task program is executed, "0" means that this is not necessary.
  • setting up such a matrix is a complex process.
  • FIG. 2 shows schematically a flowchart according to the prior art.
  • the first task 210 determines a result x, which in this example assumes the value 255.
  • the first task program 210 checks whether the determination of the result x was reliable. This is not the case here, which is why a global status variable DEM_Event is set to the value "failed" at the time t1, which may be binary coded with a "0", for example.
  • execution of a second task 220 begins.
  • an instruction M copies the value of result x to a memory area associated with the second task. Per- In terms of grammar, this is done by creating a new variable x_c, which in the example is now assigned the copied value 255.
  • step S the first task program 210 again checks whether the determination of the result x was reliable. This is the case here, which is why the status variable DEM_Event is set to the value "passed" at time t5
  • step S the first task program 210 accesses the variable x_c in a step T to obtain a result dependent on x_c
  • the second task 220 checks the value of the status variable
  • FIG. 3 therefore shows schematically a flow chart according to a first embodiment of the invention.
  • the execution of a second task 112 depends on the results of a first task 122.
  • a start time tO is indicated, to which both task programs 112, 122 start a new operating cycle.
  • the second task 112 has timeslots ZS1 of 10 ms (milliseconds), compare also the lower portion of FIG. 3 marked with the curly bracket 112 '.
  • the second operating cycle of the second task program 112 extends between the times t2, t4, etc.
  • the interval or cycle boundaries between successive time slots are indicated by rectangles Rl.
  • area 112 ' the second task program 112 does not always require the full cycle time or length of the assigned time slot of 10 ms in the present case.
  • the first task program 122 is also assigned time slots ZS2, ZS2 'of constant length, in the present case 5 ms, also compare the vertical upper area of FIG. 3 marked with the curly bracket 122'.
  • the first operating cycle of the first task program 122 Accordingly, from time t0 to time t1, the second operating cycle of the first task 122 extends between times t1, t2, etc.
  • the interval limits between successive time slots of the first task 122 are indicated by rectangles R2.
  • the first task program 122 does not always require the full cycle time or length of the assigned time slot of 5 ms in the present case. Rather, a processing of all tasks of the first task 122 in the first cycle of operation has already taken place at the time t02, and a processing of all tasks of the first task 122 in the second cycle already at the time tll.
  • FIG. 3 shows a usage scheme 114 of a second memory area assigned to the second task program 112. and a usage scheme 124 of a first memory area assigned to the first task 122.
  • the sender task 122 calculates, for example based on input variables, quantities which are to be transmitted to the receiver task 112 (second task program).
  • the transmission 14a, 14b of the data from the sender task 122 to the receiver task 112 takes place when the sender task 122 has completed the calculation of the data G to be output, and at the same time the receiver task 112 with the processing the data 15 received in the previous cycle is ready.
  • the data G can also include a status variable DEM_ Event (see FIG. If the data G is then transferred to the memory area assigned to the second task program 112, the status variable DEM_Event is copied into a memory area within this assigned memory area.
  • the receiver task 112 sends a notification B to the execution unit of the transmitter task 122 as soon as the calculations have been completed within one execution, ie at the latest at the end of the cycle of the receiver task, cf. Time tOl in Figure 3.
  • a further task program 140 hereinafter also referred to as "notification task”, is executed, in the present case, for example. B. from the first task 122 executing execution unit to transfer data from one of the first task 122 (transmitter task) associated memory area 124 in the second task 112 (receiver task) associated memory area 114.
  • this further task program 140 can be activated by the notification B.
  • the notification task 140 can be z. For example, a list of the activated tasks of the execution C.ready queue ”) and executed as soon as no other task with higher priority has to be executed and the tasks previously entered in the same list have been terminated
  • the sender and receiver task can be executed on the same task or running on different cores.
  • the transmission of the data G to the second task 112 occurs within the execution of the notification task 140 or at the end of the transmitter task 122, whichever occurs later.
  • data transfer 14a may then occur at the end of sender task 122, i. after the time tll. In this case, e.g. the transmitter task 122 itself initiate or execute the data transmission 14a.
  • the notification task 140 may initiate the transmission 14b of the data to the recipient task 112.
  • the notification task 140 When exactly the notification task 140 is executed relative to the sender task 122 in one embodiment depends on the priorities of the two tasks. If both tasks 122, 140 have the same priority, it is excluded that the tasks 122, 140 may interrupt each other, and the notification task 140 may be performed either before or after the sender task 122, as the notification B indicates. B 'takes place in relation to the execution of the transmitter task 122.
  • the second task program 112 and the first task program 122 have different cycle times ZS1, ZS2, wherein a cycle time ZS1 of the second task program 112 is greater than the cycle time ZS2 of the first task program 122, and wherein data from a memory area 124 assigned to the first task program 122 into a memory area 114 assigned to the second task program 112 within the cycle ZS2 ' of the second task 122, which is within the range of one cycle end of the second task 112.
  • an algorithm which ensures that the transmission of the data G from the transmitter 122 to the receiver
  • a counter mechanism within transmitter or receiver task 122, 112 ensures that only the respectively last execution 1220 of the "faster" task 122 initiates a data transmission 14a within the time interval ZS1 of the slower task 112 (eg by notification B, if the receiver task 112 has the higher activation rate) or executes (if the transmitter task 122 is activated more often). For this purpose, a counter is incremented at the end of the faster task. If the count equals the ratio of slower sample time to faster sample time, data transfer is allowed and the counter is reset to zero.
  • the transmitter task 122 has the higher activation rate of 5 ms compared to 10 ms in the receiver task 112. Therefore, according to one embodiment, only every second embodiment 1220, 1222 performs a data transmission 14a, 14b , but not in the 1219 version,
  • FIG. 4 schematically shows a flow chart according to a second embodiment of the invention.
  • the execution of the second task program 112 is dependent on the results of a first task program 122.
  • a start time tO is indicated, to which both task programs 112, 122 start a new operating cycle.
  • the first task 122 is assigned a cycle time, ie a length of a time slot ZS2, which is twice as long as the cycle time assigned to the second task 112. That is, unlike the embodiment illustrated in FIG. 3, the cycle time of the first task program 122 is longer than the cycle time of the second task program 112.
  • the second task program 122 carries out a diagnosis, determines in the time step t a result v (which is designated as vt) and furthermore determines a status variable Event.
  • the time step t here denotes the operating cycle of the second task program 122.
  • the second task program 122 performs a calculation of vt in the first operating cycle between the times W and t2, which fails.
  • the second task program 122 sets the value of the variable vt to the hexadecimal value "FF" in the memory area assigned to it, and the value of the status variable Event to the value False.
  • FIM_GetFuncPermission the task program calls whether it should perform a diagnostic function. This permission depends on the status variable Event. Therefore, the function takes effect
  • the notification task 140 copies the values of the variables vt and event into a memory area assigned to the first task program 112.
  • the variables vt and event are stored in the memory area associated with the second task program 122 so that they can be copied together with a single copy command.
  • the first task 112 queries in a first cycle of operation between to and tl with the function FIM_GetFuncPermission the value of the variables v and Event, which are assigned to the first task 112
  • Memory area are located. These variables have the values determined by the second task 122 in the previous cycle of operation t-1. They therefore have the values vt-1 and true.
  • notification task 140 stores these values from the memory area allocated to the second task program 122 in the memory area allocated to the first task program 112.
  • FIG. 5 schematically shows a flow chart of a third embodiment of the invention. Shown are task programs FCT1, FCT5. The execution of each of these task programs FCT1, FCT5 may depend on the results of one or more diagnostic functions DFC_FCT1, ...
  • DFC_FCT5 which check the correct functioning of components of the motor vehicle.
  • the transmission of the results and status variables is indicated by dashed arrows.
  • Task FCTl is executed in a time frame with time slots whose length is 2 ms and performs a diagnostic function DFC_FCT1.
  • the result and status variable of DFC_FCT1 are transferred to the task program FCT2 (indicated by an arrow to the function identifier
  • the execution of the task program FCT2 depends on the result and status variable of DFC_FCT1.
  • Task FCT2 is executed in a time frame with time slots whose length is 10 ms and performs a diagnostic function DFC_FCT2A, DFC_FCT2B.
  • Results and status variables are fed to task FCT3.
  • Task FCT4 is executed in a time frame with time slots whose length is 20 ms and performs a diagnostic function DFC_FCT4.
  • Result and status variables are also fed to the task program FCT3.
  • the execution of the task program FCT3 depends on the result and status variable of the diagnostic functions DFC_FCT2A, DFC_FCT2B and DFC_FCT4.
  • Task FCT3 is executed in a time frame with time slots whose length is 100 ms and performs a diagnostic function DFC_FCT3. Result and status variables are fed to the task program FCT5. Execution of the task program FCT5 depends on the result and status variable of DFC_FCT5. Task FCT5 is executed in a time frame with time slots whose length is 200 ms and performs a diagnostic function DFC_FCT5.
  • a structure object CIO_FCT_l, ... CIO_FCT_5 is defined at the output of the task programs FCT1, FCT5 that combines the diagnostic functions of the task program and those of the task programs that are included in this task program.
  • DFC_FCT_5 is reported from the same calculation grid and enters directly and immediately.
  • DFC_FCT_3 enters CIO_FCT_3, which has a time assignment to the 100ms grid. Consequently, the status of the
  • DFC_FCT_4 enters CIO_FCT_4, which in turn enters FID_FCT_3 and then CIO_FCT_3. He has a time assignment to the 20ms grid. Consequently, the status of DFC_FCT_4 with the timed communication transition from 20ms to 100ms grid and then transferred from 100ms to 200ms grid. Analogous to all ren DFCs. DFC_FCT_1 is thus communicated via the following chain: 2ms ⁇ l0ms ⁇ l00ms ⁇ 200ms.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Verfahren zum Betreiben eines Steuergeräts mit den Schritten: ein erstes Aufgabenprogramm wird in einem ersten Zeitraster aus ersten Zeitschlitzen ausgeführt, ein zweites Aufgabenprogramm wird in einem zweiten Zeitraster aus zweiten Zeitschlitzen durchgeführt, es wird eine Statusvariable ermittelt, die angibt, ob ein Ergebnis des ersten Aufgabenprogramms freigegeben ist, das Ergebnis des ersten Aufgabenprogramms wird in einem aktuellen ersten Zeitschlitz ermittelt und in diesem aktuellen ersten Zeitschlitz an einen Speicherbereich übermittelt der dem zweiten Aufgabenprogramm zugeordnet ist, das zweiten Aufgabenprogramms ermittelt ein zweites Ergebnis abhängig vom Wert der Statusvariable und vom Ergebnis des ersten Aufgabenprogramms, der Wert der Statusvariable wird ebenfalls in dem aktuellen ersten Zeitschlitz an einen Status-Speicherbereich übermittelt, der dem zweiten Aufgabenprogramm zugeordnet ist; das Ermitteln und Übermitteln sowohl des Ergebnisses des ersten Aufgabenprogramms als auch des Werts der Statusvariablen erfolgen nach Beginn der Ausführung des ersten Aufgabenprogramms und vor einer erneuten Ausführung des ersten Aufgabenprogramms.

Description

Beschreibung Titel
Verfahren und Vorrichtung zum Betreiben eines Steuergeräts, Computerprogramm und Verfahren zum Generieren des Computerprogramms
Die Erfindung betrifft ein Verfahren zum Betreiben eines Steuergeräts, insbesondere in einem Kraftfahrzeug, ein Computerprogramm und einen Computer zur Durchführung des Verfahrens sowie ein maschinenlesbares Speichermedium, auf dem das Computerprogramm gespeichert ist. Die Erfindung betrifft ferner ein Verfahren zum (automatisierten) Generieren des Computerprogramms.
Stand der Technik
In der DE 10 2009 026 995 AI ist ein Verfahren zum Betreiben eines Bussystems, insbesondere eines CAN-Busses, beschrieben. An das Bussystem sind mehrere Stationen anschließbar. Eine übertragene Nachricht weist einen Identifi- er auf, wobei ein bestimmter Identifier (z.B. IDENT2) immer nur von einer einzigen Station verwendet werden darf. Jede der Stationen vergleicht den Identifier einer übertragenen Nachricht mit den von ihr selbst verwendeten Identifiern (z.B. IDENT2). Bei einer Übereinstimmung wird eine Fehlermeldung erzeugt wird.
Aus der DE 10 2014 216 381 AI ist ein Verfahren zum Betreiben eines Steuergeräts bekannt, wobei das Steuergerät wenigstens eine zur Ausführung von Aufgabenprogrammen ausgebildete Ausführungseinheiten aufweist, wobei zumindest zeitweise ein erstes Aufgabenprogramm und ein zweites Aufgabenprogramm ausgeführt werden, wobei das erste Aufgabenprogramm eine Benachrichtigung an eine Ausführungseinheit sendet, die das zweite Aufgabenprogramm ausführt, wobei die Benachrichtigung dem zweiten Aufgabenprogramm und/oder der das zweite Aufgabenprogramm ausführenden Ausführungseinheit signalisiert, dass das erste Aufgabenprogramm bereit ist, Daten von dem zweiten Aufgabenprogramm zu empfangen.
Vorteile der Erfindung
Das Verfahren mit den Merkmalen des unabhängigen Anspruch 1 hat den Vorteil, dass das Ausführen von Aufgabenprogrammen besonders zuverlässig erfolgen kann, auch dann, wenn die Berechnung über mehrere Ausführungseinheiten (z.B. Prozessoren) hinweg verteilt ist.
Vorteilhafte Weiterbildungen sind Gegenstand der abhängigen Ansprüche. Offenbarung der Erfindung In einem ersten Aspekt betrifft die Erfindung ein Verfahren zum Betreiben eines
Steuergeräts, insbesondere für ein Kraftfahrzeug, wobei das Steuergerät mindestens eine, vorzugsweise wenigstens zwei, Ausführungseinheiten aufweist, wobei die Ausführungseinheiten insbesondere zur Ausführung von Aufgabenprogrammen ausgebildet sind. Hierbei wird ein erstes Aufgabenprogramm (Englisch: task) in einem ersten Zeitraster aus ersten Zeitschlitzen ausgeführt (die ersten
Zeitschlitze folgen daher vorteilhafterweise unmittelbar aufeinander und sind in jedem Betriebszyklus gleich lang). Ferner wird ein zweites Aufgabenprogramm in einem zweiten Zeitraster aus zweiten Zeitschlitzen durchgeführt (die zweiten Zeitschlitze folgen daher vorteilhafterweise unmittelbar aufeinander).
Dabei wird eine Statusvariable ermittelt, die angibt, ob ein Ergebnis des ersten Aufgabenprogramms freigegeben ist. Das zweite Aufgabenprogramms ermittelt ein zweites Ergebnis abhängig vom Wert der Statusvariable und vom Ergebnis des ersten Aufgabenprogramms.
Dies kann z.B. im Rahmen eines Fehlerspeichermanagers erfolgen, mit dem die Ausführung weiterer Diagnosen kontrolliert werden kann. Während es Diagnosen gibt, die sehr schnell und ohne Vorbedingungen ausgeführt werden können (wie z.B. elektrische Diagnosen an Sensoren) gibt es andere Diagnosen, die die Plausibilität von erfassten Werten prüfen. Die Meldung eines Plausibilitätsfehlers an den Fehlerspeichermanager soll aber vorteilhafterweise nur dann erfolgen, wenn kein elektrischer Fehler vorher festgestellt wurde.
Um diese Abhängigkeiten zu verwalten ist es möglich, eine sogenannte FID- Sperrmatrix zu verwenden, in der die Freigabe eines Aufgabenprogramms (im Beispiel die Plausibilitätsprüfung) in Abhängigkeit vom Wert der Statusvariablen (im Beispiel das Erfolgen der elektrischen Diagnose) gesetzt werden kann.
Es ist nun möglich, dass die Sperrbeziehungen unmittelbar bei Meldung eines neuen Ergebnisses des ersten Aufgabenprogramms (im Beispiel also des Diagnoseergebnisses) ermittelt wird. Die Laufzeit von physikalischen Signalen, die den Wert der Statusvariablen übermitteln, bleibt dabei allerdings unberücksichtigt.
Erfolgt die Berechnung verteilt auf mindestens zwei Ausführungseinheiten, kann das Problem entstehen, dass die physikalischen Werte über Grenzen der Ausführungseinheiten und über Zeitrechenschritte hinweg verteilt werden. Mit steigender Anzahl der Ausführungseinheiten (in sogenannten Many-Core-Systemen) nimmt diese Verteilung zu, denn nur so können die Ressourcen der Ausführungseinheiten optimal genutzt werden.
Die Kommunikation der Ergebnisse des ersten Aufgabenprogramms an das zweite Aufgabenprogramm kann nun mit sogenannter Timed Communication (auch bekannt als Logical Execution Time) geschehen. D.h. es kann vorgesehen sein, dass das Ergebnis des ersten Aufgabenprogramms in einem aktuellen ersten Zeitschlitz ermittelt wird. Anschließend wird es in diesem aktuellen ersten Zeitschlitz an einen Speicherbereich übermittelt, der dem zweiten Aufgabenprogramm zugeordnet ist.
Um eine zuverlässige Übermittlung des Werts der Statusvariablen zu erhalten ist es möglich, die Ausführung des ersten Aufgabenprogramms zu sperren, bis der Wert der Statusvariablen übermittelt wurde. Dies kann allerdings dazu führen, dass die Echtzeitfähigkeit des ersten Aufgabenprogramms und damit die Ausführung im festen Zeitraster gestört wird. Es ist daher vorgesehen, dass der Wert der Statusvariable ebenfalls in dem aktuellen ersten Zeitschlitz an einen Status-Speicherbereich übermittelt wird, der dem zweiten Aufgabenprogramm zugeordnet ist, wobei das Ermitteln und Übermitteln sowohl des Ergebnisses des ersten Aufgabenprogramms als auch des Werts der Statusvariablen nach Beginn der Ausführung des ersten Aufgabenprogramms und vor einer erneuten Ausführung des ersten Aufgabenprogramms erfolgt.
Um eine Mehrfachverwaltung von Ergebnissen nicht zu benötigen, kann in einer Weiterbildung vorgesehen sein, dass die Übermittlung des Ergebnisses des ersten Aufgabenprogramms pro längerem Zeitschlitz aus erstem Zeitschlitz und zweitem Zeitschlitz nur einmal erfolgt und/oder dass auch die Übermittlung des Werts der Statusvariablen pro längerem Zeitschlitz aus erstem Zeitschlitz und zweitem Zeitschlitz nur einmal erfolgt.
Besonders einfach wird die Festlegung der Übermittlungszeitpunkte, wenn die Dauern des längeren Zeitschlitzes und des kürzeren Zeitschlitzes ganzzahlige Vielfache voneinander sind. Werden das Ergebnis des ersten Aufgabenprogramms und die Statusvariable vor der Übermittlung an den dem zweiten Aufgabenprogramm zugeordneten Status- Speicherbereich an beliebige Stellen eines Speicherbereichs gespeichert, ist es möglich, dass sie von der Ausführungseinheit nicht in einem einzigen Kopiervorgang übermittelt werden können. Dies kann je nach verwendeter Hardware bei- spielsweise passieren, wenn sie nicht in der gleichen Speicherbank abgespeichert sind. Vorteihafterweise kann daher vorgesehen sein, dass das Ergebnis des ersten Aufgabenprogramms und die Statusvariable vom ersten Aufgabenprogramm derart gespeichert sind, dass sie zeitgleich übermittelt werden können. Die kann beispielsweise dadurch geschehen, dass sie in der gleichen Spei- cherbank abgelegt werden.
In einem weiteren Aspekt kann vorgesehen sein, dass eine analoge Abhängigkeit wie zwischen dem ersten und dem zweiten Aufgabenprogramm auch zwischen dem zweiten und einem dritten Aufgabenprogramm besteht. D.h. es kann vorge- sehen sein, dass eine zweite Statusvariable ermittelt wird, die angibt, ob ein Er- gebnis des zweiten Aufgabenprogramms freigegeben ist, wobei das Ergebnis des zweiten Aufgabenprogramms in einem aktuellen zweiten Zeitschlitz ermittelt und in diesem aktuellen zweiten Zeitschlitz an einen Speicherbereich übermittelt wird, der dem dritten Aufgabenprogramm zugeordnet ist, wobei das dritte Aufgabenprogramms ein drittes Ergebnis abhängig vom Wert der Statusvariable und vom Ergebnis des zweiten Aufgabenprogramms ermittelt, wobei der Wert der zweiten Statusvariable ebenfalls in dem aktuellen zweiten Zeitschlitz an einen Status-Speicherbereich übermittelt wird, der dem dritten Aufgabenprogramm zugeordnet ist, wobei das Ermitteln und Übermitteln sowohl des Ergebnisses des zweiten Aufgabenprogramms als auch des Werts der zweiten Statusvariablen nach Beendigung der Ausführung des zweiten Aufgabenprogramms und vor einer erneuten Ausführung des zweiten Aufgabenprogramms erfolgt.
Bei einer derartigen Kette von Abhängigkeiten kann insbesondere vorgesehen sein, dass das dritte Aufgabenprogramm in einem dritten Zeitraster aus aufeinanderfolgenden dritten Zeitschlitzen ausgeführt wird, wobei auch die Übermittlung des Werts der Statusvariablen pro längerem Zeitschlitz aus erstem Zeitschlitz und zweitem Zeitschlitz nur einmal erfolgt, und die Übermittlung des Werts der Statusvariablen pro längstem Zeitschlitz aus erstem Zeitschlitz und zweitem Zeitschlitz und drittem Zeitschlitz nur einmal erfolgt.
Werden die Abhängigkeiten in Form der vorgenannten Fl D-Sperrmatrix verwaltet, ist das Generieren eines Computerprogramms, das ein solches Verfahren ausführt, sehr komplex, da die erwähnten Sperrungen konsistent mit der Taktung der Übermittlung der Ergebnisse und der Übermittlung der Werte der Statusvariablen erfolgen muss.
In einem weiteren Aspekt wird daher ein Verfahren vorgeschlagen, mit dem das automatischen Generieren dieses Computerprogramms möglich ist. Hierbei ist vorgesehen, dass die Struktur der Sperrmatrix nicht flach, sondern hierarchisch aufgebaut wird. Es ist vorgesehen, dass den Aufgabenprogrammen, deren Statusvariable übermittelt wird, ein Strukturobjekt zugewiesen wird, dass die Ergebnisse der Aufgabenprogramme und die der Aufgabenprogramme, die Eingang in das jeweilige Aufgabenprogramm finden, zusammenfasst. Die Abhängigkeiten zwischen den Aufgabenprogrammen werden also in diesen Strukturobjekten zusann mengefasst.
Es kann daher vorgesehen sein, dass ein Strukturobjekt die Information enthält, dass das Ergebnis des zweiten Aufgabenprogramms abhängig vom Wert der
Statusvariable und abhängig vom Ergebnis des ersten Aufgabenprogramms ermittelt wird. Dieses Strukturobjekt wird dem ersten Aufgabenprogramm zugeordnet. Ferner ist dann vorgesehen, dass ein weiteres Strukturobjekt die Information enthält, dass das Ergebnis des dritten Aufgabenprogramms abhängig vom Wert der zweiten Statusvariable und vom Ergebnis des zweiten Aufgabenprogramms ermittelt wird. Dieses weitere Strukturprojekt wird dem zweiten Aufgabenprogramm zugeordnet. Das Computerprogramm wird dann abhängig vom Strukturo- bjekt und vom weiteren Strukturobjekt ermittelt wird.
Dies hat den Vorteil, dass das zeitliche Raster, in dem die Ergebnisse der Aufgabenprogramme und der Statusvariablen übermittelt werden besonders einfach automatisiert ermittelt werden können.
In weiteren Aspekten betrifft die Erfindung ein maschinenlesbares Speichermedium, auf dem das genannte Computerprogramm gespeichert ist. Außerdem einen Computer, der eingerichtet (d.h. entsprechend programmiert) ist, das Verfahren zum Generieren dieses Computerprogramms auszuführen, und einen weiteren Computer (insbesondere ein Steuergerät), der eingerichtet ist, das genannte Verfahren auszuführen.
Nachfolgend werden Ausführungsformen der Erfindung unter Bezugnahme auf die beiliegende Zeichnung näher erläutert. In der Zeichnung zeigen:
Figur 1 eine Fl D-Sperrmatrix nach dem Stand der Technik;
Figur 2 schematisch einen Ablaufplan nach dem Stand der Technik; Figur 3 schematisch einen Ablaufplan gemäß einer Ausführungsform der Erfindung;
Figur 4 schematisch einen Ablaufplan gemäß einer zweiten Ausführungsform der Erfindung;
Figur 5 schematisch einen Ablaufplan gemäß einer dritten Ausführungsform der Erfindung.
Figur 1 zeigt eine Fl D-Sperrmatrix nach dem Stand der Technik. Anhand einer solchen Sperrmatrix wird den Aufgabenprogramm, die auf einer Ausführungseinheit eines Kraftfahrzeugs ablaufen, zugeordnet, welche Diagnoseaufgabenprogramme durchgeführt sein müssen, damit das entsprechende Aufgabenprogramm selbst zuverlässig ein Ergebnis ermitteln kann. Die Zeilen sind Funktions- bezeichnern (Englisch: function identifier) FID1, FID2, FID3, ... zugeordnet, die Spalten Diagnoseaufgabenprogrammen (Englisch: diagnostic fault check) DFCl, DFCT2, DFC3, DFC4, ... Jeder Funktionsbezeichner entspricht hierbei eindeutig einem Aufgabenprogramm. In den Feldern der so aufgespannten Matrix ist je ein binärer Wert eingetragen.„1" bedeutet, dass das entsprechende Diagnoseaufgabenprogramm vor Durchführung des Aufgabenprorgamms erfolgreich abgeschlossen sein sollte,„0" bedeutet, dass dies nicht notwendig ist. Wie eingangs beschrieben, ist das Aufstellen einer solchen Matrix ein komplexer Vorgang.
Figur 2 zeigt schematisch einen Ablaufplan nach dem Stand der Technik. Zum Zeitpunkt tO beginnt die Ausführung eines ersten Aufgabenprogramms 210. Das erste Aufgabenprogramm 210 ermittelt ein Ergebnis x, das in diesem Beispiel den Wert 255 annimmt. In einem Schritt S prüft das erste Aufgabenprogramm 210, ob die Ermittlung des Ergebnisses x zuverlässig erfolgte. Dies ist hier nicht der Fall, weshalb eine globale Status-Variable DEM_Event zum Zeitpunkt tl auf den Wert„failed" gesetzt wird, was binär z.B. mit einer„0" kodiert sein kann.
Zum Zeitpunkt t2 beginnt die Ausführung eines zweiten Aufgabenprogramms 220. Zum Zeitpunkt t3 kopiert ein Befehl M den Wert des Ergebnisses x in einen Speicherbereich, der dem zweiten Aufgabenprogramm zugeordnet ist. Pro- grammlogisch geschieht dies durch Anlegen einer neuen Variablen x_c, der im Beispiel nun der kopierte Wert 255 zugeordnet wird.
Zum Zeitpunkt t4 beginnt die Ausführung des ersten Aufgabenprogramms 210 erneut, da es zyklisch wiederholt gestartet wird. Es ermittelt dieses Mal das Ergebnis x=10. In Schritt S prüft das erste Aufgabenprogramm 210 wieder, ob die Ermittlung des Ergebnisses x zuverlässig erfolgte. Dies ist hier nun der Fall, weshalb die Status-Variable DEM_Event zum Zeitpunkt t5 auf den Wert„passed" gesetzt wird. Zum Zeitpunkt t6 schließlich greift das zweite Aufgabenprogramm 220 in einem Schritt T auf die Variable x_c zu, um ein Ergebnis abhängig von x_c zu berechnen. Um zu überprüfen, ob der Wert der Variable x_c zuverlässig ist, prüft das zweite Aufgabenprogramm 220 den Wert der Status-Variable
DEM_Event. Diese hat nun den Wert„passed", sodass das zweite Aufgabenprogramm fälschlicherweise annimmt, dass der Wert der Variable x_c zuverlässig ist. Dies kann zu Fehlern im Programmablauf führen. Eine Möglichkeit ist daher, dass das zweite Aufgabenprogramm 220 einen Schreibzugriff auf die globale Variable DEM_Event unterbindet, die Variable also sperrt, bis der Zugriff auf x_c abgeschlossen ist. Dies führt jedoch u.U. zu Verzögerungen im Ablauf des ersten Aufgabenprogramms 210.
Figur 3 zeigt daher schematisch ein Ablaufdiagramm gemäß einer ersten Ausführungsform der Erfindung. In diesem Beispiel erfolgt die Ausführung eines zweiten Aufgabenprogramms 112 abhängig von Ergebnissen eines ersten Aufgabenprogramms 122.
Auf der Zeitskala t ist ein Startzeitpunkt tO angegeben, zu dem beide Aufgabenprogramme 112, 122 einen neuen Betriebszyklus starten. Für die nachfolgende Beschreibung wird davon ausgegangen, dass dem zweiten Aufgabenprogramm 112 Zeitschlitze ZS1 von 10 ms (Millisekunden) zugewiesen sind, vergleiche auch den mit der geschweiften Klammer 112' markierten unteren Bereich der Figur 3. Der erste Betriebszyklus des zweiten Aufgabenprogramms 112 ab dem Zeitpunkt tO erstreckt sich demnach bis zu dem Zeitpunkt t2, der zweite Betriebszyklus des zweiten Aufgabenprogramms 112 erstreckt sich zwischen den Zeitpunkten t2, t4, usw. Die Intervall- bzw. Zyklusgrenzen zwischen aufeinanderfol- genden Zeitschlitzen sind durch Rechtecke Rl angedeutet. Wie aus Figur 3, Bereich 112', ersichtlich ist, benötigt das zweite Aufgabenpro- gramm 112 jedoch nicht stets die volle Zykluszeit bzw. Länge des zugewiesenen Zeitschlitzes von vorliegend 10 ms. Vielmehr ist eine Abarbeitung aller Aufgaben des zweiten Aufgabenprogramms 112 in dem ersten Betriebszyklus bereits zu dem Zeitpunkt tOl erfolgt, und eine Abarbeitung aller Aufgaben des zweiten Aufgabenprogramms 112 in dem zweiten Betriebszyklus bereits zu dem Zeitpunkt t21. Mit anderen Worten existiert in dem ersten Betriebszyklus ein Zeitintervall t2- tOl zwischen dem Ende der Abarbeitung des ersten Aufgabenprogramms 112 und der Intervallgrenze Rl, in dem keine Aktivität des Aufgabenprogramms 112 vorliegt und somit die für die gesamte Zykluszeit von 10 ms reservierten Rechenressourcen der Ausführungseinheit ungenutzt bleiben.
Analog zu dem zweiten Aufgabenprogramm 112 sind dem ersten Aufgabenprogramm 122 ebenfalls Zeitschlitze ZS2, ZS2' von konstanter Länge, vorliegend 5 ms zugewiesen, vergleiche auch den mit der geschweiften Klammer 122' markierten vertikal oberen Bereich der Figur 3. Der erste Betriebszyklus des ersten Aufgabenprogramms 122 ab dem Zeitpunkt tO erstreckt sich demnach bis zu dem Zeitpunkt tl, der zweite Betriebszyklus des ersten Aufgabenprogramms 122 erstreckt sich zwischen den Zeitpunkten tl, t2, usw. Die Intervall- bzw. Zyklusgrenzen zwischen aufeinanderfolgenden Zeitschlitzen des ersten Aufgabenprogramms 122 sind durch Rechtecke R2 angedeutet.
Wie aus Figur 3, Bereich 122', ersichtlich ist, benötigt das erste Aufgabenprogramm 122 jedoch nicht stets die volle Zykluszeit bzw. Länge des zugewiesenen Zeitschlitzes von vorliegend 5 ms. Vielmehr ist eine Abarbeitung aller Aufgaben des ersten Aufgabenprogramms 122 in dem ersten Betriebszyklus bereits zu dem Zeitpunkt t02 erfolgt, und eine Abarbeitung aller Aufgaben des ersten Aufgabenprogramms 122 in dem zweiten Betriebszyklus bereits zu dem Zeitpunkt tll.
Zusätzlich zu den Bereichen 112', 122', die die Aktivität der einzelnen Aufgabenprogramme 112, 122 wiedergeben, ist in Figur 3 noch ein Nutzungsschema 114 eines dem zweiten Aufgabenprogramm 112 zugewiesenen zweiten Speicherbe- reichs und ein Nutzungsschema 124 eines dem ersten Aufgabenprogramm 122 zugewiesenen ersten Speicherbereichs angegeben.
In dem ersten Speicherbereich 124 der Sender- Task 122 (erstes Aufgabenprogramm) liegen einer Ausführungsform zufolge von der Sender- Task 122 beispielsweise auf Basis von Eingangsgrößen berechnete Größen, welche an die Empfänger- Task 112 (zweites Aufgabenprogramm) übertragen werden sollen. Die Übertragung 14a, 14b der Daten von der Sender- Task 122 zur Empfänger- Task 112 findet gemäß einer Ausführungsform dann statt, wenn die Sender- Task 122 die Berechnung der auszugebenden Daten G abgeschlossen hat, und gleichzeitig die Empfänger- Task 112 mit der Verarbeitung der im vorherigen Zyklus empfangenen Daten 15 fertig ist.
Einer bevorzugten Ausführungsform zufolge können die Daten G auch eine Statusvariable DEM_ Event (vgl. Figur 2) umfassen. Werden die Daten G dann in den dem zweiten Aufgabenprogramm 112 zugeordneten Speicherbereich übertragen, so wird die Statusvariable DEM_ Event in einen Speicherbereich innerhalb dieses zugeordneten Speicherbereichs kopiert.
Einer Ausführungsform zufolge sendet die Empfänger- Task 112 eine Benachrichtigung B an die Ausführungseinheit der Sender- Task 122, sobald die Berechnungen innerhalb einer Ausführung beendet wurden, also spätestens am Zyklusende der Empfänger- Task, vgl. Zeitpunkt tOl in Figur 3.
Bei einer bevorzugten Ausführungsform kann vorgesehen sein, dass ein weiteres Aufgabenprogramm 140, nachstehend auch als "Benachrichtigungs-Task" bezeichnet, ausgeführt wird, vorliegend z. B. von der auch das erste Aufgabenprogramm 122 ausführenden Ausführungseinheit, um Daten von einem dem ersten Aufgabenprogramm 122 (Sender- Task) zugeordneten Speicherbereich 124 in einen dem zweiten Aufgabenprogramm 112 (Empfänger- Task) zugeordneten Speicherbereich 114 zu übertragen. Insbesondere kann dieses weitere Aufgabenprogramm 140 durch die Benachrichtigung B aktiviert werden.
Bei heute im Automobil-Bereich üblichen Betriebssystemen kann die Benachrich- tigungs-Task 140 dabei z. B. in eine Liste der aktivierten Tasks der Ausführungs- einheit mit gleicher Priorität eingetragen C.ready queue") und ausgeführt werden, sobald keine andere Task mit höherer Priorität ausgeführt werden muss und die früher in dieselbe Liste eingetragenen Tasks beendet wurden. Wie bereits vorstehend beschrieben, können Sender- und Empfänger- Task auf derselben oder auf unterschiedlichen Rechenkernen ausgeführt werden.
Bei einer Ausführungsform erfolgt die Übermittlung der Daten G an das zweite Aufgabenprogramm 112 (Empfänger- Task) innerhalb der Ausführung der Benachrichtigungs-Task 140 oder am Ende der Sender- Task 122 liegen, je nach- dem welches Ereignis später eintritt.
Sofern die Benachrichtigung B vor Beendigung der Sender- Task 122 erfolgt, kann bei einer Ausführungsform die Datenübertragung 14a dann am Ende der Sender- Task 122 erfolgen, d.h. nach dem Zeitpunkt tll. In diesem Fall kann z.B. die Sender- Task 122 selber die Datenübertragung 14a anstoßen bzw. ausführen.
Sofern die Benachrichtigung B' erfolgt, nachdem die Sender- Task 122 beendet wurde, kann bei einer Ausführungsform die Benachrichtigungs-Task 140 die Übermittlung 14b der Daten an die Empfänger- Task 112 anstoßen bzw. ausführen.
Wann genau die Benachrichtigungs-Task 140 im Verhältnis zur Sender- Task 122 ausgeführt wird hängt bei einer Ausführungsform von den Prioritäten der beiden Tasks ab. Wenn beide Tasks 122, 140 dieselbe Priorität haben, ist ausgeschlossen, dass die Tasks 122, 140 sich gegenseitig unterbrechen können, und die Benachrichtigungs-Task 140 kann entweder vor oder nach der Sender- Task 122 ausgeführt werden, je nachdem wann die Benachrichtigung B, B' im Verhältnis zur Ausführung der Sender- Task 122 erfolgt.
Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass das zwei- te Aufgabenprogramm 112 und das erste Aufgabenprogramm 122 unterschiedliche Zykluszeiten ZS1, ZS2 aufweisen, wobei eine Zykluszeit ZS1 des zweiten Aufgabenprogramms 112 größer ist als die Zykluszeit ZS2 des ersten Aufgabenprogramms 122, und wobei Daten von einem dem ersten Aufgabenprogramm 122 zugeordneten Speicherbereich 124 in einen dem zweiten Aufgabenpro- gramm 112 zugeordneten Speicherbereich 114 innerhalb desjenigen Zyklus ZS2' des zweiten Aufgabenprogramms 122 übertragen werden, welcher zeitlich im Bereich eines Zyklusendes des zweiten Aufgabenprogramms 112 liegt.
Bei einer vorteilhaften Ausführungsform ist ein Algorithmus vorgesehen, der si- cherstellt, dass die Übertragung der Daten G vom Sender 122 zum Empfänger
112 genau einmal pro langsamerem Zyklus ZSl bzw. Zeitintervall erfolgt. Durch einen Zähler-Mechanismus innerhalb von Sender- oder Empfänger- Task 122, 112 wird sichergestellt, dass nur die jeweils letzte Ausführung 1220 der "schnelleren" Task 122 innerhalb des Zeitintervalls ZSl der langsameren Task 112 eine Datenübertragung 14a anstößt (z.B. durch Benachrichtigung B, wenn die Empfänger- Task 112 die höhere Aktivierungsrate hat) oder ausführt (wenn die Sender- Task 122 öfter aktiviert wird). Dazu wird jeweils am Ende der schnelleren Task ein Zähler inkrementiert. Wenn der Zählerstand dem Verhältnis von langsamerer Abtastzeit zu schnellerer Abtastzeit entspricht, wird die Datenübertra- gung zugelassen und der Zähler auf null zurückgesetzt.
Im Beispiel der Figur 3 hat die Sender- Task 122 die höhere Aktivierungsrate von 5 ms im Vergleich zu 10 ms bei der Empfänger- Task 112. Deshalb wird einer Ausführungsform zufolge nur bei jeder zweiten Ausführung 1220, 1222 eine Da- tenübertragung 14a, 14b durchgeführt, nicht aber bei den Ausführungen 1219,
1221. Dadurch wird vorteilhaft ein deterministisches Verhalten im Sinne der„Lo- gical Execution Time" sichergestellt.
Figur 4 zeigt schematisch ein Ablaufdiagramm gemäß einer zweiten Ausfüh- rungsform der Erfindung. Auch in diesem Beispiel erfolgt die Ausführung des zweiten Aufgabenprogramms 112 abhängig von Ergebnissen eines ersten Aufgabenprogramms 122.
Auf der Zeitskala t ist ein Startzeitpunkt tO angegeben, zu dem beide Aufgaben- Programme 112, 122 einen neuen Betriebszyklus starten. Dem ersten Aufgabenprogramm 122 ist eine Zykluszeit, also eine Länge eines Zeitschlitzes ZS2, zugewiesen, die doppelt so lang ist wie die Zykluszeit, die dem zweiten Aufgabenprogramm 112 zugewiesen ist. Das heißt, dass im Gegensatz zu dem in Figur 3 illustrierten Ausführungsbeispiel die Zykluszeit des ersten Aufgabenprogramms 122 länger ist als die Zykluszeit des zweiten Aufgabenprogramms 112. Das zweite Aufgabenprogramm 122 führt eine Diagnose durch, ermittelt im Zeitschritt t ein Ergebnis v, (welches als vt bezeichnet ist) und ermittelt ferner eine Statusvariable Event. Der Zeitschritt t bezeichnet hierbei den Betriebszyklus des zweiten Aufgabenprogramms 122. Im Beispiel (siehe Bereich 122') führt das zweite Aufgabenprogramm 122 im ersten Betriebszyklus zwischen den Zeitpunkten W und t2 eine Berechnung von vt durch, die fehlschlägt. Mit einem Kommando Dem_SetEventStatus setzt das zweite Aufgabenprogramm 122 in dem ihm zugeordneten Speicherbereich den Wert der Variablen vt auf den hexadezimalen Wert„FF', und den Wert der Statusvariablen Event auf den Wert False. Mit einem Aufruf einer Funktion FIM_ GetFuncPermission ruft das Aufgabenprogramm ab, ob es eine Diagnosefunktion durchführen soll. Diese Erlaubnis ist abhängig von der Statusvariablen Event. Daher greift die Funktion
FIM_ GetFuncPermission auf den Wert der Statusvariablen Event für den Zeit- schritt t zu. Ferner lässt sich mit der Funktion FIM_ GetFuncPermission der Wert der Variablen v zum Zeitschritt t abrufen. Wie in Figur 3 beschrieben kopiert die Benachrichtigungs-Task 140 vor dem Zeitpunkt t2 die Werte der Variablen vt und Event in einen dem ersten Aufgabenprogramm 112 zugeordneten Speicherbereich. In einer Ausführungsform sind die Variablen vt und Event in dem dem zweiten Aufgabenprogramm 122 zugeordneten Speicherbereich derart abgelegt, dass sie mit einem einzigen Kopierbefehl gemeinsam kopiert werden können.
Das erste Aufgabenprogramm 112 fragt in einem ersten Betriebszyklus zwischen tO und tl mit der Funktion FIM_ GetFuncPermission den Wert der Variablen v und Event ab, die sich in dem dem ersten Aufgabenprogramm 112 zugeordneten
Speicherbereich befinden. Diese Variablen haben diejenigen Werte, die von dem zweiten Aufgabenprogramm 122 im vorhergehenden Betriebszyklus t-1 ermittelt wurden. Sie haben daher die Werte vt-1 und True. Im folgenden Betriebeszyklus, dem Zeitschritt t+1, des zweiten Aufgabenprogramms 122, im Zeitschlitz ZS2' beginnend mit dem Zeitpunkt t2 ermittelt das zweite Aufgabenprogramm 122 das Ergebnis vt+1 zum hexadezimalen Wert „15". Da die Berechnung nicht fehlschlägt, wird der Statusvariable Event der Wert True zugewiesen. Diese Zuweisung der Variablenwerte erfolgt erneut mit dem Kommando Dem_SetEventStatus. Zu einem späteren Zeitpunkt kopiert die Be- nachrichtigungs-Task 140 diese Werte von dem dem zweiten Aufgabenprogramm 122 zugewiesenen Speicherbereich in den dem ersten Aufgabenprogramm 112 zugewiesenen Speicherbereich. Im dem dritten und vierten Betriebeszyklus des ersten Aufgabenprogramms 112 kann die Funktion FIM_ GetFuncPermission auf die Werte der Variablen v und der Statusvariablen Event zugreifen, die in dem Speicherbereich vorliegen, der dem ersten Aufgabenprogramm 112 zugewiesen ist. Dies haben die dem Zeitschritt t korrespondierenden Werte vt=$FF und Event=False.
Im Vergleich zu dem in Figur 2 dargestellten Verfahren ist somit ein konsistenter Datenzugriff des ersten Aufgabenprogramms 112 sichergestellt.
Figur 5 zeigt schematisch ein Ablaufdiagramm einer dritten Ausführungsform der Erfindung. Dargestellt sind Aufgabenprogramme FCTl, FCT5. Die Ausführung eines jeden dieser Aufgabenprogramm FCTl, FCT5 kann abhängig von Ergebnissen einer oder mehrerer Diagnosefunktionen DFC_FCT1, ...
DFC_FCT5 sein, die das korrekte Funktionieren von Komponenten des Kraftfahrzeugs überprüfen. Die Übermittlung der Ergebnisse und Statusvariablen ist durch gestrichelte Pfeile angedeutet.
Aufgabenprogramm FCTl wird in einem Zeitraster mit Zeitschlitzen durchgeführt, deren Länge 2 ms beträgt, und führt eine Diagnosefunktion DFC_FCT1 durch. Ergebnis und Statusvariable von DFC_FCT1 werden dem Aufgabenprogramm FCT2 übermittelt (angedeutet durch einen Pfeil zum Function Identifier
FID_FCT2). Die Ausführung des Aufgabenprogramms FCT2 ist abhängig von Ergebnis und Statusvariable von DFC_FCT1. Aufgabenprogramm FCT2 wird in einem Zeitraster mit Zeitschlitzen durchgeführt, deren Länge 10 ms beträgt, und führt eine Diagnosefunktion DFC_FCT2A, DFC_FCT2B durch. Ergebnisse und Statusvariablen werden dem Aufgabenprogramm FCT3 zugeführt. Aufgabenprogramm FCT4 wird in einem Zeitraster mit Zeitschlitzen durchgeführt, deren Länge 20 ms beträgt, und führt eine Diagnosefunktion DFC_FCT4 durch. Ergebnis und Statusvariable werden ebenfalls dem Aufgabenprogramm FCT3 zugeführt. Die Ausführung des Aufgabenprogramms FCT3 ist abhängig von Ergebnis und Statusvariable der Diagnosefunktionen DFC_FCT2A, DFC_FCT2B und DFC_FCT4. Aufgabenprogramm FCT3 wird in einem Zeitraster mit Zeitschlitzen durchgeführt, deren Länge 100 ms beträgt, und führt eine Diagnosefunktion DFC_FCT3 durch. Ergebnis und Statusvariable werden dem Aufgabenprogramm FCT5 zugeführt. Die Ausführung des Aufgabenprogramms FCT5 ist abhängig von Ergebnis und Statusvariable von DFC_FCT5. Aufgabenprogramm FCT5 wird in einem Zeitraster mit Zeitschlitzen durchgeführt, deren Länge 200 ms beträgt, und führt eine Diagnosefunktion DFC_FCT5 durch.
Zur Generierung einen Computerprogramms, das diese Aufgabenprogramme ausführt, ist es notwendig, das korrekte Timing der Aufgabenprogramme zu ermitteln und die Sperrmatix korrekt (vgl. Figur 1) korrekt aufzubauen. Hierzu wird am Ausgang der Aufgabenprogramme FCT1, FCT5 ein Strukturobjekt CIO_FCT_l, ... CIO_FCT_5 definiert, dass die Diagnosefunktionen des Aufgabenprogramms und die der Aufgabenprogramme, die Eingang in dieses Aufgabenprogramm finden, zusammenfasst.
Hierdurch entsteht einerseits die Möglichkeit in einer weit hinten liegenden Aufgabenfunktion in dem in Figur 5 illustrierten Baum die vorhergehenden Diagnosen automatisch zu bestimmen. Darüber hinaus kann mit der Information in welchem Zeitraster welche Diagnosefunktion durchgeführt wird und wo welcher Sperrgrund abgefragt wird, die Timinginformation für den Datenfluss berechnet werden, so dass die Berechnung der Sperrbeziehungen in gleicher Geschwindigkeit ausgeführt werden kann, wie der physikalische Austausch der Daten
Dies soll am Beispiel der korrekten Berechnung des Timings für den das Aufgabenprogramm FCT_5, das dem 200ms Raster zugeordnet
Ist, erläutert werden: DFC_FCT_5 wird aus dem gleiche Rechenraster gemeldet und geht direkt und unmittelbar ein. DFC_FCT_3 geht in CIO_FCT_3 ein, der eine Zeitzuordnung zum 100ms Raster hat. Folglich muss der Status des
DFC_FCT_3 mit dem Timed Communication Übergang vom 100ms zum
200ms Raster übertragen werden. DFC_FCT_4 geht in CIO_FCT_4 ein, der wiederum in FID_FCT_3 und dann in CIO_FCT_3 eingeht. Er hat eine Zeitzuordnung zum 20ms Raster hat. Folglich muss der Status von DFC_FCT_4 mit dem Timed Communication Übergang vom 20ms zum 100ms Raster und danach vom 100ms zum 200ms Raster übertragen werden. Analog für all ren DFCs. DFC_FCT_1 wird also über die folgende Kette kommuniziert: 2ms^l0ms^l00ms^200ms.

Claims

Ansprüche
1. Verfahren zum Betreiben eines Steuergeräts, insbesondere für ein Kraftfahrzeug, wobei das Steuergerät mindestens eine, vorzugsweise wenigstens zwei, Ausführungseinheiten aufweist,
wobei die Ausführungseinheiten insbesondere zur Ausführung von Aufgabenprogrammen ausgebildet sind,
mit den Schritten:
ein erstes Aufgabenprogramm (122) wird in einem ersten Zeitraster aus ersten Zeitschlitzen (ZS2, ZS2') ausgeführt,
- ein zweites Aufgabenprogramm (112) wird in einem zweiten Zeitraster aus zweiten Zeitschlitzen (ZS1) durchgeführt,
es wird eine Statusvariable (G) ermittelt, die angibt, ob ein Ergebnis (G) des ersten Aufgabenprogramms (122) freigegeben ist,
das Ergebnis (G) des ersten Aufgabenprogramms (122) wird in einem aktu- eilen ersten Zeitschlitz (ZS2') ermittelt und in diesem aktuellen ersten Zeitschlitz (ZS2') an einen Speicherbereich (114) übermittelt der dem zweiten Aufgabenprogramm (112) zugeordnet ist,
das zweite Aufgabenprogramm (112) ermittelt ein zweites Ergebnis abhängig vom Wert der Statusvariable (G) und vom Ergebnis (G) des ersten Auf- gabenprogramms (122),
der Wert der Statusvariable (G) wird ebenfalls in dem aktuellen ersten Zeitschlitz (ZS2') an einen Status-Speicherbereich (114) übermittelt, der dem zweiten Aufgabenprogramm (112) zugeordnet ist
das Ermitteln und Übermitteln sowohl des Ergebnisses (G) des ersten Auf- gabenprogramms als auch des Werts der Statusvariablen (G) erfolgen nach
Beginn der Ausführung (1220) des ersten Aufgabenprogramms (122) und vor einer erneuten Ausführung (1221) des ersten Aufgabenprogramms (122).
2. Verfahren nach Anspruch 1, wobei die Übermittlung des Ergebnisses des ersten Aufgabenprogramms (122) pro längerem Zeitschlitz aus erstem Zeitschlitz (ZS2, ZS2') und zweitem Zeitschlitz (ZS1) nur einmal erfolgt.
3. Verfahren nach Anspruch 1 oder 2, wobei die Übermittlung des Werts der Statusvariablen (G) pro längerem Zeitschlitz aus erstem Zeitschlitz (ZS2, ZS2') und zweitem Zeitschlitz (ZS1) nur einmal erfolgt.
4. Verfahren nach Anspruch 2, wobei die Dauern des längeren Zeitschlitzes und des kürzeren Zeitschlitzes ganzzahlige Vielfache voneinander sind.
5. Verfahren nach einem der vorherigen Ansprüche, wobei das Ergebnis (G) des ersten Aufgabenprogramms (122) und die Statusvariable (G) vor der Übermittlung in einem Speicherbereich (124) derart gespeichert sind, dass sie zeitgleich übermittelt werden können.
6. Verfahren nach einem der vorherigen Ansprüche, wobei das erste Aufgabenprogramm (122) und/oder das zweite Aufgabenprogramm (112) die Funktionsfähigkeit von Komponenten des Kraftfahrzeugs diagnostizieren
7. Verfahren nach einem der vorherigen Ansprüche, wobei eine zweite Statusvariable ermittelt wird, die angibt, ob ein Ergebnis des zweiten Aufgabenprogramms (112) freigegeben ist,
wobei das Ergebnis des zweiten Aufgabenprogramms (112) in einem aktuellen zweiten Zeitschlitz (ZS1) ermittelt und in diesem aktuellen zweiten Zeitschlitz (ZS1) an einen Speicherbereich übermittelt der einem dritten Aufgabenprogramm zugeordnet ist,
wobei das dritte Aufgabenprogramms ein drittes Ergebnis abhängig vom Wert der Statusvariable und vom Ergebnis des zweiten Aufgabenprogramms ermittelt,
wobei der Wert der zweiten Statusvariable ebenfalls in dem aktuellen zweiten Zeitschlitz an einen Status-Speicherbereich übermittelt wird, der dem dritten Aufgabenprogramm zugeordnet ist,
wobei das Ermitteln und Übermitteln sowohl des Ergebnisses des zweiten Aufgabenprogramms als auch des Werts der zweiten Statusvariablen nach Be- endigung der Ausführung des zweiten Aufgabenprogramms und vor einer erneuten Ausführung des zweiten Aufgabenprogramms erfolgen.
8. Verfahren nach Anspruch 7, wobei das dritte Aufgabenprogramm in einem dritten Zeitraster aus aufeinanderfolgenden dritten Zeitschlitzen ausgeführt wird, wobei auch die Übermittlung des Werts der Statusvariablen (G) pro längerem Zeitschlitz aus erstem Zeitschlitz (ZS2, ZS2') und zweitem Zeitschlitz (ZS1) nur einmal erfolgt,
9. Verfahren nach Anspruch 8 und 2, wobei auch die Übermittlung des Werts der Statusvariablen (G) pro längstem Zeitschlitz aus erstem Zeitschlitz (ZS2, ZS2') und zweitem Zeitschlitz (ZS1) und drittem Zeitschlitz nur einmal erfolgt.
10. Verfahren zum Generieren eines Computerprogramms, welches zum Ausführen des Verfahrens nach einem der Ansprüche 7 bis 9 eingerichtet ist, dadurch gekennzeichnet, dass ein dem ersten Aufgabenprogramm zugeordnetes Strukturobjekt (CIO_FCTl, CIO_FCT5) die Information enthält, dass das Ergebnis des zweiten Aufgabenprogramms abhängig vom Wert der Statusvariable und abhängig vom Ergebnis des ersten Aufgabenprogramms ermittelt wird, und dass ein dem zweiten Aufgabenprogramm zugeordnetes weiteres Strukturobjekt (CIO_FCTl, CIO_FCT5) die Information enthält, dass das Ergebnis des dritten Aufgabenprogramms abhängig vom Wert der zweiten Statusvariable und vom Ergebnis des zweiten Aufgabenprogramms ermittelt wird, und wobei das Computerprogramm abhängig vom Strukturobjekt und vom weiteren Strukturobjekt ermittelt wird.
11. Computerprogramm, welches eingerichtet ist, das Verfahren nach einem der Ansprüche 1 bis 10 auszuführen.
12. Maschinenlesbares Speichermedium, auf dem das Computerprogramm
nach Anspruch 11 gespeichert ist.
13. Computer, der eingerichtet ist, das Verfahren nach einem der Ansprüche 1 bis 10 auszuführen.
PCT/EP2018/050236 2017-01-17 2018-01-05 Verfahren und vorrichtung zum betreiben eines steuergeräts, computerprogramm und verfahren zum generieren des computerprogramms WO2018134061A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US16/478,734 US11500679B2 (en) 2017-01-17 2018-01-05 Operating a controller in a motor vehicle according to different time slots
CN201880018446.3A CN110392883B (en) 2017-01-17 2018-01-05 Method and device for operating a control device, computer program and method for generating a computer program
JP2019538414A JP2020506465A (ja) 2017-01-17 2018-01-05 制御装置を作動させるための方法および装置、コンピュータプログラム、ならびにコンピュータプログラムを生成するための方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102017200669.2A DE102017200669A1 (de) 2017-01-17 2017-01-17 Verfahren und Vorrichtung zum Betreiben eines Steuergeräts, Computerprogramm und Verfahren zum Generieren des Computerprogramms
DE102017200669.2 2017-01-17

Publications (1)

Publication Number Publication Date
WO2018134061A1 true WO2018134061A1 (de) 2018-07-26

Family

ID=60953867

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2018/050236 WO2018134061A1 (de) 2017-01-17 2018-01-05 Verfahren und vorrichtung zum betreiben eines steuergeräts, computerprogramm und verfahren zum generieren des computerprogramms

Country Status (4)

Country Link
US (1) US11500679B2 (de)
JP (1) JP2020506465A (de)
DE (1) DE102017200669A1 (de)
WO (1) WO2018134061A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220247819A1 (en) * 2020-07-21 2022-08-04 Cisco Technology, Inc. Reuse of execution environments while guaranteeing isolation in serverless computing

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018205392A1 (de) * 2018-04-10 2019-10-10 Robert Bosch Gmbh Verfahren und Vorrichtung zur Fehlerbehandlung in einer Kommunikation zwischen verteilten Software Komponenten
DE102018205390A1 (de) * 2018-04-10 2019-10-10 Robert Bosch Gmbh Verfahren und Vorrichtung zur Fehlerbehandlung in einer Kommunikation zwischen verteilten Software Komponenten
CN113771914B (zh) * 2021-08-25 2022-09-02 交控科技股份有限公司 车辆控制单元的任务同步方法、装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005059450A1 (de) * 2005-12-13 2007-06-14 Volkswagen Ag Diagnose eines Sauerstoffsensors
DE102009026995A1 (de) 2009-06-17 2011-03-31 Robert Bosch Gmbh Verfahren zum Betreiben eines Bussystems, insbesondere eines CAN-Busses
DE102014216381A1 (de) 2014-08-19 2016-03-10 Robert Bosch Gmbh Steuergerät und Betriebsverfahren hierfür

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3790653B2 (ja) 1999-04-19 2006-06-28 松下電器産業株式会社 共有メモリアクセス管理装置
JP2010079622A (ja) 2008-09-26 2010-04-08 Hitachi Ltd マルチコアプロセッサシステム、および、そのタスク制御方法
JP2010122752A (ja) 2008-11-17 2010-06-03 Fujitsu Ten Ltd 制御装置
JP2011118830A (ja) 2009-12-07 2011-06-16 Denso Corp マルチタスクシステム、及び、プログラム
JP5069325B2 (ja) * 2010-03-11 2012-11-07 株式会社豊田中央研究所 タスク実行制御装置及びプログラム
JP5099251B1 (ja) 2011-07-15 2012-12-19 オムロン株式会社 Plcのcpuユニット、plc用のシステムプログラム、plc用のシステムプログラムを格納した記録媒体、plcシステム、plcサポート装置、plcサポートプログラム、および、plcサポートプログラムを格納した記録媒体
JP5668732B2 (ja) * 2012-09-14 2015-02-12 株式会社デンソー 無線通信システム
DE102012222908A1 (de) 2012-12-12 2014-06-12 Robert Bosch Gmbh Verfahren und Vorrichtung zur Steuerung von Anwendungsfunktionen in einem Steuergerät insbesondere einer Brennkraftmaschine eines Kraftfahrzeuges
DE102013002648B3 (de) * 2013-02-15 2014-05-22 Audi Ag Master-Busgerät für einen Fahrzeugkommunikationsbus eines Kraftwagens
US11431537B2 (en) * 2015-08-10 2022-08-30 Apple Inc. Enhanced physical signal structure for LTE V2V communications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005059450A1 (de) * 2005-12-13 2007-06-14 Volkswagen Ag Diagnose eines Sauerstoffsensors
DE102009026995A1 (de) 2009-06-17 2011-03-31 Robert Bosch Gmbh Verfahren zum Betreiben eines Bussystems, insbesondere eines CAN-Busses
DE102014216381A1 (de) 2014-08-19 2016-03-10 Robert Bosch Gmbh Steuergerät und Betriebsverfahren hierfür

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220247819A1 (en) * 2020-07-21 2022-08-04 Cisco Technology, Inc. Reuse of execution environments while guaranteeing isolation in serverless computing
US11558462B2 (en) * 2020-07-21 2023-01-17 Cisco Technology, Inc. Reuse of execution environments while guaranteeing isolation in serverless computing
US20230137181A1 (en) * 2020-07-21 2023-05-04 Cisco Technology, Inc. Reuse of execution environments while guaranteeing isolation in serverless computing
US11882184B2 (en) * 2020-07-21 2024-01-23 Cisco Technology, Inc. Reuse of execution environments while guaranteeing isolation in serverless computing

Also Published As

Publication number Publication date
JP2020506465A (ja) 2020-02-27
US11500679B2 (en) 2022-11-15
US20200257563A1 (en) 2020-08-13
CN110392883A (zh) 2019-10-29
DE102017200669A1 (de) 2018-07-19

Similar Documents

Publication Publication Date Title
WO2018134061A1 (de) Verfahren und vorrichtung zum betreiben eines steuergeräts, computerprogramm und verfahren zum generieren des computerprogramms
EP0907912B1 (de) Synchronisationsverfahren
EP1600831B1 (de) Verfahren und Vorrichtung zur Überwachung mehrerer Steuergeräte mittels einer Frage-Antwort-Kommunikation
DE4111072C2 (de)
DE69207496T2 (de) Verfahren und Vorrichtung zur Nachrichtenübertragungsverwaltung über ein Stromversorgungsnetz in einem Hausnetz
DE3886756T2 (de) Betriebsmittelzugriff für Multiprozessorrechnersystem.
DE4103566A1 (de) System und verfahren zur steuerung von multiplexkommunikationen zwischen masterstation und empfangsstationen
WO2008040641A2 (de) Verfahren und vorrichtung zur fehlerverwaltung
EP3417373B1 (de) Verfahren und vorrichtung zum betreiben eines steuergeräts
EP2171585B1 (de) Verfahren zum betreiben eines mikrocontrollers und einer ausführungseinheit sowie ein mikrocontroller und eine ausführungseinheit
EP3684015A1 (de) Vorrichtung und verfahren zur klassifizierung von daten insbesondere für ein controller area netzwerk oder ein automotive ethernet netzwerk
WO2006045754A1 (de) Verfahren, betriebssystem und rechengerät zum abarbeiten eines computerprogramms
WO2022084176A1 (de) Datenverarbeitungsnetzwerk zur datenverarbeitung
WO2018091329A1 (de) Vorrichtung und verfahren zum bearbeiten von aufträgen
DE112016006679T5 (de) Steuerungsvorrichtung und Recovery-Verarbeitungsverfahren für Steuerungsvorrichtung
DE102021211709A1 (de) Datenverarbeitungsnetzwerk zur Datenverarbeitung
DE112018003505T5 (de) Zugriffssteuereinrichtung
DE102020212035A1 (de) Verfahren, Datenverarbeitungsmodul und Datenverarbeitungsnetzwerk zur Verarbeitung von Daten
DE102021211712A1 (de) Datenverarbeitungsnetzwerk zur Datenverarbeitung
DE102021101309A1 (de) Elektronische steuervorrichtung
DE102014216381A1 (de) Steuergerät und Betriebsverfahren hierfür
DE102014209592A1 (de) Verfahren zum Erzeugen einer Hypervisor-Einheit und Hypervisor-Einheit
DE102020215332A1 (de) Verfahren zum Durchführen eines Berechnungsvorgangs auf zwei verschiedenen Recheneinheiten
DE102022102890A1 (de) Verfahren und Vorrichtung zur Ausführung von Funktionen in einem Multiprozess-System
DE112020001151T5 (de) Ausführungsüberwachungsvorrichtung, ausführungsüberwachungsverfahren und ausführungsüberwachungsprogramm

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18700187

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019538414

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18700187

Country of ref document: EP

Kind code of ref document: A1