Siemens TIA Portal: Move Function (Aktarma Fonksiyonları)

Siemens TIA Portal: Move Function (Aktarma Fonksiyonları)

Siemens TIA (Totally Integrated Automation) Portal’da aktarma fonksiyonları (Move Instructions), PLC programlamada verileri bir bellek alanından başka bir alana kopyalamak, dönüştürmek veya yeniden konumlandırmak için kullanılan temel komutlardır. MOVE, MOVE_BLK, UMOVE_BLK ve S_MOVE gibi fonksiyonlar, veri transferi, veri tipi dönüşümü ve yapısal veri işleme gibi birçok senaryoda kritik bir rol oynar. Bu rehberde, aktarma fonksiyonlarının mantığını, kullanım örneklerini, avantajlarını, dikkat edilmesi gereken noktaları ve pratik ipuçlarını detaylıca ele alacağız.

Aktarma Fonksiyonları Nedir?

Aktarma fonksiyonları, TIA Portal’da bir değişkenin veya veri bloğunun içeriğini başka bir değişkene ya da bellek alanına aktarmak için kullanılan komutlardır. Başlıca aktarma fonksiyonları şunlardır:

  • MOVE: Tek bir değeri (örneğin, INT, REAL) bir değişkenden diğerine kopyalar.
  • MOVE_BLK: Veri bloklarını (ARRAY, STRUCT) bir kaynaktan hedefe toplu olarak aktarır.
  • UMOVE_BLK: Kesintisiz veri bloğu aktarımı sağlar; kesintiye uğramadan büyük veri transferi için idealdir.
  • S_MOVE: STRING veya WSTRING veri tiplerini taşır; metin tabanlı veriler için kullanılır.

Bu fonksiyonlar, bir kopyalama makinesi gibi çalışır: Kaynak veriyi (IN) alır ve hedef alana (OUT) aktarır. Örneğin, bir sensörden gelen sıcaklık değerini bir değişkene kopyalayarak işlem yapabilirsiniz.

Aktarma Fonksiyonlarının Mantığı ve Kullanım Alanları

Aktarma fonksiyonları, PLC programlamada veri akışını düzenlemek için kullanılır. Başlıca kullanım amaçları:

Kullanım AmacıAçıklamaÖrnek Komut
Veri TransferiSensör verilerini belleğe veya çıkışlara aktarma.MOVE IW64, MW20
Veri Tipi DönüşümüFarklı veri tipleri arasında dönüşüm (örneğin, DINT → REAL).MOVE MD100, MD200
Başlangıç Değeri AtamaPLC açılışında varsayılan değerleri yükleme.MOVE DB1.Değer, MW40
Yapısal Veri İşlemeARRAY veya STRUCT gibi veri bloklarını kopyalama.MOVE_BLK DB1.Array, DB2.Array
Metin Verisi İşlemeSTRING veya WSTRING verilerini aktarma.S_MOVE DB1.String, DB2.String

Çalışma Mantığı: Aktarma fonksiyonları genellikle bir EN (Enable) girişiyle çalışır. EN = 1 olduğunda, IN’deki veri OUT’a kopyalanır ve ENO (Enable Out) çıkışı 1 olur. Eğer veri tipleri uyumsuzsa veya başka bir hata oluşursa (örneğin, bellek erişim hatası), ENO = 0 olur. ENO, hata durumlarını izlemek için kullanılabilir; örneğin, bir hata çıkışı tetiklemek için.

Kombine Örnek: Farklı Senaryolar

Sistem: Aktarma fonksiyonlarının farklı kullanım alanları:

Kullanım AmacıÖrnek KomutSenaryo
Veri TransferiMOVE IW64, MW20Sensör verisini belleğe aktarma
Veri Tipi DönüşümüMOVE MD100, MD200DINT → REAL dönüşümü (örneğin, PID kontrol için)
Başlangıç Değeri AtamaMOVE DB1.Değer, MW40PLC açılışında varsayılan hız atama
Yapısal Veri İşlemeMOVE_BLK DB1.Array, DB2.ArrayReçete verilerini kopyalama
Metin Verisi İşlemeS_MOVE DB1.String, DB2.StringOperatör paneline mesaj aktarma

