T

Elektrik Sayacından bilgi okuma

Başlatan turhan42, 06 Haziran 2013, 14:59:24

ete

Program C dilinde yazıldığı için çok iyi anlayamıyorum. Ancak RS485 olarak çalışıyor isen RE-DE  pinleri birleştirilip pic pinine bağlanması ve alma konumunda bu pinin LOW yapılması gerekir. Verme konumunda ise aynı pin HIGH yapılmalıdır.
Şayet bir komut vermiyorsan pin float konumundadır ve alma mı yapacağım verme mi yapacağım deyip şaşırır.

Diğer bir konu da haberleşme karşılıklı iki sistemin senkron içinde olmalarını gerektiren bir konudur. Verici bilgi yolladığı anda alıcıda alma konumunda olmalı ki alış veriş gerçekleşsin. Yoksa verici bilgiyi yolladı ama alıcı başka işlerle uğraşıyor ve gelen veriden haberi yok ise alışveriş gerçekleşmez. Bu tür durumları ortadan kaldırmak için insanlar bazı çareler düşünmüşler. Birinci çare verici yolladığı bilgininbaşına uyandırma ve preanbl denilen alınacak veri ile alakası olmayan veri paketi ekler.
Alıcı da USART kesme işlemi aktive edilerek geri planda port gözlenir. İlk veri biti gelir gelmez alıcı kesmeyi oluşturur. Aynı anda veri paketi akmaya devam ediyordur ama gelen veri uyandırma verisi olduğu için önemsizdir kaçırılması sorun yaratmaz. Böylece alıcı kesme oluşturup asıl verinin alındığı kısma gelir. İşte bu noktada gelen veri paketinin içine rastgele bir yerden dalmaktansa verici veri paketine bir işaretçi ekleyerek alıcının onu beklemesini sağlar. Dolayısıyla alıcı işaretçiyi bekler (Mesela"ETE" gibi) . Alıcı ETE ibaresini gördükten sonra peşinden gelen ve asıl alınması gereken data ları alarak işlemi sonlandırır.  Sağlıklı bir haberleşme sisteminin temeli budur. 

Pek çok alma komutunda senkron olmayacağı düşünülerek belirli bir süre alma konumunda bekleme yapması sağlanır.
Örneğin Basic komutları olan SERIN yada hserın komutları veri almak için  65535 ms bekler ve programı bu süre zarfında bloke eder. Sanırım C dilinde de durum aynıdır bununbaşka yolu yoktur. Bunu önlemek için komutlara Timeout süresi eklenir ve bu süre ile kullanıcı kendisi ne kadar veri beklenmesi gerektiğini belirler. Beklenen sürede veri gelmez ise bir etiket ismi verilerek programın oraya atlaması sağlanır. Tabiiki C dilindeki uygulamayı bilemiyorum.

Bu açıklamaların ışığında programını kendin yeniden değerlendir ve özellikle SN75176 nın RE-DE pinlerinin durumunu kontrol etmende yarar vardır.

Ete

rglcr

Merhabalar
Ben de sayaç okuma işi ile ilgilenmekteyim. benim sıkıntım bir seri olarak sayaçtan bilgilerin okunabildiği belirtilmekte. örneğin sadece aktif tüketimi okumak istersek mcu ile sayaç arasında nasıl bir iletişim kodu göndermemiz gerekir (sayaç obis kodu 1.8.0 ise )

ete

Bunları sayaca ait data sheet yada kullanım klavuzundan öğrenebilirsiniz. Çok spesifik bir soruyu her kes cevabı biliyormuş gibi sormuşsun. Genelde bu tür aletlerde bir register tablosu (register map) olmaktadır. Her bir registerin ne işe yaradığı bu tabloda belirtilir. Adresi bellidir. Tada yeri bellidir. Bu registerlerin içinden aktif tüketim değeri var ise onu seçeceksiniz ve ona ulaşmak için ne yapılması gerekiyorsa orada yazılanlara göre hareket edeceksiniz.

Ben kendi adıma söyleyeyim hiç bir elektrik sayacı ile haberleşmedim. haberleşen belki vardır. Ama bu olay sayac markaları arasında da farklılık gösterebilir. Bu nedenle bence kullanım klavuzunu iinceleyin.

Ete

rglcr

kullanım klavuzlarını ve obbis kodları inceledim mcu ile haberleşiğ 8 bitlik dataları almak istedim ancak denemeişlemine geçemedim. yazılımsal sorunu çözemedim çünkü ne yollayacağım karşıdan hangi hızda ne alacağım. forumlarda hep ifadeler yuvarlak bir şekilde yazılmış. net bilgi yok. acaba bu iec 1107 standardına ait pdf dosyaya sahip kimse varmı varsa paylaşırlarsaya da ergulucar44@hotmail  sevinirim .

rglcr

