OMRON PLC PROGRAMLAMA -7
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 -2 adlı yazımızla karşınızdayız.
Başlayalım.
OMRON PLC PROGRAMLAMA
Direkt Olmayan DM/EM Adreslerini BCD Modda Belirlemek:
Adres içerikleri BCD data olarak çevrilecektir.(0000-9999 : Word adresini DM ya da EM alanı olarak ifade eder.)
BCD modda bir direkt olmayan adres tanımlamak için (*) asteriksini eklememiz gerekmektedir.
*D[][][][] -> İçerik [][][][] (0000-9999 BCD) -> D [][][][]
İçerik : #0100 ifadesi D100’ü belirtir.
Örnek : MOV #0001 *D200
Direk Olarak Register Belirleme
Index (IR) ya da data registerları (DR) direkt olarak belirlenebilir.
IR[] ([] : 0 -> 15’e) ya da DR[] ([] : 0->15’e)
Örnek : IR0 için MOV 10 IR0
Açıklaması : IR0 içerisinde CIO 0010 için plc hafıza adresini yükler.
Register Kullanarak Indirect Adres Belirleme
1.Indirect Adres(Ofset yok) : IR@ içerisindeki bit ya da word ile plc hafıza adresi belirlenmesidir.
Örnek : ,IR0 -> LD ,IR0 -> IR0 içerisindeki plc hafıza adresi ile birlikte biti yükler.
,IR1 -> MOV #0001 ,IR1 -> IR1 içerisindeki plc hafıza ile #0001 wordünü depolar.
2.Sabit Ofset : IR[]+ , IR[]- içerisindeki plc hafıza adresi ile bit ya da wordün sabit olarak belirlenmesidir.
+/- sabiti ,IR[] için belirleme işleminde sabit ofset aralığı -2048’den +2047’e kadardır.Komut çalıştırıldığında ofset binary dataya dönüştürülür.
Örnek : +5 ,IR0 -> LD+5 , IR0 (Biti , plc hafıza adresi ile IR0+5 içine yükler)
31 ,IR1 -> MOV #0001 +31,IR1 (word içerisinde #0001’i tutar ve plc hafıza adresi ile birlikte IR1 +31’de depolar)
3.DR Ofset : DR[]’nin IR[]+ içerisindeki plc hafıza adresi ile birlikte bit ve wordünün belirlenmesi
DR[] ,IR[]. DR (Data Register) içerikleri signed-binary data olarak değerlendirilir.IR[] içeriği , signed binary değeri negatifse , negatif ofset olacaktır.
DR0 ,IR0 -> LD DR0 ,IR0 (DR0 içerisindeki değeri plc hafıza adresi ve bit ile IR0+’a yükler)
DR0 ,IR1 -> MOV #0001 DR0 ,IR1 (#0001 değeri ile plc hafıza adresini DR0 içerisindeki IR1+’a yükler)
4.Auto Increment : IR[] +1,+2 olarak yükseltilebilir.
,IR0++ : LD ,IR0++ (IR0 içeriğini 2 arttırır)
,IR1+ : MOV #0001 ,IR1+ (IR1 içerisinde #0001 depolandıktan sonra IR1’i 1 arttır.)
5.Auto Decrement : IR[] -1,-2 olarak azaltılabilir.
-1 : Belirtlilir : -IR[]
-2 : Belirtilir : –IR[]
,–IR0 : LD ,–IR0 (IR0 2 azaltıldıktan sonra , IR0 plc hafızasına yüklenir.)
,-IR1 : MOV #0001 ,-IR1 (IR1’in 1 azalmasının ardından , #0001 IR1 içerisindeki hafızada depolanır.)
16-Bit Sabit :
Tüm binary data yada binary datanın sınırlı aralığı ;
Unsigned Binary : Sembol : # : Aralık : #0000 <-> #FFFF
Örnek : MOV #0100 D0 (D0’da #100 Hex ya da &256 decimal’i tutar)
Örnek : +#0009 #0001 D1 (D1’de #000A hex ya da &10 decimal’i tutar)
Signed Decimal : Sembol : +/- : Aralık : -32768 ila +32767 arasıdır.
Örnek : MOV -100 D0 (-100 desimali ya da hex (#FF9C)’yi D0’da tutar)
Örnek : + -9 -1 D1 (-10 decimali ya da hex (FFF6)’yı D1’de tutar)
Unsigned Decimal : Sembol : & : Aralık : &0 <-> &65535
Örnek : MOV &256 D0 (-256 desimal ya da hex #0100’ü D0’da tutar)
Örnek : +&9 &1 D1 (Desimal -10’u ya da #000A hex’i D1’de tutar)

Tüm BCD Datalar veya Sınırlı BCD Data Aralığı
BCD : Sembol : # : Aralık : #0000 <-> #9999
Örnek : MOV #0100 D0 (#0100’ü (BCD) D0’da tutar)
Örnek : +B #0009 #0001 D1 (+0010 (BCD) D1’de tutar)
32-Bit Sabit :
Tüm BCD Datalar veya Sınırlı BCD Data Aralığı
Unsigned Binary : # : Aralık : #00000000 <-> #FFFFFFFF
Örnek : MOVL #12345678 D0 (D0 ve D1’de hex #12345678 tutar)
[D1][D0] -> D1(1234) + D0(5678)
Signed Binary : + : Aralık : -21474836486 <-> +2147483647
Örnek : MOVL -12345678 D0
D0’da ve D1’de -12345678 decimalini tutar.
Unsigned Decimal : & : Aralık : &0 <-> &4294967295
MOVL &12345678 D0 (D0 ve D1’de &12345678’i tutar)
Tüm BCD Data ya da Sınırlı BCD Data Aralığı
BCD: # : Aralık : #00000000 <-> #99999999
MOVL #12345678 D0 (D0 ve D1’de #12345678 (BCD) depolar)
Text String Data Formatları
[A][B] [41][42]
[C][D] = [43][44] = ABCDE
[E][NULL] [45][00]
MOV$ D100 D200
Not : ASCII karakter tablosu kullanılır.
Immediate Refresh
2 yolu vardır.
1) Refresh Varyasyonu (!) ile komutlar :
‘!’ kullanılarak komut çalıştırıldığında kullanılır.
2)Immediate refresh için özel komutlar :
IORF(097) komutu : Basit I/O birimleri ve özel I/O birimlerinde (yalnızca word yerleşimli CIO alanlarında)
FIORF(225) komutu : Özel I/O birimlerinde
DLNK (226) komutu : CPU Bus birimlerinde
Örnek : IORF D1 D2 (ör. IORF d1.10 d2.16 olsun) : Burada D1: başlangıç wordü , d2: bitiş word’ü.7 adet data yenilenir.
Örnek : FIORF N (FIORF &20 ) Burada N Özel I/O birim numarasıdır.
Örnek : DLNK N (DLNK #1) Burada N CPU Bus unit birim numarasıdır.
OMRON PLC PROGRAMLAMA -2 SONUÇ :
Bugün Omron Plc Programlama -2 adlı yazımı sizlerle paylaştık.Umuyorum faydalı olmaktadır.Geribeslemelerinizi almak ve eleştirilerinizi duymak isterim.
İyi Çalışmalar