US7231261B2 - Method for automatically obtaining an operational sequence of processes and a tool for performing such method - Google Patents

Method for automatically obtaining an operational sequence of processes and a tool for performing such method Download PDF

Info

Publication number
US7231261B2
US7231261B2 US10/345,627 US34562703A US7231261B2 US 7231261 B2 US7231261 B2 US 7231261B2 US 34562703 A US34562703 A US 34562703A US 7231261 B2 US7231261 B2 US 7231261B2
Authority
US
United States
Prior art keywords
processes
input value
attribute
calculation cycle
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.)
Expired - Lifetime, expires
Application number
US10/345,627
Other versions
US20040205756A1 (en
Inventor
Lutz Berentroth
Stefan Hoelzl
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.)
Vitesco Technologies 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
Assigned to SIEMENS AKTIENGESELLSCHAFT reassignment SIEMENS AKTIENGESELLSCHAFT ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BERENTROTH, LUTZ, HOELZL, STEFAN, WELLNFHOFER, HLMUT
Assigned to SIEMENS AKTIENGESELLSCHAFT reassignment SIEMENS AKTIENGESELLSCHAFT CORRECTIVE ASSIGNMENT TO CORRECT THE SPELLING OF THE THIRD INVENTORS LAST NAME AND CORRECT THE EXECUTION DATES OF THE ASSIGNOR'S PREVIOUSLY RECORDED ON REEL 013920 FRAME 0169. Assignors: BERENTROTH, LUTZ, HOELZL, STEFAN, WELLNHOFER, HELMUT
Publication of US20040205756A1 publication Critical patent/US20040205756A1/en
Application granted granted Critical
Publication of US7231261B2 publication Critical patent/US7231261B2/en
Assigned to CONTINENTAL AUTOMOTIVE GMBH reassignment CONTINENTAL AUTOMOTIVE GMBH ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SIEMENS AKTIENGESELLSCHAFT
Assigned to Vitesco Technologies GmbH reassignment Vitesco Technologies GmbH ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CONTINENTAL AUTOMOTIVE GMBH
Adjusted expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/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

  • the invention relates to a method for automatically obtaining an operational sequence of processes, a method for checking a sequence of processes to be worked through to ascertain inconsistencies in the data flow and a tool for arranging or testing a sequence of processes to be worked through, in particular a sequence of calculation functions of operating system software, for example operating system software of an electronic controller for a motor vehicle.
  • the tool is not able to determine independently the sequence of processes of an automatic control system, but mainly serves only for translating manual presettings into software code. Furthermore, it is often desirable to take over already tested sequences of processes or individual processes from existing libraries for a new development and to insert new processes at a suitable point of the existing sequence or to link up in an executable sequence known, tested processes with processes to be newly devised.
  • This aim can be achieved by a method for automatically obtaining an operational sequence of processes that determine an output value from at least one input value, with the following steps:
  • the individual processes can be set in relation to one another in such a way that, to a process whose input is provided with the attribute “input value of the same calculation cycle”, a reference can be set from the process which supplies the input value, and from a process whose input is provided with the attribute “input value of the preceding calculation cycle”, a reference can be set to the process which supplies the input value.
  • a reference can be set from the process which supplies the input value, and from a process whose input is provided with the attribute “input value of the preceding calculation cycle”, a reference can be set to the process which supplies the input value.
  • For the calculation of the sequence of the processes in a first step those processes to which no reference is set can be removed and assigned to a first group of processes. The processes remaining can be respectively investigated in further steps to ascertain processes to which no reference is set, and wherein the processes found in each step are respectively removed from the set of processes to be investigated and assigned to successive groups of processes.
  • Another method is a method for checking a sequence of processes to be worked through to ascertain loops in the data flow, with the following steps:
  • An embodiment according to the present invention can be a tool for arranging or testing a sequence of processes to be worked through, which comprises:
  • processes which have no dependencies on one another can be identified within a calculation cycle.
  • Such processes that are independent of one another can be worked through in parallel in arithmetic and logic units with multitasking operating systems, in particular in multiprocessor systems.
  • An inconsistency in a sequence of processes can be determined, for example, in the following way:
  • the present invention can be used for example for designing operating system software for computers, complex application programs, sequence control systems for industrial production and, in particular, for determining control actions for controllers in automotive engineering, for example engine and transmission controllers.
  • FIG. 1 shows a tool for arranging or testing
  • FIG. 2 shows the interlinking of processes within a task
  • FIG. 3 shows the processes of a torque control of an engine control system
  • FIG. 4 shows the representation of the interlinking of the processes from FIG. 3 in the form of a graph
  • FIGS. 5–8 show the resolution of the graph from FIG. 4
  • FIG. 9 shows the assignment of the processes of FIG. 3 to process groups sequentially following one another and
  • FIGS. 10–13 show the checking of a sequence of processes which have an inconsistency.
  • FIG. 1 shows a tool for arranging and/or testing a sequence of processes to be worked through.
  • Said tool has an arithmetic and logic unit 1 with a microprocessor MP and a main memory RAM.
  • a drive 2 for a storage medium 21 which takes the form of a writable CD (compact disc), and a keyboard 3 .
  • Stored on the storage medium 21 are sequences of processes for the execution of tasks of operating system software or application software and individual processes. This is consequently a library with already existing processes which can be used for creating new programs.
  • an output means which takes the form of a display device 4 .
  • FIG. 2 illustrates the processes P 1 –P 3 of a calculating cycle n which are linked to one another and work through a task of an operating system of an arithmetic and logic unit or of an application program.
  • the processes P 1 –P 3 are processes which are worked through with regular recurrence.
  • the process P 4 is an asynchronous process, which is called up when specific events occur, supplies data for processes within the calculating cycle but does not belong to the calculating cycle being considered.
  • a task is an ordered sequence of processes which is called up by the operating system or a program. The call may take place cyclically at regular intervals or asynchronously on the basis of specific events.
  • a process is a group of instructions which perform a specific task as a unit. Processes consume input data and generate output data.
  • a process is a unit of instructions which can be interrupted by interrupts, but apart from this is worked through as a unit. On account of the dependence of the data generated on the data consumed, the sequence of processes is decisive for the calculation result.
  • the sequence of processes P 1 –P 3 is implicitly defined by the use of additional attributes for the type of an input or input port I.
  • the attribute or attributes of an input I defines or define the relative sequence of a process in relation to the other processes of the same calculation cycle n.
  • An input I of the type PRE requires an input value which is already made available within the same calculation cycle, that is to say has been previously generated.
  • the process whose output or input port 0 supplies the value for the input I provided with the attribute PRE must consequently have been calculated previously in the sequence.
  • Process P 3 has an input I of the type PRE. This input I consumes a value which is made available by the output 0 of the process P 2 .
  • the tool for arranging or testing a sequence of processes therefore detects that process P 2 must be arranged in the sequence before process P 3 .
  • a process supplies an input value for an input I of the type PRE, this process is set to be less than the process with this input of the type PRE.
  • the process which is set as “less” in a relation must be executed before the other process of the relation.
  • the input I is of the type POST, the process which supplies the input value is set greater than the process with this input of the type POST.
  • the input is of the type ANY, the process supplying the input value can be set greater or less than the process receiving the input value.
  • the input of the type ANY can finally be served by a process arranged in the same or following calculation cycle.
  • the arrangement of the two processes in relation to each other is consequently arbitrary. This results in as many inequalities as there are inputs with the attribute PRE or POST in the calculation cycle.
  • Process P 1 and P 2 come into consideration as first processes of the sequence.
  • Process P 3 must not be calculated until after the processes P 1 and P 2 .
  • the processes P 1 and P 2 can be worked through in any sequence or in parallel.
  • FIG. 3 shows for purposes of illustration a simplified task with a calculation sequence of processes P 1 –P 8 of a torque control of an operating system of an engine controller of a motor vehicle.
  • Such a task typically has, however, a sequence of 100 to 200 processes.
  • the processes are partly taken from a library. Some processes have been newly designed for the torque control.
  • the graphic of FIG. 3 is available to a developer who wishes to find a valid sequence of processes, but does not yet determine a process sequence.
  • Process P 1 calculates for a user setting of a speed control system (Tempomat [cruise control]) the difference between the actual speed and the speed set by a driver and outputs this difference to process P 3 .
  • Process P 2 calculates a power requirement indicated by a gas pedal position and likewise outputs this to process P 3 .
  • Process P 3 coordinates any existing requirements of the processes P 1 and P 2 and calculates for this a torque requirement for the processes P 4 and P 6 .
  • Process P 4 determines a slow change in torque and outputs a corresponding requirement to process P 5 .
  • Process P 5 calculates a setpoint value for a throttle valve position and outputs this to a final control element.
  • Process P 6 calculates a rapid change in torque and outputs a corresponding requirement to process P 7 , which determines a setpoint value for an ignition point and outputs it to the ignition.
  • Process P 8 contains a reference system for the effectiveness of the change in torque through a shift of the ignition point.
  • the processes P 4 and P 6 decide on the basis of their coupling and the effectiveness how the build-up of a specific torque must be distributed between the two possible manipulated variables, throttle valve and ignition angle.
  • the task is completely calculated cyclically, for example every 10 ms. All input values of the processes P 3 to P 8 , with the exception of the input values or inputs identified by “eff”, must have been calculated previously in the same calculation cycle. They consequently must obtain the attribute “input value of the same calculation cycle” PRE.
  • the input values denoted by “eff” must have been calculated in the preceding calculation cycle, that is to say when the task was previously executed. Accordingly, these input values or the corresponding inputs obtain the attribute “input value of the preceding calculation cycle” POST.
  • a graph is set up by using the processes as nodes and each inequality as a directed edge of the graph.
  • a directed edge is a reference from one process to another process. The directed edge is respectively directed from the process or node which was determined as less in the corresponding inequality to the process or node which was determined as greater in the same inequality.
  • a reference is respectively set from the process which supplies the input value. From a process whose input value is provided with the attribute POST, a reference is set to the process which supplies the input value.
  • FIG. 5 the graph reduced by the processes P 1 and P 2 is shown. Even in this subgraph, at least one node (process) to which no edge points must exist. All the nodes to which no edge points must in turn be removed. If no node (process) which fulfils this condition exists, an unresolvable loop, and consequently an inconsistency in the data flow, has been discovered.
  • the process P 3 is consequently removed and assigned to a second group of processes.
  • process 6 to which no edge points, is then removed.
  • Process 6 is assigned to a third group of processes.
  • a fourth step the processes P 4 and P 7 are removed and assigned to a fourth group of processes.
  • FIG. 10 shows a graph which contains an unresolvable loop. The graph does not represent the torque control from FIG. 3 .
  • FIG. 13 which represents the result of the third step, finally, it was not possible to find a process or node to which no edge of the graph points. Consequently, there is no process which has no input with the attribute PRE. The remaining processes consequently cannot be assigned to any group. There is a loop which must be resolved in order to obtain an executable task. The remaining processes are output onto a display device or a printer.

