1. DNP3 Nedir?

DNP3, ilk olarak elektrik dağıtım ve telekontrol uygulamalarındaki RTU–master haberleşme ihtiyaçları için geliştirilmiş, daha sonra elektrik üretimi, iletimi, dağıtımı, su ve diğer kritik altyapı uygulamalarında yaygınlaşmış bir protokoldür. DNP Users Group'a göre protokolün geliştirilmesi 1993 yılında DNP Users Group'a devredilmiş, DNP3 ise 2010 yılında IEEE 1815 olarak standardize edilmiştir. IEEE 1815 standardı protokol yapısını, fonksiyonlarını ve birlikte çalışabilir uygulama seçeneklerini tanımlar.

Temel yaklaşım: DNP3, SCADA haberleşmesinde yalnızca "değer oku" yaklaşımından daha zengin bir veri modeli sunar. Bir veri noktasının türü, variation'ı, index'i, statik/event niteliği, class'ı ve gerektiğinde zaman damgası birlikte değerlendirilebilir.

2. IEEE 1815 ve DNP3 Standardizasyonu

DNP3 günümüzde IEEE 1815 ailesi ile ilişkilidir. IEEE'nin mevcut çalışma sayfasında P1815, IEEE 1815-2012'nin yerini alacak yeni çalışma olarak gösterilmektedir; IEEE 1815-2012 ise 2023 yılında inaktif-rezerv statüsüne alınmıştır. Bu nedenle bir proje dokümanında "DNP3" ifadesinin yanında kullanılan standardın ve cihazın desteklediği sürüm/profile bilgisinin ayrıca belirtilmesi doğru bir mühendislik yaklaşımıdır.

Doküman Konu Önemi
IEEE 1815-2012 DNP3 protokol yapısı, fonksiyonları ve interoperable application options Klasik DNP3 uygulamalarının temel IEEE standardı.
IEEE P1815 DNP3 için yeni standardizasyon çalışması IEEE'nin güncel çalışma alanını gösterir.
IEEE 1815.1 DNP3 ile IEC 61850 arasında bilgi değişimi/mapping İki protokol ailesinin gateway ile birlikte kullanılmasına temel sağlar.
IEEE 1815.2-2025 DER'ler için IEEE 1815/DNP3 standard profile Dağıtık enerji kaynakları ve inverter tabanlı kaynaklar için güncel profile yaklaşımı.

IEEE 1815.2-2025, 5 Şubat 2026 tarihinde yayımlanmış güncel bir DNP3 profil standardıdır. DER veri modelini IEC 61850-7-420'den seçilen nesnelerle ilişkilendirerek DNP3 üzerinden farklı üreticilere ait DER sistemleriyle birlikte çalışabilirliği hedefler.

3. DNP3 Katman Mimarisi

DNP3 klasik olarak OSI'nin tüm yedi katmanını ayrı ayrı uygulamak yerine özellikle application, data link ve physical katmanlarını kullanan katmanlı bir yapı olarak tanımlanmıştır. DNP3 over TCP/IP kullanıldığında TCP/IP, DNP3 link/application katmanlarının altında taşıma altyapısı sağlar. DNP Users Group, DNP3'ün application layer, data link layer ve physical layer yaklaşımını açıkça belirtmektedir.

┌──────────────────────────────────────┐
│          DNP3 Application Layer      │
│ Objects • Variations • Function Code │
│ Class • Events • Controls • Time     │
├──────────────────────────────────────┤
│          DNP3 Data Link Layer        │
│ Link Header • Source/Destination     │
│ Length • Control • CRC               │
├──────────────────────────────────────┤
│ Transport / TCP-IP (DNP3 over IP)   │
├──────────────────────────────────────┤
│ Physical / Serial / Ethernet         │
└──────────────────────────────────────┘
Katman Görev
ApplicationVeri nesneleri, object group/variation, function code, confirmations, events ve controls.
TransportApplication fragment'larının link layer frame'lerine taşınmasını düzenler.
Data LinkKaynak/hedef adres, link control, length ve CRC ile güvenilir frame aktarımı.
PhysicalSeri haberleşme veya IP/Ethernet gibi fiziksel/alt taşıma ortamı.

4. Master, Uzak İstasyon (Outstation) ve Haberleşme Rolleri

DNP3 mimarisinde klasik olarak master, haberleşmeyi başlatan ve outstation'lardan veri isteyen taraftır. Outstation ise saha cihazı, RTU, IED veya benzeri uzak istasyon tarafıdır. Güncel uygulamalarda cihazların desteklediği fonksiyonlara göre daha karmaşık mimariler görülebilir; ancak SCADA entegrasyonunun temel modeli master/outstation ilişkisidir.

Rol Tipik Sorumluluk
MasterRead, write, control, class poll, time synchronization ve unsolicited mesaj yönetimi.
OutstationVeri toplama, event üretme, cevap gönderme ve kontrol komutlarını uygulama.
GatewayDNP3 ile IEC 61850, Modbus veya başka protokoller arasında veri eşleme.
SCADAMaster rolüyle outstation verilerinin izlenmesi, arşivlenmesi, alarm ve kumanda işlemleri.

