7
7-16 Genius Modular Redundancy Flexible Triple Modular Redundant (TMR) System
User’s Manual – March 1995 GFK-0787B
If both of the other PLCs are already online, the initializing PLC reads the %R (only)
initialization data from the other PLC with the higher serial bus address. It then sets
its own data to match as shown above.
Word type data that will be included in the initialization data exchanged among
the PLCs at startup, such as timer and counter accumulators, should be located
at the top of the configured %R memory space. This is because the last portion
(top) of the configured %R initialization data is copied last. Locating changeable
data at the top of the %R data assures that the most recent values will be
included when the data is copied.
The third initializing PLC also reads any %M (bit) initialization data from both of
the online PLCs , and compares the two sets of data. If they don’t match, the
initializing PLC sets the Miscompare status reference (%M12232) to 1.
When the PLC completes its data initialization, the GMR software clears the Inhibit status
flag (%M12231). At that point, the application program can monitor the startup status
flags, as suggested on the next page, before continuing startup.
When the application program has computed a set of outputs, it must enable
sending outputs to Genius blocks.
The application program enables outputs to the I/O blocks by turning on control bit
%M12257 (the Continue bit). As the example shows, it is important to have this
occur at the end of the program, so the outputs have been solved at least once before
being enabled.
Monitoring Startup Status
The application program should include logic to cause it to begin executing when the Inhibit
flag is cleared to 0. Depending on the needs of the application, the application program can
begin by checking the startup status flags to determine whether, or how, to proceed with the
rest of the logic. See page 7-11. for a complete list of status flags.
The GMR software provides several initialization flags. It can also monitor the application
program %M data for miscompares, and make program execution conditional upon voting of
the data. See below.
The following flags are of particular interest immediately following startup:
COLDST: If this reference has been set to 1, it means the PLC detected
no other PLC(s) online when it started up. The application program
must initialize its own %M and %R initialization data.
MISCMP#: If set to 1, this flag indicates that when the PLC started up,
the other two PLCs were already online and running their application
programs. When the PLC compared the %M initialization data from the
other PLCs, it found a discrepancy.
SYSFLT#: If set to 1, this flag indicates that when the PLC started up, it
experienced a problem trying to communicate with one of the bus
controllers or a Genius I/O block.
Enabling Outputs At Startup
Following initialization, the application program begins to execute. As a result of one or
more sweeps through the logic, output data is generated. However, outputs remain
disabled, and the output data is not sent on the bus.
%M12237
%M12232
%M12234