# Merdiven mantığı
Merdiven mantığı, imalat ve proses kontrolde kullanılan röle raflarının tasarımını ve yapımını belgelemek için yazılı bir yöntemdi. Röle rafındaki her cihaz, gösterilen cihazlar arasındaki bağlantılarla birlikte merdiven diyagramında bir sembolle gösterilir. Ayrıca, pompa, ısıtıcı vb röle rafının dışındaki diğer öğeler de merdiven şemasında gösterilir.
Merdiven mantığı röle mantık devre şemalarına dayanan grafik diyagramla, programı temsil eden bir programlama diline dönüştürülmüştür. Merdiven mantığı sanayideki kontrol uygulamalarında kullanılan programlanabilir mantık denetleyicileri (PLC) proğramlamada yazılım olarak kullanılır.
Merdivenin İngilizcesi olan “Ladder” kelimesi, bu programın iki dikey ayağı ve aralarında bir dizi yatay basamağı olan merdivene benzediği için kullanılmıştır.
Ladder diyagramları bir zamanlar PLC'leri kaydetmek için mevcut tek gösterimken artık diğer formlar IEC 61131-3'te standartlaştırıldı. Örneğin grafik merdiven mantığı biçimine alternatif olarak IEC 61131-3 standardında “Yapılandırılmış metin” denen daha çok C benzeri bir dil de vardır.


## Özet.
Merdiven mantığı, bir işlemin veya bir üretim işleminin sıralı kontrolünün gerekli olduğu programlanabilir mantık denetleyici'leri programlamada çok kullanılır. Merdiven mantığı, basit ama kritik kontrol sistemleri için veya eski kablolu röle devrelerinin yeniden düzenlenmesi için de kullanışlıdır. Programlanabilir mantık denetleyicileri daha karmaşık hale geldikçe, çok karmaşık otomasyon sistemlerinde de kullanılmaya başlandı. Merdiven mantığı programı, bilgisayar iş istasyonunda çalışan HMI programı ile bağlantılı olarak kullanılır.
Merdiven diyagramında sıralı kontrol mantığını temsil etme dürtüsü, fabrika mühendislerinin ve teknisyenlerinin FORTRAN gibi bir dili veya başka genel amaçlı bir bilgisayar dilini öğrenmek için ek eğitim almadan yazılım geliştirmelerine imkan vermekti. Bilinen röle donanım sistemlerine benzerlik nedeniyle geliştirme ve bakım kolaylaştırıldı.
Sıralı yürütme ve kontrol akış özellikleri için destek gibi merdiven mantık uygulamaları, donanıma benzetmeyi yanlış yapan özelliklere sahip olabilir.
Merdiven mantığı, prosedürel dil yerine kural tabanlı dil olarak düşünülebilir. Merdivendeki bir "basamak" bir kuralı temsil eder. Röleler ve diğer elektromekanik cihazlarla uygulandığında, çeşitli kurallar aynı anda ve hemen uygulanır. Programlanabilir mantık denetleyicisinde uygulandığında, kurallar yazılım tarafından sürekli bir döngüde sırayla yürütülür. Döngüyü yeterince hızlı, saniyede birçok kez yürüterek, eşzamanlı ve anında yürütme etkisi elde edilir. Programlanabilir denetleyicilerin doğru kullanımı, basamakların yürütme sırasının sınırlamalarının anlaşılmasını gerektirir.


## Sözdizimi ve örnekler.
Dilin kendisi, mantıksal denetleyiciler (kontaklar) ve etkileyiciler (bobinler) arasındaki bir dizi bağlantı olarak görülebilir. Basamağın sol tarafı ile çıkış arasında, doğru veya "kapalı" kontaklar aracılığıyla bir yol izlenebiliyorsa basamak doğrudur ve çıkış bobini depolama biti (1) olarak onaylanır veya doğrudur. Hiçbir yol izlenemiyorsa, çıkış yanlış (0) olur ve elektromekanik rölelere benzer şekilde "bobin" "enerjisiz" olarak kalır. Mantıksal önermeler ve röle kontağı durumu arasındaki kıyaslama Claude Elwood Shannon'dan kaynaklanmıştır.
Merdiven mantığı, bobinleri kontrol etmek için devreyi bağlayan veya kesen kontaklara sahiptir. Her bobin veya kontak PLC'nin belleğindeki tek bir bitin durumuna karşılık gelir. Elektromekanik rölelerden farklı olarak merdiven programı, sınırsız sayıda kontaklı bir rölenin eşdeğeri olarak, tek bitin durumuna herhangi bir sayıda başvurabilir.
"Kontaklar" olarak adlandırılanlar, entegre veya harici bir giriş modülü aracılığıyla butonlar ve sınır anahtarları gibi fiziksel cihazlardan PLC'ye yapılan fiziksel ("sabit") girişleri veya programın başka bir yerinde oluşturulabilecek dahili depolama bitlerinin durumunu temsil edebilir.
Merdiven dilinin her basamağında, genelde en sağda bir bobin vardır. Bazı üreticiler bir basamakta birden fazla çıkış bobinine de imkan verebilir.
  - Basamak girişi: Denetleyici (kontaklar)
  - Basamak çıkışı: Aktüatörler (bobinler)
