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 Bibliothek TcIEC870_5_103Link.Lib implementiert eine Schnittstelle über die einzelne ASDUs (Dienstdateneinheiten der Anwendungsschicht ) über die seriellen Schnittstellen des PCs und die Beckhoff KL6xxx-/EL6xxx-Klemmen verschickt und empfangen werden können. Innerhalb der Protokollstruktur liegt diese Schnittstelle oberhalb der Verbindungsschicht und implementiert bereits die nötigen Prozeduren und Übertragungstelegrammformate. Anwendungsfunktionen wie z.B. Generalabfrage sind in der Schnittstelle nicht implementiert, der Anwender kann aber mit Hilfe der Schnittstelle diese Anwendungsfunktionen selber implementieren.

Die Endapplikation (Implementierung einer Zentralstation) wird auf der Software-Schnittstelle der SPS-Bibliothek aufgesetzt. Anders als bei den 101/104-TwinCAT Supplement Produkten steht dem SPS-Programmierer bei der IEC60870-5-103-Protokollimplementierung nur die sogenannte "Low level"-Schnittstelle zur Verfügung. Der Grund: Die meisten Unterstationen (Schutzgeräte) besitzen viele Herstellerspezifische oder Gerätespezifische Parameterdaten oder Informationen. Die "Low level"-Schnittstelle ermöglicht einen uneingeschränkten Zugriff auf all diese Daten. Im Folgenden werden die Eigenschaften dieser Schnittstelle kurz beschrieben.

"Low level"-Schnittstelle: IEC 60870-5-103 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 manipuliert werden (z.B. Funktionscodes, Informationsnummern usw); Weil nur die benötigten Dienste (abhängig vom Gerät) implementiert werden kann eine hohe Performance erreicht werden; Hohe Performace bei vielen Datenpunkten oder einem hohem Datenaufkommen;

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

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-103
TwinCAT PLC Library: IEC 60870-5-103 Serial Link (low level) Transport Interface
N/A | Darstellungsschicht (6)
 | Sitzungsschicht (5)
 | Transportschicht (4)
 | Vermittlungsschicht (3)
unbalanced 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.


Kompatiblitätsliste

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

Kompatibilitätsliste nach IEC 60870-5-103

für TwinCAT SPS Bibliothek: IEC 60870-5-103 Zentralstation (master).

Version: 1.1
Datum: 29.03.2011

Hier können Sie die Kompatibilitätsliste öffnen/abspeichern (gezipptes PDF).

Inhaltsverzeichnis:

  • Allgemeine Informationen

    • Projektinformationen

  • Kompatibilität

    • System oder Gerät
    • Physikalische Schicht
      • Elektrische Schnittstelle
      • Optische Schnittstelle
      • Übertragungsgeschwindigkeit
    • Verbindungsschicht
    • Anwendungsschicht
      • Übertragungsmodus für Anwendungsdaten
      • Gemeinsame Adresse der ASDU
        • Auswahl genormter ASDU in Überwachungsrichtung
        • Auswahl genormter ASDU in Steuerungsrichtung
      • Auswahl von Norm-Informationsnummern in Überwachungsrichtung
      • Auswahl von Norm-Informationsnummern in Steuerungsrichtung
      • Grundlegende Anwendungsfunktionen
      • Verschiedenes

  • Anhang

    • Beckhoff Support und Service
      • Beckhoff Support
      • Beckhoff Service
      • Beckhoff Firmenzentrale

Allgemeine Informationen

In dieser Kompatibilitätsliste finden Sie die unterstützten Funktionen innerhalb der IEC 870-5-103.

Die Kompatibilität der einzelnen Komponenten muss von allen Beteiligten für das jeweilige Projekt vereinbart werden.

Projektinformationen

Projekt-Nr.: ______________________________________________________________________________

Projekt: ______________________________________________________________________________

Zuständig: ______________________________________________________________________________

Datum: ______________________________________________________________________________

Kompatibilität

Die ausgewählten Parameter sollten in den weißen Kontrollfeldern wie folgt markiert werden:

Funktion oder ASDU wird nicht benutzt
Funktion oder ASDU wird wie genormt benutzt

