• Sonuç bulunamadı

Atmega128 tabanlı PLC tasarımı

N/A
N/A
Protected

Academic year: 2021

Share "Atmega128 tabanlı PLC tasarımı"

Copied!
68
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

ATMEGA128 TABANLI PLC TASARIMI

Vahit TONGUR YÜKSEK LİSANS TEZİ BİLGİSAYAR MÜHENDİSLİĞİ

ANABİLİM DALI Konya, 2008

(2)

ATMEGA128 TABANLI PLC TASARIMI

Vahit TONGUR

YÜKSEK LİSANS TEZİ

BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİM DALI

Bu tez 14.08.2008 tarihinde aşağıdaki jüri tarafından oybirliği / oyçokluğu ile kabul edilmiştir

Prof.Dr. Şirzat KAHRAMANLI (Danışman)

Prof.Dr. Ahmet ARSLAN Yrd.Doç.Dr. Fatih BAŞÇİFTÇİ

(3)

i

Vahit TONGUR

Selçuk Üniversitesi Fen Bilimleri Enstitüsü Bilgisayar Mühendisliği Anabilim Dalı

Danışman: Prof.Dr. Şirzat KAHRAMANLI 2008, 61 sayfa

Jüri: Prof.Dr. Şirzat KAHRAMANLI Prof.Dr. Ahmet ARSLAN Yrd.Doç.Dr. Fatih BAŞÇİFTÇİ

PLC’ler endüstriyel kontrol uygulamalarında yaygın olarak kullanılmaktadır. PLC’ler gerekli işlemlerin yapılmasını sağlayan bir komut kümesine sahiptir. PLC’ler komut kümesi, merdiven diyagramları veya lojik kapı mantığı ile programlanabilirler.

Bu tez çalışmasında Atmega128 mikrodenetleyici tabanlı bir PLC tasarımı gerçekleştirilmiştir. Tasarlanan PLC modeli için kontrol devrelerinin simülasyonunu yapabilen, hex kodlar üretebilen bir arayüz yazılımı (EVRENPLC) geliştirilmiştir. Hex kodlarının çalışmasını sağlayan bir yorumlayıcı geliştirilerek mikrodenetleyicinin sabit belleğine yerleştirilmiştir.

Yapılan deneysel çalışmalar ile örnek kontrol devrelerinin simülasyonu gerçekleştirilmiş ve deney kartı üzerinde çalışması incelenmiştir.

(4)

ii

Vahit TONGUR

Selçuk University

Graduate School of Natural and Applied Sciences Department of Computer Engineering

Supervisor: Prof. Dr. Şirzat KAHRAMANLI 2008, 61 Pages

Jury: Prof.Dr. Şirzat KAHRAMANLI Prof.Dr. Ahmet ARSLAN Yrd.Doç.Dr. Fatih BAŞÇİFTÇİ

PLC are generally used at industriel control applications. PLC have a command stack which provides the necessary process. PLC command stack is programmable with ladder diagrams or logic gate reasoning.

At this thesis , we realize a atmega128 microcontoler based PLC design. An interface software (EVRENPLC) is developed which can produce hex codes and can make simulation of control circuit for designed PLC design. An interpreter is developed for execute the hex codes and this interpreter is placed to fixed memory of microcontroller.

Simulation of sample control circuit is realized with accomplished experimental practice and examined working on the test card.

(5)

iii

PLC’ler, günümüz endüstriyel kontrol sistemlerinde sıklıkla gördüğümüz cihazlardır. PLC’ler gelişen teknoloji ile birlikte daha yaygın kullanılmakta ve aynı zamanda kendi yetenekleri de gelişmektedir.

Bu tez çalışmasının, yaygın olarak kullanılan PLC’lerin yerli üretim çalışmalarına katkı sağlayacağını umut ediyorum.

Tezin hazırlanması sırasında bana destek olan danışmanım Prof.Dr. Şirzat KAHRAMANLI’ya, yardımlarını esirgemeyen Öğr.Gör. İbrahim KORANA’ya, mesai arkadaşım Öğr.Gör. Oğuz Kağan AKÇAKAYA’ya ve hep yanımda olan çok değerli eşim Evren’e teşekkür ediyorum.

(6)

iv ÖNSÖZ...iii İÇİNDEKİLER... iv 1. GİRİŞ... 1 2. KAYNAK ARAŞTIRMASI... 3 3. MATERYAL VE METOT... 6 4. PLC ... 7 4.1. Giriş Arabirimi ... 8

4.2. Merkezi İşlem Birimi... 8

4.3. Bellek... 9

4.4. Program ... 10

4.5. Programlama Aletleri ... 10

4.6. Çıkış Arabirimi ... 10

4.7. Plc’lerin Programlanması ... 11

4.7.1. Merdiven Diyagramı (LADDER)... 11

4.7.2. Deyim Listesi (STL) ... 12

4.7.3. Lojik Kapı Mantığı (CSF) ... 13

5. ATMEGA128 MİKRODENETLEYİCİSİ... 15

5.1. Atmega128 Mikrodenetleyicinin Temel Özellikleri... 16

5.2. Atmega128 Mikrodenetleyicinin Pin Diyagramı ... 18

(7)

v

9. SONUÇ VE TARTIŞMALAR... 58 10. KAYNAKLAR ... 60

(8)

1. Gİ RİŞ

Programlanabilir lojik kontroler (PLC), endüstriyel otomasyon sistemlerinin kumanda ve kontrol devrelerini gerçekleştirmeye uygun yapıda giriş çıkış birimleri, iletişim arabirimlerine ve uygun bir sistem programına sahip endüstriyel bir bilgisayardır (Kurtulan, 1999).

PLC’ler röleli kumanda sistemlerinin yerine kullanılmak üzere geliştirilmiştir ve 1969 yılında ticari ürün olarak üretilmiştir. Başlangıçta temel lojik işlem komutlarını içerirken günümüzde matematiksel işlemlerin de yapılabilmesini sağlayan komutları içerecek şekilde geliştirilmiştir. Üretim maliyetlerinin azalması ve performanslarının artması sonucunda PLC’ler endüstriyel otomasyon devrelerinde yaygın olarak kullanılmaktadır.

PLC’ler, deyim listesi kullanımı, merdiven diyagramı gösterimi ve lojik kapı mantığı gibi 3 farklı yöntemle programlanabilir. Son yıllarda kontrol sistemini simüle etmeye yarayan PLC arayüz yazılımları geliştirilmektedir. Bu yazılımlar komut kümesi kullanmadan kullanıcıya kolay bir şekilde kontrol sisteminin tasarımı yapmasına olanak sağlamaktadır. Yine bu yazılım yardımıyla kontrol sistemine ilişkin program kodları üretilmektedir. Üretilen kodlar iletişim arabirimi yardımıyla PLC içerisinde ilgili işlem birimine aktarılmaktadır (Kandare ve ark., 2003), (Zaehl ve ark., 2005), (Baresi ve ark., 2002).

Yabancı menşeli PLC’ler ülkemizde kontrol birimlerinde yaygın bir şekilde kullanılmaktadır. Ülkemizde PLC üretimi amacıyla çalışmalar yapılmakta olup henüz ticari bir ürün üretilmemiştir. Bu tez çalışması kapsamında donanımsal olarak prototip bir PLC üretimi, buna uygun programlama arayüzü geliştirilmeye çalışılmıştır. PLC’ler, gürültüden daha az etkilenmesi, diğer mikrodenetleyicilere

(9)

oranla gelişmiş donanım özellikleri, büyük bellek kapasitesi vb. nedenlerle Atmega128 mikrodenetleyici kullanılarak tasarlanmıştır.

Geliştirilen programlama arayüzü yazılımı ile tasarlanan kontrol devrelerinin simülasyonu yapılabilmekte, program hex kodları otomatik olarak üretilebilmektedir. Atmega128 mikrodenetleyici FLASH belleğine geliştirilen yorumlayıcı yerleştirilmiştir. Yorumlayıcı sayesinde kontrol sistemine ait üretilen hex kodlar mikrodenetleyici tarafından yürütülebilmektedir.

Komut kümesinin zenginleştirilmesi, tasarlanan PLC’nin donanım özelliklerinin artırılması ile mini bir bilgisayar tasarımı gerçekleştirilebilir.

(10)

2. KAYNAK ARAŞ TIRMASI

Atmega serisi işlemciler günümüzde kontrol, otomasyon, kablosuz ağ sistemleri, iletişim gibi uygulamalarda sıklıkla kullanılmaktadır. Bellek kapasitesinin fazla olması, gürültü duyarlılığının az olması gibi nedenlerden dolayı uygulamalarda tercih edilmektedir. Atmega mikrodenetleyicilerin kullanıldığı bazı uygulamalar aşağıda verilmiştir.

(Wang ve Li, 2006) Atmega128 mikrodenetleyici ve bulanık örüntü tanıma teorisini bir arada kullanarak otomatik kitap ciltleme makinası için sayfa kontrol ünitesi tasarlamıştır. Bu makine otomatik olarak metin belgelerinde, grafik sayfalarda ve metin-grafik sayfalarda yanlış sayfa yerleşimini tespit etmekte ve hataları yakalamaktadır. Bu cihaz, RS232 protokolü yardımıyla bilgisayarla haberleşebilmektedir.

(Yunbo ve ark., 2006) TCR harmoniklerinin karakteristiklerini analiz eden ve faz kaydırma dönüşümü ile harmoniklerin azaltılmasını sağlayan bir metot önermişleridir. Geliştirilen TCR cihazı reaktif akımları tespit edebilmektedir. Bir kontrol algoritmasına sahiptir ve kontrol işlemleri Atmega128 mikrodenetleyici ile gerçekleştirilmiştir.

(Jiacail ve Bo, 2005) Atmega128 mikrodenetleyici ve CC2420 entegresini kullanan bir RF modülü tasarlamışlardır. RF modül 2.4 GHz frekansta çalışmaktadır, küçük boyutlu olup güç tüketimi düşüktür. Düşük veri oranının kullanıldığı haberleşmede kullanılabilir.

