PICBIT PLC İLE LOJİK TASARIM – Murat Uzam
ÖNSÖZ
İçinde bulunduğumuz çağda pek çok alanda çok hızlı bilimsel ve teknolojik gelişmelere şahit olmaktayız. Hiç şüphe yok ki bu gelişmelerin temelinde bilgisayar teknolojisi bulunmaktadır. Bilgisayar teknolojisinin temelini de sıfırlar (0) ve birler (1) üzerine kurulmuş olan lojik adı verilen bilim dalı oluşturur. Bu kitap, çıkış noktası olarak lojik derslerinde incelenen konuların uygulamalı olarak öğrenilmesine yardımcı olmak için yazılmıştır. Kitap ayrıca, günümüzde endüstride çok yaygın olarak kullanılan PLC’lerin (Programmable Logic Controllers - Programlanabilen Lojik Denetleyiciler) anlaşılmasına yardımcı olmayı hedeflemektedir. İlave olarak, kitap günümüzde çok popüler olan PIC mikrodenetleyicilerinin, Assembly dili yardımıyla programlanmaları ile ilgilidir.
Bu kitap 1999-2008 yılları arasındaki 10 yıl içerisinde değişik zaman aralıklarında yazar tarafından gerçekleştirilen çok yoğun çalışmalar sonucunda ortaya çıkmıştır. Bu kitabın asıl çıkış noktası “PICBIT” adındaki yazılımdır. Bu yazılım, bir PIC16F84 mikrodenetleyicisi kullanılarak elde edilmiş olan 5 girişli, 8 çıkışlı bir PLC’yi desteklemektedir. Fakat orijinal donanım bazı noktalardan yetersiz kaldığı için bu kitap kapsamında tek bir baskı devre üzerine PICBIT_PLC adı verilen bir donanım gerçekleştirilmiştir. Kitapta uygulama yaparak öğrenme yöntemi esas alınmıştır. Buna göre “If we hear, we forget; Ifwe see, we remember; Ifwe do, we understand” şeklindeki deyim referans teşkil etmektedir. Bunun anlamı kısaca şu şekildedir: “duyduğumuzu çabucak unuturuz; gördüğümüzü hatırlarız; uyguladığımızı ise öğreniriz”. Bu bağlamda Niğde Üniversitesi Mühendislik-Mimarlık Fakültesi Elektrik-Elektronik Mühendisliği Bölümünde yürüttüğüm “lojik devreler”, “mikroişlemciler”, “endüstriyel elektronik”, “endüstriyel kontrol sistemleri” gibi derslerde incelenen konuların uygulamaları, bu kitap kapsamında “PICBIT” yazılımı ve “PICBITPLC” donanımı yardımıyla gerçekleştirilmektedir. Bu kitaptan istifade etmek için “PICBIT_PLC” donanımı mutlaka elde edilmelidir. Aksi halde kitaptan yeterince faydalanılamayacaktır.
Kitabı genelde dört kısma ayırmak mümkündür. İlk kısım “PICBIT” yazılımı ve “PICBIT PLC” donanımının tanıtılması ve kullanılmasıyla ilgilidir. İkinci kısım “PICBIT” yazılımı ve “PICBIT PLC” donanımının “lojik devreler” derslerinde incelenen konuların pek çok uygulama yardımıyla öğrenilmesini içermektedir. Üçüncü kısım “PICBIT” yazılımı ve “PICBIT PLC” donanımının PLC derslerinde incelenen konuların pek çok uygulamalar yardımıyla öğrenilmesini içermektedir. Son kısım da PICBIT PLC donanımından istifade ederek PIC Assembly dilinin öğrenilmesine yardımcı olmayı amaçlamaktadır. Tüm kitapta pratikte çok karşılaşılan bazı problemlerin çözümü hakkında da detaylı bilgi verilmiştir.
Bu kitap pek çok eğitim kurumunda verilen pek çok ders için yardımcı kitap niteliği taşımaktadır. Bu kapsamda, Meslek Liselerinin, Teknik Liselerin, Meslek Yüksek Okullarının, Üniversitelerin Teknik Eğitim ve Mühendislik Fakültelerinin, “Elektrik”, “Elektronik” ve “Bilgisayar” bölümlerinde okuyan tüm öğrencilere yardımcı olacak niteliktedir.
Ülkemiz son yıllarda bir kalkınma hamlesi yapma gayreti içerisindedir. Bu bağlamda bu çalışmanın ülkemizin kalkınma hamlesine yardımcı olması dileğiyle...
Doç. Dr. Murat UZAM
Ocak 2008, NİĞDE
YAZAR HAKKINDA
Doç. Dr. Murat UZAM
Murat UZAM, 1968 yılında Aydın Söke'de doğdu. İlk ve orta öğretimini Söke'de tamamladı. 1985 yılında Söke Endüstri Meslek Lisesi, Elektrik Bölümünden Okul Birincisi olarak rnezun oldu. Aynı yıl o zamanki ismiyle Yıldız Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik Mühendisliği Bölümünde lisans eğitimine başladı. 1 989 yılında bu bölümden, o dönem mezun olan 165 kişi arasında 71.72 not ortalamasıyla bölüm üçüncüsü olarak mezun oldu. Daha sonra, Yıldız Üniversitesi, Fen Bilimleri Enstitüsü, Elektrik Mühendisliği Anabilim Dalında Yüksek Lisans Eğitimine başladı. 1991 yılında Yüksek Lisans Eğitimini bitirerek aynı Anabilim Dalında doktora eğitimine başladı. 1990-1993 yılları arasında Yıldız Üniversitesi, Mühendislik- Mimarlık Fakültesi, Elektrik Mühendisliği Bölümünde Araştırma Görevlisi olarak çalıştı. 1 993 yılında YOK tarafından yurtdışına yüksek lisans ve doktora eğitimi görmek üzere öğrenci seçmek için açılan "Yurtdışı Lisansüstü Sınavı" 1993 YLS'de başarılı oldu ve "Niğde Üniversitesi Mühendislik-Mimarlık Fakültesi Elektrik- Elektronik Mühendisliği Bölümü" adına (mecburi hizmet karşılığı) yurtdışı doktora bursu kazandı. Bu kapsamda doktora eğitimine 1993-1998 yılları arasında İngiltere'de Salford Üniversitesinde devam etti. 1998 yılında doktora eğitimini tamamladıktan sonra yurda döndü ve Niğde Üniversitesi Mühendislik-Mimarlık Fakültesi Elektrik-Elektronik Mühendisliği Bölümünde "Araştırma Görevlisi Doktor" olarak göreve başladı. 1999 yılında aynı bölümde Yardımcı Doçentlik kadrosuna atandı. 1999 yılında 3 aylık bir dönem Fransa'da Fransız Araştırma Enstitüsü INRIA'da araştırmalar yaptı. Ayrıca, 3 aylık bir dönem 2003 yılı birinci dönemi TÜBİTAK- NATO B2 doktora sonrası araştırma bursu kapsamında Kanada'nın Toronto Üniversitesinde araştırmalar yaptı. 2004 yılında Doçent ünvanı alan yazar, halen Niğde Üniversitesi Mühendislik-Mimarlık Fakültesi Elektrik-Elektronik Mühendisliği Bölümünde Doç. Dr. olarak görev yapmaktadır. Yazarın uluslararası indeksler tarafından taranan dergilerde yayınlanmış pek çok makalesi bulunmaktadır. Yazarın yapmış olduğu bilimsel çalışmalara uluslararası indeksler tarafından taranan dergilerde 80'den fazla atıf yapılmıştır. Yazar uluslararası indeksler tarafından taranan pek çok dergi için hakemlik görevi yapmaktadır. Yazar halen TÜBİTAK tarafından desteklenen bir araştırma projesini yürütmektedir. Yazarla ilgili detaylı bilgiye şu internet sayfasından ulaşılabilir: http://host.nigde.edu.tr/muzam/. Yazar, evli ve 3 erkek çocuk babasıdır.
İÇİNDEKİLER
PICBIT VE PICBIT_PLC’YE GİRİŞ
PICBIT ve PICBIT PLC ile Çalışmak îçin Yapılması Gerekenler
PICBIT PLC İçin Örnek Programlama Devreleri
PICBIT PLC’yi Programlamak İçin Kullanılabilecek Örnek Bir Seri Port PIC Programlama Donanımı ve Bu Donanımı Destekleyen Yazılımlar
PICBIT PROGRAMININ ÇALIŞTIRILMASI VE MENÜLER
File Menüsü
Tools Menüsü
Compile Menüsü
Hardware Menüsü
Help Menüsü
PICBIT PROGRAMINDA KULLANILAN ELEMENTLER
IN Elementi
IN-NOT Elementi
OUT Elementi
OUT-NOT Elementi
AND Elementi
AND-NOT Elementi
NAND Kapısı
OR Elementi
OR-NOT Elementi
NOR Kapısı
XOR Elementi
XOR-NOT Elementi
I/O Elementi
I/O-NOT Elementi
SET Elementi
RESET Elementi
LAT(CH) Elementi
INV-LAT(CH) Elementi
DFF Elementi
COUNTER Elementi
MONOFLOP Elementi
IMPULSE Elementi
INCLUDE Elementi
STEPPER Elementleri
PICBIT Kullanımında Bazı İpuçları
PICBIT ÖRNEKLERİ
EX1
EX2
EX3
EX4
EX5
EX6
EX7
EX8
SEQUENZER. SEQLATCH. SEQ RST
PICBIT İLE LOJİK DEVRE TASARIMI
Lojik (Boole) Fonksiyonların Lojik Kapılarla Gerçekleştirilmesi....
Miniterimlerin Toplamı
Maksiterimlerin Çarpımı
Muhtemel Lojik Kapı Kombinasyonları
NAND ve NOR Kapılarının Eşdeğerleri
Kombinasyonel (Combinational) Devreler
Aritmetik Devreler
Yarım Toplayıcı (Half Addeı-HA)
Tam Toplayıcı (Full Adder-FA)
Paralel Toplayıcı (Parallel Adder-PA)
Yarım Çıkarıcı (Half Subtractor-HS)
Tam Çıkarıcı (Full Subtractor-FS)
Kod Dönüştürücüler (Code Convertors)
Kodlayıcılar (Encoders)
Kod Çözücüler (Decoders)
Karşılaştırıcılar (Comparators)
Data Seçiciler (Multiplexers)
Data Dağıtıcılar (Demultiplexers)
Flip-Floplar
R-S Flip-Flop
Temel R-S Flip-Flop Devreleri
Lojik 1 Seviye Tetiklemeli R-S Flip-Flop
Lojik 0 Seviye Tetiklemeli R-S Flip-Flop
D Flip-Flop
Lojik 1 Seviye Tetiklemeli D Flip-Flop
Lojik 0 Seviye Tetiklemeli D Flip-Flop
Yükselen Kenar Tetiklemeli D Flip-Flop
Düşen Kenar Tetiklemeli D Flip-Flop
D Flip-Flopta Asenkron Girişler
J-K Flip-Flop
Lojik 1 Seviye Tetiklemeli J-K Flip-Flop
Lojik 0 Seviye Tetiklemeli J-K Flip-Flop
Yükselen Kenar Tetiklemeli J-K Flip-Flop
Düşen Kenar Tetiklemeli J-K Flip-Flop
JK Flip-Flopta Asenkron Girişler
T Flip-Flop
Lojik 1 Seviye Tetiklemeli T Flip-Flop
Lojik 0 Seviye Tetiklemeli T Flip-Flop
Yükselen Kenar Tetiklemeli T Flip-Flop
Düşen Kenar Tetiklemeli T Flip-Flop
T Flip-Flopta Asenkron Girişler
Flip-flop’ların Birbirine Dönüştürülmesi
Flip-Flop’tan J-K Flip-Flop Elde Etmek
D Flip-Flop’tan T Flip-Flop Elde Etmek
| J-K Flip-Flop’tan D Flip-Flop Elde Etmek
J-K Flip-Flop’tan T Flip-Flop Elde Etmek
T Flip-Flop’tan D Flip-Flop Elde Etmek
T Flip-Flop’tan J-K Flip-Flop Elde Etmek
Sayıcılar (Counters)
Asenkron Sayıcılar
İkili (Binary) Asenkron Sayıcılar
Yukarı Sayan İkili (Binary) Asenkron Sayıcılar
Aşağı Sayan İkili (Binary) Asenkron Sayıcılar
Yukarı/Aşağı Sayan İkili (Binary) Asenkron Sayıcılar
Sıfırlamak ve Kurmalı Asenkron Sayıcılar
S ve R Asenkron Girişli 4 Bitlik Yukarı Sayan İkili Asenkron Sayıcı
Sıfırlamak 4 bitlik Yukarı Sayan İkili Asenkron Sayıcı
Belirli Bir Değere Kadar Yukarı Sayan 4 Bitlik Sıfırlamak Asenkron Sayıcı
Belirli Bir Değerden Başlayıp Yukarı Sayan 4 Bitlik Kurmalı Asenkron Sayıcı
Yukarı Sayan 4 Bitlik Ço£: Seçenekli Kurmalı Asenkron Sayıcı
Belirli Sınırlar Arasında Yukarı Sayan 4 Bitlik Kurmalı
Asenkron Sayıcı
Senkron Sayıcılar
4 Bitlik (Mod-16) Senkron Yukarı Sayıcı
BCD (Mod-10) Senkron Yukarı Sayıcı
4 Bitlik Senkron Yukarı/Aşağı Sayıcı
Senkron Sayıcı Tasarımı
Senkron Sayıcı Tasarımı İçin Alternatif Bir Yöntem
Shift Registerler
Seri Girişli Seri Çıkışlı Shift Register
Seri Girişli Paralel Çıkışlı Shift Register
Paralel Girişli Seri Çıkışlı Shift Register
Paralel Girişli Paralel Çıkışlı Register
İki Yönlü Shift Register
Shift Register Sayıcıları
Halka Sayıcı (Ring Counter)
Johnson Sayıcısı
Shift Register Kullanımına Bir Örnek - Seri Bilgi Transferi
Hafıza Devreleri
4x2 SRAM
16x8 ROM
Sıralı (Sequential) Devreler
D Flip-Floplar Kullanarak Senkron Sıralı Devrelerin Tasarımı
D Flip-Floplar Kullanılan Yöntem İçin Tasarım Örneği
Her Durum İçin Bir D Flip-Flop Kullanarak Senkron Sıralı Devrelerin Tasarımı
Her Durum İçin Bir D Flip-Flop Kullanılan Yöntem İçin Tasarım Örneği
Data Seçiciler (Multiplexer) Kullanarak Senkron Sıralı Devrelerin Tasarımı
Data Seçiciler (Multiplexer) Kullanılan Yöntem İçin Tasarım Örneği
ROM Kullanarak Senkron Sıralı Devrelerin Tasarımı
ROM Kullanılan Yöntem İçin Tasarım Örneği
Uygulama Örneği (İkili Şifre Çözücü Devre)
PICBIT İLE PLC ÖĞRENELİM
Programlanabilir Lojik Denetleyicilerin Tanımı ve Çalışma Prensibi
Röle ve Kontaktörlerin Çalışma Prensibi
Merdiven Diyagramı (Ladder Diagram) Programlar
Lojik Kapıların Merdiven Diyagramı Karşılıkları ve PICBITte Gerçekleştirilmeleri
AND Kapısı, Basamak Diyagramı Karşılığı ve PICBIT’te Gerçekleştirilmesi.
OR Kapısı, Basamak Diyagramı Karşılığı ve PICBIT’te Gerçekleştirilmesi
NOT Kapısı, Basamak Diyagramı Karşılığı ve PICBIT’te Gerçekleştirilmesi.
NAND Kapısı, Basamak Diyagramı Karşılığı ve PICBIT’te Gerçekleştirilmesi
NOR Kapısı, Basamak Diyagramı Karşılığı ve PICBIT’te Gerçekleştirilmesi
EXOR Kapısı, Basamak Diyagramı Karşılığı ve PICBIT’te Gerçekleştirilmesi
EXNOR Kapısı, Basamak Diyagramı Karşılığı ve PICBIT’te Gerçekleştirilmesi
Zaman Röleleri
Düz Zaman Rölesi (On Delay Timer)
MONOFLOP Elementi ile Düz Zaman Rölesi Elde Etmek
CNT Elementi ile Düz Zaman Rölesi Elde Etmek
Ters Zaman Rölesi (Off Delay Timer) M
. MONOFLOP Elementi ile Ters Zaman Rölesi Elde Etmek
. CNT Elementi ile Ters Zaman Rölesi Elde Etmek
Osilatör Zaman Rölesi
TİMER Elementi ile Osilatör Zaman Rölesi Elde Etmek
TİMER ve CNT Elementleri ile Osilatör Zaman Rölesi Elde Etmek ....
Puls Zaman Rölesi (Puls Timer)
MONOFLOP Elementi ile Puls Zaman Rölesi Elde Etmek
CNT Elementi ile Puls Zaman Rölesi Elde Etmek
Sayıcılar
PLC Programlama Teknikleri ve PICBITte Gerçekleştirilmeleri
Çoğunluk Devresi
Osilatör
Sürekli 1 ve Sürekli 0 Olan Kontaklar
Tek Atım Devreleri
R-S Flip-Flop
D Flip-Flop
T Flip-Flop
J-K Flip-Flop
4 Bitlik Senkron Sayıcı Devresi
4 Bitlik Seri Girişli Paralel Çıkışlı Shift Register Devresi
Uygulama Örnekleri
Start/Stop Devresi 1
Start/Stop Devresi 2
Tek Butonla Start/Stop devresi
Bilgi Yarışması Problemi 1
Bilgi Yarışması Problemi 2
Merdiven Otomatiği Problemi 1
Merdiven Otomatiği Problemi 2
Trafik Işığı Kontrolü 1
Trafik Işığı Kontrolü 2
Trafik Işığı Kontrolü 3
Endüstriyel Kapı Kontrolü 1
Endüstriyel Kapı Kontrolü 2
Kutu Dolum Problemi 1
Kutu Dolum Problemi 2
Kutu Dolum Problemi 3
Kutu Dolum Problemi 4
Sıvı Karıştırma Problemi
Renk Ayrım Sistemi
Yürüyen Işıklar 1
Yürüyen Işıklar 2
Yürüyen Işıklar 3
Yürüyen Işıklar 4
Yürüyen Işıklar 5
Yürüyen Işıklar 6
PICBIT PLC İLE PIC ASSEMBLY ÖĞRENELİM
MPLAB IDE PIC Assembly Programı Geliştirme Ortamı
PIC Assembly Program Örnekleri
Port A ve Port B’nin Giriş ya da Çıkış Olarak Düzenlenmesi
Bit Test, Bit Set, Bit Reset Örnekleri
Sayaç Kullanarak Döngü Düzenlemek
Zaman Gecikmesi Elde Etmek
Zaman Gecikmesi Elde Etmek İçin Kullanılan 1. Grup Yöntemlere Ait Örnekler
Bazı PIC Assembly Komutlarının Kullanımı
SUBLW Komutunun Kullanımı - omek5_l.asm
SUBWF Komutunun Kullanımı - omek5_2.asm
SUBWF Komutunun Kullanımı - omek5_3.asm
ADDLW Komutunun Kullanımı - omek5_4.asm
ADDWF Komutunun Kullanımı - omek5_5.asm
ANDLW Komutunun Kullanımı - omek5_6.asm
ANDWF Komutunun Kullanımı - omek5_7.asm
IORLW Komutunun Kullanımı - omek5_8.asm
IORWF Komutunun Kullanımı - omek5_9.asm
XORLW Komutunun Kullanımı - omek5_10.asm
XORWF Komutunun Kullanımı - omek5_l 1 .asm
COMF Komutunun Kullanımı - omek5_12.asm
SWAPF Komutunun Kullanımı - ornek5 13.asm
RLF Komutunun Kullanımı - omek5_14.asm
RRF Komutunun Kullanımı - omek5_15.asm
RLF ve RRF Komutlarının Kullanımı - omek5_16.asm
RETLW Komutunun Kullanımı - omek5 17.asm
TMRO’ın Kullanılması
TMRO Sayıcısı 1 - omek6_l.asm
TMRO Sayıcısı 2 - omek6_2.asm
PICBIT Makroları
' Temel PICBIT Makroları
Tanımlar Dosyası
Temel Program
“İd”, “ld not”, “inv”, “out”, “out not”, “in_out”, “inv out”
Makrolarınm Kullanımı - omek7_l .asm
“or”, “or_not” ve “nor” Makrolarınm Kullanımı - omek7_2.asm “and”, “and_not” ve “nand” Makrolarınm Kullanımı -
omek7_3.asm
“xor”, “xor_not” ve “xnor” Makrolannın Kullanımı -
omek7_4.asm
“_set” ve “ reset” Makroları
“latch” ve “inv lat” Makroları
“r_edge” ve “f edge” Makroları :
“dff ’ ve “idff” Makroları
“ctr08” Makrosu
“ctrl 6” Makrosu
“mflop08” Makrosu
“mfloplö” Makrosu
“dzr08” Makrosu
“dzrlö” Makrosu
“stepp 1” Makrosu
“stepp_2” Makrosu
Kontak Atlaması Problemini Gidermek
Kontak Atlaması Problemiyle Yüzleşelim - ornek8_l.asm
Kontak Atlaması Probleminin Çözümü 1 - omek8_2.asm
Kontak Atlaması Probleminin Çözümü 2 - omek8_3.asm
Kontak Atlaması Probleminin Çözümü 3 - omek8_4.asm
Kontak Atlaması Probleminin Çözümü 4 - omek85.asm
EEPROM’dan Bilgi Okumak ve EEPROM’a Bilgi Yazmak
EEPROM’dan Bilgi Okumak - omek9 l.asm
EEPROM’a Bilgi Yazmak ve EEPROM’dan Bilgi Okumak 1 -
ornek9_2.asm
EEPROM’a Bilgi Yazmak ve EEPROM’dan Bilgi Okumak 2 -
omek9_3.asm
EEPROM’a Bilgi Yazmak ve EEPROM’dan Bilgi Okumak 3 - omek9_4.asm
EK -A - STEP MOTORLAR
Step Motorların Genel Karakteristikleri
Step Motor Türleri
Tek Kutuplu (unipolar) Sabit Mıknatıslı Step Motor
İki Kutuplu (bipolar) Sabit Mıknatıslı Step Motor
Universal Sabit Mıknatıslı Step Motor
Değişken Relüktanslı Step Motorlar
Bilinmeyen Step Motorun Karakteristiklerini Tanımlama