• Sonuç bulunamadı

PROGRAMLANAB L R DENETLEY C LER DERS 07

N/A
N/A
Protected

Academic year: 2022

Share "PROGRAMLANAB L R DENETLEY C LER DERS 07"

Copied!
17
0
0

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

Tam metin

(1)

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

PROGRAMLANABøLøR DENETLEYøCøLER

DERS – 07

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

(2)

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

Arttırma ve Azaltma Komutları

Bayt øçeri÷i Arttırma ( INC_B) Komutu

Bu komut EN giriúi her enerjilendi÷inde, IN giriúinde bulunan bayt uzunlu÷undaki operant içeri÷ini bir artırarak sonucu OUT çıkıúı ile belirtilen bayt uzunlu÷undaki operant alanına yazar.

Word uzunlu÷undaki de÷erler için INC_W, Double word uzunlu÷undaki de÷erler

için INC_DW komutları kullanılır.

(3)

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

Bayt øçeri÷i Azaltma ( DEC_B) Komutu

Bu komut EN giriúi her enerjilendi÷inde, IN giriúinde bulunan bayt uzunlu÷undaki operant içeri÷ini bir azaltarak sonucu OUT çıkıúı ile belirtilen bayt uzunlu÷undaki operant alanına yazar.

Word uzunlu÷undaki de÷erler için DEC_W, double word uzunlu÷undaki de÷erler için DEC_DW komutları kullanılır.

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

Tablo Oluúturma

Bu komut, verilerin periyodik olarak kaydedilmesinde kullanılır. Tablo oluúturma komutunun EN giriúine lojik süreklilik sa÷landı÷ında DATA adresindeki 16 bitlik veriyi TBL ile belirtilen adresteki tabloya yazar.

Tabloya Ekle Komutu, word cinsinden de÷erleri (DATA) bir tabloya (TBL) ekler. Tablonun ilk de÷eri maksimum tablo uzunlu÷u (TL) ve ikinci de÷eri ise girdi sayısıdır (EC).Tabloya eklenen yeni de÷erler son de÷erin “altına” yazılır. Tabloya her yeni de÷er eklendi÷inde, EC de÷eri otomatik olarak bir arttırılır. Bir tabloya 100 adede kadar veri giriúi yapılabilir.

(4)

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

Tabloda Bul

Tabloda Bul komutu (FND), bir tablo içinde verilen kritere uyan veriyi arar. Tabloda Bul komutu TBL tablosunu, INDX

‘den baúlayan girdiden itibaren, veri de÷eri PTN’ye CMD’de verilen kritere göre bir araútırma yapar. Komut parametresi CMD, 1 ila 4 arasında nümerik bir de÷er olarak girilir ve sırasıyla =, <>, < ve > kriterlerine karúılık gelir.

E÷er kritere uyan bir de÷er bulunursa, INDX uygun girdinin sıra numarasını gösterir. Bir sonraki uygun de÷eri bulmak için Tabloda Bul komutu tekrar çalıútırılmadan önce INDX parametresinin bir arttırılması gerekir. E÷er uygun bir de÷er bulunamazsa, INDX’in de÷eri girdi sayısına eúit olur.

Bir tabloya 100 adede kadar veri girilebilir. Araútırılabilecek veri numarası da bu nedenle 0 ila 99 arasındadır.

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

(5)

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

ølk Giren ølk Çıkar (FIFO) ve Son Giren ølk Çıkar (LIFO)

Bir tabloya 100 adede kadar veri giriúi yapılabilir.

ølk Giren ølk Çıkar (First–In–First–Out:FIFO)

ølk Giren ølk Çıkar komutu (FIFO) bir tablodaki (TBL) en eski (veya ilk) girdiyi DATA’da belirtilen alana taúır. Taúınan de÷er tablodan çıkarılır, di÷er tüm de÷erler bir yukarı kaydırılır ve tablonun girdi sayısı bir eksilmiú olur.

Son Giren ølk Çıkar (Last–In–First–Out:LIFO)

