Introduction

The T_M_ECPU_HSBY DDT is the exclusive interface between the M580 Hot Standby system and the application running in a BMEH58•040 or BMEH58•040S controller. The DDT instance should appear as: ECPU_HSBY_1.

The T_M_ECPU_HSBY DDT presents three distinct sections:

  • LOCAL_HSBY_STS: Provides information about the local controller. Data is both auto-generated by the Hot Standby system, and provided by the application. This data is exchanged with the remote controller.

  • REMOTE_HSBY_STS: Provides information about the remote controller, and contains the image of the last received exchange from the counterpart controller. The validity of this information is represented by the REMOTE_STS_VALID flag in the common part of this DDT.

    NOTE: The structure of both the LOCAL_HSBY_STS and Remote_HSBY_STS sections are determined by the HSBY_STS_T data type, and are therefore identical. Each is used to describe data relating to one of the two Hot Standby controllers.
  • A common part of the DDT: Consists of several objects, including status data, system control objects, and command objects:

    • Status data is provided by the Hot Standby system as a result of diagnostic checking.

    • System control objects enable you to define and control system behavior.

    • Command data objects include executable commands you can use to modify the system state.

Local Controller versus Remote Controller

The T_M_ECPU_HSBY DDT employs the terms local and remote:

  • Local refers to the Hot Standby controller to which your PC is connected.

  • Remote refers to the other Hot Standby controller.

Data Boundary Alignment

M580 BMEH58•040 and BMEH58•040S controllers feature a 32-bit data design. For this reason, stored data objects are placed on a four-byte boundary.

T_M_ECPU_HSBY DDT

The T_M_ECPU_HSBY DDT consists of these objects:

Element

Type

Description

Written by

REMOTE_STS_VALID

BOOL

  • True: Both HSBY_LINK_ERROR and HSBY_SUPPLEMENTARY_LINK_ERROR are set to 0.

  • False (default): Both HSBY_LINK_ERROR and HSBY_SUPPLEMENTARY_LINK_ERROR are set to 1.

System

APP_MISMATCH

BOOL

The original application in the two controllers is different. (Default = false)

System

LOGIC_MISMATCH_ALLOWED

BOOL

  • True: The standby remains standby in case of logic mismatch.

  • False (default): The standby goes into wait state in case of logic mismatch.

Application

LOGIC_MISMATCH

BOOL

Different revisions of the same application exist in the two controllers. (Default = false)

System

SFC_MISMATCH

BOOL

  • True: The applications in the primary controller and the standby controller are different in at least one SFC section. In the event of a switchover, the graphs that are different are reset to their initial state.

  • False (default): All SFC sections are identical.

System

OFFLINE_BUILD_MISMATCH

BOOL

The two controllers are running different revisions of the same application.In this condition:

  • A data exchange between the two controllers may not be possible.

  • A swap or switchover may not be transparent.

  • Neither controller can be standby

(Default = false)

System

APP_BUILDCHANGE_DIFF

UINT

The number of build change differences between the applications in the primary controller versus the standby controller. Evaluated by the primary.

System

MAX_APP_BUILDCHANGE_DIFF

UINT

Maximum number of build change differences permitted by the Hot Standby system, from 0...50 (default = 20). Set in the Hot Standby tab as Number of modifications .

Application

FW_MISMATCH_ALLOWED

BOOL

Allows mismatched firmware between primary and standby controllers:

  • True: the standby remains standby in case of FW mismatch.

  • False (default): the standby goes into wait state in case of FW mismatch. (Default = false)

Application

FW_MISMATCH

BOOL

The OS are different in the two controllers. (Default = false)

System

DATA_LAYOUT_MISMATCH

BOOL

The Data layout are different on the two controllers. The data transfer is partially performed. (Default = false)

System

DATA_DISCARDED

UINT

Number of KB sent by the primary and discarded by the standby (rounded up to the next KB). Represents data for variables added to primary, but not to standby. (Default = 0)

System

DATA_NOT_UPDATED

UINT

