PLC açılımı İngilizce de Programmable Logic Controller, Türkçe de ise Programlanabilir Mantıksal Denetleyici olarak bilinen, fabrikalardaki imalat hatları veya makinelerin kontrolü gibi proseslerin denetiminde kullanılan özel bir bilgisayardır. Yazımızda içinde bir mikroişlemcisi olan ve karmaşık sistemlerin daha kolay bir şekilde programlanmasına yardımcı olan PLC hakkında bilgilere yer vereceğiz.
PLC Nedir?
PLC hakkında detaylı bilgilere inmeden önce PLC nedir sorusunun net bir şekilde cevaplanması gerekir. İnsan gücünü neredeyse yarıya indirebilen, endüstrinin birçok alanında yaygın olarak kullanılmakta olan PLC, fabrikalardaki üretim bölümlerinde veya makinelerin kontrolü gibi işlemlerin denetiminde kullanılan bir otomasyon cihazıdır.
Aşağıda PLC’nin ne olduğunu iyi bir şekilde anlatan temel bir videoya yer verdik.
PLC’ler genel kullanımlı bilgisayarların aksine birçok girişi ve çıkışı (I/O) olacak şekilde düzenlenir ve elektriksel gürültülere, sıcaklık farklarına, mekanik darbe ve titreşimlere karşı daha dayanıklı olacak şekilde tasarlanırlar. Farklı markaların PLC’leri kendilerine göre bir işletim sistemi yüklerler. Bu denetleyici sistem, giriş bilgilerini gözle görülmeyecek hızlarla tarayarak buna uygun çıkış bilgilerini gerçek zamana yakın cevap verecek şekilde çalışır.
Kısa sürede daha çok ve daha kaliteli ürün üretme, çok düşük hata oranlarıyla üretim yapma gibi amaçlara sahip olan PLC, merkezi işlem birimi (CPU), bellek birimi (RAM,ROM,PROM vb.. ) giriş birimi (input ) ve çıkış birimi (output) olmak üzere 4 bölümden oluştuğundan bahsedebiliriz şimdi gelin bu bölümlere kısaca değinelim.


Merkezi işlem birimi: PLC’nin çalışmasını düzenleyen tüm aritmetik ve mantıksal işlemleri gerçekleştiren; zamanlama, sayma gibi görevleri üstlenen bir birimdir.
Bellek birimi: Giriş görüntü, program belleği ve veri gibi bölümlere ayrılır. Her bellek alanının farklı bir işlevi vardır. PLC’ler genelde EPROM, bellek elemanı gibi kullanılır; sinilebilir, tekrar yazılabilir, programlanabilir.
Giriş birimi: Kumanda edilen sistemle ilgili analog işaretleri PLC’nin anlayacağı lojik gerilim seviyelerine dönüştürülen birime verilen isimdir.
Çıkış birimi: PLC’de hesaplanan çıkış noktalarına ilişkin lojik gerilim voltajını, sistemdeki kontaktör, röle gibi sürmeye uygun elektriksel işaretlere dönüştüren birime denir.