Son Giren ølk Çıkar komutu (LIFO) bir tablodaki (TBL) en yeni (veya son) girdiyi DATA’da belirtilen alana taúır. Taúınan de÷er tablodan çıkarılır ve tablonun girdi sayısı bir eksilmiú olur.

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

ølk Giren ølk Çıkar (FIFO) ve Son Giren ølk Çıkar (LIFO)

(6)

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

ølk Giren ølk Çıkar (FIFO) ve Son Giren ølk Çıkar (LIFO)

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

Hafızayı Doldur

Hafızayı Doldur komutu (FILL), OUT’dan baúlayarak birbirini takip eden N adet worde IN’deki de÷eri yazar.

N 1 ila 255 arasında olabilir.

(7)

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

Bir Programın Temel Bileúenleri

Bir program blo÷u, icra edilebilir koddan ve notlardan oluúur. øcra edilebilir kod, ana programı, her türlü altprogramı içerir.

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

Ana Program

Uygulamanıza kumanda eden esas program parçasıdır. S7–200 burada yer alan komutları sürekli olarak tarar. Ana programa OB1 de denir.

Altprogramlar

Programınızın bu seçime ba÷lı bileúenleri sadece ça÷ırıldıkları zaman icra edilirler. Ça÷ırılma iúlemi ana programdan, bir interrupt altprogramından veya bir baúka altprogramdan yapılabilir.

Altprogramlar, bir iúlemi birden çok yapaca÷ınız zaman özellikle çok yararlıdırlar.

Oluúturaca÷ınız fonksiyonu programın içerisinde birden çok yerde yazmak yerine sadece bir kere yazar ve ana programdan diledi÷iniz kere ça÷ırırsınız. Altprogramlar birkaç yarar sunar:

1.Altprogramlar genellikle programınızın toplam boyutunu azaltır.

2.Altprogram kullanımı genellikle toplam tarama süresini azaltır. Zira, her taramada icra edilmeyecek olan program parçası ana program dıúına aktarılmıú ve sadece gerekti÷i (yani ça÷rıldı÷ı zaman) icra edilecek duruma getirilmiútir. S7-200, ça÷rılmayan alt programları taramaz.

3.Altprogramlar, oluúturulan kodu taúınabilir hale getirir. Belli bir amaç için bir altprograma yazdı÷ınız kodu, baúka bir alana kolaylıkla taúıyabilirsiniz.

(8)

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

Altprogram Komutları

Altprogram Ça÷ır komutu (CALL), program akıú kontrolunu SBR_N altprogramına aktarır. Altprogram Ça÷ır komutunu parametreli ve parametresiz olarak kullanabilirsiniz. Altprogram tamamlanınca, program akıúı altprogramın ça÷rıldı÷ı yerin bir alt satırından (bir sonraki komuttan) devam eder.

Altprogramdan Koúullu Dönüú komutu (CRET) önceki loji÷in sa÷lanması koúuluna göre altprogramı sonlandırır.

Bir altprogram eklemek için Edit > Insert > Subroutine menü komutunu kullanın.

Ana programdan, bir altprograma 8 kademeye kadar dallanabilirsiniz (altprogramdan baúka bir altprogramın ça÷rılması). Bir interrupt altprogramından, sadece 1 kademeli altprogram ça÷rısı yapılabilir.

Bir baúka deyiúle, interrupt altprogramından bir altprogram ça÷rısı yapıldıysa, bu altprogramda CALL komutu kullanılamaz. Altprogramının içinden kendisinin ça÷rılması engellenmiú de÷ildir, ancak bu durum hatayla sonuçlanacaktır.

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

Altprogram Komutları

(9)

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

ønterrupt Altprogramları

Bu, seçime ba÷lı program bileúenleri belirli interrupt olgularına ba÷lı olarak hareket ederler.

Önceden bilinen bir interrupt olgusunda ne yapılması gerekti÷ini burada tanımlarsınız.

