CMP <=: Less or Equal (Küçük veya Eşit)

PLC programlamada karşılaştırma komutları, iki değeri analiz ederek sistemin karar verme mekanizmasını yönetir. Siemens TIA Portal’da, S7-1200 ve S7-1500 serisi PLC’lerde kullanılan CMP <=: Less or Equal komutu, bir değerin diğerinden küçük veya eşit olup olmadığını kontrol eder ve otomasyon sistemlerinde verilerin belirli koşullara göre değerlendirilmesini sağlar. Bu makalede, CMP <= komutunun temel mantığını, farklı veri türleriyle kullanımını, örnek senaryolarını ve dikkat edilmesi gereken noktaları detaylıca ele alacağız.

CMP <=: Less or Equal Komutu Nedir?

CMP <=: Less or Equal komutu, iki operandın (Operand1 ve Operand2) karşılaştırılmasını sağlar. Eğer Operand1, Operand2’den küçük veya eşitse, sonuç RLO (Result of Logic Operation) olarak “1” (TRUE), değilse “0” (FALSE) döner. Bu sonuç, programın diğer kısımlarında kontrol kararları için kullanılır. Örneğin, bir depodaki doluluk seviyesinin belirli bir eşik değerden küçük veya eşit olup olmadığını kontrol ederek bir uyarıyı tetikleyebilir.

CMP <= Komutunun Parametreleri ve Mantığı

CMP <= komutu, iki giriş değerini karşılaştırır ve bir çıkış sinyali üretir. Temel parametreler şunlardır:

ParametreVeri TipiBellek AlanıAçıklama
Operand1Bit dizileri, tamsayılar, kayan noktalı sayılar, string, zaman, tarihI, Q, M, D, L, P veya sabitİlk karşılaştırma değeri
Operand2Operand1 ile aynıI, Q, M, D, L, P veya sabitİkinci karşılaştırma değeri
Çıkış (RLO)Boolean-Karşılaştırma sonucu (TRUE/1 veya FALSE/0)

Çalışma Mantığı:

  • Operand1 ve Operand2 değerleri karşılaştırılır.
  • Eğer Operand1 ≤ Operand2 ise RLO “1”, değilse “0” olur.
  • RLO, seride AND, paralel bağlantıda OR mantığıyla diğer işlemlerle birleştirilir.

Örnek Karşılaştırma Diyagramı:

Operand1: 5
Operand2: 10
CMP <=:   |‾‾‾‾‾|___ (TRUE, RLO = 1)
    

Örnekler

Örnek 1: Tamsayı Karşılaştırması

Amaç: İki giriş değeri küçük veya eşitse bir çıkışı aktif et.

Giriş/Çıkışlar:

  • Tag_Value1: İlk değer (INT)
  • Tag_Value2: İkinci değer (INT)
  • Q0.0: Çıkış (TagOut)

Ladder Kodu:

Network 1:
|---[TagIn_1]----[CMP <=]----(Q0.0)---|
             |   Tag_Value1
             |   Tag_Value2
             |---[TagIn_2]----|
    

Örnek Senaryolar:

Tag_Value1Tag_Value2Sonuç (RLO)
5101 (TRUE)
10101 (TRUE)
1570 (FALSE)

Açıklama:

  • TagIn_1 ve TagIn_2 aktifse (1), Tag_Value1 ≤ Tag_Value2 ise Q0.0 aktif olur.
  • Örneğin, Tag_Value1 = 5 ve Tag_Value2 = 10 ise RLO = 1 olur.

Örnek 2: String Karşılaştırması

Amaç: Bir metin diğerinden küçük veya eşitse bir çıkışı aktif et.

Giriş/Çıkışlar:

  • String1: İlk metin (STRING)
  • String2: İkinci metin (STRING)
  • Q0.1: Çıkış (Result)

Ladder Kodu:

Network 1:
---[String1]----[CMP <=]----(Q0.1)----
     String2
    

Örnek Senaryolar:

String1String2Sonuç (RLO)Açıklama
"Apple""Banana"1 (TRUE)'A' < 'B'
"AA""aa"1 (TRUE)'A' < 'a'
"Hello""Hello"1 (TRUE)Eşit
"HelloWorld""Hello"0 (FALSE)Uzun string daha büyük

Açıklama:

  • Metinler ASCII kodlarına göre karşılaştırılır; büyük-küçük harf duyarlıdır.
  • Eğer String1 ≤ String2 ise Q0.1 aktif olur.

Örnek 3: Zaman Karşılaştırması

Amaç: Mevcut zaman planlanan zamandan eski veya eşitse bir çıkışı aktif et.

Giriş/Çıkışlar:

  • Current_Time: Mevcut zaman (TIME)
  • Start_Time: Planlanan zaman (TIME)
  • Q0.2: Çıkış (OnTime)

