RS-485 Hattına 120Ω Direnç Koydum, Hata Arttı: Sonlandırma Direncinin Yeri
Kocaeli'de bir tesiste Modbus RTU hattında 120Ω sonlandırma direnci koydum, hata azalmadı, arttı. Direnç, hattın ortasındaydı. Sonlandırma direncinin neden sadece uçlara konduğunu, yansımanın ne olduğunu ve kablo uzunluğu ile baud arasındaki ilişkiyi kendi saha vakamla anlatıyorum.

Kocaeli’de bir tesis. Modbus RTU hattı, RS-485 ile kurulmuş. Hat, 200 metre. Üç slave: bir VFD, bir sıcaklık transdüseri, bir sayaç. Master, S7-1200.
Bir gün operatör dedi ki: “VFD ara ara cevap vermiyor. 10 dakikada bir, 2-3 saniye cevap yok. Sonra tekrar geliyor.”
2-3 saniye. Bu, “kablo kopması” değildi. Kablo kopsa, 2-3 saniye değil, sürekli cevap olmazdı. Bu, “baud” da değildi. Baud, önceki bir vakada 15 dakikalık sessizlik yaratmıştı. Bu, 2-3 saniyelik, ara ara, “yansıma”ydı.
RS-485’te Yansıma
RS-485, diferansiyel bir sinyal. İki tel: A ve B. Sinyal, A-B arasındaki voltaj farkı olarak taşınır. 0-2V “0”, -2-0V “1.”
Yansıma, sinyalin hattın ucunda “dönmesi”dir. Hattın ucu, “açık” ise, sinyal, uca çarpar, geri döner. Geri dönen sinyal, orijinal sinyal ile “çakışır.” Çakışma, voltajı bozar. Bozulan voltaj, “0” olan bir yeri “1” yapar, “1” olan bir yeri “0” yapar.
Yansımanın büyüklüğü, hattın karakteristik empedansı ile sonuç empedansı arasındaki farka bağlıdır. RS-485 kablosunun karakteristik empedansı, tipik olarak 100-120Ω’dir. Hattın ucu “açık” ise, sonuç empedansı “sonsuz”dur. Fark, “sonsuz - 120Ω” = “sonsuz.” Yani, yansıma, tamamı geri döner.
Hattın ucuna 120Ω direnç koyarsanız, sonuç empedansı 120Ω olur. Fark, “120 - 120” = 0. Yani, yansıma, sıfır. Sinyal, uca çarpar, geri dönmez.
Direnç Nerede?
Tesisin hattına baktım. 120Ω direnç, hattın ortasındaydı. VFD’nin yanına, bir “sonlandırma direnci” olarak konulmuştu.
Bu, yanlış. Sonlandırma direnci, hattın uçlarına konur. Yani, master’ın ucuna ve en uzak slave’in ucuna. Orta’ya değil.
Neden? Çünkü, direnç, “o noktadan sonra” gelen sinyali emmek için oradadır. Orta’ya koyarsanız, “orta’dan sonra” gelen sinyali emersiniz. Ama “orta’dan önce” gelen sinyal, hâlâ “açık” uca çarpar, geri döner. Yani, yansıma, hâlâ var.
Daha kötüsü: orta’daki direnç, “orta’dan önce” gelen sinyali de kısmen emer. Yani, sinyal, orta’ya gelmeden zayıflar. Zayıflayan sinyal, “0” olan bir yeri “0.5” yapar. 0.5, “0” da “1” de değildir. Alıcı, 0.5’i “0” ya da “1” olarak yorumlar. Hangisini yorumlayacağı, alıcının “eşik” voltajına bağlıdır. Eşik, 0.5’in üstünde ise “1,” altında ise “0.” Ama eşik, alıcıdan alıcıya farklıdır. Yani, bir alıcı “0” der, diğeri “1” der.
İşte 2-3 saniyelik sessizlik buydu. VFD, “0” olan bir yeri “1” olarak yorumluyordu. Master, “1” gönderiyordu, VFD “0” sanıyordu. VFD, cevap vermiyordu. Master, “timeout” alıyordu. 2-3 saniye. Sonra, sinyal, “doğru” voltaja dönüyordu. VFD, cevap veriyordu.
Çözüm: Direnci Uca Taşı
Çözüm, direnci orta’dan alıp, uca taşımaktı.
Yaptığım üç adım:
- Orta’daki direnci kaldırdım. VFD’nin yanındaki 120Ω direnç, söküldü.
- Master’ın ucuna 120Ω koydum. S7-1200’nin RS-485 portuna, 120Ω direnç.
- En uzak slave’in ucuna 120Ω koydum. Sayaç, en uzak slave’di. Sayacın RS-485 portuna, 120Ω direnç.
Bu üç adım, 15 dakika. Ama “doğru yerde” yapmanız gerekiyordu. Orta’da bırakırsanız, yansıma hâlâ var. Uca koyarsanız, yansıma sıfır.
Kablo Uzunluğu ve Baud
RS-485’te, kablo uzunluğu ile baud arasında bir ilişki var. Uzun kablo, düşük baud. Kısa kablo, yüksek baud.
Neden? Çünkü, sinyal, kabloda “yayılır.” Yayılma süresi, kablo uzunluğuna bağlıdır. 200 metre kablo, sinyalin bir ucundan diğer ucuna ulaşması için ~1 µs alır. Baud, 19200 ise, bir bit ~52 µs sürer. 1 µs / 52 µs = %2. Yani, yayılma süresi, bit süresinin %2’si. Bu, “güvenli” bir oran.
Ama baud, 115200 ise, bir bit ~8.7 µs sürer. 1 µs / 8.7 µs = %11.5. Bu, “güvenli” değil. Sinyal, bir bit’in %11.5’inde yayılır. Yani, bir bit’in %11.5’i, “yayılma” olarak kaybolur. Geri kalan %88.5, “gerçek” sinyal. Ama yansıma, o %88.5’i de bozar.
Tesisin baud’u, 19200’di. 200 metre kablo. %2. Güvenli. Ama yansıma, hâlâ vardı. Çünkü, direnç, orta’daydı.
15 Dakika, Ama Doğru Yerde
Bu ayrımı, laboratuvarda, aynı kablo ile, aynı üç slave ile kurmak 15 dakika. Sahada 1 gün sürdü. Çünkü:
- Direnç, VFD’nin “içinde”ydi. VFD’nin RS-485 portuna, “sonlandırma direnci” olarak konulmuştu. Sökmek için, VFD’nin kapağını açmak, direnci bulmak, sökmek gerekiyordu.
- Master’ın ucuna direnç koymak, S7-1200’nin “içinde”ydi. S7-1200’nin RS-485 portuna, 120Ω direnç. S7-1200’nin kapağını açmak, direnci bulmak, takmak gerekiyordu.
- Hat durmayacaktı. Bu değişiklik, “hat durmadan” yapılamazdı. Çünkü, direnci sökmek, anlık bir “açık” uç yaratır. Üç vardiya, üç gün, “hat durabilir” penceresi aradık.
Yani, teknik çözüm 15 dakikaydı. Ama o 15 dakikanın “hat durabilir” penceresine sığması, 1 gün aldı.
Bir RS-485 Hattı Kurmadan Önce Sorduğum Soru
O günden sonra, bir RS-485 hattı kurmadan önce, şu üç soruyu sorar oldum:
- Kablo uzunluğu ne? Baud ile uyumlu mu?
- Sonlandırma direnci var mı? Varsa, nerede? (Cevap: uçlarda.)
- Direnç değeri ne? 120Ω mu? (Cevap: kablo empedansına göre.)
Bu üç sorunun cevabı “200 metre, 19200 baud, direnç var ama orta’da, 120Ω” ise, o direnci uca taşırım.
Tesis hâlâ çalışıyor. VFD, 10 dakikada bir cevap veriyor. 2-3 saniyelik sessizlik yok. Bazen en küçük direnç, en büyük farkı yaratır.