Ein Abonnement von JoVE ist erforderlich, um diesen Inhalt anzuzeigen. Melden Sie sich an oder beginnen Sie noch heute mit einer kostenlosen Testphase.

Methodenartikel

Ein Protokoll zur automatischen Generierung webbasierter Schnittstellen für LabVIEW-Anwendungen unter Verwendung des Remote-Interoperability-Protokolls

189 Aufrufe

⸱

DOI:

10.3791/72765

⸱

14. August 2026

In diesem Artikel

Zusammenfassung

Diese Studie validiert eine auf einem Remote-Interoperabilitätsprotokoll (RIP) basierende automatische Generierung von Web-Benutzeroberflächen anhand zweier unterschiedlicher LabVIEW-Systeme – einem Lüftermodell und einem Modell zur Positionsregelung eines Gleichstrommotors – und stellt ein reproduzierbares Verfahren zur Konstruktion, Registrierung, Bereitstellung und Prüfung beider Beispiele bereit.

Zusammenfassung

Mit Fernexperimentierplattformen können lokale Simulationsmodelle oder physische Geräte über ein Netzwerk zugänglich gemacht werden. Herkömmliche Web-Frontends erfordern jedoch typischerweise eine separate Seite, eine individuelle Steuerungsanordnung und eine dedizierte Datenkommunikationslogik für jedes Experiment, was die Entwicklungskosten erhöht. Diese Arbeit bestätigt einen etablierten Workflow zur automatischen Erzeugung einer Web-Benutzeroberfläche (UI) aus LabVIEW-Virtuellen Instrumenten (VIs) mithilfe des Remote-Interoperabilitätsprotokolls (RIP) und stellt ein reproduzierbares Protokoll für dessen Implementierung bereit. Der Workflow erstellt LabVIEW-VIs, die Eingabesteuerungen und Ausgabeindikatoren auf der Bedienoberfläche definieren, registriert jedes VI in der RIP-Server-Konfiguration, liest die resultierenden Variablen-Metadaten aus und generiert die entsprechenden Web-Steuerelemente und Ausgabedisplayelemente. Caddy wird als Reverse-Proxy verwendet, um den Pfad für statische Frontend-Dateien und den Pfad für RIP-Anwendungsprogrammierschnittstellen (API)-Anfragen zu vereinheitlichen. Der Workflow wird anhand zweier unterschiedlicher Systeme evaluiert: einem Lüfterdrehzahlmodell und einem Modell zur positionsregelnden Proportional-Integral-Differenzial- (PID-)Regelung eines Gleichstrommotors (DC). In beiden Fällen identifiziert die Webseite die bereitgestellten Variablen, schreibt Benutzereingaben an das LabVIEW-Hintergrundsystem, liest Modellausgaben aus und generiert die Benutzeroberfläche basierend auf den RIP-Metadaten. Diese Ergebnisse bestätigen denselben automatischen UI-Generierungsprozess für zwei verschiedene dynamische Systeme und dokumentieren die Schritte, die erforderlich sind, um ihn zu reproduzieren.

Einleitung

Mit der Entwicklung von Fernexperimenten, Online-Lehre und Technologien des Internets der Dinge ist der webbasierte Zugriff auf lokale Simulationsmodelle oder experimentelle Geräte zu einer wichtigen Richtung bei der Entwicklung experimenteller Plattformen geworden1,2,3,4. Aktuelle Arbeiten haben zudem Labore, die mit Technologien des Internets der Dinge ausgestattet sind, in projektorientiertes Lernen sowie in lokalen oder entfernten Zugriff integriert und damit die kontinuierliche Weiterentwicklung flexibler und vernetzter experimenteller Plattformen im ingenieurwissenschaftlichen Unterricht belegt5. Bei Regelungssystemexperimenten müssen Benutzer in der Regel Eingabeparameter in einem Browser anpassen und Ausgabezustände in Echtzeit beobachten6,7. Herkömmliche Methoden erfordern typischerweise eine separate Webseite, eine Logik zur Steuerungsbindung sowie eine Schnittstelle zur Datenkommunikation für jedes experimentelle Objekt8,9. Wenn sich die Variablen im Backend-Modell ändern, muss die Frontend-Seite oft entsprechend angepasst werden, was erheblichen wiederholten Entwicklungsaufwand verursacht und die schnelle Erweiterung der experimentellen Plattform einschränkt.

Das Remote-Interoperabilitätsprotokoll (RIP) stellt eine Middleware-Schicht zwischen Backend-Experimentmodellen und Web-Frontends bereit10,11. Bei dem in früheren Arbeiten beschriebenen, auf RIP basierenden Ansatz zur automatischen Benutzeroberflächengenerierung liefert der RIP-Server Metadaten für jedes Experiment, einschließlich Variablennamen, Eingabe-/Ausgabe-Attribute, Datentypen, Minimalwerte, Maximalwerte, Genauigkeit, Beschreibungen sowie verfügbare Lese- und Schreibmethoden11. Ein Web-Client kann diese Metadaten anschließend nutzen, um während des Seitenladens oder der Aktualisierung die entsprechenden HTML-Elemente wie Beschriftungen, numerische Eingabefelder, Schieberegler, boolesche Steuerelemente und Ausgabeanzeigen zu erstellen11. Das vorliegende Protokoll implementiert die RIP-Spezifikation nicht neu und definiert sie auch nicht um. Stattdessen verwendet es den bestehenden quelloffenen RIP-Dienst sowie die auf RIP basierende Logik zur Umwandlung von Metadaten in HTML-Benutzeroberflächen als Grundlage für Kommunikation und Oberflächengenerierung und konzentriert sich auf den reproduzierbaren Aufbau, die Registrierung, die Proxy-Bereitstellung und die Verifizierung von zwei LabVIEW-VI-Beispielen.

