DVP04PT-S PT100 ANALOG VERİ OKUMA C# veya VB - HATALI VERİ

Katılım
7 Ocak 2014
Mesajlar
26
Puanları
1
Yaş
32
Gönderdiğim verilerde böyle saçma cevap alıyorum yardımcı olurmusunuz sebebi nedir?... Cihaz her kod gönderişimde hataya düşüyor.. Bilgisayara DELTA IFD6500 Convertor ile bağlantısı yapılı
Biz yazan ben siz yazan gelen data...


AYRICA DELTANIN TEST PROGRAMINDA DENEDIM SICAKLIKLARI NORMAL OLARAK GÖSTERİYOR BİLGİSAYARDA, CİHAZIM SORUNSUZDUR...


BIZ: ==> :01034076000145
SIZ: ==> ?????#??j
BIZ: ==> :01034076000145
SIZ: ==> ??????#;?I?


YANLIŞIM NEREDEDİR ACABA BİLGİNİZ VARMI?? HABERLEŞME 9600 7 Even 1 ASCİİ serialport a yazdığım kod aynı bu şekilde :01034076000145 Yardım lütfen
 
Merhaba,
Ascii olarak gönderdiğiniz stringin en sonuna \r\n eklediniz mi? Okuma isteğini yaptığınız ve gelen veriyi okuduğunuz kod kısmını gönderirseniz daha rahat yardımcı olunabilir. Kolay gelsin

Gönderdiğim verilerde böyle saçma cevap alıyorum yardımcı olurmusunuz sebebi nedir?... Cihaz her kod gönderişimde hataya düşüyor.. Bilgisayara DELTA IFD6500 Convertor ile bağlantısı yapılı
Biz yazan ben siz yazan gelen data...


AYRICA DELTANIN TEST PROGRAMINDA DENEDIM SICAKLIKLARI NORMAL OLARAK GÖSTERİYOR BİLGİSAYARDA, CİHAZIM SORUNSUZDUR...


BIZ: ==> :01034076000145
SIZ: ==> ?????#??j
BIZ: ==> :01034076000145
SIZ: ==> ??????#;?I?


YANLIŞIM NEREDEDİR ACABA BİLGİNİZ VARMI?? HABERLEŞME 9600 7 Even 1 ASCİİ serialport a yazdığım kod aynı bu şekilde :01034076000145 Yardım lütfen
 
GÖNDERDİĞİM KOD...

string datatop = textBox1.Text;
//:01034076000145


richTextBox1.Text += "\r\n BIZ: ==> " + datatop + "\r\n";


serialPort1.WriteLine(datatop + "\r\n");


CEVAP ALMA KISMI

string deneme = "";
Thread.Sleep(100);
deneme = serialPort1.ReadLine().ToString();
if (deneme == "")
{
}
else
{
if (deneme.IndexOf("A1030") != -1 || deneme.IndexOf("01030") != -1)
{
listBox1.Items.Add(deneme);
kodcoz(deneme);
}
}


KOD COZ KISMINDADA BASTAKİ SORU İŞARETLERİNİ FELAN SILIYOR BANA SICAKLIK DEGERİ VERİYOR ARADA DOĞRU GELSEDE ÇOK FAZLA HATA ALIYORUM VE ÇOK FAZLA CİHAZ ERROR KISMINA DÜŞÜYOR...
 
Merhaba,
ReadLine metodu yerine ReadExisting metodunu kullanabilirsiniz. WriteLine yerine de Write metodunu deneyin.İşleme başlamadan önce SerialPort.DiscardInBuffer diyerek buffer ı temizlemenizi öneririm. ThreadSleep süresini de biraz daha uzun tutabilirsiniz denemek için. Sık sık hata almanızın sebebi senkronizasyon problemi olabilir. Buffer da kalan veri varsa ve bunun üzerine yeni veri gelirse siz kodu çözerken hatalar ortaya çıkabilir. Bunları deneyin öncelikle.
 
Çok teşekkürler cevabın için hemen şuan deniyorum... sonuçlarını mutlaka yazacağım...
 
Merhaba,
ReadLine metodu yerine ReadExisting metodunu kullanabilirsiniz. WriteLine yerine de Write metodunu deneyin.İşleme başlamadan önce SerialPort.DiscardInBuffer diyerek buffer ı temizlemenizi öneririm. ThreadSleep süresini de biraz daha uzun tutabilirsiniz denemek için. Sık sık hata almanızın sebebi senkronizasyon problemi olabilir. Buffer da kalan veri varsa ve bunun üzerine yeni veri gelirse siz kodu çözerken hatalar ortaya çıkabilir. Bunları deneyin öncelikle.

Çok Teşekkürler Kardeşim.... Bu bilgiler Süper ve harika ötesi yardımcı oldu Şuan sorunsuz gözüküyor fakat Sürekli aynı değeri alıyorum pt100 kopmuş :D hafızada kalan değeri veriyor şimdi.... :) PT100 bağlayınca tekrardanda deniyeceğim ama 100 de 100 doğru gibi :))) Cihaz hataya düşüyor ama hatasız cevap veriyor bu benim için çok önemliydi... Süpersin kardeşim!!

Aklıma Gelmişken Seko cihazları hakkında bilgin varmı? bir kodun bazı kısımlarını çözümleyemedim CRC kodu diyeceğim ama hesapladım değil sanırsam...

örn...

010303E8000A45BD - 01 slave id - 03 okuma - 03E8 adres - SONRAKILER HAKKINDA FIKRIM YOK CRC KODU DEĞİL GİBİ... BU KOD SORUNSUZ ÇALIŞIYOR AYNI ŞEKİLDE

2. KOD ÖRN
0103044C00148522 - 044C adres
 
000A o adresten itibaren 10 adet veri okuyacağını söylüyor. A desimal 10 olduğu için. Kalan 4 karakter crc olabilir. Modbus haberleşme komutlarını bulup bakarsan net olarak anlayabilirsin. crc hesaplaması cihazdan cihaza 1 byte ya da 2 byte olabilir diye biliyorum.
 
000A o adresten itibaren 10 adet veri okuyacağını söylüyor. A desimal 10 olduğu için. Kalan 4 karakter crc olabilir. Modbus haberleşme komutlarını bulup bakarsan net olarak anlayabilirsin. crc hesaplaması cihazdan cihaza 1 byte ya da 2 byte olabilir diye biliyorum.
EVET HAKLISIN ASLINDA OKUYACAĞI DATA SAYISI OLABİLİR ÇOK MANTIKLI AMA 2 BYTELIK CRC HESAPLAYAN BİR DLL İM VAR AMA BİR TÜRLÜ SONDAKİ 4 LÜYE EŞİT CRC KODU ÇIKARAMADIM... Gerçi cihaz yeni geldi biraz daha kurcalayıp denemem gerekiyor... Emek harcamadan kazanç olmaz tabiki...
 
evet kurcaladıkça çıkar bişeyler. internette çeşitli crc hesaplama yöntemleri var. hangisine uyduğunu bulabilirsin. kolay gelsin
 

Forum istatistikleri

Konular
128,158
Mesajlar
915,531
Kullanıcılar
449,906
Son üye
maniacrelax

Yeni konular

Geri
Üst