TIA Portal'da Fonksiyon Blok (FB) ile Fonksiyon (FC) Arasındaki Farklar

TIA Portal'da Fonksiyon Blok (FB) ile Fonksiyon (FC) Arasındaki Farklar

Siemens TIA Portal, S7-1200 ve S7-1500 serisi PLC’ler için güçlü bir programlama platformudur. Bu ortamda, kodun modülerliğini ve yeniden kullanılabilirliğini artırmak amacıyla Fonksiyon Bloklar (FB) ve Fonksiyonlar (FC) sıklıkla tercih edilir. Ancak bu iki yapı, işlevsellik ve kullanım senaryoları açısından önemli farklılıklar içerir. Bu rehberde, FB ve FC’nin teknik detaylarını, mantığını, avantajlarını, dikkat edilmesi gereken noktalarını ve pratik örneklerini ele alacağız.

1. Tanım

Fonksiyon (FC): FC’ler, durum bilgisi (state) saklamayan, yani "stateless" program bloklarıdır. Her çağrıldığında giriş parametrelerini işler ve bir çıktı üretir. Instance Data Block (DB) gerektirmez ve geçici bellek (Temp) kullanır. Daha fazla bilgi için FC ve FB Kullanımı sayfasını inceleyebilirsiniz.

Fonksiyon Blok (FB): FB’ler, durum bilgisi saklayabilen, yani "stateful" program bloklarıdır. Her FB, bir Instance Data Block (DB) ile ilişkilendirilir ve bu DB’de statik değişkenler (STAT) saklanır, böylece çağrılar arasında veri tutabilir.

KriterFonksiyon (FC)Fonksiyon Blok (FB)
Durum SaklamaHayırEvet
Instance DB KullanımıHayırEvet
Bellek KullanımıDaha azDaha fazla
Kullanım AlanıBasit işlemlerDurum bilgisi gerektiren işlemler

2. Mantık

FC’nin Çalışma Mantığı: FC’ler, her çağrıldığında bağımsız çalışır. Giriş parametrelerini alır, işlemi gerçekleştirir ve bir çıktı üretir; önceki çağrılardan veri saklamaz. Bu nedenle matematiksel hesaplamalar veya lojik operasyonlar gibi durum bilgisi gerektirmeyen görevler için uygundur. Örnekler için Matematiksel Fonksiyonlar sayfasını ziyaret edebilirsiniz.

FB’nin Çalışma Mantığı: FB’ler, Instance DB’sine erişerek statik değişkenler (STAT) ile önceki durumlarını korur. Örneğin, bir sayaç FB’si her çağrıldığında önceki değeri hatırlayıp artırabilir. Bu özellik, FB’leri durum makineleri, zamanlayıcılar veya PID kontrol gibi uygulamalarda ideal kılar.

3. Örnekler

FB ve FC’nin farklarını daha iyi anlamak için aşağıdaki pratik örnekleri inceleyelim:

Örnek 1: FC ile Basit Toplama İşlemi

Network 1: FC ile Toplama İşlemi
"Start"----[ FC_Toplama ]----"Result"
           | IN1: MW10    |
           | IN2: MW12    |
           | OUT: MW14    |
    

"FC_Toplama" adlı FC, MW10 ve MW12’deki iki giriş değerini toplar ve sonucu MW14’e yazar. Durum saklamadığı için her çağrıda aynı girişlerle aynı sonucu üretir.

Örnek 2: FB ile Sayaç Uygulaması

Network 2: FB ile Sayaç Uygulaması
"Trigger"----[ FB_Sayac ]----"Count"
            | TRIGGER: I0.0 |
            | COUNT: MW20   |
    

"FB_Sayac" adlı FB, her "Trigger" sinyalinde (I0.0) sayacı bir artırır ve sonucu MW20’ye yazar. Instance DB’sindeki "Internal_Count" değişkeni sayesinde önceki değeri korur. Daha fazla bilgi için Sayaç Operasyonları sayfasını inceleyebilirsiniz.

Örnek 3: FB ile Zamanlayıcı Kullanımı

Network 3: FB ile Zamanlayıcı Kullanımı
"Start"----[ FB_Timer ]----"Status"
          | START: I0.1  |
          | STATUS: Q0.0 |
    

"FB_Timer" adlı FB, Start sinyali (I0.1) ile bir TON zamanlayıcısı başlatır ve 10 saniye sonra Status çıkışını (Q0.0) aktif eder. Zamanlayıcı durumu Instance DB’de saklanır. Detaylar için Zamanlayıcılar sayfasını ziyaret edebilirsiniz.

4. Avantajlar

FC’nin Avantajları:

  • Düşük Bellek Tüketimi: Instance DB gerektirmez, bu da bellek kullanımını azaltır.
  • Hızlı İşlem: Durum saklamadığı için hızlı çalışır ve basit görevlerde etkilidir.
  • Esneklik: Aynı FC, farklı parametrelerle birden çok yerde kullanılabilir.

FB’nin Avantajları:

  • Durum Saklama: Instance DB ile çağrılar arasında veri tutar, zamanlayıcılar ve sayaçlar için idealdir.
  • Kapsülleme: Mantık ve veri bir arada tutulur, kod okunabilirliğini artırır.
  • Bağımsız Örnekler: Her FB’nin kendi Instance DB’si vardır, bu da bağımsız işlemler sağlar.

5. Dikkat Edilmesi Gerekenler

  • FC’lerde parametreler (Input, Output, InOut) açıkça tanımlanmalı ve çağrıda atanmalıdır; aksi halde hata oluşur. Hata çözümü için Derleme Hataları sayfasını inceleyebilirsiniz.
  • FB’ler için her çağrıda bir Instance DB oluşturulmalıdır; unutulursa program çalışmaz.
  • FB’ler, her Instance DB ile ek bellek kullanır; aşırı kullanım CPU performansını etkileyebilir.
  • S7-1200/S7-1500’de optimized erişim varsayılan olarak kullanılır; S7-300/400 uyumluluğu için standard erişim seçilmelidir. Detaylar için S7-1200 Özellikleri sayfasını ziyaret edebilirsiniz.

6. Uygulamalar

  • FC Kullanımı: Matematiksel hesaplamalar, sinyal filtreleme veya veri dönüştürme gibi basit işlemler.
  • FB Kullanımı: Üretim hattında sayaçlar, motor kontrolü, durum makineleri veya zamanlayıcı tabanlı güvenlik sistemleri.

7. İpuçları

  • FC’lerde Temp değişkenlerini etkin kullanın, böylece bellek tüketimi azalır.
  • FB’lerde Instance DB’lere anlamlı isimler verin (örneğin, "DB_Motor1", "DB_Motor2").
  • Bir FB içinde başka bir FB’yi multi-instance olarak çağırarak bellek optimizasyonu yapın.
  • Parametre türlerini (INT, REAL) doğru eşleştirin, aksi halde derleme hatası alabilirsiniz. Hata çözüm önerileri için TIA Portal Hata Arşivi sayfasını inceleyebilirsiniz.

8. Video İçeriği

9. Sonuç

TIA Portal’da FB ve FC, PLC programlamada farklı ihtiyaçlara yanıt veren güçlü araçlardır. FC’ler, durum saklamayan basit işlemler için uygundur; FB’ler ise durum bilgisi gerektiren karmaşık uygulamalarda öne çıkar. Bu rehberdeki örnekler ve ipuçlarıyla, projelerinizde bu blokları etkin bir şekilde kullanabilirsiniz. Daha fazla bilgi için Siemens Online Destek sayfasını ziyaret edebilirsiniz.

Yorumlar