modbus

rs485 ile olur, rs232 ile olur, optik kabloyla olur, yünle olur, tüyle olur haberleşmenin fiziksel altyapısı farketmez. modicon adlı firmanın geliştirdiği bir haberleşme şeklidir. temel olarak birbirine aynı haberleşme hattı üzerinden seri bağlı cihazların birbirinden farklı eşsiz adresleri vardır. birbirine bağlı bu cihazlardan biri master (efendi) diğerleri slave (köle) dir. efendi olan cihaz tüm seri haberleşme hattına (broadcast) der ki; “ulan ameleler aranızda adresi x olan, bana register’larının şu adresten şu adrese kadar olan kısmı yollasın bekliyom ([kölenin adresi][efendinin isteği][kölenin regisrter’larının neresinden isteniyor] [dediğim anlaşıldı mı])“.bu söylediklerini bir de şifreler ki düzü ile şifrelisi birbirini tutmazsa yanlış işler olmasın diye. bu haber tüm köleler arasında yayılır, bir telaş kaplar ortalığı, herkes bakar kendi adresinden mi isteniyor diye, ardından adresi x olan köle hemen kendi adresini, istenilen bilgiyi, duruma göre bu bilginin uzunluğunu hemen yayar haberleşme hattı üzerinden. ancak bunları yapmazdan evvel şifreyi de kontrol eder efendisine ayıp olmasın diye. (efendinin söylediği ile şifreli hali birbirini tutmazsa yollamaz bişey). bu şekildeki deveran sürekli akar gider. köleler asla isyan etmez.

kaynak


Modbus’ın dokumanı burada


Modbus paketlerinin uzunluklari değişkendir. Yani single coil okunurken 7 byte gönderilir ama multiple coil okunurken daha fazla sayida byte gönderilir.


  • read coil status modbus command 01 outputlari oku
  • read input status modbus command 02 inputlari oku
  • read holding register modbus command 03 birden fazla holding register oku holging register’dan kasit ic register’lar. PLC’deki M register’lari gibi.
  • read input register modbus command 04 birden fazla input register oku input register’dan kasit input veren ve 1-0 haricinde veri tutan register. ADC gibi.
  • force single coil modbus command 05 bir output set/reset et
  • preset single register modbus command 06 bir register’a deger yaz
  • preset multiple register modbus command 16 birden fazla register’a yaz

modbus rtu checksum hesaplama burada