Conversion Operations (Dönüştürme Komutları)

TIA Portal, Siemens’in S7-1200 ve S7-1500 serisi PLC’ler için kullandığı güçlü bir programlama ortamıdır. Ladder (merdiven) programlama dilinde veri dönüştürme komutları, sensör verilerini işlemek, farklı veri tipleri arasında geçiş yapmak ve ölçüm değerlerini uygun birimlere dönüştürmek için kritik öneme sahiptir. Bu makalede, CONVERT, ROUND, CEIL, FLOOR, TRUNC, SCALE_X ve NORM_X komutlarını detaylı bir şekilde ele alacak, her birinin işlevini açıklayacak ve bol örnekle nasıl kullanıldığını göstereceğiz.

1. Giriş

TIA Portal, endüstriyel otomasyon projelerinde PLC programlamayı kolaylaştıran bir platformdur. S7-1200 ve S7-1500 serisi PLC’ler, kompakt tasarımları ve yüksek performanslarıyla birçok uygulamada tercih edilir. Ladder programlama dili, özellikle elektriksel şemalara aşina olan mühendisler için sezgisel bir seçenektir. Veri dönüştürme komutları, ham verilerin işlenmesini, farklı formatlara çevrilmesini ve kontrol algoritmalarında kullanılmasını sağlar. Bu makalede, her komutun teknik detaylarını ve pratik uygulamalarını inceleyeceğiz.

2. CONVERT Komutu

İşlev ve Kullanım

CONVERT komutu, bir verinin türünü başka bir veri tipine dönüştürmek için kullanılır. Örneğin, bir sensörden gelen REAL (kayan noktalı sayı) değerini INT (tam sayı) veya DINT (çift kelime tam sayı) formatına çevirebilir. Bu işlem, veri tipleri arasında uyumluluk sağlamak ve doğru matematiksel işlemler yapmak için gereklidir.

Teknik Detaylar

  • Giriş (IN): Dönüştürülecek veri (örn. SInt, Int, Real, LReal, BCD16, BCD32).
  • Çıkış (OUT): Dönüştürülen veri (örn. SInt, Int, DInt, Real, LReal).
  • Sinyaller: EN (komutu etkinleştirir), ENO (sonraki komutları etkinleştirir).

Örnek Kullanım

Senaryo: Bir sıcaklık sensöründen gelen REAL tipindeki 23.45 değerini INT tipine dönüştürmek.

[Sicaklik_Degeri (REAL) = 23.45] ---[CONVERT: REAL_to_INT]---> [Sicaklik_INT (INT) = 23]
    

Açıklama: Sensörden gelen kayan noktalı sayı, CONVERT bloğu ile tam sayıya çevrilir. Bu, örneğin bir sayaç veya karşılaştırma işleminde kullanılabilir.

Ek Örnek: Bir DWORD değerini REAL’e dönüştürmek.

[DWORD_Degeri (DWORD) = 123456] ---[CONVERT: DWORD_to_REAL]---> [REAL_Degeri (REAL) = 123456.0]
    

Açıklama: DWORD formatındaki veri, REAL formatına çevrilerek daha hassas hesaplamalarda kullanılabilir.

3. ROUND Komutu

İşlev ve Kullanım

ROUND komutu, bir kayan noktalı sayıyı en yakın tam sayıya yuvarlar. Eğer ondalık kısım 0.5 veya daha büyükse yukarı, değilse aşağı yuvarlar. Bu komut, ölçüm verilerindeki küçük ondalık farkları sadeleştirmek için idealdir.

Teknik Detaylar

  • Giriş (IN): Real, LReal.
  • Çıkış (OUT): SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal.
  • Yuvarlama Kuralı: 0.5 ve üzeri yukarı, altında aşağı yuvarlar.

Örnek Kullanım

Senaryo: 25.6 değerini en yakın tam sayıya yuvarlamak.

[Deger (REAL) = 25.6] ---[ROUND]---> [Yuvarlanmis_Deger (INT) = 26]
    

Açıklama: 25.6, ROUND komutu ile 26’ya yuvarlanır. Bu, örneğin bir HMI ekranında gösterilecek değerlerde kullanılabilir.

Ek Örnek: Negatif bir sayıyı yuvarlama.

[Negatif_Deger (REAL) = -15.4] ---[ROUND]---> [Yuvarlanmis_Negatif (INT) = -15]
    

Açıklama: -15.4, en yakın tam sayı olan -15’e yuvarlanır.

4. CEIL Komutu

İşlev ve Kullanım

CEIL komutu, bir kayan noktalı sayıyı kendisinden büyük en küçük tam sayıya yuvarlar (tavan fonksiyonu). Sayı tam sayı değilse her zaman bir üst tam sayıya çıkar.

Teknik Detaylar

  • Giriş (IN): Real, LReal.
  • Çıkış (OUT): SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal.
  • Davranış: Her zaman yukarı yuvarlar.

Örnek Kullanım

