DNP3
DNP3 sürücüsü YTCC'yi master olarak DNP3 outstation'larına bağlar: RTU'lar, IED'ler, otomatik tekrar kapama (recloser) denetleyicileri ve pompa istasyonu denetleyicileri. Tüm sürücülerin ortak yanları için bkz. Sürücüler nasıl çalışır.
Protokol ve rol
| Rol | Master (IEEE 1815-2012, seviye 4 master). |
| Taşımalar | TCP (YTCC bağlanır), Tcp listen (outstation bağlanır), UDP, TLS, Tls listen, Serial |
| Varsayılan port | 20000 |
| Sürücü başına cihaz | Sınırsız outstation. Aynı uç noktadaki outstation'lar tek kanalı paylaşır. |
| Hat adresleri | Sürücüde master adresi, her outstation'da hat adresi, 0–65519 |
| Sürücü tipi | DNP3 (dnp3) |
Sürücü parametreleri
Bunları Drivers → devices görünümünde sürücü üzerinde ayarlayın.
| Parametre | Varsayılan | Aralık | Anlamı |
|---|---|---|---|
| Master address (Master adresi) | 1 | 0–65519 | YTCC'nin hat adresi. Her outstation'ın hat adresinden farklı olmalıdır. |
| Max requests per (s) (Saniyede en çok istek) | 200 | 1–10000 | Sürücünün tüm outstation'ları için saniyedeki en çok istek. |
| Secrets dir (Gizli dosya klasörü) | boş | klasör | Anahtar ve sertifika dosyalarının klasörü. Boşsa projenin secrets/dnp3/<sürücü anahtarı> klasörü kullanılır. |
Outstation parametreleri
Bunları cihaz üzerinde ayarlayın. Boş kutu, içinde gösterilen varsayılanı kullanır. Her parametrenin yanındaki yardım işareti kısa bir açıklama gösterir.

Bağlantı
| Parametre | Varsayılan | Anlamı |
|---|---|---|
| Transport (Taşıma) | TCP | TCP, Tcp listen, UDP, TLS, Tls listen ya da Serial. |
| Host | — | Outstation'ın adresi (dinleme kiplerinde outstation'ın bağlandığı adres). |
| Port | 20000 | TCP ya da UDP portu. |
| Local port, Bind | — | UDP ve dinleme kipleri için yerel port ve adres. |
| UDP mode | Udp only | Udp only ya da Tcp request udp broadcast. |
| Tcp broadcast gateway (TCP yayın geçidi) | kapalı | Yayın (broadcast) isteklerini TCP ya da TLS bağlantısı üzerinden gönderir; bunları seri hatta aktaran bir ağ geçidi içindir. Kapalıyken yayınlar yalnız Serial ve UDP üzerinden ya da Tcp request udp broadcast ile UDP'den gider. |
| Link address (Hat adresi) | — (zorunlu) | Outstation'ın hat adresi, 0–65519. Bir kanalda tekil. |
| Keepalive (s) | 60 | Hat sessizken hat durumu isteği; 0 kapalıdır. |
| Port name, Baud, Parity, Data bits, Stop bits, Flow control, Rs485, Rts toggle, Tx delay (ms), Rx after tx (ms), Inter char timeout (ms) | 9600, None, 8, 1, None … | Seri hat ayarları. |
Hat ve uygulama katmanı
| Parametre | Varsayılan | Aralık | Anlamı |
|---|---|---|---|
| Link confirm (Hat onayı) | Never | Never / Always | Her çerçeve için hat katmanı onayı ister. |
| Link timeout (ms) | 1000 | 100–60000 | Hat katmanı cevabı bekleme süresi. |
| Link retries | 2 | 0–10 | Hat katmanı yinelemeleri. |
| Link reset on connect | kapalı | — | Bağlantı açılınca hattı sıfırlar. |
| Response timeout (ms) (Cevap zaman aşımı) | 5000 | 100–300000 | Bir isteğin cevabını bekleme süresi. |
| App retries | 0 | 0–10 | Bir isteğin uygulama katmanında yinelenmesi (komutlarda değil). |
| Max rx fragment, Max tx fragment | 2048 | — | Alınan ve gönderilen en büyük parça. |
| Select timeout (ms) | 5000 | 100–60000 | SELECT ile OPERATE arasındaki en uzun süre. |
Tarama ve açılış
| Parametre | Varsayılan | Anlamı |
|---|---|---|
| Integrity period (s) (Bütünlük periyodu) | 3600 | Bu aralıkla bütünlük yoklaması (sınıf 0, 1, 2 ve 3); 0 kapalıdır. |
| Class1 period (s), Class2 period (s), Class3 period (s) | 5 | Her sınıfın olay yoklaması bu aralıkla; 0 kapalıdır. |
| Startup integrity (Açılışta bütünlük) | açık | Bağlantı açılınca bütünlük yoklaması. |
| Read attributes on startup | açık | Açılışta cihaz özniteliklerini (grup 0) okur. |
| Attribute list qualifier | Start stop | Öznitelik listesinin nasıl isteneceği. |
Gruplu ayarlar
Unsolicited, Time sync, Sa, TLS, File ve Vt her biri JSON değerli tek bir kutudur:
| Ayar | Ana anahtarlar ve varsayılanlar |
|---|---|
| Unsolicited (İstenmeden gelen) | enabled false, classes [1, 2, 3] |
| Time sync (Saat eşitleme) | mode none / lan / non_lan, period_s 0, on_need_time true, retries 3, time_offset_minutes 0 |
| TLS | verify server_name / ip / pinned, ca_name ca.pem, cert_name, key_name, min_version 1.2, cert_expiry_warn_days 30 |
| Sa | enabled false, user_number, update_key_name, mac_algorithm, auth_mode required / optional |
| File (Dosya) | root_prefixes [] (boş: dosya işlemi yok), max_block_size 1024, timeout_ms 10000 |
| Vt (Sanal terminal) | ports [], idle_s 300, max_session_s 14400 |
Bir outstation parametresinin ya da sinyallerinin değişmesi yalnız o outstation'ın oturumunu, yeni bir açılış ve bütünlük yoklamasıyla yeniden başlatır; bağlantı ve diğer outstation'lar sürer. Bir kanal ayarının (uç nokta, TLS, seri hat, master adresi) değişmesi o kanaldaki tüm outstation'ları yeniden bağlar.
Sinyal adresi
Adresi sinyalin Value source (Değer kaynağı) sekmesinde, Address — DNP3 altında ayarlayın: Point type (Nokta
tipi) ve Index (Dizin). İçe aktarma dosyalarında tipi ve dizini boşluk ya da iki noktayla ayırarak yazın, örneğin
binary_input 3 ya da analog_input:12 (bkz. Excel ya da CSV ile içe ve dışa aktarma).

