Redundancy-specific system variables

Available for RFC 4072R from 2022.0 LTS

In addition to the general PLCnext Technology system variables, the following system variables are available for operating a redundant system of controllers

Information on the redundant control system

Redundancy role

The LOCAL_RDNCY_INFO system variable is organized as a data structure. The LOCAL_RDNCY_INFO system variable can be used to retrieve various information on the redundant control system.

System variable Type Description
LOCAL_RDNCY_INFO LOCAL_RDNCY_INFO_TYPE Data structure
└ RDNCY_IS_FIRST BOOL If true then redundancy type of the controller isFirst.
└ RDNCY_IS_SECOND BOOL If true then redundancy type of the controller isSecond.
└ RDNCY_IS_PRIMARY BOOL If true then redundancy role of the controller is PRIMARY.
└ RDNCY_IS_BACKUP BOOL If true then redundancy role of the controller is BACKUP.
└ RDNCY_BASICSYNC_OK BOOL If true then the redundant control system is in the Basic Sync state.
└ RDNCY_FOLLOWUPSYNC_OK BOOL If true then the redundant control system is in the FollowUp Sync state.
└ RDNCY_HSBY BOOL If true then the redundant control system is in the HotStandBy state.
└ RDNCY_ERROR WORD Digit of the last diagnosed error in the redundant control system. For details, see the Redundancy error codes
└ RDNCY_NUMBER_OF_SWITCH_OVER INT Number of redundancy role switch-overs since the last restart of the redundant control system.
└ RDNCY_LAST_SWITCH_OVER_REASON INT Cause for the latest redundancy role switch-over, shown as a digit. See next table for detailed descriptions.
└ RDNCY_SYNC_LINK_STATE INT Status of the physical connection at the SYNC interface:
1: Physical connection available
2: No physical connection available
└ RDNCY_CURRENT_SYNC_PORT INT Interface that is used for synchronization.
Values:
1: LAN1
2: SYNC interface

Causes for switch-over

The PRIMARY or BACKUP redundancy role of the controllers determines which of the two controllers manages the process. The most recent cause for a switch-over is indicated in PLCnext Engineer as a digit in the RDNCY_LAST_SWITCH_OVER_REASON system variable.

In addition, the most recent cause for a switch-over is displayed in PLCnext Engineer in the Cockpit → Redundancy Status → Switch Over Reason.

Digit Displayed in PLCnext Engineer Description
0 None No switch-over of the redundancy role since the last time the PRIMARY controller was restarted.
1 FirmwareService The redundancy role was changed by the user.
2 RuntimeException A runtime error occurred on the PRIMARY controller.
3 LinkDownPnLan The physical network connection to Ethernet interface LAN1 was disconnected (LNK LED: off).
4 AllArsLost The PROFINET controller has lost the connection to all PROFINET devices via Ethernet interface LAN1.
5 ArLost The PRIMARY controller has lost the connection to at least one PROFINET device.
6 SystemShutdown The firmware of the PRIMARY controller was stopped by the user.
7 SystemTerminate The firmware of the PRIMARY controller was stopped due to an operating system exception that occurred.
8 PowerDown The PRIMARY controller was disconnected from the power supply.
9 SyncLinkTimeout A timeout occurred on the SYNC interface and on Ethernet interface LAN1.
10 InternalError An internal error occurred.

Power supply

Available from firmware 2023.0 LTS with RFC 4072R only

The RFC 4072R as a dedicated redundancy controller must be set up with redundant power supplies. Therefore, the RFC 4072R is equipped with two power connectors, X1 and X2.

The POWER_SUPPLY and REMOTE_POWER_SUPPLY data structures provide boolean elements for each connector to indicate at which connector voltage is supplied to the RFC 4072R device and its companion in a redundant control system. 

System variable Type Description
POWER_SUPPLY POWER_SUPPLY_TYPE Data structure
└ X1 BOOL If true then voltage is supplied at that connector.
└ X2 BOOL If true then voltage is supplied at that connector.
REMOTE_POWER_SUPPLY POWER_SUPPLY_TYPE Data structure
└ X1 BOOL If true then voltage is supplied at that connector.
└ X2 BOOL If true then voltage is supplied at that connector.

In addition, the RSC DeviceStatusService Status.PowerSupply.X1 and Status.PowerSupply.X2 can be used to query whether a device is supplied with power at the X1 and the X2 connector.

PROFINET system variables

PROFINET controller system variables

The PROFINET controller system variables can be used to retrieve various information on the integrated PROFINET controller functionality. All PROFINET controller system variables are available, except for the PNIO_FORCE_PRIMARY. No PROFINET device system variables are available.

PROFINET system variables on the remote controller

The REMOTE_PROFINET_INFO system variable is organized as a data structure. The REMOTE_PROFINET_INFO system variable can be used to retrieve various information on the integrated PROFINET controller functionality of the remote controller.

Note: The content of this system variable is only valid if the value of the variable LOCAL_RDNCY_INFO.RDNCY_SYNC_LINK_STATE is 1.

