Notes on the documentation

This description is only intended for the use of trained specialists in control and automation engineering who are familiar with the applicable national standards.
It is essential that the following notes and explanations are followed when installing and commissioning these components.

The responsible staff must ensure that the application or use of the products described satisfy all the requirements for safety, including all the relevant laws, regulations, guidelines and standards.

Disclaimer

The documentation has been prepared with care. The products described are, however, constantly under development.
For that reason the documentation is not in every case checked for consistency with performance data, standards or other characteristics.
In the event that it contains technical or editorial errors, we retain the right to make alterations at any time and without warning.
No claims for the modification of products that have already been supplied may be made on the basis of the data, diagrams and descriptions in this documentation.

Trademarks

Beckhoff®, TwinCAT®, EtherCAT®, Safety over EtherCAT®, TwinSAFE® and XFC® are registered trademarks of and licensed by Beckhoff Automation GmbH.
Other designations used in this publication may be trademarks whose use by third parties for their own purposes could violate the rights of the owners.

Patent Pending

The TwinCAT Technology is covered, including but not limited to the following patent applications and patents:
EP0851348, US6167425 with corresponding applications or registrations in various other countries.

Copyright

© Beckhoff Automation GmbH & Co. KG, Germany.
The reproduction, distribution and utilization of this document as well as the communication of its contents to others without express authorization are prohibited.
Offenders will be held liable for the payment of damages. All rights reserved in the event of the grant of a patent, utility model or design.


Overview

The library TcIEC870_5_103Link.Lib implements an interface. Via this interface single ASDUs ( service data units of the application layer) can be sent and received via the serial interfaces of the PC and the Beckhoff KL6xxx or EL6xxx bus terminals. This interface is placed inside the protocol structure above the link layer (2) and implements necessary transport functions and frame formats. Application functions like for example the general request are not implemented in the interface, but the user can implement them by himself.

The end application is imposed on the software interface of the PLC library. Unlike the implementation of other 101/104 TwinCAT products only one "so called" 'Low level' interface is available. The reason: The IEC 60870-5-102 devices are featuring a lot of vendor specific data. The 'Low level' interface allows the access to this data. The characteristics of both interfaces are described briefly below.

'Low level' interface: IEC 60870-5-103 Serial Link Interface

This interface starts lower down on the protocol stack and enables the sending and/or receipt of individual frames (ASDUs).

Pro: Very flexible; all properties in the ASDU frame can be changed (e.g. an own time stamp, Select/Execute or a special command execution etc.); high performance can be achieved because only the necessary services are implemented; high performance if there are many data points;

Contra: Larger amount of programming work; all services, such as general query, counter query, time synchronisation, command execution, spontaneous data transmission etc. must be implemented by the PLC programmer himself (programmed out); the PLC programmer must be familiar with the protocol standard.

Protocol structure of endsystem:

Selection of application functions from IEC 60870-5-5 | Application process
 | Application layer (7)
Selection of ASDU (service data unit of application layer) from IEC 60870-5-3, IEC 60870-5-4 und IEC 60870-5-103
TwinCAT PLC Library: IEC 60870-5-103 Serial Link (low level) Transport Interface
N/A | Presentation layer (6)
 | Session layer (5)
 | Transport layer (4)
 | Network layer (3)
unbalanced IEC 60870-5-2 IEC 60870-5-1 (FT 1.2) | Link layer (2)
EIA RS485, RS232 (V.24), Fibre Optics | Physical layer (1)

Remark: The layers 3..6 are not used.


Interoperability

TS6504 | TwinCAT PLC Lib: IEC 60870-5-103 Serial Link Interface (master)

Interoperability list according to IEC 60870-5-103

for TwinCAT PLC Library: IEC 870-5-103 control station (master).

Version: 1.1
Date: 29.03.2011

Here you can open/save the protocol interoperability document (zipped PDF).

Table of contents:

  • General information
    • Project information
  • Compatibility
    • System or device
    • Physical layer
      • Electrical interface
      • Optical interface
      • Transfer velocity
    • Link layer
    • Application layer
      • Transfer modus for application data
      • Common address of ASDU
        • Selection of standardised ASDUs in monitoring direction
        • Selection of standardised ASDUs in control direction
    • Selection of standardised information numbers in monitoing direction
    • Selection of standardised information numbers in control direction
    • Basic application functions
    • Miscellaneous
  • Appendix
    • Beckhoff support and service
      • Beckhoff support
      • Beckhoff service
      • Beckhoff company headquarter

General Information

This compatibility list refers to functions supported within IEC 870-5-103.

Compatibility of the individual components has to be agreed for individual projects by all parties involved.

Project information

Projekt No.: ______________________________________________________________________________

Project: ______________________________________________________________________________

Responsible: ______________________________________________________________________________

Date: ______________________________________________________________________________

Compatibility

The selected parameters should be marked in the white control fields as follows:

Function or ASDU is not used
Function or ASDU is used as specified (preferred option)

System or device

System definition
Specifications for the control station
Specifications for the controlled station

Physical layer

Electrical interface

EIA RS-485
Count of load .................. for one protection direction

REMARK: EIA RS-485 defines the unit loads in that way, that 32 of them can be operated at one line.

Single information, see EIA RS 485, article 3

Optical interface

Fibre optics
plactic fibre
F-SMA plug
BFOC/2,5 plug

Transmission speed:

9600 bit/s
19200 bit/s

Link layer

No options for the link layer.

Application layer

Transfer mode for application data

According to this application-related standard, only mode 1 (octet with the lowest value first) according to 4.10 IEC 60870-5-4 is used.

Common address of ASDU

One COMMON ADDRESS of ASDU | Identical with station address | Not identical with station address
More than one COMMON ADDRESS of ASDU |  |

Selection of standardised ASDUs in monitoring direction

<0> := not used | -
<1> :=Time-tagged message | M_TTM_TA_3
<2> := Time-tagged message with relative time | M_TMR_TA_3
<3> := Measurands I | M_MEI_NA_3
<4> := Time-tagged measurands with relative time | M_TME_TA_3
<5> := Identification | M_IRC_NA_3
<6> := Time synchronisation | M_SYN_TA_3
<8> := Termination of general interrogation | M_TGI_NA_3
<9> := Measurands II | M_MEII_NA_3
<10> := Generic data | M_GD_XA_3
<11> := Generic identification | M_GI_XA_3
<23> := List of recorded disturbances | M_LRD_TA_3
<26> := Ready for transmission of disturbance data | M_RTD_TA_3
<27> := Ready for transmission of channel | M_RTC_NA_3
<28> := Ready for transmission of tags | M_RTT_NA_3
<29> := Transmission of tags | M_TOT_NA_3
<30> := Transmission of disturbance values | M_TOV_NA_3
<31> := End of transmission | M_EOT_NA_3

Selection of standardised information numbers in control direction

<0> := not used | -
<6> := Time synchronisation | C_SYN_TA_3
<7> := General interrogation | C_IGI_NA_3
<10> := Generic data | C_GD_NA_3
<20> := General command | C_GRC_NA_3
<21> := Generic command | C_GC_NA_3
<24> := Order for disturbance data transmission | C_ODT_NA_3
<25> := Acknowledgement for disturbance data transmission | C_ADT_NA_3

Selection of standardised ASDUs in monitoring direction

System functions in monitoring direction

INF | Description
<0> | End of general interrogation
<1> | Time synchronisation
<2> | Reset FCB
<3> | Reset KE
<4> | Start / Restart
<5> | First start

Items describing the status in monitoring direction

INF | Description
<16> | Automatic restart active
<17> | Protection signal transfer active
<18> | Protection active
<19> | Reset display
<20> | Latch of monitoring direction
<21> | Test operation
<22> | Parametrisation on site
<23> | Characteristic curve 1
<24> | Characteristic curve 2
<25> | Characteristic curve 3
<26> | Characteristic curve 4
<27> | Input 1
<28> | Input 2
<29> | Input 3
<30> | Input 4

Monitoring messages in monitoring direction