Im Vergleich zur herkömmlichen, benutzerdefinierten Entwicklung von Web-Schnittstellen reduziert die auf RIP basierende automatische Benutzeroberflächengenerierung den Aufwand für die Implementierung von Steuerungs-Layouts, Variablen-Bindungslogik und grundlegenden Kommunikationsfunktionen, wenn mehrere LabVIEW-Experimente vergleichbare skalare Ein- und Ausgabewerte bereitstellen8,9,10,11. Sobald eine neue VI registriert ist und ihre Variablen dem RIP-Server zur Verfügung stehen, kann dieselbe Logik zum Auslesen der Metadaten und zur Generierung von Steuerelementen wiederverwendet werden, um die grundlegende Web-Schnittstelle aufzubauen10,11. Diese Funktion ist nützlich für eine schnelle Bereitstellung, Lehrdemonstrationen und Plattformen für Fernlabore, die einen konsistenten Zugriff auf mehrere ähnliche Experimente erfordern3,8,9. Die automatisch generierte Schnittstelle weist jedoch auch Einschränkungen auf. Sie leitet nicht vollständig die physikalischen Beziehungen zwischen den Variablen ab, bestimmt nicht automatisch die Zuordnung von Diagrammen und entwirft keine domänenspezifischen Visualisierungen oder Sicherheitsinteraktionen11. Daher bleibt die manuelle Entwicklung einer Web-Schnittstelle vorzuziehen, wenn ein Experiment hochgradig angepasste Grafiken, komplexe Benutzerabläufe, erweiterte Visualisierungen, hardwarebasierte Sicherheitsverriegelungen oder eine Schreibzugriffsarbitrierung für mehrere Benutzer erfordert.

Der gesamte Ablauf des Protokolls ist in Abbildung 1 zusammengefasst. In diesem Ablauf definiert eine LabVIEW-VI zunächst die erforderlichen Eingabesteuerungen und Ausgabeanzeigen auf dem Bedienfeld. Die VI wird anschließend in der RIP-Server-Konfiguration registriert, indem der Experimentname und der VI-Pfad angegeben werden. Nach der Registrierung liest der RIP-Server die Metadaten des ausgewählten Experiments ein und bietet Lese- und Schreibzugriff auf die verfügbaren Variablen. Die XHTML-Webseite nutzt die zurückgegebenen Metadaten, um automatisch die entsprechenden Eingabesteuerungen und Ausgabedisplayelemente zu erzeugen, während Caddy einen einheitlichen Zugriffspfad für die statische Webseite und die RIP-Kommunikationswege bereitstellt. Im Rahmen dieser Studie werden das Lüfter- und das Gleichstrommotor-Modell als zwei Implementierungen desselben Arbeitsablaufs verwendet. Für andere LabVIEW-Experimente, die kompatible skalare, numerische und boolesche Variablen bereitstellen, können Entwickler denselben Ablauf aus Erstellen, Registrieren, Bereitstellen und Überprüfen befolgen, um eine automatisch generierte Weboberfläche zu erstellen, und dabei bei Bedarf experiment-spezifische Visualisierungen, Sicherheitslogik oder komplexe Datenverarbeitung hinzufügen.

Dieser Artikel schlägt keine neue RIP-Architektur vor oder erweitert den Umfang der Datentypen, die von RIP bereits unterstützt werden. Stattdessen nutzt er RIP als etablierten Mechanismus für die Kommunikation und die auf Metadaten basierende Generierung von Benutzeroberflächen und konzentriert sich darauf, denselben Prozess mit zwei verschiedenen LabVIEW-Systemen zu validieren, während gleichzeitig ein reproduzierbares Implementierungsprotokoll dokumentiert wird. Frühere Arbeiten stellten eine grundlegende Methode zur automatischen Generierung von Web-Benutzeroberflächen basierend auf RIP-Metadaten vor und verwendeten ein Online-Servomotorexperiment als Fallstudie11. Webfähige Fernlabor-Architekturen, die interaktive Schnittstellen mit Ingenieursoftware und LabVIEW kombinieren, wurden ebenfalls in früheren Studien beschrieben9,12. Bei praktischen Reproduktionen waren jedoch einige LabVIEW-Modelle im ursprünglichen Fall von Softwareversionen und Modulkompatibilitäten betroffen, was ihre direkte Verwendung in neueren Umgebungen erschwerte. Die vorliegende Arbeit rekonstruiert daher zwei kompatible Backend-VIs – ein Lüftermodell und ein Modell zur positionsregelbasierten Regelung eines Gleichstrommotors (DC-Motor) mittels Proportional-Integral-Differenzial-Regler (PID) – und wendet denselben, auf Metadaten basierenden Prozess zur Benutzeroberflächengenerierung auf beide an. Der Beitrag liegt in der plattformübergreifenden Validierung des etablierten RIP-Arbeitsablaufs und in einem detaillierten Protokoll zur Reproduktion des Prozesses, nicht in einer Erweiterung der Allgemeingültigkeit von RIP.

Die Zielgruppe dieses Protokolls sind Forscher, Dozenten und Laborentwickler, die bereits LabVIEW-VIs verwenden und Simulationsmodelle oder Experimentalsysteme mit geringem Risiko über einen Webbrowser zugänglich machen möchten, ohne für jedes Modell eigenständig eine vollständige benutzerdefinierte Oberfläche implementieren zu müssen. Das Protokoll eignet sich besonders gut für Experimente, die Standard-Numerik- und Boolesche Variablen, Parameteranpassungen und Echtzeit-Statusüberwachung nutzen10,11. Es ist weniger geeignet als eigenständige Lösung für Experimente, die komplexe Datenstrukturen, spezialisierte Visualisierungen, strikte Hardware-Sicherheitsverriegelungen oder Mehrnutzer-Schreibarbitrierung erfordern11. Ziel dieser Arbeit ist es, die automatische Generierung webbasierter Benutzeroberflächen mittels RIP anhand zweier unterschiedlicher LabVIEW-Systeme zu validieren und ein vollständiges, reproduzierbares Protokoll von der Erstellung der Backend-VIs bis zur browserbasierten Interaktion bereitzustellen. Das Protokoll umfasst die Definition von Eingabe- und Ausgabevariablen, die Registrierung des Experiments am RIP-Server, die metadatenbasierte Generierung der Benutzeroberfläche, die Bereitstellung des Caddy-Proxys sowie die Verifizierung des Fernzugriffs auf Lese- und Schreiboperationen. Die Anwendung desselben Workflows auf die Modellbeispiele Lüfter und Gleichstrommotor zeigt, dass der etablierte Prozess reproduziert werden kann, ohne dass für jedes Beispiel eine komplette Web-Oberfläche manuell neu geschrieben werden muss9,10,11.