Senaryo: 18.1 değerini tavan fonksiyonu ile yuvarlamak.

[Deger (REAL) = 18.1] ---[CEIL]---> [Tavan_Deger (INT) = 19]
    

Açıklama: 18.1, CEIL ile 19’a yuvarlanır. Bu, örneğin bir üretim hattında tolerans hesaplamalarında kullanılabilir.

Ek Örnek: Küçük bir ondalık sayı.

[Kucuk_Deger (REAL) = 0.01] ---[CEIL]---> [Tavan_Kucuk (INT) = 1]
    

Açıklama: 0.01, bir üst tam sayı olan 1’e yuvarlanır.

5. FLOOR Komutu

İşlev ve Kullanım

FLOOR komutu, bir kayan noktalı sayıyı kendisinden küçük en büyük tam sayıya yuvarlar (taban fonksiyonu). Her zaman aşağı yuvarlar.

Teknik Detaylar

  • Giriş (IN): Real, LReal.
  • Çıkış (OUT): SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal.
  • Davranış: Her zaman aşağı yuvarlar.

Örnek Kullanım

Senaryo: 30.9 değerini taban fonksiyonu ile yuvarlamak.

[Deger (REAL) = 30.9] ---[FLOOR]---> [Taban_Deger (INT) = 30]
    

Açıklama: 30.9, FLOOR ile 30’a yuvarlanır. Bu, sistem stabilitesi için negatif hataları önlemede faydalıdır.

Ek Örnek: Negatif sayı yuvarlama.

[Negatif_Deger (REAL) = -7.1] ---[FLOOR]---> [Taban_Negatif (INT) = -8]
    

Açıklama: -7.1, bir alt tam sayı olan -8’e yuvarlanır.

6. TRUNC Komutu

İşlev ve Kullanım

TRUNC komutu, bir kayan noktalı sayının ondalık kısmını keserek tam sayı kısmını alır. Pozitif sayılar için FLOOR ile aynıdır, ancak negatif sayılar için sıfıra doğru yuvarlar (örneğin, -3.9 → -3).

Teknik Detaylar

  • Giriş (IN): Real, LReal.
  • Çıkış (OUT): SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal.
  • Davranış: Ondalık kısmı sıfıra doğru keser.

Örnek Kullanım

Senaryo: 45.7 değerini kesmek.

[Deger (REAL) = 45.7] ---[TRUNC]---> [Kesilmis_Deger (INT) = 45]
    

Açıklama: 45.7, TRUNC ile 45’e kesilir. Bu, ondalık bilgiye ihtiyaç duyulmayan durumlarda kullanılır.

Ek Örnek: Negatif sayı kesme.

[Negatif_Deger (REAL) = -12.89] ---[TRUNC]---> [Kesilmis_Negatif (INT) = -12]
    

Açıklama: -12.89, sıfıra doğru kesilerek -12 olur.

7. NORM_X Komutu

İşlev ve Kullanım

NORM_X komutu, bir giriş değerini belirli bir aralıktan 0.0 ile 1.0 arasına normalize eder. Bu, farklı ölçeklerdeki verilerin standart bir formatta karşılaştırılmasını sağlar.

Teknik Detaylar

  • Parametreler: MIN (minimum giriş), MAX (maksimum giriş), VALUE (giriş değeri), OUT (normalize edilmiş çıkış).
  • Formül: OUT = (VALUE - MIN) / (MAX - MIN).

Örnek Kullanım

Senaryo: 0-27648 aralığındaki 13824 değerini 0.0-1.0 aralığına normalize etmek.

[Ham_Deger (INT) = 13824] ---[NORM_X: MIN=0, MAX=27648, OUT_Min=0.0, OUT_Max=1.0]---> [Normalize_Deger (REAL) = 0.5]
    

Açıklama: 13824, normalize edilerek 0.5’e çevrilir. Bu, kontrol algoritmalarında tutarlılık sağlar.

Ek Örnek: Daha küçük bir aralık.

[Kucuk_Deger (INT) = 512] ---[NORM_X: MIN=0, MAX=1024, OUT_Min=0.0, OUT_Max=1.0]---> [Normalize_Kucuk (REAL) = 0.5]
    

Açıklama: 512, 0-1024 aralığında 0.5’e normalize edilir.

8. SCALE_X Komutu

İşlev ve Kullanım

SCALE_X komutu, normalize edilmiş bir değeri istenen bir mühendislik birimine veya aralığa ölçeklendirir. Genellikle NORM_X ile birlikte kullanılır.

Teknik Detaylar

  • Parametreler: MIN (çıkış minimum), MAX (çıkış maksimum), VALUE (giriş değeri), OUT (ölçeklenmiş çıkış).
  • Formül: OUT = (VALUE × (MAX - MIN)) + MIN.

Örnek Kullanım

Senaryo: 0.5 normalize değerini 0-100 bar aralığına ölçeklendirmek.

