EVC, Exchange Variable Connection
This mechanism simplifies the data exchange between the safety application and the standard application in a Compound Safety PLC.
The EVC mechanism uses an editor to support the selection of variables from the safety application that should be used in the standard application.

Then the selected variables are available in the standard application and can be used like conventional variables.
safe_Counter := EVC.POU.safeCounter unsafe_Counter := EVC.EVL.unsafeCounter;
The EVC allows for the exchange of variables:
Within the used Global Variable Lists (GVL), Exchange Variable Lists (
EVL), and programs (PRG) of the safety application
With conventional data types as well as custom data types
The variables selected in the EVC outside of an EVL can be understood as probes, which can be used in the existing safety application to analyze values without any intervention.

The probe S_xActive is provided via EVC in the standard application and can be used for reading.

The selected variables which are located within an EVL can be written in the standard application.
EVC.EVL.xEnable := xCAN_In_ONSWITCH;
This kind of variable can be used as an nonsafe input in the safety application (for example, for the controlled switching off of a machine).

In general, the following applies for variables provided via EVC
Variables within an EVL can be written and read from the standard application without any problems.
Variables outside of an EVL can be read from the standard application without any problems. Write access can result in the safe state of the safety application due to any existing memory protection.
Constraints when using EVC
Function blocks provide only interface variables. This includes all variables which are declared in the declaration part of the FB. That means properties, transitions, actions, and methods cannot be used in the standard application.
Function blocks which are provided by the EVC must not be called by the standard application.


Remarks
All variables provided by EVC are "references" (defined as "REFERENCE TO") to the actual variables of the safe application. This means, for example, that the ADR operator cannot be used on these variables.
Depending on the used controller, it might not be guaranteed that the values provided via EVC are consistent. This is not a problem when exchanging simple data types, with the exception of LINT, ULINT, and LWORD. When exchanging related data, the consistency has to be guaranteed otherwise (for example, with read/write flags).
Checking the EVC status
The EVC establishes a connection between the safety application and the standard application. In order to recognize at runtime whether or not the variables provided by the EVC still refer to the respective variables of the safety application, the EVC provides a mechanism.