(Drumea ve ark., 2005) Uzaktan erişim yeteneklerine sahip kontrol sistemleri ekstra avantajlarından dolayı günümüzde popüler olmaya başlamıştır. GSM bu alanda sıklıkla kullanılan bir teknolojidir. GSM, modern seri GSM modemleri

(11)

kullanılarak gömülü sistemlere entegre edilebilir. Bu çalışmada üzerinde Atmega128 mikrodenetleyici bulunduran düşük maliyetli GSM iletişim sistemlerinin yazılım ve donanım performansları incelenmiştir.

(Park ve ark., 2007) Sensör ağların enerji talebinin bilinmesi yaşam zamanı için önemli bir parametredir. Enerji talebi güç modeliyle birlikte simülasyon yoluyla da tahmin edilebilir. Bu çalışmada AVR tabanlı sensör düğümleri için basit fakat doğru sonuçlar üreten bir güç modeli oluşturulmaya çalışılmıştır. Ayrıca otomatik güç model jenerasyon aracı geliştirilmeye çalışılmıştır. Sensör düğümlerinde Atmega128 mikrodenetleyiciler kullanılmıştır. Geliştirilen güç model jenerasyon aracı yardımıyla yükleme, çalıştırma ve ölçümlerin kontrolü yapılabilmektedir.

(Eswaran ve ark., 2005) Genellikler sensör ağı uygulamaları zaman duyarlı uygulamalardır. Bu çalışmada bu uygulamaları desteklemek için Nano-RK ve rezervasyon tabanlı gerçek zamanlı işletim sistemi dizayn edilmiştir. Uygulamalarda Atmega128 mikrodenetleyici kullanılmıştır.

Mikrodenetleyiciler tek başlarına kontrol işlemlerinde kullanılabildiği gibi PLC tasarımında da kullanılabilmektedir. PLC’ler donanımsal giriş çıkış birimleri, mikrodenetleyici, bellek birimleri ile birlikte programlama arayüzlerine ihtiyaç duymaktadır. Farklı türdeki PLC’ler ve uygulamalar için geliştirilmiş arayüz yazılımları mevcuttur.

(Kandare ve ark., 2003) PLC yazılımı geliştirmek için model-tabanlı yaklaşım sunulmuştur. Bu yaklaşımın esası yeni prosedürel modelleme dilinin geliştirilmesidir. Geliştirilen yeni yazılım grafik model tasarımına ve otomatik kod üretimine imkan tanımaktadır. Geliştirilen yazılım endüstriyel uygulamalar ve laboratuar uygulamaları ile test edilmiştir.

(Zaehl ve ark., 2005) Modern makinaların artan fonksiyonelliği ve karmaşıklığı nedeniyle PLC yazılımlarının geliştirilmesi zorlaşmaktadır. Bu zorluğun üstesinden gelebilmek için kontrol yazılımları simülasyon tabanlı doğrulanmakta ve

(12)

model-tabanlı yazılım geliştirmektedir. Bu çalışmada makinenin sanal bir modeli kullanılarak programlar geliştirilmiştir.

(Baresi ve ark., 2002) PLC’lerin simülasyonu ve tasarım için bir arayüz sunmaktadır. Kontrol modelleri fonksiyon blog diyagramları ile özelleştirilmiştir. Ve yüksek seviyeli zamanlanmış Petri Net’lere dönüştürülmüştür. Analiz, simülasyon ve elde edilen sonuçlar kullanıcıya sunulmuştur. Kullanıcılar yeni fonksiyon blog diyagramlarını uygun kütüphanelere ekleyebilmektedir.

Yapılan incelemeler sonucunda PLC tasarımında üstünlüklerinden dolayı Atmega serisi işlemciler tercih edilmiştir. Geliştirilen arayüz yardımıyla kontrol devreleri oluşturulabilmekte ve simüle edilebilmektedir. Kontrol sistemine ait program kodları üretilerek çalıştırılmak üzere hafıza bölgelerine yerleştirilmektedir.

(13)

3. MATE RYAL VE METOT

Bu tez çalışmasında PLC görevi üstlenebilecek bir donanım ve bu donanım için hazırlanmış yazılım amaçlanmıştır. PLC’lerde olduğu gibi verilerin saklanabileceği ve işletilebilecek bir yapıya sahip olabilmesi için Atmel firmasına ait Atmega serisi mikrodenetleyici kullanılmıştır.

Mikrodenetleyiciyi programlayabilmek için bir arayüz programı hazırlanmış ve bu program C++ programlama dili kullanılarak gerçekleştirilmiştir.

Mikrodenetleyici içerisine yerleştirilen ve arayüz programından gelen verileri işleyecek olan yorumlayıcı Code Vision AVR programı yardımıyla hazırlanmıştır.

Arayüz programından üretilen hex kodların mikrodenetleyici üzerine taşınması USB portu aracılığı ile gerçekleşmektedir. Bunun için FTDI firmasına ait ft232BM entegresi kullanılmıştır.

Yorumlayıcının mikrodenetleyici üzerine aktarılması paralel port aracılığı ile gerçekleştirilmiştir.

(14)

4. PL C

Programlanabilir Mantık Kontrolörler (PLC) donanım bakımından farlılıklar göstermelerine rağmen programlanıncaya kadar genel amaca hizmet eden yapılardır. Diğer bir deyişle girişleri ve bu girişleri işleyen bir merkezi yapı ile işlenmiş bilgileri dış ortama bırakmak için çıkışlara sahip olan yapılardır diyebiliriz.

Donanım farklılıkları denildiğinde ilk olarak giriş ve çıkış sayıları ardından da komutları yorumlayacak işlemci ve işletim sistemi akla gelmektedir. Farklı firmaların farklı model ve performansa sahip birçok PLC cihazı üretmektedirler. Bu cihazlar yapacakları işe göre farklı şekilde programlanarak otomasyon sistemlerinde kullanılmaktadırlar.

Endüstriyel uygulamaların birçok dalında görmeye alıştığımız PLC’ler, sağladıkları faydalardan dolayı günümüz üretim teknolojilerinde sıklıkla kullanılmaktadırlar. Bu sistemlerin getirdiği avantajlar arasında iş gücünün hafifletilmesi, çalışanların güvenliği, hassas çalışılması gereken durumlarda hata ve firelerin en aza indirgenmesi, işlem hızının yüksek olması gibi etkenler sayılabilir. Genel olarak bir PLC endüstriyel alanlarda kullanılmak için tasarlanmış sayısal prensiplere göre çalışan elektronik bir devredir.

Temelde düşünüldüğünde bütün PLC’lerde girişler, çıkışlar, mikrodenetleyiciler ve işlemcilerin komutları işleyebileceği yazılımlar bulunur. Kullanılacak ortama göre cihaz üzerinde bulunan bu temel ünitelerin kapasiteleri değişebilir. Örneğin giriş/çıkış sayıları, hafıza büyüklükleri gibi.

(15)

Şekil 4.1: PLC’nin Temel Yapısı

4.1. Giriş Arabirimi

Giriş arabirimi, cihazın dış ortamdan sayısal veya sayısal olmayan birtakım sinyalleri alarak CPU’nun anlayabileceği ve işleyebileceği şekle dönüştürme görevini üstlenir. (Özkan A.O, Özcan M, 2004)

4.2. Merkezi İşlem Birimi

Merkezi işlem birimi (CPU), mikrodenetleyiciye aktarılan verileri bellek üzerinde aritmetik ve mantıksal fonksiyonlarla işleyip ilgili birimlere aktarılmasını

Giriş arabirimi

CPU Bellek

Programlama aleti

(16)

sağlar. CPU’nun veri işlemesini yönlendiren etken ise mikrodenetleyici içerisinde üretici firma tarafından gömülü bulunan işletim sistemidir.

4.3. Bellek

Bellek, mikrodenetleyicideki kontrol plan veya programını saklamak için kullanılır. Bellekte saklanan bilgi, hangi girişe göre hangi çıkış işaretinin saklanacağı ile ilgilidir ve gerekli hafıza miktarını programın yapısı belirler. Bellek tipleri saklanan bilginin kaybolup kaybolmamasına bağlı olarak 2 grupta incelenebilir. Birinci grup; belleği besleyen güç kaynağının enerjisinin kesilmesiyle birlikte bilginin kaybolması, ikinci grup ise enerji kesilmesiyle birlikte saklanan bilgilerin kaybedilmemesi. Ancak ikinci grup belleklerin içeriğinin değiştirilmesi için özel sisteme gereksinim vardır.

Birinci grup bellekler; RAM (Random Access Memory) adı verilen rasgele erişimli belleklerdir. Bu tip belleklerde enerjinin kesilmesi ile birlikte mevcut bilgi kaybolur. Programlama esnasında yazma ve okuma işlemlerinin yerine getirilmesinde kullanılır. RAM bellek özellikle programların test çalışma durumlarında büyük kolaylıklar sağlar.

İkinci grup bellekler; ROM (Read Only Memory) bellek tipleridir. Bu tip bellekler silinebilir ve programlanabilir olmalarına göre alt gruplara ayrılır.

a) PROM (Programmable Read Only Memory) programlanabilir salt okunur bellek içine yalnız bir defa bilgi yazılabilir. Bu bellek türünün dezavantajı silinebilir ve programlanabilir olmamasıdır. Bu sebeple PROM’a bir program kodu yazılmadan önce tüm hata kontrol işlemlerinin bitirilmiş olması gerekmektedir.

b) EPROM (Erasable Programmable Read Only Memory) silinebilir programlanabilir salt okunur bellek PLC cihazlarında sıkça kullanılan bellek tipidir.

(17)

Yazılmış olan programlar önce EPROM belleğinde saklanır ve buradan da CPU’ya gönderilir.

c) EEPROM (Electricaly Erasable Programmable Read Only Memory) bellek türleri de silinebilir programlanabilir bellek türlerindendir. Bu tür belleklerde de bilgi kalıcıdır. Herhangi bir güç kesintisinde bilgi kaybolmaz. Silme işlemi belli yöntemler ve devreler sayesinde elektriksel olarak gerçekleştirilir. (Kahramanlı Ş., Özcan M. 2002)

