Klavyeah
Üye
- Katılım
- 28 Ağu 2006
- Mesajlar
- 269
- Puanları
- 1
- Yaş
- 39
PLC Siemens S7200 Komutları ve Açıklamaları
S7-200 KOMUT SETi’NiN AçIKLAMASI
S7-200, bütün PLC`lerden beklenen temel komutları, ihtiyaç duyulabilecek bütün şekilleriyle hizmete sunmuştur, bununla beraber S7-200, geliştirmek istenebilecek en kompleks sistemler için dahi fazlasıyla yeterli miktarda özel amaçlı komutları da ihtiva eder.
Komutları sınıflandırma şekli temel itibariyle mantıksal yığından etkileniş şekillerine göre olacaktır. Daha önce çalışma şeklini kısmen de olsa açıklanan bu bölgeyi bir kere daha açıklanırsa,
Mantıksal yığın, mantıksal işlemlerin üzerinde yapıldığı ve bazı komutların kullanımlarından önce, parametrelerinin girildiği özel bir bölgedir. Genel çalışma ilkesi olarak LIFO adı verilen sistemle yani son giren değer, ilk çıkacak değerdir ilkesiyle çalışan bu sistem; kompleks mantıksal işlemlerin yani eğer ile başlayan uzun cümlelerin PLC ye anlatımı için geliştirilmiştir.
Bütün S7-200 komutlarını, 3 ayrı guruba ayırmak mümkündür,
• Mantıksal yığının içeriğine bağlı olmayan komutları.
• Mantıksal yığının ilk elemanının 1, yani DOğRU, ile gösterilmesiyle çalışan komutlar.
• Program bölgelerinin başlangıcını, sonunu veya özel bir yerini işaret eden komutlar .
5.1. KOşULSUZ OLARAK işLETiLEN KOMUTLAR
= n //n ile gösterilen yere mantıksal yığının ilk değeri atanır
=I n // n ile gösterilen yere o anda (tarama süresi bitmeden) //mantıksal yığının ilk değeri atanır.
A n // mantıksal yığının ilk değeri n ile VE işlemine tutulur ve //sonuç yığının ilk elemanına atanır.
AB<= n1, n2 //n1<=n2 işleminin sonucu (1/0), yığının ilk elemanıyla //VE işlemine tabi tutulur
AB>= n1, n2 // n1>=n2 işleminin sonucu (1/0), yığının ilk elemanıyla //VE işlemine tabi tutulur.
AB= n1, n2 //n1 = n2 işleminin sonucu (1/0), yığının ilk elemanıyla //VE işlemine tabi tutulur.
AD<= n1, n2 //n1<=n2 işleminin sonucu (1/0), yığının ilk elemanıyla VE //işlemi tabi tutulur.
AD>= n1, n2 // n1>=n2 işleminin sonucu (1/0), yığının ilk elemanıyla //VE işlemine tabi tutulur.
AD= n1, n2 // n1 = n2 işleminin sonucu (1/0), yığının ilk elemanıyla //VE işlemine tabi tutulur.
AI= n //yığının ilk elemanı, n değeri dışarıdan o an süresi // okunarak VE işlemine tabi tutulur
ALD // yığının 1.(ilk) ve 2. Elemanını VE işlemine sokar
// ve yığını bir kaydırarak sonucu yığının ilk elemanına //yazar.
AN n // n adlı değişkenin değeri (1/0), ters çevrilerek (0,1); //yığının ilk elemanıyla VE işlemine sokulur.
ANI n // n adlı giriş noktasının değeri (1/0) o an (tarama süresi //bitmeden) dışarıdan okunarak ve daha sonrada ters //çevrilerek (0,1); yığının ilk elemanıyla VE işlemine //sokulur.
AW<= n1, n2 // n1<=n2 işleminin sonucu (0/1), yığının ilk elemanıyla VE //işlemine tabi tutulur.
AW>= n1, n2 // n1>=n2 işleminin sonucu (0/1), yığının ilek elemanıyla VE işlemine tabi tutulur.
AW= n1, n2 // n1 = n2 işleminin sonucu (0/1), yığının ilek elemanıyla //VE işlemine tabi tutulur.
CTU Cxxx, PV // yığının 2. Elemanın değerinin 0`dan 1`e değişimini sayar //ve yığının 1. Elemanını değeri 1 olunca sayıcıya sıfırlar. //Cxxx sayıcısının değeri PV ile gösterilen değere ulaşınca //yine Cxxx şeklinde gösterilen sayıcı biti 1 yapılır.
CTUD Cxxx, PV // yığının 3. Elemanının değerinin 0`den 1`e değişimlerinde //yukarı doğru ve yığının 2. Elemanının değerinin 0`dan 1`e //değişimlerinde aşağı doğru sayar. CTU komutunda //olduğu gibi yığının 1. Elemanı1 olunca sayıcıyı sıfırlar. //Cxxx sayıcısının değeri PV ile gösterilen değere ulaşınca //yine Cxxx şeklinde gösterilen sayıcı biti 1 yapılır.
ED // mantıksal yığının bu komuttan evvelki değeri bir önceki //çevrimde 1 ve bu çevrimde 0 ise yığının ilk elemanını o //çevrim için 1 yapar.
EU // mantıksal yığının bu komuttan evvelki değeri bir önceki //çevrimde 0 ve bu çevrimde 1 ise yığının ilk elemanını o //çevrim için 1 yapar.
LD n // n`in değerini, mantıksal yığını 1 yukarı kaydırıp //1.elemanın yerini alır.
LDB<=n1, n2 // n1 <=n2 işleminin değerini, yığını yukarı kaydırıp yükle
LDB>= n1, n2 // n1 >=n2 işleminin değerini, yığını 1 yukarı kaydırıp yükle
LDB= n1, n2 // n1 = n2 işleminin değerini, yığını 1 yukarı kaydırıp yükle
LDD<= n1, n2 // n1 <=n2 işleminin değerini, yığını 1 yukarı kaydırıp //yükle
LDD>= n1, n2 // n1 >=n2 işleminin değerini, yığını 1 yukarı kaydırıp yükle
LDD= n1, n2 // n1 = n2 işleminin değerini, yığını 1 yukarı kaydırıp yükle
LDI n //giriş noktasının değeri o an (tarama süresi bitmeden) //okuyarak yığının ilk elemanına yığın ilk elemanına yığını //bir kaydırarak yükler.
LDNI n // n giriş noktasının değerini o an (tarama süresi bitmeden) //okuyup tersini alarak, yığının ilk elemanına yığını bir kaydırarak yükler.
LDW<= n1, n2 // n1<= n2 işleminin değerini, yığını 1 yukarı kaydırıp //yükle.
LDW>= n1, n2 // n1>= n2 işleminin değerini, yığını 1 yukarı kaydırıp //yükle.
LDW= n1, n2 // n1 = n2 işleminin değerini, yığını 1 yukarı kaydırıp yükle.
LPP // yığının ilk elemanını dışarı atar, dolayısıyla onun altındaki bütün elemanların sıra numaralarıda bir azalır. Dolayısıyla yığının yüksekliği bir azalır.
LPS // yığının ilk elemanını yığına bir kere daha yükleyerek //yığını bir kaydırır.
LRD // yığının 2. Elemanını 1. Elemanı üzerinde kopyalar.
MEND1,2 // çevrim sonu işareti (proğram sonu)
NOT // yığının ilk elemanının tersini alır. 1`se, 0, 0`sa 1 yapar.
O n // mantıksal yığının ilk değeri n ile VEYA işlemine tutulur //ve sonuç yığının ilk elemanına atanır.
OB<= n1, n2 // n1<=n2 işleminin sonucu (1/0), yığının ilk elemanıyla //VEYA işlemine tabi tutulur.
OB>= n1, n2 // n1>=n2 işleminin sonucu (1/0), yığının ilk elemanıyla //VEYA işlemine tabi tutulur.
OB = n1, n2 // n1=n2 işleminin sonucu (1/0), yığının ilk elemanıyla //VEYA işlemine tabi tutulur.
OD<= n1, n2 // n1<=n2 işleminin sonucu (1/0), yığının ilk elemanıyla //VEYA işlemine tabi tutulur.
OD>= n1, n2 // n1>=n2 işleminin sonucu (1/0), yığının ilk elemanıyla //VEYA işlemine tabi tutulur.
OD= n1, n2 // n1=n2 işleminin sonucu (1/0), yığının ilk elemanıyla //VEYA işlemine tabi tutulur.
OI n // yığının ilk elemanı, n değeri dışarıdan o an (tarama süresi //bitmeden) okunarak VEYA işlemine tabi tutulur.
OLD // yığının 1.(ilk) VEYA 2. Elemanını VEYA işlemine sokar //ve yığını bir kaydırarak sonucu yığının ilk elemanına atar.
ON n // n adlı değişkenin değeri (1/0), ters çevrilerek (0,1);
// yığının ilk elemanıyla VEYA işlemine sokulur.
ONI N // N adlı giriş noktasının değeri (1/0) o an (tarama süresi //bitmeden) dışarıdan okunarak ve daha sonrada ters //çevrilerek (0,1); yığının ilk elemanıyla VEYA işlemine //sokulur.
OW<= n1, n2 // n1<=n2 işleminin sonucu (0/1), yığının ilk elamanıyla //VEYA işlemine tabi tutulur.
OW>= n1, n2 // n1>=n2 işleminin sonucu (0/1), yığının ilk
// elamanıyla VEYA işlemine tabi tutulur.
OW = n1, n2 // n1=n2 işleminin sonucu (0/1), yığının ilk elamanıyla //VEYA işlemine tabi tutulur.
RET 3,1,4 // alt proğramı bitirir ve ana proğrama dönmeyi sağlar.
RET 3,2,4 // interrupt altproğramını bitirir ve ana proğrama dönmeyi //sağlar.
5.2.KOşULLU OLARAK işLETiLEN KOMUTLAR
Koşullu olarak işletilen komutlar, işletilmeden evvelki en son mantıksal işlemin sonucunun 1 veya 0 olmasına göre işletilirler, ve bir evvelki işlemin sonucu 1 ise çalışırlar. Mantıksal yığın olarak adlandırılan ve mantıksal işlemlerin sonuçlarının kaydedildiği bölgenin ilk elemanı olan, bir evvelki mantıksal işlemin sonucunun yanında, mantıksal yığının 2.ve 3. elemanıda bazı komutlarca kullanılabilir. Mesela yukarı sayıcının hangi girişle sayacağını, hangi girişle sıfırlanacağını bu komuttan evvel LD komutuyla yığına (stack) yüklemek gereklidir.
+D IN1, IN2 // IN1 ve IN2 adlı 32 bitlik tamsayıları, yığının ilk değeri 1 //ise toplar.
+I IN1, IN2 // IN1 ve IN2 adlı 16 bitlik tamsayıları, yığının ilk değeri 1 //ise toplar.
-D IN1, IN2 // IN1 ve IN2 adlı 32 bitlik tamsayıları, yığının ilk değeri 1 ise çıkarır.(IN2-IN1=IN2)
-I IN, IN2 // IN1 ve IN2 adlı 16 bitlik tamsayıları, yığının ilk değeri 1 //ise toplar.(IN2-IN1=IN2)
ANDD IN1, IN2 // yığının ilk değeri 1 ise, 32 bitlik değerler üzerinde //mantıksal VE işlemini yapar.
ANDW IN1, IN2 // yığının ilk değeri 1 ise, 16 bitlik değerler üzerinde //mantıksal VE işlemini yapar.
ATCH INT, Event // Event adı verilen interrupt yapabilen olaylar meydana //geldiğinde, yapılması gereken görevleri interrupt alt //proğramlarına bağlayarak, çözebilirsiniz. Event ile //numarası belirtilen olay meydana geldiğinde INT ile //numarası belirtilen interrupt alt proğramı çalışır.
ATH IN, OUT, LEN //yığının ilk elemanı 1 ise IN ile gösterilen ASCII //karakterini, Hexadecimal (16`lık) sisteme (OUT) çevirir. //LEN, giriş değerinin (IN), uzunluğunu gösterir.
ATT DATA, TABLE5 // yığının ilk elemanı 1 ise DATA ismiyle adlandırılan //bilgiyi Tablo ile gösterilen tabloya aktar.
BCDI IN // yığının ilk elemanı 1 ise BCD değerini tamsayıya çevirir.
BMB IN, OUT, N // IN ile gösterilen baytları OUT ile gösterilen bölgeye, blok //halinde taşır.
BMW IN, OUT, N //IN ile gösterilen 16 bitlik Wordleri OUT ile gösterilen //bölgeye, blok halinde taşır.
CALL n6,1 // proğramın işleyişini n ile gösterilen alt proğrama aktarır.
CRET 3,1,4 // yığının ilk elemanı 1 ise altproğramı sona erdirir.
CRETI 3,2,4, //yığının ilk elemanı 1 ise interrupt altproğramını sona //erdirir.
DECDI IN // IN ile gösterilen 32 bitlik tamsayının değerini 1 azaltır.
DECO IN, OUT // IN sayısının gösterdiği biti OUT üzerinde 1 yapar.
DECW IN, // IN ile gösterilen 16 bitlik tamsayının değerini 1 azaltır.
DISI1 // bütün interrupt faaliyetlerini iptal eder.
DIV IN1, IN2 // 16 bitlik sayılar üzerinde bölme IN2/ IN1= IN2 işlemi //yapar.
DTCH Event // Event numarasıyla gösterilen olayla,
// bu olay meydana geldiğinde çalıştırılan interrupt
// alt proğramının, çalışmasını iptal eder.
ENCO IN, OUT // Out baytının IN numaralı bitini 1 yapar.
END1,2 // çevrimi sona erdirir.
ENI1 // interruptların hepsini aktif duruma getirr.
FIFO Table, Data // Table ile işaret edilen bilgi tablosunun ilk karekterini //alarak Data bölgesine atar.
FILL In, Out, N // Out ile gösterilen yerden itibaren, N adet In in gösterdiği //değer atanır.
FND<SRC,PAT,INDX // Src ile gösterilen tablonun içinde Indx`ten itibaren “Pat” //değişkeninden daha küçük ilk değerin pozisyonunu bulur.
FND>SRC,PAT,INDX // Src ile gösterilen tablonun içinde Indx`ten itibaren “Pat” //değişkeninden daha büyük ilk değerin pozisyonunu bulur.
FND<>SRC,PAT,INDX // Src ile gösterilen tablonun içinde Indx`ten itibaren “Pat” //değişkeninden eşit olmayan ilk değerin pozisyonunu bulur.
FND=SRC,PAT,INDX // Src ile gösterilen tablonun içinde Indx`ten itibaren “Pat” //değişkenine eşit olan ilk değerin pozisyonunu bulur.
FOR Index, Initial, Final 5,1 // FOR ile NEXT komutu arasındaki komutları, Index değeri //Initial ilk değerinden başlayarak birer birer artarak Final //değerine çıkana kadar tekrarlar.
HDEF Hsc, Mode1 // Mode ile gösterilen operasyon şeklini Hsc hızlı sayıcısına //yükler.
HSC n // n ile numarası verilen hızlı sayıcıya ait özel hafıza //bölgesini inceleyerek, hızlı sayıcıya çalışma izni verir.
HTA In, Out, Len // In ile gösterilen Hexadecimal (16`lık sistem) sayılara //karşılık gelen ASCII karakter kodlarını Out adlı bölgeye //atar.
IBCD In // In ile gösterilen tamsayıları BCD sayılara çevirir.
INCD n // n ile gösterilen 32 bitlik tamsayının değerini 1 arttırır.
INCW n // n ile gösterilen 16 bitlik tamsayının değerini 1 arttırır.
INVD n // n ile gösterilen 32 bitlik bit – bit tersini alır.
INVW n // n ile gösterilen 16 bitlik tamsayının bit – bit tersini alır.
JMP Mxxx // Proğrmın aşışını Mxxx ile gösterilen bölgeye aktarır.
LIFO Table, Data5 // Table ile gösterilen tabloya girilen en son değeri silerek //Data`ya aktarır.
MOVB In, Out // In ile gösterilen baytın değerini Out`a kopyalar.
MOVW In,Out // In ile gösterilen 16 bitlik wordün (16 bitlik tamsayı) //değerini Out`a kopyalar.
MOVD In, Out // In ile gösterilen 32 bitlik double wordün (32 bitlik //tamsayı) değerini Out`a kopyalar.
MUL In1, In2 // 16 bitlik sayıları çaparak, sonucu In2 ye aktarır.
ORD In1, In2 // 32 bitlik değerleri bit – bit VEYA işlemine sokup/ sonucu //In2`ye aktarır.
ORW In1, In2 // 16 bitlik değerleri bit – bit VEYA işlemine sokup sonucu /In2`ye aktarır.
PLS x5 // PTO/PWM yani darbe katarı çıkışı veya darbe genişliği //modulasyonu çıkışlarıyla ilgili özel hafıza bölgesini //inceleyerek, bu çıkışları istenilen şekle ayarlayıp, //çalışmalarına izin verir.
R S-bit, n // S- bit ile gösterilen bitten itibaren n adet biti sıfır yapar.
RI S-bit, n // S- bit ile gösterilen bitten itibaren n adet biti o an (tarama //süresi bitmeden) da, sıfır yapar.
RLD In, n // In ile gösterilen 32 bitlik double wordü sola doğru //döndürür.
RLD In, n // In ile gösterilen 16 bitlik wordü sola doğru döndürür.
RRD //In, n In ile gösterilen 32 bitlik double wordü sağa doğru //döndürür.
RRW In, n // In ile gösterilen 16 bitlik wordü sağa doğru döndürür.
S S-bit, n // S- bit ile gösterilen bitten itibaren n adet biti bir yapar.
SEG In, Out // In ile gösterilen sayının 7 segment displayde göstermek //için gerekli olan çıkış kodunu Out adlı yerde saklar.
SHRB Data, S- bit,n // S- bit ile gösterilen kaydırma bölgesinin içine Data ile //gösterilen bilgiyi, n ile gösterilen miktarda ve yönde //kaydırır.
SI S-bit, n // S- bit ile gösterilen bitten itibaren n adet biti o an (tarama //süresi bitmeden) da, bir yapar.
SLD In, n // In ile gösterilen 32 bitlik double wordü sola doğru //kaydırır.
SLD In, n // In ile gösterilen 16 bitlik wordü sola doğru kaydırır.
SRD In, n // In ile gösterilen 32 bitlik double wordü sağa doğru //kaydırır.
SRW In, n // In ile gösterilen 16 bitlik wordü sağa doğru kaydırır.
STOP // proğramın çalışmasını durdurarak, PLC`nizin STOP //moduna geçmesini sağlar.
SWAP In // In ile gösterilen wordün, sol ve sağ baytlarının yerini //değiştirir.
TODR T5 // o anki saati ve günü
// T adı verilen değişkene yükler
TODW T5 // o anki saati ve günü
// T adı verilen değişkenin değerine ayarlar.
TON Txxx, PT // Txxx ile gösterilen zamanlayıcıyı çalıştırır ve zamanlayıcı //PT değerine ulaşınca, yine aynı adla gösterilen Txxx //biti “1” olur.
TONR Txxx, PT // Txxx ile gösterilen hafızalı zamanlayıcıyı çalıştırır ve //zamanlayıcı PT değerine ulaşınca, yine aynı adla gösterilen //Txxx biti “1” olur. Hafızalı zamanlayıcı, kendisinden //evvelki mantıksal yığının değeri 1`den 0`a düşsede, //içerisindeki süreyi sıfırlayamaz. Bir daha ki sefere, kaldığı //yerden devam eder.
WDR // çevrim süresi eğer çok uzarsa, yani MEND komutuna //ulaşma süresi gecikirse, PLC otomatik olarak STOP //moduna geçer, bunu önlemek için bu süreyi gerektiği //bölümlerde, WDR komutuyla sıfırlanabilir..
XMT Table, Port // Table ile gösterilen tablodan, bilgileri okuyup, seri porttan //dışarıdaki cihazlara yollar.
XORD In1, In2 // 32 bitlik double wordün bitleri üzerinde xor işlemi yapıp //sonucu In2 üzerine atar.
XORW In1, In2 // 16 bitlik wordün bitleri üzerinde xor işlemi yapıp sonucu //In2 üzerine atar.
5.3. KOMUT LiSTESiNDEKi BöLGE VE YERLERE iSiM/ ETiKET VEREN KOMUTLAR
INT n1,2,4 // Interrupt alt proğramı başlangıcını gösterir.
LBL Mxxx //Proğramın akışını, JMP komutuyla //yönlendireceğimizi gösteren etiket.
NEXT 5,7,1, // For döngüsünün sonunu gösterir.
NOP // işlem yapmayan komut, özel durumlarda kullanılır.
SBR n1,2,4 // Alt proğram başlangıcını gösterir.
5.4. KOMUTLARIN üSTüNDEKi işARETLER
X1→ bu şekilde gösterilen komutlar interrupt alt proğramlarında kullanılamazlar.
X2→ bu şekilde gösterilen komutlar alt proğramlarda kullanılamazlar.
X3→mantıksal yığını, alt proğram işleyişinden evvelki şekline getirir.
X4→ bu komutlar ana proğramı içinde kullanılamaz.
X5→ sadece S7-214`de kullanılabilir.
X6→ o anki yığını sonraki kullanım için saklayarak,Yığının ilk elemanını 1 geri kalanı 0 yapar.
X7→ yığının ilk elemanı 1 yapar.
S7-200 KOMUT SETi’NiN AçIKLAMASI
S7-200, bütün PLC`lerden beklenen temel komutları, ihtiyaç duyulabilecek bütün şekilleriyle hizmete sunmuştur, bununla beraber S7-200, geliştirmek istenebilecek en kompleks sistemler için dahi fazlasıyla yeterli miktarda özel amaçlı komutları da ihtiva eder.
Komutları sınıflandırma şekli temel itibariyle mantıksal yığından etkileniş şekillerine göre olacaktır. Daha önce çalışma şeklini kısmen de olsa açıklanan bu bölgeyi bir kere daha açıklanırsa,
Mantıksal yığın, mantıksal işlemlerin üzerinde yapıldığı ve bazı komutların kullanımlarından önce, parametrelerinin girildiği özel bir bölgedir. Genel çalışma ilkesi olarak LIFO adı verilen sistemle yani son giren değer, ilk çıkacak değerdir ilkesiyle çalışan bu sistem; kompleks mantıksal işlemlerin yani eğer ile başlayan uzun cümlelerin PLC ye anlatımı için geliştirilmiştir.
Bütün S7-200 komutlarını, 3 ayrı guruba ayırmak mümkündür,
• Mantıksal yığının içeriğine bağlı olmayan komutları.
• Mantıksal yığının ilk elemanının 1, yani DOğRU, ile gösterilmesiyle çalışan komutlar.
• Program bölgelerinin başlangıcını, sonunu veya özel bir yerini işaret eden komutlar .
5.1. KOşULSUZ OLARAK işLETiLEN KOMUTLAR
= n //n ile gösterilen yere mantıksal yığının ilk değeri atanır
=I n // n ile gösterilen yere o anda (tarama süresi bitmeden) //mantıksal yığının ilk değeri atanır.
A n // mantıksal yığının ilk değeri n ile VE işlemine tutulur ve //sonuç yığının ilk elemanına atanır.
AB<= n1, n2 //n1<=n2 işleminin sonucu (1/0), yığının ilk elemanıyla //VE işlemine tabi tutulur
AB>= n1, n2 // n1>=n2 işleminin sonucu (1/0), yığının ilk elemanıyla //VE işlemine tabi tutulur.
AB= n1, n2 //n1 = n2 işleminin sonucu (1/0), yığının ilk elemanıyla //VE işlemine tabi tutulur.
AD<= n1, n2 //n1<=n2 işleminin sonucu (1/0), yığının ilk elemanıyla VE //işlemi tabi tutulur.
AD>= n1, n2 // n1>=n2 işleminin sonucu (1/0), yığının ilk elemanıyla //VE işlemine tabi tutulur.
AD= n1, n2 // n1 = n2 işleminin sonucu (1/0), yığının ilk elemanıyla //VE işlemine tabi tutulur.
AI= n //yığının ilk elemanı, n değeri dışarıdan o an süresi // okunarak VE işlemine tabi tutulur
ALD // yığının 1.(ilk) ve 2. Elemanını VE işlemine sokar
// ve yığını bir kaydırarak sonucu yığının ilk elemanına //yazar.
AN n // n adlı değişkenin değeri (1/0), ters çevrilerek (0,1); //yığının ilk elemanıyla VE işlemine sokulur.
ANI n // n adlı giriş noktasının değeri (1/0) o an (tarama süresi //bitmeden) dışarıdan okunarak ve daha sonrada ters //çevrilerek (0,1); yığının ilk elemanıyla VE işlemine //sokulur.
AW<= n1, n2 // n1<=n2 işleminin sonucu (0/1), yığının ilk elemanıyla VE //işlemine tabi tutulur.
AW>= n1, n2 // n1>=n2 işleminin sonucu (0/1), yığının ilek elemanıyla VE işlemine tabi tutulur.
AW= n1, n2 // n1 = n2 işleminin sonucu (0/1), yığının ilek elemanıyla //VE işlemine tabi tutulur.
CTU Cxxx, PV // yığının 2. Elemanın değerinin 0`dan 1`e değişimini sayar //ve yığının 1. Elemanını değeri 1 olunca sayıcıya sıfırlar. //Cxxx sayıcısının değeri PV ile gösterilen değere ulaşınca //yine Cxxx şeklinde gösterilen sayıcı biti 1 yapılır.
CTUD Cxxx, PV // yığının 3. Elemanının değerinin 0`den 1`e değişimlerinde //yukarı doğru ve yığının 2. Elemanının değerinin 0`dan 1`e //değişimlerinde aşağı doğru sayar. CTU komutunda //olduğu gibi yığının 1. Elemanı1 olunca sayıcıyı sıfırlar. //Cxxx sayıcısının değeri PV ile gösterilen değere ulaşınca //yine Cxxx şeklinde gösterilen sayıcı biti 1 yapılır.
ED // mantıksal yığının bu komuttan evvelki değeri bir önceki //çevrimde 1 ve bu çevrimde 0 ise yığının ilk elemanını o //çevrim için 1 yapar.
EU // mantıksal yığının bu komuttan evvelki değeri bir önceki //çevrimde 0 ve bu çevrimde 1 ise yığının ilk elemanını o //çevrim için 1 yapar.
LD n // n`in değerini, mantıksal yığını 1 yukarı kaydırıp //1.elemanın yerini alır.
LDB<=n1, n2 // n1 <=n2 işleminin değerini, yığını yukarı kaydırıp yükle
LDB>= n1, n2 // n1 >=n2 işleminin değerini, yığını 1 yukarı kaydırıp yükle
LDB= n1, n2 // n1 = n2 işleminin değerini, yığını 1 yukarı kaydırıp yükle
LDD<= n1, n2 // n1 <=n2 işleminin değerini, yığını 1 yukarı kaydırıp //yükle
LDD>= n1, n2 // n1 >=n2 işleminin değerini, yığını 1 yukarı kaydırıp yükle
LDD= n1, n2 // n1 = n2 işleminin değerini, yığını 1 yukarı kaydırıp yükle
LDI n //giriş noktasının değeri o an (tarama süresi bitmeden) //okuyarak yığının ilk elemanına yığın ilk elemanına yığını //bir kaydırarak yükler.
LDNI n // n giriş noktasının değerini o an (tarama süresi bitmeden) //okuyup tersini alarak, yığının ilk elemanına yığını bir kaydırarak yükler.
LDW<= n1, n2 // n1<= n2 işleminin değerini, yığını 1 yukarı kaydırıp //yükle.
LDW>= n1, n2 // n1>= n2 işleminin değerini, yığını 1 yukarı kaydırıp //yükle.
LDW= n1, n2 // n1 = n2 işleminin değerini, yığını 1 yukarı kaydırıp yükle.
LPP // yığının ilk elemanını dışarı atar, dolayısıyla onun altındaki bütün elemanların sıra numaralarıda bir azalır. Dolayısıyla yığının yüksekliği bir azalır.
LPS // yığının ilk elemanını yığına bir kere daha yükleyerek //yığını bir kaydırır.
LRD // yığının 2. Elemanını 1. Elemanı üzerinde kopyalar.
MEND1,2 // çevrim sonu işareti (proğram sonu)
NOT // yığının ilk elemanının tersini alır. 1`se, 0, 0`sa 1 yapar.
O n // mantıksal yığının ilk değeri n ile VEYA işlemine tutulur //ve sonuç yığının ilk elemanına atanır.
OB<= n1, n2 // n1<=n2 işleminin sonucu (1/0), yığının ilk elemanıyla //VEYA işlemine tabi tutulur.
OB>= n1, n2 // n1>=n2 işleminin sonucu (1/0), yığının ilk elemanıyla //VEYA işlemine tabi tutulur.
OB = n1, n2 // n1=n2 işleminin sonucu (1/0), yığının ilk elemanıyla //VEYA işlemine tabi tutulur.
OD<= n1, n2 // n1<=n2 işleminin sonucu (1/0), yığının ilk elemanıyla //VEYA işlemine tabi tutulur.
OD>= n1, n2 // n1>=n2 işleminin sonucu (1/0), yığının ilk elemanıyla //VEYA işlemine tabi tutulur.
OD= n1, n2 // n1=n2 işleminin sonucu (1/0), yığının ilk elemanıyla //VEYA işlemine tabi tutulur.
OI n // yığının ilk elemanı, n değeri dışarıdan o an (tarama süresi //bitmeden) okunarak VEYA işlemine tabi tutulur.
OLD // yığının 1.(ilk) VEYA 2. Elemanını VEYA işlemine sokar //ve yığını bir kaydırarak sonucu yığının ilk elemanına atar.
ON n // n adlı değişkenin değeri (1/0), ters çevrilerek (0,1);
// yığının ilk elemanıyla VEYA işlemine sokulur.
ONI N // N adlı giriş noktasının değeri (1/0) o an (tarama süresi //bitmeden) dışarıdan okunarak ve daha sonrada ters //çevrilerek (0,1); yığının ilk elemanıyla VEYA işlemine //sokulur.
OW<= n1, n2 // n1<=n2 işleminin sonucu (0/1), yığının ilk elamanıyla //VEYA işlemine tabi tutulur.
OW>= n1, n2 // n1>=n2 işleminin sonucu (0/1), yığının ilk
// elamanıyla VEYA işlemine tabi tutulur.
OW = n1, n2 // n1=n2 işleminin sonucu (0/1), yığının ilk elamanıyla //VEYA işlemine tabi tutulur.
RET 3,1,4 // alt proğramı bitirir ve ana proğrama dönmeyi sağlar.
RET 3,2,4 // interrupt altproğramını bitirir ve ana proğrama dönmeyi //sağlar.
5.2.KOşULLU OLARAK işLETiLEN KOMUTLAR
Koşullu olarak işletilen komutlar, işletilmeden evvelki en son mantıksal işlemin sonucunun 1 veya 0 olmasına göre işletilirler, ve bir evvelki işlemin sonucu 1 ise çalışırlar. Mantıksal yığın olarak adlandırılan ve mantıksal işlemlerin sonuçlarının kaydedildiği bölgenin ilk elemanı olan, bir evvelki mantıksal işlemin sonucunun yanında, mantıksal yığının 2.ve 3. elemanıda bazı komutlarca kullanılabilir. Mesela yukarı sayıcının hangi girişle sayacağını, hangi girişle sıfırlanacağını bu komuttan evvel LD komutuyla yığına (stack) yüklemek gereklidir.
+D IN1, IN2 // IN1 ve IN2 adlı 32 bitlik tamsayıları, yığının ilk değeri 1 //ise toplar.
+I IN1, IN2 // IN1 ve IN2 adlı 16 bitlik tamsayıları, yığının ilk değeri 1 //ise toplar.
-D IN1, IN2 // IN1 ve IN2 adlı 32 bitlik tamsayıları, yığının ilk değeri 1 ise çıkarır.(IN2-IN1=IN2)
-I IN, IN2 // IN1 ve IN2 adlı 16 bitlik tamsayıları, yığının ilk değeri 1 //ise toplar.(IN2-IN1=IN2)
ANDD IN1, IN2 // yığının ilk değeri 1 ise, 32 bitlik değerler üzerinde //mantıksal VE işlemini yapar.
ANDW IN1, IN2 // yığının ilk değeri 1 ise, 16 bitlik değerler üzerinde //mantıksal VE işlemini yapar.
ATCH INT, Event // Event adı verilen interrupt yapabilen olaylar meydana //geldiğinde, yapılması gereken görevleri interrupt alt //proğramlarına bağlayarak, çözebilirsiniz. Event ile //numarası belirtilen olay meydana geldiğinde INT ile //numarası belirtilen interrupt alt proğramı çalışır.
ATH IN, OUT, LEN //yığının ilk elemanı 1 ise IN ile gösterilen ASCII //karakterini, Hexadecimal (16`lık) sisteme (OUT) çevirir. //LEN, giriş değerinin (IN), uzunluğunu gösterir.
ATT DATA, TABLE5 // yığının ilk elemanı 1 ise DATA ismiyle adlandırılan //bilgiyi Tablo ile gösterilen tabloya aktar.
BCDI IN // yığının ilk elemanı 1 ise BCD değerini tamsayıya çevirir.
BMB IN, OUT, N // IN ile gösterilen baytları OUT ile gösterilen bölgeye, blok //halinde taşır.
BMW IN, OUT, N //IN ile gösterilen 16 bitlik Wordleri OUT ile gösterilen //bölgeye, blok halinde taşır.
CALL n6,1 // proğramın işleyişini n ile gösterilen alt proğrama aktarır.
CRET 3,1,4 // yığının ilk elemanı 1 ise altproğramı sona erdirir.
CRETI 3,2,4, //yığının ilk elemanı 1 ise interrupt altproğramını sona //erdirir.
DECDI IN // IN ile gösterilen 32 bitlik tamsayının değerini 1 azaltır.
DECO IN, OUT // IN sayısının gösterdiği biti OUT üzerinde 1 yapar.
DECW IN, // IN ile gösterilen 16 bitlik tamsayının değerini 1 azaltır.
DISI1 // bütün interrupt faaliyetlerini iptal eder.
DIV IN1, IN2 // 16 bitlik sayılar üzerinde bölme IN2/ IN1= IN2 işlemi //yapar.
DTCH Event // Event numarasıyla gösterilen olayla,
// bu olay meydana geldiğinde çalıştırılan interrupt
// alt proğramının, çalışmasını iptal eder.
ENCO IN, OUT // Out baytının IN numaralı bitini 1 yapar.
END1,2 // çevrimi sona erdirir.
ENI1 // interruptların hepsini aktif duruma getirr.
FIFO Table, Data // Table ile işaret edilen bilgi tablosunun ilk karekterini //alarak Data bölgesine atar.
FILL In, Out, N // Out ile gösterilen yerden itibaren, N adet In in gösterdiği //değer atanır.
FND<SRC,PAT,INDX // Src ile gösterilen tablonun içinde Indx`ten itibaren “Pat” //değişkeninden daha küçük ilk değerin pozisyonunu bulur.
FND>SRC,PAT,INDX // Src ile gösterilen tablonun içinde Indx`ten itibaren “Pat” //değişkeninden daha büyük ilk değerin pozisyonunu bulur.
FND<>SRC,PAT,INDX // Src ile gösterilen tablonun içinde Indx`ten itibaren “Pat” //değişkeninden eşit olmayan ilk değerin pozisyonunu bulur.
FND=SRC,PAT,INDX // Src ile gösterilen tablonun içinde Indx`ten itibaren “Pat” //değişkenine eşit olan ilk değerin pozisyonunu bulur.
FOR Index, Initial, Final 5,1 // FOR ile NEXT komutu arasındaki komutları, Index değeri //Initial ilk değerinden başlayarak birer birer artarak Final //değerine çıkana kadar tekrarlar.
HDEF Hsc, Mode1 // Mode ile gösterilen operasyon şeklini Hsc hızlı sayıcısına //yükler.
HSC n // n ile numarası verilen hızlı sayıcıya ait özel hafıza //bölgesini inceleyerek, hızlı sayıcıya çalışma izni verir.
HTA In, Out, Len // In ile gösterilen Hexadecimal (16`lık sistem) sayılara //karşılık gelen ASCII karakter kodlarını Out adlı bölgeye //atar.
IBCD In // In ile gösterilen tamsayıları BCD sayılara çevirir.
INCD n // n ile gösterilen 32 bitlik tamsayının değerini 1 arttırır.
INCW n // n ile gösterilen 16 bitlik tamsayının değerini 1 arttırır.
INVD n // n ile gösterilen 32 bitlik bit – bit tersini alır.
INVW n // n ile gösterilen 16 bitlik tamsayının bit – bit tersini alır.
JMP Mxxx // Proğrmın aşışını Mxxx ile gösterilen bölgeye aktarır.
LIFO Table, Data5 // Table ile gösterilen tabloya girilen en son değeri silerek //Data`ya aktarır.
MOVB In, Out // In ile gösterilen baytın değerini Out`a kopyalar.
MOVW In,Out // In ile gösterilen 16 bitlik wordün (16 bitlik tamsayı) //değerini Out`a kopyalar.
MOVD In, Out // In ile gösterilen 32 bitlik double wordün (32 bitlik //tamsayı) değerini Out`a kopyalar.
MUL In1, In2 // 16 bitlik sayıları çaparak, sonucu In2 ye aktarır.
ORD In1, In2 // 32 bitlik değerleri bit – bit VEYA işlemine sokup/ sonucu //In2`ye aktarır.
ORW In1, In2 // 16 bitlik değerleri bit – bit VEYA işlemine sokup sonucu /In2`ye aktarır.
PLS x5 // PTO/PWM yani darbe katarı çıkışı veya darbe genişliği //modulasyonu çıkışlarıyla ilgili özel hafıza bölgesini //inceleyerek, bu çıkışları istenilen şekle ayarlayıp, //çalışmalarına izin verir.
R S-bit, n // S- bit ile gösterilen bitten itibaren n adet biti sıfır yapar.
RI S-bit, n // S- bit ile gösterilen bitten itibaren n adet biti o an (tarama //süresi bitmeden) da, sıfır yapar.
RLD In, n // In ile gösterilen 32 bitlik double wordü sola doğru //döndürür.
RLD In, n // In ile gösterilen 16 bitlik wordü sola doğru döndürür.
RRD //In, n In ile gösterilen 32 bitlik double wordü sağa doğru //döndürür.
RRW In, n // In ile gösterilen 16 bitlik wordü sağa doğru döndürür.
S S-bit, n // S- bit ile gösterilen bitten itibaren n adet biti bir yapar.
SEG In, Out // In ile gösterilen sayının 7 segment displayde göstermek //için gerekli olan çıkış kodunu Out adlı yerde saklar.
SHRB Data, S- bit,n // S- bit ile gösterilen kaydırma bölgesinin içine Data ile //gösterilen bilgiyi, n ile gösterilen miktarda ve yönde //kaydırır.
SI S-bit, n // S- bit ile gösterilen bitten itibaren n adet biti o an (tarama //süresi bitmeden) da, bir yapar.
SLD In, n // In ile gösterilen 32 bitlik double wordü sola doğru //kaydırır.
SLD In, n // In ile gösterilen 16 bitlik wordü sola doğru kaydırır.
SRD In, n // In ile gösterilen 32 bitlik double wordü sağa doğru //kaydırır.
SRW In, n // In ile gösterilen 16 bitlik wordü sağa doğru kaydırır.
STOP // proğramın çalışmasını durdurarak, PLC`nizin STOP //moduna geçmesini sağlar.
SWAP In // In ile gösterilen wordün, sol ve sağ baytlarının yerini //değiştirir.
TODR T5 // o anki saati ve günü
// T adı verilen değişkene yükler
TODW T5 // o anki saati ve günü
// T adı verilen değişkenin değerine ayarlar.
TON Txxx, PT // Txxx ile gösterilen zamanlayıcıyı çalıştırır ve zamanlayıcı //PT değerine ulaşınca, yine aynı adla gösterilen Txxx //biti “1” olur.
TONR Txxx, PT // Txxx ile gösterilen hafızalı zamanlayıcıyı çalıştırır ve //zamanlayıcı PT değerine ulaşınca, yine aynı adla gösterilen //Txxx biti “1” olur. Hafızalı zamanlayıcı, kendisinden //evvelki mantıksal yığının değeri 1`den 0`a düşsede, //içerisindeki süreyi sıfırlayamaz. Bir daha ki sefere, kaldığı //yerden devam eder.
WDR // çevrim süresi eğer çok uzarsa, yani MEND komutuna //ulaşma süresi gecikirse, PLC otomatik olarak STOP //moduna geçer, bunu önlemek için bu süreyi gerektiği //bölümlerde, WDR komutuyla sıfırlanabilir..
XMT Table, Port // Table ile gösterilen tablodan, bilgileri okuyup, seri porttan //dışarıdaki cihazlara yollar.
XORD In1, In2 // 32 bitlik double wordün bitleri üzerinde xor işlemi yapıp //sonucu In2 üzerine atar.
XORW In1, In2 // 16 bitlik wordün bitleri üzerinde xor işlemi yapıp sonucu //In2 üzerine atar.
5.3. KOMUT LiSTESiNDEKi BöLGE VE YERLERE iSiM/ ETiKET VEREN KOMUTLAR
INT n1,2,4 // Interrupt alt proğramı başlangıcını gösterir.
LBL Mxxx //Proğramın akışını, JMP komutuyla //yönlendireceğimizi gösteren etiket.
NEXT 5,7,1, // For döngüsünün sonunu gösterir.
NOP // işlem yapmayan komut, özel durumlarda kullanılır.
SBR n1,2,4 // Alt proğram başlangıcını gösterir.
5.4. KOMUTLARIN üSTüNDEKi işARETLER
X1→ bu şekilde gösterilen komutlar interrupt alt proğramlarında kullanılamazlar.
X2→ bu şekilde gösterilen komutlar alt proğramlarda kullanılamazlar.
X3→mantıksal yığını, alt proğram işleyişinden evvelki şekline getirir.
X4→ bu komutlar ana proğramı içinde kullanılamaz.
X5→ sadece S7-214`de kullanılabilir.
X6→ o anki yığını sonraki kullanım için saklayarak,Yığının ilk elemanını 1 geri kalanı 0 yapar.
X7→ yığının ilk elemanı 1 yapar.
Ekli dosyalar
Moderatör tarafında düzenlendi: