Nadat de hierboven beschreven werkvloei is voltooid, zijn zowel het ventilatorexperiment als het experiment voor PID-positieregeling van een gelijkstroommotor toegankelijk via de automatisch gegenereerde webinterface. Een succesvol resultaat wordt aangegeven door drie observaties. Ten eerste genereert de webpagina automatisch invoercontroles en uitvoerweergavevelden op basis van de variabele metagegevens die worden geretourneerd door de RIP-server. Ten tweede wordt, wanneer de gebruiker een invoervariabele op de webpagina wijzigt, de gewijzigde waarde via de RIP-interface naar de LabVIEW-back-end VI geschreven. Ten derde worden de door de back-end VI berekende uitvoervariabelen via RIP geretourneerd en in real-time vernieuwd op de webpagina. Voor het ventilatorexperiment genereert de pagina, na het invoeren van http://localhost:8090/fan in een browser, automatisch invoercontroles en uitvoervelden op basis van de RIP-metagegevens, zoals weergegeven in Figuur 7. De invoerkant bevat Enable, PWM, Load, Tau, KMaxRPM en Disturbance, terwijl de uitvoerkant SpeedRPM, TimeS, SteadyRPM, SpeedNorm, CurrentA en PowerW weergeeft. Tijdens normale werking neemt TimeS continu toe, wat aangeeft dat de back-end fengshan.vi wordt uitgevoerd. Wanneer PWM wordt verhoogd, nemen SpeedRPM en SteadyRPM dienovereenkomstig toe. Wanneer Load wordt verhoogd, neemt de ventilatorsnelheid af, omdat de load de stationaire bedrijfssnelheid verlaagt. Wanneer Disturbance wordt aangepast, kunnen overeenkomstige veranderingen worden waargenomen in SpeedRPM, CurrentA en PowerW. Deze observaties bevestigen dat de invoer aan de webkant correct wordt overgedragen naar de LabVIEW-back-end en dat de berekende uitvoer via RIP wordt geretourneerd naar de front-end.
Voor het experiment van PID-positieregeling met een gelijkstroommotor, genereert de pagina na het invoeren van http://localhost:8090/motor in een browser automatisch de bijbehorende bedieningselementen en uitvoervelden op basis van de RIP-metadata, zoals weergegeven in Figuur 12. De ingangsvariabelen omvatten Stelpunt, Kc, Ti, Td, Storing en Reset-bediening, en de uitgangsvariabelen omvatten Positie, Voltage, Tijd en gemeten hoeksnelheid. Wanneer het Stelpunt wordt gewijzigd, reageert de Positie op de nieuwe doelwaarde. Wanneer de PID-parameters Kc, Ti en Td worden aangepast, veranderen de uitgangsrespons, het regelvoltage en de gemeten hoeksnelheid dienovereenkomstig, wat aangeeft dat de op de webpagina ingevoerde parameterwaarden correct worden geschreven naar het LabVIEW-back-endmodel en deelnemen aan de regelberekening. Wanneer de Reset-bediening wordt geactiveerd, keren de modelvariabelen terug naar hun beginwaarden volgens de resetlogica.
Fout- en communicatiestaten aan de browserzijde worden weergegeven in Figuur 13, Figuur 14, Figuur 15. Figuur 13 toont een mislukte browser-toegang waarbij Caddy niet actief is. De browser probeert toegang te krijgen tot http://localhost:8090/motor, maar toont een ERR_CONNECTION_REFUSED-bericht, wat aangeeft dat de lokale proxy-service niet beschikbaar is of niet luistert op de geselecteerde toegangspoort. Figuur 14 toont een mislukte RIP POST-communicatie na het laden van de pagina. In dit geval rapporteert de browserconsole een 502 Bad Gateway-fout voor het RIP POST-verzoek, wat betekent dat de front-end de proxyadres heeft bereikt, maar het verzoek niet succesvol kan worden doorgestuurd naar of verwerkt door de RIP WebService-back-end. In tegenstelling daarmee toont Figuur 15 een normale communicatiestatus aan de browserzijde. De ontwikkeltools van de browser tonen succesvol laden van de pagina, RIP POST-verzoeken en een actief SSE-verzoek met expId=fan, wat aangeeft dat de webfront-end communiceert met de RIP WebService via de Caddy-proxy en real-time updates ontvangt via het SSE-kanaal.
Samen tonen de succesvolle resultaten van ventilator en motor en de resultaten van de browserzijde-diagnostiek aan dat dezelfde op metadata gebaseerde werkwijze voor automatische UI-generatie kan worden gereproduceerd voor twee verschillende LabVIEW-experimenten. Deze resultaten bieden ook waarneembare criteria om succesvolle communicatie te onderscheiden van representatieve implementatieproblemen, terwijl de bijbehorende probleemoplossingsprocedures worden besproken in de discussiesectie.

Figuur 1: Algemene structuur van het experimentele systeem. Het systeem bestaat uit de LabVIEW back-end VI, RIP-server, Caddy-proxy en een automatisch gegenereerde webgebruikersinterface. De LabVIEW VI levert modelvariabelen, de RIP-server leest metagegevens en variabele waarden uit de VI, Caddy standaardiseert het toegangspad en lost cross-origin toegang op, en de webgebruikersinterface genereert bedieningselementen automatisch. De naam en het logo van Caddy worden uitsluitend getoond om de gebruikte Caddy-webserver/proxy-component in de werkstroom te identificeren. Klik hier om een grotere versie van deze figuur te bekijken.

Figuur 2: Voorkant van de ventilator VI. De voorkant bevat bedieningselementen voor Enable, PWM, Load, Tau, KMaxRPM en Disturbance, en indicatoren voor de uitgangswaarden SpeedRPM, SteadyRPM, TimeS, SpeedNorm, CurrentA en PowerW. Deze schermafbeelding is gemaakt van de voorkant van fengshan.vi in LabVIEW 2026 in de eigen lokale experimentele omgeving van de auteurs. Er zijn geen gegevens van derden of vertrouwelijke informatie opgenomen. Klik hier om een grotere versie van dit figuur te bekijken.

Figuur 3: Blokschema van de ventilator-VI. Het ventilatormodel is geïmplementeerd met een While-lus, shiftregisters, Enable-logica, een formuleknooppunt en uitgangsindicatoren. Deze schermafbeelding is gemaakt van het blokschema van fengshan.vi in LabVIEW 2026 in de eigen lokale experimentele omgeving van de auteurs. Er zijn geen gegevens van derden of vertrouwelijke informatie opgenomen. Klik hier om een grotere versie van deze afbeelding te bekijken.

Figuur 4: Configuratiepagina van fan.vi. Het ventilator-experiment is geregistreerd in RIP-configuratie met de experimentnaam fan, het werkelijke VI-pad, trefwoordinformatie, beschrijving en bemonsteringsfrequentie. Deze schermafbeelding is gemaakt met de RIP-configuratie-interface in gebruik met LabVIEW 2026 en RIP WebService in de lokale experimentele omgeving van de auteurs. Geen gegevens van derden of vertrouwelijke informatie zijn opgenomen. Klik hier om een grotere versie van dit figuur te bekijken.

Figuur 5: Instellingen voor experiment-ID en op metagegevens gebaseerde logica voor UI-generatie in de XHTML-frontendbestanden. De screenshots van de XHTML-code zijn gemaakt van Fan_Automatic_UI.xhtml en Motor_Automatic_UI.xhtml, geopend in Visual Studio Code. De pagina's voor ventilator en motor gebruiken dezelfde logica voor het lezen van metagegevens en het genereren van bedieningselementen; alleen de experiment-ID wordt gewijzigd om overeen te komen met het bijbehorende Naam-veld in de RIP-configuratie. De screenshots van de XHTML-code zijn gemaakt van Fan_Automatic_UI.xhtml en Motor_Automatic_UI.xhtml, geopend in Visual Studio Code in de lokale ontwikkelomgeving van de auteurs. De codebestanden zijn door de auteurs voor dit protocol voorbereid. Er zijn geen gegevens van derden of vertrouwelijke informatie opgenomen. Klik hier om een grotere versie van dit figuur te bekijken.

