Hinweise zur Dokumentation

Diese Beschreibung wendet sich ausschließlich an ausgebildetes Fachpersonal der Steuerungs- und Automatisierungstechnik, das mit den geltenden nationalen Normen vertraut ist.
Zur Installation und Inbetriebnahme der Komponenten ist die Beachtung der Dokumentation und der nachfolgenden Hinweise und Erklärungen unbedingt notwendig.
Das Fachpersonal ist verpflichtet, für jede Installation und Inbetriebnahme die zu dem Zeitpunkt veröffentlichte Dokumentation zu verwenden.

Das Fachpersonal hat sicherzustellen, dass die Anwendung bzw. der Einsatz der beschriebenen Produkte alle Sicherheitsanforderungen, einschließlich sämtlicher anwendbaren Gesetze, Vorschriften, Bestimmungen und Normen erfüllt.

Disclaimer

Diese Dokumentation wurde sorgfältig erstellt. Die beschriebenen Produkte werden jedoch ständig weiter entwickelt.
Wir behalten uns das Recht vor, die Dokumentation jederzeit und ohne Ankündigung zu überarbeiten und zu ändern.
Aus den Angaben, Abbildungen und Beschreibungen in dieser Dokumentation können keine Ansprüche auf Änderung bereits gelieferter Produkte geltend gemacht werden.

Marken

Beckhoff®, TwinCAT®, EtherCAT®, EtherCAT G®, EtherCAT G10®, EtherCAT P®, Safety over EtherCAT®, TwinSAFE®, XFC®, XTS® und XPlanar® sind eingetragene und lizenzierte Marken der Beckhoff Automation GmbH.
Die Verwendung anderer in dieser Dokumentation enthaltenen Marken oder Kennzeichen durch Dritte kann zu einer Verletzung von Rechten der Inhaber der entsprechenden Bezeichnungen führen.

Patente

Die EtherCAT Technologie ist patentrechtlich geschützt, insbesondere durch folgende Anmeldungen und Patente:
EP1590927, EP1789857, EP1456722, EP2137893, DE102015105702
mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern.

EtherCAT® ist eine eingetragene Marke und patentierte Technologie lizenziert durch die Beckhoff Automation GmbH, Deutschland.

Copyright

© Beckhoff Automation GmbH & Co. KG, Deutschland.
Weitergabe sowie Vervielfältigung dieses Dokuments, Verwertung und Mitteilung seines Inhalts sind verboten, soweit nicht ausdrücklich gestattet.
Zuwiderhandlungen verpflichten zu Schadenersatz. Alle Rechte für den Fall der Patent-, Gebrauchsmuster- oder Geschmacksmustereintragung vorbehalten.


Übersicht

Die TwinCAT SPS-Bibliothek TcIEC870_5_101Link.Lib implementiert Übertragungsprozeduren für den Transport der ASDUs über die seriellen Schnittstellen des PCs und die Beckhoff KL6xxx-/EL6xxx-Klemmen.

"Low level"-Schnittstelle: IEC 60870-5-101 Serial Link Interface

Diese Schnittstelle setzt bei dem Protokollstack tiefer an und ermöglicht das Versenden und/oder Empfangen einzelner Frames (ASDU's).

Pro: Sehr flexibel; Alle Eigenschaften im ASDU-Frame können verändert werden (z.B. ein eigener Zeitstempel, Select/Execute oder eine besondere Befehlsausführung usw.); Weil nur die benötigten Dienste implementiert werden kann eine hohe Performance erreicht werden; Hohe Performance bei vielen Datenpunkten;

Contra: Größerer Programmieraufwand; Alle Dienste wie Generalabfrage, Zählerabfrage, Uhrzeitsynchronisation, Befehlsausführung, spontane Datenübertragung usw. müssen von dem SPS-Programmierer selbst implementiert (ausprogrammiert) werden; Der SPS-Programmierer muss mit der Protokollnorm vertraut sein.

Diese Schnittstelle empfiehlt sich wenn Sie:

  • Mit der Protokollnorm vertraut sind;
  • Eine Protokollkonverter-Applikation implementieren;
  • In der Applikation die verfügbaren Norm-Funktionalitäten fast vollständig implementieren;
  • Besondere Funktionalitäten verwenden, wie z.B. das Weiterleiten der Zeitstempel von einem Modbus-Gerät oder die Kontrolle über die Befehlsausführung erlangen;
  • Funktionalitäten benötigen, die laut Kompatibilitätsliste nicht unterstützt werden;
  • Viele Datenpunkte haben (>1000) und eine hohe Performance benötigen;

Innerhalb der Protokollstruktur liegt diese Schnittstelle oberhalb der Verbindungsschicht und implementiert bereits die nötigen Prozeduren und Übertragungstelegrammformate. Anwendungsfunktionen wie z.B. Generalabfrage, Uhrzeitsynchronisation oder Zählerabfrage sind in der Schnittstelle nicht implementiert, der Anwender kann aber mit Hilfe der Schnittstelle diese Anwendungsfunktionen selber implementieren.

Protokollstruktur des Endsystems:

Auswahl von Anwendungsfunktionen aus IEC 60870-5-5 | Anwenderprozess
 | Anwendungsschicht (7)
Auswahl von ASDU (Dienstdateneinheiten der Anwendungsschicht) aus IEC 60870-5-3, IEC 60870-5-4 und IEC 60870-5-101
TwinCAT PLC Library: IEC 60870-5-101 Serial Link (low level) Transport Interface
N/A | Darstellungsschicht (6)
 | Sitzungsschicht (5)
 | Transportschicht (4)
 | Vermittlungsschicht (3)
unbalanced / balanced IEC 60870-5-2 IEC 60870-5-1 (FT 1.2) | Verbindungsschicht (2)
EIA RS485, RS232 (V.24), Fibre Optics | Physikalische Schicht (1)

Anmerkung: Die Schichten 3 bis 6 werden nicht benutzt.


Einführung

Einfache Projekte mit kompletten Sourcen finden Sie hier: Serial-Link-Interface-Beispiele.

Eine SPS-Applikation, die über das Transport Interface mit einer Unterstation oder Zentralstation kommunizieren soll, benötigt folgende Resourcen:

  • Eine Instanz des Kommunikationsbausteins: FB_IEC870_5_101TProtocol;
  • Eine Instanz des TX/RX-Datenpuffers: ST_IEC870_5_101TBuffer;
  • Eine Instanz des Funktionsbausteins zur Manipulation des TX/RX-Datenpuffers: FB_IEC870_5_101TBufferCtrl;


Einführung: Übersicht

Tutorial: IEC 60870-5-101 Serial Link Interface

Einführung (Tutorial)

Die Einführung ist eine Anleitung wie Sie in der TwinCAT SPS eine IEC60870-5-101 Unterstation oder Zentralstation implementieren und konfigurieren können.

Weitere Themen in Vorbereitung...


Einführung: Glossar

Tutorial: IEC 60870-5-101 Serial Link Interface

Glossar

Begriff | Beschreibung
Unterstation, Slave, Server | Synonyme für eine untergeordnete Station (sie wird überwacht).
Zentralstation, Leitstation, Master, Client | Synonyme für eine übergeordnete Station (Leitstation, sie überwacht andere Stationen).
Steuerungsrichtung | Datenübertragungsrichtung von der Zentralstation zur Unterstation.
Überwachungsrichtung | Datenübertragungsrichtung von der Unterstation zur Zentralstation.
Applikationsobjekte | IEC-Informationsobjekte in der TwinCAT SPS-Applikation (Single Points, Double Points, Measured Values, Short Floating Point Values usw. ).
APDU | Protokolldateneinheit der Anwendungsschicht (application protocol data unit).
APCI | Protokolsteuerinformation der Anwendungsschicht (application protocol control information).
ASDU | Dienstdateneinheit der Anwendungsschicht (application service data unit).
IOA, Addresse des Informationsobjekts | Adresse des Single Points, Double Points usw. (information object address).
Primärstation | Die Primärstation sendet Befehle (Anfragen) an die Sekundärstation und steuert/kontrolliert so die Datenübertragung der Sekundärstation.
Sekundärstation | Die Sekundärstation antwortet auf die Anfragen der Primärstation.
Kombinierte Station | Kombinierte Stationen können die Rolle der Primärstation und Sekundärstation annehmen (symetrische Übertragung, balanced mode).
Symetrische Übertragung (balanced mode) | Beide Stationen können als Primärstation oder Sekundärstation agieren und die Datenübertragung initialisieren.
Unsymetrische Übertragung (unbalanced mode) | Die Datenübetragung wird immer durch die Primärstation initiert und gesteuert. Die Zentralstation agiert immer als Primärstation und die Unterstation als Sekundärstation.


Einführung: Fehlersuche und Diagnose

Tutorial: IEC 60870-5-101 Serial Link Interface

Fehlersuche und Diagnose

Debugmeldungen, die ins Application-Log geschrieben werden erleichtern eine Fehlersuche im System. Zur Zeit können zwei Stufen der Debugmeldungen bei der Benutzung der "Low Level"-Schnittstelle aktiviert werden:

  1. Hexadezimale Ausgabe der ASDU's (Telegramme ohne Link-Layer-Control-Header). Pro Zeile werden 32-ASDU-Datenbytes als hexadezimale Zahlen ausgegeben. Längere ASDU's werden auf mehrere Zeilen verteilt. Die ST_IEC870_5_101TBuffer -Membervariable eDbg aktiviert die Debugausgabe;
  2. Hexadezimale Ausgabe der APDU's (Serial-Port-Telegramme). Pro Zeile werden 32-APDU-Datenbytes als hexadezimale Zahlen ausgegeben. Ähnlich wie bei 1. werden längere APDU's auf mehrere Zeilen verteilt. Die FB_IEC870_5_101TProtocol-Eingangsvariable bOutDbg aktiviert die Debugausgabe;

Um die aktivierten Debugmeldungen zu sehen starten Sie TwinCAT System Manager und aktivieren Sie die Loggeransicht. Die nachfolgende Grafik zeigt eine Debugausgabe. Die zwei unterschiedlichen Typen der Meldungen wurden mit entsprechenden Zahlen markiert.

Weitere Diagnosetools:

  • Portmon for Windows (v3.02, Windows Sysinternals);
  • Diverse Protokoll-Test-Suit-Produkte;


Einführung: Konfiguration der seriellen Schnittstelle

Tutorial: IEC 60870-5-101 Serial Link Interface

Konfiguration der seriellen Schnittstellen

  • Konfiguration der standard PC COMx-Schnittstellen
  • Konfiguration der seriellen Busklemmen KL6xxx
  • Konfiguration der seriellen Busklemmen EL6xxx

1. Konfiguration der standard PC COMx-Schnittstellen

Die serielle Schnittstelle kann nur in PC/CX-Systemen eingefügt werden.

Mit der rechten Maustaste "E/A Geräte" anklicken. "Gerät anfügen" auswählen. Unter "Verschiedenes" die "Serielle Schnittstelle" auswählen. Anschließend nachfolgende Einstellungen vornehmen.

1.1. Karteireiter Serial Port

Serielle Schnittstelle COM1

1.2. Karteireiter Eigenschaften

Die Option KL6xxx1 Mode (Emulation) anwählen und dann die Kommunikationsparameter einstellen:

Baudrate, hier 19200 Baud, 8 Datenbits, Parity=even, 1 Stoppbit

2. Konfiguration der seriellen Busklemmen KL6xxx

Die Schnittstelle wird in der TwinCAT SPS durch die Instanz des FB_IEC870_SerialLineCtrl-Funktionsbausteins konfiguriert. Die Kommunikationsparameter wie Baudrate, Parity usw. sind an diesem Baustein einzustellen.

2.1 RS485 Betriebsmodus

Bei der RS485 Betriebsart (z.B. KL6041) werden die Daten in halbduplex Übertragung ausgetauscht. Im RS485 Betriebsmodus werden die Sende- und Empfangsleitungen miteinander verbunden. Dadurch empfängt die Klemme nicht nur die Daten anderer Teilnehmer, sondern auch ihre eigenen Sendedaten. Diese Daten können die Kommunikation stören. Für den Halbduplex-Modus muss der Handshake-Eingang des FB_IEC870_SerialLineCtrl-Funktionsbausteins auf den Wert: RS485_HALFDUPLEX gesetzt werden.

3. Konfiguration der seriellen Busklemmen EL6xxx

Die serielle Schnittstelle wird im TwinCAT System Manager Karteireiter CoE-Online (CoE=CanOpen over EtherCAT) eingestellt. Der Karteireiter steht nur bei Online-Zugriff auf die Klemme zur Verfügung, d.h., ist der System Manger nicht mit der Hardware verbunden, können keine Einstellungen verändert werden. Die Einstellungen werden in der Klemme Spannungsausfallsicher abgespeichert. Nach einem Scannen der Klemmen müssen diese Daten nicht neu eingegeben werden. Bei einem Tausch der Klemme werden die Daten aus der neuen Klemme aktiv und müssen demzufolge wieder angepasst werden. Um das zu Verhindern, müssenim Karteireiter Startup die geänderten Daten eingetragen werden. Beim Systemstart werden die Daten aus dem Reiter Startup in die Klemme übertragen. Ein Tausch der Klemme ist somit Problemlos möglich. Nach einem Scannen der Klemmen müssen die Daten im Reiter Startup neu eingegeben werden.

3.1. Karteireiter CoE

(1) Baudrate, hier 19200 Baud

(2) Date frame, 8E1 entspricht 8 Datenbits, Parity=even, 1 Stoppbit

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

Mit einem Doppelklick auf die entsprechende Zeile wird ein Menü geöffnet, in dem die Einstellungen geändert werden können.

3.1.1 RS485 Betriebsmodus

Bei der RS485 Betriebsart werden die Daten in halbduplex Übertragung ausgetauscht. Im RS485 Betriebsmodus werden die Sende- und Empfangsleitungen miteinander verbunden. Dadurch empfängt die Klemme nicht nur die Daten anderer Teilnehmer, sondern auch ihre eigenen Sendedaten. Diese Daten können die Kommunikation stören. Mit der Option "Enable half duplex" im "COM Settings"-Objekt kann dies unterdrückt werden (Index 8000:06).

3.2. Karteireiter Startup

Alle vom Standard abweichende Einstellungen müssen in die Startup Liste eingetragen werden. Beim Systemstart werden die Daten aus dem Reiter Startup in die Klemme übertragen. Ein Tausch der Klemme ist somit Problemlos möglich. Nach einem Scannen der Klemmen müssen die Daten im Reiter Startup neu eingegeben werden.

Baudrate, hier 19200 Baud

Date frame, 8E1 entspricht 8 Datenbits, Parity=even, 1 Stoppbit

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


Telegram structure

TwinCAT PLC Library: IEC 60870-5-101 Serial Link Interface

IEC 60870-5-101 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 fields |  |  |  |  |  |  |  |
 | (0, 1 or 2 octets) |  |  |  |  |  |  |  |
 | Type identification |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER | ASDU
 | SQ | Number of objects |  |  |  |  |  |  |
 | T | P/N | Cause of transmission (COT) |  |  |  |  |  |
 | Originator address (ORG, 0 or 1 octets) |  |  |  |  |  |  |  |
 | ASDU address fields |  |  |  |  |  |  |  |
 | (1 or 2 octets) |  |  |  |  |  |  |  |
 | Information object address fields (IOA) |  |  |  |  |  |  |  | Info-object
 | (1,2 or 3 octets) |  |  |  |  |  |  |  |
 | Object information |  |  |  |  |  |  |  |
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) |  |  |  |  |  |  |  |  | LPCI
1 | RES | PRM | FCB / ACD | FCV / DFC | Function code |  |  |  | Control field
2 | Link address |  |  |  |  |  |  |  |
 | (0, 1 or 2 octets) |  |  |  |  |  |  |  |