4.4. Program

PLC kullanıcıları tarafından hazırlanan ve kalıcı belleklerine aktarılarak PLC’nin istenilen şekilde çalışmasını sağlayan derlenmiş kodlardır. Üretici firma tarafından grafik veya text ortamlarda program editörleri sayesinde kullanıcılar tasarımlarını derleyerek mikrodenetleyici içerisine program olarak gönderirler.

4.5. Programlama Aletleri

Programlama aleti, programcının PLC ile iletişimini sağlar. Programcı bir PC üzerinde programını editör-derleyici yardımıyla programlayabilir. Derlenmiş program kodları PC-PLC arasındaki çeşitli bağlantılarla donanım üzerine aktarılır.

4.6. Çıkış Arabirimi

PLC içerisindeki mevcut programı işledikten sonra işlenmiş değerleri çıkışlara anolog veya sayısal gerilimlere çevrilebilir. Çıkışlarda kontrol edilecek elemanlar için gerekirse ara devre elemanları da kullanılabilir. (Özkan A.O, Özcan M, 2004)

(18)

4.7. PLC’lerin Programlanması

PLC’leri programlayabilmek için çeşitli diller geliştirilmiştir. Bu amaçla kullanılan programlama dillerini şu üç sınıfta toplayabiliriz.

a) Merdiven diyagramı (LADDER) b) Deyim listesi (STL)

c) Lojik kapı mantığı (CSF)

PLC’nin programlanmasında yukarıda bahsedilen programlama yöntemlerinden Deyim Listesi (STL) ve merdiven diyagramı (LADDER) programlama, genellikle el programlayıcılarında kullanılır. Üretici firmaların PLC’lerle birlikte verdikleri editör programı yardımıyla üç çeşit programlama yöntemi de kullanılabilir. (Özkan A.O, Özcan M, 2004)

STL programlama yönteminde her üretici firma kendine ait bir kodlama kullandıklarından dolayı yazım farklılıkları ortaya çıkmaktadır. Üretici firmalar komutları görev tanımlarını yapan bir kitapçık hazırlar. Bu kitapçıklar sayesinde programcılar PLC’leri deyim listesi yöntemiyle programlayabilirler.

Deyim listesi yöntemindeki bu farklılıklar kısmen LADDER programlama yönteminde görülmemektedir. Çoğu üretici firma bu yöntemdeki kullanılan görsel şekilleri aynı tanımlamaktadır. Sadece giriş çıkış sembollerinin değişiklik gösterdiği durumlar vardır. (Kahramanlı Ş., Özcan M. 2002)

Bu sınıflandırılan üç programlama yönteme kısaca değinilecek olursa;

4.7.1. Merdiven Diyagramı (LADDER)

Merdiven programlama; kontaktörlerin kullanıldığı basit sistemlerde daha çok tercih edilir. Bu yöntemle programlama yaparken sistemin çalışma zaman diyagramı

(19)

çıkarılır ve daha sonra da buna bağlı olarak kontaklı gösterimine geçilir. Grafik ortamda hazırlanmış olan bu program text komutlara veya deyim listesi mantığına çevrilen program belleğe yüklenir. Bazı editörler bu dönüşüm olmaksızın doğrudan merdiven diyagramları girilebilmektedir.

Aşağıda merdiven diyagramıyla yazılmış bir program parçası gösterilmektedir.

Şekil 4.2: PLC için Merdiven Diyagramı

4.7.2. Deyim Listesi (STL)

Deyim listesi ile programlama yöntemi yaygın olarak kullanılmaktadır. Bu yöntemde hazırlanıla program text komutlardan oluşmaktadır. Grafik ortamda kullanılan editörlerde program kodları için bir dönüşüme ihtiyaç duyulmasına rağmen deyim listesi yönteminde buna ihtiyaç kalmamaktadır. Ayrıca taşınabilir programlama cihazları sayesinde kolayca programlama olanağı sağlar. Bununla beraber komut kümesindeki komutların ne anlama geldiği hatırda tutulup iyi bilinmelidir. Bu yönden bakıldığında ise grafik ortamda hazırlanan programlara göre hata riskleri de artmaktadır.

Q B

A

(20)

Şekil 4.1’deki merdiven diyagramının STL dilinde hazırlanması aşağıdaki şekilde olur.

Adres Komut Veri

1. LD A

2. OR C

3. AND B

4. OUT Q

5. END

STL dili programlama maksimum üç bileşenli bir bilginin (biri adres, biri komut, diğeri ise üzerinde işlem yapılacak bilginin adresi) girilmesinden oluşur. Kısacası her bir satırı adres, komut ve veri satırından oluşur. Bazı komutlardan sonra veri girilmesi gerekmeyebilir.

4.7.3. Lojik Kapı Mantığı (CSF)

Bu yöntemle programlama daha geniş bir alana hitap edebilir. PLC programlamaya yabancı olan kişiler merdiven ve deyim listesi ile programlama yöntemlerinde oluşturulan programları anlamakta zorluk çekebilirler. Buna rağmen lojik kapı mantığı bu sektörle ilgisi olan çoğu kişi tarafından temel bilgi olarak algılanmaktadır. Bu yöntem kısmen merdiven diyagramı yöntemine benzemektedir.

Mantık ifadeler doğrudan merdiven dili programlama ile gerçekleştirilmek istenebilir. Bu durumda mantık ifadelerinin merdiven dili kontak karşılıklarını bilmek gerekir.

VE mantık kapısının kontak karşılığı merdiven dili ifadesini inceleyecek olursak;

(21)

Şekil 4.3: VE Kapısı Gösterimi

Aşağıdaki şekilde ise yukarıdaki VE mantık kapısının merdiven dili kontak karşılığı verilmiştir.

Şekil 4.4: VE Mantık Kapısının Merdiven Dili Kontak Karşılığı A

B Q

Q B

(22)

5. ATME GA128 Mİ KRODE NETLE YİCİSİ

Günümüz elektronik sistemlerinde sayısal devrelerle sıklıkla karşılaşırız. Sayısal devreler sayesinde birçok aritmetik ve mantıksal işlemi yapmamız mümkündür. Endüstriyel ortamlarda da kullanılan bu devrelerin amacı giriş sinyallerine göre çıkışlar üretmektir. Bu işlemi yapabilmek için de merkezi işlem birimi ve işlem yapabilmek için hafıza bölgelerine ihtiyaç duyulur. Mikrodenetleyiciler bu noktada öne çıkarlar. Veri işlenebilmesi için işlemci biriminin giriş ünitelerinden aldığı verileri geçici hafıza bölgelerinde işleyerek çıkış ünitelerine aktarması gerekmektedir. Mikrodenetleyiciler merkezi işlem birimi, giriş/çıkış birimleri, geçici hafıza denilen RAM bellekleri ve kalıcı program hafızalarını tek bir entegre içerisinde toplamıştır. Bir mikrodenetleyici genel olarak aşağıdaki gibi ifade edilir.

Şekil 5.1: Bir mikrodenetleyicinin temel bileşenleri Giriş Çıkış

Birimleri

Mikrodenetleyici

(23)

5.1. Atmega128 Mikrodenetleyicinin Temel Özellikleri

1. 8 bit veri genişliği

2. Gelişmiş RISC mimarisi içerisinde a. 133 komut

b. 32 x 8 genel amaçlı saklayıcı ve çevresel kontrol saklayıcısı c. 16 MIPS e kadar 16 MHz de çalışma imkanı

d. Dahili iki çevrim saklayıcı 3. Kalıcı program ve veri hafızası

a. 128 Kbyte programlanabilir FLASH b. 4 Kbyte EEPROM

c. 4 Kbyte dahili SRAM

ç. Belleklerin yazılıp silinebilme ömrü: 10.000 FLASH Bellek, 100.000 EEPROM

d. 64 Kbyte a kadar dâhili seçimlik hafıza alanı e. Yazılım güvenliği için program kilitleme özelliği f. Sistem programı için SPI arayüzü

4. Çevresel özellikleri

a. İki tane 8 bitlik zamanlayıcı, sayıcı ve karşılaştırma modu

b. İki tane genişletilmiş 16 bitlik zamanlayıcı, sayıcı ve karşılaştırma modu

c. Gerçek zaman sayıcısı ç. İki tane 8 bitlik PWM kanalı

d. 2 bitten 16 bite kadar program çözünürlüğünde 6 PWM kanalı e. Karşılaştırmalı çıkış modülatörü

f. Byte uyumlu iki girişli seri arayüz g. Çift programlanabilir seri USART ğ. Master/Slave SPI seri arayüzü

(24)

ı. Dahili analog karşılaştırıcı 5. Farklı Özellikleri

a. Güç ve program kontrolüyle resetleme b. Dâhili kalibrasyonlu RC osilatörü c. Harici ve dâhili kesme kaynakları ç. 6 adet uyku modu

ç.1. Rölanti modu

ç.2. ADC gürültü indirgeme modu ç.3. Güç koruma modu

ç.4. Güç kesilme modu ç.5. Bekleme (Standby) modu ç.6. Genişletilmiş bekleme modu d. Seçilebilir saat frekansı yazılımı 6. Girişler / Çıkışlar

a. 53 tane programlanabilir giriş çıkış portu 7. Çalışma gerilimleri

a. ATmega 128L için 2,7 – 5,5 V arası b. ATmega 128 için 4,5 – 5,5 V arası 8. Hız

a. ATmega 128L için 0 – 8 Mhz arası b. ATmega 128 için 0 – 16 Mhz arası

(25)

5.2. Atmega128 Mikrodenetleyicinin Pin Diyagramı

Şekil 5.2: Atmega128 mikrodenetleyicinin pin diyagramı

Atmega128 mikrodenetleyicinin pin açıklamaları kısaca aşağıdaki çizelgede verilmiştir. (2007, Atmel Atmega128 Datasheet)

(26)

Çizelge 5.1: Atmega128 mikrodenetleyicinin pin açıklamaları

Pin Adı Açıklaması

VCC Sayısal besleme gerilimi

GND Toprak

