Tia Portal SWAP: Swap (Yer Değiştir)

Tia Portal SWAP: Swap (Yer Değiştir)

Siemens TIA Portal’da Swap (Bayt Değiştirme) komutu, bir operandın bayt sıralamasını tersine çeviren ve sonucu çıkışa yazan bir fonksiyondur. Bu komut, özellikle farklı sistemler arasında veri uyumluluğu sağlamak için kullanılır (örneğin, little-endian ↔ big-endian dönüşümü). Swap, WORD, DWORD ve LWORD veri tiplerinde çalışır ve bayt sıralamasını hızlıca değiştirir. Bu rehberde, Swap komutunun mantığını, kullanım örneklerini, avantajlarını, dikkat edilmesi gereken noktaları ve pratik ipuçlarını detaylıca ele alacağız.

1. Swap Komutu Nedir?

Swap, bir operandın bayt sıralamasını tersine çeviren bir komuttur. Örneğin, bir DWORD (32 bit) değerin baytlarını tamamen ters sırayla yeniden düzenler. Bu işlem, özellikle farklı endianness (bayt sıralaması) kullanan sistemler arasında veri alışverişi yaparken veya veri formatını uyumlu hale getirirken kullanılır.

Çalışma Mantığı: Swap, EN girişiyle tetiklenir. EN = 1 olduğunda, IN’deki operandın baytları ters çevrilir ve OUT’a yazılır. İşlem başarılıysa ENO = 1 olur; aksi halde (örneğin, EN = 0 ise) ENO = 0 döner.

  • WORD (16 bit): 2 bayt yer değiştirir. Örn: 16#1234 → 16#3412.
  • DWORD (32 bit): 4 bayt ters çevrilir. Örn: 16#12345678 → 16#78563412.
  • LWORD (64 bit): 8 bayt ters çevrilir. Örn: 16#0011223344556677 → 16#7766554433221100.

2. Swap Komutunun Mantığı ve Kullanım Alanları

Swap komutu, aşağıdaki senaryolarda kullanılır:

Kullanım AmacıAçıklama
Endianness DönüşümüFarklı bayt sıralaması kullanan sistemler arasında veri uyumluluğu sağlama.
Veri Formatı UyumluluğuVeri formatını farklı cihazlar için uygun hale getirme.
Protokol DesteğiBelirli protokollerin gerektirdiği bayt sıralamasına geçiş yapma.

Temel Parametreler:

ParametreVeri Tipi (S7-1200)Veri Tipi (S7-1500)Bellek AlanıAçıklama
ENBOOLBOOLI, Q, M, D, L veya sabitKomutu aktifleştirmek için "1" olmalı.
ENOBOOLBOOLI, Q, M, D, Lİşlem başarılıysa "1", değilse "0" döner.
INWORD, DWORDWORD, DWORD, LWORDI, Q, M, D, L, P veya sabitBaytları değiştirilecek kaynak veri (örneğin, MW10).
OUTWORD, DWORDWORD, DWORD, LWORDI, Q, M, D, L, PBaytları ters çevrilmiş sonuç (örneğin, MW20).

3. Kombine Örnek: Farklı Senaryolar

Sistem: Swap komutunun farklı kullanım alanları:

Kullanım AmacıÖrnek Senaryo
Endianness DönüşümüBig-endian bir sistemden gelen veriyi little-endian bir sistemde kullanma.
Veri Formatı UyumluluğuVeri formatını farklı cihazlar için uygun hale getirme.
Protokol DesteğiBelirli protokollerin gerektirdiği bayt sıralamasına geçiş yapma.

Açıklama: Swap, farklı sistemler arasında veri uyumluluğunu hızlıca sağlar.

4. PLC Programlama Örnekleri

Swap komutu, endianness dönüşümü, veri formatı uyumluluğu ve protokol desteği gibi senaryolarda kullanılır. İşte detaylı örnekler:

Örnek 1: WORD Tipinde Swap

Network 1: WORD Tipinde Swap
EN----[ Swap ]----ENO
      | IN: W#16#1234  |
      | OUT: MW20      |
    

