Geri Dön

Integration of modern software tools into programming and development approaches used in industrial control applications

Endüstriyel kontrol uygulamalarında kullanılan programlama ve geliştirme yaklaşımlarına modern yazılım araçlarının entegrasyonu

  1. Tez No: 1002707
  2. Yazar: FEHMİ CAN AY
  3. Danışmanlar: DOÇ. DR. ALİ FUAT ERGENÇ
  4. Tez Türü: Yüksek Lisans
  5. Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
  6. Anahtar Kelimeler: Bilgisayar yazılım dilleri, Bilgisayar yazılımları, Mimari yazılımlar, Nesneye dayalı yazılım, Computer software languages, Computer softwares, Architectural softwares, Object oriented software
  7. Yıl: 2026
  8. Dil: İngilizce
  9. Üniversite: İstanbul Teknik Üniversitesi
  10. Enstitü: Lisansüstü Eğitim Enstitüsü
  11. Ana Bilim Dalı: Mekatronik Mühendisliği Ana Bilim Dalı
  12. Bilim Dalı: Bilgisayar Yazılımı Bilim Dalı
  13. Sayfa Sayısı: Belirtilmemiş.

Özet

Bu çalışma, güncel endüstriyel kontrol uygulamalarında kullanılan hareket kontrol sistemlerinde gözlemlenen bazı eksiklikler ile bu sistemlerin geliştirilmesiyle sağlanabilecek potansiyel katkılar dikkate alınarak gerçekleştirilmiştir. Çalışmanın temel yaklaşımı, modern yazılım dünyasında yaygın olarak kullanılan yüksek seviyeli programlama dillerinin sunduğu geniş olanakların, geleneksel olarak bu teknolojilerden sınırlı ölçüde faydalanabilen endüstriyel kontrol uygulamalarında nasıl etkin bir biçimde kullanılabileceğini ortaya koymaktır. Günümüzde modern kullanıcı arayüzleri çoğunlukla web tabanlı sistemler veya mobil uygulamalar şeklinde karşımıza çıkmaktadır. Ancak modern arayüz kavramı yalnızca görsel tasarımın sadeleştirilmesi ile sınırlandırılmamalı; bu arayüzleri destekleyen arka plan altyapıları da değerlendirilmelidir. Bu kapsamda WebSocket tabanlı haberleşme, HTTP sunucuları, modern web uygulamaları ve mesaj kuyruğu temelli iletişim gibi teknolojiler, çağdaş yazılım sistemlerinin güçlü araçları arasında yer almaktadır. Endüstriyel kontrol uygulamalarında ise bu yaklaşımlar yerine çoğunlukla masaüstü tabanlı yazılımlar ve dosya tabanlı veri aktarım yöntemleri tercih edilmektedir. Geleneksel PLC tabanlı sistemler güvenilir olmakla birlikte, kapalı mimariler, üreticiye bağımlılık ve sınırlı genişletilebilirlik gibi sorunlarla karşı karşıyadır. Modern bir kontrol uygulamasında ise söz konusu yaklaşımlar dışarıdan doğrudan erişime kapalı olacak şekilde çok daha güvenli biçimde ele alınabilmektedir. Endüstriyel kontrol sistemlerinde güvenliğin kritik bir gereksinim olduğu göz önüne alındığında, dünya genelinde geçerliliğini kanıtlamış ve geleneksel yöntemlere kıyasla daha zengin kabiliyetler sunan modern yazılım araçlarının kullanılması, bu alandaki gelişmelere önemli katkılar sağlayacaktır. Modern programlama uygulamalarında yaygın olarak tercih edilen modüler yazılım mimarisi yaklaşımı, bu çalışmaya da dâhil edilmiştir. Günümüzde kullanılan pek çok programlama dilinin tarihsel olarak benzer kökenlere ve ortak tasarım prensiplerine dayandığı bilinmektedir. Bazı yüksek seviyeli programlama dilleri, performans ve donanım erişimi gibi gereksinimler doğrultusunda yerel ve düşük seviyeli dillerle birlikte çalışabilmeye olanak tanıyan native dil desteği sunmaktadır. Bu durum, farklı kökenlerden gelmiş ve farklı topluluklar tarafından geliştirilmiş olsalar dahi, belirli kurallar ve uyumluluk katmanları sağlandığında bu dillerin bir arada kullanılabilmesine imkân tanımaktadır. Bu yaklaşımdan faydalanılarak gerçekleştirilen bu çalışmada, endüstriyel kontrol uygulamaları kapsamında hareket kontrol sistemlerinin yönetimine yönelik üç katmanlı bir yazılım mimarisi tasarlanmış ve gerçeklenmiştir. Sistemin sunum katmanı React ve Material-UI teknolojileri kullanılarak geliştirilmiş web tabanlı bir kullanıcı arayüzünden oluşmaktadır. Orkestrasyon katmanı, Node.js üzerinde çalışan Express tabanlı bir ara yazılım sunucusu olup HTTP yönlendirme, eklenti yönetimi, oturum kontrolü ve veritabanı işlemlerini üstlenmektedir. Yürütme katmanı ise donanım erişimi ve deterministik işlemler için C++ dilinde geliştirilmiş yerel bileşenlerden meydana gelmektedir. Bu üç katman arasındaki bağlantı, N-API dil bağlayıcıları aracılığıyla sağlanmakta olup C++ kodunun doğrudan Node.js ortamından çağrılabilmesine olanak tanımaktadır. Sistemin genişletilebilirliği, eklenti tabanlı bir mimari ile sağlanmaktadır. Bu mimaride arka plan işlevselliği sağlayan bileşenler addon, kullanıcı arayüzü sunan bileşenler ise widget olarak adlandırılmaktadır. Sistemin temel tasarım kararlarından biri, ister bir arka plan servisi ister bir kullanıcı arayüzü bileşeni olsun, tüm modüllerin aynı eklenti altyapısı üzerinden yönetilmesidir. Her modül, hangi katmana ait olduğundan bağımsız olarak aynı manifest yapısıyla tanımlanmakta, aynı bağımlılık çözümleme mekanizmasıyla yüklenmekte ve aynı yaşam döngüsü kurallarına tabi olmaktadır. Bu yaklaşım sayesinde bir C++ native modülü ile bir React uygulaması sistem açısından eşdeğer birer eklenti olarak ele alınmakta ve aralarındaki etkileşim standart HTTP arayüzleri üzerinden sağlanmaktadır. Modüller YAML formatında manifest dosyaları aracılığıyla tanımlanmakta ve bağımlılık çizgesi üzerinde topolojik sıralama kullanılarak doğru sırada yüklenmektedir. Çalışma zamanında yeni modüller yüklenebilmekte veya mevcut modüller kaldırılabilmektedir. Haberleşme altyapısı üç farklı desen üzerine kurulmuştur. HTTP istek-yanıt mekanizması, kullanıcı etkileşimleri ve yapılandırma işlemleri için kullanılmakta olup JSON tabanlı yük formatıyla dil bağımsız erişim sağlamaktadır. WebSocket çift yönlü akış mekanizması, cihaz durumları gibi sürekli güncellenen verilerin düşük gecikmeyle etkin biçimde iletilmesini sağlamaktadır. ZeroMQ mesaj kuyruğu ise yayın-abone deseniyle konu tabanlı yönlendirme yaparak modüller arası veri akışını yönetmektedir. WebSocket sunucusu, ZeroMQ ağına köprü görevi görerek tarayıcı tabanlı istemcilerin doğrudan mesaj kuyruğu altyapısına erişebilmesini mümkün kılmaktadır. Veri yönetimi için SQLite ilişkisel veritabanı kullanılmıştır. Dosya tabanlı yapısı sayesinde kurulum gerektirmeyen bu veritabanı, endüstriyel ortamların ihtiyaç duyduğu basitlik ve taşınabilirliği sağlamaktadır. Referansal bütünlük yabancı anahtarlar ve kademeli silme mekanizmalarıyla korunmakta, tüm veritabanı işlemleri asenkron olarak yürütülmekte ve parametreli sorgularla güvenlik sağlanmaktadır. Çapraz platform desteği açısından sistem; Windows, Linux ve macOS işletim sistemlerinde tek bir kod tabanıyla çalışabilecek şekilde tasarlanmıştır. Platforma özgü farklılıklar, Factory tasarım deseniyle yönetilen platform soyutlama katmanları aracılığıyla ele alınmaktadır. Linux ortamında eklentiler SquashFS dosya sistemi görüntüleri halinde paketlenip bağlanmakta, macOS ortamında çıkartılmakta, Windows ortamında ise ISO montajı ve VM modülü ile güvenli kod izolasyonu sağlanmaktadır. Sistemin endüstriyel ortamda konuşlandırılması, standart endüstriyel bilgisayarlar üzerinde gerçekleştirilmiştir. Her üretim hattı için bir hat kontrol bilgisayarı ve ara yazılım ile web arayüzü için ayrı bir sunucu kullanılmıştır. İstemci erişimi, tesis ağına bağlı herhangi bir iş istasyonundaki web tarayıcıları aracılığıyla sağlanmakta olup istemci tarafında herhangi bir yazılım kurulumu gerekmemektedir. Güvenlik önlemleri kapsamında kimlik doğrulama, rol tabanlı erişim kontrolü, giriş doğrulama ve olay günlükleme mekanizmaları uygulanmıştır. Performans değerlendirmesi sonucunda sistem; HTTP istek gecikmesi 10-100 ms, WebSocket güncelleme gecikmesi 5-15 ms, ön yüz oluşturma hızı 60 FPS, bellek tüketimi 200-300 MB ve boşta CPU kullanımı yüzde 2-5 değerlerini sergilemiştir. Geleneksel masaüstü tabanlı yaklaşımlarla karşılaştırıldığında önerilen sistem; merkezi sunucu konuşlandırması, tarayıcı tabanlı platformdan bağımsız erişim, tek noktadan güncelleme, birleşik çoklu hat yönetimi ve HTTP tabanlı entegrasyon kolaylığı gibi avantajlar sunmaktadır. Sonuç olarak bu çalışma, web teknolojilerinin endüstriyel ortamlarda güvenilir biçimde çalışabildiğini ve üç katmanlı mimarinin kaygıların etkin ayrıştırılmasını sağladığını göstermiştir. Eklenti tabanlı sistem, temel işlevselliği bozmadan büyümeye olanak tanımaktadır. Bununla birlikte sistem, sert gerçek zamanlı kontrol için değil gözetimsel kontrol için tasarlanmış olup ağ bağımlılığı ve tarayıcı uyumluluğu gereksinimleri gibi sınırlılıklar taşımaktadır. Endüstriyel yazılımın modern geliştirme pratiklerinden izole kalması gerekmediği, sistemin üretim ortamında çalıştırılması ve operatörlerden alınan olumlu geri bildirimlerle doğrulanmıştır.