System oder Gerät

Systemfestlegung
Festlegungen für die Zentralstation
Festlegungen für die Unterstation

Physikalische Schicht

Elektrische Schnittstelle

EIA RS-485
Anzahl Lasten .................. für eine Schutzeinrichtung

ANMERKUNG: EIA RS-485 legt die Lasten [en: unit loads] derart fest, dass an einer Linie 32 von ihnen betrieben werden können.
Einzelinformationen siehe von EIA RS 485, Abschnitt 3

Optische Schnittstelle

Glasfaser
Kunststofffaser
F-SMA-Stecker
BFOC/2,5-Stecker

Übertragungsgeschwindigkeit:

9600 bit/s
19200 bit/s

Verbindungsschicht

Für die Verbindungsschicht bestehen keine Auswahlmöglichkeiten.

Anwendungsschicht

Übertragungsmodus für Anwendungsdaten

Nach dieser anwendungsbezogenen Norm wird ausschließlich Betriebsart 1 (niedrigstwertiges Oktett

zuerst) nach 4.10 von IEC 60870-5-4 benutzt.

Gemeinsame Adresse der ASDU

Eine GEMEINSAME ADRESSE der ASDU | Identisch mit der Stationsadresse | Nicht identisch mit der Stationsadresse
Mehr als eine GEMEINSAME ADRESSE der ASDU |  |

Auswahl genormter ASDU in Überwachungsrichtung

<0> := wird nicht benutzt | -
<1> := Meldung mit Zeitmarke | M_TTM_TA_3
<2> := Meldung mit Relativzeit | M_TMR_TA_3
<3> := Messwerte I | M_MEI_NA_3
<4> := Echtzeitmesswerte mit Relativzeit | M_TME_TA_3
<5> := Identifikationsmeldung | M_IRC_NA_3
<6> := Zeitsynchronisierung | M_SYN_TA_3
<8> := Generalabfrage-Ende | M_TGI_NA_3
<9> := Messwerte II | M_MEII_NA_3
<10> := Generische Daten | M_GD_XA_3
<11> := Generische Identifikation | M_GI_XA_3
<23> := Störfallübersicht | M_LRD_TA_3
<26> := Bereit zur Übertragung von Stördaten | M_RTD_TA_3
<27> := Bereit zur Übertragung eines Kanals | M_RTC_NA_3
<28> := Bereit zur Übertragung von Marken | M_RTT_NA_3
<29> := Übertragung von Marken | M_TOT_NA_3
<30> := Übertragung von Störwerten | M_TOV_NA_3
<31> := Ende der Übertragung | M_EOT_NA_3

Auswahl genormter ASDU in Steuerungsrichtung

<0> := wird nicht benutzt | -
<6> := Zeitsynchronisierung | C_SYN_TA_3
<7> := Generalabfragebefehl | C_IGI_NA_3
<10> := Generische Daten | C_GD_NA_3
<20> := Allgemeiner Befehl | C_GRC_NA_3
<21> := Generischer Befehl | C_GC_NA_3
<24> := Auftrag zur Übertragung von Stördaten | C_ODT_NA_3
<25> := Quittung für Stördatenübertragung | C_ADT_NA_3

Auswahl von Norm-Informationsnummern in Überwachungsrichtung

Systemfunktionen in Überwachungsrichtung

INF | Beschreibung
<0> | Ende der Generalabfrage
<1> | Zeitsynchronisierung
<2> | Rücksetzen FCB
<3> | Rücksetzen KE
<4> | Anlauf / Wiederanlauf
<5> | Erstanlauf

Zustandsmeldungen in Überwachungsrichtung

INF | Beschreibung
<16> | Autom. Wiedereinschaltung aktiv
<17> | Schutzsignalübertragung aktiv
<18> | Schutz aktiv
<19> | Rückstellung der Anzeigen
<20> | Sperre der Überwachungsrichtung
<21> | Testbetrieb
<22> | Parametrierung vor Ort
<23> | Kennlinie 1
<24> | Kennlinie 2
<25> | Kennlinie 3
<26> | Kennlinie 4
<27> | Eingang 1
<28> | Eingang 2
<29> | Eingang 3
<30> | Eingang 4

