PLC Instruction List (IL) nedir?

PLC Instruction List (IL) Nedir?

PLC Instruction List (IL) nedir? Instruction List, PLC için kullanılan, kısa komutların satır satır yazıldığı metin tabanlı bir programlama dilidir. Türkçede “komut listesi” olarak açıklanabilir. PLC programlama içinde giriş koşullarını değerlendirmek, hesaplama yapmak ve değişkenlere sonuç yazmak için kullanılmıştır. Yapısı, düşük seviyeli assembly dillerini andırır.

IL'nin standarttaki yeri: IL, IEC 61131-3 standardının önceki sürümlerinde yer almıştır. 2025 sürümünün dil kümesinde IL bulunmaz; Structured Text (ST), Ladder Diagram (LD) ve Function Block Diagram (FBD) tanımlanır. SFC ise adım ve geçişlerle programın iç yapısını düzenler. Eski bir yazılımın IL desteği sunması, dilin güncel standartta yer aldığı anlamına gelmez.

IL bugün neden öğrenilir? Özellikle eski makinelerdeki otomasyon projelerini okumak, arızaları incelemek ve yazılımı başka bir platforma taşımak için yararlıdır. Yeni projede dil seçerken hedef donanımın desteği, bakım ekibinin bilgisi ve yazılımın sürdürülebilirliği birlikte değerlendirilir. Komutların kısa olması, programın kendiliğinden daha hızlı veya daha kolay anlaşılır olduğunu göstermez.

Saha sinyalleriyle ilişkisi: Sensörlerden gelen bilgiler giriş/çıkış modülleri üzerinden program değişkenlerine aktarılır; PLC CPU komutları yürütür. Kanallar yerel modüllerde veya uzak I/O istasyonunda olabilir. IL, bu değişkenleri kullanarak bir kontrol sonucu hesaplar. Bir değişkene yazmak ile fiziksel çıkışın güncellenmesi aynı an olmak zorunda değildir.

Bir komut satırı nasıl okunur? Satırda genellikle operatör ve operand bulunur. LD Sicaklik örneğinde LD yapılacak işlemi, Sicaklik kullanılacak değişkeni belirtir. Etiketler ve açıklamalar da eklenebilir. Komut seti kullanılan ortama bağlıdır; aynı işlemin farklı üreticilerde aynı komutla yazılması garanti değildir.

LD ve ST komutları: LD bir değeri akümülatör olarak adlandırılan ara sonuç alanına yükler; ST bu sonucu hedef değişkene yazar. Akümülatör, hesaplama akışını anlamaya yardımcı olan yürütme modelidir. Buradaki LD komutu Ladder Diagram diliyle, ST komutu da Structured Text diliyle karıştırılmamalıdır.

Mantıksal işlemler: BOOL değerlerde AND iki koşulun birlikte sağlanmasını, OR en az birinin sağlanmasını, XOR iki koşuldan yalnızca birinin sağlanmasını ifade eder; NOT sonucu tersine çevirir. Uygun veri tiplerinde bit düzeyinde işlemler de yapılabilir. İşlem sırası sonucu etkiler; AND ve OR bulunan bir akışı okurken ara sonucu her satırda takip edin.

Aritmetik ve karşılaştırma: ADD, SUB, MUL ve DIV toplama, çıkarma, çarpma ve bölme için kullanılır. EQ, NE, GT, GE, LT ve LE eşitlik ve büyüklük karşılaştırmalarıdır. Sayı aralığı, işaret ve dönüşüm kuralları kontrol edilmelidir; sıfıra bölme veya taşma davranışı platforma göre değerlendirilir.

Her kısaltma ortak IL komutu değildir: MOV, OUT veya CMP gibi ifadeler farklı üreticilerin komut listelerinde görülebilir. Bunları her PLC'de aynı şekilde çalışan evrensel komutlar olarak kabul etmeyin. Programlama yazılımı ve CPU dokümanındaki tanımı esas alın; komut adı kadar operand türü ve sonucun nereye yazıldığı da önemlidir.

Kısa IL örneği: Aşağıdaki üç satır, iki BOOL koşulundan bir izin değişkeni üretir. Talep, Proses_Hazir ve Calisma_Izni BOOL olarak tanımlanmalıdır. Örnek, temel mantığı gösterir; donanıma bağlı adresleme ve program yapısı kullanılan ortamda tamamlanır.

LD Talep
AND Proses_Hazir
ST Calisma_Izni