Ladder Kodu:

Network 1:
---[Current_Time]----[CMP <=]----(Q0.2)----
     Start_Time
    

Örnek Senaryolar:

Current_TimeStart_TimeSonuç (RLO)
DT#2024-03-21DT#2024-03-221 (TRUE)
T#100msT#100ms1 (TRUE)
S5TIME#4sS5TIME#3s0 (FALSE)

Açıklama:

  • Eğer Current_Time ≤ Start_Time ise Q0.2 aktif olur.
  • Zamanlar farklı formatlarda ise küçük format büyüğe dönüştürülür.

Örnek 4: Kayan Noktalı Sayı Karşılaştırması

Amaç: İki kayan noktalı sayı küçük veya eşitse bir çıkışı aktif et.

Giriş/Çıkışlar:

  • Value1: İlk değer (REAL)
  • Value2: İkinci değer (REAL)
  • M30.0: Çıkış (Result)

Ladder Kodu:

Network 1:
---[Value1]----[CMP <=]----(M30.0)----
     Value2
    

Örnek Senaryolar:

Value1Value2Sonuç (RLO)
3.143.151 (TRUE)
5.05.01 (TRUE)
6.016.000 (FALSE)

Açıklama:

  • Eğer Value1 ≤ Value2 ise M30.0 aktif olur.
  • Kayan noktalı sayılar hassasiyet gerektirir; küçük farklar sonucu etkileyebilir.

TIA Portal’da CMP <= Ekleme Adımları:

  1. Blok Açın: Project Tree > Program Blocks > Add New Block.
  2. Karşılaştırıcı Seçin: Ladder’da Instructions > Comparator Operations > CMP <=.
  3. Parametreleri Girin: Operand1, Operand2 ve veri tipini tanımlayın.

Avantajlar

  • Hızlı Karar Mekanizması: CMP <= komutu, koşulların anında değerlendirilmesini sağlar.
  • Esneklik: Bit dizileri, tamsayılar, string, zaman ve tarih gibi farklı veri türleriyle çalışır.
  • Güvenilirlik: Eşik değer kontrolü gerektiren durumlarda sistem güvenliğini artırır.

Dikkat Edilmesi Gerekenler

  • Veri Tipi Uyumu: Operandlar aynı veri tipinde olmalıdır; aksi halde hata oluşabilir.
  • Kayan Noktalı Sayılar: REAL/LREAL karşılaştırmalarında hassasiyet kaybı nedeniyle dikkatli olunmalıdır.
  • String Karşılaştırmaları: Büyük-küçük harfe duyarlıdır; boşluklar ve karakter sıralaması önemlidir.
  • Geçersiz Değerler: Geçersiz zaman/tarih veya başarısız dönüşümler içeren durumlarda sonuç FALSE döner.
  • Inaktif Talimat Gösterimi: STRING veya WSTRING karşılaştırmalarında talimat inaktifse önceki durum gösterilebilir; ekranı yenileyin.

Uygulamalar

  • Proses Kontrolü: Eşik değerlerin kontrolü için alarm sistemleri.
  • Zaman Yönetimi: Planlanan zaman ile mevcut zamanı karşılaştırarak süreç kontrolü.
  • Üretim Hatları: Kalite kontrol için boyut veya değer karşılaştırması.
  • Enerji Yönetimi: Tüketim sınırlarını kontrol ederek uyarı sistemleri.

İpuçları

  • Simülasyon: TIA Portal’da PLCSIM ile karşılaştırma sonuçlarını test edin.
  • Hassasiyet Kontrolü: Kayan noktalı sayılar için ±0.1 hata payı ile karşılaştırma yapmayı değerlendirin.
  • Structured Text Kullanımı: Daha karmaşık mantıklar için ST dilini tercih edin.

Sonuç

Siemens TIA Portal’da CMP <=: Less or Equal komutu, otomasyon sistemlerinde bir değerin diğerinden küçük veya eşit olup olmadığını kontrol ederek dinamik ve güvenilir karar mekanizmaları oluşturur. Tamsayılar, kayan noktalı sayılar, string, zaman ve tarih gibi farklı veri türleriyle çalışabilen bu komut, endüstriyel uygulamalarda geniş bir kullanım alanına sahiptir. Ancak, veri tipi uyumu, geçersiz değerler ve hassasiyet gerektiren durumlarda dikkatli olunmalıdır. Bu makalede, CMP <= komutunun temel mantığı, kullanım senaryoları ve örnek uygulamaları ele alındı. TIA Portal’da bu komutu deneyimleyerek, otomasyon projelerinizde daha etkili çözümler geliştirebilirsiniz.

Ek Kaynaklar: Siemens S7-1200/S7-1500 Dokümantasyonu

Yorumlar