EP1402362A2 - Verfahren zum automatischen gewinnen einer funktionsfähigen reihenfolge von prozessen und werkzeug hierzu - Google Patents

Verfahren zum automatischen gewinnen einer funktionsfähigen reihenfolge von prozessen und werkzeug hierzu

Info

Publication number
EP1402362A2
EP1402362A2 EP01960118A EP01960118A EP1402362A2 EP 1402362 A2 EP1402362 A2 EP 1402362A2 EP 01960118 A EP01960118 A EP 01960118A EP 01960118 A EP01960118 A EP 01960118A EP 1402362 A2 EP1402362 A2 EP 1402362A2
Authority
EP
European Patent Office
Prior art keywords
processes
input value
calculation cycle
input
sequence
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
Application number
EP01960118A
Other languages
English (en)
French (fr)
Inventor
Lutz Berentroth
Stefan HÖLZL
Helmut Wellnhofer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Continental Automotive GmbH
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Publication of EP1402362A2 publication Critical patent/EP1402362A2/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23293Automated assembly of machine control software, reusable software components

Definitions

  • ⁇ ⁇ 3 3 ⁇ 3 * * 1 ⁇ r + 3 1 1 1 1 3 ⁇ - 3 ⁇ - 3 " ⁇ HI li ⁇ 3 3 1 1 1 3
  • processes can be identified within a calculation cycle that have no interdependencies. Such independent processes can be processed in parallel in computing units with multitasking operating systems, in particular in multiprocessor systems.
  • An inconsistency in a sequence of processes can be determined, for example, as follows:
  • Step 1 Determination of a process that has no input with the attribute "Input value of the same calculation cycle" (based on the current set of processes).
  • Step 2 Remove this process from the set of
  • Step 3 Repeat steps 1 and 2 for the remaining set of processes. If the above process cannot reduce the number of processes until no process is left, an inconsistency has been found.
  • the present invention can be used, for example, to design operating system software for computers, complex application programs, sequence controls for industrial production and in particular for determining controls for Control units are used in motor vehicle technology, for example engine and transmission control units.
  • Fig. 1 is a tool for arranging or testing.
  • Fig. 2 the linking of processes within one
  • FIG. 3 the processes of a torque control of an engine control
  • FIG. 4 the representation of the linking of the processes of FIG. 3 in the form of a graph
  • FIGS. 10-13 the checking of a sequence of processes which have an inconsistency.
  • Figure 1 shows a tool for arranging and / or checking a sequence of processes to be processed.
  • This has a computing unit 1 with a microprocessor MP and a random access memory RAM.
  • a drive 2 for a storage medium 21, which is a writable CD (compact disk), and a keyboard 3 are provided with the computing unit 1 as input means.
  • Sequences of processes for the execution of tasks (tasks) of an operating system software or an application software and individual processes are stored on the storage medium 21. It is a library with existing processes that can be used to create new programs. c ⁇ O>>
  • An input I of the type PRE requires an input value that has already been made available within the same calculation cycle, that is to say has been generated beforehand.
  • the process whose output or output port 0 supplies the value for input I provided with the PRE attribute must therefore have been calculated in the order in advance.
  • Process P3 has an input I of the type PRE. This input I consumes a value that is provided by output 0 of process P2. The tool for arranging or checking a sequence of processes therefore recognizes that process P2 must be placed in the sequence before process P3.
  • the value provided only has to be generated later in the sequence, so that when the calculation cycle n is processed, an old input value calculated in the previous calculation cycle n-1 is available (this corresponds to a z _1 element in the Control technology).
  • the tool for arranging or checking will therefore arrange process P3, the output value of which is required by an input I of the POST type from process P1, after process P1 in the same calculation cycle n.
  • Inequalities can be created based on the assigned attributes for inputs I of processes P1-P3. In this way, a relationship is established between a process whose output port 0 provides a value and a process whose input port I consumes this provided value.
  • a process supplies an input value for an input I of the type PRE, this process is set smaller than the process with this input of the type PRE.
  • the process that is set as "smaller” in a relation must be carried out before the other process of the relation.
  • input I is of the POST type
  • the process that supplies the input value becomes larger than the process with it POST input set
  • the process supplying the input value can be set larger or smaller than the process receiving the input value, and the input of type ANY can finally be operated by a process arranged in the same or subsequent calculation cycle
  • the arrangement of the two processes in relation to one another is therefore arbitrary, resulting in as many inequalities as there are inputs with the attribute PRE or POST in the calculation cycle.
  • the first process in a calculation sequence or sequence is only a process that has no input of the type PRE has.
  • the last process in a sequence is only a process that has no POST input.
  • Processes P1 and P2 then come into question as the first processes in the sequence.
  • Process P3 may only be calculated after processes Pl and P2.
  • Processes Pl and P2 can be processed in any order or in parallel.
  • FIG. 3 shows a simplified task with a calculation sequence or sequence of processes P1-P8 for torque control of an operating system of an engine control unit of a motor vehicle.
  • a task typically has a sequence of 100 to 200 processes.
  • Some of the processes are taken from a library. Some processes have been redesigned for torque control.
  • the graphic of FIG. 3 is available to a developer who wants to find a valid sequence of processes, but it does not yet determine a process sequence.
  • Process Pl calculates the difference between the actual speed and the speed set by a driver for a user setting of a cruise control system (cruise control) and specifies this difference
  • Process P3 off.
  • Process P2 calculates a power request communicated by an accelerator pedal position and also outputs this to process P3.
  • Process P3 coordinates any existing requirements of processes P1 and P2 and calculates a torque request for processes P4 and P ⁇ .
  • Process P4 determines a slow torque change and issues a corresponding request to process P5.
  • Process P5 calculates a setpoint for a throttle valve position and outputs it to an actuator. co co h 0 M ⁇ > c ⁇ o C ⁇ o c ⁇ O C ⁇
  • the first processes in the sequence are only processes that do not require an input value calculated in the same calculation cycle. The first process must therefore not have an input assigned the PRE attribute. The last process in the sequence must not have an input assigned the POST attribute. All calculation sequences that meet these conditions and the inequalities set up are valid or executable sequences.
  • a graph is built using the processes as nodes and each inequality as the directed edge of the graph.
  • a directed edge is a reference from one process to another process. The directed edge is directed in each case from the process or node that was determined to be smaller in the corresponding inequality to the process or node that was determined to be larger in the same inequality.
  • FIG. 4 shows the implementation of the above inequalities in a graph.
  • all nodes (processes) are removed from the set of nodes (processes) to be checked, including the associated references E (edges), to which no references E (edges) of the graph show.
  • Recursive processing of the algorithm creates a new group of processes, which must be processed after the previous group of processes when the program is executed.
  • the processes remaining after each step are therefore examined in further successive steps for processes to which no reference E is set.
  • the processes found in each step are removed and assigned to successive groups of processes. These groups can include one or more processes.
  • the order of the processes within a group is arbitrary, since these processes are independent of each other. However, all processes in one group must be completed before a process in the next group is executed.
  • FIG. 5 shows the process P1 and P2 reduced
  • This subgraph must also have at least one node (process) to which no edge points. All nodes to which no edge points must be removed again. If there is no node (process) that fulfills this condition, an unresolvable loop and thus an inconsistency in the data flow is discovered. In a second step, process P3 is consequently removed and assigned to a second group of processes.
  • process 6 is now removed, to which no edge points.
  • Process 6 is assigned to a third group of processes.
  • processes P4 and P7 are removed and assigned to a fourth group of processes.
  • the order in which the processes have to be processed is found in the order of the steps or the groups of processes.
  • the processes that were separated in one step must be executed before the processes that were separated in the next step.
  • Figure 10 shows a graph containing an unresolvable loop. The graph does not represent the torque control of Figure 3.
  • FIG. 13 which represents the result of the third step, no process or node could be found to which no edge of the graph points. So there is no process that has no input with the PRE attribute. The remaining processes cannot be assigned to a group. There is a loop that needs to be resolved to get an executable task. The remaining processes are output on a display device or a printer.

Abstract

Zum automatischen Berechnen einer funktionsfähigen Reihenfolge von Prozessen, die aus wenigstens einem Eingabewert einen Ausgabewert bestimmen, werden eine Vielzahl von Prozessen (P1 - P8), deren Eingänge mit wenigstens einem der Attribute: "Eingangswert des selben Berechnungszyklus" (PRE), "Eingangswert des vorhergehenden Berechnungszyklus" (POST), "Eingangswert aus beliebigem Berechnungszyklus" (ANY) versehen sind, so angeordnet, dass als erster Prozess eines Berechnungszyklus ein Prozess bestimmt wird, der keinen Eingang mit dem Attribut "Eingangswerts des selben Berechnungszyklus" (PRE) aufweist, und in nachfolgenden analogen Schritten eine Menge von möglichen Reihenfolgen bestimmt.