INF | Description
<32> | Measurement monitoring I
<33> | Measurement monitoring V
<35> | Rotating field monitoring
<36> | Trigger cycle monitoring
<37> | UMZ emergency operation
<38> | VT automatic case
<39> | Protection signal transfer defective
<46> | collective message caution
<47> | collective message error

Earth leakage messages in monitoring direction

INF | Description
<48> | Earth leakage L1
<49> | Earth leakage L2
<50> | Earth leakage L3
<51> | Earth leakage forwards, i.e. line
<52> | Earth leakage backwards, i.e. bus bar

Störfall messages in monitoring direction

INF | Description
<64> | Trigger L1
<65> | Trigger L2
<66> | Trigger L3
<67> | Trigger N
<68> | General Trigger
<69> | Trigger L1
<70> | Trigger L2
<71> | Trigger L3
<72> | Auslösung UMZ- emergency operation
<73> | Error place X in Ohm
<74> | Error forwards / Line
<75> | Error backwards / bus bar
<76> | Protection signal transfer signal sent
<77> | Protection signal transfer signal received
<78> | Step 1
<79> | Step 2
<80> | Step 3
<81> | Step 4
<82> | Step 5
<83> | Step 6
<84> | General excitation
<85> | Switch failure
<86> | Trigger measurement system L1
<87> | Trigger measurement system L2
<88> | Trigger measurement system L3
<89> | Trigger measurement system E
<90> | Trigger I>
<91> | Trigger I>>
<92> | Trigger IN>
<93> | Trigger IN>>

AWE messages in monitoring direction

INF | Description
<128> | LS EIN via AWE
<129> | LS EIN via long term AWE
<130> | AWE blocked

Operating measurement in monitoring direction

INF | Description
<144> | Operating measurement I
<145> | Operating measurements I, U
<146> | Operating measurements I, U, P, Q
<147> | Operating measurements IN, UEN
<148> | Operating measurements IL1,2,3, UL1,2,3, P, Q, f

Generic function in monitoring direction

INF | Description
<240> | Read description of all defined groups
<241> | Read values or attributes of all entries of a group
<242> | Read directory of a single entry
<243> | Read value or attribute of a single entry
<244> | End of general interrogation generic data
<249> | Write entry ( with acknowledge)
<250> | Write entry ( with execution)
<251> | Write entry ( with cancel)

Selection of standardised information numbers in control direction

System functions in control direction

INF | Description
<0> | General interrogation disgust
<1> | Time synchronisation

General commands in control direction

INF | Description
<16> | Restart ON/OFF
<17> | Protection signal tansfer ON/OFF
<18> | Protection ON/OFF
<19> | Reset displays
<23> | Activate characteristic curve 1
<24> | Activate characteristic curve 2
<25> | Activate characteristic curve 3
<26> | Activate characteristic curve 4

Generic functions in control direction

INF | Description
<240> | Read description of all defined groups
<241> | Read value or attribute of all entries of one group
<243> | Read directory of single entry
<244> | Read value or attribute of a single entry
<245> | End od general interrogation generic data
<248> | Write entry
<249> | Write entry ( with acknowledge)
<250> | Write entry ( with execution)
<251> | Write entry ( with cancel)

Basic application functons

Test run
Latch of monitoring direction
Disturbance data
Generic services
Private data

Miscellaneous

Measured values are transferred with ASDU <3> and ASDU <9>. According to 7.2.6.8 the maximum of MVAL can be the nominal value multiplied by 1,2 or 2,4 .

In ASDU <3> and ASDU <9> no different (referring) factors can be used, i.e. for each measurement value is one selection allowed.

Measurement reading | Max. MVAL
 | rated value x ( 1 or 2 ) | rated value x ( 2 or 4 )
Current L1 |  |
Current L2 |  |
Current L3 |  |
Voltage L1-E |  |
Voltage L2-E |  |
Voltage L3-E |  |
Real power Q |  |
Frequence f |  |
Voltage between L1 and L2 |  |

Appendix

Beckhoff support and service

Beckhoff and their partners around the world offer comprehensive service and support, making available fast and competent assistance with all questions related to Beckhoff products and system solutions.

Beckhoff Support and Service is available to you wherever you are in the world, and can be reached by telephone, fax or e-mail. The contact addresses for your country may be found in the list of Beckhoff branches and partner firms.

Beckhoff support

Support offers you comprehensive technical assistance, helping you not only with the application of individual Beckhoff products, but also with other, wide-ranging services:

  • World-wide support;
  • D esign, programming and commissioning of complex automation systems;
  • Extensive training program for Beckhoff system components

Please contact your Beckhoff branch office or representative for local support and service on Beckhoff products!

Beckhoff service

The Beckhoff Service Center supports you in all matters of after-sales service:

  • On-site service;
  • Repair service;
  • Spare parts service;
  • Hotline service

Please contact your Beckhoff branch office or representative for local support and service on Beckhoff products!

Beckhoff company headquarter

Beckhoff Automation
Eiserstr. 5
33415 Verl
Germany

Telefon: + 49 (0) 5246/963-0
Fax: + 49 (0) 5246/963-198
E-Mail: info@beckhoff.de
Web: www.beckhoff.de


Introduction

Simple projects with complete sources can be found under : Transport-Interface-Examples.

A PLC application which should communicate with a or sub station via the transport interface needs the following resources:

  • Instance of communication function block: FB_IEC870_5_103TProtocol;
  • Instance of TX/RX data buffer: ST_IEC870_5_103TBuffer;
  • Instance of function block to manipulate the TX/RX data buffer: FB_IEC870_5_103TBufferCtrl;


Introduction: Overview

Introduction (tutorial)

This introduction explains how to implement and configure an IEC60870-5-103 control station (master) within the TwinCAT PLC.

Further topics under construction...


Introduction: Glossary

Glossary

Term | Description
substation, slave, server, controlled station | Synonyms for a subordinate station (which is monitored)
central station, master, client, controlling station | Synonyms for a higher-level station (control station, monitors others stations)
control direction | Data transfer direction from the central station to the substation
monitoring direction | Data transfer direction from the substation to the central station
application objects | IEC information objects in the TwinCAT PLC application (single points, double points, measured values, short floating point values etc.)
APDU | Application protocol data unit
APCI | Application protocol control information
ASDU | Application service data unit
IOA, information object address | Address of the single point, double point, measured value, short floating point value etc.
primary station | Primary station sends commands/requests to the secondary station and controls the data transmission of the secondary station.
secondary station | Secondary station anwers to the requests of the primary station.
combined station | Combined stations are able to act as primary and secondary station (balanced mode).
balanced mode | In balanced mode both stations act as primary and secondary stations and are able to initialize the data transmission.
unbalanced mode | In unbalanced mode only the primary station is able to initialize the data transmissions. The central station acts as primary station and the substation acts as secondary station.


Introduction: Troubleshooting and debugging

Troubleshooting and debugging

Debugging messages written to the application log facilitate troubleshooting of the system. If the "Low level" interface is used then two stages of debugging messages can be activated in an PLC application:

  1. Hexadecimal output of the ASDUs (frames without link layer control header). 32 ASDU data bytes per row are output as hexadecimal numbers. Bigger frames are split into multiple lines. These messages can be activated via the ST_IEC870_5_103TBuffer member variable: eDbg;
  2. Hexadecimal output of the APDUs (serial line frames). 32 APDU data bytes per row are output as hexadecimal numbers. Bigger frames are split into multiple lines. These messages can be activated via the FB_IEC870_5_103TProtocol input variable: bOutDbg;

In order to view the activated debugging messages start the TwinCAT System Manager and activate log view. A debug output is shown below. The two different message types are identified with the respective numbers.

Further diagnostic tools:

  • Portmon for Windows (v3.02, Windows Sysinternals);
  • Diverse protocoll test suite products;


Introduction: Configuration of serial interface

Configuration of serial interface

  • Configuration of standard PC COMx port
  • Configuration of serial KL6xxx bus terminal
  • Configuration of serial EL6xxx bus terminal

1. Configuration of standard PC COMx port

The serial interface can only be added in PC/CX systems.

Right-click on "I/O devices". Select "Append Device". Select "Serial Interface" under "Miscellaneous". Then set the following settings.