PLC nasıl ortaya çıktı?
1960 yılında yüksek verimlilik, güvenilirlik ve yeni devreler gibi üstünlükleri ile birlikte bilgisayarlar kullanılmaya başlandı. Buda beraberinde endüstriyel üretimde otomasyonu ortaya çıkardı. 1960 yılı ortalarında bilgisayar teknolojisi ile klasik kumanda devreler (röle, kontaktör) karışımı bir programlanabilen kumanda ve buna bağlı olarak programlanabilir kumanda cihazının (PLC) yapım fikri ortaya çıktı.
1969 yılında, klasik (Elektrik) kumandanın Elektronik karşılığı olan ilk PLC yapıldı. 1978 yılında ise dört yıllık bir çalışmanın ürünü olarak, NEMA (National Electrical Manufacturers Association) kurulu tarafından ilk PLC ’ler piyasaya sürüldü.
PLC nasıl çalışır ve nasıl programlanır?
PLC’nin yapmasını istediğimiz işlevi, örneğin bir motor sürücünün kontrolünü, üzerinde yer alan giriş ve çıkışları değiştirecek şekilde programlar oluşturarak kontrol ediyoruz. Günümüzdeki çoğu mikro kontrolcü, giriş/çıkış gerilimi olarak 3.3V veya 5V seviyelerini kullanıyorken, PLC’lerde ise bu gerilim seviyesi 24V civarındadır.
PLC’lerin içerisinde tıpkı bilgisayarlarımızda olduğu gibi bir işlemci, programların saklanması ve çalışması için gerekli RAM ve ROM bellekler, giriş/çıkış modülü, haberleşme modülleri gibi bileşenler bulunur. PLC’nin en büyük özelliği ise, verilen program komutlarının gerçek zamanlı olarak işlenmesi, ve mümkün olan en kısa süre içerisinde giriş/çıkış ve haberleşme gibi dış dünya ile bağlantılı modüllere gönderilerek fonksiyonların gerçekleşmesini sağlamasıdır. Böylelikle zamanlamanın kritik olduğu endüstriyel uygulamalarda kullanılabilirler.
PLC çalışırken giriş değerlerini okur ve girişlerin okunduğu andaki lojik değerlerini 1 ve 0 olacak şekide hafızada tutar sonrasında yazılan programın türüne göre bu girişleri yorumlar. Daha sonrasında haberleşme işlemleri yapılır ve programlanan çıkışlar lojik 1 veya 0 ya da programın tipine göre 24V veya 0V olacak şekilde ayarlanır. Bu işlem milisaniyeler mertebesinde tamamlanır.


PLC’lerin röle tabanlı lojik devrelerin yerini aldığından bahsetmiştik. PLC’lerin röle tabanlı lojik devrelerin yerini almasından dolayı programlanırken sıklıkla ladder logic adı verilen açık ve kapalı anahtar sembollerinden oluşan bir programlama dili kullanılır. Bu dil sayesinde çalışanlar üst düzey programlama bilgisine sahip olmadan PLC’leri programlayabilirler. Daha gelişmiş kullanıcılar için bilgisayar programlamada kullandığımız C diline benzer diller ile de PLC programlama yapılabilir.
PLC Programlama Dilleri
PLC’ler sahadan ya da herhangi bir sistemden aldıkları bilgileri çalıştırdıkları yazılım aracığıyla değerlendirerek sahaya ya da bağlı oldukları sisteme çıkış sağlayan cihazlardır. Günümüzde en yoğun olarak kullanılan PLC yazılımı Ladder’dır. Bu yazılım ile elektrik şemasına benzer bir yapıda sistemin değerlendirilmesi mümkün olmaktadır.
Piyasada bulunan farklı marka PLC’lerin Ladder yazılımları kendilerine özgü olmakla birlikte genel işleyiş mantıkları benzerdir. Ladder dışında kullanılan PLC yazılımlarını da ST (Structured text), FBD (Function block diagram), SFC (Sequential function), IL (Instruction list) olarak sıralayabiliriz. Ladder programlamanın yaygın olduğu bilinen bir gerçek ancak, hangi PLC yazılımının kullanılması gerektiğinin programı yazan kullanıcıya ve projeye bağlı olarak değiştiği de unutulmamalı.


Ladder Programlama: Ladder lojikte temel olarak NO (normally open, normalde açık devre) ve NC (normally closed, normalde kısa devre) kontaklar ve çıkış için coil’ler bulunur. Bellek adresleri ve fiziksel giriş/çıkışlar kontak veya coil (çıkış) olarak program içerisinde kullanılabilir. İki adet kontağın seri bağlanması lojik “ve” işlemi, paralel bağlanması ise “veya” işlemine denk düşer. Bu sayede lojik işlemleri gerçekleştirebiliriz. Ayrıca aritmetiksel toplama, çarpma ve bölme işlemleri veya on-delay timer (gecikme bloğu), adres taşıma gibi başka özel fonksiyonlar da ladder diyagramına eklenebilmektedir.