Özet (Çeviri)

This study has been conducted by considering certain limitations observed in motion control systems used in state-of-the-art industrial control applications, as well as the potential improvements that can be achieved through the evolution of these systems. The primary objective of this study is to demonstrate how the extensive capabilities offered by high-level programming languages, widely adopted in modern software development, can be effectively utilized within industrial control applications, which have traditionally benefited from such technologies only to a limited extent. Today, modern user interfaces are predominantly realized through web-based platforms and mobile applications. However, the concept of a modern interface should not be restricted solely to visual design and user interaction. The backend infrastructures supporting these interfaces are equally critical. In this context, technologies such as WebSocket-based communication, HTTP services, modern web application frameworks, and message queue–based communication mechanisms represent powerful and mature components of contemporary software systems. Despite these advancements, industrial control applications largely continue to rely on desktop-based software solutions and file-based data exchange methods. While these approaches have proven reliable over time, modern control applications can adopt more secure, flexible, and scalable architectures by restricting direct external access and leveraging network-based communication in a controlled manner. Given that security is a fundamental requirement in industrial control systems, the adoption of modern software tools, whose reliability has been demonstrated globally, can provide significant advantages over traditional methods. The modular software architecture approach, which is widely preferred in modern programming practices, has also been incorporated into this study. Many programming languages in use today share common historical roots and design paradigms. While C++ was developed based on the C programming language, languages such as C\# and Java benefited from the principles introduced by C and C++. Similarly, high-level languages such as JavaScript and Python have been influenced by these programming paradigms. Furthermore, some high-level programming languages provide native language support, allowing low-level and native languages to be utilized within their ecosystems in order to meet performance, determinism, and hardware access requirements. This capability enables programming languages developed by different communities and based on different origins to be used together, provided that appropriate compatibility layers and integration rules are established. By leveraging this approach, the present study aims to provide a guiding perspective on how diverse software components, whether frontend or backend, native or high-level, can be integrated and utilized together within industrial control applications. In contrast to existing state-of-the-art approaches, the main contribution of this study is the design and evaluation of a centralized, extensible, and fully controllable industrial motion control system. The proposed system enables the management of multiple industrial control applications over a unified network infrastructure, supports the active use of modern software tools, facilitates user-friendly interaction, and allows further extensibility and customization of the system architecture.