Überwachungsmeldungen in Überwachungsrichtung

INF | Beschreibung
<32> | Messwertüberwachung I
<33> | Messwertüberwachung V
<35> | Drehfeldüberwachung
<36> | Auslösekreisüberwachung
<37> | UMZ-Notbetrieb
<38> | VT Automatenfall
<39> | Schutzsignalübertragung gestört
<46> | Warnsammelmeldung
<47> | Störungssammelmeldung

Erdschlussmeldungen in Überwachungsrichtung

INF | Beschreibung
<48> | Erdschluss L1
<49> | Erdschluss L2
<50> | Erdschluss L3
<51> | Erdschluss vorwärts, d.h. Leitung
<52> | Erdschluss rückwärts, d.h. Sammelschiene

Störfallmeldungen in Überwachungsrichtung

INF | Beschreibung
<64> | Anregung L1
<65> | Anregung L2
<66> | Anregung L3
<67> | Anregung N
<68> | General-Auslösung
<69> | Auslösung L1
<70> | Auslösung L2
<71> | Auslösung L3
<72> | Auslösung UMZ-Notbetrieb
<73> | Fehlerort X in Ohm
<74> | Fehler vorwärts / Leitung
<75> | Fehler rückwärts / Sammelschiene
<76> | Schutzsignalübertragung Signal gesendet
<77> | Schutzsignalübertragung Signal empfangen
<78> | Stufe 1
<79> | Stufe 2
<80> | Stufe 3
<81> | Stufe 4
<82> | Stufe 5
<83> | Stufe 6
<84> | Generalanregung
<85> | Schalterversager
<86> | Auslösung Messsystem L1
<87> | Auslösung Messsystem L2
<88> | Auslösung Messsystem L3
<89> | Auslösung Messsystem E
<90> | Auslösung I>
<91> | Auslösung I>>
<92> | Auslösung IN>
<93> | Auslösung IN>>

AWE-Meldungen in Überwachungsrichtung

INF | Beschreibung
<128> | LS EIN durch AWE
<129> | LS EIN durch Langzeit AWE
<130> | AWE gesperrt

Betriebsmesswerte in Überwachungsrichtung

INF | Beschreibung
<144> | Betriebsmesswert I
<145> | Betriebsmesswerte I, U
<146> | Betriebsmesswerte I, U, P, Q
<147> | Betriebsmesswerte IN, UEN
<148> | Betriebsmesswerte IL1,2,3, UL1,2,3, P, Q, f

Generische Funktionen in Überwachungsrichtung

INF | Beschreibung
<240> | Bezeichnung aller festgelegten Gruppen lesen
<241> | Werte oder Attribute aller Einträge einer Gruppe lesen
<242> | Verzeichnis eines einzelnen Eintrags lesen
<243> | Werte oder Attribute eines einzelnen Eintrags lesen
<244> | Ende Generalabfrage Generische Daten
<249> | Eintrag schreiben (mit Bestätigung)
<250> | Eintrag schreiben (mit Ausführung)
<251> | Eintrag schreiben (mit Abbruch)

Auswahl von Norm-Informationsnummern in Steuerungsrichtung

Systemfunktionen in Steuerungsrichtung

INF | Beschreibung
<0> | Generalabfrage-Abstoß
<1> | Zeitsynchronisierung

Allgemeine Befehle in Steuerungsrichtung

INF | Beschreibung
<16> | Wiedereinschaltung EIN/AUS
<17> | Schutzsignalübertragung EIN/AUS
<18> | Schutz EIN/AUS
<19> | Rückstellung der Anzeigen
<23> | Aktivieren der Kennlinie 1
<24> | Aktivieren der Kennlinie 2
<25> | Aktivieren der Kennlinie 3
<26> | Aktivieren der Kennlinie 4

Generische Funktionen in Steuerungsrichtung

