Method and apparatus for providing redundancy in an industrial control system
AssigneeRockwell Automation Technologies, Inc.
InventorsWilliam B. Cook, David A. Karpuszka
Life of this patent
Estimating the term…
Abstract
An industrial control system implementing a multi-tasking operating system employs a primary and secondary controller each having a processor and an I/O data table. The processors are configured to execute one or more priority ranked programs. A tracking of changes in the I/O data table of the primary processor is used to independently track changes to controller specific data that has been changed and program specific data that has been changed and to transmit controller specific data that has been changed by any program and program specific data that has been changed only for completed programs to the secondary processor.
Claims18
A primary industrial controller exchanging input and output signals with a controlled process and communicating with a secondary industrial controller over a link, comprising:
- (a) a memory holding:
- (i) at least one user program describing the control of the controlled process;
- (ii) an I/O data table holding values of the output signals exchanged with the controlled process;
- (iii) a flag table having controller-scoped flags and program-scoped flags, the controller-scoped flags indicating changes to the I/O data table caused by one or more user programs, the program-scoped flags indicating changes to the I/O data table specific to one user program caused by execution of the specific user program;
- (b) a processor communicating with the memory and operating to
- (i) execute the user programs to write values of the output signals to the I/O data table according to the user programs at a first predetermined time;
- (ii) set controller-scoped flags in the flag table indicating changes in the I/O data table caused by execution of the user programs;
- (iii) set program-scoped flags in the flag table indicating changes in the I/O data table caused by execution of the user programs;
- and
- (iv) at a second predetermined time after the first predetermined time, transmit to the secondary industrial controller the values of output signals in the I/O data table that have changed as indicated by the set controller-scoped flags of the flag table and the values of output signal in the I/O data table that have changed as indicated by the set program-scoped flags of the flag table for programs that have completed;
- wherein at an arbitrary switch-over time, the primary industrial controller ceases execution of the user programs and the secondary industrial controller begins execution of the user programs, the secondary industrial controller using transmitted values of the output signals.
A method of providing a back-up for a primary industrial controller exchanging input and output signals with a controlled process and communicating with a secondary industrial controller over a link, the primary industrial controller including a processor communicating with a memory, the memory holding a user program for describing the control of the controlled process, an I/O data table holding values of the input and output signals exchanged with the controlled process, and a flag table holding flags indicating changes to the I/O data table, the method comprising the steps of:
- (a) after a first predetermined time executing the user program to read and write to the I/O data table according to the user program;
- (b) setting controller-scoped flags in the flag table indicating changes to controller data in the 1/O data table of step (a) caused by control of the controlled process;
- (c) setting program-scoped flags in the flag table indicating changes to program-specific data in the I/O data table of step (a) caused by control of the controlled process;
- (d) at a second predetermined time after the first predetermined time, communicating to the secondary processor only the values of the I/O data table that have changed as indicated by the set flags of the flag table to the secondary processor;
- and
- (e) at an arbitrary switch-over time, causing the primary industrial controller to cease execution of the user program and the secondary industrial controller to begin execution of the user program, with the secondary industrial controller using transmitted values of the output signals.
Dependencies are inferred from the claim text.