n-1 | Checksum |  |  |  |  |  |  |  |
n | Stop byte (0x16) |  |  |  |  |  |  |  |

Single character data

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

  • 0xE5 (positive acknowledge);
  • 0xA2 (negative acknowledge);

Simple samples and explanations

101substation configuration: Link address = 2 octets, COT = 1 octet (ORG address not used), ASDU address = 2 octets, IOA address = 2 octets

Sample 1

10 49 0C 00 55 16

LPDU bytes | Explanation
10 | Start byte: frame with fixed length
49 | Control filed: PRM-bit set (frame from primary station), function code = 9 (link status)
0C 00 | Link address (2 octets) = 12 dec.
55 | Checksum
16 | Stop byte

Sample 2

10 0B 0C 00 17 16

LPDU bytes | Explanation
10 | Start byte: frame with fixed length
0B | Control field: PRM-bit not set (frame from secondary station), function code = 11 (status of link or access demand)
0C 00 | Link address (2 octets) = 12 dec.
17 | Checksum
16 | Stop byte

Sample 3

68 0B 0B 68 08 0C 00 65 01 0A 0C 00 00 00 05 95 16

LPDU bytes | Explanation
68 | Start byte 1: frame with variable length
0B 0B | Block length and block length copy
68 | Start byte 2
08 | Control field: PRM-bit not set (frame from secondary station), function code = 8 (user data)
0C 00 | Link address (2 octets) = 12 dec.
65 | Type identification: C_CI_NA_1 (counter interrogation)
01 | Number of objects = 1
0A | Cause of transmission = 10 (activation confirmation)
0C 00 | Common ASDU address (2 octets) = 12 dec.
00 00 | Object address (2 octets) = 0
05 | Counter interrogation request qualifier = 5 (general counter interrogation)
95 | Checksum
16 | Stop byte

Sample 4

68 0F 0F 68 08 0C 00 0F 01 03 0C 00 81 30 DA 16 00 00 07 DB 16

LPDU bytes | Explanation
68 | Start byte 1: frame with variable length
0F 0F | Block length and block length copy
68 | Start byte 2
08 | Control field: PRM-bit not set (frame from secondary station), function code = 8 (user data)
0C 00 | Link address (2 octets) = 12 dec.
0F | Type identification: M_IT_NA_1 (integrated total)
01 | Number of objects = 1
03 | Cause of transmission = 3 (spontanous)
0C 00 | Common ASDU address (2 octets) = 12 dec.
81 30 | Object address (2 octets)
DA 16 00 00 | BCR (binary counter value)
07 | Quality descriptor = 7 (sequence)
DB | Checksum
16 | Stop byte

Sample 4

68 2B 2B 68 08 0C 00 0B 07 03 0C 00 10 30 BE 09 00 11 30 90 09 00 0E 30 75 00 00 28 30 25 09 00 29 30 75 00 00 0F 30 0F 0A 00 2E 30 AE 05 00 85 16

LPDU bytes | Explanation
68 | Start byte 1: frame with variable length
2B 2B | Block length and block length copy
68 | Start byte 2
08 | Control field: PRM-bit not set (frame from secondary station), function code = 8 (user data)
0C 00 | Link address (2 octets) = 12 dec.
0B | Type identification: M_ME_NB_1(measured value, scaled value)
07 | Number of objects = 7
03 | Cause of transmission = 3 (spontanous)
0C 00 | Common ASDU address (2 octets) = 12 dec.
10 30 | Object address (2 octets) of first information object
BE 09 00 | Scaled value + QDS (quality descriptor) of first information object
11 30 | Object address (2 octets) of second information object
90 09 00 | Scaled value + QDS (quality descriptor) of second information object
0E 30 | Object address (2 octets) of third information object
75 00 00 | Scaled value + QDS (quality descriptor) of third information object
28 30 25 09 00 29 30 75 00 00 0F 30 0F 0A 00 2E 30 AE 05 00 | Object address + Scaled value + QDS (quality descriptor) of information object four to seven
85 | Checksum
16 | Stop byte


ASDU-Referenz

IEC 60870-5-101 asdu object reference

Standard IEC 60870-5-101 Datentypen