PortA (PA7..PA0) 8 bitlik giriş/çıkış portu PortB (PB7..PB0) 8 bitlik giriş/çıkış portu PortC (PC7..PC0) 8 bitlik giriş/çıkış portu PortD (PD7..PD0) 8 bitlik giriş/çıkış portu PortE (PE7..PE0) 8 bitlik giriş/çıkış portu PortF (PF7..PF0) 8 bitlik giriş/çıkış portu PortG (PG4..PG0) 5 bitlik giriş/çıkış portu

RESET Reset girişi

XTAL1 Tersleyen osilatör yükseltecine ve dahili saat işletim devresine giriş

XTAL2 Tersleyen osilatör yükseltecinden çıkış AVCC PortF ve A/S dönüştürücü için besleme pini AREF AREF A/S dönüştürücü için anolog frekans pini PEN SPI seri programlama modu için programlamayı

(27)

6. DENE Y KART ININ T ASARI MI

Tasarlanan elektronik devrenin esas kısmını mikrodenetleyici oluşturmaktadır. Kullanılan entegre Atmel firmasına ait ATmega serisi mikrodenetleyicidir. Atmel firmasına ait çeşitli ATmega serisi mikrodenetleyiciler mevcuttur. Aralarındaki temel farklar hafıza büyüklükleri ve port sayılarıdır.

Çok basit anlamda düşünüldüğünde bir PLC girişler ve çıkışlardan oluşan komple bir sistemdir. Kullanılan deney kartında giriş çıkış sayılarının çok olması çalışmamızda, denemeler ve kullanım açısından birtakım faydaları beraberinde getirmiştir.

Deney kartında bulunan giriş çıkış sayıları ve bunların entegre üzerine bağlı bulundukları portlar aşağıdaki çizelgede verilmiştir.

Çizelge 6.1: Devre Üzerindeki Giriş/Çıkış Sayıları ve Bağlı Bulundukları Port Adları

Giriş/Çıkış Bağlı Bulundukları Port Adları 8 adet giriş/çıkış A portu

6 adet giriş/çıkış D portu

(28)

Şekil 6.1: Deney kartının üstten görünümü

Deney kartı üzerinde A ile belirtilen kısım; sayısal giriş ve çıkışları ifade etmektedir. 8 adet sayısal giriş/çıkış mevcuttur ve bu giriş/çıkışlar mikrodenetleyicinin A portuna bağlıdır. Resme göre en üstteki çıkış topraklama için şase bağlantısıdır.

B ile gösterilen bölge sayısal giriş ve çıkışları ifade etmektedir. 6 adet sayısal giriş/çıkış mevcuttur ve bu giriş/çıkışlar mikrodenetleyicinin D portuna bağlıdır. A portu ile beraber düşünüldüğünde giriş/çıkış sayısı toplam 14 adettir.

C ile belirtilen kısım; karta beslemenin (12 V DC) verildiği yerdir. A B C D E F G

(29)

D ile belirtilen kısım; programlama pinleridir. PC’nin paralel portundan haberleşmesini sağlayarak mikrodenetleyici üzerine (FLASH veya EEPROM) program veya veri aktarımı sağlar.

E ile belirtilen kısım; USB portudur. Uygulama esnasında mikrodenetleyici üzerine daha önce yüklenmiş olan yorumlayıcının işleneceği verilerin EEPROM’a aktarılmasında kullanılması amaçlanmıştır. USB portundan PC tarafındaki terminal ile haberleşme de sağlanabilmektedir.

F ile belirtilen kısım; sayısal çıkışları ifade etmektedir. Toplam 5 adet çıkış mevcuttur. Çıkışlar ledlere bağlıdır. Mikrodenetleyici tarafında ise B portunun 0, 1, 2, 3 ve 4. pinlerine bağlıdır.

G ile belirtilen kısım; LCD ekrandır. 2x16’lık bu LCD ekran mikrodenetleyicinin C portuna bağlıdır. Programın çalışması esnasında kullanıcıyı bilgilendirme maksatlı kullanılmıştır.

Devre üzerinde A ve D portları hem giriş hem de çıkış olarak kullanılabilmektedir. C veya B portunda olduğu gibi LCD ve ledlerle portun giriş ya da çıkış olacağı sabitlenmemiştir. Bu konuda programcıya biraz daha hareket alanı kazandırılmıştır.

(30)

Şekil 6.2: Deney kartının alttan görünümü

Yukarıdaki şekilden de görüldüğü üzere kart üzerine Atmega mikrodenetleyicisi ve USB portu için kullanılan FTDI firmasına ait ft232BM USB RS232 dönüşümünü sağlayan entegre yerleştirilmiştir. Şekilde diğerine göre biraz daha büyük olan entegre Atmega mikrodenetleyicisidir. Devre üzerindeki veri yolları ve entegrelerin bacaklarının ilgili yerlere bağlantıları görülmektedir. LCD ekranı için de deney kartının alt tarafından bir delik açılarak potansiyometre ile karakter parlaklığının ayarlanması sağlanmıştır.

Deney kartı ile birlikte kullanılan birkaç ekipman ise aşağıdaki şekillerde gösterilmiştir.

(31)

Şekil 6.3: Programlama Kablosu

Şekil 6.3’deki kablo, oluşturulan yorumlayıcıyı PC tarafından kart üzerindeki mikrodenetleyiciye aktarmamızı sağlamaktadır. Kablo PC tarafında paralel porta takılırken deney kartına ise Şekil 6.1’deki “D” ile isimlendirilen pinlere takılmaktadır. Bu sayede Atmega üzerindeki FLASH veya EEPROM belleklere veri yazılabilmekte veya mevcut veriler okunabilmektedir.

Bu projede Şekil 6.3’deki kablo, yorumlayıcının FLASH belleğe yazılması için kullanılmaktadır. Yorumlayıcı kart üzerine yerleştikten sonra yorumlayıcının işlemesi için gerekli olan veri aktarımı USB portu aracılığı ile gerçekleştiğinden dolayı yorumlayıcının eğer varsa bir sonraki güncellenmesine kadar bu kabloya ihtiyaç duyulmaktadır.

(32)

Şekil 6.4: USB kablosu

Şekil 6.4’deki USB kablosu, PC ile kart arasındaki veri aktarım görevini üstlenmektedir. Entegre üzerindeki yorumlayıcıya işlenecek veri hazırlanılan programcı arayüz ortamında oluşturulduktan sonra USB portu kanalı ile PC tarafından entegredeki EEPROM belleğe yazılmaktadır. Her yeni programın kart üzerine aktarılması esnasında bu kabloya da ihtiyaç duyulmaktadır.

USB üzerinden bu veri aktarımının gerçekleşmesi için ft232BM sürücüsünün PC tarafına yüklü olması gerekmektedir.

(33)

Şekil 6.5.(a): Deney kartının önden görünümü

(34)

7. YORUMLAYICI TASARI MI VE ARAYÜZ PRO GRAMI

PLC’ler kullanıcıların istekleri doğrultusunda çalışan cihazlardır. Kullanıcılar bu isteklerini bir program vasıtası ile gerçekleştirirler. Bu cihazlar birçok farklı yöntemle programlanabilirler. Bunlarla ilgili bilgilere az da olsa “PLC” başlıklı bölümde değinilmişti.

Yöntemlerin farklılıklar göstermesine rağmen temel anlamda yaptıkları iş aynıdır. Hangi yöntem kullanılırsa kullanılsın hepsi, kullanıcının bile bilmesine gerek duymadığı fakat mikroişlemciler tarafından çok önemli olan birtakım sayısal değerler üretir. Bu değerler donanım tarafında işlenerek kullanıcıların istediği işlemleri gerçekleştirirler. Çoğu kullanıcının ne olduğunu bile bilmediği bu değerler her PLC üreticisinde farklılıklar gösterebilir. Bunun nedeni de PLC içerisinde mevcut bulunan ve bu değerleri belli bir mantık ve düzen içerisinde işleyecek olan yazılımların henüz imalat aşamasında ilgili firma tarafından mikrodenetleyiciler üzerine yüklenmiş olmasındandır.

Bu çalışmada da yeni bir PLC üretilmesi amaçlandığına göre kendine has bir sayısal veri kodlaması ve bu kodlamayı anlayıp yorumlayacak bir yazılıma ihtiyaç duyulmaktadır. Buradan yola çıkarak öncelikle mikrodenetleyici içerisine yazılacak olan sabit program parçasının yani yorumlayıcının ne tür durumlarla karşılaşabileceği düşünülmeli. Sonrasında buna uygun olarak bir arayüz programı geliştirerek yorumlayıcının anlayabileceği türden sayısal verilerin oluşturulması hedeflenmeli. Buradaki temel konu verilerin yani komutların nasıl sayısallaştırıldığı, bunların hangi sıra ve düzende nereye yerleştiği ve bu oluşmuş yapının nasıl çözümlendiği ile ilgilidir.

(35)

Şekil 7.1: Yorumlayıcı ve verilerin arasındaki ilişkiyi gösteren akış şeması

Kullanıcılar, hazırlanan arayüz programı ile komutlar ve fonksiyonlar üreterek isteklerini donanım üzerine aktarabilmektedirler. Tasarlanan arayüz programı grafiksel bir ortamda hazırlanmıştır. Kullanıcılar kartı programlarken yeni komut yazımları ve dizilimleri bilmesine gerek kalmadan, bu sektörle biraz ilgisi olan kişilerin bile kolayca programlayabileceği bir yöntem seçilmeye çalışıldı. Bundan dolayı mantıksal kapılarla oluşturulmuş bir program parçasının hem kolay anlaşılır hem de büyük bir kitleye hitap edilebileceği düşünüldü.

Kullanıcı Arayüz Programı Hex Kodlar EEPROM (Veriler) FLASH (Yorumlayıcı) Çıkışlar

(36)

7.1. Arayüz Programı

