FunctionalityΒΆ

The following picture describes the function blocks which are mandatory for data synchronization in all switchover conditions and which are necessary for a complete redundant system.

HA_CS31_SYNC will help users to synchronize different function block instances, variables, arrays etc. HA_CS31_TON is a utility function block available in HA-CS31 library and the outputs of this function block are internally synchronized. All utility function blocks which are available in HA-CS31 library are internally synchronized.

../_images/b76635c7feb3a7320a331390005d1196

Function Block PUMP_LEVEL_CTRL

Data synchronization is used for writing the values of the defined variables or internal historical values of function blocks from the primary CPU to the secondary CPU. Users need this in case of external change or after repair. Please note that the data is always written from primary to secondary CPU.

Rules for Data Synchronization

  • All instances on HA_CS31_DATA_SYNC must be executed at least once to have a correct data synchronization table.
  • We recommend you, to have all instances of HA_CS31_DATA_SYNC and HA-CS31 function blocks to be called in one separate POU. This POU should be called in PLC_PRG.
  • During commissioning the users have to use OPC client to tune the parameters of HA-CS31 utility function blocks to make sure that both PLCs are sending/receiving data at the same time without any time delay.

Synchronization of Function Blocks

The following picture describes how function blocks are provided by HA_CS31_AC500_V23 library. Internal historical values are placed in an exchange table and copied from the primary to the secondary CPU. Then, the secondary CPU is synchronized with the primary and the process outputs are identically on both CPUs.

../_images/2df3e6c4606ccc6b0a33139000c04723

Function Block PUMP_LEVEL_CTRL

The following function blocks with historical values are not included in the HA_CS31_AC500_V23 library:

  • Set Reset (SR)
  • Reset Set (RS)
  • Rising edge trigger (R_TRIG)
  • Falling edge trigger (F_TRIG)
  • etc.

To be able to resynchronize these values after an error or a PLC stop, these internal values can be added in a synchronization table.

../_images/2cdaf87f6071bddb0a331390019148cd

Function Block PUMP_LEVEL_CTRL

Internal values to synchronize are:

  • RS1.Q1 (internal value of RS1)
  • SR1.Q1 (internal value of SR1)
  • FT1.Q (internal value of FT1)
  • RT1.Q (internal value of RT1)

User Data Synchronization

The variables which are changed by a SCADA/ HMI on the primary CPU should be synchronized, e.g:

  • Set points, limits, on/off command, etc.
  • Variables used to manage program sequences.
  • Sequence number, condition with historical values, etc.

Tips for data synchronization:

To optimize data exchange and synchronization in a High Availability program data can be grouped in a structure as shown in the following picture to avoid multiple entries in synchronization table.

../_images/03c1a104607328d30a331390012cb6ff

Function Block PUMP_LEVEL_CTRL

Then, one complete structure can be placed in a synchronization table. In this example all variables of the structure data will be synchronized using only one instance of HA_CS31_DATA_SYNC.

../_images/4f7a154e607455520a33139000fa7105

Function Block PUMP_LEVEL_CTRL