Continuous Function Chart (CFC) Nedir?

Continuous Function Chart (CFC), fonksiyonları ve fonksiyon bloklarını serbestçe yerleştirip bağlantılarla birleştiren grafiksel bir programlama yöntemidir. PLC ve benzeri kontrol sistemlerinde hesaplama, sinyal işleme ve kontrol mantığını düzenlemek için kullanılır. Otomasyon uygulamasında hangi verinin hangi işleme girdiğini görsel olarak takip etmeyi sağlar. Kutular işlemleri, bağlantılar ise bu işlemler arasındaki veri ilişkisini gösterir.
CFC, IEC 61131-3'ün standart dili midir? CFC, IEC 61131-3 içinde ayrı bir standart dil olarak tanımlanmaz. CODESYS gibi geliştirme ortamlarında ek bir grafiksel dil veya editör olarak sunulur. IEC tabanlı bir ortamda bulunması, CFC'nin standartta bağımsız bir dil olduğu anlamına gelmez. CFC desteğini kullanılan yazılım ve hedef kontrolör için kontrol edin.
FBD ve diğer dillerle ilişkisi: FBD ile CFC, bloklar ve veri bağlantıları üzerinden çalışması bakımından benzerdir. CODESYS'te CFC, elemanların serbest yerleştirilmesine ve doğrudan geri besleme bağlantılarına izin verir. Ladder Diagram kontak mantığını, Structured Text metin tabanlı işlemleri düzenler; SFC ise adım ve geçişlerle sıralı yapılar kurar. CFC ile SFC'nin adları benzese de programı düzenleme yaklaşımları farklıdır.
Kutular neyi temsil eder? ADD ve MUL gibi işlemler toplama ve çarpma yapabilir; karşılaştırma ve mantık elemanları koşulları değerlendirebilir. Zamanlayıcı veya kontrolör gibi fonksiyon blokları ise iç durum taşıyabilir. Bir bloğun adı kadar girişleri, çıkışları ve davranışı da önemlidir. Bağımsız zamanlayıcılar veya kontrol döngüleri için uygun ayrı blok örnekleri kullanın.
Bağlantı çizgileri ve gerçek I/O: Bir kutunun çıkışı başka bir kutunun girişine bağlanarak veri aktarılır. Çizgiler, fiziksel kablolar veya güç bağlantıları değildir. Sensör verisinin programa gelmesi ve komutun sahaya gitmesi için giriş/çıkış eşlemesi gerekir. Grafikte bir çıkış değişkeni çizmek, fiziksel çıkışı kendiliğinden tanımlamaz. Değişkenin hangi kanaldan geldiğini ve hangi kanala yazıldığını açık tutun.
Veri tipleri ve birimler: BOOL, INT ve REAL farklı amaçlarla kullanılır. Bağlanan girişlerin veri tipleri uyumlu olmalı; gereken dönüşümler bilinçli yapılmalıdır. Yüzde, bar, derece veya devir/dakika değerleri de birbirine karıştırılmamalıdır. Derleme hatası olmaması, fiziksel birimlerin doğru eşleştirildiğini kanıtlamaz. Değişken adlarında ve açıklamalarda ölçüm birimini belirtin.
“Continuous” kesintisiz çalışma mı demektir? Hayır. CFC programı, ilgili görev zamanlaması ve çağrı düzeni içinde yürütülür. Örneğin 20 ms aralık hedefleyen döngüsel bir göreve bağlanabilir. Gerçek çağrı düzeni ve işlem süresi PLC CPU ile uygulamanın yüküne bağlıdır. Grafik çizmek, blokların sürekli veya birbirleriyle eşzamanlı çalışmasını sağlamaz. Gerçek zamanlı davranışı dil adından değil, görev ve sistem zamanlamasından değerlendirin.
Çalıştırma sırası nasıl belirlenir? CODESYS CFC'de Auto Data Flow Mode veri akışına göre otomatik sıra belirler; belirsiz durumlarda yerleşim de kullanılır. Explicit Execution Order Mode ise sıralamanın açıkça düzenlenmesine izin verir. Bir hesaplamanın sonucu sonraki işlemde kullanılacaksa bağımlılık doğru kurulmalıdır. Yalnızca kutunun solda veya üstte durmasına bakarak çalışma sırasını varsaymayın; editörün gösterdiği sırayı ve seçilen modu inceleyin.
Geri besleme bağlantıları: Bir çıkışın daha önceki bir bloğun girişine dönmesi, veri akışında bir halka oluşturabilir. Böyle bir yapıda başlangıç elemanı ve bellekte tutulan önceki değerler önemlidir. CODESYS'te geri besleme halkası için başlangıç elemanı belirlenebilir. Bir bağlantının güncel mi, önceki çağrıdaki değeri mi kullandığı sonucu etkileyebilir. Halkanın ilk çağrıdaki ve sonraki çağrılardaki davranışını ayrı ayrı okuyun.
Basit CFC hesaplama örneği: Yüzde cinsinden bir InputPct değeri, Gain katsayısıyla çarpılsın; ardından yüzde puanı cinsinden Offset eklensin ve sonuç 0–100 aralığına sınırlandırılsın. Bu yapı MUL, ADD ve LIMIT elemanlarıyla kurulabilir. REAL değerlerle 40.0 × 1.5 + 10.0 = 70.0 elde edilir; LIMIT sonucu yine 70.0 olur. Bağlantı sırası önce çarpma, sonra toplama, ardından sınırlandırmadır.
Sınırı aşan değer örneği: InputPct 100.0 olduğunda aynı hesap 160.0 üretir; 0–100 aralığına ayarlanmış LIMIT sonucu 100.0 yapar. Bu, yüzde cinsinden bir komut örneğidir. Motor sürücüsüne gönderilecek gerçek referansın birimi ve aralığı ayrıca eşleştirilir. Yüzde komutunu doğrudan Hz, volt veya devir/dakika değeri kabul etmeyin.
Sınırlandırma, veri doğrulama değildir: Analog sinyal veya 4–20 mA / 0–10 V verisi önce uygun şekilde ölçeklenir. Kablo kopukluğu ya da geçersiz ölçüm, yalnızca sonucu 0–100 aralığına sıkıştırarak giderilemez. Ölçümün geçerliliği ile sayısal sınırı ayrı değerlendirilir. Geçersiz girişte hangi komutun üretileceğini hesaplama zincirinin dışında da açıkça tanımlayın.
Durum taşıyan blokları çağırmak: Zamanlayıcı veya kenar algılayıcı gibi bloklarda çağrı düzeni önemlidir. Bloğu çağırmayı kesmek, onu resetlemekle aynı işlem değildir; iç durum ve çıkışlar bloğun kurallarına göre korunabilir. Çalışma izni, blok çağrısı ve reset koşulu farklı görevlerdir. Duruşta, yeniden başlatmada ve ilk çağrıda uygulanacak davranışı ilgili bloğun belgelerine göre belirleyin.
PID kontrolünde CFC: PID kontrol bloğuna hedef değer ve ölçülen değer bağlanabilir; hesaplanan çıkış uygun sınırlamalarla kumanda yoluna aktarılır. Bloğun örnekleme süresi, görev düzeni ve çıkış sınırları birlikte ayarlanır. Grafiksel bağlantı, doğru PID ayarı yapıldığı anlamına gelmez. Prosesin sensörden gelen geri beslemesini, program içindeki geri besleme halkasıyla karıştırmayın.
Modülerlik ve yeniden kullanım: PLC programlama içinde bir ekipmana ait hesaplama, izin ve durum bilgileri ayrı bir fonksiyon bloğunda toplanabilir. CFC'de bu bloğun örnekleri kullanılarak benzer ekipmanlar düzenlenebilir. Aynı blok tipini kullanmak ile aynı blok örneğini paylaşmak farklıdır. Bağımsız ekipmanların iç durumunu ayrı tutun; bloğun girişlerden ne beklediğini ve çıkışlarının ne anlama geldiğini açık yazın.
HMI ve haberleşme verileri: HMI hedef değeri değiştirebilir, SCADA sonucu izleyebilir ve uzak I/O ölçümü sağlayabilir. Bu verilerin güncellemesi CFC programıyla aynı anda gerçekleşmeyebilir. Hedef değer, geçerlilik bilgisi ve çalışma izinleri birlikte değerlendirilir. Bir parametrenin birden fazla yerden yazılması durumunda hangi kaynağın yetkili olduğunu belirleyin.
Hata ayıklama ve okunabilirlik: Hata ayıklama sırasında blok girişleri, ara sonuçlar, çıkışlar ve çalışma sırası birlikte incelenir. CODESYS izleme araçları veri akışını değerlendirmeye yardımcı olabilir. Anlamlı adlar ve kısa açıklamalar, çok sayıda kesişen bağlantıdan daha yararlıdır. Güzel görünen bir çizim, doğru programı tek başına kanıtlamaz. Ekranda görülen değerlerin hangi çağrıya ait olduğunu ve izlemenin zamanlamaya etkisini kullanılan araçta kontrol edin.
Farklı yazılımlara taşınabilirlik: CFC adı farklı programlama yazılımlarında kullanılabilir; editör, kütüphane, sıra belirleme ve proje dosyası kuralları aynı olmayabilir. Bir CFC projesinin başka bir üreticinin kontrolöründe doğrudan çalışacağı varsayılamaz. Taşımada blok davranışını, veri tiplerini, görevleri ve I/O eşlemesini yeniden doğrulayın.