Uninterruptable verification and control upgrade for real-time control system
10374894 ยท 2019-08-06
Assignee
Inventors
Cpc classification
G06F21/577
PHYSICS
G05B23/0256
PHYSICS
H04L67/10
ELECTRICITY
G05B2219/25064
PHYSICS
H04L41/0869
ELECTRICITY
Y02P90/80
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
H04W4/00
ELECTRICITY
Y04S40/20
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
Y02P90/02
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
H04L67/34
ELECTRICITY
H04L41/0253
ELECTRICITY
Y04S40/00
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
H04L67/1097
ELECTRICITY
International classification
G05B19/42
PHYSICS
G06F21/57
PHYSICS
G05B19/418
PHYSICS
H04W4/00
ELECTRICITY
Abstract
Exemplified system and method facilitates update/upgrade and validation of controls systems in an uninterrupted manner. An update/upgrade agent operates with a multiple-processor or multi-processor core system to simultaneously and concurrently implement two real-time embedded controllers in which a first controller executes a current firmware or control application installed at the site while a second controller executes an updated controller firmware or control application.
Claims
1. A method for operating an embedded control system for controlling an asset, the embedded control system comprising a first processor core and a second processor core, the method comprising: executing, by the first processor core, a first set of instructions to generate a first stream of control parameters; receiving, by the second processor core, a second set of instructions; executing, by the second processor core, the second set of instructions to generate a second stream of control parameters, wherein the second set of instructions are executed concurrently to the first set of instructions; monitoring a portion of the first stream and a corresponding portion of the second stream, or one or more parameters derived therefrom, for deviations based on a set of validation criteria and/or for instability conditions; validating the second stream in response to the monitoring; receiving a selection command associated with a selection of the second stream in response to the validation; and causing the second stream to be outputted to an input-output interface of the embedded control system to control the asset in response to the selection command.
2. The method of claim 1, wherein the first processor core continues to generate the first stream after the second stream generated by the second processor core is selected to be outputted to the input-output interface.
3. The method of claim 1, comprising: monitoring the second stream to determine if one or more parameters of the second stream meets one or more pre-defined conditions; and in response to a condition of the pre-defined conditions being met, causing the first stream to be outputted to the input-output interface of the embedded control system to control the asset.
4. The method of claim 1, wherein the portion of the first stream and the corresponding portion of the second stream, or the one or more parameters derived therefrom, are graphically presented at a user computing device, the presentation being made available from a cloud control infrastructure.
5. The method of claim 4, wherein comparison parameters derived from the portion of the first stream and the corresponding portion of the second stream are graphically displayed at the user computing device.
6. The method of claim 1, wherein the second set of instructions are received at an update/upgrade agent executing on the embedded control system.
7. The method of claim 1, wherein the second set of instructions are received at an update/upgrade agent executing on a field device operatively coupled to the embedded control system.
8. The method of claim 1, wherein the second set of instructions are received at an update/upgrade agent executing on a computing device located in a cloud control infrastructure.
9. The method of claim 1, wherein the first processor core and the second processor core are located on a same processor, wherein the first set of instructions are executed on a first hypervised instance executing on the first processor core, and wherein the second set of instructions are executed on a second hypervised instance executing on the second processor core.
10. The method of claim 1, wherein the first processor core is located on a first processor, and wherein the second processor core is located on a second processor.
11. The method of claim 1, wherein the first set of instructions and the second set of instructions each includes firmware instructions and operating system instructions.
12. The method of claim 1, wherein the first set of instructions and the second set of instructions each includes deterministic real-time control instructions.
13. The method of claim 1, comprising: validating, for a pre-defined period, the portion of the first stream and the corresponding portion of the second stream, or the one or more parameters derived therefrom; and generating a report, wherein the report includes differences between the portion of the first stream and the corresponding portion of the second stream.
14. The method of claim 1, wherein the deviations are established based on a set of historical data associated with the asset or a set thereof.
15. The method of claim 1, comprising: receiving a validation command that causes the second stream to be outputted to the input-output interface for a pre-defined period of time, wherein after the pre-defined period, the first stream is outputted to the input-output interface.
16. The method of claim 1, comprising: receiving a validation sequence command that comprises a sequence of validation commands, wherein with each successive validation command within the sequence, a given pre-defined period of time associated with a current validation command is lengthen compared to that of a previous validation command, wherein each validation command includes a pre-defined period that the second stream is outputted to the input-output interface such that, after the pre-defined period, the first stream is outputted to the input-output interface.
17. The method of claim 1, comprising: in response to receiving the second set of instructions, stopping execution of third instructions executing on the second processor core.
18. An embedded control system for controlling an asset, the apparatus comprising a first processor core and a second processor core in communication with a memory, the apparatus programmed to: execute, on the first processor core, a first set of instructions to generate a first stream of control parameters; receive a second set of instructions; execute, on the second processor core, the second set of instructions to generate a second stream of control parameters, wherein the second set of instructions are executed concurrently to the first set of instructions; monitor a portion of the first stream and a corresponding portion of the second stream, or one or more parameters derived therefrom, for deviations based on a set of validation criteria and/or for instability conditions; validate the second stream in response to the monitoring; receive a selection command associated with a selection of the second stream in response to the validation; and cause the second stream to be outputted to an input-output interface of the embedded control system to control the asset in response to the selection command.
19. A non-transitory computer readable medium having instructions stored thereon, wherein execution of the instructions, cause at least one processor to: execute, on a first processor core, a first set of instructions to generate a first stream of control parameters for controlling an asset; receive a second set of instructions; execute, by a second processor core, the second set of instructions to generate a second stream of control parameters, wherein the second set of instructions are executed concurrently to the first set of instructions; monitor a portion of the first stream and a corresponding portion of the second stream, or one or more parameters derived therefrom, for deviations based on a set of validation criteria and/or for instability conditions; validate the second stream in response to the monitoring; receive a selection command associated with a selection of the second stream in response to the validation; and cause the second stream to be outputted to an input-output interface to control the asset in response to the selection command.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments and together with the description, serve to explain the principles of the methods and systems:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
DETAILED SPECIFICATION
(9) Before the present methods and systems are disclosed and described, it is to be understood that the methods and systems are not limited to specific methods or to specific components. It is also to be understood that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting.
(10) As used in the specification and the appended claims, the singular forms a, an and the include plural referents unless the context clearly dictates otherwise. Ranges may be expressed herein as from about one particular value, and/or to about another particular value. When such a range is expressed, another embodiment includes from the one particular value and/or to the other particular value. Similarly, when values are expressed as approximations, by use of the antecedent about, it will be understood that the particular value forms another embodiment. It will be further understood that the endpoints of each of the ranges are significant both in relation to the other endpoint, and independently of the other endpoint.
(11) Throughout the description and claims of this specification, the word comprise and variations of the word, such as comprising and comprises, means including but not limited to, and is not intended to exclude, for example, other components or steps. Exemplary means an example of and is not intended to convey an indication of a preferred or ideal embodiment. Such as is not used in a restrictive sense, but for explanatory purposes. Disclosed are components that may be used to perform the disclosed methods and systems. These and other components are disclosed herein, and it is understood that when combinations, subsets, interactions, groups, etc. of these components are disclosed that while specific reference of each various individual and collective combinations and permutation of these may not be explicitly disclosed, each is specifically contemplated and described herein, for all methods and systems. This applies to all aspects of this application including, but not limited to, steps in disclosed methods. Thus, if there are a variety of additional steps that may be performed it is understood that each of these additional steps may be performed with any specific embodiment or combination of embodiments of the disclosed methods.
(12)
(13) Examples of other industrial assets 104 include plant assets such as, for example, but not limited to: equipment and machines used in power generation (e.g., gas turbines, wind turbines, solar power converters, stream turbine, nuclear reactors, plant controls, etc.), in power distribution (e.g., sub-station equipment, transmission equipment, etc.), in water and waste treatment (e.g., pumps, motors, relays, etc.), in recycling, in garbage processing (e.g., furnaces, conveyor system, sorters, etc.), in manufacturing (e.g., automation equipment, warehouse equipment, etc.), in healthcare (e.g., diagnostics equipment, imaging systems, lab equipment, etc.), in transportation (e.g., jet engines, locomotive engines, vehicles, cargo containers, cargo vessels, cargo trucks, freight transport, road vehicles, etc.), in refining, in mining (e.g., excavation equipment, etc.), in oil exploration (e.g., well equipment), in natural gas exploration (e.g., well equipment), in pipeline infrastructure (e.g., pumps, valves, monitoring equipment, etc.), in data centers (e.g., cooling equipment, etc.), among others. Further examples of industrial assets 104 are described in U.S. Prov. Appl. No. 62/435,610, filed Dec. 16, 2016, title INDUSTRIAL INTERNET CONNECTED CONTROL SYSTEM, which is incorporated by reference herein in its entirety.
(14) Referring to
(15) Referring still to
(16) The processor cores 108 and 110 are coupled to memory 112 configured to store, at least, first instructions 114 and second instructions 116. In some embodiments, the first and second instructions 114, 116 each includes controller firmware instructions, operating system instructions, and control application instructions. Control application are operational instruction relating to the control of the industrial asset (e.g., control loop) and include read-only portion that fixed and write portion that may include control state information. Firmware are read-only instructions that includes underlying instructions for device control, device monitoring, and data manipulation, among others. Firmware can also include instructions to protect the real-time embedded control system from unauthorized intrusion, hacking, and the like and to monitor for malicious instructions to which the real-time embedded control system may be exposed. The second instructions, which is intended to replace the first instructions, preferably include updated instructions to firmware, operating system, or control application, and addresses an existing vulnerability or issue in such instructions. These vulnerability may be unrelated to the operation of the real-time embedded control system but makes the real-time embedded control system vulnerable to corruption, unintended manipulation in some manner. In some embodiments, the second instructions include control state information for the controller firmware instructions, operating system instructions, and control application instructions. These control state information may include setpoint and operational values relating to the execution of controller firmware instructions, operating system instructions, and control application instructions. In some embodiments, the control state information are preserved and stored as an image capture of execution of controller firmware instructions, operating system instructions, and control application instructions on a first set of hardware/device and is replicated for execution on a second set of hardware/device.
(17) Referring still to
(18) In some embodiments, the control management infrastructure 117 is a cloud-based control infrastructure. That is, storage, networking, processing computing resources in a network are used to archive and push the various instructions and versions thereof to the update/upgrade agent 100. In some embodiments, the cloud-based control infrastructure provides notifications/alerts of errors and validation issues detected by the update/upgrade agent 100 during the update/upgrade event. In some embodiments, the cloud-based control infrastructure provides a user portal to access reports with summary of the validation status and results.
(19) Referring still to
(20) The second set of processor cores 110 uses the control state information when executing elements of the second instructions 116 to provide a same deterministic control outputs (shown as Second computed outputs 122) that can also be used to also control the industrial asset 104. The second computed outputs 122 are concurrently stored (with the first computed outputs 118), for each control cycle, in a second location in memory 112. The second computed outputs 122 form a second stream of control parameters over a number of control cycles. In some embodiments, the control state information generated from execution of the second instructions by the second set of processor cores are stored in a second memory location to be evaluated against the control state information generated by the first set of processor cores.
(21) The selector circuit 120 is configured to access, e.g., via a local bus (not shown), the first or second computed outputs 118, 122 stored in the memory 112 and to provide a selected computed outputs (e.g., 118 or 122) to an output circuit 124 (e.g., a digital-to-analog converter (DAC), a PWM output) that outputs a control output signal at the IO interface 106 for regulating and/or controlling the industrial asset 104.
(22) Referring still to
(23) In some embodiments, the real-time embedded control system 102 includes real-time code that directs the first or second set of processor cores, or a portion thereof, to combine the first computed outputs 118 and the second computed outputs 122 (e.g., via an XOR operator), and the two sets of generated control state information, to generate a combined output to be transmitted to the update/upgrade agent 100 over a bus or communication interface 126. In some embodiments, the real-time embedded control system 102 includes real-time code that directs the first or second set of processor cores, or a portion thereof, to compare the first computed outputs 118 and the second computed outputs 122 and to compare the different set of control state information to generate a difference output to be transmitted to the update/upgrade agent 100, e.g., over a bus or communication interface 126. The validation assures that differences between the first controller and second controller of the real-time embedded control system 102 are expected. In some embodiments, the update/upgrade agent 100 is configured to generate reports for evaluation when it observes differences that are not expected.
(24) In-Situ Control Validation
(25) As discussed in relation to
(26) In some embodiments, other validation tools to evaluate the firmware and operating system are also executed on the real-time embedded control system. For example, various memory locations of the real-time embedded control system may be scanned and off-loaded to be analyzed to assess expected or unexpected operations of various components of the firmware and operating system.
(27) In some embodiments, the selector circuit 120 is configured to select between the first computed outputs 118 or the second computed outputs 122 via a selection command (also referred to as an in-situ switch-over command) transmitted from the update/upgrade agent 100. In some embodiments, the selector circuit 120 is configured to temporarily select the second computed outputs 122 for a single or finite number of control cycles and then to switch the selection back to the first computed outputs 118. In some embodiments, a validation controller 128 in conjunction with the update/upgrade agent 100 is configured to validate a single or finite number of sample periods of the control cycle. The in-situ switch-over command also serves as persistent switch-over command, e.g., after validation is completed and as a switch-back command in the event of detected fault condition associated with execution of the updated instructionsneither of which would result in an interruption to the operation of the industrial asset 104 or the real-time embedded control system 102.
(28) In some embodiments, the update/upgrade agent 100 directs a state machine in the real-time embedded control system 102 to perform the validation across the single or multiple sample periods. Because the real-time embedded control system has multiple states of operation, multiple sample periods facilitate a complete validation by confirming outputs and internal states at each of the multiple states of operations.
(29) In some embodiments, following the initial single sample period validation being completed, the update/upgrade agent 100 enters a mode that validates the control outputs over multiple sample periods.
(30) In some embodiments, the number of sample periods that the new system is configured to control is incrementally increased following each successful validation period. For example, the validation sequence may start with a 10-sample validation period and then incrementally increase the validation period to 20 samples in which control is transferred back to the original control system during periods that validation is not occurring. Other number of samples and validation sequences may be used.
(31)
(32) In some embodiments, the validation controller 128 is implemented as digital logic circuitries, or via one of the sets of processor cores, that forms a local controller in the real-time embedded control system 102. In other embodiments, the validation controller 128 is a remote controller commutatively coupled to the real-time embedded control system 102 over a high-speed and deterministic link. In some embodiments, the validation controller 128 is a part of the update/upgrade agent 100.
(33) Referring still to
(34) In some embodiments, the test program is used to change inputs to the controls and to observe whether an expected outcome is generated.
(35) In
(36) Referring still to
(37)
(38) A first validation sequence 310, as described in relation to
(39) Following the first validation sequence 310, a second validation sequence comprising of multiple sample period validations of incrementally varying periods (shown as sequences 316a and 316b), as described in relation to
(40) After the validation is complete, at some point, the update/upgrade agent 100 provides a persistent switch-over command to the real-time embedded control system 102 to select the second computed outputs 122. Notably, the first set of processor cores 108 continue to generate (318) the first computed outputs 118 for an extended period of time after the validation is completed. In some embodiments, this period can be days or months after the switch-over and validation period has been completed. The first set of processor core continues to generate the first computed outputs, which serves as a backup stream to the second computed outputs. To this end, if issues are observed (e.g., by the operator or via notification from the update/upgrade agent), the end user or operator can switch the real-time embedded control system to using the outputs from the older firmware version (i.e., the first instructions). In some embodiments, the update/upgrade agent is configured to continue to generate periodic reports of the evaluation of the newer firmware version (i.e., the second instructions). In some embodiments, the first set of processor cores 108 continues to generate (318) the first computed outputs 118 until a next update or upgrade event is performed.
(41) The in-situ validation process, described herein, facilitates earlier and more frequency updates and/or upgrades of lower level control operations, firmware operations, and operating system operations, of the real-time embedded control systems; many of these lower-level control operations not necessary being related to the control loops associated with control of the industrial asset. As discussed, these updates and/or upgrades can address flaws and vulnerabilities of the real-time embedded control system to corruption and/or undesired manipulation.
(42) In some embodiments, the update/upgrade agent 100 includes validation modeling tools configured to monitor the real-time control application for significant deviations among the controllers (i.e., the first set and second set of processor cores) and for significant instabilities in the operation of the real-time control and the underlying firmware and operating system. In some embodiments, the update/upgrade agent 100 is configured to establish, using historical data (e.g., associated with the first computed outputs), output bounds in the controls associated with nominal behavior. In some embodiments, the output bounds are established based on a model generated from the historical data in which the model defines an outside bound for an automatic switch back to the original control system (e.g., the first computed outputs). In some embodiments, the control output bounds is selectable as a manual input that is provided by an end user.
(43) Example In-Situ Update/Upgrade
(44)
(45) Referring still to
(46) In some embodiments, the first and second set of processor cores 108, 110 are part of a single processor unit (e.g., a multi-processor core chipset). In such embodiments, the real-time embedded control system 102 is configured to instantiate, via a hypervisor, a second instance of the real-time control, operating system, and firmware to be executed by the second set of processor core 110 using the second instructions 116.
(47) Once operating, the first set of processor cores 108 and second set of processor cores 110 each concurrently executes, for a given set of control cycle, the real-time control loops (shown as 416a, 416b, 416c) with the industrial asset 104. As shown in
(48) Referring still to
(49) In some embodiments, as the first and second computed outputs 118, 122 are generated, in some embodiments, the validation controller 128 aggregates and/or summarizes and transmits (430, 432) the computed outputs to the update/upgrade agent 100 to be included in a validation report. In some embodiments, the validation controller 128 compares differences of the first and second computed outputs 118, 122 and generate an alert, notification, or report to the update/upgrade agent 100. In some embodiments, the update/upgrade agent 100 is configured to generate and transmit (434) a corresponding alert, notification, or report to the control management infrastructure 117 to present to the end user (e.g., technician or engineer). In some embodiments, the user interface of the control management infrastructure is mobile-friendly and cloud aware such that an end-user can access validation data, generate reports, and perform the upgrade from a remote location.
(50) Referring still to
(51) The switch-over may be performed in stages. In some embodiments, in the first switch-over stage, each of the first set of processor cores 108 and the second set of processor cores 110 may execute control instructions that access data associated with the feedback inputs (e.g., voltage, current, and digital inputs corresponding to power levels, current levels, temperature levels, pressure levels, volume levels, and etc.) of the industrial asset 104 while the underlying processing of the feedback inputs is performed by hardware executing the first instructions 114. These underlying processes may include the instructions that access hardware registers (e.g., ADC (analog-to-digital convertor) registers, counters registers, and etc.). In some embodiments, in a second switch-over stage, the underlying processing of the feedback inputs is performed by hardware executing on the second instructions 114. In some embodiments, the switch-over includes both the control applications and the underlying processes that directly interfaces with hardware registers.
(52) In
(53) Example Hypervised Real-Time Embedded Control System
(54)
(55) As shown in
(56) In this embodiment, and as shown in
(57) In some embodiments, the virtualized environment 516 is configured to operate a second type of deterministic control loop (referred to as a near-real-time control loop) with the privileged environment 514. This second deterministic control loop operates concurrently with the real-time control loops (e.g., 402a-402b, 416a-416c, as described in relation to
(58) Example In-Situ Update/Upgrade for Multi-Hypervised Environment
(59) In some embodiments, the second instructions 116 includes firmware, operating system, and control applications for both the privileged environment 514 and the virtualized environment 516 to facilitate update or upgrade of the real-time control loop and the near-real-time control loop.
(60)
(61) In one aspect,
(62) Upon receiving the second instructions 116, the real-time embedded control system 102 may store the second instructions 116 and direct the hypervisor 502 to instantiate (604) and execute (606) a second instance 608 (e.g., via the CPU 506d) of the real-time controller using the second instructions 116 in which the second instance 608 includes updated firmware, updated operating system (and/or components), and/or updated control operation instructions. Once operating, the first instance 602 and second instance 608 of the real-time controller each concurrently executes, for a given set of control cycle, the real-time control loops (shown as 416a, 416b) with the industrial asset 104, for example, as described in relation to
(63) In another aspect,
(64) As shown in
(65) Validation (628) is performed for both the second instance 608 of the real-time controller and the second instance 620 of the field agent, e.g., via various embodiments discussed in relation to
(66) Example Local Embedded Control Device with Multi-Core Hypervised Platform
(67)
(68) It will be apparent to those skilled in the art that various modifications and variations can be made without departing from the scope or spirit. Other embodiments will be apparent to those skilled in the art from consideration of the specification and practice disclosed herein. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit being indicated by the following claims.
(69) In some embodiments, the exemplified system and method is implemented in a duplex control systems comprising two separate controllers each having its own set of controller hardware.