1.1. Serial Port tab settings

Serial interface COM1

1.2. Communication Properties tab settings

Select the option KL6xxx1 Mode (Emulation) and set the communication parameter:

Baud rate, here 19200 Baud, 8 data bits, Parity = even, 1 stop bit

2. Configuration of serial KL6xxx bus terminal

The interface is configured within the TwinCAT PLC by the instance of the FB_IEC870_SerialLineCtrlfunction block. Communication parameters like baud rate, parity etc. have to be set via this function block.

3. Configuration of serial EL6xxx bus terminal

The settings for the serial interface can be found in the CoE Online tab (CoE=CanOpen over EtherCAT). The tab is only available for online access to the terminal, i.e. the settings cannot be modified if the System Manager is not linked to the hardware. The settings are stored in the terminal in a non-volatile manner, i.e. the settings are retained even if the voltage supply fails. These data do not have to be re-entered after a terminal scan. If the terminal is replaced, the data from the new terminal become active and have to be adjusted. To avoid this, the modified data can be entered in the Startup tab. During system startup, the data from the Startup tab are transferred to the terminal. Terminals can then be replaced without problem. After a terminal scan, the data have to be re-entered in the Startup tab.

3.1. CoE tab settings

(1) Baud rate, here 19200 Baud

(2) Date frame, 8E1 corresponds to 8 data bits, Parity = even, 1 stop bit

(3) Feature bits -> Enable RTS/CTS = FALSE for EL6001

Double-clicking on the corresponding row brings up a menu in which the settings can be modified.

3.1.1 RS485 operating mode

In the RS485 mode, the data is exchanged by means of half duplex transfer. The transmit and receive lines are connected to one another in RS485 operating mode. As a result, the terminal receives not only the data from other devices, but also its own transmitted data. The own data may disturb the communication. This can be suppressed with the option "Enable half duplex" in the "COM Settings" object (index 8000:06).

3.2. Startup tab settings

All non-standard settings should be entered in the Startup list. During system startup, the data from the Startup tab are transferred to the terminal. Terminals can then be replaced without problem. After a terminal scan, the data have to be re-entered in the Startup tab.

Baud rate, here 19200 Baud

Date frame, 8E1 corresponds to 8 data bits, Parity = even, 1 stop bit

Feature bits -> Enable RTS/CTS = FALSE for EL6001


Telegram structure

IEC 60870-5-103 telegram structure

  • FT 1.2 frame format is used;
  • Frames with fixed and variable block length and single control characters are used;
  • Hamming distance = 4;

Frame with variable length

This frame type is used to transmit user data between controlling and controlled station

byte\bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |  |  |
0 | Start byte 1 (0x68) |  |  |  |  |  |  |  | Header | LPCI | LPDU
1 | Block length |  |  |  |  |  |  |  |
2 | Block length (copy) |  |  |  |  |  |  |  |
3 | Start byte 2 (0x68) |  |  |  |  |  |  |  |
4 | RES | PRM | FCB / ACD | FCV / DFC | Function code |  |  |  | Control field
5 | Link address |  |  |  |  |  |  |  |
6 | Type identification (monitoring-direction, control-direction) |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER | ASDU
7 | SQ | Number of object |  |  |  |  |  |  |
8 | Cause of transmission (monitoring-direction, control-direction) |  |  |  |  |  |  |  |
9 | ASDU address |  |  |  |  |  |  |  |
10 | Function type |  |  |  |  |  |  |  |
11 | Information number |  |  |  |  |  |  |  | Info-object
 | Information elements |  |  |  |  |  |  |  |
n-1 | Checksum |  |  |  |  |  |  |  | Tail | LPCI
n | Stop byte (0x16) |  |  |  |  |  |  |  |

Frame with fixed length

This frame type is used for link layer services. Sometimes used as an confirmation.

byte\bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0 | Start byte 1 (0x10) |  |  |  |  |  |  |  |
1 | RES | PRM | FCB / ACD | FCV / DFC | Function code |  |  |  | Control field
2 | Link address |  |  |  |  |  |  |  |
3 | Checksum |  |  |  |  |  |  |  |
4 | Stop byte (0x16) |  |  |  |  |  |  |  |

Single character data

Single characters are used to confirm link layer and user data transmissions.

  • 0xE5 (positive acknowledge);


103 Data Types

Standard IEC 60870-5-103 data types

Monitoring direction | Control direction | Dec | Hex | Description
M_TYPEUNDEF_3 | C_TYPEUNDEF_3 | 0 | 0x00 | Not used
M_TTM_TA_3 | - | 1 | 0x01 | Time-tagged message
M_TMR_TA_3 | - | 2 | 0x02 | Time-tagged message with relative time
M_MEI_NA_3 | - | 3 | 0x03 | Measurands I
M_TME_TA_3 | - | 4 | 0x04 | Time-tagged measurands with relative time
M_IRC_NA_3 | - | 5 | 0x05 | Identification
M_SYN_TA_3 | C_SYN_TA_3 | 6 | 0x06 | Time synchronisation
- | C_IGI_NA_3 | 7 | 0x07 | Initialization of general interrogation
M_TGI_NA_3 | - | 8 | 0x08 | General interrogation
M_MEII_NA_3 | - | 9 | 0x09 | Measurands II
M_GD_XA_3 | C_GD_NA_3 | 10 | 0x0A | Generic data
M_GI_XA_3 | - | 11 | 0x0B | Generic identification
- | - | 12..19 | 0x0C..0x13 | Reserved (standard area)
- | C_GRC_NA_3 | 20 | 0x14 | General command
- | C_GC_NA_3 | 21 | 0x15 | Generic command
- | - | 22 | 0x16 | Reserved (standard area)
M_LRD_TA_3 | - | 23 | 0x17 | List of recorded disturbances
- | C_ODT_NA_3 | 24 | 0x18 | Order for disturbance data transmission
- | C_ADT_NA_3 | 25 | 0x19 | Acknowledgement for disturbance data transmission
M_RTD_TA_3 | - | 26 | 0x1A | Ready for transmission of disturbance data
M_RTC_NA_3 | - | 27 | 0x1B | Ready for transmission of channel
M_RTT_NA_3 | - | 28 | 0x1C | Ready for transmission of tags
M_TOT_NA_3 | - | 29 | 0x1D | Transmission of tags
M_TOV_NA_3 | - | 30 | 0x1E | Transmission of disturbance values
M_EOT_NA_3 | - | 31 | 0x1F | End of transmission
- | - | 32..255 | 0x1F..0xFF | Reserved (user defined area)


M_TTM_TA_3

