OPC UA (Birleşik Mimari), OPC spesifikasyonlarının bir evrimidir ve yalnızca makinelerden ve sistemlerden veri aktarımını değil, aynı zamanda bu verilerin makine tarafından okunabilir anlamsal açıklamasını da sağlar. OPC Vakfı üyelerinin kullanımına sunulan, TCP tabanlı, platformdan bağımsız bir standarttır. OPC-UA spesifikasyonu, bireysel işlevleri ölçeklendirmek için çeşitli profiller içerir.
Bu makale, Node-RED'in OPC UA protokolünü (Açık Platform İletişimleri Birleşik Mimarisi) kullanarak diğer sistemlerle iletişim kurmak için nasıl kullanılabileceğini göstermektedir. OPC UA sunucusu, bu durumda bir RevPi Connect 4 üzerinde CODESYS tabanlı bir denetleyici olan denetleyicide çalışır.
Ön koşullar #
Donanım
✓ RevPi Connect 4
✓ RevPi DIO - dijital I/O I/O
✓ RevPi AIO - analog I/O I/O
✓ Inductive proximity sensor (3 kablo, PNP)
✓ PT-1000 sıcaklık sensörü (4 kablo)
✓ Bağlantı kabloları (RevPi DIO ve LED'in kablolanması için).
Yazılım
|
Not
|
RevPi Bookworm Görüntüsünden (08/2025)'den itibaren OPC UA Sunucusunun varsayılan portlarına izin vermek için RevPi'deki güvenlik duvarının da etkinleştirilmesi gerekir: ▷ Cockpit'teki güvenlik duvarı ayarlarına opcua-server-default servisini ekleyin, bkz. Güvenlik Duvarı. |
Adım 1: Sistemin Kurulumu #
Sisteminizi RevPi Connect 4 ve RevPi DIO ve RevPi AIO genişletme modülleriyle yapılandırmak için aşağıdaki adımları izleyin. Ayrıntılı talimatlar için Başlarken bölümüne bakın.
▷ RevPi DIO ve RevPi AIO'yu RevPi Connect 4'e bağlayın.
Genişletme modüllerinin PiBridge arayüzü aracılığıyla RevPi Connect 4'e güvenli bir şekilde bağlandığından emin olun.
▷ inductive proximity sensor'ü RevPi DIO'nun dijital girişine bağlayın.
▷ PT-1000'i RevPi AIO'nun RTD kanalı 1'e bağlayın.
▷ RevPi Connect 4'ü güç kaynağına bağlayın.
▷ Bir ağ bağlantısı kurun.
▷ Web tarayıcısı aracılığıyla RevPi Connect 4'e giriş yapın.
Adım 2: OPC UA Node Kurulumu #
Node-RED'in standart kurulumu, en sık kullanılan temel düğümleri içerir. Ancak, kullanabileceğiniz kapsamlı bir ek düğüm kütüphanesi de mevcuttur. OPC-UA protokolünü kullanmak için, sağlanan node-red-contrib-opcua düğümlerini yüklemeniz gerekir. Bu kurulum, Node Paket Yöneticisi (npm) ile komut satırından veya doğrudan bir terminal aracılığıyla yapılabilir.
▷ Node-RED'i başlatın.
▷ Menüyü açın ve Manage palette'i seçin.
▷ Kuruluma devam etmek için node-red-contrib-opcua'yı arayın.
|
Not
|
Adım 3: OPC-UA Sunucusunun Kurulumu #
▷ CODESYS'yi açın.
▷ altında yükleyiciyi açın.
▷ Kuruluma devam etmeden önce CODESYS uygulamanızın ana penceresini kapatın.
▷ Yükleyicide Install File'i seçin.
▷ Paketleri bilgisayarınızdan CODESYS uygulamanıza yüklemek için kurulum adımlarını izleyin.
▷ CODESYS Control Linux ARM 64 bit'i yüklemek için seçin.
❯ CODESYS Installer penceresi açılır.
▷ CODESYS Control for Linux ARM64 SL'i arayın ve Install'yi seçin.
❯ İki paket artık CODESYS Yükleyicisinde Installed olarak listeleniyor ve böylece uygulamanıza yükleniyor.
▷ Kurulumu denetleyiciye (burada RevPi Connect 4) aktarmak için öğesini seçin.
Adım 4: CODESYS Projesi Oluşturma #
▷ CODESYS'de CODESYS Control for Linux ARM64 SL ile yeni bir standart proje oluşturun.
▷ CODESYS Control for Linux ARM64 SL seçin.
▷ Aygıt ağacında Device context menüsünü açın.
▷ Add Device seçin.
❯ Tüm RevPi temel modüllerinin listesinin bulunduğu bir pencere açılır.
▷ RevPi Connect 4 temel modülünü seçin.
▷ Add Device ile onaylayın.
İsteğe bağlı olarak ek RevPi genişletme modüllerini kullanabilirsiniz.
▷ Önceki adımda eklediğiniz RevPi temel modülünün context menüsünü açın.
▷ Add Device seçin.
▷ Genişletme modülünü düzenlemek için piBridgeLeft veya piBridgeRight aygıt arayüzünü seçin.
▷ Add Device seçin.
▷ Ekli genişletme modülünü seçin.
▷ Add Device ile onaylayın.
❯ Burada, RevPi Connect 4'ün soluna veya sağına bağlanabilen mevcut modüller gösterilmektedir. Bu örnekte:
-
RevPi DI - dijital giriş modülü
-
RevPi AIO - analog I/O modülü
▷ RevPi DIO üzerindeki pinleri yapılandırın:
▷ PT-1000 sıcaklık sensörü için RevPi AIO'yu yapılandırın.
RTD channel 1'i (RTD1) kullanır.

Adım 5: CODESYS Programını Oluşturun #
Programda iki değişken tanımlanmıştır. A_OUT değişkeni, RTD_Channel 1 kanalına erişir ve sıcaklık değerini döndürür. Input değişkeni ise, endüktif sensörün sinyal hattının bağlı olduğu RevPi DIO'nun dijital girişinin 2. girişine erişir.
Adım 6: OPCUA Sunucusunu Kurma #
OPC UA sunucu işlevi, CODESYS geliştirme ortamına doğal olarak dahil edilmiştir. OPCUA-TUT programında, bir girişin durumunu ve bir sıcaklık sensörünün değerini yayınlayacağız.
Projeye sembol yapılandırma nesnesini ekledik ve OPC UA özelliklerini etkinleştirdik.

Adım 7: Değişkenleri Yayınlama #
Sembol yapılandırma düzenleyicisinde, programda bulunan tüm değişkenlerin bir listesini buluruz. Yalnızca yayınlamak istediklerimizi etkinleştiririz: Dijital girişin durumunu döndüren BOOL türü Input ve sıcaklık değerini döndüren INT türündeki A_OUT ile temsil edilen sıcaklık.
Her değişken için, erişim hakları sütununu seçerek izinleri (Okuma, Yazma, Okuma/Yazma) değiştirebiliriz. Program hedefte yüklenip çalıştırıldıktan sonra, yayınlanan değişkenlere bir OPC UA istemcisi ile erişmek mümkündür.

Artık veri iletimini güvenli hale getirme imkânı da var ve bu iki şekilde yapılabilir. İlk olarak, iletişim politikasını değiştirerek kullanıcı kimlik doğrulaması yoluyla.
İkinci olarak, anonim oturum açmaya izin verilip verilmediği, yani OPC-UA sunucularına kullanıcı yönetimi olmadan erişip erişemeyeceğiniz belirlenebilir. Bu durumda, buna izin verdik.
OPC UA üzerinden güvenli veri iletimi için veri akışını şifrelemenin bir yoluna ihtiyacımız var. Bu artık Security Manager aracılığıyla yapılıyor. Bu, cihazda X.509 üzerinden veri iletimini şifrelemek için bir sertifikanın saklanıp saklanmadığını kontrol ediyor.
▷ Devices seçin.
❯ Cihaza ait mevcut bilgiler görüntülenir.
Bu durumda aşağıdaki bilgiler mevcuttur:

|
Not
|
OPC UA hizmetinin şifrelenmesi önemlidir. Öncelikle, bir sertifikanın saklanıp saklanmadığı kontrol edilmelidir. Saklanmamışsa, yukarıdaki görselde gösterildiği gibi bir sertifika oluşturulmalıdır. |
OPC-UA sunucusunun artık geçerli bir sertifikası var:
Adım 8: OPC UA İstemcisini Kurma #
UaExpert®, platformlar arası bir OPC UA test istemcisidir. Program, diğer birçok program ve dokümantasyonla birlikte, Unified Automation şirketinin web sitesinden ücretsiz olarak indirilebilir.
Sistemimize bağlanmak ve yayınlanan değişkenlerle etkileşime geçmek için bağlanılacak bir sunucu tanımlayabiliriz.
▷ seçin.
❯ Bir açılır pencere açılır.
▷ Sistem IP adresini ayarlayın.
▷ Devam etmek için Ok'a tıklayarak onaylayın.
❯ Program sunucuya bağlanacak ve listede görüntüleyecektir. Şuna benzer bir giriş görünecektir: opc.tcp://192.xxx.xxx.xxx:; burada opc.tcp, TCP üzerinden protokolü belirtir. opc.tcp://192.xxx.xxx.xxx: menüsünü genişlettiğinizde, doğru ada sahip sunucunun otomatik olarak algılanması şu biçimde görünecektir: OPCUAServer@RevPi99920(opc.tcp://192.168.1.214).
▷ Bir iletişim seçeneği seçin. Örnek None-None(uatcp-uasc-uabinary).
▷ Devam etmek için Ok'ı seçin.
▷ Sunucuya bağlanmak için sunucunun içerik menüsünü açın ve açılan pencerede Connect'ı seçin.
Bağlantı kurulduktan sonra istediğiniz değişkeni arayabilir ve etkileşimde bulunabilirsiniz.
▷ Örneğin, None-None(uatcp-uasc-uabinary) gibi bir iletişim yöntemi seçin ve Ok seçin.
Adım 9: Node-RED Akışı Oluşturun #
OPCUA-TUT programına bağlanan ilişkili gösterge paneliyle birlikte Node-RED programı:
CODESYS OPC UA Sunucusu ile iletişim, uç noktanın OPC-UA sunucusunun adresi ve bağlantı noktası olarak tanımlandığı OpcUa-Client düğümü üzerinden yapılır (örnekte: opc.tcp://192.168.1.214:4840). Okuma işlemleri (Input ve A_OUT değişkenleri) için READ eylemi tanımlanır.
▷ OpcUa Item düğümünde Item öğesini belirtin. Erişilecek değişkenin NodeId öğesinden oluşur.
Item UaExpert İstemcisinde alınabilir.

Örnek:
Input: ns=4;s=|var|CODESYS Control for Linux ARM64 SL.Application.PLC_PRG.Input
A_OUT: ns=4;s=|var|CODESYS Control for Linux ARM64 SL.Application.PLC_PRG.A_OUT
Type alanında değişkenin türü tanımlanmalıdır:
Input: Boolean
A_OUT: Int16