Jede Datennachricht nach IEC 60870-5-101 oder -104 enthält eine ASDU (Application Service Data Unit). Sie beschreibt die Kodierung des Werts (Typ), den Übertragungsanlass (Übertragungsursache), die Station oder das logische Gerät (gemeinsame Adresse) und den Messpunkt (Informationsobjektadresse). Typische Zuordnungsfehler entstehen, wenn eines dieser Merkmale ohne die anderen gelesen wird: eine richtige IOA unter der falschen gemeinsamen Adresse, ein Gleitkommawert als skalierte Ganzzahl oder eine Antwort auf eine Generalabfrage, die als Ereignis gespeichert wird.
Die Felder
IEC 60870-5-101 definiert die Kennung der Dateneinheit zu Beginn jeder ASDU. IEC 60870-5-104 verwendet dieselbe Kennung mit festen Feldlängen.
| Feld | Inhalt | Länge in IEC 104 | Optionen in IEC 101 |
|---|---|---|---|
| Typkennung | Kodierung der Informationsobjekte | 1 Byte | 1 Byte |
| Variabler Strukturqualifikator | Zahl der Objekte, 0 bis 127 (Bits 1 bis 7), und SQ-Bit (Bit 8) | 1 Byte | 1 Byte |
| Übertragungsursache | Ursache, 0 bis 63 (Bits 1 bis 6), P/N-Bit (Bit 7) und T-Bit (Bit 8) | 1 Byte | 1 Byte |
| Ursprungsadresse | Steuernde Station, die die Nachricht veranlasst hat; 0 falls ungenutzt | 1 Byte | 0 oder 1 Byte |
| Gemeinsame Adresse (CA) | Station oder logisches Gerät | 2 Byte | 1 oder 2 Byte |
| Informationsobjektadresse (IOA) | Messpunkt oder Funktion | 3 Byte je Objekt | 1, 2 oder 3 Byte |
| Informationselemente | Wert, Qualität und gegebenenfalls Zeitstempel | Typabhängig | Typabhängig |
Bei IEC 101 sind die Längen von Übertragungsursache, gemeinsamer Adresse und Objektadresse Systemparameter der Interoperabilitätsliste. Beide Seiten müssen dieselben Längen verwenden. Eine falsche Feldlänge verschiebt alle folgenden Bytes. Eine Umnummerierung von Punkten behebt das nicht.
Das SQ-Bit ändert die Anordnung der Objekte. Bei SQ = 0 trägt jedes Objekt eine eigene IOA. Bei SQ = 1 enthält die ASDU eine IOA und danach die Elemente für diese und die unmittelbar folgenden Adressen. Eine ASDU vom Typ 13 mit SQ = 1, zehn Objekten und IOA 2001 enthält Werte für IOA 2001 bis 2010, aber nur drei Adressbytes. Ein Decoder, der vor jedem Wert eine IOA erwartet, liest Gleitkomma-Bytes als Adressen. Alle Werte nach dem ersten werden falsch zugeordnet.
Das T-Bit kennzeichnet eine Testnachricht. Speichern Sie Werte mit T = 1 nicht als Prozessdaten. Die Ursprungsadresse identifiziert die steuernde Station, die einen Befehl gesendet hat; falls sie nicht verwendet wird, steht dort 0. Teilen zwei Leitstellen eine Außenstation, kann jede eine eigene Ursprungsadresse setzen. Die Außenstation kopiert diese Adresse in die Bestätigungen. So kann jede Leitstelle Antworten ihren eigenen Befehlen zuordnen.
Ein Frame auf der Leitung
Dieser IEC-104-I-Frame überträgt eine Wirkleistung von 2.340,5 kW aus gemeinsamer Adresse 12 und IOA 1001. Übertragungsursache ist eine Wertänderung:
68 12 00 00 00 00 0D 01 03 00 0C 00 E9 03 00 00 48 12 45 00
| Bytes | Feld | Dekodierung |
|---|---|---|
| 68 | Startbyte | Beginn eines IEC-104-Frames |
| 12 | Länge | Es folgen 18 Byte |
| 00 00 00 00 | Steuerfeld | I-Format, Sende- und Empfangssequenznummer 0 |
| 0D | Typkennung | 13, M_ME_NC_1 |
| 01 | Variabler Strukturqualifikator | SQ = 0, ein Objekt |
| 03 | Übertragungsursache | 3, spontan; P/N = 0, T = 0 |
| 00 | Ursprungsadresse | 0, nicht verwendet |
| 0C 00 | Gemeinsame Adresse | 12 |
| E9 03 00 | IOA | 1001 (0x0003E9) |
| 00 48 12 45 | Kurzer Gleitkommawert | 0x45124800, 2.340,5 |
| 00 | Qualitätsdeskriptor | 0, keine Qualitätsbits gesetzt |
Bei jedem Mehrbytefeld wird das niederwertigste Byte zuerst gesendet. Liest ein Decoder die Bytes in umgekehrter Reihenfolge, erhält er gemeinsame Adresse 3.072 (0x0C00) und IOA 15.270.656 (0xE90300). Den Gleitkommawert interpretiert er als 6,6 × 10⁻³⁹; ein Historian könnte ihn dennoch speichern. Der IEEE-754-Rechner zeigt die Bytes eines Werts. Die Anleitung zu Zeitstempeln und Qualität erklärt Qualitätsbits und Zeitmarke.
Typkennung
Die Typkennung legt die Dekodierung der Informationselemente fest. IEC 60870-5-101, Abschnitt 7.3, definiert die einzelnen Typen. Häufig sind:
| Typ | Kennung | Inhalt |
|---|---|---|
| 1 | M_SP_NA_1 | Einzelpunktstatus: 0 aus, 1 ein |
| 3 | M_DP_NA_1 | Doppelpunktstatus: 1 aus, 2 ein, 0 Zwischenstellung, 3 unbestimmt |
| 9 | M_ME_NA_1 | Messwert, normiert (16 Bit) |
| 11 | M_ME_NB_1 | Messwert, skaliert (16 Bit) |
| 13 | M_ME_NC_1 | Messwert, kurzer Gleitkommawert (32 Bit) |
| 15 | M_IT_NA_1 | Integrierte Summenwerte (Zählerstände) |
| 30, 31, 36, 37 | M_SP_TB_1, M_DP_TB_1, M_ME_TF_1, M_IT_TB_1 | Typen 1, 3, 13 und 15 mit CP56Time2a-Zeitmarke |
| 45, 46 | C_SC_NA_1, C_DC_NA_1 | Einzel- und Doppelbefehle |
| 50 | C_SE_NC_1 | Sollwertbefehl, kurzer Gleitkommawert |
| 100 | C_IC_NA_1 | Generalabfrage |
| 101 | C_CI_NA_1 | Zählerabfrage |
| 103 | C_CS_NA_1 | Zeitsynchronisation |
Das Präfix M kennzeichnet Daten in Überwachungsrichtung von der Außenstation, C einen Befehl an sie. IEC 104 verwendet ausschließlich die sieben Byte lange Zeitmarke CP56Time2a. IEC-101-Typen mit der drei Byte langen Zeitmarke CP24Time2a, etwa Typ 2, 4 und 14, treten in IEC 104 nicht auf.
Typ 9 und 11 enthalten eine vorzeichenbehaftete 16-Bit-Ganzzahl, keinen physikalischen Wert. Bei Typ 9 teilen Sie die Ganzzahl durch 32.768; das ergibt einen Anteil zwischen −1 und +0,99997. Multiplizieren Sie diesen mit dem Messbereichsendwert. Bei 1.000 kW Messbereich entspricht Rohwert 16.384 dem Anteil 0,5, also 500 kW. Bei Typ 11 ist der Wert mit einem vereinbarten Faktor multipliziert: 2.340,5 kW werden bei Faktor 10 als 23.405 übertragen. Weder Messbereich noch Faktor stehen im Typ selbst. Ein Empfänger mit falschem Faktor liefert einen plausibel wirkenden, falschen Wert.
Auch ein Gleitkommatyp enthält keine Einheit. 2.340,5 in Typ 13 könnte kW, kVA oder A bedeuten. Einheit, Vorzeichenkonvention und Messpunkt gehören in die zwischen den Parteien vereinbarte Punktliste.
Übertragungsursache
Häufige Werte für die Übertragungsursache:
| Ursache | Bedeutung |
|---|---|
| 1 | Periodisch oder zyklisch |
| 3 | Spontan: Wertänderung |
| 5 | Angefordert |
| 6 | Aktivierung eines Befehls |
| 7 | Aktivierungsbestätigung |
| 8, 9 | Deaktivierung und deren Bestätigung |
| 10 | Aktivierungsabschluss: Befehl beendet |
| 11, 12 | Rückmeldung aufgrund eines Fernbefehls beziehungsweise lokalen Befehls |
| 20 | Abfrage durch die Station: Antwort auf eine Generalabfrage |
| 21 bis 36 | Abfrage durch Gruppe 1 bis 16 |
| 37 | Antwort auf allgemeine Zählerabfrage für integrierte Summenwerte |
| 44 | Unbekannte Typkennung |
| 45 | Unbekannte Übertragungsursache |
| 46 | Unbekannte gemeinsame Adresse |
| 47 | Unbekannte Informationsobjektadresse |
Lesen Sie die Ursache zusammen mit Typ und P/N-Bit. Ursache 7 bei P/N = 1 ist eine negative Bestätigung: Die Außenstation hat den Befehl abgelehnt. Die Anleitung zur Befehlsbestätigung verfolgt die Ursachen im Befehlsablauf.
Adressen
Ein Punkt wird auf einer Verbindung durch gemeinsame Adresse und Informationsobjektadresse zusammen identifiziert. Der Typ gehört nicht zur Adresse. IOA 1001 kann unter gemeinsamer Adresse 12 und 13 sowie auf mehreren RTUs vorkommen. Die IP-Adresse (IEC 104) oder Link-Adresse (IEC 101) identifiziert die Verbindung, nicht den einzelnen Punkt.
Eine IEC-104-Verbindung kann mehrere gemeinsame Adressen bedienen. Der höchste Wert, 65535 bei zwei Byte oder 255 bei einem Byte, ist die globale Adresse. Eine Leitstelle nutzt sie für stationsweite Funktionen wie die Generalabfrage; jede gemeinsame Adresse antwortet dabei unter ihrer eigenen Adresse. Nicht jede Funktion ist dafür zulässig. Die lib60870-Außenstation weist einen Lesebefehl (Typ 102), Testbefehl (Typ 104 oder 107) oder Verzögerungserfassungsbefehl (Typ 106) an die globale Adresse mit Ursache 46 zurück.
Die Interoperabilitätsliste gibt zudem an, ob die IOA strukturiert oder unstrukturiert ist. Manche Werkzeuge und Herstellerpunktlisten zeigen eine strukturierte IOA als drei dezimale Oktette. IOA 1001 entspricht 0x0003E9. Ein Werkzeug zeigt sie als 0.3.233, ein anderes als 233.3.0. Rechnen Sie beide Darstellungen in eine einzige Ganzzahl um, bevor Sie Punktlisten vergleichen.
Ein Beispiel für einen Punktlisteneintrag:
| Feld | Wert |
|---|---|
| Verbindung | Umspannwerks-RTU A, 10.40.1.20, Port 2404 |
| Gemeinsame Adresse | 12 |
| IOA | 1001 |
| Typ | 13, M_ME_NC_1 (kurzer Gleitkommawert ohne Zeitmarke) |
| Bedeutung | Wirkleistung am Netzanschlusspunkt |
| Einheit und Vorzeichen | kW, Bezug positiv |
| Totband | 50 kW |
| Erwartete Ursachen | 3 (spontan bei Änderung über das Totband), 20 (Generalabfrage) |
Erfasste Leistung, Leistungssollwert und Rückmeldung des aktiven Sollwerts benötigen getrennte Zeilen, selbst wenn ihre Namen ähnlich sind. Erfasste Leistung ist M_ME_NC_1 in Überwachungsrichtung. Der Sollwert ist C_SE_NC_1, Typ 50, in Steuerrichtung. Seine Bestätigung trifft unter derselben IOA mit Ursache 7 ein. Die Rückmeldung ist ein weiterer überwachter Punkt mit eigener IOA.
Ablehnung und Annahme prüfen
Nehmen Sie mindestens einen Punkt jedes Typs der Punktliste in Betrieb. Vergleichen Sie dekodierten Typ, gemeinsame Adresse, IOA, Ursache, Einheit und Wert mit der vereinbarten Liste.
Schließen Sie dann anstelle des Steuerungssystems einen IEC-104-Master-Simulator an. Senden Sie während der Abnahme, bevor die Außenstation eine reale Anlage steuert, Befehle, die sie ablehnen muss.
- Senden Sie einen nicht unterstützten Befehlstyp. Erwartete Ursache: 44.
- Senden Sie einen unterstützten Befehl mit Ursache 3 statt 6. Erwartete Ursache: 45.
- Senden Sie einen Befehl an eine gemeinsame Adresse, die die Außenstation nicht bedient. Erwartete Ursache: 46.
- Senden Sie einen Befehl an eine nicht konfigurierte IOA. Erwartete Ursache: 47.
Eine antwortende Außenstation sendet die Anfrage mit neuer Ursache und gesetztem P/N-Bit zurück. Bei unbekannter gemeinsamer Adresse unterscheidet sich das Verhalten. Die lib60870-Außenstation liefert Ursache 46 nur, wenn die Anwendung der Bibliothek die vorhandenen gemeinsamen Adressen mitteilt. Andere Außenstationen verwerfen die Anfrage und antworten nicht. Halten Sie das erwartete Ergebnis jedes Falls in der Interoperabilitätsliste fest und bewahren Sie Punktlistenrevision und Testergebnisse zusammen auf.
Fernwirken und EpiSensor-Systeme
Edge implementiert IEC 60870-5-101 und -104 nicht. An einem Standort mit Fernwirkverbindung führt die RTU oder das Stationsgateway die Punkte des Netzbetreibers. Das EpiSensor-System misst den Standort dahinter. Die Anleitung zu IEC 101 und 104 erklärt diese Grenze.
Häufige Fragen
Was ist eine ASDU in IEC 60870-5-104?
Die Application Service Data Unit ist der Teil einer Nachricht, der Fernwirkdaten trägt. Sie beginnt mit der Dateneinheitenkennung aus Typ, variablem Strukturqualifikator, Übertragungsursache, Ursprungsadresse und gemeinsamer Adresse. Danach folgen Informationsobjekte mit jeweiliger Adresse und Wert.
Was bedeutet Übertragungsursache 3?
Spontan: Die Außenstation sendet den Wert wegen einer Änderung. Ursache 20 steht für die Antwort auf eine Generalabfrage; Ursache 1 bezeichnet periodische oder zyklische Übertragung.
Was ist die IOA in IEC 104?
Die Informationsobjektadresse ist in IEC 104 eine drei Byte lange Zahl für einen Punkt oder eine Funktion innerhalb einer gemeinsamen Adresse. Sie wird mit dem niederwertigsten Byte zuerst gesendet. IOA 1001 erscheint daher als E9 03 00. Dieselbe IOA kann unter einer anderen gemeinsamen Adresse oder auf einer anderen Verbindung erneut vorkommen.
Was bedeutet M_ME_NC_1?
Typkennung 13: ein Messwert als kurzer 32-Bit-Gleitkommawert mit Qualitätsdeskriptor und ohne Zeitmarke. Dieselbe Messgröße mit CP56Time2a-Zeitmarke heißt M_ME_TF_1, Typ 36.