"Bobin" (basamağın çıkışı), programlanabilir denetleyiciye bağlı bazı cihazları çalıştıran fiziksel çıkışı temsil edebilir veya programın başka bir yerinde kullanım için bir dahili depolama bitini temsil edebilir.
Bunları hatırlamanın yolu, denetleyicileri (kontakları) basmalı düğme girişi ve aktüatörleri (bobinleri) bir ampul çıkışı olarak hayal etmektir. Kontroller veya aktüatörler içinde bir eğik çizgi bulunması, cihazın hareketsiz durumdaki varsayılan durumunu gösterir.


### Mantıksal VE.
Yukarıdaki şu işlevi yapar: Kapı motoru = Anahtar 1 VE Anahtar 2
Bu devre, güvenlik görevlilerinin bir banka kasa kapısındaki elektrik motorunu çalıştırmak için kullanabileceği iki anahtarı gösterir. Her iki anahtarın da normalde açık kontakları kapandığında kapıyı açan motora elektrik gider.


### Mantıksal DEĞİL ile VE.
Yukarıdakiler şu işlevi yapar: Kapı motoru = Kapıyı kapat düğmesi VE mantıksal DEĞİL sensörü (Engel).
Bu devre, bir kapıyı kapatan bir basmalı düğme ve kapanan kapının yolunda bir şey olup olmadığını algılayan bir engel sensöründen oluşur. Normalde açık basmalı düğmenin kontağı kapandığında ve hiçbir engel olmadığı belirlendiğinde normalde kapalı olan engel sensörü kapatıldığında kapıyı kapatan motora elektrik gider.


### Mantıksal VEYA.
Yukarıdakiler şu işlevi yapar: Kilit açma = İç kilit açma mantıksal VEYA Dış kilit açma
Bu devre, bir arabanın elektrikli kapı kilitlerini tetikleyebilecek iki şeyi gösterir. Uzak alıcıya her zaman güç verilir. Kilit açma solenoid, kontaklardan herhangi biri kapatıldığında güç alır.


### Endüstriyel DUR/BAŞLA.
Endüstriyel kilitlemeli başlat/durdur mantığında motor kontaktörünü çalıştırmak için "Başla" düğmesine ve kontaktörü kapatmak için "Dur" düğmemiz var.
"Başla" düğmesine basıldığında giriş "Dur" düğmesi NK kontağı aracılığıyla doğru olur. "Çalıştır" girişi doğru olduğunda "Başlat" NA kontağı ile paralel olarak mühürlü "Çalıştır" NA kontağı, giriş mantığını doğru (mandallı veya mühürlü) koruyarak kapanır. Devre kilitlendikten sonra "Dur" düğmesine basılarak NK kontağının açılmasına ve dolayısıyla girişin yanlış olmasına neden olabilir. Ardından "Çalıştır" NA kontağı açılır ve devre mantığı pasif durumuna geri döner.
Yukarıdakiler şu işlevi yapar: Çalıştır = (Başla mantıksal VEYA Çalıştır) mantıksal VE (mantıksal DEĞİL Dur)
Bu mandal yapılandırması, merdiven mantığında yaygın bir deyimdir. Ayrıca “mühürleme mantığı” da denir. Mandalı anlamanın anahtarı, "Başlat" anahtarının anlık bir anahtar olduğunu kabul etmektir (kullanıcı düğmeyi bıraktığında, anahtar tekrar açılır). "Çalıştır" solenoidi devreye girer girmez, solenoidi kilitleyen "Çalıştır" NA kontağını kapatır. Açılan "Başla" düğmesinin hiçbir etkisi yoktur.
 Not: Bu örnekte, "Çalıştır", programlanabilir mantık denetleyicisindeki bir bit'in durumunu temsil ederken, "Motor" motorun gerçek dünya devresini kapatan gerçek dünya rölesine gerçek çıktıyı temsil eder.