Abstract

In order to automatically calculate an operational sequence of processes that determine an output value from at least one input value, a multitude of processes (P1–P8), whose inputs are provided with at least one of the attributes: input value of the same calculation cycle (PRE), input value of the preceding calculation cycle (POST), input value from any calculation cycle (ANY), are arranged in such a manner that a process, which does not have any input with the attribute input value of the same calculation cycle (PRE), is determined as the first process of a calculation cycle and, in successive analogous steps, determines a quantity of possible sequences.

Description

CROSS REFERENCE TO RELATED APPLICATION
This application is a continuation of copending International Application No. PCT/DE01/02612 filed Jul. 12, 2001, which designates the United States, and claims priority to German application number 100 34 869.6 filed Jul. 18, 2000, the contents of which are hereby incorporated by reference in its entirety.
BACKGROUND OF THE INVENTION
The invention relates to a method for automatically obtaining an operational sequence of processes, a method for checking a sequence of processes to be worked through to ascertain inconsistencies in the data flow and a tool for arranging or testing a sequence of processes to be worked through, in particular a sequence of calculation functions of operating system software, for example operating system software of an electronic controller for a motor vehicle.
The publication “Kürzere Entwicklungszeiten mit automatischer Codegenerierung” [shorter development times with automatic code generation ] in Automotive Engineering Partners 5/99, Vieweg GmbH, Verlag Friedrich & Sohn Verlagsgesellschaft mbH of the GWV Fachverlagen GmbH, discloses a tool for automatic code generation for operating system software of motor vehicle controllers and also a testing tool for checking the functions of a controller. The tool for automatic code generation automatically translates the technical presettings of development engineers, which are in the form of a physical description of an automatic control system, into the code that can be read by a controller of a motor vehicle. The testing tool addresses the controller via an interface and generates physically correct signals which would be generated in the actual operation of a motor vehicle. Therefore, the system behavior of the controller, and more precisely its operating system software, can be investigated at an early stage in the laboratory in a simulation of the closed control loop.
However, the tool is not able to determine independently the sequence of processes of an automatic control system, but mainly serves only for translating manual presettings into software code. Furthermore, it is often desirable to take over already tested sequences of processes or individual processes from existing libraries for a new development and to insert new processes at a suitable point of the existing sequence or to link up in an executable sequence known, tested processes with processes to be newly devised.
SUMMARY OF THE INVENTION
It is an aim of the invention to provide a method for automatically calculating an operational sequence of processes, a method for checking a sequence of processes to be worked through and a tool which is able to order a multitude of processes in such a way that all the processes can be purposefully worked through in a way which satisfies the desired data flow.
This aim can be achieved by a method for automatically obtaining an operational sequence of processes that determine an output value from at least one input value, with the following steps:
    • a multitude of processes whose inputs are provided with at least one of the attributes
      • “input value of the same calculation cycle”,
      • “input value of the preceding calculation cycle”,
      • “input value from any calculation cycle”
    • are arranged in such a way that a process which has no input with the attribute “input value of the same calculation cycle” is determined as the first process of a calculation cycle,
    • the found sequence of the processes is output.