Type | Dez | Hex | Beschreibung
ASDU_TYPEUNDEF | 0 | 0x00 | Wird nicht verwendet
M_SP_NA_1 | 1 | 0x01 | Einzelmeldung
M_SP_TA_1 | 2 | 0x02 | Einzelmeldung mit einem Zeitstempel
M_DP_NA_1 | 3 | 0x03 | Doppelmeldung
M_DP_TA_1 | 4 | 0x04 | Doppelmeldung mit einem Zeitstempel
M_ST_NA_1 | 5 | 0x05 | Stufenstellungsmeldung
M_ST_TA_1 | 6 | 0x06 | Stufenstellungsmeldung mit einem Zeitstempel
M_BO_NA_1 | 7 | 0x07 | Bitmuster von 32 bit
M_BO_TA_1 | 8 | 0x08 | Bitmuster von 32 bit mit einem Zeitstempel
M_ME_NA_1 | 9 | 0x09 | Messwert, normierter Wert
M_ME_TA_1 | 10 | 0x0A | Messwert, normierter Wert mit einem Zeitstempel
M_ME_NB_1 | 11 | 0x0B | Messwert, skalierter Wert
M_ME_TB_1 | 12 | 0x0C | Messwert, skalierter Wert mit einem Zeitstempel
M_ME_NC_1 | 13 | 0x0D | Messwert, Gleitkommazahl mit einfacher Genauigkeit
M_ME_TC_1 | 14 | 0x0E | Messwert, Gleitkommazahl mit einfacher Genauigkeit und einem Zeitstempel
M_IT_NA_1 | 15 | 0x0F | Zählwerte
M_IT_TA_1 | 16 | 0x10 | Zählwerte mit einem Zeitstempel
M_EP_TA_1 | 17 | 0x11 | Schutzereignis mit einem Zeitstempel
M_EP_TB_1 | 18 | 0x12 | Gepackte Anregungen des Schutzes mit einem Zeitstempel
M_EP_TC_1 | 19 | 0x13 | Gepackte Auslösungen des Schutzes mit einem Zeitstempel
M_PS_NA_1 | 20 | 0x14 | Gepackte Einzelmeldungen mit Zustandsanzeige
M_ME_ND_1 | 21 | 0x15 | Messwert, normierter Wert ohne Qualitätskennung
ASDU_TYPE_22..29 | 22..29 | 0x16..0x1D | Reserviert (Standardbereich)
M_SP_TB_1 | 30 | 0x1E | Einzelmeldung mit einem Zeitstempel CP56Time2a
M_DP_TB_1 | 31 | 0x1F | Doppelmeldung mit einem Zeitstempel CP56Time2a
M_ST_TB_1 | 32 | 0x20 | Stufenstellungsmeldung mit einem Zeitstempel CP56Time2a
M_BO_TB_1 | 33 | 0x21 | Bitmuster von 32 bit mit einem Zeitstempel CP56Time2a
M_ME_TD_1 | 34 | 0x22 | Messwert, normierter Wert mit einem Zeitstempel CP56Time2a
M_ME_TE_1 | 35 | 0x23 | Messwert, skalierter Wert mit einem Zeitstempel CP56Time2a
M_ME_TF_1 | 36 | 0x24 | Messwert, Gleitkommazahl mit einfacher Genauigkeit und einem Zeitstempel CP56Time2a
M_IT_TB_1 | 37 | 0x25 | Zählwerte mit einem Zeitstempel CP56Time2a
M_EP_TD_1 | 38 | 0x26 | Schutzereignis mit einem Zeitstempel CP56Time2a
M_EP_TE_1 | 39 | 0x27 | Gepackte Anregungen des Schutzes mit einem Zeitstempel CP56Time2a
M_EP_TF_1 | 40 | 0x28 | Gepackte Auslösungen des Schutzes mit einem Zeitstempel CP56Time2a
ASDU_TYPE_41..44 | 41..44 | 0x29..0x2C | Reserviert (Standardbereich)
C_SC_NA_1 | 45 | 0x2D | Einzelbefehl
C_DC_NA_1 | 46 | 0x2E | Doppelbefehl
C_RC_NA_1 | 47 | 0x2F | Stufenstellbefehl
C_SE_NA_1 | 48 | 0x30 | Sollwert-Stellbefehl, normierter Wert
C_SE_NB_1 | 49 | 0x31 | Sollwert-Stellbefehl, skalierter Wert
C_SE_NC_1 | 50 | 0x32 | Sollwert-Stellbefehl, Gleitkommazahl mit einfacher Genauigkeit
C_BO_NA_1 | 51 | 0x33 | Bitmusterbefehl von 32 bit
ASDU_TYPE_52..57 | 52..57 | 0x34..0x39 | Reserviert (Standardbereich)
C_SC_TA_1 | 58 | 0x3A | Einzelbefehl mit einem Zeitstempel CP56Time2a
C_DC_TA_1 | 59 | 0x3B | Doppelbefehl mit einem Zeitstempel CP56Time2a
C_RC_TA_1 | 60 | 0x3C | Stufenstellbefehl mit einem Zeitstempel CP56Time2a
C_SE_TA_1 | 61 | 0x3D | Sollwert-Stellbefehl, normierter Wert mit einem Zeitstempel CP56Time2a
C_SE_TB_1 | 62 | 0x3E | Sollwert-Stellbefehl, skalierter Wert mit einem Zeitstempel CP56Time2a
C_SE_TC_1 | 63 | 0x3F | Sollwert-Stellbefehl, Gleitkommazahl mit einfacher Genauigkeit und einem Zeitstempel CP56Time2a
C_BO_TA_1 | 64 | 0x40 | Bitmusterbefehl von 32 bit mit einem Zeitstempel CP56Time2a
ASDU_TYPE_65..69 | 65..69 | 0x41..0x45 | Reserviert (Standardbereich)
M_EI_NA_1 | 70 | 0x46 | Initialisierungsende
ASDU_TYPE_71..99 | 71..99 | 0x47..0x63 | Reserviert (Standardbereich)
C_IC_NA_1 | 100 | 0x64 | (General-, Stations-) Abfragebefehl
C_CI_NA_1 | 101 | 0x65 | Zähler-Abfragebefehl
C_RD_NA_1 | 102 | 0x66 | Abfragebefehl
C_CS_NA_1 | 103 | 0x67 | Uhrzeit-Synchronisationsbefehl
C_TS_NA_1 | 104 | 0x68 | Prüfbefehl
C_RP_NA_1 | 105 | 0x69 | Prozess-Rücksetzbefehl
C_CD_NA_1 | 106 | 0x6A | Befehl zur Telegrammlaufzeit-Erfassung
C_TS_TA_1 | 107 | 0x6B | Prüfbefehl mit einem Zeitstempel CP56Time2a
ASDU_TYPE_108..109 | 108..109 | 0x6C..0x6D | Reserviert (Standardbereich)
P_ME_NA_1 | 110 | 0x6E | Parameter für Messwerte, normierter Wert
P_ME_NB_1 | 111 | 0x6F | Parameter für Messwerte, skalierter Wert
P_ME_NC_1 | 112 | 0x70 | Parameter für Messwerte, Gleitkommazahl mit einfacher Genauigkeit
P_AC_NA_1 | 113 | 0x71 | Parameter für Aktivierung
ASDU_TYPE_114..119 | 114..119 | 0x72..0x77 | Reserviert (Standardbereich)
F_FR_NA_1 | 120 | 0x78 | File ready
F_SR_NA_1 | 121 | 0x79 | Section ready
F_SC_NA_1 | 122 | 0x7A | Call directory, select file, call file, call section
F_LS_NA_1 | 123 | 0x7B | Last section, last segment
F_FA_NA_1 | 124 | 0x7C | ACK file, ACK section
F_SG_NA_1 | 125 | 0x7D | Segment
F_DR_TA_1 | 126 | 0x7E | Verzeichniss
ASDU_TYPE_127..255 | 127..255 | 0x7F..0xFF | Reserviert (benutzerdefinierter Bereich)


M_SP_NA_1

