PIC PLC Haberleşmesi & MAX485 Problemi

Başlatan Dogukannn, 21 Mart 2017, 20:25:08

Dogukannn

Öncelikle herkese merhabalar. 16f886 ile Delta PLC SS2'nin MODBUS protokolü ile haberleşmesini istiyorum ama başarılı olamadım. İlk önce PC ile RS485 modulü ile iletişim kurmaya çalıştım bu aşamada kullandığım modul "CH340", kullandığım terminal programı "RealTerm:Serial Capture Program". Yanlış bir bilgiye sahipsem lütfen uyarın, gönderdiğim veriyi RS232 standartı ile gönderme ile RS485 standartı ile gönderme arasındaki fark donanımsal olarak MAX232 ve MAX485 seviye ayarlama entegreleri, yazılımsal olarak da max485 te gönderi yapmak istediğimizde DE pinini lojik1 seviyeye yükseltmek. Ben gayet güzel bir şekilde RS232 ile haberleşirken, RS485 de veri gönderdiğimde standart ascii dışında karakterler gönderiyor. Yazılım dosyalarım (header ve main), de devre çizimim ve de terminal çıktılarım ekte mevcuttur. İlginiz için teşekkürler.

NOT: Çizime baktığınızda butonları yanlış pinlere koyduğumu farkedeceksinizdir, kartı tekrardan düzenleyeceğim, 16f886da sadece B portunda dahili pull-up dirençleri varmış bende bu proje ile öğrenmiş oldum.

Şematik:


Terminal:


ProjeDosyası:
https://drive.google.com/open?id=0B5V6_BesRX76b241cW5UVC1Bbm8

Salih

Delta ürünlerinde sen özellikle değiştirmedi isen,
haberleşme ayarları,
9600 7 bit Even 1 stop şeklindedir.
Sana tavsiyem, öncelikle proteus üzerinde RS232 kullanarak PLC ile
modbus haberleşmeyi hal etmendir.
Modbus işi çözüldükten sonra devreni RS485 ile kurup hemen kullanmaya
başlarsın. Haberleşme alt yapısının RS232 veya RS485 olması fark etmez.

Dogukannn

Hocam cevabınız için teşekkürler. Aynen bende öyle düşünüyorum, ben o devreyi gerçekledim.

*MAX485 entegresini çıkartıp rx tx ve gnd pinlerini TTL dönüştürücü(pl2303) modulüne bağladığımda terminal ekranında çok güzel bir şekilde kodda yazdığım şekilde çıktı alıyorum.
*MAX485 entegresini takıp A B çıkışlarını CH340 modulüne bağlayıp veri gönderdiğimde ise işler tamamen karışıyor, veriler kodda yazılanlara göre çok alakasız gidiyor. A B bağlantıları acaba ters mi diye düşünüp terslediğimde yine aynı şekilde oluyor.
*CH340 modülünün çalışıp çalışmamasını da PLC'de kontrol ettik ve modül sağlam.

Şuan PIC - RS485 - PC bağlantısını başaramıyorum.

Tagli

CH340G haricinde bir çip kullanan bir modülle de denenmesini tavsiye ederim. Piyasadaki bazı ucuz CH340G'li RS485 modüllerinde DE hattı garip bir yöntemle sürülüyor: TX'i tersleyip DE'ye veriyor. Aslında bu şekilde bile sorunsuz veri gönderdiği gördüm ama yine de bence bu yöntem yanlış ve bir ihtimal bazı durumlarda çalışırken bazı durumlarda sorun çıkarıyor olabilir.

Ayrıca CH340G'nin Linux sürücüsünde parity ayarlama kısmını koymamışlar (veya başka bir hata var) ve 8N1 haricinde bir modda çalışmıyor. Windows sürücüsünde durum nedir bilmiyorum.
Gökçe Tağlıoğlu

DaRt

#4
AB pinleri ch340'a bağlanamaz. Rs485 testi için 2 adet modül gerekir. Ben dün akşam arduinouno, pic18f4550 ve 2 adet rs485 modül ile modbus haberleşmesi yaptım. 2 Adet modülün ve 2 adet mcu kartın varsa bağlantılarını anlatayım. Ayrıca ch340 ile rs485 bağlantısı yaparken DE pinini yüksek yapmak içi ch340 rts pinini de kullanmak gerek (ben mcu kullandığım için denemedim bu pini). Dolayısı ile modülde de bu pin çıkışı olmalı. Tabi bilgisayar tarafındaki ayarları da yapılmalı.

Düzelti: Ab pinleri ch340'a bağlanabilir belki. Bir pin gnd, bir pin rxd ucuna bağlanırsa veri alınabilir sanırım. Voltaj uyumuna dikkat etmek gerek.

