RS-485 Haberleşme

Başlatan Logan, 08 Haziran 2005, 15:23:59

Logan

Merhaba arkadaşlar.Sitede aradım fakat bulamadım.15 adet terminali uzak bir mesafeden haberleştirmem gerek.Aranızda RS485 hakkında bilgi sahibi olan var mı?
İmza.

Veli B.

@logan,
arama kısmında, 485 yazarak yaptığım arama sonucunda 13 başlık çıkıyor bunları bir incele.

bigbey

TA6R


Logan

Yaa açıkçası,bana bu konuya dair açık ve net bir bilgi lazım.Böyle bir işle ilk defa uğraşıyorum ve sistem hakkında fazla bilgiye sahip değilim. Aranızda daha önce bu tür bir projeyi yapıp çalıştıran varsa lütfen yardımcı olsun. :?
İmza.

bigbey

eğer elinde RS232 protokolünde bir bilgi var ise bunu RS485 'e çevirecek konvertörler var alıp kullanabilirsin.
Her iki yönde de çeviren konvertörler var.
aradaki fark bilgi akışı aynı olmakla beraber sinyal genliğ ve hat giriş
çıkış empedans'ları farklı olmasıdır .
amaç sinyalin daha uzak mesafeye kaybolmadan formu bozulmadan gönderebilmek.
TA6R

Logan

Yani diyorsun ki RS-232 ile RS-485 hemen hemen aynı.Peki konvertör derken neyi kastettin. :?:  :?:  :?:
İmza.

bigbey

RS 232 yi RS485 e çeviren donanım var.
5x3 cm ebatında
ABED handa bir vitrinde gördüm.(KaraköY/İstanbul)
TA6R

epolat

Bu konvertörü otomasyon ürünleri satan herhangibir firmadan alabilirsin.Benim bildiğim en  ucuzu, 85$ +KDV (liste fiyatı).

bsivgin

75176 diye bir entegre var içinde bir adet line driver bir adet line receiver var. 5 Volt ile çalışır. Doğrudan PIC'e bağlayıp RS485 bağlantısını yapabilirsin.


fiyatı da 0.5 $ civarında olması lazım

Saygılarımla
Bülent ŞIVGIN
www.diyot.com

Petek

75176 0.5$ mı? Gerçekten ucuzmuş. Ben Max485 leri daha pahalı alıyorum. 2.5 YTL civarında. 75176 almak lazım o zaman  :D

RS232-RS485 dönüştürücüsüne o kdara para vermeye değer mi bilmiyorum. Yapmak istediğiniz iş çok yoğun bilgi transferi gerektirmiyorsa kendiniz yapın. Bir max232 arkasına max485 veya 75176 bağlayın. RTS'in bağladığınız max232'nin çıkış tarafını max485 te okuma yazma seçiminin yapıldığı (iki uç birleştirilerek yapılıyor, datasheetten bulabilirsin detayları) uca veriyorsun. Gerisi PC yazılımına kalıyor. VB'yi hiç kullanmadım ama önceki araştırmalarımda VB te max 485 için bir tool varmış ve RTS çıkışını (haberleşmenin yönüne göre) otomatik olarak yapıyormuş.

Ben tek yönlü haberleşme için yukarıda bahsettiğim devreyi yaptım ve çalıştırdım. Haberleşme tek yönlü olduğu için RTS çıkışını kullanmadım. Delphi için yazılmış comport bileşenlerinde RTS set veya reset etme işini kolayca yapabilirsin. Otomatik olmuyor ama haberleşmenin yönüne göre sen set yada reset ediyorsun. (RTS rs232deki amacın dışında kullanılıyor yani)

Bir de haberleşme yönü değiştiğinde,  bir gecikme oluyor (ölü zaman)  diye okumuştum. (20ms kadar). Bu konuda bilgisi olan arkadaşlar bilgi ve tecrübelerini aktarırsa ben de faydalanmış olurum.

485 hattına bağlayacağın nod sayısı fazla ise sonlandırma direncini, A B hatlarına bağlayacağın dirençleri dikkatli seçmende fayda var.

Kolay gelsin.
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein

bsivgin

75176 entegresi 5v'u RS485 seviyesine rs485 seviyesinide 5v seviyesine çevirdiği için doğrudan PIC'e bağlanabilir. Ama PIC'den gelen bilgi bilgisayara iletiyorsa 75176çıkışına mex232 bağlanmalı


saygılarımla
Bülent ŞIVGIN
www.diyot.com

mhk