INF | Beschreibung
<240> | Bezeichnung aller festgelegten Gruppen lesen
<241> | Werte oder Attribute aller Einträge einer Gruppe lesen
<243> | Verzeichnis eines einzelnen Eintrags lesen
<244> | Werte oder Attribute eines einzelnen Eintrags lesen
<245> | Ende Generalabfrage Generische Daten
<248> | Eintrag schreiben
<249> | Eintrag schreiben (mit Bestätigung)
<250> | Eintrag schreiben (mit Ausführung)
<251> | Eintrag schreiben (mit Abbruch)

Grundlegende Anwendungsfunktionen

Testbetrieb
Sperre der Überwachungsrichtung
Stördaten
Generische Dienste
Private Daten

Verschiedenes

Messwerte werden sowohl mit ASDU <3> als auch mit ASDU <9> übertragen. Nach 7.2.6.8 kann MVAL maximal entweder 1,2 oder 2,4 mal Nennwert betragen.
In den ASDU <3> and ASDU <9> dürfen keine unterschiedlichen Bezugsfaktoren benutzt werden, d.h., für jeden Messwert gibt es nur eine Auswahl.

Messwert | Max. MVAL
 | Nennwert x ( 1 oder 2 ) | Nennwert x ( 2 oder 4 )
Strom L1 |  |
Strom L2 |  |
Strom L3 |  |
Spannung L1-E |  |
Spannung L2-E |  |
Spannung L3-E |  |
Wirkleistung Q |  |
Frequenz f |  |
Spannung zwischen L1 und L2 |  |

Anhang

Beckhoff Support und Service

Beckhoff und seine weltweiten Partnerfirmen bieten einen umfassenden Support und Service, der eine schnelle und kompetente Unterstützung bei allen Fragen zu Beckhoff Produkten und Systemlösungen zur Verfügung stellt.

Der Beckhoff Support und Service steht ihnen weltweit zur Verfügung und ist über Telefon, Fax oder E-Mail erreichbar. Die Kontaktadressen ihres Landes entnehmen Sie bitte der Liste der Beckhoff Niederlassungen und Partnerfirmen.

Beckhoff Support

Der Support bietet Ihnen einen umfangreichen technischen Support, der Sie nicht nur bei dem Einsatz einzelner Beckhoff Produkte, sondern auch bei weiteren umfassenden Dienstleistungen unterstützt:

  • Weltweiter Support;
  • Planung, Programmierung und Inbetriebnahme komplexer Automatisierungssysteme;
  • Umfangreiches Schulungsprogramm für Beckhoff Systemkomponenten;

Hotline: + 49 (0) 5246/963-157
Fax: + 49 (0) 5246/963-9157
E-Mail: support@beckhoff.com

Beckhoff Service

Das Beckhoff Service Center unterstützt Sie rund um den After-Sales-Service:

  • Vor-Ort-Service;
  • Reparaturservice;
  • Ersatzteilservice;
  • Hotline-Service

Hotline: + 49 (0) 5246/963-460
Fax: + 49 (0) 5246/963-479
E-Mail: service@beckhoff.com

Weitere Support- und Service-Adressen entnehmen Sie bitte unseren Internetseiten, unter http://www.beckhoff.de. Dort finden Sie auch Dokumentation zu Beckhoff Komponenten.

Beckhoff Firmenzentrale

Beckhoff Automation
Eiserstr. 5
33415 Verl
Germany

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


Einführung

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

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

  • Eine Instanz des Kommunikationsbausteins: FB_IEC870_5_103TProtocol;
  • Eine Instanz des TX/RX-Datenpuffers: ST_IEC870_5_103TBuffer;
  • Eine Instanz des Funktionsbausteins zur Manipulation des TX/RX-Datenpuffers: FB_IEC870_5_103TBufferCtrl;


Einführung: Übersicht

Einführung (Tutorial)

Die Einführung ist eine Anleitung wie Sie in der TwinCAT SPS eine IEC60870-5-103 Zentralstation (master) implementieren und konfigurieren können.

Weitere Themen in Vorbereitung...


Einführung: Glossar

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

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_103TBuffer -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_103TProtocol-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

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üssen im 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

IEC 60870-5-103 telegram structure

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

Frame with variable length

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

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

Frame with fixed length

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

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

Single character data

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

  • 0xE5 (positive acknowledge);


103 Data Types

Standard IEC 60870-5-103 Datentypen

