Yöntem makalesi

Uzak Birlikte Çalışabilirlik Protokolü Kullanılarak LabVIEW Uygulamaları İçin Web Tabanlı Arayüzlerin Otomatik Oluşturulmasına Yönelik Bir Protokol

DOI:

10.3791/72765

14 Ağustos 2026

Bu makalede

Özet

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Bu çalışma, iki farklı LabVIEW sistemi (bir fan modeli ve bir doğru akım motor konum kontrol modeli) ile uzaktan birlikte çalışabilirlik protokolü (RIP) tabanlı otomatik Web kullanıcı arayüzü oluşturmayı doğrulamakta ve her iki örneğin yapılandırılması, kaydedilmesi, yayına alınması ve test edilmesi için tekrarlanabilir bir prosedür sunmaktadır.

Özet

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Uzaktan deneysel platformlar, yerel simülasyon modellerine veya fiziksel cihazlara bir ağ üzerinden erişilmesine olanak tanır; ancak geleneksel Web ön uçları genellikle her deney için ayrı bir sayfa, kontrol düzeni ve veri iletişim mantığı gerektirir, bu da geliştirme maliyetlerini artırır. Bu çalışma, uzak birlikte çalışabilirlik protokolü (RIP) kullanarak LabVIEW sanal enstrümanlarından (VI'lar) otomatik olarak bir Web kullanıcı arayüzü (UI) oluşturmak için kurulmuş bir iş akışını doğrulamakta ve bunu uygulamak için yeniden üretilebilir bir protokol sunmaktadır. İş akışı; Ön Panel'de giriş kontrollerini ve çıkış göstergelerini tanımlayan LabVIEW VI'larını oluşturur, her VI'yı RIP Sunucu Yapılandırması'na kaydeder, ortaya çıkan değişken meta verilerini okur ve karşılık gelen Web kontrollerini ve çıkış ekranlarını oluşturur. Ön uç statik dosya yolu ile RIP uygulama programlama arayüzü (API) istek yolunu birleştirmek için ters yönlü vekil sunucu (reverse proxy) olarak Caddy kullanılır. İş akışı iki farklı sistemle değerlendirilmiştir: bir fan hızı modeli ve bir doğru akım (DC) motor oransal-integral-türevsel (PID) konum kontrol modeli. Her iki durumda da Web sayfası, açık olan değişkenleri tanımlar, kullanıcı girişlerini LabVIEW arka ucuna yazar, model çıktılarını okur ve arayüzü RIP meta verilerinden oluşturur. Bu sonuçlar, aynı otomatik UI oluşturma sürecini iki farklı dinamik sistem üzerinde doğrulamakta ve bunu yeniden üretmek için gereken adımları belgelemektedir.

Giriş

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Uzaktan deneylerin, çevrimiçi eğitimin ve Nesnelerin İnterneti teknolojilerinin gelişimiyle birlikte, yerel simülasyon modellerine veya deneysel cihazlara Web tabanlı erişim sağlamak, deneysel platform geliştirme için önemli bir yön haline gelmiştir1,2,3,4. Yakın tarihli çalışmalar, Nesnelerin İnterneti ile donatılmış laboratuvarları proje tabanlı öğrenme ve yerel veya uzaktan erişimle daha da entegre ederek, mühendislik eğitiminde esnek ve ağa bağlı deneysel platformların sürekli gelişimini kanıtlamıştır5. Kontrol sistemi deneyleri için kullanıcıların genellikle giriş parametrelerini bir tarayıcı üzerinden ayarlaması ve çıkış durumlarını gerçek zamanlı olarak gözlemlemesi gerekir6,7. Geleneksel yöntemler tipik olarak her bir deneysel nesne için ayrı bir Web sayfası, kontrol bağlama mantığı ve veri iletişim arayüzü gerektirir8,9. Arka uç modelindeki değişkenler değiştiğinde, ön uç sayfasının genellikle buna göre değiştirilmesi gerekir; bu durum önemli ölçüde tekrarlanan geliştirme işi yaratmakta ve deneysel platformun hızlı genişlemesini sınırlamaktadır.

Uzaktan birlikte çalışabilirlik protokolü (RIP), arka uçtaki deneysel modeller ile Web ön uçları arasında bir ara katman sağlar10,11. Önceki çalışmalarda açıklanan RIP tabanlı otomatik kullanıcı arayüzü (UI) oluşturma yaklaşımında, RIP Sunucusu; değişken adları, giriş/çıkış öznitelikleri, veri türleri, minimum değerler, maksimum değerler, hassasiyet, açıklamalar ve mevcut okuma/yazma yöntemleri dahil olmak üzere her deney için meta veriler sağlar11. Bir Web istemcisi daha sonra bu meta verileri kullanarak, sayfa yükleme veya yenileme sırasında etiketler, sayısal giriş alanları, sürgüler, Boolean kontrolleri ve çıktı ekranları gibi ilgili HTML öğelerini oluşturabilir11. Mevcut protokol, RIP spesifikasyonunu yeniden uygulamamakta veya yeniden tanımlamamaktadır. Bunun yerine, iletişim ve arayüz oluşturma için temel olarak mevcut açık kaynaklı RIP servisini ve RIP tabanlı meta veriden HTML'e UI oluşturma mantığını kullanmakta olup; iki LabVIEW VI örneğinin tekrarlanabilir inşası, kaydı, proxy dağıtımı ve doğrulanmasına odaklanmaktadır.

Geleneksel özel Web arayüzü geliştirmeyle karşılaştırıldığında, RIP tabanlı otomatik kullanıcı arayüzü (UI) oluşturma; birden fazla LabVIEW deneyi benzer skaler giriş ve çıkış değişkenleri sergilediğinde, kontrol düzenlerinin, değişken bağlama mantığının ve temel iletişim fonksiyonlarının uygulanması ihtiyacını azaltır8,9,10,11. Yeni bir VI kaydedildikten ve değişkenleri RIP Sunucusu için erişilebilir hale geldikten sonra, temel Web arayüzünü oluşturmak için aynı meta veri okuma ve kontrol oluşturma mantığı yeniden kullanılabilir10,11. Bu özellik; hızlı kurulum, öğretim amaçlı gösterimler ve birkaç benzer deneye tutarlı erişim gerektiren uzaktan laboratuvar platformları için kullanışlıdır3,8,9. Ancak, otomatik olarak oluşturulan arayüzün bazı sınırlamaları da vardır. Değişkenler arasındaki fiziksel ilişkileri tam olarak çıkaramaz, grafik eşlemelerini otomatik olarak belirleyemez veya alana özgü görselleştirme ve güvenlik etkileşimlerini tasarlayamaz11. Bu nedenle, bir deney yüksek düzeyde özelleştirilmiş grafikler, karmaşık kullanıcı iş akışları, gelişmiş görselleştirme, donanım güvenlik kilitleri veya çok kullanıcılı yazma tahkimi gerektirdiğinde, manuel Web arayüzü geliştirme hala daha tercih edilebilirdir.

Protokolün genel iş akışı Şekil 1'de özetlenmiştir. Bu iş akışında, bir LabVIEW VI önce Ön Panel üzerindeki gerekli giriş kontrollerini ve çıkış göstergelerini tanımlar. Ardından VI, deney adı ve VI yolu belirtilerek RIP Sunucu Konfigürasyonu'na kaydedilir. Kayıttan sonra RIP Sunucusu, seçilen deneyin üst verilerini okur ve mevcut değişkenlere okuma/yazma erişimi sağlar. XHTML Web sayfası, ilgili giriş kontrollerini ve çıkış ekranlarını otomatik olarak oluşturmak için döndürülen üst verileri kullanırken, Caddy statik Web sayfası ve RIP iletişim yolları için birleştirilmiş bir erişim yolu sağlar. Bu çalışmada, fan ve doğru akım motoru modelleri aynı iş akışının iki uygulaması olarak kullanılmıştır. Uyumlu skaler, sayısal ve Boolean değişkenler sağlayan diğer LabVIEW deneyleri için geliştiriciler, gerektiğinde deneye özgü görselleştirme, güvenlik mantığı veya karmaşık veri işleme ekleyerek, otomatik olarak oluşturulan bir Web arayüzü yaratmak için aynı oluşturma-kaydetme-dağıtma-doğrulama iş akışını izleyebilirler.

Bu makale, yeni bir RIP mimarisi önermemekte veya RIP tarafından halihazırda desteklenen veri türlerinin kapsamını genişletmemektedir. Bunun yerine, RIP'yi yerleşik bir iletişim ve metaveri tabanlı kullanıcı arayüzü (UI) oluşturma mekanizması olarak kullanmakta ve yeniden üretilebilir bir uygulama protokolü belgelendirirken, aynı sürecin iki farklı LabVIEW sistemi ile doğrulanmasına odaklanmaktadır. Önceki çalışmalar, RIP metaverilerine dayalı otomatik Web UI oluşturma için temel bir yöntem sunmuş ve vaka çalışması olarak çevrimiçi bir servo motor deneyi kullanmıştır11. İnteraktif arayüzleri mühendislik yazılımları ve LabVIEW ile birleştiren Web tabanlı uzaktan laboratuvar mimarileri de daha önceki çalışmalarda rapor edilmiştir9,12. Ancak, pratik yeniden üretim sırasında, orijinal vakadaki bazı LabVIEW modelleri yazılım versiyonu ve modül uyumluluğundan etkilenmiş, bu da onları daha yeni bir ortamda doğrudan kullanmayı zorlaştırmıştır. Bu nedenle, mevcut çalışma iki uyumlu arka uç VI'sını —bir fan modeli ve bir doğru akım (DC) motor oransal-integral-türevsel (PID) konum kontrol modeli— yeniden oluşturmakta ve aynı metaveri odaklı UI oluşturma sürecini her ikisine de uygulamaktadır. Buradaki katkı, RIP'nin genel geçerliliğinin genişletilmesi değil, yerleşik RIP iş akışının sistemler arası doğrulanması ve sürecin yeniden üretilmesi için detaylı bir protokoldür.

Bu protokolün hedef kullanıcıları, halihazırda LabVIEW VI'larını kullanan ve her bir model için bağımsız olarak tam bir özel ön uç (front end) uygulaması geliştirmeden simülasyon modellerini veya düşük riskli deneysel sistemleri bir Web tarayıcısı üzerinden sunmaya ihtiyaç duyan araştırmacılar, eğitmenler ve laboratuvar geliştiricileridir. Protokol, özellikle standart sayısal ve Boolean değişkenlerin, parametre ayarlarının ve gerçek zamanlı durum izlemenin kullanıldığı deneyler için uygundur10,11. Karmaşık veri yapıları, özel görselleştirme, katı donanım güvenlik kilitleri veya çok kullanıcılı yazma tahkimi gerektiren deneyler için tek başına bir çözüm olarak daha az uygundur11. Bu çalışmanın amacı, RIP tabanlı otomatik Web kullanıcı arayüzü (UI) üretimini iki farklı LabVIEW sistemi ile doğrulamak ve arka uç (back-end) VI oluşturulmasından tarayıcı tabanlı etkileşime kadar eksiksiz, tekrarlanabilir bir protokol sunmaktır. Protokol; giriş ve çıkış değişkenlerinin tanımlanmasını, RIP Sunucusu deney kaydını, meta veri tabanlı UI üretimini, Caddy proxy kurulumunu ve uzaktan okuma/yazma doğrulamasını içerir. Aynı iş akışının fan ve DC motor modellerine uygulanması, her bir örnek için manuel olarak tam bir Web ön ucu yeniden yazmadan, oluşturulan sürecin tekrarlanabileceğini göstermektedir9,10,11.

Protokol

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Şekil 1'de özetlenen iş akışını takip ederek, iki RIP erişimli LabVIEW deneyini oluşturmak, kaydetmek, yayına almak ve doğrulamak için aşağıdaki adımları tamamlayın. Bu çalışmada kullanılan tüm araçlar ve platformlar Materyaller Tablosu'nda listelenmiştir.

1. Fan model deneyini kurun ve uygulayın

  1. Fan model VI'sini oluşturun.
    1. LabVIEW'i açın, yeni bir VI oluşturun ve dosyayı fengshan.vi olarak kaydedin. VI'yi, RIP WebService sürecinin erişebileceği herhangi bir dizine kaydedin. Private klasörü yalnızca örnek bir dizin olarak kullanılmıştır ve RIP'te sabit olarak kodlanmamıştır. RIP deney kaydı sırasında gerçek olarak seçilen VI yolunu girin.
    2. Ön Panel'e (Front Panel), fan modeli için giriş kontrollerini ekleyin. Bu örnekte, giriş kontrollerini Enable, PWM, Load, Tau, KMaxRPM ve Disturbance olarak adlandırın. Enable kontrolünü Boolean olarak, PWM, Load, Tau, KMaxRPM ve Disturbance kontrollerini ise çift duyarlıklı kayan noktalı (DBL) sayısal kontroller olarak ayarlayın. Fan değişkenlerinin fiziksel anlamı ve modeldeki rolü için Ek Tablo 1'e bakın.
    3. Fan modeli için çıkış göstergelerini ekleyin. Bu örnekte, çıkış göstergelerini SpeedRPM, SteadyRPM, TimeS, SpeedNorm, CurrentA ve PowerW olarak adlandırın. Tüm çıkış göstergelerini DBL göstergeleri olarak ayarlayın.
      ​NOT: Tablo 1, bu çıkış değişkenlerinin fiziksel anlamını ve modeldeki rolünü tanımlamaktadır. Tamamlanmış fan ön paneli Şekil 2'de gösterilmiştir. Tablo 1'de gösterilen değişken adları, aralıklar ve adım boyutları, bu protokolde uygulanan iki örneği tanımlamaktadır. Bunlar RIP'in sabit gereksinimleri değildir. Diğer LabVIEW deneyleri için geliştiriciler farklı Ön Panel değişken adları ve sayısal özellikler tanımlayabilirler. RIP Sunucusu; gerçek değişken adlarını, veri türlerini, giriş/çıkış özniteliklerini ve mevcut sayısal özellikleri VI meta verilerinden okur ve Web sayfası, döndürülen meta verilere göre ilgili kontrolleri ve ekranları oluşturur.
    4. Blok Diyagram'a (Block Diagram) bir While Döngüsü (While Loop) ekleyin. speed_prev ve time_prev değerlerini saklamak için iki Kaydırma Kaydı (Shift Register) ekleyin ve her iki değeri de 0 olarak başlatın.
    5. While Döngüsünün içine bir Formül Düğümü (Formula Node) ekleyin. Enable, PWM, Load, Tau, KMaxRPM, Disturbance, speed_prev ve time_prev değişkenlerini Formül Düğümünün sol giriş terminallerine bağlayın ve SteadyRPM, speed_next, SpeedNorm, CurrentA, PowerW ve time_next değişkenlerini sağ çıkış terminalleri olarak ayarlayın.
    6. Formül düğümünün dışında Enable kontrol mantığını oluşturun. Enable True olduğunda u = PWM ve Enable False olduğunda u = 0 olacak şekilde Enable değişkenini seçici sinyal olarak kullanın.
    7. Formül düğümüne fan model kodunu girin. Kararlı durum hızını, gerçek hızı, normalize edilmiş hızı, akımı, gücü ve çalışma süresini hesaplamak için bu kodu kullanın; tam kod için Ek Kodlama Dosyası 1'e bakın.
    8. Formül Düğümünün speed_next çıkışını SpeedRPM göstergesine bağlayın ve speed_next değerini speed_prev için sağ Kaydırma Kaydına geri bağlayın. SteadyRPM değerini SteadyRPM göstergesine bağlayın.
    9. time_next değerini TimeS göstergesine bağlayın ve time_next değerini time_prev için sağ Kaydırma Kaydına geri bağlayın. SpeedNorm, CurrentA ve PowerW değerlerini ilgili çıkış göstergelerine bağlayın.
    10. While Döngüsü içine bir Bekle (Wait) fonksiyonu ekleyin ve bekleme süresini 50 ms olarak ayarlayın. Bir Stop Local düğmesi ekleyin ve bunu While Döngüsünün koşullu terminaline bağlayın.
    11. fengshan.vi dosyasını kaydedin. Tamamlanmış fan Blok Diyagramı Şekil 3'te gösterilmiştir.
      DURAKLAMA NOKTASI: Tamamlanmış fan VI'si kaydedildikten sonra iş akışı durdurulabilir. Daha sonra kaydedilen VI'yi yeniden açarak ve tüm Ön Panel kontrollerinin, göstergelerinin ve Blok Diyagram bağlantılarının hala mevcut olduğunu doğrulayarak işleme devam edin.
  2. Fan deneyini RIP Sunucusuna kaydedin.
    1. LabVIEW Proje Gezgini'nde RIPWebService.lvproj dosyasını açın
      .
    2. Proje ağacından Configuration.vi dosyasını açın ve deney yapılandırma tablosunu bulun.
    3. Yeni bir deney satırı ekleyin. Adı (Name) fan olarak ayarlayın. Kaydedilen fengshan.vi dosyasının tam yolunu belirleyin. Fan deneyine ait kayıt alanları Şekil 4'te gösterilmiştir.
    4. Kalan yapılandırma alanlarını doldurun. Yazarlar (Authors) kısmına deney yazarını, Anahtar Kelimeler (Keywords) kısmına Fan, Açıklama (Description) kısmına fan speed model ve Örnekleme Frekansı (Sampling Freq) kısmına 200 yazın.
    5. LabVIEW menüsünden Edit > Make Current Values Default seçeneğini belirleyin. Configuration.vi dosyasını kaydedin.
    6. RIP WebService'i yeniden başlatın ve yeniden başlatma işleminden sonra fan deneyinin Yapılandırma arayüzünde listelenmeye devam ettiğini doğrulayın.
      NOT: Deney adı büyük-küçük harfe duyarlıdır. RIP Yapılandırmasındaki fan değeri, ön uç XHTML dosyasında kullanılan deney ID'si ile tam olarak eşleşmelidir. Aynı otomatik UI oluşturma mantığına sahip başka bir LabVIEW VI'sini konuşlandırmak için RIP Yapılandırmasında yeni bir deney girişi ekleyin, yeni bir Ad (Name) değeri belirleyin ve Yolu (Path) ilgili VI dosyasına ayarlayın. Ardından, XHTML dosyasındaki deney ID'si olarak aynı Ad değerini kullanın. Her değişken için ön uç sayfasının yeniden yazılmasına gerek yoktur.
      ​DURAKLAMA NOKTASI: Configuration.vi kaydedilip mevcut değerler varsayılan olarak belirlendikten sonra iş akışı durdurulabilir. Daha sonra RIP WebService'i yeniden başlatarak ve fan deneyinin hala kayıtlı olduğunu doğrulayarak işleme devam edin.
  3. Fan deneyi için ön uç sayfasını hazırlayın.
    1. Fan_Automatic_UI.xhtml dosyasını ön uç kök dizini olarak kullanılan Client dizinine yerleştirin.
    2. Fan_Automatic_UI.xhtml dosyasını bir metin düzenleyici ile açın.
    3. Script bölümündeki deney ID değişkenini bulun ve bunu fan olarak ayarlayın.
      NOT: Bu değer, RIP Yapılandırmasındaki fan deneyinin Ad (Name) alanı ile tam olarak eşleşmelidir. Deney ID ayarları ve XHTML ön uç dosyaları için paylaşılan meta veri tabanlı UI oluşturma mantığı Şekil 5'te gösterilmiştir.
    4. Sayfanın mevcut erişim kaynağını window.location.origin üzerinden aldığını, rip.info() aracılığıyla deney meta verilerini talep ettiğini ve döndürülen meta verileri autobuildUI() fonksiyonuna aktardığını doğrulayın.
      NOT: Sayfa; fan değişken adlarını, aralıklarını veya adım boyutlarını manuel olarak sabit kodlamamalıdır. Bunun yerine, yazılabilir değişkenler meta.writables.list üzerinden, okunabilir değişkenler meta.readables.list üzerinden oluşturulmalı ve min, max ve step gibi sayısal öznitelikler RIP Sunucusu tarafından döndürülen meta verilerden alınmalıdır.
    5. Fan_Automatic_UI.xhtml dosyasını kaydedin.
      ​NOT: Başka bir LabVIEW VI'si için aynı ön uç oluşturma mantığını kullanmak için XHTML dosyasında yeni bir deney ID'si belirleyin ve ilgili deney Adını (Name) ve VI Yolunu (Path) RIP Yapılandırmasında kaydedin. Web kontrolleri ve çıkış ekranları, seçilen deney tarafından döndürülen meta verilere göre oluşturulur.
  4. Fan deneyi için Caddy erişim yolunu yapılandırın.
    1. Caddyfile dosyasını bir metin düzenleyici ile açın.
    2. Ön uç kök dizinini, Fan_Automatic_UI.xhtml dosyasını içeren Client dizini olarak ayarlayın.
    3. Caddy'nin Web sayfasına ve RIP rotalarına tarayıcı erişimi sağlaması için kullanılmayan yerel bir port seçin. Bu protokolde, örnek proxy erişim portu olarak 8090 portu kullanılmıştır.
      NOT: 8090 portu RIP veya Caddy tarafından zorunlu değildir. 8090 portu doluysa, bunu başka bir boş yerel portla değiştirin ve tarayıcı adresinde aynı portu kullanın.
    4. /fan yolunu Fan_Automatic_UI.xhtml olarak yeniden yazan bir rota ekleyin.
    5. LabVIEW'de yapılandırılan RIP WebService portunu belirleyin. Bu protokolde, RIP WebService adresi olarak http://localhost:8001 kullanılmıştır.
      NOT: 8001 portu, test ortamında kullanılan LabVIEW/RIP WebService arka uç portudur. LabVIEW/RIP WebService yapılandırmasında değiştirilebilir. Farklı bir port kullanılırsa, Caddyfile'daki http://localhost:8001 ifadesini ilgili RIP WebService adresiyle değiştirin.
    6. /RIP/SSE* isteklerini http://localhost:8001 gibi RIP WebService adresine gönderen bir ters proxy (reverse proxy) kuralı ekleyin.
    7. /RIP* isteklerini http://localhost:8001 gibi RIP WebService adresine gönderen bir ters proxy kuralı ekleyin. Caddyfile yapılandırması Şekil 6'da gösterilmiştir.
    8. Windows'ta Komut İstemi'ni açın. Şu komutu girerek yerel Caddy indirme veya kurulum dizinine geçiş yapın:
      cd /d D:\caddy
      NOT: Bu protokolde D:\caddy, test ortamında kullanılan yerel Caddy indirme veya kurulum yoludur. Caddy başka bir dizinde saklanıyorsa, D:\caddy ifadesini ilgili yerel yolla değiştirin.
    9. Şu komutu girerek Caddy'yi belirtilen Caddyfile ile başlatın:
      caddy.exe run --config Caddyfile
    10. Caddy'nin herhangi bir yapılandırma hatası bildirmeden başladığını doğrulayın. Bir Web tarayıcısında http://localhost:8090/fan adresini açın ve fan Web kullanıcı arayüzünün Şekil 7'de gösterildiği gibi oluşturulduğunu doğrulayın.
      ​NOT: Tarayıcı 502 hatası döndürürse, RIP WebService'in çalıştığını, LabVIEW'deki RIP WebService portunun Caddyfile'daki ters proxy adresiyle eşleştiğini ve seçilen Caddy erişim portunun dolu olmadığını doğrulayın.
  5. Fan deneyinin çalışma sonuçlarını doğrulayın.
    1. Ön uç sayfasının Enable, PWM, Load, Tau, KMaxRPM ve Disturbance giriş kontrollerini otomatik olarak oluşturduğunu doğrulayın.
    2. Ön uç sayfasının SpeedRPM, SteadyRPM, TimeS, SpeedNorm, CurrentA ve PowerW çıkış değişkenlerini görüntülediğini doğrulayın.
    3. PWM değerini ayarlayın ve PWM arttıkça SpeedRPM değerinin artıp artmadığını ve PWM azaldıkça azalıp azalmadığını gözlemleyin.
    4. Yükü (Load) ayarlayın ve yük arttıkça SteadyRPM ve SpeedRPM değerlerinin azalıp azalmadığını gözlemleyin.
    5. Bozucu etkiyi (disturbance) ayarlayın ve SpeedRPM, CurrentA ve PowerW değerlerinin bozucu etki girdisine yanıt olarak değişip değişmediğini gözlemleyin.
    6. TimeS değerinin artmaya devam ettiğini doğrulayarak, arka uçtaki fan VI'sinin sürekli çalıştığını teyit edin.

2. DC motor PID konum kontrol deneyinin kurulumu ve uygulanması

  1. DC motor PID konum kontrol modeli VI'sını oluşturun.
    1. LabVIEW'u açın, yeni bir VI oluşturun ve dosyayı Motor.vi olarak kaydedin. VI'yı, RIP WebService işlemi tarafından erişilebilen herhangi bir dizine kaydedin.
      NOT: Private klasörü yalnızca örnek bir dizin olarak kullanılmıştır ve RIP sistemine sabit olarak kodlanmamıştır. RIP deney kaydı sırasında seçilen gerçek VI yolunu giriniz.
    2. Ön Panele, DC motor PID konum kontrol modeline ait giriş kontrollerini ekleyin. Bu örnekte, giriş kontrollerini şu şekilde adlandırın Ayar Değeri, Kc, Ti, Td, Bozucu Etkive Sıfırlama kontrolüSet Ayar noktası, Kc, Ti, Td, ve Bozulma DBL sayısal kontroller olarak ve Reset kontrolünü ise bir Boolean kontrolü olarak ayarlayın.
      NOT: Tablo 1 bu örnekte kullanılan değişkenlerin fiziksel anlamını, modeldeki rolünü ve önerilen aralığını açıklar.
    3. DC motor PID konum kontrol modeli için çıktı göstergelerini ekleyin. Bu örnekte, çıktı göstergelerini adlandırın Konum, Gerilim, Zaman, ve Ölçülen açısal hızTüm çıktı göstergelerini DBL göstergeleri olarak ayarlayın. Tablo 1 bu çıktı değişkenlerinin fiziksel anlamını ve modeldeki rolünü açıklamaktadır. Motor için tamamlanmış Ön Panel şurada gösterilmiştir Şekil 8.
      NOT: Şunlarda listelenen değişken adları ve aralıklar Tablo 1 Bu protokolde uygulanan iki örneği açıklayın. Bunlar, RIP tabanlı otomatik kullanıcı arayüzü (UI) oluşturma iş akışı için sabit gereksinimler değildir. Başka bir LabVIEW VI kullanıldığında, RIP; gerçek değişken adlarını, veri tiplerini, giriş/çıkış özniteliklerini ve mevcut sayısal özellikleri VI meta verilerinden okur. Bu nedenle, ön uç oluşturma mantığının her bir deney için değişken adlarını, maksimum değerleri, minimum değerleri veya adım boyutlarını sabit olarak kodlamasına gerek yoktur.
    4. Blok Diyagram'a bir While Döngüsü ekleyin. Depolama için altı adet Kaydırma Kaydı (Shift Register) ekleyin theta, omega, im, e_prev, integ, ve zaman, ve altı değerin tamamını 0 olarak başlatın.
    5. While Döngüsü'nün içine bir Formül Düğümü (Formula Node) ekleyin. Şekilde gösterilen DC motor PID konum kontrol modeli diyagramına göre Şekil 9Hata hesaplaması, PID kontrolü, voltaj sınırlama, elektriksel model, mekanik model ve konum güncelleme için bu Formül Düğümünü (Formula Node) temel hesaplama modülü olarak kullanın.
      NOT: Bu modelde kullanılan, şunlar gibi dahili motor parametreleri R, L, J, b, Kt, Ke, ve Vmaxbelirli bir fiziksel motorun kalibre edilmiş parametreleri değil, normalize edilmiş öğretim modeli parametreleridir. Seçilen zaman adımı ve voltaj sınırı altında stabil ve gözlemlenebilir bir simüle yanıt üretmek amacıyla seçilmişlerdir; böylece şunların etkileri... Ayar noktası, Kc, Ti, Td, ve Bozulma web tabanlı çalışma sırasında net bir şekilde gösterilebilir.
    6. Set sp, theta, omega, im, e_prev, integ, Kc, Ti, Td, bozucu etki, reset, ve dt aFormula Node'un giriş terminalleri. Ayarlayın theta_sonraki, omega_sonraki, im_sonraki, e_sonraki, integ_sonraki, ve voltaj Formula Düğümü'nün (Formula Node) çıkış terminalleri olarak.
    7. Bağlayın Ayar noktası kontrol grubuyla/kontrolle karşılaştırıldığında Tür (sp.) Formula Düğümünün giriş terminali. Bağlayın Kc, Ti, Td, ve Bozulma -e/-a Kc, Ti, Td, ve dbozukluksırasıyla Formula Node'un giriş terminallerine.
    8. Sıfırlama (Reset) kontrol Boolean sinyalini sayısal bir sinyale dönüştürün ve şuraya bağlayın: Sıfırla Formula Düğümü'nün giriş terminali. Şu durumda durum sıfırlamasını yürütün: Sıfırla 0'a eşit değildir ve bu durumda PID kontrolü ile motor durum güncellemesi yürütülür sıfırla 0'a eşittir.
    9. Sayısal sabiti ekleyin dt ve değerini 0,001 s olarak ayarlayın. Şunu bağlayın: Lütfen çevirmek istediğiniz metni sağlayın. -e/-a dt Formula Düğümü'nün giriş terminalini kullanın ve bunu Zaman güncellemesi için uygulayın.
    10. DC motorun dahili model parametrelerini Formula Node içinde ayarlayın. Bakınız Ek Tablo 2 motor değişkenlerin fiziksel anlamı ve model rolü için.
    11. DC motor PID konum kontrol kodunu Formula Node'a giriniz. Reset mantığını, hata hesaplamasını, integral terimi hesaplamasını, türev terimi hesaplamasını, PID kontrolünü, voltaj sınırlamasını, akım güncellemesini, açısal hız güncellemesini ve konum güncellemesini uygulamak için bu kodu kullanınız; tam kod için ek kodlama dosyalarına bakınız.
    12. Bağlan theta_sonraki -e/-a Konum indikatör ve bağlayın theta_sonraki sağa kaydırmalı yazmaç için geri dönün theta Bağlanın omega_next -e/a Ölçülen açısal hız göstergesive bağlayın omega_next ... için sağa Kaydırmalı Kaydediciye geri dönün omega.
    13. Voltajı voltaj göstergesine bağlayın. Bağlayın im_next, e_next, ve integ_next sağa kaydırmalı kayıtçılara geri dönelim im, e_önce, ve integ, sırasıyla.
    14. Hesaplama yapmak için Formula Node dışında bir Add fonksiyonu kullanın time_next = time + dt. Bağlanın sonraki_zaman -e/-a Zaman indikatör ve bağlayın sonraki_zaman zaman için sağ Kaydırmalı Kaydediciye geri dönün.
    15. While Döngüsü içerisine bir Bekle (Wait) fonksiyonu ekleyin ve bekleme süresini 1 ms olarak ayarlayın. Bir Durdurma (Stop) düğmesi ekleyin ve bunu While Döngüsünün koşullu terminaline bağlayın.
    16. Motor.vi dosyasını kaydedin. Tamamlanmış motor Blok Diyagramı şurada gösterilmiştir: Şekil 10.
      DURAKLAMA NOKTASI: Tamamlanan motor VI kaydedildikten sonra iş akışı durdurulabilir. Kaydedilen VI'yı yeniden açarak ve tüm Ön Panel kontrollerinin, göstergelerinin ve Blok Diyagram bağlantılarının hâlâ mevcut olduğunu onaylayarak işleme daha sonra devam edin.
  2. Motor deneyini RIP Sunucusuna kaydedin.
    1. RIPWebService.lvproj dosyasını LabVIEW Project Explorer'da açın.
    2. Proje ağacından Configuration.vi dosyasını açın ve deney konfigürasyon tablosunu bulun.
    3. Yeni bir deney satırı ekleyin. İsim (Name) kısmını Motor olarak ayarlayın. Yol (Path) kısmına, kaydedilen Motor.vi dosyasının tam yolunu girin. Motor deney kayıt alanları şurada gösterilmektedir: Şekil 11.
    4. Kalan konfigürasyon alanlarını doldurun. Yazarlar (Authors) kısmını deney yazarına, Anahtar Kelimeler (Keywords) kısmını Motor'a, Açıklama (Description) kısmını DC motor konum kontrol modeli'ne ve Örnekleme Frekansı (Sampling Freq) kısmını 200'e ayarlayın.
    5. LabVIEW menüsünden, seçin Düzenle > Güncel Değerleri Varsayılan Yap. Yapılandırmayı Kaydet.vi.
    6. RIP WebService'ini yeniden başlatın ve yeniden başlatma işleminden sonra Motor deneyinin Konfigürasyon arayüzünde listelenmeye devam ettiğini doğrulayın.
      NOT: Deney ismi büyük-küçük harfe duyarlıdır. RIP Yapılandırmasındaki Motor değeri, Motor_Automatic_UI.xhtml dosyasında kullanılan deney kimliği ile birebir eşleşmelidir. Aynı otomatik kullanıcı arayüzü (UI) oluşturma mantığına sahip başka bir LabVIEW VI'sı konuşlandırmak için RIP Yapılandırmasına yeni bir deney girişi ekleyin, yeni bir İsim değeri belirleyin ve Yolu ilgili VI dosyasına ayarlayın. Ardından, XHTML dosyasındaki deney kimliği olarak aynı İsim değerini kullanın. Ön uç sayfasının her bir değişken için yeniden yazılmasına gerek yoktur.
      ​DURAKLAMA NOKTASI: Configuration.vi kaydedildikten ve mevcut değerler varsayılan olarak ayarlandıktan sonra iş akışı durdurulabilir. Daha sonra, RIP WebService yeniden başlatılarak ve Motor deneyinin hâlâ kayıtlı olduğu onaylanarak işleme devam edilebilir.
  3. Motor deneyi için ön yüz sayfasını hazırlayın.
    1. Motor_Automatic_UI.xhtml dosyasını, ön uç kök dizini olarak kullanılan Client dizinine yerleştirin.
    2. Motor_Automatic_UI.xhtml dosyasını bir metin düzenleyici ile açın.
    3. Betik bölümündeki deney kimliği (experiment ID) değişkenini bulun ve bunu Motor olarak ayarlayın. Bu değer, RIP Yapılandırması'ndaki motor deneyinin Ad (Name) alanı ile birebir eşleşmelidir. Motor ön yüz sayfası, şurada gösterilen aynı meta veri tabanlı kullanıcı arayüzü oluşturma mantığını kullanır: Şekil 5; sadece deney ID'si, RIP Yapılandırmasındaki Motor girişiyle eşleşecek şekilde değiştirilmiştir.
    4. Sayfanın RIP meta veri okuma mantığını, HTML kontrol oluşturma mantığını, RIP yazma işlevini ve çıktı güncelleme işlevini içerdiğini doğrulayın.
      NOT: Sayfa, motor değişken isimlerini, aralıklarını veya adım boyutlarını manuel olarak kodlamamalıdır. Bu özellikler, daha önce açıklanan RIP tabanlı meta veri-HTML oluşturma mekanizması takip edilerek RIP Sunucusu tarafından döndürülen meta verilerden elde edilir.11.
    5. Motor_Automatic_UI.xhtml dosyasını kaydedin.
      ​NOT: Başka bir LabVIEW VI için aynı ön uç oluşturma mantığını kullanmak üzere, XHTML dosyasında yeni bir deney kimliği (ID) belirleyin ve ilgili deney adını ve VI yolunu RIP Yapılandırması'nda (RIP Configuration) kaydedin. Web kontrolleri ve çıktı ekranları, seçilen deneye ait döndürülen meta verilere göre oluşturulur.
  4. Motor deneyi için Caddy erişim yolunu yapılandırın.
    1. Caddyfile'ı bir metin düzenleyici ile açın.
    2. Ön uç kök dizinini, Motor_Automatic_UI.xhtml dosyasını içeren Client dizini olarak ayarlayın.
    3. Caddy'nin web sayfasına ve RIP rotalarına tarayıcı erişimi sağlaması için kullanılmayan bir yerel port seçin. Bu protokolde, örnek proxy erişim portu olarak 8090 numaralı port kullanılmıştır.
      NOT: Port 8090, RIP veya Caddy tarafından gerekli değildir. Eğer port 8090 doluysa, bunu kullanılmayan başka bir yerel portla değiştirin ve tarayıcı adresinde aynı portu kullanın.
    4. /motor adresini Motor_Automatic_UI.xhtml adresine yeniden yazan bir rota ekleyin.
    5. LabVIEW'da yapılandırılmış olan RIP WebService portunu belirleyin. Bu protokolde, RIP WebService adresi olarak http://localhost:8001 kullanılmıştır.
      NOT: 8001 portu, test ortamında kullanılan LabVIEW/RIP WebService arka uç portudur. Bu port, LabVIEW/RIP WebService yapılandırmasında değiştirilebilir. Eğer farklı bir port kullanılıyorsa, Caddyfile içindeki http://localhost:8001 adresi ilgili RIP WebService adresiyle değiştirilmelidir.
    6. /RIP/SSE* isteklerini http://localhost:8001 gibi RIP WebService adresine yönlendiren bir ters proxy (reverse proxy) kuralı ekleyin.
    7. /RIP* isteklerini http://localhost:8001 gibi RIP WebService adresine gönderen bir ters vekil (reverse proxy) kuralı ekleyin. Caddyfile yapılandırması Şekil 6'da gösterilmiştir.
    8. Windows'ta Komut İstemi'ni açın. Aşağıdaki komutu girerek yerel Caddy indirme veya kurulum dizinine geçiş yapın:
      cd /d D:\caddy
      NOT: Bu protokolde D:\caddy, test ortamında kullanılan yerel Caddy indirme veya kurulum yoludur. Caddy başka bir dizinde saklanıyorsa, D:\caddy ifadesini ilgili yerel yol ile değiştirin.
    9. Aşağıdaki komutu girerek Caddy'yi belirtilen Caddyfile ile başlatın:
      caddy.exe run --config Caddyfile
    10. Caddy'nin bir yapılandırma hatası bildirmeden başladığını doğrulayın. Bir web tarayıcısında http://localhost:8090/motor adresini açın ve motor web kullanıcı arayüzünün, gösterildiği gibi oluşturulduğunu doğrulayın. Şekil 12.
      ​NOT: Motor web sayfası yükleniyor ancak çıktı değerleri güncellenmiyorsa, RIP WebService'in çalıştığını, motor VI'nın yürütüldüğünü, LabVIEW'deki RIP WebService portunun Caddyfile'daki ters proxy (reverse proxy) adresiyle eşleştiğini ve /RIP/SSE* rotasının doğru şekilde proxy edildiğini doğrulayın.
  5. Motor deneyinin çalışma sonuçlarını doğrulayın.
    1. Ön uç sayfasının otomatik olarak oluşturduğunu doğrulayın Ayar noktası, Kc, Ti, Td, Bozulma, ve Sıfırla kontrol girdi kontrolleri.
    2. Ön yüz sayfasının şunu görüntülediğini doğrulayın: Konum, Voltaj, Zaman, ve Ölçülen açısal hız çıktı değişkenleri.
    3. Ayarlamak Ayar noktası ve Konumun, istenen konumdaki değişime yanıt verip vermediğini gözlemleyin.
    4. Ayarlayın Kc, Ti, ve Td ve ... olup olmadığını gözlemleyin Voltaj, Konum, ve Ölçülen açısal hız değişim
    5. Ayarlayın bozucu etkiyi uygulayın ve konumun, kontrol voltajının veya ölçülen açısal hızın ... tarafından etkilenmektedir bozulma Lütfen çevrilmesini istediğiniz kaynak metni giriniz.
    6. Sıfırla (Reset) kontrolüne tıklayın ve şunun olup olmadığını gözlemleyin Konum, Gerilim, Ölçülen açısal hız, ve ilgili iç durumlar, sıfırlama mantığına göre başlangıç durumlarına geri döner.

Sonuçlar

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Yukarıda açıklanan iş akışı tamamlandıktan sonra, hem fan deneyine hem de DC motor PID konum kontrol deneyine otomatik olarak oluşturulan Web ön yüzü üzerinden erişilebilir. Başarılı bir sonuç üç gözlemle belirlenir. Birincisi, Web sayfası, RIP Sunucusu tarafından döndürülen değişken meta verilerine göre giriş kontrollerini ve çıktı görüntüleme alanlarını otomatik olarak oluşturur. İkincisi, kullanıcı Web sayfasında bir giriş değişkenini değiştirdiğinde, değiştirilen değer RIP arayüzü aracılığıyla LabVIEW arka uç VI'sine yazılır. Üçüncüsü, arka uç VI tarafından hesaplanan çıktı değişkenleri RIP üzerinden döndürülür ve Web sayfasında gerçek zamanlı olarak yenilenir. Fan deneyi için, bir tarayıcıya http://localhost:8090/fan girildikten sonra, Şekil 7'de gösterildiği gibi sayfa, RIP meta verilerinden giriş kontrollerini ve çıktı alanlarını otomatik olarak oluşturur. Giriş tarafı Enable, PWM, Load, Tau, KMaxRPM, ve Disturbance öğelerini içerirken, çıktı tarafı SpeedRPM, TimeS, SteadyRPM, SpeedNorm, CurrentA, ve PowerW değerlerini görüntüler. Normal çalışma sırasında TimeS sürekli olarak artar; bu durum, arka uç fengshan.vi'nin çalıştığını gösterir. PWM artırıldığında, SpeedRPM ve SteadyRPM buna bağlı olarak artar. Load artırıldığında, load sabit çalışma hızını düşürdüğü için fan hızı azalır. Disturbance ayarlandığında, SpeedRPM, CurrentA, ve PowerW değerlerinde ilgili değişiklikler gözlemlenebilir. Bu gözlemler, Web tarafındaki girişlerin LabVIEW arka ucuna doğru şekilde iletildiğini ve hesaplanan çıktıların RIP aracılığıyla ön yüze döndürüldüğünü doğrular.

DC motor PID konum kontrol deneyi için, bir tarayıcıda http://localhost:8090/motor adresine girildikten sonra sayfa, Şekil 12'de gösterildiği gibi RIP meta verilerinden ilgili kontrolleri ve çıktı alanlarını otomatik olarak oluşturur. Giriş değişkenleri Setpoint, Kc, Ti, Td, Disturbance ve Reset kontrolünü; çıktı değişkenleri ise Position, Voltage, Time ve Measured angular velocity değerlerini içerir. Setpoint değiştirildiğinde, Position yeni hedef değere yanıt verir. PID parametreleri olan Kc, Ti ve Td ayarlandığında, çıktı yanıtı, kontrol voltage değeri ve measured angular velocity buna göre değişir; bu durum, Web sayfasında girilen parametre değerlerinin LabVIEW arka uç modeline doğru şekilde yazıldığını ve kontrol hesaplamalarına dahil olduğunu gösterir. Reset kontrolü etkinleştirildiğinde, model değişkenleri sıfırlama mantığına göre başlangıç durumlarına döner.

Tarayıcı tarafındaki hata ve iletişim durumları Şekil 13, Şekil 14, Şekil 15'te gösterilmektedir. Şekil 13, Caddy'nin çalışmadığı hatalı bir tarayıcı erişim durumunu göstermektedir. Tarayıcı http://localhost:8090/motor adresine erişmeye çalışır ancak yerel proxy servisinin mevcut olmadığını veya seçilen erişim portunu dinlemediğini belirten bir ERR_CONNECTION_REFUSED mesajı görüntüler. Şekil 14, sayfa yüklendikten sonra meydana gelen bir RIP POST iletişim hatasını göstermektedir. Bu durumda, tarayıcı konsolu RIP POST isteği için bir 502 Bad Gateway hatası rapor ederek, ön yüzün proxy adresine ulaştığını ancak isteğin RIP WebService arka yüzüne başarıyla iletilemediğini veya orada işlenemediğini belirtir. Buna karşılık Şekil 15, normal bir tarayıcı tarafı iletişim durumunu göstermektedir. Tarayıcı geliştirici araçları; sayfanın başarıyla yüklendiğini, RIP POST isteklerinin gerçekleştiğini ve expId=fan olan aktif bir SSE isteğinin bulunduğunu göstererek, Web ön yüzünün Caddy proxy üzerinden RIP WebService ile iletişim kurduğunu ve SSE kanalı aracılığıyla gerçek zamanlı güncellemeler aldığını kanıtlamaktadır.

Fan ve motoryla ilgili başarılı sonuçlar ile tarayıcı tarafındaki tanısal sonuçlar birlikte, aynı meta veri tabanlı otomatik kullanıcı arayüzü (UI) oluşturma iş akışının iki farklı LabVIEW deneyi için yeniden üretilebileceğini kanıtlamaktadır. Bu sonuçlar aynı zamanda, başarılı iletişimi temsil eden kurulum hatalarından ayırmak için gözlemlenebilir kriterler sağlarken, ilgili sorun giderme prosedürleri Tartışma bölümünde ele alınmaktadır.

LabVIEW VI diyagramı, RIP sunucusu, Caddy proxy; otomatik oluşturulan web kullanıcı arayüzü işlem akışı.
Şekil 1: Genel deneysel sistem yapısı. Sistem; LabVIEW arka uç VI, RIP Sunucusu, Caddy proxy ve otomatik olarak oluşturulan Web Kullanıcı Arayüzü'nden (UI) oluşmaktadır. LabVIEW VI model değişkenlerini sağlar, RIP Sunucusu VI meta verilerini ve değişken değerlerini okur, Caddy erişim yolunu birleştirir ve çapraz kaynak erişimini çözer, Web Kullanıcı Arayüzü ise kontrolleri otomatik olarak oluşturur. Caddy ismi ve logosu, yalnızca iş akışında kullanılan Caddy Web sunucusu/proxy bileşenini tanımlamak için gösterilmiştir. Bu şeklin daha büyük bir versiyonunu görüntülemek için lütfen buraya tıklayın.

Giriş/çıkış içeren motor kontrol sistemi diyagramı; HızRPM grafiği; PWM, KMaxRPM ayarları; veri analizi.
Şekil 2: Fan VI'nın Ön Paneli. Ön Panel; Enable, PWM, Load, Tau, KMaxRPM ve Disturbance için giriş kontrolleri ile SpeedRPM, SteadyRPM, TimeS, SpeedNorm, CurrentA ve PowerW için çıkış göstergelerini içerir. Bu ekran görüntüsü, yazarların kendi yerel deneysel ortamındaki LabVIEW 2026'da bulunan fengshan.vi'nin Ön Panelinden alınmıştır. Herhangi bir üçüncü taraf kullanıcı verisi veya gizli bilgi yer almamaktadır. Bu şeklin daha büyük bir versiyonunu görüntülemek için lütfen buraya tıklayın.

Hız analizi için formül düğümü, while döngüsü ve kaydırmalı kaydediciler içeren motor kontrol algoritması diyagramı.
Şekil 3: Fan VI'nın Blok Diyagramı. Fan modeli; bir While Loop (While Döngüsü), Shift Registers (Kaydırmalı Kaydediciler), Enable mantığı, bir Formula Node (Formül Düğümü) ve çıktı göstergeleri ile uygulanmıştır. Bu ekran görüntüsü, LabVIEW 2026'da yazarların kendi yerel deneysel ortamındaki fengshan.vi'nin Blok Diyagramı'ndan alınmıştır. Herhangi bir üçüncü taraf kullanıcı verisi veya gizli bilgi içermemektedir. Bu şeklin daha büyük bir versiyonunu görüntülemek için lütfen buraya tıklayın.

Veri örneklemesi için fan model kurulumunu ve kamera yollarını gösteren LabVIEW yapılandırma arayüzü.
Şekil 4: fan.vi yapılandırma sayfası. Fan deneyi; fan deney adı, gerçek VI yolu, anahtar kelime bilgileri, açıklama ve örnekleme frekansı ile birlikte RIP Yapılandırması'na kaydedilmiştir. Bu ekran görüntüsü, yazarların kendi yerel deneysel ortamlarında LabVIEW 2026 ve RIP WebService ile kullanılan RIP Yapılandırma arayüzünden alınmıştır. Herhangi bir üçüncü taraf kullanıcı verisi veya gizli bilgi içermemektedir. Bu şeklin daha büyük bir versiyonunu görüntülemek için lütfen buraya tıklayın.

Veri başlatma için JavaScript'te metadata tabanlı kullanıcı arayüzü mantığını gösteren kod blok diyagramı.
Şekil 5: XHTML ön uç dosyalarındaki deney kimliği ayarları ve metadata tabanlı kullanıcı arayüzü oluşturma mantığı. XHTML kod ekran görüntüleri, Visual Studio Code'da açılan Fan_Automatic_UI.xhtml ve Motor_Automatic_UI.xhtml dosyalarından alınmıştır. Fan ve motor sayfaları aynı metadata okuma ve kontrol oluşturma mantığını kullanmaktadır; yalnızca deney kimliği, RIP Yapılandırması'ndaki ilgili Ad alanı ile eşleşecek şekilde değiştirilmiştir. XHTML kod ekran görüntüleri, yazarların kendi yerel geliştirme ortamındaki Visual Studio Code'da açılan Fan_Automatic_UI.xhtml ve Motor_Automatic_UI.xhtml dosyalarından alınmıştır. Kod dosyaları, bu protokol için yazarlar tarafından hazırlanmıştır. Herhangi bir üçüncü taraf kullanıcı verisi veya gizli bilgi içermemektedir. Bu şeklin daha büyük bir versiyonunu görüntülemek için lütfen buraya tıklayın.

Ters vekil sunucu, yönlendirme yolları ve port kurulum ayrıntılarını gösteren Caddy sunucu yapılandırma diyagramı.
Şekil 6: Caddyfile yapılandırması. Caddyfile; yerel vekil sunucu erişim portunu tanımlar, ön uç kök dizinini ayarlar, /fan ve /motor rotalarını ilgili XHTML dosyalarına yeniden yönlendirir ve /RIP/SSE* ile /RIP* isteklerini LabVIEW/RIP WebService portuna ters vekil sunucu (reverse-proxy) üzerinden aktarır. Caddyfile yapılandırma ekran görüntüsü, yazarların kendi yerel geliştirme ortamlarında Visual Studio Code ile açılmış Caddyfile dosyasından alınmıştır. Caddyfile, Caddy'yi yerel Web sunucusu ve ters vekil sunucu olarak yapılandırmak amacıyla yazarlar tarafından hazırlanmıştır. Herhangi bir üçüncü taraf kullanıcı verisi veya gizli bilgi içermemektedir. Bu şeklin daha büyük bir versiyonunu görüntülemek için lütfen buraya tıklayın.

Fan hızı kontrol simülasyon diyagramı; giriş kaydırıcıları, çıkış ekranları; mekanik sistem analizi.
Şekil 7: fan.vi'nin Web kullanıcı arayüzü sayfası. Bu Web arayüzü ekran görüntüsü, yazarların yerel olarak konuşlandırılmış fan Web sayfası üzerinden Mozilla Firefox kullanılarak alınmıştır. Ön uç sayfası, RIP Sunucusu tarafından döndürülen değişken meta verilerine dayanarak giriş kontrollerini ve çıkış ekranlarını otomatik olarak oluşturur. Bu Web arayüzü ekran görüntüsü, yazarların yerel olarak konuşlandırılmış fan Web sayfası üzerinden Mozilla Firefox kullanılarak alınmıştır. Görüntülenen kontroller ve çıkış alanları, yazarların yerel deneysel ortamındaki RIP meta verilerinden oluşturulmuştur. Herhangi bir üçüncü taraf kullanıcı verisi veya gizli bilgi içermemektedir. Bu şeklin daha büyük bir versiyonunu görüntülemek için lütfen buraya tıklayın.

PID kontrol sistemi diyagramı, motor konum geri beslemesi, giriş-çıkış süreci, açısal hız ölçümü.
Şekil 8: Motor VI'sının Ön Paneli. Ön Panel; Setpoint, Kc, Ti, Td, Disturbance ve Reset kontrol ayarları ile Position, Voltage, Time ve Measured angular velocity göstergelerini içerir. Bu ekran görüntüsü, LabVIEW 2026'da yazarların kendi yerel deneysel ortamındaki Motor.vi'nin Ön Paneli'nden alınmıştır. Herhangi bir üçüncü taraf kullanıcı verisi veya gizli bilgi içermemektedir. Bu şeklin daha büyük bir versiyonunu görüntülemek için lütfen buraya tıklayın.

Denklemlerle PID kontrol sistemi şeması; voltaj limiti, elektriksel ve mekanik modeller.
Şekil 9: DC motor PID konum kontrol modeli şeması. Şema; set noktası hatası, PID kontrolü, voltaj sınırlama, bozucuların süperpozisyonu, elektriksel dinamikler, mekanik dinamikler ve konum güncellemeden geri beslemeye kadar olan sinyal yolunu göstermektedir. Bu şeklin daha büyük bir versiyonunu görüntülemek için lütfen buraya tıklayın.

Kaydırmalı kaydedicileri, formül düğümünü ve konum geri bildirimi için kontrol döngüsünü gösteren LabVIEW program diyagramı.
Şekil 10: Motor VI'sının Blok Diyagramı. Motor modeli; bir While Döngüsü, Kaydırmalı Kaydediciler, bir Formül Düğümü, zamanlama mantığı ve çıkış göstergeleri ile uygulanmıştır. Bu ekran görüntüsü, yazarların kendi yerel deneysel ortamındaki LabVIEW 2026'da bulunan Motor.vi'nin Blok Diyagramından alınmıştır. Herhangi bir üçüncü taraf kullanıcı verisi veya gizli bilgi içermemektedir. Bu şeklin daha büyük bir versiyonunu görüntülemek için lütfen buraya tıklayınız.

LabVIEW motor model arayüzü, simülasyon kontrolü için yol kurulumu, örnekleme konfigürasyonu, motor açıklaması.
Şekil 11: Motor.vi konfigürasyon sayfası. Motor deneyi; Motor deney adı, gerçek VI yolu, anahtar kelime bilgileri, açıklama ve örnekleme frekansı ile RIP Configuration'a kaydedilmiştir. Bu ekran görüntüsü, yazarların kendi yerel deneysel ortamlarında LabVIEW 2026 ve RIP WebService ile birlikte kullanılan RIP Configuration arayüzünden alınmıştır. Üçüncü taraf kullanıcı verisi veya gizli bilgi içermemektedir. Bu şeklin daha büyük bir versiyonunu görüntülemek için lütfen buraya tıklayın.

PID kontrol sistemi simülasyonu; analiz için giriş sürgüsü ve çıkış ekran metriklerini içeren diyagram.
Şekil 12: Motor.vi'nin Web kullanıcı arayüzü sayfası.Ön uç sayfası, DC motor PID konum kontrol deneyi için giriş kontrollerini ve çıkış ekranlarını otomatik olarak oluşturur. Bu Web arayüzü ekran görüntüsü, yazarların yerel olarak yayına aldığı motor Web sayfası üzerinden Mozilla Firefox kullanılarak alınmıştır. Görüntülenen kontroller ve çıkış alanları, yazarların yerel deney ortamındaki RIP meta verilerinden oluşturulmuştur. Herhangi bir üçüncü taraf kullanıcı verisi veya gizli bilgi içermemektedir. Bu şeklin daha büyük bir versiyonunu görüntülemek için lütfen buraya tıklayın.

Web sayfası hata mesajı; localhost bağlantısı reddedildi; tarayıcı sorun giderme seçenekleri.
Şekil 13: Caddy çalışmadığında başarısız tarayıcı erişimi. Caddy başlatılmadığında, vekillenen yerel adres http://localhost:8090/motor'a erişilemez ve tarayıcı bir ERR_CONNECTION_REFUSED mesajı görüntüler. Bu hata belirtisi, yerel Caddy proxy servisinin kullanılamadığını veya seçilen erişim portunu dinlemediğini gösterir. Bu tarayıcı ekran görüntüsü, yazarların kendi yerel test ortamında Mozilla Firefox kullanılarak alınmıştır ve yerel Caddy proxy'si çalışmadığındaki başarısız erişim durumunu göstermektedir. Herhangi bir üçüncü taraf kullanıcı verisi veya gizli bilgi içermemektedir. Bu şeklin daha büyük bir versiyonunu görüntülemek için lütfen buraya tıklayın.

Üniversite amblemli fan tasarımı; tarayıcı konsol hata bağlamında görüntülenmiştir.
Şekil 14: Sayfa yüklemesi sonrası RIP POST iletişim hatası. Tarayıcı konsolu, RIP POST isteği için 502 Bad Gateway hatasını göstermektedir. Bu sonuç, Web sayfasının Caddy proxy adresine ulaştığını ancak isteğin RIP WebService arka ucuna başarıyla iletilemediğini veya burada işlenemediğini göstermektedir. Bu tarayıcı konsolu ekran görüntüsü, yazarların kendi yerel kurulum ortamında Mozilla Firefox Geliştirici Araçları kullanılarak alınmıştır ve bir RIP POST 502 Bad Gateway iletişim hatasını göstermektedir. Üçüncü taraf kullanıcı verisi veya gizli bilgi içermemektedir. Bu şeklin daha büyük bir versiyonunu görüntülemek için lütfen buraya tıklayın.

Hız ve güç parametrelerine sahip sanal fan kontrol kullanıcı arayüzü, ağ aktivitesini gösteriyor; kontrol paneli diyagramı.
Şekil 15: Normal çalışma altındaki tarayıcı tarafı iletişim durumu. Tarayıcı geliştirici araçları; başarılı sayfa yüklemesini, RIP POST isteklerini ve expId=fan ile aktif bir SSE isteğini göstermektedir. Bu istekler, Web ön yüzünün Caddy proxy üzerinden RIP WebService ile iletişim kurduğunu ve SSE kanalı aracılığıyla gerçek zamanlı güncellemeler aldığını belirtmektedir. Bu tarayıcı geliştirici araçları ekran görüntüsü, yazarların kendi yerel dağıtım ortamlarında Mozilla Firefox kullanılarak alınmıştır ve normal RIP POST ile SSE iletişimini göstermektedir. Herhangi bir üçüncü taraf kullanıcı verisi veya gizli bilgi içermemektedir. Bu şeklin daha büyük bir versiyonunu görüntülemek için lütfen buraya tıklayın.

Ağ isteği hatalarını ve değişken yükleme durumunu gösteren Firefox geliştirici konsolu.
Şekil 16: Fan deneyi için tek bir temsili tarayıcı konsolu ve işlem düzeyi kaynak gözlemi. Ekran görüntüsü, yerel bir fan deneyi testi sırasında kaydedilmiştir. Konsol; meta veri istek/yanıt süresini, meta veri değişken sayılarını, meta veri tabanlı kullanıcı arayüzü (UI) oluşturma süresini, SSE bağlantı açılış süresini ve alınan SSE verilerini göstermektedir. Görev yöneticisi görünümü, görüntüleme anındaki tarayıcı ve LabVIEW işlemlerine ait işlem düzeyi CPU ve bellek değerlerini göstermektedir. Bu değerler, söz konusu bireysel teste ait betimleyici gözlemlerdir; tekrarlanan performans ölçümleri veya istatistiksel bir kıyaslama değildir. Bu ekran görüntüsü, yazarların kendi yerel test ortamındaki Mozilla Firefox Geliştirici Araçları ve Windows Görev Yöneticisinden alınmıştır. Tarayıcı konsolu çıktısını kaydetmek için Mozilla Firefox, tarayıcı ve LabVIEW işlemlerinin CPU ve bellek kullanımını gözlemlemek için ise Windows Görev Yöneticisi kullanılmıştır. Herhangi bir üçüncü taraf kullanıcı verisi veya gizli bilgi dahil edilmemiştir. Bu şeklin daha büyük bir versiyonunu görüntülemek için lütfen buraya tıklayın.

Fan kontrol arayüzü; web ve mobil kullanıcı arayüzündeki SpeedRPM ve CurrentA ayarlarıyla veri senkronizasyon diyagramı.
Şekil 17: Bir masaüstü tarayıcısı ve bir mobil tarayıcı üzerinden aynı RIP tabanlı web sayfasına eş zamanlı erişim. Fan deney sayfasının PC ve mobil cihazlarda aynı anda açılmış hali görülmektedir ve her iki istemci de otomatik olarak oluşturulan kontrolleri ve çıktı değişkenlerini görüntülemektedir. Masaüstü web sayfasına Mozilla Firefox kullanılarak, mobil web sayfasına ise aynı yerel ağ ortamındaki bir mobil tarayıcı kullanılarak erişilmiştir. Ekran görüntüleri yazarların kendi yerel test ortamından alınmıştır. Herhangi bir üçüncü taraf kullanıcı verisi veya gizli bilgi içermemektedir. Bu şeklin daha büyük bir versiyonunu görüntülemek için lütfen buraya tıklayın.

Değişken adıVeri tipiGirdi/ÇıktıFiziksel anlamModeldeki rolüAralık/Ayar
EtkinleştirBooleLütfen çevirmek istediğiniz metni girin.Fan çalıştırma anahtarıModelin PWM girdisini alıp almadığını kontrol eder. True olduğunda u = PWM; False olduğunda u = 0'dır.Doğru / Yanlış
PWM (Sinyal Genişlik Modülasyonu)DBLLütfen çevrilecek metni giriniz.Sürücü girişiTemel fan tahrik yoğunluğunu belirler ve kararlı durum hızı olan SteadyRPM'yi hesaplamak için kullanılan ana girdidir.0-1, adım 0,01
YükleDBLLütfen çevrilecek metni giriniz.Yük katsayısıYükün kararlı durum hızı üzerindeki zayıflatıcı etkisini tanımlar. Yük arttıkça, kararlı durum hızı azalır.0-1, adım 0,01
TauDBLLütfen çevrilecek metni giriniz.Tepki süresi sabitiFan hızının önceki durumdan kararlı hal hızına ne kadar hızlı yaklaştığını belirler.0,1-5, artış 0,1
KMaxRPMDBLLütfen çevirmek istediğiniz İngilizce kaynak metni sağlayın. Metni aldığımda, belirttiğiniz tüm akademik standartlara ve teknik gerekliliklere uygun olarak profesyonel Türkçe çevirisini gerçekleştireceğim.Maksimum hızModel tarafından izin verilen maksimum hızı belirler; hız sınırlama ve normalizasyon için kullanılır.500-6000, adım 100
BozulmaDBLLütfen çevrilecek metni sağlayın.Bozucu girdiDış bozunçların veya yük dalgalanmalarının kararlı durum hızı, akımı ve gücü üzerindeki etkisini temsil eder.0-1, adım 0.1
HızRPMDBLÇıktıGerçek hızFanının mevcut çıkış hızını temsil eder ve birinci dereceden atalet dinamiği aracılığıyla güncellenir.Model tarafından hesaplanmıştır
SteadyRPMDBLÇıktıKararlı durum hızıMevcut giriş koşulları altındaki teorik kararlı durum hızını temsil eder.Model tarafından hesaplanmıştır
TimeSÇift Zincirli Bağlanma (DBL)ÇıktıÇalışma süresiModelin kesintisiz çalışma süresini temsil eder.Model tarafından hesaplanmıştır
SpeedNormDBLÇıktıNormalize edilmiş hızSpeedRPM'in KMaxRPM'e oranını temsil eder.0-1 arası veya model tarafından hesaplanmış
GüncelADBLÇıktıGüncelSürücü girişi ve bozucu giriş ile birlikte değişen tahmini model akımını temsil eder.Model tarafından hesaplanmıştır
PowerWÇift zincirli kırılmaÇıktıGüçGerilim sabiti ve akımdan hesaplanan tahmini model gücünü temsil eder.Model tarafından hesaplanmıştır
Ayar noktasıDBLLütfen çevrilecek metni giriniz.İstenen konumMotorun ulaşması gereken konumu belirler ve gerçek konum Position ile hata e'yi oluşturur.-3-3, adım 0.1
KcDBLLütfen çevrilecek metni sağlayın. Metni gönderdiğinizde, belirttiğiniz profesyonel standartlara ve akademik kriterlere uygun olarak çeviriyi gerçekleştireceğim.Oransal kazançPID Kontrolörünün hataya karşı yanıt gücünü ayarlar.0-10, artış 0,1
TiDBLLütfen çevrilmesini istediğiniz metni giriniz.İntegral zamanPID Denetleyicinin integral etkisini ayarlar ve kalıcı durum hatasını azaltmak için kullanılır.0-10, artış miktarı 0,1
TdDBLLütfen çevrilecek metni giriniz.Türev zamanıPID Kontrolörün türev etkisini ayarlar; aşırı hızlı hata değişimlerini bastırmak ve dinamik yanıtı iyileştirmek için kullanılır.0-5, adım 0,1
BozulmaDBLLütfen çevrilecek metni sağlayın.Bozucu girişKontrol voltajıyla birlikte motor modeli üzerinde etkili olan ve motor girişine bindirilen harici bir bozulmayı temsil eder.0-10, adım 0,1
Kontrolü sıfırlaBooleanLütfen çevrilecek kaynak metni giriniz.Sıfırlama kontrolüKonum, açısal hız, akım, hata ve integral teriminin başlangıç durumlarına dönmesi için model durum temizlemesini tetikler.Doğru / Yanlış
KonumDBLÇıktıGüncel konumMotorun mevcut açısal konumunu temsil eder ve PID kontrolü için geri besleme değişkeni olarak hizmet eder.Model tarafından hesaplanmıştır
VoltajDBLÇıktıKontrol voltajıGerilim sınırlamasından sonraki PID kontrolör çıkışını temsil eder ve motor girişine etki eder.Model tarafından hesaplanmıştır; -24 ile 24 V arası ile sınırlıdır
ZamanDBLÇıktıÇalışma süresiMotor modelinin sürekli çalışma süresini temsil eder.Model tarafından hesaplanmıştır
Ölçülen açısal hızDBLÇıktıÖlçülen açısal hızMotorun mevcut açısal hızını temsil eder ve motorun mekanik durum çıktısını oluşturur.Model tarafından hesaplanmıştır

Tablo 1: Fan ve DC motor örneklerinde kullanılan giriş ve çıkış değişkenleri. Tablo; her bir değişken adını, veri türünü, giriş/çıkış rolünü, fiziksel anlamını, önerilen aralığını ve adım boyutunu listelemektedir.

ParametreDeğerFiziksel anlamModeldeki rolü
R1Endüvi direnciMotor endüvi devresindeki direnç terimini temsil eder ve akım denklemindeki R × im voltaj düşümünü belirler.
L0.5Endüvi indüktansıEndüvi devresinin indüktansını temsil eder ve akım değişim hızını belirler. Daha büyük bir L, daha yavaş bir akım tepkisi oluşturur.
J0.01Eylemsizlik momentiMotor rotorunun açısal ivme değişimlerine karşı gösterdiği direnci temsil eder ve açısal hızın ne kadar hızlı değişeceğini belirler.
b0.1Viskoz sönümleme katsayısıMekanik sönümlemeyi temsil eder ve dönme sırasında açısal hızın artışını engelleyen sönümleme torkunu tanımlar.
Kt0.01Tork sabitiEndüvi akımını elektromanyetik torka dönüştüren orantı katsayısını temsil eder.
Ke0.01Zıt elektromotor kuvvet sabitiAçısal hızın zıt elektromotor kuvvet oluşturduğu orantı katsayısını temsil eder ve hızın akım üzerindeki geri besleme etkisini tanımlar.
Vmax24Maksimum kontrol voltajıKontrolör çıkış voltajının limitini temsil eder ve voltajı -24 V ile 24 V aralığında tutar.
dt0.001Ayrık simülasyon adımıDöngü tabanlı her durum güncellemesi için zaman aralığını temsil eder; akım, açısal hız, konum ve çalışma süresini güncellemek için kullanılır.

Tablo 2: DC motor PID konum kontrol modelinde kullanılan dahili parametreler. Tablo; elektriksel ve mekanik parametreleri, sembolleri, sayısal değerleri, birimleri ve modeldeki rollerini listelemektedir.

Ek Kodlama Dosyaları: Fan ve DC motor örneklerini yeniden oluşturmak için gerekli tüm kaynak ve yapılandırma dosyaları. Ek kodlama dosyaları, bu protokolde kullanılan LabVIEW Formula Node kodunu, Caddy ters proxy yapılandırmasını, XHTML ön uç dosyalarını ve LabVIEW VI kaynak dosyalarını içerir. Code in LabVIEW Formula Node.docx dosyası, fan ve DC motor PID konum kontrol modelleri için Formula Node kodlarını içerir. Caddyfile.txt dosyası, yerel Web sunucusu ve ters proxy yapılandırmasını içerir. Fan_Automatic_UI.xhtml ve Motor_Automatic_UI.xhtml dosyaları, meta veri tabanlı Web ön uç mantığını içerir. fengshan.vi ve Motor.vi dosyaları, fan ve motor deneyleri için LabVIEW arka uç VI dosyalarıdır.Lütfen bu dosyayı indirmek için buraya tıklayınız.

Tartışma

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Bu protokoldeki kritik bir adım, LabVIEW arka uç VI'nın standardize edilmiş şekilde oluşturulması ve kaydedilmesidir. Ön Panel (Front Panel) kontrolleri ve göstergeleri, net ve benzersiz değişken adları kullanmalı ve veri türleri, model hesaplaması ve RIP okuma/yazma işlemi tarafından beklenen değişkenlerle eşleşmelidir. Bu protokolde kullanılan iki örnekte, skaler sayısal değişkenler DBL kontrolleri veya göstergeleri olarak, Boolean değişkenler ise Boolean kontrolleri olarak tanımlanmıştır. Blok Diyagram (Block Diagram); fan hızı, motor pozisyonu, motor açısal hızı, voltaj ve zaman gibi değişkenlerin yürütme sırasında güncellenebilmesi için While Loop, Shift Registers ve Formula Node aracılığıyla sürekli durum güncellenmesini sağlamalıdır. VI oluşturulduktan sonra, RIP Konfigürasyonu'ndaki deney ismi (experiment Name), ilgili XHTML dosyasında kullanılan deney kimliğiyle (experiment ID) tam olarak eşleşmeli ve VI Yolu (VI Path), kaydedilen gerçek VI'yı göstermelidir. Bu ayarlar önemlidir çünkü Web ön ucu, her deneyin değişkenlerini sabit olarak kodlamaz; bunun yerine yazılabilir değişkenleri, okunabilir değişkenleri, veri türlerini ve sayısal özellikleri belirlemek için RIP Sunucusu tarafından döndürülen meta verilere güvenir10,11.

Temel sorun giderme konuları; XHTML deney ID'si, RIP Yapılandırması, RIP WebService ve Caddy proxy ayarları arasındaki tutarlılıkla ilgilidir. Eğer XHTML dosyasındaki deney ID'si, RIP Yapılandırmasındaki deney Adı ile eşleşmezse, web sayfası doğru üst verileri talep edemez ve bu nedenle beklenen kontrolleri ve çıktı alanlarını oluşturamaz. VI Yolu hatalıysa veya RIP WebService başlatılmamışsa, web sayfası açılabilir ancak LabVIEW arka ucuyla iletişim kuramaz. Caddy çalışmıyorsa, tarayıcı seçilen yerel proxy adresine erişemez ve Şekil 13'te gösterildiği gibi bir ERR_CONNECTION_REFUSED mesajı görüntüleyebilir. Eğer Caddy çalışıyorsa ancak ters proxy hedefi RIP WebService portuyla eşleşmiyorsa, sayfa yüklenebilir ancak RIP POST istekleri Şekil 14'te gösterildiği gibi 502 Bad Gateway hatasıyla başarısız olabilir. /RIP/SSE* rotası doğru çalışmıyorsa, sayfa açılabilir ve kontrolleri görüntüleyebilir, ancak çıktı değerleri gerçek zamanlı olarak güncellenmez. Normal çalışma koşullarında, tarayıcı geliştirici araçları Şekil 15'te gösterildiği gibi başarılı sayfa yüklemesini, RIP POST isteklerini ve doğru deney ID'sine sahip aktif bir SSE isteğini göstermelidir. Bu nedenle, sorun giderme işlemine deney ID'si, VI Yolu, RIP WebService durumu, Caddy çalışma durumu, proxy portları ve SSE rotasının kontrol edilmesiyle başlanmalıdır. Eğer iletişim hala anormal seyrediyorsa, hem RIP WebService'i hem de Caddy'yi yeniden başlatmak, tarayıcı önbelleğini temizlemek veya testi başka bir tarayıcıda tekrarlamak, tarayıcıya özgü davranışları RIP/Caddy yapılandırma sorunlarından ayırmaya yardımcı olabilir.

Aynı oluştur-kaydet-dağıt-doğrula iş akışı hem bir fan hızı modeline hem de bir DC motor PID konum kontrol modeline uygulandığı için mevcut protokol iki örnek üzerinden de tekrarlanabilirdir. Özel araç kutularına olan bağımlılığı azaltmak amacıyla, arka uç VI'ları; Ön Panel kontrolleri ve göstergeleri, While Döngüleri, Kaydırma Kayıtçıları (Shift Registers), Formül Düğümleri ile standart skaler sayısal ve Boolean değişkenler dahil olmak üzere temel LabVIEW yapıları kullanılarak yeniden oluşturulmuştur. Bununla birlikte; LabVIEW sürümleri, Windows kurulumları ve yerel ağ ortamları arasındaki tekrarlanabilirlik; dosya yolları, erişim izinleri, yerel portlar, servis başlatma komutları ve tarayıcı davranışı gibi yapılandırma ayrıntılarına bağlıdır. İş akışı donanım odaklı uzaktan deneylere de genişletilebilir, ancak yöntem doğrudan Web tarafında donanım tanıma olarak yorumlanmamalıdır. Web ön ucu, LabVIEW Ön Panel kontrollerini ve göstergelerini RIP meta verileri aracılığıyla tanımlar. Bu nedenle; sensörlerin, aktüatörlerin, cihazların veya süreç kontrol ekipmanlarının öncelikle uygun donanım sürücüleri, veri toplama modülleri, cihaz kontrol modülleri veya diğer donanım adaptasyon mekanizmaları aracılığıyla LabVIEW arka uç VI'sına bağlanması ve işlenmesi gerekir. Donanım ölçümleri ve kontrol komutları Ön Panel göstergelerine ve kontrollerine eşlendiğinde, RIP tabanlı Web ön ucu bu değişkenleri, bu protokolde kullanılan simülasyon değişkenlerini tanıdığı şekilde tanıyabilir. Önceki LabVIEW tabanlı uzaktan laboratuvar çalışmaları; LabVIEW'ın uzaktan kontrol mühendisliği deneyleri, robotik deneyler, süreç kontrol düzenekleri, sensör veri toplama ve fiziksel cihaz etkileşimi için bir arka uç ortamı olarak kullanılabileceğini göstermiştir9,12,17,18,19,20.

Şekil 16, yerel bir fan deneyi sırasında kaydedilen tek bir temsili uygulama örneğini sunmaktadır. Ön uç kodu; meta veri istek/yanıt süresini, meta veri değişken sayılarını, meta veri tabanlı kullanıcı arayüzü (UI) oluşturma süresini, SSE bağlantı açma süresini ve alınan SSE verilerini kaydedecek şekilde yapılandırılmıştır. Bu örnekte, tarayıcı konsolu 68,00 ms'lik bir meta veri istek/yanıt süresi raporlamış, RIP meta verilerinden 7 yazılabilir değişken ve 7 okunabilir değişken tanımlamış, ilgili UI öğelerini 2,00 ms içinde oluşturmuş ve SSE bağlantısını 16,00 ms içinde açmıştır. Tekrarlanan SSE veri girişleri; SpeedRPM, TimeS, SteadyRPM, SpeedNorm, CurrentA ve PowerW gibi çıktı değişkenlerinin LabVIEW arka ucundan sürekli olarak alındığını göstermiştir. Aynı yerel test durumundaki görev yöneticisi görünümü, Firefox işlemi için yaklaşık %1,5 CPU kullanımı ve 391,7 MB bellek gösterirken, LabVIEW işlemi kayıt anında %0 CPU kullanımı ve 9,2 MB bellek göstermiştir. Bu gözlemler; meta veri erişiminin, meta veri tabanlı UI oluşturmanın, RIP/SSE iletişiminin ve işlem düzeyindeki CPU yükünün yerel dağıtım ortamında gözlemlenebileceğine dair temel kanıtlar sağlamaktadır. Ancak, bu veriler kapsamlı bir performans kıyaslamasından ziyade uygulama düzeyinde bir doğrulama amacı taşımaktadır. Farklı tarayıcılar, tekrarlanan denemeler, daha yoğun değişken yükleri, fiziksel donanımlar ve çoklu eş zamanlı kullanıcılar altında sistematik performans değerlendirmesi, gelecek çalışmalarda gerekli olmaya devam etmektedir.

Bu yöntemin, özellikle karmaşık veri yapılarına, donanım deneylerine ve çok kullanıcılı işlemlere genişletildiği durumlarda sınırlamaları bulunmaktadır. Mevcut iş akışı, skaler sayısal ve Boolean giriş/çıkış değişkenleri için en uygundur. Karmaşık diziler, kümeler, iç içe geçmiş veri yapıları, grafik ilişkileri veya alana özgü görselleştirmeler için otomatik olarak tam destek sağlamamaktadır. Bu durumlar, ek meta veri eşleme kuralları veya manuel olarak yazılmış ön uç bileşenleri gerektirebilir. Otomatik olarak oluşturulan kullanıcı arayüzü (UI), değişken meta verilerinden temel kontroller ve ekranlar oluşturabilmekte ancak değişkenler arasındaki fiziksel ilişkiyi tamamen çıkaramamakta, en uygun görselleştirmeyi seçememekte veya deneye özgü güvenlik etkileşimlerini tasarlayamamaktadır. İş akışı gerçek ekipmanlara genişletildiğinde; donanım sürücüleri, cihaz kalibrasyonu, örnekleme kısıtlamaları, aktüatör limitleri, acil durdurma mantığı, kimlik doğrulama ve çok kullanıcılı yazma kontrol mekanizmaları dahil olmak üzere ek hususlar gereklidir. Mevcut dağıtıma, aynı yerel ağ ortamındaki standart web tarayıcıları üzerinden birden fazla istemci cihazla da erişilebilir. Şekil 17'de gösterildiği gibi, aynı fan deneyi sayfası bir masaüstü tarayıcıda ve bir mobil tarayıcıda aynı anda açılmış ve her iki istemci de otomatik olarak oluşturulan kontrolleri ve ilgili çıkış değişkenlerini görüntülemiştir. Bu gözlem, aynı deney sayfasıyla etkileşim kurmak ve sayfayı görüntülemek için temel eş zamanlı çoklu istemci erişimini göstermektedir. Bununla birlikte, mevcut uygulama özel kullanıcı kimlik doğrulaması, kontrol kilitleme, eş zamanlı yazma tahkimi, yazma kuyrukları veya çakışma çözme mekanizmaları içermediğinden, bu durum eksiksiz bir çok kullanıcılı kontrol çerçevesi olarak yorumlanmamalıdır. Bu sınırlamalar, karmaşık veya iş birlikçi uzaktan laboratuvarların genellikle deneye özgü arayüz tasarımı, senkronizasyon mekanizmaları, güvenlik kısıtlamaları ve kullanıcı yönetim mantığı gerektirdiği önceki uzaktan laboratuvar çalışmalarıyla tutarlıdır13,14,15,16,17.

Bu protokolün metodolojik değeri, yeni bir RIP mimarisi sunması veya RIP tarafından desteklenen veri türlerini genişletmesi değildir. Aksine değeri, yerleşik bir RIP tabanlı otomatik kullanıcı arayüzü (UI) oluşturma mekanizmasının farklı LabVIEW sistemlerine uygulanması için eksiksiz ve tekrarlanabilir bir uygulama yolu sağlamasında yatmaktadır. Her deney için özel bir Web arayüzü yazmakla karşılaştırıldığında bu iş akışı, arka uç VI uyumlu değişkenleri sunduğunda temel kontrol düzeninin, değişken bağlamanın ve okuma/yazma iletişim mantığının tekrarlı uygulamasını azaltır8,9,10,11. Bu nedenle protokol; mühendislik eğitimi, uzaktan laboratuvar geliştirme ve tarayıcı tabanlı parametre ayarı ile gerçek zamanlı durum izleme gerektiren düşük riskli simülasyon veya öğretim deneylerinin hızlı bir şekilde yayına alınması için faydalıdır. Gelecekteki çalışmalar; iş akışını daha karmaşık veri yapılarına, fiziksel deneysel cihazlara, resmi çok kullanıcılı erişim kontrolüne ve arayüz oluşturma süresi, iletişim gecikmesi, senkronizasyon kararlılığı, sunucu yükü, CPU ek yükü ve ön uç kullanılabilirliği dahil olmak üzere nicel performans değerlendirmelerine genişletmelidir.

Açıklamalar

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Yazarlar, yapay zeka destekli araçları yalnızca dil düzenlemeleri için kullanmışlardır. Tüm bilimsel içerik, deneysel prosedürler, yazılım uygulamaları, şekiller, sonuçlar, yorumlamalar ve nihai ifade biçimleri yazarlar tarafından gözden geçirilmiş, düzeltilmiş ve onaylanmıştır. Deneysel verileri üretmek için herhangi bir yapay zeka aracı kullanılmamıştır.

Teşekkürler

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Bu çalışma, Wuhan Üniversitesi'nin İnovasyon için Lisans Eğitim Programları tarafından desteklenmiştir.

Malzemeler

Bu makalede kullanılan malzemelerin listesi
AdŞirketKatalog numarasıYorumlar
Caddy Proxy SunucusuCaddyN/AWeb kullanıcı arayüzünü sunmak ve /RIP isteklerini RIP WebService'e yönlendirmek için kullanılan ters proxy
CaddyfileYazarlar tarafından hazırlanmıştırN/ARIP iletişimi için statik dosya rotalarını ve ters proxy rotalarını tanımlar
Fan_Automatic_UI.xhtmlYazarlar tarafından hazırlanmıştırN/AFan deneyi için meta veri tabanlı Web ön yüzü
LabVIEWNational Instruments2026fengshan.vi ve Motor.vi dosyalarını oluşturmak ve çalıştırmak için kullanılan yazılım
Microsoft Windows işletim sistemiMicrosoftWin11LabVIEW, RIP WebService, Caddy ve tarayıcıyı çalıştırmak için kullanılan işletim sistemi
Motor_Automatic_UI.xhtmlYazarlar tarafından hazırlanmıştırN/AMotor deneyi için meta veri tabanlı Web ön yüzü
Mozilla Firefox masaüstü tarayıcısıMozilla2026Web kullanıcı arayüzüne erişim, geliştirici araçları, zamanlama/kaynak gözlemleri ve Ağ/Konsol ekran görüntüleri için kullanılan masaüstü tarayıcı
RIP WebServiceUNEDLabshttps://github.com/Nebulous-Systems/rip-server_labviewRIP POST isteklerini alır ve tarayıcı ön yüzü tarafından kullanılan WebService iletişim katmanını sağlar
Windows Görev YöneticisiMicrosoftWindows'a entegredirTarayıcı ve LabVIEW işlemleri için işlem düzeyindeki CPU ve bellek gözlemlerini kaydetmek için kullanılır

Kaynaklar

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,
  1. Gomes, L., Bogosyan, S. Current trends in remote laboratories. IEEE Trans Ind Electron. 2009;56(12):4744–4756.
  2. Ma, J., Nickerson, J. V. Hands-on, simulated, and remote laboratories: A comparative literature review. ACM Comput Surv. 2006;38(3):7-es.
  3. Heradio, R. et al. Virtual and remote labs in education: A bibliometric analysis. Comput. Educ. 2016;98:14–38.
  4. May, D., Jahnke, I., Moore, S. Online laboratories and virtual experimentation in higher education from a sociotechnical-pedagogical design perspective. J. Comput. High. Educ. 2023;35:203–222.
  5. Amador Nelke, S. et al. Enhancing lessons on the Internet of Things in science, technology, engineering, and medical education with a remote lab. Sensors.2024;24(19):6424.
  6. Lei, Z. et al. Interactive and visualized online experimentation system for engineering education and research. J. Vis. Exp. 2021;(177):e63342.
  7. Zhang, G., Lei, Z., Hu, W., Zhou, H. Online virtual reality networked control laboratory applied in control engineering education. J. Vis. Exp. 2024;(204):e66432.
  8. Fabregas, E., Farias, G., Dormido-Canto, S., Dormido, S., Esquembre, F. Developing a remote laboratory for engineering education. Comput. Educ. 2011;57(2):1686–1697.
  9. Chacón, J., Vargas, H., Farias, G., Sánchez, J., Dormido, S. EJS, JIL Server, and LabVIEW: An architecture for rapid development of remote labs. IEEE Trans. Learn. Technol.2015;8(4):393–401.
  10. Chacón, J., Farias, G., Vargas, H., Visioli, A., Dormido, S. Remote Interoperability Protocol: A bridge between interactive interfaces and engineering systems. IFAC-PapersOnLine.2015;48(29):247–252.
  11. de la Torre, L., Chacón, J., Chaos, D., Heradio, R., Chandramouli, R. Using IoT-type metadata and smart Web design to create user interfaces automatically. IEEE Trans. Ind. Inform. 2023;19(3):3109–3118.
  12. Chaos, D., Chacón, J., Lopez-Orozco, J. A., Dormido, S. Virtual and remote robotic laboratory using EJS, MATLAB, and LabVIEW. Sensors. 2013;13(2):2595–2612.
  13. Haj-Hosseini, N., Jonasson, H., Stridsman, M., Carlsson, L. Interactive remote electrical safety laboratory module in biomedical engineering education. Educ. Inf. Technol. 2024;29:20505–20521.
  14. Galán, D. et al. Safe experimentation in optical levitation of charged droplets using remote labs. J. Vis. Exp. 2019;(143):e58699.
  15. Kurtz, M., Benabbou, A., Pons, C., Broisin, J. Collaboration in virtual and remote laboratories for education: A systematic literature review. Int. J. Comput.-Support. Collab. Learn. 2025;20:549–603.
  16. Zamarreño, J. M., Ríos, J. C., Alonso, G. Virtual and remote laboratory as a complementary support in control education. Discov. Educ. 2025;4:477.
  17. Chacón, J., Sáenz, J., de la Torre, L., Díaz, J. M., Esquembre, F. Design of a low-cost air levitation system for teaching control engineering. Sensors. 2017;17(10):2321.
  18. Stefanovic, M., Cvijetkovic, V., Matijevic, M., Simic, V. A LabVIEW-based remote laboratory experiments for control engineering education. Comput. Appl. Eng. Educ.2011; 19(3):538–549.
  19. González, I., Calderón, A. J., Mejías, A., Andújar, J. M. Novel networked remote laboratory architecture for open connectivity based on PLC-OPC-LabVIEW-EJS integration. Application in remote fuzzy control and sensors data acquisition. Sensors. 2016;16(11):1822.
  20. Abdulwahed, M., Nagy, Z. K. Developing the TriLab, a triple access mode (hands-on, virtual, remote) laboratory, of a process control rig using LabVIEW and Joomla. Comput. Appl. Eng. Educ. 2013;21(4):614–626.

Yeniden basım ve izinler

Bu JoVE makalesinin metnini veya şekillerini yeniden kullanmak için izin iste

İzin iste

Etiketler

Web Kullan c Aray zOtomatik Kullan c Aray z Olu turmaSanal Enstr manlarRIP Sunucu Yap land rmasTers Vekil SunucuCaddy Vekil SunucusuPID Konum KontrolDe i ken Meta Verileri
Video yakında

İlgili makaleler