5. DNP3 Adresleme

DNP3'te data point adreslemesi klasik Modbus register yaklaşımından farklıdır. Link layer seviyesinde kaynak ve hedef adresler bulunurken application seviyesinde veri; group, variation ve index bilgileriyle tanımlanır.

Master Address:     1
Outstation Address: 10

Application object:
Group = 30
Variation = 1
Index = 25

Anlam:
Analog Input
32-bit value
Point index 25

Bu nedenle bir DNP3 tag tanımında yalnızca "25 numaralı nokta" demek çoğu zaman yeterli değildir. Noktanın object group'u, variation'ı, index'i ve gerekiyorsa class/event özellikleri birlikte belirlenmelidir.

6. DNP3 Veri Bağlantı Katmanı Çerçeve (Data Link Frame) Yapısı

DNP3 data link layer frame'leri sabit bir başlangıç imzası, uzunluk, link control, kaynak/hedef adresleri ve CRC alanları kullanır. CRC'nin frame içindeki bloklar üzerinde kullanılması, haberleşme hatalarının algılanmasına yardımcı olur.

+--------+--------+--------+--------+--------+--------+
| 0x05   | 0x64   | Length | Link   | Dest   | Source |
| Start  | Start  |        | Control|        |        |
+--------+--------+--------+--------+--------+--------+
| CRC    | User Data / Transport / Application ...   |
+-----------------------------------------------------+

DNP3 frame formatındaki ayrıntılar seri ve IP uygulamasının alt taşıma özelliklerine göre değerlendirilmelidir. Paket analizi yapılırken link layer ile application layer mesajlarının birbirine karıştırılmaması önemlidir.

7. Taşıma Katmanı ve Parçalama (Transport Layer and Fragmentation)

DNP3 application mesajları gerektiğinde fragment'lara ayrılabilir. Transport layer, application fragment'larının link layer frame'lerine taşınmasında sequence bilgisi kullanır. Bu yapı, özellikle seri hatlar ve sınırlı MTU/bant genişliği koşullarında application mesajlarının taşınmasını mümkün kılar.

Analiz ipucu: Wireshark veya protokol loglarında görülen birden fazla DNP3 frame'in tek bir application transaction'a ait olabileceği unutulmamalıdır. Frame sayısı ile application mesajı sayısı aynı olmak zorunda değildir.

8. Uygulama Katmanı (Application Layer)

DNP3 application layer, protokolün SCADA açısından en önemli bölümüdür. Application Control alanı fragment, confirmation, unsolicited response ve sequence bilgilerini yönetirken Function Code alanı mesajın ne amaçla gönderildiğini belirtir.

Alan Rol
Application ControlFIRST/LAST, CON, UNS ve application sequence davranışları.
Function CodeRead, Write, Select, Operate, Direct Operate, Confirm vb. işlemin türü.
Object HeaderGroup, Variation ve qualifier/range bilgisi.
Object DataGerçek data point veya event değerleri.

9. DNP3 Nesne Grubu ve Varyasyon Yapısı (Object Group and Variation Structure)

DNP3'ün veri modelinin merkezinde Object Group ve Variation kavramları bulunur. Group, verinin hangi tür olduğunu; Variation ise o türün hangi veri formatında/encoding biçiminde taşındığını belirtir. DNP Users Group ve MITRE'nin DNP3 açıklamaları bu modeli temel veri organizasyonu olarak kullanır.

Group Tipik Veri Örnek
1Binary InputKesici/alarma ait tek bit durum.
2Binary Input EventBinary input değişim olayı.
3Double-Bit Binary InputÇift durumlu giriş.
4Double-Bit Binary Input EventÇift durum değişim olayı.
10Binary Output StatusÇıkış durumunun okunması.
11Binary Output EventÇıkış durum olayları.
12Binary Output CommandKontrol komutu.
13Binary Output Command EventKontrol işlemi olayı.
20CounterEnerji/sayaç gibi counter değerleri.
21Frozen CounterFreeze edilmiş sayaç.
22Counter EventSayaç değişim olayı.
23Frozen Counter EventFreeze sayaç olayları.
30Analog InputAktif güç, gerilim, frekans vb.
31Frozen Analog InputFreeze edilmiş analog değer.
32Analog Input EventAnalog değişim olayı.
33Frozen Analog Input EventFreeze analog olay.
40Analog Output StatusAnalog çıkışın mevcut durumu.
41Analog Output BlockAnalog output command.

10. DNP3 Varyasyonları ve Veri Türleri (Variation and Data Types)