Aşağıda ladder diyagramı ile oluşturulan start-stop butonlu kontrol devresi verilmiştir. Bu devrede görülen çıkış coili olan M0.0 start butonunun altına paralel bağlanarak işlemin bir döngü halinde çalışması amaçlanmıştır bu işleme ‘mühürleme’ adı verilir.
Yukarıda verilen start-stop kontrol devresinde start butonu NO, yani normal durumda açık olarak, stop butonu da NC yani normal durumda kapalı olarak seçilmiştir. Sol taraftaki hattı güç sinyali, koyduğumuz kontakları ise birer anahtar olarak düşünürsek, en sağda yer alan çıkışlara gücün ulaşması için koyduğumuz anahtarların tamamından geçmesi gerekecek şekilde bir sinyal akışı gerçekleşecektir. Yani start butonu 1 olduğunda ve stop butonu 0 olduğunda, M0.0 çıkışı aktif olacak, bir kere aktif olan bu çıkış sayesinde start butonuna paralel bağlamış olduğumuz M0.0 girişi de sürekli olarak aktif kalacağından stop butonuna basılana kadar motor çalışmaya devam edecektir. Stop butonunun bir kere basılması durumunda hat kesilecek, dolayısıyla motor çalışmayı durduracaktır.
ST (Structured text) Programlama: Yapısal Metin dediğimiz programlama türü olan ST, programlama dilleri gibi metin editörüne yazılır ve işletilir. Yapısal metin, C programlama dili gibi bir yüksek seviye bir dil olup karmaşık ve zor görevler için kuvvetli bir araçtır. Algoritmaları ve matematiksel fonksiyonları kullanabilmemizin yanı sıra döngüler gibi tekrarlayıcı görevleri yerine getiririz. Burada giriş ve çıkışların yanı sıra değişkenler de kullanılır. Biz burada görsel programlamanın aksine yapılacak bütün işler için satır satır kod yazmamız gereklidir. FOR, WHILE, IF, ELSE, ELSE IF ve CASE gibi döngü ve karar komutları bulunur.
FBD (Function block diagram): Bir diğer kodlama dili FBD ise daha kolay bir ara yüze ve daha az karmaşık bir yapıya sahiptir. Her block diyagramı farklı özelliklere sahiptir bu block diyagramlarının nasıl kullanılacağını unutmanız durumunda PLC yazılımın içindeki ‘help’ komutunun yardımıyla bloğun nasıl çalıştığı, hangi hafıza birimlerine uygun olduğu gibi sorulara kolaylıkla cevap bulunabilir.
Aşağıda FBD’ı ile programlamanın nasıl olduğuna dair kafamızda bir şeyler canlanması adına bir örneğe yer verilmiştir, Phoenix Contact markasına ait olan PC Worx programında yazılan bu örnekte motorun 3 saniye sağa çalışıp 1 saniye durması ve bu döngüye 3 kez tekrarlaması hedeflenmiştir. Şekilde de görülebileceği üzere PC Worx üzerinden giriş ve çıkışlara değerler atanabilir ve bu değerleri yine yazılıma ait olan EasySim seçeneğinden takip edebiliriz.


