Ethernet/IP protokolü nasıl çalışır?

Ethernet/IP protokolü nasıl çalışır?

Bir komutun PLC'den sahaya yolculuğu

EtherNet/IP, CIP uygulama hizmetlerini standart Ethernet ve IP tabanlı ağlar üzerinde taşır. PLC'nin sürücüye hız referansı göndermesi, uzak I/O'dan sensör bilgisi alması veya cihazın hata kaydını okuması aynı altyapıda gerçekleşebilir. Ethernet altyapısı paketleri iletir; CIP ise cihaz verisinin nasıl düzenleneceğini, hangi hizmetlerle erişileceğini ve bağlantıların nasıl yönetileceğini tanımlar.

Editörün notu: Unicast/multicast, cyclic/change-of-state ve exclusive owner/input-only/listen-only aynı sınıflandırmanın seçenekleri değildir. İlki veri dağıtım biçimini, ikincisi veri üretimini tetikleyen koşulu, üçüncüsü I/O bağlantısının sahiplik ve veri alışverişi rolünü anlatır. Polling ise uygulamanın düzenli sorgulama yöntemi olabilir; bunlara eşdeğer üçüncü bir dağıtım türü değildir.

Ethernet, IP, TCP/UDP ve CIP farklı görevler üstlenir

Ethernet yerel ağdaki çerçeve iletimini, IP adreslemeyi ve ağlar arası paket yönlendirmeyi sağlar. TCP veya UDP uygun taşıma yolunu oluşturur; CIP endüstriyel uygulamanın veri ve hizmet modelini belirler. Katmanlı yapı sayesinde aynı fiziksel ağda başka uygulama protokolleri de bulunabilir. Bununla birlikte her Ethernet cihazı EtherNet/IP konuşmaz.

Fiziksel bağlantı, switch'ler ve ağ adresleri uygun olmalıdır. Bir cihazın ping yanıtı vermesi, CIP hizmetlerinin erişilebilir veya I/O verisinin doğru olduğunu tek başına göstermez. Paket iletimi, protokol bağlantısı ve makine davranışı farklı doğrulama düzeyleridir.

Cihaz verisi nesneler ve hizmetlerle tanımlanır

CIP, cihazı class, instance, attribute ve service kavramlarıyla modeller. Class aynı tür nesnelerin sınıfıdır; instance bu sınıfın belirli bir örneğidir; attribute nesnenin bir özelliğini veya durumunu taşır. Service ise okuma, yazma veya desteklenen başka bir işlemi belirtir. Böylece istek yalnız “bir sayı gönder” demez; hangi nesnede hangi işlemin yapılacağını tanımlar.

Identity Object cihaz kimliği için, Assembly Object ise birlikte aktarılacak verileri gruplamak için kullanılan örneklerdir. Üreticiye özgü nesneler ve hizmetler de bulunabilir. Bu nedenle iki cihazın uyumluluğu, yalnız EtherNet/IP adını taşımalarına değil, gerekli nesne, hizmet, rol ve veri yapısını desteklemelerine bağlıdır.

Explicit mesajlaşma: belirli bir isteğe yanıt

Explicit mesajlaşmada istemci bir CIP isteği gönderir, sunucu bu isteği işler ve sonuç veya hata bilgisi döndürür. Örneğin desteklenen bir parametrenin değeri okunabilir ya da izin verilen bir ayar değiştirilebilir. Nesne tabanlı erişimde class, instance, attribute ve service bilgileri kullanılabilir; uygun kontrolörlerde etiket erişimi için farklı, desteklenen hizmetler bulunabilir.

Bu yöntem cihaz ayarı ve tanılamada yararlıdır. Ancak explicit mesajlaşma yalnız “çok seyrek kullanılan iletişim” anlamına gelmez: HMI/PC yazılımları düzenli sorgular da gönderebilir. Çok sayıda nesneyi tek tek sorgulamanın kontrolör ve ağ kaynaklarına etkisi değerlendirilmelidir. Connected ve unconnected explicit mesajlar da CIP bağlantısı bakımından farklıdır; bu ayrım, TCP kullanılıp kullanılmadığıyla aynı değildir.

Implicit I/O: önceden tanımlanmış verinin aktarılması