Aynı Group farklı Variation'larla farklı veri formatlarında taşınabilir. Bu özellik DNP3'ün farklı cihazların kapasitesine ve veri temsil biçimlerine uyum sağlamasını kolaylaştırır. Örneğin Analog Input grubunda 16-bit integer, 32-bit integer, 32-bit floating point veya zaman etiketli formatlar gibi seçenekler bulunabilir.

Veri Ailesi Tipik Variation örnekleri SCADA Karşılığı
Binary InputPacked binary, indexed binaryDigital/Boolean
Binary EventEvent + relative/absolute timeDigital event + timestamp
Double BitDouble-bit status2-bit state
Counter16/32/32U/64-bit sayaç biçimleriUnsigned/integer counter
Analog Input16-bit, 32-bit, 32-bit float, time-tagged variantsAnalog numeric
Analog Output StatusInteger veya float statusAnalog output feedback
CommandCROB / analog output command structuresControl command

Önemli: Variation numarası tek başına veri tipi değildir. Önce Group belirlenir, ardından o Group içindeki Variation veri biçimini belirler. Bir istemcinin "Group 30" gördüğünde doğrudan tek bir C# veya SCADA veri tipine karar vermesi doğru değildir.

11. Sınıf 0, Sınıf 1, Sınıf 2 ve Sınıf 3 (Class 0, Class 1, Class 2 ve Class 3)

DNP3'te class yapısı, verilerin nasıl sorgulanacağını ve olayların nasıl önceliklendirileceğini belirlemede çok önemlidir. Class 0 statik/current data için; Class 1, Class 2 ve Class 3 ise event data için kullanılır. Bu sınıflar master'ın farklı önceliklerde event polling yapmasına imkân verir.

Class Anlam Tipik Kullanım
Class 0Static dataOutstation'daki mevcut tüm statik değerlerin genel taraması.
Class 1Event priority 1Yüksek öncelikli olaylar.
Class 2Event priority 2Orta öncelikli olaylar.
Class 3Event priority 3Daha düşük öncelikli olaylar.
Startup:
    Class 0 → complete static scan

Normal operation:
    Class 1 → high priority events
    Class 2 → medium priority events
    Class 3 → low priority events

Periodic:
    Class 0 → integrity / complete scan

12. Olay Verileri ve Zaman Damgalı Olaylar (Event Data and Time-Stamped Events)

DNP3'ün SCADA açısından güçlü yönlerinden biri event-oriented data modelidir. Bir veri değiştiğinde outstation event object oluşturabilir. Event object, mevcut değeri tekrar tekrar okumak yerine değişimin kendisini master'a taşıyabilir.

Event variation'ları zaman damgası içerebilir. Böylece master, olayın kendi haberleşme zamanından ziyade outstation tarafında oluşan olay zamanını değerlendirebilir. Bu özellik SOE (Sequence of Events), alarm ve olay kayıt uygulamaları için önemlidir.

13. İstenmeyen Yanıt (Unsolicited Response)

Klasik polling yaklaşımında master belirli aralıklarla outstation'a veri sorar. DNP3 ise outstation'ın event oluştuğunda master'dan yeni bir poll beklemeden unsolicited response göndermesine izin veren bir mekanizmaya sahiptir.

Polling model:
Master ──Read Class 1──► Outstation
Master ◄──Events──────── Outstation

Unsolicited model:
Outstation ──Event──────► Master
              (no new poll required)

Unsolicited response kullanıldığında enable/disable işlemleri, confirmation davranışı, class/event queue kapasitesi ve bağlantı yeniden kurulduğunda event recovery mekanizması birlikte tasarlanmalıdır.

14. DNP3 Fonksiyon Kodları (Function Codes)

Application layer Function Code, mesajın hangi işlemi gerçekleştirdiğini belirtir. Aynı mesaj içindeki object'ler bu function code'un belirttiği işlem bağlamında ele alınır.

Function Tipik Amaç
ConfirmApplication layer confirmation.
ReadObject data okuma.
WriteYazılabilir object'lerin yazılması.
SelectControl için Select-Before-Operate aşaması.
OperateDaha önce select edilmiş kontrolün uygulanması.
Direct OperateSBO olmadan doğrudan kontrol.
Direct Operate No AckUygulamaya bağlı olarak confirmation gerektirmeyen direct control.
FreezeCounter değerlerinin freeze edilmesi.
Freeze and ClearCounter freeze ve clear işlemleri.
Cold/Warm RestartOutstation restart işlemleri.
Enable/Disable UnsolicitedUnsolicited event transmission yönetimi.
Assign ClassData point'lerin class yapılandırmasının değiştirilmesi.

15. DNP3 Kontrol İşlemleri ve CROB

DNP3 binary control işlemlerinde yaygın olarak Control Relay Output Block (CROB) kullanılır. CROB; operation type, count, on-time, off-time ve kontrol sonucu ile ilişkili alanları içerir.

Binary Output Command
        │
        ▼
      CROB
        ├── Operation Type
        ├── Count
        ├── On Time
        ├── Off Time
        └── Status

Common operation:
Select → Operate

