Siemens PLC’lerden .NET ile veri okuma/yazma yöntemleri

Metin muğlu
Ford Otosan
Published in
8 min readJun 14, 2024

Otomasyon dünyasında, IT dünyasında olduğu gibi farklı ihtiyaçlara hizmet sunmayı amaçlayan oldukça fazla donanımsal çeşitlilik mevcuttur. İhtiyaçlara çözüm geliştirilirken projelendirme aşamasında uygun donanım tercihleri ile beraber geliştirme ortamları da seçilmiş olur. Donanım üreticileri genelde PLC’ler ile beraber PLC’yi programlayacakları IDE’leri de tasarlar ve lisanslar. Donanım güncellemeleri sürekli devam ederken aynı şey IDE’ler için de geçerlidir. Bu noktada kısaca PLC’den bahsetmek faydalı olacaktır.

PLC (Programmable Logic Controller) Tanımı ve Yapısı

PLC’ler, otomasyon sistemlerinde kullanılan bilgisayar tabanlı kontrolörlerdir. Makineleri ve prosesleri kontrol etmek için kullanılırlar. PLC’ler, geleneksel röleler ve kontakörlerin yerini almıştır ve daha fazla esneklik, fonksiyon ve programlanabilirlik sunarlar. PLC’lerin donanımsal bileşenleri, proseslerin kontrol edilmesi ve otomasyon sistemlerinin sağlanması için gerekli olan temel işlevleri yerine getirir. Aşağıda gördüğünüz siemens plc’ler için oluşturulmuş yapısal işleyiş görselidir. Diğer PLC çeşitlerinde de benzer bir yapı vardır.

İşletim sistemi ve kullanıcı programı

Farklı PLC modelleri, farklı donanımsal bileşenlere ve özelliklere sahip olabilir. PLC’lerin yapısal bileşenleri genellikle:

1. Merkezi İşlem Birimi (CPU) :

PLC’nin “beynini” oluşturan CPU, programın talimatlarını işler, prosesin durumunu izler ve kontrol sinyallerini üretir. CPU’nun hızı ve gücü, PLC’nin performansını ve işleyebileceği veri miktarını önemli ölçüde etkiler. Modern Siemens PLC’lerde, yüksek işlem gücü ve gelişmiş komut kümeleri sunan çeşitli CPU mimarileri kullanılır.

2. Giriş Modülleri:

Giriş modülleri, sensörler, anahtarlar ve diğer alan cihazlarından gelen sinyalleri alır ve bunları CPU’ya iletmek için uygun formata dönüştürür. Farklı tipte giriş modülleri, farklı sinyal türlerini işleyebilir:

  • Dijital Giriş Modülleri: Anahtarlar, butonlar ve limit anahtarları gibi dijital sinyalleri algılar.
  • Analog Giriş Modülleri: Sıcaklık, basınç, akım ve voltaj gibi analog sinyalleri işler.

3. Çıkış Modülleri:

Çıkış modülleri, CPU’dan gelen komutları alır ve motorlar, valfler, röleler ve diğer aktüatörleri kontrol etmek için uygun sinyallere dönüştürür. Farklı tipte çıkış modülleri, farklı cihazları kontrol edebilir:

  • Dijital Çıkış Modülleri: Röleler, kontakörler ve solenoidleri gibi dijital cihazları kontrol eder.
  • Analog Çıkış Modülleri: Motorların hızı, valflerin konumu ve ısıtma elemanlarının gücü gibi analog parametreleri kontrol eder.

4. Güç Kaynağı:

Güç kaynağı, PLC’nin çalışması için gerekli olan gücü sağlar. Farklı voltaj seviyelerini destekleyen ve gürültüden izole edilmiş AC veya DC güç kaynakları kullanılabilir. Güç kaynağının doğru seçimi, PLC’nin güvenilir ve kararlı çalışması için kritik önem taşır.

5. Programlama ve İletişim Portları:

Programlama portu, PLC’nin programlanabilmesi için kullanılan bağlantı noktasıdır. Genellikle bir bilgisayara bağlanmak için kullanılır. Farklı programlama portları, farklı iletişim protokollerini destekleyebilir. Siemens PLC’ler, çeşitli iletişim portları ile donatılmıştır. Bu portlar, diğer cihazlarla (örneğin, insan-makine arayüzü (HMI) panelleri, SCADA sistemleri veya diğer PLC’ler) iletişim kurmak için kullanılır. Yaygın olarak kullanılan iletişim protokolleri şunlardır:

  • Profibus: Siemens’e özgü bir saha veri yolu protokolüdür.
  • Profinet: Ethernet tabanlı bir saha veri yolu protokolüdür.
  • Modbus: Endüstriyel otomasyonda yaygın olarak kullanılan bir seri iletişim protokolüdür.

