Ondokuz Mayıs Üniversitesi Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği Bölümü KONTROL LABORATUVARI PLC DENEYLERĐ HAZIRLAYAN : Arş. Gör. Tolga YÜKSEL Samsun - 2005 Genişletilmiş Hali - 2008 PLC’LER , GENEL ÖZELLĐKLERĐ ve SIEMENS S7-200 SERĐSĐ 1. Giriş Programlanabilir lojik kontrolör(Programmable Logic Controller-PLC) endüstriyel otomasyon sistemlerinin kumanda ve kontrol devrelerini gerçeklemeye uygun yapıda girişçıkış birimleri ve iletişim arabirimleri ile donatılmış,kontrol yapısına uygun bir sistem programı altında çalışan bir endüstriyel bilgisayardır.Başlangıçta röleli kumanda sistemlerinin yerine kullanılmak üzere düşünülmüş ve ilk ticari PLC 1969 yılında Modicon firması tarafından geliştirilmiştir.O yıllarda röleli kumanda devreleri yerine kullanılmak üzere geliştirilen bu aygıt yalnız temel mantık işlem komutları içerdiğinden programlanabilir lojik kontrolör(PLC) olarak sunulmuştur.Günümüzde üretilen PLC’ler ise mantık temelli işlemlere ek olarak aritmetik ve özel matematiksel işlemlerin yapılmasını sağlayan komutları da içerirler.Komut kümesinin genişlemesi sonucu daha karmaşık kumanda ve kontrol işlevleri gerçeklenmektedir. 2. Temel Yapı PLC’ler endüstriyel otomasyon devrelerinde doğrudan kullanıma uygun özel giriş ve çıkış birimleriyle donatılmışlardır.Bu aygıtlara basınç,seviye, sıcaklık algılayıcı ve kumanda düğmesi gibi iki değerli işaret bilgisi taşıyan elemanlar,kontaktör selonoid gibi kumanda devrelerinin sürücü elemanları doğrudan bağlanabilir. Bir PLC • Bir sayısal işlemci ve bellek • Giriş ve çıkış birimleri • Programlayıcı birimi • Besleme güç kaynağı gibi temel kısımlardan oluşur. Kumanda düğmesi,anahtar,algılayıcı GĐRĐŞ BĐRĐMĐ Programlayıcı Birimi ĐŞLEMCĐ ÇIKIŞ BĐRĐMĐ Kontaktör,selonoid Şekil 1 PLC temel yapısı 1 BELLEK Sayısal işlemci PLC sistem programı altında kullanıcı programını yürüten,PLC’nin çalışmasını düzenleyen ve bu işlemleri yapmak için gerekli bulunan elemandır. Bellek sistem programının bulunduğu sistem belleği,kullanıcı programının bulunduğu program belleği ve veri belleği bölümlerinden oluşur.Sistem belleği üretici firmanın geliştirdiği PLC işletim sistemi programının yüklü olduğu bellek alanı,program belleği ise kullanıcı tarafından yazılan programın yüklendiği bellek alanıdır.Veri belleği giriş-çıkış işaret durumlarının tutulduğu giriş-çıkış görüntü belleği ve kullanıcıya ayrılmış bellek alanlarından oluşur.Veri belleği alanında bulunan giriş görüntü belleği,programın yürütülmesi sürecinde giriş birimindeki noktaların işaret durumlarının(0-1) saklandığı bellek;çıkış görüntü belleği ise kullanıcı programının yürütülmesi sürecinde çıkış noktalarına ilişkin hesaplanan değerlerin saklandığı bellek alanıdır. Giriş birimi kontrol edilen sistemle ilgili algılama ve kumanda elemanlarından gelen elektriksel işaretlerin lojik gerilim seviyelerine dönüştüren birimdir.Kontrol edilen sisteme ilişkin çeşitli elemanlardan gelen ikili değerler giriş birimi üzerinden alınır. Çıkış birimi PLC’de üretilen lojik gerilim seviyelerindeki işaretleri kontrol edilen sistemdeki kontaktör,röle,selonoid gibi kumanda elemanlarını sürmeye uygun elektriksel işaretlere dönüştüren birimdir. PLC’lerde ayrıca yüksek hız sayıcısı,kesme işareti girişi,analog giriş(ADC) ve analog çıkış(DAC) gibi giriş-çıkış birimleri de bulunur. Programlayıcı birimi kumanda ve kontrol amacıyla yazılan bir programın PLC program belleğine yüklenmesini sağlayan birimdir. 3. Kullanıcı Programının Yürütülmesi PLC program belleğine yüklenmiş bir kullanıcı programı,birinci komuttan başlayarak son programın komutuna kadar bütün komutların sırayla yürütülmesi biçiminde gerçekleşir. Program sonu komutuna erişildiğinde tekrar birinci komuta dönülür.Bu çalışma biçimi sonsuz çevrime girmiş bir program parçası gibi düşünülebilir.Bu çalışma biçiminde komutların işlenme sırası atlama,altprogram,çağırma gibi komutlar kullanıldığında yada kesmeli çalışma durumunda değişebilir. PLC’lerde bir çevrimin tamamlanması için geçen süreye tarama zamanı denir.Her tarama çevriminin belirli bir sürede tamamlanması gerekir.Bir tarama işleminin belirli bir sürede tamamlanmaması durumunda sistem programı PLC çalışmasını durdurur.Bu süre genellikle 300 ms ile 1000 ms arasında değişir.Bu işlem bir gözetleme zamanlayıcısı(Watchdog Timer) ile sağlanır.PLC’nin tarama zamanı giriş-çıkış sayısına,programın içeriğine ve uzunluğuna,işlemcini hızına bağlıdır. Bir PLC çalışma(RUN) durumuna geldiğinde sırasıyla aşağıdaki işlemler gerçekleşir: • Giriş birimindeki değerler alınır,giriş görüntü belleğine yazılır ve saklanır.Bu değerler bir sonraki çevrime(taramaya) kadar değişmez. • Yazılan programa göre program komutları adım adım sırasıyla işlenir.ancak giriş değerleri için giriş görüntü belleğinden okundukları andaki değerleri geçerlidir ve bu değerler bir çevrim boyunca değişmez. • Kullanıcı programının yürütülmesi tamamlandıktan sonra hesaplanan değerler çıkış görüntü belleğine yazılır ve çıkış birimine gönderilir.Çıkış birimine aktarma işlemi tamamlandıktan sonra tekrar birinci adıma dönülür.Çıkış görüntü belleği ve çıkış birimindeki değerler bir sonraki çevrime kadar değişmez. 2 Başla Giriş birimindeki işaret durumlarının al ve giriş görüntü belleğine yaz Komutları sırasıyla işle Sonuçları çıkış görüntü belleğine yaz ve çıkış birimine aktar Şekil 2 PLC’de bir programın yürümesi 4. Programlama Biçimleri PLC’ler için geliştirilmiş olan programlama dilleri,kontaktörlü ve röleli kumanda devrelerin tasarımı ile ilgili kişilerin kolayca anlayıp uygulayabileceği biçimde kullanıma sunulmuştur.Genel olarak üç türlü programlama biçimi kullanılır: • Komut kullanımı ile programlama LD I0.1 O I0.2 A I0.3 = Q0.1 • Merdiven diyagramı ile programlama I0.1 I0.3 Q0.1 I0.2 • Mantık kapıları ile programlama I0.1 ≥ & I0.2 Q0.1 I0.3 3 5. Siemens S7-200 Serisi PLC’ler ve Genel Özellikleri Siemens S7-200 serisi PLC’ler çeşitli otomasyon uygulamalarını kolayca yerine getirebilecek bir PLC serisidir.Kompakt tasarımı,düşük maliyeti ve güçlü komut seti bu PLC’leri mükemmel otomasyon çözümleri haline getirmiştir.Ayrıca basit yapısı sayesinde PLC programlama eğitimi için en fazla tercih edilen PLC serisi durumundadır. Siemens S7-200 serisi mikroişlemcilerine bağlı olarak iki gruba ve grupların altında çeşitli alt modellere ayrılmaktadır : • 210 serisi CPU 212,CPU 214,CPU 215,CPU 216 • 220 serisi CPU 221,CPU 222,CPU 224,CPU 226 210 serisine özellik tablosu aşağıda verilmiştir : Özellik CPU 212 CPU 214 CPU 215 CPU 216 Fiziksel boyutlar 160 mm x 80 mm x 62 mm 197 mm x 80 mm x 62 mm 218 mm x 80 mm x 62 mm 218 mm x 80 mm x 62 mm Program(EEPROM) 512 word 2K word 4K word 4K word Veri 512 word 2K word 2.5K word 2.5K word Dahili bellek bitleri 128 256 256 256 Bellek kartuşu Yok Var(EEPROM) Var(EEPROM) Var(EEPROM) Opsiyonel pil kartuşu Yok 200 günlük 200 günlük 200 günlük Bellek tutma 50 saat 190 saat 190 saat 190 saat Girişler/Çıkışlar(I/O) D: Sayısal I/O 8 DI/6 DQ 14 DI/10 DQ 14 DI/10 DQ 24 DI/16 DQ Genişleme modülü(max). 2 7 7 7 Seçilebilir giriş süzgeci Yok Var Var Var Đkili yürütme hızı 1.2µs/komut 0.8µs/komut 0.8µs/komut 0.8µs/komut Sayıcı/zamanlayıcı 64/64 128/128 256/256 256/256 For/next döngüsü Yok Var Var Var Tamsayı mat. Var Var Var Var Gerçel sayı mat. Yok Yok Var Var PID Yok Yok Var Var Haberleşme kesmesi 1 gönderme/1 alma 1 gönderme/1 alma 1 gönderme/1 alma 1 gönderme/1 alma Zamanlanmış kesme 1 2 2 2 Donanım giriş 1 4 4 4 Hafıza A:Analog Komutlar Ek özellikler 4 kesmesi Gerçek zaman saati Yok Var Var Var 1(RS-485) 1(RS-485) 2(RS-485) 2(RS-485) Port 0 PPI PPI PPI,MPI PPI,MPI Port 1 Yok Yok DP,MPI PPI,MPI Sadece slave Var Var Var Haberleşme Haber. port sayısı Destk. protokoller Peer-to-peer Tablo 1 210 serisi PLC’lerin genel özellikleri PLC deneyleri için laboratuvarda 212 ve 214 modelleri kullanılacaktır.Đlerleyen bölümlerde gerekli yerlerde bu iki modelin özellikleri ayrı ayrı belirtilecektir. Siemens , PLC’lerinde bellek alanlarını adresleme için kullanmaktadır.Bu semboller ve anlamları aşağıdaki tabloda verilmiştir. çeşitli semboller Tablo 2 Siemens S7-200 Adresleme sembolleri ve anlamları Sembol Anlamı I Giriş görüntü belleği kaydedici Q Çıkış görüntü belleği kaydedici V Değişken bellek alanı M Đç bellek alanı SM Özel bellek alanı T Zamanlayıcı bellek alanı C Sayıcı alanı bellek alanı AI Analog girişler AQ Analog çıkışlar AC Akümülatörler HSC Yüksek hızlı sayıcılar Verilen sembolleri kullanarak aşağıda CPU 212 ve CPU 214 için giriş-çıkış adresleri verilmiştir: Giriş-çıkış için tanımlı CPU 212 : I0.0,I0.1,…,I0.7 (8 giriş) adreslerin 1 bit olduğu Q0.0,Q0.1,…,Q0.5(6 çıkış) unutulmamalıdır! CPU 214 : I0.0,I0.1,…,I0,7 , I1.0,I1.1,…,I1.5(14 giriş) Q0.0,Q0.1,…,Q0.7 , Q1.0,Q1.1(10 çıkış) 5 DENEY NO-1: TEMEL ĐŞLEM KOMUTLARI S7-200 PLC’lerinde komutların işleyişi lojik yığın(yada sadece yığın) olarak adlandırılan bir saklayıcıya bağlı olarak yapılır.Yığın boyutu 1 bit olan 9 seviyeli bir saklayıcıdır. S0 Yığının birinci seviyesi S1 Yığının ikinci seviyesi S2 Yığının üçüncü seviyesi S3 Yığının dördüncü seviyesi S4 Yığının beşinci seviyesi S5 Yığının altıncı seviyesi S6 Yığının yedinci seviyesi S7 Yığının sekizinci seviyesi S8 Yığının dokuzuncu seviyesi Şekil 3 Lojik yığın belleği S7-200 serisi için kullanılan temel komutlar ve anlamları aşağıdaki tabloda verilmiştir: Komut Anlamı LD bit_adres Yükle(LOAD) LDN bit_adres Tümleyenini yükle(LOAD NOT) A bit_adres Ve(AND) işlemi AN bit_adres Ve Değil(AND NOT) işlemi O bit_adres Veya(OR) işlemi ON bit_adres Veya Değil(OR NOT) işlemi N Tümleyen(NOT) işlemi = Çıkışa atama S bit_adres,N Kurma(SET) R bit_adres,N Silme(RESET) ALD Ve Blok(AND BLOCK) OLD Veya Blok(OR BLOCK) 6 PLC’lerde kullanılan komutların işletilişlerine göre iki gruba ayrılırlar : • Koşulsuz işletilen komutlar : Bu komutlar sırası geldiğinde hiçbir koşula bağlı olmadan işletilen komutlardır.(Örn : LD , LDN , A , AN) • Kuşullu işletilen komutlar : Bu komutlar sırası geldiğinde yığının birinci seviyesine bağlı olarak yürütülen komutlardır.Eğer yığının birinci seviyesi 1 ise komut yürütülür , 0 ise yürütülmez.(Örn : R , S ) 1.1 LD ve LDN komutları Bu komutlar yürütüldüğünde işlenen veri , yığının birinci seviyesine yazılır ve yığında bulunan bir önceki değerler bir alt seviyeye itilir.LD I0.0 komutu için bu durum aşağıda gösterilmiştir. Yığının önceki durumu Yığının sonraki durumu LD I0.0 S0 I0.0 S1 S0 S2 S1 S3 S2 LDN I0.0 komutu yürütüldüğünde ise yığın seviyeleri benzer şekilde değişir,yığının birinci seviyesine I0.0 değerinin tümleyeni yüklenir. 1.2 A , O , AN , ON , N komutları Bu komutlar yürütüldüğünde komutun belirlediği lojik işlem,işlenen veri ile yığının tepesindeki değere uygulanır ; sonuç yığının birinci seviyesine yazılır.Yığının diğer seviyelerindeki verilerin konumu değişmez.Aşağıda bu komutlar için oluşan durumlar gösterilmiştir. Önceki durum Sonraki durum A I0.0 Önceki durum Sonraki durum O I0.0 S0 I0.0*S0 S0 I0.0+S0 S1 S1 S1 S1 S2 S2 S2 S2 S3 S3 S3 S3 Önceki durum Sonraki durum AN I0.0 Önceki durum Sonraki durum ON I0.0 S0 I0.0’*S0 S0 I0.0’+S0 S1 S1 S1 S1 S2 S2 S2 S2 S3 S3 S3 S3 7 Önceki durum Sonraki durum NOT S0 S0’ S1 S1 S2 S2 S3 S3 ALD (AND BLOCK) , OLD(OR BLOCK) komutları Bu iki komut işlendiğinde yığının birinci ve ikinci seviyelerindeki değerlere VE işlemi(ALD) veya VEYA işlemi(OLD) uygulanır,sonuç yığının birinci seviyesine yazılır.Yığının diğer seviyeleri bir basamak yukarı kaydırılır.Aşağıda bu komutlar için oluşan durumlar gösterilmiştir. Önceki durum Sonraki durum Önceki durum ALD Sonraki durum OLD S0 S0*S1 S0 S0+S1 S1 S2 S1 S2 S2 S3 S2 S3 S3 x S3 x = (Çıkışa atama) komutu Bu komutun yürütülmesi durumunda yığının birinci seviyesindeki değer bu komutla belirtilen adres konumuna(çıkış görüntü belleği,herhangi bir kaydedici vb.) aktarılır.Yığın seviyelerinin konumları ve içerikleri değişmez. Önceki durum Sonraki durum = Q0.0 S0 S0 S1 S1 S2 S2 S3 S3 S(SET) ve R(RESET) komutları S S_bit,N R S_bit,N Yukarıda kullanımı verilen bu komutlar ile S_bit adresinden başlayarak N bitlik bellek adresinin içerik değeri 1 veya 0 olarak atanır.Örneğin S Q0.2,4 komutu ile Q0.2,Q0.3,Q0.4,Q0.5 çıkış adresinin içerikleri 1 yapılır. 8 Bu komutlar koşullu komutlar olduğundan bu komutların yerine getirilmesi için yığının birinci seviyesindeki değerin 1 olması gerektiği unutulmamalıdır.Bu komutların kullanımına ilişkin bir örnek ve zamanlama diyagramı aşağıda verimiştir. LD S LD R LD R I0.0 Q0.0,2 I0.1 Q0.0,1 I0.2 Q0.1,1 I0.0 I0.1 I0.2 Q0.0 Q0.1 Çıkan(EU) ve Đnen(ED) kenar algılama komutları Çıkan ve inen kenar algılamaya ilişkin komutlar bir işaretin 0’dan 1’e veya 1’den 0’a geçiş yaptığı durumları belirlemek için kullanılır.Bu tür komutlar işaretin değişimini yalnız 1 tarama çevrimi boyunca 1 değeri üreterek belirler.Aşağıda bu komutun kullanımına ilişkin bir örnek ve zamanlama diyagramı verilmiştir. LD EU = LD ED = I0.0 Q0.0 I0.0 I0.0 Q0.0 Q0.1 Q0.1 Đvedi işlem(LDI,AI,ANI,OI,ONI,=I,SI,RI) komutları Bu tür komutlar PLC giriş noktalarına ilişkin değerlerin komut yürütüldüğü anda okunmasını ve çıkışlara aktarılmasını sağlayan komutlardır.Bu tür komutlar değişim hızı PLC tarama hızına göre yüksek olan işaretlerin okunması ve sonucun hızlı bir şekilde çıkış birimine aktarılması amacıyla kullanılır. 9 DENEYLER : 1 ) Bilindiği gibi herhangi bir kontaklı kumanda devresi , bir lojik fonksiyon ile ifade edilebilir ve lojik fonksiyon lojik cebir işlemleri ile çarpımların toplamı veya topların çarpımı haline getirilebilir.Aşağıda verilen fonksiyonu önce çarpımların toplamı haline getiriniz , merdiven diyagramı,komut kullanımı ve mantık kapıları ile programları oluşturunuz.Daha sonra STEP 7 MicroWin programıyla programlayınız. Q0.1=I0.1*[I0.2*(I0.3’*I0.4’+I0.3*I0.4)]+I0.1’*[I0.2*(I0.3’*I0.4+I0.3*I0.4’)] 2) Y0 Ana su giriş vanası Y1 vanası B1 Tankı Y2 vanası Boş S2 B2 Tankı Dolu S1 Boş S4 Dolu S3 Şekilde gösterilen sistemin çalışması şu şekilde olacaktır.Kazanlarda su seviyesi belirlenen seviyenin altına düşerse ilgili vanalar açılacak ve kazana su dolmaya başlayacak,sıvı seviyesi belirlenen noktaya ulaşınca ilgili vanalar kapanarak su girişi engellenecektir. YO : Ana su girişi selenoidi(Q0.0) Y1 : B1 tankı su girişi selenoidi(Q0.1) Y2 : B2 tankı su girişi selenoidi(Q0.2) S1 : B1 tankı dolu(Kapalı kontak)(I0.0) S2 : B1 tankı boş(Açık kontak)(I0.1) S3 : B2 tankı dolu(Kapalı kontak)(I0.2) S4 : B2 tankı boş(Açık kontak)(I0.3) Verilen koşulları sağlayan ve giriş-çıkışları yukarıda belirtilen sistemin merdiven diyagramı,komut kullanımı ve mantık kapıları ile programları oluşturunuz.Daha sonra STEP 7 MicroWin programı ile programlayınız. 10 3 ) Bir kısa devre ASM’un iki yönde çalışmasına ilişkin güç besleme devresi aşağıda verilmiştir. L1 L2 L3 3~ 50 Hz , 380 V F1F 1 3 5 K1 1 3 5 2 4 6 K2 2 4 6 1 3 5 2 4 6 F2F 3~ ASM Şekilde verilen devrede K1 kontaktörü motorun bir yönde,K2 kontaktörü motorun diğer yönde çalışmasını sağlayacaktır. S0 : Motor durdurma düğmesi(I0.0) F2F : Aşırı akım rölesi(I0.1) S1 : Motorun saat yönde çalıştırma düğmesi(I0.2) S2 : Motoru saatin tersi yönde çalıştırma düğmesi(I0.3) K1 : Motorun saat yönünde çalışmasını sağlayan kontaktör(Q0.0) K2 : Motorun saatin tersi yönde çalışmasını sağlayan kontaktör(Q0.1) Verilen koşulu sağlayan ve giriş-çıkışları yukarıda belirtilen sistemin merdiven diyagramı,komut kullanımı ve mantık kapıları ile programları oluşturunuz.Daha sonra STEP 7 MicroWin programı ile programlayınız. Raporda Đstenenler: 1) Deney 1,2 ve 3’e ait programların merdiven diyagramı,komut kullanımı ve mantık kapıları ile oluşturduğunuz STEP 7 MicroWin programlarını gerekli açıklamaları ile birlikte veriniz. 11 DENEY NO-2 : ZAMANLAYICILAR,SAYICILAR VE KARŞILAŞTIRMA KOMUTLARI 2.1 Zamanlayıcılar(TON,TONR) S7-200 PLC’sinde iki tür zamanlayıcı vardır : • Gecikmeli kapatan(on-delay) • Kalıcı gecikmeli kapatan(retentive on delay) Gecikmeli kapatan zamanlayıcıyı programlamak için aşağıdaki komut kullanılır: TON Txxx,PT Bu komut yığının birinci seviyesindeki değerin 1 olması durumunda etkin olur ve Txxx adresindeki zamanlayıcı içeriği belirli zaman değerleri ile artar.Txxx≥PT olduğunda zamanlayıcı biti Txxx=1 olur.PT istenen gecikme süresine bağlı olarak 1 ile 32767 arasında bir tamsayı olabilir.Yığının birinci seviyesindeki değer sıfırlandığı anda zamanlayıcı içeriği,buna bağlı olarak da zamanlayıcı biti sıfırlanır.Bu tip zamanlayıcının çalışmasına dair bir örnek aşağıda verilmiştir. LD TON LD = I0.0 T32,1000 T32 Q0.0 I0.0 T32 I0.0 IN +1000 T32 T32 TON 1 sn Q0.0 PT 1 sn Q0.0 Kalıcı gecikmeli kapatan zamanlayıcı için aşağıdaki komut kullanılır : TONR Txxx,PT Bu tip zamanlayıcılarda zamanlayıcı içeriği yığının birinci seviyesindeki değer 0 olduğunda sıfırlanmaz,mevcut değerini korur.Bu tip zamanlayıcılarda hem zamanlayıcı içeriğini,hem de zamanlayıcı bitini sıfırlamak için R komutu kullanılır.Bu tip zamanlayıcının çalışmasına dair örnek aşağıda verilmiştir. LD I0.0 TONR T1,1000 LD T1 = Q0.0 LD I0.1 R T1,1 I0.0 I0.1 T1 T1 (bit) Q0.0 10 sn 5s 12 5s CPU 212 64,CPU 214 128 tane zamanlayıcıya sahiptir.Zamanlayıcılar 3 zaman çözünürlüğüne sahiptir : 1 ms,10 ms,100 ms.Bu çözünürlükler adım zamanı belirtmektedir.Aşağıda CPU 212 ve 214’ün sahip olduğu zamanlayıcıların tiplerine ve çözünürlüklerine göre sınıflandırılması yapılmıştır. Zamanlayıcı Çözünürlük Maksimum değer CPU 212 CPU214 TON 1 ms 32.767 s(saniye) T32 T32,T96 10 ms 327.67 s T33…T36 T33..T36 T97…T100 100 ms 3276.7 s T37…T63 T37…T63 T101…T127 TONR 1 ms 32.767 s T0 T0,T64 10 ms 327.67 s T1…T4 T1…T4 T65…T68 100 ms 3276.7 s T5…T31 T5…T31 T69…T95 2.2 Sayıcılar(CTU,CTUD) Sayıcılar uygulanan işaretlere bağlı olarak yukarı doğru(ileri sayıcı-CU) veya yukarıaşağı doğru(ileri-geri sayıcı-CTUD) biçiminde kullanılır. Đleri sayıcı için aşağıdaki komut kullanılır : CTU Cxxx,PV Bu komut işlendiğinde yığının birinci seviyesindeki değer 1 ise sayıcı içeriği ve sayıcı biti sıfırlanır.Yığının ikinci seviyesindeki değerin her 0’dan 1’e geçişinde ise sayıcı içeriği 1 arttırılır.Sayıcı içeriği PV karşılaştırma değerine eşit veya büyük olduğunda sayıcı biti 1 olur.Bu tip sayıcının çalışmasına dair bir örnek aşağıda verilmiştir. LD LD CTU = I0.0 I0.1 C0,5 Q0.0 I0.0 I0.1 6 5 4 3 2 C0 içeriği 1 2 1 0 C0(bit) Q0.0 Đleri-geri sayıcı için ise aynı komut CTUD olarak kullanılır.Bu komutun işlendiğinde yığının üçüncü seviyesindeki değerin her 0’dan 1’e geçişinde sayıcı içeriği 1 artar;yığının ikinci seviyesindeki değerin her 0’dan 1’e geçişinde sayıcı içeriği 1 azalır.Yığının birinci seviyesindeki değer 1 yapıldığında ise sayıcı içeriği ve sayıcı biti sıfırlanır.Bu tip sayıcının çalışmasına dair bir örnek aşağıda verilmiştir. 13 LD I0.0 LD I0.1 LD I0.2 CTUD C48,3 LD C48 = Q0.0 I0.0 I0.1 I0.2 3 2 C48 içeriği 4 3 3 4 2 1 0 C48(bit) Q0.0 CPU 212 64 adet(C0,…,C63) ve CPU 214 128 adet(C0,…,C127) sayıcıya sahiptir.Đleri sayıclar değer olarak 32767 değerine kadar,ileri-geri sayıcılar -32767-+32767 değerleri arasında sayma işlemi yapabilirler. 2.3 Karşılaştırma işlemleri ve komutları(= , >= , <=) Karşılaştırma işlemleri çeşitli olaylara ilişkin verilen büyüklüklük,küçüklük ve eşitlik ölçütlerine göre değerlendirildiği ve buna bağlı olarak kumanda işaretlerinin üretildiği işlemlerdir.Karşılaştırma komutları ile 8 bit(Byte-B),16 bit(Word-W) ve 32 bit(Double WordD) boyutundaki veriler üzerinde işlemler yapılabilir. W1 ve W2 gibi 16 bitlik iki işaretli tamsayı biçimindeki verinin karşılaştırılmasına ilişkin işlemlerde W1-koşul-W2 (koşul = , >= , <= olabilir.) ölçütlerine göre aşağıdaki gibi kullanılır. Eşittir ölçütü için LDW =W1,W2 AW =W1,W2 OW =W1,W2 Büyük eşittir ölçütü için LDW >=W1,W2 AW >=W1,W2 OW >=W1,W2 Küçük eşittir ölçütü için LDW <=W1,W2 AW <=W1,W2 OW <=W1,W2 şeklindedir.Yukarıda verilen komutlar eğer 8 bitlik beri için kullanılacaksa LDB,AB,OB komutları, eğer 32 bitlik veri için kullanılacaksa LDW,AW,OW komutları kullanılır. LD ile başlayan karşılaştırma komutları işlendiğinde eğer karşılaştırma ölçütü sağlanıyorsa yığının birinci seviyesi 1 değerini , sağlanmıyorsa 0 değerini alır. A ile başlayan karşılaştırma komutları işlendiğinde eğer karşılaştırma ölçütü sağlanıyorsa yığının birinci seviyesindeki değer değişmez(1 ve VE işlemi),sağlanmıyorsa yığının birinci seviyesindeki değer 0 olur. O ile başlayan karşılaştırma komutları işlendiğinde eğer karşılaştırma ölçütü sağlanıyorsa yığının birinci seviyesindeki değer 1 olur(1 ve VEYA işlemi),sağlanmıyorsa yığının birinci seviyesindeki değer değişmez. Merdiven diyagramı ve mantık kapıları ile programlamada 16 bitlik W işlemleri I harfiyle gösterilir.Ayrıca CPU 214 için ek olarak LDR,AR,OR(R-Real,gerçel sayılar) işlemleri bulunmaktadır. 14 DENEYLER : 1) I0.0 I0.1 Q0.0 Q0.1 Q0.2 2s 2s 2s 2s 2s 2s 2s 2s 2s 2s 2s 2s Zamanlama diyagramı aşağıda verilen kumanda devresinin(Q0.1 çıkışını zamanlayıcılar ,Q0.2 çıkışını sayıcı kullanarak) merdiven diyagramı,komut kullanımı ve mantık kapıları ile programları oluşturunuz.Daha sonra STEP 7 MicroWin programı ile programlayınız. 2) Şebekeye doğrudan bağlanarak yol verilen üç adet kısa devre ASM’dan oluşan bir sistemin kumandasına ilişkin koşullar şu şekilde verilmiştir: a) Bir S1 başlatma düğmesine basıldığında M1 motoru devreye girecek,M1 motoru devreye girdikten 120 sn. sonra M2 motoru,M2 motoru devreye girdikten 100 sn. sonra M3 motoru devreye girecektir. b) Bir S0 durdurma düğmesine basıldığında yada herhangi bir motorun aşırı yüklenmesi durumunda M3 motoru,M3 motoru devreden çıktıktan 100 sn. sonra M2 motoru,M2 motoru devreden çıktıktan 80 sn. sonra M1 motoru devreden çıkacaktır. c) S2 ivedi durdurma düğmesine basıldığında bütün motorlar devreden çıkacak. d) Aşırı yüklenme durumu motorlar için sırasıyla F4F,F5F,F6F aşırı akım röleleri tarafından denetlenecektir. S0 : Genel durdurma düğmesi(I0.0) S1 : Genel başlatma düğmesi(I0.1) S2: Acil durdurma düğmesi (I0.5) F4F : M1 motoru aşırı akım rölesi(I0.2) F5F : M2 motoru aşırı akım rölesi(I0.3) F6F : M3 motoru aşırı akım rölesi(I0.4) K1 : M1 motorunun çalışmasını sağlayan kontaktör(Q0.0) K2 : M2 motorunun çalışmasını sağlayan kontaktör(Q0.1) K3 : M3 motorunun çalışmasını sağlayan kontaktör(Q0.2) Verilen koşulları sağlayan ve giriş-çıkışları yukarıda belirtilen sistemin merdiven diyagramı,komut kullanımı ve mantık kapıları ile programları oluşturunuz.Daha sonra STEP 7 MicroWin programı ile programlayınız. 3) Bir trafik lambası sistemi PLC kontrollü olarak gerçeklenmek istenmektedir.Bu trafik lambası sistemi için aşağıdaki sırada koşullar verilmiştir. a) Kırmızı trafik lambası 20 s. yansın. b) Sarı trafik lambası 2s fasılalı(yanıp söner) olarak yansın c) Yeşil trafik lambası 20 s yansın d) Sarı trafik lambası 2 s fasılalı olarak yansın. 15 e) a)’ya geri dönülsün. Sistemde ayrıca lambanın çalışmasını sağlayan bir S0 anahtarı bulunmaktadır. S0 : Trafik lambalarının çalışmasını sağlayan anahtar(I0.0) L1 : Kırmızı trafik lambası(Q0.0) L2 : Sarı trafik lambası(Q0.1) L3 : Yeşil trafik lambası(Q0.2) Verilen koşulları sağlayan ve giriş-çıkışları yukarıda belirtilen sistemin merdiven diyagramı,komut kullanımı ve mantık kapıları ile programları oluşturunuz.(Tek zamanlayıcı ve karşılaştırma komutlarını kullanınız)Daha sonra STEP 7 MicroWin programı ile programlayınız. Not : Özel bellek biti olan SM0.5 1 s’nin 0.5 s’sinde 1,0.5 s’sinde 0 değerini alır.(Fasılalı çalışma için) Raporda Đstenenler: 1) Deney 1,2 ve 3’e ait programların merdiven diyagramı,komut kullanımı ve mantık kapıları ile oluşturduğunuz STEP 7 MicroWin programlarını gerekli açıklamaları ile birlikte veriniz. 16 DENEY NO-3 : MATEMATĐKSEL ĐŞLEMLER VE VERĐ ĐŞLEMLERĐ Bellek üzerinde işlem yapılmasını içeren matematiksel işlemler ve veri işlemlerine geçmeden önce bellek gösterimi tekrar gözden geçirilmelidir. Bellek alanını gösteren I, Q, M, V, SM harflerinden sonra yazılan B(8 bit), W(16 bit) ve D(32 bit) harfleri erişilen bellek alanının boyutunu belirtir. Aşağıda buna örnek I adresleri verilmiştir : IB0 (I0.7, I0.6, … , I0.1, I0.0) IW0 ( IB0(I0.7, I0.6, … , I0.1, I0.0) ; IB1((I1.7, I1.6, … , I1.1, I1.0) ) ID0 ( IW0(IB0,IB1) , IW2(IB2,IB3) ) 3.1 Matematiksel Đşlemler Matematiksel işlemler CPU 212’de işaretli tamsayılar üzerinde, CPU 214’de ise işaretli tamsayılar(-32768(h8000)~+32767(h7FFF)) ve 32 bitlik gerçel sayılar üzerinde yapılabilir. Đşlemler sonucunda aşağıda tanımlı dört özel bit bu durumdan etkilenir. SM 1.0 SM 1.1 SM 1.2 SM 1.3 Đşlem sıfır biti Taşma biti Sonuç negatif biti Sıfıra bölme biti Matematiksel işlemlerle birlikte en çok kullanılan ve üzerinde matematiksel işlem yapılacak değişkenlere belirli değerler yüklenmesi ve taşınması gibi işlemler MOV ile başlayan komutlar yardımıyla yapılır. MOVB VB0,VB1 VB0 8 bitlik veri VB1 adresine aktarılır. MOVW VW0,VW2 VW0 adresindeki 16 bitlik veri VW2 adresine aktarılır. MOVD VD0,VD4 VD0 adresindeki 32 bitlik veri VD4 adresine aktarılır. MOVR VD0, VD4 VD0 adresindeki gerçel sayı VD4 adresine aktarılır. BMB VB0,VB100,N BMW VW0,VW100,N BMVD VD0,VD100,N VB0-VW0-VD0 adresinden başlayarak N byte-worddouble word bloğu VB100-VW100-VD100 adresinden başlayan alana taşınır.N 1-255 arası değer alabilir. a) Toplama Đşlemi Toplama işlemiyle 16, 32 bitlik tamsayılar ve 32 bitlik gerçel sayılar toplanabilir. Komut Đşlem Sonuç +I VW0, VW2 VW0+VW2 yapılır, sonuç VW2’ye yazılır. Tamsayı +D VD0,VD4 VD0+VD4 yapılır, sonuç VD4’e yazılır. Tamsayı +R VD0,VD4 VD0+VD4 yapılır, sonuç VD4’e yazılır. Gerçel sayı b) Çıkarma Đşlemi Çıkarma işlemiyle 16, 32 bitlik tamsayılar ve 32 bitlik gerçel sayılar çıkarılabilir. Komut Đşlem Sonuç -I VW0, VW2 VW2 - VW0 yapılır, sonuç VW2’ye yazılır. Tamsayı 17 -D VD0,VD4 VD4 - VD0 yapılır, sonuç VD4’e yazılır. Tamsayı -R VD0,VD4 VD4 - VD0 yapılır, sonuç VD4’e yazılır. Gerçel sayı c) Tamsayı Çarpma, Bölme Komut *I VW0, VW2 *D VD0,VD4 MUL VW0,VD2 Komut /I VW0, VW2 /D VD0,VD4 DIV VW0,VD2 Đşlem VW0 * VW2 yapılır, sonuç VW2’ye yazılır.(16 bit iki sayı) VD0 * VD4 yapılır, sonuç VD4’e yazılır. (32 bit iki sayı) VW0*(VD2’nin düşük anlamlı 16 biti(VW4)) yapılır, sonuç VD2’ye yazılır. Sonuç Đşlem VW2 / VW0 yapılır, sonuç VW2’ye yazılır.(16 bit iki sayı) VD4 / VD0 yapılır, sonuç VD4’e yazılır. (32 bit iki sayı) (VD2’nin düşük anlamlı 16 biti(VW4))/VW2 yapılır, bölüm VW4’e(16 bit), kalan VW2’ye(16 bit) yazılır. Sonuç 16 bit tamsayı 32 bit tamsayı 32 bit tamsayı 16 bit tamsayı 32 bit tamsayı 32 bit tamsayı d) Gerçel Sayı Çarpma, Bölme Komut *R VD0,VD4 /R VD0,VD4 Đşlem VD0*VD4 yapılır,sonuç VD4’e yazılır.(32 bit iki gerçel sayı) Sonuç 32 bit gerçel sayı VD4/VD0 yapılır,sonuç VD4’e yazılır.(32 bit iki gerçel 32 bit gerçel sayı sayı) e) Gerçel Sayı Özel Đşlemler Komut Đşlem Sonuç SQRT VD0,VD4 √VD0 yapılır,sonuç VD4’e yazılır.(32 bit gerçel sayı) 32 bit gerçel sayı SIN VD0,VD4 COS VD0,VD4 TAN VD0,VD4 sin(VD0) yapılır,sonuç VD4’e yazılır.VD0 radyan cinsinden girilir. Açıyı radyana çevirmek için 1.745329E-2 ile çarpılır. 32 bit gerçel sayı LN VD0,VD4 ln(VD0) yapılır, sonuç VD4’e yazılır. 32 bit gerçel sayı EXP VD0,VD4 e(VD0) yapılır,sonuç VD4’e yazılır. 32 bit gerçel sayı 18 3.2 Veri Đşlemleri a) Veri Tipi Çevirme Aşağıda tanımlı veri tipi çevirme işlemlerinin haricinde işlemlerde mevcuttur. Komut BTI VB0,VW2 Đşlem VB0’daki byte değeri tamsayıya çevrilir, sonuç VW2’ye yazılır. Sonuç 16 bit tamsayı DTR VD0,VD4 VD0’daki 32 bit işaretli tamsayı 32 bit gerçel sayıya çevrilir,sonuç VD4’e yazılır. 32 bit gerçel sayı ROUND VD0,VD4 VD0’daki gerçel sayı 32 bit tamsayıya çevrilir, sonuç VD4’e yazılır. Virgülden sonrası yukarı veya aşağı yuvarlanır. VD0’daki gerçel sayı 32 bit işaretli tamsayıya çevrilir, sonuç VD4’e yazılır. Virgülden sonrası ihmal edilir. VW0’daki 16 bitlik BCD kod tamsayıya çevrilir,sonuç VW0’a yazılır.0-9999 arası BCD çevrilebilir. 32 bit tamsayı TRUNCATE VD0,VD4 BCDI VW0 32 bit tamsayı 16 bit tamsayı b) Veri Arttırma, Azaltma, Kaydırma, Döndürme Komut INCB VB0 DECB VB0 INCW VW0 DECW VW0 INCDW VD0 DECDW VD0 Đşlem VB0’daki byte değeri 1 arttırılır-azaltılır. Sonuç 8 bit (byte) VW0’daki işaretli 16 bit değer 1 arttırılır-azaltılır. 16 bit(word) VD0’daki işaretli 32 bit değeri 1 arttırılır-azaltılır. 32 bit (double word) Komut SRB VB0,N SRW VW0,N SRD VD0,N Đşlem VB0-VW0-VD0 daki değer sağa kaydırılır. Kaydırma sayısı N ile belirtilir. N byte-word-double word olmasına göre maksimum 8-16-32 olabilir.Dışarı çıkan en sağdaki bit SM1.1’e aktarılır.Boşalan bitler 0 ile doldurulur. VB0-VW0-VD0 daki değer sola kaydırılır. Kaydırma sayısı N ile belirtilir. N byte-word-double word olmasına göre maksimum 8-16-32 olabilir.Dışarı çıkan en soldaki bit SM1.1’e aktarılır.Boşalan bitler 0 ile doldurulur. Sonuç Đşaretsiz byte Đşaretsiz word Đşaretsiz d. word Đşlem VB0-VW0-VD0 daki değer sağa döndürülürür. Döndürme sayısı N ile belirtilir. N 8-16-32’den büyükse değerine bölünür ve kalan değer kadar döndürme yapılır . En sağdaki bit SM1.1’e ve ayrıca en baştaki bite aktarılır. VB0-VW0-VD0 daki değer sola döndürülürür. Döndürme sayısı N ile belirtilir. N 8-16-32’den Sonuç Đşaretsiz byte Đşaretsiz word Đşaretsiz d. word SLB VB0,N SLW VW0,N SLD VD0,N Komut RRB VB0,N RRW VW0,N RRD VD0,N RLB VB0,N RLW VW0,N 19 Đşaretsiz byte Đşaretsiz word Đşaretsiz d. word Đşaretsiz byte Đşaretsiz word RLD VD0,N büyükse değerine bölünür ve kalan değer kadar döndürme yapılır En soldaki bit SM1.1’e aktarılır ve ayrıca en baştaki bite aktarılır. SM1.1 SRB VB12,3 VB12 1 0 0 1 1 0 0 1 X SM1.1 VB12 0 0 0 1 0 0 1 1 0 SM1.1 RLB VB10,5 VB10 1 0 1 1 1 0 0 1 X SM1.1 VB10 0 0 1 1 0 0 20 1 1 1 Đşaretsiz d. word DENEYLER : 1) Otomatik kontrol için kullanılan en yaygın denetleyiciler PID tipi denetleyicilerdir. Bu tip denetleyicilerin denetim işaretini üretmek için oluşturdukları matematiksel ifade aşağıda verilmiştir. de(t ) u (t ) = K P .e(t ) + K D . + K I ∫ e(t ).dt dt • • Bu ifadeye bağlı olarak aşağıda verilen adreslerde verilen bilgileri tutan ve AQW200 adresinde u(t) denetim işareti bilgisini veren sistemi merdiven diyagramı, komut kullanımı ve mantık kapıları ile oluşturunuz. Aşağıda verilen kapalı çevrimde herhangi gerçek fiziksel bir dizge için PLC ile birlikte hangi öğelerin eklenmesi gerektiğini bir örnekle açıklayınız. Not: Verilen eşitlikteki türev ve integralin hesabı Euler Yöntemi ile yapılmalıdır. Ayrıca kapalı çevrim koşulları göz önünde bulundurulmalıdır. rd(t) e(t) PID u(t) AIW100 : çıkış işareti (y(t)) VW100 : referans işaret (rd(t)) VW200 : KP değeri VW210 : KD değeri VW220 : KI değeri 21 Dizge y(t) DENEY NO-4 : PROGRAM DENETĐM ĐŞLEMLERĐ VE KESMELĐ ÇALIŞMA 4.1 Atlama komutları ile programlama(JMP n,LBL n) Bir programda komutların işlenme sırası JMP n atlama komutu ve LBL n etiket komutu çifti kullanılarak değiştirilebilir.JMP n atlama komutu yığının birinci seviyesi 1 iken etkin olan(koşullu işletilen) bir komuttur.JMP n komutu işletildiğinde LBL n komutuna kadar yazılmış olan komutlar atlanır ve LBL n komutunu izleyen komut ile programın yürütülmesi sürdürülür. JMP n ve LBL n komutları aynı anaprogram ve altprogram içinde yazılır.n sayısı CPU 212 için 0…63(64 adet) arası,CPU 214 için 0…255(256 adet) arası olabilir.Aşağıda bu komutun kullanımına dair bir örnek verilmiştir. NETWORK 1 LD I0.0 JMP 0 NETWORK 2 LD I0.1 = Q0.0 NETWORK 3 LDN I0.0 JMP 1 NETWORK 4 LBL 0 NETWORK 5 LD I0.2 = Q0.1 NETWORK 6 LBL 1 NETWORK 7 MEND I0.0 1 2 I0.1 I0.0 0 JMP Q0.0 3 1 JMP 4 0 LBL I0.2 Q0.1 5 6 7 1 LBL END Bu programın yürütülmesi şu şekilde olur:I0.0 = 0 iken yığının birinci seviyesindeki değer 0 olacağından JMP 0 komutu işlenmez,bir sonraki komuta geçilir.Bu durumda 2,3,6 ve 7 nolu merdiven diyagram basamakları işleme girer.I0.0 = 1 iken yığının birinci seviyesindeki değer 1 olacağından JMP 0 komutu işletilir.2 ve nolu basamaklar atlanır;4,5,6 ve 7 nolu basamaklar işleme girer. 4.2 Altprogram kullanımı(SBR n,CALL n,RET) Altprogramlar ana programın son komutu olan MEND(END) komutunun yazılmasından sonra yazılan ve SBR n komutu ile başlayıp RET komutu ile sona eren program parçalarıdır.Altprogramın son komutu olan RET komutundan önce altprogramdan dönüşü sağlamak için koşullu dönüş komutu CRET kullanılır.n altprogram numarasını gösterir ve CPU 212 için 0…15(16 adet),CPU 214 için 0…63(64 adet) arası olabilir.Altprogramlar CALL n komutu ile çağrılırlar.Bu komut ise yığının birinci seviyesindeki değer 1 ise etkin olur.Đşlem sırası bu komuta geldiğinde yığının birinci seviyesindeki değer 0 ise bu komut işletilmez,bir sonraki komuta geçilir.Aşağıda bu komutun kullanımına dair bir örnek verilmiştir. 22 NETWORK 1 LDN I0.0 CALL 0 NETWORK 2 LD I0.0 CALL 1 NETWORK 3 MEND NETWORK 4 SBR 0 NETWORK 5 LD I0.3 A I0.1 = Q0.0 NETWORK 6 RET NETWORK 7 SBR 1 NETWORK 8 LD I0.3 O I0.4 A I0.2 A I0.1 = Q0.0 NETWORK 9 RET I0.0 0 CALL I0.0 1 CALL 1 2 3 END 4 0 SBR I0.1 Q0.0 I0.3 5 6 RET 7 1 SBR 8 I0.1 I0.2 I0.3 Q0.0 I0.4 9 END Örnekte verilen programda I0.0 değerine bağlı olarak iki altprogramdan biri işletilir.Eğer I0.0 = 0 ise CALL 0 komutu etkin olur ve SBR 0 ile başlayıp RET ile biten altprogram çalıştırılır.Eğer I0.0 = 1 ise CALL 1 komutu etkin olur ve ve SBR 1 ile başlayıp RET ile biten altprogram işletilir. 4.3 Kesmeli çalışma Kesmeli çalışma normal tarama çevrimi içinde yürütülen program komutlarının işlemesine ara verilip başka bir göreve ilişkin bir programın yada programların yürütülmesi işlemidir.Bu tür işlemler PLC sistem programı ile denetlenir.Kesmeli çalışma PLC tarama süresinden bağımsız kumanda işaretlerinin algılanması ve üretilmesi için gerekli olan bir çalışma biçimidir. PLC’de kesmeli çalışma gerektiren kumanda sistemlerinin gerçekleşmesinde ; • Kesmeli çalışma türleri ve sayısı • Birden çok kesmeli çalışma işleminin yapılması durumunda kesme işlemlerinin önceliği ve önceliğinin değiştirilebilir olup olmadığı • Kesme isteklerinin düzenlenmesi,kesme isteklerinin sıralanması,kesme isteklerinin karşılanmadığı durumlarda sistem davranışı • Bir kesme programı yürütülürken daha önceki bir kesme isteği yada işareti geldiğinde program akışının durumu gibi özelliklerin bilinmesi gerekir. 23 • • • • • • • • • CPU 212 için 2 adet olaya bağlı, 1 adet zamana bağlı 2 adet seri iletişim 1 adet yüksek hız sayıcı için kesmeli çalışma CPU 214 için 8 adet olaya bağlı 2 adet zamana bağlı 2 adet seri iletişim 7 adet yüksek hız sayıcı 2 adet darbe çıkışı kesmeli çalışma işlemi mevcuttur. PLC’de herhangi bir kesme olayı için yürütülecek olan program ATCH INT,EVENT komutu ile tanımlanır.Burada INT kesme altprogramını , EVENT ise kesme olayını tanımlayan numarasıdır.CPU 212 ve 214 için tanımlanan kesme numarası ve tanımları aşağıdaki tabloda verilmiştir. EVENT numarası 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Kesme tanımı Yükselen kenar I0.0 Düşen kenar I0.0 Yükselen kenar I0.1 Düşen kenar I0.1 Yükselen kenar I0.2 Düşen kenar I0.2 Yükselen kenar I0.3 Düşen kenar I0.3 Port 0 : Karakter al Port 0 : Gönderme tamamlandı Zamanlana bağlı kesme 0,SMB 34 Zamanlana bağlı kesme 1,SMB 35 HSC0 CV=PV HSC1 CV=PV HSC1 yön girişi değişti HSC1 harici reset HSC2 CV=PV HSC2 yön girişi değişti HSC2 harici reset PLS0 darbe sayımı tamamlandı PLS0 darbe sayımı tamamlandı CPU 212 Var Var Var Var Var Var CPU 214 Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Bir kesme olayı ile işletilen altprogramın yürütülmesine son vermek için DTCH EVENT komutu kullanılır.Bütün kesmeli çalışmalara izin vermek için ENI komutu ve bütün kesmeli çalışmalara son vermek için DISI komutu kullanılır.Her kesme altprogramı RETI komutu ile sonlandırılır.Belirli koşullarda kesme altprogramından çıkmak için kesme altprogramı içinde CRETI koşullu dönüş komutu kullanılır. 24 Kesme altprogramlarında DISI,ENI,CALL,HDEF,FOR/NEXT,LSCR,SCRE,SCRT ve END komutları kullanılamaz. Olaya bağlı olarak çalışan,I0.0 noktasına uygulanan işaretin çıkan kenarı ile yürütülecek olan bir kesme altprogramı aşağıdaki gibi tanımlanır. LD SM0.1 ATCH 5,0 ENI …… …… MEND INT 5 …… altprogram parçası …… RETI Bu program parçası işlendiğinde işleyişi şu şekilde olur:Ana programda komutlar sırasıyla işlenirken I0.0 girişindeki işaretin 0’dan 1’e değişmesi durumunda işlenen son komut yürütüldükten sonra program akışı INT 5 altprogramına geçer.Altprogram yürütüldükten sonra tekrar anaprograma dönülür ve komutların işlenmesine bırakıldığı yerden devam edilir. Zamana bağlı bir kesme altprogramının hangi sıklıkta yürütüleceği 10 numaralı kesme olayı için SMB34 ve 11 numaralı kesme olayı için SMB35 özel bellek alanlarına yazılan değerlerle tanımlanır.8 bitlik bu bellek alanlarına 5 ile 255 arasında bir tamsayı değer yazılır ve ms. olarak altprogramın işletilme sıklığı belirlenir.Örneğin MOVB 10,SMB34 komut ile SMB34 özel bellek alanına 10 değeri yazılır ve kesmeli çalışmanın her 10 ms.’de bir yapılası sağlanır.Örneğin örnekleme zamanı 100 ms. olarak seçilen bir sayısal kontrol yazılımı için her 100 ms’de bir işletilen altprogram kullanılır ve bu amaçla aşağıdaki program kullanılır. LD SM0.1 MOVB 100,SMB35 ATCH 0,11 ENI ………. MEND INT 0 ………. her 100 ms’de bir kez yürütülecek program parçası ………. RETI Olaya ve zamana bağlı kesmelerin haricinde bulunan yüksek frekanslı işaretlerin sayımı için kullanılan yüksek hızlı sayıcı kesmesi, iletişim kesmesi ve darbe çıkış sayımı kesmesi gibi kesmelere burada yer verilmemiştir.Bu kesmelerin çalışması ile ilgili olarak kaynaklar incelenebilir. 25 DENEYLER : 1) Bir elektrik motoru bir seçici anahtar kullanarak iki farklı şekilde kumanda edilmek istenmektedir.S0 anahtarı kapalı iken motor S1(durdurma),S2(başlatma) anahtarları tarafından,S0 anahtarı açık iken S3(durdurma),S4(başlatma) anahtarları tarafından kontrol edilmek istenmektedir. S0 : Seçici anahtar(I0.0) S1 : Motoru durdurma düğmesi(I0.1) S2 : Motoru başlatma düğmesi(I0.2) S3 : Motoru durdurma düğmesi(I0.3) S4 : Motoru başlatma düğmesi(I0.4) K1 : Motoru çalıştıran kontaktör(Q0.0) Verilen koşulları sağlayan ve giriş-çıkışları yukarıda belirtilen sistemin merdiven diyagramı,komut kullanımı ve mantık kapıları ile programları oluşturunuz.(Atlama veya altprogram komutlarını kullanınız)Daha sonra STEP 7 MicroWin programı ile programlayınız. Not : S0 anahtarının konum değiştirdiği anlarda motorun durumu önemli değildir. 2) Sabit v=1.2m/s hızında hareket eden bir taşıyıcı bant üzerindeki parçanın uzunluğu şekilde verilen düzenekteki bir yaklaşım anahtarı kullanılarak ölçülmekte ve uzunluk bilgisi mm. olarak belirli bir adrese yazılmaktadır. Parça uzunluğunun 800 mm.’den kısa veya 1200 mm.’den uzun olması durumunda bir kontaktör üzerinden uyarı lambası yanacaktır. Yaklaşım anahtarı v=1.2 m/s S0 : Yaklaşım anahtarı(I0.0) K0 : Uyarı lambası(Q0.0) Verilen koşulu sağlayan ve giriş-çıkışları yukarıda belirtilen sistemin merdiven diyagramı,komut kullanımı ve mantık kapıları ile programları oluşturunuz.(Uzunluk ölçümü için yükselen ve düşen kenar ile etkin olan kesmeleri kullanınız.) Daha sonra STEP 7 MicroWin programı ile programlayınız. Raporda Đstenenler: 1) Deney 1 ve 2’ye ait programların merdiven diyagramı,komut kullanımı ve mantık kapıları ile oluşturduğunuz STEP 7 MicroWin programlarını gerekli açıklamaları ile birlikte veriniz. 26