SFC (Sequential function): Adımlara ayrılabilen süreçleri programlamak için kullanılabilir. SFC’nin ana bileşenleri şunlardır:
- -İlişkili eylemlerle ilgili adımlar
- -İlişkili mantık koşullarıyla geçişler
- -Adımlar ve geçişler arasındaki yönlendirilmiş bağlantılar
IL (Instruction list): IL’ler grafiksel bir programlama dili değildir. Bunun yerine, çoğu derleme dili programlamasına benzerler. Adından da anlaşılacağı gibi, bir program, bir assembly programı ile hemen hemen aynı şekilde listelenen bir dizi talimattır.
PLC Programlamanın Avantajları Nelerdir?
- PLC’lerde bilgiler toplarken ve iletirken yapılan işlem veya süreç değiştirilip kopyalanabilmektir. Bu özellikleri sayesinde oluşturulacak yeni bir uygulamaya kolaylıkla adapte edilebilirler.
- PLC sistemleri modülerdir, yani uygulamanıza en uygun şekilde giriş ve çıkış cihazlarının türlerini karıştırabilir ve daha sonra eşleştirebilirsiniz.
- PLC’ler tasarımları sayesinde zorlu koşullarda çalışabilir ve ısı, soğuk, toz ve nemden korunurlar.
- Kompakt yapılı olan PLC’ler kablolama adedini azalttığı için az yer tutarlar.
- Arıza oranları çok düşüktür, güvenilirdirler ve bakımları kolay olarak nitelendirilebilir.
- Sektörde ABB, Siemens, Schneider, Omron, Mitsubishi gibi şirketler farklı modellerde PLC çözümlerini sunmaktadır. Linklere tıklayarak, firmaların ilgili sayfalarını ziyaret edebilirsiniz.
Bu arada PLC programlama ile ilgili unutmamız gereken olay, her farklı markaya ait PLC’nin programlama ara yüzünün farklı olmasıdır bu nedenle markadan markaya farklılıklar görülür. Örneğin Mitshubishi marka bir PLC için MT Works isimli geliştirme programını kullanılırken, Siemens PLC’ler için çalışıyorsanız TIA Portal isimli yazılım kullanılır.
Birçok markaya ait PLC çeşitleri olduğundan bahsetmiştik peki doğru PLC seçilirken nelere dikkat edilmeli?
- İşlemci hızı ve dahili röle sayıları
- Haberleşme imkanları ve özellikleri
- Kullanımda kolaylık ve maliyet
- Program hafızası ve program yedekleme özelliği
- Timer (Zamanlayıcı), giriş ve çıkış sayıları ve bunların elektriksel özellikleri
- Besleme gerilimi, teknik destek, şifre koruması gibi özellikler dikkate alınarak yapılacak işe uygun PLC seçilmelidir.
PLC Kullanım Alanları ve Fiyatları nelerdir?
PLC’ler çok çeşitli alanlarda kullanılabilirler bunlara örnek olarak havalandırma ve soğutma tesisleri, paketleme ve ambalaj sistemleri taşıma sistemleri, otomobil endüstrisi, petrol dolum ve yıkama tesisleri, çimento sanayisi, klima ve asansör tesisleri, elektropnömatik ve hidrolik sistemler aydınlatma ve vinç tesisleri, imalat, tarım, tekstil ve her türlü makine ile yapılan üretim verilebilir.
Çok fazla PLC markası ve bunlarında amaçlarına göre değişiklikler gösteren çeşitleri olması sebebiyle belirli bir PLC fiyatı söylemek gerçekten zor ve açıkçası çok mantıklı değil. Linkteki siteye tıklayarak amacınıza uygun PLC fiyatları hakkında fikir sahibi olabilirsiniz.
PLC programlamayı öğrenmek istiyor iseniz, PLC eğitim setlerine de bu linkten ulaşabilir ve sizler de PLC dünyasına ilk adımınızı atabilirsiniz.
Kaynakça: https://maker.robotistan.com/plc-nedir-plc-programlama-teknikleri-ve-ozellikleri/
https://elektrikinfo.com/plc-nedir/
https://www.elektrikport.com/teknik-kutuphane/plc-nedir-ne-ise-yarar/15033#ad-image-0
https://www.uzarotomasyon.com.tr/blog/10/plc-nedir
https://www.mediaclick.com.tr/tr/blog/plc-nedir
https://www.muhendisbeyinler.net/plc-programlama-dilleri-ve-sistemleri/
https://www.motioncontroltips.com/why-is-the-instruction-list-il-language-for-plcs-falling-out-of-favor/
https://www.mekatronikmuhendisligi.com/plc-nin-tarihcesi.html
https://control.com/technical-articles/an-overview-of-sequential-function-chart-sfc-programming/
https://www.kontrolkalemi.com/plc-nedir-plc-ne-ise-yarar/