Number of KB not updated by the standby (rounded up to the next KB). Represents variables deleted from the primary that remain in the standby. (Default = 0)

System

BACKUP_APP_MISMATCH

BOOL

  • False (default): The backup application In the 2 Hot Standby controllers are equal.

    NOTE: The backup application resides in flash memory or on the SD memory card of the controller. It is created either by the PLC > Project Backup... > Backup Save command, or by setting the %S66 system bit (Application Backup) to 1.
  • True: All other cases.

System

PLCA_ONLINE

BOOL

Controller A is configured to enter the primary or standby state. (Default = true)

NOTE: Executable only on controller A.

Configuration

PLCB_ONLINE

BOOL

Controller B is configured to enter the primary or standby state. (Default = true)

NOTE: Executable only on controller B.

Configuration

CMD_SWAP

BOOL

  • Set to 1 by program logic or animation table to initiate a switchover. The primary goes into wait, then the standby goes primary, finally the wait goes standby. The command is ignored if there is no standby.

    NOTE: Executable on both primary and standby.
  • Reset to 0 (default) by the system on switchover completion or if there is no standby.

NOTE:
  • This command is designed to be used by the application in response to detected errors. It is not intended to be used for periodic switchovers.

  • If the application has to switchover periodically, the period between switchovers must not be less than 120 seconds.

Application / System

CMD_APP_TRANSFER

BOOL

  • Set to 1 by program logic or animation table to start an application transfer from the primary to the standby. Executable only on the primary.

    NOTE: The application transferred is the backup application, stored in flash memory or on the SD card. If the application running does not match the backup application, perform an application backup (PLC > Project Backup... > Backup Save or set the %S66 system bit to 1) before performing the transfer.
  • Reset to 0 (default) by the system on transfer completion.

Application / System

CMD_RUN_AFTER_TRANSFER

BOOL[0...2]

  • Set to 1 by program logic or animation table to automatically start in Run after a transfer.

    NOTE: Executable only on the primary.
  • Reset to 0 (default) by the system after transfer completion and:

    • remote controller is in Run

    • Controller is not primary

    • by animation table or logic command

Application / System

CMD_RUN_REMOTE

BOOL

  • Set to 1 by program logic or animation table to run the remote controller. This command is ignored if the CMD_STOP_REMOTE is true.

    NOTE: Executable only on the primary.
  • Reset to 0 (default) by the system when the remote controller enters standby or wait state.

Application / System

CMD_STOP_REMOTE

BOOL

  • Set to 1 by program logic or animation table to stop the remote controller.

    NOTE: Executable on the primary, the standby, or a stopped controller.
  • Reset to 0 (default) by the application to end the stop command.

Application

CMD_COMPARE_INITIAL_VALUE

BOOL

  • Set to 1 by program logic or animation table to begin a comparison of the initial values of variables exchanged by the two Hot Standby controllers.

    NOTE: Executable on both primary and standby only in Run mode.
  • Reset to 0 (default) by the system when the comparison is complete, or if the comparison is not possible.

Application / System

INITIAL_VALUE_MISMATCH

BOOL

  • True: if the initial values for exchanged variables are different or if the comparison is not possible.

  • False (false): if the initial values for exchanged variables are identical.

System

MAST_SYNCHRONIZED (1)

BOOL

  • True: if the exchanged data from the previous MAST cycle was received by the standby.

  • False (default): if the exchanged data from at least the previous MAST cycle was not received by the standby.

NOTE: Closely monitor the MAST_SYNCHRONIZED and FAST_SYNCHRONIZED variables related to the MAST and FAST tasks as indicated at the end of this table.

System

FAST_SYNCHRONIZED (1)

BOOL

  • True: if the exchanged data from the previous FAST cycle was received by the standby.

  • False (default): if the exchanged data from at least the previous FAST cycle was not received by the standby.

NOTE: Closely monitor the MAST_SYNCHRONIZED and FAST_SYNCHRONIZED variables related to the MAST and FAST tasks as indicated at the end of this table.

System