Zugriff eingeschränkt. Bitte melden Sie sich an oder starten Sie eine Testversion, um diesen Inhalt anzuzeigen.

Protokoll

Führen Sie die folgenden Schritte aus, um zwei über RIP zugängliche LabVIEW-Experimente gemäß dem in Abbildung 1 zusammengefassten Workflow zu erstellen, zu registrieren, bereitzustellen und zu verifizieren. Alle in dieser Studie verwendeten Werkzeuge und Plattformen sind in der Tabelle der Materialien aufgelistet.

1. Aufbau und Durchführung des Ventilatormodellexperiments

  1. Baue das Lüftermodell VI.
    1. Öffnen Sie LabVIEW, erstellen Sie ein neues VI und speichern Sie die Datei als fengshan.vi. Speichern Sie das VI in einem beliebigen Verzeichnis, auf das der RIP-WebService-Prozess zugreifen kann. Der Ordner „Private“ wird lediglich als Beispielverzeichnis verwendet und ist nicht im RIP fest codiert. Geben Sie während der RIP-Experimentregistrierung den tatsächlich gewählten VI-Pfad ein.
    2. Fügen Sie auf dem Frontpanel die Eingabesteuerelemente für das Lüftermodell hinzu. Benennen Sie in diesem Beispiel die Eingabesteuerelemente Aktivieren, PWM, Laden, Tau, KMaxDrehzahl, und Störung. Einstellen Aktivieren als boolesche Steuerung und einstellen PWM, Last, Tau, KMaxU/minund Störung als numerische Steuerungen mit doppelter Genauigkeit (DBL). Siehe Zusatz-Tabelle 1 für die physikalische Bedeutung und die Modellfunktion der Ventilatorenvariablen.
    3. Fügen Sie die Ausgabekenngrößen für das Lüftermodell hinzu. Benennen Sie in diesem Beispiel die Ausgabekenngrößen SpeedRPM, SteadyRPM, TimeS, SpeedNorm, CurrentA und PowerW. Stellen Sie alle Ausgabeindikatoren als DBL-Indikatoren ein.
      ​HINWEIS: Tabelle 1 beschreibt die physikalische Bedeutung und die Modellfunktion dieser Ausgabegrößen. Die fertige Lüfter-Frontplatte ist dargestellt in Abbildung 2Die angezeigten Variablennamen, Bereiche und Schrittgrößen in Tabelle 1 beschreiben die beiden in diesem Protokoll implementierten Beispiele. Sie stellen keine fest codierten Anforderungen von RIP dar. Für andere LabVIEW-Experimente können Entwickler unterschiedliche Namen für Frontpanel-Variablen und numerische Eigenschaften festlegen. Der RIP-Server liest die tatsächlichen Variablennamen, Datentypen, Eingabe-/Ausgabe-Attribute und verfügbaren numerischen Eigenschaften aus den VI-Metadaten aus, und die Webseite generiert die entsprechenden Steuerelemente und Anzeigen anhand der zurückgegebenen Metadaten.
    4. Fügen Sie eine While-Schleife zum Blockdiagramm hinzu. Fügen Sie zwei Shift-Register hinzu, um Geschwindigkeit_zuvor und Zeit_vorherund initialisieren Sie beide Werte auf 0.
    5. Fügen Sie einen Formelknoten innerhalb der While-Schleife hinzu. Verbinden Sie Aktivieren, PWM, Last, Tau, KMaxDrehzahl, Störung, Drehzahl_vorher, und Zeit_vorher zu den linken Eingangsterminals des Formelknotens, und setzen Sie SteadyRPM, speed_next, SpeedNorm, CurrentA, PowerW und zeit_nächste als die rechten Ausgangsklemmen.
    6. Aufbau des Aktivieren Steuerlogik außerhalb des Formelknotens. Verwenden Sie Aktivieren als das Auswahlsignal, sodass u = PWM wenn Aktivieren ist wahr und u = 0 wenn Aktivieren ist falsch.
    7. Geben Sie den Lüfter-Modellcode in den Formelknoten ein. Verwenden Sie diesen Code, um die stationäre Drehzahl, die tatsächliche Drehzahl, die normierte Drehzahl, den Strom, die Leistung und die Betriebszeit zu berechnen; siehe Ergänzende Codierungsdatei 1 für den vollständigen Code.
    8. Verbinden Sie das speed_next Ausgabe des Formelknotens an die SpeedRPM Indikator und anschließen speed_next zurück zum rechten Schieberegister für Geschwindigkeit_vorher. Verbinden SteadyRPM zum SteadyRPM Indikator
    9. Verbinden zeit_nächste zum ZeitS Indikator und Verbindung zeit_nächste zurück zum rechten Schieberegister für Zeit_prev. Verbinden SpeedNorm, StromA, und PowerW zu den entsprechenden Ausgabeindikatoren.
    10. Fügen Sie eine Warte-Funktion innerhalb der While-Schleife hinzu und stellen Sie die Wartezeit auf 50 ms ein. Fügen Sie eine Schaltfläche „Lokal stoppen“ hinzu und verbinden Sie sie mit dem Bedingungs-Terminal der While-Schleife.
    11. Speichern Sie fengshan.vi. Das fertige Blockschaltbild des Lüfters ist dargestellt in Abbildung 3.
      PAUSEPUNKT: Nachdem das fertige Fan-VI gespeichert wurde, kann der Workflow unterbrochen werden. Setzen Sie später fort, indem Sie das gespeicherte VI erneut öffnen und überprüfen, ob alle Steuerelemente, Anzeigen und Blockdiagramm-Verbindungen auf der Vorderseite weiterhin vorhanden sind.
  2. Registrieren Sie das Fan-Experiment im RIP-Server.
    1. Öffnen Sie RIPWebService.lvproj im LabVIEW-Projektexplorer
      .
    2. Öffnen Sie Configuration.vi im Projektbaum und suchen Sie die Experimentkonfigurationstabelle.
    3. Fügen Sie eine neue Experimentzeile hinzu. Legen Sie den Namen auf fan fest. Geben Sie den vollständigen Pfad zur gespeicherten Datei fengshan.vi an. Die Registrierungsfelder für das fan-Experiment werden angezeigt in Abbildung 4.
    4. Füllen Sie die verbleibenden Konfigurationsfelder aus. Legen Sie Autoren auf den Experimentautor fest, Schlüsselwörter auf Fan, Beschreibung auf Lüftergeschwindigkeitsmodell und Abtastrate auf 200.
    5. Im LabVIEW-Menü wählen Sie aus Bearbeiten > Aktuelle Werte als Standard festlegen. Save Configuration.vi
    6. Neustart des RIP-Webservices und Überprüfung, ob das Lüfterexperiment nach dem Neustart weiterhin in der Konfigurationsoberfläche aufgeführt ist.
      HINWEIS: Der Experimentname beachtet die Groß- und Kleinschreibung. Der Wert fan in der RIP-Konfiguration muss exakt mit der Experiment-ID in der XHTML-Datei der Benutzeroberfläche übereinstimmen. Um ein weiteres LabVIEW-VI mit derselben Logik zur automatischen Benutzeroberflächenerstellung bereitzustellen, fügen Sie einen neuen Experimenteintrag in der RIP-Konfiguration hinzu, legen Sie einen neuen Namenwert fest und weisen Sie unter „Pfad“ die entsprechende VI-Datei zu. Verwenden Sie anschließend denselben Namenwert als Experiment-ID in der XHTML-Datei. Die Seite der Benutzeroberfläche muss nicht für jede Variable neu geschrieben werden.
      ​PAUSE-POSITION: Nachdem Configuration.vi gespeichert und die aktuellen Werte als Standard festgelegt wurden, kann der Workflow angehalten werden. Setzen Sie später fort, indem Sie den RIP-WebService neu starten und bestätigen, dass das Lüfterexperiment weiterhin registriert ist.
  3. Bereiten Sie die Vorderseite für das Lüfterexperiment vor.
    1. Fan_Automatic_UI.xhtml in das Client-Verzeichnis kopieren, das als Front-End-Stammverzeichnis verwendet wird.
    2. Öffnen Sie Fan_Automatic_UI.xhtml mit einem Texteditor.
    3. Suchen Sie die Versuchs-ID-Variable im Skriptabschnitt und setzen Sie sie auf fan.
      HINWEIS: Dieser Wert muss exakt mit dem Namensfeld des Lüfterexperiments in der RIP-Konfiguration übereinstimmen. Die Einstellungen der Experiment-ID und die gemeinsame, auf Metadaten basierende Logik zur Erzeugung der Benutzeroberfläche für die XHTML-Frontend-Dateien sind dargestellt in Abbildung 5.
    4. Überprüfen Sie, ob die Seite den aktuellen Zugriffsursprung über window.location.origin erhält und Metadaten zum Experiment anfordert über rip.info()und übergibt die zurückgegebene Metadaten an autobuildUI().
      HINWEIS: Die Seite sollte die Variablennamen, Bereiche oder Schrittgrößen für Lüfter nicht manuell fest codieren. Stattdessen werden beschreibbare Variablen aus meta.schreibbare.liste, lesbare Variablen werden generiert aus meta.readables.listund numerische Attribute wie min, max und step werden aus den vom RIP-Server zurückgegebenen Metadaten abgerufen.
    5. Fan_Automatic_UI.xhtml speichern.
      ​HINWEIS: Um dieselbe Frontend-Generierungslogik für eine andere LabVIEW-VI zu verwenden, legen Sie eine neue Experiment-ID in der XHTML-Datei fest und registrieren Sie den entsprechenden Experimentnamen und den VI-Pfad in der RIP-Konfiguration. Die Web-Steuerelemente und Ausgabedisplays werden entsprechend den Metadaten generiert, die vom ausgewählten Experiment zurückgegeben werden.
  4. Konfigurieren Sie den Caddy-Zugriffspfad für das Fan-Experiment.
    1. Öffnen Sie die Caddyfile mit einem Texteditor.
    2. Legen Sie das Stammverzeichnis der Front-End-Oberfläche auf das Client-Verzeichnis fest, das Fan_Automatic_UI.xhtml enthält.
    3. Wählen Sie einen ungenutzten lokalen Port für Caddy, um den Browserzugriff auf die Webseite und die RIP-Routen bereitzustellen. In diesem Protokoll wird Port 8090 als Beispiel für einen Proxy-Zugriffsport verwendet.
      HINWEIS: Port 8090 wird weder von RIP noch von Caddy benötigt. Falls Port 8090 belegt ist, ersetzen Sie ihn durch einen anderen freien lokalen Port und verwenden Sie denselben Port in der Browser-Adresse.
    4. Fügen Sie eine Route hinzu, die /fan in Fan_Automatic_UI.xhtml umschreibt.
    5. Identifizieren Sie den im LabVIEW konfigurierten RIP-WebService-Port. In diesem Protokoll wird http://localhost:8001 als RIP-WebService-Adresse verwendet.
      HINWEIS: Port 8001 ist der im Testumfeld verwendete Backend-Port des LabVIEW/RIP-Webservices. Er kann in der Konfiguration des LabVIEW/RIP-Webservices geändert werden. Falls ein anderer Port verwendet wird, ist http://localhost:8001 in der Caddyfile durch die entsprechende RIP-Webservice-Adresse zu ersetzen.
    6. Fügen Sie eine Reverse-Proxy-Regel hinzu, die Anfragen an /RIP/SSE* an die RIP-WebService-Adresse, beispielsweise http://localhost:8001, weiterleitet.
    7. Fügen Sie eine Reverse-Proxy-Regel hinzu, die /RIP*-Anfragen an die RIP-WebService-Adresse, beispielsweise http://localhost:8001, weiterleitet. Die Caddyfile-Konfiguration ist dargestellt in Abbildung 6.
    8. Öffnen Sie die Eingabeaufforderung unter Windows. Wechseln Sie mithilfe des folgenden Befehls in das lokale Caddy-Download- oder Installationsverzeichnis:
      cd /d D:\caddy
      HINWEIS: In diesem Protokoll ist D:\caddy der lokale Pfad für den Caddy-Download bzw. die Caddy-Installation, der in der Testumgebung verwendet wird. Falls Caddy in einem anderen Verzeichnis gespeichert ist, ersetzen Sie D:\caddy durch den entsprechenden lokalen Pfad.
    9. Starten Sie Caddy mit der angegebenen Caddyfile, indem Sie den folgenden Befehl eingeben:
      caddy.exe run --config Caddyfile
    10. Stellen Sie sicher, dass Caddy ohne Meldung eines Konfigurationsfehlers startet. Öffnen Sie http://localhost:8090/fan in einem Webbrowser und überprüfen Sie, dass die Web-Oberfläche für den Fan angezeigt wird, wie in Abbildung 7.
      ​HINWEIS: Wenn der Browser einen 502-Fehler zurückgibt, überprüfen Sie, ob der RIP-WebService ausgeführt wird, ob der RIP-WebService-Port in LabVIEW mit der Reverse-Proxy-Adresse in der Caddyfile übereinstimmt und ob der ausgewählte Caddy-Zugriffsport belegt ist.
  5. Überprüfen Sie die Betriebsergebnisse des Lüfterexperiments.
    1. Stellen Sie sicher, dass die Front-End-Seite automatisch die Aktivieren, PWM, Last, Tau, KMaxU/min, und Störung Eingabekontrollen
    2. Stellen Sie sicher, dass die Frontend-Seite die anzeigt SpeedRPM, SteadyRPM, TimeS, SpeedNorm, CurrentA und PowerW Ausgabegrößen
    3. Anpassen PWM und beobachten Sie, ob SpeedRPM steigt an, wenn PWM steigt und fällt, wenn PWM nimmt ab.
    4. Last anpassen und beobachten, ob SteadyRPM und SpeedRPM nimmt ab, wenn die Last zunimmt.
    5. Stellen Sie die Störung ein und beobachten Sie, ob DrehzahlRPM, StromA und PowerW Änderung als Reaktion auf die Störgrößeneingabe.
    6. Stellen Sie sicher, dass ZeitS steigt weiter an, was bestätigt, dass der hinterste Lüfter VI kontinuierlich läuft.