Sana ilk önce donanımı sorunsuz oluşturmanı tavsiye ederim. Donanım sorunsuz olursa işlemler daha basit halledilir. Bu yüzden RS485 yerine benim uyguladığım optokuplörlü ağ sistemini öneririm. Bunun şemasını ve örnek programlarını http://groups.yahoo.com/group/PicProjeUP15/files/ adresine daha önce koymuştum. İlk önce yahoodan bir mailin olması gerekir oraya ulaşabilmek için. Ayrıca RS485 in uymak zorunda olduğun halka ( Peşpeşe bağlama ) derdinden de kurtulabilirsin. İstediğin gibi hattı oluşturabilirsin. Dikkat etmen gereken nokta hattın koaksiyel ( Tavsiye edilir kısa mesafelerde telefon teli bilr olur) kablo ve iletken çaplarının kalın olmasıdır. Uydu koaksiyel kabloaları bu iş için uygun.Donanımı sorunsuz kurduktan sonra ikinci işlemin haberleşme protokolünü oluşturmandır. Şuna kesinlikle inan ki başka protokollere ihtiyacın yok. Kendi protokolünü kendin oluşturabilirsin. Bunun için mantıklı düşünmek ve haberleşmenin tek hat ( RS485 gibi ) nasıl yapılacağını anlamak yeterli. Tek hat olduğu için ( Half dublex) haberleşme hattından ya bilgi gönderilir yada alınır, aynı anda her ikiside gerçekleşemez.Şimdi olayı daha basit anlatalım. Toplam 15 arkadaşın ( Slave ) ve hepsinde birer telsiz var, sen müdürsün( Master ) . Hepsinden bilgi toplamak istiyorsun ne yaparsın? ilk önce 1.arkadaşının ismini söylersin( Adres1 ) sonra dinlersin.Belli bir süre cevap gelmezse ( Time out ) 2.arkadaşının ismini söylersin ( Adres2 ) dinlersin. 2.arkadaşın bilginin müdürden geldiğini anlar ( Master senkron işareti ) ve kendi bilgisini gönderir. Gerekirse ismini söyler ( Adres 2 tanımlaması ) ardından bilgisini gönderir. Basitçe bu şekilde bir haberleşme sağlanır. Şimdi bu mantığı eğer kavrayabilmişsek yazılımla kendi protokolümüz oluşturabiliriz.Kullandığın derleyici de (asenkron haberleşme) seri bilgi nasıl gönderilir , alınır ve beklenir bilmen gerekir. Tüm sistemlerde slave ve master haberleşme hızı eşit olmalıdır 2400 bps gibi Şimdi örnek algoritma için ; tüm slave cihazlarının yazılımında kendini tanıtıcı seri bilgi bekleme kullanmalısın. Masterden gelecek senkron bilgisi gibi. Yani master 1.cihazdan veri alacaksa , ilk önce atıyorum slv1 bilgisini seri olarak hatta gönderecek. ( Her slave cihaza örnek olarak 1.cihaz "slv1" gelince aktif ol, 2.cihaz "slv2" gelince aktif ol vs... ) tüm slavler bu slv1 bilgisini alacak , lakin kendisine ait olan hangi cihaz ise o aktif olacak ( bizim sistemde 1.cihaz aktif olacaktır.) ve belirli bir gecikme sonunda (1-2 msn hatta bilginin boşalması için ) 1.cihaz üzerindeki bilgiyi hatta seri verecek , eğer slave cihazın vereceği bilgi miktarı çok ise 1 byte dan fazla ise tüm bilgileri gönderdikten sonra bilginin bittiğini gösterir bilgi sonu işareti ( Bu işaretten kasıt "son" gibi karakter veriside olabilir. Yani 1.cihaz "slv1" adresini alarak aktif oldu, belirli bir süre bekledi, bu sürede master ,slavlerden gelecek veriyi dinlemeye başladı. 1. cihaz üzerindeki veriyi örnek olarak "ısı 18 derece" "son" gibi bir karakter gönderdi. Burada son 1.cihazın verisinin bittiğini ifade eder ve master 1.cihazın verisini istediği yere yazar) koyabilirsin. Diğer tüm işlemlerde 1.cihazda anlattığım sistemin aynısıdır. Tek fark "slv1" adresi yerine "slv2" "slv3" ... gibi olacaktır. Biraz karışık oldu lakin yine anlamadığın noktalar olursa yardım edebilirim. İlk önce basit olarak tek hat üzerinden 1 master ve 1 slave haberleşmesini yap. Slave in üzerinden her türlü bilgiyi almaya çalış. Eğer bunu sorunsuz yaparsan slve sayınısı 2 ye çıkar adresleri değiştir daha sonra 3 , 4, 5, 6 ,7 ,8 vs. gibi . Kolay gelsin...
"Ya olduğun gibi görün, Ya da göründüğün gibi ol..." Mevlana

lord

mhk arkadasim verdiğin link çalişmiyor... :)

mhk

Sevgili lord... Verdiğim linki bir daha dene. O link çalışıyor. Sanırım çıkan sayfada şifre ve kullanıcı adı çıktı diye link çalışmadı diyebilirsin. Bu linki açabilmen için yahoo'dan mail adresin olmalı ( Eğer yoksa mutlaka bir tane aç bir çok arkadaşın gönderdikleri dosyalar oralarda saklı) Bu mail adresinde kullandığın şifre ve kullanıcı adını girerek ordan dosyalara ulaşabilirsin. İlk girişinde bir kaç soruyla karşılaşabilirsin, üye olduğunu , burda oluşan değişiklikleri mail adresine göndereyemmi? gibi şeyler. Orada opto cupler ağ.zip dosyasını bulabilirsin. Yine bu forumda daha öncede yazdığım gibi bir çok arkadaşın dosyalarını upload ettiği yahoo group adresleri yazılı idi. Ordan diğer çalışma ve dosyalarada ulaşabilirsin. Bu arada verdiğin link çalışmıyor yerine , acaba verdiğin linke ben mi giremiyorum? sorusu daha hoş olsa gerek , çünkü bu forumda ben linki vermeden önce kendim girerek kontrol ederim. O mesajı yazdıktan sonra yeniden denedim ve dosya hala orda. Kolay gelsin.
"Ya olduğun gibi görün, Ya da göründüğün gibi ol..." Mevlana