In Überwachungsrichtung | In Steuerungsrichtung | Dez | Hex | Beschreibung
M_TYPEUNDEF_3 | C_TYPEUNDEF_3 | 0 | 0x00 | Wird nicht verwendet
M_TTM_TA_3 | - | 1 | 0x01 | Meldung mit Zeitstempel
M_TMR_TA_3 | - | 2 | 0x02 | Meldung mit Zeitstempel und Relativzeit
M_MEI_NA_3 | - | 3 | 0x03 | Messwerte I
M_TME_TA_3 | - | 4 | 0x04 | Echtzeitmesswerte mit Relativzeit
M_IRC_NA_3 | - | 5 | 0x05 | Identifikationsmeldung
M_SYN_TA_3 | C_SYN_TA_3 | 6 | 0x06 | Zeitsynchronisierung
- | C_IGI_NA_3 | 7 | 0x07 | Generalabfrage-Initialisierung
M_TGI_NA_3 | - | 8 | 0x08 | Generalabfrage-Ende
M_MEII_NA_3 | - | 9 | 0x09 | Messwerte II
M_GD_XA_3 | C_GD_NA_3 | 10 | 0x0A | Generische Daten
M_GI_XA_3 | - | 11 | 0x0B | Generische Identifikation
- | - | 12..19 | 0x0C..0x13 | Reserviert (Standardbereich)
- | C_GRC_NA_3 | 20 | 0x14 | Allgemeiner Befehl
- | C_GC_NA_3 | 21 | 0x15 | Generischer Befehl
- | - | 22 | 0x16 | Reserviert (Standardbereich)
M_LRD_TA_3 | - | 23 | 0x17 | Störfallübersicht
- | C_ODT_NA_3 | 24 | 0x18 | Auftrag zur Übertragung der Stördaten
- | C_ADT_NA_3 | 25 | 0x19 | Quittung für Stördatenübertragung
M_RTD_TA_3 | - | 26 | 0x1A | Bereit zur Übertragung von Stördaten
M_RTC_NA_3 | - | 27 | 0x1B | Bereit zur Übertragung eines Kanals
M_RTT_NA_3 | - | 28 | 0x1C | Bereit zur Übertragung von Marken
M_TOT_NA_3 | - | 29 | 0x1D | Übertragung von Marken
M_TOV_NA_3 | - | 30 | 0x1E | Übertragung von Störwerten
M_EOT_NA_3 | - | 31 | 0x1F | Ende der Übertragung
- | - | 32..255 | 0x1F..0xFF | Reserviert (benutzerdefinierter Bereich)


M_TTM_TA_3

Time-tagged message.

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


M_TMR_TA_3

Time-tagged message with relative time.

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


M_MEI_NA_3

Measurands I.

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


M_TME_TA_3

Time-tagged measurands with relative time

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


M_MEII_NA_3

Measurands II.

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


M_LRD_TA_3

List of recorded disturbances.

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


M_RTD_TA_3

Ready for transmission of disturbance data.

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


M_RTC_NA_3

Ready for transmission of channel.

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


M_RTT_NA_3

Ready for transmission of tags.

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


M_TOT_NA_3

Transmission of tags.

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


M_TOV_NA_3

Transmission of disturbance values.

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


M_EOT_NA_3

End of transmission.

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


M_IRC_NA_3

Identification.

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


M_TGI_NA_3

Termination of general interrogation.

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


M_SYN_TA_3

Time synchronisation.

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


M_GI_XA_3

Generic identification.

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


M_GD_XA_3

Generic data.

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


C_SYN_TA_3

Time synchronisation.

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


C_IGI_NA_3

General interrogation.

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


C_GD_NA_3

Generic data.

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


C_GRC_NA_3

General command.

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


C_GC_NA_3

Generic command.

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


C_ODT_NA_3

Order of disturbance data transmission.

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


C_ADT_NA_3

Acknowledgement for disturbance data transmission.

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


Funktionstyp

Funktionstyp (code)

