CoDeSys ile hangi programlama dilleri kullanılabilir?

CoDeSys ile hangi programlama dilleri kullanılabilir?

Kontrol mantığını işinize uygun biçimde yazın

Merhabalar, CODESYS içinde temel olarak Ladder Diagram (LD), Function Block Diagram (FBD) ve Structured Text (ST) kullanabilirsiniz. Sequential Function Chart (SFC) sıralı işlemleri yapılandırır. Eski projelerde Instruction List (IL) ile de karşılaşabilirsiniz; ayrıca Continuous Function Chart (CFC) editörü bulunur. Ancak bunların IEC 61131-3 standardındaki konumu ve güncel kullanım durumu aynı değildir.

Editörün notu: “CODESYS beş dili destekler” ifadesi tek başına güncel durumu anlatmaz. IEC 61131-3:2025, ST, LD ve FBD’yi dil kümesi olarak tanımlar; SFC’yi program ve blokların iç yapısını düzenleyen ek öğeler olarak açıklar. CODESYS, IL’yi eski ve artık bakımı yapılmayan bir seçenek olarak belirtir; gerektiğinde etkinleştirilebilir. CFC ise standartta tanımlanmış ayrı bir dil değildir.

LD: Kontak ve bobin mantığını görünür hâle getirir

Ladder Diagram, röle devresine benzeyen kontak ve bobin gösterimiyle çalışma izinleri, kilitlemeler ve aç/kapa koşullarını anlatır. Örneğin motor isteği varsa, hazır bilgisi doğruysa ve arıza yoksa bir komut üretilmesi LD’de kolay izlenebilir. Elektrik bakım ekibinin mantığı takip etmesi gereken uygulamalarda yararlıdır.

LD’deki kontak, fiziksel bir kontağın resmi olmak zorunda değildir; bir BOOL değişkeninin doğru veya yanlış durumunu sınar. Yazılımda terslenen kontak görmek, sahadaki elemanın mutlaka fiziksel NC tipinde olduğunu göstermez. Çevrimiçi izleme ile hangi koşulun sonucu engellediğini takip edebilirsiniz. Çok uzun ağlar yerine küçük ve anlamlı bölümler kullanın.

ST: Hesaplamaları ve karmaşık koşulları metinle anlatır

Structured Text, IF, CASE, FOR ve diğer yapılandırılmış komutlarla yazılan metin tabanlı dildir. Analog ölçekleme, dizi işlemleri, reçete hesaplamaları ve çok sayıda koşulun değerlendirilmesinde kullanışlıdır. CODESYS’te ST programlama yaparken açık değişken adları, düzenli girintiler ve kısa program birimleri kullanın.

Örneğin xRequest, xReady, xFault ve xMotorCommand değişkenleri BOOL tipinde tanımlanmışsa aşağıdaki ifade, istek ve hazır bilgisi varken arıza yoksa komutu TRUE yapar. Bu örnek kendiliğinden mühürleme veya hafıza oluşturmaz; koşullar değişince sonuç da değişir.

xMotorCommand := xRequest AND xReady AND NOT xFault;

ST kullanmak tek başına daha hızlı veya daha doğru program garantisi değildir. Bitmeyen döngü, yanlış veri tipi veya gereksiz büyük hesaplama görevin süresini bozabilir. Döngü sınırlarını ve verinin geçerli aralığını kontrol edin.

FBD: Fonksiyonları ve blokları sinyal akışıyla bağlar

Function Block Diagram, işlemleri grafik bloklarla ve bağlantılarla gösterir. Zamanlayıcı, karşılaştırıcı, matematik işlemi ve kontrol bloğu arasındaki ilişkiyi görmeyi kolaylaştırır. Örneğin bir analog ölçümün ölçeklenmesi, eşikle karşılaştırılması ve gecikmeli alarm üretmesi bloklar üzerinden düzenlenebilir.

FBD’de görünen her kutu aynı tür nesne değildir. Bir fonksiyon ile durum saklayan fonksiyon bloğu farklıdır. Özellikle zamanlayıcı ve sayaç gibi bloklarda doğru örneği kullanın; iki bağımsız işlem için aynı örneğin durumunu paylaşmak hataya yol açabilir. Büyük şemalarda veri akışını ve yürütme sırasını takip edilebilir tutun.

SFC: Adımlı işlemin hangi aşamada olduğunu gösterir

Sequential Function Chart, adımlar, geçiş koşulları ve eylemler üzerinden sıralı işlem yapısını düzenler. Örneğin “bekle, doldur, karıştır, boşalt” sürecinde hangi adımın aktif olduğu ve bir sonraki adıma hangi koşulla geçileceği görünür olur. Eylemlerin ayrıntısı ST, LD veya FBD ile yazılabilir.

SFC ile görev çizelgelemesi farklı şeylerdir. SFC işlemin aşamalarını düzenler; Task Configuration ise programın ne zaman çağrılacağını belirler. Sensörün gelmemesi, zaman aşımı veya iptal komutu için geçiş ve hata davranışlarını ayrıca tasarlayın. Yalnızca normal işlem sırasını çizmek yeterli değildir.

IL: Eski projeleri anlamak için bilinmelidir

Instruction List, kısa komut satırlarıyla yazılan ve assembly tarzını andıran eski metin tabanlı yaklaşımdır. CODESYS’in güncel ürün açıklaması IL’nin artık bakımının yapılmadığını ve gerektiğinde etkinleştirilebildiğini belirtir. Yeni projede IL’yi varsayılan tercih yapmayın. Eski programın bakımında ise komutların sırasını, ara sonuçları ve dönüşüm sonrası davranışı dikkatle inceleyin.

CFC: Blokları daha serbest grafik düzenle yerleştirir

Continuous Function Chart, CODESYS’in sunduğu grafik programlama seçeneklerinden biridir. Blok tabanlı bağlantıları daha serbest bir yerleşimde düzenlemek için kullanılır. Ancak CFC, IEC 61131-3:2025’te ayrı bir standart dil olarak tanımlanmaz. Bu, geliştirme ortamının ek editörlerinden biridir. Büyük çizimlerde bağlantıları ve yürütme sırasını kontrol edin; görsel düzenin anlaşılır olması da bakımın bir parçasıdır.

Aynı projede farklı dilleri kullanabilir misiniz?

Evet, farklı POU’ları farklı dillerde hazırlayabilirsiniz. Örneğin ana işlem sırası SFC, hesaplama bloğu ST ve servis ekibinin izleyeceği izin mantığı LD olabilir. POU oluştururken uygulama dilini seçersiniz; program, fonksiyon ve fonksiyon blokları tanımlı arayüzler üzerinden birlikte çalışır. Bu, kodun her satırında istediğiniz dile serbestçe geçmek anlamına gelmez.

Dil seçiminde işin yapısını, bakım ekibinin bilgisini ve kodun okunabilirliğini değerlendirin. Donanım sürücüleri, üretici kütüphaneleri ve hedef kontrolör özellikleri de kontrol edilmelidir. Aynı algoritmayı farklı dillerle ifade edebilmek, farklı PLC markaları arasında bütün projenin değişikliksiz taşınacağını garanti etmez. En iyi seçim, aylar sonra da anlaşılabilen ve davranışı doğrulanabilen seçimdir.

İlgili konular

Ladder Diagram | Structured Text | FBD | SFC | Instruction List | PLC için IEC standartları | Fonksiyon blokları | Eğitim kaynakları