Claims
- 1. A controller configured to operate as at least one agent, the controller comprising:
at least one processing device; and at least one storage medium that is in communication with the at least one processing device, wherein the at least one storage medium stores a plurality of program portions that are executed by the at least one processing device, and wherein the plurality of program portions includes
a first program portion capable of generating first signals that are commands to be provided to a controlled device; and a second program portion capable of governing standard agent-type functionality; and a third program portion capable of governing application-specific agent-type functionality.
- 2. The controller of claim 1, wherein the controlled device is utilized to perform a portion of an industrial process, the controller is an industrial controller, and the first program portion is a control program portion.
- 3. The controller of claim 2, wherein the control program portion is written in ladder logic code.
- 4. The controller of claim 1, wherein the plurality of program portions additionally includes a fourth program portion that is base firmware stored in a read-only memory of the at least one storage medium, and wherein the base firmware is capable of receiving the first signals from the first program and formatting the first signals for transmission to the controlled device.
- 5. The controller of claim 1, wherein the second program portion includes firmware extension programming.
- 6. The controller of claim 1, wherein the second program portion includes a planner that governs at least a portion of the standard agent-type functionality including creating and interpreting bid request messages and bid messages.
- 7. The controller of claim 6, wherein the second program portion includes an execution controller that governs at least a portion of the standard agent-type functionality including translating plans of the planner into commands that can be provided to the first program portion.
- 8. The controller of claim 7, wherein the execution controller also monitors the first program portion and is capable of providing information regarding a status of the first program portion to the planner.
- 9. The controller of claim 8, wherein the monitoring of the first program portion by the execution controller occurs by way of at least one of polling the first program portion, event-driven monitoring, and sensing events that occur in relation to the first program portion.
- 10. The controller of claim 8, wherein the monitoring of the first program portion occurs by way of at least one of a generic interface that is also part of the second program portion and a data table.
- 11. The controller of claim 6, wherein the bid request messages and bid messages include scripts written in a language selected from the group consisting of JDL, XML and KQML.
- 12. The controller of claim 6, wherein the planner includes at least one of parsing/integration programming that allows the planner to process the bid request messages and bid messages, and subcontracting management programming.
- 13. The controller of claim 12, wherein the planner further includes wrapping/unwrapping software for formatting at least some of the bid request messages and the bid messages in accordance with a FIPA protocol.
- 14. The controller of claim 6, wherein the second program portion is in communication with base firmware, wherein the bid request messages and bid messages that are created by the planner are provided to the base firmware, which is capable of formatting at least some of the bid request messages and bid messages for transmission onto a network according to a network protocol selected from the group consisting of Ethernet, ControlNet and DeviceNet.
- 15. The controller of claim 1, wherein the second program portion is capable of governing a downloading of at least some of the third program portion from a source other than the controller during development of a distributed control system of which the controller forms a part.
- 16. The controller of claim 15, wherein the second program portion further allows for remote activation and deactivation at least some of the agent-type functionality of the controller.
- 17. The controller of claim 1, wherein the second program portion operates in a priority-based manner and employs a Common Industrial Protocol, and wherein the controller serves as a bridge device between standard industrial networks and packing protocols and multi-agent system communication languages and logical networks.
- 18. The controller of claim 1 wherein the second program portion includes at least one directory facilitator.
- 19. The controller of claim 18, wherein each directory facilitator is capable of accessing a first data portion in which addresses corresponding to a first plurality of agents are listed, and a second data portion in which capabilities corresponding to a second plurality of agents are listed.
- 20. The controller of claim 19, wherein the second program portion includes both a local directory facilitator and a global directory facilitator, wherein the directory facilitators are permanent and generic components, and wherein the controller has employs any of a variety of protocols to organize intercommunications among the directory facilitators.
- 21. The controller of claim 19, wherein the second program portion includes a capability matcher that is capable of monitoring interactions among agents and identifying related clusters of agents.
- 22. The controller of claim 21, wherein the third program portion includes at least one of application-specific agent scripts portion, a diagnostics portion and an equipment model portion.
- 23. The controller of claim 22, wherein the third program portion includes each of the application-specific agent scripts portion, the diagnostics portion and the equipment model portion, wherein the diagnostics portion is in communication with the first program portion, wherein each of the application-specific agent scripts portion, the diagnostics portion and the equipment model portion is in communication with a planner portion of the second program portion, and wherein the application-specific agent scripts portion is further in communication with an execution controller portion of the second program portion.
- 24. The controller of claim 1, wherein the plurality of program portions further includes a fourth program portion providing an operating system.
- 25. A distributed control system for controlling a process performed by a plurality of controllable devices including first and second controllable devices, the distributed control system comprising:
a network; and first and second controllers coupled to the network, wherein the first and second controllers include first and second processors, respectively, and first and second storage media, respectively; wherein first and second application-specific control programs are stored on the first and second storage media, respectively, the first and second control programs enabling the respective first and second controllers to generate commands to be provided to the first and second controllable devices, respectively; and wherein first and second agent-related programs are additionally stored on the first and second storage media, respectively, the first and second agent-related programs each including agent-type programming to enable the first and second controllers to operate as agents, to communicate with one another via the network, and to interact with the first and second control programs to govern operations of the first and second controllable devices.
- 26. The distributed control system of claim 25, wherein the each of the first and second agent-related programs includes a first portion that provides for generalized agent functionality and a second portion that is specifically configured for operation in relation to at least one of a characteristic of the process, a characteristic of the first and second control programs, respectively, and a characteristic of the first and second controllable devices, respectively.
- 27. The distributed control system of claim 26, wherein the first portion of each of the first and second agent-related programs includes a planner and an execution controller, and the second portion of each of the first and second agent-related programs includes an application-specific agent scripts portion, a diagnostics portion and an equipment model portion.
- 28. The distributed control system of claim 27, wherein each of the planners interacts with at least one of a directory facilitator capable of providing agent address information and agent capability information, a capability matcher, parsing/integration software, and wrapping/unwrapping software.
- 29. A configuration device for enabling an industrial controller to operate as an agent that governs a controllable device, the configuration device comprising:
a storage medium that stores an application-specific agent program portion capable of governing at least some agent-type functionality and an application-specific control program portion capable of generating control signals to be provided to the controllable device; and an interface configured to allow the application-specific agent program portion and the application-specific control program portion to be downloaded onto the industrial controller.
- 30. The configuration device of claim 29, wherein the application-specific agent program portion includes programming providing a diagnostics capability and an equipment model that is written in a language selected from the group consisting of C++, JAVA, and another high-level language.
- 31. The configuration device of claim 29, wherein the application-specific control program portion includes ladder logic code.
- 32. A method of configuring a controller for operation as part of a multi-agent distributed control system that controls a plurality of devices to perform a process, the method comprising:
providing a controller that stores, and is capable of operating in accordance with, first and second program portions,
wherein the first program portion is capable of processing incoming signals received from, and outgoing signals provided onto, a network connected to the controller so that network protocol information appropriate for communicating the signals over the network is removed from or added to the incoming and outgoing signals, respectively, and wherein the second program portion is capable of governing general agent-type functionality of the controller; and supplementing the controller with application-specific control programming and application-specific agent-type programming so that the controller is able to operate as an agent in relation to both other agents of the multi-agent distributed control system and in relation to at least one of the controllable devices.
- 33. The method of claim 32, wherein the second program portion includes a planner that is capable of generating bid request messages and bid messages as the outgoing signals as scripts in a language selected from the group consisting of JDL, XML and KQML.
- 34. The method of claim 32, wherein the supplementing includes at least one of downloading the application-specific control programming and the application-specific agent-type programming onto the controller by way of a communication linkage and coupling an add-on device including the application-specific control programming and the application-specific agent-type programming to the controller.
- 35. A control device comprising:
a processor; and a memory device in communication with the processor, wherein agent-related information is stored on the memory device that includes agent-related programming that can be performed by the processor so that the control device can operate as a first agent, and wherein the agent-related information further includes
first information concerning network addresses of other agents with which the control device is capable of communicating by way of a network; and second information concerning capabilities of the other agents; wherein the control device outputs messages capable of being communicated over the network to at least some of the other agents, and wherein the processor determines the messages that should be output based upon the agent-related programming, the first information and the second information.
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 |
10808772 |
Mar 2004 |
US |