Alternative:
Direct Operate

Select-Before-Operate (SBO), kritik kumandalarda yanlış veya istem dışı operasyon riskini azaltmak için kullanılan iki aşamalı bir kontroldür. Master önce Select gönderir, outstation kabul ederse Operate ile gerçek işlemi başlatır.

SCADA güvenliği: DNP3 kontrol komutunda iletişim seviyesinde başarı alınması, saha ekipmanının gerçekten istenen duruma geçtiği anlamına gelmez. Command status, feedback point ve proses interlock'ları ayrıca doğrulanmalıdır.

16. Sayaç ve Dondurulmuş Sayaç (Counter and Frozen Counter)

DNP3 sayaçları; enerji, çalışma sayısı, pulse counter ve benzeri birikimli değerlerin aktarılması için kullanılabilir. Counter ve Frozen Counter grupları birbirinden ayrıdır.

Group Veri Kullanım
20CounterAnlık/akümüle sayaç değeri.
21Frozen CounterFreeze anında yakalanan sayaç değeri.
22Counter EventSayaç olay/değişim bilgisi.
23Frozen Counter EventFreeze counter olayları.

17. DNP3 Zaman Senkronizasyonu (Time Synchronization)

DNP3 zaman senkronizasyonu; event timestamp'larının doğru yorumlanması ve outstation saatlerinin master ile uyumlu tutulması için önemlidir. DNP3'ün zaman etiketli event variation'ları özellikle olay kayıt sistemlerinde kullanılır.

Proje tasarımında yalnızca DNP3 time synchronization mesajının desteklenmesi değil, outstation saat kaynağı, UTC/local time yaklaşımı, daylight saving uygulaması, saat sapması ve olay zamanının SCADA historian'a nasıl aktarılacağı da tanımlanmalıdır.

18. DNP3 Seri Haberleşme ve DNP3 over TCP/IP

DNP3 farklı fiziksel ve taşıma ortamlarında kullanılabilecek şekilde tasarlanmıştır. Seri haberleşme uygulamalarında RS-232/RS-485 gibi arayüzler görülürken, modern SCADA sistemlerinde DNP3 over TCP/IP yaygın olarak kullanılmaktadır.

Uygulama Özellik
DNP3 SerialSeri hat, düşük bant genişliği ve RTU uygulamaları.
DNP3 over TCP/IPEthernet/IP ağları üzerinden SCADA haberleşmesi.
DNP3 over UDPÖzel uygulama/cihaz desteğine bağlı taşıma seçeneği.

Port notu: DNP3 over TCP uygulamalarında yaygın olarak TCP 20000 portu kullanılır. Ancak gerçek projede port numarası cihaz, firewall ve tesis ağ politikası ile birlikte doğrulanmalıdır.

19. Niteleyici ve Aralık Alanları (Qualifier and Range Fields)

DNP3 Object Header yalnızca Group ve Variation bilgilerini taşımaz. Qualifier/range bilgileri, master'ın hangi object index'lerinin veya kaç object'in işleneceğini belirtir. Bu sayede tek bir point, bir index aralığı, count veya tüm mevcut nesneler istenebilir.

Group 30 / Variation 1

Qualifier:
    Start = 0
    Stop  = 99

Anlam:
    Analog Input 0 ... 99 oku

İstemci yazılımında qualifier'ın doğru işlenmesi önemlidir. Aksi durumda outstation'dan doğru veri geliyor olsa bile yalnızca ilk point okunabilir veya beklenmeyen point aralığı sorgulanabilir.

20. DNP3 Durum Bilgileri ve Hata Yönetimi (Status and Error Handling)

DNP3 response'larında yalnızca data object'ler değil, response status bilgileri de değerlendirilmelidir. Bir istemcinin "paket geldi" sonucunu "işlem başarılı" olarak yorumlaması doğru değildir.

Kontrol İncelenecek Durum
LinkCRC, source/destination, link reset ve sequence davranışı.
TransportFragment sequence, FIRST/LAST ve bütünlük.
ApplicationFunction code ve application sequence.
ResponseObject data ile birlikte IIN/status bilgileri.
PointBinary/analog flags ve point quality.
ControlCROB/command status ve saha feedback'i.

21. Dahili Gösterge Bilgileri (Internal Indications – IIN)

DNP3 response'larında Internal Indications (IIN), outstation'ın master'a iletmek istediği önemli durumları belirtir. Örneğin cihazın class event verisi bulunduğu, device restart olduğu veya time synchronization gibi bir işlemin gerekli olduğu durumlar IIN üzerinden bildirilebilir.

Bu nedenle EOS gibi bir DNP3 master/client uygulaması yalnızca object data'yı işlemekle kalmamalı, IIN bitlerini de izleyerek haberleşme ve cihaz durumunu ayrı bir diagnostic katmanında değerlendirmelidir.

22. DNP3 Güvenli Kimlik Doğrulama ve Siber Güvenlik (Secure Authentication and Cybersecurity)