PLC’lerin Özellikleri:

  • Programlanabilirlik: PLC’ler, özel bir programlama dili kullanılarak programlanabilirler. Bu sayede, farklı prosesleri kontrol etmek için kullanılabilirler.
  • Modülerlik: PLC’ler, modüler bir tasarıma sahiptir. Bu sayede, ihtiyaca göre genişletilebilirler. I/O olarak kullanılan PLC’ye göre limitleri vardır aynı şekilde networksel bir genişlemede yapılabilir.
  • Giriş/Çıkış (I/O): PLC’ler, sensörlerden ve diğer cihazlardan gelen sinyalleri alabilir ve aktüatörleri kontrol edebilirler. Bu bilgileri bağlı oldukları network aracılığı ve haberleşme protokolleri ile farklı sistemlere gönderebilir ve okuyabilirler.
  • Güvenilirlik: PLC’ler, zorlu ortamlarda çalışacak şekilde tasarlanmıştır ve uzun ömürlüdür.

PLC’lerin Başlıca Kullanım Alanları:

  • Endüstriyel üretim: PLC’ler, otomotiv, tekstil, gıda, ilaç ve diğer birçok endüstriyel üretim prosesinde kullanılır.
  • Bina otomasyonu: PLC’ler, ısıtma, havalandırma ve klima (HVAC) sistemlerini, aydınlatma sistemlerini ve diğer bina sistemlerini kontrol etmek için kullanılır.
  • Altyapı: PLC’ler, su ve atık su arıtma tesisleri, elektrik dağıtım şebekeleri ve trafik kontrol sistemleri gibi altyapı sistemlerini kontrol etmek için kullanılır.

PLC’nin Çalışma Prensibi:

PLC’nin çalışma prensibi, aşağıdaki adımlardan oluşmaktadır:

  1. Giriş Sinyaleri Okunması: Giriş birimi, sensörler, anahtarlar ve diğer alan cihazlarından gelen sinyalleri okur ve bu sinyalleri CPU’ya aktarır. Bu bilgiler, bir sonraki tarama çevrimine kadar sabit kalır ve programın yürütülmesinde kullanılır.
  2. Programın Yürütülmesi: Program belleğinde yer alan komutlar, CPU tarafından sırayla yürütülür. Bu komutlar, PID kontrol, hareket kontrolü, matematiksel işlemler, iletişim ve veri işleme gibi çeşitli fonksiyonları içerebilir.
  3. Çıkış Sinyaleri Oluşturulması: Programın yürütülmesi sonucunda elde edilen bilgiler, CPU tarafından işlenir ve çıkış birimine aktarılır.
  4. Çıkış Sinyaleri Gönderilmesi: Çıkış birimi, CPU’dan aldığı bilgileri kullanarak bağlı olduğu röle, kontaktör ve diğer aktüatörleri kontrol eder. Bu sayede, prosesin istenen şekilde yönetilmesi sağlanır.

→ Sonraki Tarama Çevrimi: Bir tarama çevrimi tamamlandıktan sonra, bir sonraki tarama çevrimine geçilir. Bu döngü, program durdurulana veya PLC stop konumuna alınıncaya kadar devam eder. Safety PLC’lerin yapısı daha farklıdır ayrı bir thread ile daha kısa zamanlı bir cycle çevrimiyle döngülerini tamamlarlar.

PLC Çalışma Yapısı

PLC’lerin Avantajları:

  • Esneklik: PLC’ler, farklı prosesleri kontrol etmek için kullanılabilirler.
  • Maliyet etkinliği: PLC’ler, geleneksel kontrol sistemlerine kıyasla daha uygun fiyatlıdır.
  • Güvenilirlik: PLC’ler, zorlu ortamlarda çalışacak şekilde tasarlanmıştır ve uzun ömürlüdür.
  • Bakım kolaylığı: PLC’ler, modüler bir tasarıma sahiptir ve kolayca bakımı yapılabilir.

PLC’lerin Dezavantajları:

  • Karmaşıklık: PLC’ler, geleneksel rölelere kıyasla daha karmaşıktır.
  • Programlama becerisi: PLC’leri programlamak için özel programlama dilleri öğrenmek gerekir.

