# US 7,757,018 B2 · Sequencing control of simultaneously executed forbidden pairs of first and second functions on at least two interacting devices based on priority

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,757,018 B2
- Document ID: US7757018B2
- Status: Granted
- Kind: B2
- Application number: 11/986,542
- Filed: 2007-11-20
- Published: 2009-04-23
- Granted: 2010-07-13
- Earliest claimed: 2004-03-31
- Assignees: Robert Bosch GmbH
- Inventors: Hans Hillner; Klaus Herz; Lu Chen; Michael Ebert; Timo Koenig
- Web page: https://patentgrep.com/patent/US7757018B2

## CPC

- G05B 19/0421: {Multiprocessor system}
- G06F 9/52: Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G05B 2219/2222: Use of priority levels for gaining access to resources
- G05B 2219/24063: Select signals as function of priority, importance for diagnostic
- G05B 2219/2623: Combustion motor
- G05B 2219/35283: Plausibility check for function, program, inhibit dangerous, unallowed program
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for controlling the sequence of a plurality of functions which are executable on at least two interacting devices is provided, first of the functions being implemented on a first device and the second of the functions being implemented on a second device. A system for implementing the method is provided, including an administrative unit which controls a sequence of the functions in such a manner that it prevents a first function and a second function which interfere with one another from simultaneously running.

## Claims

### Claim 1

A method for controlling a sequence of a plurality of functions which are implemented on at least two interacting devices, a first group of functions being assigned to be implemented on a first interacting device and a second group of functions being assigned to be implemented on a second interacting device, the method comprising:
(a) defining at least one forbidden pair of functions, wherein the forbidden pair includes a first function from the first group and a second function from the second group, and wherein at least one of the first function and the second function interferes with the other when simultaneously executed;
(b) assigning each function of the first group of functions a priority value;
(c) selecting, among the first group of functions, at least two functions having the highest priority values, wherein if the second function of the forbidden pair is currently being executed, the first function of the forbidden pair is eliminated from the at least two selected functions among the first group of functions;
(d) identifying a single function from the at least two selected functions among the first group of functions; and
(e) starting execution of the single function identified in step (d).

### Claim 2 (depends on 1)

The method as recited in claim 1, wherein the steps (b), (c), and (d) are implemented by an administrative unit common to the first and the second interacting devices.

### Claim 3 (depends on 1)

The method as recited in claim 1, wherein a first administrative unit of the first interacting device executes the steps (b), (c), and (d), and wherein a second administrative unit of the second interacting device performs:
(b′) assigning each function of the second group of functions a priority value;
(c′) selecting, among the second group of functions, at least two functions having the highest priority values, wherein if the first function of the forbidden pair is currently being executed, the second function of the forbidden pair is eliminated from the at least two selected functions among the second group of functions;
(d′) identifying a single function from the at least two selected functions among the second group of functions; and
(e′) starting execution of the single function identified in step (d′).

### Claim 4 (depends on 3)

The method as recited in claim 3, wherein if the single function in step (d) and the single function in step (d′) are simultaneously identified, it is checked whether the functions identified in steps (d) and (d′) form the forbidden pair, and if so, execution of only one of the functions identified in steps (d) and (d′) is started.

### Claim 5 (depends on 3)

The method as recited in claim 3, wherein each of the first and second administrative units reports to the other administrative unit an occurrence of:
the single function started in one of step (e) and step (e′) forming the forbidden pair with at least one function assigned to be implemented by the other respective administrative unit; and
the termination of the single function started in one of step (e) and step (e′).

### Claim 6 (depends on 5)

The method as recited in claim 5, wherein each of the first and second administrative units reports to the other administrative unit an intended start of the single function in one of step (e) and step (e′) which forms the forbidden pair with at least one function assigned to be implemented by the other respective administrative unit.

### Claim 7 (depends on 3)

The method as recited in claim 3, wherein an equipment is controlled by the first and second interacting devices, and wherein the first group of functions and the second group of functions interact with the equipment.

### Claim 8 (depends on 7)

The method as recited in claim 7, wherein in step (c), for each function of the first group, and in step (c′), for each function of the second group, it is determined on the basis of selected operating parameters of the equipment whether the function is executable, and wherein functions which have the highest priority values and are determined to be executable are selected.

### Claim 9 (depends on 8)

The method as recited in claim 8, wherein at least one function of the first group and the second group is a diagnostic function, and wherein one of an operating mode and a component of the equipment is checked by execution of the diagnostic function.

### Claim 10 (depends on 9)

The method as recited in claim 9, wherein a characteristic of the one of the operating mode and the component of the equipment detected by the executed diagnostic function is used for assigning a priority value to a function in one of step (b) and step (b′).

### Claim 11 (depends on 10)

The method as recited in claim 10, wherein at least one of the first and second administrative units only reports to the other administrative unit the characteristic of the one of the operating mode and the component of the equipment used for assigning a priority value to a function in one of step (b) and step (b′).

### Claim 12 (depends on 9)

The method as recited in claim 9, wherein when an error is detected during the execution of the diagnostic function, at least one additional diagnostic function is executed in order to verify a presence of at least one of a plurality of causes.

### Claim 13 (depends on 12)

The method as recited in claim 12, wherein the priority value of the at least one additional diagnostic function is set high in order to immediately start the at least one additional diagnostic function.

### Claim 14 (depends on 3)

The method as recited in claim 3, wherein a priority value of an executed function is lowered immediately after the execution.

### Claim 15

A system for controlling a sequence of a plurality of functions implemented on at least two interacting devices, comprising:
a first interacting device and a second interacting device, wherein a first group of functions are assigned to be implemented on the first interacting device and a second group of functions are assigned to be implemented on the second interacting device; and
at least one administrative unit configured to:
store an identification of at least one defined forbidden pair of functions, the forbidden pair including a first function from the first group and a second function from the second group, wherein at least one of the first functions and the second function interferes with the other when simultaneously executed;
assign each function of the group of functions a priority value;
select, among the first group of functions, at least two functions having the highest priority values, wherein, if the second function of the forbidden pair is currently being executed, the first function of the forbidden pair is eliminated from the at least two selected functions among the first group of functions;
identify a single function from the at least two selected functions among the first group of functions; and
start execution of the identified single function.

### Claim 16 (depends on 15)

The system as recited in claim 15, wherein the first interacting device includes at least a portion of a first microcontroller, and wherein the second interacting device includes at least a portion of a second microcontroller, and wherein the administrative unit is implemented in one of the first and second microcontrollers.

### Claim 17 (depends on 16)

The system as recited in claim 16, wherein the first microcontroller and the second microcontroller are identical.

### Claim 18 (depends on 16)

The system as recited in claim 16, further comprising:
an intermediate buffer connected to the at least one administrative unit for temporarily storing a status message generated by the at least one administrative unit.

### Claim 19 (depends on 16)

The system as recited in claim 16, further comprising:
an equipment controlled by the first and second interacting devices.

### Claim 20 (depends on 19)

The system as recited in claim 19, wherein the equipment is an internal combustion engine.

### Claim 21 (depends on 16)

The system as recited in claim 16, further comprising:
a CAN bus for connecting the first and second interacting devices.