System variable Type Description
REMOTE_PROFINET_INFO REMOTE_PROFINET_INFO_TYPE Data structure
└ PNIO_SYSTEM_SF BOOL Diagnostic alarm on a configured PROFINET device
At least one PROFINET device is indicating a system error (diagnostic alarm or maintenance alarm). The error priority can be determined from the PNIO_DIAG_AVAILABLE, PNIO_MAINTENANCE_DEMANDED, and PNIO_MAINTENANCE_REQUIRED variables.
└ PNIO_MAINTENANCE_DEMANDED BOOL Maintenance demand
At least one PROFINET device is indicating the maintenance demand alarm (high-priority maintenance alarm) with an active connection. The PROFINET device can be identified using the RALRM diagnostic block.
└ PNIO_MAINTENANCE_REQUIRED BOOL Maintenance required
At least one PROFINET device is indicating the maintenance requirement alarm (low-priority maintenance alarm) with an active connection. The PROFINET device can be identified using the RALRM diagnostic block.
└ PNIO_CONFIG_STATUS WORD Configuration status of the PROFINET controller
└ PNIO_CONFIG_STATUS_ACTIVE BOOL This variable is set if the desired configuration for the PROFINET controller has been loaded.
In this state, the PROFINET controller attempts to cyclically establish a connection to all devices in the desired configuration.
└ PNIO_CONFIG_STATUS_READY BOOL This variable is set if the PROFINET controller has been initialized correctly. No desired configuration has been loaded by PLCnext Engineer yet.
└ PNIO_CONFIG_STATUS_CFG_FAULT BOOL The desired PROFINET controller configuration has not been applied due to a serious error. In this case, please contact Phoenix Contact.
└ PNIO_FORCE_FAILSAFE BOOL All PROFINET devices are prompted to set their configured substitute values.
If required the system variable can be written/set from the program.

System time

System time on the active controller

see System variables - System time

System time on the remote controller

The REMOTE_DATE_TIME system variable is a system variable organized as a data structure. The REMOTE_DATE_TIME system variable can be used to retrieve information on the system time of the remote controller's internal real time clock (in short, RTC).

Note: The content of this system variable is only valid if the value of the variable LOCAL_RDNCY_INFO.RDNCY_SYNC_LINK_STATE is 1.

System variable Type Description
REMOTE_DATE_TIME RTC_TYPE Data structure
└ HOURS USINT System time (hours)
└ MINUTES USINT System time (minutes)
└ SECONDS USINT System time (seconds)
└ DAY USINT  System time (day)
└ MONTH USINT System time (month)
└ YEAR UINT System time (year)

Device state

Device state on the active controller

see System variables - Device state

Device state on the remote controller

The REMOTE_DEVICE_STATE system variable is a system variable organized as a data structure. The REMOTE_DEVICE_STATE system variable can be used to retrieve various information on the device status of the remote controller.

Note: The content of this system variable is only valid if the value of the variable LOCAL_RDNCY_INFO.RDNCY_SYNC_LINK_STATE is 1.

System variable Type Description
REMOTE_DEVICE_STATE DEVICE_STATE_4xxx_TYPE Data structure
└ BOARD_TEMPERATURE SINT Board temperature (in °C)
└ FAN_FAIL BOOL

The fan is defective.

Device defect due to overheating

Immediately replace the fan when the defect occurs.

└ RAMDISK_USAGE USINT Memory used on the RAM disk
└ CPU_LOAD_ALL_CORES USINT  Average current utilization of all processor cores (in %)
└ CPU_LOAD_PER_CORE CPU_LOAD_PER_CORE_ARRAY Information on the utilization per processor core
     └ [1] USINT Current utilization of processor core 1 (in %)
     └ [2] USINT Current utilization of processor core 2 (in %)

Fan state

Fan state on the active controller

see System variables - Fan state

Fan state on the remote controller

The REMOTE_FAN_STATE system variable is a system variable organized as a data structure. The REMOTE_FAN_STATE system variable can be used to retrieve maintenance or failure information on the optional fan module of the remote controller.

Note: The content of this system variable is only valid if the value of the variable LOCAL_RDNCY_INFO.RDNCY_SYNC_LINK_STATE is 1.

System variable Type Description
REMOTE_FAN_STATE FAN_INFO Data structure
└ FAN_MAINTENANCE BOOL Fan maintenance is required
└ FAN_DEFECT BOOL

The fan is defective.

Device defect due to overheating

Immediately replace the fan when the defect occurs.

User partition

User partition system variables on the active controller

see System variables - User partition

User partition system variables on the remote controller

The REMOTE_USER_PARTITION system variable is organized as data structure. The REMOTE_USER_PARTITION system variable can be used to retrieve various information and memory statistics about the user partition (overlay file system) of the remote controller. The partition is located on the external SD card of the remote controller. This memory is organized in blocks. A block has a constant, fixed size, and a file always occupies one or more blocks. 

A certain number of blocks is reserved in the Linux system for the root user. Those reserved blocks are only available for the root user and ensure that the root user is able to act even if the memory is occupied (e.g. for log output).

Note: The content of this system variable is only valid if the value of the variable LOCAL_RDNCY_INFO.RDNCY_SYNC_LINK_STATE is 1.

System variable Type Description
REMOTE_USER_PARTITION PARTITION_INFO Data structure
└ MEM_TOTAL ULINT Total memory of the partition in bytes
(including reserved blocks)
└ MEM_FREE ULINT Free, available memory in bytes 
(without reserved blocks)
└ MEM_USED ULINT Occupied memory in bytes
(including reserved blocks)
└ MEM_USAGE USINT  Used memory in %
(without reserved blocks)

 


• Published/reviewed: 2024-10-30   ☀  Revision 074 •