Sözkonusu olgu gerçekleúti÷inde S7–200 belirtilen interrupt altprogramını çalıútırır.

Interrupt altprogramlarının çalıúması programınızın de÷il, interrupt olgularının

kontrolundadır. Bir interrupt olgusuyla bir altprogramı iliúkilendirirsiniz ve S7–200 o olgu her gerçekleúti÷inde iliúkilendirilmiú interrupt altprogramını (mevcut program akıúını keserek) çalıútırır.

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

ønterrupt Komutları

ønterrupt’lara øzin Ver ve ønterrupt øznini Kaldır

ønterrupt’lara øzin Ver komutu (Enable ønterrupt:ENI), tüm iliúkilendirilmiú interrupt olgularının iúlenmesine izin verir.

ønterrupt øznini Kaldır komutu (Disable ønterrupt:DISI), tüm interrupt olguların iúlenmesini engeller.

S7-200 RUN konumuna geçti÷inde, interupttlar baúlangıçta devrede de÷ildir. ønterruptların iúlenmesini RUN konumunda ENI komutunu iúleterek devreye alabilirsiniz. ønterrupt øznini Kaldır komutuyla birlikte yeni interrupt oluúumuna izin verilmez, ancak yürürlükte olanlar iúlemeye devam eder.

ønterrupt’tan Koúullu Dönüú

ønterrupt’tan Koúullu Dönüú komutu (CRETI), bir interrupt altprogramının önceki loji÷e ba÷lı olarak bitirilmesi için kullanılabilir.

(10)

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

ønterrupt øliúkilendir

ønterrupt øliúkilendir komutu (ATCH), EVNT’de tanımlanan bir interrupt olgusunu INT’de numarası girilen interrupt altprogramı ile iliúkilendirir ve o olguya izin verir.

ønterrupt Komutları

ønterrupt øliúkisini Kaldır

ønterrupt øliúkisini Kaldır komutu (DTCH), EVNT’de tanımlanan interrupt olgusunun tüm altprogramlarla iliúkisini kaldırır ve o olguyu devre dıúı bırakır.

S7–200 ønterrupt Altprogramlarını Nasıl øúliyor?

ønterrupt altprogramı, iliúkilendirilen harici veya dahili bir olguya cevap olarak iúletilir. Altprogramdaki son komut da iúletilince, kumanda ana programa aktarılır. ønterrupt’tan Koúullu Dönüú (CRETI) komutunu kullanarak altprogramdan çıkabilirsiniz.

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

S7–200’ün Destekledi÷i ønterrupt Çeúitleri

S7–200, aúa÷ıdaki interrupt çeúitlerini destekler:

• øletiúim port interrupt’ları: S7–200 programınızın iletiúim portuna kumanda etmesi için olgular üretir.

• I/O interrupt’ları: S7–200, de÷iúik giriú/çıkıúlardaki de÷iúiklikler durumunda olgular üretir. Bu olgular, programınızın hızlı sayıcılara, darbe çıkıúlarına ve giriúlerin düúen veya yükselen kenarlarına tepki vermesini sa÷lar.

• Zaman kontrollu interrupt’lar: S7–200, programınızın belirli zaman aralıklarında tepki vermesi için olgular üretir.

ønterrupt Komutları

(11)

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

ønterrupt Komutları

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

ønterrupt Komutları

(12)

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

Sıçrama Komutları

Etikete Sıçrama komutu (JMP), program içerisinde Etiket (label) N’e bir dallanma gerçekleútirir.

Etiket komutu (LBL), sıçrama noktası N’i iúaretler.

Sıçrama komutunu ana programda, altprogramda ve interrupt altprogramında kullanabilirsiniz. Sıçrama ve ona ait olan Etiket komutu, aynı program parçası içinde yer almalıdır (aynı altprogramda veya ana programda).

Ana programdan bir altprogram veya interrupt altprogramındaki etikete sıçrama yapamazsınız. Aynı úekilde farklı altprogramlar arasında sıçrama da mümkün de÷ildir.

