Bu içeriği görüntülemek için JoVE aboneliğiniz gereklidir. Giriş yapın veya ücretsiz denemenizi bugün başlatın.

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

189 görüntülenme

⸱

DOI:

10.3791/72765

⸱

14 Ağustos 2026

Bu makalede

Özet

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

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ş

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.

Erişim kısıtlı. Bu içeriği görüntülemek için lütfen giriş yapın veya deneme sürümünü başlatın.

Protokol

Ş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.

Erişim kısıtlı. Bu içeriği görüntülemek için lütfen giriş yapın veya deneme sürümünü başlatın.

Sonuçlar

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 çıkış görüntüleme alanlarını otomatik olarak oluşturur. İkincisi, kullanıcı web sayfasındaki bir giriş değişkenini değiştirdiğinde, değiştirilen değer RIP arayüzü aracılığıyla LabVIEW arka uç VI'sı...

Erişim kısıtlı. Bu içeriği görüntülemek için lütfen giriş yapın veya deneme sürümünü başlatın.

Tartışma

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)...

Erişim kısıtlı. Bu içeriği görüntülemek için lütfen giriş yapın veya deneme sürümünü başlatın.

Açıklamalar

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

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

Erişim kısıtlı. Bu içeriği görüntülemek için lütfen giriş yapın veya deneme sürümünü başlatın.

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

  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.

Erişim kısıtlı. Bu içeriği görüntülemek için lütfen giriş yapın veya deneme sürümünü başlatın.

Yeniden basım ve izinler

Etiketler

Web Kullanıcı ArayüzüOtomatik Kullanıcı Arayüzü OluşturmaSanal EnstrümanlarRIP Sunucu YapılandırmasıTers Vekil SunucuCaddy Vekil SunucusuPID Konum KontrolüDeğişken Meta Verileri

Bu makale yayımlandı

Video yakında