DNP3 kritik enerji altyapısında kullanıldığından güvenlik yalnızca IP firewall ile sınırlanmamalıdır. DNP Users Group, DNP3 Secure Authentication'ın uygulama seviyesinde güvenlik sağlayan mekanizmalardan biri olduğunu belirtmektedir. DNP3-SA sürüm 5, IEEE 1815-2012 kapsamında yer almıştır.

Güvenlik Katmanı Yaklaşım
Ağ segmentasyonuSCADA, RTU/IED ve yönetim ağlarının ayrıştırılması.
Firewall/ACLYalnızca gerekli DNP3 bağlantılarına izin verilmesi.
Secure AuthenticationDestekleyen cihazlarda DNP3-SA kullanılması.
Account managementMaster/outstation yönetim erişiminin sınırlandırılması.
MonitoringBeklenmeyen function code, bağlantı, restart ve authentication olaylarının izlenmesi.
Configuration controlDNP3 device profile, point map ve güvenlik yapılandırmalarının sürüm kontrollü tutulması.

Önemli: DNP3'ü internete doğrudan açmak veya yalnızca port numarasını değiştirmek güvenlik sağlamaz. Kritik enerji tesislerinde ağ segmentasyonu, erişim kontrolü, güvenli kimlik doğrulama, izleme ve güvenli uzaktan erişim mimarisi birlikte tasarlanmalıdır.

23. DNP3 Cihaz Profili ve Alt Küme Seviyeleri (Device Profile and Subset Levels)

DNP3 cihazları aynı protokol ailesinin tüm özelliklerini desteklemek zorunda değildir. IEEE 1815, interoperable application options/subset yaklaşımıyla cihazların desteklediği fonksiyonların belirlenmesini sağlar. Bu nedenle bir entegrasyonda "cihaz DNP3 destekliyor" bilgisi tek başına yeterli değildir.

Kontrol Edilecek Özellik Örnek
TransportSerial / TCP / UDP
ObjectsBinary, Analog, Counter, Command
VariationsInteger, float, time-tagged
Classes0 / 1 / 2 / 3
UnsolicitedEnable/disable ve event reporting
ControlsCROB, analog output, SBO
Time syncTime write / delay measurement gibi destekler
SecuritySecure Authentication desteği

24. DNP3 ve IEC 61850 Birlikte Kullanımı

DNP3 ile IEC 61850 birbirinin doğrudan alternatifi olmak zorunda değildir. IEEE 1815.1, DNP3 ve IEC 61850 ağları arasında bilgi alışverişi için standart bir mapping yaklaşımı tanımlar. Bu yaklaşımda DNP3 master ile IEC 61850 remote site veya IEC 61850 master ile DNP3 remote site arasında gateway kullanılabilir.

             EOS SCADA
                 │
          DNP3 Master / Client
                 │
          ┌──────┴──────┐
          │   Gateway   │
          │ DNP3 ↔ 61850│
          └──────┬──────┘
                 │
        IEC 61850 Station Bus
          ┌──────┼──────┐
         IED    IED    IED
        MMS    GOOSE    SV

25. DNP3 ve Dağıtık Enerji Kaynakları

DNP3'ün güncel gelişim alanlarından biri DER (Distributed Energy Resources) uygulamalarıdır. IEEE 1815.2-2025, DER iletişimi için DNP3 tabanlı standart bir profile tanımlar. Bu profil, IEC 61850-7-420:2021'den seçilen veri nesnelerini sabit bir DNP3 data point listesine eşleyerek farklı üreticilerin DER tesisleri arasında birlikte çalışabilirliği hedefler.

Bu gelişme, DNP3'ün yalnızca klasik RTU–SCADA protokolü olarak değil; güneş enerjisi, batarya enerji depolama sistemleri, inverter tabanlı kaynaklar ve plant controller uygulamalarında da kullanılmaya devam ettiğini göstermektedir.

26. EOS DNP3 İstemcisi Açısından Veri Erişimi

EOS SCADA'daki DNP3 istemcisinin temel görevi, DNP3 outstation ile haberleşerek statik değerleri, event verilerini, sayaçları, analog ölçümleri ve kontrol noktalarını EOS tag modeline aktarmaktır.

EOS SCADA
    │
    ▼
EOS DNP3 Client / Master
    │
    ├── Link connection
    ├── Application requests
    ├── Class polling
    ├── Unsolicited responses
    ├── Time synchronization
    └── Controls
    │
    ▼
DNP3 Outstation
    ├── Binary Inputs
    ├── Double-Bit Inputs
    ├── Counters
    ├── Analog Inputs
    ├── Binary Outputs
    └── Analog Outputs

EOS tarafında tag modelinin en azından station address, group, variation, index, data type, class, timestamp ve quality gibi bilgileri gerektiğinde saklayabilmesi, farklı DNP3 cihazlarının entegrasyonunu kolaylaştırır.

