IP Library Granted Patent US 10,216,523
Granted Patent B2
US 10,216,523 · App. 14/802,875 · Granted Feb 26, 2019

Systems and methods for implementing control logic

Inventor: Todd Allen Keitel (San Ramon, CA)
Assignee: General Electric Company
G06F9/44G05B19/042G05B2219/1204G05B2219/25065
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,216,523
App. No.
14/802,875
Granted
Feb 26, 2019
Kind
B2
Abstract

Disclosed herein, in various embodiments, are systems and methods for creating, implementing, communicating, and/or analyzing control logic governing operation of a system under control, where the control logic is defined in attributed data, which specifies control operators along with their input and output variables for the various control nodes. In example embodiments, a virtual control engine executes the control logic based on interpretations provided by an attributed-data dictionary.

Claims (31)

1. A system comprising:

one or more hardware processors configured to implement a control-logic-agnostic virtual control engine to control a controlled system by executing control logic defined in attributed data, the control logic comprising a plurality of control nodes, and the attributed data comprising, for each of the control nodes, an attributed data item comprising a sample-data class structure and an attributes class structure, the attributes class structure comprising metadata specifying an output variable, one or more input variables, and a control operator generating the output variable from the one or more input variables; and

an attributed-data dictionary stored in non-transitory computer memory and configured to interpret the attributed data in response to a service call from the virtual control engine and to return a control-engine-specific interpretation to the virtual control engine,

wherein the control-engine-specific interpretation of each attributed data item comprises program code that, when instantiated and executed, implements the control operator specified in that data item, and

wherein the virtual control engine, upon execution of the control logic to control a controlled system, writes values of the output variables generated by the control operators of the plurality of control nodes to the sample-data class structures of the respective attributed data items.

2. The system of claim 1 , wherein the control-engine-specific interpretation further comprises mappings between at least some of the input and output variables specified in the attributed data variables and memory pointers for local system resources.

3. The system of claim 1 , wherein the virtual control engine is configured to create, from the control-engine-specific interpretation of the attributed data returned by the attributed-data dictionary, a list of instantiated control operators linked by their associated input and output variables.

4. The system of claim 1 , wherein the virtual control engine and the attributed-data dictionary are implemented in an embedded device integrated into the controlled system.

5. The system of claim 1 , further comprising:

in communication with the virtual control engine, an attributed-data repository storing attributed data for each of one or more control-logic designs.

6. The system of claim 5 , wherein the attributed-data repository is stored on a server in remote communication with the virtual control engine.

7. The system of claim 1 , wherein the one or more hardware processors are further configured to implement a controls fault detector in communication with the virtual control engine, the controls fault detector configured to evaluate observability and controllability of control inputs and control outputs of the controlled system based on data received from the virtual control engine to detect sensor or actuator faults or failures, and to report detected sensor or actuator faults or failures to the virtual control engine.

8. The system of claim 7 , wherein the virtual control engine is configured to query an attributed-data repository, in response to a sensor or actuator fault or failure being reported by the controls fault detector, for attributed data defining control logic adapted to handle the reported fault or failure.

9. The system of claim 1 , wherein the one or more hardware processors are further configured to implement an attributed-data generator to create attributed data from a control-logic design specification created with a control-logic design tool.

10. The system of claim 9 , further comprising:

in communication with the attributed-data generator, an attributed-data dictionary specific to the control-logic design tool, configured to translate nodes of the control-logic design into attributed data items.

11. The system of claim 9 , wherein the attributed-data generator is configured to generate a list of all input and output variables used in the control-logic design, and to associate control operators therewith.

12. A method comprising:

using one or more hardware processors, obtaining attributed data, stored in a non-transitory machine-readable medium, for storing control states of a controlled system and defining control logic for the controlled system, the control logic comprising a plurality of control nodes, the attributed data comprising, for each of the control nodes, an attributed data item comprising a sample-data class structure and an attributes class structure, the attributes class structure comprising metadata specifying an output variable, one or more input variables, and a control operator generating the output variable from the one or more input variables,

communicating a service call for interpretation of the attributed data to an attributed-data dictionary and receiving the interpretation from the attributed-data dictionary, wherein the interpretation of each attributed data item comprises program code for the control operator specified in that attributed data item; and

controlling, using the one or more hardware processors, the controlled system in accordance with the control logic defined in the attributed data based on the interpretation, and writing values of the output variables generated by execution of the program code for the control operators of the plurality of control nodes to the sample-data class structures of the respective attributed data items.

13. The method of claim 12 , wherein obtaining the attributed data comprises downloading the attributed data from an attributed-data repository to a virtual control engine implemented by the one or more hardware processors that controls the controlled system in accordance with the control logic, the attributed-data repository being stored on a server in remote communication with the virtual control engine.

14. The method of claim 12 , further comprising automatically translating a control-logic design specifying the control logic into the attributed data.

15. The method of claim 12 , further comprising generating attributed data during execution of the control logic, and storing the generated attributed data in an attributed-data repository.

16. The method of claim 15 , further comprising retrieving the generated attributed data from the attributed-data repository for analysis, based on the generated attributed data, of a least one of the controlled system or the executed control logic.

17. The method of claim 16 , further comprising modifying the control logic based on the analysis.

18. The method of claim 12 , further comprising evaluating observability and controllability of control inputs and control outputs of the controlled system to detect sensor or actuator faults or failures, and obtaining, in response to detection of a sensor actuator fault or failure, attributed data defining control logic adapted to handle the detected fault or failure.

19. A non-transitory machine-readable storage medium comprising instructions, which, when implemented by one or more machines, cause the one or more machines to perform operations, the operations comprising:

obtaining attributed data for storing control states of a controlled system and defining control logic for the controlled system, the control logic comprising a plurality of control nodes, the attributed data comprising, for each of the control nodes, an attributed data item comprising a sample-data class structure and an attributes class structure, the attributes class structure comprising metadata specifying an output variable, one or more input variables, and a control operator generating the output variable from the one or more input variables;

sending a service call for interpretation of the attributed data to an attributed-data dictionary and receiving the interpretation from the attributed-data dictionary, wherein the interpretation of each attributed data item comprises program code for the control operator specified in that attributed data item; and

controlling a controlled system in accordance with the control logic defined in the attributed data based on the interpretation, and writing values of the output variables generated by execution of the program code for the control operators of the plurality of control nodes to the sample-data class structures of the respective attributed data items.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2023
From: GENERAL ELECTRIC COMPANY
To: GE DIGITAL HOLDINGS LLC
Reel/Frame 065612/0085 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2016
From: KEITEL, TODD ALLEN
To: GENERAL ELECTRIC COMPANY
Reel/Frame 037551/0193 →
Continuity (1)
Related Publication 20170017222A1 · Jan 19, 2017