IP Library Granted Patent US 9,665,089
Granted Patent B2
US 9,665,089 · App. 14/601,869 · Granted May 30, 2017

Method and apparatus for advanced control using function blocks in industrial process control and automation systems

Inventors: James M. Schreder (Lansdale, PA); Muslim Gulam Kanji (Orefield, PA)
Assignee: Honeywell International Inc.
G05B19/41835G05B2219/39266G06Q10/06Y02P90/02
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,665,089
App. No.
14/601,869
Granted
May 30, 2017
Kind
B2
Abstract

A method includes executing a first function block configured to (i) receive multiple input data values associated with an industrial process control and automation system, (ii) pre-process the input data values, and (iii) store the pre-processed input data values in a shared memory. The method also includes executing a second function block configured to (i) receive references to the pre-processed input data values in the shared memory, (ii) invoke execution of one or more core functions to implement a process control algorithm, and (iii) store output data values in the shared memory. The method further includes executing a third function block configured to (i) receive references to the output data values in the shared memory, (ii) post-process the output data values, and (iii) output multiple output signals containing the post-processed output data values.

Claims (53)

1. A method comprising:

executing a first function block configured to (i) receive multiple input data values associated with an industrial process control and automation system, (ii) pre-process the input data values, and (iii) store the pre-processed input data values in a shared memory;

executing a second function block configured to (i) receive references to the pre-processed input data values in the shared memory, (ii) invoke execution of one or more core functions to implement a process control algorithm, and (iii) store output data values in the shared memory; and

executing a third function block configured to (i) receive references to the output data values in the shared memory, (ii) post-process the output data values, and (iii) output multiple output signals containing the post-processed output data values.

2. The method of claim 1 , wherein:

the first, second, and third function blocks are executed within a foreground task of a control execution environment; and

the one or more core functions are executed within a background task of the control execution environment.

3. The method of claim 2 , wherein:

the control execution environment supports repeating execution cycles;

an amount of execution time for the foreground task varies in the execution cycles; and

an amount of execution time for the background task in each execution cycle depends on the amount of execution time for the foreground task in that execution cycle.

4. The method of claim 2 , wherein the background task remains dormant until execution of the background task is triggered by the foreground task.

5. The method of claim 4 , wherein the foreground task is configured to identify an execution time for the background task and to halt the execution of the background task if the execution of the background task is not completed when the execution time expires.

6. The method of claim 2 , wherein the control execution environment supports multiple semaphores to control access to the shared memory, one semaphore owned by the foreground task, another semaphore owned by the background task.

7. The method of claim 1 , wherein:

the first, second, and third function blocks form a component block that is executed by a process controller; and

the process controller is configured to execute multiple component blocks.

8. The method of claim 7 , further comprising:

defining a memory space in the shared memory for each of the component blocks.

9. An apparatus comprising:

at least one memory device comprising a shared memory; and

at least one processing device configured to:

during execution of a first function block, (i) receive multiple input data values associated with an industrial process control and automation system, (ii) pre-process the input data values, and (iii) store the pre-processed input data values in the shared memory;

during execution of a second function block, (i) receive references to the pre-processed input data values in the shared memory, (ii) invoke execution of one or more core functions to implement a process control algorithm, and (iii) store output data values in the shared memory; and

during execution of a third function block, (i) receive references to the output data values in the shared memory, (ii) post-process the output data values, and (iii) outputting multiple output signals containing the post-processed output data values.

10. The apparatus of claim 9 , wherein:

the at least one processing device is configured to execute the first, second, and third function blocks within a foreground task of a control execution environment; and

the at least one processing device is configured to execute the one or more core functions within a background task of the control execution environment.

11. The apparatus of claim 10 , wherein:

the at least one processing device is configured to vary an amount of execution time for the foreground task in each of multiple execution cycles; and

the at least one processing device is configured to set an amount of execution time for the background task in each execution cycle based on the amount of execution time for the foreground task in that execution cycle.

12. The apparatus of claim 10 , wherein the background task is configured to remain dormant until execution of the background task is triggered by the foreground task.

13. The apparatus of claim 12 , wherein the foreground task is configured to identify an execution time for the background task and to halt the execution of the background task if the execution of the background task is not completed when the execution time expires.

14. The apparatus of claim 10 , wherein the control execution environment is configured to support multiple semaphores to control access to the shared memory, one semaphore owned by the foreground task, another semaphore owned by the background task.

15. The apparatus of claim 9 , wherein:

the first, second, and third function blocks form a component block; and

the at least one processing device is configured to execute multiple component blocks.

16. The apparatus of claim 15 , wherein the at least one processing device is further configured to define a memory space in the shared memory for each component block.

17. A non-transitory computer readable medium embodying at least one computer program, the at least one computer program comprising:

computer readable program code that defines a first function block configured to (i) receive multiple input data values associated with an industrial process control and automation system, (ii) pre-process the input data values, and (iii) store the pre-processed input data values in a shared memory;

computer readable program code that defines a second function block configured to (i) receive references to the pre-processed input data values in the shared memory, (ii) invoke execution of one or more core functions to implement a process control algorithm, and (iii) store output data values in the shared memory; and

computer readable program code that defines a third function block configured to (i) receive references to the output data values in the shared memory, (ii) post-process the output data values, and (iii) output multiple output signals containing the post-processed output data values.

18. The non-transitory computer readable medium of claim 17 , wherein:

the at least one computer program further comprises computer readable program code that defines a foreground task and a background task of a control execution environment;

the foreground task is configured to execute the first, second, and third function blocks; and

the background task is configured to execute the one or more core functions.

19. The non-transitory computer readable medium of claim 18 , wherein:

an amount of execution time for the foreground task varies in each of multiple execution cycles; and

an amount of execution time for the background task in each execution cycle depends on the amount of execution time for the foreground task in that execution cycle.

20. The non-transitory computer readable medium of claim 18 , wherein:

the background task is configured to remain dormant until execution of the background task is triggered by the foreground task;

the foreground task is configured to identify an execution time for the background task and to halt the execution of the background task if the execution of the background task is not completed when the execution time expires; and

the control execution environment is configured to support multiple semaphores to control access to the shared memory, one semaphore owned by the foreground task, another semaphore owned by the background task.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2015
From: SCHREDER, JAMES M.; KANJI, MUSLIM GULAM
To: HONEYWELL INTERNATIONAL INC.
Reel/Frame 034776/0954 →
Continuity (1)
Related Publication 20160209834A1 · Jul 21, 2016