LD talep değerini yükler; AND prosesin hazır olmasını da şart koşar; ST sonucu izin değişkenine yazar. İki koşul da TRUE ise izin TRUE olur; diğer durumlarda FALSE yazılır. Bu bölüm çalıştığı her seferde sonucu yeniden hesaplar; talebi hafızada tutan bir başlatma/durdurma kilitlemesi içermez.

Program çevrimi ve atlamalar: Komutlar normalde sırayla yürür; JMP koşulsuz, JMPC ise koşula bağlı atlama örneğidir. Görev zamanlaması ve çağrı sırası hangi bölümün ne zaman çalışacağını belirler. Atlanan bölümdeki değişkenler yeniden yazılmayabilir. Bir çıkışın sıfırlanmasını yalnızca o bölüme bırakmak, önceki değerin korunmasına yol açabilir.

Set/reset ve kalıcı veriler: IL uygulamalarında S ve R komutları, koşul sağlandığında BOOL değişkenini kurmak ve sıfırlamak için kullanılabilir. Aynı değişkene birden fazla yazma varsa yürütme sırası önemlidir. Bellek yapılandırmasındaki kalıcılık ayrıca incelenmelidir; set edilmiş bir değer, enerji kesildiğinde mutlaka korunacak demek değildir.

Zamanlayıcı ve blok çağrıları: TON gibi fonksiyon blokları kendi durumlarını saklayan örnekler üzerinden çağrılır; IL'de CAL bir blok çağrısı örneğidir. TON, giriş TRUE kalırken ayarlanan süreyi tamamlayınca çıkışını etkinleştirir. Giriş, süre ve blok çıkışının bağlanma biçimi kullanılan kütüphaneye göre kontrol edilmelidir; tek bir “TON” satırı bütün platformlarda yeterli değildir.

Sayaç ve hızlı sinyaller: CTU tipi sayaç, sayma girişinin yükselen kenarında artar. Bir sensörün sürekli TRUE kalması, her çevrimde yeni ürün geldiği anlamına gelmez. Enkoder darbeleri için uygun hızlı sayıcı ve giriş donanımı gerekebilir. IL komutlarını değiştirmek, donanımın yakalayamadığı kısa darbeleri geri getirmez.

IL ile Siemens STL aynı mı? Siemens'in STL (Statement List), diğer adıyla AWL dili benzer bir komut listesi yaklaşımı kullanır; sözdizimi ve yürütme ayrıntıları doğrudan aynı kabul edilmez. STL, S7-300, S7-400 ve S7-1500 ortamlarında bulunur; S7-1200 STL desteklemez. CPU ailesini ve yazılım sürümünü doğrulamadan bir örneği başka cihaza taşımayın.

Makine ve operatör arayüzü: Bir HMI veya SCADA üzerinden gelen talep, programdaki koşullarla değerlendirilir. Hız kontrol cihazına gönderilen komut ile cihazın çalışma geri bildirimi ayrı bilgilerdir. PID kontrolünde de ölçüm, hedef ve çıkış ayrılmalıdır. Komut verilmesi, işlemin gerçekleştiğini kanıtlamaz; geri bildirim ve arıza durumu birlikte izlenir.

Hata ayıklama ve haberleşme: PLC hata ayıklama sırasında girişleri, ara sonuçları ve değişkene yazan bütün komutları takip edin. Endüstriyel haberleşmeden gelen veride güncellik ve bağlantı durumu da kontrol edilmelidir. Doğru görünen eski bir değer, güncel bir saha bilgisi olmayabilir. İzleme yöntemlerine CODESYS hata ayıklama üzerinden de bakabilirsiniz.

Başka bir dile geçiş: Eski IL kodunu ST, LD veya FBD'ye aktarırken set/reset önceliği, kenar algılama, zamanlayıcı durumu ve başlangıç değerleri karşılaştırılır. CODESYS gibi ortamlarda da kullanılan sürümün dil desteği ayrıca doğrulanır. Başarılı derleme, eski ve yeni programın bütün durumlarda aynı davranacağını tek başına göstermez.

Güvenlik fonksiyonları: Acil durdurma ve koruyucu kapı kontrolü, uygun güvenlik donanımı ve doğrulanmış tasarım gerektirir. Güvenlik rölesi veya güvenlik PLC'si seçimi sistemin ihtiyacına göre yapılır. Sıradan IL programına bir durdurma koşulu eklemek, sistemi kendiliğinden güvenlik işlevi için uygun hale getirmez.