The individual processes can be set in relation to one another in such a way that, to a process whose input is provided with the attribute “input value of the same calculation cycle”, a reference can be set from the process which supplies the input value, and from a process whose input is provided with the attribute “input value of the preceding calculation cycle”, a reference can be set to the process which supplies the input value. For the calculation of the sequence of the processes, in a first step those processes to which no reference is set can be removed and assigned to a first group of processes. The processes remaining can be respectively investigated in further steps to ascertain processes to which no reference is set, and wherein the processes found in each step are respectively removed from the set of processes to be investigated and assigned to successive groups of processes. From a set of solutions with calculated valid sequences, that sequence with which the calculation of an output value and its use as an input value respectively follow one another most closely in time can be selected. A process which has no input with the attribute “input value of the preceding calculation cycle” can be selected as the last process of a calculation cycle.
Another method is a method for checking a sequence of processes to be worked through to ascertain loops in the data flow, with the following steps:
    • a multitude of processes whose inputs are provided with at least one of the attributes
      • “input value of the same calculation cycle”,
      • “input value of the preceding calculation cycle”,
      • “input value from any calculation cycle”
    • are arranged in such a way that in a first step a process which has no input with the attribute “input value of the same calculation cycle” is determined as the first process,
    • the first process is assigned to a first group of processes and removed from the set of processes to be investigated,
    • the processes remaining are respectively investigated in further steps to ascertain processes to which no reference is set,
    • the processes found in each step are respectively removed from the set of processes to be investigated and assigned to successive groups, until no process which has no input with the attribute “input value of the same calculation cycle” can be identified in a step,
    • the processes remaining are identified and output.