Figuur 6: Configuratie van Caddyfile. De Caddyfile definieert de lokale proxytoegangspoort, stelt de hoofdmap van de front-end in, herschrijft de routes /fan en /motor naar de overeenkomstige XHTML-bestanden en stuurt verzoeken naar /RIP/SSE* en /RIP* via een reverse proxy door naar de LabVIEW/RIP-webservicepoort. De schermafbeelding van de Caddyfile-configuratie is gemaakt vanuit de Caddyfile die geopend was in Visual Studio Code in de lokale ontwikkelomgeving van de auteurs. De Caddyfile is door de auteurs samengesteld om Caddy in te stellen als lokale webserver en reverse proxy. Er zijn geen gegevens van derden of vertrouwelijke informatie opgenomen. Klik hier om een grotere versie van dit figuur te bekijken.

Figuur 7: Web UI-pagina van fan.vi. Deze schermafbeelding van de webinterface is gemaakt van de lokaal geïmplementeerde fan-webpagina van de auteurs met behulp van Mozilla Firefox. De front-endpagina genereert automatisch invoerbedieningen en uitgangsdisplays op basis van de variabele metagegevens die door de RIP-server worden geretourneerd. Deze schermafbeelding van de webinterface is gemaakt van de lokaal geïmplementeerde fan-webpagina van de auteurs met behulp van Mozilla Firefox. De weergegeven bedieningselementen en uitvoervelden zijn gegenereerd op basis van RIP-metagegevens in de lokale experimentele omgeving van de auteurs. Er zijn geen gegevens van derden of vertrouwelijke informatie opgenomen. Klik hier om een grotere versie van dit figuur te bekijken.

Figuur 8: Voorkantpaneel van de motor VI. Het voorkantpaneel bevat bedieningselementen voor Stelpunt, Kc, Ti, Td, Storing en Reset, en indicatoren voor Positie, Voltage, Tijd en Gemeten hoeksnelheid. Deze schermafbeelding is gemaakt van het voorkantpaneel van Motor.vi in LabVIEW 2026 in de eigen lokale experimentele omgeving van de auteurs. Er is geen gegevens van derden of vertrouwelijke informatie opgenomen. Klik hier om een grotere versie van deze afbeelding te bekijken.

Figuur 9: Blokdiagram van PID-positieregeling voor gelijkstroommotor. Het diagram toont het signaalpad van setpuntfout, PID-regeling, spanningsbegrenzing, superpositie van storingen, elektrische dynamiek, mechanische dynamiek en positie-updating naar terugkoppeling. Klik hier om een grotere versie van dit figuur te bekijken.

Figuur 10: Blokdiagram van de motor VI. Het motor model is geïmplementeerd met een While-lus, Shiftregisters, een Formuleknooppunt, tijdslogica en uitgangsindicatoren. Deze schermafbeelding is gemaakt van het Blokdiagram van Motor.vi in LabVIEW 2026 in de eigen lokale experimentele omgeving van de auteurs. Geen gegevens van derden of vertrouwelijke informatie zijn opgenomen. Klik hier om een grotere versie van dit figuur te bekijken.

Figuur 11: Configuratiescherm van Motor.vi. Het motorexperiment wordt geregistreerd in RIP-configuratie met de experimentnaam Motor, het werkelijke VI-pad, trefwoordinformatie, beschrijving en bemonsteringsfrequentie. Deze schermafbeelding is gemaakt met de RIP-configuratieinterface die wordt gebruikt met LabVIEW 2026 en RIP WebService in de eigen lokale experimentele omgeving van de auteurs. Geen gegevens van derden of vertrouwelijke informatie zijn opgenomen. Klik hier om een grotere versie van dit figuur te bekijken.

Figuur 12: Webgebruikersinterface van Motor.vi. De front-endpagina genereert automatisch bedieningselementen en uitvoerdisplays voor het experiment met PID-positieregeling van een gelijkstroommotor. Deze schermafbeelding van de webinterface is gemaakt vanaf de lokaal geïmplementeerde motorwebpagina van de auteurs, met behulp van Mozilla Firefox. De weergegeven bedieningselementen en uitvoervelden zijn gegenereerd op basis van RIP-metagegevens in de lokale experimentele omgeving van de auteurs. Er zijn geen gegevens van derden of vertrouwelijke informatie opgenomen. Klik hier om een grotere versie van dit figuur te bekijken.