SAFE_SYNCHRONIZED

BOOL

  • True: if the exchanged data from the last SAFE cycle was received by the standby.

  • False (default): if, at least, the exchanged data from the last SAFE cycle was not received by the standby.

System

SAFETY_LOGIC_MISMATCH

BOOL

  • True: the SAFE logic part of the application is different in the two controllers.

  • False (default): the SAFE logic part of the application is identical in the two controllers.

NOTE: The content for this element is determined by comparing system word %SW169 for each controller.

LOCAL_HSBY_STS

T_M_ECPU_HSBY_STS

Hot Standby status for the local controller

(see below)

REMOTE_HSBY_STS

T_M_ECPU_HSBY_STS

Hot Standby status for the remote controller

(see below)

(1):

  • Closely monitor the MAST_SYNCHRONIZED, FAST_SYNCHRONIZED, and SAFE_SYNCHRONIZED variables related to the MAST, FAST and SAFE tasks. If its value is zero (False), then the database exchanged between the primary and the standby controllers is not transmitted at each cycle. In this situation, change the configured period of this task with a higher value than its current execution time (for the MAST task: %SW0 > %SW30; for the FAST task %SW1 > %SW33; for the SAFE task %SW4 > %SW42. More details on %SW0 + %SW1 and %SW30 + %SW31 in EcoStruxure™ Control Expert, System Bits and Words, Reference Manual).

  • Example of consequence: upon an Application Program Transfer (APT) command, the primary controller might not be able to transfer the program to the standby controller.

T_M_ECPU_HSBY_STS Data Type

The T_M_ECPU_HSBY_STS data type presents the following elements:

Element

Type

Description

Written by

HSBY_LINK_ERROR

BOOL

  • True: No connection on the Hot Standby link.

  • False: The Hot Standby link is operational.

System

HSBY_SUPPLEMENTARY_LINK_ERROR

BOOL

  • True: No connection on the Ethernet RIO link.

  • False: The Ethernet RIO link is operational.

System

WAIT

BOOL

  • True: The controller is in Run state but waiting to go primary or standby.

  • False: The controller is in standby, primary or stop state.

System

RUN_PRIMARY

BOOL

  • True: The controller is in primary state.

  • False: The controller is in standby, wait or stop state.

System

RUN_STANDBY

BOOL

  • True: The controller is in standby state.

  • False: The controller is in primary, wait or stop state.

System

STOP

BOOL

  • True: The controller is in stop state.

  • False: The controller is in primary, standby or wait state.

System

PLC_A

BOOL

  • True: the controller A/B/Clear switch is in “A” position.

  • False: the controller switch is not in “A” position.

System

PLC_B

BOOL

  • True: the controller A/B/Clear switch is in “B” position.

  • False: the controller switch is not in “B” position.

System

EIO_ERROR

BOOL

  • True: The controller does not detect any of the configured Ethernet RIO drops.

  • False: The controller detects at least one configured Ethernet RIO drop.

NOTE: This bit is always false when no drop is configured.

System

SD_CARD_PRESENT

BOOL

  • True: A valid SD card is inserted.

  • False: No SD card, or an invalid SD card is inserted.

System

LOCAL_RACK_STS

BOOL]

  • True: The local rack configuration is OK.

  • False: The local rack configuration is not OK (for example, modules missing or in incorrect slots, etc.)

Application

MAST_TASK_STATE

BYTE

State of the MAST task:

  • 0: Not existent

  • 1: Stop

  • 2: Run

  • 3: Breakpoint

  • 4: Halt

System

FAST_TASK_STATE

BYTE

State of the FAST task:

  • 0: Not existent

  • 1: Stop

  • 2: Run

  • 3: Breakpoint

  • 4: Halt

System

SAFE_TASK_STATE

BYTE

State of the SAFE task:

  • 0: Not existent

  • 1: Stop

  • 2: Run

  • 3: Breakpoint

  • 4: Halt

System

REGISTER

WORD[0...63]

Unmanaged data added to the application via the Exchange on STBY attribute.

Application