Sıçrama komutu SCR parçası içinde kullanabilirsiniz, ancak ona ait Etiket de aynı SCR parçasında yer almalıdır.

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

Lojik øúlem Komutları Ters Çevirme Komutları

Bayt, Word ve Double Word Ters Çevir

Bayt (INVB), Word (INVW) ve Double Word (INVD) Ters Çevirme komutları, IN’de yer alan de÷iúkenin 1’li tümleyenini alır ve sonucu OUT’a yazar.

(13)

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

AND, OR ve Exclusive OR Komutları

AND Bayt, AND Word ve AND Double Word

AND Bayt (ANDB), AND Word (ANDW) ve AND Double Word (ANDD) komutları, IN1 ve IN2’de yer alan giriúlerin karúılıklı bitlerini lojik olarak AND’ler ve sonucu OUT’a yazar.

OR Bayt, OR Word ve OR Double Word

OR Bayt (ORB), OR Word (ORW) ve OR Double Word (ORD) komutları IN1 ve IN2’de yer alan giriúlerin karúılıklı bitlerini lojik olarak OR’lar ve sonucu OUT’a yazar.

Exclusive OR Bayt, Exclusive OR Word ve Exclusive OR Double Word

Exclusive OR Bayt (XROB), Exclusive OR Word (XORW) ve Exclusive OR Double Word (XORD) komutları IN1 ve IN2’de yer alan giriúlerin karúılıklı bitlerini lojik olarak XOR’lar ve sonucu OUT’a yazar.

Lojik øúlem Komutları

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

(14)

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

Kaydır ve Döndür Komutları

Sa÷a Kaydır ve Sola Kaydır Komutları

Kaydırma komutları, IN’de verilen giriú de÷erini N bit kadar sa÷a veya sola kaydırır ve sonucu OUT’a yazar.

Kaydırılan her bitin yerine 0 doldurulur. E÷er kaydırma sayısı (N), maksimum sayıdan (bayt için 8, word için 16 ve double word için 32) büyük veya eúitse, maksimum izin verilen de÷er kadar kaydırma gerçekleútirilir. E÷er kaydırma sayısı 0’dan büyük ise, taúma biti (SM1.1) son kaydırılan bitin de÷erini taúır. Kaydırma iúleminin sonucu 0 ise sıfır biti (SM1.0) set edilir.

Bayt iúlemleri iúaretsizdir. Word ve double word iúlemlerde, iúaret biti de kaydırma iúlemine tabi tutulur.

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

Kaydır ve Döndür Komutları Sa÷a Dönür ve Sola Döndür

Döndürme komutları, IN’de verilen giriú de÷erini N bit kadar sa÷a veya sola kaydırır ve sonucu OUT’a yazar. Ancak bir taraftan kaydırılan bitler, de÷erin di÷er tarafına aynı sırayla yazılır.

E÷er kaydırma sayısı (N), maksimum sayıdan (bayt için 8, word için 16 ve double word için 32) büyük veya eúitse, S7–200 bir mod alma iúlemi gerçekleútirerek kaydırılacak geçerli bit rakamını hesaplar.

Sonuçta, bayt iúlemleri için 0 ila 7, word iúlemleri için 0 ila 15 ve double word iúlemleri için 0 ila 31 bitlik kaydırma de÷erine ulaúılır.

E÷er kaydırma sayısı 0 ise, döndürme iúlemi yapılmaz. Döndürme iúlemi yapıldı÷ında, döndürülen son bitin de÷eri taúma bitine (SM1.1) kopyalanır.

Döndürülecek de÷er sıfır ise sıfır biti (SM1.0) set edilir.

Bayt iúlemleri iúaretsizdir. Word ve double word iúlemlerde, iúaret biti de kaydırma iúlemine tabi tutulur.

(15)

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

Kaydır ve Döndür Komutları

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

Shift Register Bit Komutu

