Bu ay ki yazı dizimizde kıymetli
hocamız Murat Uzam'ın siz değerli Antrak okurları için vermiş
olduğu çok yararlı olacağına inandığım tez çalışmasını sizlere sunuyorum.
PIC 16F84 Mikrodenetleyicisi ile
Bir Deneysel Endüstriyel Sistemin Kontrol Edilmesi
Halil Fikret Turgutlu, Murat Uzam
Niğde Üniversitesi
Mühendislik-Mimarlık Fakültesi
Elektrik-Elektronik Mühendisliği Bölümü, Kampüs, 51100, NİĞDE
h_turgutlu@hotmail.com, murat_uzam@hotmail.com, murat_uzam@nigde.edu.tr
Özet
Bu çalışmada, bir PIC16F84 mikrodenetleyicisi kullanılarak bir deneysel
endüstriyel sistem kontrol edilmiştir. Çalışmada kullanılan deneysel endüstriyel
sistem parça tanıma, ayırma ve birleştirme işlemlerinin gerçekleştirilebildiği
bir sistemdir. Bu çalışmada farklı çalışma senaryoları için dört ayrı PIC
assembly programı geliştirilmiştir. Bu dört ayrı program, sonuçta tek bir
entegre devre (PIC16F84) içerisine yüklenmiş ve program seçimi dört anahtar
ile gerçekleştirilmiştir. Endüstriyel sistem kontrolü için bir PIC microdenetleyicisinin
kullanılmasıyla, tasarımı kolay ve maliyeti oldukça düşük bir kontrol sistemi
elde edilmiştir.
1. Giriş
Günümüzde otomasyon teknolojisinin çok hızlı bir gelişme içinde olduğu
görülmektedir. Bunun en önemli sebeplerinden biri de hiç şüphesiz mikroişlemci
ve mikrodenetleyicilerde ulaşılan çok hızlı gelişmelerdir. Çünki, otomasyon
sistemlerinin en önemli kısmını, bu sistemlere büyük esneklik veren
programlanabilen cihazlar oluşturmaktadır ve bu cihazların temelini de
mikroişlemciler ya da mikrodenetleyiciler oluşturmaktadır. Bu programlanabilen
cihazların başında da PLC (Programlanabilir Lojik Denetleyici) cihazları
yer almaktadır. Gerçekte PLC’ler mikroişlemciler ya da mikrodenetleyiciler
kullanılarak gerçekleştirilmiş cihazlardır [Bryan 1997]. PLC’ler kolay
programlanabilmeleri, endüstriyel ortamlarda çalışmak üzere tasarlanmış
olmaları v.b. gibi sebeplerden dolayı otomasyon sistemlerinin gerçekleştirilmesinde
çok yaygın olarak kullanılmaktadır. PLC’lere alternatif olarak daha
ucuz bir çözüm yolu olması sebebiyle mikroişlemci ya da mikrodenetleyici
temelli sistemler görülmektedir.
Bu çalışmada, bir endüstriyel sistemin kontrolünde, PLC cihazı veya
mikroişlemcili sistemin yerine, bir PIC16F84 mikrodenetleyicisinin [Predko
1998] kullanılması incelenmiştir. PIC, mikrodenetleyicilerinin böyle bir
uygulamada kullanılması ile birlikte, PLC’ lere göre çok daha ucuz ve diğer
mikroişlemcili sistemlere göre daha sade ve az yer kaplayan, kullanılması
kolay bir yapı meydana gelmektedir. Bu çalışmada bir PIC mikrodenetleyicisi
için program yazmak üzere “PIC ASSEMBLY” dili kullanılmıştır.
Şekil 1’de yapılan çalışma özet olarak görülmektedir. Yapılan bu çalışmada
öncelikle deneysel endüstriyel sistem için 4 farklı problem tanımlanmış
ve bu problemlerin çözümüne ilişkin akış şemaları çizilmiştir. Çizilen
akış şemalarına göre, bilgisayar ortamında MPLAB ve MPASM programları [Predko
1998, Predko 2000] kullanılarak PIC16F84 için PIC ASSEMBLY dilinde programlar
hazırlanmıştır. Hazırlanan her program, PROPIC (http://jaichi.virtualave.net/electr-e.htm)
yazılımı ile çalışan bir rogramlama devresi kullanılarak PIC16F84 mikrodenetleyicisine
yüklenmiştir. Programlanan PIC16F84 mikrodenetleyicisi uygulama devresine
taşınarak deneysel endüstriyel sistemin kontrolu gerçekleştirilmiştir.
Deneysel endüstriyel sistemin kontrol edilmesi için yazılan her program
için şu işlemler tekrarlanmıştır:
a) Problemin tanımlanması.
b) Programın hazırlanması,
c) Hazırlanan programın PIC’e yüklenmesi,
d) Programlanan PIC’ in uygulama devresine takılarak, endüstriyel sistemin
kontrol edilmesi.
Şekil 1.Yapılan çalışmalar.
2. Çalışmada Kullanılanlar
2.1. Deneysel endüstriyel sistem
Şekil 2’te görülen deneysel endüstriyel sistem (ICT-Industrial Control
Trainer), Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik
Mühendisliği Bölümü, Mikroişlemci Laboratuarı’nda bulunmaktadır. Bu sistem;
parça tanıma, ayırma ve birleştirme işlemlerinin yapılması amacıyla geliştirilmiştir.
Üst konveyör ve alt konveyör sırasıyla üst konveyör motoru (A2) ve alt
konveyör motoru (A3) ile çalıştırılmaktadır. Orijinal sistemde sadece metal
çubuklar ve plastik halkalar bulunmaktadır. Metal çubuklar ve plastik halkalar
rastgele bir şekilde üst konveyör tarafından seçme işleminin yapılacağı
seçme bölgesine taşınırlar. Metal çubuk ve plastik halkayı tanımlayıp birbirinden
ayırt etmek için iki sensör (B1: proximity sensor, B4: infra-red reflective
sensör) kullanılmaktadır. Parça seçme selenoidi (A0) ile plastik halkalar,
halka toplama kolu üzerine aktarılırlar. Halka toplama kolu üzerine maksimum
beş tane halka yerleştirilebilir. Metal çubuklar ise üst konveyörün sonuna
doğru yerleştirilmiş olan bir engele çarparak üst konveyörden alt konveyöre
bir kızak üzerinden aktarılırlar. Kullanılmayan ve üst konveyörün sonuna
kadar giden plastik halkalar bu engele çarpmadan üst konveyör sonundaki
bir kutuya düşerler. B0 sensörü (infra-red emitter/detector) birleştirme
noktasının boş olup olmadığını tespit etmek için kullanılır. Eğer birleştirme
noktası boş ise birleştirme selenoidi (A1) halka besleme kolundan birleştirme
noktasına bir plastik halka aktarmak için kullanılır. Birleştirme noktası
alt konveyörün biraz üzerine yerleştirilmiştir ve bir metal çubuk alt konveyör
üzerinden bu noktadan geçtiği anda burada bulunan plastik halka ile birleşir.
Böylece metal çubuk ile plastik halka birleştirilmiş olur. Birleştirilmiş
iki parça üst üste gelerek birbirini tamamlar. Alt konveyör birleştirilmiş
parçaları toplama kabına iletir. Birleştirilmiş veya birleştirilmemiş parçalar
alt konveyör tarafından, birleştirilmiş parçaları toplama kabına giderken
bu parçaların birleştirilmiş (sağlam) ya da birleştirilmemiş (hatalı) olduğu,
test edilebilir. Bu iş için iki sensör (B3 ve B6) kullanılır. Eğer hatalı
parça tespit edilmiş ise B2 sensörü ve A2 itici selenoidi kullanılarak
reddetme işlemine tabi tutularak bozuk malzeme kutusuna aktarılır. Bu sayede
toplama kabında sadece birleştirilmiş (sağlam) parçalar toplanır.
Şekil 2. Deneysel Endüstriyel sistem
Bu çalışma kapsamında orijinal sistemde bazı değişiklikler yapılmış
ve sistem daha karmaşık kontrol uygulamaları için yeniden düzenlenmiştir.
Yapılan ilk değişiklik, üst konveyörde parçaların ayrıldığı kısmın biraz
önüne konulan metal algılayıcı sensördür. Şekil 2’deki orijinal sistemde
alt konveyörde bulunan metal cisimleri algılamak için kullanılan
B7 sensörü, üst konveyörde parça seçme selenoidinin biraz önüne yerleştirilmiştir.
Ayrıca orijinal sistemde bulunan metal çubuk ve plastik halkalara ilave
olarak metal halka ve plastik çubuklar kullanılmıştır. Parça çeşidinin
artması ile birlikte birleştirilebilecek malzeme çeşidi (ürün) de artmıştır.
Buna göre Şekil 3’te görüldüğü gibi 4 farklı parça ile dört farklı ürün
elde edilebilmektedir. Bu sayede sistemdeki birleştirilecek olan parçaların
birleşme ihtimalleri artmış ve buna göre çeşitli programlar geliştirilerek
değişik birleştirme uygulamaları yapılmıştır.

