PIC16F877
Bu ayki yazı PIC 16F84 Mikrodenetleyicisi ile Bir Deneysel Endüstriyel Sistemin Kontrol Edilmesi görüntülenmesi üzerine.
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 75×14 bit'lik bir program hafızası, 2nci problem için 299×14 bit'lik bir program hafızası, 3ncü problem için 365×14 bit'lik bir program hafızası ve 4ncü problem için 621×14 bit'lik bir program hafızası kullanılmıştır. Her bir programın ayrı ayrı gerçekleştirilmesi durumunda toplam 1360×14 bitlik bir hafıza gerektiğinden 1024×14 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 1012×14 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.