27. EOS DNP3 Tag Modeli ve Veri Tipi Eşleme

DNP3'te bir tag'in kimliği yalnızca index numarası değildir. EOS SCADA'da aşağıdaki metadata'nın birlikte tutulması önerilebilir:

Alan Örnek Açıklama
Station / Outstation10DNP3 outstation address.
Group30Analog Input.
Variation132-bit analog format örneği.
Index25Point index.
Class1Event priority.
Data TypeFloat32 / Int32 / BooleanEOS iç veri tipi.
TimestampSource timeEvent timestamp.
QualityOnline/Comm/Device qualityPoint kullanılabilirliği.
Örnek EOS DNP3 Tag:

Station : 10
Group   : 30
Variation: 1
Index   : 25
Class   : 1
Type    : Analog Float
Name    : Generator_ActivePower

28. DNP3 Yoklama Stratejisi (Polling Strategy)

DNP3 SCADA uygulamalarında polling stratejisi haberleşme performansını doğrudan etkiler. Tüm noktaları sürekli okumak yerine Class 1/2/3 event polling ile değişen verilerin öncelikli alınması ve belirli aralıklarla Class 0 integrity scan yapılması daha verimli bir yaklaşım olabilir.

Bağlantı başlangıcı:
    Class 0 → Full scan

Normal çevrim:
    Class 1 → sık
    Class 2 → orta
    Class 3 → seyrek

Periyodik bütünlük:
    Class 0 → complete scan

Event yoğunluğu:
    Unsolicited → event-driven transfer

29. DNP3 Devreye Alma ve Test Prosedürü

  1. Device Profile kontrolü: Outstation'ın desteklediği Group/Variation, function code, class ve security özellikleri alınır.
  2. Adres planı: Master ve outstation adresleri doğrulanır.
  3. Ağ testi: TCP/IP kullanılıyorsa IP, port, routing ve firewall kuralları kontrol edilir.
  4. Link testi: Link frame, CRC, source/destination ve sequence davranışı doğrulanır.
  5. Class 0 testi: Static data okunur ve point map ile karşılaştırılır.
  6. Class 1/2/3 testi: Event üretimi ve önceliklendirme doğrulanır.
  7. Timestamp testi: Zaman damgalı event'lerin outstation zamanı ile geldiği doğrulanır.
  8. Unsolicited testi: Enable, event generation ve confirmation davranışı test edilir.
  9. Control testi: Yetkili test ortamında Select/Operate veya Direct Operate denenir.
  10. Counter testi: Counter/Frozen Counter davranışı kontrol edilir.
  11. Time sync testi: Outstation saatinin senkronizasyonu doğrulanır.
  12. Reconnect testi: Ağ bağlantısı kesilip yeniden kurularak event recovery kontrol edilir.
  13. Security testi: Destekleniyorsa DNP3 Secure Authentication ve erişim politikaları test edilir.

30. Wireshark ile DNP3 Trafik Analizi

DNP3 entegrasyonunda Wireshark, "bağlantı var fakat veri gelmiyor" veya "control gönderiliyor fakat cihaz uygulamıyor" gibi problemlerde çok değerlidir. Analiz katmanlı yapılmalıdır.

Katman Kontrol
TCP/IPHandshake, reset, retransmission, port ve bağlantı sürekliliği.
DNP3 LinkStart bytes, length, control, source/destination ve CRC.
TransportFIRST/LAST ve sequence.
ApplicationFunction code, application control ve object header.
ObjectsGroup, variation, qualifier, index ve gerçek değer.
EventsClass, timestamp ve unsolicited davranışı.

31. Sık Karşılaşılan DNP3 Problemleri

Belirti Olası Neden Kontrol
TCP bağlantısı yokIP, port, firewall, routing.Ping, TCP test, firewall/ACL.
Link response yokAdres veya link state problemi.Source/destination, link control, CRC.
Data geliyor ama yanlışGroup/variation/index yanlış.Device Profile ve object map.
Analog değer anlamsızVariation veri tipi yanlış yorumlanıyor.Group 30/variation ve signed/unsigned/float kontrolü.
Event gelmiyorClass, event queue veya polling yanlış.Class 1/2/3, event object ve Class 0.
Unsolicited çalışmıyorDisable durumda veya confirmation/config problemi.Enable unsolicited ve application control.
Kumanda çalışmıyorSBO, CROB, status veya interlock.Select/Operate sequence ve command status.
Zaman damgası yanlışTime sync veya timezone.Outstation clock, UTC/local ve sync.
Bağlantı sık kopuyorTimeout, reconnect, network veya device load.TCP logları ve outstation diagnostics.
Class poll boş dönüyorPoint class atanmamış veya event oluşmamış.Device class configuration.

32. Performans ve Ölçeklenebilirlik

Büyük DNP3 sistemlerinde performans; yalnızca TCP bant genişliğiyle değil, point sayısı, class dağılımı, event yoğunluğu, polling periyodu, unsolicited trafiği, application fragment sayısı, outstation kapasitesi ve historian yazma yükü ile birlikte değerlendirilir.

