IN_RANGE: Value Within Range (Değer Aralığın İçinde)

IN_RANGE: Value Within Range (Değer Aralığın İçinde)

PLC programlamada aralık kontrol komutları, bir değerin belirli bir aralıkta olup olmadığını kontrol ederek sistemin karar verme mekanizmasını yönetir. Siemens TIA Portal’da, S7-1200 ve S7-1500 serisi PLC’lerde kullanılan IN_RANGE: Value within Range komutu, bir değerin (VAL) belirlenen alt (MIN) ve üst (MAX) sınırlar arasında olup olmadığını kontrol eder. Bu komut, özellikle sensör ölçümlerinin kontrolü, hata tespiti, alarm sistemleri ve otomasyon süreçlerinde limit belirleme gibi endüstriyel uygulamalarda yaygın olarak kullanılır. Bu makalede, IN_RANGE komutunun temel mantığını, farklı veri türleriyle kullanımını, örnek senaryolarını ve dikkat edilmesi gereken noktaları detaylıca ele alacağız.

IN_RANGE: Value within Range Komutu Nedir?

IN_RANGE: Value within Range komutu, bir değerin belirli bir aralıkta olup olmadığını kontrol eder. Eğer kontrol edilen değer (VAL), alt sınır (MIN) ve üst sınır (MAX) arasında yer alıyorsa, sonuç Box Output olarak “1” (TRUE), değilse “0” (FALSE) döner. Ancak, bu komut yalnızca giriş sinyali (Box Input) aktif olduğunda (1) çalışır. Örneğin, bir fırının sıcaklık değerinin güvenli bir aralıkta olup olmadığını kontrol ederek bir alarmı tetikleyebilir.

IN_RANGE Komutunun Parametreleri ve Mantığı

IN_RANGE komutu, bir değerin belirli bir aralıkta olup olmadığını kontrol eder ve bir çıkış sinyali üretir. Temel parametreler şunlardır:

ParametreVeri TipiBellek AlanıAçıklama
Box InputBOOLI, Q, M, D, LTalimatın çalışması için gerekli sinyal (1: Aktif, 0: Pasif)
MININT, DINT, REAL vb.I, Q, M, D, L veya sabitAralığın alt sınırı
VALMIN ile aynıI, Q, M, D, L veya sabitKontrol edilecek değer
MAXMIN ile aynıI, Q, M, D, L veya sabitAralığın üst sınırı
Box OutputBOOLI, Q, M, D, LKarşılaştırma sonucu (TRUE/1 veya FALSE/0)

Çalışma Mantığı:

  • Box Input sinyali kontrol edilir; eğer 1 ise talimat çalışır, 0 ise çalışmaz ve Box Output 0 olur.
  • MIN, VAL ve MAX değerleri karşılaştırılır.
  • Eğer MIN ≤ VAL ≤ MAX ise Box Output “1”, değilse “0” olur.

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

Box Input: 1
MIN: 5
VAL: 7
MAX: 10
IN_RANGE:   |‾‾‾‾‾|___ (TRUE, Box Output = 1)
    

Örnekler

Örnek 1: Sıcaklık Kontrolü (Fırın Sıcaklığı)

Amaç: Bir fırının sıcaklığı belirli bir aralıkta olduğunda yeşil LED’i aktif et.

Giriş/Çıkışlar:

  • Enable: Kontrol sinyali (BOOL)
  • Min_Temp: Minimum sıcaklık (INT, 200°C)
  • Temperature: Mevcut sıcaklık (INT)
  • Max_Temp: Maksimum sıcaklık (INT, 250°C)
  • Green_LED: Yeşil LED çıkışı (Q0.0)

Ladder Kodu:

Network 1:
|---[Enable]----[IN_RANGE]----(Green_LED)---|
             |   Min_Temp: 200
             |   Temperature
             |   Max_Temp: 250
    

Örnek Senaryolar:

EnableTemperatureSonuç (Box Output)
12101 (TRUE)
12001 (TRUE)
12600 (FALSE)
02100 (FALSE)

Açıklama:

  • Enable sinyali aktifse (1) ve Temperature 200°C ile 250°C arasındaysa Green_LED aktif olur.
  • Örneğin, Temperature = 210°C ise Box Output = 1 olur.

Örnek 2: Basınç Alarmı (Tank Basıncı)

Amaç: Bir tanktaki basınç belirli bir aralığın dışına çıktığında alarm çıkışı aktif et.

Giriş/Çıkışlar:

  • Enable: Kontrol sinyali (BOOL)
  • Min_Pressure: Minimum basınç (REAL, 1.5 bar)
  • Pressure: Mevcut basınç (REAL)
  • Max_Pressure: Maksimum basınç (REAL, 3.5 bar)
  • Alarm_Output: Alarm çıkışı (Q0.1)

Ladder Kodu:

Network 1:
|---[Enable]----[IN_RANGE]----|----|----(Alarm_Output)---|
             |   Min_Pressure: 1.5    |    |
             |   Pressure            |    |---[NOT]----|
             |   Max_Pressure: 3.5   |   Box Output
    

Örnek Senaryolar:

EnablePressureBox OutputAlarm_Output
12.51 (TRUE)0 (FALSE)
11.51 (TRUE)0 (FALSE)
13.60 (FALSE)1 (TRUE)
02.50 (FALSE)1 (TRUE)