Figuur 13: Mislukte browser toegang wanneer Caddy niet actief isWanneer Caddy niet is gestart, kan het geproxiede lokale adres http://localhost:8090/motor niet worden bereikt, en toont de browser een ERR_CONNECTION_REFUSED-bericht. Dit symptoom wijst erop dat de lokale Caddy-proxy-service niet beschikbaar is of niet luistert op de geselecteerde toegangspoort. Deze browserscreenshot is gemaakt met Mozilla Firefox in de lokale testomgeving van de auteurs en laat de mislukte toegangstoestand zien wanneer de lokale Caddy-proxy niet actief was. Er zijn geen gegevens van derden of vertrouwelijke informatie opgenomen. Klik hier om een grotere versie van deze afbeelding te bekijken.

Figuur 14: RIP POST-communicatieprobleem na het laden van de pagina. In de browserconsole wordt een 502 Bad Gateway-fout weergegeven voor het RIP POST-verzoek. Dit resultaat geeft aan dat de webpagina de Caddy-proxyadres heeft bereikt, maar dat het verzoek niet succesvol kan worden doorgestuurd naar of verwerkt door het RIP-webserviceachtergrondproces. Deze schermafbeelding van de browserconsole is gemaakt met behulp van Mozilla Firefox Developer Tools in de lokale implementatieomgeving van de auteurs en toont een mislukte RIP POST-communicatie met fout 502 Bad Gateway. Er zijn geen gegevens van derden of vertrouwelijke informatie opgenomen. Klik hier om een grotere versie van dit figuur te bekijken.

Figuur 15: Communicatiestatus aan de browserzijde tijdens normale werking. De ontwikkelaargereedschappen van de browser tonen succesvolle paginalading, RIP POST-verzoeken en een actief SSE-verzoek met expId=fan. Deze verzoeken geven aan dat de webfrontend communiceert met de RIP-webservice via de Caddy-proxy en real-time updates ontvangt via het SSE-kanaal. Deze schermafbeelding van de browserontwikkelaargereedschappen is gemaakt met Mozilla Firefox in de lokale implementatieomgeving van de auteurs en toont normale RIP POST- en SSE-communicatie. Er zijn geen gegevens van derden of vertrouwelijke informatie opgenomen. Klik hier om een grotere versie van dit figuur te bekijken.

Figuur 16: Eén representatieve browserconsole- en procesniveau-resourceobservatie voor het ventilatorexperiment. De screenshot is gemaakt tijdens een lokaal testexperiment met een ventilator. De console toont de aanvraag- en reactietijd van metadatavariabelen, het aantal metadatavariabelen, de tijd voor metadatabasede generatie van de gebruikersinterface, de tijd voor het openen van de SSE-verbinding en de ontvangen SSE-gegevens. De taakbeheerderweergave toont procesniveau-CPU- en geheugenwaarden voor de browser- en LabVIEW-processen op het moment van vastlegging. Deze waarden zijn beschrijvende observaties uit deze individuele test en geen gerepliceerde prestatiemetingen of een statistische benchmark. Deze screenshot is gemaakt met behulp van Mozilla Firefox Developer Tools en Windows Taakbeheer in de eigen lokale testomgeving van de auteurs. Mozilla Firefox werd gebruikt om de uitvoer van de browserconsole vast te leggen, en Windows Taakbeheer werd gebruikt om het CPU- en geheugenverbruik van de browser- en LabVIEW-processen te observeren. Er zijn geen gegevens van derden of vertrouwelijke informatie opgenomen. Klik hier om een grotere versie van deze afbeelding te bekijken.