Parametre Performans Etkisi
Point sayısıFull scan ve database/historian yükünü artırır.
Class dağılımıEvent polling frekansını belirler.
Variation seçimiMesaj boyutunu ve veri işleme maliyetini etkileyebilir.
UnsolicitedPolling ihtiyacını azaltabilir ancak event burst oluşturabilir.
FragmentationMesajların frame sayısını artırabilir.
ReconnectToplu bağlantı kaybında traffic storm oluşturabilir.

33. DNP3 İyi Uygulamalar

  • DNP3 entegrasyonuna başlamadan önce cihazın Device Profile bilgisini alın.
  • Tag adresini yalnızca index olarak tutmayın; Group + Variation + Index yapısını koruyun.
  • Class 0 ile integrity scan, Class 1/2/3 ile event polling yaklaşımını cihaz kapasitesine göre tasarlayın.
  • Unsolicited response kullanılıyorsa event queue ve confirmation davranışını test edin.
  • Analog değerlerde signed/unsigned/integer/float variation ayrımını mutlaka doğrulayın.
  • Source timestamp'ı haberleşme zamanından ayırın.
  • Control işlemlerinde mümkünse güvenlik gereksinimlerine uygun SBO yaklaşımını değerlendirin.
  • IIN bilgilerini diagnostic katmanında izleyin.
  • DNP3 Secure Authentication desteğini kritik sistemlerde değerlendirin.
  • TCP 20000 portunu varsayılan bir güvenlik politikası olarak değil, proje konfigürasyonu olarak değerlendirin.
  • Wireshark ile gerçek trafik ve cihaz profili arasındaki uyumu doğrulayın.
  • IEC 61850 gateway projelerinde IEEE 1815.1 mapping yaklaşımını dikkate alın.
  • DER uygulamalarında güncel IEEE 1815.2-2025 profile gereksinimlerini ayrıca değerlendirin.

34. DNP3, IEC 60870-5-104 ve IEC 61850 Karşılaştırması

Özellik DNP3 IEC 60870-5-104 IEC 61850
Temel kullanımSCADA / RTU / telecontrolSCADA / telecontrolSubstation / power automation
Veri modeliObject Group / VariationASDU / Type ID / IOAIED / LN / DO / DA / CDC
Event sınıflarıClass 1/2/3Type ID ve cause of transmissionReport/GOOSE mekanizmaları
UnsolicitedGüçlü biçimde desteklenirSpontaneous transmissionReporting / GOOSE
KontrolCROB, SBOCommand ASDU'larıControl CDC / ACSI
Yerel peer-to-peerSınırlı/uygulamaya bağlıTemel amaç değilGOOSE ile güçlü
Engineering modelDevice ProfileGenel telecontrol configurationSCL

35. Sonuç

DNP3, özellikle elektrik enerjisi SCADA sistemlerinde uzun yıllardır kullanılan ve olay tabanlı veri aktarımı, zaman damgalı event'ler, class polling, unsolicited response, kontrol işlemleri ve farklı iletişim ortamlarına uyarlanabilmesi sayesinde güçlü bir telekontrol protokolü olmaya devam etmektedir.

DNP3'ü doğru anlamanın anahtarı; Master/Outstation mimarisi ile birlikte Link Layer → Transport → Application → Object Group → Variation → Qualifier → Index → Class zincirini birlikte değerlendirmektir. SCADA uygulamasında buna quality, timestamp, IIN, event queue, control status ve security bilgileri de eklenir.

EOS SCADA açısından DNP3; RTU, IED, enerji üretim tesisleri, dağıtım sistemleri ve gateway uygulamalarında geniş bir entegrasyon alanı sunar. Bununla birlikte gerçek bir projede cihazın desteklediği Group/Variation/function code/profile bilgileri doğrulanmalı, güvenlik mimarisi IEC/IEEE gereksinimleriyle birlikte tasarlanmalı ve devreye alma sırasında gerçek paket trafiği analiz edilmelidir.

36. Teknik Kaynaklar ve Güncel Standartlar

Bu dokümanın teknik içeriğinde DNP Users Group, IEEE ve ilgili üretici/uygulama dokümantasyonları esas alınmıştır. Aşağıdaki bağlantılar, DNP3 protokolünün standardizasyon durumu, veri modeli, uygulama seçenekleri, güvenlik, IEC 61850 eşleştirmesi ve DER uygulamaları için doğrudan teknik kaynaklara erişim sağlar.

Kaynak kullanımı: IEEE standartlarının tam metinleri telif hakkıyla korunmaktadır ve bazı dokümanlar satın alma veya üyelik gerektirebilir. Resmî mühendislik, şartname, sertifikasyon ve ürün uyumluluğu çalışmalarında ilgili standardın güncel ve resmî sürümü esas alınmalıdır.