2. Aufbau und Durchführung des PID-Regelungsexperiments für die Position eines Gleichstrommotors

  1. Erstellen Sie das PID-Regelungsmodell für die Position des Gleichstrommotors VI.
    1. Öffnen Sie LabVIEW, erstellen Sie ein neues VI und speichern Sie die Datei als Motor.vi. Speichern Sie das VI in einem beliebigen Verzeichnis, auf das der RIP-WebService-Prozess zugreifen kann.
      HINWEIS: Der Ordner „Private“ wird nur als Beispielverzeichnis verwendet und ist in RIP nicht fest codiert. Geben Sie während der Registrierung des RIP-Experiments den tatsächlich ausgewählten VI-Pfad ein.
    2. Fügen Sie auf dem Bedienfeld die Eingangssteuerungen für das PID-Positionsregelungsmodell des Gleichstrommotors hinzu. Benennen Sie in diesem Beispiel die Eingangssteuerungen Sollwert, Kc, Ti, Td, Störgrößeund Steuerung zurücksetzen. Einstellen Sollwert, Kc, Ti, Td und Störung als DBL-numerische Steuerelemente und legen Sie das Reset-Steuerelement als boolesches Steuerelement fest.
      HINWEIS: Tabelle 1 beschreibt die physikalische Bedeutung, die Modellrolle und den empfohlenen Bereich der in diesem Beispiel verwendeten Variablen.
    3. Fügen Sie die Ausgangsindikatoren für das PID-Positionsregelungsmodell des Gleichstrommotors hinzu. Benennen Sie in diesem Beispiel die Ausgangsindikatoren Position, Spannung, Zeit und Gemessene Winkelgeschwindigkeit. Stellen Sie alle Ausgangsindikatoren als DBL-Indikatoren ein. Tabelle 1 beschreibt die physikalische Bedeutung und die Modellfunktion dieser Ausgabegrößen. Die fertige Frontplatte für den Motor ist dargestellt in Abbildung 8.
      HINWEIS: Die in der Liste angegebenen Variablennamen und -bereiche in Tabelle 1 beschreiben die beiden in diesem Protokoll implementierten Beispiele. Sie stellen keine festen Vorgaben für den auf RIP basierenden automatischen Workflow zur Benutzeroberflächengenerierung dar. Wenn ein anderes LabVIEW-VI verwendet wird, liest RIP die tatsächlichen Variablennamen, Datentypen, Eingabe-/Ausgabe-Attribute und verfügbaren numerischen Eigenschaften aus den VI-Metadaten. Daher muss die Logik zur Generierung der Benutzeroberfläche keine Variablennamen, Maximalwerte, Minimalwerte oder Schrittgrößen für jedes Experiment fest einprogrammieren.
    4. Fügen Sie eine While-Schleife zum Blockdiagramm hinzu. Fügen Sie sechs Schieberegister hinzu, um theta, omega, im, e_prev, integ und Zeit, und initialisieren Sie alle sechs Werte auf 0.
    5. Fügen Sie einen Formelknoten innerhalb der While-Schleife hinzu. Gemäß dem in der PID-Positionsregelungsmodellskizze für Gleichstrommotoren gezeigten Schema Abbildung 9, verwenden Sie diesen Formelknoten als zentrales Berechnungsmodul für die Fehlerberechnung, die PID-Regelung, die Spannungsbegrenzung, das elektrische Modell, das mechanische Modell und die Positionsaktualisierung.
      HINWEIS: Die in diesem Modell verwendeten internen Motorparameter, wie R, L, J, b, Kt, Ke und Vmax, sind normalisierte Lehrmodell-Parameter und keine kalibrierten Parameter eines spezifischen physischen Motors. Sie wurden so gewählt, dass unter dem gewählten Zeitschritt und der gewählten Spannungsgrenze eine stabile und beobachtbare simulierte Antwort erzeugt wird, sodass die Effekte von Sollwert, Kc, Ti, Td und Störung lässt sich während des webbasierten Betriebs eindeutig nachweisen.
    6. Einstellen sp, theta, omega, im, e_prev, integ, Kc, Ti, Td, Störgröße, Rücksetzen und dt as die Eingangsterminals des Formelknotens. Setzen Sie theta_next, omega_next, im_next, e_next, integ_next und Spannung als die Ausgangsklemmen des Formelknotens.
    7. Verbinden Sie Sollwert Kontrolle zur sp Eingangsklemme des Formelknotens. Verbinden Kc, Ti, Td und Störung zum Kc, Ti, Td und dStörung iEingangsterminals des Formelknotens, jeweils.
    8. Konvertieren Sie das boolesche Signal der Reset-Steuerung in ein numerisches Signal und verbinden Sie es mit dem zurücksetzen Eingangsklemme des Formelknotens. Zustandsrücksetzung ausführen, wenn zurücksetzen ist nicht gleich 0, und führen Sie die PID-Regelung und die Aktualisierung des Motorzustands durch, wenn zurücksetzen ist gleich 0.
    9. Fügen Sie die numerische Konstante hinzu dt und setzen Sie dessen Wert auf 0,001 s. Verbinden Sie das dt zur dt Eingangsklemme des Formelknotens und verwenden Sie sie zur Zeitaktualisierung.
    10. Stellen Sie die internen Modellparameter des Gleichstrommotors im Formelknoten ein. Siehe Zusatz-Tabelle 2 für die physikalische Bedeutung und die Modellfunktion der Motorenvariablen.
    11. Geben Sie den PID-Regelungscode für die Position des Gleichstrommotors in den Formelknoten ein. Verwenden Sie diesen Code, um die Logik für die Rücksetzung, Fehlerberechnung, Berechnung des Integralanteils, Berechnung des Differenzialanteils, PID-Regelung, Spannungsbegrenzung, Stromaktualisierung, Winkelgeschwindigkeitsaktualisierung und Positionsaktualisierung zu implementieren; für den vollständigen Code siehe die ergänzenden Codedateien.
    12. Verbinden theta_next zum Position Indikator und anschließen theta_next zurück zum rechten Schieberegister für theta Verbinden omega_next zur Gemessener Winkelgeschwindigkeitsanzeigerund verbinden omega_next zurück zum rechten Schieberegister für omega
    13. Schließen Sie die Spannung an den Spannungsanzeiger an. Schließen Sie im_next, e_next und integ_next zurück zu den rechten Schieberegistern für im, e_prev, und integ, bzw.
    14. Verwenden Sie eine Add-Funktion außerhalb des Formelknotens zur Berechnung time_next = time + dt. Verbinden zeit_nächste zur Zeit Indikator und anschließen zeit_nächste zurück zum rechten Schieberegister für die Zeit.
    15. Fügen Sie eine Warte-Funktion innerhalb der While-Schleife ein und stellen Sie die Wartezeit auf 1 ms ein. Fügen Sie eine Stop-Taste hinzu und verbinden Sie sie mit dem Bedingungs-Terminal der While-Schleife.
    16. Motor.vi speichern. Das fertige Blockdiagramm des Motors ist dargestellt in Abbildung 10.
      PAUSEPUNKT: Nachdem das abgeschlossene Motor-VI gespeichert wurde, kann der Workflow angehalten werden. Setzen Sie später fort, indem Sie das gespeicherte VI erneut öffnen und überprüfen, ob alle Steuerelemente, Anzeigen und Blockdiagramm-Verbindungen auf der Vorderseite weiterhin vorhanden sind.
  2. Registrieren Sie das Motorexperiment im RIP-Server.
    1. Öffnen Sie RIPWebService.lvproj im LabVIEW-Projektexplorer.
    2. Öffnen Sie Configuration.vi im Projektbaum und suchen Sie die Experiment-Konfigurationstabelle.
    3. Fügen Sie eine neue Experimentzeile hinzu. Legen Sie Name auf Motor fest. Legen Sie Pfad auf den vollständigen Pfad der gespeicherten Datei Motor.vi fest. Die Registrierungsfelder für das Motor-Experiment werden angezeigt in Abbildung 11.
    4. Füllen Sie die verbleibenden Konfigurationsfelder aus. Legen Sie Autoren auf den Experimentautor fest, Stichwörter auf Motor, Beschreibung auf Modell zur Positionsregelung eines Gleichstrommotors und Abtastfrequenz auf 200.
    5. Im LabVIEW-Menü wählen Sie aus Bearbeiten > Aktuelle Werte als Standard festlegen. Save Configuration.vi
    6. Neustart des RIP-Webservices und Überprüfung, ob das Motor-Experiment nach dem Neustart weiterhin in der Konfigurationsoberfläche aufgeführt ist.
      HINWEIS: Der Experimentname beachtet die Groß- und Kleinschreibung. Der Wert Motor in der RIP-Konfiguration muss exakt mit der Experiment-ID in Motor_Automatic_UI.xhtml übereinstimmen. Um eine andere LabVIEW-VI mit derselben Logik zur automatischen Benutzeroberflächengenerierung bereitzustellen, fügen Sie einen neuen Experimenteintrag in der RIP-Konfiguration hinzu, legen Sie einen neuen Namenwert fest und weisen Sie dem Pfad die entsprechende VI-Datei zu. Verwenden Sie anschließend denselben Namenwert als Experiment-ID in der XHTML-Datei. Die Frontend-Seite muss nicht für jede Variable neu geschrieben werden.
      ​PAUSE-POSITION: Nachdem die Datei Configuration.vi gespeichert und die aktuellen Werte als Standard festgelegt wurden, kann der Workflow angehalten werden. Setzen Sie später fort, indem Sie den RIP-WebService neu starten und bestätigen, dass das Motor-Experiment weiterhin registriert ist.
  3. Bereiten Sie die Startseite für das Motorexperiment vor.
    1. Platzieren Sie Motor_Automatic_UI.xhtml im Client-Verzeichnis, das als Frontend-Stammverzeichnis verwendet wird.
    2. Öffnen Sie Motor_Automatic_UI.xhtml mit einem Texteditor.
    3. Suchen Sie die Experiment-ID-Variable im Skriptabschnitt und setzen Sie sie auf Motor. Dieser Wert muss exakt mit dem Namensfeld des Motor-Experiments in der RIP-Konfiguration übereinstimmen. Die Motor-Oberflächen-Seite verwendet dieselbe, auf Metadaten basierende Logik zur Generierung der Benutzeroberfläche, die in Abbildung 5; lediglich die Experiment-ID wird geändert, um der Motor-Eingabe in der RIP-Konfiguration zu entsprechen.
    4. Stellen Sie sicher, dass die Seite die RIP-Metadatenleselogik, die HTML-Steuerelementgenerierungslogik, die RIP-Schreibfunktion und die Ausgabedatenaktualisierungsfunktion enthält.
      HINWEIS: Die Seite sollte die Namen, Bereiche oder Schrittgrößen der Motorenvariablen nicht manuell fest codieren. Diese Eigenschaften werden aus den Metadaten abgeleitet, die vom RIP-Server zurückgegeben werden, gemäß dem zuvor beschriebenen RIP-basierten Mechanismus zur Generierung von HTML aus Metadaten.11.
    5. Motor_Automatic_UI.xhtml speichern.
      ​HINWEIS: Um dieselbe Frontend-Generierungslogik für eine andere LabVIEW-VI zu verwenden, legen Sie eine neue Experiment-ID in der XHTML-Datei fest und registrieren Sie den entsprechenden Experimentnamen und den VI-Pfad in der RIP-Konfiguration. Die Websteuerelemente und Ausgabedisplay werden entsprechend den Metadaten generiert, die vom ausgewählten Experiment zurückgegeben werden.
  4. Konfigurieren Sie den Caddy-Zugriffspfad für das Motorexperiment.
    1. Öffnen Sie die Caddyfile mit einem Texteditor.
    2. Legen Sie das Frontend-Stammverzeichnis auf das Client-Verzeichnis fest, das Motor_Automatic_UI.xhtml enthält.
    3. Wählen Sie einen nicht verwendeten lokalen Port für Caddy aus, um den Browserzugriff auf die Webseite und die RIP-Routen bereitzustellen. In diesem Protokoll wird Port 8090 als Beispiel für einen Proxy-Zugriffsport verwendet.
      HINWEIS: Port 8090 wird weder von RIP noch von Caddy benötigt. Falls Port 8090 belegt ist, ersetzen Sie ihn durch einen anderen freien lokalen Port und verwenden Sie denselben Port in der Browser-Adresse.
    4. Fügen Sie eine Route hinzu, die /motor in Motor_Automatic_UI.xhtml umschreibt.
    5. Identifizieren Sie den im LabVIEW konfigurierten RIP-WebService-Port. In diesem Protokoll wird http://localhost:8001 als RIP-WebService-Adresse verwendet.
      HINWEIS: Port 8001 ist der im Testumfeld verwendete Backend-Port des LabVIEW/RIP-Webservices. Er kann in der Konfiguration des LabVIEW/RIP-Webservices geändert werden. Falls ein anderer Port verwendet wird, ersetzen Sie http://localhost:8001 in der Caddyfile durch die entsprechende RIP-Webservice-Adresse.
    6. Fügen Sie eine Reverse-Proxy-Regel hinzu, die Anfragen an /RIP/SSE* an die RIP-WebService-Adresse, beispielsweise http://localhost:8001, weiterleitet.
    7. Fügen Sie eine Reverse-Proxy-Regel hinzu, die Anfragen an /RIP* an die RIP-WebService-Adresse, beispielsweise http://localhost:8001, weiterleitet. Die Caddyfile-Konfiguration ist in Abbildung 6 dargestellt.
    8. Öffnen Sie die Eingabeaufforderung unter Windows. Wechseln Sie mithilfe des folgenden Befehls in das lokale Caddy-Download- oder Installationsverzeichnis:
      cd /d D:\caddy
      HINWEIS: In diesem Protokoll ist D:\caddy der lokale Pfad für den Caddy-Download oder die Caddy-Installation, der in der Testumgebung verwendet wird. Falls Caddy in einem anderen Verzeichnis gespeichert ist, ist D:\caddy durch den entsprechenden lokalen Pfad zu ersetzen.
    9. Starten Sie Caddy mit der angegebenen Caddyfile, indem Sie den folgenden Befehl eingeben:
      caddy.exe run --config Caddyfile
    10. Stellen Sie sicher, dass Caddy startet, ohne einen Konfigurationsfehler zu melden. Öffnen Sie http://localhost:8090/motor in einem Webbrowser und überprüfen Sie, ob die Web-Benutzeroberfläche für den Motor angezeigt wird, wie in Abbildung 12.
      ​HINWEIS: Wenn die Motor-Webseite geladen wird, aber die Ausgabewerte sich nicht aktualisieren, überprüfen Sie, ob der RIP-WebService ausgeführt wird, ob die Motor-VI ausgeführt wird, ob der RIP-WebService-Port in LabVIEW mit der Reverse-Proxy-Adresse in der Caddyfile übereinstimmt und ob die Route /RIP/SSE* korrekt weitergeleitet wird.
  5. Überprüfen Sie die Betriebsergebnisse des Motorexperiments.
    1. Überprüfen Sie, ob die Front-End-Seite automatisch die Sollwert, Kc, Ti, Td, Störgröße, und Zurücksetzen Kontrolleingangssteuerungen.
    2. Stellen Sie sicher, dass die Frontend-Seite die anzeigt Position, Spannung, Zeit, und Gemessene Winkelgeschwindigkeit Ausgabewerte
    3. Anpassen Sollwert und beobachten Sie, ob die Position auf die Änderung der gewünschten Position reagiert.
    4. Anpassen Kc, Ti und Td und beobachten Sie, ob Spannung, Position, und Gemessene Winkelgeschwindigkeit Veränderung.
    5. Anpassen die Störung und beobachten Sie, ob die Position, die Steuerspannung oder die gemessene Winkelgeschwindigkeit wird beeinflusst von dem Störung Eingabe.
    6. Klicken Sie auf die Schaltfläche „Zurücksetzen“ und beobachten Sie, ob Position, Spannung, gemessene Winkelgeschwindigkeit, und die zugehörigen internen Zustände kehren gemäß der Reset-Logik in ihre Anfangszustände zurück.