Shift Register Bit (SHRB) komutu, kaydırma kütü÷ü (shift register) alanına bir biti kaydırarak yazar. Bu komut, ürün veya veri akıúının sıralanması için kolay bir yöntem sa÷lar. Bu komutu kullanarak, önceden tanımladı÷ınız bir kaydırma kütü÷ünün tamamını, bir taramada en fazla bir bit olmak üzere kaydırabilir, böylece çok sayıda (örne÷in bir ürüne karúılık gelen) bitin durumunu ve kütük içerisindeki yerini takip edebilirsiniz.

SHRB komutu, DATA’da verilmiú olan giriúin de÷erini kaydırma kütü÷üne kaydırarak yazar. S_BIT, kaydırma kütü÷ünün en az anlamlı (baúlangıç) bitidir. N, kaydırma kütü÷ünün uzunlu÷unu ve kaydırma yönünü belirler (Negatif N sa÷a, pozitif N sola kaydırma sa÷lar).

SHRB komutu ile dıúarı atılan her bit taúma bitine (SM1.1) yerleútirilir.

(16)

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

Kaydırma kütü÷ünün en anlamlı (MSB) bitini hesaplamak için aúa÷ıdaki formülü kullanabilirsiniz (MSB.b):

MSB.b = [(S_BIT’in baytı) + ([N] - 1 + (S_BIT’in biti)) / 8] . [8’e bölüm sonunda kalan de÷er]

Shift Register Bit Komutu

Örne÷in: E÷er S_BIT =V33.4 ve N=14 ise, aúa÷ıdaki hesaplama sonucu MSB biti V35.1 olarak bulunur.

MSB.b = V33 + ([14] - 1 +4)/8

= V33 + 17/8

= V33 + 2 (1 kalanıyla)

= V35.1

Negatif N için, giriú de÷eri (DATA) kaydırma kütü÷ünün en anlamlı bitine yerleútirilir, tüm kütük bir sola kaydırılır ve en az anlamlı bit (S_BIT) dıúarı atılır. Dıúarı atılan S_BIT’in de÷eri taúma bitine (SM1.1) taúınır.

Pozitif N için, giriú de÷eri (DATA), kaydırma kütü÷ünün en az anlamlı bitine (S_BIT) yazılır, tüm kütük bir sa÷a kaydırılır ve en anlamlı bit dıúarı atılır. Dıúarı atılan bitin de÷eri taúma bitine (SM1.1) taúınır.

Kaydırma kütü÷ünün maksimum de÷eri pozitif veya negatif 64 bittir.

Ancak, uygun programlama tekni÷i kullanılarak birden çok kaydırma kütü÷ü biraraya getirilebilir. Örnekte pozitif ve negatif N de÷erleri için bit kaydırmanın úekli gösterilmektedir.

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

Shift Register Bit Komutu

(17)

g]HUû(1<857

g]HUù(1<857 ZZZR]HUVHQ\XUWFRP± ZZZRUEHHWHFKFRP 

Referanslar

Benzer Belgeler

Hava ile beraber giden su damlalarını çeviren bir süzgeçten de geçtikten sonra hava muhtelif istikamet- lere ayrılır ve bu hava ayni zamanda ısıtmak için kullanılacaksa

Suzler kira evi.. Saulnier

İstas- y o n yolu ikinci dereceye iniyor, bunu bu hale koymak hiç bir vakit doğru değildir.. Esasen, bu yolda diğerinde olduğu gibi büyük

Sıvasın kıymet ve enerji ile mücehhez mimarı bekleyen hükümet meydanından

[r]

Istanbulun tabiaten güzel yapılışının insan elile bozulmasıdır... Bunlar,

Öğ- rettiği genç adamlar üzerinde ıtesiri, tabiîdir ki, bil- hassa kuvvetli idi... bir ifade mevcut olabileceğini, telkin niyetinde

Halbuki uzağı gören bu yeni raporda şimdiye kadar yapılmış olan bütün münferit tavsiyelerin tevhidi ile bunların esaslı bir nizam çevresi içine idhal olunması