36.1. Resmî IEEE Standartları ve Çalışmaları

  • IEEE Std 1815-2012 – DNP3 Standardı: DNP3 protokol yapısı, fonksiyonları ve interoperable application options (subset levels) için temel referanstır.
    IEEE Xplore – IEEE 1815-2012
  • IEEE SA – IEEE 1815-2012: Standardın resmî IEEE durum sayfası. 1815-2012'nin 30 Mart 2023 tarihinde Inactive-Reserved statüsüne alındığı ve P1815 çalışmasının devam ettiği burada görülebilir.
    IEEE Standards Association – IEEE 1815-2012
  • IEEE P1815 – Yeni DNP3 Standardizasyon Çalışması: DNP3 protokolünün yeni nesil IEEE standardizasyon çalışmasını ve 1815-2012'nin yerini alması planlanan çalışmayı takip etmek için kullanılabilir.
    IEEE SA – IEEE P1815
  • IEEE 1815.1-2015 – DNP3 ↔ IEC 61850: DNP3 ve IEC 61850 ağları arasında bilgi değişimi ve veri eşleştirmesi için tanımlanan yaklaşımı açıklar.
    IEEE SA – IEEE 1815.1-2015
  • IEEE 1815.2-2025 – DER Profili: Dağıtık enerji kaynakları için DNP3 tabanlı standart iletişim profilini tanımlar. Profil, IEC 61850-7-420:2021'den seçilen veri nesnelerini sabit DNP3 veri noktaları ile eşleştirir.
    IEEE Xplore – IEEE 1815.2-2025

36.2. DNP Users Group

36.3. Uygulama ve Yazılım Kaynakları

  • OpenDNP3 Guide: IEEE 1815/DNP3 uygulamalarında kullanılan açık kaynaklı OpenDNP3 kütüphanesinin teknik rehberidir. Object Group/Variation, master/outstation yapısı ve uygulama örnekleri açısından yararlıdır.
    OpenDNP3 – Technical Guide
  • OpenDNP3 GitHub Rehberi: OpenDNP3 projesinin kaynak kodu ve teknik rehber bağlantıları.
    GitHub – dnp3/opendnp3-guide
  • ABB DNP3 Protocol Documentation: Group/Variation, Class 0–3, event reporting, unsolicited response, time synchronization ve DNP3 iletişim mimarisinin pratik uygulama açıklamalarını içerir.
    ABB – DNP3 Protocol
  • ABB 615 Series DNP3 Communication Protocol Manual: DNP3 class yapısı, polling yöntemleri, unsolicited reporting ve subset uygulamasına ilişkin ayrıntılı bir üretici teknik kılavuzudur.
    ABB – 615 Series DNP3 Protocol Manual (PDF)

36.4. DNP3 Eğitimi ve Teknik Referanslar

  • IEEE Std. 1815 (DNP3) Tutorial: IEEE Substations Committee tarafından hazırlanmış, DNP3 ve DNP3–IEC 61850 ilişkisini açıklayan teknik eğitim dokümanıdır.
    IEEE – DNP3 Tutorial (PDF)
  • IEEE Resource Center – DNP3: DNP3/IEEE 1815 konusunda eğitim ve teknik içeriklere erişim sağlar.
    IEEE Resource Center – DNP3

36.5. Güncel DNP3 ve Enerji Sistemleri Gelişmeleri

IEEE 1815.2-2025, DNP3'ün yalnızca klasik RTU/SCADA haberleşmesiyle sınırlı olmadığını; güneş, batarya, inverter tabanlı kaynaklar ve diğer DER uygulamalarında standartlaştırılmış veri noktalarıyla kullanılabildiğini göstermektedir. Bu profil, IEC 61850-7-420 tabanlı seçilmiş veri nesnelerini DNP3 veri noktalarıyla ilişkilendirerek farklı üreticiler arasındaki birlikte çalışabilirliği geliştirmeyi amaçlar.

EOS açısından önerilen teknik kaynak sırası:

  1. IEEE 1815 – temel protokol ve uygulama seçenekleri
  2. DNP Users Group – uygulama notları, subset ve uygunluk kaynakları
  3. IEEE 1815.1 – IEC 61850 ↔ DNP3 entegrasyonu
  4. IEEE 1815.2-2025 – DER ve inverter tabanlı enerji uygulamaları
  5. Üretici Device Profile / Point List – gerçek cihaz desteğinin doğrulanması
  6. OpenDNP3 ve benzeri uygulama dokümantasyonları – yazılım geliştirme ve test

Önemli: Bir cihazın “DNP3 destekli” olması, bütün Group/Variation, Function Code, Class, unsolicited response, time synchronization veya Secure Authentication özelliklerinin desteklendiği anlamına gelmez. EOS DNP3 istemci entegrasyonunda üreticinin güncel Device Profile, Point List ve gerekiyorsa conformance/test dokümanları ayrıca kontrol edilmelidir.

← Önceki İçeriğe Dön