Zugriff eingeschränkt. Bitte melden Sie sich an oder starten Sie eine Testversion, um diesen Inhalt anzuzeigen.

Ergebnisse

Nach Abschluss des oben beschriebenen Workflows können sowohl das Lüfterexperiment als auch das Experiment zur PID-Regelung der Position eines Gleichstrommotors über die automatisch generierte Web-Oberfläche aufgerufen werden. Ein erfolgreicher Versuch wird durch drei Beobachtungen bestätigt. Erstens erzeugt die Webseite automatisch Eingabesteuerungen und Ausgabedisplayfelder gemäß den Variablen-Metadaten, die vom RIP-Server zurückgegeben werden. Zweitens wird beim Ändern einer Eingabevariablen durch den Benutzer auf der...

Zugriff eingeschränkt. Bitte melden Sie sich an oder starten Sie eine Testversion, um diesen Inhalt anzuzeigen.

Diskussion

Ein entscheidender Schritt in diesem Protokoll ist der standardisierte Aufbau und die Registrierung der LabVIEW-Hintergrund-VI. Die Steuerelemente und Anzeigen des Front Panels müssen klare und eindeutige Variablennamen verwenden, und ihre Datentypen müssen mit den von der Modellberechnung und dem RIP-Lese-/Schreibvorgang erwarteten Variablen übereinstimmen. In den beiden in diesem Protokoll verwendeten Beispielen werden skalare numerische Variablen als DBL-Steuerelemente oder -Anzeigen definiert, und boolesche Variablen...

