Das DNP-Protokoll wurde für die Kommunikation mit Fernwirk-Unterstationen und
anderen intelligenten elektronischen Geräten entwickelt. Es sollte speziell die damals bestehenden und
zukünftigen fernwirktechnischen Bedürfnisse von Energieversorgungsunternehmen des
nordamerikanischen Raums abdecken und ist dort heute in der Verwendung sehr
verbreitet. Die Entwicklung erfolgte ursprünglich durch die Firma Harris, welche
dann 1993 die verantwortliche Weiterentwicklung und Pflege an die
DNP User Group, eine Vereinigung von Anwendern
und Lieferanten des Protokolls, übergab.
Ursprünglich wurde das Protokoll für den Einsatz auf langsamen, seriellen
Kommunikationsverbindungen entwickelt. Mittlerweile wird auch die Kommunikation
über TCP/IP-Netzwerke unterstützt.
Im Gegensatz zu ähnlichen Protokollen wie IEC 60870-5-101, verfügt DNP 3.0 über
eine sehr mächtige Anwendungsschicht, die eine Dekodierung der Daten auch ohne
Zuhilfenahme von impliziten Parametern erlaubt. DNP 3.0 verfügt über diverse
Möglichkeiten zur Darstellung von Informationsobjekten und bietet auf der
Anwendungsschicht einen hohen Grad an Interoperabilität. Dies wird durch eine
gesteigerte Komplexität erkauft, was bei der Implementierung nicht gerade
hilfreich ist und einen hohen Implementierungs- und Testaufwand erfordert.
Anders als bei IEC 60870-5-101 verfügt das Protokoll über eine Transportschicht,
die eine fragmentierte Übertragung von größeren Datenmengen erlaubt. Dies kommt
dem Protokoll bei der Kommunikation über TCP/IP zugute, da die gesamte
Bandbreite des Netzwerks effektiv ausgenutzt werden kann.
Auch ein Vorteil gegenüber IEC 60870-5-101 ist die Möglichkeit, auf der
Anwendungsschicht eine Empfangsquittung von der Gegenseite anzufordern. Dadurch
kann eine Unterstationen die Daten aus dem Puffer in Abhängigkeit davon
entfernen, ob diese tatsächlich am Ziel angekommen sind und quittiert wurden.
Diese Funktion erleichtert insbesondere den Einsatz von einfachen Routern.
Die Sicherungsschicht wurde wie bei IEC 60870-5-101 an die Normen IEC 60870-5-1
und IEC 60870-5-2 angelehnt. Allerdings wurde lediglich das symmetrische
Übertragungsverfahren (balanced mode) verwendet, das nur für vollduplex
Punkt-zu-Punkt Verbindungen gedacht war. Da DNP 3.0 auch für halbduplex
Partyline-Verbindungen eingesetzt wird, existiert ein Mechanismus
zur Kollisionsvermeidung. Da dieser bestimmte Funktionen der
Datenübertragungseinrichtungen voraussetzt, die nicht immer vorhanden sind, und
eine exakte Konfiguration des Timings erfordert, ist der Einsatz in der Praxis
oft problematisch. Durch dieses Manko wird in viele Fällen die Sicherungsschicht
quasi außer Kraft gesetzt und nur der unbestätigte Dienst (SEND/NO REPLY)
in Verbindung mit gepollter Datenübertragung der Anwendungsschicht verwendet.
Durch Verwendung von TCP/IP als Kommunikationsmedium wird diese
Problematik vermieden, da hier keine Kollisionen auftreten können bzw. vom
Netzwerk bereits abgefangen werden.
Zur Sicherstellung der Interoperabilität zwischen verschiedenen
Geräten, existieren zwei Formulare, die von jedem Hersteller ausgefüllt werden
müssen:
- DNP Device Profile
definiert die grundsätzlichen Protokollfunktionen, die ein Gerät unterstützt
- DNP Implementation Table
definiert die Informationsobjekte und ihre Darstellung, die ein Gerät
unterstützt
Zusätzlich werden Untermengen des vollständigen Funktionsumfangs definiert
und in drei Ebenen (Level) eingeteilt. Dies sind:
- DNP Level 1
ist die kleinste Untermenge und definiert nur die einfachsten Funktionen und
Informationsobjekte. Die Ebene ist besonders gut geeignet für Kleinstgeräte (IEDs)
- DNP Level 2
ist gedacht für größere Geräte wie RTUs
- DNP Level 3
eignet sich für große RTUs und verfügt über fast den kompletten Funktionsumfang
von DNP 3.0
Die Ebenen sind abwärtskompatibel. D. h. ein Master, der Level 2 beherrscht,
unterstützt Slaves der Ebenen 1 und 2.
Jedes Gerät muss im "Device Profile" ausweisen, welche Ebene es unterstützt.
Um die Kompatibilität sicherzustellen wurden im Jahr 2000 Kompatibilitätstests (Certification
Procedure) entwickelt, allerdings bislang nur für Level 1 & 2. Hier wird
schrittweise detailliert beschrieben, wie sich das Gerät in konkreten Fällen zu
verhalten hat.