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
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).
Skupina objektov | Variácie | Podporené | Poznámka |
|---|---|---|---|
Binary Input (1) | Packed format (1) | Čítanie (Read) | Binárne vstupy |
Binary Input Event (2) | Without time (1) | Analýza* | Reportovanie zmien binárnych vstupov |
Double-bit Binary Input (3) | Packed format (1) | Čítanie (Read) | Štvorstavové vstupy |
Double-bit Binary Input Event (4) | Without time (1) | Analýza* | Reportovanie zmien štvorstavových vstupov |
Binary Output (10) | Packed format (1) | Čítanie (Read) | Binárne výstupy |
Binary Output Event (11) | Status w/o time (1) | Čítanie (Read) | Reportovanie zmien binárnych výstupov |
Binary Command (12) | Control relay output block (CROB) (1) | - | Zatiaľ nepodporené |
Binary Output Command Event (13) | Command status without time (1) | Analýza* | Reportovanie zmien (príkazov niekoho iného) |
Counter (20) | 32-bit with flag (1) | Čítanie (Read) | Počítadlá |
Frozen Counter (21) | 32-bit with flag (1) | Čítanie (Read) | Počítadlá - hodnoty zachytené v čase, keď bol objekt zmrazené |
Counter Event (22) | 32-bit with flag (1) | Analýza* | Reportovanie zmien počítadiel |