The present invention generally relates to real-time process automation, in particular to the architecture of systems for real-time process control such as highly reliable systems for controlling power electronics applications. Process automation concerns products, services and activities wherein computing hardware, sensors/actuators, and other devices as well as the software thereon are used to automatically monitor, steer and control the behaviour and progress of one or more processes. A process can be the operation of a physical device like a motor, a windmill, a turbine, a machine for producing goods, or of a collection of physical devices. Real-time process automation imposes the additional constraint that the tasks must be completed within a predetermined amount of time.
A prior art system for real-time control of electric drives is described in US Patent Application No. 2002/0049505 A1, entitled “Power Section for Driving an Electric Drive, a Drive Control Based Thereon, and a Method for Networking a Control Unit with One or More Power Sections”. Therein, a master-slave architecture is disclosed whose intelligence for controlling an electric drive is distributed between a central control unit—R in FIG. 1—and power sections located near the electric drives—L1, L2 and L3 in
In general, the known process automation systems contain a mixture of different processor hardware operated in a master-slave configuration. This is illustrated by
The multitude of hardware platforms and the master-slave architecture that inherently form part of prior art process automation systems impose several difficulties. Firstly, the multitude of hardware platforms introduces substantial interfacing overhead in order to enable all hardware platforms to properly communicate with one another. Moreover, it is hard, if not impossible, to use uniform programming standards because each hardware platform has its own peculiarities and limitations. As such, software maintenance proves to be very difficult in the known process automation systems. Another drawback of the master-slave architecture is that the reliability of the system is determined by the reliability of the master. If the master fails, all dependent slaves also fail.
It is further observed that the low level control loops, e.g. for drive control, are usually implemented on DSP processors. This way, the robustness requirements are achieved just as the stringent requirements on the dynamic response are met. For instance, cycle times below 100 microseconds can be realized through DSP based drive control. However, for cost reasons, the DSPs often have limited computational capacity. The computational capacity of these DSPs does not suffice for complex, high performance control algorithms that, for example, involve the coordination of multiple control loops. On the other hand, the system or application often leaves the available capacity of very powerful processors, e.g. PC processors, unused.
One of the main reasons for selecting DSP and PLC processors in favour of more powerful processors is the required reliability for real-time automated process control. Requested uptimes of 99.99% are not exceptional. This reliability requirement especially holds for the lowest control level, i.e. the control loops that directly interact with the hardware.
An alternative system for real-time process control is described in the International (PCT) Patent Application WO 98/36518 entitled “Openbus System for Control Automation Networks Incorporating Fuzzy Logic Control”. The system described in WO 98/36518 is based on client-server communication between sensors or actuators (470 in FIG. 30 of WO 98/36518) on the one hand and a central processor (node controller #1 or 460 in FIG. 30 of WO 98/36518). As is indicated on page 55, lines 26-28, the node controller #1 can be a PC that runs a real-time operating system like UNIX and acts as a control application server.
In WO 98/36518, the central processor still receives the input data from the sensors or actuators via agents and/or an intermediate node controller (node controller #2) acting as an I/O client.
In WO 98/36518, the timing jitter is dependent on the delays of the communication between client and server, and on the time needed by the server to complete execution of the requested computational task. These delays may be an order of magnitude larger than the jitter on the client's side.
It is an objective of the current invention to provide a system for real-time process control which overcomes the aforementioned drawbacks of prior art systems based on the master-slave architecture. In particular, it is an objective of the current invention to disclose a system for real-time process control that avoids distribution of the control intelligence over a multitude of hardware platforms, avoids interfacing overhead between such diverse hardware platforms, and avoids software maintenance difficulties as a result of the diversity in control hardware. In addition, it is an objective to more optimally use the processing capabilities of available powerful signal processing hardware such as PCs without trading reliability in the real-time control processes.
It is a further objective of the current invention to provide a system for real-time process control which overcomes the aforementioned drawbacks of prior art systems based on the client-server architecture. In particular, it is an objective to disclose a system for real-time process control wherein the client decides autonomously on the exact moments of actuation and sensing, making the timing jitter on these operations independent of the jitter on the delays on the communication between client and server, and independent of the jitter on the time needed by the server to complete the requested computational task.
The aforementioned objectives are achieved and the disadvantages of the prior art solutions are resolved through a client-server system for real-time process control as defined by claim 1. Such system has a processing unit, at least one actuating or sensing unit able to communicate with the processing unit and a network interconnecting the processing unit and at least one actuating or sensing unit. The processing unit acts as a real-time computation server and runs a real-time operating system or a hybrid real-time/non real-time operating system. The actuating or sensing units act as clients and have an onboard communication interface for client-server communication with the processing unit through messages requesting timely execution of computational tasks by specifying in the messages implicit or explicit time constraints. The onboard communication interface of the clients comprises a clock enabling the actuating or sensing units to decide autonomously when to sample process parameters, and/or when to modify actuating or sensing unit settings, and/or when to send a message to the processing unit.
In both the above and the remainder of this patent application, an actuating or sensing unit should be understood as a unit that, amongst others, comprises either sensing hardware able to measure certain process characteristics, actuating hardware able to apply certain stimuli to a process, or both.
This way, by configuring the system according to a client-server architecture wherein the actuating or sensing units are clients that send requests for computational tasks but no longer perform the computations themselves, and wherein a processing unit such as a PC acts as computation server, all processing functionality becomes concentrated on a single hardware platform. As a consequence, the interfacing overhead is substantially reduced to a single, preferably standardized interface between the actuating or sensing units and the processing unit. Furthermore, software maintenance has been simplified since only the software running on the processing unit has to be maintained.
The processing unit or server reacts timely in a sense that, on arrival of a client's request, it does a best effort to send a response within the time constraint thereto foreseen either through configuration of the server (in case of an implicit constraint) or as communicated by the client as part of its request (in case of an explicit constraint), this in order to have the response arrive with the client before the specified time constraint passes.
Thanks to the clock on its onboard communication interface, the actuating or sensing unit is able to autonomously perform operations like measurement sampling, adjusting actuator output settings, sending requests and processing incoming responses. The limited local processing capabilities needed thereto may be implemented for example by means of a DSP, a Field Programmable Gate Array (FPGA), structured FPGA, or a dedicated Application Specific Integrated Circuit (ASIC). Alternatively, a single clock can be shared between several actuating or sensing clients. Thus, the client decides autonomously on the exact moments of actuation and sensing, making the time jitter on these operations solely dependent on the accuracy of the client's local clock and independent of the time jitter on the delays on the communication between client and server, and on the timing jitter on the time needed by the server to complete the requested computational task. The timing of the client-server communication is driven by the client's local clock. Hereby, the server operates entirely event-driven, the events being driven by the arrival of the requests coming from the client.
In the system according to the invention, the main computational tasks are executed by a processing unit running either a real-time operating system or a hybrid operating system able to manage both real-time and non real-time operations on a single processing unit. Examples of such a processing unit are Intel processors, AMD processors, PowerPC processors, Blackfin processors, and TI C2000, C5000 and C6000 series. Examples of real-time operating systems are Micrium, Nucleus, VxWorks, QNX, On Time RTOS-32 and LynxOS. The hybrid operating systems may for instance be the RTLinux, RTAI or Xenomai operating systems, but also Windows CE or Windows XP with a real-time extension such as ProNoCos Win RT. The combination of processing units and operating systems provides a system that can run local and remote user interfaces and other non real-time processes while simultaneously acting as a real-time computation server that receives and processes requests from client actuating or sensing units in the field. These requests typically comprise demands for the computation server to perform certain computational tasks, e.g. the execution of control algorithms, in real-time in order to provide the requesting actuating or sensing unit with its settings or to properly store and propagate sensor information. In order to ensure real-time behaviour, the requests may explicitly specify a time span wherein the request must be processed. The requests may alternatively specify the time span or time constraint for the computational task implicitly, e.g. through a code. The requests may optionally include additional information such as measurement values needed by the processing unit to perform the computational task. The requested computational tasks may correspond to the execution of a control algorithm or a multiplicity of control algorithms, but are obviously not limited thereto.
The current invention further relates to a corresponding method for real-time process control as defined by claim 13.
A particular embodiment of the system for real time process control according to the invention is adapted for controlling power electronics. In such embodiment, as defined by claim 2, the actuating or sensing units form part of respective power section units, and the processing unit acts as a server whereon the power section units are able to schedule the execution of computational tasks.
The client power sections comprise power converter valves, sensors for measuring currents, voltages and temperatures, signal processing hardware converting the measurements to digital format, signal processing hardware and communication interfaces to process the measurements, to transmit and receive information to and from a server processing unit, and eventually to select among incoming responses when plural server processing units are addressed in a system with redundancy as will be described further in this patent application. Finally, the response contains signals that are suited to be applied either directly to the power converter valve gate drivers or to the inputs of the Pulse Width Modulation (PWM) generators, located on the client unit, producing the power converter gate driver signals.
As is further specified in claim 3, the embodiment of the system according to the present invention applicable to the control of power electronics, may have actuating or sensing units that sense and digitize a current, a voltage, or a temperature, and convert the sensed current, voltage or temperature into a signal that will form part of the request message.
Thus, requests include all of the necessary measurement information needed for the server to execute the control algorithm.
A further optional feature of the system for real-time process control according to the invention, is that the clocks in different actuating or sensing units may be synchronized, as specified in claim 4.
Synchronization of the clocks ensures that the sampling of the different measurement sensors in the actuating or sensing units and the adjustment of different actuator outputs are coordinated in time, even when the client actuating or sensing units are separated from each other, e.g. 100 m or beyond. Since the client actuating or sensing units sample and actuate on the basis of a local clock, jitter on the timely coordination of these operations is solely limited by the precision of the synchronization. Thereto, the clocks in the different client actuating or sensing units may for instance be synchronized with a master clock. The master clock may be generated by one of the clients, by a server, or by an external device. Synchronization occurs either via dedicated links or via the real-time network used for the client-server communication. Synchronization between the client clocks can, amongst others, be realized through the IEEE 1588 protocol.
A further, optional characteristic of the system for real-time process control according to the present invention, is that this system may comprise plural processing units, as defined by claim 5. The corresponding method wherein the request message is sent to plural, redundant processing units, is defined by claim 14.
This way, the reliability of the system is further enhanced.
Yet another optional aspect of the system with redundant processing units according to the present invention, is that a message from an actuating or sensing unit may trigger execution of a computational task on plural processing units, as defined by claim 6.
Indeed, when two or more processing units are available, the client actuating or sensing units can send their requests to any or a subset of the processing units. This may for instance be achieved through the multicast capabilities of the Ethernet protocol and the associated switching hardware, or by providing Virtual Local Area Network (VLAN) capabilities. Each of the consulted servers executes the requested computational task and sends back a response to the client actuating or sensing unit.
As specified by claim 7, a further option of the system with redundant processing units according to the present invention might be the presence of prioritizing functionality in the actuating or sensing units for selecting a preferred response out of all timely received responses from the redundant processing units.
Thus, the client selects amongst all responses that timely arrive on the basis of some priority scheme. Responses that did not timely arrive are discarded. Due to the client-server architecture of the system according to the present invention, servers do not need to monitor each other for failures. If for some reason a server fails, the other servers that receive the client request will take over without knowing about the other servers failure. It is noticed that this stands in contrast to redundancy in traditional master-slave systems, wherein the master unit would be continuously monitored by a redundant backup unit that assesses if the master unit in operation is still alive. Based on its priority mechanism, the client shall select for instance the response coming from server one unless this server could not timely finish computations, in which case the response from server two gets selected.
Still an optional but advantageous feature of the system according to the present invention is that the redundant processing units may comprise different algorithms for execution of the same computational task, as defined by claim 8.
A similar, optional feature, defined in claim 9 is that the redundant processing units may run different real-time or hybrid real-time/non real-time operating systems.
Thus, reliability is further increased by providing functional redundancy on top of the hardware and software redundancy. In other words, the servers are not necessarily similar in hardware, do not necessarily run the same operating system, and do not necessarily apply the same algorithms to respond to requests coming from the clients.
In order to avoid hardware problems, server hardware can differ between the redundant servers. In order to avoid duplicate operating system flaws, operating systems on redundant servers can differ from one another. Lastly, in order to avoid duplicate software bugs, algorithmic implementations used in redundant servers, can be made to differ from each other. The sole requirement is that all algorithms running on different processing units in response to a single request from a client, must provide similar functionality and consequently a similar response. For instance, in response to a request from an actuating or sensing client, one processing unit may run a complex algorithm on an RTLinux operating system, running on a PowerPC, whereas a second processing unit may use a simplified version of the algorithm on a Windows CE operating system and Intel processor. In order to keep the different algorithms on the different servers synchronized, the client may communicate the actually selected response back to the different servers.
Optionally, as defined by claim 10, the system for real-time process control according to the present invention comprises load balancing means for balancing the computational load over the redundant processing units. The corresponding method with load balancing between plural redundant processing units, is defined by claim 15.
Load balancing allows dynamic optimization of processing capacity usage. If for instance a server fails, the load of processes running on that server can be distributed in runtime over the remaining servers. The difference for the client is that it receives the responses from different servers. Processes can be moved from one server to another depending on the CPU load of the different servers. Processes can also be moved from one server to another depending on the server's failure statistics, i.e. its reliability. Processes can also be moved depending on other criteria. Alternatively, the client requests may be dispatched by a dispatch server whereto all the requests are routed. Such dispatch server may for instance dispatch the requests to the processing units with the lowest CPU load.
As defined by claim 11, the system for real-time process control according to the present invention preferably is executed with a network that has real-time transport capabilities. As specified in claim 12, one example thereof is an Ethernet network, both wired or wireless. Other suitable network protocols comprise Infiniband, USB, FireWire and PCI Express.
In the embodiment of
In a variant embodiment of the system drawn in
As already mentioned above, a suitable choice for the network 203 connecting the server processing unit 201 to the client actuating or sensing units is a network based on Ethernet connections. Ethernet, in particular Fast Ethernet, Gbit Ethernet and beyond, offers the bandwidth needed to support the intensive traffic induced by the client-server communication. Furthermore, it is noticed that the network 203 can be implemented using a star-topology, a ring-topology or any other topology.
The processing unit 312 inside interface section 221 provides the client 301 with basic signal processing capabilities. These include but are not limited to digitizing measurement signals provided by the hardware sections, signal sampling and filtering, system monitoring and safeguarding operations, sending requests to the computation server 201, and processing the responses received from the computation server 201. The processing unit 312 may for instance be implemented by means of an field programmable gate array (FPGA), a digital signal processor (DSP) or an application specific integrated circuit (ASIC). It is possible that parts of the network interface 311 or the entire network interface 311 as well as parts of the hardware interface 313 or the entire hardware interface 313 are integrated on the FPGA, DSP or ASIC. The interfacing section 221 connects to the actuating or sensing hardware 211 via the hardware interface 313. Via this hardware interface 313, analogue and digital input and output signals are respectively retrieved and set. If needed, this hardware interface 313 also provides galvanic or other types of isolation as required by safety conditions or any kind of specification or regulation.
The clock 314 enables the client unit 301 to autonomously perform operations like measurement sampling, adjusting actuator output settings, sending request towards the computation server 201 on the network 203, implementing time-outs, watchdogs and safety protocols. In one implementation, the clocks of the different clients on the network may remain unsynchronized. In a variant implementation, the clocks of all clients or a subset thereof are synchronized with a master clock like clock 205 in
Driven by its internal clock 314, the client 301 sends a request 401 to the server 201, requesting the server 201 to perform certain computational or other tasks. Hence, it is the client 301 which is the active partner that takes the initiative to establish communication with the server 201. Again, this stands in contrast to the traditional master-slave architectures wherein the master or processing unit takes the initiative. The contents of the request message 401 may include a reference identifying the source client 301, a reference identifying the destination server 201, a reference identifying the request 401, a function code identifying the type of request, and all necessary data needed by the server 201 to serve the request 401. Note that this is a non-exhaustive list. Depending on the application, the request may include only some of the above listed fields, or may contain additional fields, not listed here above.
In the implementation where network 203 is using Ethernet connections, the reference identifying the client 301 is the Medium Access Control (MAC) address of the client's network interface, 311 in
In a particular implementation, the request message 401 also includes the time span within which the client 301 expects a response from the server 201. This is the case of applications with real-time requirements. Alternatively, this time span can be specified implicitly through the function code.
The types of functions or computational tasks that a client like 301 can request from a server like 201 include but are not limited to a request for the execution of a control algorithm computing client output settings, a request for loading or saving configuration data, a request for timing information, a status notification and an error notification.
In response to the request 401 coming from the client 301, the server 201 performs the requested operations and sends back a response 402 to the client 301. In scheduling the requested operations, the server 201 tries to take into account any timing constraints specified either explicitly or implicitly. The response 402 includes a reference identifying the source sever 201, a reference identifying the destination client 301, a reference identifying the original request 401, and all necessary data associated with the server's response to the client's original request Again, this is a non-exhaustive list of fields that may form part of the response message 402. Not all of them need to be present, and it is possible additional fields are added.
The client 301 receives the response 402 and deploys the result in a suitable manner. As an example, we consider a scenario whereby the original request 401 involves the execution of a real-time control algorithm. If the response 402 sent back by the server 201 is received in time by the client 301, the algorithm's output as contained in the response 402 is deployed by properly adjusting the state of the client's actuating hardware, 211 in
Any other client on the network 203 interacts with the processing unit 201 in the same manner as described above for the single-client/single-server case illustrated by
Driven by its internal clock 642, the client actuating or sensing unit 604 sends the same request 611 to all servers, 601, 602 and 603, on the network. Hereby, the client 604 requests each server, i.e. 601, 602 and 603, to perform the same or similar computational or other tasks. The request message 611 may include the following, non-exhaustive list of fields: a reference identifying the source client 604, a reference identifying the destination servers 601, 602 and 603, content identical or similar to the single-client/single-server case described above with reference to
In response to the request 611 coming from the client 604, each of the servers 601, 602 and 603 performs the requested operations and sends back a response to the client. In
Out of all responses that arrive within the given time constraint, the client 604 selects the response it will deploy based on a prioritization mechanism. As an example, a scenario can be considered wherein the original request 611 involves the execution of a real-time control algorithm. Among the responses 612, 613 and 614 sent back by the servers 601, 602 and 603, the interfacing 641 in client 604 makes a selection based on the priority associated with each response. The selected response is then deployed by the client 604. All other responses are discarded. The instance in time when deployment takes place is determined by the client's internal clock 642. Hence, if the responses 612, 613 and 614 arrive early, deployment may be delayed by the client 604 in order to ensure proper coordination of all actions taking place in the overall system. If none of the response 612, 613 and 614 arrive in time, the client 604 may decide to use a substitute generated by its local processing unit that forms part of interface 641, or it may decide to shut down and send an error notification. In one possible implementation, the prioritization mechanism used to select a response is based on the sequential order wherein the responses arrive. In another possible implementation, the prioritization mechanism is based on a priority code that is either included explicitly in the servers' responses or that is implicitly associated with a reference identifying the server that has generated the response.
Any other client in the network, not drawn in
The multi-client/multi-server architecture described above enables to create highly reliable systems based on server hard- and software that does not necessarily exhibit the reliability of traditional automation hardware. If one of the servers fails to respond, clients will automatically select a response among the results produced by the other servers in the network. This scenario is illustrated by
Summarizing, the multi-client/multi-server architecture described in relation to
As already mentioned, the multi-client/multi-server architecture also allows different servers to run different algorithms in response to the same client request. In order to avoid duplicating software bugs, algorithmic implementations can be made to differ from one server to another. The only requirement is that all algorithms executed in response to the same client request must aim to provide similar functionality. This is called functional redundancy. For example, in response to a request coming from an actuating or sensing unit, one server may run a very complex algorithm the result of which is assigned a high priority while a second server runs a simplified version of the algorithm the result of which is assigned a lower priority.
In order to keep algorithms on different computation servers that all serve requests coming from the same client synchronized with each other, the client may communicate information about the actually selected response back to the servers involved. In a particular implementation, this information is transmitted via a separate message. In a variant implementation, this information is attached to the next client request for computational services.
The multi-client/multi-server architecture can be further enhanced through the implementation of load-balancing mechanisms. In order to distribute the load generated by the different clients on the network and to avoid excessive computational loads on a processor, a particular server may choose to respond only to requests from a particular subset of clients. Stated differently, a server may choose to deliberately ignore requests coming from particular clients. In one possible implementation, this behaviour is specified via static configuration. In another possible implementation, this behaviour is decided upon dynamically depending upon the instantaneous or average computational load of the different servers, their failure statistics or any other relevant criterion.
Other applications that can be built on top of the multi-client/multi-server architectures illustrated by
The client power sections can be used, for example, to construct drive applications, and intelligent net interfaces. At regular instances in time, as determined by the local clock, the power section sends a request to execute a drive or other algorithm via network 903 to one or more computation servers such as 901 and 902. A request includes all of the necessary measurements needed for the server to execute the algorithms. The computation servers 901 and 902 execute the control algorithm and send their response back to the power section which selects the response with the highest priority. The computation servers 901 and 902 take into account implicit or explicit time constraints, and thereto run hybrid operating systems having a non real-time component, respectively 931 and 941, and a real-time component, respectively 932 and 942. Clocks in different power sections can be synchronized with a master clock 905 in order to coordinate their overall operation. Moreover, power applications realized using these power sections inherit all properties with regard to high reliability, load balancing, etc. from the more general process control systems described above. Lastly,
Although the present invention has been illustrated by reference to specific embodiments, it will be apparent to those skilled in the art that the invention is not limited to the details of the foregoing illustrative embodiments, and that the present invention may be embodied with various changes and modifications without departing from the scope thereof. The present embodiments are therefore to be considered in all respects as illustrative and not restrictive, the scope of the invention being indicated by the appended claims rather than by the foregoing description, and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein. In other words, it is contemplated to cover any and all modifications, variations or equivalents that fall within the scope of the basic underlying principles and whose essential attributes are claimed in this patent application. It will furthermore be understood by the reader of this patent application that the words “comprising” or “comprise” do not exclude other elements or steps, that the words “a” or “an” do not exclude a plurality, and that a single element, such as a computer system, a processor, or another integrated unit may fulfil the functions of several means recited in the claims. Any reference signs in the claims shall not be construed as limiting the respective claims concerned. The terms “first”, “second”, third”, “a”, “b”, “c”, and the like, when used in the description or in the claims are introduced to distinguish between similar elements or steps and are not necessarily describing a sequential or chronological order. Similarly, the terms “top”, “bottom”, “over”, “under”, and the like are introduced for descriptive purposes and not necessarily to denote relative positions. It is to be understood that the terms so used are interchangeable under appropriate circumstances and embodiments of the invention are capable of operating according to the present invention in other sequences, or in orientations different from the one(s) described or illustrated above.
Number | Date | Country | Kind |
---|---|---|---|
06022203.1 | Oct 2006 | BE | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/EP2007/061425 | 10/24/2007 | WO | 00 | 4/30/2009 |