Dogukannn

Alıntı yapılan: Tagli - 22 Mart 2017, 07:35:08
CH340G haricinde bir çip kullanan bir modülle de denenmesini tavsiye ederim. Piyasadaki bazı ucuz CH340G'li RS485 modüllerinde DE hattı garip bir yöntemle sürülüyor: TX'i tersleyip DE'ye veriyor. Aslında bu şekilde bile sorunsuz veri gönderdiği gördüm ama yine de bence bu yöntem yanlış ve bir ihtimal bazı durumlarda çalışırken bazı durumlarda sorun çıkarıyor olabilir.

Ayrıca CH340G'nin Linux sürücüsünde parity ayarlama kısmını koymamışlar (veya başka bir hata var) ve 8N1 haricinde bir modda çalışmıyor. Windows sürücüsünde durum nedir bilmiyorum.

Hocam bende inanın bu modülü alırken çok şaşırdım, çünkü kargo dahil fiyatı 10TL gibi bir fiyata geldi bana. Piyasadaki alternatiflerine baktığımda arada uçurum vardı resmen. Dolayısıyla ilk hata olduğunda direk PLC üzerine bilgisi olan birine gidip modülü kontrol ettik ve de 10TL bedavaymış diyerek 2 tane sipariş etti :) Ama ben bu ucuzluktan dolayı her hatada acaba bu modülden mi diyorum. Sizin tavsiye edebileceğiniz bir modül var mıdır?

Alıntı yapılan: DaRt - 22 Mart 2017, 07:39:46
AB pinleri ch340'a bağlanamaz. Rs485 testi için 2 adet modül gerekir. Ben dün akşam arduinouno, pic18f4550 ve 2 adet rs485 modül ile modbus haberleşmesi yaptım. 2 Adet modülün ve 2 adet mcu kartın varsa bağlantılarını anlatayım. Ayrıca ch340 ile rs485 bağlantısı yaparken DE pinini yüksek yapmak içi ch340 rts pinini de kullanmak gerek (ben mcu kullandığım için denemedim bu pini). Dolayısı ile modülde de bu pin çıkışı olmalı. Tabi bilgisayar tarafındaki ayarları da yapılmalı.

Düzelti: Ab pinleri ch340'a bağlanabilir belki. Bir pin gnd, bir pin rxd ucuna bağlanırsa veri alınabilir sanırım. Voltaj uyumuna dikkat etmek gerek.

Hocam modülün içine baktığımda içinde MAX485 var içinde R7 yazan yere de sonlandırma direnci için yer bırakmışlar sanırım ben onu dışarıdan lehimledim.

Elimde şuan yeterince MAX485 ve pic var, bağlantıyı siz nasıl yaptığınızı söylerseniz bende kendi tarafımı kontrol etmiş olurum. Hatta kendi devrenizde yazdığınız kodları da verebilirseniz yazdığım kodu da karşılaştırmış olurum, yazarken de bir referansım olur.

Bir değişiklik olacağını sanmıyorum ama acaba MAX485 yerine Texas'ın 75176 chipini mi denesem diyorum. İyi bir seçenekte Salih'in dediği gibi proteus kanadından simülasyon denemek sanırım.


Dogukannn

#6
Mesele enteresan bir hal aldı, kısa vadede çözdüm RS485 ile PC'ye istediğim verileri yolladım ama şu şekilde;

2 adet 75176 kullandım
1 adet PL2303 TTL dönüştürücü

Normalde 75176 çiplerinin birbirleriyle B-B A-A olması gerekirken, A-B A-B şeklinde bağlantı kurduğumda istediklerimi terminalde gördüm.

Edit: A-A B-B bağlantısı ile çalışıyor, anlaşılan nevir dönmesi söz konusu olmuş bir önceki bakışımda..

Tagli

Dogukannn, benim aldığım CH340G'li modül de buna benziyordu. Ama seninkinde tersleme için MOSFET kullanmışlar sanırım. Benimkinde 7400 (NAND kapısı) vardı.

Ama benim asıl sorunum parity bit meselesi idi çünkü Mark-Space parity kullanmam gerekiyordu. Bu sebeple CP2104'lü başka bir modül aldım.
Gökçe Tağlıoğlu

Dogukannn

Sizin geçen günkü mesajınızdan sonra internete baktım ve çok farklı çeşitlerde CH340G'li  modeller olduğunu farkettim ama büyük kısmında DaRt'ın kastettiği gibi MAX485 entegresi yok. Devreyi takip ettiğimde sanırım PNP Transistör kullanılmış. Parity konusuna gelirsek ben modulün bağlantı noktasına erişip değişiklik yapabiliyorum ama tuhaftır ki aldığım datada bir değişiklik olmuyor.