DNP3 Protokol

DNP3 Protokol

Podporované typy a verzie zariadení  
Konfigurácia komunikačnej linky
Konfigurácia komunikačnej stanice
Konfigurácia meraných bodov
Tell príkazy
Literatúra
Zmeny a úpravy
Revízie dokumentu

Podporované typy a verzie zariadení


Protokol DNP3 je telemetrický protokol určený na komunikáciu centrálnej stanice (Master Station, zvyčajne SCADA) s podriadenými stanicami (Outstation, zvyčajne PLC, RTU alebo iné IED - Intelligent Electronic Devices). Bol vyvinutý počas doby, keď IEC iba pracovalo na štandardoch skupiny IEC60870-5 (IEC 870-5-101 a IEC 870-5-104).

Protokol DNP3 definuje viacero skupín objektov (Groups - napr. Binary Input, Analog Input, Counter) a pre každú skupinu objektov viacero variácií (napr. pre Analog Input je to 32-bit with flag, 16-bit with flag, 32-bit without flag, 16-bit without flag, Single-precision floating point with flag..). Každý objekt je definovaný číslom skupiny a indexom (nezáporné číslo s veľkosťou 1, 2 alebo 4 bajty).

Zároveň DNP3 protokol zaraďuje objekty do 4 tried (Class 0 - statické objekty; Class 1..3 - dynamické objekty s registrovaním zmien). Podobne ako IEC 870-5-101 a IEC 870-5-104 podporuje DNP3 vyžiadanie si všetkých hodnôt konkrétnej triedy (výzva Poll), navyše je možné explicitné čítanie konkrétnej skupiny objektov s udaním variácie (prípadne s použitím variácie 0 - automatickej). Pri čítaní je možné žiadať dáta celej skupiny, prípadne špecifikovať konkrétny index, prípadne celý interval objektov.

Nad objektami sú podporené tieto aplikačné funkcie:

  • Read (1) - čítanie objektov.

  • Write (2) - jednofázový zápis objektov (s číselným kódom potvrdzujúcim úspešný zápis alebo hovoriacim o chybe zápisu).

  • Select (3) + Operate (4) - dvojfázový zápis objektov, ktorý prakticky vylučuje možnosť chyby v dôsledku nedetekovaného rušenia na linke. Každá operácia vracia okrem návratového kódu aj skupinu, index a zapisovanú hodnotu.

  • Direct Operate (5) - jednofázový zápis objektov (okrem číselného kódu operácia vracia aj skupinu, index a zapisovanú hodnotu).

  • Direct Operate Non Return (6) - jednofázový zápis objektu bez potvrdenia (najmenej bezpečný).

  • Enable Unsolicited Responses (20) - aktivácia posielania spontánnych zmien podriadenými stanicami.

Protokol podporuje aj posielanie spontánnych zmien podriadenými stanicami - s použitím aplikačnej funkcie Unsolicited Response (130).

Dáta sú posielané ako dátové pakety (Data Link Layer packet) nazývané aj transportné segmenty. Jeden alebo viacero transportných segmentov tvorí fragment aplikačnej vrstvy (Application Layer fragment). Fragment môže byť posielaný ako potvrdzovaný (funkčný kód dátovej vrstvy 3 - CONFIRMED_USER_DATA) alebo nepotvrdzovaný (funkčný kód dátovej vrstvy 4 - UNCONFIRMED_USER_DATA). Samotné transportné segmenty v rámci jedného fragmentu sú vždy potvrdzované - s výnimkou posledného (funkčný kód dátovej vrstvy 0 - ACK).

Tab. č. 1: Implementácia D2000 podporuje spracovanie nasledovných skupín objektov a ich variácií:

Skupina objektov
(zvýraznené sa dajú konfigurovať pre merané body)

Variácie

Podporené
operácie

Poznámka

Binary Input (1)

Packed format (1)
With flags (2)

Čítanie (Read)

Binárne vstupy

Binary Input Event (2)

Without time (1)
With absolute time (2)
With relative time (3)

Analýza*

Reportovanie zmien binárnych vstupov

Double-bit Binary Input (3)

Packed format (1)
With flags (2)

Čítanie (Read)

Štvorstavové vstupy

Double-bit Binary Input Event (4)

Without time (1)
With absolute time (2)
With relative time (3)

Analýza*

Reportovanie zmien štvorstavových vstupov

Binary Output (10)

Packed format (1)
Output status with flags (2)

Čítanie (Read)
Zápis (Write, Select+Operate)

Binárne výstupy

Binary Output Event (11)

Status w/o time (1)
Status with time (2)

Čítanie (Read)

Reportovanie zmien binárnych výstupov

Binary Command (12)

Control relay output block (CROB) (1)
Pattern control block (PCB) (2)
Pattern mask (3)

-

Zatiaľ nepodporené

Binary Output Command Event (13)

Command status without time (1)
Command status with time (2)

Analýza*

Reportovanie zmien (príkazov niekoho iného)

Counter (20)

32-bit with flag (1)
16-bit with flag (2)
32-bit with flag, delta (obsolete) (3)
16-bit with flag, delta (obsolete) (4)
32-bit w/o flag (5)
16-bit w/o flag (6)
32-bit w/o flag, delta (obsolete) (7)
16-bit w/o flag, delta (obsolete) (8)

Čítanie (Read)

Počítadlá

Frozen Counter (21)

32-bit with flag (1)
16-bit with flag (2)
32-bit with flag, delta (obsolete) (3)
16-bit with flag, delta (obsolete) (4)
32-bit with flag and time (5)
16-bit with flag and time (6)
32-bit with flag and time, delta (obsolete) (7)
16-bit with flag and time, delta (obsolete) (8)
32-bit w/o flag (9)
16-bit w/o flag (10)
32-bit w/o flag, delta (obsolete) (11)
16-bit w/o flag, delta (obsolete) (12)

Čítanie (Read)

Počítadlá - hodnoty zachytené v čase, keď bol objekt zmrazené

Counter Event (22)

32-bit with flag (1)
16-bit with flag (2)
32-bit with flag, delta (obsolete) (3)
16-bit with flag, delta (obsolete) (4)
32-bit with flag and time (5)
16-bit with flag and time (6)
32-bit with flag and time, delta (obsolete) (7)
16-bit with flag and time, delta (obsolete) (8)

Analýza*

Reportovanie zmien počítadiel