Ana içeriğe geç

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​

RolMaster (IEEE 1815-2012, seviye 4 master).
TaşımalarTCP (YTCC bağlanır), Tcp listen (outstation bağlanır), UDP, TLS, Tls listen, Serial
Varsayılan port20000
Sürücü başına cihazSınırsız outstation. Aynı uç noktadaki outstation'lar tek kanalı paylaşır.
Hat adresleriSürücüde master adresi, her outstation'da hat adresi, 0–65519
Sürücü tipiDNP3 (dnp3)

Sürücü parametreleri​

Bunları Drivers → devices görünümünde sürücü üzerinde ayarlayın.

ParametreVarsayılanAralıkAnlamı
Master address (Master adresi)10–65519YTCC'nin hat adresi. Her outstation'ın hat adresinden farklı olmalıdır.
Max requests per (s) (Saniyede en çok istek)2001–10000Sürücünün tüm outstation'ları için saniyedeki en çok istek.
Secrets dir (Gizli dosya klasörü)boşklasörAnahtar 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.

Class2 period (s), Class3 period (s), Data bits, File, Flow control, Host, Integrity period (s), Inter char timeout (ms), Keepalive (s) ve Link address 10 alanlarına kaydırılmış, bir DNP3 outstation&#39;ının New device formu.

Bağlantı​

ParametreVarsayılanAnlamı
Transport (Taşıma)TCPTCP, Tcp listen, UDP, TLS, Tls listen ya da Serial.
Host—Outstation'ın adresi (dinleme kiplerinde outstation'ın bağlandığı adres).
Port20000TCP ya da UDP portu.
Local port, Bind—UDP ve dinleme kipleri için yerel port ve adres.
UDP modeUdp onlyUdp 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)60Hat 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ı​

ParametreVarsayılanAralıkAnlamı
Link confirm (Hat onayı)NeverNever / AlwaysHer çerçeve için hat katmanı onayı ister.
Link timeout (ms)1000100–60000Hat katmanı cevabı bekleme süresi.
Link retries20–10Hat katmanı yinelemeleri.
Link reset on connectkapalı—Bağlantı açılınca hattı sıfırlar.
Response timeout (ms) (Cevap zaman aşımı)5000100–300000Bir isteğin cevabını bekleme süresi.
App retries00–10Bir isteğin uygulama katmanında yinelenmesi (komutlarda değil).
Max rx fragment, Max tx fragment2048—Alınan ve gönderilen en büyük parça.
Select timeout (ms)5000100–60000SELECT ile OPERATE arasındaki en uzun süre.

Tarama ve açılış​

ParametreVarsayılanAnlamı
Integrity period (s) (Bütünlük periyodu)3600Bu 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)5Her sınıfın olay yoklaması bu aralıkla; 0 kapalıdır.
Startup integrity (Açılışta bütünlük)açıkBağlantı açılınca bütünlük yoklaması.
Read attributes on startupaçıkAçılışta cihaz özniteliklerini (grup 0) okur.
Attribute list qualifierStart 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:

AyarAna 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
TLSverify server_name / ip / pinned, ca_name ca.pem, cert_name, key_name, min_version 1.2, cert_expiry_warn_days 30
Saenabled 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).

Address — DNP3 altında Point type Binary input ve Index ile PS10.Pump1Run sinyalinin Value source sekmesi.

Nokta tipi (form)İçe aktarma dosyasındaki adNesneler
Binary input (İkili giriş)binary_inputg1, g2
Double-bit input (Çift bitli giriş)double_bit_inputg3, g4
Binary output (İkili çıkış)binary_outputg10 durum, g12 komut
Counter (Sayaç)counterg20, g22
Analog input (Analog giriş)analog_inputg30, g32
Analog output (Analog çıkış)analog_outputg40 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östergeTepki
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 gerekiyorSaati 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).

AyarDeğerlerVarsayılan
Cmd mode (Komut kipi)select_operate (SELECT, sonra OPERATE), direct_operate, direct_operate_nr (cevapsız)select_operate
CROBJSON: op latch_on / latch_off / pulse_on / pulse_off, tcc nul / close / trip, count, on_ms, off_mslatch, 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 nokta1
  • İkili çıkış (CROB, g12v1): değer açık ya da kapalıdır. tcc close 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_operate ile OPERATE ancak SELECT cevabı eşleşir ve başarı bildirirse gönderilir. Komutlar hiç yinelenmez.
  • direct_operate_nr ile 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.
uyarı

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_LOSTBad · Not connected (neden: haberleşme hatası)
ONLINE yokBad
REMOTE_FORCED ya da LOCAL_FORCEDGood · Substituted, değer kaynağı sahada elle
RESTARTUncertain
OVER_RANGE (analog)Uncertain · EU exceeded
CHATTER_FILTER, DISCONTINUITY, REFERENCE_ERRUncertain
bunlardan hiçbiriGood

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önderiyorGeliş zamanı; device time invalid
Statik değer ya da zamansız olayGeliş 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. verify server_name (varsayılan), ip ya da pinned'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.enabled ile komutlar ve dosya işlemleri tek bir kullanıcı numarasıyla doğrulanır. Simetrik bir güncelleme anahtarı yöntemi ve update_key_name kullanı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_prefixes altı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.

BelirtiOlası neden
Outstation hiç cevap vermiyorYanlış hat adresi ya da master adresi; yanlış taşıma, host ya da port; güvenlik duvarı
Yeniden başlamadan sonra değerler UncertainOutstation 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 çipiOutstation olay kaybetti; sınıf yoklama periyotlarını kısaltın ya da istenmeden gelen cevapları açın
Komut local control (LOCAL) ile reddediliyorOutstation yerel kumandaya alınmış
TLS bağlantısı kurulamıyorSertifikanı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.

ÖğeDestek
READ, WRITE, SELECT, OPERATE, DIRECT_OPERATE, DIRECT_OPERATE_NREvet
IMMED_FREEZE, FREEZE_CLEAR (onaylı ve onaysız)Evet
COLD_RESTART, WARM_RESTART, ENABLE / DISABLE_UNSOLICITED, ASSIGN_CLASS, DELAY_MEASURE, RECORD_CURRENT_TIMEEvet
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 nesneleriEvet