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 <>: Not Equal komutu, iki değerin eşit 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 <>: Not Equal Komutu Nedir?
CMP <>: Not Equal komutu, iki operandın (Operand1 ve Operand2) eşit olmadığını kontrol eden bir karşılaştırma talimatıdır. Eğer operandlar eşit değilse, sonuç RLO (Result of Logic Operation) olarak “1” (TRUE), eşitse “0” (FALSE) döner. Bu sonuç, programın diğer kısımlarında kontrol kararları için kullanılır. Örneğin, bir şifrenin kayıtlı şifreden farklı olup olmadığını kontrol ederek erişimi engelleyebilir.
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:
Parametre | Veri Tipi | Bellek Alanı | Açıklama |
---|---|---|---|
Operand1 | Bit dizileri, tamsayılar, kayan noktalı sayılar, string, zaman, tarih, ARRAY, STRUCT, VARIANT, ANY, PLC veri tipi | I, Q, M, D, L, P veya sabit | İlk karşılaştırma değeri |
Operand2 | Operand1 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”, eşitse “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: "Hello" Operand2: "World" CMP <>: |‾‾‾‾‾|___ (TRUE, RLO = 1)
Örnekler
Örnek 1: String Karşılaştırması (Şifre Doğrulama)
Amaç: Kullanıcı şifresi kayıtlı şifreden farklıysa erişimi engelle.
Giriş/Çıkışlar:
- Password_Input: Kullanıcı şifresi (STRING)
- Stored_Password: Kayıtlı şifre (STRING)
- Q0.0: Erişim Reddi (Access_Denied)
Ladder Kodu:
Network 1: ---[Password_Input]----[CMP <>]----(Q0.0)---- Stored_Password
Örnek Senaryolar:
Password_Input | Stored_Password | Sonuç (RLO) |
---|---|---|
"admin" | "user" | 1 (TRUE) |
"hello" | "Hello" | 1 (TRUE) |
"1234" | "1234" | 0 (FALSE) |
Açıklama:
- Şifreler büyük-küçük harfe duyarlıdır; "hello" ve "Hello" farklı kabul edilir.
- Eğer şifreler farklıysa, erişim reddi (Q0.0) aktif olur.
Örnek 2: Zaman Karşılaştırması
Amaç: Planlanan zaman ile mevcut zaman farklıysa uyarı ver.
Giriş/Çıkışlar:
- Start_Time: Planlanan zaman (TIME)
- Current_Time: Mevcut zaman (TIME)
- Q0.1: Uyarı (Warning)
Ladder Kodu:
Network 1: ---[Start_Time]----[CMP <>]----(Q0.1)---- Current_Time
Örnek Senaryolar:
Start_Time | Current_Time | Sonuç (RLO) |
---|---|---|
T#5s | T#3s | 1 (TRUE) |
DT#2024-03-22-10:00 | DT#2024-03-22-12:00 | 1 (TRUE) |
T#500ms | T#500ms | 0 (FALSE) |
Açıklama:
- Zamanlar farklıysa (ör. 5s ≠ 3s), uyarı (Q0.1) aktif olur.
- Eşitse uyarı verilmez.
Örnek 3: Tamsayı Karşılaştırması
Amaç: İki giriş değeri farklıysa bir çıkışı aktif et.
Giriş/Çıkışlar:
- Tag_Value1: İlk değer (INT)
- Tag_Value2: İkinci değer (INT)
- Q0.2: Çıkış (TagOut)
Ladder Kodu:
Network 1: |---[TagIn_1]----[CMP <>]----(Q0.2)---| | Tag_Value1 | Tag_Value2 |---[TagIn_2]----|
Örnek Senaryolar:
Tag_Value1 | Tag_Value2 | Sonuç (RLO) |
---|---|---|
10 | 15 | 1 (TRUE) |
7 | 5 | 1 (TRUE) |
20 | 20 | 0 (FALSE) |
Açıklama:
- TagIn_1 ve TagIn_2 aktifse (1), Tag_Value1 ve Tag_Value2 farklıysa Q0.2 aktif olur.
- Örneğin, Tag_Value1 = 10 ve Tag_Value2 = 15 ise RLO = 1 olur.
TIA Portal’da CMP <> Ekleme Adımları:
- Blok Açın: Project Tree > Program Blocks > Add New Block.
- Karşılaştırıcı Seçin: Ladder’da Instructions > Comparator Operations > CMP <>.
- 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, tarih ve yapı gibi farklı veri türleriyle çalışır.
- Güvenilirlik: Farklılık kontrolü gerektiren durumlarda 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 OUT_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) içeren karşılaştırmalarda sonuç FALSE, geçersiz zaman/tarih içeren durumlarda ise TRUE 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
- Şifre Doğrulama: Kullanıcı girişlerinde string karşılaştırması yaparak erişim kontrolü.
- Zaman Kontrolü: Planlanan ve mevcut zaman farklarını izleyerek uyarı sistemleri.
- Üretim Hatları: Kalite kontrol için değer farklılıklarını tespit etme.
- Enerji Yönetimi: Tüketim değerlerinin beklenen değerlerden farklı olması durumunda alarm tetikleme.
İ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 OUT_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 <>: Not Equal komutu, otomasyon sistemlerinde iki değerin farklılığını 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 <> 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
Yorum Gönder