A variety of industrial controllers (or industrial computers) are available for performing a wide variety of commercial and industrial processes including, for example, programmable logic controllers (PLCs). Generally, an industrial controller is a specialized computer having input/output (I/O) circuitry by which the controller is in communication with sensors and actuators on the machines of the industrial process. The industrial controller executes a control program to read inputs from sensors on the machines implementing the process, and based on the values of those inputs and control logic of the control program, produces outputs to actuators to control the process. Industrial controllers are frequently modular in construction, so that the number of input and output circuits and the processor power can be tailored to the demands of the particular process.
Industrial controllers can be implemented using centralized or distributed schemes. In many traditional centralized approaches, a single controller is employed for a variety of purposes, including production control, planning and scheduling and supply chain management. However, the use of such centralized control schemes has become more difficult and inefficient with respect to controlling many modern industrial systems and processes. Many modern industrial systems and processes not only involve high levels of complexity but also need to be highly flexible and dynamically reconfigurable in terms of their organization and manners of operation. Yet it is often difficult to program a single centralized controller so as to achieve effective control over such complex systems and to allow for such flexibility and dynamic reconfigurability of operation by such complex systems.
While centralized control schemes face these limitations, over the past several years it has been recognized that distributed systems technologies, such as service oriented architectures (SOA) or multi-agent systems (MAS), offer powerful methods and techniques for implementing a new generation of flexible and reconfigurable industrial control solutions. In general, such distributed systems employ multiple independent or semi-independent intelligent decision making components (e.g., “intelligent agents,” simply “agents” or sometimes simply “services”) that are each capable of knowledge gathering, reasoning, information exchange, and cooperation with one another based on service matchmaking and negotiation. By way of information and knowledge sharing that occurs among these components, cooperation and coordination among the components can be achieved. At the same time, because the control responsibilities are spread among, and can be shifted among, the different control components, greater flexibility and dynamic reconfigurability is afforded.
Despite the aforementioned advantages of such distributed control systems, it should be recognized that the control components of those systems are still tightly coupled (rather than loosely coupled) with one another in terms of the automated gathering and integration of data, information and knowledge. In particular, specific groups of control components are often configured (or even dedicated) for handling particular tasks associated with different portions or levels of an industrial process. For example, a given group of control components may deal exclusively with the manufacture of a given portion of an overall product being manufactured, deal exclusively with transportation of materials/components between different portions of an assembly line, or deal exclusively with the overall “enterprise management” of a factory while not dealing with more specialized aspects of factory operation.
While the control components within a particular group may have well-developed communication protocols or formats by which the control components of that group can communicate with one another, communications among different groups often is more limited, is far from being open and, indeed, can require human intervention to take place. This is the case because, among other reasons, the distributed systems tend to be programmed with a focus on performing particular tasks rather than on interoperability. Notwithstanding these limitations associated with conventional distributed control systems, there remains a desire to achieve better integration of different portions or operational segments of industrial systems, including different levels of components associated with industrial systems (e.g., those associated with the shop floor level up to those associated with enterprise management).
Accordingly, it would be advantageous if an open system that enabled and facilitated communication and cooperation among distributed control components and groups of such components at a larger scale with less (or without any) human intervention could be developed.