TIA Portal: Array Veri Blok İşlemleri

TIA Portal: Array Veri Blok İşlemleri

Siemens TIA Portal’da ReadFromArrayDB, WriteToArrayDB, ReadFromArrayDBL ve WriteToArrayDBL komutları, Array veri bloklarıyla çalışmak için kullanılan güçlü araçlardır. Bu komutlar, çalışma belleği (RAM) veya yükleme belleği (ROM) üzerinde veri okuma ve yazma işlemlerini gerçekleştirir. Bu rehberde, Siemens TIA Portal’da Array veri blok komutlarının mantığını, kullanım örneklerini, avantajlarını, dikkat edilmesi gereken noktaları ve pratik ipuçlarını detaylıca ele alacağız.

1. Siemens TIA Portal’da Array Veri Blok Komutları Nedir?

Siemens TIA Portal’da Array veri blok komutları, çalışma ve yükleme belleğindeki veri bloklarıyla çalışmak için kullanılır.

  • Kullanım: ReadFromArrayDB ve WriteToArrayDB, çalışma belleğinde veri okuma/yazma yapar; ReadFromArrayDBL ve WriteToArrayDBL, yükleme belleğinde asenkron işlem gerçekleştirir.
  • Örnek: Array veri blokları, yalnızca bir Array of yapısından oluşur ve indeksleme 0’dan başlar.
  • Fayda: Veri loglama, kalıcı ayarlar ve veri geri yükleme için esneklik sağlar.

2. Array Veri Blok Komutlarının Mantığı ve Kullanım Alanları

Bu komutlar, farklı bellek türlerinde veri yönetimi için kullanılır.

  • Kullanım: Veri loglama, kalıcı ayarlar ve veri geri yükleme.
  • Örnek: WriteToArrayDB ile çalışma belleğine veri yazma, ReadFromArrayDBL ile yükleme belleğinden veri okuma.
  • Fayda: Farklı bellek türlerinde esnek veri yönetimi sağlar.
Kullanım AmacıAçıklama
Veri LoglamaÇalışma belleğine sürekli veri yazma (WriteToArrayDB).
Kalıcı AyarlarYükleme belleğinde yapılandırma verilerini saklama (WriteToArrayDBL).
Veri Geri YüklemeKalıcı verileri yükleme belleğinden okuma (ReadFromArrayDBL).

Temel Parametreler:

KomutParametreVeri TipiBellek AlanıAçıklama
ReadFromArrayDB
WriteToArrayDB
ENBOOLI, Q, M, D, L veya sabitKomutu aktifleştirmek için "1" olmalı.
ENOBOOLI, Q, M, D, Lİşlem başarılıysa "1", değilse "0" döner.
DBDB_ANYI, Q, M, D, LOkunacak/yazılacak Array DB.
INDEXDINTI, Q, M, D, L, P veya sabitOkunacak/yazılacak eleman indeksi.
VALUEVariantL (Input, InOut, Temp)Okunan/yazılan değer (Read: Output, Write: Input).
ReadFromArrayDBL
WriteToArrayDBL
ENBOOLI, Q, M, D, L veya sabitKomutu aktifleştirmek için "1" olmalı.
ENOBOOLI, Q, M, D, Lİşlem başarılıysa "1", değilse "0" döner.
REQBOOLI, Q, M, D, L veya sabitİşlemi başlatmak için pozitif kenar (1).
DBDB_ANYI, Q, M, D, LOkunacak/yazılacak Array DB.
INDEXDINTI, Q, M, D, L, P veya sabitOkunacak/yazılacak eleman indeksi.
VALUEVariantD (global DB), L (Input, InOut, Temp)Okunan/yazılan değer (Read: InOut, Write: Input).
BUSYBOOLI, Q, M, D, Lİşlem devam ederken "1".
DONEBOOLI, Q, M, D, Lİşlem tamamlandığında bir döngü için "1".

3. Örnek 1: ReadFromArrayDB ile Okuma

ReadFromArrayDB komutu, çalışma belleğindeki Array veri bloğundan veri okur.

  • Kullanım: Array veri bloğundan bir eleman okunur.
  • Örnek: EN = 1 olduğunda, ArrayDB (ARRAY[0..10] of INT) veri bloğunun 2. elemanı okunur ve TargetField’a (INT) yazılır. Örneğin, ArrayDB[2] = 100 ise TargetField = 100 olur, ENO = 1.
  • Fayda: Çalışma belleğinden hızlı veri okuma sağlar.
Network 1: ReadFromArrayDB ile Okuma
EN----[ ReadFromArrayDB ]----ENO
      | DB: ArrayDB        |
      | INDEX: 2           |
      | VALUE: TargetField |
      | RET_VAL: MW10      |
    

4. Örnek 2: WriteToArrayDB ile Yazma

WriteToArrayDB komutu, çalışma belleğindeki Array veri bloğuna veri yazar.

  • Kullanım: Array veri bloğuna bir eleman yazılır.
  • Örnek: EN = 1 olduğunda, SourceField (INT, örneğin 200) değeri ArrayDB’nin 3. elemanına yazılır. İşlem başarılıysa ENO = 1, RET_VAL = 0.
  • Fayda: Çalışma belleğine hızlı veri yazma sağlar.
Network 2: WriteToArrayDB ile Yazma
EN----[ WriteToArrayDB ]----ENO
      | DB: ArrayDB        |
      | INDEX: 3           |
      | VALUE: SourceField |
      | RET_VAL: MW12      |
    

5. Örnek 3: ReadFromArrayDBL ile Asenkron Okuma