PLC çeşitleri ve amaçlarından kısaca bahsedelim

Otomasyon sektöründe birçok farklı PLC üreticisi bulunmaktadır. Bunlardan en popüler olanları şunlardır:

Avrupa:

  • Siemens: SIMATIC S7 serisi PLC’ler, en çok kullanılan PLC’lerden biridir. Dayanıklılıkları, geniş fonksiyon yelpazeleri ve programlama kolaylıkları ile bilinirler. Özellikle Türkiye’de otomotiv sektöründeki çoğu fabrikada kullanılır.
Siemens PLC çeşitleri
  • Schneider Electric: Modicon M serisi PLC’ler, kompakt yapıları ve uygun fiyatları ile öne çıkar. Özellikle küçük ve orta ölçekli otomasyon sistemlerinde yaygın olarak kullanılırlar.
  • ABB: AC500 serisi PLC’ler, modüler yapıları ve esneklikleri ile dikkat çeker. Karmaşık otomasyon sistemlerinde sıklıkla tercih edilirler.
  • Rockwell Automation: Allen-Bradley ControlLogix serisi PLC’ler, yüksek performansları ve güvenilirlikleri ile bilinir. Özellikle büyük ölçekli ve kritik otomasyon sistemlerinde kullanılırlar.

Asya:

  • Omron: Sysmac CP serisi PLC’ler, kompakt yapıları ve programlama kolaylıkları ile öne çıkar. Özellikle küçük ve orta ölçekli otomasyon sistemlerinde yaygın olarak kullanılırlar.
  • Mitsubishi Electric: MELSEC FX serisi PLC’ler, uygun fiyatları ve geniş fonksiyon yelpazeleri ile bilinir. Küçük ve orta ölçekli otomasyon sistemlerinde sıklıkla tercih edilirler.
  • Panasonic: FP serisi PLC’ler, kompakt yapıları ve kullanımı kolay arayüzleri ile dikkat çeker. Özellikle basit otomasyon sistemlerinde yaygın olarak kullanılırlar.
  • LG Industrial Systems: Xact serisi PLC’ler, yüksek performansları ve güvenilirlikleri ile bilinir. Özellikle büyük ölçekli ve kritik otomasyon sistemlerinde kullanılırlar.

Amerika:

  • Beckhoff: TwinCAT serisi PLC’ler, açık mimarileri ve modüler yapıları ile öne çıkar. Özellikle endüstriyel PC tabanlı otomasyon sistemlerinde yaygın olarak kullanılırlar.
  • Koyo: PLC-XG serisi PLC’ler, uygun fiyatları ve geniş fonksiyon yelpazeleri ile bilinir. Küçük ve orta ölçekli otomasyon sistemlerinde sıklıkla tercih edilirler.
  • Automation Direct: CLICK serisi PLC’ler, kompakt yapıları ve programlama kolaylıkları ile dikkat çeker. Özellikle basit otomasyon sistemlerinde yaygın olarak kullanılırlar.

PLC ve DCS Karşılaştırması

PLC’ler (Programlanabilir Mantık Denetleyiciler) ve DCS’ler (Dağıtılmış Kontrol Sistemleri), otomasyonda kullanılan iki önemli kontrol sistemidir. Her ikisi de farklı karmaşıklık seviyelerine sahip fabrikalarda ve üretim proseslerinde kullanılır.

PLC’ler:

  • Daha küçük ve orta ölçekli fabrikalarda yaygın olarak kullanılır.
  • Tek bir makine veya üretim hattını kontrol etmek için idealdir.
  • Göreceli olarak basit programlama ve kurulum gerektirir.
  • Daha uygun fiyatlıdır.
  • Modüler yapıya sahip olabilirler, bu da ihtiyaca göre genişletilebilirler.

DCS’ler:

  • Karmaşık ve büyük ölçekli fabrikalarda kullanılır.
  • Birbirleriyle iletişim halinde olan birden fazla PLC’yi koordine eder.
  • Geniş çaplı veri toplama ve analiz imkanı sunar.
  • Karmaşık algoritmalar ve optimizasyon teknikleri kullanılabilir.
  • Daha pahalıdır.
  • Kurulumu ve programlanması daha karmaşıktır.

Genel olarak:

  • PLC’ler basit ve maliyet etkin çözümler sunarken, DCS’ler daha fazla esneklik ve kontrol imkanı sunar.
  • Hangi sistemin daha uygun olduğu, fabrikanın veya üretim prosesinin karmaşıklığına ve ihtiyaç duyulan kontrol seviyesine bağlıdır.

