Skip to main content

EVC, Exchange Variable Connection

This mechanism simplifies the data exchange between the safety application and the standard application in a Compound Safety PLC.

The sil2_icon_evc.png EVC mechanism uses an editor to support the selection of variables from the safety application that should be used in the standard application.

Figure 3. EVC editor
EVC editor


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 sil2_icon_evc.png EVC allows for the exchange of variables:

  • Within the used Global Variable Lists (GVL), Exchange Variable Lists (sil2_icon_evl.png 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.

Example 1. Example
sil2_evc_safe_appl.png


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

sil2_evc_and.png

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).

Example 2. Example
sil2_evc_safe.png


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.

Example 3. Example of an illegal call:
sil2_evc_use.png


Example 4. Example of a permitted call:
sil2_evc_ues_not.png


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.