Açıklama: Her bir senaryo, farklı bir veri işleme ihtiyacını karşılar. Örneğin, DINT → REAL dönüşümü, PID kontrolörleri için sıkça kullanılırken, S_MOVE operatör panellerinde mesaj gösterimi için idealdir.

PLC Programlama Örnekleri

Aktarma fonksiyonları, sensör verisi işleme, hız kontrolü, reçete yönetimi ve veri loglama gibi senaryolarda kullanılır. İşte detaylı örnekler:

Örnek 1: Sensör Verisinin Kullanılması

Network 1: Sensör Verisinin Kullanılması
EN----[ MOVE ]----ENO
      | IN: Temp_Sensor_Value  |
      | OUT: Temp_Stored       |
|----[ Temp_Stored > 50 ]----( Alarm_ON )----|
        

Açıklama: EN = 1 olduğunda, Temp_Sensor_Value (örneğin, 60) Temp_Stored’a kopyalanır. Temp_Stored 50’den büyükse Alarm_ON = 1 olur. ENO çıkışı, işlemin başarılı olup olmadığını kontrol etmek için kullanılabilir.

Örnek 2: Sayısal Girişten Çıkışa Veri Aktarımı

Network 2: Sayısal Girişten Çıkışa Veri Aktarımı
EN----[ MOVE ]----ENO
      | IN: 100        |
      | OUT: Motor_Hiz |
EN----[ MOVE ]----ENO
      | IN: 0          |
      | OUT: Motor_Hiz |
        

Açıklama: EN = 1 olduğunda Motor_Hiz 100’e ayarlanır, EN = 0 olduğunda Motor_Hiz sıfırlanır. Bu, bir motorun hızını kontrol etmek için kullanılabilir.

Örnek 3: Veri Formatlarının Uyarlanması

Network 3: Veri Formatlarının Uyarlanması
EN----[ MOVE ]----ENO
      | IN: AI_Value          |
      | OUT: Real_Temperature |
        

