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:
Parametre | Veri Tipi | Bellek Alanı | Açıklama |
---|---|---|---|
Box Input | BOOL | I, Q, M, D, L | Talimatın çalışması için gerekli sinyal (1: Aktif, 0: Pasif) |
MIN | INT, DINT, REAL vb. | I, Q, M, D, L veya sabit | Aralığın alt sınırı |
VAL | MIN ile aynı | I, Q, M, D, L veya sabit | Kontrol edilecek değer |
MAX | MIN ile aynı | I, Q, M, D, L veya sabit | Aralığın üst sınırı |
Box Output | BOOL | I, Q, M, D, L | Karşı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:
Enable | Temperature | Sonuç (Box Output) |
---|---|---|
1 | 210 | 1 (TRUE) |
1 | 200 | 1 (TRUE) |
1 | 260 | 0 (FALSE) |
0 | 210 | 0 (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:
Enable | Pressure | Box Output | Alarm_Output |
---|---|---|---|
1 | 2.5 | 1 (TRUE) | 0 (FALSE) |
1 | 1.5 | 1 (TRUE) | 0 (FALSE) |
1 | 3.6 | 0 (FALSE) | 1 (TRUE) |
0 | 2.5 | 0 (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:
Start | Speed | Sonuç (Box Output) |
---|---|---|
1 | 2000 | 1 (TRUE) |
1 | 1500 | 1 (TRUE) |
1 | 3100 | 0 (FALSE) |
0 | 2000 | 0 (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:
Enable | Level | Sonuç (Box Output) |
---|---|---|
1 | 50 | 1 (TRUE) |
1 | 30 | 1 (TRUE) |
1 | 90 | 0 (FALSE) |
0 | 50 | 0 (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ı:
- Blok Açın: Project Tree > Program Blocks > Add New Block.
- Komutu Seçin: Ladder’da Instructions > Comparator Operations > IN_RANGE.
- 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
Yorum Gönder