Blog · Mühendislik

Tek SCADA, Birden Fazla PLC Protokolü:
Modbus TCP Protocol Gateway Uygulaması

Makine LAN'ındaki Siemens S7 ve Modbus TCP cihazlarından veri okuyun, seçilen değerleri SX-IO içinde ortak tag modeline dönüştürün ve SCADA'ya sabit bir Modbus TCP register haritası üzerinden sunun.

Ağustos 2026 · 8 dk okuma
Bağlantı Mühendislik

Bir üretim hattı nadiren ömrü boyunca tek bir PLC ailesiyle çalışır. Ana makineyi bir Siemens PLC kontrol ederken paketleme ünitesi, yardımcı sistem veya eski bir alt sistem verilerini Modbus TCP üzerinden sunabilir. Bu durumda SCADA tarafında her veri kaynağı için ayrı driver, bağlantı ve adresleme yapısı gerekir.

Protocol Gateway, SCADA tarafına daha sade bir arayüz sunar. Bu örnekte SMX-RNS20, SX-IO üzerinden makine LAN'ındaki iki PLC'yi okur, seçilen değerleri ortak bir tag modeline dönüştürür ve SCADA tarafındaki ağda tek bir Modbus TCP server üzerinden yayınlar.

SMX-RNS20'nin makine LAN'ındaki Siemens S7 ve Modbus TCP PLC'leri okuyarak SCADA'ya sabit bir Modbus TCP register haritası yayınlaması

Örnek Mimari

Makine LAN'ında iki bağımsız veri kaynağı bulunuyor: 192.168.10.10 adresinde bir Siemens S7 PLC ve 192.168.10.20 adresinde bir Modbus TCP PLC. SX-IO, native protocol driver'ları üzerinden her iki cihaza bağlanır ve yalnızca SCADA'nın ihtiyaç duyduğu değerleri polling ile okur.

SCADA tarafında ise tek bağlantı bulunur: SMX-RNS20'nin SCADA ağındaki IP adresi ve TCP 502 portu. SCADA'nın S7 driver kullanmasına veya PLC'lere doğrudan bağlanmasına gerek kalmaz. Protokole özgü tüm adresleme SX-IO içinde tutulur.

Burada WAN, açık internet anlamına gelmez. SMX-RNS20'nin tesis veya SCADA ağına bağlı arayüzüdür. Modbus TCP 502 portu doğrudan internete açılmamalıdır.

Basit Bir Protokol Dönüştürücüden Daha Fazlası

Basit bir protokol dönüştürücü, gelen istekleri anlık olarak diğer protokole çevirir. SX-IO ise önce kendi canlı tag modelini oluşturur. SCADA arayüzünü öngörülebilir yapan katman budur:

Her PLC kendi native protokolünü kullanır

Siemens PLC, S7 adresleme ile; diğer PLC ise Modbus function code ve register adresleriyle okunur.

Değerler isimlendirilmiş, tipli tag yapısına dönüşür

Kaynak adresler; tag adı, veri tipi, ölçeklendirme ve quality bilgisi içeren ortak modele aktarılır.

SCADA için kontrollü bir register haritası oluşturulur

Yalnızca seçilen tag değerleri yayınlanır. Başka eşlemeler silinse bile mevcut register adresleri değişmez.

Adım 1: Tag Modelini Oluşturun

Her PLC için bir driver ekleyin; ardından her değerin kaynak adresini ve veri tipini tanımlayın. Küçük bir örnek aşağıdaki gibi olabilir:

SX-IO tag Kaynak Adres Veri tipi
line_speed Siemens S7 DB1,REAL4 Float
tank_level Modbus TCP FC3,0 UInt16
pump_running Modbus TCP FC3,10,3 Boolean

S7-1200 ve S7-1500 PLC'lerde PUT/GET communication izni etkinleştirilmelidir. Data block'lar ayrıca mutlak (absolute) adresleme kullanmalıdır; optimize edilmiş DB'nin sabit bir byte düzeni yoktur. I, Q ve M alanlarına ise mutlak adresleme ile erişilebilir.

Adım 2: Sabit Register Haritasını Oluşturun

SX-IO Modbus TCP server, açıkça tanımlanan bir register haritası kullanır. Yeni tag eklenirken bir sonraki boş adres otomatik seçilebilir; ancak kaydedilen adres daha sonra değişmez. Bir eşleme silindiğinde, arkasındaki tüm SCADA adreslerini sessizce kaydırmak yerine register haritasında boşluk bırakılır.

Register Yayınlanan değer Format Uzunluk
0–1 line_speed Float 2 register
2 tank_level UInt16 × 10 1 register
3 pump_running Bool 1 register
1000 Heartbeat UInt16 1 register
1001 Quality bit 0–15 Bit field 1 register