An embodiment according to the present invention can be a tool for arranging or testing a sequence of processes to be worked through, which comprises:
    • input means for the input of a multitude of processes whose inputs are respectively provided with at least one of the attributes
      • “input value of the same calculation cycle”,
      • “input value of the preceding calculation cycle”,
      • “input value from any calculation cycle”,
    • at least one microprocessor for calculating an executable sequence of processes by a method according to one of the preceding method claims,
    • an output means for outputting the sequence found.
By the assignment of one of the attributes “input value of the same calculation cycle”, “input value of the preceding calculation cycle” or “input value of any calculation cycle” to each data input of the processes to be ordered, it is possible to create by machine an operational, valid sequence which has no inconsistencies in the data flow. An inconsistency means that the attributes assigned to the inputs of the processes cannot be logically fulfilled, since they are mutually exclusive. For example, the inputs of two processes which mutually depend on each other cannot be respectively provided with the attribute “PRE”, since otherwise the contradictory condition that each of the two processes has to be calculated before the other process would have to be fulfilled. However, generally there are a multitude of “executable” sequences.
It is possible to determine from the set of executable sequences of processes the one which has the lowest run time or the one which makes the processes whose output values are used as input values in the successive processes follow one another most closely (optimization).
Furthermore, processes which have no dependencies on one another can be identified within a calculation cycle. Such processes that are independent of one another can be worked through in parallel in arithmetic and logic units with multitasking operating systems, in particular in multiprocessor systems.
An inconsistency in a sequence of processes can be determined, for example, in the following way:
  • 1st step: determination of a process which has no input with the attribute “input value of the same calculation cycle” (in relation to the current set of processes).
  • 2nd step: removal of this process from the set of processes.
  • 3rd step: repetition of steps 1 and 2 with respect to the remaining set of processes.
If the set of processes cannot be reduced by the above operation until no process remains, an inconsistency has been found.
It is therefore possible to confirm the sequence of processes as executable without having to test them in an actual system with a complex simulation of the entire system behavior.
The present invention can be used for example for designing operating system software for computers, complex application programs, sequence control systems for industrial production and, in particular, for determining control actions for controllers in automotive engineering, for example engine and transmission controllers.
BRIEF DESCRIPTION OF THE DRAWINGS
Further features, advantages and application possibilities of the invention emerge from the following description of exemplary embodiments in conjunction with the drawings, in which:
FIG. 1 shows a tool for arranging or testing,
FIG. 2 shows the interlinking of processes within a task,
FIG. 3 shows the processes of a torque control of an engine control system
FIG. 4 shows the representation of the interlinking of the processes from FIG. 3 in the form of a graph,
FIGS. 5–8 show the resolution of the graph from FIG. 4
FIG. 9 shows the assignment of the processes of FIG. 3 to process groups sequentially following one another and
FIGS. 10–13 show the checking of a sequence of processes which have an inconsistency.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
FIG. 1 shows a tool for arranging and/or testing a sequence of processes to be worked through. Said tool has an arithmetic and logic unit 1 with a microprocessor MP and a main memory RAM. Provided with the arithmetic and logic unit 1 as input means are a drive 2 for a storage medium 21, which takes the form of a writable CD (compact disc), and a keyboard 3.
Stored on the storage medium 21 are sequences of processes for the execution of tasks of operating system software or application software and individual processes. This is consequently a library with already existing processes which can be used for creating new programs.
With the keyboard 3, processes can likewise be entered into the arithmetic and logic unit 1.
Serving to present calculation results of the arithmetic and logic unit 1 is an output means, which takes the form of a display device 4.
FIG. 2 illustrates the processes P1–P3 of a calculating cycle n which are linked to one another and work through a task of an operating system of an arithmetic and logic unit or of an application program. The processes P1–P3 are processes which are worked through with regular recurrence. The process P4 is an asynchronous process, which is called up when specific events occur, supplies data for processes within the calculating cycle but does not belong to the calculating cycle being considered.
A task is an ordered sequence of processes which is called up by the operating system or a program. The call may take place cyclically at regular intervals or asynchronously on the basis of specific events. A process is a group of instructions which perform a specific task as a unit. Processes consume input data and generate output data. A process is a unit of instructions which can be interrupted by interrupts, but apart from this is worked through as a unit. On account of the dependence of the data generated on the data consumed, the sequence of processes is decisive for the calculation result.
The sequence of processes P1–P3 is implicitly defined by the use of additional attributes for the type of an input or input port I. The attribute or attributes of an input I defines or define the relative sequence of a process in relation to the other processes of the same calculation cycle n. There are three different types of input ports:
  • input value of the same calculation cycle: PRE,
  • input value of the preceding calculation cycle: POST,
  • input value from any calculation cycle: ANY.
