Driver-specific functions

Previous chapterNext chapter Show allShow all    Hide allHide all

This driver supports the following functions:


The driver supports the commands 'direct operate' and 'select before operate' (SBO).

If a value is sent to a variable corresponding to a "data attribute" with the name "ctlVal" in a "data object" with the name "Oper" and "functional constraint" CO or SP (*/Oper.ctlVal[CO|SP]), the driver automatically checks which command needs to be used.
For this, the 'data-attribute' /ctlMod[CF] is read out. Depending on the value of that attribute, the corresponding command is executed:

Value 0: Error, execute command not possible
Value 1: an "Operate" command (direct control with normal security) is executed.
Value 2: a "Select" command (select before operate with normal security) is executed.
Value 3: an "Operate" command (direct control with enhanced security) is executed.
Value 4: a "Select" command (select before operate with enhanced security) is executed.

The commands in detail:

Operate command: The value is set directly to */Oper[CO].

Select commands are processed sequentially:
Select command normal security: read from */SBO[CO], write to */Oper[CO].
Select command enhanced security: write to */SBOw[CO], write to */Oper[CO].

The required command sequences are automatically performed in the right sequence by the driver. No further configuration steps are necessary.

The variable "..Oper.ctlNum[CO]" will be set to 0 by the driver after reaching the value 128.


Unbuffered Reports

The IEC 850 driver supports unbuffered reports with predefined data sets and preconfigured allocation of data sets to the reporting control block in the PLC. During startup, all data sets existing in the PLC are read out and sorted according to their usability (number of included variables in the project). This sorting indicates the sequence, in which the system tries to activate free URCBs in LLN0 for reporting. The maximum number of URCBs that are activated depends on the maximum number defined in the driver configuration. All data objects in the data set of the successfully linked RCB are then no longer polled but instead reported spontaneously.
Please consider that you cannot insert single data attributes for the configuration of the data sets. You can only use complete data objects. Otherwise, the PLC will not send time stamp and quality information, which is why the driver will ignore them (see 61850-7-2, Figure 23).

Only FCs ST and MX are report capable.


The following variables exist in your project

urcbmXA01 is included only for informative purposes. In order for reporting to work, it is not necessary to create variables for RCBs.

The PLC also contains a data set "GEDeviceF650/LLN0$MMXU1$MX" with the following content.

This data set is associated to the RCB „LLN0$RP$urcbMXA01" in the PLC configuration by entering its name in the attribute "DatSet".

When starting the driver, the RCBs „LLN0$RP$urcbMXA01" und „LLN0$RP$urcbMXB01" are activated, in case they are still free.
As there are no further appropriate RCBs that contain variables of the project in its data set, the remaining RCBs remain unused. For example, if the project would also contain a variable that is included in the data set "GEDeviceF650/LLN0$eveGGIO1$ST", this would mean that „LLN0$RP$urcbSTA01" would also be activated.

Buffered Reports

The allocation of the BRCBs to the driver is performed via the report ID of the BCRBs configured via the SCL file. URCBs are selected for use up to the configurable maximum number, depending on availabiliy and usability. Generally, BRCBs are preferred over URCBs.

Buffered reports are treated like unbuffered reports, with the following exceptions:

1) The maximum number of URCBs to be used does not apply.

2) The report ID (RptID) must contain a String with the format "zenOn_computername_*", in order to be used by the driver. (e.g. "zenOn_MyServer1_Measurands1")

The contents of the buffer of the BRCBs are deleted automatically by the driver when the first connection after the Runtime start is established. If the connection fails and is reconnected without a restart of the Runtime, the buffer will remain and will be updated.

File Transfer:

There are three implemented functions for the file transfer. The first is for getting the directory, the second for getting files and the third is for deleting files.

To request a directory, you have to send the set value "DIR FileSpec" to the String variable with the name "SERVER!Command" of the type "File Transfer". If the directory was received successfully, the String variable with the name "SERVER!Directory" of the type "File Transfer" will contain the directory contents as readable text. The format of the files is as follows:


To delete a file on the PLC, you have to send the set value "DEL FileName" to the String variable with the name "SERVER!Command" of the type "File Transfer". If the file was received successfully, it is put into the directory set as "Directory for file transfer".


Fetching the file with "Test" from the logical device ""

Send the set value "GET Test" to the variable "Server1!Command" of the type "File Transfer".

The file will be stored in the folder C:\TEMP\Test.

To fetch a file from the PLC, you have to send the set value "GET FileName" to the String variable with the name "SERVER!Command" of the type "File Transfer".


Attributes of the type "ARRAY[…] OF" are not assigned.
Refer to PICS in the appendix for more information on supported resp. needed services.