Güvenlik nedenleriyle bir acil durdurma ("ES") butonu, "Başla" anahtarıyla seri kablolu bağlanabilir ve röle mantığının bunu yansıtması gerekir.


### Karmaşık mantık.
Merdiven mantık programındaki iki basamağın nasıl görünebileceğine dair bir örnek aşağıda verilmiştir. Gerçek uygulamalarda yüzlerce veya binlerce basamak olabilir.
Genelde karmaşık merdiven mantığı soldan sağa ve yukarıdan aşağıya "okunur". Basamakların her biri değerlendirilirken bir basamağın çıkış bobini, merdivenin bir sonraki aşamasına girdi olarak verilir. Karmaşık bir sistemde, bir merdiven üzerinde değerlendirme sırasına göre numaralandırılmış birçok "basamak" olur:
 - YÖNLENDİR 
Bu, basamak 2 için biraz daha karmaşık bir sistemi gösterir. İlk satır değerlendirildikten sonra çıkış bobini "A/C", basamak 2'ye beslenir, daha sonra değerlendirilir ve çıkış bobini "Soğutma" bir çıkış cihazı olan "Kompresöre" veya merdivendeki 3. basamağa beslenebilir. Bu sistem çok karmaşık mantık tasarımlarının parçalanmasına ve değerlendirilmesine olanak tanır.


### Ek işlevsellik.
PLC üreticisi tarafından özel bir blok olarak merdiven mantığı uygulamasına ek işlevsellik eklenebilir. Özel bloğa güç verildiğinde önceden belirli argümanlar üzerinde kodu yürütür. Bu argümanlar özel blok içinde görüntülenebilir.
Bu örnekte sistem, iç ve uzaktan kilit açma düğmelerine kaç kez basıldığını sayar. Bu bilgi, A ve B bellek konumlarında saklanır. C Bellek konumu, kapının elektronik olarak toplam kaç kez açıldığını bellekte saklar.
PLC'lerin zamanlayıcıları, aritmetik işlemcileri, karşılaştırıcıları, tablo aramalarını, metin işleyicileri, PID kontrolü ve filtreleme fonksiyonlarını içeren birçok özel bloğu vardır. Daha güçlü PLC'ler bir grup dahili bellek konumunda çalışabilir ve bir dizi adres üzerinde, örneğin bir fiziksel sıralı tambur kontrolörünü veya bir sonlu durum makinesini simüle etmek için işlem yürütebilir.
Bazı durumlarda kullanıcılar etkin bir şekilde alt rutinler veya makroları olan kendi özel bloklarını tanımlayabilirler. Yüksek hızlı yürütme ile birlikte özel bloklardan oluşan geniş kitaplık çok karmaşık otomasyon sistemlerini uygulamak için PLC'lerin kullanılmasına imkan vermiştir.


## Sınırlamalar ve ardıl diller.
Merdiven gösterimi, yalnızca ikili değişkenlerin gerekli olduğu ve ikilinin birbirine kenetlenmesi ve sıralanmasının birincil kontrol sorunu olduğu sorunları kontrol etmek için en uygunudur. Tüm paralel programlama dili'leri gibi, işlemlerin sıralı düzeni tanımsız veya belirsiz olabilir; beklenmedik sonuçlar üretebilecek mantık yarış koşulları mümkündür. Bu sorunu en iyi şekilde önlemek için karmaşık basamaklar birkaç basit adıma bölünür. Bazı üreticiler bir basamağın yürütme sırasını açıkça ve tamamen tanımlayarak bu sorundan kaçınır, ancak programcılar yine de ortaya çıkan karmaşık semantiği tam olarak kavramakta sorun yaşayabilirler.
Analog büyüklükleri ve aritmetik işlemleri merdiven mantığında ifade etmesi hantaldır ve her üreticinin bu problem için notasyonu genişletmede farklı yolları vardır. Diziler ve döngüler için genellikle sınırlı destek vardır ve diğer dillerden dizine alınmış değişkenlerin kullanımını gerektiren durumların ifadesi kodun büyümesine neden olur.
Mikroişlemciler daha güçlü hale geldikçe sıralı fonksiyon şeması ve fonksiyon blok şeması gibi gösterimler bazı sınırlı uygulamalar için merdiven mantığının yerini alabilir. 
Bazı yeni PLC'ler programlamanın tamamını veya bir kısmını BASIC, C veya gerçek zamanlı uygulama ortamı için uygun bağlamlı diğer programlama diline benzeyen bir lehçede yürütebilir.


## Popülerlik.
2019'da IEEE Spectrum, popüler programlama dilleri listesinde merdiven mantığını 52 dilden 50.'si olarak sıraladı.