Typ | Beschreibung
0..127 | Reserviert (privater Bereich)
128 | Distanzschutz
129 | Nicht benutzt (kompatibler Bereich)
130..143 | Reserviert (privater Bereich)
144..145 | Nicht benutzt (kompatibler Bereich)
146..159 | Reserviert (privater Bereich)
160 | Überstromzeitschutz
161 | Nicht benutzt (kompatibler Bereich)
162..175 | Reserviert (privater Bereich)
176 | Transformator-Differentialschutz
177 | Nicht benutzt (kompatibler Bereich)
178..191 | Reserviert (privater Bereich)
192 | Leitungsdifferentialschutz
193 | Nicht benutzt (kompatibler Bereich)
194..207 | Reserviert (privater Bereich)
208 | Nicht benutzt (kompatibler Bereich)
209 | Nicht benutzt (kompatibler Bereich)
210..223 | Reserviert (privater Bereich)
224 | Nicht benutzt (kompatibler Bereich)
225 | Nicht benutzt (kompatibler Bereich)
226..239 | Reserviert (privater Bereich)
240 | Nicht benutzt (kompatibler Bereich)
241 | Nicht benutzt (kompatibler Bereich)
242..253 | Reserviert (privater Bereich)
254 | Generische Funktion (GEN)
255 | Globale Funktion (GLB)


Informationsnummer

Nummer | Überwachungsrichtung | Steuerungsrichtung
0..15 | Systemfunktionen | Systemfunktionen
16..31 | Zustand | Allgemeine Befehle
32..47 | Überwachung | Nicht benutzt
48..63 | Erdschlüsse | Nicht benutzt
64..127 | Kurzschlüsse | Nicht benutzt
128..143 | Automatische Wiedereinschaltung | Nicht benutzt
144..159 | Betriebsmesswerte | Nicht benutzt
160..239 | Nicht benutzt | Nicht benutzt
240..255 | Generische Funktionen | Generische Funktionen


ACC

Actual channel: <0..255>


ASC

ASCII 8 bit code: <0..255>


COL

Compatibility level: <0..255>


CONT

Continuous flag

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


COUNT

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


DATASIZE

Data size: <1..255>


DATATYPE

Data type: <0..255>

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


ENTRY

Entry identification: <0..255>


FAN

Fault number: <0..65535>


GROUP

Group identification: <0..255>


INT

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


KOD

Kind of description: <0..255>

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


MVAL

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


NDV

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

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


NFE

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


NO

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


NOC

Number of channels: <0..255>


NOE

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


NOF

Number of grid faluts: <0..65535>


NOG

Number of generic identifications: <0..255>


NOT

Number of tags: <1..255>


RET

Relative time: <0..65535>


RII

Return information identifier.

USINT <0..255>


SCN

Scan number: <0..255>


SDV

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


SIN

Supplementary information: <0..255>


TAP

Tag position: <0..65535>


TOO

Type of order: <1..255>


TOV

Type of disturbance value: <0..255>


Information elements

Other information elements

RES

ER

OV

OTEV

TEST

TM

TP


FB_IEC870_5_103TProtocol

FUNCTION_BLOCK FB_IEC870_5_103TProtocol

Der Kommunikationsbaustein FB_IEC870_5_103TProtocol 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. 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). In der Default-Konfiguration werden die TX/RX-Datenpuffer zurückgesetzt. Das Löschen der Puffer kann aber durch das Setzen der bRetainBuffer-Variablen in der Protokolparameterstruktur unterbunden werden.

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_103TBuffer; (* 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/103 protocol parameters *)
 bOutDbg                 : BOOL;           (* Enable/disable debug output *)
END_VAR

protPara: IEC60870-5-101/103-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.

Beispiel:

Beispielprojekte: IEC60870-5-103 Serial Link Interface

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


FB_IEC870_5_103TBufferCtrl

FUNCTION_BLOCK FB_IEC870_5_103TBufferCtrl

Mit diesem Funktionsbaustein kann der Inhalt des TX/RX-Datenpuffers manipuliert werden, der bei der Kommunikation über das IEC60870-5-103 Serial Link Interface benutzt wird.

