6. HX3040 Redundancy
281
transfer time of 15ms (7ms + 6,4ms / Kbyte * 117 Kbytes = 15ms). MasterTool indicates this period
by as the “maximum redundancy overhead”.
ATTENTION:
MasterTool calculates the overhead considering a forcing list of empty of redundant variables.
The MainTask cycle time should be set taking into account the “maximum redundancy overhead”
calculated by MasterTool, plus 30% off. For instance, for a 15ms cycle, make it as, at least, 20ms.
ATTENTION:
If the 30% of time gap is not observed, the system does not provide an adequate redundancy
operation. What happens usually is the change of state of one of the CPUs to INACTIVE due to data
synchronization failures between CPUs.
In addition, the user must define a range for MainTask regarding:
The time required to run the main POUs (NonSkippedPrg and UserPrg). This time is typically
measured after the project development (discounting the additional time for redundancy).
Some clearance of the MainTask cycle to run other CPU tasks (operating system, I/O drivers,
etc.). The percentage of this gap may vary according to the required performance of such other
tasks. For example, if the MODBUS communication with the SCADA system needs to allocate a
lot of processing to achieve satisfactory performance, the gap should be increased.
The time required to perform the protection POUs (NonSkippedProtPrg and UserProtPrg), when
they are used. As ProtTask priority is higher than MainTask priority, the frequency/interval of
ProtTask must be taken into consideration. The mean consumption of ProtTask should be
maximum 20% of its cycle time. This is equivalent to 800us if it is working with 4ms interval. If
this condition is not met, the system cannot perform the transfer of redundant data. ProtTask also
should not present peaks much higher than 20% of the cycle time, as this can generate a
switchover. Thus, it is not recommended to have logical with different and time-consuming
loops. For further information, see Cyclic Tasks: MainTask and ProtTask.
ATTENTION:
Depending on the memory alignment, the number of bytes used to calculate the redundancy
overhead may be larger than the total number of bytes declared in the variables.