Açıklama: EN = 1 olduğunda, AI_Value (WORD, örneğin, 16#3F80) Real_Temperature (REAL, örneğin, 1.0) değişkenine kopyalanır. IEC Check kapalıysa dönüşüm yapılır; açıkken ENO = 0 olur ve işlem başarısız olur.

Örnek 4: Yapısal Veri İşleme (MOVE_BLK)

Network 4: Yapısal Veri İşleme (MOVE_BLK)
EN----[ MOVE_BLK ]----ENO
      | IN: DB1.ArrayVerisi  |
      | OUT: DB2.ArrayKopya  |
      | COUNT: 10            |
        

Açıklama: EN = 1 olduğunda, DB1.ArrayVerisi’deki 10 eleman DB2.ArrayKopya’ya kopyalanır. COUNT, kopyalanacak eleman sayısını belirler; eğer COUNT ARRAY boyutunu aşarsa hata oluşur.

Örnek 5: Metin Verisi İşleme (S_MOVE)

Network 5: Metin Verisi İşleme (S_MOVE)
EN----[ S_MOVE ]----ENO
      | IN: DB1.Message         |
      | OUT: DB2.DisplayMessage |
        

Açıklama: EN = 1 olduğunda, DB1.Message (örneğin, "Hata 01") DB2.DisplayMessage’a kopyalanır ve operatör panelinde gösterilir.

Örnek 6: Kesintisiz Veri Aktarımı (UMOVE_BLK)

Network 6: Kesintisiz Veri Aktarımı (UMOVE_BLK)
EN----[ UMOVE_BLK ]----ENO
      | IN: DB3.DataBlock    |
      | OUT: DB4.DataCopy    |
      | COUNT: 50            |
        

Açıklama: EN = 1 olduğunda, DB3.DataBlock’taki 50 eleman kesintisiz olarak DB4.DataCopy’ye kopyalanır. UMOVE_BLK, büyük veri transferlerinde kesintiyi önler.

Örnek 7: Hata Yönetimi

Network 7: Hata Yönetimi
EN----[ MOVE ]----ENO
      | IN: AI_Value            |
      | OUT: Real_Temperature   |
|----[ ENO = 0 ]----( Q0.0 )----|
        

Açıklama: EN = 1 olduğunda, AI_Value Real_Temperature’a kopyalanır. Eğer işlem başarısız olursa (örneğin, veri tipi uyumsuzluğu nedeniyle), ENO = 0 olur ve Q0.0 (hata çıkışı) aktif olur.

Günlük Hayattan Örnekler

Aktarma fonksiyonlarının mantığını anlamak için günlük hayattan benzetmeler:

  • Fotokopi Makinesi: Bir belgeyi (IN) kopyalayıp başka bir kağıda (OUT) aktarma.
  • USB Transferi: Bir dosyayı USB’den bilgisayara (OUT) kopyalama.
  • Not Taşıma: Bir defterdeki notu (IN) başka bir deftere (OUT) yazma.
  • Su Aktarımı: Bir kaptaki suyu (IN) başka bir kaba (OUT) dökme.

Avantajlar

  • Hızlı ve Basit: Tek komutla veri aktarımı yaparak karmaşık kod yazımını önler.
  • Esneklik: Farklı veri tipleri (INT, REAL, STRING) ve bellek alanları (I, Q, M, DB) arasında çalışabilir.
  • Hata Yönetimi: ENO çıkışı ile işlem başarısını anlık kontrol sağlar; hata durumlarında hızlı müdahale imkanı sunar.
  • Performans: Büyük veri bloklarını (MOVE_BLK, UMOVE_BLK) hızlıca aktararak sistem performansını artırır.

Dikkat Edilmesi Gerekenler

  • Veri Kaybı: Küçük veri tipinden büyüğe dönüşümde (örneğin, BYTE → SINT), 127’den büyük değerler negatife dönebilir (örneğin, 255 → -1).
  • Veri Tipi Uyumu: IEC Check açıkken uyumsuz tipler (örneğin, DINT → REAL) ENO = 0 ile sonuçlanır; kapalıyken dönüşüm yapılır.
  • Bellek Çakışmaları: Aynı bellek alanına birden fazla aktarma yapılırsa (örneğin, MW20’ye eşzamanlı yazma), veri bozulabilir.
  • COUNT Sınırı (MOVE_BLK): COUNT, ARRAY boyutunu aşarsa hata oluşur; boyut kontrolü yapılmalıdır.

İpuçları

  • Simülasyon: PLCSIM ile aktarma işlemlerini test ederek veri kaybı veya hata durumlarını önceden tespit edin.
  • Etiketleme: Operandlara anlamlı isimler verin (örneğin, "Sensor_Temp" yerine "IW64").
  • Hata Yönetimi: ENO çıkışını bir hata göstergesine bağlayarak (örneğin, Q0.0), hata durumlarını izleyin.
  • Veri Tipi Kontrolü: Dönüşüm yapmadan önce veri tiplerini kontrol edin; gerekirse ara değişkenler kullanın.
  • COUNT Kontrolü (MOVE_BLK): COUNT değerini belirlemeden önce ARRAY boyutunu kontrol edin; sınır aşımını önlemek için bir karşılaştırma yapın.

Sonuç

Siemens TIA Portal’daki aktarma fonksiyonları, PLC programlamada veri akışını yönetmek için vazgeçilmez araçlardır. Sensör verilerini işlemek, reçete değerlerini aktarmak, veri loglama yapmak veya veri tipi dönüşümleri gerçekleştirmek gibi senaryolarda sıkça kullanılırlar. Basit yapıları, yüksek verimlilikleri ve esneklikleri ile otomasyon projelerinde temel bir rol oynarlar. Daha fazla bilgi için Siemens Online Destek sayfasını ziyaret edebilirsiniz.

Yorumlar