System for and method of allocating processing tasks of a control program configured to control a distributed control system
First Claim
1. A method for allocating a plurality of programming objects of a control program configured to control a distributed control system, wherein the control system includes a plurality of controller nodes connected to a communications link, and the control program includes program code corresponding to the plurality of programming objects, the plurality of programming objects including virtual objects and non-virtual objects, the method comprising:
- identifying logical relationships among the plurality of programming objects;
identifying a processing resource associated with each controller node;
determining possible allocations of the virtual objects to the controller nodes based on at least the identified processing resources and the logical relationships among the plurality of programming objects;
constructing a graph model representing at least a portion of the possible allocations, the graph model including a first set of vertices representing at least a first portion of the virtual objects, a second set of vertices representing the processing resources compatible with the at least first portion of virtual objects, and a set of edges interconnecting the first and second set of vertices; and
applying a maximum matching algorithm to the graph model to determine an allocation of the at least first portion of virtual objects to the controller nodes.
0 Assignments
0 Petitions
Accused Products
Abstract
A method and system for allocating programming objects of a control program configured to control a distributed control system having a plurality of distributed control modules. A graph model of the distributed control system is constructed which represents all the possible allocations of the control program'"'"'s virtual programming objects to the processing resources associated with the system'"'"'s control modules. A maximum matching algorithm is applied to the graph model to determine an optimum allocation, which, for instance, may be the allocation that provides the maximum benefit. The system and method also provide for intervention by the user to refine or "tune" the allocation process. Further, the system and method provide for iteratively solving the graph matching problem, thus reducing the computation time for allocating the programming objects of a complex distributed control system
-
Citations
36 Claims
-
1. A method for allocating a plurality of programming objects of a control program configured to control a distributed control system, wherein the control system includes a plurality of controller nodes connected to a communications link, and the control program includes program code corresponding to the plurality of programming objects, the plurality of programming objects including virtual objects and non-virtual objects, the method comprising:
-
identifying logical relationships among the plurality of programming objects; identifying a processing resource associated with each controller node; determining possible allocations of the virtual objects to the controller nodes based on at least the identified processing resources and the logical relationships among the plurality of programming objects; constructing a graph model representing at least a portion of the possible allocations, the graph model including a first set of vertices representing at least a first portion of the virtual objects, a second set of vertices representing the processing resources compatible with the at least first portion of virtual objects, and a set of edges interconnecting the first and second set of vertices; and applying a maximum matching algorithm to the graph model to determine an allocation of the at least first portion of virtual objects to the controller nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for configuring a distributed control system, wherein the system includes a plurality of control modules communicating via a communications link, and each control module includes a memory circuit for storing program code corresponding to at least one of a plurality of programming objects of a control program configured to control the distributed control system, the method comprising:
-
identifying logical relationships among the plurality of programming objects; identifying a processing resource associated with each control module; determining possible allocations of the programming objects to the control modules based on at least the identified processing resources and the logical relationships among the plurality of programming objects; constructing a graph model representing at least a portion of the possible allocations, the graph model including a first set of vertices representing at least a first portion of the programming objects, a second set of vertices representing the processing resources compatible with the at least first portion of programming objects, and a set of edges interconnecting the first and second set of vertices; applying a maximum matching algorithm to the graph model to determine an allocation of the at least first portion of programming objects to the controller nodes; partitioning the program code of the control program based on the allocation; and storing the partitioned program code in the memory circuits of the control modules, wherein the program code stored in a particular memory circuit corresponds to the programming object allocated to the respective control module. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A distributed control system, comprising:
-
a host controller including a memory to store a control program, the control program including program code corresponding to a plurality of programming objects having logical interrelationships; and a plurality of control modules in communication with the host controller via a communications link, each of the control modules having a processing capability sufficient to execute the program code associated with at least one of the programming objects; wherein the host controller is configured to determine possible allocations of the programming objects to the control modules based at least on the logical interrelationships of the programming objects and the processing capabilities of the control modules, and the host controller is further configured to execute a maximum matching algorithm on the possible allocations to determine a resulting allocation of at least a portion of the programming objects to the control modules. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
-
35. A method for allocating a plurality of programming objects of a control program configured to control a distributed control system, wherein the control system includes a host controller and a plurality of controller nodes connected to a communications link, and the control program includes program code corresponding to the plurality of programming objects, the plurality of programming objects including virtual objects, the method comprising:
-
providing data files accessible to the host controller, the data files containing information regarding processing capabilities associated with each of said plurality of controller nodes; identifying a processing resource associated with each of said plurality of controller nodes; determining possible allocations of the virtual objects to the controller nodes by applying allocation rules; constructing a graph model representing at least a portion of the possible allocations; assigning a weight to at least a set of edges of the graph model; applying a weighted maximum matching algorithm to the graph model to determine allocations of at least a portion of the virtual objects to processing resources; and preparing assignments of the allocations of the at least a portion of the virtual objects to processing resources for partitioning the program code to the plurality of controller nodes. - View Dependent Claims (36)
-
Specification