Omron Plc Programlama -8

OMRON PLC PROGRAMLAMA -8

Omron plc nasıl programlanır  ? Omron plc programlama da dikkat edilmesi gereken kurallar nedir ? Omron plc programlamanın temelleri nedir ? Bu ve benzeri sorulara cevap aradığımız Omron Plc Programlama -3 adlı yazımızla karşınızdayız.

Başlayalım.

OMRON PLC PROGRAMLAMA

Index Registers :

Plc hafıza adresini I/O hafıza içerisinde belirleyen bir pointer fonksiyonudur.

Index Registerları MOVR(560) ya da MOVRW(561) ile adres depolandıktan sonra , Index Register girişi operand olarak dolaylı adresleme yapılır ve diğer komutlarla beraber kullanılabilir.

Index Register’ın avantajı ise , timer , counter vb. dahil I/O hafızası içerisinde herhangi bir bit ya da word’ü belirleyebilir.

MOVR(560)-> |IR[](Index Register)| -> Pointer -> |I/O Hafıza Alanları|

Index Register Kullanımı :

Index Registerları for-next döngüleri gibi döngülerde kullanılabilirdir ve güçlü bir araçtır.Index Register içeriği artırılabilir , azaltılabilir ve kolayca ofsetlenebilirdir.

|Komut : IR| -> Dolaylı Adresleme -> IR0 -> IR0’ı artır ve komutu tekrarla -> |Data Tablosu|

Index Registerlar İçin Direkt Adresleme Komutları

Binary Add (+L) , Binary Subtract (-L) , Double Increment Binary (++L) , Double Decrement Binary (-L)

Örnek ;

Komut A m

Komut A m+1

Komut A m+2 vb. yazmak yerine ;

MOVR(560) m IR0

Komut A , IR0+ şeklinde kullanılabilir.

Örnek ;

LD P_Off

Out , IR0+

Buradaki işlem ; Plc adresi CIO 0.13 IR0 içinde depolandığında , Giriş koşulu kapalı (off) olduğu için , çıkış CIO 0.13 dolaylı olarak IR0’a atanır.Koşul çalışır ve IR0 1 artar.Böylece Plc hafıza adresi CIO 0.14 olur.

Örnek ;

LD P_Off

SET ,IR0+

Buradaki işlem ; Plc adresi CIO 0.13 IR0 içerisinde depolandığında , giriş koşulu off olduğu için SET komutu çalışmaz.Böylece IR0 aynı kalır.

Dikkat edilmesi gereken kurallar ;

Bir yerde yada fonksiyon bloğunda kullandığımız Index Registerlarını bir başka yerde kullanmak istediğimizde Index Registerlarını bir yere kaydetmelisiniz.Aksi durumda , hataya sebep olabilirler.

Ek olarak kullandığımız değerleri daha önceden ya da en başta kaydetmeliyiz.Yani , Index Registerlara bir değeri set etmez isek daha başta işlemler hatalı ilerleyebilirler.

Index Register Uygulama Örneği

D0-D99 dataları ile D100-D199 datalarını toplayıp ;

D0 için IR0 , D100 için IR1 ve D200 için IR2 Index Registerları kullanılacaktır.

Bu işlemi nasıl gerçekleştirebiliriz.

Kodlar :

|—-|↑a|————–|MOVR D0 IR0|——-|

|—-|↑a|————–|MOVR D100 IR1|——-|

|—-|↑a|————–|JMP &1000|——-|

|—–|FOR &100|——-|

|—-|a|———|+ ,IR0+ , IR1+ , IR2+|—|

|—————|NEXT|

|—————–|JME &1000|

Not : ‘a’ yükselen kenar tetiklendiğinde Index R set edilir.Off->On olmadan for-next döngüsü çalışmaz.

Not : JME &1000 için , Jump destination komut ‘a’ yükselen kenarı tetiklenmediğinde çalışır.

Devam edelim..

Not : Index registerlar şu komutlar ile direkt adreslenebilir ;

MOVR , MOVRW , SETR , GETR , RSRCH[] , RSORT[] , MOVL , XCGL , =L , <>L , <L , <=L , >L , >=L , CMPL , ++L , –L, +L , -L , FRMCV , TOCV

