OPC UA (OPC Unified Architecture), farklı üreticilere ait endüstriyel
cihazların, kontrol sistemlerinin, SCADA uygulamalarının ve üst seviye yazılım
sistemlerinin güvenli ve standart bir şekilde bilgi alışverişi yapmasını sağlayan
platform bağımsız bir endüstriyel iletişim standardıdır.
OPC UA yalnızca bir veri okuma ve yazma protokolü değildir. Verilerin yapısını,
anlamını, ilişkilerini ve durumunu tanımlayabilen kapsamlı bir bilgi modelleme altyapısı
sunar. Bu nedenle küçük saha cihazlarından SCADA sistemlerine, MES ve ERP
uygulamalarından bulut ve IIoT sistemlerine kadar farklı seviyelerde kullanılabilir.
OPC UA, endüstriyel sistemlerde farklı marka ve teknolojilerin birbirleriyle haberleşmesini
kolaylaştırmak amacıyla geliştirilmiş bir standarttır.
Bir üreticinin PLC'si, başka bir üreticinin SCADA sistemi ve üçüncü bir üreticinin veri
toplama veya analiz yazılımı OPC UA üzerinden ortak bir iletişim modeli kullanarak
birbirleriyle veri alışverişi yapabilir.
OPC UA'nın önemli özelliklerinden biri platform bağımsız olmasıdır. Windows, Linux, gömülü
sistemler ve farklı donanım platformlarında çalışan uygulamalar OPC UA kullanabilir.
OPC UA, OPC Foundation tarafından geliştirilen ve sürdürülen OPC standart ailesinin modern
mimarisidir. OPC UA, 2008 yılında kullanıma sunulmuş ve önceki OPC Classic teknolojilerinin
işlevlerini genişletilebilir bir mimari altında birleştirmiştir.
:contentReference[oaicite:1]{index=1}
Endüstriyel tesislerde farklı üreticilere ait çok sayıda cihaz ve yazılım bulunabilir. PLC,
RTU, inverter, enerji analizörü, koruma rölesi, SCADA, historian, MES ve ERP sistemlerinin
aynı ortamda çalışması gerekebilir.
Bu sistemlerin her biri farklı haberleşme yöntemleri kullanabildiğinden, aralarındaki veri
alışverişi önemli bir entegrasyon problemi oluşturabilir.
OPC UA, bu farklı sistemler arasında ortak ve standart bir iletişim katmanı oluşturarak bu
problemi azaltmayı amaçlar.
- Farklı üreticilerin cihazları arasında haberleşme
- SCADA ve HMI sistemlerine veri aktarımı
- Endüstriyel verilerin üst seviye sistemlere aktarılması
- MES, ERP ve veri analiz sistemleriyle entegrasyon
- IIoT ve bulut sistemleriyle veri alışverişi
- Standartlaştırılmış bilgi modellerinin kullanılması
OPC UA Server
OPC UA Server, endüstriyel verileri OPC UA standardına uygun şekilde sunan
uygulamadır. Server gerçek saha cihazlarından veri okuyabilir, başka bir sistemden
aldığı bilgileri sunabilir veya tamamen yazılım tarafından oluşturulan verileri OPC
UA üzerinden yayınlayabilir.
- Veri noktalarının sunulması
- Gerçek zamanlı değerlerin paylaşılması
- Veri yazma işlemlerinin desteklenmesi
- Alarm ve olay bilgilerinin sunulması
- Bilgi modellerinin oluşturulması
- Client bağlantılarının yönetilmesi
OPC UA Client
OPC UA Client, bir OPC UA Server'a bağlanarak Server tarafından sunulan verileri
kullanan uygulamadır.
Bir SCADA sistemi, veri kayıt yazılımı, raporlama uygulaması veya özel geliştirilmiş
bir yazılım OPC UA Client olarak çalışabilir.
- OPC UA Server keşfi
- Adres alanının incelenmesi
- Veri okuma
- Veri yazma
- Subscription oluşturma
- Alarm ve olayların alınması
EOS Yazılımları İçin OPC UA Veri Adresleme (O#)
EOS SCADA OPC UA istemcisinde veri adresi, OPC UA Server tarafından sunulan
NodeId kullanılarak belirtilir. Adres O# prefix'i ile
başlar.
O#NODE_ID
Örneğin OPC UA Server üzerinde
ns=2;s=Channel1.Device1.Tag1
NodeId'sine sahip bir veri için:
O#ns=2;s=Channel1.Device1.Tag1
OPC UA veri adresinde OPC UA Server tarafından sunulan geçerli
NodeId doğrudan kullanılmalıdır.
OPC UA'nın en önemli kavramlarından biri
Address Space'tir. Address Space, OPC UA Server'ın dış dünyaya sunduğu
bilgilerin organize edildiği yapıdır.
Klasik protokollerde bir veri çoğu zaman yalnızca bir adres veya register numarasıyla ifade
edilirken, OPC UA'da veriler daha zengin bir yapıyla temsil edilebilir.
Örneğin bir santraldeki bir jeneratör aşağıdaki gibi bir yapı içerisinde temsil edilebilir:
Plant
└── Generator01
├── Status
├── ActivePower
├── ReactivePower
├── Voltage
├── Current
├── Temperature
└── Start
Böylece Client yalnızca bir değer okumakla kalmaz; bu değerin hangi ekipmana ait olduğunu,
hangi türde olduğunu ve diğer nesnelerle olan ilişkilerini de anlayabilir.
OPC UA Address Space ve bilgi modelleme yaklaşımı, standardın temel mimari özellikleri
arasında yer alır. :contentReference[oaicite:2]{index=2}
OPC UA'da Address Space içerisinde bulunan her bilgi
Node olarak temsil edilebilir.
Bir Node; değişken, nesne, yöntem, veri tipi veya başka bir bilgi türünü temsil edebilir.
Örneğin bir motorun sıcaklık bilgisi bir Variable Node, motorun kendisi ise bir Object Node
olarak temsil edilebilir.
OPC UA'da Node'ların benzersiz kimlikleri bulunur. Bu kimlikler
NodeId olarak adlandırılır.
Bunun yanında kullanıcıların ve yazılımların Node'ları daha anlaşılır şekilde
tanımlayabilmesi için
BrowseName ve DisplayName
gibi bilgiler de kullanılabilir.
OPC UA'da farklı üreticiler veya uygulamalar tarafından oluşturulan bilgi modellerinin
birbirleriyle karışmasını önlemek için Namespace kavramı kullanılır.
Bir Node'un kimliği çoğunlukla Namespace ile birlikte değerlendirilir. Bu nedenle OPC UA
uygulamalarında yalnızca görünen isimlere bakmak yerine NodeId ve Namespace bilgilerinin
birlikte değerlendirilmesi önemlidir.
Örneğin bir OPC UA Server içerisinde aşağıdaki gibi NodeId'ler bulunabilir:
ns=2;s=Plant.Generator01.ActivePower
ns=2;s=Plant.Generator01.Voltage
ns=2;s=Plant.Generator01.Temperature
Buradaki yapı örnek amaçlıdır. Gerçek NodeId biçimleri kullanılan OPC UA Server'ın
tasarımına bağlıdır.
OPC UA ile Veri Okuma ve Yazma
OPC UA Client, Server'ın Address Space'inde bulunan uygun yetkilendirmeye sahip Node'ların
değerlerini okuyabilir veya yazabilir.
Örneğin bir enerji tesisinde Client aşağıdaki değerleri okuyabilir:
- Aktif güç
- Reaktif güç
- Gerilim
- Akım
- Frekans
- Sıcaklık
- Basınç
- Debi
- Ekipman çalışma durumu
- Alarm ve durum bilgileri
Yazma desteği bulunan sistemlerde ise uygun yetkilere sahip Client'lar Server üzerindeki
değerleri veya kontrol komutlarını yazabilir.
OPC UA'nın önemli özelliklerinden biri
Subscription mekanizmasıdır.
Bir Client'ın sürekli olarak "değer değişti mi?" diye Server'a tekrar tekrar sorması yerine,
Client bir Subscription oluşturabilir ve ilgilendiği Node'ları izlemeye alabilir.
Değer değiştiğinde veya belirlenen koşullar oluştuğunda Server Client'a bildirim
gönderebilir.
Subscription içerisinde izlenen her veri noktası
MonitoredItem olarak tanımlanabilir.
Bu yapı özellikle çok sayıda veri noktasının bulunduğu SCADA, veri toplama ve historian
uygulamalarında önemli avantajlar sağlayabilir. OPC UA spesifikasyonu Subscription ve
MonitoredItem yapılarını temel servisler arasında tanımlar.
:contentReference[oaicite:3]{index=3}
OPC UA'yı geleneksel veri iletişim protokollerinden ayıran önemli özelliklerden biri
Information Model yaklaşımıdır.
Bir cihazın yalnızca değerlerini değil, cihazın ne olduğunu, hangi özelliklere sahip
olduğunu, hangi değerlerin ona ait olduğunu ve diğer nesnelerle ilişkilerini de modellemek
mümkündür.
Örneğin bir pompa için:
- Pompanın çalışma durumu
- Debi
- Basınç
- Motor devri
- Sıcaklık
- Çalıştırma ve durdurma komutları
- Alarm bilgileri
aynı nesnenin bilgi modeli içerisinde birlikte tanımlanması mümkün olabilir.
OPC Foundation ayrıca farklı sektörler ve cihaz türleri için
Companion Specifications adı verilen özel bilgi modelleri geliştirmektedir.
Bunlar enerji, üretim, proses, makine ve farklı endüstriyel uygulamalar için
standartlaştırılmış modeller sağlayabilir. :contentReference[oaicite:5]{index=5}
Endüstriyel sistemlerde haberleşmenin güvenli olması büyük önem taşır. OPC UA, güvenliği
mimarisinin temel parçalarından biri olarak ele alır.
Kimlik Doğrulama
Client ve Server uygulamalarının ve gerektiğinde kullanıcıların kimliklerinin
doğrulanmasını destekler.
Şifreleme
Haberleşmenin gizliliğini korumak için güvenlik mekanizmaları kullanılabilir.
Sertifikalar
OPC UA uygulamalarının güvenli şekilde tanımlanması ve güven ilişkilerinin
oluşturulmasında sertifikalar kullanılabilir.
Güvenli İletişim
Haberleşmenin bütünlüğünün ve güvenliğinin korunması için OPC UA güvenlik modeli
kullanılabilir.
OPC UA güvenlik mimarisi Client/Server iletişiminin yanında Publish-Subscribe iletişim
modelini de kapsar. :contentReference[oaicite:6]{index=6}
OPC UA'nın klasik Client/Server iletişim modelinin yanında
Publish-Subscribe (PubSub)
iletişim modeli de bulunmaktadır.
Client/Server modelinde Client belirli bir Server'a bağlanarak servisleri kullanırken,
PubSub modelinde veriler Publisher tarafından yayınlanabilir ve bu verilerle ilgilenen
Subscriber uygulamalar tarafından alınabilir.
Bu yaklaşım özellikle çok sayıda sistemin aynı veriyi kullanması gereken büyük endüstriyel
ve IIoT uygulamalarında faydalı olabilir.
OPC UA PubSub farklı taşıma yöntemleriyle kullanılabilir. OPC UA spesifikasyonunda UDP'nin
yanı sıra MQTT ve AMQP gibi taşıma seçenekleri de tanımlanmıştır.
:contentReference[oaicite:7]{index=7}
OPC UA Nerelerde Kullanılır?
OPC UA, farklı otomasyon seviyeleri arasında veri alışverişi gereken çok çeşitli
uygulamalarda kullanılabilir.
-
SCADA ve HMI sistemleri
-
PLC ve RTU sistemleri
-
Enerji üretim tesisleri
-
Fabrika otomasyonu
-
Proses otomasyonu
-
Makine otomasyonu
-
Historian sistemleri
-
MES uygulamaları
-
ERP entegrasyonu
-
Veri analizi
-
IIoT uygulamaları
-
Bulut sistemleri
OPC UA'nın kapsamı cihaz seviyesinden işletme ve kurumsal sistemlere kadar
genişletilebilecek şekilde tasarlanmıştır. :contentReference[oaicite:8]{index=8}
OPC UA ve OPC DA Arasındaki Fark
OPC DA ve OPC UA aynı amaca, yani farklı sistemler arasında standart veri alışverişine
hizmet etse de mimarileri birbirinden oldukça farklıdır.
| Özellik |
OPC DA |
OPC UA |
| Temel teknoloji |
OPC Classic / COM teknolojileri |
Platform bağımsız OPC UA mimarisi |
| Platform bağımsızlığı |
Sınırlı |
Evet |
| Güvenlik |
Windows/COM altyapısına bağımlı |
Entegre güvenlik modeli |
| Bilgi modelleme |
Sınırlı |
Gelişmiş |
| Subscription |
Desteklenir |
Gelişmiş Subscription yapısı |
| Events / Alarms |
OPC Classic ailesinde ayrı spesifikasyonlar |
Entegre bilgi modelleri ve servisler |
| PubSub |
Hayır |
Evet |
| Modern IIoT uygulamaları |
Sınırlı |
Uygun |
OPC Foundation, OPC UA'yı OPC Classic teknolojilerinin işlevlerini daha geniş ve platform
bağımsız bir mimaride birleştiren bir teknoloji olarak tanımlar.
:contentReference[oaicite:9]{index=9}
OPC UA Öğrenirken Bilinmesi Gereken Kavramlar
OPC UA ile çalışmaya yeni başlayanların aşağıdaki kavramları öğrenmesi, Client ve Server
uygulamalarının anlaşılmasını büyük ölçüde kolaylaştırır.
-
OPC UA Server:
Verileri ve bilgileri OPC UA üzerinden sunan uygulama.
-
OPC UA Client:
Server'a bağlanarak verileri kullanan uygulama.
-
Address Space:
Server tarafından sunulan bilgi alanı.
-
Node:
Address Space içerisindeki bilgi birimi.
-
NodeId:
Node'un benzersiz kimliği.
-
BrowseName:
Node'un adres alanında gezinirken kullanılan adı.
-
Namespace:
Bilgi modellerini birbirinden ayırmaya yarayan yapı.
-
MonitoredItem:
İzlenmek üzere Subscription'a eklenen veri veya olay.
-
Subscription:
Değişiklik ve olay bildirimlerinin yönetildiği yapı.
-
Information Model:
Verilerin ve nesnelerin anlamlı bir yapıda modellenmesi.
-
PubSub:
Publisher ve Subscriber tabanlı iletişim modeli.
OPC UA, endüstriyel sistemler arasında standart ve güvenli bilgi alışverişi sağlamak için
geliştirilmiş kapsamlı bir iletişim teknolojisidir.
OPC UA'yı yalnızca bir "veri okuma protokolü" olarak düşünmek doğru değildir. Client/Server
iletişiminin yanında Address Space, bilgi modelleme, Subscription, Events, Alarms,
Historical Access, güvenlik ve PubSub gibi birçok farklı yeteneği bir araya getirir.
Bu özellikleri sayesinde OPC UA; SCADA ve HMI uygulamalarından veri toplama sistemlerine,
üretim sistemlerinden enerji tesislerine ve IIoT uygulamalarına kadar geniş bir kullanım
alanına sahiptir.
OPC UA'nın temel mimarisi ve standartlaştırılmış bilgi modelleri, farklı üreticilere ait
sistemlerin aynı endüstriyel veri altyapısı içerisinde birlikte çalışmasını kolaylaştırmayı
amaçlar. :contentReference[oaicite:10]{index=10}