Modbus RTU: RS-485 kablolama, adresleme ve zaman aşımları
Modbus RTU, RS-485 üzerinde sorgula-yanıtla çalışan, kayıt tabanlı basit bir protokoldür. Parametre okuma-yazma ve basit komutlar için idealdir; senkronize hareket için tasarlanmamıştır.
4 soru ve cevap
Temel bilgi
Devreye alma
Arıza giderme
Devreye alma
01
Modbus RTU için RS-485 hattını nasıl kablolamalıyım?
RS-485, bükümlü çift üzerinde diferansiyel çalışır ve hat topolojisi ister: cihazları bir zincir gibi sırayla bağlayın, iki uca 120 Ω sonlandırma koyun ve yıldız bağlantıdan kaçının. A/B isimlendirmesi üreticiler arasında ters olabilir; haberleşme yoksa ilk deneme iki hattın yerini değiştirmektir.
Ekranlı bükümlü çift kullanın; ortak referans (GND) hattını da taşıyın
Uzun hatlarda bias (polarizasyon) dirençleri boştaki hattı kararlı tutar
Okuduğum Modbus değeri bir adres kaymış gibi. Neden?
Kılavuzlarda holding register'lar çoğunlukla 40001'den başlayan "kayıt numarası" ile, protokolde ise 0'dan başlayan "adres" ile gösterilir: 40001 numaralı kayıt, protokol adresi 0'dır. Master yazılımınızın hangisini beklediğine bakın; bir fark varsa adres bir kayar. 32 bitlik değerlerde ayrıca kelime sırası (word order) uyuşmalıdır.
Önce değeri bilinen tek bir kaydı okuyarak adreslemeyi doğrulayın
32 bit değerde iki kelimenin sırası ters ise değer anlamsız çıkar
Modbus slave hiç cevap vermiyor. Neyi kontrol etmeliyim?
Cevap yoksa, slave isteği hiç anlamamıştır: slave adresi, baud hızı, parite ve stop bit ayarları master ile birebir aynı olmalıdır. Bunlar doğruysa A/B hatlarını değiştirin, sonlandırmayı kontrol edin ve master'ın cevap bekleme süresinin (timeout) slave'in cevap süresinden uzun olduğundan emin olun.
Aynı hatta iki cihazın aynı slave adresine sahip olmadığını doğrulayın
Parite ayarı: 8-N-1, 8-E-1 gibi biçimler her iki tarafta aynı olmalı
Bir USB-RS485 dönüştürücüyle PC'den tek cihazı test edin
Modbus RTU ile çok eksenli senkron hareket yapabilir miyim?
Önerilmez. Modbus RTU sorgula-yanıtla çalışır: master cihazları sırayla sorgular, bu yüzden eksen sayısı arttıkça her eksene komut ulaşma süresi uzar ve eksenler aynı anda komut almaz. Bağımsız eksenlere hedef ve hız vermek, parametre okumak ve izlemek için uygundur; interpolasyon ve senkron hareket için EtherCAT kullanın.