Tasarlanan arayüz programı tamamen grafiksel bir ortamda olup mantıksal kapılardan oluşmaktadır. Kapılar arası bağlantılar çizgilerle sağlanmaktadır. Girişler için anahtarlar çıkışlar için ledler kullanılmıştır. İşlemler tamamen mantıksal veriler çerçevesinde (0 ve 1) düşünülerek girişlerin durumuna göre çıkışların aktif ya da pasif olmalarını belirlemektir. Program içerisinde birbiriyle ilişkili olan tüm elemanlar, nesneler halinde kullanıcıya sunulmuştur. Kullanıcı, istediği elemanı istediği zaman çalışma ortamına aktarıp, ilgili bağlantıları gerçekleştirerek, program devresinin çalışıp çalışmadığını simüle edebilmektedir. Programın genel görünümü aşağıdaki gibidir.

(37)

Yukarıdaki şekilde orta kısımdaki midi form kullanıcının tasarımını yapacağı alandır. Devre çizimi bu alanda gerçekleştirilir. Devre elemanları araç çubuğu olarak da tanımlanabilen sol taraftaki bölmede sıralanmıştır. Gerekli kapılar kullanıcı tarafından çalışma ortamına aktarılıp bağlantıları gerçekleştirilir. Pencere içerisinde her türlü hareketi serbest bırakılmıştır. Kullanıcı kapı elemanlarını fare ile istediği alana sürükleyerek götürebilmektedir. Elemanın yer değiştirmesi esnasında eğer diğer elemanlarla bağlantısı varsa bağlantı çizgisi de onu takip edecek şekilde hazırlanmıştır. Elemanlar giriş ve çıkış uçlarından birbirine bağlanır. Bir elemanın çıkışına tıkladıktan sonra diğer elemanın girişine tıklandığında iki eleman arası çizgi otomatik olarak çizilecektir. Tasarlanmış örnek bir program aşağıdaki gibidir.

(38)

Yukarıdaki şekilde 2 adet anahtar (giriş), 1 adet VE kapısı (fonksiyon) ve 1 adet led (çıkış) kullanılmıştır. Anahtarların durumuna göre VE kapısı çıkış üretecek ve bu çıkış değeri kendisine bağlı olan elemanı etkileyecektir. Örnek programda led her iki anahtarın da kapalı olduğu durumda aktif olacaktır.

Buradaki önemli olan nokta ise her bir elemanın mikrodenetleyici tarafında nereyi temsil ettiğidir. Hazırlanan arayüz programı tüm atmega serileri için kullanılabilir olarak tasarlanmıştır. Testlerimizi mevcut deney kartı üzerinde gerçekleştireceğimizden dolayı giriş çıkış portları deney kartında bulunanlara göre planlanmıştır. Örneğin anahtarlar giriş elemanı olarak algılanmaktadır ve giriş portlarına bağlı olmalıdır. Kullanıcı programını tasarlarken eklenen her anahtar giriş portunun 0. pininden başlayıp ardışık olarak artırılmaktadır. Benzer şekilde çıkış elemanları yani ledler de çıkış portunun 0. pininden başlayarak ardışık sırada bağlandığı düşünülmektedir. Ayrıca çalışma ortamına aktarılan her eleman için gerekli açıklamalar da o eleman üzerinde gösterilmiştir. Eğer kullanıcı varsayılan giriş çıkış portu haricinde başka port ve pin numaralarına bağlantı isterse ilgili nesne üzerine çift tıklayarak ayar penceresini açabilmektedir. Bu ayar penceresinde elemanın giriş veya çıkış olacağını, hangi port ve pine bağlantı olacağını belirleyebilmekte ve elemanın ismini değiştirebilmektedir. Şekil 7.3’te de görüldüğü gibi elemanların üst kısmında o elemanın ismi, hangi porta bağlı olduğu ve pin numaraları gösterilmektedir. Elemanların ayarlarının yapıldığı ayar penceresi aşağıdaki gibidir.

(39)

Şekil 7.4: Devre elemanlarını ayar penceresi

Yukarıdaki şekil, devre elemanlarının ayar değişikliğinin yapılabileceği ortamı göstermektedir. Örnek bir entegre resminin bacakları sarı ve kırmızı renklerle boyanmıştır. Sol taraftaki bacaklar girişleri, sağ taraftaki bacaklar ise çıkışları göstermektedir. Örnekte 8 adet giriş ve 8 adet çıkış görülmektedir. Kırmızı renkli bacaklar kullanımda olan bacakları ifade etmektedir. Sarı olanlar ise kullanılabilir olanlardır. Eğer giriş veya çıkış pinleri değiştirilmek istenirse sarı renkli olan bacaklar üzerine tıklanarak değişiklik gerçekleştirilir. Önceki sahiplendiği bacak ise boş duruma düşeceği için tekrar sarı renge boyanır. Bu işlem varsayılan portun pin değişikliği içindir. Eğer port değişikliği isteniyorsa örnek entegre resminin altında bulunan açılır menüye başvurulur. 2 adet açılır menü vardır. Soldaki menü yine

(40)

girişleri sağdaki ise çıkışları ifade etmektedir. Açılır menü içerisindeki kullanılabilir portlardan biri seçilerek giriş veya çıkış portu değiştirilmiş olur. Sağ bölmede ise elemanın ismi ve neyi simgelediğini belirten ayarlar mevcuttur. Adı alanına elemanın ismi yazılır. Eğer ayar yapılan bir buton ise normalde açık veya kapalı olacağını belirten ayar yeri mevcuttur. Alttaki açıklamalar kısmında ise kullanıcının hangi elemanın nereye bağlı olduğunu bilmesi açısından neyi simgelediği yazılır. Örneğin anahtarlardan bir tanesi hareket sensörüne bağlı ise açıklama kısmına hareket sensörü şeklinde yazılarak anahtarın neyi simgelediği belirtilebilir.

Program içerisinde tüm elemanlar için bir değişken tanımlanmıştır. Değişkenler, fonksiyon olarak adlandırdığımız kapı elemanları için çıkış değerlerini, anahtarlar için açık kapalı olma durumlarını, ledler için de aktif olup olmadıklarını belirten değerlerle doldurulmaktadır. Program tamamen mantık elemanlarından oluştuğundan dolayı değişenler de 0 veya 1 değerleriyle doldurulmaktadır. Değişken isimleri kullanıcının bilgisi dışında otomatik olarak adlandırılırlar. Değişken tanımlama sayısı belli sınırlar içerisinde gerçekleşir. Bunun sebebi değişken isminin tutulduğu alanın 5 bit den oluşmasıdır. 5 bit ile 32 farklı değer elde edilebilmektedir. Her bir elemanın değeri bir değişkende tutulduğuna göre kullanıcı, tasarımı esnasında en fazla 32 eleman kullanabilmektedir. Neden 5 bit olduğu da bir sonraki başlıkta detaylı bir şekilde incelenmiştir.

Kullanıcı devreyi tasarladıktan sonra PC tarafında oluşan kodlamayı donanım üzerine aktarması gerekmektedir. Program verileri deney kartının tasarımı başlığında anlatıldığı gibi USB portu üzerinden donanımın EEPROM hafıza bölgesine gönderilir. USB portları her PC de farklı COM adresleri alabilir. Seri iletim esnasında bağlantı noktası, hızı, bit sayısı gibi gerekli ayarlamalar da program içerisinden gerçekleştirilebilir. Kullanıcının bu ayarları yapacağı terminal penceresi aşağıda gösterilmiştir.

(41)

Şekil 7.5: Program verilerinin gönderildiği terminal penceresi

Terminal penceresi, kullanıcının devre tasarımını yaptıktan sonra verileri donanım üzerine aktarması için kullanılır. Yukarıdaki şekilde deney kartı ile PC arasındaki USB bağlantı noktası COM3’te gerçekleşmiştir. Varsayılan bağlantı hızı, bit sayısı, gibi seçenekler de kullanıcıya sunulmuştur. Kullanıcı gerekli ayarları yaptıktan sonra sağ tarafta bulunan bağlan düğmesine tıklayarak PC ile cihaz arasında bağlantı kurar. Daha sonra araçlar menüsünden program yükle seçeneği ile program verilerini EEPROM hafıza bölgesine yerleştirir. Bu yükleme işlemi esnasında donanım daha önce gönderilen bir programı işletiyorsa öncelikle işletilen programın durdurulması gerekmektedir. Eğer donanım üzerindeki program durdurulmadan gönderme işlemi gerçekleşirse, giden veriler donanımın tampon belleğinde tutulacak ve program durduruluncaya kadar işletilmeyecektir. Program

(42)

gönderme işlemi başarılı ise giden programın işletilmesi için yine araçlar menüsünden çalıştır komutunun verilmesi gerekir.

Şekil 7.6: Örnek program devresi

Yukarıdaki şekilde kullanıcı tarafından oluşturulabilecek bir devre tasarımı görülmektedir. Bu şekilde tek çıkışı olan bir devre tasarlanabileceği gibi birbirinden bağımsız girişleri ve çıkışı olan birden çok devre de tasarlanıp çalıştırılabilir.

7.2. Yorumlayıcı Tasarımı

Deney kartının FLASH belleğinde yer alan yorumlayıcımız bir önceki başlıkta anlatılan programcı arayüzünden gelen komutların çözümlemesini yapmaktadır. Bu

(43)

işlemi anlayabilmek için öncelikle bu komutların nasıl oluştuğunu bilmemiz gerekecektir.

Şekil 7.7: Örnek program

Yukarıdaki şekilde çok basit bir program örneği görülmektedir. İki girişin durumuna bağlı olarak çıkış kontrol edilmektedir. Görüldüğü üzere giriş olarak 2 adet anahtar, çıkış olarak da bir led ve bunların arasına mantıksal VE kapısı yerleştirilmiştir. Girişler deney kartımızda A portuna ve çıkışın da B portuna bağlı olduğu düşünelim. Girişler ve çıkışlar arasındaki mantıksal kapı veya kapıların üretecekleri değerler, kendilerine gelen değerlere bağlıdır. Bu değerler sürekli değişebilmektedirler. Öyle ki en basitinden girişlerde kullanılan anahtarlar kimi zaman açık kimi zaman kapalı pozisyonda bulunabilirler. Dolayısıyla kendisine bağlı bulunan elemana 1 veya 0 şeklinde iki farklı değer gönderebilir. Anahtar tek

