İçeriğe geç

OPC UA

OPC UA (Open Platform Communications Unified Architecture), endüstriyel otomasyonda platform bağımsız, güvenli ve güvenilir veri alışverişi için geliştirilmiş bir haberleşme standardıdır. OPC Foundation tarafından yönetilir ve eski OPC Classic (DA, HDA, A&E) standartlarının yerini alan modern bir mimaridir.

inSCADA, OPC UA protokolünü hem Client hem de Server rolünde destekler.

  • Platform bağımsız: Windows, Linux, gömülü sistemlerde çalışır
  • Güvenli: TLS/SSL şifreleme, sertifika doğrulama, kullanıcı kimlik doğrulama
  • Nesne yönelimli: Hiyerarşik bilgi modeli (Address Space)
  • Keşfedilebilir: Node space taranarak mevcut veriler otomatik bulunabilir
  • Ölçeklenebilir: Sensörden bulut platformuna kadar geniş yelpaze

OPC UA sunucusu, verilerini Address Space adı verilen hiyerarşik bir yapıda organize eder. Bu yapı Node (düğüm) nesnelerinden oluşur:

Root
├── Objects
│ ├── Server (sunucu bilgileri)
│ └── DeviceSet (kullanıcı verileri)
│ ├── PLC_1
│ │ ├── Temperature (ns=2; s="PLC1.Temp")
│ │ ├── Pressure (ns=2; s="PLC1.Press")
│ │ └── Status (ns=2; i=1001)
│ └── Sensor_1
│ └── Value (ns=3; s="Sensor1.Value")
├── Types
└── Views

Her node benzersiz bir Node ID ile tanımlanır. Node ID üç bileşenden oluşur:

  • Namespace Index (ns): Hangi namespace’e ait olduğu
  • Identifier Type: Tanımlayıcı tipi (Numeric veya String)
  • Identifier: Değer (sayı veya metin)

Örnekler:

  • ns=2; s="PLC1.Temperature" — String identifier
  • ns=2; i=1001 — Numeric identifier

OPC UA, çok katmanlı bir güvenlik modeli sunar:

Security Mode:

ModAçıklama
NoneŞifreleme ve imzalama yok
SignMesajlar imzalanır ama şifrelenmez
SignAndEncryptMesajlar hem imzalanır hem şifrelenir

Security Policy:

PolicyAçıklama
NoneGüvenlik politikası yok
Basic128Rsa15128-bit şifreleme (eski, önerilmez)
Basic256256-bit şifreleme
Basic256Sha256256-bit şifreleme + SHA-256 hash
Aes128_Sha256_RsaOaepAES-128 şifreleme + SHA-256

Kimlik Doğrulama:

YöntemAçıklama
AnonymousKimlik doğrulama gerekmez
Username/PasswordKullanıcı adı ve şifre ile giriş
Connection (Bağlantı — endpoint URL, güvenlik ayarları)
└── Device (Cihaz — base path ile gruplama)
└── Frame (Veri Bloğu — node path ile gruplama)
└── Variable (Değişken — Node ID ile tanımlı)
Veri TipiAçıklama
BooleanTek bit değer
SByteİşaretli 8-bit tam sayı
Byteİşaretsiz 8-bit tam sayı
Int16İşaretli 16-bit tam sayı
UInt16İşaretsiz 16-bit tam sayı
Int32İşaretli 32-bit tam sayı
UInt32İşaretsiz 32-bit tam sayı
Int64İşaretli 64-bit tam sayı
Float32-bit kayan nokta
Double64-bit kayan nokta
StringKarakter dizisi
DateTimeZaman damgası
EncodingAçıklama
BinaryOPC UA Binary encoding (varsayılan, en performanslı)
XMLXML tabanlı encoding
JSONJSON tabanlı encoding