c# da sayac okuma programı

Başlatan mfy40, 02 Ocak 2012, 00:31:54

mfy40

arkadaş merhaba kaç aydır bi işle uğraşıyorum elimde makel ve köhler sayacları var bunları c# la okumaya çalışıyorum uzaktan değil comport ile. ve kabloda bir tane sayac bağlı olacak. yani bir kaç tane sayacdan birini okuma gibi bi derdim yok. ama daha bi yol alamadım formu incelediğimde bir kaç tane arkadaşımızın bu işle ilgilendiklerini ve yaptıklarını gördüm ama kimse genel olarak bi açıklama yapmamış. lütfen yardımcı olurmusunuz bu işi nasıl yapabilirim. visual studio nun serialport nesnesini kullanıyorum bütün ayarları veriyorum sayactan nasıl cevap alabilirim ilgilenirseniz sevinirim. şimdiden teşekkür ediyorum

mir_as82

Arkadaşım ben bu şekilde bir proje yapmadım ama eğer sayaçtan data alabiliyorsan o datayı c# a göndermek o kadar zor değil. Sayaçsız veri gönderebiliyor musun C# a? bunu dene eğer bunu yapabiliyorsan sayaç tan veri okumaya çalış.

vitruvius

Kodlarınızı ve devre şemanızı görürsek daha çok yardımcı olabiliriz.

mfy40

#3
"Kodlarınızı ve devre şemanızı görürsek daha çok yardımcı olabiliriz."

cihazdan verinin gelmesi için cihaza komut göndermem gerekiyor göndermem gereken komut bu;

string komut;         
komut="/?!" + (char)13 + (char)10;


byte[] Dizi;
Dizi = Encoding.UTF8.GetBytes(komut);
serialPort1.Write(Dizi, 0, Dizi.Length); 

bunu gönderdiğim zaman cihazın kendini tanıtma mesajı göndermesi gerekiyor fakat serialPort1_DataReceived tetiklenmiyor ve cihazdan hiç bi veri gelmiyor bağlantı ayarlarını yanlış yapmış olsam veri gelir ama anlamsız bi veri gelir benim sorunum cihaz hiç bi şekilde veri göndermiyor kodların neresinde yanlışlık yapıyorum bilmiyorum acaba byte gönderirken mi hata yapıyorum ilgilendiğiniz için teşekkür ederim

mfy40

"Arkadaşım ben bu şekilde bir proje yapmadım ama eğer sayaçtan data alabiliyorsan o datayı c# a göndermek o kadar zor değil. Sayaçsız veri gönderebiliyor musun C# a? bunu dene eğer bunu yapabiliyorsan sayaç tan veri okumaya çalış."

Sayaçsız veri gönderebiliyor musun C# a? derken neyi kasdettiniz anlamadım. sayactan datanın gelip gelmediğini nasıl anlayabilirim. normalde kodu gönderince bana verilerin gelmesi gerekmiyormu. sayaca veri gönderirken hata vermiyor ama hiç bi şekilde de cevap vermiyor

ilginiz için teşekkür ederim.



RcALTIN

şimdi buradaki insanların elektrik sayaçlarıyla çok içli dışlı olduğunu sanmıyorum, o yüzden sayacın derdi nedir bunu bilemiyoruz. "acaba kendi yazılımım doğru mu çalışmıyor?" diyorsan; denemek için seri portun 2. ve 3. pinlerini kısadevre yap, gönderdiğin veriyi aynen geri alman gerekiyor(datareceived event tetiklenmeli) olmuyorsa event veya rs232 donanımınla alakalı bir sıkıntın var demektir, bir sıkıntı yoksa sonrası sayacın varsa datasheetini okuyup anlamaya kalıyor...
KİMSEYİ ENGELLEDİĞİM YOK, ÖZEL İLETİ DEVRE DIŞI !

mfy40

donanımı başka bi iş için kullandım donanımda sıkıntı olduğunu sanmıyorum kaldı ki sayacın kendi programıyla okuyabiliyorum sayacı. eventte sorun varmı yokmu bilmiyorum ama programı kırıp adım adım kodları incelediğimde datareceived eventine hiç geçiş yapmıyor. evente yazdığım kodlarda sıkıntı olsa bile programın eventte girmesi lazımdı. galiba benim sıkıntım sayactan mesaj almak için gönderdiğim komutta bu olayın sayaçla bi alakası yok normal bi elektronik alet nasıl kontrol ediliyorsa aynı şekilde çalışıyor. göndermem gereken kod belli;

string komut;         
komut="/?!" + (char)13 + (char)10;


byte[] Dizi;
Dizi = Encoding.UTF8.GetBytes(komut);
serialPort1.Write(Dizi, 0, Dizi.Length);


benim takıldığım yer acaba diziyi gönderirken farklı bi formatta mı göndermem gerekiyor. Encoding.UTF8.GetBytes metodunu kullandım ama farklı bişey mi kullanmam gerekiyor yada write metodu farklı bicimlerde yapılıyor acaba farklı bi bicimde mi göndermem gerekiyordu.