CODESYS TEKNİK FORUM

Modbus RTU Nedir? RS485 Bağlantısı ve Haberleşme Ayarları

Konu detayları, medya içerikleri ve yanıtlar

  • Bu konu boş.
1 yazı görüntüleniyor (toplam 1)
  • Yazar
    Yazılar
  • #327
    İlhan
    Anahtar yönetici

    Modbus RTU Nedir? RS485 Bağlantısı ve Haberleşme Ayarları

    Modbus RTU nedir? Modbus RTU; PLC, frekans inverteri, enerji analizörü ve uzak I/O gibi cihazların seri hat üzerinden haberleşmesini sağlayan Modbus iletim biçimidir. Endüstride çoğunlukla RS485 kullanılır. Doğru kablolama, aynı seri port ayarları ve doğru cihaz adresi olmadan haberleşme kurulamaz.

    Bu rehberde RS485 A/B uçlarının nasıl ele alınacağını, baud rate ve parity ayarlarını, Slave ID kullanımını, Modbus register okumayı ve en sık karşılaşılan hata mesajlarını uygulama mantığıyla inceleyeceğiz. Genel protokol bilgilerini tekrarlamak yerine Modbus RTU bağlantısını sahada çalıştırmaya odaklanacağız.

    Modbus RTU nedir? PLC ile inverter ve enerji analizörü arasında RS485 A/B bağlantısı, 120 ohm sonlandırma ve Slave ID şeması

    Modbus RTU Nedir ve Nasıl Çalışır?

    Modbus RTU, Modbus isteğini ve yanıtını ikili (binary) seri çerçeveler hâlinde taşır. Geleneksel bir Modbus RTU hattında master cihaz sorguyu başlatır; adreslenen slave cihaz geçerli isteğe yanıt verir. Slave cihazlar normalde kendiliğinden veri göndermez ve doğrudan birbirleriyle konuşmaz.

    Örneğin bir PLC aynı RS485 hattındaki Slave ID 1 adresli sürücüden frekans değeri, Slave ID 2 adresli enerji analizöründen ise gerilim bilgisi okuyabilir. PLC bu cihazlara sırayla sorgu gönderir. Cihazın hangi register’ında ne bulunduğu her zaman üreticinin register tablosundan öğrenilir.

    Master ve Slave Görevleri

    • Master: İsteği oluşturur; cihaz adresini, fonksiyon kodunu ve okunacak/yazılacak veri alanını belirtir.
    • Slave: Kendi adresine gelen geçerli isteği işler, desteklenen fonksiyon için yanıt döndürür.
    • Slave ID: Aynı seri hatta bağlı her slave için benzersiz olmalıdır. Standart bireysel adres aralığı 1–247‘dir. 0 yayın (broadcast) adresidir ve yayın isteğine yanıt verilmez.

    Modbus RTU RS485 Bağlantısı Nasıl Yapılır?

    RS485, Modbus’un kendisi değil, elektriksel seri haberleşme arayüzüdür. İki telli yarı çift yönlü (half-duplex) RS485, Modbus RTU uygulamalarında çok yaygındır. Verici ve alıcılar ortak bir diferansiyel veri hattını paylaşır; bağlantı düzeni ve cihazın elektriksel referansı önemlidir.

    RS485 A ve B Klemensleri

    RS485 cihazlarında A/B, D+/D−, +/− veya benzeri işaretlerle karşılaşabilirsiniz. Üreticiler A ve B adlandırmasını her zaman aynı polarite için kullanmayabilir. Bu nedenle yalnızca harfleri eşleştirerek kablo bağlamak yerine her iki cihazın haberleşme kılavuzunda belirtilen sinyal polaritesini kontrol edin. Yanlış bağlantı iletişimi engelleyebilir.

    Örnek bir kurulumda PLC’nin diferansiyel hat çifti, sürücü ve enerji analizörünün ilgili RS485 veri terminalleri boyunca devam eder. Ayrıca cihaz kılavuzunun gerektirdiği signal common / referans bağlantısı ve izolasyon şartları göz önünde bulundurulmalıdır. Koruma topraklaması ile haberleşme referansı aynı amaçla kullanılan uçlar değildir.

    Hat Topolojisi ve 120 Ohm Sonlandırma

    Çoklu RS485 cihazlarını bağlarken ana hat boyunca zincir (bus/line) topoloji tercih edilir. Uzun yıldız bağlantılar ve gereksiz uzun yan kollar yansıma ve haberleşme hatalarını artırabilir. Uygun kablo, ekranlama, bağlantı uzunluğu ve düğüm sayısı üretici dokümanına göre seçilmelidir.

    RS485 kablosunun karakteristik empedansı yaklaşık 120 Ω olduğunda hattın iki fiziksel ucunda uygun sonlandırma direnci kullanılabilir. Birçok cihazda bu direnç dahili ve anahtarlıdır. Hattın ortasındaki her cihaza ayrıca 120 Ω direnç bağlamak doğru değildir. Kısa bir bağlantıda gereklilik değişebilir; her zaman cihaz ve kablo dokümanını esas alın.

    Bias (Fail-Safe) ve Ekranlı Kablo

    Hatta kimse veri göndermiyorken alıcı girişlerinin kararsız kalmasını önlemek amacıyla uygun bias/fail-safe düzeni gerekebilir. Bu düzen bazı cihazlarda zaten bulunur. Hat boyunca farklı noktalarda gelişigüzel bias eklemek yerine sistemin RS485 tasarımını kontrol edin. Ekranlı bükümlü çift kablo ve üreticinin önerdiği ekran/topraklama yöntemi, elektriksel parazitin yoğun olduğu panolarda özellikle önemlidir.

    Modbus RTU Haberleşme Ayarları: Baud Rate, Parity ve Slave ID

    Modbus RTU hattındaki cihazların seri iletişim parametrelerinin uyumlu olması gerekir. Aşağıdaki değerler örnek bir eğitim düzeni içindir; her cihazda varsayılan oldukları anlamına gelmez.

    Ayar Örnek değer Açıklama
    Baud rate 9600 İletişim hızı; iki cihazda aynı olmalı
    Data bits 8 RTU veri karakteri
    Parity Even (E) Desteklenen eşlik denetimi seçimi
    Stop bits 1 Bu örnekteki 8E1 çerçevesinin parçası
    Slave ID 1 (sürücü), 2 (analizör) Aynı hatta benzersiz adresler
    Timeout Örn. 500 ms Örnek bekleme süresi; sistem gereğine göre ayarlanır

    9600, 8E1 Ne Demek?

    9600/8E1; saniyede 9600 bitlik hat hızı, 8 veri biti, even parity ve 1 stop biti anlamına gelir. Bazı cihazlar 8N1 veya parity kullanılmadığında iki stop biti gibi farklı kombinasyonları destekleyebilir. 8E1 tüm cihazlar için zorunlu veya tek geçerli ayar değildir. İki tarafta aynı, üreticinin desteklediği yapı seçilmelidir.

    Slave ID Kaç Olmalı?

    Tek cihazla test için sıklıkla 1 kullanılır. Birden fazla cihaz bağlandığında her birine farklı ID verilir. Yanlış ID seçildiğinde master sorgu gönderse de doğru cihaz yanıt vermeyebilir. Aynı hatta iki slave’e aynı ID verilmesi çakışmaya neden olabilir.

    Timeout ve Polling Süresi Nasıl Ayarlanır?

    Master yanıtı beklemek için yeterli süre tanımalıdır. Bir sorgudan sonra yanıt gelmediğinde ne kadar bekleyeceği timeout, sorgular arasında ne sıklıkla yeni istek göndereceği ise polling düzeniyle ilgilidir. Çok kısa timeout değerleri gereksiz iletişim hatası üretirken, çok sık sorgu göndermek hattın ve cihazların yükünü artırabilir. Sorgu sırası, yanıt süresi ve tekrar denemeler birlikte ayarlanmalıdır.

    Modbus RTU Veri Paketi (Frame) Yapısı

    Bir RTU mesajı dört ana bölümden oluşur: Slave adresi + fonksiyon kodu + veri + CRC16. CRC, iletilen çerçevedeki hataları algılamak için kullanılır; veri güvenliği veya şifreleme sağlamaz. RTU CRC alanında düşük anlamlı bayt önce iletilir.

    FC03 ile Holding Register Okuma Örneği

    Aşağıdaki eğitim örneğinde PLC (master), Slave ID 1 adresindeki cihazdan 0 tabanlı 0 başlangıç adresinden iki holding register okumak istiyor. İstek çerçevesi şöyledir:

    01 03 00 00 00 02 C4 0B
    • 01: Slave ID 1
    • 03: FC03 (Read Holding Registers)
    • 00 00: Başlangıç register adresi 0
    • 00 02: Okunacak register sayısı 2
    • C4 0B: Bu isteğin CRC16 değeri (düşük bayt önce)

    Cihazın ilk register’ında 250, ikinci register’ında 0 olduğunu varsayarsak örnek yanıt şu biçimde olabilir:

    01 03 04 00 FA 00 00 DA 02

    Burada 04 veri baytı sayısını, 00 FA onluk 250 değerini temsil eder. Bu sayı 25,0 Hz olarak ancak ilgili cihazın kılavuzu 0,1 Hz ölçekleme tanımlıyorsa yorumlanabilir. Adresler ve ölçüm değerleri gerçek bir sürücüye ait değildir; örnek, çerçeve mantığını göstermek içindir.

    40001 Adresi Neden Yazılımda 0 Olabiliyor?

    Bazı cihaz kılavuzları ilk holding register’ı 40001 biçiminde gösterir. Modbus protokolündeki PDU adresleme ise 0’dan başlar. Bu nedenle bazı yazılımlarda 40001 referansının karşılığı başlangıç adresi 0’dır. Ancak her yazılımın adres kutusu aynı gösterimi kullanmaz; 0 tabanlı adresleme seçeneğini kontrol etmeden 40001 sayısını doğrudan girmeyin.

    PLC ile Frekans İnverteri Arasında Modbus RTU Haberleşme Örneği

    Örnek sistemde bir PLC’nin RS485 portu master, frekans inverteri slave olarak çalışacaktır. Amaç motoru çalıştırmak değil, önce inverterin anlık frekansını güvenli biçimde okumaktır. Bunun için şu adımları takip edin:

    1. Portu doğrulayın: Her iki cihazın gerçekten RS485 ve Modbus RTU desteklediğinden emin olun. RS232 ile RS485’i doğrudan birbirine bağlamayın.
    2. Bağlantıyı yapın: A/B terminallerini üretici polarite şemasına göre eşleyin; gerekli hat sonlandırmasını ve referans bağlantısını değerlendirin.
    3. Parametreleri eşitleyin: Örneğin PLC ve sürücü için 9600 baud, 8E1 ve sürücü için Slave ID 1 seçin. Değerler örnektir; gerçek seçenekler modele göre farklılaşır.
    4. Register’ı bulun: İnverter kılavuzunda çıkış frekansını veren register adresini, fonksiyon kodunu, sayı biçimini ve ölçeğini kontrol edin.
    5. Okuma sorgusunu gönderin: Önce yalnızca bir veya iki register okuyun. Gelen sayıyı sürücünün ekranıyla karşılaştırın.
    6. Hataları kaydedin: Yanıt yoksa timeout, exception gelirse fonksiyon/adres; sayı hatalıysa veri tipi ve ölçeklemeyi inceleyin.

    Güvenlik: Haberleşme testlerinde uzaktan start/stop veya frekans referansı yazma komutlarını, makinenin emniyet koşulları ve yetkili devreye alma prosedürleri sağlanmadan denemeyin. Standart Modbus, emniyet fonksiyonlarının yerine geçmez.

    Bilgisayarla Modbus RTU Testi Nasıl Yapılır?

    Fiziksel PLC olmadan da bir RS485 cihazını test edebilirsiniz. Bilgisayara uygun USB–RS485 dönüştürücü bağlayın; doğru seri portu (COM), baud rate, parity, stop biti, Slave ID, fonksiyon kodu ve başlangıç register adresini Modbus RTU master test yazılımına girin.

    Test Yazılımında Hangi Alanlar Doldurulur?

    • Connection: RTU/Serial ve doğru COM portu
    • Serial settings: Cihazla eşleşen 9600/8E1 gibi desteklenen yapı
    • Slave ID: Örnek 1
    • Function: Register okuma için FC03 veya cihaz dokümanındaki kod
    • Address: Yazılımın beklediği 0/1 tabanlı gösterime uygun başlangıç değeri
    • Quantity: Okunacak register sayısı

    İlk denemede yalnızca okuma yapın. Dönüştürücünün sürücüsünün kurulu olması ve işletim sisteminde COM portunun görünmesi tek başına Modbus iletişiminin kurulduğunu kanıtlamaz; haberleşme için cihazın da doğru yanıt vermesi gerekir.

    Modbus RTU Hataları: Neden Haberleşme Kurulmuyor?

    Timeout veya No Response

    Yanıt yoksa sırasıyla güç durumu, doğru COM portu, uygun RS485 dönüştürücü, polarite, Slave ID, baud/parity/stop bit uyumu ve RS485 hat topolojisini kontrol edin. Cihazın seri haberleşme fonksiyonunun ayrıca etkinleştirilmesi gerekip gerekmediğine bakın.

    CRC Error ve Kararsız Haberleşme

    CRC hataları; hat paraziti, yanlış seri parametreler, kötü bağlantı, hat yansıması veya cihaz zamanlaması nedeniyle görülebilir. Kablo güzergâhı, ekranlama, hat sonlandırma ve ortak referansı değerlendirin. Yalnızca baud rate düşürmek her durumda yeterli çözüm değildir.

    Illegal Function / Illegal Data Address

    Slave yanıt veriyor ama hata mesajı dönüyorsa fiziksel iletişim en azından belirli ölçüde çalışıyor olabilir. Illegal Function (01) cihazın fonksiyon kodunu desteklememesine, Illegal Data Address (02) ise istenen register adresi veya aralığının geçersiz olmasına işaret edebilir. Register map ve fonksiyon kodunu yeniden kontrol edin.

    Yanlış veya Çok Büyük Sayılar Okunuyor

    Ham değer ile mühendislik birimi farklı olabilir. Signed/unsigned seçimi, 16/32 bit veri tipi, iki register’ın word order’ı ve ölçekleme katsayısını kontrol edin. Sürücünün ekranında 50,0 Hz görürken yazılımda 500 veya 5000 okunması, üreticinin veri formatına bağlı olarak normal olabilir.

    Modbus RTU ile Modbus TCP Arasındaki Kısa Fark

    Modbus RTU, çoğunlukla RS485 seri hat üzerinde baud rate, parity ve Slave ID ile yapılandırılır. Modbus TCP ise Ethernet/TCP/IP bağlantısı üzerinden IP adresi ve genellikle 502 numaralı portla çalışır. Ortak Modbus veri modeline sahip olmaları, iki haberleşme türünün doğrudan birbirine bağlanabileceği anlamına gelmez; gereken durumda uygun bir RTU–TCP gateway kullanılır.

    Genel protokol kavramları, dört veri türü ve RTU/TCP karşılaştırması için forumumuzdaki ilk Modbus Nedir? rehberine de göz atabilirsiniz.

    Modbus RTU Hakkında Sık Sorulan Sorular

    Modbus RTU Nedir, RS485 ile Aynı Şey mi?

    Hayır. Modbus RTU seri veri mesajlarının çerçevelenme biçimini tanımlar; RS485 ise bu mesajların iletilebildiği elektriksel haberleşme arayüzüdür.

    RS485 A ve B Uçları Ters Bağlanırsa Ne Olur?

    Genellikle geçerli veri okunamaz. Fakat A/B adlandırma alışkanlıkları üreticiye göre değiştiğinden bağlantı, cihazların polarite açıklamalarına göre doğrulanmalıdır.

    Her Cihaza 120 Ohm Direnç Bağlanır mı?

    Hayır. Uygun RS485 hattında sonlandırma, çoğunlukla ana hattın iki fiziksel ucunda değerlendirilir; ara cihazların her birine sonlandırma eklenmez. Dahili direnç olup olmadığı kontrol edilmelidir.

    Modbus RTU Haberleşmesinde Kaç Cihaz Bağlanabilir?

    Modbus adresleme bireysel slave için 1–247 aralığı sunsa da fiziksel RS485 hatta bağlanabilen cihaz sayısı transceiver yüküne, kablolamaya, mesafeye ve kullanılan donanıma bağlıdır. Adres sayısı tek başına fiziksel bağlantı kapasitesi değildir.

    Sonuç: Modbus RTU Haberleşmeye Nasıl Başlanmalı?

    Modbus RTU nedir? Seri iletişim üzerinden endüstriyel cihazlardan veri okumayı ve desteklenen veri alanlarına kontrollü erişimi sağlayan yaygın Modbus iletim biçimidir. Sağlam bir uygulamanın temeli doğru RS485 kablolaması, eşleşen seri port ayarları, benzersiz Slave ID ve üretici register tablosudur.

    Önce tek slave cihazla FC03 gibi basit bir okuma işlemini doğrulayın. Çalışan örneği çoklu cihazlara genişletirken adres, polling süresi ve fiziksel hat düzenini ayrıca kontrol edin. Teknik bir sorunuz varsa cihaz marka/modelini, seri ayarlarını, fonksiyon kodunu ve tam hata mesajını paylaşarak bu konuya yanıt yazabilirsiniz.

    Kaynaklar: Modbus Organization – Resmî protokol spesifikasyonları · Modbus Serial Line V1.02 kılavuzu. Temel PLC kavramları için PLC Nedir? rehberimizi inceleyebilirsiniz.

1 yazı görüntüleniyor (toplam 1)
  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.