Time-tagged message.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x1 (1) | = M_TTM_TA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = TRUE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  |  |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  |  |  |  |  |  |  |  |  |  | Information number
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 6 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | 0 | 0 | 0 | 0 | 0 | 0 | DPI |  | DPI = Double-point information
 |  |  | |--- | data[1..4] = | CP32Time2a |  |  |  |  |  |  |  | Four octets binary time tag
 |  |  | |--- | data[5] = | SIN |  |  |  |  |  |  |  | Supplementary information
 |  |  | |--- | data[6..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_TMR_TA_3

Time-tagged message with relative time.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x2 (2) | = M_TMR_TA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = TRUE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  |  |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  |  |  |  |  |  |  |  |  |  | Information number
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 10 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | 0 | 0 | 0 | 0 | 0 | 0 | DPI |  | DPI = Double-point information
 |  |  | |--- | data[1..2] = | RET |  |  |  |  |  |  |  | Relative time
 |  |  | |--- | data[3..4] = | FAN |  |  |  |  |  |  |  | Fault number
 |  |  | |--- | data[5..8] = | CP32Time2a |  |  |  |  |  |  |  | Four octets binary time tag
 |  |  | |--- | data[9] = | SIN |  |  |  |  |  |  |  | Supplementary information
 |  |  | |--- | data[10..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_MEI_NA_3

Measurands I.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x3 (3) | = M_MEI_NA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = i |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  |  |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  |  |  |  |  |  |  |  |  |  | Information number
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 8 * i |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = |  |  |  |  |  | RES | ER | OV | MEA = Measurand with quality descriptor
 |  |  | |--- | data[1] = | MVAL |  |  |  |  |  |  |  | Current L2
 |  |  | |--- | data[2] = |  |  |  |  |  | RES | ER | OV | MEA = Measurand with quality descriptor
 |  |  | |--- | data[3] = | MVAL |  |  |  |  |  |  |  | Voltage L1-L2
 |  |  | |--- | data[4] = |  |  |  |  |  | RES | ER | OV | MEA = Measurand with quality descriptor
 |  |  | |--- | data[5] = | MVAL |  |  |  |  |  |  |  | Active power P
 |  |  | |--- | data[6] = |  |  |  |  |  | RES | ER | OV | MEA = Measurand with quality descriptor
 |  |  | |--- | data[7] = | MVAL |  |  |  |  |  |  |  | Reactive power Q
 |  |  | |--- | data[8..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_TME_TA_3

Time-tagged measurands with relative time

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x4 (4) | = M_TME_TA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = TRUE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  |  |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  |  |  |  |  |  |  |  |  |  | Information number
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 12 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..3] = | R32 |  |  |  |  |  |  |  | Short circuit location
 |  |  | |--- | data[4..5] = | RET |  |  |  |  |  |  |  | Relative time
 |  |  | |--- | data[6..7] = | FAN |  |  |  |  |  |  |  | Fault number
 |  |  | |--- | data[8..11] = | CP32Time2a |  |  |  |  |  |  |  | Four octets binary time tag
 |  |  | |--- | data[12..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_MEII_NA_3

Measurands II.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x9 (9) | = M_MEII_NA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = i |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  |  |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  |  |  |  |  |  |  |  |  |  | Information number
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 18 * i |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = |  |  |  |  |  | RES | ER | OV | MEA = Measurand with quality descriptor
 |  |  | |--- | data[1] = | MVAL |  |  |  |  |  |  |  | Current L1
 |  |  | |--- | data[2] = |  |  |  |  |  | RES | ER | OV | MEA = Measurand with quality descriptor
 |  |  | |--- | data[3] = | MVAL |  |  |  |  |  |  |  | Current L2
 |  |  | |--- | data[4] = |  |  |  |  |  | RES | ER | OV | MEA = Measurand with quality descriptor
 |  |  | |--- | data[5] = | MVAL |  |  |  |  |  |  |  | Current L3
 |  |  | |--- | data[6] = |  |  |  |  |  | RES | ER | OV | MEA = Measurand with quality descriptor
 |  |  | |--- | data[7] = | MVAL |  |  |  |  |  |  |  | Voltage L1-E
 |  |  | |--- | data[8] = |  |  |  |  |  | RES | ER | OV | MEA = Measurand with quality descriptor
 |  |  | |--- | data[9] = | MVAL |  |  |  |  |  |  |  | Voltage L2-E
 |  |  | |--- | data[10] = |  |  |  |  |  | RES | ER | OV | MEA = Measurand with quality descriptor
 |  |  | |--- | data[11] = | MVAL |  |  |  |  |  |  |  | Voltage L3-E
 |  |  | |--- | data[12] = |  |  |  |  |  | RES | ER | OV | MEA = Measurand with quality descriptor
 |  |  | |--- | data[13] = | MVAL |  |  |  |  |  |  |  | Active power P
 |  |  | |--- | data[14] = |  |  |  |  |  | RES | ER | OV | MEA = Measurand with quality descriptor
 |  |  | |--- | data[15] = | MVAL |  |  |  |  |  |  |  | Reactive power Q
 |  |  | |--- | data[16] = |  |  |  |  |  | RES | ER | OV | MEA = Measurand with quality descriptor
 |  |  | |--- | data[17] = | MVAL |  |  |  |  |  |  |  | Frequency f
 |  |  | |--- | data[18..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_LRD_TA_3

List of recorded disturbances.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x17 (23) | = M_LRD_TA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = i |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  |  |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  | = 0 |  |  |  |  |  |  |  |  | not used
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = i * 10 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..1] = | FAN |  |  |  |  |  |  |  | Fault number | Dataset 1
 |  |  | |--- | data[2] = | RES |  |  |  | OTEV | TEST | TM | TP | SOF = Status of fault
 |  |  | |--- | data[3..9] = | CP56Time2a |  |  |  |  |  |  |  | Seven octets binary time tag
 |  |  | |--- | data[10..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  |  | Dataset 2..i


M_RTD_TA_3

Ready for transmission of disturbance data.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | 0x1A (26) | = M_RTD_TA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = TRUE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  |  |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  | = 0 |  |  |  |  |  |  |  |  | not used
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 15 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | 0 |  |  |  |  |  |  |  | not used
 |  |  | |--- | data[1] = | TOV |  |  |  |  |  |  |  | Type of disturbance values
 |  |  | |--- | data[2..3] = | FAN |  |  |  |  |  |  |  | Fault number
 |  |  | |--- | data[4..5] = | NOF |  |  |  |  |  |  |  | Number of grid faults
 |  |  | |--- | data[6] = | NOC |  |  |  |  |  |  |  | Number of channels
 |  |  | |--- | data[7..8] = | NOE |  |  |  |  |  |  |  | Number of information elements of a channel
 |  |  | |--- | data[9..10] = | INT |  |  |  |  |  |  |  | Interval
 |  |  | |--- | data[11..14] = | CP32Time2a |  |  |  |  |  |  |  | Four octets binary time tag
 |  |  | |--- | data[15..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_RTC_NA_3

Ready for transmission of channel.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x1B (27) | = M_RTC_NA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = TRUE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  |  |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  | = 0 |  |  |  |  |  |  |  |  | not used
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 17 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | 0 |  |  |  |  |  |  |  | not used
 |  |  | |--- | data[1] = | TOV |  |  |  |  |  |  |  | Type of disturbance value
 |  |  | |--- | data[2..3] = | FAN |  |  |  |  |  |  |  | Fault number
 |  |  | |--- | data[4] = | ACC |  |  |  |  |  |  |  | Actual channel
 |  |  | |--- | data[5..8] = | R32 |  |  |  |  |  |  |  | RPV = Rated primary value
 |  |  | |--- | data[9..12] = | R32 |  |  |  |  |  |  |  | RSV = Rated secondary value
 |  |  | |--- | data[13..16] = | R32 |  |  |  |  |  |  |  | RFA = Reference factor
 |  |  | |--- | data[17..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_RTT_NA_3

Ready for transmission of tags.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | 0x1C (28) | = M_RTT_NA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = TRUE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  |  |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  | = 0 |  |  |  |  |  |  |  |  | not used
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 4 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | 0 |  |  |  |  |  |  |  | not used
 |  |  | |--- | data[1] = | 0 |  |  |  |  |  |  |  | not used
 |  |  | |--- | data[2..3] = | FAN |  |  |  |  |  |  |  | Fault number
 |  |  | |--- | data[4..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_TOT_NA_3

Transmission of tags.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x1D (29) | = M_TOT_NA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = TRUE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  |  |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  | = 0 |  |  |  |  |  |  |  |  | not used
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 5 + (i * 3) |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..1] = | FAN |  |  |  |  |  |  |  | Fault number
 |  |  | |--- | data[2] = | NOT |  |  |  |  |  |  |  | Number of tags
 |  |  | |--- | data[3..4] = | TAP |  |  |  |  |  |  |  | Tag position
 |  |  | |--- | data[5] = |  |  |  |  |  |  |  |  | Function code/type | Tag 1
 |  |  | |--- | data[6] = |  |  |  |  |  |  |  |  | Information number
 |  |  | |--- | data[7] = | 0 |  |  |  |  |  | DPI |  | Double point information
 |  |  | |--- | data[8..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  |  | Tag 2..i


M_TOV_NA_3

Transmission of disturbance values.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x1E (30) | = M_TOV_NA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = TRUE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  |  |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  | = 0 |  |  |  |  |  |  |  |  | not used
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 8 + (i *2) |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | 0 |  |  |  |  |  |  |  | not used
 |  |  | |--- | data[1] = | TOV |  |  |  |  |  |  |  | Type of disturbance values
 |  |  | |--- | data[2..3] = | FAN |  |  |  |  |  |  |  | Fault number
 |  |  | |--- | data[4] = | ACC |  |  |  |  |  |  |  | Actual channel
 |  |  | |--- | data[5] = | NDV |  |  |  |  |  |  |  | Number of relevant disturbance values per ASDU
 |  |  | |--- | data[6..7] = | NFE |  |  |  |  |  |  |  | Number of the ASDU's first information element
 |  |  | |--- | data[8..9] = | SDV |  |  |  |  |  |  |  | Single disturbance value 1
 |  |  | |--- | data[10..11] = | SDV |  |  |  |  |  |  |  | Single disturbance value 2
 |  |  | |--- | data[12..IEC870_MAX_ASDU_DATA_BYTE] = | SDV |  |  |  |  |  |  |  | Single disturbance value 3..i


M_EOT_NA_3

End of transmission.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x1F (31) | = M_EOT_NA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = TRUE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  |  |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  | = 0 |  |  |  |  |  |  |  |  | not used
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 5 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | TOO |  |  |  |  |  |  |  | Type of order
 |  |  | |--- | data[1] = | TOV |  |  |  |  |  |  |  | Type of disturbance values
 |  |  | |--- | data[2..3] = | FAN |  |  |  |  |  |  |  | Fault number
 |  |  | |--- | data[4] = | ACC |  |  |  |  |  |  |  | Actual channel
 |  |  | |--- | data[5..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_IRC_NA_3

Identification.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x5 (5) | = M_IRC_NA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = TRUE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  |  |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  |  |  |  |  |  |  |  |  |  | Information number
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 13 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | COL |  |  |  |  |  |  |  | Compatibility level
 |  |  | |--- | data[1..8] = | ASC |  |  |  |  |  |  |  | ASCII characters
 |  |  | |--- | data[9..12] = 0x20 if not used | free |  |  |  |  |  |  |  | Internal vendor identification
 |  |  | |--- | data[13..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_TGI_NA_3

Termination of general interrogation.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x8 (8) | = M_TGI_NA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = TRUE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  | = GLB |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  |  |  |  |  |  |  |  |  |  | Information number
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 1 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | SCN |  |  |  |  |  |  |  | Scan number
 |  |  | |--- | data[1..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_SYN_TA_3

Time synchronisation.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x6 (6) | = M_SYN_TA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = TRUE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  | = GLB |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  |  |  |  |  |  |  |  |  |  | Information number
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 7 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..6] = | CP56Time2a |  |  |  |  |  |  |  | Seven octets binary time format
 |  |  | |--- | data[7..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_GI_XA_3

Generic identification.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0xB (11) | = M_GI_XA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = TRUE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  | GEN |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  |  |  |  |  |  |  |  |  |  | Information number
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = variable |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | RII |  |  |  |  |  |  |  | Return information identifier
 |  |  | |--- | data[1] = | GROUP |  |  |  |  |  |  |  | GIN = Generic identification number
 |  |  | |--- | data[2] = | ENTRY
 |  |  | |--- | data[3] = | CONT | COUNT | NO |  |  |  |  |  | NDE = Number of descriptive elements
 |  |  | |--- | data[4] = | KOD |  |  |  |  |  |  |  | Kind of description | Element 1
 |  |  | |--- | data[5] = | DATATYPE |  |  |  |  |  |  |  | GDD = Generic data descrition
 |  |  | |--- | data[6] = | DATASIZE
 |  |  | |--- | data[7] = | CONT | NUMBER
 |  |  | |--- | data[8..8+(DATASIZE*NUMBER)] = | GID |  |  |  |  |  |  |  | Generic identification data
 |  |  | |--- | data[..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  |  | Element 2..i


M_GD_XA_3

Generic data.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0xA (10) | = M_GD_XA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = TRUE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  | GEN |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  |  |  |  |  |  |  |  |  |  | Information number
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = variable |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | RII |  |  |  |  |  |  |  | Return information identifier
 |  |  | |--- | data[1] = | CONT | COUNT | NO |  |  |  |  |  | NGD = Number of generic data sets
 |  |  | |--- | data[2] = | GROUP |  |  |  |  |  |  |  | GIN = Generic identification number | Dataset 1
 |  |  | |--- | data[3] = | ENTRY
 |  |  | |--- | data[4] = | KOD |  |  |  |  |  |  |  | Kind of description
 |  |  | |--- | data[5] = | DATATYPE |  |  |  |  |  |  |  | GDD = Generic data description
 |  |  | |--- | data[6] = | DATASIZE
 |  |  | |--- | data[7] = | CONT | NUMBER
 |  |  | |--- | data[8..8+(DATASIZE*NUMBER)] = | GID |  |  |  |  |  |  |  | Generic identification data
 |  |  | |--- | data[..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  |  | Dataset 2..i


C_SYN_TA_3

Time synchronisation.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x6 (6) | = C_SYN_TA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = TRUE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  | := GLB |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  |  |  |  |  |  |  |  |  |  | Information number
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 7 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..6] = | CP56Time2a |  |  |  |  |  |  |  | Sevent octets binary time tag
 |  |  | |--- | data[7..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_IGI_NA_3

General interrogation.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x7 (7) | = C_IGI_NA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = TRUE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  | := GLB |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  |  |  |  |  |  |  |  |  |  | Information number
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 1 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | SCN |  |  |  |  |  |  |  | Scan number
 |  |  | |--- | data[1..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_GD_NA_3

Generic data.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x0A (10) | = C_GD_NA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  | := GEN |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  |  |  |  |  |  |  |  |  |  | Information number
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = variable |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | RII |  |  |  |  |  |  |  | Return information identifier
 |  |  | |--- | data[1] = | CONT | COUNT | NO |  |  |  |  |  | NGD = Number of generic data sets
 |  |  | |--- | data[2] = | GROUP |  |  |  |  |  |  |  | GIN = Generic identification number | Dataset 1
 |  |  | |--- | data[3] = | ENTRY
 |  |  | |--- | data[4] = | KOD |  |  |  |  |  |  |  | Kind of description
 |  |  | |--- | data[5] = | DATATYPE |  |  |  |  |  |  |  | GDD = Generic data description
 |  |  | |--- | data[6] = | DATASIZE
 |  |  | |--- | data[7] = | CONT | NUMBER
 |  |  | |--- | data[8] = | GID |  |  |  |  |  |  |  | Generic identification data
 |  |  | |--- | data[9..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  |  | Dataset 2..i


C_GRC_NA_3

General command.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x14 (20) | = C_GRC_NA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = TRUE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  | := GLB |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  |  |  |  |  |  |  |  |  |  | Information number
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 2 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = |  |  |  |  |  |  | DCS |  | DCO = Double command
 |  |  | |--- | data[1] = | RII |  |  |  |  |  |  |  | Return information identifier
 |  |  | |--- | data[2..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_GC_NA_3

Generic command.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x15 (21) | = C_GC_NA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = TRUE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  | := GEN |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  |  |  |  |  |  |  |  |  |  | Information number
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 2 + ( i * 3 ) |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | RII |  |  |  |  |  |  |  | Return information identification
 |  |  | |--- | data[1] = | NOG |  |  |  |  |  |  |  | Number of generic data sets
 |  |  | |--- | data[2] = | GROUP |  |  |  |  |  |  |  | GIN = Generic identification number | Dataset 1
 |  |  | |--- | data[3] = | ENTRY
 |  |  | |--- | data[4] = | KOD |  |  |  |  |  |  |  | Kind of description
 |  |  | |--- | data[5..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  |  | Dataset 2..i


C_ODT_NA_3

Order of disturbance data transmission.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x18 (24) | = C_ODT_NA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = TRUE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  |  |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  | = 0 |  |  |  |  |  |  |  |  | not used
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 5 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | TOO |  |  |  |  |  |  |  | Type of order
 |  |  | |--- | data[1] = | TOV |  |  |  |  |  |  |  | Type of disturbance value
 |  |  | |--- | data[2..3] = | FAN |  |  |  |  |  |  |  | Fault number
 |  |  | |--- | data[4] = | ACC |  |  |  |  |  |  |  | Actual channel
 |  |  | |--- | data[5..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  |


C_ADT_NA_3

Acknowledgement for disturbance data transmission.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x19 (25) | = C_ADT_NA_3 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = TRUE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | fc |  |  |  |  |  |  |  |  |  |  | Function code/type
 | |--- | n |  | = 0 |  |  |  |  |  |  |  |  | not used
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 5 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | TOO |  |  |  |  |  |  |  | Type of order
 |  |  | |--- | data[1] = | TOV |  |  |  |  |  |  |  | Type of disturbance value
 |  |  | |--- | data[2..3] = | FAN |  |  |  |  |  |  |  | Fault number
 |  |  | |--- | data[4] = | ACC |  |  |  |  |  |  |  | Actual channel
 |  |  | |--- | data[5..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  |


Function type

Function type (code)

Type | Description
0..127 | Reserved (private area)
128 | Distance protection
129 | Not used (compatible area)
130..143 | Reserved (private area)
144..145 | Not used (compatible area)
146..159 | Reserved (private area)
160 | Overcurrent protection
161 | Not used (compatible area)
162..175 | Reserved (private area)
176 | Transformer differential protection
177 | Not used (compatible area)
178..191 | Reserved (private area)
192 | Line dirrerential protection
193 | Not used (compatible area)
194..207 | Reserved (private area)
208 | Not used (compatible area)
209 | Not used (compatible area)
210..223 | Reserved (private area)
224 | Not used (compatible area)
225 | Not used (compatible area)
226..239 | Reserved (private area)
240 | Not used (compatible area)
241 | Not used (compatible area)
242..253 | Reserved (private area)
254 | Generic function (GEN)
255 | Global function (GLB)


Information number

Number | Monitoring direction | Control direction
0..15 | System functions | System functions
16..31 | State | General commands
32..47 | Control | Not used
48..63 | Earth faults | Not used
64..127 | Short-circuit faults | Not used
128..143 | Automatic reclose | Not used
144..159 | Operating measured values | Not used
160..239 | Not used | Not used
240..255 | Generic functions | Generic functions


ACC

Actual channel: <0..255>


ASC

ASCII 8 bit code: <0..255>


COL

Compatibility level: <0..255>


CONT

Continuous flag

  • <0> no following ASDU with the same RII;
  • <1> following ASDU has the same RII;


COUNT

One bit counter for ASDU with equal RII: <0..1>


DATASIZE

Data size: <1..255>


DATATYPE

Data type: <0..255>

  • <0> no data
  • <1> OS8ASCII
  • <2> PACKEDBITSTRING
  • <3> UI
  • <4> I
  • <5> UF
  • <6> F
  • <7> R32
  • <8> R64
  • <9> Double poing information
  • <10> Single poing information
  • <11>
  • <12>
  • <13>
  • <14>
  • <15>
  • <16>
  • <17>
  • <18>
  • <19>
  • <20>
  • <21>
  • <22>
  • <23> data struct
  • <24> index
  • <25..255> reserved


ENTRY

Entry identification: <0..255>


FAN

Fault number: <0..65535>


GROUP

Group identification: <0..255>


INT

Interval: <1..65535> [µs]


KOD

Kind of description: <0..255>

  • <0> no KOD specified
  • <1> actual value
  • <2> default value
  • <3> range (min, max, step size)
  • <4> reserved
  • <5> precision
  • <6> factor
  • <7> % reference
  • <8> enumeration
  • <9> dimension
  • <10> description
  • <11> reserved
  • <12> password entry
  • <13> is read only
  • <14> is write only
  • <15> reserved
  • <16> reserved
  • <17> reserved
  • <18> reserved
  • <19> corresponding function type and information number
  • <20> corresponding event
  • <21> enumerated text array
  • <22> enumerated value array
  • <23> related entries
  • <24..255> reserved


MVAL

Measured value:<-1..+1.-2E-12>


NDV

Number of relevant disturbance values per ASDU: <1..255>

  • <1..25> used
  • <26.255> not used


NFE

Number of the ASDU's first information element: <0..65535>


NO

Number of generic data sets: <0..63>


NOC

Number of channels: <0..255>


NOE

Number of information elements of a channel: <0..65535>


NOF

Number of grid faluts: <0..65535>


NOG

Number of generic identifications: <0..255>


NOT

Number of tags: <1..255>


RET

Relative time: <0..65535>


RII

Return information identifier.

USINT <0..255>


SCN

Scan number: <0..255>


SDV

Single disturbance value: <-1..+1-2E-15>


SIN

Supplementary information: <0..255>


TAP

Tag position: <0..65535>


TOO

Type of order: <1..255>


TOV

Type of disturbance value: <0..255>


Information elements

Other information elements

RES

ER

OV

OTEV

TEST

TM

TP


FB_IEC870_5_103TProtocol

FUNCTION_BLOCK FB_IEC870_5_103TProtocol

The FB_IEC870_5_103TProtocol communication block implements the transport functions of the IEC 60870-5-1 and IEC 60870-5-2 link layer. In the event of a protocol error an associated error code is issued at the function block output and the data transfer is interrupted. The data exchange can be reactivated by calling the INIT function block action. The communication block expects a TX/RX data buffer variable. This variable must be transferred to the block via VAR_IN_OUT.

The function block features the following actions:

  • INIT (initialises the function block). In the default configuration the TX/RX data buffer are cleared. The bRetainBuffer member variable of the protPara structure controls the reset bahaviour of TX/RX data buffer.

Protocol configuration

The communication block has a structured protPara variable. Protocol parameters such as timeout times or connection addresses etc. can be configured via this variable.

VAR_IN_OUT

VAR_IN_OUT
        hSerial         : T_HSERIALCTRL;             (* Serial link control handle *)
 buffer          : ST_IEC870_5_103TBuffer; (* TX/RX data buffer *)
END_VAR

hSerial: Connection handle to FB_IEC870_SerialLineCtrl function block. The data to be sent and received are excahged with the FB_IEC870_SerialLineCtrl function block.

buffer: TX/RX data buffer.

VAR_INPUT

VAR_INPUT
        protPara        : ST_IEC870_5_101ProtocolParams; (* IEC60870-5-101/103 protocol parameters *)
 bOutDbg                 : BOOL;           (* Enable/disable debug output *)
END_VAR

protPara: IEC60870-5-101/103 protocol parameters.

bOutDbg:: Activates/deactivates the debug output of the frames in the TwinCAT System Manager logger view.

VAR_OUTPUT

VAR_OUTPUT
        bError          : BOOL;
        nErrID          : UDINT;
        eDTState        : E_IEC870_5_101SerialLinkState := eSERIALLINK_DISCONNECTED; (* Data transfer state *)
ND_VAR

bError: This output is switched to TRUE if an error occurs during data transfer.

nErrID: Returns an error code if the bError output is set.

eState: Status of the data exchange to the master.

Example:

Sample projects: IEC60870-5-103 Serial Link Interface

Development Environment | Target System | PLC libraries to include
TwinCAT v2.10.0 Build >= 1313 | PC or CX (x86, ARM) | TcIEC870_5_103Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; TcIEC870_5_101Link.Lib; COMlibV2.Lib; are included automatically )


FB_IEC870_5_103TBufferCtrl

FUNCTION_BLOCK FB_IEC870_5_103TBufferCtrl

This function block changes the content of the TX/RX data buffer. This data buffer ist used by the communication via the IEC60870-5-103 Serial Link Interface.

The function block has the following actions:

  • RxRemoveObj (removes the oldest Fifo entry from the RX-Fifo);
  • RxReset (deletes all RX-Fifo entries, resets the RX-Fifo);
  • TxAddObj (inserts a new Fifo entry in the TX-Fifo);
  • TxReset (deletes all TX-Fifo entries, resets the TX-Fifo);

The content of the TX/RX data buffer can be changed by the call of one of the listed actions above.

VAR_IN_OUT

VAR_IN_OUT
        buffer  : ST_IEC870_5_103TBuffer; (* TX/RX data buffer *)
END_VAR

buffer: TX/RX data buffer. The TX/RX buffer parameters (like e.g. asduSize ) have to be configured before using.

VAR_INPUT

VAR_INPUT
        putObj  : ST_IEC870_5_103AOGen; (* ASDU to send *)
END_VAR

putObj: Data unit (ASDU) to be sent.

VAR_OUTPUT

VAR_OUTPUT
        getObj  : ST_IEC870_5_103AOGen; (* received ASDU *)
 bOk     : BOOL; (* TRUE = action succesfully, FALSE=Fifo overflow or fifo empty *)
END_VAR

getObj: Received data unit (ASDU).

bOk: This variable becomes TRUE, if a new entry was inserted or removed successfully from the Fifo. This variable becomes FALSE at a buffer overflow and if no entry could be removed, because the Fifo was already empty.

Development Environment | Target System | PLC libraries to include
TwinCAT v2.10.0 Build >= 1313 | PC or CX (x86, ARM) | TcIEC870_5_103Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; TcIEC870_5_101Link.Lib; COMlibV2.Lib; are included automatically )


F_GetVersionTcIEC870_5_103Link

FUNCTION F_GetVersionTcIEC870_5_103Link

This function reads version information from the plc library.

FUNCTION F_GetVersionTcIEC870_5_103Link: UINT

VAR_INPUT
        nVersionElement : INT;
END_VAR

nVersionElement : Version element, that is to be read. Possible parameters:

  • 1 : major number;
  • 2 : minor number;
  • 3 : revision number;
Development Environment | Target System | PLC libraries to include
TwinCAT v2.10.0 Build >= 1313 | PC or CX (x86, ARM) | TcIEC870_5_103Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; TcIEC870_5_101Link.Lib; COMlibV2.Lib; are included automatically )


F_iecApdu103ToAsduLen

FUNCTION F_iecApdu103ToAsduLen

The function calculates for the IEC 60870-5-103 protocol the maximum available ASDU byte length with the configurated frame and link address field length. The maximum available ASDU length is for example required for the configuration of the ST_IEC870_5_103T buffer variable. This data structure (TX/RX data buffer) is used for the data exchange via the IEC60870-5-103 Serial Link Interface.

FUNCTION F_iecApdu103ToAsduLen: BYTE

VAR_INPUT
        FRAMELength     : BYTE;
        eLinkAddrSize   : E_IEC870_5_101LinkAddrSize;
END_VAR

FRAMELength : Max. available APDU frame length (see compatibility list).

eLinkAddrSize: Link address field octet length (see compatibility list).

Development Environment | Target System | PLC libraries to include
TwinCAT v2.10.0 Build >= 1313 | PC or CX (x86, ARM) | TcIEC870_5_103Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; TcIEC870_5_101Link.Lib; COMlibV2.Lib; are included automatically )


ST_IEC870_5_103TBuffer

TYPE ST_IEC870_5_103TBuffer

This data structure is used for data exchange (TX/RX data buffer) via the IEC60870-5-103 Serial Link Interface.

TYPE ST_IEC870_5_103TBuffer :
STRUCT
        eDbg    : E_IEC870_5_101FifoDbgFlags :=eIEC870_FIFO_DBG_OFF; (* enable/disable log view hex output *)
 asduSize : BYTE := 249; (* max. length of ASDU data *)
        mode     : DWORD := 0; dataLink : ST_IEC870_5_101DataLink; (* internal tx/rx buffer *)
ND_STRUCT
END_TYPE

eDbg: Debug output parameter.

asduSize: Common asdu address octet size.

mode: Reserved, not used. This value has to be zero.

dataLink: Internal Tx/Rx buffer. The access to the elements of this data structure should only occur with an instance of the function block FB_IEC870_5_103TBufferCtrl, not directly.

The TX/RX data buffer uses internal two send Fifos and one receive Fifo:

  1. Class 1 send Fifo with (high prior) data;
  2. Class 2 send Fifo with (low prior) data;
  3. Receive Fifo (for Class 1 and Class 2 data);

The lower transport functions of the library emtpy first the class 1 Fifo and afterwards the class 2 Fifo. The class 2 data are only sent, if the class 1 Fifo contains no data to be sent.

Each internal Fifo hast a fixed size of 10000 bytes. This is enough for the most applications, because the number of frames which can once be sent is limited by the iK and iW protocol parameters.
According to experience it is possible to store 200 ADSUs with an information element (object), or approx. 20 ADSUs with with a sequence of 100 information elements (objects) in each Fifo.

If a higher number of frames (to be sent or to be received) should be buffered ( e.g. ~20000), they can be kept in external buffers/Fifos which are defined by the PLC programmer. The PLC application can refill the TwinCAT send Fifos with own Fifo entries, or empty the TwinCAT receive Fifo.

As an alternative it is possible to use two buffers and to fill/read them alternately and give them to the communication block .

Development Environment | Target System | PLC libraries to include
TwinCAT v2.10.0 Build >= 1313 | PC or CX (x86, ARM) | TcIEC870_5_103Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; TcIEC870_5_101Link.Lib; COMlibV2.Lib; are included automatically )


ST_IEC870_5_103AOGen

TYPE ST_IEC870_5_103AOGen

Variables of this type represent an ASDU object.

TYPE ST_IEC870_5_103AOGen:
STRUCT
        head : ST_IEC870_5_101FifoHead :=(      source := ( link := 0, addr := 0 ),
                                        target := ( link := 0, addr := 0 ),
                                        ctrl := 0 ); (* Header *)

        ident   : ST_IEC870_5_103DataUnit_Ident := ( eType     := 0,
                                                nObj    := 0,
                                                bSQ     := FALSE,
                                                eCOT    := 0,
                                                eClass  := eIEC870_Class_None,
                                                asduAddr        := 0 ); (* Data unit identifier *)

 info    : ST_IEC870_5_103AOInfoObj  := (    fc      := 0,
                                                n       := 0,
                                                stream  := ( length := 0 ) ); (* information object *)
END_STRUCT
END_TYPE

head: Header (reserved).

ident: Identification field in the data unit (ASDU).

info: Information object /Information element data field.

Development Environment | Target System | PLC libraries to include
TwinCAT v2.10.0 Build >= 1313 | PC or CX (x86, ARM) | TcIEC870_5_103Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; TcIEC870_5_101Link.Lib; COMlibV2.Lib; are included automatically )


ST_IEC870_5_103AOInfoObj

TYPE ST_IEC870_5_103AOInfoObj

Information object description.

TYPE ST_IEC870_5_103AOInfoObj :
STRUCT
        fc      : BYTE;
        n       : BYTE;
        stream  : ST_IEC870_5_101Stream; (* Information element of max. length *)
END_STRUCT
END_TYPE

fc: Function number (code).

n: Information number.

Development Environment | Target System | PLC libraries to include
TwinCAT v2.10.0 Build >= 1313 | PC or CX (x86, ARM) | TcIEC870_5_103Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; TcIEC870_5_101Link.Lib; COMlibV2.Lib; are included automatically )


ST_IEC870_5_103DataUnit_Ident

TYPE ST_IEC870_5_103DataUnit_Ident

Identification field of data unit (ASDU).

TYPE ST_IEC870_5_103DataUnit_Ident:
STRUCT
        eType   : INT(0..255);    (* ASDU type identifier *)
 bSQ     : BOOL;           (* Single/Sequence *)
 nObj    : BYTE(0..127);   (* Number of information objects or elements *)
 eCOT    : INT(0..255);    (* Cause of transmission *)
 asduAddr        : BYTE;           (* Common address of ASDU *)
 eClass  : E_IEC870_5_101ClassType; (* Object class *)
END_STRUCT
END_TYPE

eType: ASDU type identifier (0..255).

bSQ: Sequence flag.

nObj: Number of information objects or information elements (0..127).

eCOT: Cause of transmission (0..255).

asduAddr: Common ASDU address (one octet).

eClass: Priority class.

Development Environment | Target System | PLC libraries to include
TwinCAT v2.10.0 Build >= 1313 | PC or CX (x86, ARM) | TcIEC870_5_103Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; TcIEC870_5_101Link.Lib; COMlibV2.Lib; are included automatically )


E_IEC870_5_103MTypeID

TYPE E_IEC870_5_103MTypeID

TYPE E_IEC870_5_103MTypeID:
(
        M_TYPEUNDEF_3 := 0, (* Not used *)
        M_TTM_TA_3 := 1, (* Time-tagged message *)
        M_TMR_TA_3 := 2, (* Time-tagged message with relative time *)
        M_MEI_NA_3 := 3, (* Measurands I *)
        M_TME_TA_3 := 4, (* Time-tagged measurands with relative time *)
        M_IRC_NA_3 := 5, (* Identification *)
        M_SYN_TA_3 := 6, (* Time synchronisation *)
        M_TGI_NA_3 := 8, (* General interrogation *)
        M_MEII_NA_3 := 9, (* Measurands II *)
        M_GD_XA_3 := 10,(* Generic data *)
        M_GI_XA_3 := 11,(* Generic identification *)
        M_LRD_TA_3 := 23,(* List of recorded disturbances *)
        M_RTD_TA_3 := 26,(* Ready for transmission of disturbance data *)
        M_RTC_NA_3 := 27,(* Ready for transmission of channel *)
        M_RTT_NA_3 := 28,(* Ready for transmission of tags *)
        M_TOT_NA_3 := 29,(* Transmission of tags *)
        M_TOV_NA_3 := 30,(* Transmission of disturbance values *)
        M_EOT_NA_3 := 31 (* End of transmission *)
);
END_TYPE

ASDU type identifier in monitoring direction (slave -> master).

Development Environment | Target System | PLC libraries to include
TwinCAT v2.10.0 Build >= 1313 | PC or CX (x86, ARM) | TcIEC870_5_103Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; TcIEC870_5_101Link.Lib; COMlibV2.Lib; are included automatically )


E_IEC870_5_103CTypeID

TYPE E_IEC870_5_103CTypeID

TYPE E_IEC870_5_103CTypeID:
(
        C_TYPEUNDEF_3 := 0, (* Not used *)
        C_SYN_TA_3 := 6, (* Time synchronisation *)
        C_IGI_NA_3 := 7, (* General interrogation *)
        C_GD_NA_3 := 10,(* Generic data *)
        C_GRC_NA_3 := 20,(* General command *)
        C_GC_NA_3 := 21,(* Generic command *)
        C_ODT_NA_3 := 24,(* Order for disturbance data transmission *)
        C_ADT_NA_3 := 25 (* Acknowledgement for disturbance data transmission *)
);
END_TYPE

ASDU type identifier in control direction (master -> slave).

Development Environment | Target System | PLC libraries to include
TwinCAT v2.10.0 Build >= 1313 | PC or CX (x86, ARM) | TcIEC870_5_103Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; TcIEC870_5_101Link.Lib; COMlibV2.Lib; are included automatically )


E_IEC870_5_103MCOT

TYPE E_IEC870_5_103MCOT

TYPE E_IEC870_5_103MCOT:
(
        eIEC870_MCOT_UNUSED := 0, (* Not used *)
 eIEC870_MCOT_SPONTAN := 1, (* Spontanous data *)
 eIEC870_MCOT_CYCLIC := 2, (* Cyclic data *)
 eIEC870_MCOT_FCB := 3, (* Reset FCB bit *)
 eIEC870_MCOT_CU := 4, (* Reset communication unit *)
 eIEC870_MCOT_SR := 5, (* Start/Restart *)
 eIEC870_MCOT_ON := 6, (* Power on *)
 eIEC870_MCOT_TST := 7, (* Test mode *)
 eIEC870_MCOT_SYN := 8, (* Time synchronisation *)
 eIEC870_MCOT_GI := 9, (* General interrogation *)
 eIEC870_MCOT_TGI := 10,(* Termination of general interrogation *)
 eIEC870_MCOT_LO := 11,(* Local operation *)
 eIEC870_MCOT_RO := 12,(* Remote operation *)
 eIEC870_MCOT_CP := 20,(* Positive ack of command *)
 eIEC870_MCOT_CN := 21,(* Negative ack of command *)
 eIEC870_MCOT_TOV := 31,(* Transmission of disturbance values *)
 eIEC870_MCOT_WP := 40,(* Positive ack of generic write command *)
 eIEC870_MCOT_WN := 41,(* Negative ack of generic write command *)
 eIEC870_MCOT_RP := 42,(* Valid data response to genric read command *)
 eIEC870_MCOT_RN := 43,(* Invalid data response to generic read command *)
 eIEC870_MCOT_CWC := 44 (* Confirmation of generic write *)
);
END_TYPE

Cause of transfer in monitoring direction (slave -> master).

Development Environment | Target System | PLC libraries to include
TwinCAT v2.10.0 Build >= 1313 | PC or CX (x86, ARM) | TcIEC870_5_103Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; TcIEC870_5_101Link.Lib; COMlibV2.Lib; are included automatically )


E_IEC870_5_103CCOT

TYPE E_IEC870_5_103CCOT

TYPE E_IEC870_5_103CCOT:
(
        eIEC870_CCOT_UNUSED := 0, (* Not used *)
 eIEC870_CCOT_SYN := 8, (* Time synchronisation *)
 eIEC870_CCOT_IGI := 9, (* Initialisation of general interrogation *)
 eIEC870_CCOT_GRC := 20, (* General command *)
 eIEC870_CCOT_TOV := 31, (* Transmission of disturbance values *)
 eIEC870_CCOT_WC := 40, (* Generic write command *)
 eIEC870_CCOT_RC := 42 (* Generic read command *)
);
END_TYPE

Cause of transfer in control direction (master -> slave).

Development Environment | Target System | PLC libraries to include
TwinCAT v2.10.0 Build >= 1313 | PC or CX (x86, ARM) | TcIEC870_5_103Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; TcIEC870_5_101Link.Lib; COMlibV2.Lib; are included automatically )


Error codes overview

IEC 60870-5-103 serial link interface error codes

Codes (hex) | Codes (dec) | Error source | Description
0x00000000-0x00002000 | 0-8192 | Serial communication errors | serial communication error (only if error source = eIEC870_ESRC_IEC60870_5_101LINK ).
0x00000000-0x00007800 | 0-30720 | TwinCAT System error | TwinCAT System error (ADS error codes inclusive only if error error source <> eIEC870_ESRC_IEC60870_5_101LINK ).
0x00008100-0x000081FF | 32768-33023 | IEC60870-5-10x error | IEC60870-5-10x error


Troubleshooting

Troubleshooting/diagnostics

  1. Check the hardware and software requirements described in this documentation (TwinCAT version, CE image version etc.);
  2. Compare the interoperability check list of control station and substation;
  3. Check the IO configuration and mapping of PLC variables in TwinCAT System Manager (configuration of serial interface, baudrate, parity, stoppbits settings). Compare them to the parameters set in the substation;
  4. Check whether the FB_IEC870_5_103TProtocol() function block issues an error code. The documentation for the error codes can be found here: Overview of error codes;
  5. Check the protocol parameters that are transferred to the function block (link address, link address octet size, FRAMELength etc.). Compare them to the parameters set in the substation;
  6. Check the max. configured ASDU length (instance of ST_IEC870_5_103TBuffer, TX/RX data buffer). Compare them to the parameters set in the substation;
  7. Check the configured data points (type, ASDU address, function number, information number etc.);
  8. Check if the other communication partner issues an error code;
  9. Activate the debug output during connection establishment and/or of ASDU data. Open the TwinCAT System Manager and activate the LogView window. Analyze/check the debug output strings;


Examples

Used controlled or controlling station configuration parameters:

  • Standard PC interface: COM1
  • 19200 Baud
  • Link address: 220
  • Link address size: 1 octet (fix)
  • Common ASDU address: 220
  • Common ASDU address size: 1 octet (fix)
PLC project | TwinCAT System Manager Configuration | Description
LowLevelMasterSample.pro | LowLevelMasterSample.tsm | Simple Master-Applikation which uses the TwinCAT IEC60870-5-103 Serial Link Interface.