Claims
- 1. A controller capable of being employed in a distributed control system, wherein the distributed control system controls operations of a plurality of devices that operate together to perform a process, the controller comprising:
at least one processing component configured to perform a first plurality of program portions that operate in relation with one another as a first agent, the plurality of program portions including
a first program portion that controls agent-type behavior of the controller; and a second program portion that at least one of controls and monitors at least one of the devices; and at least one memory component that stores a data table that is accessed by each of the first and second program portions to allow communication between the first and second program portions.
- 2. The controller of claim 1, wherein actuator signals generated by the second program portion for controlling one of the devices are communicated to the device by way of the data table, and wherein sensor signals generated by the device are communicated to the second program portion by way of the data table.
- 3. The controller of claim 1, wherein the second program portion is written in a ladder logic format.
- 4. The controller of claim 1, wherein at least a portion of the first program portion is written in a first language selected from the group consisting of C++, JAVA and another high-level programming language, and is capable of generating script-type messages in a second language selected from the group consisting of JDL, KQML and XML.
- 5. The controller of claim 1, wherein the agent-type behavior includes at least one of submitting requests for bids, and submitting bids, to other agents.
- 6. The controller of claim 1, wherein messages communicated between the first agent and other agents include a FIPA ACL wrapper.
- 7. The controller of claim 1, wherein the data table provides an array of memory locations that can be monitored and modified by each of the first and second program portions, and wherein monitoring of the data table occurs by at least one of direct polling and event-driven mechanisms.
- 8. The controller of claim 1, wherein the first program portion is capable of modifying values stored in the data table, wherein the second program portion is capable of monitoring the values and capable of responding to changes occurring in the values, and wherein in at least some circumstances data table changes are affected by a priority of events.
- 9. The controller of claim 1, wherein the second program portion is capable of modifying values stored in the data table, and the first program portion is capable of monitoring the values and capable of responding to changes occurring in the values.
- 10. The controller of claim 9, wherein the second program portion provides a thread to the first program portion whenever the second program portion modifies the values, in order to notify the first program portion that the modifications have occurred.
- 11. The controller of claim 1, wherein the controller is one of an industrial controller and an industrial computer.
- 12. The controller of claim 1, further comprising:
a third program portion performed by the at least one processing component, wherein the third program portion at least one of controls and monitors a different one of the devices than the at least one device.
- 13. The controller of claim 12, further comprising:
a fourth program portion performed by the at least one processing component, wherein the fourth program portion controls additional agent-type behavior of the controller associated with a second agent, and wherein the fourth program portion is in communication with the third program portion by way of at least one of the first data table and a second data table.
- 14. The controller of claim 1, further comprising:
a third program portion performed by the at least one processing component, wherein the third program portion controls additional agent-type behavior of the controller associated with a second agent, and wherein the third program portion is in communication with at least one of the second program portion and a fourth program portion by way of at least one of the first data table and a second data table.
- 15. The controller of claim 1, wherein the first program portion includes at least one of a planner portion, an execution controller portion, a diagnostics portion, an equipment model portion, an application-specific agent scripts portion and a generic interface program, wherein the programs are capable of interacting with one another and deploying industrial based firmware software and communication networks to fulfill control actions.
- 16. A distributed control system for controlling a distributed process performed by a plurality of devices, the distributed control system comprising:
a first controller including a first processing component, wherein the first processing component is configured to perform
a first program portion governing first agent-type behavior of a first agent implemented on the first controller, and a second program portion governing operation of at least a first of the devices; and a second controller including a second processing component, wherein the second processing component is configured to perform
a third program portion governing second agent-type behavior of a second agent implemented on the second controller, and a fourth program portion governing operation of at least a second of the devices; wherein the first and second controllers are in communication by way of a network; and wherein the first program portion is in communication with the second program portion by way of a first data table, and the third program portion is in communication with the fourth program portion by way of a second data table.
- 17. The distributed control system of claim 16, wherein each of the second and fourth program portions is written in a ladder logic format.
- 18. The distributed control system of claim 16, wherein each of the first and third program portions is capable of generating and processing messages written in a language selected from the group consisting of JDL, XML and KQML.
- 19. The distributed control system of claim 18, wherein the messages generated and processed by the first controller and the third controller are wrapped in FIPA ACL information.
- 20. The distributed control system of claim 16, further comprising a means for communicating with a third controller of an external organization, wherein the third controller includes a third processing component, wherein the third processing component is configured to perform a fifth program portion governing agent-type behavior.
- 21. The distributed control system of claim 16, wherein the first program portion includes at least one of a planner portion, an execution controller portion, a diagnostics portion, an equipment model portion, an application-specific agent scripts portion and a generic interface portion.
- 22. The distributed control system of claim 16, wherein the first and second agent-type behavior includes conducting negotiations with other agents.
- 23. The distributed control system of claim 16, wherein first communications between the second program portion and the first device also occur by way of the first data table, and second communications between the fourth program portion and the second device also occur by way of the second data table.
- 24. In a controller of a distributed control system, wherein the distributed control system operates to control a plurality of devices to perform a process, a method of communicating information between a first program portion and a second program portion, the method comprising:
providing a data table that is accessible by each of the first and second program portions, wherein the first program portion is configured to govern agent-type behavior of the controller and the second program portion is configured to at least one of control and monitor a first device of the plurality of devices; sending first data from one of the first and second program portions to modify a value of the data table; and providing the modified value of the data table to the other of the first and second program portions, wherein the other of the first and second program portions experiences a change in its operation in response to the modified value.
- 25. The method of claim 24, further comprising:
generating a thread between the first and second program portions when the modifying of the value has occurred.
- 26. The method of claim 24, further comprising communicating second data between the device and the first program portion by way of the data table.
- 27. The method of claim 24, wherein the program portion that receives the modified value is the first program portion that governs agent-type behavior, and wherein the modified value is representative of at least one of a piece of data and an event.
- 28. The method of claim 27, wherein in response to receiving the modified value, the first program portion matches the modified value with an application-specific script.
- 29. The method of claim 27, wherein in response to receiving the modified value, the first program portion performs at least one action including at least one of the following:
sends at least one of an additional piece of data and an additional event to the data table to cause a change in operation of at least one of the first program portion and an external device; and modifies an operation in relation to another agent other than a first agent including the first and second program portions.
- 30. The method of claim 27, wherein the action is performed by one of a planner and an execution controller based upon an application-specific agent script.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation-in-part of U.S. patent application Ser. No. 10/737,384 filed on Dec. 16, 2003 and entitled “Decentralized Autonomous Control for Complex Fluid Distribution Systems”, which is based on provisional application 60/433,892 filed Dec. 16, 2002 and entitled “Agent-Based Active Diagnostics System for Complex Distribution Networks”, each of which is hereby incorporated by reference herein, and claims the benefit thereof.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60433892 |
Dec 2002 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
10737384 |
Dec 2003 |
US |
Child |
10808680 |
Mar 2004 |
US |