Safety industrial controller providing diversity in single multicore processor
AssigneeRockwell Automation Technologies, Inc.
InventorsJoseph P. Izzo, Michael J. Viste
Life of this patent
Estimating the term…
Abstract
Different cores of a multicore processor are used to provide diagnostics of sophisticated hardware without full redundancy by static assignment of the cores during individual cycles of the control program and comparison of the outputs. A method of automatically generating diverse programs for execution by these cores may modify one program to compile two different instructions without functionally changing that program through the use of DeMorgan equivalents and diverse compiler optimizations.
Claims18
A safety industrial controller for an industrial system having sensors and actuators, the safety industrial controller comprising:
- a multicore processor having at least two cores;
- a computer memory storing:
- (a) an input data storage holding data representing inputs from sensors;
- (b) an output data storage holding data representing outputs to actuators;
- (c) a control program implementing a control logic for control of the industrial system reading the input data of the input table to provide output data for the output table;
- and
- (d) a safety operating system;
- and
- I/O interface circuitry adapted to attach to the sensors and actuators to transfer data from the sensors to the input data storage and from the output data storage to the actuators;
- wherein:
- the safety operating system dedicates a first core to execute a first version of the control program and a second core to execute a second version of the control program in parallel,
- the first version of the control program includes a first set of sequentially executing machine code instructions and the second version of the control program includes a second set of sequentially executing machine code instructions,
- both the first and second sets of sequentially executing machine code instructions include operators and operands,
- the first set of sequentially executing machine code instructions generates a first set of output data,
- the second set of sequentially executing machine code instructions generates a second set of output data,
- at least one of the operators and the operands in the first set of sequentially executing machine code instructions are arranged in a different sequence or consist of different operators and operands than the second set of sequentially executing machine code instructions,
- the first set of output data is identical to the second set of output data, and
- the safety operating system is configured to compare the first set of output data to the second set of output data to detect failure of the safety industrial controller.
A method of operating a safety industrial controller for an industrial system having sensors and actuators, the safety industrial controller including:
- multiple processors,
- a memory storing:
- an input data storage holding data representing inputs from sensors, an output data storage holding data representing outputs from actuators, a control program implementing a control logic for the control of the industrial system reading the input data of the input table to provide output data for the output table, a safety operating system;
- and
- I/O interface circuitry adapted to attach to the sensors and actuators to transfer data from the sensors to the input data storage and from the output data storage to the actuators;
- the method comprising the steps of:
- (a) preparing a diverse first and second version of a control program providing identical control of the industrial system through a use of different sequences of program instructions, wherein:
- the first, version of the control program includes a first set of sequentially executing machine code instructions,
- the second version of the control program includes a second set of sequentially executing machine code instructions,
- the first and second sets of sequentially executing machine code instructions include operators and operands, and
- at least one of the operators and the operands in the first set of sequentially executing machine code instructions are arranged in a different sequence or consist of different operators and operands than the second set of sequentially executing machine code instructions;
- (b) loading the first and second diverse versions on a first and second separate processor;
- (c) executing the first and second diverse versions on the first and second processors in parallel, wherein the first set of sequentially executing machine code instructions generates a first set of output data, the second set of sequentially executing machine code instructions generates a second set of output data, and the first set of output data is identical to the second set of output data;
- and
- (d) comparing the first set of output data to the second set of output data to detect failure of the safety industrial controller.
Dependencies are inferred from the claim text.