Zugriff eingeschränkt. Bitte melden Sie sich an oder starten Sie eine Testversion, um diesen Inhalt anzuzeigen.

Offenlegungen

Die Autoren verwendeten KI-gestützte Werkzeuge ausschließlich zur sprachlichen Überarbeitung. Der gesamte wissenschaftliche Inhalt, die experimentellen Verfahren, die Software-Implementierung, die Abbildungen, Ergebnisse, Interpretationen und die endgültige Formulierung wurden von den Autoren geprüft, korrigiert und genehmigt. Es wurde kein KI-Tool zur Erzeugung experimenteller Daten verwendet.

Danksagungen

Diese Arbeit wurde unterstützt durch die Ausbildungsprogramme für Studierende zur Förderung der Innovation der Wuhan-Universität.

Zugriff eingeschränkt. Bitte melden Sie sich an oder starten Sie eine Testversion, um diesen Inhalt anzuzeigen.

Materialien

Liste der in diesem Artikel verwendeten Materialien
NameUnternehmenKatalognummerKommentare
Caddy-Proxy-ServerCaddyN/VReverse-Proxy, der zur Bereitstellung der Web-Oberfläche und zur Weiterleitung von /RIP-Anfragen an den RIP-WebService verwendet wird
CaddyfileVon den Autoren erstelltN/VDefiniert Statische-Datei-Routen und Reverse-Proxy-Routen für die RIP-Kommunikation
Fan_Automatic_UI.xhtmlVon den Autoren erstelltN/VWeb-Frontend basierend auf Metadaten für das Fan-Experiment
LabVIEWNational Instruments2026Software zur Erstellung und Ausführung von fengshan.vi und Motor.vi
Microsoft Windows-BetriebssystemMicrosoftWin11Betriebssystem zur Ausführung von LabVIEW, RIP-WebService, Caddy und dem Browser
Motor_Automatic_UI.xhtmlVon den Autoren erstelltN/VWeb-Frontend basierend auf Metadaten für das Motor-Experiment
Mozilla Firefox Desktop-BrowserMozilla2026Desktop-Browser zur Zugriffnahme auf die Web-Oberfläche, zur Nutzung von Entwicklerwerkzeugen, zur Beobachtung von Zeit- und Ressourcenverbrauch sowie zur Erstellung von Screenshots von Netzwerk- und Konsolenausgaben
RIP-WebServiceUNEDLabshttps://github.com/Nebulous-Systems/rip-server_labviewEmpfängt RIP-POST-Anfragen und stellt die WebService-Kommunikationsschicht bereit, die vom Browser-Frontend verwendet wird
Windows-Task-ManagerMicrosoftIm Betriebssystem integriertWird verwendet, um CPU- und Speicherverbrauch auf Prozessebene für den Browser und LabVIEW-Prozesse aufzuzeichnen

Referenzen

  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.

Zugriff eingeschränkt. Bitte melden Sie sich an oder starten Sie eine Testversion, um diesen Inhalt anzuzeigen.

Nachdrucke und Genehmigungen

Tags

Web-Benutzeroberflächeautomatische UI-Generierungvirtuelle InstrumenteRIP-Server-KonfigurationReverse-ProxyCaddy-ProxyPID-Positionsregelungvariable Metadaten

Dieser Artikel wurde veröffentlicht

Video demnächst verfügbar