Açıklama:

  • Enable sinyali aktifse (1) ve Pressure 1.5 bar ile 3.5 bar arasında değilse Alarm_Output aktif olur.
  • Örneğin, Pressure = 3.6 bar ise Box Output = 0, dolayısıyla Alarm_Output = 1 olur.

Örnek 3: Üretim Hattı Hız Kontrolü

Amaç: Bir üretim hattının hızı belirli bir aralıkta olduğunda sistemi çalıştır.

Giriş/Çıkışlar:

  • Start: Başlatma sinyali (BOOL)
  • Min_Speed: Minimum hız (INT, 1500 RPM)
  • Speed: Mevcut hız (INT)
  • Max_Speed: Maksimum hız (INT, 3000 RPM)
  • System_Active: Sistem çalışma çıkışı (Q0.2)

Ladder Kodu:

Network 1:
|---[Start]----[IN_RANGE]----(System_Active)---|
             |   Min_Speed: 1500
             |   Speed
             |   Max_Speed: 3000
    

Örnek Senaryolar:

StartSpeedSonuç (Box Output)
120001 (TRUE)
115001 (TRUE)
131000 (FALSE)
020000 (FALSE)

Açıklama:

  • Start sinyali aktifse (1) ve Speed 1500 RPM ile 3000 RPM arasındaysa System_Active aktif olur.
  • Örneğin, Speed = 2000 RPM ise Box Output = 1 olur.

Örnek 4: Seviye Sensörü Kontrolü (Tank Seviyesi)

Amaç: Bir tankın içindeki sıvı seviyesi belirli bir aralıkta olduğunda çıkışı aktif et.

Giriş/Çıkışlar:

  • Enable: Kontrol sinyali (BOOL)
  • Min_Level: Minimum seviye (INT, %30)
  • Level: Mevcut seviye (INT)
  • Max_Level: Maksimum seviye (INT, %80)
  • Level_OK: Seviye uygun çıkışı (Q2.1)

Ladder Kodu:

Network 1:
|---[Enable]----[IN_RANGE]----(Level_OK)---|
             |   Min_Level: 30
             |   Level
             |   Max_Level: 80
    

Örnek Senaryolar:

EnableLevelSonuç (Box Output)
1501 (TRUE)
1301 (TRUE)
1900 (FALSE)
0500 (FALSE)

Açıklama:

  • Enable sinyali aktifse (1) ve Level %30 ile %80 arasındaysa Level_OK aktif olur.
  • Örneğin, Level = %50 ise Box Output = 1 olur.

TIA Portal’da IN_RANGE Ekleme Adımları:

  1. Blok Açın: Project Tree > Program Blocks > Add New Block.
  2. Komutu Seçin: Ladder’da Instructions > Comparator Operations > IN_RANGE.
  3. Parametreleri Girin: Box Input, MIN, VAL, MAX ve Box Output’u tanımlayın.

Avantajlar

  • Hızlı Aralık Kontrolü: IN_RANGE komutu, değerlerin belirli bir aralıkta olup olmadığını hızlıca kontrol eder.
  • Esneklik: INT, DINT, REAL gibi farklı veri türleriyle çalışır.
  • Güvenilirlik: Sensör verilerinin güvenli aralıklarda olduğunu doğrulayarak sistem güvenliğini artırır.
  • Mantıksal Entegrasyon: Diğer mantıksal işlemlerle (AND, OR, NOT) kolayca birleştirilebilir.

Dikkat Edilmesi Gerekenler

  • Veri Tipi Uyumu: MIN, VAL ve MAX aynı veri tipinde olmalıdır; aksi halde hata oluşabilir.
  • Box Input Durumu: Box Input 0 ise talimat çalışmaz ve Box Output her zaman 0 döner.
  • Aralık Sınırları: MIN değeri MAX değerinden küçük veya eşit olmalıdır; aksi halde sonuç her zaman FALSE olur.
  • Zaman Veri Tipleri: DATE, TIME, DTL gibi zaman veri tipleriyle doğrudan kullanılamaz.

Uygulamalar

  • Proses Kontrolü: Sıcaklık, basınç, seviye gibi değişkenlerin güvenli aralıklarda olduğunu kontrol etme.
  • Alarm Sistemleri: Değerlerin aralık dışına çıkması durumunda uyarı sistemlerini tetikleme.
  • Üretim Hatları: Hız veya diğer parametrelerin belirlenen aralıklarda kalmasını sağlama.
  • Enerji Yönetimi: Tüketim değerlerini kontrol ederek enerji verimliliğini artırma.

İpuçları

  • Simülasyon: TIA Portal’da PLCSIM ile aralık kontrol sonuçlarını test edin.
  • Hassasiyet Kontrolü: REAL veri tipleri için ±0.1 hata payı ile aralık belirlemeyi değerlendirin.
  • Structured Text Kullanımı: Daha karmaşık aralık kontrolleri için ST dilini tercih edin.

Sonuç

Siemens TIA Portal’da IN_RANGE: Value within Range komutu, otomasyon sistemlerinde bir değerin belirli bir aralıkta olup olmadığını kontrol ederek dinamik ve güvenilir karar mekanizmaları oluşturur. INT, DINT, REAL gibi farklı veri türleriyle çalışabilen bu komut, endüstriyel uygulamalarda geniş bir kullanım alanına sahiptir. Ancak, veri tipi uyumu, Box Input durumu ve aralık sınırlarına dikkat edilmelidir. Bu makalede, IN_RANGE 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