Geleneksel PLC dünyasında her markanın (Siemens, Rockwell, Mitsubishi vb.) kendi özel yazılımı vardır. CODESYS ise donanımdan bağımsız bir yapı sunar. Bir kez CODESYS ile program yazmayı öğrendiğinizde, bu yazılımı destekleyen 400’den fazla markanın (Schneider Electric, Eaton, Wago, Beckhoff, ABB ,VEICHI gibi) cihazlarını programlayabilirsiniz.
CODESYS IDE: Programın yazıldığı, simülasyonun yapıldığı ana arayüz.
CODESYS Runtime: PLC cihazının içinde koşan ve yazdığınız kodun donanım tarafından anlaşılmasını sağlayan "işletim sistemi" katmanı.
CODESYS Visualization: Ek bir yazılıma ihtiyaç duymadan, PLC programı içinden HMI (insan-makine arayüzü) ekranları tasarlamanızı sağlar.
CODESYS, uluslararası standart olan IEC 61131-3 kapsamındaki tüm dilleri destekler. Bu, projede ihtiyaca göre dil seçebileceğiniz anlamına gelir:
LD (Ladder Diagram): Elektrik şemalarına benzer, geleneksel mantık.
ST (Structured Text): C veya Pascal benzeri metin tabanlı dil (karmaşık matematiksel işlemler için idealdir).
FBD (Function Block Diagram): Fonksiyon bloklarını birbirine bağlayarak görsel programlama.
SFC (Sequential Function Chart): Adım adım ilerleyen süreç yönetimi.
IL (Instruction List): Assembly benzeri düşük seviyeli dil (modern projelerde kullanımı azalmıştır).
CFC (Continuous Function Chart): Serbestçe konumlandırılabilen fonksiyon blokları.
Makine Üreticileri: Farklı PLC markaları arasında geçiş yaparken yazılımı sıfırdan yazmak zorunda kalmazlar.
Öğrenciler ve Mühendisler: Ücretsiz sürümü indirilip simülasyon üzerinden öğrenilebilir. Raspberry Pi gibi cihazlara kurulabildiği için ev projelerinde (IoT) çok popülerdir.
Sistem Entegratörleri: Tek bir geliştirme ortamıyla koca bir fabrikanın farklı marka cihazlarını yönetebilirler.
Artıları:
Öğrenme eğrisi verimlidir (bir kez öğren, her yerde kullan).
Kütüphane desteği çok geniştir.
Geleceğin teknolojisi olan Endüstri 4.0 ve IoT protokollerine (MQTT, OPC UA) tam uyumludur.
Eksileri:
Çok esnek olduğu için başlangıçta konfigürasyon ayarları karmaşık gelebilir.
Bazı donanım üreticileri, CODESYS'i kendi markalarına göre özelleştirdikleri için (örneğin SoMachine) versiyon uyumsuzlukları yaşanabilir.
ÖRNEK CODESYS YAZILIM : // 2. ADIM: Pompa Kontrol Mantığı IF xSistemAktif THEN IF xModSecici THEN // --- OTOMATİK MOD --- // Depo boşsa çalıştır, dolunca durdur (Histerezis) IF NOT xAltSensor THEN xPompa := TRUE; ELSIF xUstSensor THEN xPompa := FALSE; END_IF; ELSE // --- MANUEL MOD --- // Manuel modda sadece Start butonuyla çalışsın (Basit örnek) xPompa := xStartButon; END_IF; ELSE // Sistem kapalıysa her şeyi kapat xPompa := FALSE; END_IF; // 3. ADIM: Çalışma Süresi Hesaplama (Sanal Mantık) // Eğer pompa çalışıyorsa ve sistem saati değişiyorsa süreyi artır IF xPompa THEN // Not: Normalde burada bir saniyelik 'pulse' (darbe) sinyali kullanılır // Örnek amaçlı her döngüde (scan) artırdığımızı varsayalım diCalismaSuresi := diCalismaSuresi + 1; END_IF;