OPC Router Türkiye, OPC Turkey'nin bir hizmetidir.OPC Turkey Web Sayfası

Bağlantı & veri

OPC UA mimarisi: adres uzayı, abonelikler ve güvenlik

OPC UA’nın düğüm tabanlı adres uzayını, abonelik modelini ve güvenlik katmanlarını entegrasyon gözüyle açıklıyoruz: NodeId, örnekleme ve sertifika kararları.

Önemli noktalar

  • Bir OPC UA sunucusu veriyi düğümler halinde bir adres uzayında yayınlar; bir değerin anlamı, düğümün öznitelikleri ve referanslarıyla birlikte gelir.
  • Değerleri sürekli sorgulamak (polling) yerine abonelik kullanmak, ağ ve sunucu yükünü belirleyen en önemli tasarım kararlarından biridir.
  • Güvenlik modu, güvenlik politikası ve sertifika güveni ayrı ayrı yapılandırılır; “None” modu üretim ağları için önerilmez.
  • NodeId içindeki isim alanı dizini sunucuya göre değişebilir; kalıcı yapılandırmada isim alanı URI’sini esas alın.

OPC UA bir veri biçiminden çok, bir bilgi modeli ve bu modele erişim servisleri bütünüdür. Entegrasyon projelerindeki sürprizlerin çoğu (bulunamayan düğümler, beklenmedik yük, reddedilen sertifikalar) bu mimarinin üç parçasının yanlış anlaşılmasından gelir: adres uzayı, abonelikler ve güvenlik.

Adres uzayı: düğümler ve referanslar

OPC UA sunucusu bilgisini bir adres uzayında (address space) sunar. Adres uzayı, düğümlerden (node) ve onları birbirine bağlayan referanslardan oluşan bir graftır. Başlıca düğüm sınıfları nesne (Object), değişken (Variable) ve metottur (Method); bunların tip tanımları ObjectType, VariableType, ReferenceType ve DataType sınıflarıyla yapılır. Ayrıca bir View sınıfı vardır.

Her düğümün benzersiz bir NodeId’si vardır. NodeId, bir isim alanı dizini (namespace index) ile bir tanımlayıcıdan oluşur; tanımlayıcı sayı, metin, GUID veya bayt dizisi olabilir. Bir Variable düğümünde Value özniteliğinin yanında DataType, AccessLevel gibi öznitelikler bulunur. Okunan her değer, bir durum kodu (StatusCode) ve zaman damgalarıyla birlikte gelir; böylece “değer” ile “değerin güvenilirliği” ayrı ayrı yorumlanabilir.

İstemci adres uzayını tarayarak (browse) referansları izler ve düğümleri keşfeder. Örneğin bir makine nesnesi, bileşenlerini HasComponent referansıyla gösterebilir. Bu, düz bir etiket listesinden farklı olarak ekipmanın yapısını da taşır.

Servisler: okuma, yazma, çağrı ve abonelik

İstemci sunucuya servis çağrılarıyla erişir: Read ve Write ile öznitelik okur ve yazar, Browse ile adres uzayında gezer, Call ile bir metot çağırır. Geçmiş veriyi destekleyen sunucularda ayrıca tarihsel erişim servisleri bulunur.

Sürekli izlenen değerler için en uygun yöntem aboneliktir. İstemci bir abonelik (subscription) oluşturur ve içine izlenen öğeler (monitored item) ekler. Sunucu her öğeyi belirlenen örnekleme aralığında (sampling interval) değerlendirir; bir değişim varsa onu kuyruğa alır ve abonelik yayın aralığında (publishing interval) istemciye tek bir bildirimde gönderir. Neyin “değişim” sayılacağını bir filtre belirler: durum, değer veya zaman damgası değişimi; sayısal değerlerde bir ölü bant (deadband) tanımlanabilir.

Bu parametreler doğrudan yükü belirler. Binlerce etiketi 100 milisaniyede örneklemek, gerçekten gerekmedikçe hem sunucuyu hem ağı yorar. Örnekleme aralığı, kuyruk uzunluğu ve ölü bant, verinin hangi karar için kullanılacağına göre seçilmelidir; pilot sırasında gerçek yükle ölçülmelidir.

İletim ve güvenlik: mod, politika, sertifika