Description

ω ω IV) K) H1
Cπ o cπ o Cπ O cπ α 3" D % CL tQ . 3 Φ < r+ S N <3 N CΛ 3 rf H φ 3 σ N < 3 D tr < Cd
H- Φ DJ Φ Φ Φ φ DJ μ- φ O μ- H- Φ Φ o 3 Φ Φ O 3 DJ: μ- 3 Φ Φ Φ Φ Φ μ- Φ Φ Φ
Φ 3 ω ι-j CΛ 3 3 μj 3 ω l-i Φ ω l-i 3 3 H H 3 CΛ r+ 3 3 H- 3 3 h 3 φ μ- li CΛ
3 Hl α DJ • Φ Φ tr h-1 Ω " vQ ω DJ CΛ Φ U3 rt iQ Hi tr Hi Ω rt O S Φ ιQ 3 ^« DJ μ- μ- 3" N ^ DJ CΛ (ϊ- H ω Φ <τ) DJ Φ H Φ DJ tr
M Φ 3 Φ Φ m Λ l-i φ 3 Φ N H 3 Ω μ- φ Hi Hi 3 N l-i tr μ- H 3 tr
H- ιQ H Λ Ω φ iQ 3 3 DJ rl- - ^ CΛ H 3= tu 3 3 o H 3 Hi Hl H φ
3 Φ ? O μ- t 3 Φ Tl μ- u3 3 Hi O DJ S > Ω H φ 3 Φ 3 N φ φ μ- o Φ μ-
N 3- α Λ Φ 3 3 o Φ rr 3 Hi \Ω tr < r+ f 3 φ 3 li 3 3 tr
≤ <J φ H Φ DJ μ- o ^ h N G Hi DJ rt -> Φ φ Φ H rt CΛ α u3 3
Φ O 3 O CΛ 3 μ- (ϊ- o 3 r+ 3 tr DJ r H l-i μ- μ- μ- π 3 ω N Hi 3 φ N 3 ω 3 ιQ CΛ 3 3 rl- μ- Φ H φ tr μ- 3 < O: 3 φ O H O φ 3 3 3 3 iQ
Φ ω Φ CΛ φ 3 Φ Ω H l-i co μ- o Hi tr 3 O h 3 3 3 ιQ i 3
3 πj μ- Φ 3 i-i rt • μ- V DJ Ό N Ω tc φ o Hi Α CΛ Φ N fV o r+ li ω 3 DJ φ Φ α 3 3 3 H Φ t s: . Φ H CΛ 3 Φ 3 DJ G rr tr 3 DJ
H O rt Φ 00 S4 DJ σ Φ φ μ- rt 3: 3 φ μ- φ φ 3 DJ < CΛ Φ 3 tr μ- φ 3
H- N 3 Φ φ DJ 3 H CΛ O Hi ιQ 3 3 iQ iQ rt Hi CΛ Φ 03 3 Hi φ O r+ Tl r+
O Φ DJ rt H Φ φ CΛ Ω 3 Φ 1 φ H r+ rt μ- Φ H 3 H li O tr CΛ tr ^ H 3 Hi Ό t DJ 3 CΛ o o 3 μ- Hi Φ 3 3 O H Ό CΛ μ- O 3
Φ ω Φ φ μ- α DJ H3 3: tr Φ r rt o Φ H Φ Ω DJ 3 Φ 3 H H. Hi N DJ
3 φ H ιQ Φ DJ tu 3 φ H ^ 3 H- Q, Φ α 3 o1 H 3^ tr ω h Φ ?V 3: DJ: Hi Φ rϊ-
3 Φ tr CΛ Φ CΛ ω CΛ Φ 3 Φ tc μ- 3 l-i O μ- H O Hi tr r+ CΛ μ-
3 3 Λ rt 3 rr Φ μ- Ω H Φ 1 Q "^ φ 3 N Hi ro 3 3 Φ μ- CΛ Λ
3 φ H- fr Λ CΛ H 3 μ- ? o tr H Q §; l-i ιQ φ r+ Φ CΛ πj CΛ 3 ιQ Φ Φ Ω
H- Ω 1-5 ^ ^ μ- &. Φ 3 DJ H φ ^d υ3 Φ < < 3 3 "> rt tr H μ- Φ μ- 3 tr
3 3" φ CΛ Φ H ιQ 3 3 Φ 3 Φ 3 ; υ3 DJ l-i Φ 3: CΛ Φ 3 3 Φ
N Φ r+ μ- r+ r+ tr Φ CΛ μ- DJ 3 ü Φ ^ H sQ ^ l-i μ- CΛ Hi rt μ- 3 3
3 CΛ Φ Φ H N r CΛ tr o f-T DJ: H DJ I-J ^ 3: Φ Φ o Φ φ 3 < 3
H H- φ 3 3 Φ N Φ Φ Ω o r r μ- Ω DJ H tr 3 3 3 Φ Φ Φ o
Sd 3 CΛ <! μ- Φ 3 3 - 3 α μ- Φ Φ t ιQ μ- N Φ Λ α. N H μ- li φ
G φ o Φ 3 ß Φ Φ φ o 3 H <! 3 Φ μ- Λ Φ Φ φ tr Hi 21 s; tr ιQ α Hi Hl H Φ tQ H 3 ! tQ 3 3 φ Tl H 3 • : l-i μ- 3 a Φ DJ Φ μ-
Φ Φ φ li r+ 3" CΛ et CΛ ιQ O φ Φ tr 3 H l-i > Φ Φ CΛ Φ 3 Φ 3 tr H 3 n H 3: ≤ DJ T3 Φ t 3 3 3 Φ ιQ μ- 3 CΛ r+ Φ μ- μ- Hi H ?> 3 ω 3 3J DJ ^ T3 H H Φ Φ Ϊ DJ Φ rt M Φ Φ H 3 tr o Φ N φ
Φ 3 t-" N H r+ H μ- DJ: CΛ W H Φ DJ Hi Q O 3 Φ 3 μ- Φ H 3 φ 3 rr ιQ DJ φ Φ Φ DJ ^ Ω r+ Ω 3 μ- μ- 3 3= Φ H 3 rt- CΛ 3 SO σ 3 ιQ 3
N sQ μ- -» 3 Hl ω y4 ET r+ φ 3 3 H 3 μ- O s; Φ o Φ Φ J Hi Φ N iQ Φ
3 N Φ rr r+ μ- r+ Φ l-i ≤: l-i Φ rr Ω rt μ- ? Hi l-i μ- rt o 3 μ-
3 3 ** μ- μ- Hi ? μ- Φ μ- 3 CΛ CO CD tr μ- Ω rt rt 3" Φ <! 3 t 3 Q sQ 3 Φ DJ DJ 3 μ- Ω 3 ω Φ j3 <! ? l-i -s (Λ Φ 3 ^ O μ- φ er CΛ CΛ tr H DJ Φ tr fr iQ CΛ O r+ T Φ o DJ φ 3 Hi Φ 3 DJ φ H
<! φ Φ μ- Φ l-i μ- CΛ ω 3 rr s: l-i tc 3 3 H Λ Hi 3 l-i
O 3 μ- CΛ N CΛ 3 3 3: Φ μ- μ- ^ CΛ tS 3 μ- Φ 3 O 3 < TJ rr N Hi
3 r+ tr 3 r+ Φ Ω CΛ P^ ιQ 3 tr 3 Φ Φ o 3 sQ CΛ •"« Φ P O li O 3 3
H- tr1 φ Φ 3 " r+ h 3 Φ Φ tr μ- tr sQ CΛ Ω 3 IQ 3 O 3 3
3 9 rr DJ H 3 ιQ Φ DJ φ Cfl H l-i φ CΛ CΛ 3 μ- N tr σ N Φ 3 N DJ fr φ g 0): tr Φ CΛ 3 Hi μ- μ- CΛ ι£! μ- CΛ rt 3 Φ φ Φ 3 DJ Φ rt rt
3 Φ 3 O H o Φ rt- 3 3 Φ Φ 3 : < Φ μ- 3 μ- <! <! tr ω μ- μ- ω 3 H μ- ιQ φ H H Hi φ uQ rt l-i CΛ φ Φ Φ rf CΛ O O N Λ CΛ
-* o o H- 3 Φ l-i l-i ιQ DJ H φ N DJ: H r+ μ- ι-f h φ CΛ Ό 3 3 Φ 3 φ Ω 3 tr ιQ 3 3 H N φ Φ 3" 3 r+ rr φ Φ 3 μ- 3 rt μ- μ- DJ 3 tr CΛ ω 3 DJ: Φ fr l H Λ H- CΛ Λ 3 DJ 3 Φ Φ tu DJ 3 H φ Hi μ- o r+ DJ r+ 3 r+ DJ: N Φ Φ DJ r - CΛ =3 IQ iQ 3 3 Φ tr tr 3 DJ:
0 3 H- Φ r+ CΛ ιQ Φ r+ φ iQ 3 3 ≤ o Φ ω μ- Φ Λ H N S! φ Φ tr - φ H μ- r+ 3 Φ n r+ α Φ Hi h tQ 3 rr l-i s* Φ 3 Φ μ- μ- Q μ-
Φ Φ CΛ 0 CΛ 3: μj φ O DJ H r+ ;v φ DJ ιQ φ Ω DJ H rt 3 Φ iQ
3 H *> 3 3 3 μ- tr ω 3 3 3 ω ? ≤ N 1 h DJ Φ μ- tr H φ Φ
3 φ Ω 3 3= Φ 3 ** 1 Φ r+ 3 1 1 1 1 3 μ- 3 μ- 3" α H I l-i υ3 3 1 1 1 3
Vorgaben in Softwarecode. Ferner ist es häufig wünschenswert, aus vorhandenen Bibliotheken bereits getestete Reihenfolgen von Prozessen oder einzelne Prozesse für eine Neuentwicklung zu übernehmen und neue Prozesse an einer geeigneten Stelle der vorhandenen Reihenfolge einzufügen beziehungsweise bekannte, geprüfte Prozesse mit neu zu erstellenden Prozessen zu einer lauffähigen Sequenz zu verbinden.
Es ist ein Ziel der Erfindung, ein Verfahren zum automati- sehen Berechnen einer funktionsfähigen Reihenfolge von Prozessen, ein Verfahren zum Überprüfen einer Reihenfolge von abzuarbeitenden Prozessen und ein Werkzeug bereitzustellen, die in der Lage sind eine Vielzahl von Prozessen so zu ordnen, dass eine zielgerichtete Abarbeitung aller Prozesse er- folgen kann, die dem gewünschten Datenfluß genügt.
Dieses Ziel wird mit den Verfahren und einem Werkzeug erreicht, wie sie in den unabhängigen Ansprüchen definiert sind. Vorteilhafte Ausführungsformen der Erfindung sind Ge- genstand der Unteransprüche.
Durch die Zuordnung eines der Attribute „Eingangswert des selben Berechnungszyklus" , „Eingangswert des' vorhergehenden Berechnungszyklus " oder „Eingangswert aus beliebigem Berech- nungszyklus " zu jedem Dateneingang der zu ordnenden Prozesse ist es möglich, maschinell eine funktionsfähige, gültige Reihenfolge oder Sequenz zu schaffen, die keine Inkonsistenzen im Datenfluß aufweist. Eine Inkonsistenz bedeutet, dass die den Eingängen der Prozesse zugeordneten Attribute logisch nicht erfüllt werden können, da sie sich gegenseitig ausschließen. Beispielsweise können die Eingänge zweier Prozesse, die gegenseitig voneinander abhängen, nicht jeweils mit dem Attribut „PRE" versehen sein, da sonst die widersprüchliche Bedingung erfüllt sein müsste, dass jeder der beiden Pro- zesse vor dem anderen Prozess berechnet werden müsste. In der Regel gibt es aber eine Vielzahl von "lauffähigen" Reihenfolgen. Aus der Menge von lauffähigen Reihenfolgen von Prozessen kann diejenige bestimmt werden, die die geringste Laufzeit aufweist oder diejenige, bei der die Prozesse, deren Ausgangs- werte in nachfolgenden Prozessen als Eingangswerte verwendet werden, am dichtesten aufeinander folgen (Optimierung) .
Außerdem können innerhalb eines Berechnungszyklus Prozesse identifiziert werden, die keine Abhängigkeiten voneinander aufweisen. Solche voneinander unabhängigen Prozesse können in Recheneinheiten mit Multitasking-Betriebssystemen, insbesondere in Mehrprozessorsystemen, parallel abgearbeitet werden.
Eine Inkonsistenz in einer Reihenfolge von Prozessen kann beispielsweise folgendermaßen ermittelt werden:
1. Schritt: Bestimmung eines Prozesses, der keinen Eingang mit dem Attribut „Eingangswert des selben Berechnungszyklus" hat (bezogen auf die aktuelle Menge der Prozesse) . 2. Schritt: Entfernen dieses Prozesses aus der Menge der
Prozesse. 3. Schritt: Wiederholen der Schritte 1 und 2 bezüglich der restlichen Menge von Prozessen. Lässt sich die Menge der Prozesse durch obigen Vorgang nicht reduzieren, bis kein Prozess übrig ist, ist eine Inkonsistenz gefunden.
Es ist daher möglich, die Reihenfolge der Prozesse als lauffähig zu bestätigen, ohne sie in einem realen System mit ei- ner aufwendigen Simulation des gesamten Systemverhaltens testen zu müssen.
Die vorliegende Erfindung kann beispielsweise zum Entwerfen von Betriebssystemsoftware für Computer, von komplexen Anwen- dungsprogrammen, von Ablaufsteuerungen für eine industriellen Fertigung und insbesondere zum Bestimmen von Steuerungen für Steuergeräte in der Kraftfahrzeugtechnik eingesetzt werden, beispielsweise von Motor- und Getriebesteuergeräten.
Weitere Merkmale, Vorteile und Anwendungsmöglichkeiten der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen in Verbindung mit den Zeichnungen. Es zeigen:
Fig. 1 ein Werkzeug zum Anordnen oder Prüfen,. Fig. 2 die Verknüpfung von Prozessen innerhalb einer
Task, Fig. 3 die Prozesse einer Drehmoment-Regelung einer MotorSteuerung, Fig. 4 die Darstellung der Verknüpfung der Prozesse von Figur 3 in Form eines Graphen,
Fig. 5-8 die Auflösung des Graphen von Figur 4,
Fig. 9 die Zuordnung der Prozesse der Figur 3 zu sequen- ziell aufeinander folgenden Prozessgruppen, und Fig. 10-13 die Überprüfung einer Reihenfolge von Prozessen, die eine Inkonsistenz aufweisen.
Figur 1 zeigt ein Werkzeug zum Anordnen und/oder Prüfen einer Reihenfolge von abzuarbeitenden Prozessen. Dieses weist eine Recheneinheit 1 mit einem Mikroprozessor MP und einem Ar- beitsspeicher RAM auf. Mit der Recheneinheit 1 sind als Eingabemittel ein Laufwerk 2 für ein Speichermedium 21, bei dem es sich um eine beschreibbare CD (Compact Disk) handelt, und eine Tastatur 3 vorgesehen.
Auf dem Speichermedium 21 sind Reihenfolgen von Prozessen für die Ausführung von Aufgaben (Tasks) einer Betriebssystem- Software oder einer Anwendungssoftware und einzelne Prozesse gespeichert. Es handelt sich also um eine Bibliothek mit bereits vorhandenen Prozessen, die für die Erstellung von neuen Programmen benutzt werden kann. cυ O > >
Cπ o Cπ o Cπ O Cπ
M H sQ tr O D Hi 3 s £ H M P Hi <! H TI w N 3 DJ CL Φ πd <- Φ H1 N Φ 12 μ- Φ φ 3 3 μ- 3: μ- μ- Φ μ- μ- μ- o DJ 3 H μ- < 3 3 μ- 3 μ- μ- μ- 3 μ- μ-
3 Ω rr Φ 3 ω H Φ H H 3 3 3 Hi O 3 fr 3 Hi μ- φ 3 3 1 iQ 3 Ü 3 et sQ tr φ Φ H iQ ü tr ιQ tr vQ Φ N Φ u3 iQ Λ sQ Φ π 3 H μ- tr
DJ 3 μ- ω r+ Φ Φ DJ Φ Φ Φ 3 Φ 3 CΛ Φ et li CΛ CΛ co ü μ- Φ D Φ CL
3 3 3 Φ M <J φ DJ φ 3 μ- 3 μ- 3 3 CΛ ι-3 CΛ N h φ TS Ω 3 DJ μ- φ lQ 3 Φ μ- μ- 0 Λ CΛ 3 et 13 rt- • -> CΛ DJ ^ 3 φ ιTj tö Φ tv> tr et H et H
CΛ iQ CΛ 3 3 3 3 3 fr CΛ o μ- Φ CΛ 13 fr Hi μ- φ o φ μ- et ω
Ό CΛ φ sQ Φ 03 o Hi J < CL Φ M H 3 fr Φ Φ 3 i et 3 3 φ H- I-1 m
O N πj CΛ N 3 Φ DJ iQ 3 O DJ μ- μ- •^ 3" 3 3 3 li H φ φ 3 μ- φ DJ li ^ li 3 3 N li et Ü 3 3 rt 3 3 Ü • μ- O: CΛ DJ DJ: DJ μ- Λ H uO, 3 μ-1 φ CΛ et T o M tQ CΛ Φ Φ 3 Φ φ CΛ H s: CΛ Sa 3 φ DJ μ- r
CΛ N μ- CΛ DJ: . Ω 3 3 3 πd DJ D μ- et et t-1 μ- ^< μ- § tr Od 3 ^ > 3 3 DJ
• • 3 φ 3 TS r+ Φ tr 3 tr Ü Λ Φ Φ • μ- H 3 iQ CΛ CΛ Φ CΛ 3 3 IQ et
CΛ CΛ u3 O N 3 μ- DJ £ 3 φ o *< H φ φ Ω CΛ h Ω tr ω ιQ Φ 3
CΛ DJ H 3 CΛ α <j Φ 3 CΛ N 3 ! μ- Hi tr s; DJ * φ tr DJ iQ ιQ H
3 φ 3 rr μ- πd 3 rt Φ O μ- Q- rϊ φ Ω > o 3 φ ü μ- tr CΛ Ω DJ 3 DJ < φ
CΛ ιQ ω Ω H vQ ü 3 CΛ μ- CΛ 3- 3 3 φ ü α o φ DJ et tr 3 0- tr O tr CO
Hi CΛ tr O CΛ 3 Φ 3 CΛ li Hi et J 3 h φ 3 φ Φ 3 Φ
Φ N H φ N Φ μ- > DJ 3 H 3 o li Cd ιQ et Φ φ tr 3 3 μ- H 3 3 fr
CΛ 3 H 3 φ li Φ tr tr ιQ N et μ- 3 3 φ φ DJ Φ li H Φ CΛ 3 Ω ri- μ- Od O: rt CΛ ιQ tr ιQ Φ Φ Φ CΛ Hi et o tr 3 fr μ- sQ tr . rt Φ -> 3 μ- φ > CΛ Φ CΛ p : φ 3 3 rf DJ H H φ πd Φ et φ CΛ et rh h φ 3
Φ φ Hi rr Φ tr φ 3 CΛ > 3 3 ^ μ- . H Hi h tr Φ μ- N Φ φ H Φ
M 3 iQ μ- r+ 3 Λ ιQ φ Φ 3 φ Hi DJ φ 3 3= o H 3 3 ^ Ch Ω 3
CΛ r+ 3 li Hd μ- 3 μ- 3" 3 Hi μ- Q 3 tr φ 3 H N φ • Φ fr μ- tr Φ
DJ μ- H- μ> ω Φ υ3 Φ μ- ιQ 3 li 3 CΛ rt μ- Φ 3 H φ 3 3 Φ
LQ 3 tr φ σ 1 3 fr 3 Φ > DJ φ 3 CΛ Φ Ω hd CΛ D 3 tr 3 tr μ- N li 3 π Φ N Φ 3 tr 3 N tr H CΛ μ- 50 ω 3 Φ 3 φ tr Φ s: rr rt c 3 μ- DJ CΛ Φ o CL. << CΛ 50 rt o ^ DJ Φ φ μ- μ- iQ 3 C ri- H • Φ rt O et tr 3 vQ H fr et Φ N tr Ω 3 et CΛ Hi φ 3 μ- Λ Φ Ü DJ Φ 3 ! φ μ- N Φ α sQ πd tr φ CL Φ DJ
3 α ω Ω Φ li Ω tr li Ό o μ- 3 tr 3 CΛ Φ φ H φ μ- φ H μj
Ü Φ DJ Hi H- tr H φ " Φ Hi 3 Λ Φ 3 CΛ H DJ o 3 3 3 υq j φ Hd U3 ω 3: φ H DJ α 3: Φ o o 3 Φ Ü N φ μ- J Φ Λ μ- ü Φ ü μ- μ- 50 μt DJ μj tr tr Q* Hi tr tr tr φ μ- Φ 3 φ tr
O 3 3 α φ φ CΛ 3 3- < Φ Φ o φ μ- Φ φ CΛ 3 CΛ 3 πd
<! N rf O φ μ- li r+ Φ φ O CΛ μ- H rf 3 μ- μ- CΛ tr Φ φ μ- li φ Φ r+ Φ 3 t N M Φ 3 3 3 et 3 iQ H 3 et Φ φ μ- H Λ CΛ O
H CΛ μ- 3 μ- φ φ μ- ti • • μ- Φ Φ DJ Φ tr φ μ- 3 μ- CΛ N
CΛ CΛ Φ μ- N • 3 3 3 li > j3 li μ- Ω li Φ rt πd et Φ <J Ω φ φ
Ω Φ tr t-3 μ- Hi sQ tr 3 M hd 3 § Φ 3 O tr tr CΛ Φ tr 3 CΛ tr 3 H 3 * rt O et Φ Ti μ- ü « r iQ Φ rr DJ et s: 1 o μ. H CΛ μ- Φ rr O H Φ μ- rt- 3 0 Φ Φ φ 3 φ Φ H μ- φ πd DJ fr 3 CL φ
Φ α i-1 iQ 3 r+ CΛ N μ- 3 li et tr r H Co Φ CΛ 3 3 φ
Φ DJ t Φ 3 φ π Φ ω 3 πd Φ ^ α H fr μ-
Φ CΛ rh N μ- H <! DJ 3 H CΛ 3 M DJ: H CΛ 3 r+ Φ CΛ *υ φ 3
3 μ- ≤ 3 Ω α O tr 3 O CΛ 3 li EP o φ Φ φ 3 μ- Φ o Hi μ- 50
Φ CΛ <! • φ tr φ 3 iQ rr N Φ ιQ Φ H- ιQ Λ Dd CΛ 3 . 3 μ- r 3 Φ CL
Φ φ CΛ H φ Φ Φ Φ H- IQ H 3 Φ C 3 Φ Φ Φ Ω μ-
H3 α CL DJ li CΛ ^ 3 ιO Φ DJ Φ H Dd M σ Φ H 3 tr Φ
< tr 3 μ- M μ- πd Φ H tr CΛ o •^ 3 3 3 3 Φ φ H Φ πd CΛ > φ
T3 φ φ φ μ- φ h 3 tr H ti μ- 3 N Ω H Φ H ti πd 3 3 0
Φ 3 μ- 3 o Φ O μ- CΛ ω H tr Φ μ- o > 3 li N φ φ
3 tr LQ < N μ- Ω ω 3 μ- CΛ 3 DJ 3 Ω u3 πd N 3 Hi O Φ μ- Ω ω Φ et DJ φ φ o rt- tr rt 3 Φ φ rl- 3 o 3 tr 3 li Φ s: υQ N μ- 3 tr
<! Φ 3 r+ 3 li ω 3 φ Φ μ- 3 Φ Hl 3 3 1 μ- o CΛ Φ DJ Φ LQ tr Φ
O 1 H, H ιQ ≤ ω CΛ rt- 3 Φ Φ DJ H tQ CΛ N CΛ 3 tr CΛ Φ φ 3
3 O μ- CΛ Φ φ 3 μ- H φ 1 Φ φ Φ 1 Φ 1 μ- 1
1 3 1 3 Φ CΛ H 1 1 φ Φ rt- 1 1 Φ 3 1 3
- Eingangswert des selben Berechnungszyklus: PRE,
- Eingangswert des vorherigen Berechnungszyklus: POST,
- Eingangswert aus beliebigem Berechnungszyklus: ANY.
Im folgenden werden die Typen der Eingänge oder Eingangsports regelmäßig durch ihre Bezugszeichen PRE, POST und ANY bezeichnet .
Ein Eingang I des Typs PRE benötigt einen Eingangswert, der innerhalb des selben Berechnungszyklus bereits zur Verfügung gestellt worden ist, also vorhergehend erzeugt worden ist. Der Prozess, dessen Ausgang beziehungsweise Ausgabeport 0 den Wert für den mit dem Attribut PRE versehenen Eingang I liefert, muss also in der Reihenfolge vorher berechnet worden sein.
Prozess P3 weist einen Eingang I des Typs PRE auf. Dieser Eingang I konsumiert einen Wert, der vom Ausgang 0 des Prozesses P2 zur Verfügung gestellt wird. Das Werkzeug zum An- ordnen oder Prüfen einer Reihenfolge von Prozessen erkennt daher, dass Prozess P2 vor Prozess P3 in die Sequenz eingereiht werden muss.
Bei einem Eingang I des Typs POST muß der bereitgestellte Wert erst später in der Sequenz erzeugt werden, so dass beim Abarbeiten des Berechnungszyklus n ein alter, im vorhergehenden Berechnungszyklus n-1 berechneter Eingabewert zur Verfügung steht (dies entspricht einem z_1-Glied in der Regelungstechnik) . Das Werkzeug zum Anordnen oder Prüfen wird daher Prozess P3, dessen Ausgabewert von einem Eingang I des Typs POST vom Prozess Pl benötigt wird, nach Prozess Pl im selben Berechnungszyklus n anordnen.
Bei einem Eingang vom Typ ANY spielt es keine Rolle, ob der konsumierte Wert im selben Berechnungszyklus n berechnet wurde oder im vorhergehenden Berechnungszyklus n-1 berechnet wurde. Die Belegung eines Eingangs I mit dem Attribut ANY ist daher lediglich optional. Häufig erhält ein Eingang vom Typ ANY seinen Eingangswert von außerhalb der Task. In Figur 2 ist der Prozess P4 solch ein externer Prozess. Eingangsports, die ihre Daten von externen Prozessen erhalten, haben grund- sätzlich das Attribut ANY.
Aufgrund der vergebenen Attribute für die Eingänge I der Prozesse P1-P3 können Ungleichungen aufgestellt werden. Auf diese Weise wird jeweils eine Beziehung zwischen einem Prozess hergestellt, dessen Ausgangsport 0 einen Wert bereitstellt, und einem Prozess, dessen Eingangsport I, diesen bereitgestellten Wert konsumiert.
Liefert ein Prozess einen Eingangswert für einen Eingang I vom Typ PRE, so wird dieser Prozess kleiner als der Prozess mit diesem Eingang vom Typ PRE gesetzt. Der Prozess der in einer Relation als „kleiner" gesetzt ist, muss vor dem anderen Prozess der Relation ausgeführt werden. Ist der Eingang I dagegen vom Typ POST, so wird der Prozess, der den Eingangs- wert liefert, größer als der Prozess mit diesem Eingang vom Typ POST gesetzt. Ist der Eingang vom Typ ANY, so kann der den Eingangswert liefernde Prozess größer oder kleiner als der den Eingangswert empfangende Prozess gesetzt werden. Der Eingang vom Typ ANY kann schließlich von einem im selben oder nachfolgenden Berechnungszyklus angeordneten Prozess bedient werden. Die Anordnung der beiden Prozesse zueinander ist also beliebig. Hierdurch ergeben sich so viele Ungleichungen, wie es im Berechnungszyklus Eingänge mit dem Attribut PRE oder POST gibt.
Für dieses Beispiel ergeben sich daher folgende Ungleichungen:
P3 > Pl oder Pl < P3, und P2 < P3
Als erster Prozess einer Berechnungsreihenfolge oder Sequenz kommt nur ein Prozess in Frage, der keinen Eingang vom Typ PRE aufweist. Als letzter Prozess einer Sequenz kommt nur ein Prozess in Frage, der keinen Eingang vom Typ POST aufweist.
Danach kommen die Prozesse Pl und P2 als erste Prozesse der Sequenz in Frage. Prozess P3 darf erst nach den Prozessen Pl und P2 berechnet werden. Die Prozesse Pl und P2 können in beliebiger Reihenfolge oder parallel abgearbeitet werden.
Figur 3 zeigt zur Veranschaulichung eine vereinfachte Task mit einer Berechnungsreihenfolge oder Sequenz von Prozessen P1-P8 einer Drehmoment-Regelung eines Betriebssystems eines Motorsteuergeräts eines Kraftfahrzeugs. Typischerweise weist eine derartige Task allerdings eine Sequenz von 100 bis 200 Prozessen auf.
Die Prozesse sind zum Teil aus einer Bibliothek entnommen. Einige Prozesse wurden neu für die Drehmoment-Regelung entworfen. Die Grafik von Figur 3 steht einem Entwickler, der eine gültige Sequenz von Prozessen finden will, zur Verfü- gung, sie bestimmt jedoch noch keine Prozessreihenfolge.
Prozess Pl berechnet für eine Benutzereinstellung einer Geschwindigkeitsregelanlage (Tempomat) die Differenz zwischen der tatsächlichen Geschwindigkeit und der von einem Fahrer eingestellten Geschwindigkeit und gibt diese Differenz an
Prozess P3 aus. Prozess P2 berechnet eine durch eine Gaspedalstellung mitgeteilte Leistungsanforderung und gibt diese ebenfalls an Prozess P3 aus. Prozess P3 koordiniert eventuell vorliegende Anforderungen der Prozesse Pl und P2 und berech- net hierfür eine Drehmomentanforderung für die Prozesse P4 und Pβ.
Prozess P4 bestimmt eine langsame Drehmomentänderung und gibt eine entsprechende Anforderung an Prozess P5 aus. Prozess P5 berechnet einen Sollwert für eine Drosselklappenstellung und gibt diesen an ein Stellglied aus. co co h 0 M μ> cπ o Cπ o cπ O Cπ
Hd Hi DJ 3 LQ s* H Sl n Hd w LQ N N CΛ 3 Dd α 3 σ 3 D μ-1 tr φ Hd C I Φ iQ Hd O 3 3 μ- Φ Φ DJ Φ Φ 3: O rt μ- Φ ^ φ Φ o μ- φ Φ μ- 3 Ü 3 3 μ- H 3: μ- μ- ti
H Hi co Ω li 3 H 3 ü CΛ rt 3 3 fr μ- ti 3 li rt φ CL Φ 3 3 3 o 3 3 tr O
Λ sQ iQ tr 3 CL sQ rt "^ H H iQ Φ M Ω tr α iQ tr iQ IQ φ N CL φ rt N
Φ H tr rt 3 Φ Φ l_l- μ- 3 3 3 tr Φ Φ 3: 3 ι-3 INI 3 • li Φ 3 3 Φ
H 3 3 Φ ιQ 3 tr o o Φ tr 3 co 3 3 3 3 μ- > 3 3: O 3 CΛ 3 φ CO
CO L 3 H CL CΛ φ tr CL 3 ιQ > Φ iQ rt co 3 3 3 α O CΛ *Q CΛ μ- CO ro . μ- Φ rt 3 3 Φ Φ rt CΛ 3 tr rt 03 CΛ Φ M ^ α φ α μ- ti o 3
Φ Hi Φ 3 H Φ 3 £ ω φ Φ φ Φ -> ^ Φ « 3 Φ Φ Hd 3 *- φ Hd
50 tr μ- Ω CΛ Φ μ- 5 Φ Hi li 3 ü μ- φ ≤ μ- rt CL tr co 3 σx φ μ- μ- 3 tr co 3 Φ 3 Cd Dd li 3: φ φ 3 3 Hl Dd μ- 3 ω Φ Hd 3 co C φ φ <Q μ- 3 μ- μ- μ- rt tr Ω Dd Ω • 3: Hi μ- H W ti i o φ iQ Φ 3 tr
DJ Λ Φ Φ μ- ! 3 DJ 3 3 Φ H tr μ- tr CΛ 5 3 CL φ 3 O 3 3 μ- li et Φ rt Φ 3 H fr i→ r iQ iQ 3 3 3 3 CΛ CΛ sQ 3 Dd (NT Φ et σ rt Λ H μ- H et φ DJ μ- et DJ 3 tr 3 φ iQ 3 μ- Φ sQ 3 N ^ Hi Hi Φ 3 t et T3 φ
O Od • et H 3 3 3 3 Φ sQ rt 3 3 φ 3 Φ 3 ^ Hi CΛ rt p : • Hi ti Ω
3 Hd φ α N tr Φ vQ ιQ N 3 iQ fr sQ ^ <! Φ CΛ pj: 3: Φ tr φ ii ii CΛ μ- rt Φ < CΛ μ- CL 5S co CΛ 3 μ- Φ CΛ Φ μ- fr Φ 3 et ti Ω 3
3 DJ: Φ μ- Φ Φ μ- o CL s: φ Φ O « N 3: 3 3 s: μ- H Φ rt CL tr φ
3 Ω Φ H r+ Ü φ φ tr H ü φ << CΛ 3 Φ ω rt μ- Hd Φ Φ Φ φ <-t μ- tr Dd Φ 3 tr μ- li h 3 CL li fr CO o N li o Φ N ! J-> ü μ- μ- 3
CΛ ti fr μ- CΛ 3 Φ 3 et 3 ι-3 φ rt Φ φ Φ rt tr μ- s: μ- 3 3 3 CL φ
CΛ 3 O: 3 u3 li Hd sQ 3 3 Φ 3 3 t-1 μ- Φ -> Φ r+ 3 3 Φ Φ μ- φ 3 3 iQ Φ ιQ co li CL CΛ CΛ CΛ tr Ω rt μ- fU: 3 iQ 50 3 3
3 sQ 3 DJ 3 φ Φ o Φ s: fr co 3 3 Φ tr α N rt CL Φ Φ
CΛ φ 3 rt Φ tr μj N CΛ Φ • Φ 3: -> 3 3 Φ s: 3 ^ CL Hi N 3 φ N 3 sQ ω ü Φ tr φ μ- μ- CΛ Hd CO φ ti Od Φ O: Hd 3 Φ 3: Hi CΛ li • CΛ d 3 Φ CΛ <1 Λ α 3 CΛ ta o Od et • li iQ ≤ sx ti H 3 O Ω sQ ?- DJ s; ü ι-3 CL 3 ω o Φ Φ ** Φ Dd Φ φ H L μj μ- Ω Φ CL li tr
Φ μj Φ μ- DJ Φ Φ t-s 3 3 α Ü ti ti 3 Φ μ- φ Φ tr 3 N CL 3 < > tr 3 CΛ H Ω CΛ 3 Od tr o_ Φ α φ 3 Φ 0 H 3 Ω 3 N Φ Φ φ φ CΛ o rt tr fr Φ Hd φ μ- 3 3 μ- H CΛ o Dd N tr rt Φ CO μ- li t-1
3 Φ et Od H H Φ et co 3 tr tr μ- φ Φ 3 Φ φ co μ- • : et 3
CL Φ φ Φ 1 tQ co 3 > 3 3 CΛ 3 3 li Ω 3 co O 3 Φ
CΛ DJ φ li ü Ω Hd Φ Φ TS 3" <! μj et 3 iQ CΛ CΛ tr Φ r+ 3 US μ- 3 co φ μ- 3 Φ tr 00 tr 3 H Φ o rt et 3 3 Φ O CΛ CΛ φ Φ 3 σ
Ω ü 3 μ- Ω 3 φ et Φ μ- H Φ li iQ 3 . rt 3 μ- tsi 3 W 3 i tr φ rt tr 3 fr 3 co Ω r 3 μ- co iQ πd 3 φ Hi CL 3: et 3 Φ
Φ rt Hd 3 rt ti 3 DJ CL O tr et Φ • tr N CΛ co co σ φ 3 Hi tr
Hi H r+ li Φ 3 iQ 3 φ ti Φ •* ü 3 ^ ≤ -^ 3 3 CL 3: tr Hd co 3
3: tr H o N 3 3 3 Φ 3 iQ σ t ?^ Φ tr a 3 N li Φ H O
H DJ μ- N 1 r+ ιQ N Ω CL tr Φ μ- ü μ- < ti 3 Φ co O 3 tr φ | Φ CΛ < 3 Od tr Φ tr φ 5 3 rt co o O: φ 3 μ- CL rt N Φ
CL rr 3 co Q H N fr H φ φ Φ μ- φ Dd ω Φ μj tP μ- tr et μ- μ- Φ 3 μ- Φ et Λ CΛ li 3 li 3 3 μ- H Φ 3 3 T3 φ 3 CΛ li- φ 3 φ μ- ≤ fr 3 o Φ α tr CL μ- 3 <! σ co CΛ 3 φ 3 3 § O pt:
• ; Φ Φ co Ω φ 3 Φ φ rt vQ o Φ •^ et o CL 3 Dd et 3
H Dd H CL H 3 DJ tr 3 H 3 3 i N DJ: fr Hi Hd CL
H μ- rt ω tr 3 3 rt 5 3 3r μ- 3 3 D tr μ- rt Hi 3 -J φ o 3 DJ Φ ιQ 3 Dd Φ < Dd φ u3 φ Φ μ- CL li Φ tr Φ 3 H
N sQ 3 3 σ tr H Φ 3 μ- 3 o φ Hi co i tr rt μ- O co ü Φ ^ CL 3 3
Φ DJ 3 Φ Φ Φ vQ uQ 3 H li Hi s; 3 u3 ω et φ li et 3 3
CΛ 3 3 μ- Ω Φ CO iQ 3 Φ 2 Φ tr 3 co μ- li CΛ μ- 3 co sQ
CΛ tQ 3 tr tr N DJ: μ- 3 Ω H Φ iQ 3 tr φ y Ω < 3
Φ CΛ πd Φ r L i Φ << 3 φ iQ tr tr et H CΛ co Φ t tr μ- 3 > i N Φ Φ 3 fr iQ co Φ 3 φ Φ ≤ 3 li fr rt o μ- rt CL CL 3
Hd Φ rt li rt j Φ φ IQ 3 1 CL Ω φ 3 φ μj Φ Ό φ p : μ- Φ CL t- H CΛ 50 Φ 3 3 3 Φ tr μ- tr Ω 3 3 i 1 rt Φ li
1 rt μ- Φ < H Φ Λ α 3 iQ CΛ ti CΛ 3 tr T> 1
Hd 3 | o H 5 DJ 1 CΛ Φ Φ φ 1 O co CL 1 1 CΛ 1 rt Φ
P2 < P3
P3 < P4
P3 < P6
P4 < P5
P6 < P4
P4 < P8
P6 < P7
P6 < P8
P7 < P8
Als erste Prozesse der Sequenz kommen lediglich Prozesse in Frage, die keinen im selben Berechnungszyklus berechneten Eingangswert benötigen. Der erste Prozess darf also keinen mit dem Attribut PRE belegten Eingang aufweisen. Der letzte Prozess der Sequenz darf keinen mit dem Attribut POST belegten Eingang aufweisen. Alle Berechnungsreihenfolgen die diesen Bedingungen und den aufgestellten Ungleichungen genügen, sind gültige oder lauffähige Sequenzen.
Das Ungleichungssystem kann beispielsweise durch Anwendung der Graphentheorie computergestützt gelöst werden. Ein Graph wird aufgebaut, indem die Prozesse als Knoten und jede Ungleichung als gerichtete Kante des Graphen eingesetzt werden. Eine gerichtete Kante ist ein Verweis von einem Prozess auf einen anderen Prozess. Die gerichtete Kante wird jeweils von dem Prozess bzw. Knoten, der in der entsprechenden Ungleichung als kleiner bestimmt wurde, auf den Prozess bzw. Knoten gerichtet, der in der selben Ungleichung als größer bestimmt wurde .
Anders ausgedrückt wird jeweils zu einem Prozess, dessen Eingang mit dem Attribut PRE versehen ist, ein Verweis von dem Prozess gesetzt, der den Eingangswert liefert. Von einem Prozess, dessen Eingangswert mit dem Attribut POST versehen ist, wird ein Verweis auf den Prozess gesetzt, der den Eingangswert liefert. In Figur 4 ist die Umsetzung der oben aufgestellten Ungleichungen in einen Graphen dargestellt. In einem ersten Bearbeitungsschritt oder einer ersten Iteration werden alle Knoten (Prozesse) aus der Menge der zu überprüfenden Knoten (Prozessen) entfernt, einschließlich der zugehörigen Verweise E (Kanten) , zu denen keine Verweise E (Kanten) des Graphen zeigen. Dies gilt für die Prozesse Pl und P2, die keinen Eingang mit dem Attribut PRE aufweisen. Diese Prozesse werden einer ersten Gruppe von Prozessen des Berechnungszyklus zuge- ordnet.
Die Prozesse innerhalb einer Gruppe von Prozessen können in beliebiger Reihenfolge oder parallel abgearbeitet werden.
Durch rekursive Abarbeitung des Algorithmus wird jeweils eine neue Gruppe von Prozessen gebildet, die bei der Programmausführung nach der vorhergehenden Gruppe von Prozessen abgearbeitet werden muss. Es werden also die nach jedem Schritt verbleibenden Prozesse in weiteren aufeinanderfolgenden Schritten jeweils auf Prozesse untersucht, auf die kein Verweis E gesetzt ist. Die in jedem Schritt gefundenen Prozesse werden entfernt und aufeinander folgenden Gruppen von Prozessen zugeordnet. Diese Gruppen können einen oder mehrere Prozesse beinhalten. Die Reihenfolge der Prozesse innerhalb ei- ner Gruppe ist beliebig, da diese Prozesse voneinander unabhängig sind. Es müssen jedoch alle Prozesse einer Gruppe abgearbeitet sein, bevor ein Prozess der nächsten Gruppe ausgeführt wird.
In Figur 5 ist der um die Prozesse Pl und P2 verminderte
Graph gezeigt. Auch in diesem Teilgraphen muss mindestens ein Knoten (Prozess) existieren, zu dem keine Kante zeigt. Alle Knoten, zu denen keine Kante zeigt, müssen wiederum entfernt werden. Existiert kein Knoten (Prozess) der diese Bedingung erfüllt, ist eine nicht auflösbare Schleife und damit eine Inkonsistenz im Datenfluss entdeckt. In einem zweiten Schritt wird folglich der Prozess P3 entfernt und einer zweiten Gruppe von Prozessen zugeordnet.
Das Resultat ist in Figur 6 dargestellt.
In einem dritten Schritt wird nun Prozess 6 entfernt, zu dem keine Kante zeigt.
Der so entstandene restliche Graph ist in Figur 7 darge- stellt. Prozess 6 wird einer dritten Gruppe von Prozessen zugeordnet .
In einem vierten Schritt werden die Prozesse P4 und P7 entfernt und einer vierten Gruppe von Prozessen zugeordnet.
Damit verbleiben lediglich die Prozesse P5 und P8, die in Figur 8 dargestellt sind. Auf diese verbliebene Prozesse zeigt keine Kante, so dass beide Prozesse einer fünften und letzten Gruppe von Prozessen zugeordnet werden.
In der Reihenfolge der Schritte oder der Gruppen von Prozessen ist die Reihenfolge gefunden, in der die Prozesse abgearbeitet werden müssen. Die in einem Schritt abgetrennten Prozesse müssen vor den Prozessen ausgeführt werden, die im nächsten Schritt abgetrennt wurden.
Die Zuordnung der einzelnen Prozesse P1-P8 zu Gruppen von Prozessen G1-G5 ist in Figur 9 veranschaulicht.
Da in den Gruppen jeweils mehr als ein Prozess vorhanden sein kann, kann eine Vielzahl von unterschiedlichen, ausführbaren Sequenzen gebildet werden. Aus dieser Vielzahl von gültigen Sequenzen kann beispielsweise diejenige bestimmt werden, die die kürzeste Laufzeit beansprucht oder diejenige, bei der je- weils die Berechnung eines Ausgabewerts und dessen Verwendung als Eingangswert zeitlich am dichtesten aufeinander folgen (Optimierung) . Figur 10 zeigt einen Graphen, der eine nicht auflösbare Schleife enthält. Der Graph repräsentiert nicht die Drehmoment-Regelung von Figur 3.
Gemäß den oben aufgestellten Berechnungsschritten wurde versucht den Graphen mit dem Werkzeug zum Anordnen oder Prüfen in einzelne Gruppen von Prozessen zu zerlegen. Das Ergebnis der Bearbeitungsschritte 1 bis 3 ist in den Figuren 11 bis 13 dargestellt.
In Figur 13, die das Ergebnis des dritten Schritts darstellt, konnte schließlich kein Prozess oder Knoten gefunden werden, zu dem keine Kante des Graphen zeigt. Es gibt also keinen Prozess, der keinen Eingang mit dem Attribut PRE hat. Die verbleibenden Prozesse können somit keiner Gruppe zugeordnet werden. Es liegt eine Schleife vor, die aufgelöst werden muss, um eine ausführbare Task zu erhalten. Die verbleibenden Prozesse werden auf eine Anzeigeeinrichtung oder einen Dru- cker ausgegeben.

Claims

Patentansprüche
1. Verfahren zum automatischen Gewinnen einer funktionsfähigen Reihenfolge von Prozessen, die aus wenigstens einem Ein- gabewert einen Ausgabewert bestimmen, mit den Schritten:
- eine Vielzahl von Prozessen (Pl - P8), deren Eingänge mit wenigstens einem der Attribute
- „Eingangswert des selben Berechnungszyklus" (PRE) ,
- „Eingangswert des vorhergehenden Berechnungszyklus" (POST),
- „Eingangswert aus beliebigem Berechnungszyklus" (ANY) versehen sind, werden so angeordnet, dass als erster Prozess eines Berechnungszyklus (n) ein Prozess bestimmt wird, der keinen Eingang mit dem Attribut „Eingangswert des sel- ben Berechnungszyklus" (PRE) aufweist,
- die gefundene Reihenfolge der Prozesse (Pl - P8) wird ausgegeben.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die einzelnen Prozesse (Pl - P8) derart miteinander in Beziehung gesetzt werden, dass zu einem Prozess, dessen Eingang mit dem Attribut „Eingangswerts des selben Berechnungszyklus" (PRE) versehen ist, ein Verweis (E) von dem Prozess gesetzt wird, der den Eingangswert liefert, und dass von einem Pro- zess, dessen Eingang mit dem Attribut „Eingangswert des vorhergehenden Berechnungszyklus" (POST) versehen ist, ein Verweis auf den Prozess gesetzt wird, der den Eingangswert liefert.
3. Verfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass für die Berechnung der Reihenfolge der Prozesse (Pl - P8) in einem ersten Schritt diejenigen Prozesse entfernt und einer ersten Gruppe von Prozessen (Gl) zugeordnet werden, auf die kein Verweis (E) gesetzt ist.
4. Verfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass die verbleibenden Prozesse in weiteren Schritten jeweils auf Prozesse untersucht werden, auf die kein Verweis (E) gesetzt ist, und dass die in jedem Schritt gefundenen Prozesse aus der Menge der zu untersuchenden Prozesse jeweils entfernt und aufeinanderfolgenden Gruppen von Prozessen (G1-G5) zugeordnet werden.
5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass aus einer Lösungsmenge mit berechneten gültigen Reihenfolgen, diejenige Reihenfolge ausgewählt wird, bei der jeweils die Berechnung eines Ausgabewerts und dessen Verwendung als Eingangswert zeitlich am dichtesten aufeinander folgen.
6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass als letzter Prozess (Pl - P8) eines Berechnungszyklus (n) ein Prozess ausgewählt wird, der keinen Eingang mit dem Attribut „Eingangswert des vorhergehenden Berechnungszyklus" (POST) aufweist.
7. Verfahren zum Überprüfen einer Reihenfolge von abzuarbeitenden Prozessen auf Schleifen im Datenfluß, mit den Schritten:
- eine Vielzahl von Prozessen (Pl - P8), deren Eingänge mit wenigstens einem der Attribute - „Eingangswert des selben Berechnungszyklus" (PRE),
- „Eingangswert des vorhergehenden Berechnungszyklus" (POST) ,
- „Eingangswert aus beliebigem Berechnungszyklus" (ANY) versehen sind, werden so angeordnet, dass in einem ersten Schritt als erster Prozess ein Prozess (Pl; P2) bestimmt wird, der keinen Eingang mit dem Attribut „Eingangswert des selben Berechnungszyklus" (PRE) aufweist,
- der erste Prozess (Pl; P2) wird einer ersten Gruppe von Prozessen (Gl) zugeordnet und aus der Menge der zu untersu- chenden Prozesse (P3-P8) entfernt, - die verbleibenden Prozesse werden in weiteren Schritten jeweils auf Prozesse untersucht, auf die kein Verweis (E) gesetzt ist,
- die in jedem Schritt gefundenen Prozesse werden jeweils aus der Menge der zu untersuchenden Prozesse entfernt und aufeinanderfolgenden Gruppen (G1-G5) zugeordnet, bis in einem Schritt kein Prozess (P1-P8) identifiziert werden kann, der keinen Eingang mit dem Attribut „Eingangswert des selben Berechnungszyklus" (PRE) hat, - die verbleibenden Prozesse (P1-P8) werden identifiziert und ausgegeben.
8. Werkzeug zum Anordnen oder Prüfen einer Reihenfolge von abzuarbeitenden Prozessen (P1-P8), das aufweist: - Eingabemittel (2, 21, 3) zur Eingabe einer Vielzahl von
Prozessen (P1-P8), deren Eingänge jeweils mit wenigstens einem der Attribute
- „Eingangswerts des selben Berechnungszyklus" (PRE) ,
- „Eingangswert des vorhergehenden Berechnungszyklus" (POST),
- „Eingangswert aus beliebigem Berechnungszyklus " (ANY) versehen sind,
- wenigstens einen Mikroprozessor (MP) zur Berechnung einer lauffähigen Reihenfolge von Prozesse (P1-P8) nach einem Verfahren gemäß einem der vorhergehenden Verfahrensansprüche,
- ein Ausgabemittel (4) zum Ausgeben der gefundenen Reihenfolge .
EP01960118A 2000-07-18 2001-07-12 Verfahren zum automatischen gewinnen einer funktionsfähigen reihenfolge von prozessen und werkzeug hierzu Withdrawn EP1402362A2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10034869 2000-07-18
DE10034869A DE10034869A1 (de) 2000-07-18 2000-07-18 Verfahren zum automatischen Gewinnen einer funktionsfähigen Reihenfolge von Prozessen und Werkzeug hierzu
PCT/DE2001/002612 WO2002006950A2 (de) 2000-07-18 2001-07-12 Verfahren zum automatischen gewinnen einer funktionsfähigen reihenfolge von prozessen und werkzeug hierzu

Publications (1)

Publication Number Publication Date
EP1402362A2 true EP1402362A2 (de) 2004-03-31

Family

ID=7649299

Family Applications (1)

Application Number Title Priority Date Filing Date
EP01960118A Withdrawn EP1402362A2 (de) 2000-07-18 2001-07-12 Verfahren zum automatischen gewinnen einer funktionsfähigen reihenfolge von prozessen und werkzeug hierzu

Country Status (5)

Country Link
US (1) US7231261B2 (de)
EP (1) EP1402362A2 (de)
JP (1) JP2004521402A (de)
DE (1) DE10034869A1 (de)
WO (1) WO2002006950A2 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10034869A1 (de) * 2000-07-18 2002-02-07 Siemens Ag Verfahren zum automatischen Gewinnen einer funktionsfähigen Reihenfolge von Prozessen und Werkzeug hierzu
DE10310422A1 (de) * 2003-03-11 2004-09-23 Zf Friedrichshafen Ag Verfahren zur Vernetzung von Regelungs- und/oder Steuerungsfunktionen für ein Kraftfahrzeug
JP7054033B2 (ja) * 2020-03-31 2022-04-13 ダイキン工業株式会社 プロセス実行順序決定プログラム及びプロセス実行順序決定方法
US11346538B1 (en) * 2021-05-17 2022-05-31 Sikai Chen LED lighting module with electrical power and data connections

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4977529A (en) * 1973-02-23 1990-12-11 Westinghouse Electric Corp. Training simulator for a nuclear power plant
JPS5621242A (en) * 1979-07-28 1981-02-27 Fujitsu Ltd Pipeline control method for computer operation
EP0347162A3 (de) * 1988-06-14 1990-09-12 Tektronix, Inc. Einrichtung und Verfahren zum Steuern von Datenflussprozessen durch erzeugte Befehlsfolgen
US4975947A (en) * 1989-02-22 1990-12-04 Texas Instruments Incorporated System to share the DSP computation resources
US5077677A (en) * 1989-06-12 1991-12-31 Westinghouse Electric Corp. Probabilistic inference gate
US5182794A (en) * 1990-07-12 1993-01-26 Allen-Bradley Company, Inc. Recurrent neural networks teaching system
EP0746078B1 (de) * 1995-05-31 2002-09-18 Kabushiki Kaisha Meidensha Verfahren und Vorrichtung zum Detektieren des Islanding-Betriebes eines verteilten Generators
EP1457894A3 (de) * 1995-10-26 2005-04-20 Matsushita Electric Industrial Co., Ltd. Dateiensystem
US6453446B1 (en) * 1997-12-24 2002-09-17 Magma Design Automation, Inc. Timing closure methodology
EP0953898A3 (de) * 1998-04-28 2003-03-26 Matsushita Electric Industrial Co., Ltd. Prozessor zur Ausführung von Befehlen aus dem Speicher mittels eines Programmzählers und Kompiler, Assembler, Programmverbinder und Fehlerbeseitiger für einen solchen Prozessor
US7036106B1 (en) * 2000-02-17 2006-04-25 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
DE10011890C2 (de) * 2000-03-03 2003-04-24 Jena Optronik Gmbh Verfahren zur Bestimmung der Zustandsgrössen eines sich bewegenden starren Körpers im Raum
DE10034869A1 (de) * 2000-07-18 2002-02-07 Siemens Ag Verfahren zum automatischen Gewinnen einer funktionsfähigen Reihenfolge von Prozessen und Werkzeug hierzu
US6757445B1 (en) * 2000-10-04 2004-06-29 Pixxures, Inc. Method and apparatus for producing digital orthophotos using sparse stereo configurations and external models

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ANTONIO DIAZ-CALDERON: "A Composable Simulation Environment to Support the Design of Mechatronic Systems", CARNEGIE MELLON UNIVERSITY, June 2000 (2000-06-01), Pittsburgh, Pennsylvania, pages 1 - 226, Retrieved from the Internet <URL:http://www.cs.cmu.edu/~compsim/articles/adiaz-thesis.pdf> [retrieved on 20090618] *
MARK ALLEN WEISS: "Data structures & Algorithms in C++", February 1999, ADDISON WESLEY LONGMAN *

Also Published As

Publication number Publication date
DE10034869A1 (de) 2002-02-07
US7231261B2 (en) 2007-06-12
WO2002006950A2 (de) 2002-01-24
JP2004521402A (ja) 2004-07-15
US20040205756A1 (en) 2004-10-14
WO2002006950A3 (de) 2003-12-31

Similar Documents

Publication Publication Date Title
EP0689694B1 (de) Verfahren zur maschinellen erzeugung von nebenläufig bearbeitbaren befehlsgruppen aus einem programm für superskalare mikroprozessoren
WO2007020231A2 (de) System für den maschinengestützten entwurf technischer vorrichtungen
EP3568757B1 (de) Verfahren zur erzeugung von quellcode
DE102019126195A1 (de) Verfahren zur effizienten, simulativen Applikation automatisierter Fahrfunktionen
DE102009027627B3 (de) Simulation von Echtzeit-Software-Komponenten auf Basis der Logischen Ausführungszeit
EP0898745A1 (de) Verfahren zur überprüfung der funktionsfähigkeit einer recheneinheit
EP3629151A1 (de) Verfahren zum ändern von modellen für die erzeugung von quellcode
EP1682950A1 (de) Verfahren und vorrichtung zur stimulation von funktionen zur steuerung von betriebsabläufen
EP1402362A2 (de) Verfahren zum automatischen gewinnen einer funktionsfähigen reihenfolge von prozessen und werkzeug hierzu
EP2592504B1 (de) Verfahren zur Abschätzung eines Ressourcenverbrauchs bei der Erzeugung eines Steuergeräteprogrammcodes
EP1944664B1 (de) Verfahren zur Fehlersuche in einem Automatisierungsgerät
DE60026847T2 (de) Verfahren, einem objekt in einer datenbank eine identität zuzuweisen
EP4016360A1 (de) Verfahren, computer-programm-produkt und modellierungswerkzeug zum referenzmodellbasierten, komponentenbezogenen entwickeln eines technischen systems
EP1936452A1 (de) Verfahren und Vorrichtung zur dynamischen Behandlung von Objekten eines Simulationsmodells
DE102020102996A1 (de) Verfahren für einen integrierten Entwurf zur Modellierung, Simulation und Test einer Echtzeit-Architektur innerhalb einer modellbasierten System- und Softwareentwicklung
EP0662226B1 (de) Verfahren zur bearbeitung eines anwenderprogramms auf einem parallelrechnersystem
DE10325513B4 (de) Verfahren und Vorrichtung zum Erstellen eines Verhaltensaspekts einer Schaltung zur formalen Verifikation
DE102018217139B4 (de) Verfahren und Vorrichtung zum Konfigurieren einer Kennfunktion eines Steuergeräts eines Kraftfahrzeugs
DE102006034018A1 (de) Verfahren und Vorrichtung zur Produktionsplanung
EP2128727A1 (de) Verfahren und Computerprogrammprodukt zur Bereitstellung eines speicherplatzreduzierten Steuerprogrammes
EP4172703A1 (de) Planung einer fertigungsstätte
EP0560342B1 (de) Verfahren zum Untersuchen des Ablaufs eines in einer Hardware-Beschreibungssprache geschriebenen Programms
WO2021105103A1 (de) Verfahren und software-werkzeug zum vornehmen ausführbarer spezifikationen bei der systementwicklung oder -validierung komplexer funktionaler systeme
DE102021201212A1 (de) Verfahren zum Steuern einer Mehrzahl an Fahrfunktionen in einem automatisierten oder autonomen Fahrzeug
DE102021102460A1 (de) Verfahren zur Durchführung einer Simulation

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20030120

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): FR GB

17Q First examination report despatched

Effective date: 20071218

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: CONTINENTAL AUTOMOTIVE GMBH

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20091103