Der Funktionsbaustein besitzt folgende Aktionen:

  • RxRemoveObj (entfernt den ältesten Fifoeintrag aus dem RX-Fifo);
  • RxReset (löscht alle RX-Fifoeinträge, setzt den RX-Fifo zurück);
  • TxAddObj (fügt einen neuen Fifoeintrag in den TX-Fifo);
  • TxReset (löscht alle TX-Fifoeinträge, setzt den TX-Fifo zurück)

Durch den Aufruf der oben aufgelisteten Aktionen kann der Inhalt des TX/RX-Datenpuffers verändert werden.

VAR_IN_OUT

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

buffer: TX/RX-Datenpuffer. Die TX/RX-Pufferparameter (wie z.B. asduSize ) müssen vor der Benutzung konfiguriert werden.

VAR_INPUT

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

putObj: Dateneinheit (ASDU), die gesendet werden soll.

VAR_OUTPUT

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

getObj: Empfangene Dateneinheit (ASDU).

bOk: Diese Variable wird TRUE, wenn ein neuer Eintrag erfolgreich hinzugefügt oder aus dem Fifo entfernt wurde. Diese Variable wird FALSE beim Pufferüberlauf und wenn kein Eintrag entfernt werden konnte weil der Fifo bereits leer ist.

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


F_GetVersionTcIEC870_5_103Link

FUNCTION F_GetVersionTcIEC870_5_103Link

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

FUNCTION F_GetVersionTcIEC870_5_103Link: 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.10 Build >= 1313 | PC or CX (x86, ARM) | TcIEC870_5_103Link.Lib, ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; TcIEC870_5_101Link.Lib; COMlibV2.Lib; werden automatisch eingebunden )


F_iecApdu103ToAsduLen

FUNCTION F_iecApdu103ToAsduLen

Die Funktion berechnet für das IEC 60870-5-103 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_103TBuffer-Variablen benötigt. Diese Datenstruktur (TX/RX-Datenpuffer) wird beim Datenaustausch über das IEC60870-5-103 Serial Link Interface benutzt.

FUNCTION F_iecApdu103ToAsduLen: 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.10 Build >= 1313 | PC or CX (x86, ARM) | TcIEC870_5_103Link.Lib, ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; TcIEC870_5_101Link.Lib; COMlibV2.Lib; werden automatisch eingebunden )


ST_IEC870_5_103TBuffer

TYPE ST_IEC870_5_103TBuffer

Diese Datenstruktur wird beim Datenaustausch (TX/RX-Datenpuffer) über das IEC60870-5-103 Serial Link Interface benutzt.

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

eDbg: Debug-Ausgabe-Parameter.

asduSize: Maximale Bytelänge der ASDU.

mode: Reserviert, wird zur Zeit nicht benutzt. Dieser Wert sollte Null sein.

dataLink: Auf die Elemente dieser Datenstruktur sollte nicht direkt, sondern nur mit einer Instanz des FB_IEC870_5_103TBufferCtrl-Funktionsbausteins zugegriffen werden.

Der TX/RX-Datenpuffer verwendet intern zwei Sende-Fifos und einen Empfangs-Fifo:

  1. Class 1 Sende-Fifo mit (hochprioren) Daten;
  2. Class 2 Sende-Fifo mit (niederprioren) Daten;
  3. Receive-Fifo (für Class 1 und Class 2 Daten);

Die unteren Transportfunktionen der Bibliothek leeren zuerst den Class 1-Fifo und dann den Class 2-Fifo. Die Class 2 Daten werden nur dann versendet wenn der Class 1-Fifo keine zu versendenden Daten enthält.

Jeder der internen Fifos hat eine feste Größe von 10000 Bytes. Erfahrungsgemäß können in jedem Fifo ca. 200 ASDUs mit einem Informations-Element (Objekt) mit der maximalen Grösse oder ca. 20 ASDUs mit einer Sequence von 100 Informations-Elementen (Objekten) abgelegt werden.