The types of inputs or input ports are often referred to below by the designations PRE, POST and ANY.
An input I of the type PRE requires an input value which is already made available within the same calculation cycle, that is to say has been previously generated. The process whose output or input port 0 supplies the value for the input I provided with the attribute PRE must consequently have been calculated previously in the sequence.
Process P3 has an input I of the type PRE. This input I consumes a value which is made available by the output 0 of the process P2. The tool for arranging or testing a sequence of processes therefore detects that process P2 must be arranged in the sequence before process P3.
In the case of an input I of the type POST, the value provided must not be generated until later in the sequence, so that, when working through the calculation cycle n, the old input value, calculated in the preceding calculation cycle n−1, is made available (this corresponds to a z−1 element in automatic control engineering). The tool for arranging or testing will therefore arrange process P3, the output value of which is required by an input I of the type POST of the process P1, after process P1 in the same calculation cycle n.
In the case of an input of the type ANY, it is immaterial whether the value consumed was calculated in the same calculation cycle n or in the preceding calculation cycle n−1. The occupation of input I with the attribute ANY is therefore merely optional. Frequently, an input of the type ANY obtains its input value from outside the task. In FIG. 2, the process P4 is such an external process. Input ports which obtain their data from external processes always have the attribute ANY.
On account of the allocated attributes for the inputs I of the processes P1–P3, inequalities can be set up. In this way, a relationship is respectively established between a process whose output port 0 provides a value and a process whose input port I consumes this provided value.
If a process supplies an input value for an input I of the type PRE, this process is set to be less than the process with this input of the type PRE. The process which is set as “less” in a relation must be executed before the other process of the relation. If, on the other hand, the input I is of the type POST, the process which supplies the input value is set greater than the process with this input of the type POST. If the input is of the type ANY, the process supplying the input value can be set greater or less than the process receiving the input value. The input of the type ANY can finally be served by a process arranged in the same or following calculation cycle. The arrangement of the two processes in relation to each other is consequently arbitrary. This results in as many inequalities as there are inputs with the attribute PRE or POST in the calculation cycle.
For this example, the following inequalities are therefore obtained:
  • P3>P1 or P1<P3, and
  • P1<P3
Only a process which has no input of the type PRE comes into consideration as the first process of a calculation sequence. Only a process which has no input of the type POST comes into consideration as the last process of a sequence.
After that, the processes P1 and P2 come into consideration as first processes of the sequence. Process P3 must not be calculated until after the processes P1 and P2. The processes P1 and P2 can be worked through in any sequence or in parallel.
FIG. 3 shows for purposes of illustration a simplified task with a calculation sequence of processes P1–P8 of a torque control of an operating system of an engine controller of a motor vehicle. Such a task typically has, however, a sequence of 100 to 200 processes.
The processes are partly taken from a library. Some processes have been newly designed for the torque control. The graphic of FIG. 3 is available to a developer who wishes to find a valid sequence of processes, but does not yet determine a process sequence.
Process P1 calculates for a user setting of a speed control system (Tempomat [cruise control]) the difference between the actual speed and the speed set by a driver and outputs this difference to process P3. Process P2 calculates a power requirement indicated by a gas pedal position and likewise outputs this to process P3. Process P3 coordinates any existing requirements of the processes P1 and P2 and calculates for this a torque requirement for the processes P4 and P6.
Process P4 determines a slow change in torque and outputs a corresponding requirement to process P5. Process P5 calculates a setpoint value for a throttle valve position and outputs this to a final control element.
Process P6 calculates a rapid change in torque and outputs a corresponding requirement to process P7, which determines a setpoint value for an ignition point and outputs it to the ignition.
Process P8 contains a reference system for the effectiveness of the change in torque through a shift of the ignition point. The processes P4 and P6 decide on the basis of their coupling and the effectiveness how the build-up of a specific torque must be distributed between the two possible manipulated variables, throttle valve and ignition angle.
The task is completely calculated cyclically, for example every 10 ms. All input values of the processes P3 to P8, with the exception of the input values or inputs identified by “eff”, must have been calculated previously in the same calculation cycle. They consequently must obtain the attribute “input value of the same calculation cycle” PRE. The input values denoted by “eff” must have been calculated in the preceding calculation cycle, that is to say when the task was previously executed. Accordingly, these input values or the corresponding inputs obtain the attribute “input value of the preceding calculation cycle” POST.
For each input of the processes P1–P8 it can consequently be specified whether a value currently calculated in the same calculation cycle or a value determined in the preceding calculation cycle when the task was previously worked through must be used. The latter corresponds to a z−1 element from automatic control engineering. The input values of the processes P1 and P2 are not defined. They may consequently obtain the attribute “input value from any calculation cycle” ANY.
On the basis of these premises, the following relations are obtained for the processes P1–P8:
  • P1<P3
  • P2<P3
  • P3<P4
  • P3<P6
  • P4<P5
  • P6<P4
  • P4<P8
  • P6<P7
  • P6<P8
  • P7<P8
