Bitirme Projesi Çalışmalarımız.
Özet
Günümüzde
telefonlarımızın bataryaları, arabalarımızın aküleri ve evimizde bulunan tüm
cihazların ihtiyaç duyduğu elektrik enerjisinin
tüketiminden başlayarak üretimine kadar her aşamada ölçülmesi ile
sistemin hata analizi , kontrolü
,verimlilik için yapılacak iyileştirmelerin hepsinin yapılmasına olanak sağlar.
Bu sistemin en altında bulunan tüketiciler harcadıkları enerjinin tüketimini
anlık olarak yakından takip ederek, geçmiş dönemlere ait tüketim bilgilerine
ulaşmak isterler. Kullanılan elektrik enerjisinin miktarını takip eden tüketiciler daha önce ne kadar harcadıklarını
bilmedikleri için bu konuda bilinçlenerek
, elektrik tüketiminde daha dikkatli bir şekilde davranması hem kendi bütçesine
katkı sağladığı gibi hem de ülke ekonomisine katkıda bulunmuş olur.
Gerçekleşen
teknolojik çalışmaların sayesi ile elektrik , elektronik , yazılım ve özellikle
bir ağ teknolojisi olan internet arabiriminin gelişimi bilginin daha kolay yayılmasını
sağladığı gibi bilginin hızlı bir şekilde ulaşabilme imkanı sağlamaktadır. Kullanılan
elektrik miktarını ölçüp faturalandırma yapmamızı sağlayan elektrik sayacı da bu her geçen gün gelişen teknolojiye (eepromun)
, yüksek çözünürlüklü işlemcilerin
artması) paralel olarak yapısal ve fonksiyonel değişimi söz konusudur. Eskiden kullanılan elektromekanik sayaçlar yapısını
elektronik elektrik sayaçlarına bırakarak ölçüm hataları, sayaç okuma sırasındaki
ölçüm hataları, sayaç üzerinde gerçekleştirilmesi yasak oynamalar, vb. kayıpların azaltılmasına yardımcı olmuştur.
BÖLÜM 1 .GİRİŞ
Elektrik
sisteminde bulunan elektronik sayaçları uzaktan okumanın elbette ki birçok yolu
bulunmaktadır ve teknoloji geliştikçe de bunun sayısı artacaktır. Bunlar
sayaçtaki bilgilerin yerel ağ üzerinden kablolu yada kablosuz olarak internete
sunulması , GSM modülleri ile SMS yada GRPS teknolojisi ile uzaktan
görüntülenebilmesi , herhangi bir bölgede birden fazla bulunan sayacın RF
iletişim teknolojisiyle tekbir noktada toplanarak uzaktan erişime açılmasını bu
yollar arasında gösterebiliriz. Çözüme giden yollardan herhangi birini tercih
etmeden önce ihtiyaçlar belirlenmeli ve buna uygun en ekonomik yol
seçilmelidir. Örnek olarak tekbir sayacın verilerine uzaktan erişiminin
sağlanarak, geçmişe yönelik bilgilerinin analizini çıkartmak istersek, bunu hem
donanımımızı geliştirerek hem de uzaktan toplanan verilerin internet üzerinde
düzenli bir biçimde kaydedilmesini ele alabiliriz. Eğer ikinci seçeneği
seçersek bu durumda çözüm yolları arasından bizim için en uygun olanını
seçmemiz gerekir. GSM teknolojilerini kullanmamız durumunda uzaktan erişim
sırasında okunan her veri için GSM firmasına ödeme yapmak durumunda
olduğumuzdan dolayı bu çözüm bizim için pek uygun sayılmaz. Eğer sayacın
bulunduğu yerde internet bağlantısı bulunuyorsa, yerel ağ üzerinden erişimin
sağlanması bizim için fazladan bir ekonomik gider olarak karşımıza
çıkmayacaktır. Bu açıdan bu çözümün seçilmesi ekonomik yoldan ve donanım
açısından en uygun olanı olarak gözükmektedir.
Uygulamamızda
sayaçta bulunan verilerin yerel ağ üzerinden uzaktan erişim modelini kullandık.
Sayaç ile mikro denetleyici , mikro denetleyici ile Ethernet modülünün haberleştirilmesi
donanım yönünden bu yönteme çözüm olarak ele alınabilir. Daha sonraki bölümlerde
ise bu uygulama modelinin işleyişini, sisteme uygulama aşamalarını teknik ,
teorik ve kişisel deneyimlerimizin yer aldığı kısımlar yer almaktadır.
BÖLÜM 2 .ELEKTRONİK
ELEKTRİK SAYACINDAN VERİLERİN ALINMASI
Projemizin en önemli aşamalarından
birisi de evlerimizde, işyerlerimizde, fabrikalarımızda kullanmış olduğumuz
elektriğin ölçülmesini, faturalandırılmasını sağlayan elektronik elektrik
sayacından verilerin alınması birkaç türlü olsa da seçtiğimiz yol RS485 hattı
üzerinden sayaca ait anlık akım gerilim güç gibi değerlerin alınmasıdır.
LUNA Aktif Reaktif Trifaze Elektronik Elekik Sayacının çeşitli iletişim protokolleri
ile verileri alınabilir. Bunlar Rs232 ve Rs 485.Rs 232 ile sadece bir sayaçtan
okuma gerçekleştirebilirken Rs 485 ile birden fazla sayaçtan veri alabiliyoruz.
Okuma yapılacak sayacın fazla olmasıyla hangi sayacın okunacağı ,okuma
isteğinde sayaç numarasının yazılması ile belirtilir. Bu şekilde sadece seçilen
sayaç ile bağlantı kurular. Sayaçtan veri okuma yaparken verilen okuma isteği
“/?XXXXXXXX!CRLF” olarak ifade edilir. (X = Sayaç No). Bu sayede her sayaca ait
her fazın akım gerilim frekans güç sayısı ayrıca güçleri de sayaçtan
alabilmekteyiz. Rs 485 çıkışı mevcuttur. Biz bu çıkışı Rs485/232 çevirici devre
yardımıyla sayaca ait anlık akım, gerilim, cos fi gibi değerleri PIC 18lf4685 e
yazdığımız C 18 yazılımı ile internet ortamına sunmaktayız. [1]
PIC18f4620 yani sayaç ile
iletişim kurulan pic “/?XXXXXXXX!CRLF”
komutunu gönderdiğinde sayaçtan çıkan veriler RS485-232 çevirici
üzerinden geri gelmektedir. Ancak buradaki önemli bir nokta göndermiş olduğumuz
komut dizisinde en sonundaki CRLF komutudur.PIC18f4620’e CCS programlama
dilini kullanarak yazmış olduğumuz yazılımda fprintf(web,"%s",sayac);
ile string değerler gönderebilmekteyiz. Ancak sayaçtan veri okumak için
göndermiş olduğumuz dizinin son karakterleri CRLF string bir değer olmayıp
ASCII tabloda değerleri olan ve newline anlamına gelen enter’in kodudur. Bu
amaçla gönderilen kod ;
char sentdata[]={0x2F,0x3F,0x21,0x0D,0x0A};
fputs(sentdata,sayac);
ASCII
tabanlı sistemlerde LF (Line feed,
'\n'
,0x0A), CR(Carriage return, '\r'
,0x0D),CR ‘nin LF’yi
takip etmesi (CR+LF, '\r\n'
,0x0D0A)
komutları ile yazdırma işlemi yapılır. Bu komutların kullanılmış olduğu
sistemler;
·
CR: Commodore 8-bit
makineler,Acorn BBC,Apple II, Max OS …
·
RS: Qnx pre-POSIX …
·
LF+CR: Acorn BBC ve RISC Os
·
CR+LF: Microsoft Windows, DEC TOPS-10,
Symbian OS, Palm OS,Amstrad [2]
Char Oct Dec Hex Control-Key Control Action
|
|||||
NUL 0 0
0
^@ Nu l character
|
|||||
SOH 1 1
1
^A Start of heading, = console interrupt
|
|||||
STX 2
2
2
^B Start of text, maintenance mode
on HP console
|
|||||
ETX 3 3
3
^C End of text
|
|||||
EOT 4 4
4
^D End of transmission, not the same as ETB
|
|||||
ENQ 5 5
5
^E Enquiry, goes with ACK; old HP flow control
|
|||||
ACK 6 6
6
^F Acknowledge, clears ENQ logon hand
|
|||||
BEL 7
7
7
^G Be l, rings the be l...
|
|||||
BS 10 8
8
^H Backspace, works on HP terminals/computers
|
|||||
HT 11 9
9
^I Horizontal tab, move to next tab stop
|
|||||
LF 12 10
a
^J Line Feed
|
|||||
VT 13 11
b
^K Vertical tab
|
|||||
FF 14 12
c
^L Form Feed, page eject
|
|||||
CR 15 13
d
^M Carriage Return
|
|||||
SO 16 14
e
^N Shift Out, alternate character set
|
|||||
SI 17 15
f
^O Shift In, resume defaultn character set
|
|||||
DLE 20
16
10
^P Data link escape
|
|||||
DC1
|
21
|
17
|
11
|
^Q
|
XON, with XOFF to pause listings; ":okay to send".
|
DC2
|
22
|
18
|
12
|
^R
|
Device control 2, block-mode flow control
|
Tablo 2.0.1 Kontrol Kanalları
Seri No
|
0.0.0
|
0.0(00000043)\
|
|
Sayaç
Saati
|
0.9.1
|
0.9.1(17:33:59)\0D
|
|
Sayaç
Tarihi
|
0.9.2
|
0.9.2(13-12-26)\0D
|
|
Gün
|
0.9.5
|
0.9.5(4)\0D
|
|
Demant Bilgileri
|
1.6.0
|
1.6.0(000.120*kW)(13-12-21,15:30)\0D
|
|
T
|
1.8.0
|
1.8.0(000000.753*kWh)\0D
|
|
T1
|
1.8.1
|
5.8.0(000000.000*kVArh)\0D
|
|
T2
|
1.8.2
|
8.8.0(000000.000*kVArh)\0D
|
|
T3
|
1.8.3
|
32.7.0(225.4V)\0D
|
|
T4
|
1.8.4
|
31.7.0(000.000A)\0D
|
|
Ri
|
5.8.0
|
33.7.0(+1.00)\0D
|
|
Rc
|
8.8.0
|
52.7.0(225.6V)\0D
|
|
I1rms
|
31.7.0
|
51.7.0(000.000A)\0D
|
|
V1rms
|
32.7.0
|
53.7.0(+1.00)\0D
|
|
cosPhi1
|
33.7.0
|
72.7.0(226.3V)\0D
|
|
I2rms
|
51.7.0
|
71.7.0(000.000A)\0D
|
|
V2rms
|
52.7.0
|
73.7.0(+1.00)\0D
|
|
cosPhi2
|
53.7.0
|
34.7.0(50.0Hz)\0D
|
|
I3rms
|
71.7.0
|
54.7.0(50.0Hz)\0D
|
|
V3rms
|
72.7.0
|
74.7.0(50.0Hz)!\0D
|
|
S
|
Tablo 2.0.2. Sayaçtan Alınan Veri Kod ve Değerleri
Projemizde
sayaca doğru kod dizimini göndermek ve sayaçtan gelen verileri analiz etmek
amacıyla çalışmalara PC SeriPort’u ile başlanıp bunun üzerinden ilerlemiştir.
PC’nin seriportu ile sayacımızı aradaki dönüştürücü sayesinde bağlayıp veri
gönderme ve alma başarı ile gerçekleştirilmiştir.
Seriporttan
gönderilen kod dizisi : 2f 3f 21 0d 0a şeklinde olup en sondaki 0d 0a CRLF’e tekabül etmektedir. Gönderilen veriye
karşılık sayaç tarafından sayaç bilgileri gelerek sayaca ait bilgileri PC
serialportu tarafında okunmuştur. Bundan sonraki aşamada gelen bu verileri
doğrudan PIC 18f4620 ‘e göndererek proje devam etmiştir.
2.1.1 Elektronik Elektrik Sayaç
Projemizde
kullanmış olduğumuz sayaç LUNA Aktif Reaktif Trifaze Elektronik Elektrik Sayac;
·
EN 50470, EN62052-11
ve EN 62053-23 standartlarına uygun,
·
Aktif enerji tahakkuku
için C sınıfı %0,5 hassasiyetli ölçüm ve reaktif enerji için A sınıfı %2
hassasiyetli ölçüm yapan,
·
8 ayrı zaman dilimine
4 ayrı tarifede fiyatlandırma için programlanabilen,
·
bina içi ve dışı
kullanıma uygun,
·
P54 koruma sınıflı,
·
Elektrik dağıtım
firmalarının istediği voltaj, akım, frekans, demant, maksimum demant, yük
profili, quadrant bilgisi, akım yönü gibi tüm özellikleri ölçüp hafızasında
saklayan,
·
Hem gövde kapağının
hem de klemens kapağının uygunsuz açılmasını takip edip hafızasına alan,
·
Üstündeki optik pot
vasıtası ile el terminaliyle okuma sağlayabilen,
·
Standart olarak
bulunan RS485 portları ile uzaktan okuma sistemlerine sahiptir. [1] [3]
2.1.2 RS485-RS232 Çevirici
Şekil 2. 0.5 Rs485
Rs232 Çevirici Modülü
Sayaçtan
elden ettiğimiz verilerin mikrodenetleyici tarafından yorumlanabilmesi
kullanmış olduğumuz ATC-106 izolasyonlu arabirim çevirici;
·
RS-232C, RS-422,
RS-485 standartlarına uygun,
·
Yüksek voltaj
korumalı (3500V) olup,
·
Hızlı Geçici
Voltaj Süpresörü
(TVS) ile yıldırım ve yüksek voltajdan oluşan etkiyi
verimli bir şekilde (ESD) önleyen,
·
PC, IPC veya
taşınabilir bilgisayarınızı RS-232 arabirim
bağlantısına 9 PIN
dişi konnektör ile
bağlanabilen,
·
RS-232 sinyalini,
düzenli RS-485 sinyaline çevirebilme özelliğine sahiptir. [3] [4]
2.1.3 MAX232 Entegresi
MAX232 entegresi, EIA-232
protokolü ile TTL/CMOS uyumlu
entegrelerin gerilim seviyelerinin uyumlu
çalışabilmesi için üretilmiştir.
MAX232 entegresinin pin numaraları ve pin isimleri Şekil 3’de görülmektedir. İçerisinde dört tane gerilim dönüştürücüsü
vardır. Bunlardan ikisi transmitter(alıcı),
diğer ikisi de receiver(verici) olarak adlandırılmaktadır. Bu dönüştürücüler, gerilim
seviyesi dönüştürmesinin yanında
Çizelge 4.3’ten de görüleceği üzere,
inverter(tersleyici) görevi de yapmaktadırlar.
Her bir verici, girişlerine bağlanan EIA-232 pinlerinin gerilim seviyelerini 5V TTL/CMOS gerilim seviyelerine dönüştürerek çıkışlarından vermektedir. Her bir alıcı, girişlerine
bağlanan 5V TTL/CMOS gerilim seviyelerini
EIA-232 gerilim seviyelerine dönüştürerek
çıkışlarından vermektedir.
Transmitter
Inputs
|
Transmitter
Outputs
|
Transmitter
Inputs
|
Transmitter
Outputs
|
High Level
|
Low Level
|
High Level
|
Low Level
|
Low Level
|
High Level
|
Low Level
|
High
Level
|
Şekil 2.0.6 MAX232 Mantıksal Diyagramı
Şekil 2.0.7 MAX232 Tipik Çalışma Devresi
Seri bir linkteki verici veya sürücü
belli bir anda bir bit olmak üzere, bitleri sırasıyla yollar. Linkte, her bir
yön ayrı bir hat olabileceği gibi, ortak kullanılan bir hatta olabilir. Yani
gönderici, dönüşleri aynı hattan alır. Bir linkteki veri akışının kontrolünü
için gerekli sinyallerden biri saat (clock) sinyali veya zamanlama frekansıdır.
Hem gönderen hem de alan cihaz bir bitin ne zaman gönderileceğine ya da
alınacağına karar verirken bir saat sinyal kullanır. İki çeşit seri bilgi
gönderme formatı vardır.
2.2.1. Senkron Veri İletimi
Senkron veri gönderirken, sistemdeki
tüm cihaz ya birisinin ürettiği ya da dışarıda bir cihaz tarafından üretilen
clock saat sinyalini kullanırlar. Gönderilen her bit clockun geçişinde (yükselen veya alçalan kenarından) sonraki
belirli bir zamanda gönderilmektedir. Aynı zamanda alıcı da gelen biti okumak
için clock geçişlerini kullanır. [5]
Senkron
veri göndermede, bit gönderimini başlatırken yâda bitirirken çeşitli sinyaller
kullanır. Bunlar başlama stop bitleri olabileceği gibi özgün sinyallerde
olabilmektedir.
Senkron
haberleşmede donanımlar arası uzaklık 15 feet ve daha kısa olmak üzere kablo
kullanılır. Onun için donanımlar arası mesafe eğer uzun mesafeli ise uygun
olmamaktadır. Ayrıca bu durumda senkron veri iletimi, clock sinyalinin iletimi
parazit nedeniyle bozulduğu için pratik değildir.
Şekil 2.0.9 Senkron Veri İletişimi
2.2.2. ASenkron Veri İletimi
Asenkron
veri iletiminde donanımlar arası clock sinyali bulunmamaktadır. Bunun nedeni
her bir taraftaki cihaz kendi sinyalini sunmaktadır. Ancak, uçların clock
frekanslarında anlaşmaları ve clocklarında uyumlu olmaları gerekir. İletilen
her baytta saatleri eşlemek üzere bir Start ve gönderilen dataların bittiğini
belirtmek üzere bir veya daha fazla Stop biti bulunmaktadır. [5]
Asenkron
veri iletiminde bulunan cihazlar, PC, modem, gömülü sistemler gibi Rs-232,
Rs-485 gibi portlar.
Bir
asenkron veri gönderirken transfer sırasında clock sinyalini her iki taraf
ayarladığı için bu çeşitli formatlarda olabilmektedir. Bunların en yaygın
olarak kullanılan olan 8-N-1 dir. Gönderici donanım her bir gönderdiği baytı, 1
adet Start bitini takiben 0 nolu bitten (En az anlamlı -LSB:least significant
bit-) başlayarak 8 veri biti ve 1 adet Stop biti olarak yollar.(Bakınız Şekil
2.0.10.)
-Start bit:
Bir karakterin gönderilmeye başlandığını bildirmek için kullanılır. Her zaman
transferin ilk biti olarak gönderilir.
-Data bits:
Veri bitlerini oluşturan gruptur.
-Parity bit:
Transfer edilen karakterlerin karşı tarafa doğru gönderilip gönderilmediğini
kontrol etmek için kullanılan bittir. Eğer alıcı, alınan parity biti ile
hesaplanan parity bitinin eşit olmadığını tespit ederse, hata verir ve o andaki
karakteri kabul etmez. Parite biti Çift, tek, iz ya da boşluk
(Even,Odd,Mark,Space)olabilmektedir. Çift(Even) parite, parite bitinin
kendindeki ve veri bitlerindeki 1’lerin toplamı sayısının çift olmasını
sağlayacak şekilde set edildiğini belirtir. Tek(Odd) parite ise, aynı şekilde
1’lerin toplam sayısının tek olmasını sağlayacak şekilde set edilmektedir. İz
parite (Mark) ve boşluk (Space) parite sabit parametrelerdir. İz parite daimi
olarak 1’dir ve boşluk parite de 0’dır.Böyle oldukları için iz ve boşluk
pariteleri hata göstergesi olarak kullanışlı olmamaktadır. Örneğin başka bir
format olan 7-E-1 formatını ele alalım. Gönderici 1 Start bitini takiben 7 veri
biti,1 parite biti ve 1 Stop biti gönderir.
-Stop bit:
Karakterin bittiğini gösterir. Karakterler arasında boş ya da ölü zamanlar
sağlar. Stop biti gönderildikten sonra istenildiği zaman yeni bilgi
gönderilebilir.
- Baud:
Bit/sn. olarak ifade edilen birim zamanda (saniyede) iletilen bit sayısını
ifade etmektedir. Analog sinyaldeki değişim hızıdır.
Data Biti
|
Çift
(Even) Parite Biti
|
Tek(Odd)
Parite Biti
|
0000000
|
0
|
1
|
0000001
|
1
|
0
|
0000010
|
1
|
0
|
0000011
|
0
|
1
|
0000100
|
1
|
0
|
1111110
|
0
|
1
|
1111111
|
1
|
0
|
Start
bitiyle başlayıp Stop bitiyle biten aralıktaki değer Word olarak adlandırılır.
Word içindeki veri bitleri karakter tanımlarlar. Bunlar, kimi linklerde metin
(harf ya da rakam) karakterlerini temsi ederken diğer linklerde metin
karakterleriyle hiç ilgisi olmayan ikili (binary) değerleri temsil ederler.
Transfer edilen karakter sayısı, bit hızıyla Word’deki bitlerin sayısına
eşittir. Her iletilen baytta bir Start bir de Stop biti ekleme iletim süresini
%25 artırır (çünkü Word’de bu iki birlikte 110 bit bulur).8-N-1 formatında bir
baytın iletim süresi bitin iletim süresinin 1/10'udur.Yani 9600 bps hızında,
saniyede 960bayt iletilmektedir.
2.2.3. RS232
RS-232 iki cihaz arasında bilgi alışverişine yönelik olarak tasarlanmıştır. Mesafe 50 ile 100 feet (15-30 m)
arasında değişebilmektedir.
Bu noktada kablo tipi ve bit hızı önemli
rol oynar. Bir adaptör yardımıyla farklı tip arabirime
çevrilebilmektedir. Basit bir
devre kullakullanarak bir RS-232 portu, bir çok cihaza bağlanabilen ve daha uzun mesafelerde çalışabilen bir RS-485’e çevirmek
mümkündür.
RS-232
linklerde dengesiz (unbalanced) hatlar kullanılır.
Dengesizlik sakınılması
gereken bir şey gibi görünmekle birlikte, burada,
hatlardaki sinyallerin elektriksel karakteristiklerine atıfta bulunulmaktadır. Dengesiz
bir hat, sinyalin
sinyal voltajının tek
bir tele tatbik edildiği ve tüm sinyal gerilimlerinin tek bir toprağı referans aldıkları bir hattır. Bu tip bir arabirime tek-uçluda denilmektedir. Dengeli ya da fark (differantial) hatlarında her bir sinyal için, biri diğerindeki sinyalin tersini (inverse) taşıyan iki tel kullanılır.
RS-232’nin bazı yönlerden avantajları vardır.
•
Her PC’de bir ve daha fazla bulunur. Yeni PC’ler
USB
gibi
arabirimleri desteklemektedir. Fakat RS-232
USB’nin yapamadığı şeyleri yapar.
• Mikrokontrolörde, arabirim yongaları
bir 5 V seri portu RS-232 ye çevirebilirler.
• Linkler 50 ya da 100 feet uzunlukta olabilir.
Çoğu cihazlardaki arabirmler uzun
mesafelere yönelik
değildirler. USB linkler 16 feet olabilmektedirler. PC paralel
arabirimi 10-15 feet, IEEE-1284 tip B sürücülerle ise 30 feet olabilmektedir. Oysa RS-232 çok daha uzun
kablolarla da iş görebilir. Her RS-232 bir modeme
bağlanırsa, bu durumda telefon şebekesini
tüm dünyaya iletim amacıyla kullanmak
mümkündür. [1]= Her yönüyle seri port / Jan Axelson, çeviren Cihan Gerçek
; editör Gökhan Dinçer
• 2- yollu bir link için sadece üç tele ihtiyaç vardır. Paralel linkte sekiz adet veri hattıyla iki ve daha fazla kontrol sinyali ve
birkaç da toprak hattı bulunur. Kablolama
maliyeti yanında bir de konektör
sorunu vardır. [5]
Dezavantajları ise şunlardır:
• Linkin karşı ucu
paralel veri gerektiriyorsa, gelen veriyi paralel
veriye dönüştürmek
zorunda kalacaktır. Ancak bu sorun bir UART kullanarak
kolaylıkla çözülebilir.
• Çok kullanışlı olmaları nedeniyle
boş seri portu bulmak neredeyse imkansız gibidir.PC’lerde çok sayıda seri port bulunur.
Ancak sistem bunların her biri için bir kesme istek hattı tahsis edememektedir.
Bir çok mikrokontrolörde
donanımda yalnızca bir
tane seri port bulunmaktadır.
• Bir
linkte ikiden fazla cihaz
bulunmayabilir.
• Belirlenen en yüksek hız 20,000 bps (bit per second)’dir. Oysa, genellikle kısa linklerde, bunun üzerine çıkan, pek çok arabirim bulunmaktadır.
• Çok
uzun linklerde farklı arabirim gerekebilir. [5]
Daha yüksek hız, daha uzun link ve daha çok düğüm olması halinde
RS-485 dengeli arabirimi bir çözüm olabilir.
2.2.4. RS485
RS-232’nin
halledebileceğinden yüksek hızlarda ve uzak mesafelerde veri transferi gerektiğinde çözüm RS-485 olacaktir. RS-485’li linkler iki cihazla sınırlı değildir.
Mesafeye, bit hızına ve arabirim
yongalarına bağlı olarak sayıları 256’ya varabilen düğüm bir
linkle bağlanabilir.
RS-485, standartta TIA/EIA-485 olarak geçer.RS-232’ye göre çeşitli avantajları
vardır.
•
Maliyeti düşüktür. Sürücüleri
ve alıcıları pahalı değildir.
+5V ya da daha düşük güç
kaynağıyla çalışırlar. Böyle bir kaynakla, farksal çıkışlarda gereken
minimum 1.5V’luk farkı üretebilirler. RS-232’nin ± 5V’luk minimum çıkışı, ± gerilimli bir güç kaynağını ya da bunları
türeten daha pahalı bir arabirim yongası
gerektirir.
• Ağ Kapasitesi.
İki cihazla
sınırlı olmayışı RS-485’nin çok sayıda sürücüsü ve alıcısı olmasını sağlar.
Yüksek empedanslı sürücülerle bir RS-485 256 düğümlü olabilir.
•
Uzun
Linkler. Link uzunluğu
4000 feet’e çıkabilir. RS-232’de
bu limit 50-100 feet’tir.
• Sürat. Saniyede
10 Megabit hız mümkündür.
Bit hızı kablo boyu ilişkilidir. Tablo3.2’de RS-485’in özelliklerine ve akraba bir arabirime yer verilmiştir. RS-422 bir
sürücü ve on alıcıyla sınırlıdır.
Ancak farksal giriş gerilimi
çok daha büyüktür.
•
Seri
arabirimleme kullanılması yanında RS-485,
farksal SCSI gibi hızlı paralel
arabirimlemede de kullanılabilir. [5] [6]
BÖLÜM 3. VERİLERİN İNTERNET ORTAMINDA
SUNULMASI
Projemizin
tasarım amaçlarından biride sayaç üzerinden aldığımız, kullanılan sisteme ait
Fazlar arası gerilim , tüketilen toplam aktif ve reaktif güç, faz akımları gibi
bilgileri düzenli olarak internet ortamında görüntülemektir. Elbetteki, bu
ihtiyacı karşılamada birçok yöntem ve yol izlenebilir. Biz bu yöntem ve yollar
arasından Microchip’in sağladığı TCP/IP Stack kütüphanelerini kullandık.
Microchip
TCP/IP stack gömülü network uygulamaları
için, fiziksel network katmanı ile uygulamanız arasında bir altyapı sağlar.
Uygulama katmanları tarafından kullanılan birçok yaygın modülleri de bünyesinde
içerir. Bunlardan bazıları; web sayfaları için HTTP modülü, e-mail göndermek için
SMTP modülü, durum ve kontrol desteği için SNMP,TELNET ve Seri haberleşme –
Ethernet ‘ e kadar ve birçoklarını içermektedir. Bunlara ek olarak , hafif ve
yüksek performanslı olması , TCP ve UDP iletim katmanlarının uygulanması , IP,
DHCP , ARP ve DNS modüllerini de gösterebiliriz. [6]
Sistemin
Algoritması;
Şekil 3.0.1 Genel Hatlarıyla Gömülü Sistem Yazılımın
donanım üzerinde işletilmesi Yukarıda
ki şekilde görüleceği üzere , projenin gerçektirilebilmesi için donanım
üzerinde çalışan gömülü sistem yazılımının genel algoritması blok diyagramdaki
gibidir. Microchip TCP/IP Stack yapısı sağlıklı bir şekilde çalışabilmesi için
program akışını kesen uygulamaların çok fazla beklemeye maruz kalmaması
gerektiği göz önünde bulundurulması gerekir. Bunun sebebi , Microchip TCP/IP
Stack yardımcı çoklu görev düzeni ile çalışmaktadır. Yani kullanıcıların
seçimlerine bırakılan modüller ve yazılım içerisinde olması gereken gerekli modüllerin belirli bir sonsuz döngü
içerisinde defalarca tekrar tekrar çalışması anlamına gelir. Bu da her bir
modül içerisinde bulunan değişken değerleri (örneğin, web sayfası üzerinden
gelen callback fonksiyonların geridönüş değerlerinin istenilmesi gibi) döngünün
tekrar başa dönmesiyle modüllerin içerilerinde yeniden çalışması gereken
fonksiyonların çağırılarak uzaktan yapılan herhangi bir isteğin anında cevap
olarak istenilen tarafa gönderilmesiyle sonuçlanır.
3.1. TCP/IP Stack Yapısı
Şekil 3.0.2 TCP/IP Stack Mimarisi
TCP/IP stack yapısı şekilde
görebileceğiniz gibi internet trafiğine uyulması için gerekli protokolleri
içerermektedir. Bunları modüler bir yapı halinde C programlama dilinde tasarlanmış ve TCP/IP(İnternet) protokol
yapısını izlemektedir. Stack yapısı sürekli olarak TCP ve UDP iletim katman modüllerini , IPv4(
ve ICMP ‘nin bölümü) Internet katman modüllerini , ARP bağlantı katmanı
modüllerini ve çeşitli uygulama katman
modüllerini desteklemektedir. [7]
3.2. Veriler İnternet Ortamına
Sunulmasında Kullanılan Ekipmanlar
Verilerin
internet ortamına sunulması için halihazırda bulunan sayaçtaki verilerin
alındığı varsayılarak, merkezi bir kontrol devresi ile uygulamamızı internet
ortamıyla haberleştirebileceğimiz köprü vazifesi gören bir Ethernet devresi
olması gerekmektedir.
Tablodan da görüldüğü gibi TCP/IP Stack
kodları tüm 16 ,32 bit ailelerinde ve 8 bit 18F serisinde çalışabilmektedir.
Buradan hareketle piyasada kolay bulunması da göz önüne alınarak, 64 K hafızası
olan 18F4620 mikrodenetleyicisi ile çalışmaya karar verdik. Ancak proje derleme
aşamasında ihtiyacımız olan modülleri destekleyen projeyi çalıştıracak gerekli
hafıza boyutu 64 K ‘ı aşmaktadır ve bu yüzden üst seviye olan, 96K 18LF4685
mikrodenetleyicisini kullanmaya karar verdik. Bahsedilen bu hafıza sorunu,
yükseltilen Microchip TCP/IP Stack uygulaması HTTP modülü yerine bir üst
versiyonu olan HTTP2 modülünü içermektedir.
Bu
sebep ile HTTP modülünden daha fazla özellik barından HTTP2 modülü program
hafızasında daha fazla yer kaplamaktadır. Eğer eski TCP/IP Stack uygulamaları
ile çalışmak isterseniz 18F4620 mikrodenetleyicisi web sunucusu ve uzaktan veri
gönderme, alma gibi basit işlemleri, diğer modüllerin kullanılmaması dahilinde
çalıştırabilmektedir.
Uzaktan
erişim için yada gömülü sistem üzerinde bulunması istenilen web sayfaları bir
MPFS2 imaj dosyası içinde depolanır. İmaj dosyası geçici olmayan bir depolama biriminde(Eeprom
yada SPI Flash) yada mikrodenetleyici’ ye ait olan dahili flash program
hafızasında tutulabilir.
Projemizde ise 32 KB Eeprom modeli olan
25LC256 ‘ı kullanmayı tercih ettik. Bu tercihimizi yazılım üzerinde
TCPIPConfig.h kütüphanesinden isterseniz “ yazılım bölümün ” ’de anlatılan
şekilde isterseniz Microchip’in sağladığı TCPConfigWizard programı ile bu
isteğinizi yazılımda ifade edebilirsiniz. Ayrıca bu eepromun max. Çalışma
frekansı 10 MHz olduğundan devre üzerinde de yine 10 Mhz kristal osilator
kullanmayı tercih ettik.
Donanımın
dış dünya ile bağlantısı niteliğinde olan Ethernet devresinde ENC28J60
entegresini kullanmayı tercih ettik. Bu entegre RJ45 soketiyle ethernete
bağlanmakta ve kendisine bağlı bulunan işlemcilerle SPI arayüzü ile
haberleşmektedir. Projemizde Ethernet devresini donanım kısmında bulunan “
Ethernet devresi “ kısmındaki devreyi hazır olarak kullanarak, sistemde
oluşabilecek insan kaynaklı hataları sıfıra çekmek istenilmiştir.
BÖLÜM 4. GELİŞTİRME ARAÇLARI
Bu projenin geliştirilmesi için geliştirme ortamı olarak
Microchip MPLAB IDE ve derleyici olarak ise C18 v3.7 LITE versiyonu
kullanılmış, işlemcisinin programlanabilmesi için ise MPLAB IDE içerisinde
bulunan yazılım ile PICKIT2 modulu kullanılmıştır. [8]
4.1.MPLAB Yazılım Geliştirme
Ortamı
MPLAB
yazılım geliştirme ortamı , kullanıcılara ücretsiz olarak sunulan PIC ve dsPIC
ürünleri için gömülü uygulamalar geliştirilmesini olanak sağlayan ve ücretsiz
olarak dağıtılan bir yazılımdır. Kullanışlı bir arayüze sahip bu yazılım
geliştirme ortamı kullanıcılara Assembly , C18 ve CCS C derleyicisi ile çeşitli
yazılım dillerinde de kullanıcıların yazılımlarını derlemesine olanak
sağlamaktadır.
Şekil 4.0.1 MPLAB yazılım geliştirme ortamına genel
bakış
4.2. MPLAB C18 Derleyicisi
C
programlama dili gibi yüksek seviyeli dillerde uygulama geliştirmek için birçok
seçenek vardır. MPLAB C18 derleyicisi , Microchip tarafından geliştirilmiş bir
C derleyicisidir. Bu derleyici birçok özelliğe sahip ANSI uyumlu , 8 bit
mikroişlemcilerin, PIC 18 aileleri için kullanılan bir C derleyicisi ve 32-bit
windows konsol uygulamasıdır. Bu konsol uygulaması MPLAB geliştirme ortamı ile
birlikte kullanılabilmektedir.
C18
derleyicisinin deneme sürümü elbette ki ücretsiz olup , deneme sürümü olmayan
derleyicisinin tüm özelliklerini ve kütüphanesini içerir.
C18
derleyicisi temel olarak aşağıdaki özelliklere sahiptir;
·
ANSI '89 uyumluluğu
·
MPLAB IDE ile birlikte kolay kullanılabilir proje
yönetimi ve kaynak düzeyinde hata ayıklama
·
Geliştirilmiş kodların yeniden kullanımı için yer
değiştirebilir modüllerin üretimi
·
Kullanıcıların oluşturduğu kütüphanelerin ve dahili
kütüphanelerin kolay kullanımına MPLIB izin verir
·
Çoklu seviye optimizasyonu ile verimli kod oluşturma
motoru
·
Tam kontrolün kesinlikle gerekli olduğu yerlerde,
güçlü bir assembly desteğini vermesi [8]
Bunlar C18
derleyicisi özellikleri içinde yer alır.
4.3. Stack Yapısı ve Dosyaları
Microchip
TCP/IP Stack , tasarlamış olduğunuz devrelerin, sistemlerin dış dünyaya yani
internet dünyasına ulaşmasını sağlayan uygulamadır. Bu uygulama yada
kütüphaneler ile hayal gücünüzün enginliği seviyesinde tasarladığınız
devrelerin, sistemlerin uzaktan erişilebilir, kontrol edilebilir ve üzerinde
bulunan bilgilerin toplanabilir bir hale getirilmesi sağlanır.
Bu
kütüphaneyi Microchip ’in resmi sitesinden “ Microchip Application Libraries ”
paketi içerisinde bulabilirsiniz. Projemizde “ v2013-06-15 ” versiyon numaralı
kütüphaneler kullanılmış ve bu sürümdeki TCP/IP Stack versiyonu “ 5.42.08 “ dur.
4.3.1. TCP/IP Stack Dosyaları
Şekil 4.0.3 TCP/IP Stack Dosyaları ve dizinleri
Microchip
Solutions v2013-06-15 dizini içerisinde USB, Dokunmatik ekran , SD Card
yönetimi ve Grafik ekranlarla oluşturabileceğiniz bir çok demo uygulama yüklü
olarak gelmektedir. Bu dizin içerisinde ve buradaki konumlara da kullanıcıların
kendi projelerini oluşturmasına olanak sağlamaktadır.
Microchip
dizini içerisinde stack dosyaları ve bileşenleri bulunmaktadır. Bu dizin
altındaki “ Include ” klasörü Microchip stack ve kütüphane çözümleri için
header dosyalarını tutar. Yine Include dizini altında bulunan TCPIP Stack
klasörü de C kaynak kodları, dökümasyonları
ve stack yardımcı uygulamaları içermektedir.
Microchip’in
TCP/IP stack uygulamasını kullanan bütün projelerde bazı temel dosyaların
mutlaka proje içerisine dahil edilmesi gerekmektedir.
Main dosyası : Uygulama kodlarınızı içerisinde barındıran
dosyalardır.
• ARP.c ve ARP.h
– Bu dosyalar, stack tarafından verilmiş bir IP adresi ile ilişkilendirilmiş
MAC adresini çözümlemede kullanılır.
•
Delay.c ve Delay.h – Bu dosyalar,
bazı stack fonksiyonları için gecikmelerin sağlanabilmesi için kullanılırlar.
Not olarak ; bu gecikmelerin kendi kodunuzda kullanılmaması daha iyi olacaktır.
Çünkü kullanıldığı durumlarda , program akışının durabileceği bazı koşullar
oluşabilmektedir.
• Fiziksel Katman
dosyaları - Bu dosyalar, belirlenmiş bir fiziksel katmanın program içerisinde
devreye alınabilmesi için kullanılmıştır.
• Helpers.c ve
Helpers.h
Bu dosyalar ise, çok yönlü stack görevleri için yardımcı
fonksiyonları içerir.
• IP.c ve IP.h
Bu dosyalar , internet katmanını fonksiyonellikle stack
yapısı için temin eder.
• StackTsk.c ve
StackTsk.h
Bu dosyalar ise , stack yapısını başlatacak olan kodları
içerir ve devam eden stack yapısının callback fonksiyonlarını yerine getirir.
• Tick.c ve Tick.h
Bu dosyalar , stack
içerisindeki bazı zamanlama fonksiyonlarının uygulanması için kullanılan tick
zamanlayıcısının oluşmasını sağlar.
• HardwareProfile.h
Bu konfigürasyon dosyası , donanım özelliklerinin
ayarlanmasında kullanılır.
• TCPIPConfig.h
Bu konfigürasyon
dosyası ise , sisteminize kaydedilmiş olan yazılımın kurulması için kullanılır.
• MAC.h
Bu kütüphane dosyası
, makroları ve donanımsal MAC katmanıyle ilişkili yapıları destekler.
• TCPIP.h
Bu kütüphane stack
yapısı için öncelikli olarak dahil edilmesi gereken bir dosyadır. Main dosyanız
TCPIP.h kütüphanesini içermelidir. Bu sayede ek dosyaların dahil edilip
edilmeyeceğini ek olan protokollerin ve özelliklerin seçimini
gerçekleştirebilirsiniz....
6. Donanım
6.1. Sistemin ISIS çizimi
6.1.1. Merkezi Kontrol Devresi
6.1.2. Sayaç ile Merkezi Kontrol arası Haberleşme Devresi
Şekil 6.0.3 Güç
Devresi
Şekil 6.0.4 Sistemin ARES çizimi
Sistemin Prototip Resmi1
SONUÇ VE
TARTIŞMA
Gelişen teknolojinin kullanımının artmasıyla
birlikte, sistemlerin takibi, kontrol edilmesi ve analizi gereklilik haline gelmiştir. Sistemlere uzaktan erişilmesi ve tek
bir noktada toplanarak verilerinin uygun ortamlarda
depolanması bu gerekliliklerin karşılanmasında efektif
ve
ekonomik olarak çözüm
sağlayacaktır.
Proje
de sistemlerin uzaktan erişilerek verilerinin tek
bir noktada toplanması, depolanması ve analizi amaçlanmıştır.
Bunun sebebi sistemde
oluşabilecek hatalar,
gelecekte sistem
üzerinde yapılabilecek iyileştirmeler ve benzeri
analizler için bizlere yardımcı olacaktır. Aynı zamanda bu
verilerin izlenmesiyle anlık olarak verilerin takibi ve önemli durumlara göre
alınabilecek önemlere yardımcı
olacaktır.
Projemizde sistem üzerindeki veriler izlenebilmiş fakat gönderilen verilerin, veri
iletim yolunda
bozulması, tahribatı sonucunda sağlıklı bir şekilde veritabanı
oluşturulamadığından depolama ve analiz kısımları gerçeklenememiştir.
Sonuç
olarak projeden beklenen amaçlardan bir kısmı gerçeklenerek, var olan
hataların çözülmesinin ardından çeşitli kullanım amaçlarına
göre
enerji kalitesinin takip edilmesi,
elektrik sayaçları,
su sayaçları,
trafik
durum takibi,
trafik radar sistemi gibi sistemlerin kontrol edilmesi ve veri analizlerinin çıkarılması, herhangi bir
hata durumunda, hatanın
kaynaklandığı
zaman ve durum
bilgileri bu sayede
erişilebilir hale
gelmektedir.
Bitirme Projemize ait Dokümanları Linkten indirebilirsiniz...
Yorumlar