Merhabalar
Ben elektrik sayacından bilgi okuma işlemiyle uğraşmaya devam ediyorum ancak özellikle
sn ete ye benim sorum.
7E1 formatında data bitini öncelikle pic ile nasıl gönderebiliriz. (?=3F =8 bite tekabül ediyor. 7 bitlik formatta nasıl yollayabiliriz. (8 bitlik verileri kolayca gönderebiliyoruz.)
Haberleşmede kullanılan start biti even biti stop biti nasıl seçilmeli. ya da seçerken hangi kriterler göz önune alınır ki sayaç algılamasında sorun yaşanmasın.
sayacın normal enerji bağlantısı yapılmadan sadece rs485 portundan bilgi alınabilirmi.
Çalışmalarınızda başarılar.

ete

Seri haberleşmede genelde standart 8N1 sistemi kullanılıyor. 7E1 hiç kullanmadım gerek olmadı. Ancak kullanılması mümkün.
8N1 de parity biti kulanılmamaktadır. Dolayısıyla gelen 8 bitlik verinin tamamını bilgi olarak alırsınız. Bu durumda sistem 7E1 veya 7O1 şeklinde adlandırılmaktadır. 7E1 7bit+1 ad Even parity biti anlamına geliyor. 7O1 ise 7 bit + 1 ad Odd parity biti anlamına gelmektedir.  PBP da seçim de Define komutları ile yapılmaktadır.

DEFINE HSER_EVEN 1  '7E1 sistemi seçilmiş oldu
DEFINE HSER_ODD 1   '7O1 sistemi seçilmiş oldu

Bazen de 8 bit + Parity biti kullanılır. Bunun seçimide aşağıdaki şekilde yaılmaktadır.

DEFINE HSER_BITS 9

Sayaçtan en sağlıklı bilgi kullanımklavuzunda belşrtilen formatta bağlantı yapılarak alınır elbette. Bunuda sayac ile haşır neşir olmuş kişiler daha iyi bilir sanırım. Hiç elime saya bile almadım bu güne kadar. Ama eminim kullanım klavuzunda bir şeyler açıklamışlardır.

Son soru da cevaplayabileceğim bir şey değil. Ancak mantık kullanarak cevap verebilirimki mantığım Sayaca enerji vermeden
onunla haberleşemezsin diyor. Burada önemli olan sayac devresi enerjisini nereden ve nasıl almaktadır bunu anlamak gerekir.
RS485 sistemi master dan Slave initesine enerji taşımaz. Hal böyle olunca her sistem kendi enerjisine sahip olma zorunluluğu vardır.

Ete

rglcr

#21
Teşekkürler sn ete
Sayaçlar üzerinde dataları tutmak için  ayrıca pil var ama bilgilere ulaşım imkanı sağlar mı bilemiyorum.
sayaçla haberleşme üzerine çalışma yapan arkadaşların tecrübelerini bizimle paylaşmalarını
bekleyerek çalşmalara devam edelim .

ete

Pil, genelde hafızadaki bilgileri tutmak içindir. İşlemci için oldupunu sanmıyorum.
Aslında denemesi parayla değil deneyip emin olmak en iyisi bence.

Ete

rglcr

Sayaç enerjili iken haberleşmeyi başarabildikten sonra  onu da deneyeceğim. :)

mustys

konuya biraz katkımız olsun
sayaca RS485 yada optik port üzerinden baglandıktan sonra bi ilk sorgulama İEC62056 standartlarına göre
/?!\r\n
bu şekilde yapıyorum.sonrasında makel sayaclarda kısa güç profili için
ACK0Z6\r\n
sorgusu ile

0.0.0(100026211)
0.2.0(V10.91)
0.9.1(00:29:42)
0.9.2(23-09-18)
0.9.5(1)
1.8.0(000064.804*kWh)
1.8.1(000036.128*kWh)
1.8.2(000015.350*kWh)
1.8.3(000013.326*kWh)
1.8.4(000000.000*kWh)
1.6.0(000.004*kW)(23-09-17,04:19)
96.1.3(23-04-11)
96.2.5(23-04-11)
32.7.0(230.7)
31.7.0(000.0)
14.7.0(50.0)
33.7.0(0.00)
!

cevabını alabiliyoruz.

RS485 haberleşmeli sayaclar maliyet olarak biraz fazla o yuzden rs485 portu olmayan sayaclar içinde şöyle bir optik prob maceramız mevcut buyrun bi göz atın


aRci

merhaba paylaşım için teşekkürler acaba optik okuma devresinin çizimini paylaşabilirmisiniz. merakta olduğum bir çalışma sırf bunun için enson bir sayaç alıp denemek istiyorum

ahmet_zxc

Alıntı yapılan: ete - 09 Ocak 2015, 11:49:22Pil, genelde hafızadaki bilgileri tutmak içindir. İşlemci için oldupunu sanmıyorum.
Aslında denemesi parayla değil deneyip emin olmak en iyisi bence.

Ete

bu sayaçlar ömürlüdür ve ömrü boyunca hiç durmadan çalışır. enerji yok ise sadece ölçüm yapmaz ama işlemci çalışmaya devam eder.

çalıştığımız 4 farklı marka bu şekilde, istisnası varmı bilmiyorum.

mustys

Alıntı yapılan: aRci - 18 Eylül 2023, 17:33:03merhaba paylaşım için teşekkürler acaba optik okuma devresinin çizimini paylaşabilirmisiniz. merakta olduğum bir çalışma sırf bunun için enson bir sayaç alıp denemek istiyorum

Tabiki nedemek


mustys

Alıntı yapılan: ahmet_zxc - 18 Eylül 2023, 17:46:42bu sayaçlar ömürlüdür ve ömrü boyunca hiç durmadan çalışır. enerji yok ise sadece ölçüm yapmaz ama işlemci çalışmaya devam eder.

çalıştığımız 4 farklı marka bu şekilde, istisnası varmı bilmiyorum.

Sayacta enerji yok iken sanirim okuma tusuna basip sinirli sayida port uzerinden okumada yapabiliyorsunuz

Powered by EzPortal