[Normalize_Deger (REAL) = 0.5] ---[SCALE_X: MIN=0.0, MAX=100.0, VALUE=0.5]---> [Olceklendirilmis_Deger (REAL) = 50.0]
    

Açıklama: 0.5, 0-100 bar aralığında 50.0’a ölçeklendirilir.

Ek Örnek: Sıcaklık ölçeklendirme.

[Normalize_Sicaklik (REAL) = 0.75] ---[SCALE_X: MIN=0.0, MAX=200.0, VALUE=0.75]---> [Sicaklik_Degeri (REAL) = 150.0]
    

Açıklama: 0.75, 0-200°C aralığında 150.0°C’ye ölçeklendirilir.

9. NORM_X ve SCALE_X Birlikte Kullanımı

Analog sinyallerin işlenmesi için NORM_X ve SCALE_X genellikle birlikte kullanılır.

Senaryo

Ham analog değer 20736 (0-27648 aralığında), mühendislik birimi 0-200°C.

Adımlar:

  1. NORM_X ile Normalizasyon:
    [Ham_Deger (INT) = 20736] ---[NORM_X: MIN=0, MAX=27648, OUT_Min=0.0, OUT_Max=1.0]---> [Normalize_Deger (REAL) = 0.75]
                

    Hesaplama: 20736 / 27648 = 0.75

  2. SCALE_X ile Ölçeklendirme:
    [Normalize_Deger (REAL) = 0.75] ---[SCALE_X: MIN=0.0, MAX=200.0, VALUE=0.75]---> [Sicaklik_Degeri (REAL) = 150.0]
                

    Hesaplama: 0.75 × 200 = 150.0°C

Açıklama: Bu işlem, ham analog sinyali gerçek dünya birimlerine dönüştürür.

10. Uygulamalı Örnek Senaryo

Bir üretim hattında bir basınç sensöründen gelen analog sinyal (0-27648) PLC’ye aktarılıyor. Bu veriyi işlemek için:

  1. CONVERT: Ham değeri INT’den REAL’e dönüştür.
    [Ham_Basinç (INT) = 13824] ---[CONVERT: INT_to_REAL]---> [Ham_Basinç_REAL (REAL) = 13824.0]
                
  2. NORM_X: Değeri 0.0-1.0 aralığına normalize et.
    [Ham_Basinç_REAL (REAL) = 13824.0] ---[NORM_X: MIN=0.0, MAX=27648.0]---> [Normalize_Basinç (REAL) = 0.5]
                
  3. SCALE_X: Normalize değeri 0-100 bar aralığına ölçeklendir.
    [Normalize_Basinç (REAL) = 0.5] ---[SCALE_X: MIN=0.0, MAX=100.0]---> [Basinç_Degeri (REAL) = 50.0]
                
  4. ROUND: Gösterim için yuvarla.
    [Basinç_Degeri (REAL) = 50.0] ---[ROUND]---> [Yuvarlanmis_Basinç (INT) = 50]
                

Açıklama: Bu zincirleme işlem, sensör verisini doğru ve anlamlı bir şekilde işler.

11. Komutların Karşılaştırmalı Tablosu

KomutİşlevGiriş TipleriÇıkış TipleriÖrnek Kullanım
CONVERTVeri tipi dönüşümüSInt, Int, RealSInt, Int, DIntREAL → INT
ROUNDEn yakın tam sayıya yuvarlamaReal, LRealInt, DInt, Real3.6 → 4
CEILBir üst tam sayıya yuvarlamaReal, LRealInt, DInt, Real3.1 → 4
FLOORBir alt tam sayıya yuvarlamaReal, LRealInt, DInt, Real3.9 → 3
TRUNCOndalık kısmı kesme (sıfıra doğru)Real, LRealInt, DInt, Real-3.9 → -3
NORM_X0.0-1.0 aralığına normalizasyonInt, RealReal13824 (0-27648) → 0.5
SCALE_XBelirli bir aralığa ölçeklendirmeRealReal0.5 → 50.0 (0-100)

12. Sonuç

TIA Portal’da Ladder programlama dilinde kullanılan dönüştürme komutları, veri işleme süreçlerini optimize etmek ve kontrol sistemlerinin güvenilirliğini artırmak için vazgeçilmezdir. CONVERT, veri tipleri arasında geçiş yaparken; ROUND, CEIL, FLOOR ve TRUNC, sayısal değerlerin farklı yuvarlama ihtiyaçlarını karşılar. NORM_X ve SCALE_X, analog sinyallerin mühendislik birimlerine dönüştürülmesinde kritik rol oynar.

Bu komutların doğru kullanımı, sensör verilerinin hassas bir şekilde işlenmesini, kontrol algoritmalarının verimli çalışmasını ve sistem performansının artırılmasını sağlar. Yukarıdaki örnekler, her komutun pratik uygulamasını göstererek, TIA Portal kullanıcılarının bu araçları kendi projelerinde etkili bir şekilde kullanmasına yardımcı olmayı amaçlamaktadır.

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

Yorumlar