Patent ID: 8364291

Claim:
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.