Implicit I/O mesajlarında aktarılacak verinin yapısı bağlantı kurulurken belirlenir. Sonraki paketlerde her alan için yeniden bir parametre okuma isteği göndermek gerekmez. Paketler bağlantı kimliği ve ilgili kontrol bilgileriyle işlenir; alıcı, yük içindeki alanların anlamını yapılandırılmış veri düzeninden bilir.

Bu yapı producer/consumer, yani üretici/tüketici modeliyle çalışır. Veri üreticisi, bağlantının desteklediği üretim koşuluna göre veriyi gönderir; uygun tüketici bu veriyi alır. Her I/O güncellemesinin, PLC'nin ayrı bir okuma sorusuna yanıt olarak gerçekleştiği varsayılmamalıdır. Bir üreticinin verisini birden fazla tüketicinin alması da desteklenen bağlantı ve dağıtım biçimine bağlıdır.

Yaygın bir I/O bağlantısı nasıl kurulur?

Klasik, şifrelenmemiş Full EtherNet/IP akışında scanner/originator hedef adapter'a erişir, TCP bağlantısını ve kapsülleme oturumunu oluşturur. Ardından Forward_Open gibi CIP bağlantı yönetimi hizmetleriyle I/O bağlantısı istenir. Assembly noktaları, veri boyutları, zamanlama ve bağlantı türü gibi bilgiler değerlendirilir; uygun istek kabul edildiğinde I/O aktarımı başlar.

Bu yaygın yapıda TCP 44818 mesajlaşma ve bağlantı yönetiminde, UDP 2222 I/O verisinde kullanılır. UDP 44818 ise ListIdentity gibi keşif işlemlerinde görülebilir. Bilinen IP adresiyle erişim için her seferinde keşif yapılması gerekmez. Portların görevleri taşıma protokolüyle birlikte okunmalıdır; farklı taşıma profilleri ve güvenlik uygulamaları ayrıca değerlendirilir.

TCP bağlantısı, EtherNet/IP kapsülleme oturumu ve CIP I/O bağlantısı aynı şey değildir. UDP taşımasının bağlantısız olması, uygulama katmanında izlenen bir CIP I/O bağlantısı bulunmadığı anlamına gelmez. Bağlantı kimlikleri, zaman aşımı ve üretici/tüketici ilişkisi bu düzeyde yönetilir.

Dağıtım, tetikleme ve sahipliği ayrı seçin

Unicast veriyi bir hedefe, multicast ise ilgili gruba dağıtabilir. Bu seçim desteklenen bağlantıya göre yapılır. Multicast kullanılan ağlarda grup üyeliği, IGMP snooping ve querier düzeni değerlendirilir. Unicast seçimi de cihazın ve uygulamanın desteklediği sınırlar içinde kalmalıdır.

Cyclic üretimde veri belirlenen aralıklarla; change-of-state üretimde uygun değişim koşullarına göre gönderilir. Desteklenen bağlantılarda üretim, uygulama tarafından da tetiklenebilir. Bağlantıyı canlı tutan ek üretim ve zamanlama kuralları da bulunabilir. RPI, istenen paket aralığıdır; toplam tepki süresiyle aynı değildir. Örneğin 10 ms RPI ve 20 ms PLC görevi bulunan bir sistemin uçtan uca tepkisi yalnız RPI'den çıkarılamaz.

Exclusive owner bağlantısı ilgili çıkış verisinin kontrol sahipliğini düzenler. Input-only bağlantısı çıkış verisi kontrol etmeden giriş verisini alabilir. Listen-only, gerekli başka bir bağlantıya bağlı dinleme biçimidir. Bunların destek ve bağımlılık koşulları cihaz belgesinden kontrol edilir; aynı çıkış alanına birden fazla denetleyicinin serbestçe yazabileceği varsayılmaz.

Assembly, EDS ve cihaz profili ne işe yarar?

Assembly, birlikte taşınan uygulama verisini gruplar. Örneğin bir sürücünün çıkış verisinde kontrol kelimesi ve hız referansı; giriş verisinde durum kelimesi ve gerçek hız bulunabilir. PLC scanner açısından çıkış PLC'den cihaza, giriş cihazdan PLC'ye akan veridir. Konfigürasyonda instance numaraları, veri uzunluğu, veri tipleri ve ölçekler doğru eşleştirilmelidir.