SX-IO, zero-based register adresleme kullanır. Bazı SCADA yazılımları register 0'ı holding register 40001 olarak gösterir. Devreye alma öncesinde SCADA driver'ın kullandığı adresleme biçimini kontrol edin.

Adım 3: SCADA Bağlantısını Yapılandırın

SCADA Modbus TCP client'ı, SMX-RNS20'nin SCADA tarafındaki IP adresine ve TCP 502 portuna yönlendirin. Yayınlanan aynı değerler FC3 ile holding register veya FC4 ile input register olarak okunabilir. Veri formatı, scale, byte order ve word order ayarlarını SX-IO'da tanımlanan register haritasıyla eşleştirin.

Bu arayüz okuma amaçlı tasarlanmıştır: SCADA güncel değerleri alır, ancak gateway üzerinden PLC'ye kontrol komutu yazmaz. Makine kontrolü; timing, interlock ve safety logic ile birlikte ait olduğu yerde, PLC içinde kalır.

Değerleri Quality Bilgisi Olmadan Okumayın

Modbus register tek başına sıfır değerinin gerçek proses değeri mi, yoksa başarısız bir PLC okumasının sonucu mu olduğunu gösteremez. Bu nedenle SX-IO, register haritasında durum ve geçerlilik bilgisi için iki alan ayırır:

Register 1000 — heartbeat. Her SX-IO polling çevriminde artar. Değişmesi duran sayaç, yayınlanan verinin artık güncellenmediğini gösterir.

Register 1001 ve sonrası — quality. Her eşlenen tag için register adresine göre sıralanmış bir quality bit bulunur. Quality bit değeri 1 ise güncel kaynak okuması geçerlidir.

Kaynak cihazdan bir değer okunamazsa ilgili data register sıfır yayınlanır ve quality bit temizlenir. SCADA, her sayısal değeri geçerli kabul etmek yerine quality bit ve heartbeat bilgisini birlikte değerlendirmelidir.

Ağ Bağlantısı Kesilirse Ne Olur?

1
PLC'lerden biri erişilemez duruma gelir

İlgili tag değerlerinin quality bilgisi geçersiz olur. Diğer PLC'den veri toplama ve SX-IO'nun kalan fonksiyonları çalışmaya devam eder.

2
SCADA ağı kesilir

SX-IO yerel veri toplama, alarm, trend ve arşiv kaydı fonksiyonlarına devam eder. Bağlantı geri geldiğinde Modbus yeniden güncel değerleri sunar.

3
SCADA kesinti süresindeki Arşiv Verisini ister

Modbus TCP canlı register arayüzüdür; Arşiv Verisi aktarım kanalı değildir. Arşiv kayıtları SQL, MQTT veya API gibi uygun bir entegrasyon üzerinden alınmalıdır.

Modbus'ı Korumalı Bir OT Servisi Olarak Değerlendirin

Klasik Modbus TCP'de yerleşik kimlik doğrulama veya şifreleme bulunmaz. SCADA tarafındaki arayüzü kontrollü bir tesis ağına bağlayın, yalnızca SCADA IP adresinin TCP 502 portuna erişmesine izin verin ve bu portu diğer tüm ağ bölgelerinden engelleyin.

Uzaktan erişim için ayrı ve şifreli bir erişim yolu kullanın. Modbus TCP'yi public IP üzerinden doğrudan yayınlamayın. Modbus Organization güncel terminolojide client ve server terimlerini kullanır; eski SCADA yazılımlarında aynı roller hâlâ master ve slave olarak adlandırılabilir.

Bu Mimari Ne Zaman Uygundur?

Mevcut SCADA Modbus TCP destekliyor, ancak her PLC ailesi için ayrı driver içermiyorsa.
Makine veya üretim hücresinde farklı üreticilere ait PLC'ler bulunuyorsa.
SCADA yalnızca seçilmiş ve kontrollü bir grup üretim değerini okuyacaksa.
Entegrasyon, sonraki tag değişikliklerinden etkilenmeyen sabit bir register haritası gerektiriyorsa.
PLC ağlarının tesis ağından ayrılmış kalması isteniyorsa.

Bu yapı safety communication, deterministik kontrol veya Arşiv Verisi aktarım arayüzünün yerine geçmez. Bu sınırlar içinde kullanıldığında SMX-RNS20, farklı PLC protokollerinin bulunduğu bir ağı SCADA için tek, temiz ve sürdürülebilir bir Modbus TCP veri kaynağına dönüştürür.

Bloga Dön

Farklı PLC Protokolleri İçin Tek SCADA Arayüzüne mi İhtiyacınız Var?

Hangi PLC'lerden hangi değerleri yayınlamak istediğinizi paylaşın. Tag modeli ve register haritasını birlikte oluşturalım.