IP Library Granted Patent US 7,506,090
Granted Patent B2
US 7,506,090 · App. 11/453,119 · Granted Mar 17, 2009

System and method for user-configurable resource arbitration in a process control system

Assignee: Honeywell International Inc.
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 7,506,090
App. No.
11/453,119
Granted
Mar 17, 2009
Kind
B2
Abstract

A system includes at least one memory and at least one processor. The at least one memory is operable to store a resource object associated with a resource. The at least one memory is also operable to store a plurality of requester objects associated with at least a portion of one or more processes. The one or more processes are associated with production of one or more products using the resource. The at least one processor is operable to arbitrate between multiple arbitration requests from multiple ones of the requester objects. Each arbitration request indicates that one of the requester objects is attempting to acquire the resource object so that the associated resource is used to produce one of the products. The at least one processor is operable to use one or more user-defined strategies to arbitrate between the multiple arbitration requests.

Claims (102)

1. A system, comprising:

at least one memory operable to store (i) a resource object associated with a resource and (ii) a plurality of requester objects associated with at least a portion of one or more processes, the one or more processes associated with production of one or more products using the resource; and

at least one processor operable to arbitrate between multiple arbitration requests from multiple ones of the requester objects, each arbitration request indicating that one of the requester objects is attempting to acquire the resource object so that the associated resource is used to produce one of the products, the at least one processor operable to use one or more user-defined strategies to arbitrate between the multiple arbitration requests;

wherein at least one of the requester objects is operable to repeatedly submit arbitration requests to the resource object until the resource object is acquired;

wherein the repeated arbitration requests by one of the requester objects do not cause multiple acquisitions of the resource object by the requester object and do not require multiple releases of the resource object by the requester object; and

wherein the at least one processor is further operable to generate a graphical user interface showing contents of (i) a queue identifying requester objects that have requested and not yet acquired the resource object and (ii) a pointer identifying the requester object that has acquired and not released the resource object, wherein the contents of the queue and the pointer are modifiable by a user.

2. The system of claim 1 , wherein the one or more user-defined strategies comprise at least one of:

a priority associated with each of the requester objects;

a maximum number of requester objects that can concurrently own the resource object; and

a user-defined queue associated with the resource object, the queue having a user-defined number of entries.

3. The system of claim 1 , wherein the one or more user-defined strategies comprise at least one of:

a number of times that each requester object is operable to submit arbitration requests to the resource object; and

a time period between submissions of arbitration requests to the resource object.

4. The system of claim 1 , wherein:

the resource object comprises a plurality of resource function blocks; and

the requester objects comprise a plurality of requester function blocks.

5. The system of claim 4 , wherein:

at least one of the requester function blocks is incorporated into a first function block; and

at least one of the resource function blocks is incorporated into a second function block.

6. The system of claim 5 , wherein:

the first function block comprises a recipe control module associated with a procedure for producing a batch of one of the products, the procedure comprising a plurality of phases; and

the second function block comprises at least one of:

a unit control module associated with a piece of processing equipment; and

a sequential control module operable to implement one of the phases.

7. The system of claim 6 , wherein:

the recipe control module is operable to acquire the unit control module to initiate production of the batch of the product using the piece of processing equipment; and

the recipe control module is operable to acquire the sequential control module to initiate execution of one of the phases.

8. The system of claim 7 , wherein:

multiple recipe control modules are operable to request acquisition of the unit control module; and

the unit control module comprises:

the pointer, which is operable to identify the recipe control module that has acquired the unit control module; and

the queue, which is operable to identify one or more recipe control modules waiting to acquire the unit control module.

9. The system of claim 8 , wherein:

multiple phases of one of the recipe control modules are operable to request acquisition of the sequential control module; and

the sequential control module comprises a second queue operable to identify one or more phases waiting to acquire the sequential control module.

10. The system of claim 9 , wherein:

the graphical user interface is associated with the unit control module; and

contents of the second queue are viewable by the user using a second graphical user interface associated with the sequential control module.

11. The system of claim 9 , wherein the one or more user-defined strategies comprise at least one of:

a size of the queue in the unit control module;

a size of the second queue in the sequential control module; and

an indication whether the sequential control module comprises a dedicated sequential control module, an exclusive use sequential control module, or a non-exclusive use sequential control module.

12. The system of claim 3 , wherein the function blocks are distributed over multiple controllers in a process control system.

13. The system of claim 1 , wherein the at least one processor is operable to arbitrate between the multiple arbitration requests in a real-time manner by providing predictable and guaranteed worst-case response times.

14. A method, comprising:

creating a resource object associated with a resource;

creating a plurality of requester objects associated with at least a portion of one or more processes, the one or more processes associated with production of one or more products using the resource;

submitting arbitration requests from the plurality of requester objects to the resource object, each arbitration request indicating that one of the requester objects is attempting to acquire the resource object so that the associated resource is used to produce one of the products;

