Modbus protokolünün endüstriyel otomasyon alanında en yaygın kullanılan iletişim protokolü olduğu söylenebilir, çünkü açıklığı, ölçeklenebilirliği ve standardizasyonu onu genel bir endüstriyel standart yapar. Bununla, farklı üreticilerin ürünleri, sistemin merkezi olarak izlenmesi ve merkezi olmayan kontrolünün sağlanması için ağa kolayca ve güvenilir bir şekilde bağlanabilir.
Mevcut Modbus protokolü esas olarak ASCII, RTU, TCP vb. Kullanır ve fiziksel katmanı belirtmez. Şu anda, Modbus yaygın olarak kullanılan arayüz formları esas olarak RS-232C, RS485, RS422'yi içerir ve ayrıca RJ45 arayüzünü kullanır ModBus ASCII, RTU protokolü, mesaj ve veri yapısını, komut ve yanıt yöntemlerini bu temelde belirler. ModBus veri iletişimi, Master / Slave modunu (master / slave) benimser, yani Master bir veri talebi mesajı gönderir. Veri, çift yönlü okuma ve yazmayı gerçekleştirir.
Seri iletişimde, veri aktarım hızını tanımlamak için "baud hızı" kullanılır. Uluslararası olarak bir dizi standart baud hızı öngörülmüştür: 110, 300, 600, 1200, 1800, 2400, 4800, 9600, 14.4Kbps, 19.2Kbps, 28.8Kbps, 33.6Kbps, 56Kbps. Örneğin: 9600bps, karakterlerin rakamları ve başlangıç biti, bitiş biti ve eşlik biti gibi diğer gerekli rakamlar dahil olmak üzere saniyede 9600 bit iletildiği anlamına gelir.
Otomasyon alanında, RTU modunda her baytın formatı olan RTU modunu yaygın olarak kullanıyoruz:
Kodlama sistemi: 8 bitlik ikili, onaltılık 0-9, A-F
Veri bitleri: 1 başlangıç biti
8 bit veri, önce düşük bit
Tek / çift kontrol için 1 bit; eşlik yok için 0 bit
Eşlikli 1 durdurma biti; eşliksiz 2 durdurma biti
Hata kontrol alanı: döngüsel artıklık kontrolü (CRC)
Bağımlı adres ayarı: Mesaj adresi 2 karakter (ASCII) veya 8 bit (RTU) içerir ve geçerli bağımlı cihaz adres aralığı 0-247'dir (ondalık).
Fonksiyon kodu ayarı: Mesaj çerçevesi fonksiyon kodu, karakterler (ASCII) veya 8 bit (RTU) içerir. Geçerli kod aralığı 1-225 (ondalık);
Veri alanının içeriği: Veri alanı 2 onaltılık veri bitine sahiptir ve veri aralığı 00-FF'dir (onaltılık) Ağ seri iletim moduna göre, veri alanı bir çift ASCII karakterinden veya bir RTU karakterinden oluşabilir.
RTU modunda mesaj çerçevesi:
Modbus fonksiyon kodu:
ModBus fonksiyon kodu ve veri tipi yazışma tablosu:
RTU modunda tüm verileri okuma örneği:
Analiz et: Ana bilgisayar bir komut gönderir, erişim bağımlı adresi 1'dir ve işlev kodu 03 (okuma tutma kaydı) kullanılır.Başlangıç adresinin yüksek 8 biti ve düşük 8 biti: okunacak analog miktarın başlangıç adresini gösterir (başlangıç adresi 0'dır) . Örneğin, örnekteki başlangıç adresi 38 ve ondalık sayı 56'dır. Kayıt sayısının yüksek 8 biti ve düşük 8 biti: başlangıç adresinden kaç tane analogun okunduğunu gösterir. Örnekte, analog bir niceliktir. Bir analog miktarın döndürülen bilgilerde iki bayt döndürmesi gerektiğini unutmayın. Hata kontrolü bir CRC kontrolüdür.
Slave yanıtı: Cihaz adresi ve komut numarası yukarıdakiyle aynıdır. Döndürülen bayt sayısı: veri baytlarının sayısını, yani veri 1, 2 ... n'deki n değerini gösterir. Örnekte, 1 analog miktarın verisi döndürülür, bir analog miktar 2 bayta ihtiyaç duyduğundan, toplamda 2 bayt vardır. Veri yüksek ve düşük bayt sayısı: 41 ve 24, döndürülen 1 analog miktarın değerini, yani 16676'nın ondalık değerini temsil eder. Hata kontrolü bir CRC kontrolüdür.