Single-point information without time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x01 (1) | = M_SP_NA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 1 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | IV | NT | SB | BL | 0 | 0 | 0 | SPI | SIQ = Single-point information with quality descriptor
 |  |  | |--- | data[1..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_SP_TA_1

Single-point information with CP24Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x02 (2) | = M_SP_TA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 4 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | IV | NT | SB | BL | 0 | 0 | 0 | SPI | SIQ = Single-point information with quality descriptor
 |  |  | |--- | data[1..3] = | CP24Time2a |  |  |  |  |  |  |  | Three octets binary time tag
 |  |  | |--- | data[4..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_SP_TB_1

Single-point information with CP56Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x1E (30) | = M_SP_TB_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 8 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | IV | NT | SB | BL | 0 | 0 | 0 | SPI | SIQ = Single-point information with quality descriptor
 |  |  | |--- | data[1..7] = | CP56Time2a |  |  |  |  |  |  |  | Seven octets binary time tag
 |  |  | |--- | data[8..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_DP_NA_1

Double-point information without time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x03 (3) | = M_DP_NA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 1 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | IV | NT | SB | BL | 0 | 0 | DPI |  | DIQ = Double-point information with quality descriptor
 |  |  | |--- | data[1..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_DP_TA_1

Double-point information with CP24Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x04 (4) | = M_DP_TA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 4 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | IV | NT | SB | BL | 0 | 0 | DPI |  | DIQ = Double-point information with quality descriptor
 |  |  | |--- | data[1..3] = | CP24Time2a |  |  |  |  |  |  |  | Three octet binary time tag
 |  |  | |--- | data[4..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_DP_TB_1

Double-point information with CP56Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x1F (31) | = M_DP_TB_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 8 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | IV | NT | SB | BL | 0 | 0 | DPI |  | DIQ = Double-point information with quality descriptor
 |  |  | |--- | data[1..7] = | CP56Time2a |  |  |  |  |  |  |  | Seven octets binary time tag
 |  |  | |--- | data[8..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_ST_NA_1

Step position information without time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x05 (5) | = M_ST_NA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 2 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | VTI |  |  |  |  |  |  |  | Value with transient state indication
 |  |  | |--- | data[1] = | IV | NT | SB | BL | 0 | 0 | 0 | OV | QDS = Quality descriptor
 |  |  | |--- | data[2..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_ST_TA_1

Step position information with CP24Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x06 (6) | = M_ST_TA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 5 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | VTI |  |  |  |  |  |  |  | Value with transient state indication
 |  |  | |--- | data[1] = | IV | NT | SB | BL | 0 | 0 | 0 | OV | QDS = Quality descriptor
 |  |  | |--- | data[2..4] = | CP24Time2a |  |  |  |  |  |  |  | Three octets binary time tag
 |  |  | |--- | data[5..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_ST_TB_1

Step position information with CP56Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x20 (32) | = M_ST_TB_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 9 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | VTI |  |  |  |  |  |  |  | Value with transient state indication
 |  |  | |--- | data[1] = | IV | NT | SB | BL | 0 | 0 | 0 | OV | QDS = Quality descriptor
 |  |  | |--- | data[2..8] = | CP56Time2a |  |  |  |  |  |  |  | Seven octets binary time tag
 |  |  | |--- | data[9..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_BO_NA_1

Bitstring of 32 bits without time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x07 (7) | = M_BO_NA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 5 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..3] = | BSI |  |  |  |  |  |  |  | Binary state information
 |  |  | |--- | data[4] = | IV | NT | SB | BL | 0 | 0 | 0 | OV | QDS = Quality descriptor
 |  |  | |--- | data[5..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_BO_TA_1

Bitstring of 32 bits with CP24Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x08 (8) | = M_BO_TA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 8 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..3] = | BSI |  |  |  |  |  |  |  | Binary state information
 |  |  | |--- | data[4] = | IV | NT | SB | BL | 0 | 0 | 0 | OV | QDS = Quality descriptor
 |  |  | |--- | data[5..7] = | CP24Time2a |  |  |  |  |  |  |  | Three octets binary time tag
 |  |  | |--- | data[8..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_BO_TB_1

Bitstring of 32 bits with CP56Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x21 (33) | = M_BO_TB_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 12 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..3] = | BSI |  |  |  |  |  |  |  | Binary state information
 |  |  | |--- | data[4] = | IV | NT | SB | BL | 0 | 0 | 0 | OV | QDS = Quality descriptor
 |  |  | |--- | data[5..11] = | CP56Time2a |  |  |  |  |  |  |  | Seven octets binary time tag
 |  |  | |--- | data[12..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_ME_NA_1

Measured value, normalized value without time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x09 (9) | = M_ME_NA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 3 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..1] = | NVA |  |  |  |  |  |  |  | Normalized value
 |  |  | |--- | data[2] = | IV | NT | SB | BL | 0 | 0 | 0 | OV | QDS = Quality descriptor
 |  |  | |--- | data[3..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_ME_TA_1

Measured value, normalized value with CP24Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x0A (10) | = M_ME_TA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 6 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..1] = | NVA |  |  |  |  |  |  |  | Normalized value
 |  |  | |--- | data[2] = | IV | NT | SB | BL | 0 | 0 | 0 | OV | QDS = Quality descriptor
 |  |  | |--- | data[3..5] = | CP24Time2a |  |  |  |  |  |  |  | Three octets binary time tag
 |  |  | |--- | data[6..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_ME_TD_1

Measured value, normalized value with CP56Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x22 (34) | = M_ME_TD_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 10 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..1] = | NVA |  |  |  |  |  |  |  | Normalized value;
 |  |  | |--- | data[2] = | IV | NT | SB | BL | 0 | 0 | 0 | OV | QDS = Quality descriptor
 |  |  | |--- | data[3..9] = | CP56Time2a |  |  |  |  |  |  |  | Seven octets binary time tag
 |  |  | |--- | data[10..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_ME_ND_1

Measured value, normalized value without quality descriptor.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x15 (21) | = M_ME_ND_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 2 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..1] = | NVA |  |  |  |  |  |  |  | Normalized value
 |  |  | |--- | data[2..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_ME_NB_1

Measured value, scaled value without time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x0B (11) | = M_ME_NB_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 3 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..1] = | SVA |  |  |  |  |  |  |  | Scaled value
 |  |  | |--- | data[2] = | IV | NT | SB | BL | 0 | 0 | 0 | OV | QDS = Quality descriptor
 |  |  | |--- | data[3..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_ME_TB_1

Measured value, scaled value with CP24Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x0C (12) | = M_ME_TB_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 6 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..1] = | SVA |  |  |  |  |  |  |  | Scaled value
 |  |  | |--- | data[2] = | IV | NT | SB | BL | 0 | 0 | 0 | OV | QDS = Quality descriptor
 |  |  | |--- | data[3..5] = | CP24Time2a |  |  |  |  |  |  |  | Three octets binary time tag
 |  |  | |--- | data[6..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_ME_TE_1

Measured value, scaled value with CP56Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x23 (35) | = M_ME_TE_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 10 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..1] = | SVA |  |  |  |  |  |  |  | Scaled value
 |  |  | |--- | data[2] = | IV | NT | SB | BL | 0 | 0 | 0 | OV | QDS = Quality descriptor
 |  |  | |--- | data[3..9] = | CP56Time2a |  |  |  |  |  |  |  | Seven octets binary time tag
 |  |  | |--- | data[10..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_ME_NC_1

Measured value, short floating point value without time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x0D (13) | = M_ME_NC_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 5 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..3] = | R32 |  |  |  |  |  |  |  | Short floating point value
 |  |  | |--- | data[4] = | IV | NT | SB | BL | 0 | 0 | 0 | OV | QDS = Quality descriptor
 |  |  | |--- | data[5..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_ME_TC_1

Measured value, short floating point value with CP24Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x0E (14) | = M_ME_TC_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 8 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..3] = | R32 |  |  |  |  |  |  |  | Short floating point value
 |  |  | |--- | data[4] = | IV | NT | SB | BL | 0 | 0 | 0 | OV | QDS = Quality descriptor
 |  |  | |--- | data[5..7] = | CP24Time2a |  |  |  |  |  |  |  | Three octets binary time tag
 |  |  | |--- | data[8..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_ME_TF_1

Measured value, short floating point value with CP56Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x24 (36) | = M_ME_TF_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 12 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..3] = | R32 |  |  |  |  |  |  |  | Short floating point value
 |  |  | |--- | data[4] = | IV | NT | SB | BL | 0 | 0 | 0 | OV | QDS = Quality descriptor
 |  |  | |--- | data[5..11] = | CP56Time2a |  |  |  |  |  |  |  | Seven octets binary time tag
 |  |  | |--- | data[12..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_IT_NA_1

Integrated total without time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x0F (15) | = M_IT_NA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 5 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..3] = | BCR |  |  |  |  |  |  |  | Binary counter reading
 |  |  | |--- | data[4] = | IV | CA | CY | Sequence |  |  |  |  | Quality descriptor
 |  |  | |--- | data[5..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_IT_TA_1

Integrated total with CP24Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x10 (16) | = M_IT_TA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 8 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..3] = | BCR |  |  |  |  |  |  |  | Binary counter reading
 |  |  | |--- | data[4] = | IV | CA | CY | Sequence |  |  |  |  | Quality descriptor
 |  |  | |--- | data[5..7] = | CP24Time2a |  |  |  |  |  |  |  | Three octets binary time tag
 |  |  | |--- | data[8..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_IT_TB_1

Integrated total with CP56Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x25 (37) | = M_IT_TB_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 12 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..3] = | BCR |  |  |  |  |  |  |  | Binary counter reading
 |  |  | |--- | data[4] = | IV | CA | CY | Sequence |  |  |  |  | Quality descriptor
 |  |  | |--- | data[5..11] = | CP56Time2a |  |  |  |  |  |  |  | Seven octets binary time tag
 |  |  | |--- | data[12..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_SC_NA_1

Single command without time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x2D (45) | = C_SC_NA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 1 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | S/E | QU |  |  |  |  | 0 | SCS | SCO = Single command
 |  |  | |--- | data[1..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_SC_TA_1

Single command with CP56Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x3A (58) | = C_SC_TA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 8 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | S/E | QU |  |  |  |  | 0 | SCS | SCO = Single command
 |  |  | |--- | data[1..7] = | CP56Time2a |  |  |  |  |  |  |  | Seven octets binary time tag
 |  |  | |--- | data[8..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_DC_NA_1

Double command without time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x2E (46) | = C_DC_NA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 1 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | S/E | QU |  |  |  |  | DCS |  | DCO = Double command
 |  |  | |--- | data[1..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_DC_TA_1

Double command with CP56Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x3B (59) | = C_DC_TA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 8 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | S/E | QU |  |  |  |  | DCS |  | DCO = Double command
 |  |  | |--- | data[1..7] = | CP56Time2a |  |  |  |  |  |  |  | Seven octets binary time tag
 |  |  | |--- | data[8..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_RC_NA_1

Regulating step command without time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x2F (47) | = C_RC_NA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 1 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | S/E | QU |  |  |  |  | RCS |  | RCO = Regulating step command
 |  |  | |--- | data[1..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_RC_TA_1

Regulating step command with CP56Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x3C (60) | = C_RC_TA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 8 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | S/E | QU |  |  |  |  | RCS |  | RCO = Regulating step command
 |  |  | |--- | data[1..7] = | CP56Time2a |  |  |  |  |  |  |  | Seven octets binary time tag
 |  |  | |--- | data[8..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_SE_NA_1

Set-point command, normalized value without time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x30 (48) | = C_SE_NA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 3 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..1] = | NVA |  |  |  |  |  |  |  | Normalized value
 |  |  | |--- | data[2] = | S/E | QL |  |  |  |  |  |  | QOS = Qualifier of set-point command
 |  |  | |--- | data[3..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_SE_TA_1

Set-point command, normalized value with CP56Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x3D (61) | = C_SE_TA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 10 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..1] = | NVA |  |  |  |  |  |  |  | Normalized value
 |  |  | |--- | data[2] = | S/E | QL |  |  |  |  |  |  | QOS = Qualifier of command
 |  |  | |--- | data[3..9] = | CP56Time2a |  |  |  |  |  |  |  | Seven octets binary time tag
 |  |  | |--- | data[10..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_SE_NB_1

Set-point command, scaled value without time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x31 (49) | = C_SE_NB_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 3 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..1] = | SVA |  |  |  |  |  |  |  | Scaled value
 |  |  | |--- | data[2] = | S/E | QL |  |  |  |  |  |  | QOS = Qualifier of set-point command
 |  |  | |--- | data[3..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_SE_TB_1

Set-point command, scaled value with CP56Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x3E (62) | = C_SE_TB_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 10 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..1] = | SVA |  |  |  |  |  |  |  | Scaled value
 |  |  | |--- | data[2] = | S/E | QL |  |  |  |  |  |  | QOS = Qualifier of command
 |  |  | |--- | data[3..9] = | CP56Time2a |  |  |  |  |  |  |  | Seven octets binary time tag
 |  |  | |--- | data[10..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_SE_NC_1

Set-point command, short floating point value without time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x32 (50) | = C_SE_NC_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 5 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..3] = | R32 |  |  |  |  |  |  |  | Short floating point value
 |  |  | |--- | data[4] = | S/E | QL |  |  |  |  |  |  | QOS = Qualifier of set-point command
 |  |  | |--- | data[5..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_SE_TC_1

Set-point command, short floating point value with CP56Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x3F (63) | = C_SE_TC_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 12 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..3] = | R32 |  |  |  |  |  |  |  | Short floating point value
 |  |  | |--- | data[4] = | S/E | QL |  |  |  |  |  |  | QOS = Qualifier of command
 |  |  | |--- | data[5..11] = | CP56Time2a |  |  |  |  |  |  |  | Seven octets binary time tag
 |  |  | |--- | data[12..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_BO_NA_1

Bitstring of 32 bits without time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x33 (51) | = C_BO_NA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 4 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..3] = | BSI |  |  |  |  |  |  |  | Binary state information
 |  |  | |--- | data[4..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_BO_TA_1

Bitstring of 32 bits with CP56Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x40 (64) | = C_BO_TA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 11 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..3] = | BSI |  |  |  |  |  |  |  | Binary state information
 |  |  | |--- | data[4..10] = | CP56Time2a |  |  |  |  |  |  |  | Seven octets binary time tag
 |  |  | |--- | data[11..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_TS_NA_1

Test command without time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x68 (104) | = C_TS_NA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  | = 0 |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 2 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = 0xAA | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | FBP = Fixed test pattern
 |  |  | |--- | data[1] = 0x55 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1
 |  |  | |--- | data[2..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_EI_NA_1

End of initialization.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x46 (70) | = M_EI_NA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  | = 0 |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 1 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | LPC | COI |  |  |  |  |  |  | Cause of initialization
 |  |  | |--- | data[1..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_CS_NA_1

Clock synchronisation command

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x67 (103) | = C_CS_NA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  | = 0 |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 7 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..6] = | CP56Time2a |  |  |  |  |  |  |  | Seven octets binary time tag
 |  |  | |--- | data[7..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_IC_NA_1

Interrogation command.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x64 (100) | = C_IC_NA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  | = 0 |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 1 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | QOI |  |  |  |  |  |  |  | Qualifier of interrogation
 |  |  | |--- | data[1..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_CI_NA_1

Counter interrogation command.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x65 (101) | = C_CI_NA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  | = 0 |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 1 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | FRZ |  | RQT |  |  |  |  |  | QCC = Qualifier of counter interrogation
 |  |  | |--- | data[1..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_RP_NA_1

Reset process command.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x69 (105) | = C_RP_NA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  | = 0 |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 1 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | QRP |  |  |  |  |  |  |  | Qualifier of reset process
 |  |  | |--- | data[1..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


C_RD_NA_1

Read command.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x66 (102) | = C_RD_NA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 0 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_EP_TA_1

Event of protection equipment with CP24Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x11 (17) | = M_EP_TA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 6 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | IV | NT | SB | BL | EI | 0 | ES |  | SEP = Single event of protection equipment
 |  |  | |--- | data[1..2] = | CP16Time2a |  |  |  |  |  |  |  | Elapsed time, two octets binary time
 |  |  | |--- | data[3..5] = | CP24Time2a |  |  |  |  |  |  |  | Three octets binary time tag
 |  |  | |--- | data[6..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_EP_TB_1

Packed start events of protection equipment with CP24Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x12 (18) | = M_EP_TB_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 7 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | 0 | 0 | SRD | SIE | SL3 | SL2 | SL1 | GS | SEP = Start events of protection equipment
 |  |  | |--- | data[1] = | IV | NT | SB | BL | EI | 0 | 0 | 0 | QDP = Quality descriptor for events of protection equipment
 |  |  | |--- | data[2..3] = | CP16Time2a |  |  |  |  |  |  |  | Relay duration time, two octets binary time
 |  |  | |--- | data[4..6] = | CP24Time2a |  |  |  |  |  |  |  | Three octets binary time tag
 |  |  | |--- | data[7..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_EP_TC_1

Packed output circuit information of protection equipment with CP24Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x13 (19) | = M_EP_TC_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 7 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | 0 | 0 | 0 | 0 | CL3 | CL2 | CL1 | GC | OCI = Output cirquit information of protection equipment
 |  |  | |--- | data[1] = | IV | NT | SB | BL | EI | 0 | 0 | 0 | QDP = Quality descriptor for events of protection equipment
 |  |  | |--- | data[2..3] = | CP16Time2a |  |  |  |  |  |  |  | Relay operating time, two octets binary time
 |  |  | |--- | data[4..6] = | CP24Time2a |  |  |  |  |  |  |  | Three octets binary time tag
 |  |  | |--- | data[7..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_EP_TD_1

Event of protection equipment with CP56Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x26 (38) | = M_EP_TD_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 10 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | IV | NT | SB | BL | EI | 0 | ES |  | SEP = Single event of protection equipment
 |  |  | |--- | data[1..2] = | CP16Time2a |  |  |  |  |  |  |  | Elapsed time, two octets binary time
 |  |  | |--- | data[3..9] = | CP56Time2a |  |  |  |  |  |  |  | Sevent octets binary time tag
 |  |  | |--- | data[10..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_EP_TE_1

Packed start events of protection equipment with CP56Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x27 (39) | = M_EP_TE_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 11 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | 0 | 0 | SRD | SIE | SL3 | SL2 | SL1 | GS | SEP = Start events of protection equipment
 |  |  | |--- | data[1] = | IV | NT | SB | BL | EI | 0 | 0 | 0 | QDP = Quality descriptor for events of protection equipment
 |  |  | |--- | data[2..3] = | CP16Time2a |  |  |  |  |  |  |  | Relay duration time, two octets binary time
 |  |  | |--- | data[4..10] = | CP56Time2a |  |  |  |  |  |  |  | Seven octets binary time tag
 |  |  | |--- | data[11..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_EP_TF_1

Packed output circuit information of protection equipment with CP56Time2a time tag.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x28 (40) | = M_EP_TF_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 11 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | 0 | 0 | 0 | 0 | CL3 | CL2 | CL1 | GC | OCI = Output cirquit information of protection equipment
 |  |  | |--- | data[1] = | IV | NT | SB | BL | EI | 0 | 0 | 0 | QDP = Quality descriptor for events of protection equipment
 |  |  | |--- | data[2..3] = | CP16Time2a |  |  |  |  |  |  |  | Relay operating time, two octets binary time
 |  |  | |--- | data[4..10] = | CP56Time2a |  |  |  |  |  |  |  | Seven octets binary time tag
 |  |  | |--- | data[11..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


M_PS_NA_1

Packed single point information with status change detection.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x14 (20) | = M_PS_NA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 5 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..3] = | SCD |  |  |  |  |  |  |  | Status and status change detection (32 bit)
 |  |  | |--- | data[4] = | IV | NT | SB | BL |  |  |  | OV | QDS: Quality descriptor
 |  |  | |--- | data[5..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


P_ME_NA_1

Parameter of measured value, normalized value.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x6E (110) | = P_ME_NA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 3 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..1] = | NVA |  |  |  |  |  |  |  | Normalized value
 |  |  | |--- | data[2] = | LPC | POP | KPA |  |  |  |  |  | QPM: Qualifier of parameter of measured value
 |  |  | |--- | data[3..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


P_ME_NB_1

Parameter of measured value, scaled value.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x6F (111) | = P_ME_NB_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 3 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..1] = | SVA |  |  |  |  |  |  |  | Scaled value
 |  |  | |--- | data[2] = | LPC | POP | KPA |  |  |  |  |  | QPM: Qualifier of parameter of measured value
 |  |  | |--- | data[3..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


P_ME_NC_1

Parameter of measured value, short floating point value.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x70 (112) | = P_ME_NC_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  |  |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 5 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0..3] = | R32 |  |  |  |  |  |  |  | Short floating point value
 |  |  | |--- | data[4] = | LPC | POP | KPA |  |  |  |  |  | QPM: Qualifier of parameter of measured value
 |  |  | |--- | data[5..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


P_AC_NA_1

Parameter activation.

- obj |  |  |  |  |  |  |  |  |  |  |  |  | ASDU object
|--- | + head |  |  |  |  |  |  |  |  |  |  |  | Reserved
|--- | - ident |  |  |  |  |  |  |  |  |  |  |  | DATA UNIT IDENTIFIER
| | |--- | eType | = 0x71 (113) | = P_AC_NA_1 |  |  |  |  |  |  |  |  | Type identification
| | |--- | bSQ |  | = FALSE |  |  |  |  |  |  |  |  | Sequence of information objects
| | |--- | nObj |  | = 1 |  |  |  |  |  |  |  |  | Number of objects
| | |--- | bT |  |  |  |  |  |  |  |  |  |  | Test
| | |--- | bPN |  |  |  |  |  |  |  |  |  |  | Positive/negative confirmation/activation
| | |--- | eCOT |  |  |  |  |  |  |  |  |  |  | Cause of transmission
| | |--- | nORG |  |  |  |  |  |  |  |  |  |  | Originator address
| | |--- | asduAddr |  |  |  |  |  |  |  |  |  |  | Common address of asdu
| | |--- | eClass |  |  |  |  |  |  |  |  |  |  | Fifo priority class
|--- | - info |  |  |  |  |  |  |  |  |  |  |  | INFORMATION OBJECT
 | |--- | objAddr |  | = 0 |  |  |  |  |  |  |  |  | Information object address
 | |--- | stream |  |  |  |  |  |  |  |  |  |  | Information element/object data
 |  | |--- | length | = 1 |  |  |  |  |  |  |  |  |
 |  | |--- | data |  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
 |  |  | |--- | data[0] = | QPA |  |  |  |  |  |  |  | Qualifier of parameter activation
 |  |  | |--- | data[1..IEC870_MAX_ASDU_DATA_BYTE] = |  |  |  |  |  |  |  |  | Reserved


FB_IEC870_5_101TProtocol

TwinCAT PLC Library: IEC 60870-5-101 Serial Link Interface

FUNCTION_BLOCK FB_IEC870_5_101TProtocol

Ab der Produktversion: TwinCAT PLC Library IEC870-5-101 Unterstation v2.0.2 und höher.

Der Kommunikationsbaustein FB_IEC870_5_101TProtocol implementiert die Übertragungsprozeduren der Verbindungsschicht nach der IEC 60870-5-1 und IEC 60870-5-2-Norm.
Beim Protokollfehler wird ein entsprechender Fehlercode am Ausgang des Funktionsbausteins ausgegeben und die Datenübertragung unterbrochen. Um den Datenaustausch erneut aktivieren zu können, muss die Aktion INIT aufgerufen werden. Es werden dabei z.B. die TX/RX-Datenpuffer zurückgesetzt. Der Kommunikationsbaustein erwartet eine TX/RX-Datenpuffervariable. Diese Variable muss per VAR_IN_OUT an den Baustein übergeben werden.

Der Funktionsbaustein besitzt folgende Aktionen:

  • INIT (Führt eine Initialisierung des Funktionsbausteins durch);

Protokollkonfiguration

Der Kommunikationsbaustein besitzt eine protPara-Variable vom strukturierten Typ. Über diese Variable können Protokollparameter z.B. RX/TX-Timeoutzeiten usw. konfiguriert werden.

VAR_IN_OUT

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

hSerial: Verbindungs-Handle zum FB_IEC870_SerialLineCtrl-Funktionsbaustein. Über diese Variable werden mit dem FB_IEC870_SerialLineCtrl-Funktionsbaustein die zu sendenden und empfangenen Daten ausgetauscht.

buffer: TX/RX Datenpuffer.

VAR_INPUT

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

protPara: IEC60870-5-101-Protokollparameter.

bOutDbg:: Aktiviert/deaktiviert die Debug-Ausgabe der Frames in der TwinCAT System Manager-Loggeransicht.

VAR_OUTPUT

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

bError: Dieser Ausgang wird auf TRUE gesetzt, sobald ein Fehler bei der Datenübertragung aufgetreten ist.

nErrID: Liefert bei einem gesetzten bError-Ausgang einen Fehlercode;

eState: Verbindungsstatus zum Master.

Beispiel:

Beispielprojekte: IEC60870-5-101 Serial Link Interface

Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 Build >= 1301 | PC oder CX (x86) CX (ARM) | TcIEC870_5_101Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; COMlibV2.Lib; werden automatisch eingebunden )


FB_IEC870_PartyLineCtrl

TwinCAT PLC Library: IEC 60870-5-101 Serial Link Interface

FUNCTION_BLOCK FB_IEC870_PartyLineCtrl

Ab der Produktversion: TwinCAT PLC Library IEC870-5-101 Unterstation v2.0.2 und höher.

Mit dem Funktionsbaustein FB_IEC870_PartyLineCtrl kann der Datenaustausch zur Zentralstation im Linienbetrieb (partyline) betrieben werden.

Der Funktionsbaustein muss in der SPS-Task zyklisch aufgerufen werden. Mit dem eMode-Eingang kann der Linienbetrieb aktiviert/deaktiviert werden. Wenn Sie den Funktionsbaustein nicht benutzen (Default Einstellung) wird kein Linienbetrieb betrieben. Die deviceID-Eingangsvariable muss der Geräte ID aus der TwinCAT System Manager IO-Konfiguration entsprechen (Allgemeinreiter der COM-Schnittstelle) und wird nur dann benötigt wenn Sie für die Kommunikation im Linienbetrieb die serielle PC-Schnittstelle benutzen.

Die hSerial-Variable ist eine Struktur und dient dem internen Datenaustausch zwischen der schnellen und langsamen Kommunikationstask. Jedes Mal wenn der IEC-Slave senden will wird der bRTS-Ausgang (request to send) zuerst auf TRUE gesetzt. Nachdem der Sendebetrieb eingeschaltet wurde wird dies dem IEC-Slave durch das Setzen des bCTS-Eingangs (clear to send) auf TRUE mitgeteilt. Danach beginnt der IEC-Slave zu senden. Nachdem die Daten gesendet wurden (interne Hardware-Puffer sind leer) setzt der IEC-Slave den bRTS-Ausgang auf FALSE zurück. Jetzt kann die Sendeleitung für den anderen Teilnehmer freigegeben werden. Wenn dies geschehen ist, muss dies ebenfalls am bCTS-Eingang mit FALSE dem IEC-Slave mitgeteilt werden. D.h. der Zustand des bCTS-Eingangs folgt immer dem Zustand des bRTS-Ausgangs.

Bei der seriellen PC-Schnittstelle wird der bRTS-Ausgang erst dann auf FALSE gesetzt (Daten gesendet), wenn die ADS-Abfrage des internen Hardware-Sendepuffers Null Bytes im Puffer zurückliefert.

VAR_IN_OUT

VAR_IN_OUT
    hSerial 		: T_HSERIALCTRL;
ND_VAR

hSerial : Verbindungs-Handle zum FB_IEC870_SerialLineCtrl-Funktionsbaustein. Über diese Variable werden mit dem FB_IEC870_SerialLineCtrl-Funktionsbaustein die zu sendenden und empfangenen Daten ausgetauscht.

VAR_INPUT

VAR_INPUT
    eMode 		: E_IEC870_5_101PartylineMode := eIEC870_PartylineMode_Off; (* Partyline modes (On/Off)*)
    deviceID 	: UDINT := 0; (*Used by SERIALLINEMODE_PC_COM_PORT only. DeviceId specifies the device on which the function is to be executed.
    The device Ids are specified by the TwinCAT System Manager during the hardware configuration.*)
    bCTS 		: BOOL := FALSE; (* Clear to send *)
END_VAR

eMode : Partyline-Aktivierungsmode.

deviceID : TwinCAT System Manager Geräte-ID. Dieser Parameter wird nur bei der Kommunikation über die serielle PC-Schnittstelle benötigt.

bCTS : Clear to send (für den IEC-Link-Layer).

VAR_OUTPUT

VAR_IN_OUT
    bError 		: BOOL;
    nErrID 		: UDINT;
    bRTS 		: BOOL := FALSE; (* Request to send *)
ND_VAR

bError : Wird TRUE, sobald ein Fehler aufgetreten ist.

nErrID: Liefert bei einem gesetzten bError-Ausgang den Fehlercode.

bRTS: Request to send (vom IEC-Link-Layer).

Beispiel für TwinCAT v2.10 Build < 1313 oder älter (CE image < 2.16 oder älter):

Implementierung des Linienbetriebs in der schnellen Kommunikationstask: Über die RTS_SWITCH-Variable wird die Leitung für den Sendebetrieb EIN- und AUS-geschaltet.

Die tRTS_DEALY_ON-Verzögerungszeit (Vorlaufzeit) stellt sicher, dass die Freischaltung der Leitung für den IEC-Slave abgeschlossen wurde, die tRTS_DELAY_OFF-Verzögerungszeit (Nachlaufzeit) stellt sicher, dass auch das letzte gesendete Datenbyte von der Zentralstation empfangen wurde.

PROGRAM P_SerialComm_HighSpeed
VAR
    fbSerialLineCtrl 	: FB_IEC870_SerialLineCtrl;
    Mode 		: ComSerialLineMode_t := SERIALLINEMODE_PC_COM_PORT; (* SERIALLINEMODE_KL6_5B_STANDARD *)

    serial_in AT%IB0 	: PcComInData;
    serial_out AT%QB0	: PcComOutData;
    KL6_in AT%IB100 	: KL6inData5B;
    KL6_out AT%QB100 	: KL6outData5B;

    hSerial 		: T_HSERIALCTRL;
    fbPartyLineCtrl 	: FB_IEC870_PartyLineCtrl;
    delay 		: TON;
    tRTS_DEALY_ON 	: TIME := T#100ms;
    tRTS_DELAY_OFF 	: TIME := T#100ms;
    RTS_SWITCH AT%QX200.0 : BOOL; (* RTS line switch *)
END_VAR

fbSerialLineCtrl( Mode := Mode,
        Baudrate := 19200,
        NoDatabits := 8,
        Parity := PARITY_EVEN,
        Stopbits := 1,
        Handshake := HANDSHAKE_NONE,
        ContinousMode := FALSE,
        pComIn := SEL( Mode = SERIALLINEMODE_KL6_5B_STANDARD, ADR( serial_in ), ADR( KL6_in ) ),
        pComOut := SEL( Mode = SERIALLINEMODE_KL6_5B_STANDARD, ADR( serial_out ), ADR( KL6_out ) ),
        SizeComIn := SEL( Mode = SERIALLINEMODE_KL6_5B_STANDARD, SIZEOF( serial_in ), SIZEOF( KL6_in ) ),
        hSerial := hSerial );

(* The deviceID may vary! *)
fbPartyLineCtrl( eMode:= eIEC870_PartylineMode_On, hSerial:= hSerial, deviceID := 1 );
IF fbPartyLineCtrl.bRTS <> fbPartyLineCtrl.bCTS THEN
    IF fbPartyLineCtrl.bRTS THEN
        RTS_SWITCH := TRUE; (* switch RTS line ON *)
        delay( in := TRUE, PT := tRTS_DEALY_ON ); (* wait until line enabled *)
        IF delay.Q THEN
            delay( in := FALSE );
            fbPartyLineCtrl.bCTS := TRUE; (* set clear to send *)
        END_IF
    ELSE
        delay( in := TRUE, PT := tRTS_DELAY_OFF ); (* wait until all data send *)
        IF delay.Q THEN
            delay( in := FALSE );
            RTS_SWITCH := FALSE; (* switch RTS line OFF *)
            fbPartyLineCtrl.bCTS := FALSE; (* reset clear to send *)
        END_IF
    END_IF
END_IF

Beispiel für eine TwinCAT v2.10 Build >= 1313 oder neuer (CE image v2.16 oder neuer):

Bei einer neueren TwinCAT-Version kann die RTS-Leitung direkt als ein IO-Ausgang in die SPS gemappt werden. Sie müssen im TwinCAT System Manager die Extended Ctrl/Status Option aktivieren. Der eMode-Parameter an dem Funktionsbaustein muss eMode := eIEC870_PartylineMode_Ext_On gesetzt werden. Der deviceID-Parameter wird in dieser Betriebsart nicht benutzt und muss nicht konfiguriert werden.

Die RTS_SWITCH-Variable muss mit dem Bit 1 im ExtCtrl (RTS-Ausgang ) und die TX_BUFFER_EMPTY-Variable mit dem Bit 15 im ExtStatus verknüpft werden.

PROGRAM P_SerialComm_HighSpeed
VAR
    fbSerialLineCtrl 	: FB_IEC870_SerialLineCtrl;
    Mode 		: ComSerialLineMode_t := SERIALLINEMODE_PC_COM_PORT; (* SERIALLINEMODE_KL6_5B_STANDARD *)

    serial_in AT%IB0 	: PcComInData;
    serial_out AT%QB0	: PcComOutData;
    KL6_in AT%IB100 	: KL6inData5B;
    KL6_out AT%QB100 	: KL6outData5B;

    hSerial 		: T_HSERIALCTRL;
    fbPartyLineCtrl 	: FB_IEC870_PartyLineCtrl;
    delay 		: TON;
    tRTS_DEALY_ON 	: TIME := T#100ms;
    tRTS_DELAY_OFF 	: TIME := T#100ms;
    RTS_SWITCH AT%QX200.0 : BOOL; (* RTS line switch *)
    TX_BUFFER_EMPTY AT%IX200.0 : BOOL; (* UART's tx buffer is empty *)
END_VAR
fbSerialLineCtrl( Mode := Mode,
        Baudrate := 19200,
        NoDatabits := 8,
        Parity := PARITY_EVEN,
        Stopbits := 1,
        Handshake := HANDSHAKE_NONE,
        ContinousMode := FALSE,
        pComIn := SEL( Mode = SERIALLINEMODE_KL6_5B_STANDARD, ADR( serial_in ), ADR( KL6_in ) ),
        pComOut := SEL( Mode = SERIALLINEMODE_KL6_5B_STANDARD, ADR( serial_out ), ADR( KL6_out ) ),
        SizeComIn := SEL( Mode = SERIALLINEMODE_KL6_5B_STANDARD, SIZEOF( serial_in ), SIZEOF( KL6_in ) ),
        hSerial := hSerial );

fbPartyLineCtrl( hSerial:= hSerial, eMode := eIEC870_PartylineMode_Ext_On );
IF fbPartyLineCtrl.bRTS <> fbPartyLineCtrl.bCTS THEN
    IF fbPartyLineCtrl.bRTS THEN
        RTS_SWITCH := TRUE; (* switch RTS line ON *)
        delay( in := TRUE, PT := tRTS_DEALY_ON ); (* wait until line enabled *)
        IF delay.Q THEN
            delay( in := FALSE );
            fbPartyLineCtrl.bCTS := TRUE; (* set clear to send *)
        END_IF
    ELSE
        IF TX_BUFFER_EMPTY THEN
            delay( in := TRUE, PT := tRTS_DELAY_OFF ); (* wait until all data send *)
            IF delay.Q THEN
                delay( in := FALSE );
                RTS_SWITCH := FALSE; (* switch RTS line OFF *)
                fbPartyLineCtrl.bCTS := FALSE; (* reset clear to send *)
            END_IF
        END_IF
    END_IF
END_IF

Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.9.0 Build >= 1030 | PC oder CX (x86) | TcIEC870_5_101Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; COMlibV2.Lib; werden automatisch eingebunden )
TwinCAT v2.10.0 Build >= 1301 | CX (ARM)


FB_IEC870_SerialLineCtrl

TwinCAT PLC Library: IEC 60870-5-101 Serial Link Interface

FUNCTION_BLOCK FB_IEC870_SerialLineCtrl

Der Funktionsbaustein FB_IEC870_SerialLineCtrl wickelt die Kommunikation zwischen einer seriellen Schnittstelle (KL60xx, EL60xx oder COM-Schnittstelle) und den IEC60870-5-101 SPS-Bausteinen ab.
Wenn Sie für die Kommunikation eine serielle Klemme KL60xx benutzen, dann wird die Busklemme zuerst initialisiert und konfiguriert (Baudrate, Parity.. usw). Die Konfiguration der PC-COM-Schnittstelle und der Klemme EL60xx muss aber in TwinCAT System Manager durchgeführt werden. Die empfangenen und zu sendenden Daten werden in den internen Puffern der hSerial-Variablen gehalten. Der Funktionsbaustein muss in der SPS-Task zyklisch aufgerufen werden.

VAR_IN_OUT

VAR_IN_OUT
    hSerial 		: T_HSERIALCTRL;
ND_VAR

hSerial :

VAR_INPUT

VAR_INPUT
    Mode 		: ComSerialLineMode_t 	:= SERIALLINEMODE_PC_COM_PORT; (* or SERIALLINEMODE_PC_COM_PORT *)
    Baudrate 	: UDINT 			:= 19200; 		(* KL60xx only: 115200, 57600, 38400, 19200, 9600, 4800, 2400, 1200 *)
    NoDatabits 	: BYTE 		:= 8; 			(* KL60xx only: 7 or 8 *)
    Parity 		: ComParity_t 	:= PARITY_EVEN; 		(* KL60xx only: PARITY_NONE=0, PARITY_EVEN=1, PARITY_ODD=2 *)
    Stopbits 	: BYTE 			:= 1; 			(* KL60xx only: 1 or 2 *)
    Handshake 	: ComHandshake_t 	:= HANDSHAKE_NONE; 	(* KL60xx only: HANDSHAKE_NONE=0, HANDSHAKE_RTSCTS=1, HANDSHAKE_XONXOFF=2 *)
    ContinousMode 	: BOOL; 					(* KL60xx only: Don't start transmission before transmit buffer is filled *)
    pComIn 		: POINTER TO BYTE;
    pComOut 		: POINTER TO BYTE;
    SizeComIn 	: UINT;
END_VAR

Mode : Der Mode-Eingang legt eindeutig fest, welche serielle Hardware verwendet wird.

Baudrate : Die Baudrate, soweit durch die serielle Hardware unterstützt

NoDatabits : Anzahl der Nutzdatenbits in einem Datenbyte

Parity : Typ des Paritybits eines Datenbytes

Stopbits : Anzahl der Stoppbits pro Datenbyte

Handshake : Typ des verwendeten Handshakes soweit durch die serielle Hardware unterstützt

ContinousMode : Schaltet das kontinuierliche Senden ein, wenn es durch die serielle Hardware unterstützt wird.

Wenn ContinousMode TRUE ist, werden gesendete Daten erst dann aus der seriellen Hardware abgeschickt, wenn der Hardware-Sendepuffer voll ist. Dadurch wird ein zeitlückenfreies Senden gewährleistet, solange die Datenmenge in der Größenordnung des Hardware-Sendepuffers liegt. Der continous mode wird nur in besonderen Fällen benötigt, wenn das Endgerät auf Zeitlücken mit einem Timeout reagiert.

pComIn : Universeller Pointer auf die Eingangsvariable der Prozessdaten der seriellen Hardware (Datentypen KL6inData, KL6inData5b, PcComInData, EL6inData22B ). Der Pointer wird mit der ADR() Funktion zugewiesen.

pComOut : Universeller Pointer auf die Ausgangsvariable der Prozessdaten der seriellen Hardware (Datentypen KL6outData, KL6outData5b, PcComOutData, EL6outData22B ). Der Pointer wird mit der ADR() Funktion zugewiesen.

SizeComIn : Größe des Eingangs-Prozessabbildes der verwendeten seriellen Hardware. Die Größe wird mit der SIZEOF() Funktion ermittelt und zugewiesen.

Beispiel 1:

Das Beispiel zeigt einen Aufruf in ST. Durch das Setzen der Mode-Variablen kann zwischen zwei Kommunikationswegen umgeschaltet werden.

Bei Mode = SERIALLINEMODE_PC_COM_PORT wird über eine serielle COM-Schnittstelle des PC's und bei Mode = SERIALLINEMODE_KL6_5B_STANDARD über eine KL6001 Busklemme kommuniziert (5 Byte mode).

PROGRAM P_SerialComm_HighSpeed
VAR
    fbSerialLineCtrl 	: FB_IEC870_SerialLineCtrl;
    Mode 		: ComSerialLineMode_t := SERIALLINEMODE_KL6_5B_STANDARD; (* SERIALLINEMODE_PC_COM_PORT *)

    serial_in AT%IB0 	: PcComInData;
    serial_out AT%QB0	: PcComOutData;
    KL6_in AT%IB100 	: KL6inData5B;
    KL6_out AT%QB100 	: KL6outData5B;

    hSerial 		: T_HSERIALCTRL;
END_VAR

fbSerialLineCtrl( Mode := Mode,
        Baudrate := 19200,
        NoDatabits := 8,
        Parity := PARITY_EVEN,
        Stopbits := 1,
        Handshake := HANDSHAKE_NONE,
        ContinousMode := FALSE,
        pComIn := SEL( Mode = SERIALLINEMODE_KL6_5B_STANDARD, ADR( serial_in ), ADR( KL6_in ) ),
        pComOut := SEL( Mode = SERIALLINEMODE_KL6_5B_STANDARD, ADR( serial_out ), ADR( KL6_out ) ),
        SizeComIn := SEL( Mode = SERIALLINEMODE_KL6_5B_STANDARD, SIZEOF( serial_in ), SIZEOF( KL6_in ) ),
        hSerial := hSerial );

Beispiel 2:

In diesem Beispiel wird über eine EL6001 kommuniziert (22 Byte mode). Die Konfiguration der EL6001 Klemme (Baudrate, Parity usw.) muss in TwinCAT System Manager durchgeführt werden.

PROGRAM P_SerialComm_HighSpeed
VAR
    fbSerialLineCtrl	: FB_IEC870_SerialLineCtrl := ( Mode := SERIALLINEMODE_EL6_22B );
    EL6_in		AT%IB4100	: EL6inData22B;
    EL6_out		AT%QB4100	: EL6outData22B;
    hSerial		: T_HSERIALCTRL;
END_VAR

fbSerialLineCtrl( pComIn := ADR( EL6_in ),
        pComOut := ADR( EL6_out ),
        SizeComIn := SIZEOF( EL6_in ),
        hSerial := hSerial );
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.9.0 Build >= 1030 | PC or CX (x86) | TcIEC870_5_101Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; COMlibV2.Lib; werden automatisch eingebunden )
TwinCAT v2.10.0 Build >= 1301 | CX (ARM)


F_iecApdu101ToAsduLen

TwinCAT PLC Library: IEC 60870-5-101 Serial Link Interface

FUNCTION F_iecApdu101ToAsduLen

Ab der Produktversion: TwinCAT PLC Library IEC60870-5-101 Unterstation v2.0.2 und höher.

Die Funktion berechnet für das IEC 60870-5-101 Protokoll die maximal verfügbare ASDU-Octetlänge anhand der konfigurierten APDU-Telegrammlänge und der Adressfeldlänge der Verbindungsschicht. Die maximal verfügbare ASDU-Länge wird z.B. bei der Konfiguration der ST_IEC870_5_101TBuffer-Variablen benötigt. Diese Datenstruktur (TX/RX-Datenpuffer) wird beim Datenaustausch über das IEC60870-5-101 Serial Link Interface benutzt.

FUNCTION F_iecApdu101ToAsduLen: BYTE

VAR_INPUT
    FRAMELength 	: BYTE;
    eLinkAddrSize 	: E_IEC870_5_101LinkAddrSize;
END_VAR

FRAMELength : Die max. verfügbare APDU-Telegrammlänge (siehe Kompatibilitätsliste).

eLinkAddrSize: Adressfeldlänge der Verbindungsschicht.

Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.9.0 Build >= 1030 | PC oder CX (x86) | TcIEC870_5_101Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; COMlibV2.Lib; werden automatisch eingebunden )
TwinCAT v2.10.0 Build >= 1301 | CX (ARM)


F_GetVersionTcIEC870_5_101Link

TwinCAT PLC Library: IEC 60870-5-101 Serial Link Interface

FUNCTION F_GetVersionTcIEC870_5_101Link

Mit dieser Funktion können Versionsinformationen der SPS-Bibliothek ausgelesen werden.

FUNCTION F_GetVersionTcIEC870_5_101Link: UINT

VAR_INPUT
    nVersionElement : INT;
END_VAR

nVersionElement : Versionselement, das gelesen werden soll. Mögliche Parameter:

  • 1 : major number;
  • 2 : minor number;
  • 3 : revision number;
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.9.0 Build >= 1030 | PC or CX (x86) | TcIEC870_5_101Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; COMlibV2.Lib; werden automatisch eingebunden )
TwinCAT v2.10.0 Build >= 1301 | CX (ARM)


ST_IEC870_5_101ProtocolParams

TwinCAT PLC Library: IEC 60870-5-101 Serial Link Interface

TYPE ST_IEC870_5_101ProtocolParams

Protokollparameter der Verbindungsschicht. Die Parameter haben abhängig von dem Protokoll- oder Stationstyp unterschiedliche Bedeutung.

TYPE ST_IEC870_5_101ProtocolParams :
STRUCT
    eType 		: E_IEC870_DEVICE_TYPE := eIEC870_101_SLAVE;
    eLinkReset 	: E_IEC870_5_101LinkReset := eIEC870_LinkReset_CU;
    linkAddr 		: DWORD := 1;
    eLinkAddrSize 	: E_IEC870_5_101LinkAddrSize := eIEC870_LinkAddr_TwoOctets;
    eLinkMode 	: E_IEC870_5_101LinkMode := eIEC870_LinkMode_Unbalanced;
    eFrameType 	: E_IEC870_5_101FrameType := eIEC870_FrameType_FT1_2;
    tRxTimeout 	: TIME := T#5s;
    tTxTimeout 	: TIME := T#5s;
    bForceC1Res 	: BOOL := TRUE;
    bForceC2Res 	: BOOL := TRUE;
    tClass1Poll 	: TIME := T#200ms;
    tClass2Poll 	: TIME := T#200ms;
    nRetries 		: BYTE := 3;
    tRetry		: TIME := T#100ms;
    tResponse 	: TIME := T#1s;
    tTestLink 	: TIME := T#5s;
    tPollDFC 		: TIME := T#1s;
    FRAMELength 	: BYTE(MIN_IEC870_5_101Link_FRAMELEN..MAX_IEC870_5_101Link_FRAMELEN)
                := MAX_IEC870_5_101Link_FRAMELEN;
    bRetainBuffer	: BOOL := FALSE;
    tMaxPollDelay 	: TIME := T#0s;
    tLinkPollCycle 	: TIME := T#10s;
END_STRUCT
END_TYPE

In der unterstehenden Tabelle finden Sie Hinweise zur Konfiguration. Bei fixen Werten muss der Parameter dem Wert aus der Tabelle entsprechen (nicht konfigurierbar).

Legende:

  • X Der Parameter wird benutzt und ist konfigurierbar;
  • N/A Der Parameter wird nicht benutzt und ist nicht konfigurierbar;
Parametername | Initialisierungswert | IEC 60870-5-101 controlled station (slave, unbalanced mode) | IEC 60870-5-101 control station (master, unbalanced mode) | IEC 60870-5-103 control station (master, unbalanced mode) | IEC 60870-5-102 control station (master, unbalanced mode) | Beschreibung
eType | eIEC870_101_SLAVE | fix, eIEC870_101_SLAVE | fix, eIEC870_101_MASTER | fix, eIEC870_103_MASTER | fix, eIEC870_102_MASTER | Konfiguriert den Protokoll- und Stationstyp.
eLinkReset | eIEC870_LinkReset_CU | N/A | X | X | fix, eIEC870_LinkReset_CU | Reset-Typ bei der Intilialisierung der Verbindungsschicht.
linkAddr | 1 | eigene Adresse | Adresse des Remote-Teilnehmers | Adresse des Remote-Teilnehmers | Adresse des Remote-Teilnehmers | Verbindungsadresse.
eLinkAddrSize | eIEC870_LinkAddr_TwoOctets | X | X | X | X | Octetgröße der Verbindungsadresse.
eLinkMode | eIEC870_LinkMode_Unbalanced | fix, eIEC870_LinkMode_Unbalanced | fix, eIEC870_LinkMode_Unbalanced | fix, eIEC870_LinkMode_Unbalanced | fix, eIEC870_LinkMode_Unbalanced | Verbindungs-Mode (balanced/unbalanced).
eFrameType | eIEC870_FrameType_FT1_2 | fix, eIEC870_FrameType_FT1_2 | fix, eIEC870_FrameType_FT1_2 | fix, eIEC870_FrameType_FT1_2 | fix, eIEC870_FrameType_FT1_2 | Telegramm-Frameformat. Zur Zeit wird nur das Format F1.2 unterstützt.
tRxTimeout | T#5s | X | X | X | X | Max. Frame-Receive-Timeout-Zeit.
tTxTimeout | T#5s | X | X | X | X | Max. Frame-Send-Timeout-Zeit.
bForceC1Res | TRUE | X | N/A | N/A | N/A | Ist dieser Parameter gesetzt (TRUE), dann werden Class 1 Daten als Antwort auf Class 2 Anfrage gesendet wenn Class 1 Daten vorliegen (optimierter, höherer Datendurchsatz für Class 1). Ist dieser Parameter nicht gesetzt (FALSE) dann wird negative Antwort auf Class 2 Anfrage gesendet wenn Class 1 Daten vorliegen (kleinerer Datendurchsatz, leere Telegramme).
bForceC2Res | TRUE | X | N/A | N/A | N/A | Ist dieser Parameter gesetzt (TRUE), dann werden Class 2 Daten als Antwort auf Class 2 Anfrage gesendet obwohl Class 1 Daten vorliegen (optimierter, höherer Datendurchsatz für Class 2). Ist dieser Parameter nicht gesetzt (FALSE) dann wird negative Antwort auf Class 2 Anfrage gesendet wenn Class 1 Daten vorliegen (kleinerer Datendurchsatz, leere Telegramme)
tClass1Poll | T#200ms | N/A | X | X | X | Zykluszeit in der die Class 1 Daten abgefragt werden sollen (unbalanced mode only).
tClass2Poll | T#200ms | N/A | X | X | X | Zykluszeit in der die Class 2 Daten abgefragt werden sollen (unbalanced mode only).
nRetries | 3 | bis zur v3.0.6 nicht benutzt (Fehler beim ersten gestörten Frame), ab der v3.0.8 und höher konfigurierbar | X | X | X | Maximale Anzahl der Telegrammwiederholungen beim gestörten Datenaustausch.
tRetry | T#100ms | N/A | X | X | X | Verzögerungszeit für Telegrammwiederholungen beim gestörten Datenaustausch.
tResponse | T#1s | N/A | X | X | X | Dieser Parameter bestimmt die max. Wartezeit auf eine Telegrammbestätigung. Beim Überschreiten dieser Zeit wird das Telegramm wiederholt, aber max. bis zu nRetry-Male, übertragen.
tTestLink | T#5s | N/A | N/A | N/A | N/A | Zykluszeit in der Test-Telegramme verschickt werden sollen (balanced mode only)
tPollDFC | T#1s | N/A | X | X | X | Zykluszeit in der beim gesetzten DFC-Bit der Verbindungsstatus abgefragt werden soll. Das DFC-Bit wird von dem Remote-Teilnehmer dann gesetzt wenn weitere Telegramme einen Überlauf verursachen könnten.
FRAMELength | MAX_IEC870_5_101Link_FRAMELEN | X | X | X | X | Telegramlänge, max. Länge L.
bRetainBuffer | FALSE | ab der Produktversion v3.0.2 und höher | X | X | X | Ist dieser Parameter gesetzt, dann werden die internen TX/RX-Puffer bei der Initialisierung der Verbindungsschicht nicht zurückgesetzt (gelöscht).
tMaxPollDelay | T#0s ( = 0: deaktiviert, <> 0: aktiv) | ab der Produktversion v3.0.2 und höher | N/A | N/A | N/A | Beim Fehlen der Poll-Anfragen wird nach der Überschreitung dieser Zeit der Verbindungsstatus als OFFLINE deklariert.
tLinkPollCycle | T#10s | N/A | X | X | X | Zykluszeit in der bei einer fehlenden Verbindung link status telegramme an die Unterstation gesendet werden.

Zusätzliche Hinweise zu bForceC1Res und bForceC2Res-Parametern:

Unabhängig davon ob Sie beide oder nur eines der Parameter setzen oder nicht wird das ACD-Bit auf jeden Fall passend gesetzt um der Leitstation mitzuteilen ob Class 1 oder Class 2 Daten als nächstes abgefragt werden sollen. Nur bei Classe 2 Abfragen wird das Verhalten der Unterstation von diesen Parametern beeinflusst.

Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.9.0 Build >= 1030 | PC or CX (x86) | TcIEC870_5_101Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; COMlibV2.Lib; werden automatisch eingebunden )
TwinCAT v2.10.0 Build >= 1301 | CX (ARM)


E_IEC870_5_101FrameType

TwinCAT PLC Library: IEC 60870-5-101 Serial Link Interface

TYPE E_IEC870_5_101FrameType

TYPE E_IEC870_5_101FrameType :
(
    eIEC870_FrameType_FT1_2
);
END_TYPE

IEC 60870-5-101 Frame Type. Zur Zeit wird nur FT1.2 unterstützt.

Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.9.0 Build >= 1030 | PC or CX (x86) | TcIEC870_5_101Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; COMlibV2.Lib; werden automatisch eingebunden )
TwinCAT v2.10.0 Build >= 1301 | CX (ARM)


E_IEC870_5_101LinkMode

TwinCAT PLC Library: IEC 60870-5-101 Serial Link Interface

TYPE E_IEC870_5_101LinkMode

Konfiguriert den Datenübertragungsmodus.

TYPE E_IEC870_5_101LinkMode :
(
    eIEC870_LinkMode_Unbalanced,
    eIEC870_LinkMode_Balanced
);
END_TYPE

eIEC870_LinkMode_Unbalanced: Asymmetrische/Unsymmetrische Datenübertragung. In diesem Übertragungsmodus steuert die Leitstation (master) den Datenaustausch mit den Unterstationen (slaves). Die Leitstation initiert immer den Datenaustausch. Die Leitstation fragt auf diese Weise sequentiell alle Unterstationen ab.

eIEC870_LinkMode_Balanced: Symmetrische Datenübertraung. Dieser Übertragungsmodus ist nur in neueren Produktversionen verfügbar:

  • TwinCAT PLC Library IEC 60870-5-101 Master v2.0.1 und höher;
  • TwinCAT PLC Library IEC 60870-5-101 Slave v4.0.1 und höher;

In diesem Übertragunsmodus kann jede Station den Datenaustausch initieren und kann nur in "point-to-point" und "multiple-point-to-point"-Konfigurationen verwendet werden.

Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.9.0 Build >= 1030 | PC or CX (x86) | TcIEC870_5_101Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; COMlibV2.Lib; werden automatisch eingebunden )
TwinCAT v2.10.0 Build >= 1301 | CX (ARM)


E_IEC870_5_101SerialLinkState

TwinCAT PLC Library: IEC 60870-5-101 Serial Link Interface

TYPE E_IEC870_5_101SerialLinkState

TYPE E_IEC870_5_101SerialLinkState :
(
    eSERIALLINK_DISCONNECTED,
    eSERIALLINK_ESTABLISHED,
    eSERIALLINK_SUSPENDED
);
END_TYPE

Verbindungsstatus.

Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.9.0 Build >= 1030 | PC or CX (x86) | TcIEC870_5_101Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; COMlibV2.Lib; werden automatisch eingebunden )
TwinCAT v2.10.0 Build >= 1301 | CX (ARM)


E_IEC870_5_101PartyLineMode

TwinCAT PLC Library: IEC 60870-5-101 Serial Link Interface

TYPE E_IEC870_5_101PartyLineMode

Ab der Produktversion: TwinCAT PLC Library IEC870-5-101 Unterstation v2.0.2 und höher.

TYPE E_IEC870_5_101PartyLineMode :
(
    eIEC870_PartylineMode_Off := 0, (* Disabled *)
    eIEC870_PartylineMode_On (* Enabled *)
    eIEC870_PartylineMode_Ext_On := 2 (* Enabled, with extended serial state/control interface *)
);
END_TYPE

Partyline Aktivierungsmode. Siehe auch in der Beschreibung des Funktionsbausteins: FB_IEC870_PartyLineCtrl.

Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.9.0 Build >= 1030 | PC or CX (x86) | TcIEC870_5_101Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; COMlibV2.Lib; werden automatisch eingebunden )
TwinCAT v2.10.0 Build >= 1301 | CX (ARM)


E_IEC870_5_101LinkReset

TwinCAT PLC Library: IEC 60870-5-101 Serial Link Interface

TYPE E_IEC870_5_101LinkReset

TYPE E_IEC870_5_101LinkReset :
(
    eIEC870_LinkReset_None 	:= 0, 	(* Disabled *)
    eIEC870_LinkReset_CU 	:= 1, 	(* Reset communication unit *)
    eIEC870_LinkReset_UP 	:= 2, 	(* Reset user process *)
    eIEC870_LinkReset_FCB 	:= 3 	(* Reset FCB bit *)
);
END_TYPE

Reset-Typ während der Initialisierung der Verbindungsschicht.

Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 Build >= 1307 | PC or CX (x86, ARM) | TcIEC870_5_101Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; COMlibV2.Lib; werden automatisch eingebunden )


E_IEC870_DEVICE_TYPE

TwinCAT PLC Library: IEC 60870-5-101 Serial Link Interface

TYPE E_IEC870_DEVICE_TYPE

TYPE E_IEC870_DEVICE_TYPE :
(
    eIEC870_101_SLAVE := 0, (* Secondary (responding) station *)
    eIEC870_101_MASTER := 1, (* Primary (initiating) station *)

    eIEC870_102_SLAVE := 2, (* Secondary (responding) station *)
    eIEC870_102_MASTER := 3, (* Primary (initiating) station *)

    eIEC870_103_SLAVE := 4, (* Secondary (responding) station *)
    eIEC870_103_MASTER := 5 (* Primary (initiating) station *)
);
END_TYPE

Protokoll- bzw. Stationstyp.

Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10.0 Build >= 1307 | PC or CX (x86, ARM) | TcIEC870_5_101Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; COMlibV2.Lib; werden automatisch eingebunden )


T_HSERIALCTRL

TwinCAT PLC Library: IEC 60870-5-101 Serial Link Interface

TYPE T_HSERIALCTRL

Eine Variable von diesem Typ repräsentiert ein Verbindungs-Handle der seriellen Schnittstelle. Die Strukturelemente sollen nicht direkt beschrieben oder verändert werden. Variablen von diesem Typ werden für den Datenaustausch der zu sendeten oder empfangenen Daten zwischen dem Funktionsbaustein FB_IEC870_SerialLineCtrl und anderen IEC 60870-5-101 SPS-Bausteinen benutzt.

Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.9.0 Build >= 1030 | PC or CX (x86) | TcIEC870_5_101Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; COMlibV2.Lib; werden automatisch eingebunden )
TwinCAT v2.10.0 Build >= 1301 | CX (ARM)


Fehlercodes Übersicht

TwinCAT PLC Library: IEC 60870-5-101 Serial Link Interface

IEC 60870-5-101 Serial Link Interface Fehlercodes

Fehlercodes (Hex) | Fehlercodes (Dez) | Fehlerquelle | Beschreibung
0x00000000-0x00002000 | 0-8192 | Serial communication errors | Serielle Kommunikation Fehler (aber nur wenn die Fehlerquelle = eIEC870_ESRC_IEC60870_5_101LINK ).
0x00000000-0x00007800 | 0-30720 | TwinCAT System Fehler | TwinCAT System Fehler (ADS-Fehlercodes inklusive wenn Fehlerquelle <> eIEC870_ESRC_IEC60870_5_101LINK ).
0x00008100-0x000081FF | 32768-33023 | IEC60870-5-10x Fehler | IEC60870-5-10x Fehler


Fehlersuche

TwinCAT PLC Library: IEC 60870-5-101 Serial Link Interface

Fehlersuche/Diagnose

  1. Überprüfen Sie die in dieser Dokumentation beschriebenen Hardware- und Softwareanforderungen (TwinCAT-Version, CE Image-Version usw.);
  2. Vergleichen/überprüfen Sie die Kompatibilitätsliste der Leitstation mit der Kompatibilitätsliste der Unterstation;
  3. Überprüfen Sie die IO-Konfiguration und das Mapping der SPS-Variablen in TwinCAT System Manager (Konfiguration der seriellen Schnittstellen, Baudrate, Parity, Stopbits usw.). Vergleichen Sie die Parameter mit Parametern des Kommunikationspartners;
  4. Überprüfen Sie ob der FB_IEC870_5_101TProtocol() Funktionsbaustein einen Fehlercode ausgibt. Die Dokumentation zu den Fehlercodes finden Sie hier: Übersicht der Fehlercodes;
  5. Überprüfen Sie die am Funktionsbaustein eingestellten Protokolparameter (Link-Adresse, Länge der Link-Adresse, FRAMELength, usw.). Vergleichen Sie die Protokolparameter mit den Parametern des Kommunikationspartners;
  6. Überprüfen Sie die am TX/RX-Datenpuffer (instanz von ST_IEC870_5_101TBuffer) konfigurierten Adresslängen: Länge der ASDU-Adresse, Länge der Informationsobjekt-Adresse, Länge der Übertragungsursache, max. ASDU-Länge. Vergleichen Sie die Adresslängen mit der Konfiguration des Kommunikationspartners;
  7. Überprüfen Sie die Konfiguration der Datenpunkte (Typ, Adresse des Informationsobjektes usw.);
  8. Überprüfen Sie ob der andere Kommunikationspartner einen Fehlercode ausgibt;
  9. Aktivieren Sie die Debugausgaben beim Aufbauen und Abbauen der Verbindung und/oder der ASDU Daten. Öffnen Sie den TwinCAT System Manager und aktivieren das LogView-Fenster. Prüfen Sie die Debugausgaben;


Beispiele

Im Beispielprojekten sind folgende Stationsparameter für die Unterstation oder Zentralstation eingestellt:

  • Standard PC interface: COM1
  • 19200 Baud
  • Link address: 1
  • Link address size: 1 octet
  • Cause of transfer size: 1 octet
  • Originator address: not used
  • Common ASDU address: 7
  • Common ASDU address size: 1 octet
  • Information object address size: 2 octets

Um die Beispiele fehlerfrei übersetzen zu können benötigen Sie die TwinCAT Version 2.10 Build > 1328!

Die Beispielapplikationen beinhalten zwei Programmteile: P_MAIN_LowSpeed() (langsame Task) implementiert das Fernwirkprotokol und P_SerialComm_HighSpeed() (schnelle Task)implementiert die TwinCAT Kommunikation über die seriellen Schnittstellen.

SPS Project TwinCAT System Manager Konfiguration Beschreibung
LowLevelSlaveSample.zip

(unbalanced mode)

LowLevelSlaveSampleBal.zip

(balanced mode)

LowLevelSlaveSample.zip

(unbalanced mode)

LowLevelSlaveSampleBal.zip

(balanced mode)

Einfache Slave-Applikation die das TwinCAT IEC60870-5-101 Serial Link Interface nutzt.

Der Funktionsbaustein FB_IEC870_5_101SServices beinhaltet eine einfache Implementierung folgender Dienste: Test, Uhrzeitsynchronisation, Generalabfrage und Zählerabfrage (mode C).

Bei einer hergestellten Verbindung sendet die Unterstation jede Sekunde einen Bitstring (M_BO_TB_1, mit Zeitstempel CP56Time2a, Objektadresse: 100) und der Übertragunsursache: Spontan an die Zentralstation.

Ein Zählwert (M_IT_NA_1, ohne Zeitstempel, Objektadresse: 400) wird zur Leitstation als Antwort auf Zähler-Abfragebefehle (mode C).

LowLevelMasterSample.zip

(unbalanced mode)

LowLevelMasterSampleBal.zip

(balanced mode)

LowLevelMasterSample.zip

(unbalanced mode)

LowLevelMasterSampleBal.zip

(balanced mode)

Einfache Master-Applikation die das TwinCAT IEC60870-5-101 Serial Link Interface nutzt.

Der Funktionsbaustein FB_IEC870_5_101MServices beinhaltet eine einfache Implementierung folgender Dienste: Test, Uhrzeitsynchronisation, Generalabfrage und Zählerabfrage.