(44)

olmasına karşın bu anahtar farklı zamanlarda iki farklı değer bulundurabiliyorsa bir değişken yapıdan bahsetmemiz mümkün olacaktır. Bu söylenenleri program içerisinde kullanılan tüm elemanlar için düşündüğümüzde bunların değerlerini tutacak değişkenlere ihtiyaç olduğu anlaşılacaktır. Başka bir deyişle bir mantıksal kapının çıkışı başka bir mantıksal kapının girişi oluyorsa bu girişin ne olduğu bilinmelidir. Ara değerleri tutacak değişken yapılara ihtiyaç duyulmaktadır. Bu değişkenler her eleman için tanımlanacağına göre içerisindeki değerlerin ne anlama geldiği de iyi bilinmelidir. Değişkenler içerisine yerleşecek olan değerleri anlamlı kılabilmek için bir takım kodlamalar yapılması gerekli. Öncelikle kullanıcı, programında hangi mantık elemanlarını kullanılabileceği tespit edilmeli daha sonra her mantık elemanı için bir sayısal kod atamasını yapılmalı. Bu mantık elemanları ve bunlara karşılık gelen sayısal kodlar aşağıdaki çizelgede verilmiştir.

Çizelge 7.1: Fonksiyonlar ve sayısal değerleri

Fonksiyon (Mantıksal Eleman) Sayısal Değeri

SON 0 VE 1 VEYA 2 DEĞİL 3 ÖZELVEYA 4 VEDEĞİL 5 VEYADEĞİL 6 ÖZELVEYADEĞİL 7

(45)

Yukarıda listelenen mantıksal kapılar program içerisinde kullanılırken girişlerine gelecek değerlere göre hareket edeceklerdir. Bu girişler kullanıcılar tarafından gönderilen değerler olup entegre içerisine tanımlı portlar üzerinden gönderilmeleri mümkün olacaktır. Bunu sadece girişler olarak kısıtlı tutmamız da yanlış olacaktır. Birbirine bağlı birçok mantıksal kapının ürettiği değer en son çıkış olarak fiziksek ortama aktarılarak kullanıcının arzuladığı işlemlerin gerçekleşmesini tetikleyecektir. Tıpkı girişlerde olduğu gibi çıkışları da bir porta yönlendirmemiz gereklidir. Bundan dolayıdır ki entegre üzerinde bulunan ve kullanıcıya sunulan tüm portlara birer sayısal değer verilerek bu portların hangileri olduğunu yorumlayıcımıza anlatmamız gerekecektir.

Portlara sayısal değerler aktarılırken tasarlanan deney kartından bağımsız davranılmıştır. Hatta kullanılan entegrenin diğer modelleri ile uyumlu olması açısından port numaraları Atmega128 deki port sayısı kadar tanımlanarak bu modelden daha düşük modeller için de kullanışlı hale getirilmiştir. Portlar ve bunlara ait sayısal değerler aşağıdaki çizelgede verilmiştir.

Çizelge 7.2: Portlar ve sayısal değerleri

Port İsmi Sayısal Değeri

A 0 B 1 C 2 D 3 E 4 F 5 G 6

(46)

Kullanıcı programını hazırlarken mantık kapılarını kullanmasına rağmen bazı durumların kapılardan bağımsız işlenmesi gerekir. Bunlara örnek girişler ve çıkışlar. Yani mantık kapılarının mutlaka birkaçı anahtar uçlarına bağlıdır ve oradan gelen sinyallere göre işlemlerini gerçekleştireceklerdir. Çıkışlara bağlı olan cihazlar veya ledler de aynı şekilde kapıların ürettikleri sonuçlara göre çalışacaklardır. Bu durumda anahtarın açık ya da kapalı olduğu duruma göre kapı girişleri iki farklı değer alacaktır. Dolayısıyla mantık kapıların girişleri sürekli olarak aynı değeri taşımayacağı için değişkenlerde tutulması gereklidir. Sadece anahtar atmalarını belirten bir ifadeye ihtiyaç duyulmaktadır. Diğer taraftan program içerisindeki birbirine bağlı mantıksal kapıların üretecekleri sonuçlar her birisi için farklılık gösterecek ve yorumlarken değerin geldiği yerin bir mantıksal kapı olduğunun bilinmesi gerekecektir. Son olarak çıkışlar için de aynı şeyi söylememiz mümkündür. Çıkış için belirtilen bir porta üretilmiş değerin aktarılması gerektiğinden bu işlemin bir çıkış olduğunu gösteren ifadelere ihtiyaç duyulmaktadır. Kendimizce text kod ortamında kısaltmalar kullandığımız bu ifadeleri de sayısallaştırmamız gereklidir. Bu ifadeler ve sayısal karşılıkları aşağıdaki çizelgede verilmiştir.

Çizelge 7.3: Tipler ve sayısal karşılıkları

Tip Sayısal Değeri

g (Giriş) 0

f (Fonksiyon) 1

c (Çıkış) 2

(47)

Bu tanımlamalar yapıldıktan sonra bunların belli bir düzen ve sırayla hafıza alanına yazılması gerekli. Kullanıcı programını tasarladıktan sonra programı yükleme işlemine geçmeden hemen önce grafik ortamdaki kullanılan tüm nesneler anlamlı sayısal dönüşümlere tabi tutulmalı. Yazılan her bir komut için sabit uzunlukta 3 baytlık yer ayırmıştır. Tahmin edilmeli ki her komut 3 baytlık yer kaplamayabilir. Yorumlayıcıyı tasarlarken olabilecek her durumu kapsayan bir hafıza büyüklüğü tespit edilmiş ve bu büyüklük esas alınarak tüm komutlara uygulanmıştır. Komut seti oluşumunda RISC mimari modeli örnek alındı. Bu modelin seçilmesindeki önemli etken ise işlemcinin komut işleme hızını artırmaktı. RISC mimarisinin olumsuz etkiyen yönü ise 2 bayta sığabilecek bir komutun da 3 bayt uzunluğunda olması ve gereksiz hafıza kayıplarına sebebiyet vermesidir. Eğer CISC mimari modeli benimsenmiş olsaydı verileri tuttuğumuz EEPROM hafıza alanından kazancımız olabilirdi. Buna karşılık yorumlayıcının FLASH bellekteki boyutunun artması ve işlem türünün belirlenmesi için geçen sürenin artması olumsuz yöndeki etkenler olacaktı. PLC gibi cihazlar için işlem hızı daha öncelikli olduğundan dolayı RISC mimari modeli seçilmiştir.

Oluşturulan bu 3 baytlık veri kümesi içerisinde bit düzeyinde alanlar ayrılarak işlem türü, aldığı parametreler, değişken isimleri, port ismi ve pin numaraları tanımlanmıştır. Bu tanımlamalar ve bit sayıları aşağıdaki çizelgede verilmiştir.

(48)

Çizelge 7.4: Veri kümesi içerisindeki alan tanımlamaları ve bit sayıları

Alan Adı Bit Sayısı

Adı 5

Tip 2

Değer 1

Parametre1 5

Port veya Fonksiyon 3

Parametre2 5

Pin 3

Çizelge 7.4’teki alan bitlerinin toplamı 24’tür. Bu alanları bayt seviyesinde işleyebilmek için 8 bitlik 3 farklı grup elde edilmiştir. Bu gruplar çizelgedeki sıraya göre yukardan aşağıya doğru birleştirilmiştir.

Adı :5

Tip :2

Değer :1

Parametre1 :5 Port veya Fonk. :3

Parametre2 :5

Pin :3

Bu 3 bayt içerisine bitlerin hangi düzende yerleşeceğini ise bir örnekle açıklayalım.

Şekil 7.7’deki tasarlanmış olan devre tasarımına göre kullanıcı hazırladığı programı işlemesi için verilerin yerleştiği EEPROM’a göndermeden önce grafik

1. Byte

2. Byte

(49)

ortamdan text ortama bir dönüşüm gerçekleşir. Bu dönüşümü kullanıcı hissetmez. Bu işlem sonucunda grafik ortamda kullanılan her eleman için bir satırlık komutlar üretilir. Daha sonra bu komutlar biraz önce bahsettiğimiz yolla HEX formatta donanıma gönderilir. Dönüşümden oluşan bu komutların ve yine komutlara ait sayısal değerlerin doğruluğunu kontrol etmek amacıyla bağımsız geliştirilen bir diğer programda yöntemin nasıl işlendiğini açıklayalım.

Şekil 7.7’deki örneğimize tekrar dönecek olursak, anahtarların A portuna, led in ise B portuna bağlantısı olduğu düşünülürse bu şekilde hazırlanmış olan programın text ortamdaki komutsal karşılığı aşağıdaki gibi olur.

g:x1=PortA.0 g:x2=PortA.1 f:x3=Ve(x1,x2) c:PortB.0=x3 f:Son

Buradaki g,f ve c ifadeleri Çizelge 7.3’deki giriş, fonksiyon ve çıkış tipleridir. A portunun 0. pinine bağlı anahtarın değeri x1 ismindeki değişkene, A portunun 1. pinine bağlı diğer anahtarın değeri ise x2 değişkenine aktarılmaktadır. Alınan bu iki değer VE mantıksal işlemine tabi tutulmaktadır. x1 ve x2 değerine bağlı olarak üretilen sonuç ise ara işlem değeri olarak x3 gibi başka bir değişkende tutulmaktadır. Çıkış olarak tanımlanmış olduğu düşünülen B portunun 0. pinine mantıksal işlemin sonucu yani x3 aktarılmaktadır. Programın nerede son bulacağını belirten “Son” isimli ifadeyle komut kümesi tamamlanmaktadır.

Tip ifadelerinden sonra kullanılan “:” işareti kodlamayı çözümlerken bizim için bir ayraç görevi üstlenmektedir. Yine aynı şekilde port isimleri ile pin isimleri arasına gelen “.” ve fonksiyonlarda kullanılan “(“, “)” işaretleri de çözümlemede yardımcı olan faktörlerdendir. Bu komut kümesinin 3 bayt içine nasıl yerleştiğine geçmeden önce her bir bayt üzerindeki alan tanımlamalarının nasıl yerleştiğini görmeliyiz. Aşağıdaki şekil bunu bize kolayca açıklamaktadır.

