DENİZLİ ŞEHİT ÖĞRETMEN YUSUF BATUR
ANADOLU MESLEK LİSESİ
ENDÜSTRİYEL OTOMASYON TEKNOLOJİLERİ ALANI
DELTA PLC
PLC BAĞLANTISI:Şekil 2.1
Örnek olarak DVP 14S serisi röle çıkışlı bir PLC üzerinde bağlantı incelenmiştir. (şekil 2.1)
Besleme Bağlantısı:
PLC 24 V. doğru gerilimle beslenmektedir. Bu nedenle 24 voltluk bir güç kaynağı kullanılmalıdır.
Giriş Bağlantısı:
Dijital giriş aktifliğin sağlanması için S/S ortak ucu ile Xn giriş ucu arasında 24 V. giriş gerilimi kullanılır. Şekil 2.1 de “sink” modunda bir bağlantı kullanılmıştır. PLC girişinin “source” ve “sink” modunda iki bağlantı şekli uygulanabilir. Şekil 2.2 de görüldüğü gibi “sink” tipte S/S ortak giriş ucu 24 Volt besleme geriliminin pozitif polaritesi bağlanmakta ve negatif polarite anahtarlanmaktadır. “Source” tip bağlantıda ise S/S ortak giriş ucu negatif (0V) bağlanmakta ve dijital girişler pozitif polariteyi anahtarlamaktadır. Giriş rölesi olarak kullanılan opto-cupler elemanında ışık yayan tarafta bulunan birbirine ters paralel bağlı iki led diyot sayesinde giriş gerilim yönünün bir önemi bulunmamaktadır.
Şekil 2.2
Çıkış Bağlantısı:
Delta PLC’ de transistör ve röle olarak iki çıkış tipi vardır. Şekil 2.3 de röle çıkışlı tip örnek olarak kullanılmıştır. Röle çıkışlı PLC’ de her bir çıkışta en fazla 1,5 A ve 230 V alternatif veya doğru akımda çalışan bir yük anahtarlanabilir. Transistör çıkışlı tipte ise sıcaklığa bağlı olarak değişmekle beraber 0.3 A ve 30 v doğru gerilimde çalışan yükler direkt olarak anahtarlanabilir. Daha büyük yükler için yükten önce sürücü kullanılmalıdır. Örneğin transistör çıkışında 24 Volt ile çalışan bir röle anahtarlanarak bu röle kontağıyla da büyük yükler anahtarlanabilir.
Şekil 2.3 PROGRAM YÜKLEME:
Bilindiği gibi komut, ladder diyagram veya SFC şeklinde PLC programlaması yapılabilmesi için editör programa ihtiyaç vardır. DELTA için Windows altında çalışmak üzere WPLSoft adlı yazılımlar kullanılır. Vista veya XP için çeşitli versiyonları bulunan bu programın versiyonları 2.09, 2.10 … gibi numaralandırılmıştır. Bu programlar http://www.fastltd.net/tr/Download.asp adresinden ücretsiz olarak indirilebilmektedir. Bu program içerisinde bulunan HELP mönüsünden programın kullanılması anlatılmaktadır. İlerleyen kısımda gerekli açıklamalar yapılacaktır.
HAFIZA
Delta PLC’ de kullanılan hafıza bölgeleri ve tanımlamaları aşağıda verilmiştir. Bazılarının RAM bazılarında ise besleme gerilimi kesilse de silinmeyen hafıza bölgeleri olarak adreslenebilen bu bellek bölgelerinin işlevleri bu aşamada tam olarak anlaşılamayabilir. Uygulamalar sırasında hafıza alanları ve adreslemeleri tekrar edilecektir.
Madde Özellikler Not
Çalışma kontrol metodu Saklı program, saykıl tarama sistemi I/O kontrol metodu
Batch (Dizi) işleme ve End komutu ile birlikte I/O durumlarını
güncelleme
MPU I/O durumlarını ani güncelleme komutları mevcut
Program dili Komut + ladder diyagram + SFC step komutu ile
Program kapasitesi 3792 adım EEPROM
Hafıza bölgesi 32 temel komut (step ladder
komutlarını içerir) 107 uygulama komutu
X Harici giriş rölesi X0 ~ X7 CPU üzerinde,
8 giriş ilave edilebilir. Harici giriş noktaları
Y Harici çıkış rölesi Y0 ~ Y5 CPU da, 16
çıkış ilave edilebilir. Harici çıkış noktaları Genel amaçlı M0 ~ M511+M768~M999 512+232 nokta M512~ M767 256 nokta Kalıcı M2000 ~ M4095, 2,096 adet (*3) M Yardımcı röle
Özel amaçlı M1000 ~ M1279 280 nokta
Kontak program içinde On/Off yapılabilir. 100 ms T0 ~ T63 64 nokta 10 ms T64~T126(M1028=ON olunca) 63 nokta T Timer 1 ms T127 1 nokta
TMR komutu ile belirtilen Timer. SET değerine ulaşırsa, ilgili T kontağı ON olur.
C0 ~ C111
Genel 112 nokta
Kalıcı C112 ~ C127 16 nokta
C Counter
CNT (DCNT) komutu ile belirtilen Counter. SET değerine ulaşırsa, ilgili C kontağı ON olur. Yüksek hız C235 ~ C254(hepsi kalıcı) 13 nokta 1 faz 10 khz, 2 faz 7 khz Başlangıç stepleri S0 ~ S9 10 nokta S Step noktaları Genel
amaçlı stepler S10 ~ S127 118 nokta
SFC Kalıcı alan ayarı için kullanılır
Genel D0-D407 408 nokta Kalıcı D408-D599 192 nokta R öl e (b it ) R e gi st er Özel D1000-D1143 144 nokta
Data saklama için Register
P Pointer P0 ~ P63 64 nokta
CJ ve CALL pozisyon index
In
d
ex E
/F İndex röle E(=D1028),F(=D1029) 2 nokta
K-32,768 ~ K32,767 (16-bit çalışma) K Decimal K-2,147,483,648 ~ K2,147,483,647(32-bit çalışma) S ab it
H Hex H0000 ~ HFFFF (16-bit çalışma), H00000000 ~ HFFFFFFFF (32-bit
çalışma) Seri haberleşme portları
(program yazma/okuma)
COM1: RS-232C; COM2: RS-485 ( master veya slave olabilir); COM1 ve COM2 aynı anda kullanılabilir
3-TEMEL SEVİYE PROGRAMLAMA KOMUTLARI
:LD Komutu:
LOAD komutu ladder diyagramda dikey baradan başlangıç için kullanılır. Eğer baradan başlangıç normalde kapalı bir kontakla oluyorsa komut, LDI şeklindedir. LOAD INVERSE anlamı taşır.
Problem 1:
Bir butona basıldığında bir motor çalışmaya başlayacak ve buton bırakıldığında motor duracaktır. (Bu ilk problem çözümünde elemanların PLC’ ye bağlanışı ve WPLSoft editör programının kullanışını da inceleyelim)
Buton ve motorun PLC’ ye bağlanışı:
Örnek şekilde Delta DVP14SS modeli esas alınmıştır. Burada PLC giriş ünitelerinin bağlanacağı kısımda S/S ile belirtilen ortak uçta, beslemenin (+) pozitif polaritesi bağlıdır. Butona basıldığı zaman beslemenin(yani 24 Voltun (-) negatif ucu) 0 Voltu giriş elemanın aktif olmasını sağlayacaktır. Giriş hafıza bölgesine kayıt işaretini gönderecek olan opto-cuplor elemanının aktif olmasının anlamı ise; normalde açık olarak adreslenen kontağın kapanması veya normalde kapalı olarak adreslenen kontağın açılmasıdır.
PLC modeline göre çıkış, transistör çıkışlı veya röle kontağı çıkışlı olabilir. Ancak burada anahtarlanacak olan yük PLC çıkışının taşıyabileceği akımdan daha fazla akım çeken 1 fazlı motordur. Bu nedenle PLC çıkışı ile bir röle ve bu rölenin kontağıyla da motorumuz anahtarlanmıştır. Rölenin anahtarlanmasında 24 V. besleme kullanılmıştır. Örneğin motorumuz 3 fazlı bir motor olsaydı röle kontağı ile bir knotaktör anahtarlanacak ve kontaktör kontaklarıyla da 3 faz anahtarlanmış olacaktı.
Programın editör programda yazılması:
Bu ilk problemin çözümü olan PLC programında kullanılacak olan Ladder diyagram ve komut listesi şekil….. deki gibi olacaktır. Eğer butona basılırsa aktif olan X0 girişi, açık adreslendiği için kapanacaktır. Sinyal akışı sağlandığı için Y0 çıkışı aktif olacak ve PLC dış devresindeki 24 V.’ luk röle anahtarlanmış olacaktır.
Bu problemde 2 yeni komut görülmektedir. Bunlar; OUT komutu:
Çıkış komutudur. END komutu:
Program sonunun tanımlanması için kullanılan komuttur. Her programın mutlaka END komutu ile sonlandırılması gerekmektedir.
Editör program çalıştırıldıktan sonra ilk olarak normalde açık X0 kontağı adreslenecektir. Bunun için şekil 3.1.deki açık kontak tıklanarak veya F1 tuşu ile seçim yapılır. Gelen iletişim kutusundan X0 adresi belirtilerek OKey tıklanır.
Şekil 3.1
Daha sonra şekil 3.2 deki gibi veya F7 tuşu ile çıkış seçimi yapılır.
Şekil 3.2
Programı sonlandırmak için yazılacak olan END komutu F6 tuşu veya şekil 3.3 deki gibi fonksiyon seçiminden alınır..
Şekil 3.3
Eğer Wiew mönüsü kullanılarak veya ikonu tıklanarak komut listesi görünümü seçilirse şekil 3.4 deki görünüm oluşur.
Şekil 3.4
Şekil 3.5
Ancak derlenmeden direkt olarak PLC’ ye gönderilmek istenirse de bizden derleme konusunda uyarı verilir ve onay verilirse derlenerek PLC hafızasına transfer işlemi yapılır.
Şekil 3.6
Eğer Step Range Specification seçeneği ile program satır sayısı seçimi yapılırsa 3791 satırın tamamı yerine belirtilen satır sayısı kadarı PLC belleğine gidecektir. Örneğin programımız 3 satırlıktır. Mutlaka 3 satır seçmek zorunda değiliz diyelim ki beş satır seçerek tüm satırların belleğe transfer edildiğinden emin olabiliriz. Boş satırlarda gereksiz yer transfer edilmemiş olur.
Eğer PLC stop modunda değilse şekildeki gibi stop moduna alma onayı istenir. Program transferi için PLC stop durumunda olmalıdır.
Tekrar RUN moduna alma iletişim kutunda onay vererek veya RUN ikonu ile PLC çalıştırılabilir.
Şekil 3.8
İstenirse Şekil 3.9 daki gibi seçim yapılarak PLC giriş/ çıkış ve diğer çalışma biçimi simülasyon olarak izlenebilir.
Şekil 3.9
Örneğin Programımızda X0 girişi aktif olduğunda Y0 çıkışın aktif olduğu şekil 3.10 da görülmektedir.
AND Komutu:
Seri bağlantı komutudur. İki kontak birbiriyle seri bağlanıyorsa, Lojik VE işlemiyle aynı anlamdaki bu komut kullanılır.
Problem 2:
Bir pres motorunun çalışarak kolun aşağıya inmesi sırasında çalışan kişinin iki elinin de presin altında olmadığından emin olmak için iki ayrı butona basıldığında hareketin gerçekleşmesi istenmektedir.
Çözüm:
İki butona aynı anda basıldığında motorun çalışması için VE mantığında bir işleme ihtiyaç vardır. Böyle bir işlemde motoru anahtarlayan kontaktörü kumanda edecek iki butonu seri bağlamak yeterlidir ve bu işlem için bir PLC’ ye ihtiyaç yoktur. Ancak seri bağlama mantığını görmek için PLC programı gerçekleştirirsek Ladder diyagram ve komut listesi şekil 3.11 da ki gibi olur.
Şekil 3.11 ANDI Komutu:
Seri bağlanan kontağın normalde kapalı bir kontak olduğu seri bağlama komutudur (AND Inverse).
Problem 3:
Acil stop butonu basılı değilken start butonuna basılırsa bir motor çalışmaktadır.
Çözüm:
Stop butonu ve start butonu olarak görev yapacak olan iki buton da normalde açık kontaklıdır. Yani kapalı adreslenen ve acil durdurma butonunun bağlı olduğu X1 giriş aktif olduğunda açılan kontak, çıkışın aktif olmasını engelleyecektir. Eğer acil durdurma butonu normalde kapalı kontaklı bir buton olsaydı ladder diyagram (problem 2) deki gibi olurdu.
OR Komutu:
Paralel bağlama komutudur. İki kontak paralel bağlanıyorsa Lojik VEYA işlemi ile aynı anlamda olan bu komut kullanılır.
Problem 4:
Start butonuna basıldığında çalışmaya başlayan bir motor, buton basılmasa da çalışmaya devam edecektir. Motorun durdurulması için stop butonuna basılması gerekmektedir.
Çözüm:
Bu problemin çözümü, bir mühürleme devresidir. Çok kullanılan mühürleme işlemi self kontrol, holding kontrol, geri beslemeli devre şeklinde de ifade edilebilir. Daha sonra açıklanacak olan SET / RESET işlemiyle de çözülebilecek bu problem OR komutu uygulamasına örnek olacak şekilde çözülecektir. Ladder diyagramdan görüldüğü gibi çıkışa ait bir kontak start butonunun bağlandığı girişe parelel bağlanarak çalışma sürekliliği sağlanmıştır. Bu sürekli çalışma şekli, stop butonu basılıp sinyal akış yolu kesilerek gerçekleştirilir. Problem 3 deki bağlantı şekli aynen kullanıldığından stop butonunun bağlandığı giriş normalde kapalı olarak adreslenmiştir.
Şekil 3.13 ORI Komutu:
Paralel bağlanan kontağın normalde kapalı olduğu paralel bağlama komutudur. (OR Inverse)
Problem 5:
1. motor 1 nolu start butonu ile çalıştırılabilmekte ve bu durumda çalışmakta olan 2. motor durmaktadır. Ancak 2 nolu butonla 1 nolu motor çalışıyor olsa da 2 nolu motor çalıştırılabilmektedir.
Çözüm:
ANB Komutu:
Kontak bloklarının seri bağlandığını ifade eden komuttur.
Problem 6:
1 veya 2 nolu sensörlerden biri aktif durumda iken iki butondan her hangi birine basılırsa bir alıcının anahtarlanması gerekmektedir.
Çözüm:
Bu problem için PLC dışında iki buton kendi arasında ve aynı şekilde 2 sensör kontağı birbirleriyle paralel bağlanarak PLC’ nin sadece iki girişi kullanılarak çözüme ulaşılabilir. Ancak ANB komutu örneği için PLC’ nin dört girişi kullanılacaktır.
Şekil 3.15 ORB Komutu:
Kontak bloklarının paralel bağlandığını ifade eden komuttur.
Problem 7:
Bir motor iki ayrı noktadan çalıştırılabilmektedir. Ancak (A) noktasındaki butonla çalıştırılabilmesi için bu noktadaki bir sensörün, (B) noktasındaki başka bir butonla çalıştırılabilmesi için de (B) noktasındaki ikinci sensörün aktif olması gerekmektedir.
Çözüm:
(A) noktasındaki sensör ve butonun birlikte aktif olmasının gerekliliği, VE işlemidir. Buton ve sensör, PLC dışında seri bağlanabilir. Aynı durum (B) noktası için de geçerlidir. Ancak ORB komutu uygulaması için PLC’ nin dört girişi kullanılacaktır.
Şekil 3.16
Temel Komut Uygulaması 1:
Çözüm:
3 fazlı asenkron motorun devir yönünün değiştirilmesi üç fazdan iki tanesinin yerini değiştirmekle mümkündür. Bu amaçla 3 fazı farklı sırada anahtarlayacak iki kontaktöre ihtiyaç vardır. Bunun anlamı iki PLC çıkışının kullanılacağıdır. Çalışmayı başlatmak için iki yön için iki ayrı başlatma butonu ve durdurma için stop butonu kullanılacaktır. Ayrıca motorun aşırı akım rölesi aktif olursa yine durdurma işlemi gerçekleşecektir. Bu durumda PLC’ nin 4 girişi kullanılacaktır. Çok farklı ladder diyagramlarla sonuca gidilebilecektir. Önce klasik kumanda devresini oluşturarak çeşitli çözümleri inceleyelim.
Şekil 3.17
ÇÖZÜM 1:
Şekil 3.18 deki PLC bağlantısından görüldüğü gibi aşırı akım rölesi kontağı normalde kapalı, diğer giriş elemanları ise normalde açık kontaklıdır. Bu durumda örnek ladder diyagramda adreslenirken durdurma butonunun bağlandığı X1 girişi normalde kapalı adreslenmiştir. Normalde kapalı kontaklı olduğu için aktif olmadığı anda X2 girişin aktif yaparak kapanmasını sağlamak üzere aşırı akım rölesi kontağının bağlandığı giriş olan X2, ladder diyagramda açık kontak olarak adreslenmiştir. Devir yönünün değişiminde iki fazın yerinin değiştirilmesini sağlayan iki kontaktör aynı anda enerjilenecek olursa fazlar arası kısa devre meydana gelir. İki çıkışın aynı anda aktif olması olasılığını tamamen yok etmek için her çıkışın önüne diğer çıkışın kapalı kontağı konmuştur.Buna elektriksel kilitleme denir.
ÇÖZÜM 2:
Şekil 3.18 durdurma işlevindeki X1 ve X2 girişleri, iki çıkışın önüne de ayrı ayrı konmuştur. İkinci örneğimizde ise durdurma işlevindeki bu kontaklar, yardımcı röle durumundaki (M) rölesinin anahtarlanması mantığı kullanarak çözüme ulaşılmıştır. Yardımcı röle mantığındaki (M) hafıza bölgesi kullanımında, (M) harici bir çıkış olmadığı halde (Y) çıkışı gibi adreslenmektedir.
Şekil 3.19
ÇÖZÜM 3:
Devir yönü değiştirme uygulamasına ait 3. çözümde kullanılacak olan yeni komutları tanıyalım SET Komutu:
Bir çıkışın setlenmesi, yani sürekli aktif hale getirilmesi demektir. SET’ lenmeye neden olan koşul ortadan kalksa dahi setlenen çıkış aktif olmaya devam eder. Çıkışın aktifliği ancak resetlemeyle sona erer.
RST Komutu:
SET edilmiş bir çıkışın aktifliğini sona erdirmek için kullanılan komuttur. ZRST Komutu:
Birden fazla sayıdaki set edilmiş çıkışın tek komutla RESET edilerek aktifliklerini sona erdirmek için kullanılır. Örneğin (ZRST Y0 Y5) şeklindeki bir kullanımda Y0,Y1,Y2,Y3,Y4,Y5 çıkışları OFF durumuna getirilir.
Şekil 3.20 de ZRST şeklinde uygulama ile RST komutunun iki çıkışa ayrı ayrı uygulanması şeklindeki kullanımı gösterilmiştir. Her iki kullanımda doğrudur. Resetleme işleminde dikkat edilmesi gereken bir durumda durdurma şartını oluşturan kontakların durumudur. Ladder diyagramlardan görüldüğü gibi durdurma işlemini gerçekleştiren X1 ve X2 kontakları daha önce seri bağlıyken şimdi paralel bağlanmıştır. Çünkü Resetleme için X1 VEYA X2 girişlerinden birinin aktif olması şartı ortaya çıkmıştır. Ayrıca normalde kapalı durdurma butonu için daha önce kapalı adreslenen X1 girişi açık ve daha önce açık adreslenen X2 girişi de kapalı olarak adreslenmektedir.
Şekil 3.20
ÇÖZÜM 4:
Devir yönü değiştirme uygulamasına ait 3. çözümde kullanılacak olan yeni komutları tanıyalım. MPS Komutu:
Kendisinden önce gelen datanın ON/OFF durumunu saklayan çalışma komutudur. MPS
komutu 8 adede kadar kullanılabilir. Ayrıca, MPS komutları arasında MPP komutu kullanılırsa MPS komutu kullanma sayısı 1 azalır. Bloğun ilk satırındadır.
MRD Komutu:
MPS komutu tarafından saklanan datanın durumunu okur, ve bu durumu sonraki Step
başlangıcında kullanır. Bloğun orta satırlarındadır. MPP Komutu:
MPS komutu tarafından saklanan datanın durumunu okur, ve işlem bittikten sonra bu
datanın durumunu siler.
Şekil 3.20
İncelenen Lojik Yığıt komutları ile gerçekleştirilen çözümde, durdurma işlemi için kullanılan kontaklar diğer tüm çalıştırma işlemlerine seri bağlanmıştır.
Y0
MPS
Y2
Y3
Y1
MRD
MRD
MPP
Şekil 3.21
4- İLERİ SEVİYE 1 UYGULAMA KOMUTLARI:
TMR Komutu:
TMR komutunun önündeki şart sinyal akışını sağladığında timer bobini saymaya başlar ve ayarlanan değerine doğru artmaya başlar. Zaman dolduğunda(sayılan değer >= set değeri), adreslenen timer kontağı konum değiştirir. Ayarlanan zaman değerine ulaşılamadan giriş sinyali kesilirse sayılan değer sıfırlanır
Şekil 4.1
Delta PLC’ de sabit sayılar (K) harfiyle birlikte adreslenir. (K) aynı zamanda 32 bite kadar adreslemede basamak değeri olarak da kullanılır.
Zamanlayıcının güncel değeri zamanlayıcı adresine göre değişir. 1 milisaniye, 10 milisaniye, 100 mili saniye çarpanlı zamanlayıcı adresleri vardır.
Zamanlayıcı sayısı da PLC modeline göre değişir.
Örnek olarak incelediğimiz DELTA DVP-14SS modelinde bulunan 128 adet zamanlayıcı noktasının güncel zaman değeri dağılımı şöyledir;
T0 - T63 aralığı 100 ms zaman birimli,
T64 – T126 aralığı 10 ms zaman birimli ,(M1028 aktif yapılarak) T127 adresli zamanlayıcı da 1ms zaman birimlidir.
Örneğin 6 saniyelik (6000 ms) bir gecikme ayarlaması için T 10 için K60, T100 için K600, T127 için ise K6000 değeri girilmelidir.
Güncel zaman değeri pozitif olarak 32767 sabit sayısına kadar girilebilir.
Güncel zaman değeri istenirse dolaylı adreslemeyle de yazılabilir. Bu durumda Data Register kullanılacağı için zaman değerinin başında (K) opsiyonu yerine (D) kullanılacaktır. Bu durumda hexadecimal değer girişi de verilebilir.
Problem 8:
Bir anahtar kapatıldığında çalışmaya başlayan bir motor 15 saniye sonra duracak ve bu anda bir başka motor çalışmaya başlayacaktır. Anahtar açılıncaya kadar ikinci motor çalışmaya devam edecektir.
Çözüm:
Örnek olarak T0 zamanlayıcı adresi kullanıldığı için 15 saniyelik gecikme için K150 değeri girilmiştir.
Şekil 4.2 CNT Komutu:
CNT komutunun önündeki şart sinyal akışını sağladığında sayıcı mevcut değerinin üzerine 1 ekler (sayma değeri). Sayıcı istenilen değere ulaştıktan sonra (sayılan değer = set değeri), İlgili sayıcı kontağı durumunu değiştirir. CNT komutunun önündeki şart sinyali sürekli geldiği zaman sayma işlemi sadece 1 artar sürekli artmaz. Sayma işlemi tamamlandıktan sonra konum değiştiren CNT kontağı , RST komutu ile resetlenmedikçe, ilk konumuna geri dönmez. SET değeri negatif sayı olamaz. Sayma değeri sınırı 32767 dir.
Şekil 4.3
Örnek olarak incelediğimiz DELTA DVP-14SS modelinde 141 sayıcı noktasının özellikleri dağılımı şöyledir;
C0 – C111 : Genel sayıcı
C112- C127 : Kilitlemeli sayıcı. Yani belirlenen sayma sonucu set edilmiş olan çıkışlar PLC enerjisi kesilip tekrar geldiğinde de set durumuna geçerler.
C235 – C254 : Hızlı sayıcı için ayrılmıştır. A fazında 200 khz ve B fazında 5 khz giriş darbeleri sayılır. A faz girişi X0 ve B faz girişi için X1 girişi kullanılır.
Hızlı sayma için DCNT komutu kullanılır.
DCNT komutunun önündeki şart sağlandığı zaman (DCNT ON/OFF şartı) hızlı sayıcı aktif olur ve X00~X03 girişlerinden gelen tetikleme puls’lerine göre sayıcının değeri artar.Tetikleme sinyali OFF’dan ON’a geçtiği zaman sayma işlemi gerçekleşir. Eğer sürekli ON olursa sayma olmaz.
Şekil 4.4
Problem 9:
Bir sensör önünden 15 ürün geçtiği algılandığında çalışmakta olan bir motor durmakta ve durmakta olan bir motor çalışmaya başlamaktadır.
Çözüm:
Şekil 4.5
Bu çözümde sayıcının tekrar sıfırdan başlayıp sayması için PLC enerjisinin kesilmesi gerekir. Çünkü sayıcı resetlenmemiştir. Şekil 4.6 da ise Resetleme şartı X1 girişinin aktif olmasına bağlanarak yapılan yeni çözüm görülmektedir.
Şekil 4.6
Şekil 4.6 daki çözümde sayma girişi olan X0, şekil 4.5 deki ile aynı görevdedir. Burada sayma için gelen darbe sinyalinin sadece yükselen kenarı alınarak zaman kazancı ve kontaklama sırasındaki titreşim nedeni ile hatalı saymaların önüne geçilmiştir. Yükselen kenar alınabileceği gibi düşen kenarda alınabilir. Şekil 4.7 de kenar tetiklemelerinin komut ve ladder gösterimi verilmiştir.
DCNT C232 D100
DCNT
C232
Şekil 4.7
Sayma yönü her darbe sinyalinde yukarıya doğru olduğu gibi aşağıya doğru olması da istenebilir. Aşağı sayıcı için DCNT komutu ile adreslenen hızlı sayıcılar kullanılır. Hızlı sayıcılar 32 bitliktir. 16 bitlik normal sayıcılarda sayma üst değeri 32767 iken 32 bitlik sayıcıda K değeri – 2147483647 ile 2147483647 arasında olabilir. Hızlı sayıcılarda 1 faz-1 giriş, 1 faz-2 giriş ve 2 faz-2 girişli olmak üzere çeşitli adres noktaları vardır. Örnek olarak incelediğimiz 14SS tip PLC için C235 ile C 254 arasında yapılabilecek adresleme özellikleri Tablo 4.1 de görüldüğü gibidir.
Tablo 4.1
Örneğin C235 sayıcısının sayılacak darbe sinyal girişi X0 dır. Bu giriş hem yukarı hem de aşağı sayma girişi olarak kullanılır. Eğer aşağı sayma işlemi yapılacaksa ilgili yardımcı rölenin adreslenmesi gerekir. Bu röle C235 sayıcısı için M1235 dir. Örneğin sayıcı C237 olsaydı aşağı sayma anahtarlaması için M1237 yardımcı rölesi adreslenirdi. 1 fazlı 1 girişli tipteki hızlı sayıcılar için sayma yönü değiştirilerek aynı giriş kullanılması gerekmektedir.
Problem 10:
Bir taşıma bandında bir sensör önünden geçmekte olan ürünler sayılmaktadır. Eğer taşıma bandı ters döndüğü başka bir sensör tarafından algılanırsa sayılan ürünler bir eksilmektedir. İleri yönde sayılan ürün sayısı 4 olduğunda bir motor çalışmaktadır. Bir butonla sayıcı sıfırlanabilmektedir.
Çözüm:
Örnekte kullanılan C 235 hızlı sayıcısı M1000 ile anahtarlanmıştır. Çünkü sayıcı baraya direkt olarak bağlanamamaktadır. M1000 rölesi PLC’ ye enerji verildiği andan itibaren aktif durumda olur. Geri yönü algılamak için kullanılan sensör X6 girişi kullanılmıştır. Böylece sayıcı yönü aşağıya doğru olur. Sayma sensörü X1 girişindedir.
Problem 11:
Bir üretim bandında bir anahtar kapatıldığı andan itibaren aktif olan sayıcı değeri 1000 üst sınırına ulaştığında bir motor çalışmaya başlamaktadır. Bu motoru durdurmak için sayıcının Resetlenmesi gerekmektedir. Sayıcının sayma değeri bir nolu sensör algılama yaptığında artmakta ve 2 nolu sensör algılama yaptığında ise bir azalmaktadır. Eğer 3 nolu sensör algılama yapıyor durumda iken sayıcı değeri 10 olursa 2. bir motor çalışmaya başlamaktadır. Bu motorun durması için hem 4 nolu sensörün algılama yapıyor olması ve sayıcı değeri 20 olmalıdır.
Çözüm:
Bu problemin çözümünde henüz açıklanmamış olan karşılaştırma komutları kullanılabilir. Ancak burada hızlı sayıcı özellikleri ve yüksek hızlı sayıcı karşılaştırmalı set ve reset işlemleri yapan iki yeni komut tanıtılacaktır. Problemin çözümünde yukarı ve aşağı sayma işlemi yanında sayıcın başlatılması ve resetlenmesi işlemleri olduğu görülmektedir. Bunu problem 10 da yapılan çözüm mantığı ile gerçekleştirebiliriz. Ancak hazır bu girişlere sahip hızlı sayıcılar vardır. Tablo 4.1 den uygun bir sayıcı seçebiliriz. Örneğin C249 nolu sayıcının bu girişlerin hepsine sahip olduğu görülmektedir. Aşağı ve yukarı sayma girişleri bulunan bu tip sayıcılar kullanıldığında sayıcı yönünü değiştirmek için kullandığımız yardımcı röleye de ihtiyaç kalmamaktadır. Yani M1249 yardımcı röleye ihtiyaç yoktur. Çözüm için C254 iki fazlı hızlı sayıcı da kullanılabilirdi. Bir fazlı sayıcılar 10 kHz frekans değerinde, iki fazlı sayıcılar ise 7 kHz frekans değerindedir.
Şekil 4.9
Problemin çözümünde kullanılan 2 yeni komut için açıklama yapalım. DHSCS:
Sayıcı değeri belirlenen bir değere ulaştığında belirlenen set işlemini gerçekleştiren bir sayıcı karşılaştırma komutudur. Örnekte C249 sayıcısı 10 sayma değerine ulaştığında (ve X5 girişi aktifse) Y1 çıkışı setlenmektedir. 10 değerine 9 dan 10’ a geçişte veya 11 den 10 ‘a geçişte olması durumunda bu setleme olmaktadır. C249 sayıcısının değeri 1000 olduğunda Y0 çıkışı aktif yapılmaktadır. DHSCS ile yapılan setleme işleminin farkı gecikme olmaksızın, yani program işleyişi bitişini beklemeksizin (interrupt) gerçekleşmesidir.
DHSCR:
DHSCS ile gerçekleştirilen setleme işleminin Resetlenmesi amacıyla kullanılan komuttur. Örneğimizde C249 sayıcısı değeri 20 ise (ve X6 girişi aktifse) setlenmiş durumdaki Y1 çıkışı resetlenecektir. Yine gecikme olmaksızın bu işlem gerçekleşecektir.
5- İLERİ SEVİYE 2 UYGULAMA KOMUTLARI:
DELTA PLC’ de bir çok marka PLC’ de olduğu gibi belirli bir komut yapısı kullanılır. Yeni ileri seviye komutlara başlamadan önce komut yapısı hakkında bilgi verilecektir.
-a- -b- Şekil 5.1
Komutların büyük çoğunluğunda şekil 5.1.a. da ki gibidir. Burada komut bölümü fonksiyonu gösterir. Parametre kısmı da bu komut ile kullanılacak detayı gösterir. Bazen komutlar Şekil 5.1.b. deki gibi parametresizdir ve baraya direkt bağlanır.
-a- -b- Şekil 5.2
Bazen komut yapısında kaynak ve hedef parametreler bulunur. Şekil 5.2.a da Komut-Kaynak parametre-Hedef parametre bulunmaktadır. Şekil 5.2.b. de ise sırasıyla Komut – Kaynak 1 – Kaynak 2 – parametre-Hedef 1 – Hedef 2 adreslenmiştir.
Komut formatında bulunan bilgilere Help mönüsünden
seçildiğinde ulaşılabilir. Tablo 5.1. de örnek bir komut için açılan yardım dosyasından komut formatında bulunan bilgiler incelenmiştir.
1- Komutla adreslenebilecek hafıza bölgeleri (*) ile işaretlenmiştir. 2- Komutun API(Application Programming Interface) numarasıdır.
3- Komutun 32 bitlik olduğu anlaşılır. 16 bitlik komutlarda (D) harfi olmaz. 4- Komut adı
5- Komutun işleyişi bir pals ile olması durumunda (P) harfi ile belirtilir. Sadece sürekli giriş sinyali olduğu sürece komutun işlemesi durumunda (P) harfi yazılmaz
6- Komutta kullanılabilecek parametreleri gösterir. 7- Komutun görevinin açıklaması
8- Komutun kullanılabileceği PLC modelleri
9- 16 bit ve 32 bit için komutun sürekli giriş sinyali veya darbe sinyali ile aktif hale gelip gelmediğinin açıklaması ve bu durumlar için komut yazılım şekli belirtilir.
10- Bu komut ile aktif hale gelen bayrak bitleri 11- Komutla ilgili özel açıklama.
Komutların PLC’ ye yüklenmesinde API numaraları kullanılır. Kaynak ve hedef parametrelerinin bulunduğu komutlarda help dosyası anlatımlarında (S) ve (D) harfleri kullanılır. Source (Kaynak) için (S) ve hedef için Data ( D) harfleri kullanılır.
Şekil 5.3.
Bu komutla (Source) deki değer ’ ye transfer olur.
1. Uygulamada kullanılan kaynak datadır. 2. Kaynak data aşağıdakiler olabilir.
a. Sabit Sayı (K,H) : Program çalışırken değişmez. b. Bit,Word (M,D) : Program çalışırken değişebilir.
3. 1’den fazla Kaynak Parametresi varsa S1, S2 kullanılır. :
1. Uygulama Sonucunun kaydedildiği hedef datadır. 2. 1’den fazla hedef parametre varsa D1, D2 kullanılır
Data adreslemesinde farklı formatlar kullanılır. Bu adresleme şekilleri aşağıda incelenmiştir;
1- Bit adresleme: Sadece 1 bitlik adreslemede on/off kontrolü olur. Temel komutlar genelde tek
bitlik adreslenir. X,Y,M,S hafıza bölgeleri normalde tek kontrollük olarak bir bitlik tanımlanırlar. Örneğin,
LD X5, OR M0, OUT Y1 gibi.
2- Digit adresleme: K harfi ile sabit bir sayı belirtildiği gibi hafıza bölgelerinde 4 bit ve katları
şeklinde de adresleme yapılır. 4 bitlik adresleme bir digitliktir. Şekil 5.4 de verilen örnekte K1M0 adreslemesi ile 4 bit ifade edilmiştir. Komut işlemi sonunda 16 bitlik D0 hafıza bölgesinin ilk 4 bitlik kısma M0,M1,M2,M3 bitlerinin değeri taşınmıştır.
Şekil 5.4.
S D
S
3- Byte adresleme: 1 byte 8 bitdir. Örneğin Şekil 5.5 de K2M0 ile bir byte ifade edilmiştir.
Şekil 5.5
4- Üç digit adresleme: Örneğin K3M0 gibi bir adresleme ile 12 nokta ifade edilebilir.
Şekil 5.6
5- Word adresleme: T, C, D registerleri word (kelime) büyüklüğündedir. Word, iki byte yani 16
bitlik bir alandır.
Şekil 5.7
6- Double Word adresleme: Buraya kadar anlatılan adresleme şekli K1-K4 aralığındaki word
adresleme biçimiydi. Bazı komutlar 32 bitlik hafıza alanı ile ifade edilirler . İki word yani 4 byte yani 32 nokta ile ifade edilme şekli K1-K8 aralığıdır.
K1 (4 nokta) 0-15 K5 (20 nokta) 0-1048575 K2 (8 nokta) 0-255 K6 (24 nokta) 0-167772165 K3 (12 nokta) 0-4095 K7 (28 nokta) 0-268435455
K4 (16 nokta) 0-65535 K8 (32 nokta) -2147483648-2147483648
7- Dolaylı adresleme:
E ve F, komutlarında kullanılan K gibi sabitler olup bu harflerle belirtilen sabitlerle transfer ve karşılaştırma işlemleri yapılabilir. Dolaylı adresleme WORD parametreleri ile kullanılabilirken ( KnX, KnY, KnM, KnS, T, C, D ) bit parametreleri ile kullanılamaz (X,Y,M,S). Dolaylı Adresleme için K ve H Sabitleri ile birlikte kullanılır. Her komut dolaylı adreslemeye izin vermez. Şekil 5.8 de dolaylı adresleme örneği görülmektedir.
Transfer Komutları: MOV Komutu:
Kaynak parametre içeriğini hedefe taşımak (move) için kullanılan komuttur.
Taşıma komutu uygulaması:
Üretim bandı üzerinde ürünlerin sayılması için kullanılan düzenekte eğer 1 nolu sensör aktif ise 15 ürün sayılırsa bir motor çalışmaya başlamaktadır. Eğer 2 nolu sensör aktif ise 10 ürün sayıldığında aynı motor çalışmaya başlamaktadır. Motorun durması için bir butona basılması gerekmektedir. Motor durdurulduğunda sayıcı sıfırlanmalıdır.
Çözüm:
Bir çok çözüm yolundan biri olan iki ayrı sayıcı kullanımı ile yapılacak çözüm, ilk akla gelen yollardan biridir. Ancak burada mov komutunun uygulanmasını sağlayacak çözüm üretilecektir.
Şekil 5.9.
Şekil 5.9. da görülen çözümde X0 girişi aktif olursa 15 sabit sayısı D0 kayıtçısına kaydedilir. Eğer X1 sensörü aktif olursa bu defa D0 kayıtçısına taşınan sabit değer 10 olur D0’ ra transfer edilen decimal sayı, binary sayıya çevrilerek kayıt edilir. C0 sayıcısının anahtarlama yapacağı sayma değeri D0’ da bulunan değerdir.
Çeşitli fonksiyonları yerine getirebilecek taşıma komutları bulunmaktadır. Bu komutlarda kısaca aşağıdaki gibi incelenmiştir.
BMOV Komutu:
Kaynakta belirtilen parametreden itibaren K ile belirtilen sayıda bölgeyi hedefte belirtilen parametreden itibaren taşır. Blok taşıma komutu birden fazla bölgenin transferi için kullanılır. Şekil 5.10’ da görülen örnekte giriş aktifliğinden sonra D0 bölgesi D10’a, D1 bölgesi D11’e, D2 bölgesi D12’ye ve D3’ de D13’ transfer edilir. Çünkü transfer edilecek bölge sayısı K4 ile dört olarak belirtilmiştir.
Şekil 5.10
CML Komutu:
Kaynakta bulunan datanın içeriğini tersleyerek (binary veri) hedef transfer eder. Eğer kaynak içeriği K sabiti ise bu sabit direkt binary değere dönüşür. Bu program ters faz çıkışı gerekli uygulamalarda kullanılır. Şekil 5.11 de görülen uygulama örneğinde giriş aktif olduğunda D0 içeriği M0’ transfer edilmektedir. Ancak K2 ile belirtildiği için 2 dijit yani 8 bitlik kısım ters çevrilerek bu transfer gerçekleşmektedir.
Şekil 5.11
Problem 12:
1 nolu anahtar kapatıldığında 1 ve 4 nolu motorlar çalışmakta, 2 nolu anahtar kapatıldığında 2 ve 3 nolu motorlar çalışmaktadır. Eğer 3 nolu anahtar kapatılırsa 10 saniye sonra çalışmakta olan motorlar durmakta ve durmakta olan motorlar çalışmaktadır. 4 nolu buton tüm çalışmaları durdurmakta ve başlangıca dönülmektedir.
Çözüm:
3 nolu butona basıldığında Y0-Y3 çıkışlarının durumu D0’ ra kayıt edilir.( K1 ile ilk dört bit tanımlanmıştır. Zaten problemde de 4 çıkış belirtilmektedir.) Bu anda T0 zamanlayıcısı 10 saniye saymaya başlamıştır. T0 anahtarlama yaptığında CML komutu ile D0’ rın içeriği ters çevrilerek transfer edilecektir. Sadece ilk dört bitin ters çevrilerek Y çıkışlarına transfer edilmesi için K1Y0 adreslemesi yapılmıştır. Böylece 4 motorun durumu tam tersine çevrilmiş olacaktır. Stop için zone reset işlemi yapılmıştır.
Şekil 5.11
FMOV:
Çoklu bölge transfer komutudur. Kaynak veriyi birden fazla bölgeye transfer etmek için kullanılır.
Şekil 5.12
Giriş aktif olduğunda 100 sayısı D0,D1,D2,D3,D4 bölgelerine transfer edilir.
Problem 13:
1 nolu anahtarın aktifliği ile 5 saniye sonra, 2 nolu anahtarın aktif olması durumunda 10 saniye sonra ve eğer 3 nolu anahtarın aktifliği durumunda da 15 sonra bir motor çalışmaya başlamaktadır. Ancak 4 nolu anahtarın aktif olması durumunda diğer hangi anahtar kapatılırsa kapatılsın motor 30 saniye sonra çalışmaktadır.
Çözüm:
M1000 normalde açık kontağı ile başlangıçta 3 zaman rölesine gecikme değerleri transfer edilmektedir. Eğer 4nolu anahtarın bağlı olduğu X3 girişi aktif olursa FMOV komutuyla tüm sayıcılara 30 saniye gecikme süresi transfer edilmektedir.
Şekil 5.13
Karşılaştırma Komutları:
CMP Komutu:
Karşılaştırma komutu iki verinin sayısal olarak karşılaştırılmasını sağlar. Şekil 5.14 de giriş aktif olduğunda K10 ile belirtilen 10 sabit sayısı ile D0 içinde bulunan değer karşılaştırılmıştır. M0 adreslendiği için eğer 10>D0 ise M0 (1) olur. 10=D0 ise M1 ve 10<D0 ise M2 aktif olacaktır.
Şekil 5.14
Karşılaştırma Komut Uygulaması:
Bir üretim bandında 2 sensör iki ayrı ürün sayımı yapmaktadır. Karşılaştırma butonu adı verilen butona basıldığında eğer 1 nolu sensörün saydığı miktar 2 nolu sensörün saydığı miktardan fazla ise bir motor sağa doğru dönüyor. Eğer 1 nolu sensörün saydığı miktar daha az ise aynı motor diğer tarafa dönecek ve eğer iki sayıcının değeri eşit ise motor çalışmayacak ve bir lamba yanacaktır.
Çözüm:
Şekil 5.15
Şekil 5.15 de sayıcı değerleri rasgele olarak 10000 değeri verilmiştir. Çünkü bu değere hiçbir zaman ulaşılamayacağı düşünülmüştür. Y1 ve Y2 çıkışları görülmemektedir. Zaten görülmeleri de gerekmemektedir. X2 kapatıldığında C0 ve C1 içerisindeki değerler karşılaştırılacak ve eğer C1 büyükse Y0, C2 büyükse Y2, C1=C2 ise Y1 çıkışları aktif olacaktır.
ZCP Komutu:
Zone Compare komutu bölge karşılaştırması yapar. Şekil 5.16 daki örnek gösterimde C246 sayıcısı, aşağı ve yukarı sayan bir sayıcıdır. Bu gösterimde anlatılmak istenen X2 girişi aktif iken Sayma değeri 10 değerinden küçük ise M0, 10 ile 20 arasındaysa M1, 20 değerinden büyük ise M2 aktif olacağıdır.
.
Şekil 5.16
Problem 14:
Bir kazandaki su seviyesini algılayan sensör, eğer 50 saniye süreye kadar algılama yapıyorsa 1 nolu motor, 50 ile 70 saniye arasında algılama yapmaya devam ediyorsa 2 nolu motor ve 70 saniyeden fazla algılama yapmaya devam ediyorsa 3 nolu motor çalışmaktadır. Bir stop butonu ile çalışmakta olan motor durdurulabilmektedir.
Çözüm:
Bölge karşılaştırılmasının sürekli yapılabilmesi için M100 sürekli aktif kontağı kullanılmıştır. T0 zamanlayıcısı için 100 saniye sınırı belirtilmiştir. İstenirse X1’ re paralel bağlı T0 kontağıyla Resetleme şartı sağlanabilir. Bu haliyle70 saniyeden sonra sürekli olarak çalışan Y2 çıkışındaki 3. motor, ancak durdurma butonu ile pasif hale getirilebilmektedir.
Şekil 5.17
Not : WPLSoft editörünü tanıma için bundan sonraki bazı problemlerde çeşitli fonksiyonlar verilecektir. İlk olarak karşılaştırma komut uygulamasında örnek olarak açıklama bilgilerinin ladder diyagrama nasıl yazılacağı gösterilecektir problem çözümünde (Comments) mönüsü tanıtımı yapılacaktır.
Her satıra yapılan işlemi anlatan bir cümle yazalım. Bunun için Şekil 5.16 da görülen seçimler yapılır ve gelen metin kutusuna istenen açıklama yazılır.
Şekil 5.16
Aynı şekilde tüm satırlar için açıklama satırı yazıldığında Şekil 5.17 de ki görünüm elde edilir.
Açıklama bilgilerinin görülmesi için (Show comments) Şekil 5. 18 deki gibi seçim yapılır.
Şekil 5.18
Aynı mönülerle giriş ve çıkışlara da isimler verilebilir, açıklamalar yazılabilir.
Şekil 5.19
Giriş ve çıkışlara isimler vermek için başka yöntemler de bulunmaktadır. Şekil 5.20 de açıklanmak istendiği gibi üstünde çift tıklamakla düzeltme işlemi mönüsünden isim verilebildiği gibi Edit Device Comments seçeneği ile tüm elemanlara isimler verilebilir.
Şekil 5.20
Bazen ladder diyagramda çıkışlara bir açıklama yazılması istenebilir. Şekil 5.21 deki işlemler sonucunda satırın sağında istenen açıklama görülür.
Şekil 5.21
Yapılan işlemler sonucunda (show comment) seçimi ile ladder devrenin görüntüsü şekil 5.22 deki gibi olur.
6- İLERİ SEVİYE 3 UYGULAMA KOMUTLARI:
MATEMATİK KOMUTLARI: ADD Komutu:
Toplama işlemi için kullanılan komuttur. Şekil 6.1 de X0 aktif olduğunda D0 içeriği ile D10 içeriği toplanarak D20’ a kayıt edilir.
Şekil 6.1
Problem 15:
Bir üretim bandında ürün sayan iki sensörden herhangi biri 1000 ürün saydıklarında otomatik olarak resetlenmektedir. Eğer bir butona basıldığında sayıcı değerleri toplanmakta ve bu toplam 20 den küçükse 1. motor, 20 ise 2. motor, 20 den büyük ise 3. motor durdurma butonu ile durduruncaya kadar çalışmaktadır
Çözüm:
Şekil 6.2 de X2 girişi aktif olduğunda C0 ve C1 içeriğindeki değer toplanarak sonuç D0 kayıtçına aktarılmaktadır. Aynı zamanda toplam değeri 20 ile karşılaştırılmaktadır. Karşılaştırma sonrası Y0, Y1, Y2 çıkışlarından uygun olan aktif olur. X3 ile hem sayıcılar hem de aktif olan çıkış resetlenmektedir.
Şekil 6.2
SUB Komutu:
Çıkartma işlemi yapan komuttur. Şekil 6.3 de X0 aktif olduğunda D0 içeriğinden D10 içeriği çıkartılarak D20’ a kayıt edilir.
Şekil 6.3
Problem 16:
Ürün sayan iki sensör en fazla 1000 değerine kadar sayma yapıp resetlenmektedir. Karşılaştırma anahtarı adı verilen bir anahtar kapatılırsa 1 nolu sayıcı değerinden 2 nolu sayıcı değerinin farkı alınmaktadır. Bu fark değer, 10 ile 20 arasında bir değerse 1 nolu sistem devreye girmektedir. Eğer fark başka her hangi bir değerdeyse 2 nolu sistem devreye girmektedir.
Çözüm:
Şekil 6.4 de verilen örnek çözümde M1000 sürekli aktif durumdaki kontakla C1 ve C2 değerleri arasındaki fark devamlı olarak alınmakta ve D0 içerisine kayıt edilmektedir. X0 girişine bağlı anahtar aktif olduğunda karşılaştırma işlemi yapılmaktadır. D0 içindeki fark değer 10 dan küçük ise M0 ve 20 den büyükse M2 anahtarlanacağı için Y2 çıkışı aktif olmaktadır. !0 ile 20 arasında ise M1 aktif olacağından Y1 çıkışı anahtarlanmaktadır.
Şekil 6.4
DIV Komutu: DDIV Komutu:
Binary verinin bölme işlemini yapar. Bölme işlemi 16 bit için DIV komutu ile 32 bitlik işlem için DDIV komutu ile gerçekleştirilir. Şekil 6.5 de 16 bitlik bir örnek verilmiştir. Burada X0 giriş aktif olduğunda D0 içeriğindeki değer, D10 içeriğindeki değere bölünür. Sonuç D20 içeriğine 16 bit olarak yazılır. Kalan değer ise bir yüksek Register, yani D21’ e kaydedilir.
Şekil 6.5
Şekil 6.6 da ise 32 bitlik bölme işlemine ait örnek bir anlatım verilmiştir. Burada X0 girişi aktif olduğunda D1, D0 sırasında bulunan 32 bitlik sayı, D11, D10 sırasında kayıtlı sayıya bölünerek sonuç D21, D20 registerlerine ve kalan ise D23, D22 kayıtçılarına kaydedilirler.
Şekil 6.6 MUL Komutu
DMUL komutu
Binary verinin çarpma işlemini yapar. Çarpma işlemi 16 bit için MUL komutu ile 32 bitlik işlem için DMUL komutu ile gerçekleştirilir. Şekil 6.7 –a- da 16 bitlik bir örnek verilmiştir. Burada X0 giriş aktif olduğunda 5678 sayısı ile 1234 sayısı çarpılır. Sonuç D10 içeriğine 16 bit olarak yazılır. Şekil 6.7 –b- de ise 32 bitlik çarpma işlemine ait örnek bir anlatım verilmiştir. Burada X0 girişi aktif olduğunda D1, D0
sırasında bulunan 32 bitlik sayı, D11, D10 sırasında kayıtlı sayı ile çarpılır sonuç D23, D22, D21, D20 kayıtçılarına 64 bit şeklinde ve yazılan sırda kayıt edilir.
Şekil 6.7
Matematik komutları uygulaması:
Bir üretim bandında ürün sayan iki sensörden 1 nolu sensör her zaman 2 nolu sensörden daha fazla ürün saymaktadır. 1 nolu sensör artı yönde, 2 nolu sensör eksi yönde sayma için algılama yapmaktadır. Herhangi bir anda (işlem) adı verilen anahtar kapatılırsa iki sensörün yaptığı algılama sayılarının hem farkı hem de toplamı alınmaktadır. İşlem anahtarı ile beraber 3 nolu sensörde aktif ise 1 nolu motor devreye girmekte ve toplamlarının değeri kadar saniye süre sonra devreden çıkmaktadır. Eğer işlem anahtarı ile birlikte 4 nolu sensör aktif ise 2 nolu motor devreye girmektedir. Ancak 2 nolu motor, sayma değerleri farkı tek sayı ise 10 saniye sonra devreye girebilmektedir. İşlem butonu veya 4 nolu sensör pasif olursa devreden çıkan 2 nolu motor tüm (D) kayıtçılarını da sıfırlamaktadır.
Çözüm:
Artan ve azalan yönde sayma işlemi için bu çözümde counter kullanılmayıp iki yeni komut verilecektir. Bu komutlar her darbe sinyalinde bir artış sağlayan INC (increment) komutu ve her darbe sinyalinde bir eksiltme yapan DEC (decrement) komutudur.
Şekil 6.9 daki çözümde artan yönde sayma değeri D0 da ve azalan yönde sayma değeri D10 da kayıt edilmektedir. X2 girişinin aktif olması durumunda çıkartma işlemi yapan SUB komutu ile gerçekte bu uygulamada toplama gerçekleşmektedir. Bu durumda toplama işleminde de gerçekte çıkartma gerçekleşmektedir. Devreye girecek motorların çalışma sürelerinin saniye olması , çıkarma ve toplama işlemleri sonucu 10 ile çarpılmıştır. Sayma değeri farkının tek sayı olup olmadığını anlamak için ikiye bölme işlemi yapılmış ve kalan olup olmadığına bakılmıştır. Eğer D45 içinde olduğu bilinen kalan değeri yoksa çarpma işlemi sıfır olacak ve eğer kalan varsa 100 ile yapılan çarpma ile kalan 1 sayısından dolayı 10 saniyelik gecikme gerçekleştirilmiştir.
7- İLERİ SEVİYE 4 UYGULAMA KOMUTLARI:
Kaydırma, döndürme komutları:
SFTR Komutu:
Parametrede belirtilen datayı sağa kaydırır. Kaydırmalı kayıt edicilerde kaydırılacak bit sayısı, başlangıç noktası ve bitiş bilgileri belirtilir.
Şekil 7.1 de verilen örnekte X0 girişine gelen ilk puls sinyalinde K4 diye belirtildiğinden 4 bit olarak X0, X1, X2,X3 ün durumu (0 veya 1), M12, M13 M14,M15 bitlerine kayıt edilir. X0 girişinden 2. pals geldiğinde X0, X1, X2,X3 ün durumu M8, M9 M10,M11 bitlerine kayıt edilir. Her palsde bu sırada kayma devam eder.Kayma başlangıcı M0 olduğundan soldaki 16. bit olan M15 dir.
Şekil 7.1. SFTL Komutu:
Parametrede belirtilen datayı sola kaydırır. Kaydırmalı kayıt edicilerde kaydırılacak bit sayısı, başlangıç noktası ve bitiş bilgileri belirtilir.
Şekil 7.2 de verilen örnekte X0 girişine gelen ilk puls sinyalinde K4 diye belirtildiğinden 4 bit olarak X0, X1, X2,X3 ün durumu (0 veya 1), M0, M1 M2,M3 bitlerine kayıt edilir. X0 girişinden 2. pals geldiğinde X0, X1, X2,X3 ün durumu M4, M5 M6,M7 bitlerine kayıt edilir. Her palsde bu sırada kayma devam eder.Kayma sınırı yine 16 bit olarak belirtilmiştir.
Problem 17:
PLC” run” durumuna alındığı andan itibaren 1 saniye aralıklarla 4 lamba sırayla devreye girip çıkması istenmektedir.
Çözüm:
Şekil 7.3. deki çözümde dahili kare dalga jeneratörü kullanılmıştır. M1014 bir dakikalık, M1013 1 saniyelik, M1012 100 msn lik, M1011 10 mili saniyelik puls üreteçleridir. Bu soru bir butona her basılışta sıradaki motor çalışmaya başlayıp, önceki motor durmaktadır şeklinde sorulabilirdi. Bu defa M1013 yerine bir giriş kontağı kullanılırdı. Çözümde ilk anda M10 içinde (1) bulunmaktadır. Çünkü 4 çıkışın kapalı kontakları M10 bitinin “on” olmasını sağlamaktadır. İlk puls sinyalinde M10 daki bu bilgi M0 bitine aktarıldığı için Y0 çıkışı, ikinci darbe sinyalinde Y1 çıkışı aktif olur. Y1 aktif olduğunda Y0 pasiftir. Çünkü çıkışlardan her hangi biri aktifken M0 a kayan M10 daki yeni data (0) dır. Çalışma bu sırayla devam eder. 4 lamba çıkışı için kayma sınırı 4 bitle sınırlandırılmıştır. 5 darbe sinyalinden sonra Y0 dan tekrar sırayla çalışmaya başlayacaktır.
Şekil 7.3.
ROR Komutu
:Sağa döndürme komutudur. Tanımlanan bölgedeki belirtilen sayıdaki bit bilgiyi sağa doğru döndürür. Bu işlem daha önce görülen kaydırma işlemine benzetilebilir. Temel farklılık Carry flag biti denilen taşıma bitinden kaynaklanmaktadır. Şekil 7.4 de görüldüğü gibi puls komutu ile kullanılmalıdır. Aksi halde dönme işlemi sürekli devam eder. Giriş kontağının puls şeklinde olmaması durumunda komut,
RORP
yazılarak da puls uygulaması yapılabilir. Eğer 16 bit yerine 32 bitlik bir alanda döndürülme yapılacaksa komut başına (D) eklenerekDRORP
şeklinde yazılır. Taşıma bitinin durumu M1022 de görülür. Şekil 7.4 de X0 girişinden puls geldiğinde 16 bitlik D10 içeriği, 4 bit sağa döndürülür. 3 nolu bitin durumu (yani 4. bit) taşıma bitine yazılmıştır.Şekil 7.4
RCR Komutu:
Taşıma biti (Carry flag) ile beraber sağa döndürme işlemini yapar. ROR komutundan farkı, şekil 7.5 de görülmektedir. X0 girişinin aktif olmasıyla döndürülen 4 bitlik verinin en küçük değerlikli bitini, taşıma biti oluşturmaktadır. DRCR ve RCRP şeklinde kullanımı aynı ROR komutunda anlatıldığı gibidir.
Şekil 7.5
ROL Komutu
:Sola döndürme komutudur. Tanımlanan bölgedeki belirtilen sayıdaki bit bilgiyi sola doğru döndürür. Bu işlem daha önce görülen kaydırma işlemine benzetilebilir. Temel farklılık Carry flag biti denilen taşıma bitinden kaynaklanmaktadır. Şekil 7.6 da görüldüğü gibi puls komutu ile kullanılmalıdır. Aksi halde dönme işlemi sürekli devam eder. Giriş kontağının puls şeklinde olmaması durumunda komut,
ROLP yazılarak da puls uygulaması yapılabilir. Eğer 16 bit yerine 32 bitlik bir alanda döndürülme
yapılacaksa komut başına (D) eklenerek DROLP şeklinde yazılır. Taşıma bitinin durumu M1022 de görülür. Şekil 7.6 da X0 girişinden puls geldiğinde 16 bitlik D10 içeriği, 4 bit sola döndürülür. 12 nolu bitin durumu taşıma bitine yazılmıştır.
Şekil 7.6
RCL Komutu:
Taşıma biti (Carry flag) ile beraber sola döndürme işlemini yapar. ROL komutundan farkı, şekil 7.7 de görülmektedir. X0 girişinin aktif olmasıyla döndürülen 4 bitlik verinin en küçük değerlikli bitini, taşıma biti oluşturmaktadır.
DRCL ve
RCLP şeklinde kullanımı aynı ROR komutunda anlatıldığı gibidir.
Örneğin 7.7 deki gösterimde X0 girişi puls olarak belirtilmediği için komut puls komutu olarak yazılmıştır.Şekil 7.7
Açıklama örneği:
Şekil 7.8 de görülen programda gerçekleşen işlemler şunlardır.
X0 girişinden gelen pals sinyali ile D0 yazmacı içeriğine decimal 11 sayısı yazılır. 10 bitlik alanda binary olarak bu bilgi;
Eğer bu durumda iken X1 girişi aktif yapılırsa Y0, Y1, Y3 çıkışları aktif olacaktır.
X3 girişi aktif olursa 4 bitlik dönme meydana gelecek ve bu çıkışlar pasif hale gelecek. Ancak taşıma biti içeriğine 3nolu bit içeriğinde olan Lojik (1) bilgisi olacağından M1022 biti aktif ve buna bağlı olarak M0 rölesi aktiftir.
Eğer X3 girişinden bir pals daha gelirse D0 içeriği;
şeklinde olur ve bu şekilde her X3 pals sinyali ile dönmeye devam eder. Çalışmanın izlenmesi durumunda D0 içeriği decimal sayı karşılığı olarak görülecektir.
Eğer X4 girişinden pals gelirse bu defa sola dönmesi istenen 4 bitin en küçük değerlikli bitini olarak taşıma biti olan M1022 içindeki değer oluşturacaktı.
Şekil 7.7
Program Akış Kontrol Komutları:
FEND Komutu:
PLC uygulamasında END komutu ile aynı fonksiyona sahiptir. Ancak END komutu olmayan bir program olmaz. First END komutu bazı program akışını kontrol eden komutların kullanımında bu komut gereklidir. Daha sonra açıklanacak olan bu komutlar, CALL ve interrupt komutlarıdır.
WDT Komutu:
PLC programı ne kadar uzun olursa olsun program tarama süresi 200 mili saniyeyi aşamaz. Bu süre Watchdog Timer fonksiyonu ile kontrol edilir. Şekil 7.8 de görüldüğü gibi Step 0 ile END (FEND) arasındaki zaman Watchdog Timer Set Değerini aştığı durumlarda kullanılır. Step0 ile WDT arasındaki t1 süresi ve WDT ile END (FEND) arasındaki t2 süresi Watchdog Timer Set değerinden büyük olmamalıdır. PLC Tarama süresi 200 ms’yi aşarsa (Adres 0 ile END VEYA FEND komutu arasında) PLC ERROR LED’i ON olur. Bu durumda kullanıcı enerjiyi kesip tekrar vermelidir. Enerji geldiğinde PLC otomatik olarak STOP mod’a döner.
Şekil 7.8
Eğer program tarama Zamanı 200ms üzerinde ise kullanıcı programı 2 parçaya bölebilir. Arasına Watchdog Timer koyarak her bir parçanın tarama zamanını 200 ms’nin altına indirebilir. WDT komutu programda iki veya daha fazla kullanılabilir. Şekil 7.9 da 300 mili saniye tarama zamanına sahip bir programın PLC programının stoplanmaması için WDT ile 2 ye bölünmesi gösterilmiştir.
Şekil 7.9
CJ Komutu:
Jump komutu aktif olduğu zaman programı komutta (P..) ile belirtilen yerden (Pointer numarasından) itibaren çalıştırır. Komut pasif olduğu zaman program normal olarak Jump komutundan bir sonraki satırdan itibaren çalışmaya devam eder. Şekil 7.10 daki örnek gösterimde X0 girişi aktif olduğu zaman program adresi , (P1) noktasına atlar ve çalışmasına P1’den devam eder. Aradaki adresleri atlar. Eğer bu aradaki adreslerde bir TIMER varsa; TIMER saymayı durduracaktır. X0 girişi pasif olduğu zaman program adres 0’dan itibaren işleyecek CJ komutu aktivitesini yitirecek ve TIMER varsa saymaya devam edecektir
Şekil 7.10
Problem 18:
Start butonu ile başlayan ve stop butonu ile durdurulabilen bir çalışmada 1 çıkış sürekli olarak 0,5 saniye aktif ve 0,5 saniye pasif olacak şekilde çalışmakta, başka bir çıkışta 30 saniye aktif ve 30 saniye pasif olacak şekilde çalışmakta, üçüncü bir çıkış da eğer 2 nolu sensör aktifse ikinci çıkışla birlikte aktif ve pasif olmaktadır. Eğer 1nolu sensör aktifse diğer çalışma şekilleri atlanıp sadece 3. çıkışın olduğu kısım çalışması istenmektedir. 3. çıkışın durumu yine 2 nolu sensörün aktifliği ve 2 nolu çıkışın durumuna bağlı olarak değişmektedir. 1 nolu sensörün pasif olduğu durumlarda yine ilk çalışma şekli geçerli olmaya başlamıştır.
Çözüm:
Şekil 7.11
CALL Komutu:
Pointer (Pxx) ile belirlenen adresteki alt (subroutine) programı çalıştıran komuttur.
SRET Komutu:
Alt program çalışması bittikten sonra CALL komutunu takip eden satırdan başlayarak normal programın devamının çalışmasını gerçekleştiren komuttur.
Çok uzun bir PLC programında, hem programlama sırasında hem de hata arama geri dönüş incelemelerinde zorluklar yaşanır. PLC programının uzun olması genellikle tekrar eden işlemlerden kaynaklanır. Eğer tekrar eden işlemler küçük alt programlara bölünür ve gerektiğinde bu alt programların çağrılması gerçekleştirilirse, bu zorluklara bir miktar çözüm getirebilir. Bir ana program pozisyonundaki programın işleyişinde alt programlar gerekli olduğunda CALL komutu ile çağırılıp alt programının işleyişi tamamlandığı SRET (subroutine return) komutu ile belirlenip tekrar ana programın kalınan yerine geriye dönülmesi işlemi programcılığı bir ölçüde kolaylaştırır. Daha sonra açıklanacak olan SFC programlama mantığı ile hem alt program mantığı ve hem sıçrama komutu ile görülen dallanma mantığının birleştirilmesine benzer bir programlama,, zorlukları tam olarak giderecektir.
Şekil 7.12 de verilen örnek gösterimde X0 girişi aktif olduğunda P2 pointer numarası ile belirtilen adresteki alt program çalışmaya başlar (Bu adresin FEND komutundan sonra olduğunu dikkat ediniz.). SRET komutuna kadar alt program bulunan çalışma tamamlanır ve X1 girişin olduğu satıra geri dönülür. Ana program işleyişi buradan devam eder. En fazla 5 adet alt program yazılabilir.
Şekil 7.12
FOR – NEXT Komutları
:FOR ile başlayıp NEXT ile biten satırlar arasında kalan bir dizi işlem FOR komutu ile belirten kez tekrar edilir. Döngü olarak adlandırılan bu çalışma şekli, tekrarlanan işlemler için kolaylık sağlar. Şekil 7.13 de ki gösterimde ilk döngüde FOR ile NEXT arasında bulunan satırlar 3 kez tekrarlanır. Bu gösterimde iç içe 2 döngü vardır. (B) ile belirtilen döngü içindeki işlemler de 4 kez tekrarlanacaktır. Bu durumda (B) döngüsü içindeki işlemler toplam 12 kez tekrarlanmış olur. FOR komutu ile belirtilen sayıda koşulsuz yerine getirildikten sonra NEXT satırından sonraki satırdan itibaren program çalışmasına devam eder. Döngü de (K) ile en fazla 32767 sayısı belirtilebilir. Burada belirtilecek olan değer sabit sayı dışında herhangi bir hafıza bölgesi içinde bulunan değer de olabilir. Örneğin T, C, D gibi. Eksi değer girilirse (1) olarak algılanır. Bir programda en fazla 4 adet döngü olabilir.
Şekil 7.13
MC – MCR Komutları:
MC komutu ile başlayan ve MCR komutu ile reset edilerek sonu belirtilen bir kümedeki işlemler dizisi gerçekleşir. MC ile master kontrol başlangıcı set edilir ve MCR ile master kontrol reset edilir. Şekil 7.14 de görüldüğü gibi X0 aktif olduğunda işleme alınan master kontrol dizisinde iki işlem bulunmaktadır. Bu işlemler X1 girişi aktif ise Y0 çıkışı ve X2 girişi aktif ise Y1 çıkışının aktif olması işlemleridir. N0 dan N7 ye kadar belirtilebilecek master kontrol işlemlerinin en önemli amacı zamandan tasarruf sağlamaktır. Zira X0 girişi aktif olmasaydı MC-MCR arası işlemler hiç gerçekleşmeyecekti.
Şekil 7.14
INTERRUPT KOMUTLARI (EI, DI, IRET):
Bir PLC programı ilk satırdan başlayıp “END” komutundan son bularak tekrar ilk satıra geri dönecek bir şekilde sürekli çalışmada her satırdaki işlemleri teker teker yerine getirilir. PLC stop durumuna gelinceye kadar devam eden bu işleyişe tarama denir. Tarama zamanın 200 mili saniyeyi geçmesi durumunda PLC’ nin durmaması için WDT komutu ile yapılan işlem daha önce işlenmişti. Program akışının değiştirilmesi istenirse bu amaçla kullanılması gereken komutlar yukarıda açıklandı. Kesme (interrupt) işlemi de program akışını değiştiren komutlardan biridir. CALL komutunda olduğu gibi bir alt programın çağırılmasını sağlar Ancak kesme (interrupt) işleminde durum biraz farklıdır. Program taraması devam ederken CPU’ ya ani bir cevap gerektiğinde program kesilir ve servis programı çalıştırıldıktan sonra geri dönülerek kesilen yerden programın taraması devam eder. Çok çeşitli interrupt nedeni vardır. Ortaya çıkan bir işlem hatasına bağlı dahili interrupt nedeni olabileceği gibi bir giriş kontağının aktifliğine bağlanabilecek harici kesme nedeni de olabilir.
Şekil 7.15
Şekil 7.15 deki örnekte “EI” komutuyla (enable interrupt) kesme işlemin izin verilmiştir. Bu anda X0 giriş rölesi aktif ise “I001” servis programı çalışır. “IRET” komutundan (interrupt return) ana programa geri dönülür. Dönülen yerdeki komut interrupt iznini ortadan kaldıran “DI” komutudur (disable interrupt). “I201” alt programının hangi “EI” ile çağırıldığı örnekte görülmemektedir. Bu şekil sadece alt programların “FEND” komutundan sonra olduğunu göstermek amaçlıdır. Interrupt nedenine göre alt program “pointer”i değişir. İncelen SS serisinde;
Harici interrupt işleminde (external interruptions) kesme nedeni olara X0 girişi kullanıldığında “I001, X1 girişinde kullanılacak olursa “I101”, X2 için “I201”, X3 için “I301” alt program pointer adresleri kullanılır.
Zamana bağlı interruptlar için “I6xx” kullanılır. “xx” yerine 10 mili saniye ile 99 mili saniye arasında bir değer yazılabilir.
Haberleşmeye bağlı interrupt işlemi için alt program başlangıç etiketi olarak “I150” kullanılır.
Daha üst versiyon PLC’ de daha fazla kesme nedeni ve keme noktası bulunmaktadır. Bunlara en iyi örnek hızlı sayıcılara bağlı olan kesme işlemleridir. Aynı anda birden fazla interrupt nedeni ortaya çıktığında öncelik sırasına göre interrupt servis programları işleme alınır. İnterrupt işlemi için M1050 ile M1053 arasında özel yardımcı röleler bulunmaktadır Bu yardımcı rölelerin aktif olması, kesme işleminin aktivitesini sonlandırır.
Açıklama örneği:
Şekil 7.16 da gerçekleşen çalışmadaki önemli noktalar şöyle açıklanabilir; Ana program “FEND” komutundan dönen kısımdır.
Eğer X0 aktif olursa external (harici) interrupt işlemi için izin verildiği için “I001” etiketi ile belirlenen alt program çalışır ve “ IRET” komutundan sonra programın kesilen yerine geri döner.
“DI” komutundan sonraki programın işleyişi sırasında X0 ‘ rın aktifliği servis programın çalışmasını engeller
X6 girişi aktif ise interrupt işlemi için çalışma gerçekleşmez. M1050 rölesi interrupt aktivitesini ortadan kaldırdığı için X0 giriş aktifliği bir işe yaramaz.
X2 girişi aktif olursa “P1” etiketli alt program çalışır. Alt program işledikten sonra, SRET komutundan ana programda “CALL” komutunun alt satırına geri dönülür.
Alt program bir FOR-NEXT döngüsüdür ve her çalıştığında D0 içeriği 10 kez artar. Artış miktarı X0 girişinin aktiflik süresine göre değişir.
Şekil 7.16
Not: Program akış kontrol komutlarıyla ilgili olarak daha sonraki konularda örnek problem çözümleri yapılacaktır.
8- İLERİ SEVİYE 5 UYGULAMA KOMUTLARI:
PLC’ lerin komut setleri oldukça geniştir. Buraya kadar çok kullanılan temel ve uygulama komutları açıklanmaya çalışılmıştır. Ancak PLC ile yapılan bir çok farklı kontrol şekli ve haberleşme uygulamalarına ait komutlar bulunmaktadır ve komutlar incelenecektir. Ancak bu kısımda basit problemlerin çözümünde kullanılabilecek bazı komutların görevleri açıklanacaktır.
NOP Komutu
:NOP (No Operation) komutu uygulama olmadığı anlamına gelir ve programın çalışmasına hiçbir etki etmez.
Bu komut mevcut programı test etmek için boşluk sağlamak, SFC programlamada step numaralarını değiştirmeden herhangi bir komutu (Üzerine NOP konarak)değiştirmek , geçici olarak komutu silmek amaçlarıyla kullanılır.
INV Komutu:
Kendinden önceki giriş şartını tersleyen yani DEĞİL işlemini gerçekleştiren bir komuttur.Şekil 8.1 de görüldüğü gibi X0 girişi aktif değilken Y0 çıkışı aktiftir. Eğer X0 aktif olursa bu defa Y0 pasif olur.
Şekil 8.1.
EXC Komutu:
Exchange komutu iki kayıt bölgesinde bulunan içeriğin yer değiştirmesini sağlar. Şekil 8.2 de verilen örnekte X0 girişinden gelen darbe sinyali ile D10 kayıtçısında bulunan bilgi D11 kayıtçısına, D11’ de bulunan bilgide D10 kayıtçısına kaydedilir. Giriş sinyalin sürekli olması durumunda iki kayıtçı arasındaki içerik sürekli değişeceğinden pals komutu kullanılması gerekir.
BCD Komutu:
Kaynak adreste belirtilen veriyi BCD koduna çevirerek hedefe gönderir. Eğer kaynak adresteki data 0 – 9999 arasında değilse uygulamada hata oluşur ve error bitleri (M1067 ve M1068) aktif olur Şekil 8.3 de X2 girişi aktif olursa D0 içeriği BCD olarak Y3, Y2, Y1, Y0 çıkışında görülür. Eğer X0 aktif olduktan sonra X2 girişi aktif olursa, 5 decimal sayısının BCD kod karşılığına göre Y3 ve Y0 aktif olurken Y2 ve Y1 pasif durumda olacaktır. Eğer X1 aktifliğinden sonra X2 aktif olursa 3 decimal sayısının karşılığı olarak bu defa Y1 ve Y0 aktif olacak, Y3 ve Y2 pasif durumda olacaktır.
Şekil 8.3
BIN Komutu
:Kaynak adreste BCD kodunda bulunan bilgiyi binary bilgiye çevirerek hedefe gönderir. Şekil 8.4 deki örnekte X4 girişi aktif olduğu zaman X0-X3 BCD Datasını BIN Dataya çevrilir ve sonuç D10’un içine kaydedilir.
Şekil 8.4
WAND Komutu
:Kaynaktaki iki veriyi bit-bit AND işlemi uygulayıp sonucu hedefe kayıt eden komuttur. Şekil 8.5 de X0 ile D0’ ra kayıt edilen 65295 sayısının binary karşılığı ile X1 ile D10’a kayıt edilen 4660 sayısının binary karşılığı aynı seviyedeki bitler AND (çarpma) işlemine tabi tutulup sonuç D20’ ye kaydedilmiştir.
WOR Komutu
:Kaynaktaki iki binary veriyi bit-bit OR (veya ) işlemine tabi tutup sonucu hedefe gönderir. Şekil 8.6 da 16 bitlik örnek bir OR işlemi görülmektedir.
Şekil 8.5
Şekil 8.6
WXOR Komutu
:Kaynaktaki iki binary veriyi bit-bit XOR (özel veya (1+1=0) ) işlemine tabi tutup sonucu hedefe gönderir. Şekil 8.7 da 16 bitlik örnek bir XOR işlemi görülmektedir.
Şekil 8.7
NEG Komutu:
NEG (negation) komutu dijital elektronikte 2’ ye tamlama olarak bilinen işlemi gerçekleştirir. Yani binary sayının negatif sayıya çevirme işlemi için kullanılan yöntemlerden biridir. Bu işlemde negatif sayıya çevrilecek olan sayının önce tersine çevrilmesi işlem gerçekleşir(1-0 ‘ra ve 0-1’ re). Sonra (1) eklenir. Şekil 8.8 de X1 girişi aktif olduğunda D0 içeriğine 5 sayısı (101) transfer edilir. X0 girişi aktif olduğunda bu sayı önce ters çevrilir (010) sonrada (1) eklenir ve negatife çevrilmiş olur. Sürekli çevirme işlemi olmaması için X0 girişi pals şeklindedir. İstenirse (NEGP) şeklinde kullanımda olabilir.
Şekil 8.8
DECO Komutu:
Decoder komutu kaynakta belirtilen değerden itibaren en düşük değerli (n) tane biti çözerek sonucu hedefteki en küçük değerlikli bittenden başlayarak 2n tane bite kaydeder. “n”, 1 - 8 arası girilebilir. n = 0 olduğunda kaynak içeriği değişmez. Kaynak bit parametresi olarak kullanıldığında 0<n<=8 olmalı. Eğer kaynak D kayıtçısı ise 1<= n <= 4 olabilir. Şekil 8.9 da Kaynak X0 hedef M100 ve n=3 olarak verilmiştir. Pals komutu kullanılması ve X0 girişinin pals olması gerekir.
Şekil 8.9
ENCO Komutu:
Decoder işleminin tersini yapan encoder komutu, kaynaktan itibaren 2n biti hedefe kaydeder. “n”, 1 - 8 arası girilebilir. n = 0 olduğunda hedef içeriği değişmez. İki veya daha fazla bit varsa sondaki bitin posizyonu dikkate alınır. Kaynak bit parametresi olarak kullanıldığında 0<n<=8 olmalı. . Eğer kaynak D kayıtçısı ise 1<= n <= 4 olabilir.