Figuur 17: Gelijktijdige toegang tot dezelfde op RIP gebaseerde webpagina vanaf een desktopbrowser en een mobiele browser. De webpagina voor het ventilatorexperiment is gelijktijdig geopend op een pc en mobiele apparaten, waarbij beide clients de automatisch gegenereerde bedieningselementen en uitvoervariabelen weergeven. De desktopwebpagina werd geopend met Mozilla Firefox en de mobiele webpagina met een mobiele browser binnen hetzelfde lokale netwerkomgeving. De schermafbeeldingen zijn gemaakt in de eigen lokale testomgeving van de auteurs. Geen gegevens van derden of vertrouwelijke informatie zijn opgenomen. Klik hier om een grotere versie van dit figuur te bekijken.
| Naam van variabele | Gegevenstype | Invoer/Uitvoer | Fysieke betekenis | Rol in het model | Bereik/Instelling |
| Enable | Boolean | Invoer | Schakelaar voor ventilatorbediening | Bepaalt of het model het PWM-signaal ontvangt. Indien Waar, u = PWM; indien Onwaar, u = 0. | Waar / Onwaar |
| PWM | DBL | Invoer | Aandrijfingang | Bepaalt de basisintensiteit van de ventilatoraandrijving en is de belangrijkste ingang voor de berekening van het stationaire toerental SteadyRPM. | 0-1, stap 0,01 |
| Load | DBL | Invoer | Belastingscoëfficiënt | Beschrijft het verzwakkende effect van belasting op het stationaire toerental. Naarmate Load toeneemt, neemt het stationaire toerental af. | 0-1, stap 0,01 |
| Tau | DBL | Invoer | Tijdconstante van respons | Bepaalt hoe snel de ventilatorsnelheid het stationaire toerental bereikt vanuit de vorige toestand. | 0,1-5, stap 0,1 |
| KMaxRPM | DBL | Invoer | Maximaal toerental | Stelt het maximaal toegestane toerental van het model in en wordt gebruikt voor snelheidsbegrenzing en normalisatie. | 500-6000, stap 100 |
| Disturbance | DBL | Invoer | Stooringsingang | Vertegenwoordigt het effect van externe storingen of belastingschommelingen op stationair toerental, stroom en vermogen. | 0-1, stap 0,1 |
| SpeedRPM | DBL | Uitvoer | Werkelijke snelheid | Vertegenwoordigt de huidige uitvoersnelheid van de ventilator en wordt bijgewerkt via eerste-orde traagheidsdynamica. | Berekend door het model |
| SteadyRPM | DBL | Uitvoer | Stationaire snelheid | Vertegenwoordigt het theoretische stationaire toerental onder de huidige invoervoorwaarden. | Berekend door het model |
| TimeS | DBL | Uitvoer | Bedrijfstijd | Vertegenwoordigt de continue bedrijfstijd van het model. | Berekend door het model |
| SpeedNorm | DBL | Uitvoer | Genormaliseerde snelheid | Vertegenwoordigt de verhouding van SpeedRPM tot KMaxRPM. | 0-1 of berekend door het model |
| CurrentA | DBL | Uitvoer | Stroom | Vertegenwoordigt de geschatte modelstroom, die verandert met het aandrijfsignaal en het stooringsignaal. | Berekend door het model |
| PowerW | DBL | Uitvoer | Vermogen | Vertegenwoordigt het geschatte modelvermogen, berekend uit de spanningsconstante en stroom. | Berekend door het model |
| Setpoint | DBL | Invoer | Gewenste positie | Stelt de positie in die de motor moet bereiken en vormt de fout e met de werkelijke positie Position. | -3-3, stap 0,1 |
| Kc | DBL | Invoer | Proportionele versterking | Past de responssterkte van de PID-regelaar aan de fout aan. | 0-10, stap 0,1 |
| Ti | DBL | Invoer | Integrale tijd | Past de integrale actie van de PID-regelaar aan en wordt gebruikt om stationaire fout te verkleinen. | 0-10, stap 0,1 |
| Td | DBL | Invoer | Afgeleide tijd | Past de afgeleide actie van de PID-regelaar aan en wordt gebruikt om te snelle foutveranderingen te onderdrukken en de dynamische respons te verbeteren. | 0-5, stap 0,1 |
| Disturbance | DBL | Invoer | Stooringsingang | Vertegenwoordigt een externe storing die wordt opgelegd aan de motoringang en samen met de regelspanning op het motor model inwerkt. | 0-10, stap 0,1 |
| Reset control | Boolean | Invoer | Resetregeling | Activeert het wissen van de modeltoestand, zodat positie, hoeksnelheid, stroom, fout en integraalterm terugkeren naar hun beginwaarden. | Waar / Onwaar |
| Position | DBL | Uitvoer | Werkelijke positie | Vertegenwoordigt de huidige hoekpositie van de motor en dient als terugkoppelingsvariabele voor PID-regeling. | Berekend door het model |
| Voltage | DBL | Uitvoer | Regelspanning | Vertegenwoordigt de uitgang van de PID-regelaar na spanningsbegrenzing en werkt op de motoringang. | Berekend door het model; begrensd tot -24 tot 24 V |
| Time | DBL | Uitvoer | Bedrijfstijd | Vertegenwoordigt de continue bedrijfstijd van het motor model. | Berekend door het model |
| Measured angular velocity | DBL | Uitvoer | Gemeten hoeksnelheid | Vertegenwoordigt de huidige hoeksnelheid van de motor en is de mechanische toestandsuitgang van de motor. | Berekend door het model |
Tabel 1: Invoer- en uitvoervariabelen gebruikt in de ventilator- en gelijkstroommotorenvoorbeelden. De tabel vermeldt voor elke variabele de naam, datatypen, invoer-/uitvoerrol, fysica betekenis, aanbevolen bereik en stapgrootte.
| Parameter | Waarde | Fysische betekenis | Rol in het model |
| R | 1 | Wekkerweerstand | Vertegenwoordigt de weerstandsterm in de motorwekkerkring en bepaalt de spanningsval R × im in de stroomvergelijking. |
| L | 0,5 | Wekkerinductie | Vertegenwoordigt de inductie van de wekkerkring en bepaalt de stroomveranderingsnelheid. Een grotere L levert een trager stroomantwoord op. |
| J | 0,01 | Massatraagheidsmoment | Vertegenwoordigt de weerstand van de motorrotor tegen veranderingen in hoekversnelling en bepaalt hoe snel de hoeksnelheid verandert. |
| b | 0,1 | Viskeuze dempingscoëfficiënt | Vertegenwoordigt mechanische demping en beschrijft het dempend koppel dat de toename van hoeksnelheid tijdens rotatie belemmert. |
| Kt | 0,01 | Koppelconstante | Vertegenwoordigt de evenredigheidscoëfficiënt die ankerstroom omzet in elektromagnetisch koppel. |
| Ke | 0,01 | Terugwerkende elektromotorische krachtconstante | Vertegenwoordigt de evenredigheidscoëfficiënt waarmee hoeksnelheid een terugwerkende elektromotorische kracht genereert en beschrijft het terugkoppelend effect van snelheid op stroom. |
| Vmax | 24 | Maximale regelspanning | Vertegenwoordigt de limiet van de uitgangsspanning van de regelaar en houdt de spanning binnen het bereik van -24 V tot 24 V. |
| dt | 0,001 | Discrete simulatiestap | Vertegenwoordigt het tijdsinterval voor elke lusgebaseerde toestandsupdate en wordt gebruikt om stroom, hoeksnelheid, positie en looptijd bij te werken. |
Tabel 2: Interne parameters gebruikt in het PID-positieregelmodel van de gelijkstroommotor. De tabel geeft de elektrische en mechanische parameters, symbolen, numerieke waarden, eenheden en hun rol in het model weer.
Supplementaire codebestanden: Volledige bron- en configuratiebestanden voor het reproduceren van de ventilator- en gelijkstroommotorvoorbeelden. De supplementaire codebestanden bevatten de LabVIEW Formula Node-code, Caddy reverse-proxyconfiguratie, XHTML front-endbestanden en LabVIEW VI-bronbestanden die in dit protocol zijn gebruikt. Code in LabVIEW Formula Node.docx bevat de Formula Node-code voor de PID-positieregelsystemen van de ventilator en de gelijkstroommotor. Caddyfile.txt bevat de configuratie voor de lokale webserver en de reverse-proxy. Fan_Automatic_UI.xhtml en Motor_Automatic_UI.xhtml bevatten de op metadata gebaseerde webfront-endlogica. fengshan.vi en Motor.vi zijn de LabVIEW back-end VI-bestanden voor de ventilator- en motorexperimenten.Klik hier om dit bestand te downloaden.