Wenn eine größere Anzahl der zu versendenden oder zu empfangenen Frames zwischengespeichert werden soll (z.B. ~20000), so können diese in externen, vom SPS-Programmierer festgelegten Puffern/Fifos zwischengehalten werden. Die SPS-Applikation kann dann zur Laufzeit die TwinCAT-Sende-Fifos mit den eigenen Fifo-Einträgen nachfüllen oder bei vielen empfangenen Frames den TwinCAT-Receive-Fifo leeren. Eine andere Möglichkeit ist z.B. zwei Puffer zu benutzen und diese abwechselnd zu füllen/lesen und an den Kommunikationsbaustein übergeben.

Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10 Build >= 1313 | PC oder CX (x86, ARM) | TcIEC870_5_103Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; TcIEC870_5_101Link.Lib; COMLibV2.Lib werden automatisch eingebunden )


ST_IEC870_5_103AOGen

TYPE ST_IEC870_5_103AOGen

Variablen von diesem Typ repräsentieren ein ASDU-Objekt.

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

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

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

head: Header (reserviert).

ident:Identifikationsfelder der Dateneinheit (ASDU).

info: Informationsobjekt-/Informationselement-Datenfeld.

Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10 Build >= 1313 | PC oder CX (x86, ARM) | TcIEC870_5_103Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; TcIEC870_5_101Link.Lib; COMLibV2.Lib werden automatisch eingebunden )


ST_IEC870_5_103AOInfoObj

TYPE ST_IEC870_5_103AOInfoObj

Informationsobjektbeschreibung.

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

fc: Funktionsnummer.

n: Informationsnummer.

Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10 Build >= 1313 | PC oder CX (x86, ARM) | TcIEC870_5_103Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; TcIEC870_5_101Link.Lib; COMLibV2.Lib werden automatisch eingebunden )


ST_IEC870_5_103DataUnit_Ident

TYPE ST_IEC870_5_103DataUnit_Ident

Identifikationsfeld der Dateneinheit (ASDU).

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

eType: ASDU-Typ. Zulässiger Bereich: 0..255.

bSQ: Sequence-Flag.

nObj: Anzahl der Informationsobjekte oder Informationselemente. Zulässiger Bereich: 0..127.

eCOT: Übertragungsursache. Zulässiger Bereich: 0..255.

asduAddr: Gemeinsame ASDU-Adresse (one octet).

eClass: Prioritätsklasse.

Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken
TwinCAT v2.10 Build >= 1313 | PC oder CX (x86, ARM) | TcIEC870_5_103Link.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; TcIEC870_5_101Link.Lib; COMLibV2.Lib werden automatisch eingebunden )


E_IEC870_5_103MTypeID

TYPE E_IEC870_5_103MTypeID

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

ASDU-Typkennungen in Überwachungsrichtung (slave -> master).

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


E_IEC870_5_103CTypeID

TYPE E_IEC870_5_103CTypeID

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

ASDU-Typkennungen in Steuerungsrichtung (master -> slave).

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


E_IEC870_5_103MCOT

TYPE E_IEC870_5_103MCOT

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

Übertragungsursachen in Überwachungsrichtung (slave -> master).

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


E_IEC870_5_103CCOT

TYPE E_IEC870_5_103CCOT

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

Übertragungsursachen in Steuerungsrichtung (master -> slave).

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


Fehlercodes Übersicht

IEC 60870-5-103 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

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 den Parametern der Unterstation;
  4. Überprüfen Sie ob der FB_IEC870_5_103TProtocol() 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 der Unterstation;
  6. Überprüfen Sie die am TX/RX-Datenpuffer (instanz von ST_IEC870_5_103TBuffer) konfigurierte max. ASDU-Länge. Vergleichen Sie die Länge mit der Konfiguration der Unterstation;
  7. Überprüfen Sie die Konfiguration der Datenpunkte (Typ, ASDU-Adresse, Funktionsnummer, Informationsnummer 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

In den Beispielprojekten sind folgende Stationsparameter für die Zentralstation eingestellt:

  • Standard PC interface: COM1
  • 19200 Baud
  • Link address: 220
  • Link address size: 1 octet (fix)
  • Common ASDU address: 220
  • Common ASDU address size: 1 octet (fix)
SPS Project | TwinCAT System Manager Konfiguration | Beschreibung
LowLevelMasterSample.zip | LowLevelMasterSample.zip | Einfache Master-Applikation die das TwinCAT IEC60870-5-103 Serial Link Interface nutzt.