(50)

7.bit 6.bit 5.bit 4.bit 3.bit 2.bit 1.bit 0.bit

7.bit 6.bit 5.bit 4.bit 3.bit 2.bit 1.bit 0.bit

7.bit 6.bit 5.bit 4.bit 3.bit 2.bit 1.bit 0.bit

Şekil 7.8: Bir satırlık komutun 3 bayt üzerindeki yerleşimi

Değer Tip Adı

1.Byte Port veya Fonksiyon Parametre1 2.Byte Pin Parametre2 3.Byte

(51)

Biraz önce verdiğimiz örnek komut kümesinin son satırında bulunan “Son” fonksiyonu için 3 baytlık hafıza alanında yer ayrılmadığı görülmektedir. Kullanılan bu fonksiyon komutu, tüm komut satırlarından sonra sadece en son satıra ve bir kez yazılmaktadır. Bu da komut kümesinin bittiği anlamına gelmektedir. Bu fonksiyonun Çizelge 7.1’deki sayısal karşılığı “0” olduğundan komut kümesinin bittiği hafıza bölgesinden başlayarak 3 baytlık 0 bilgisi yazılmaktadır. Yorumlayıcı 3 baytlık bilginin 0 olduğunu gördüğünde komut kümesinin tamamlandığını anlamaktadır.

Verilen komut kümesindeki g:x1=PortA.0 komut satırının çözümlenerek baytlara yerleşimi aşağıda verilmiştir.

7.bit 6.bit 5.bit 4.bit 3.bit 2.bit 1.bit 0.bit

X 0 0 0 0 0 0 1

7.bit 6.bit 5.bit 4.bit 3.bit 2.bit 1.bit 0.bit

0 0 0 X X X X X

7.bit 6.bit 5.bit 4.bit 3.bit 2.bit 1.bit 0.bit

0 0 0 X X X X X

Değer=YOK Tip=g Adı=x1

Port=PortA Parametre1=YOK

(52)

Yukarıdaki komut satırı bir giriş tanımlaması olduğu için mantıksal kapı kullanılmamıştır. Bu sebeple parametreler ve değer atamaları da kullanılmayacaktır. Bu alanlar şekil üzerinde X ile doldurulmasına karşın kullanılmayan böyle alanların varsayılan değerleri sıfır ile doldurulmaktadır. Giriş tanımlamalarında, giriş portunun ismi (2.byte Port alanı), portun hangi pini olduğu (3. byte Pin alanı) ve hangi değişkene aktarıldığı (1. byte Adı alanı) ile ilgili alanlar doldurulur. Bu durumda baytların tek tek son haliyle ikilik tabandaki halleri aşağıdaki gibi olur ve buradan hex koda dönüşüm yapılır.

7.bit 6.bit 5.bit 4.bit 3.bit 2.bit 1.bit 0.bit

0 0 0 0 0 0 0 1

Aynı şekilde 2. ve 3. baytlar da incelenecek olursa;

7.bit 6.bit 5.bit 4.bit 3.bit 2.bit 1.bit 0.bit

0 0 0 0 0 0 0 0

7.bit 6.bit 5.bit 4.bit 3.bit 2.bit 1.bit 0.bit

0 0 0 0 0 0 0 0

Sonuç olarak a:x1=PortA.0 komut satırının 16’lık sayı sistemindeki karşılığı 01 00 00 olmaktadır.

HEX karşılığı = 01

HEX karşılığı = 00

(53)

Benzer şekilde diğer komut satırları da bu şekilde sayısallaştırıldığında sonuçlar aşağıdaki çizelgedeki gibi olacaktır.

Çizelge 7.5: Örnek komut kümesinin sayısal karşılıkları

Komut 1. Byte 2. Byte 3. Byte HEX

g:x1=PortA.0 00000001 00000000 00000000 01 00 00 g:x2=PortA.1 00000010 00000000 00100000 02 00 20 f:x3=Ve(x1,x2) 00100011 00100001 00000010 23 21 02 c:PortB.0=x3 01000011 00100000 00000000 43 20 00 f:Son 00000000 00000000 00000000 00 00 00

Üretilen bu hex değerler arayüz programı yardımıyla Şekil 6.4’teki USB kablo üzerinden EEPROM belleğe aktarılmaktadır. Veriler bu bellek bölgesinin başlangıç adresinden başlayarak sırasıyla yerleşirler. Eğer EEPROM’da daha önce aktarılan bir program verisi varsa önceki verilerin üzerine yazarak devam edilir. Bu şekilde eski program verileri de silinmiş olur. Son aktarılan veriler önceki verilerden daha küçükse yani daha az komut kullanılmış ise son aktarılan verilerden sonraki hafıza alanı aynen kalır. Bu durumda son gönderilen komut kümesine önceden kalan komutların eklendiği düşünülse de yorumlayıcı komut kümesinin 00 00 00 ile biteceğini bildiğinden bu değerle karşılaştığında komut kümesinin sonuna gelindiğini anlar.

Bu işlemler PC tarafında gerçekleşir. Komutlar anlamlı sayısal değerlere dönüştürüldükten sonra iş mikrodenetleyicinin FLASH hafıza bölgesinde bulunan yorumlayıcıya kalır. Bu kodlamayı çözecek olan yorumlayıcı FLASH bellek bölgesine bir kez yazılır ve güncelleme oluncaya kadar o belleğe bir daha bilgi yazılmaz. Donanım üzerindeki yorumlayıcı, yine kalıcı bellek olan EEPROM’daki verileri işlemeye başlar. Yorumlayıcı, veri işleme işini birer satırlık komutlar halinde

(54)

gerçekleştirir. Bir komutun 3 baytlık alanda tutulduğunu ve hangi bitlerinin ne anlamlar içerdiğini de bilir. Bu sayede arayüz programının kodladığı veriler yorumlayıcı tarafında çözümlenmeye başlar. İlk olarak komutun tipinin ne olduğuna bakar. Tip, ilk baytın 5. ve 6. bitinde saklıdır. Buradaki bit değerlerini okur ve Çizelge 7.3’teki duruma göre hangi komutun geldiğini anlar. Öncelikle tip alanının kontrol edilmesi devamında hangi alanların kontrol edileceği anlamına gelir. Komut, bir giriş komutu ise bu girişin hangi porta bağlı olduğunu 2. baytın 5,6 ve 7. bitlerine bakarak anlar. Aynı şekilde portun hangi pininde olduğunu da 3. baytın 5,6 ve 7. bitlerinden anlar. Son olarak da girişten gelen değerin hangi değişkende tutulduğuna bakar. Değişkenler 1. baytın 0, 1, 2, 3 ve 4. bitlerindedir. Bu değişken içinde tutulan değerin ne olduğunu ise yine 1. baytın 7. bitine bakarak anlar. Giriş komutunun işlemi esnasında parametre1 ve parametre2 alanları kontrol edilmez. Parametre alanlarını fonksiyonların kullandığını bilir. Yorumlayıcının bu şekilde çözümleme yapması arayüz programının komut üretmedeki mantığının tersidir. Yorumlayıcının esas görevi gelen sayısal verileri çözümleyerek anlamlı komutların üretilmesini sağlamak ve bunları işletmektir.

(55)

8. DENE YSEL ÇAL IŞMALAR

Örnek uygulama olarak bir şişe dolum otomasyonu düşünüldüğünde sistemin nasıl çalıştığı hakkında bilgi sahibi olmamız gerekecektir. Boş şişelerin bir bant üzerinde hareket ederek dolum merkezine ilerlediği düşünülmüştür. Şişenin dolum merkezine geldiğini bildiren bir sensör bulunsun. Daha sonra şişenin dolma işlemi vananın açılması ile başlasın ve şişenin dolduğunu anlayan bir sensör sayesinde vana kapansın. Bir sonraki şişe aynı işlemlerden geçmek üzere harekete başlasın. Bu şekilde çevrim devam etsin. Böyle bir uygulamada vananın kontrolünü sağlayan üç unsur vardır. Bandın hareketi, şişenin geldiğini anlayan sensör ve şişenin dolduğunu anlayan sensör. Vananın kontrolünü tasarladığımız devre ile gerçekleyecek isek üç tane girişe ve 1 tane çıkışa ihtiyaç duyulmaktadır. Girişler bant hareketi, şişenin geldiğini algılayan sensör ve şişenin dolduğunu algılayan sensör. Çıkışımız ise vananın açılması veya kapanması. Girişler ve çıkışlar belirlendikten sonra doğruluk tablosu yardımıyla fonksiyon oluşturulur. Sadeleştirilmiş fonksiyon aşağıdaki gibidir.

D S B

F = × ×

Bandın hareketini sağlayan B, şişenin geldiğini uyaran sensör S ve şişenin dolduğunu uyaran sensör D.

(56)

Şekil 8.1: Şişe dolum otomasyonu için tasarlanan devre

Devrede çıkışın aktif olabilmesi için bandın hareket etmemesi, şişenin boş olması ve şişenin dolum merkezine gelmesi gerekmektedir.

Şekil 8.1’deki devrenin ürettiği komut kümesi aşağıdaki gibidir.

a:x1=PortA.0 a:x2=PortA.1 a:x3=PortA.3 f:x4=Degil(x1) f:x5=Degil(x3) f:x6=Ve(x2,x4) f:x7=Ve(x5,x6) p:PortB.0=x7 f:Son

(57)

Devre çizildikten sonra program kodlarını donanıma aktarmak için terminal penceresi kullanılmıştır. Terminal penceresinde sırasıyla uygulanan adımlar aşağıda gösterilmiştir.

Şekil 8.2: Programın aktarımı için kullanılan terminal penceresi