Only processes which do not require any input value calculated in the same calculation cycle come into consideration as first processes of the sequence. The first process consequently must not have any input occupied with the attribute PRE. The last process of the sequence must not have any input occupied by the attribute POST. All the calculation sequences which satisfy these conditions and the inequalities set up are valid or executable sequences.
The system of inequalities can be resolved in a computer-aided manner, for example by application of the graph theory. A graph is set up by using the processes as nodes and each inequality as a directed edge of the graph. A directed edge is a reference from one process to another process. The directed edge is respectively directed from the process or node which was determined as less in the corresponding inequality to the process or node which was determined as greater in the same inequality.
Expressed in different terms, to a process whose input is provided with the attribute PRE, a reference is respectively set from the process which supplies the input value. From a process whose input value is provided with the attribute POST, a reference is set to the process which supplies the input value.
The conversion of the inequalities presented above into a graph is represented in FIG. 4. In a first processing step or a first iteration, all the 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 point. This applies to the processes P1 and P2 which have no input with the attribute PRE. These processes are assigned to a first group of processes of the calculation cycle.
The processes within a group of processes can be worked through in any sequence or in parallel.
Working through the algorithm recursively has the effect of respectively forming a new group of processes, which must be worked through in execution of the program after the preceding group of processes. Consequently, the processes remaining after each step are respectively investigated in further successive steps to ascertain 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 may comprise one or more processes. The sequence of the processes within a group is arbitrary, since these processes are independent from one another. However, all the processes of a group must be worked through before a process of the next group is executed.
In FIG. 5, the graph reduced by the processes P1 and P2 is shown. Even in this subgraph, at least one node (process) to which no edge points must exist. All the nodes to which no edge points must in turn be removed. If no node (process) which fulfils this condition exists, an unresolvable loop, and consequently an inconsistency in the data flow, has been discovered.
In a second step, the process P3 is consequently removed and assigned to a second group of processes.
The result is represented in FIG. 6.
In a third step, process 6, to which no edge points, is then removed.
The resultant remaining graph is represented in FIG. 7. Process 6 is assigned to a third group of processes.
In a fourth step, the processes P4 and P7 are removed and assigned to a fourth group of processes.
Consequently, all that remains are the processes P5 and P8, which are represented in FIG. 8. No edge points to these remaining processes, so that both processes are assigned to a fifth and final group of processes.
In the sequence of the steps or the groups of processes, the sequence in which the processes have to be worked through has been found. The processes isolated in one step must be executed before the processes which have been isolated in the next step.
The assignment of the individual processes P1–P8 to groups of processes G1–G5 is illustrated in FIG. 9.
Since there may be more than one process present in each case in the groups, a multitude of different, executable sequences can be formed. From this multitude of valid sequences, the one which takes up the shortest run time or the one with which the calculation of an output value and its use as an input value respectively follow one another most closely in time (optimization) may be determined for example.
FIG. 10 shows a graph which contains an unresolvable loop. The graph does not represent the torque control from FIG. 3.
According to the calculation steps presented above, it was attempted to divide up the graph into individual groups of processes with the tool for arranging or testing. The result of the processing steps 1 to 3 is represented in FIGS. 11 to 13.
In FIG. 13, which represents the result of the third step, finally, it was not possible to find a process or node to which no edge of the graph points. Consequently, there is no process which has no input with the attribute PRE. The remaining processes consequently cannot be assigned to any group. There is a loop which must be resolved in order to obtain an executable task. The remaining processes are output onto a display device or a printer.

Claims (8)

1. A method for automatically obtaining an operational sequence of processes that determine an output value from at least one input value, comprising:
providing a set of processes each having an input value with at least one of the following attributes relating to a current calculation cycle of the sequence:
a first attribute indicating that the input value associated with one of the processes must be generated in a prior calculation cycle of the operational sequence,
a second attribute indicating that the input value associated with one of the processes must be generated in a subsequent calculation cycle of the operational sequence,
a third attribute indicating that the input value associated with one of the processes may be generated during any calculation cycle of the operational sequence; arranging the processes in such a way that any process which does not have the first attribute is determined to be the first process of the current calculation cycle, and
outputting the arranged sequence of processes.
2. The method as claimed in claim 1, further comprising:
with respect to any process with the first attribute, setting a reference from an earlier process which supplies the associated input value for such process; and
with respect to any process with the second attribute, setting a reference to a later process which supplies the associated input value for such process.
3. The method as claimed in claim 2, wherein arranging in the processes further comprises:
removing from the set all processes to which no reference is set from any other process in the set; and
assigning such removed processes
to a first group of processes.
4. The method as claimed in claim 3, wherein arranging the processes further comprises:
removing from the remaining set all processes to which no reference is set from any other process remaining in the set;
assigning such removed processes
to one of a plurality of successive groups of processes;
repeating the removing and assigning of processes until no processes remain in the set.
5. The method as claimed in claim 1, wherein:
the outputted sequence comprises one or more first processes each with an output value that is used as an input value to a second process in the outputted sequence; and
each first process and its associated second process are placed in the sequence as close in time to each other as possible.
6. The method as claimed in claim 1, wherein a process which has no input with the second attribute is determined to be the last process of a calculation cycle.
7. A method for automatically obtaining an operational sequence of processes that determine an output value from at least one input value, comprising:
providing a set of processes each having an input value with at least one of the following attributes relating to a current calculation cycle of the sequence:
a first attribute indicating that the input value associated with one of the processes must be generated in a prior calculation cycle of the operational sequence,
a second attribute indicating that the input value associated with one of the processes must be generated in a subsequent calculation cycle of the operational sequence,
a third attribute indicating that the input value associated with one of the processes may be generated during any calculation cycle of the operational sequence;
with respect to any process with the first attribute, setting a reference from an earlier process which supplies the associated input value for such process;
with respect to any process with the second attribute, setting a reference to a later process which supplies the associated input value for such process
arranging the processes in such a way that:
any process which does not have the first attribute is determined to be the first process in the sequence and,
is assigned to a first group of processes and removed from the set of processes,
the processes remaining in the set are each investigated to ascertain any processes to which no reference is set,
the processes to which no reference is set are removed from the set of processes and assigned to one of a plurality of successive groups, and
the steps of ascertaining processes to which no reference is set and removing such processes from the set are repeated until no process remains in the set which does not have the first attribute.
8. A system for automatically obtaining an operational sequence of processes that determine an output value from at least one input value, comprising:
a means for providing a set of processes each having an input value with at least one of the following attributes relating to a current calculation cycle of the sequence:
a first attribute indicating that the input value associated with one of the processes must be generated in a prior calculation cycle of the operational sequence,
a second attribute indicating that the input value associated with one of the processes must be generated in a subsequent calculation cycle of the operational sequence,
a third attribute indicating that the input value associated with one of the processes may be generated during any calculation cycle of the operational sequence;
with respect to any process with the first attribute, setting a reference from an earlier process which supplies the associated input value for such process;
with respect to any process with the second attribute, setting a reference to a later process which supplies the associated input value for such process
arranging the processes in such a way that:
any process which does not have the first attribute is determined to be the first process in the sequence and, is assigned to a first group of processes and removed from the set of processes,
the processes remaining in the set are each investigated to ascertain any processes to which no reference is set,
the processes to which no reference is set removed from the set of processes and assigned to one of a plurality of successive groups, and
the steps of ascertaining processes to which no reference is set and removing such processes from the set are repeated until no process remains in the set which does not have the first attribute.
US10/345,627 2000-07-18 2003-01-16 Method for automatically obtaining an operational sequence of processes and a tool for performing such method Expired - Lifetime US7231261B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10034869A DE10034869A1 (en) 2000-07-18 2000-07-18 Method for automatically obtaining a functional sequence of processes and tools for this
DE10034869.6 2000-07-18
PCT/DE2001/002612 WO2002006950A2 (en) 2000-07-18 2001-07-12 Method for automatically obtaining an operational sequence of processes and a corresponding tool therefor

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE2001/002612 Continuation WO2002006950A2 (en) 2000-07-18 2001-07-12 Method for automatically obtaining an operational sequence of processes and a corresponding tool therefor