Açıklama: EN = 1 olduğunda, IN (16#1234, yani 0001 0010 0011 0100) baytları ters çevrilir ve OUT’a (MW20) yazılır. Sonuç: MW20 = 16#3412 (0011 0100 0001 0010).

Örnek 2: DWORD Tipinde Swap

Network 2: DWORD Tipinde Swap
EN----[ Swap ]----ENO
      | IN: DW#16#12345678 |
      | OUT: MD40          |
    

Açıklama: EN = 1 olduğunda, IN (16#12345678, yani 0001 0010 0011 0100 0101 0110 0111 1000) baytları ters çevrilir ve OUT’a (MD40) yazılır. Sonuç: MD40 = 16#78563412 (0111 1000 0101 0110 0011 0100 0001 0010).

Örnek 3: LWORD Tipinde Swap

Network 3: LWORD Tipinde Swap
EN----[ Swap ]----ENO
      | IN: L#16#0011223344556677 |
      | OUT: MD100                |
    

Açıklama: EN = 1 olduğunda, IN (16#0011223344556677) baytları ters çevrilir ve OUT’a (MD100) yazılır. Sonuç: MD100 = 16#7766554433221100.

Örnek 4: Hata Yönetimi (EN = 0)

Network 4: Hata Yönetimi (EN = 0)
EN----[ Swap ]----ENO
      | IN: MW10  |
      | OUT: MW20 |
|----[ ENO = 0 ]----( Hata_Alarm )----|
    

Açıklama: EN = 0 olduğunda, Swap komutu çalışmaz, OUT (MW20) değişmez, ENO = 0 döner ve Hata_Alarm aktif olur.

Örnek 5: Endianness Dönüşümü (Ağ İletişimi)

Network 5: Endianness Dönüşümü (Ağ İletişimi)
EN----[ Swap ]----ENO
      | IN: MD30  |
      | OUT: MD40 |
    

Açıklama: EN = 1 olduğunda, MD30 (örneğin, 16#12345678, big-endian) baytları ters çevrilir ve MD40’a yazılır. Sonuç: MD40 = 16#78563412 (little-endian), böylece veri bir little-endian sistemde kullanılabilir.

5. Günlük Hayattan Örnekler

Swap komutunun mantığını anlamak için günlük hayattan benzetmeler:

  • Kutu Ters Çevirme: Bir kutudaki sıralı eşyaları (örneğin, 1-2-3-4) ters sırayla (4-3-2-1) dizme.
  • Kelime Ters Çevirme: Bir kelimenin harflerini ters sırayla yazma (örneğin, "ABCD" → "DCBA").
  • Kitap Sayfaları: Bir kitabın sayfalarını ters sırayla dizme (örneğin, 1-2-3-4 → 4-3-2-1).
  • Kart Destesi: Bir kart destesinin sıralamasını tersine çevirme (örneğin, As-K-Q-J → J-Q-K-As).

6. Avantajlar

  • Hızlı Dönüşüm: Bayt sıralamasını hızlıca değiştirerek zaman kazandırır.
  • Veri Uyumluluğu: Farklı endianness kullanan sistemler arasında veri alışverişini kolaylaştırır.
  • Esneklik: WORD, DWORD ve LWORD gibi farklı veri tipleriyle çalışabilir.
  • Hata Yönetimi: ENO çıkışı ile işlem başarısını kontrol ederek güvenilirlik sunar.

7. Dikkat Edilmesi Gerekenler

  • Bit Değil, Bayt Ters Çevirme: Swap, bitleri değil, yalnızca baytları tersine çevirir.
  • Veri Tipi Uyumu: IN ve OUT’un veri tipleri aynı olmalıdır (örneğin, ikisi de DWORD).
  • Geçerli Veri Tipleri: S7-1200’de sadece WORD ve DWORD, S7-1500’de ise LWORD da desteklenir.
  • Firmware Uyumu: S7-1200 için firmware >4.2, S7-1500 için firmware ≥2.1 gereklidir.

8. İpuçları

  • Veri Tipi Seçimi: Swap komutunun veri tipini (WORD, DWORD, LWORD) TIA Portal’da komut kutusundaki drop-down listesinden seçebilirsiniz. Liste, CPU’ya göre desteklenen tipleri (örneğin, S7-1200 için LWORD yoktur) otomatik olarak gösterir.
  • Endianness Kontrolü: Verinin hangi endianness’ta olduğunu (big-endian veya little-endian) önceden kontrol edin ve Swap’ı buna göre kullanın.
  • Hata Yönetimi: ENO çıkışını bir hata göstergesine bağlayarak (örneğin, Hata_Alarm) hataları izleyin.
  • Firmware Kontrolü: CPU’nuzun firmware sürümünü TIA Portal’da "Hardware Configuration" üzerinden kontrol edin; gerekirse güncelleyin.
  • Test Verileri: Swap işlemini test ederken, bilinen değerler (örneğin, 16#12345678) kullanarak sonucu doğrulayın.

9. Sonuç

Siemens TIA Portal’daki Swap komutu, endüstriyel iletişim ve veri işleme süreçlerinde bayt sıralamasını hızlıca değiştirmek için ideal bir araçtır. Doğru kullanıldığında, farklı sistemler arası veri uyumluluğunu sağlar ve veri formatı dönüşümlerini kolaylaştırır. Daha fazla bilgi için Siemens Online Destek sayfasını ziyaret edebilirsiniz.

Yorumlar