Terminal penceresinde bağlantı ayarları yapıldıktan sonra bağlan butonuyla PC ile deney kartı arasında bağlantı gerçekleştirildi. Deney kartının işlem yapıp yapmadığı üzerindeki LCD’den anlaşılabilmektedir. LCD üzerinde aşağıdaki şekilde görüldüğü gibi “Hazır” ifadesinin yazması kartın işlem yapmadığını belirtmektedir.

(58)

Şekil 8.3: Deney kartı program yüklenmeye hazır

Kartın hazır olduğu anlaşıldığına göre program gönderme işlemi gerçekleşebilir. Menüden cihaza kaydet komutu verildiğinde terminal programı USB portu kanalı ile program verilerini donanım üzerine aktarmaya başlar. Bu aktarım esnasında kullanıcı terminal penceresinden bilgilendirilir. Şekil 8.4’te bu bilgilendirmenin nasıl olduğu görülmektedir.

(59)

Şekil 8.4: Terminal’den kullanıcının bilgilendirilmesi

Program yüklemesi bittiğinde kaç baytlık bilginin yazıldığı da belirtilmektedir. Bu sayede tasarlanan arayüz programındaki her elemanın donanım üzerine aktarıldığı kontrolü de yapılmaktadır. Bu uygulamada 27 bayt bilginin aktarıldığı yazmaktadır. Tasarlanan devrede 3 anahtar, 2 DEĞİL kapısı, 2 VE kapısı, 1 LED kullanılmıştır. Her eleman 3 baytlık bir uzunluğa sahiptir. Bu durumda 8 eleman için 24 baytlık veri uzunluğu oluşmaktadır. Komut kümesinin bittiğinin anlaşılacağı SON fonksiyonu için de 3 bayt ayrıldığı düşünülürse toplam 27 baytlık bir komut kümesi oluşmaktadır. Bu kontrol yapıldıktan sonra programın çalıştırılmasına geçilir. Yine terminal penceresinden çalıştır komutu ile deney kartı üzerinde program çalıştırılır.

(60)

Şekil 8.5: Deney kartı üzerindeki programın çalıştığının anlaşılması

Programın çalıştığı kart üzerindeki LCD’den anlaşılmaktadır. Programın doğru çalıştığını test etmek için butonların durumlarının değişmesi gereklidir. Tasarlanan devreye göre 2. anahtarın kapalı olduğu durumda ledin yanması beklenir. 2. anahtarla birlikte diğer anahtarlardan en az birisine basılması durumunda yanan ledin sönmesi beklenir. Butonların durumuna göre çıkışın aktif olup olmadığı aşağıda gösterilmiştir.

(61)

Şekil 8.6: 2. anahtarın kapalı olduğu durumda çıkışın aktif olması

Yukarıdaki şekilde sadece 2. anahtarı kapattığımızda devre üzerindeki ilk ledin yandığı gözlenmektedir. Arayüz programında tasarlanan devrenin deney kartı üzerindeki testinde programın doğru aktarıldığı ve yorumlayıcının da doğru çalıştığı gözlenmektedir.

(62)

Örnek başka bir uygulama ise alarmın kurulu olduğu durumda kapı veya pencerelerden birinin hareketi algılandığında alarm sisteminin devreye girmesi.

Bu uygulamada girişler alarmın kurulması, kapı ve pencerenin hareketinin algılanması, çıkış ise alarmın devreye girmesi. Doğruluk tablosu oluşturulup sadeleştirildiğinde çıkan fonksiyon aşağıdaki gibidir.

F=A(K+P)

Alarmın kurulduğu A, kapı sensörü K ve pencere sensörü P ile ifade edilecek olursa devre tasarımı aşağıdaki gibi olacaktır.

(63)

Şekil 8.7.(b): Terminal penceresinden önceki programın durdurulması

(64)

Şekil 8.7.(d): Terminalden programın yüklenmesi ve çalıştırılması

(65)

9. SONUÇ VE TARTIŞMALAR

Bu tez çalışması kapsamında endüstriyel kontrol işlemlerinde kullanılabilecek Atmega mikrodenetleyici tabanlı bir PLC tasarımı gerçekleştirilmiştir. Kontrol devrelerinin tasarımına ve simülasyonuna imkan tanıyan bir arayüz yazılımı geliştirilmiştir. Çizilen kontrol devrelerine ait hex kodlar geliştirilen yazılım yardımıyla üretilebilmektedir. Hex kodlar, mikrodenetleyici içerisine yerleştirilen yorumlayıcı yardımıyla işlenmektedir.

Bu tez çalışmasıyla ülkemizde yerli PLC (EVRENPLC) üretimi konusunda bir adım atılmıştır. PLC’lerin kolay programlanabilmesi, kontrol devrelerinin simülasyonunun gerçekleştirilebilmesi, PLC’nin donanımsal özelliklerinin grafik ortamda kullanılabilmesini sağlayan bir arayüz yazılımı geliştirilerek ülkemizde bu konuda yapılan çalışmalara katkı sağlanmıştır.

Simülasyon programında kullanılan her bir nesne bir komut ile ifade edilmiştir. Derleyici her bir nesneye ait komutların hex kodlarını üretmektedir. Geliştirilen yorumlayıcı bu hex kodları tanıyarak mikrodenetleyiciye gerekli işlem komutlarını göndermektedir. Mevcut sistemin komut kümesi sınırlı olmasına karşın tasarlanan yazılım mimarisi komut kümesini geliştirmeye ve gelişmiş Atmega serisi mikrodenetleyicilerle kullanılmaya imkan tanımaktadır.

EVRENPLC’nin üretim maliyeti piyasada kullanılan diğer PLC’lerle karşılaştırıldığında kabul edilebilir seviyededir. Siemens s7-200 eğitim amaçlı PLC fiyatı 400 Euro, Omron marka PLC’ler ise 453 Euro olmasına karşın üretilen deney kartının maliyeti 150 YTL’dir.

Bu tez çalışması kapsamında arayüz programı içerisine gömülü bir terminal arabirimi geliştirilmiştir. Arabirim yardımıyla kontrol devresine ilişkin hex kodlar PLC’ye aktarılabilmektedir.

(66)

Yapılan çalışma, gelişmiş Atmega serisi mikrodenetleyiciler kullanılması ve simülasyon programında kullanılan nesnelerin dolayısıyla komutların artırılması ile mini bir bilgisayar ve buna ait işletim sistemi tasarımının yolunu açabilir.

(67)

10. KAYNAKLAR

1. Kahramanlı Ş., Özcan M. 2002 PLC’ler ve Uygulamaları 2. Kurtulan S., 1999 PLC ile Endüstriyel Otomasyon

3. Özkan A.O., Özcan M., 2004 Otomasyon Sistemlerinde PLC Uygulamaları

4. Choi H., Park I., Shin Y., Park S. 2006 A Design and Implementation of Wireless Sensor Network Routing on Nano-Qplus Platform

5. Park J., Joe H., Kim H. 2007 Automatic Power Model Generation for Sensor Network Simulator

6. Wang Y., Li D. 2006 Design of a Page-Checking Instrument Based on Fuzzy Pattern Recognition

7. Yunbo L., Han Y., Zhengpai C., Jianhua Z. 2006 Development of Dynamic Var Compensator Based on 12-pulse Thyristor Controlled Reactor

8. Luo J., Wu Y., Shu Y. 2007 Distributed Synchronization Time System on EAST Tokamak

9. Fesler M., Kapitza R., Kleinöder J., Wolfgang Schröder-Preikschat 2007 Dynamıc Software Update Of Resource-Constraıned Dıstrıbuted Embedded Systems 10. Drumea A., Popescu C., Svasta P. 2005 GSM Solutions for Low Cost Embedded

Systems for Industrial Control

11. Jiacail H., Bo H. 2005 IEEE 802.15.4 Compliant RF Module Design

12. Moreno J.C., Brunetti F. 2007 Immediate effects of a controllable knee ankle foot orthosis for functional compensation of gait in patients with proximal leg weakness

13. Vasilevski M., Pecheux F., Aboushady H., Lamarre L. 2007 Modeling Heterogeneous Systems Using System C-AMS Case Study: A Wireless Sensor Network Node

Şekil

Şekil 4.1: PLC’nin Temel Yapısı
Şekil 4.2: PLC için Merdiven Diyagramı
Şekil 5.1: Bir mikrodenetleyicinin temel bileşenleri Giriş  Çıkış
Şekil 5.2: Atmega128 mikrodenetleyicinin pin diyagramı
+7

Referanslar

Benzer Belgeler

Kırmızı AÇIK V 2 güç kapalı veya tanımlanan tolerans 18 V altındadır KAPALI V 1 güç kapalı veya tanımlanan tolerans 18 V altındadır LED Durumu I/O. LED Renk

Sargı başına düşen gerilim 220V olur ve 380V’a göre daha az akım çeker.( Motor uzun süre yıldızda çalıştırılırsa yanabilir.) Belli bir süre sonra üçgen

b- Stop butonuna basıldığında veya birinci motorun aşırı akım Rölesi attığında birinci motor hemen duracak, ikinci motor ise 10 saniye sonra duracaktır. c- İkinci

Aş ağ ı daki sorulardan, sonunda parantez olanlar doğ ru / yanlı şsoruları dı r. Verilen ifadeye göre parantez içine doğ ru ise “D”, yanlı şise “Y” yazı nı z. Bir

Ø Dokunmatik ekranın sistem saati, tarih bilgisi, dil seçimi gibi menüler, ekran üzerindeki bir noktaya (genelde sol üst köşe) dokunmak suretiyle gelen menü

Bu uygulamada merdiven diyagram ile yazılan programın öğretici dile çevrilmesine yönelik çalışma yapılacaktır. Aşağıdaki ardışık diyagrama göre öğretici

M8070 Paralel link’te master istasyonun ilanı M8071 Paralel link’te yardımcı istasyonun ilanı M8072 Paralel link izleme (RUN→ON) M8072 Hata ayarı (Ana, yardımcı istasyon)

Aşağıdaki cümleleri doğru veya yanlış olarak cevaplayınız ve bu öğrenme faaliyetinde kazandığınız bilgileri ölçünüz. 1) Bobinine enerji verildikten belli bir süre