Benzer Tezler

  1. Intelligent agents based simulation using Jack development environment

    Jack geliştirme ortamında kullanarak akıllı etmenler tabanlı benzetim

    ÇAĞATAY ÇATAL

    Yüksek Lisans

    İngilizce

    İngilizce

    2004

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DOÇ.DR. COŞKUN SÖNMEZ

  2. Oyunlaştırma yöntemlerinin matematik eğitimindeki etkisi; Unıty tabanlı bir eğitim uygulaması üzerine deneysel bir çalışma

    The effect of gamification methods in mathematics education; an experimental study on a Unity-based educational application

    TANSU ULUSOY

    Yüksek Lisans

    Türkçe

    Türkçe

    2026

    Eğitim ve ÖğretimSakarya Üniversitesi

    Bilişim Sistemleri Mühendisliği Ana Bilim Dalı

    DR. ÖĞR. ÜYESİ FATİH ÇALLI

  3. Transonik Eksenel Kompresörün Bütünleşik Tabanlı Şekil Optimizasyonu

    Adjoint Based Shape Optimization of a Transonic Axial Compressor

    ABDURRAHMAN GÜNDÜZ

    Yüksek Lisans

    Türkçe

    Türkçe

    2026

    Makine Mühendisliğiİstanbul Teknik Üniversitesi

    Makine Mühendisliği Ana Bilim Dalı

    PROF. DR. TAHSİN ENGİN

  4. Kırsal bölgelerde bilgi sistemlerinin uygulanması olanakları

    Başlık çevirisi yok

    DURSUN ZAFER ŞEKER

    Doktora

    Türkçe

    Türkçe

    1993

    Jeodezi ve Fotogrametriİstanbul Teknik Üniversitesi

    PROF.DR. M. ORHAN ALTAN

  5. Dönel simetrik elemanların modüler tasarımı CAM-CNC integrasyonu ve simülasyonu

    Modular design, CAM-CNC integration and simulation of rotational parts

    HAKAN MESTÇİ

    Doktora

    Türkçe

    Türkçe

    1994

    Makine Mühendisliğiİstanbul Teknik Üniversitesi

    PROF.DR. MUSTAFA AKKURT