6. REDUNDANCY WITH NX3030 CPU
ATTENTION
It must be avoided to call additional POUs from the program type inside the NonSkipped-
Prg, as symbolic variables declared in this type of POU are redundant, and inside the Non-
SkippedPrg it’s normally desirable non-redundant variables. Usually the NonSkippedPrg
code is small and doesn’t need to call additional POUs from the program type for its struc-
ture. If the NonSkippedPrg structure is needed, function blocks or functions must be used.
Typical examples of controls executed in the NonSkippedPrg are the following:
To create a compact diagnostics structure (%Q) to be reported to a SCADA system, from a complete diagnostics struc-
ture, where many diagnostics are not interesting for the SCADA system. These diagnostics can be extracted from data
structures as RedDgnLoc, RedDgnRem, RedUsrLoc, RedUsrRem, etc.
To copy commands received from a SCADA system for the respective data structure RedCmdLoc fields, and interconnect
these commands if necessary
To manage switchovers controlled by the user, in case of not vital failures such as the communication with a SCADA
system or with a MODBUS device
Enable and disable some specific I/O drivers, depending on the redundancy state (Active or Non-Active). E.g. a MOD-
BUS RTU master driver in a RS-485 bus must be disabled in the Non-Active CPU. For further information see MODBUS
Instances Managing in Redundant System section
ATTENTION
It’s not recommended to use function blocks TOF_RET, TON_RET, TOF and TON in the
NonSkippedPrg program. See Limitations on a Redundant PLC Programming.
6.4.9. Redundancy Configuration Object
This object, located in the device tree, is automatically created by the Wizard. It is used to determine which POUs and
GVLs are redundant, and therefore synchronized between PLCs. By default, POUs and GVLs created by the user are marked
as redundant, leaving the option to the user to reverse the marking when needed.
ATTENTION
PV, PIDControl and PidRetainGVL objects can’t be individually marked. In case of need to
modification, the Select all option must be marked.
6.4.10. GVL Module_Diagnostics
This special GVL is created and filled automatic by the Wizard and can’t be modified by the user.
System diagnostics and commands, including redundancy data structure (RedDgnLoc, RedDgnRem, RedCmdLoc, Red-
CmdRem), are placed within direct representation special variables %Q or %I.
The Module_Diagnostics GVL has many sentences with the AT keyword to define symbolic names for these diagnostics
and commands. This way, when the user needs to reference these variables, he can use a symbolic name instead a numeric
reference.
6.4.11. GVLs with Redundant Symbolic Variables
The user can create other GVLs different from the previously listed, in order to declare redundant symbolic variables. For
that, after the GVL creation, it’s necessary to mark it in the object Redundancy Configuration, in the project devices tree. By
default, all GVLs created by the user are, initially, redundant.
ATTENTION
For good practice it’s recommended to avoid the AT directive use in GVLs which have re-
dundant symbolic variables declaration to prevent variable mapping in non-redundant areas.
315