CMP ==: Equal (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 ==: Equal komutu, iki değerin eşit olup olmadığını kontrol eder ve otomasyon sistemlerinde verilerin belirli koşullara göre değerlendirilmesini sağlar. Bu makalede, CMP ==: Equal 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 ==: Equal Komutu Nedir?

CMP ==: Equal komutu, iki operandın (Operand1 ve Operand2) eşit olup olmadığını kontrol eden bir karşılaştırma talimatıdır. Eğer operandlar 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 sensör verisinin belirli bir eşik değere eşit olup olmadığını kontrol ederek bir alarmı tetikleyebilir.

Temel Karşılaştırma Komutları:

  • Eşitlik (CMP ==): İki değer birbirine eşit mi?
  • Eşit Değil (CMP <>): İki değer birbirinden farklı mı?
  • Büyüktür (CMP >): Bir değer diğerinden büyük mü?
  • Küçüktür (CMP <): Bir değer diğerinden küçük mü?
  • Büyük veya Eşit (CMP >=): Bir değer diğerine eşit veya büyük mü?
  • Küçük veya Eşit (CMP <=): Bir değer diğerine eşit veya küçük mü?
  • Aralık Kontrolü (IN_RANGE): Değer belirli bir aralıkta mı?
  • Aralık Dışı (OUT_RANGE): Değer belirli bir aralığın dışında mı?

CMP ==: Equal Komutunun Parametreleri ve Mantığı

CMP ==: Equal 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, tarih, ARRAY, STRUCT, VARIANT, ANY, PLC veri tipiI, 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)
OK/NOT_OKBoolean-Değerlerin geçerliliğini kontrol eder (isteğe bağlı)

Çalışma Mantığı:

  • Operand1 ve Operand2 değerleri karşılaştırılır.
  • Eşitse 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: 75°C
Operand2: 75°C
CMP ==:   |‾‾‾‾‾|___ (TRUE, RLO = 1)
    

Örnekler

Örnek 1: Sıcaklık İzleme ve Alarm Sistemi

Amaç: Sıcaklık 80°C’yi geçerse fanı çalıştır ve alarmı tetikle.

Giriş/Çıkışlar:

  • IW0: Sıcaklık Sensörü (Analog Giriş)
  • Q0.0: Fan
  • Q0.1: Alarm

Ladder Kodu:

Network 1:
---[IW0]----[CMP >]----(Q0.0)----
     80°C

---[IW0]----[CMP >]----(Q0.1)----
     80°C
    

Structured Text (ST) Kodu:

IF "Sicaklik" > 80 THEN
    "Fan" := TRUE;
    "Alarm" := TRUE;
END_IF;
    

Örnek Senaryolar:

IW0 (Sıcaklık)KarşılaştırmaSonuç (RLO)
85°C85 > 801 (TRUE)
80°C80 > 800 (FALSE)
75°C75 > 800 (FALSE)

Açıklama:

  • Sıcaklık (IW0) 80°C’yi geçtiğinde karşılaştırma sonucu “1” olur.
  • Bu sonuç “1” olduğunda fan (Q0.0) çalışır ve alarm (Q0.1) tetiklenir.

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

Amaç: Set sıcaklık ile gerçek sıcaklık eşitse ısıtıcıyı çalıştır.

Giriş/Çıkışlar:

  • Set_Temperature: Hedef sıcaklık (INT)
  • Actual_Temperature: Gerçek sıcaklık (INT)
  • Q0.2: Isıtıcı (Heater_On)

Ladder Kodu:

Network 1:
---[Set_Temperature]----[CMP ==]----(Q0.2)----
     Actual_Temperature
    

Örnek Senaryolar:

Set_TemperatureActual_TemperatureSonuç (RLO)
75751 (TRUE)
75700 (FALSE)
80801 (TRUE)

Açıklama:

  • Eğer Set_Temperature (ör. 75°C) ile Actual_Temperature (ör. 75°C) eşitse, Q0.2 aktif olur ve ısıtıcı çalışır.
  • Eşit değilse, ısıtıcı devre dışı kalır.

Örnek 3: String Karşılaştırması (Şifre Doğrulama)

Amaç: Kullanıcı şifresi doğruysa erişim izni ver.

Giriş/Çıkışlar:

  • Password_Input: Kullanıcı şifresi (STRING)
  • Stored_Password: Kayıtlı şifre (STRING)
  • Q0.3: Erişim İzni (Access_Granted)

Ladder Kodu:

Network 1:
---[Password_Input]----[CMP ==]----(Q0.3)----
     Stored_Password
    

Örnek Senaryolar:

Password_InputStored_PasswordSonuç (RLO)
"admin""admin"1 (TRUE)
"hello""Hello"0 (FALSE)
"1234""1234"1 (TRUE)

Açıklama:

  • Şifreler büyük-küçük harfe duyarlıdır; "hello" ve "Hello" eşit kabul edilmez.
  • Eğer şifreler eşleşirse, erişim izni (Q0.3) verilir.

TIA Portal’da CMP ==: Equal 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 ==: Equal, koşulların anında değerlendirilmesini sağlar.
  • Esneklik: Bit dizileri, tamsayılar, string, zaman ve yapı gibi farklı veri türleriyle çalışır.
  • Güvenilirlik: Kritik eşik değerlerin kontrolünde sistem güvenliğini artırır.

Dikkat Edilmesi Gerekenler

  • Veri Tipi Uyumu: IEC Check aktifse, 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 IN_RANGE kullanılması önerilir.
  • 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: NaN (geçersiz kayan noktalı sayılar), geçersiz zaman/tarih veya bozuk STRING içeren karşılaştırmalar FALSE döner.
  • ARRAY of BOOL: Eleman sayısı 8’e bölünemiyorsa dolgu bitleri sonucu etkileyebilir.
  • Inaktif Talimat Gösterimi: STRING veya VARIANT karşılaştırmalarında talimat inaktifse önceki durum gösterilebilir; ekranı yenileyin.

Uygulamalar

  • Ü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 alarm tetikleme.
  • Akışkan Kontrolü: Seviye sensörü ile vana açma/kapama.
  • Şifre Doğrulama: Kullanıcı girişlerinde string karşılaştırması.

İpuçları

  • Simülasyon: TIA Portal’da PLCSIM ile karşılaştırma sonuçlarını test edin.
  • Aralık Kontrolü: Kayan noktalı sayılar için IN_RANGE kullanın; örneğin, ±0.1 hata payı ile karşılaştırma yapın.
  • Structured Text Kullanımı: Daha karmaşık mantıklar için ST dilini tercih edin.

Sonuç

Siemens TIA Portal’da CMP ==: Equal komutu, otomasyon sistemlerinde iki değerin eşitliğini kontrol ederek dinamik ve güvenilir karar mekanizmaları oluşturur. Bit dizileri, tamsayılar, kayan noktalı sayılar, string, zaman, tarih ve yapılandırılmış 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 ==: Equal komutunun temel mantığı, kullanım senaryoları ve örnek uygulamaları ele alındı. TIA Portal’da bu komutları deneyimleyerek, otomasyon projelerinizde daha etkili çözümler geliştirebilirsiniz.

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

Yorumlar