Şekil 3. Deneysel endüstriyel sistemde kullanılan parçalar ve sistemden
elde edilen ürünler.
2.2. Endüstriyel sistem uygulama problemleri
Problem 1 : İlk olarak, deneysel endüstriyel sistemde sadece metal
çubuk ve plastik halkaların birleştirilmesi işlemi gerçekleştirilecektir.
Ayrıca alt konveyör sonunda birleşmeyen (tek) parçalar varsa bu parçalar
hatalı olarak değerlendirilip bozuk malzeme kutusuna atılacaktır. Halka
toplama (besleme) kolu en fazla 5 adet halka alabildiği için eğer, bu kolda
5 adet halka bulunuyor ise üst konveyörde gelen halkalar, halka toplama
koluna
itilmeyecek ve üst konveyör sonunda bulunan, kullanılmayan halkaları toplama
kabına taşınacaktır.
Problem 2 : Endüstriyel sistemde üst konveyörde sırası belli olmadan
karışık bir şekilde gelen plastik ve metal halkalardan öncelikle arda arda
gelen metal halkalar halka toplama koluna itilecek. Bu arda arda gelen
metal halka sayısı kadar plastik halka da bu metal halkalardan sonra gelen
ilk plastik halka ile birlikte yine halka toplama koluna itilecek. İtilen
metal halkalardan sonra plastik halka gelmiş ise, bu gelen plastik halkalardan
itilen metal halka sayısı kadar itilmedikçe arada gelen metal halkalar
itilmeyecektir. Bu problemde çubukların metal ya da plastik olması önemli
olmayıp gelen her çubuk halka toplama kolunda halka varsa, bu halkalarla
birleştirilecektir. Birinci problemde olduğu gibi halka toplama kolunda
en fazla 5 adet halka bulunabilecek ve alt konveyör sonunda hatalı parça
varsa ayrılacaktır.
Problem 3 : Üst konveyörden karışık bir biçimde gelen 4 farklı parçadan
4 farklı şekilde birleşmeler sağlanacaktır. Plastik halka (Plastic Ring)
PR, metal halka (Metallic Ring) MR, plastik çubuk (Plastic Peg) PP,
metal çubuk (Metallic Peg) MP ile gösterilirse, 3 adet PRPP, 3 adet MRMP,
2 adet PRMP ve 2 adet MRPP olmak üzere toplam 10 adet birleşme işlemi gerçekleştirilecek
ve bu sayılara ulaşıldığında birleşme ve ayıklama işlemleri duracaktır.
Bir birleşme için sayı tamamlanmış ise, örneğin MRPP birleşmesi 2 adet
üretilmiş ve o anda halka toplama kolunda MR varsa ve PP gelmiş ise bu
parçaların birleştirilmesi engellenecektir. Bu problemde halka toplama
kolunda bir anda sadece 1 adet halka bulunacak ve gelen çubuklar ile karşılaştırılıp
gerekiyorsa kullanılacaktır. Birinci ve ikinci problemlerdeki gibi (hatalı)
bozuk parça ayırma işlemi bu problemde de yapılacaktır.
Problem 4 : 3. Problemde verilen sayıda birleşmeler gerçekleştirilecek
olmakla birlikte, üretilmek istenen sayıya ulaşıncaya kadar gelen bütün
halkalar, (halka toplama kolundaki halka sayısı 5’ten az ise) sırası önemli
olmadan halka toplama koluna yerleştirilecek ve gelen her çubuk, bu kolun
en başında bulunan halka ile karşılaştırılarak birleştirilecektir. Bu sayede
birleşme işlemi, seri ve hızlı bir şekilde gerçekleşecektir. Bozuk parça
ayırma işlemi bu problem için de geçerlidir.
2.3. PIC 16F84 mikrodenetleyicisi
Deneysel endüstriyel sistemin kontrol edilebilmesi için PIC16F84 mikrodenetleyicisi
kullanılmıştır. Bu mikrodenetleyicinin tercih edilmesinin sebeplerinden
bazıları şunlardır:
§ Kontrol edilecek olan endüstriyel sistem için yeterli sayıda (13
adet) I/0 (giriş/çıkış) ucuna sahip olması.
§ 1000 defaya kadar tekrar programlanabilen EEPROM (Flash) belleğe
sahip olması.
§ Programlanması için ucuz maliyetli programlama devresi bulunması.
§ Fiyatının ucuz olması.
§ Hakkında kolay elde edilebilir ve bol miktarda bilgi bulunması (internet
aracılığıyla).
2.4. Programlama birimi
PIC mikrodenetleyicisi için programların hazırlanmasında “PIC ASSEMBLY”
dili kullanılmıştır. Bu dilde program geliştirmek için gerekli olan MPLAB
ve bu programla birlikte gelen MPASM programı http://www.microchip.com
internet adresinden ücretsiz olarak temin edilebilmektedir. Hazırlanan
PIC programlarının PIC16F84’ün içerisine yüklenebilmesi için http://jaichi.virtualave.net/electr-e.htm
internet adresinden yine ücretsiz olarak temin edilebilen PROPIC programı
ve bu programla uyumlu olarak çalışabilen bir paralel port programlayıcı
devresi kullanılmıştır.
2.5. Uygulama devresi
Deneysel endüstriyel kontrol sisteminin PIC microdenetleyicisi ile kontrol
edilebilmesi için, PIC ile sistem arasındaki bağlantıyı sağlayacak ve PIC’in
çalışması için gerekli enerji ile osilatör devresi vb. ihtiyaçları karşılayacak
olan Şekil 4'teki devre gerçekleştirilmiştir. PROPIC programı ve programlama
devresi ile içerisine program yüklenmiş olan PIC16F84 bu uygulama devresine
takılarak endüstriyel sistem kontrol edilmiştir.
Uygulama devesinde görülen reset butonu PIC’i reset etmek için ve dörtlü
dip-switch ise bu çalışmada geliştirilen 4 farklı programdan birisini seçmek
için kullanılmıştır. PIC16F84’ün iki girişi (RA4 ve RB0) program seçmek
için ayrılarak bu dip-switch’e Şekil 4’te görüldüğü gibi bağlanmıştır.
Bu şekilde PIC içerisine yazılan 2’den 4’e decoder mantığıyla çalışan bir
program parçası ile 4 farklı programdan birini seçmek mümkün olmaktadır.
Şekil 4. Uygulama devresi (Görmek
için buraya tıklayın!)
Devrede ayrıca PIC bacaklarına gelen ve giden sinyalleri gözlemlemek
için 13 adet 470 ohm’luk ön dirençli LED bağlanmıştır. Sensörlere bağlı
olan PIC bacaklarına gelen bilgiler ile parça seçme ve bırakma işini yapan
selenoidlere PIC bacaklarından gönderilen bilgiler, 470 ohm’luk dirençler
üzerinden uygulanmaktadır. Ayrıca 470 ohm’luk dirençler, PIC bacaklarında
hiçbir ilgi yok iken, bütün bacaklara sürekli 0 V uygulanmasını sağlamaktadırlar.
3. Uygulama Problemlerinin çözümleri
Bu kısımda yukarıda tanımlanan 4 problem için ortaya konan çözümler
incelenmektedir. Burada sadece 1nci problemin PIC16F84 için PIC assembly
dili ile çözümlerine ilişkin yazılan programın akış şeması verilmiştir.
Diğer problemlerin akış şemaları ile elde edilen ASM ve HEX uzantılı dosyalar
için [6]’ya bakılmalıdır.
Buna göre, 1nci problemin çözümü için Şekil 5’te verilen akış şeması
çizilmiştir. Bu akış şemasında karşılaştırma (karar) işlemlerinin yapıldığı
akış şeması sembollerinin yanlarına evet yada hayır cevabı yazılmamış olup,
eğer sorulan soruya evet cevabı veriliyor ise aşağıya çizilen ok, hayır
cevabı veriliyor ise yanlara çizilen oklar geçerlidir.
Şekil 5. Birinci problemin çözümü için akış şeması.
Sonuçta, 4 problem için ayrı ayrı çözümler elde edilmiş ve bu programlar
birleştirilerek tek bir PIC16F84 mikrodenetleyicisine yüklenmiştir. Programların
ayrı ayrı elde edilen HEX dosyalarının toplam büyüklüğü 1 Kx14 bit olan
PIC16F84 program belleğinden çok daha fazla yer tutmaktadır. Bu yüzden,
toplu programda her program için aynı veya farklı isimlerle kullanılan
file registerlerin çoğu ortak kullanılmıştır. Ayrıca her programda yer
alan hatalı (bozuk) malzeme ayıklama program parçası ve bazı kesme gecikmeleri
de ortak kullanılarak gerekli toplam program hafızası azaltılmıştır. Bu
sayede 1 Kx14 bit program hafızası olan PIC16F84’e yüklenebilecek büyüklükte
bir program elde edilmiştir. Uygulama devresinde verilen dörtlü dip-switch
ile her programın ayrı ayrı seçilerek çalıştırılabilmesi için de bir program
parçası eklenmiştir. Bu program parçası ve toplu programa ait akış şeması
Şekil 6’da görülmektedir.
Şekil 6. Toplu programa ait akış şeması.
4. Sonuçlar ve Değerlendirme
Bu çalışmada PIC 16F84 mikrodenetleyicisi ile deneysel bir endüstriyel
sistemin kontrolü gerçekleştirilmiştir. Bunun için dört farklı program
geliştirilmiştir. Program geliştirmek için PIC assembly dili kullanılmıştır.
Buna göre PIC 16F84’e yüklenmek üzere 1nci problem için 75x14 bit’lik bir
program hafızası, 2nci problem için 299x14 bit’lik bir program hafızası,
3ncü problem için 365x14 bit’lik bir program hafızası ve 4ncü problem
için 621x14 bit’lik bir program hafızası kullanılmıştır. Her bir programın
ayrı ayrı gerçekleştirilmesi durumunda toplam 1360x14 bitlik bir hafıza
gerektiğinden 1024x14 bitlik program hafzasına sahip olan PIC 16F84 mikrodenetleyicisi
bu işlem için yeterli gelmedi. Bu problemin çözümü için programlarda bazı
kısımların ortak kullanılmasıyla dört program 1012x14 bitlik bir yer kaplamış
ve böylelikle sadece bir PIC 16F84 mikrodenetleyicisi kullanılarak kontrol
işlemi gerçekleştirilmiştir. PIC assembly diline alternatif olarak yüksek
seviyeli diller kullanmak mümkün olmakla birlikte bu durumda elde edilecek
programlar daha fazla yer kaplamaktadır. PIC microdenetleyicileri, programlanması
için ucuz maliyetli programlama devresi bulunması, fiyatlarının ucuz olması,
çok geniş ürün ailesine sahip olması, (flash) EEPROM belleğe sahip olup
kullanım kolaylığı sağlaması vb. birçok özellikleri sayesinde gün geçtikçe
yaygın olarak kullanılmaktadır. Bir mikrodenetleyicinin endüstriyel sistem
kontrolü amacıyla kullanılmasıyla, sistem tasarımı kolaylıkla ve ucuz bir
şekilde gerçekleştirilmiş olur. Buna göre tasarım ve program geliştirme
aşamaları PLC’lere göre uzun olmakla birlikte PIC mikrodenetleyicileri
ile endüstriyel sistemler için ucuz ve etkin çözümler elde etmek mümkün
olmaktadır.
Kaynakça
[1]. Bryan, L.A. & Bryan, E.A., Programmable
Controllers. Second Edition, 1034 pages, ISBN: 0-944107-32-X, 1997.
[2]. Predko, M., Handbook of Microcontrollers. McGraw-Hill
Companies, 1998.
[3].Predko, M., Programing and Customizing PICmicro®
Microcontrollers. McGraw-Hill Companies, ISBN: 0071361723, 2000.
[4]. Turgutlu, Halil Fikret, PIC Mikrodenetleyicisi Kullanarak
Deneysel Bir Endüstriyel Sistemin Kontrol Edilmesi. Yüksek Lisans Tezi,
Niğde Üniversitesi, Fen Bilimleri Enstitüsü, Elektrik-Elektronik Mühendisliği
Anabilim Dalı, Mart 2002, 129 sayfa.