ReadFromArrayDBL komutu, yükleme belleğindeki Array veri bloğundan asenkron olarak veri okur.

  • Kullanım: Yükleme belleğinden veri okunur.
  • Örnek: EN = 1 ve REQ’ta pozitif kenar algılandığında, ArrayDB’nin 8. elemanı yükleme belleğinden okunur. İşlem sırasında BUSY = 1, tamamlandığında DONE = 1 olur ve TargetField’a değer yazılır.
  • Fayda: Kalıcı verilere erişim için asenkron işlem sağlar.
Network 3: ReadFromArrayDBL ile Asenkron Okuma
EN----[ ReadFromArrayDBL ]----ENO
      | REQ: TagReq        |
      | DB: ArrayDB        |
      | INDEX: 8           |
      | VALUE: TargetField |
      | BUSY: TagBusy      |
      | DONE: TagDone      |
      | ERROR: MW14        |
    

6. Örnek 4: WriteToArrayDBL ile Asenkron Yazma

WriteToArrayDBL komutu, yükleme belleğindeki Array veri bloğuna asenkron olarak veri yazar.

  • Kullanım: Yükleme belleğine veri yazılır.
  • Örnek: EN = 1 ve REQ’ta pozitif kenar algılandığında, SourceField değeri ArrayDB’nin 2. elemanına yazılır. İşlem sırasında BUSY = 1, tamamlandığında DONE = 1 olur.
  • Fayda: Kalıcı veri depolama için asenkron işlem sağlar.
Network 4: WriteToArrayDBL ile Asenkron Yazma
EN----[ WriteToArrayDBL ]----ENO
      | REQ: TagReq        |
      | DB: ArrayDB        |
      | INDEX: 2           |
      | VALUE: SourceField |
      | BUSY: TagBusy      |
      | DONE: TagDone      |
      | ERROR: MW16        |
    

7. Örnek 5: Hata Yönetimi (İndeks Sınır Dışı)

İndeks sınır dışı olduğunda hata yönetimi yapılabilir.

  • Kullanım: İndeks sınır dışı kontrolü yapılır.
  • Örnek: EN = 1 olduğunda, ArrayDB (ARRAY[0..10] of INT) veri bloğunda INDEX = 15 sınır dışı olduğundan işlem başarısız olur, ENO = 0, RET_VAL = 16#8282 (indeks sınır dışı) ve Hata_Alarm aktif olur.
  • Fayda: Hataları önceden tespit ederek program güvenilirliğini artırır.
Network 5: Hata Yönetimi (İndeks Sınır Dışı)
EN----[ ReadFromArrayDB ]----ENO
      | DB: ArrayDB        |
      | INDEX: 15          |
      | VALUE: TargetField |
      | RET_VAL: MW18      |
|----[ RET_VAL = 16#8282 ]----( Hata_Alarm )----|
    

8. Günlük Hayattan Örnekler

Array veri blok komutlarının mantığını anlamak için günlük hayattan benzetmeler:

  • Kitaplıkta Kitap Okuma (ReadFromArrayDB): Bir kitaplıktan belirli bir raftaki kitabı alıp okuma.
  • Kitaplığa Kitap Yazma (WriteToArrayDB): Yeni bir kitabı kitaplıkta belirli bir rafa yerleştirme.
  • Arşivden Belge Alma (ReadFromArrayDBL): Arşivde saklanan bir belgeyi yavaşça getirip okuma.
  • Arşive Belge Yazma (WriteToArrayDBL): Bir belgeyi arşive yavaşça kaydetme.

9. Siemens TIA Portal Array Veri Blok Komutlarının Avantajları

  • Siemens TIA Portal’da farklı bellek türlerinde (RAM ve ROM) veri yönetimi sağlar.
  • Yükleme belleği işlemleriyle veriler power cycle’dan etkilenmez.
  • RET_VAL/ERROR parametreleriyle detaylı hata bilgisi sunar.
  • ReadFromArrayDBL ve WriteToArrayDBL ile uzun süreli işlemleri yönetme imkanı.

10. Dikkat Edilmesi Gerekenler

  • INDEX, Array sınırları içinde olmalıdır; aksi halde hata (örneğin, 16#8282) oluşur.
  • VALUE’nun veri tipi, Array elemanlarının tipiyle uyumlu olmalıdır; aksi halde hata (örneğin, 16#80B4) oluşur.
  • Yükleme belleği işlemleri (ReadFromArrayDBL/WriteToArrayDBL) yavaştır; gerçek zamanlı uygulamalarda dikkatli kullanılmalıdır.
  • S7-1500 için firmware ≥ V2.1 gereklidir.

11. Kullanım İpuçları

  • Siemens TIA Portal’da RET_VAL/ERROR değerlerini bir hata göstergesine bağlayarak hataları izleyin.
  • ReadFromArrayDBL ve WriteToArrayDBL kullanırken BUSY ve DONE parametrelerini izleyerek işlemin durumunu kontrol edin.
  • VALUE’nun veri tipini, Array elemanlarının tipiyle eşleştirin. Daha fazla bilgi için Array Veri Blokları sayfasını inceleyebilirsiniz.
  • CPU’nuzun firmware sürümünü TIA Portal’da "Hardware Configuration" üzerinden kontrol edin.
  • Yükleme belleği işlemleri için DB’lerin "Optimized" block property ile oluşturulduğundan emin olun.

12. Sonuç

Siemens TIA Portal’daki Array veri blok komutları, S7-1500 serisi PLC’lerde veri yönetimi için güçlü ve esnek bir çözüm sunar. Doğru bellek türünü seçmek, hata kontrollerini yapmak ve asenkron işlemleri yönetmek, bu komutların etkin kullanımını sağlar. Tüm bilgiler Siemens Industry Online Support’tan doğrulanmıştır. Siemens TIA Portal’da Array veri blok komutları hakkında ne düşünüyorsunuz? Yorumlarınızı aşağıda paylaşın!

Yorumlar