| Nokta tipi (form) | İçe aktarma dosyasındaki ad | Nesneler |
|---|---|---|
| Binary input (İkili giriş) | binary_input | g1, g2 |
| Double-bit input (Çift bitli giriş) | double_bit_input | g3, g4 |
| Binary output (İkili çıkış) | binary_output | g10 durum, g12 komut |
| Counter (Sayaç) | counter | g20, g22 |
| Analog input (Analog giriş) | analog_input | g30, g32 |
| Analog output (Analog çıkış) | analog_output | g40 durum, g41 komut |
Dondurulmuş sayaçlar (frozen_counter), dondurulmuş analog girişler (frozen_analog_input), sekizli diziler
(octet_string), BCD değerler (bcd) ve outstation'ın iç göstergeleri (iin, dizin 0–15) de Address bindings (Adres bağlamaları) tablosunda ayarlanır ya da bir
cihaz taramasından oluşturulur. İçe aktarma dosyalarındaki tip adları büyük/küçük harfe duyarlıdır.
Olay sınıfları ve tarama outstation ayarlarıdır. Hangi varyasyonu göndereceğine outstation karar verir.
Okuma
Bağlantı açılınca master istenmeden gelen cevapları kapatır, saati eşitler (açıksa), bütünlük yoklaması yapar ve sonra istenmeden gelen cevapları açar (açıksa). Bundan sonra olay sınıflarını periyotlarında yoklar ve istenmeden gelen cevapları alır.
Master, outstation'ın iç göstergelerine tepki verir:
| Gösterge | Tepki |
|---|---|
| Cihaz yeniden başladı | Göstergeyi siler, saati eşitler, bütünlük yoklaması yapar, istenmeden gelen cevapları yeniden açar |
| Saat eşitleme gerekiyor | Saati eşitler |
| Sınıf 1/2/3 olayları | O sınıfları yoklar |
| Olay arabelleği taştı | Bütünlük yoklaması yapar; olaylar kaybolmuş olabilir |
Olaylar ancak YTCC onları aldıktan sonra onaylanır; YTCC meşgulken kaybolmazlar. Zamansız olaylar yeniden bağlanmadan sonra iki kez gelebilir.
Komutlar
Yönü out ya da inout olan bir noktaya komut gönderilebilir; yalnız ikili çıkışlar ve analog çıkışlar komut kabul eder. Komut ayarları Address bindings tablosunda, Direction, Cmd mode, CROB ve Ao variation sütunlarındadır; sinyalin Command sekmesinde genel ayarlar vardır (yazma rolü, kritik komut, geri okuma).
| Ayar | Değerler | Varsayılan |
|---|---|---|
| Cmd mode (Komut kipi) | select_operate (SELECT, sonra OPERATE), direct_operate, direct_operate_nr (cevapsız) | select_operate |
| CROB | JSON: op latch_on / latch_off / pulse_on / pulse_off, tcc nul / close / trip, count, on_ms, off_ms | latch, count 1, on 1000 ms |
| Ao variation (Analog çıkış varyasyonu) | 1 32 bit tamsayı, 2 16 bit tamsayı, 3 32 bit kayan nokta, 4 64 bit kayan nokta | 1 |
- İkili çıkış (CROB, g12v1): değer açık ya da kapalıdır.
tccclose ya da trip iken açık CLOSE, kapalı TRIP verir (darbeyle). Kilitli (latch) şablonda açık LATCH_ON, kapalı LATCH_OFF; darbe (pulse) şablonunda PULSE_ON ve PULSE_OFF. Örnek:{"op": "pulse_on", "tcc": "close", "on_ms": 500}. - Analog çıkış (g41): değer sinyalin ölçeğiyle geri çevrilir. Seçilen varyasyona sığmayan değer aralık dışı olarak reddedilir.
select_operateile OPERATE ancak SELECT cevabı eşleşir ve başarı bildirirse gönderilir. Komutlar hiç yinelenmez.direct_operate_nrile ve OPERATE gönderilip cevap gelmediğinde sonuç Command sent (no device confirmation) olur. YTCC gerçek durumu denetlesin diye sinyalde geri okuma ayarlayın.- Outstation yerel kumandadaysa komut local control (LOCAL) ile reddedilir.
Bir noktaya komut göndermeden önce Address bindings tablosunda Direction'ı ve komut ayarlarını ayarlayın, sinyalin Access'ini rw yapın.
Operatörlerin komutu nasıl gönderip onayladığı için bkz. Komut gönderme.
Kalite eşlemesi
Noktanın ilk eşleşen bayrağı kaliteyi belirler:
| DNP3 bayrağı | YTCC'deki kalite |
|---|---|
| COMM_LOST | Bad · Not connected (neden: haberleşme hatası) |
| ONLINE yok | Bad |
| REMOTE_FORCED ya da LOCAL_FORCED | Good · Substituted, değer kaynağı sahada elle |
| RESTART | Uncertain |
| OVER_RANGE (analog) | Uncertain · EU exceeded |
| CHATTER_FILTER, DISCONTINUITY, REFERENCE_ERR | Uncertain |
| bunlardan hiçbiri | Good |
Sonsuz kayan nokta değeri en az Uncertain · EU exceeded, NaN en az Bad olur. Çift bitli girişin ara ve belirsiz durumları kalite değil değerdir.
Bağlantı kopunca ya da birkaç istek cevapsız kalınca okunabilir noktalar Bad · Not connected olarak işaretlenir. Outstation yeniden cevap verince bir bütünlük yoklamasıyla tazelenirler.
Zaman
| Olay zamanı | YTCC'deki zaman |
|---|---|
| Eşitlenmiş bir outstation'ın zamanı | Outstation zamanı; zaman kaynağı device |
| Outstation zamana ihtiyaç duyduğunu bildiriyor ya da eşitlenmemiş zaman tabanı gönderiyor | Geliş zamanı; device time invalid |
| Statik değer ya da zamansız olay | Geliş zamanı; protocol carries no time |
Saat eşitleme (Time sync mode): lan RECORD_CURRENT_TIME ile ölçüp zamanı yazar, non_lan önce DELAY_MEASURE ile
gecikmeyi ölçer. Yerel saat tutan bir outstation için time_offset_minutes kullanın. on_need_time ile YTCC outstation
her istediğinde eşitler.
Güvenlik
- TLS: her zaman karşılıklı TLS kullanılır ve outstation sertifikası her zaman doğrulanır.
verifyserver_name(varsayılan),ipya dapinned'dır (outstation sertifikasının SHA-256 parmak izi). Sertifika dosyaları sürücünün gizli dosya klasöründedir. Durum, sertifikanın bitiş tarihini gösterir;cert_expiry_warn_days'in altında sarıdır. - Güvenli kimlik doğrulama (SAv5):
sa.enabledile komutlar ve dosya işlemleri tek bir kullanıcı numarasıyla doğrulanır. Simetrik bir güncelleme anahtarı yöntemi veupdate_key_namekullanın. Anahtar dosyaları yoksa outstation başlamaz ve komutları reddedilir. Anahtar dosyalarını gizli dosya klasörüne koyup sürücüyü yeniden başlatın. - Yetki: özel outstation eylemleri, dosya aktarma ve sanal terminal profil yetkisi DNP3 administration (DNP3 yönetimi) ister. Dosya yazma ve silme ayrıca konfigürasyon düzenleme ister. Yetki yoksa yalnız durum gösterilir. Bkz. Yetkiler.
Outstation yönetimi
Drivers → devices görünümünde DNP3 sürücüsünü ve outstation'ı seçip Outstation management'ı (Outstation yönetimi) açın:
- Status (5 saniyede bir tazelenir): bağlantı, güvenli kimlik doğrulama, TLS sertifikası, saat eşitleme, çip olarak iç göstergeler (örneğin Device restart, Time sync needed, Local control, Event buffer overflow), çerçeve sayaçları, son hata ve cihaz öznitelikleri.
- Eylemler (DNP3 yönetimi yetkisiyle): Integrity poll (Bütünlük yoklaması), Time sync now, Enable unsolicited, Disable unsolicited, Freeze (Dondur), Freeze and clear (Dondur ve sıfırla), Warm restart (Sıcak yeniden başlat), Cold restart (Soğuk yeniden başlat). Outstation'ı değiştiren eylemler onay ister.
- Files (Dosyalar): ayarlı
root_prefixesaltındaki dosyaları listeleme, indirme, yükleme ve silme. - Terminal: ayarlı portlarda sanal terminal oturumları.
Tarama ve cihaz profili
Scan / Profile (Tara / Profil) outstation'ın cihaz özniteliklerini ve olaylarını okur; deneme komutu göndermez. Bulunan noktalar bir kuru çalıştırma önizlemesinden sonra sinyale dönüştürülebilir. Upload device profile XML (en çok 32 MB) outstation'ın DNP3 Device Profile'ını okur ve taramanın bulduklarıyla karşılaştırır.
Tanılama
Value source sekmesindeki Read now noktayı bir kez okur ve ham değeri, değeri, kaliteyi ve gidiş-dönüş süresini gösterir.
Cihazın Communication diagnostics (Haberleşme tanısı) paneli (bkz. Bir cihazın haberleşmesini denetleme) Timeouts / retries (Zaman aşımı / yeniden gönderim) altında Link timeout (ms) içinde gelmeyen bağlantı katmanı cevaplarını ve ardından yeniden gönderilen çerçeveleri sayar.
Aynı paneldeki Response time (avg / worst) (Yanıt süresi (ort. / en kötü)), bütünlük ve olay yoklamalarının ortalama ve en kötü süresini milisaniye olarak verir: isteğin gönderildiği andan (yeniden gönderimde son gönderimden) cevabın ilk fragmanına kadar. Değerler son bağlantıdan bu yanadır, outstation yeniden bağlanınca sıfırlanır, bağlantı kopukken son değerlerini korur.
| Belirti | Olası neden |
|---|---|
| Outstation hiç cevap vermiyor | Yanlış hat adresi ya da master adresi; yanlış taşıma, host ya da port; güvenlik duvarı |
| Yeniden başlamadan sonra değerler Uncertain | Outstation hâlâ RESTART bildiriyor; açılış sırasından sonra temizlenir |
| Olay zamanları geliş zamanı | Outstation zamana ihtiyaç duyuyor: Time sync'i açın |
| Event buffer overflow çipi | Outstation olay kaybetti; sınıf yoklama periyotlarını kısaltın ya da istenmeden gelen cevapları açın |
| Komut local control (LOCAL) ile reddediliyor | Outstation yerel kumandaya alınmış |
| TLS bağlantısı kurulamıyor | Sertifikanın süresi dolmuş, ad ya da parmak izi uyuşmuyor, TLS'te dosya adları yanlış |
Uyumluluk özeti
Master, IEEE 1815-2012 seviye 4 master alt kümesini gerçekler. Uyumluluk matrisi, master'ın gönderebileceği her isteği ve çözümlemesi gereken her cevabı desteklenen olarak listeler.
| Öğe | Destek |
|---|---|
| READ, WRITE, SELECT, OPERATE, DIRECT_OPERATE, DIRECT_OPERATE_NR | Evet |
| IMMED_FREEZE, FREEZE_CLEAR (onaylı ve onaysız) | Evet |
| COLD_RESTART, WARM_RESTART, ENABLE / DISABLE_UNSOLICITED, ASSIGN_CLASS, DELAY_MEASURE, RECORD_CURRENT_TIME | Evet |
| Dosya aktarma (işlev kodları 25–30) | Evet |
| Güvenli kimlik doğrulama (işlev kodları 32, 33) | Evet, simetrik |
| g0, g1–g4, g10–g13, g20–g23, g30–g34, g40–g43, g50–g52, g60, g70, g80, g110–g113, g120–g122 nesneleri | Evet |