arbitrating between multiple arbitration requests from multiple ones of the requester objects using one or more user-defined strategies; and

generating a graphical user interface showing contents of (i) a queue identifying requester objects that have requested and not yet acquired the resource object and (ii) a pointer identifying the requester object that has acquired and not released the resource object, wherein the contents of the queue and the pointer are modifiable by a user;

wherein submitting the arbitration requests comprises at least one of the requester objects repeatedly submitting arbitration requests to the resource object until the resource object is acquired; and

wherein the repeated arbitration requests by one of the requester objects do not cause multiple acquisitions of the resource object by the requester object and do not require multiple releases of the resource object by the requester object.

15. The method of claim 14 , wherein the one or more user-defined strategies comprise at least one of:

a priority associated with each of the requester objects;

a maximum number of requester objects that can concurrently own the resource object; and

a user-defined queue associated with the resource object, the queue having a user-defined number of entries.

16. The method of claim 14 , wherein the one or more user-defined strategies comprise at least one of:

a number of times that each requester object is operable to submit arbitration requests to the resource object; and

a time period between submissions of arbitration requests to the resource object.

17. The method of claim 14 , wherein:

the resource object comprises a plurality of resource function blocks; and

the requester objects comprise a plurality of requester function blocks.

18. The method of claim 17 , further comprising:

incorporating at least one of the requester function blocks into a first function block; and

incorporating at least one of the resource function blocks into a second function block.

19. The method of claim 18 , wherein:

the first function block comprises a recipe control module associated with a procedure for producing a batch of one of the products, the procedure comprising a plurality of phases; and

the second function block comprises at least one of:

a unit control module associated with a piece of processing equipment; and

a sequential control module operable to implement one of the phases.

20. The method of claim 19 , further comprising:

acquiring the unit control module by the recipe control module to initiate production of the batch of the product using the piece of processing equipment; and

acquiring the sequential control module by the recipe control module to initiate execution of one of the phases.

21. The method of claim 20 , wherein:

submitting the arbitration requests comprises:

multiple recipe control modules requesting acquisition of the unit control module; and

multiple phases of one of the recipe control modules requesting acquisition of the sequential control module;

the unit control module comprises:

the pointer, which is operable to identify the recipe control module that has acquired the unit control module; and

the queue, which is operable to identify one or more recipe control modules waiting to acquire the unit control module; and

the sequential control module comprises a second queue operable to identify one or more phases waiting to acquire the sequential control module.

22. The method of claim 21 , wherein the graphical user interface is associated with the unit control module; and

further comprising providing contents of the second queue for viewing by the user using a second graphical user interface associated with the sequential control module.

23. The method of claim 21 , wherein the one or more user-defined strategies comprise at least one of:

a size of the queue in the unit control module;

a size of the second queue in the sequential control module; and

an indication whether the sequential control module comprises a dedicated sequential control module, an exclusive use sequential control module, or a non-exclusive use sequential control module.

24. A computer program embodied on a computer readable medium, the computer program comprising computer readable program code for:

creating a resource object associated with a resource;

creating a plurality of requester objects associated with at least a portion of one or more processes, the one or more processes associated with production of one or more products using the resource;

arbitrating between multiple arbitration requests from multiple ones of the requester objects using one or more user-defined strategies, each arbitration request indicating that one of the requester objects is attempting to acquire the resource object so that the associated resource is used to produce one of the products; and

generating a graphical user interface showing contents of (i) a queue identifying requester objects that have requested and not yet acquired the resource object and (iii a pointer identifying the requester object that has acquired and not released the resource object, wherein the contents of the queue and the pointer are modifiable by a user;

wherein at least one of the requester objects is operable to repeatedly submit arbitration requests to the resource object until the resource object is acquired; and

wherein the repeated arbitration requests by one of the requester objects do not cause multiple acquisitions of the resource object by the requester object and do not require multiple releases of the resource object by the requester object.

25. The system of claim 1 , wherein the resource object is associated with:

a first memory space operable to store one or more constant values associated with all of the requester objects; and

a plurality of second memory spaces each operable to store one or more variable values associated with one of the requester objects.

26. The system of claim 1 , wherein:

each requester object is associated with a priority;

arbitration requests from at least some of the requester objects are stored in a queue associated with the resource object and sorted in the queue based on priority;

at least one of the requester obj ects is operable to re-submit its arbitration request using a different priority; and

the at least one processor is operable to update the arbitration request from the at least one requester object using the different priority and to re-sort the arbitration requests in the queue.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2006
From: RUDNICK, JUERGEN; ZHAO, JIANHUA
To: HONEYWELL INTERNATIONAL INC.
Reel/Frame 017981/0755 →
Continuity (1)
Related Publication 20070294450A1 · Dec 20, 2007