Modbus, bir ana cihazın (master/istemci) sahadaki bağımlı cihazlara (slave/sunucu) sırayla soru sorup numaralı yazmaçlardaki değerleri okuduğu ya da yazdığı, açık ve lisans bedelsiz bir endüstriyel haberleşme protokolüdür. RS-485 hattı üzerinde çalışan sürümü Modbus RTU, Ethernet üzerinden çalışan sürümü Modbus TCP'dir. Enerji analizörü, sayaç, invertör, sürücü ve PLC okumada en yaygın yöntemlerden biridir.
Modbus nedir ve neden hâlâ her panoda karşınıza çıkıyor?
Bir fabrikanın elektrik panosunu açtığınızda enerji analizörlerinin arkasında iki telli bir hat görürsünüz; bir binanın klima santralinde, bir güneş santralinin invertöründe ya da bir pompa istasyonunun frekans sürücüsünde de aynı hat vardır. Bu hattın konuştuğu dil çoğu zaman Modbus'tur. Yeni bir izleme projesi başladığında ilk soru bu yüzden "cihazlarınız Modbus destekliyor mu?" olur.
Protokolün bu kadar yaygın olmasının nedeni sadeliği ve açıklığıdır. Modbus Organization'ın SSS sayfasına göre Modbus, bugünkü adıyla Schneider Electric olan Modicon tarafından 1979'da piyasaya sürüldü; şartname ücretsiz indirilebiliyor ve Modbus ile Modbus TCP/IP'yi kullanmak için lisans bedeli ödenmiyor. Aynı sayfa, Modbus TCP/IP için 502 numaralı Ethernet portunun ayrıldığını belirtiyor.
Sadelik aynı zamanda sınırdır. Modbus bir değerin adını, birimini ya da ölçeğini taşımaz; yalnızca "40001 numaralı yazmaçta 2315 var" der. Bu değerin 231,5 volt mu yoksa 23,15 amper mi olduğunu cihazın kılavuzundaki yazmaç tablosu söyler. Sahadaki sorunların çoğu protokolden değil, bu tablonun yanlış okunmasından çıkar.
Yanlış kurulmuş bir Modbus hattının maliyeti
Modbus projelerinde kayıp genellikle görünmez başlar: bir analizör ara ara cevap vermez, bir değer on kat büyük görünür, gece yarısı bir sayaç sıfıra düşer. Sonuçta ya kararlar hatalı veriyle alınır ya da ekip veriye güvenmeyi bırakıp elle ölçüme döner.
Siemens'in The True Cost of Downtime 2024 raporuna göre büyük üretim tesisleri ayda ortalama 25 plansız duruş yaşıyor ve ayda 27 saat üretim kaybediyor.
Bu duruşların erken işaretleri çoğu zaman bir sürücünün akımında, bir motorun sıcaklığında ya da bir pompanın basıncında zaten vardır. O işaretler Modbus üzerinden düzenli ve doğru okunmuyorsa kestirimci bakımın ya da alarm sisteminin besleneceği veri de yoktur.
İkinci maliyet güvenliktir. Modbus'ta kimlik doğrulama ve şifreleme yoktur; ağa erişen herkes okuma ve yazma komutu gönderebilir. Dragos'un FrostyGoop analizine göre bu zararlı yazılım endüstriyel kontrol cihazlarıyla doğrudan 502 numaralı port üzerinden Modbus TCP ile konuşuyor. Aynı analize göre Ukrayna'nın Lviv kentindeki bir bölgesel ısıtma şirketine yapılan saldırıda saldırganlar büyük olasılıkla dışa açık bir yönlendiricideki açıktan ağa girdi; ağ yeterince bölümlenmemişti ve ısıtma kontrol cihazlarına gönderilen Modbus komutları müşterilerin iki gün ısıtmasız kalmasına yol açtı.
Modbus nasıl çalışır: yazmaçlar ve fonksiyon kodları
Modbus'ta iletişimi her zaman ana cihaz başlatır; bağımlı cihaz yalnızca kendisine sorulana cevap verir. Veriler dört tabloda tutulur:
| Veri tablosu | Boyut | Erişim | Tipik içerik | Okuma / yazma fonksiyon kodu |
|---|---|---|---|---|
| Coil (bobin) | 1 bit | Okuma ve yazma | Röle, çalıştır/durdur komutu | 01 / 05, 15 |
| Discrete input | 1 bit | Yalnızca okuma | Kapı kontağı, arıza girişi | 02 |
| Input register | 16 bit | Yalnızca okuma | Ölçülen gerilim, sıcaklık, debi | 04 |
| Holding register | 16 bit | Okuma ve yazma | Ayar değeri, sayaç, parametre | 03 / 06, 16 |
Cihaz kılavuzlarında adresler iki farklı biçimde yazılır. "40001" gösterimi tablo tipini ilk rakamla anlatır ve 1'den sayar; protokolün kendisi ise adresi 0'dan başlatır. Bu yüzden 40001, telde 0 adresine karşılık gelir. Yazılımda bir kaydırma yapılmazsa tüm değerler bir yazmaç kayar ve ekran anlamsız sayılarla dolar.
16 bitlik bir yazmaç, işaretsiz okunursa 0–65535, işaretli okunursa −32768 ile 32767 arasında bir tam sayı taşır. Daha büyük sayaçlar ya da ondalıklı değerler iki yazmaçla (32 bit) gönderilir; hangi yazmacın önce geldiği (word order) üreticiden üreticiye değişir. Enerji sayacında kWh değeri ters sırayla okunursa milyonlarca kilovatsaatlik saçma bir sonuç çıkar ve fark ilk faturada anlaşılır.
Modbus RTU ile Modbus TCP arasındaki fark
İki sürüm aynı veri modelini ve aynı fonksiyon kodlarını kullanır; farklı olan, mesajın nasıl taşındığıdır:
| Ölçüt | Modbus RTU | Modbus TCP |
|---|---|---|
| Fiziksel katman | Seri hat, çoğunlukla RS-485 (iki tel + referans) | Ethernet, Wi-Fi veya hücresel ağ üzerinden TCP/IP |
| Adresleme | Hat üzerinde 1–247 arası cihaz adresi | IP adresi + birim tanımlayıcı (Unit ID) |
| Hata kontrolü | Her mesajda CRC | TCP katmanına bırakılır |
| Aynı anda sorgu | Hatta tek konuşma, sırayla | Birden fazla istemci, paralel bağlantılar |
| Hız sınırı | Baud hızı (çoğunlukla 9600–115200) ve hat uzunluğu | Ağ bant genişliği, pratikte cihazın cevap süresi |
| Tipik yer | Pano içi analizör, sürücü, sayaç, sensör | PLC, ağ geçidi, SCADA sunucusu, invertör |
| Sık hata | Sonlandırma direnci, polarite, parite uyuşmazlığı | Yanlış Unit ID, açık bırakılan 502 portu |
Cihazlar aynı panoda birbirine yakınsa, yalnızca seri port sunuyorsa ve veriyi tek bir sistem okuyacaksa RTU yeterlidir. Cihazlarda zaten Ethernet varsa, aynı veriyi birden fazla sistem okuyacaksa ya da mesafe seri hattı zorluyorsa TCP daha doğru seçimdir. Sahada ikisi çoğu zaman birlikte çalışır. Bir Modbus ağ geçidi pano içindeki RTU hattını okur, veriyi Ethernet tarafında Modbus TCP ya da MQTT olarak sunar. Ağ geçidinin arkasındaki cihazlara Unit ID ile ulaşılır; bu değer RTU hattındaki cihaz adresine denk gelir.
Modbus'un tamamlayıcıları da vardır. Anlamı ve güvenliği veriyle birlikte taşımak gerektiğinde OPC UA'nın bilgi modeli, çok sayıda uzak sahadan buluta veri taşımada MQTT protokolü öne çıkar.
Bina tarafında ise HVAC cihazları çoğunlukla BACnet protokolünü de konuşur; aynı binada Modbus sayaçlar ile BACnet kontrol cihazları yan yana bulunur.
Sahada güvenilir Modbus entegrasyonu: 7 adım
Modbus'u "bağladık, çalışıyor" düzeyinden yıllarca sorunsuz işleyen bir veri kaynağına dönüştürmek için şu sırayı öneriyoruz:
- Cihaz ve yazmaç envanteri çıkarın. Her cihazın markası, modeli, yazılım sürümü, adresi ve kılavuzdaki yazmaç tablosu tek listeye alınır. Ölçek çarpanı, birim, veri tipi ve word order her değer için yazılır.
- Hat topolojisini düzeltin. RS-485 hattı yıldız değil zincir (daisy chain) çekilir, iki uca sonlandırma direnci takılır, bükümlü ve ekranlı kablo kullanılır. Hat başına cihaz sayısı ve uzunluk sınırları kontrol edilir.
- Seri ayarları standartlaştırın. Aynı hattaki tüm cihazlarda baud hızı, parite ve stop biti aynı olmalıdır; her adres yalnızca bir kez kullanılır.
- Sorgu planı yapın. Ardışık yazmaçlar tek sorguda toplu okunur, hızlı değişen değerlerle yavaş değişenler farklı aralıklarla sorgulanır. Zaman aşımı ve yeniden deneme sayısı cihazın gerçek cevap süresine göre ayarlanır.
- Değerleri doğrulayın. Ekrandaki gerilim, akım ve sayaç değerleri cihazın kendi ekranı ya da pens ampermetre ile karşılaştırılır. Tutmayan değerin nedeni neredeyse her zaman ölçek, offset ya da word order hatasıdır.
- Ağı ayırın ve yazmayı kısıtlayın. Modbus TCP cihazları OT ağında ayrı bir segmentte tutulur, 502 portu internete asla açılmaz, uzaktan erişim VPN ile yapılır. Yazma yetkisi yalnızca gereken istemciye verilir.
- Veriyi kaydedin ve izleyin. Okunan değerler zaman damgasıyla zaman serisi veritabanına yazılır; iletişim hataları da ayrı bir metrik olarak izlenir.
Canlıya almadan önce şu kontrol tablosuyla hattı gözden geçirin:
| Kontrol | Sorulacak soru | Yanlışsa ne olur? |
|---|---|---|
| Adres kaydırma | 40001 telde 0 olarak mı gönderiliyor? | Tüm değerler bir yazmaç kayar |
| Ölçek | Değer 10'a, 100'e mi bölünmeli? | Gerilim 2315 V görünür |
| Word order | 32 bitlik sayaç doğru sırayla mı birleşiyor? | Enerji tüketimi anlamsız çıkar |
| Sonlandırma | Hattın iki ucunda direnç var mı? | Aralıklı CRC hataları, cevap vermeyen cihaz |
| Erişim | 502 portu dışarıdan erişilebilir mi? | Yetkisiz okuma ve yazma riski |
Eski makinelerde PLC ya da Modbus portu hiç yoksa ek giriş modülü veya akım sensörüyle başlamak gerekir; bunu eski makineleri dijitalleştirme rehberinde anlattık. Güvenlik tarafının ayrıntıları ise OT güvenliği ve SCADA yazımızda.
Digital Bridge'de Modbus entegrasyonunu nasıl yapıyoruz?
İşe keşif ve ihtiyaç analiziyle başlıyoruz. Endüstri 4.0 projelerinde ücretsiz saha değerlendirmesi yapıyor, panolardaki cihazları, mevcut RS-485 hatlarını, PLC'leri ve ağ yapısını yerinde çıkarıyoruz. Hangi verinin hangi karar için gerektiğini ekiple birlikte belirledikten sonra kapsamı, aşamaları ve bedeli net yazılı bir teklif hazırlıyoruz.
Pilot aşamasında bir pano ya da bir hat seçip veriyi uçtan uca doğruluyoruz. Siemens, Allen-Bradley, Mitsubishi, Schneider ve diğer markalara Modbus, OPC-UA, Profibus ve Ethernet üzerinden bağlanarak veriyi SCADA ve HMI ekranlarına taşıyoruz. Firmaya özel geliştirdiğimiz SCADA'da kaynak kodu müşteriye aittir ve ek lisans bedeli çıkmaz.
Enerji analizörlerinden okunan tüketim, güç faktörü ve reaktif değerler enerji izleme ve yönetimi çözümüne akar; bu verinin fabrikada nasıl kullanıldığını fabrikada enerji izleme yazısında anlattık. Binalarda akıllı bina ve BMS projelerimizde Modbus'u BACnet, KNX ve DALI ile aynı yazılımda birleştiriyoruz.
Hazır ağ geçidinin yetmediği durumlarda cihaz imalatı ve IoT ekibimiz sahaya uygun kart ve yazılımı geliştiriyor; bu sürecin aşamaları IoT cihaz geliştirme süreci yazımızda. Modbus'tan gelen veriyi ERP ve diğer iş yazılımlarıyla buluşturmak ise sistem entegrasyonları hizmetimizin konusu. OT ağ ayrımı ve uzaktan erişim tasarımında siber güvenlik ekibimiz de projeye dahil oluyor.
Dağınık sahalarda, örneğin pompa istasyonlarının uzaktan izlenmesinde, Modbus hattı sahadaki ağ geçidinde kalır ve veri merkeze hücresel bağlantıyla taşınır.
Nereden başlamalı?
Modbus projesi tüm tesisi aynı anda bağlamayı gerektirmez. Sorunun en çok hissedildiği bir pano, iyi hazırlanmış bir yazmaç listesi ve doğrulanmış birkaç değer, üzerine yeni cihaz eklenebilecek güvenilir bir temel kurar. İlgili rehberlerin tamamı için IoT ve donanım yazılarımıza göz atabilirsiniz.
Cihazlarınızın Modbus üzerinden nasıl okunacağını ve verinin nereye akacağını birlikte planlamak için bizimle iletişime geçin; saha değerlendirmesinde envanteri çıkarıp ilk pilot için somut bir kapsam öneriyoruz.