6. Redundancy with NX3030 CPU
313
ATTENTION:
It must be avoided to call additional POUs from the program type inside the NonSkippedPrg, as
symbolic variables declared in this type of POU are redundant, and inside the NonSkippedPrg 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 structure. 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 structure, 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 MODBUS 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.
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 CPs. 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.
GVL 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, RedCmdRem), are placed within direct representation special variables %Q or %I.
The SystemAT_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.
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
configuration 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 redundant
symbolic variables declaration to prevent variable mapping in non-redundant areas.