Index Registerlar Monitoring İşlemi :

Host link komutları ya da FINS komutlarını kullanarak Index Registerları izleyebiliriz ve bunları DM alanları vb. içerisinde tutarak değerlerini görebiliriz.

Örnek :

|——–|a|——|MOVR 0005 IR0|

|——-|P_On|—–|MOVL IR0 D2000| (D2000 ve D2001 adreslerinden okuyabiliriz)

Devam ..

Tasklar Arasında Index ve Data Registerlarını Paylaştırma

Normal ayarlarda; her bir task için registerlar birbirinden ayrılır.

Ayar : CX- Programmer içerisinde Proje Ağacı (Project Tree) kısmında PLC’e sağ tıklayın ve “properties”e basarak ilerleyin.Burada PLC properties dialog box görünecektir.General seçeneğinin alt tarafında bulunan “Use |R|DR independently per task” seçeneğindeki tik’i kaldırmalısınız.

Not : Yardımcı alan bayrakları ve Wordleri :

Adres: A99.14 -> 0 : Her bir task için registerları ayrı (default) , 1 : Tüm tasklar için registerları paylaştır.

Not : Index ve Data registerlarının paylaşımı , depolama ihtiyacını azaltır.

Not : Paylaşım olursa , tasklar arasındaki değişim zamanı hızlanacaktır.

Adres Ofseti Belirleme :

Belirli adres için köşeli parantez arası ofset değiştirilebilir.

Örnek :

D000[w0] -> w0 = &2 ise -> 2 eklenir ve sonuç D0.2 olacaktır.

10.00[4] -> 10.4’e eşittir.

D100[w1] -> w1 = &3 : D103’e eşittir.

Ofsetleme yalnızca -> H , W , DM ve EM alanlarında kullanılabilirdir.

Adres Ofsetleme Örneği :

D0-D99 ve D100-D199 arası D200-299.Eğer w0=30 olarak girilirse, ilgili Wordler d30-d99 ve d130-d199 ve d230-d299 olmalıdır.

|——–|↑a|—————-|MOV w0 w1|———|

|——————————|FOR &100|———-|

|——|a|————-|<  w1 &100|———–|+ D0[W1] D100[W1] D200[W1]|——|

|——-|+ +W1|—————-| (< W1 &100’ün sağ tarafına bağlıdır.)

|———————-|NEXT|——————–|

Condition (Koşul) Flags

Koşul bayrakları direk olarak sol tarafta bulunan bus bar’a bağlanamaz.

Örnek :

Doğru olan :

|———–||—————Komut A

|—–|P_EQ|—–Komut B     (Burada P_EQ ile başlayan satır komut A ile kontağın arasına bağlıdır.)

Yanlış :

|———|P_EQ|————Komut A

|———|P_EQ|————Komut B

Condition (Koşul) Bayraklarında Ana Turning On Durumları

Error Flag (P_ER) : Hata bayrağı

Equals Flag (P_EQ) : Eşittir bayrağı

Carry Flag (P_CY) : Elde bayrağı

Less than and greater than (P_LT , P_GT) : Büyüktür ya da küçüktür bayrağı

Negative Flag (P_N) : Eksi,Negatif bayrağı

Özel Program Bölümleri :

1.Subroutine : SBS , SBN ve RET , GSBS , GSBN , GRET Komutları

2.IL/ILC : IL ve ILC komutları

3.Step Ladder : Step komutları

4.FOR-NEXT : For ve Next Komutları

5.JMP0-JME0 : JMP0 ve JME0 komutları

6.Blok programlama alanı : BPRG ve BEND komutları

OMRON PLC PROGRAMLAMA -8 SONUÇ : 

Bugün Omron Plc Programlama -3 adlı yazımızı sizlerle paylaştık.Umuyorum faydalı olmuştur.Temel olarak altyapıyı oluşturmak adına uğraşıyorum.İlerleyen zamanlarda umuyorum bol uygulamalı yazılarla birlikte oluruz.

İyi Çalışmalar

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.