İçeriğe geç
IoT

Modbus (RTU / TCP)

Modbus basit ve yaygın bir endüstriyel haberleşme protokolüdür. PLC, enerji analizörü, sensör ve sürücü gibi cihazlardan veri okumak ve yazmak için kullanılır.

Modbus'ı 1979'da Modicon (bugün Schneider Electric) PLC'ler için geliştirdi. Açık ve lisans ücretsiz olduğu için endüstriyel otomasyonun ortak dili hâline geldi. Spesifikasyonları Modbus Organization yayımlar. Master/slave (güncel adlandırmayla istemci/sunucu) modeliyle çalışır: istemci istek gönderir, sunucu cihaz yanıt verir. Sunucular kendiliğinden veri göndermez.

İki temel varyant vardır. Modbus RTU, RS-485 (veya RS-232) seri hat üzerinde ikili çerçeveler ve CRC-16 hata kontrolüyle çalışır. Bir hatta 1–247 arası adreslere sahip cihazlar bulunabilir. RS-485 hattına tekrarlayıcı olmadan standart olarak 32 birim yük bağlanır. Düşük hızlarda kablo uzunluğu yaklaşık 1.000–1.200 metreye ulaşabilir. Hat uçlarında 120 Ω sonlandırma direnci kullanılmalıdır. Modbus TCP ise Ethernet üzerinde TCP 502 portunu kullanır. CRC yerine TCP'nin hata denetimine güvenir ve Unit ID alanıyla bir ağ geçidi arkasındaki RTU cihazlarına erişir.

Veri modeli dört tablodan oluşur: coil (okunur/yazılır bit, fonksiyon kodları 01/05/15), discrete input (salt okunur bit, kod 02), input register (salt okunur 16 bit, kod 04) ve holding register (okunur/yazılır 16 bit, kodlar 03/06/16). Sahada sık görülen sorunlardan biri, dokümanlardaki 1 tabanlı adres gösterimi (ör. 40001) ile protokoldeki 0 tabanlı adres arasındaki bir kaymadır. İki register'a yayılan 32 bit tamsayı ve ondalık değerlerde bayt/word sırası üreticiye göre değişir ve bu da sık hataya yol açar. Değerlere uygulanması gereken ölçek çarpanlarının (ör. ×0,1) atlanması da yaygındır.

Modbus kimlik doğrulama veya şifreleme içermez. Bu yüzden Modbus TCP portları asla internete açılmamalı, trafik VLAN veya VPN ile yalıtılmalıdır. TLS tabanlı bir Modbus/TCP Security spesifikasyonu vardır ama yaygın değildir. IoT projelerinde Modbus cihazlarını bir ağ geçidi periyodik olarak sorgular (polling). Veriler MQTT ile buluta, uzak sahalarda ise LoRaWAN veya NB-IoT üzerinden iletilir. Sorgulama aralığı ve zaman aşımı değerleri hattaki cihaz sayısına göre ayarlanmalıdır.

Bir projeniz mi var?

Ne kurmak istediğinizi kısaca yazın ya da arayın. Talebinizi ilgili ekibe biz iletelim.