Publications (2)

Publication Number Publication Date
US20040205756A1 US20040205756A1 (en) 2004-10-14
US7231261B2 true US7231261B2 (en) 2007-06-12

Family

ID=7649299

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/345,627 Expired - Lifetime US7231261B2 (en) 2000-07-18 2003-01-16 Method for automatically obtaining an operational sequence of processes and a tool for performing such method

Country Status (5)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11346538B1 (en) * 2021-05-17 2022-05-31 Sikai Chen LED lighting module with electrical power and data connections

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10034869A1 (en) * 2000-07-18 2002-02-07 Siemens Ag Method for automatically obtaining a functional sequence of processes and tools for this
DE10310422A1 (en) 2003-03-11 2004-09-23 Zf Friedrichshafen Ag Method for networking regulation and / or control functions for a motor vehicle
JP7054033B2 (en) * 2020-03-31 2022-04-13 ダイキン工業株式会社 Process execution order determination program and process execution order determination method

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4794518A (en) * 1979-07-28 1988-12-27 Fujitsu Limited Pipeline control system for an execution section of a pipeline computer with multiple selectable control registers in an address control stage
US4975947A (en) * 1989-02-22 1990-12-04 Texas Instruments Incorporated System to share the DSP computation resources
US4977529A (en) * 1973-02-23 1990-12-11 Westinghouse Electric Corp. Training simulator for a nuclear power plant
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
US5808449A (en) * 1995-02-06 1998-09-15 Kabushiki Kaisha Meidensha Method and apparatus for detecting islanding operation of dispersed generator
US20010037185A1 (en) * 2000-03-03 2001-11-01 Roland Strietzel Method for determining the state variables of a moving rigid body in space
WO2002006950A2 (en) * 2000-07-18 2002-01-24 Siemens Aktiengesellschaft Method for automatically obtaining an operational sequence of processes and a corresponding tool therefor
US6453316B1 (en) * 1995-10-26 2002-09-17 Matsushita Electric Industrial Co., Ltd. Scheduling unit for scheduling service requests to cyclically provide services
US20050031197A1 (en) * 2000-10-04 2005-02-10 Knopp David E. Method and apparatus for producing digital orthophotos using sparse stereo configurations and external models
US6880150B1 (en) * 1998-04-28 2005-04-12 Matsushita Electric Industrial Co., Ltd. Processor for executing instructions in units that are unrelated to the units in which instructions are read, and a compiler, an optimization apparatus, an assembler, a linker, a debugger and a disassembler for such processor
US20050120319A1 (en) * 1997-12-24 2005-06-02 Van Ginneken Lukas P. Timing closure methodology
US7036106B1 (en) * 2000-02-17 2006-04-25 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0347162A3 (en) * 1988-06-14 1990-09-12 Tektronix, Inc. Apparatus and methods for controlling data flow processes by generated instruction sequences

