İçeriğe geç

Sözlük · Protokol

Modbus nedir?

Modbus, cihazların register adı verilen 16 bitlik veri alanlarını master/slave (istemci/sunucu) mantığıyla okuyup yazdığı, seri hatta (RTU) veya Ethernet üzerinden (TCP) çalışan açık bir haberleşme protokolüdür.

VOLSOFT mühendislik ekibi ·

Modbus, sahadaki cihazların verilerini register adı verilen 16 bitlik alanlarda tuttuğu ve bir master’ın (istemci) bu alanları slave’lerden (sunucu) sorgu-cevap mantığıyla okuyup yazdığı açık bir haberleşme protokolüdür. Seri hatta Modbus RTU, Ethernet üzerinde Modbus TCP olarak çalışır. Basit ve lisanssız olduğu için PLC’lerde, enerji analizörlerinde, sürücülerde ve sensörlerde hâlâ en yaygın protokollerden biridir.

Modbus ne işe yarar?

Modbus’ın asıl işi, farklı üreticilerin cihazlarından ortak bir yolla değer okumaktır. Bir enerji analizöründen akım ve güç, bir sürücüden devir ve arıza kodu, bir PLC’den sayaç değeri aynı mantıkla alınır. Bu yüzden SCADA, izleme ekranları ve veri toplama yazılımları neredeyse her zaman Modbus desteğiyle gelir.

Nasıl çalışır?

Haberleşmeyi her zaman master başlatır: “şu adresten şu kadar register oku” der, slave cevap verir. Slave kendiliğinden veri göndermez. Veriler dört tipte tutulur:

Veri tipiBoyutErişimOkuma / yazma kodu
Coil1 bitOkuma-yazma01 / 05, 15
Discrete input1 bitSalt okunur02
Input register16 bitSalt okunur04
Holding register16 bitOkuma-yazma03 / 06, 16

05 ve 06 tek bir coil veya register yazar, 15 ve 16 ise birden çok değeri tek mesajda yazar. Seri hatta her slave’in 1 ile 247 arasında bir adresi olur; 0 adresi yayın (broadcast) için ayrılmıştır.

Modbus RTU ve Modbus TCP farkı

Modbus RTUModbus TCP
Fiziksel katmanRS-485 (bazen RS-232)Ethernet
Hata kontrolüCRC-16TCP’nin kendi kontrolü, mesajda CRC yok
AdreslemeSlave adresi (1–247)IP adresi + unit identifier
Port—502
EşzamanlılıkHatta tek master, sırayla sorguBirden çok istemci bağlanabilir

RTU hattında aynı anda tek sorgu yürüdüğü için cihaz sayısı ve baud hızı, okuma periyodunu doğrudan belirler. Seri cihazları Ethernet ağına almak için Modbus gateway (RTU–TCP dönüştürücü) kullanılır.

Veri dijital olarak toplanırken nelere dikkat edilmeli?

  • Register haritası: Cihazın dokümanındaki adreslerin 0 tabanlı mı 1 tabanlı mı verildiği kontrol edilmelidir. Bir kayma, değerin tamamen yanlış okunmasına yol açar.
  • 32 bit değerler: Float ve 32 bit tamsayılar iki register’a yayılır. Word ve byte sırası üreticiye göre değişir; ilk kurulumda bilinen bir değerle doğrulanmalıdır.
  • Ölçekleme: Birçok cihaz değeri 10 veya 100 ile çarpılmış tamsayı olarak verir. Birim ve çarpan, veri modeline baştan yazılmalıdır.
  • Okuma periyodu: Gereğinden sık sorgulamak hattı doldurur. Ardışık register’ları tek istekte okumak (03 ile en fazla 125 register) yükü azaltır.
  • Zaman damgası ve kalite: Okunamayan değer son okunan değer gibi saklanmamalı, iletişim hatası ayrı işaretlenmelidir.

VOLSOFT, Modbus cihazlarından veri toplamayı Proxus platformu üzerinde kurar.

Sıkça sorulan sorular

Merak edilenler

Modbus TCP hangi portu kullanır?

Modbus TCP varsayılan olarak 502 numaralı TCP portunu kullanır. Cihazda farklı bir port tanımlı değilse istemci bu porta bağlanır.

Modbus RTU ile Modbus TCP aynı veriyi mi taşır?

Evet. Fonksiyon kodları ve register yapısı aynıdır; değişen taşıma katmanıdır. RTU seri hatta CRC-16 ile, TCP ise Ethernet üzerinde MBAP başlığıyla çalışır.

40001 adresi neden 0 olarak okunuyor?

40001 gibi adresler belgelerde kullanılan 1 tabanlı gösterimdir. Protokolde holding register'lar 0'dan başlar, bu yüzden 40001 çoğu yazılımda 03 fonksiyon koduyla 0 adresinden okunur.

Sonraki adım

Üretim verilerinizi nasıl değerlendirebileceğimizi konuşalım.

Tesisinizi, makinelerinizi ve hedefinizi anlatın. Entegrasyon mühendislerimizle görüşerek projenizin kapsamını birlikte belirleyin.

Ödüller ve referanslar

Endüstriyel yazılım deneyimimiz, referanslarımız ve ödüllerimiz

Referanslarımızı inceleyin →