OPC UA bağlantısı genellikle ikili protokolle opc.tcp:// adresi üzerinden kurulur; HTTPS tabanlı iletim de tanımlıdır. Güvenlik üç bağımsız kararla yapılandırılır:

  • Güvenlik modu: None (koruma yok), Sign (imzalı) veya SignAndEncrypt (imzalı ve şifreli).
  • Güvenlik politikası: Kullanılan algoritma kümesi, örneğin Basic256Sha256 veya Aes128_Sha256_RsaOaep. Basic128Rsa15 ve Basic256 gibi eski politikalar kullanımdan kaldırılmış (deprecated) olarak işaretlenmiştir.
  • Kullanıcı kimliği: Anonim, kullanıcı adı ve parola, X.509 sertifikası veya yayınlanmış bir belirteç.

Uygulama sertifikaları, istemci ile sunucunun birbirine güvenmesini sağlar. Sign veya SignAndEncrypt bağlantısı, her iki taraf da karşı tarafın sertifikasını güvenilir listesine almadıkça kurulamaz. Sertifikanın sona erme tarihi de bir arıza nedenidir; yenileme planı yapılmalıdır. Ayrıntılı kontrol listesi için OPC UA sertifikaları rehberine bakın.

Bilgi modelleri ve eşlik eden belirtimler

Bir sunucu kendi isim alanında istediği yapıyı kurabilir; ancak aynı türden cihazların aynı yapıda konuşması için sektörel eşlik eden belirtimler (companion specification) vardır. Örneğin makineler (OPC UA for Machinery), robotlar, paketleme makineleri (PackML) ve plastik enjeksiyon makineleri (Euromap 77) için ayrı belirtimler yayımlanmıştır. Bir sunucunun hangisini desteklediği üreticinin dokümantasyonunda yer alır; varsayım yapmayın.

Temel tipler de bilgi taşır: örneğin analog ölçümler için tanımlı tipler, mühendislik birimini ve ölçek aralığını standart özniteliklerle sunabilir. Birim ve aralık sunucudan okunabiliyorsa dönüşümü tahmin etmek yerine bu bilgiyi kullanın.

Entegrasyon için pratik sonuçlar

  • İsim alanı URI’sini kullanın. NodeId’deki isim alanı dizini bir sunucu yeniden başladığında veya farklı bir sunucuda değişebilir. Kalıcı yapılandırmada dizin yerine isim alanı URI’sini esas almak “düğüm bulunamadı” hatalarını önler.
  • Kaliteyi taşıyın. Durum kodunu değerle birlikte hedefe aktarın. Kötü kaliteli bir değeri sessizce kaydetmek raporlarda sorun çıkarır.
  • Kaynak zaman damgasını koruyun. Sunucu zaman damgası ile kaynak zaman damgası farklı olabilir; analiz için genellikle olayın kaynakta gerçekleştiği zaman gerekir.
  • Aboneliği ihtiyaca göre boyutlandırın. Örnekleme aralığı ve ölü bandı gerçek yükle ölçün.
  • Önce bağımsız bir istemciyle deneyin. Bağlantıyı projeye eklemeden önce adres uzayını bağımsız bir OPC UA istemcisiyle taramak adres uzayı, güvenlik ve yetki sorunlarını erken gösterir.

PLC veya makine verisi bu mimari üzerinden OPC Router’a okunur; sertifika güveni, güvenlik modu ve abonelik parametreleri projede birlikte doğrulanır.

Sık sorulanlar

OPC UA istemcisi ile sunucusu arasındaki fark nedir?

Sunucu bilgiyi adres uzayında yayınlar ve istekleri yanıtlar; istemci sunucuya bağlanıp okur, yazar, abone olur veya metot çağırır. Aynı yazılım hem istemci hem sunucu olabilir. OPC Router’da OPC UA Client kaynak okumak, OPC UA Server işlenmiş veriyi sunmak için kullanılır.

Polling mi abonelik mi kullanmalıyım?

Sürekli izlenen değerlerde abonelik genellikle daha verimlidir; sunucu yalnızca değişimi bildirir. Polling seyrek ve zamanlanmış okumalar için uygundur. Karar, verinin ne sıklıkla değiştiğine ve ne kadar gecikmenin kabul edilebilir olduğuna bağlıdır.

Güvenlik modunu None bırakabilir miyim?

Teknik olarak mümkündür; ancak bağlantı imzalanmaz ve şifrelenmez, bu nedenle üretim ağlarında önerilmez. Sign veya SignAndEncrypt ile birlikte sertifika güveni yapılandırılmalıdır.

Kaynaklar

Bir sonraki adım

Bağlamak istediğiniz sistemleri konuşalım.

Kaynağı, hedefi ve beklediğiniz sonucu paylaşın. Projenin kapsamını birlikte netleştirelim.

Projenizi konuşalımDemo