Büyük ve karmaşık fabrikalarda DCS tercih edilmesinin bazı nedenleri:

  • Büyük ölçekli koordinasyon: DCS’ler, birden fazla PLC’yi koordine ederek karmaşık üretim proseslerini kontrol edebilir.
  • Veri toplama ve analiz: DCS’ler, sensörlerden ve diğer cihazlardan gelen geniş miktarda veriyi toplayabilir ve analiz edebilir. Bu da operatörlerin prosesi optimize etmesine ve sorunları önceden tahmin etmesine yardımcı olur.
  • Güvenlik ve hata toleransı: DCS’ler, kritik sistemlerin arızalanması durumunda yedekleme ve hata toleransı sağlayabilir.
  • Gelişmiş fonksiyonlar: DCS’ler, PLC’lerde bulunmayan gelişmiş fonksiyonlar sunabilir, örneğin:
  • Gelişmiş PID kontrol algoritmaları (Yeni PLC modellerinde desteklenebiliyor.)
  • Modelleme ve simülasyon
  • Enerji optimizasyonu

Genel olarak otomasyon OT dünyasına bir bakış atmış olduk. Şimdi IT ile OT birleştiren yazılımlarımız için kullandığımız kütüphanelerden ve veriyi nasıl entegre edeceğimizden bahsedelim. Bunun için öncelikle Otomotiv sektöründe en çok tercih edilen siemens PLC’leri üzerinden örnekler yapacağız.

PLC veri tutma yapıları incelediğimizde kullanılan donanım modeline göre destek verilen veri tiplerinin değiştiğini görüyoruz. Veri okuması yapılan kütüphanelerde de okuma yapılacak PLC’nin donanım özelliklerini paremetre olarak veriyoruz. Donanım özelliklerine göre destek verilen tiplerin ayrıştığına dikkat edilmeli. Aynı zaman da sık kullanılan tiplerin tüm CPU modellerinde desteklendiğini görüyoruz.

yazacağımız uygulama .net ekosisteminde olacak ve kütüphanemiz;

kütüphane tercihi isteğe bağlı değişebilir genel olarak kullanım şekilleri birbirine çok benziyor.

PLC’den bir DataBlock içerisindeki bir Bit değerini okuyalım. Diğer veri tipleri için kütüphane içerisinde göndermeniz gereken bilgiler yer alıyor.
Burada ihtiyaç duyacağımız bilgiler;

CPU Type, IP, Rack, Slot → PLC erişimi için gerekli olan bilgiler.
DbAdres, StartByte, BitIndex → PLC belleğinden okunacak veri için gerekli(bit)
DbAdres, StartByte, length→ PLC belleğinden okunacak veri için gerekli(string…)

Dikkat edilmesi gereken noktalardan en önemlisi Okunacak veri ile CPU tipinin birbirini desteklemesi. Basit tipleri (Bool,Byte,Word,Dword,Char) tüm PLC’ler desteklerken PLC tipine göre özel tiplerinde olduğunu bilmeliyiz.

Okunacak veya yazılacak veri için PLC tarafında verinin hazır hale getirilmesi. (DataBlock bazında check yapılmalı.)

PLC ile yazılan uygulamanın aynı networkte olmalı veya PLC CP kart ile IP atayarak erişilebilir hale getirilmeli.

PLC erişimi genelde üretime etki eder, bu yüzden yapılan erişimlerde PLC bağlantı sayısını kapatmadan açma durumlarında limite eriştirerek üretimi durdurma veya farklı hatalara yol açma riski var. Bu yüzden erişimler sırasında mutlaka ‘Using’ bloğu kullanılmalı veya

if (plc.IsConnected)
{
plc.Close();
}

yukarıdakine benzer bir bağlantı kontrolü kullanılmalı. Bağlantı açık ise okuma/yazma işlemleri sonrası kapatılmalı. Bağlantı sayısı limite ulaştığında tekrar bağlantı yapılamaz ve Seviye2 katmanında diğer uygulamalar da PLC’ye erişim problemi yaşar. Mimaride limit problemi yok ise ve sürekli okuma yazma işlemleri yapılacaksa aynı bağlantı üzerinden devam edilebilir.

plc.ReadAsync(DataType.DataBlock, Convert.ToInt32(DbAdress), Convert.ToInt32(StartByte), vartypeBit, 1, Convert.ToByte(BitIndex));

‘string’ veri tipi için okuma yaparsak;

--

--