EDS, Electronic Data Sheet, cihazın özelliklerini ve yapılandırma seçeneklerini tanıtan elektronik veri sayfasıdır. Mühendislik aracı entegrasyonda bu bilgiden yararlanabilir; EDS bir firmware veya PLC programı değildir. Cihaz profili ise belirli cihaz türlerinin ortak nesne ve davranışlarını tanımlar. Profil, seçenek, firmware ve uygunluk kapsamı yine gerçek ürün düzeyinde kontrol edilir.

Örnek: PLC, sürücü ve üst sistem

Uygun bir PLC, scanner olarak bir hız kontrol cihazına bağlansın. PLC uygulaması izin koşulları sağlandığında kontrol kelimesini ve hız referansını çıkış alanına yazar. Haberleşme altyapısı bu alanı I/O bağlantısıyla taşır. Sürücü veriyi alır, desteklenen kontrol profiline göre yorumlar ve kendi kontrol algoritmasıyla motoru yönetir.

Paketin ulaşması ile motorun istenen hareketi yapması farklı aşamalardır. Komut kaynağı, çalışma izinleri, referans ölçeği ve sürücü durumu uygun olmalıdır. Sürücü durum ve gerçek hız bilgisini PLC'ye geri üretir. Bir SCADA sistemi de desteklenen sürücü veya ara katman üzerinden verileri izleyebilir; her üst sistemin saha I/O scanner'ı olması gerekmez.

Bir robot uygulamasında da benzer şekilde hazır, meşgul, tamamlandı veya hata bilgileri aktarılabilir. Universal Robots'un ilgili kılavuzu robotu adapter, PLC'yi scanner olarak ele alır. Endüstriyel kullanımda veri alışverişinin kapsamı, cihazın dışarıya açtığı alanlar ve komut kabul koşullarıyla sınırlıdır; bütün iç işlevler kendiliğinden erişilebilir olmaz.

Gerçek zamanlı davranış bütün sistemle oluşur

UDP kullanmak, düşük RPI seçmek veya QoS açmak tek başına zamanlama garantisi vermez. Cihazın veri üretimi, PLC görevleri, switch kuyrukları, bağlantı kapasitesi ve ağ yükü birlikte değerlendirilir. Anahtarlamalı tam çift yönlü Ethernet, eski paylaşımlı ortamlardaki çarpışma sorununu ortadan kaldırır; fakat kuyruk gecikmesi ve kaynak yetersizliği yine oluşabilir.

QoS, uygun ağ bölümleme ve kapasite planlaması gerekli performansı destekleyebilir. Hattın, yıldızın veya ağacın yapısı cihaz özelliklerine göre seçilir. DLR halkasında ise uygun katılımcılar ve ring supervisor gerekir. DLR bir bağlantı arızasından toparlanmaya yardımcı olur; her iki portlu cihazı halka yapmaya veya bütün haberleşme kesintilerini ortadan kaldırmaya eşdeğer değildir.

Güvenlik, veri geçerliliği ve tanılama

CIP Security, destekleyen ve uygun yapılandırılmış cihazlarda kimlik doğrulama ve veri bütünlüğü gibi korumalar; seçilen politika kapsamında gizlilik sağlayabilir. Bu güvenlik özellikleri her cihazda varsayılan değildir. CIP Safety ise güvenlikle ilgili iletişim için ayrı işlevler sunar; siber güvenlikle aynı konu değildir. Erişim denetimi ve ağ bölümleme sistem tasarımının parçasıdır.

Bağlantı zaman aşımı, hatalı veri eşlemesi veya cihaz arızasında uygulama uygun tepki vermelidir. Son değerin bellekte kalması, yeni ve geçerli veri alındığını göstermez. Tanılama için bağlantı durumu, CIP hata bilgileri ve ağ sayaçları birlikte izlenir. Özel yazılımda da veri kalitesi ve yeniden bağlanma davranışı tasarlanmalıdır. Çalışan bir sistem; paket iletimini, doğru veri anlamını ve gereken makine tepkisini birlikte doğrular.