Patent Citations (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
US4794518A (en) * 1979-07-28 1988-12-27 Fujitsu Limited Pipeline control system for an execution section of a pipeline computer with multiple selectable control registers in an address control stage
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
US5808449A (en) * 1995-02-06 1998-09-15 Kabushiki Kaisha Meidensha Method and apparatus for detecting islanding operation of dispersed generator
US6714986B2 (en) * 1995-10-26 2004-03-30 Matsushita Electric Industrial, Co., Ltd. File system for handling real-time and non-real-time data
US6453316B1 (en) * 1995-10-26 2002-09-17 Matsushita Electric Industrial Co., Ltd. Scheduling unit for scheduling service requests to cyclically provide services
US20050120319A1 (en) * 1997-12-24 2005-06-02 Van Ginneken Lukas P. Timing closure methodology
US6880150B1 (en) * 1998-04-28 2005-04-12 Matsushita Electric Industrial Co., Ltd. Processor for executing instructions in units that are unrelated to the units in which instructions are read, and a compiler, an optimization apparatus, an assembler, a linker, a debugger and a disassembler for such processor
US7036106B1 (en) * 2000-02-17 2006-04-25 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US20010037185A1 (en) * 2000-03-03 2001-11-01 Roland Strietzel Method for determining the state variables of a moving rigid body in space
WO2002006950A2 (en) * 2000-07-18 2002-01-24 Siemens Aktiengesellschaft Method for automatically obtaining an operational sequence of processes and a corresponding tool therefor
US20050031197A1 (en) * 2000-10-04 2005-02-10 Knopp David E. Method and apparatus for producing digital orthophotos using sparse stereo configurations and external models

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Kurzere Entwicklungszeiten mit automischer Codegenerierung" in Automotive Engineering Partners; Vieweg GmbH, Verlag Friedrich & Sohn Verlagsgeslischaft mbH in den GWV Fachverlagen GmbH, May 1999.

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11346538B1 (en) * 2021-05-17 2022-05-31 Sikai Chen LED lighting module with electrical power and data connections

Also Published As

Publication number Publication date
WO2002006950A2 (en) 2002-01-24
WO2002006950A3 (en) 2003-12-31
JP2004521402A (en) 2004-07-15
US20040205756A1 (en) 2004-10-14
DE10034869A1 (en) 2002-02-07
EP1402362A2 (en) 2004-03-31

Similar Documents

Publication Publication Date Title
US5850535A (en) Roll-back during regeneration on a computer-aided design system
US5303170A (en) System and method for process modelling and project planning
US20050223295A1 (en) Method for the creation of sequences for testing software
Hanselmann Automotive control: from concept to experiment to product
US10095194B2 (en) Method for configuring a test device set up for testing an electronic control unit
JP2014529795A (en) How to create control unit functions
US8781609B2 (en) Signal processing network
US5974346A (en) Method for controlling technical processes
US7231261B2 (en) Method for automatically obtaining an operational sequence of processes and a tool for performing such method
JP2020057385A (en) Method of changing model for source code creation
Kleinjohann et al. Towards a complete design method for embedded systems using predicate/transition-nets
Hanselmann et al. Production quality code generation from Simulink block diagrams
US8850386B2 (en) Method for estimating resource consumption in the generation of a control device program code
US20180074470A1 (en) Apparatus and method for generating program
CN115836257A (en) Method for controlling an automation system having a visualization function for program objects of a control program of the automation system, and automation system
Hanselmann Development speed-up for electronic control systems
US8707256B2 (en) System for writing a simulation program
JP2013161219A (en) Code generation device and code generation program
CN112204526A (en) Method for configuring an automation system
US20040163078A1 (en) Method for rapidly prototyping, testing and verifying application software
Conrad et al. Towards a methodology for the design of hybrid systems in automotive electronics
Kemmler et al. Comparison of Taguchi Method and Robust Design Optimization (RDO): by application of a functional adaptive simulation model for the robust product-optimization of an adjuster unit
CN106716422B (en) Method for modeling a motor vehicle using time dispersion
Erkkinen Model style guidelines for production code generation
US20230229403A1 (en) Method for generating source code

Legal Events

Date Code Title Description
AS Assignment

Owner name: SIEMENS AKTIENGESELLSCHAFT, GERMANY

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BERENTROTH, LUTZ;HOELZL, STEFAN;WELLNFHOFER, HLMUT;REEL/FRAME:013920/0169;SIGNING DATES FROM 20021216 TO 20021218

AS Assignment

Owner name: SIEMENS AKTIENGESELLSCHAFT, GERMANY

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE SPELLING OF THE THIRD INVENTORS LAST NAME AND CORRECT THE EXECUTION DATES OF THE ASSIGNOR'S PREVIOUSLY RECORDED ON REEL 013920 FRAME 0169;ASSIGNORS:BERENTROTH, LUTZ;HOELZL, STEFAN;WELLNHOFER, HELMUT;REEL/FRAME:014498/0732;SIGNING DATES FROM 20030110 TO 20030116

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: CONTINENTAL AUTOMOTIVE GMBH, GERMANY

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SIEMENS AKTIENGESELLSCHAFT;REEL/FRAME:027263/0068

Effective date: 20110704

FPAY Fee payment

Year of fee payment: 8

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12

AS Assignment

Owner name: VITESCO TECHNOLOGIES GMBH, GERMANY

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CONTINENTAL AUTOMOTIVE GMBH;REEL/FRAME:053383/0507

Effective date: 20200601