본 연구는 팬 모델과 직류 모터 위치 제어 모델이라는 두 가지 서로 다른 LabVIEW 시스템을 통해 원격 상호운용성 프로토콜(RIP) 기반의 자동 웹 사용자 인터페이스 생성을 검증하며, 두 예제의 구축, 등록, 배포 및 테스트를 위한 재현 가능한 절차를 제공합니다.
방법 논문
본 연구는 팬 모델과 직류 모터 위치 제어 모델이라는 두 가지 서로 다른 LabVIEW 시스템을 통해 원격 상호운용성 프로토콜(RIP) 기반의 자동 웹 사용자 인터페이스 생성을 검증하며, 두 예제의 구축, 등록, 배포 및 테스트를 위한 재현 가능한 절차를 제공합니다.
원격 실험 플랫폼을 통해 네트워크상에서 로컬 시뮬레이션 모델이나 물리적 장치에 접근할 수 있지만, 기존의 웹 프론트엔드는 일반적으로 각 실험마다 별도의 페이지, 제어 레이아웃 및 데이터 통신 로직이 필요하며 이는 개발 비용을 증가시킵니다. 본 연구에서는 원격 상호운용 프로토콜(RIP)을 사용하여 LabVIEW 가상 악기(VI)로부터 웹 사용자 인터페이스(UI)를 자동으로 생성하는 기구축된 워크플로를 검증하고, 이를 구현하기 위한 재현 가능한 프로토콜을 제공합니다. 해당 워크플로는 프런트 패널에 입력 제어기 및 출력 표시기를 정의하는 LabVIEW VI를 구축하고, 각 VI를 RIP 서버 설정에 등록하며, 생성된 변수 메타데이터를 읽어 해당 웹 제어기 및 출력 디스플레이를 생성합니다. 프론트엔드 정적 파일 경로와 RIP 응용 프로그램 인터페이스(API) 요청 경로를 통합하기 위해 Caddy를 리버스 프록시로 사용합니다. 이 워크플로는 팬 속도 모델과 직류(DC) 모터 비례-적분-미분(PID) 위치 제어 모델이라는 두 가지 서로 다른 시스템으로 평가되었습니다. 두 경우 모두 웹 페이지는 노출된 변수를 식별하고, 사용자 입력을 LabVIEW 백엔드에 쓰고, 모델 출력을 읽으며, RIP 메타데이터로부터 인터페이스를 생성합니다. 이러한 결과는 서로 다른 두 가지 동적 시스템에 걸쳐 동일한 자동 UI 생성 프로세스가 유효함을 검증하며, 이를 재현하는 데 필요한 단계를 기록합니다.
원격 실험, 온라인 교육 및 사물인터넷(IoT) 기술의 발전으로 인해, 로컬 시뮬레이션 모델이나 실험 장치에 대한 웹 기반 액세스를 제공하는 것이 실험 플랫폼 개발의 중요한 방향이 되었습니다1,2,3,4. 최근의 연구들은 사물인터넷이 구축된 실험실을 프로젝트 기반 학습 및 로컬 또는 원격 액세스와 더욱 통합함으로써, 공학 교육에서 유연하고 네트워크화된 실험 플랫폼의 지속적인 발전을 입증하였습니다5. 제어 시스템 실험의 경우, 사용자는 일반적으로 브라우저에서 입력 파라미터를 조정하고 출력 상태를 실시간으로 관찰해야 합니다6,7. 전통적인 방법은 일반적으로 각 실험 대상마다 별도의 웹 페이지, 제어 바인딩 로직 및 데이터 통신 인터페이스를 필요로 합니다8,9. 백엔드 모델의 변수가 변경되면 프런트엔드 페이지를 그에 맞게 수정해야 하는 경우가 많으며, 이는 상당한 반복 개발 작업을 초래하고 실험 플랫폼의 신속한 확장을 제한합니다.
원격 상호운용성 프로토콜(Remote interoperability protocol, RIP)은 백엔드 실험 모델과 웹 프런트엔드 사이에 미들웨어 계층을 제공합니다10,11. 이전 연구에서 설명한 RIP 기반 자동 UI 생성 방식에서, RIP 서버는 변수 이름, 입력/출력 속성, 데이터 유형, 최솟값, 최대값, 정밀도, 설명 및 사용 가능한 읽기/쓰기 방법을 포함하여 각 실험에 대한 메타데이터를 제공합니다11. 그러면 웹 클라이언트는 페이지 로딩 또는 새로고침 중에 이 메타데이터를 사용하여 레이블, 숫자 입력 필드, 슬라이더, Boolean 컨트롤 및 출력 디스플레이와 같은 해당 HTML 요소를 생성할 수 있습니다11. 본 프로토콜은 RIP 사양을 재구현하거나 재정의하지 않습니다. 대신, 기존의 오픈 소스 RIP 서비스와 RIP 기반 메타데이터-HTML UI 생성 로직을 통신 및 인터페이스 생성의 기반으로 사용하며, 두 가지 LabVIEW VI 예제의 재현 가능한 구축, 등록, 프록시 배포 및 검증에 중점을 둡니다.
기존의 맞춤형 웹 인터페이스 개발과 비교했을 때, 여러 LabVIEW 실험에서 유사한 스칼라 입력 및 출력 변수가 노출되는 경우 RIP 기반의 자동 UI 생성은 제어 레이아웃, 변수 바인딩 로직 및 기본적인 통신 기능을 구현해야 할 필요성을 줄여줍니다8,9,10,11. 새로운 VI가 등록되고 해당 변수들을 RIP 서버에서 사용할 수 있게 되면, 동일한 메타데이터 읽기 및 제어 생성 로직을 재사용하여 기본적인 웹 인터페이스를 구축할 수 있습니다10,11. 이러한 기능은 신속한 배포, 교육용 시연, 그리고 여러 유사한 실험에 대한 일관된 접근이 필요한 원격 실험실 플랫폼에 유용합니다3,8,9. 하지만 자동 생성된 인터페이스에는 한계 또한 존재합니다. 변수 간의 물리적 관계를 완전히 추론하거나, 차트 매핑을 자동으로 결정하거나, 도메인 특화 시각화 및 안전 상호작용을 설계하지 못합니다11. 따라서 실험에 고도로 맞춤화된 그래픽, 복잡한 사용자 워크플로우, 고급 시각화, 하드웨어 안전 인터록 또는 다중 사용자 쓰기 중재가 필요한 경우에는 수동 웹 인터페이스 개발이 여전히 바람직합니다.
프로토콜의 전체 워크플로우는 그림 1에 요약되어 있습니다. 이 워크플로우에서는 먼저 LabVIEW VI가 프런트 패널에 필요한 입력 컨트롤과 출력 표시기를 정의합니다. 그런 다음 실험 이름과 VI 경로를 지정하여 RIP 서버 설정(RIP Server Configuration)에 VI를 등록합니다. 등록 후, RIP 서버는 선택한 실험의 메타데이터를 읽어 사용 가능한 변수에 대한 읽기/쓰기 액세스를 제공합니다. XHTML 웹 페이지는 반환된 메타데이터를 사용하여 해당하는 입력 컨트롤과 출력 디스플레이를 자동으로 생성하며, Caddy는 정적 웹 페이지와 RIP 통신 경로를 위한 통합 액세스 경로를 제공합니다. 본 연구에서는 동일한 워크플로우의 두 가지 구현 사례로 팬 및 직류 모터 모델을 사용하였습니다. 호환 가능한 스칼라, 수치 및 불리언 변수를 제공하는 다른 LabVIEW 실험의 경우, 개발자는 동일한 구축-등록-배포-검증 워크플로우를 따라 자동으로 생성되는 웹 인터페이스를 구축할 수 있으며, 필요에 따라 실험별 시각화, 안전 로직 또는 복잡한 데이터 처리 기능을 추가할 수 있습니다.
본 논문은 새로운 RIP 아키텍처를 제안하거나 RIP가 이미 지원하는 데이터 유형의 범위를 확장하지 않습니다. 대신, RIP를 확립된 통신 및 메타데이터 기반 UI 생성 메커니즘으로 사용하며, 재현 가능한 구현 프로토콜을 문서화하는 동시에 두 가지 서로 다른 LabVIEW 시스템으로 동일한 프로세스를 검증하는 데 중점을 둡니다. 이전 연구에서는 RIP 메타데이터를 기반으로 한 자동 웹 UI 생성의 기본 방법을 제시하고 온라인 서보 모터 실험을 사례 연구로 활용한 바 있습니다11. 대화형 인터페이스를 엔지니어링 소프트웨어 및 LabVIEW와 결합한 웹 기반 원격 실험실 아키텍처 또한 이전 연구들에서 보고되었습니다9,12. 그러나 실제 재현 과정에서 기존 사례의 일부 LabVIEW 모델들이 소프트웨어 버전 및 모듈 호환성의 영향을 받아 최신 환경에서 직접 사용하기 어려운 점이 있었습니다. 따라서 본 연구에서는 호환 가능한 두 가지 백엔드 VI인 팬 모델과 직류(DC) 모터 비례-적분-미분(PID) 위치 제어 모델을 재구성하고, 두 모델 모두에 동일한 메타데이터 기반 UI 생성 프로세스를 적용합니다. 본 연구의 기여도는 RIP의 범용성 확장보다는 확립된 RIP 워크플로의 교차 시스템 검증과 해당 프로세스를 재현하기 위한 상세 프로토콜을 제공하는 데 있습니다.
본 프로토콜의 대상 사용자는 이미 LabVIEW VI를 사용하고 있으며, 각 모델마다 독립적으로 완전한 맞춤형 프런트 엔드를 구현하지 않고도 웹 브라우저를 통해 시뮬레이션 모델이나 저위험 실험 시스템을 공개하고자 하는 연구자, 교육자 및 실험실 개발자입니다. 본 프로토콜은 표준 수치 및 불리언(Boolean) 변수, 파라미터 조정 및 실시간 상태 모니터링을 사용하는 실험에 특히 적합합니다10,11. 반면 복잡한 데이터 구조, 특수 시각화, 엄격한 하드웨어 안전 인터락 또는 다중 사용자 쓰기 중재가 필요한 실험을 위한 단독 솔루션으로는 적합성이 떨어집니다11. 본 연구의 목적은 두 가지 서로 다른 LabVIEW 시스템을 통해 RIP 기반의 자동 웹 UI 생성을 검증하고, 백엔드 VI 구축부터 브라우저 기반 상호작용까지 재현 가능한 완전한 프로토콜을 제공하는 것입니다. 본 프로토콜에는 입출력 변수 정의, RIP 서버 실험 등록, 메타데이터 기반 UI 생성, Caddy 프록시 배포 및 원격 읽기/쓰기 검증이 포함됩니다. 팬(fan) 및 DC 모터 모델에 동일한 워크플로우를 적용함으로써, 각 예제에 대해 웹 프런트 엔드를 수동으로 완전히 다시 작성하지 않고도 구축된 프로세스를 재현할 수 있음을 입증하였습니다9,10,11.
다음 워크플로에 요약된 절차에 따라, 두 개의 RIP 접속 가능 LabVIEW 실험을 구축, 등록, 배포 및 검증하기 위해 다음 단계들을 완료하십시오. 그림 1본 연구에 사용된 모든 도구와 플랫폼은 다음의 목록에 기재되어 있습니다. 재료 표.
1. 팬 모델 실험 구축 및 배치
2. DC 모터 PID 위치 제어 실험 구축 및 배치
위에서 설명한 워크플로우를 완료하면, 팬 실험과 DC 모터 PID 위치 제어 실험 모두 자동으로 생성된 웹 프론트엔드를 통해 접속할 수 있습니다. 성공적인 결과는 세 가지 관찰 사항으로 확인할 수 있습니다. 첫째, 웹 페이지는 RIP 서버에서 반환된 변수 메타데이터에 따라 입력 제어 항목과 출력 표시 필드를 자동으로 생성합니다. 둘째, 사용자가 웹 페이지에서 입력 변수를 변경하면 수정된 값이 RIP 인터페이스를 통해 LabVIEW 백엔드 VI에 기록됩니다. 셋째, 백엔드 VI에서 계산된 출력 변수가 RIP를 통해 반환되어 웹 페이지에 실시간으로 갱신됩니다. 팬 실험의 경우, 브라우저에 http://localhost:8090/fan을 입력하면 그림 7에 표시된 것처럼 RIP 메타데이터로부터 입력 제어 항목과 출력 필드가 자동으로 생성됩니다. 입력 측에는 Enable, PWM, Load, Tau, KMaxRPM, 및 Disturbance가 포함되며, 출력 측에는 SpeedRPM, TimeS, SteadyRPM, SpeedNorm, CurrentA, 및 PowerW가 표시됩니다. 정상 작동 중에 TimeS가 지속적으로 증가하는 것은 백엔드 fengshan.vi가 실행되고 있음을 나타냅니다. PWM을 증가시키면 SpeedRPM과 SteadyRPM이 이에 따라 증가합니다. Load를 증가시키면 load가 정상 상태 작동 속도를 감소시키므로 팬 속도가 감소합니다. Disturbance를 조정하면 SpeedRPM, CurrentA, 및 PowerW에서 해당하는 변화를 관찰할 수 있습니다. 이러한 관찰 결과는 웹 측의 입력값이 LabVIEW 백엔드로 정확하게 전송되었으며, 계산된 출력값이 RIP를 통해 프론트엔드로 반환되었음을 확인시켜 줍니다.
DC 모터 PID 위치 제어 실험을 위해 브라우저에 http://localhost:8090/motor를 입력하면, 그림 12에 표시된 바와 같이 페이지에서 RIP 메타데이터로부터 해당 제어 및 출력 필드를 자동으로 생성합니다. 입력 변수에는 Setpoint, Kc, Ti, Td, Disturbance 및 Reset 제어가 포함되며, 출력 변수에는 Position, Voltage, Time, 및 Measured angular velocity가 포함됩니다. Setpoint가 변경되면 Position이 새로운 목표 값에 반응합니다. PID 파라미터인 Kc, Ti, 및 Td를 조정하면 출력 응답, 제어 voltage 및 measured angular velocity가 그에 따라 변경되며, 이는 웹 페이지에 입력된 파라미터 값이 LabVIEW 백엔드 모델에 정확하게 기록되어 제어 계산에 참여하고 있음을 나타냅니다. Reset 제어가 활성화되면 모델 변수들은 리셋 로직에 따라 초기 상태로 복구됩니다.
브라우저 측의 실패 및 통신 상태는 그림 13, 그림 14, 그림 15에 나와 있습니다. 그림 13은 Caddy가 실행 중이지 않은 브라우저 접속 실패 사례를 보여줍니다. 브라우저가 http://localhost:8090/motor에 접속을 시도하지만 ERR_CONNECTION_REFUSED 메시지가 표시되며, 이는 로컬 프록시 서비스를 사용할 수 없거나 선택한 접속 포트에서 수신 대기 중이 아님을 나타냅니다. 그림 14는 페이지가 로드된 후 발생한 RIP POST 통신 실패를 보여줍니다. 이 경우, 브라우저 콘솔에 RIP POST 요청에 대한 502 Bad Gateway 오류가 보고되며, 이는 프런트 엔드가 프록시 주소에는 도달했으나 요청이 RIP WebService 백엔드로 성공적으로 전달되지 않았거나 처리되지 않았음을 나타냅니다. 이와 대조적으로, 그림 15는 정상적인 브라우저 측 통신 상태를 보여줍니다. 브라우저 개발자 도구에서 페이지 로딩, RIP POST 요청 및 expId=fan인 활성 SSE 요청이 성공적으로 이루어진 것을 확인할 수 있으며, 이는 웹 프런트 엔드가 Caddy 프록시를 통해 RIP WebService와 통신하고 SSE 채널을 통해 실시간 업데이트를 받고 있음을 나타냅니다.
종합하면, 팬 및 모터의 성공적인 결과와 브라우저 측 진단 결과는 동일한 메타데이터 기반 자동 UI 생성 워크플로가 두 가지 서로 다른 LabVIEW 실험에 대해 재현 가능하다는 것을 입증합니다. 이러한 결과는 또한 성공적인 통신과 대표적인 배포 실패를 구별할 수 있는 관찰 가능한 기준을 제공하며, 이에 상응하는 문제 해결 절차는 고찰 섹션에서 논의됩니다.

그림 1: 전체 실험 시스템 구조. 시스템은 LabVIEW 백엔드 VI, RIP 서버, Caddy 프록시 및 자동 생성된 웹 UI로 구성된다. LabVIEW VI는 모델 변수를 제공하고, RIP 서버는 VI 메타데이터와 변수 값을 읽으며, Caddy는 액세스 경로를 통합하고 교차 출처 액세스를 해결하고, 웹 UI는 컨트롤을 자동으로 생성한다. Caddy의 이름과 로고는 워크플로우에 사용된 Caddy 웹 서버/프록시 구성 요소를 식별하기 위해서만 표시되었다. 이 그림의 더 큰 버전을 보려면 여기를 클릭하십시오.

그림 2: 팬 VI의 프런트 패널. 프런트 패널에는 Enable, PWM, Load, Tau, KMaxRPM 및 Disturbance를 위한 입력 컨트롤과 SpeedRPM, SteadyRPM, TimeS, SpeedNorm, CurrentA 및 PowerW를 위한 출력 표시기가 포함되어 있습니다. 이 스크린샷은 저자의 로컬 실험 환경의 LabVIEW 2026에서 fengshan.vi의 프런트 패널을 캡처한 것입니다. 제3자 사용자 데이터나 기밀 정보는 포함되지 않았습니다. 이 그림의 더 큰 버전을 보시려면 여기를 클릭하십시오.

그림 3: 팬 VI의 블록 다이어그램. 팬 모델은 While 루프, 시프트 레지스터, Enable 로직, 수식 노드 및 출력 표시기로 구현되었습니다. 이 스크린샷은 저자의 로컬 실험 환경의 LabVIEW 2026에서 fengshan.vi의 블록 다이어그램을 캡처한 것입니다. 제3자 사용자 데이터나 기밀 정보는 포함되지 않았습니다. 이 그림의 더 큰 버전을 보려면 여기를 클릭하십시오.

그림 4: fan.vi의 구성 페이지. 팬 실험이 RIP 구성에 실험 이름 fan, 실제 VI 경로, 키워드 정보, 설명 및 샘플링 주파수와 함께 등록되어 있습니다. 이 스크린샷은 저자들의 자체 로컬 실험 환경에서 LabVIEW 2026 및 RIP WebService와 함께 사용된 RIP 구성 인터페이스에서 캡처되었습니다. 제3자 사용자 데이터나 기밀 정보는 포함되어 있지 않습니다. 이 그림의 더 큰 버전을 보시려면 여기를 클릭하십시오.

그림 5: XHTML 프런트엔드 파일 내의 실험 ID 설정 및 메타데이터 기반 UI 생성 로직.Visual Studio Code에서 연 Fan_Automatic_UI.xhtml 및 Motor_Automatic_UI.xhtml의 XHTML 코드 스크린샷입니다. 팬과 모터 페이지는 동일한 메타데이터 읽기 및 제어 생성 로직을 사용하며, RIP Configuration의 해당 Name 필드와 일치하도록 실험 ID만 변경되었습니다. XHTML 코드 스크린샷은 저자의 로컬 개발 환경에 있는 Visual Studio Code에서 Fan_Automatic_UI.xhtml 및 Motor_Automatic_UI.xhtml을 열어 캡처하였습니다. 코드 파일은 본 프로토콜을 위해 저자들이 준비하였습니다. 제3자 사용자 데이터나 기밀 정보는 포함되지 않았습니다. 이 그림의 더 큰 버전을 보시려면 여기를 클릭하십시오.

그림 6: Caddyfile 설정. Caddyfile은 로컬 프록시 액세스 포트를 정의하고, 프론트엔드 루트 디렉토리를 설정하며, /fan 및 /motor 경로를 해당 XHTML 파일로 리라이트(rewrite)하고, /RIP/SSE* 및 /RIP* 요청을 LabVIEW/RIP WebService 포트로 리버스 프록시합니다. Caddyfile 설정 스크린샷은 저자들의 로컬 개발 환경에서 Visual Studio Code로 연 Caddyfile을 캡처한 것입니다. Caddyfile은 Caddy를 로컬 웹 서버 및 리버스 프록시로 구성하기 위해 저자들이 작성하였습니다. 제3자 사용자 데이터나 기밀 정보는 포함되어 있지 않습니다. 이 그림의 더 큰 버전을 보시려면 여기를 클릭하십시오.

그림 7: fan.vi의 웹 UI 페이지. 이 웹 인터페이스 스크린샷은 Mozilla Firefox를 사용하여 저자들이 로컬로 배포한 팬 웹 페이지에서 캡처되었습니다. 프론트엔드 페이지는 RIP 서버에서 반환된 변수 메타데이터를 기반으로 입력 제어 장치와 출력 디스플레이를 자동으로 생성합니다. 이 웹 인터페이스 스크린샷은 Mozilla Firefox를 사용하여 저자들이 로컬로 배포한 팬 웹 페이지에서 캡처되었습니다. 표시된 제어 장치와 출력 필드는 저자들의 로컬 실험 환경에 있는 RIP 메타데이터로부터 생성되었습니다. 제3자 사용자 데이터나 기밀 정보는 포함되어 있지 않습니다. 이 그림의 더 큰 버전을 보시려면 여기를 클릭하십시오.

그림 8: 모터 VI의 프런트 패널. 프런트 패널에는 Setpoint, Kc, Ti, Td, Disturbance 및 Reset 제어를 위한 컨트롤과 Position, Voltage, Time, 및 Measured angular velocity 표시기가 포함되어 있습니다. 이 스크린샷은 저자의 로컬 실험 환경의 LabVIEW 2026에서 Motor.vi의 프런트 패널을 캡처한 것입니다. 제3자 사용자 데이터나 기밀 정보는 포함되지 않았습니다. 이 그림의 더 큰 버전을 보시려면 여기를 클릭하십시오.

그림 9: DC 모터 PID 위치 제어 모델 다이어그램. 이 다이어그램은 설정값 오차, PID 제어, 전압 제한, 외란 중첩, 전기적 동특성, 기계적 동특성 및 위치 업데이트에서 피드백으로 이어지는 신호 경로를 보여줍니다. 이 그림의 더 큰 버전을 보려면 여기를 클릭하십시오.

그림 10: 모터 VI의 블록 다이어그램. 모터 모델은 While 루프, 시프트 레지스터, 수식 노드, 타이밍 로직 및 출력 표시기로 구현되었습니다. 이 스크린샷은 저자들의 로컬 실험 환경 내 LabVIEW 2026의 Motor.vi 블록 다이어그램에서 캡처되었습니다. 제3자 사용자 데이터나 기밀 정보는 포함되지 않았습니다. 여기에서 이 그림의 더 큰 버전을 확인하십시오.

그림 11: Motor.vi의 구성 페이지. 모터 실험은 RIP Configuration에 실험 이름 Motor, 실제 VI 경로, 키워드 정보, 설명 및 샘플링 주파수와 함께 등록됩니다. 이 스크린샷은 저자들의 로컬 실험 환경에서 LabVIEW 2026 및 RIP WebService와 함께 사용된 RIP Configuration 인터페이스에서 캡처되었습니다. 제3자 사용자 데이터나 기밀 정보는 포함되어 있지 않습니다. 이 그림의 더 큰 버전을 보려면 여기를 클릭하십시오.

그림 12: Motor.vi의 웹 UI 페이지.프론트엔드 페이지는 DC 모터 PID 위치 제어 실험을 위한 입력 컨트롤과 출력 디스플레이를 자동으로 생성합니다. 이 웹 인터페이스 스크린샷은 Mozilla Firefox를 사용하여 저자의 로컬에 배포된 모터 웹 페이지에서 캡처되었습니다. 표시된 컨트롤 및 출력 필드는 저자의 로컬 실험 환경에 있는 RIP 메타데이터로부터 생성되었습니다. 제3자 사용자 데이터나 기밀 정보는 포함되어 있지 않습니다. 여기를 클릭하여 이 그림의 확대 버전을 확인하십시오.

그림 13: Caddy가 실행 중이지 않을 때의 브라우저 접속 실패. Caddy가 시작되지 않은 경우, 프록시된 로컬 주소 http://localhost:8090/motor에 접속할 수 없으며, 브라우저에 ERR_CONNECTION_REFUSED 메시지가 표시됩니다. 이러한 실패 증상은 로컬 Caddy 프록시 서비스를 사용할 수 없거나 선택한 접속 포트에서 수신 대기 중이지 않음을 나타냅니다. 이 브라우저 스크린샷은 저자의 로컬 테스트 환경에서 Mozilla Firefox를 사용하여 캡처되었으며, 로컬 Caddy 프록시가 실행되지 않았을 때의 접속 실패 상태를 보여줍니다. 제3자 사용자 데이터나 기밀 정보는 포함되지 않았습니다. 이 그림의 확대 버전을 보려면 여기를 클릭하십시오.

그림 14: 페이지 로딩 후의 RIP POST 통신 실패. 브라우저 콘솔에 RIP POST 요청에 대한 502 Bad Gateway 오류가 표시됩니다. 이 결과는 웹 페이지가 Caddy 프록시 주소에는 도달했으나, 요청이 RIP WebService 백엔드로 성공적으로 전달되거나 처리되지 못했음을 나타냅니다. 이 브라우저 콘솔 스크린샷은 저자의 로컬 배포 환경에서 Mozilla Firefox Developer Tools를 사용하여 캡처되었으며, RIP POST 502 Bad Gateway 통신 실패를 보여줍니다. 제3자 사용자 데이터나 기밀 정보는 포함되지 않았습니다. 이 그림의 더 큰 버전을 보려면 여기를 클릭하십시오.

그림 15: 정상 작동 시의 브라우저 측 통신 상태. 브라우저 개발자 도구는 성공적인 페이지 로딩, RIP POST 요청, 그리고 expId=fan인 활성 SSE 요청을 보여줍니다. 이러한 요청은 웹 프런트엔드가 Caddy 프록시를 통해 RIP WebService와 통신하며 SSE 채널을 통해 실시간 업데이트를 받고 있음을 나타냅니다. 이 브라우저 개발자 도구 스크린샷은 저자들의 로컬 배포 환경에서 Mozilla Firefox를 사용하여 캡처되었으며, 정상적인 RIP POST 및 SSE 통신을 보여줍니다. 제3자 사용자 데이터나 기밀 정보는 포함되지 않았습니다. 이 그림의 더 큰 버전을 보려면 여기를 클릭하십시오.

그림 16: 팬 실험에 대한 단일 대표 브라우저 콘솔 및 프로세스 수준 리소스 관찰 결과. 이 스크린샷은 로컬 팬 실험 테스트 중에 기록되었습니다. 콘솔에는 메타데이터 요청/응답 시간, 메타데이터 변수 수, 메타데이터 기반 UI 생성 시간, SSE 연결 개시 시간 및 수신된 SSE 데이터가 표시됩니다. 작업 관리자 뷰는 캡처 당시 브라우저 및 LabVIEW 프로세스의 프로세스 수준 CPU 및 메모리 값을 보여줍니다. 이 값들은 개별 테스트에서의 기술적 관찰 결과이며, 재현된 성능 측정치나 통계적 벤치마크가 아닙니다. 이 스크린샷은 저자들의 로컬 테스트 환경에서 Mozilla Firefox 개발자 도구와 Windows 작업 관리자를 통해 캡처되었습니다. 브라우저 콘솔 출력을 기록하기 위해 Mozilla Firefox를 사용하였으며, 브라우저 및 LabVIEW 프로세스의 CPU 및 메모리 사용량을 관찰하기 위해 Windows 작업 관리자를 사용하였습니다. 제3자 사용자 데이터나 기밀 정보는 포함되지 않았습니다. 이 그림의 확대 버전을 보시려면 여기를 클릭하십시오.

그림 17: 데스크톱 브라우저와 모바일 브라우저에서 동일한 RIP 기반 웹 페이지에 동시 접속한 모습. 팬 실험 페이지가 PC와 모바일 기기에서 동시에 열려 있으며, 두 클라이언트 모두 자동으로 생성된 제어 항목과 출력 변수를 표시하고 있다. 데스크톱 웹 페이지는 Mozilla Firefox를 통해 접속하였으며, 모바일 웹 페이지는 동일한 로컬 네트워크 환경에서 모바일 브라우저를 통해 접속하였다. 스크린샷은 저자들의 자체 로컬 테스트 환경에서 캡처되었다. 제3자의 사용자 데이터나 기밀 정보는 포함되지 않았다. 이 그림의 더 큰 버전을 보시려면 여기를 클릭하십시오.
| 변수 이름 | 데이터 유형 | 입력/출력 | 물리적 의미 | 모델 내 역할 | 범위/설정 | ||
| Enable | Boolean | 입력 | 팬 작동 스위치 | 모델이 PWM 입력을 받을지 여부를 제어합니다. True일 때 u = PWM이며, False일 때 u = 0입니다. | True / False | ||
| PWM | DBL | 입력 | 구동 입력 | 기본 팬 구동 강도를 결정하며, 정상 상태 속도 SteadyRPM을 계산하는 데 사용되는 주 입력입니다. | 0-1, step 0.01 | ||
| Load | DBL | 입력 | 부하 계수 | 부하가 정상 상태 속도에 미치는 감쇠 효과를 나타냅니다. Load가 증가하면 정상 상태 속도가 감소합니다. | 0-1, step 0.01 | ||
| Tau | DBL | 입력 | 응답 시간 상수 | 팬 속도가 이전 상태에서 정상 상태 속도에 도달하는 속도를 결정합니다. | 0.1-5, step 0.1 | ||
| KMaxRPM | DBL | 입력 | 최대 속도 | 모델에서 허용하는 최대 속도를 설정하며, 속도 제한 및 정규화에 사용됩니다. | 500-6000, step 100 | ||
| Disturbance | DBL | 입력 | 외란 입력 | 외부 외란 또는 부하 변동이 정상 상태 속도, 전류 및 전력에 미치는 영향을 나타냅니다. | 0-1, step 0.1 | ||
| SpeedRPM | DBL | 출력 | 실제 속도 | 팬의 현재 출력 속도를 나타내며, 1차 관성 역학을 통해 업데이트됩니다. | 모델에 의해 계산됨 | ||
| SteadyRPM | DBL | 출력 | 정상 상태 속도 | 현재 입력 조건에서의 이론적인 정상 상태 속도를 나타냅니다. | 모델에 의해 계산됨 | ||
| TimeS | DBL | 출력 | 작동 시간 | 모델의 연속 작동 시간을 나타냅니다. | 모델에 의해 계산됨 | ||
| SpeedNorm | DBL | 출력 | 정규화된 속도 | SpeedRPM 대비 KMaxRPM의 비율을 나타냅니다. | 0-1 또는 모델에 의해 계산됨 | ||
| CurrentA | DBL | 출력 | 전류 | 구동 입력 및 외란 입력에 따라 변하는 추정 모델 전류를 나타냅니다. | 모델에 의해 계산됨 | ||
| PowerW | DBL | 출력 | 전력 | 전압 상수와 전류로부터 계산된 추정 모델 전력을 나타냅니다. | 모델에 의해 계산됨 | ||
| Setpoint | DBL | 입력 | 목표 위치 | 모터가 도달해야 할 위치를 설정하며, 실제 위치 Position과 함께 오차 e를 형성합니다. | -3-3, step 0.1 | ||
| Kc | DBL | 입력 | 비례 이득 | 오차에 대한 PID 제어기의 응답 강도를 조정합니다. | 0-10, step 0.1 | ||
| Ti | DBL | 입력 | 적분 시간 | PID 제어기의 적분 동작을 조정하며, 정상 상태 오차를 줄이는 데 사용됩니다. | 0-10, step 0.1 | ||
| Td | DBL | 입력 | 미분 시간 | PID 제어기의 미분 동작을 조정하며, 과도하게 빠른 오차 변화를 억제하고 동적 응답을 개선하는 데 사용됩니다. | 0-5, step 0.1 | ||
| Disturbance | DBL | 입력 | 외란 입력 | 모터 입력에 중첩된 외부 외란을 나타내며, 제어 전압과 함께 모터 모델에 작용합니다. | 0-10, step 0.1 | ||
| Reset control | Boolean | 입력 | 제어 리셋 | 모델 상태 초기화를 트리거하여 위치, 각속도, 전류, 오차 및 적분 항이 초기 상태로 돌아가게 합니다. | True / False | ||
| Position | DBL | 출력 | 실제 위치 | 모터의 현재 각도 위치를 나타내며, PID 제어를 위한 피드백 변수로 사용됩니다. | 모델에 의해 계산됨 | ||
| Voltage | DBL | 출력 | 제어 전압 | 전압 제한 후의 PID 제어기 출력을 나타내며, 모터 입력에 작용합니다. | 모델에 의해 계산됨; -24에서 24 V로 제한됨 | ||
| Time | DBL | 출력 | 작동 시간 | 모터 모델의 연속 작동 시간을 나타냅니다. | 모델에 의해 계산됨 | ||
| Measured angular velocity | DBL | 출력 | 측정된 각속도 | 모터의 현재 각속도를 나타내며, 모터의 기계적 상태 출력입니다. | 모델에 의해 계산됨 | ||
표 1: 팬 및 DC 모터 예제에 사용된 입력 및 출력 변수. 이 표는 각 변수 이름, 데이터 유형, 입력/출력 역할, 물리적 의미, 권장 범위 및 단계 크기를 나열합니다.
| 매개변수 | 값 | 물리적 의미 | 모델에서의 역할 | ||
| R | 1 | 전기자 저항 | 모터 전기자 회로의 저항 항을 나타내며, 전류 방정식에서 전압 강하 R × im을 결정합니다. | ||
| L | 0.5 | 전기자 인덕턴스 | 전기자 회로의 인덕턴스를 나타내며 전류 변화율을 결정합니다. L값이 클수록 전류 응답 속도가 느려집니다. | ||
| J | 0.01 | 관성 모멘트 | 모터 로터의 각가속도 변화에 대한 저항을 나타내며, 각속도가 얼마나 빠르게 변화하는지를 결정합니다. | ||
| b | 0.1 | 점성 감쇠 계수 | 기계적 감쇠를 나타내며, 회전 중 각속도의 증가를 방해하는 감쇠 토크를 설명합니다. | ||
| Kt | 0.01 | 토크 상수 | 전기자 전류를 전자기적 토크로 변환하는 비례 계수를 나타냅니다. | ||
| 제시된 텍스트가 없어 번역을 진행할 수 없습니다. 번역할 소스 텍스트를 입력해 주시기 바랍니다. | 0.01 | 역기전력 상수 | 각속도가 역기전력을 생성하는 비율 계수를 나타내며, 속도가 전류에 미치는 피드백 효과를 설명한다. | ||
| 최대 반응 속도(Vmax) | 24 | 최대 제어 전압 | 컨트롤러 출력 전압의 한계를 나타내며, 전압을 -24 V에서 24 V 범위 내로 유지합니다. | ||
| 제시된 텍스트가 없습니다. 번역할 내용을 제공해 주시기 바랍니다. | 0.001 | 이산 시뮬레이션 단계 | 각 루프 기반 상태 업데이트의 시간 간격을 나타내며, 전류, 각속도, 위치 및 실행 시간을 업데이트하는 데 사용됩니다. | ||
표 2: DC 모터 PID 위치 제어 모델에 사용된 내부 파라미터. 이 표는 모델에서의 전기적 및 기계적 파라미터, 기호, 수치, 단위 및 역할을 나타냅니다.
보충 코딩 파일: 팬 및 DC 모터 예제를 재현하기 위한 전체 소스 및 설정 파일입니다. 보충 코딩 파일에는 본 프로토콜에 사용된 LabVIEW Formula Node 코드, Caddy 리버스 프록시 설정, XHTML 프론트엔드 파일 및 LabVIEW VI 소스 파일이 포함되어 있습니다. Code in LabVIEW Formula Node.docx에는 팬 및 DC 모터 PID 위치 제어 모델을 위한 Formula Node 코드가 포함되어 있습니다. Caddyfile.txt에는 로컬 웹 서버 및 리버스 프록시 설정이 포함되어 있습니다. Fan_Automatic_UI.xhtml 및 Motor_Automatic_UI.xhtml에는 메타데이터 기반 웹 프론트엔드 로직이 포함되어 있습니다. fengshan.vi 및 Motor.vi는 팬 및 모터 실험을 위한 LabVIEW 백엔드 VI 파일입니다.이 파일을 다운로드하려면 여기를 클릭하십시오.
이 프로토콜의 핵심 단계는 LabVIEW 백엔드 VI의 표준화된 구축 및 등록입니다. 프런트 패널(Front Panel)의 컨트롤과 인디케이터는 명확하고 고유한 변수 이름을 사용해야 하며, 데이터 유형은 모델 계산 및 RIP 읽기/쓰기 프로세스에서 기대하는 변수와 일치해야 합니다. 본 프로토콜에서 사용된 두 가지 예시의 경우, 스칼라 수치 변수는 DBL 컨트롤 또는 인디케이터로 정의하고, 불리언 변수는 불리언 컨트롤로 정의합니다. 또한 블록 다이어그램(Block Diagram)은 While 루프, 시프트 레지스터(Shift Register) 및 포뮬러 노드(Formula Node)를 통해 연속적인 상태 업데이트를 유지하여 실행 중에 팬 속도, 모터 위치, 모터 각속도, 전압 및 시간과 같은 변수가 업데이트될 수 있도록 해야 합니다. VI 구축 후, RIP 구성의 실험 이름(experiment Name)은 해당 XHTML 파일에 사용된 실험 ID와 정확히 일치해야 하며, VI 경로(VI Path)는 실제 저장된 VI를 가리켜야 합니다. 웹 프런트엔드는 각 실험의 변수를 하드코딩하지 않고, 대신 RIP 서버가 반환하는 메타데이터에 의존하여 쓰기 가능 변수, 읽기 가능 변수, 데이터 유형 및 수치 속성을 식별하므로 이러한 설정이 매우 중요합니다10,11.
주요 트러블슈팅 문제는 XHTML 실험 ID, RIP 구성, RIP WebService 및 Caddy 프록시 설정 간의 일관성과 관련이 있습니다. XHTML 파일의 실험 ID가 RIP 구성의 실험 이름(experiment Name)과 일치하지 않으면, 웹 페이지에서 올바른 메타데이터를 요청할 수 없으므로 예상되는 컨트롤과 출력 필드를 생성할 수 없습니다. VI 경로가 잘못되었거나 RIP WebService가 시작되지 않은 경우, 웹 페이지는 열릴 수 있으나 LabVIEW 백엔드와 통신할 수 없습니다. Caddy가 실행 중이지 않으면 브라우저가 선택한 로컬 프록시 주소에 액세스할 수 없으며, 그림 13에 표시된 것처럼 ERR_CONNECTION_REFUSED 메시지가 나타날 수 있습니다. Caddy가 실행 중이지만 리버스 프록시 대상이 RIP WebService 포트와 일치하지 않는 경우, 페이지는 로드될 수 있으나 RIP POST 요청이 그림 14와 같이 502 Bad Gateway 오류와 함께 실패할 수 있습니다. /RIP/SSE* 경로가 제대로 작동하지 않으면 페이지가 열리고 컨트롤이 표시될 수 있지만, 출력 값이 실시간으로 업데이트되지 않습니다. 정상적인 작동 상태에서는 그림 15와 같이 브라우저 개발자 도구에 페이지 로딩, RIP POST 요청 및 올바른 실험 ID를 가진 활성 SSE 요청이 성공적으로 표시되어야 합니다. 따라서 트러블슈팅은 실험 ID, VI 경로, RIP WebService 상태, Caddy 실행 상태, 프록시 포트 및 SSE 경로를 확인하는 것부터 시작해야 합니다. 통신이 여전히 비정상적인 경우, RIP WebService와 Caddy를 모두 재시작하거나 브라우저 캐시를 지우거나 다른 브라우저에서 테스트를 반복함으로써 브라우저 특정 동작과 RIP/Caddy 구성 문제 사이의 차이를 구분하는 데 도움이 될 수 있습니다.
본 프로토콜은 팬 속도 모델과 DC 모터 PID 위치 제어 모델 모두에 동일한 구축-등록-배포-검증(build-register-deploy-verify) 워크플로우가 적용되므로 두 가지 예제 모두에서 재현 가능합니다. 특수 툴박스에 대한 의존도를 낮추기 위해, 백엔드 VI는 프런트 패널 컨트롤 및 인디케이터, While 루프, 시프트 레지스터, 포뮬러 노드, 그리고 표준 스칼라 숫자 및 불리언 변수를 포함한 기본 LabVIEW 구조를 사용하여 재구성되었습니다. 하지만 LabVIEW 버전, Windows 설치 상태 및 로컬 네트워크 환경 전반의 재현성은 파일 경로, 액세스 권한, 로컬 포트, 서비스 시작 명령 및 브라우저 동작과 같은 구성 세부 사항에 따라 달라질 수 있습니다. 이 워크플로우는 하드웨어 관련 원격 실험으로 확장될 수 있으나, 이 방법을 웹 측에서의 직접적인 하드웨어 인식으로 해석해서는 안 됩니다. 웹 프런트엔드는 RIP 메타데이터를 통해 LabVIEW 프런트 패널의 컨트롤과 인디케이터를 식별합니다. 따라서 센서, 액추에이터, 계측기 또는 공정 제어 장치는 적절한 하드웨어 드라이버, 데이터 수집 모듈, 계측기 제어 모듈 또는 기타 하드웨어 적응 메커니즘을 통해 LabVIEW 백엔드 VI에서 먼저 연결 및 처리되어야 합니다. 하드웨어 측정값과 제어 명령이 프런트 패널 인디케이터 및 컨트롤에 매핑되면, RIP 기반의 웹 프런트엔드는 본 프로토콜에서 사용된 시뮬레이션 변수와 동일한 방식으로 이러한 변수들을 인식할 수 있습니다. 이전의 LabVIEW 기반 원격 실험실 연구들은 LabVIEW가 원격 제어 공학 실험, 로봇 실험, 공정 제어 장비, 센서 데이터 수집 및 물리적 장치 상호작용을 위한 백엔드 환경으로 사용될 수 있음을 보여주었습니다9,12,17,18,19,20.
그림 16은 로컬 팬 실험 중에 기록된 단일 대표 구현 사례를 보여줍니다. 프런트엔드 코드는 메타데이터 요청/응답 시간, 메타데이터 변수 개수, 메타데이터 기반 UI 생성 시간, SSE 연결 개시 시간 및 수신된 SSE 데이터를 기록하도록 도구화되었습니다. 이 사례에서 브라우저 콘솔은 68.00 ms의 메타데이터 요청/응답 시간을 보고했으며, RIP 메타데이터에서 7개의 쓰기 가능 변수와 7개의 읽기 가능 변수를 식별하였고, 이에 해당하는 UI 요소를 2.00 ms 만에 생성하였으며, 16.00 ms 만에 SSE 연결을 개시했습니다. 반복된 SSE 데이터 항목을 통해 SpeedRPM, TimeS, SteadyRPM, SpeedNorm, CurrentA 및 PowerW와 같은 출력 변수들이 LabVIEW 백엔드로부터 지속적으로 수신되었음을 확인했습니다. 동일한 로컬 테스트 상태의 작업 관리자 뷰에서는 Firefox 프로세스의 CPU 사용률이 약 1.5%, 메모리 점유율이 391.7 MB로 나타난 반면, LabVIEW 프로세스는 캡처 시점에 CPU 사용률 0%, 메모리 점유율 9.2 MB를 보였습니다. 이러한 관찰 결과는 로컬 배포 환경에서 메타데이터 검색, 메타데이터 기반 UI 생성, RIP/SSE 통신 및 프로세스 수준의 CPU 오버헤드를 관찰할 수 있다는 기초적인 근거를 제공합니다. 다만, 이 데이터는 종합적인 성능 벤치마크가 아닌 구현 수준의 검증을 목적으로 합니다. 다양한 브라우저, 반복 실험, 더 많은 변수 부하, 물리적 하드웨어 및 다수의 동시 사용자를 대상으로 한 체계적인 성능 평가는 향후 과제로 남아 있습니다.
이 방법은 특히 복잡한 데이터 구조, 하드웨어 실험 및 다중 사용자 운영으로 확장할 때 한계가 있습니다. 현재의 워크플로우는 스칼라 수치 및 Boolean 입력/출력 변수에 가장 적합합니다. 복잡한 배열, 클러스터, 중첩된 데이터 구조, 차트 관계 또는 도메인 특화 시각화에 대해 완전한 자동 지원을 제공하지는 않습니다. 이러한 경우에는 추가적인 메타데이터 매핑 규칙이나 수동으로 작성된 프런트엔드 컴포넌트가 필요할 수 있습니다. 자동 생성된 UI는 변수 메타데이터로부터 기본적인 제어 장치와 디스플레이를 생성할 수 있지만, 변수 간의 물리적 관계를 완전히 추론하거나 가장 적절한 시각화를 선택하거나 실험 특화 안전 상호작용을 설계할 수는 없습니다. 워크플로우를 실제 장비로 확장할 때는 하드웨어 드라이버, 장치 보정, 샘플링 제약, 액추에이터 한계, 비상 정지 로직, 인증 및 다중 사용자 쓰기 제어 메커니즘을 포함한 추가 고려 사항이 필요합니다. 현재의 배포 환경은 동일한 로컬 네트워크 환경 내에서 표준 웹 브라우저를 통해 여러 클라이언트 장치로 접속할 수 있습니다. 그림 17에서 보듯이, 동일한 팬 실험 페이지가 데스크톱 브라우저와 모바일 브라우저에서 동시에 열렸으며, 두 클라이언트 모두 자동 생성된 제어 장치와 이에 상응하는 출력 변수를 표시했습니다. 이러한 관찰 결과는 동일한 실험 페이지를 보고 상호작용하기 위한 기본적인 동시 다중 클라이언트 접속이 가능함을 나타냅니다. 그러나 현재의 구현에는 전용 사용자 인증, 제어 잠금, 동시 쓰기 중재, 쓰기 큐 또는 충돌 해결 메커니즘이 포함되어 있지 않으므로, 이를 완전한 다중 사용자 제어 프레임워크로 해석해서는 안 됩니다. 이러한 한계는 복잡하거나 협업적인 원격 실험실의 경우 일반적으로 실험 특화 인터페이스 설계, 동기화 메커니즘, 안전 제약 및 사용자 관리 로직이 필요하다는 이전의 원격 실험실 연구들과 일치합니다13,14,15,16,17.
이 프로토콜의 방법론적 가치는 새로운 RIP 아키텍처를 도입하거나 RIP가 지원하는 데이터 유형을 확장하는 데 있는 것이 아닙니다. 그 대신, 기설정된 RIP 기반 자동 UI 생성 메커니즘을 다양한 LabVIEW 시스템에 적용하기 위한 완전하고 재현 가능한 구현 경로를 제공하는 데 가치가 있습니다. 각 실험마다 맞춤형 웹 인터페이스를 작성하는 것과 비교했을 때, 백엔드 VI가 호환 가능한 변수를 노출하는 경우8,9,10,11 이 워크플로우는 기본 제어 레이아웃, 변수 바인딩 및 읽기/쓰기 통신 로직의 반복적인 구현을 줄여줍니다. 따라서 이 프로토콜은 공학 교육, 원격 실험실 개발, 그리고 브라우저 기반의 파라미터 조정 및 실시간 상태 모니터링이 필요한 저위험 시뮬레이션 또는 교육용 실험의 신속한 배포에 유용합니다. 향후 연구에서는 이 워크플로우를 더 복잡한 데이터 구조, 물리적 실험 장치, 공식적인 다중 사용자 액세스 제어, 그리고 인터페이스 생성 시간, 통신 지연 시간, 동기화 안정성, 서버 부하, CPU 오버헤드 및 프런트엔드 사용성을 포함한 정량적 성능 평가로 확장해야 합니다.
저자들은 언어 교정 목적으로만 AI 보조 도구를 사용하였습니다. 모든 과학적 내용, 실험 절차, 소프트웨어 구현, 도표, 결과, 해석 및 최종 문구는 저자들에 의해 검토, 수정 및 승인되었습니다. 실험 데이터를 생성하는 데 AI 도구는 사용되지 않았습니다.
본 연구는 우한 대학교의 학부 혁신 교육 프로그램의 지원을 받아 수행되었습니다.
| 이름 | 회사 | 카탈로그 번호 | 댓글 |
|---|---|---|---|
| Caddy 프록시 서버 | Caddy | N/A | Web UI를 제공하고 /RIP 요청을 RIP WebService로 전달하는 데 사용되는 리버스 프록시 |
| Caddyfile | 저자 작성 | N/A | RIP 통신을 위한 정적 파일 경로 및 리버스 프록시 경로를 정의함 |
| Fan_Automatic_UI.xhtml | 저자 작성 | N/A | 팬 실험을 위한 메타데이터 기반 Web 프런트 엔드 |
| LabVIEW | National Instruments | 2026 | fengshan.vi 및 Motor.vi를 구축하고 실행하는 데 사용되는 소프트웨어 |
| Microsoft Windows 운영 체제 | Microsoft | Win11 | LabVIEW, RIP WebService, Caddy 및 브라우저를 실행하는 데 사용되는 운영 체제 |
| Motor_Automatic_UI.xhtml | 저자 작성 | N/A | 모터 실험을 위한 메타데이터 기반 Web 프런트 엔드 |
| Mozilla Firefox 데스크톱 브라우저 | Mozilla | 2026 | Web UI 접속, 개발자 도구, 타이밍/리소스 관찰 및 네트워크/콘솔 스크린샷 촬영에 사용되는 데스크톱 브라우저 |
| RIP WebService | UNEDLabs | https://github.com/Nebulous-Systems/rip-server_labview | RIP POST 요청을 수신하고 브라우저 프런트 엔드에서 사용하는 WebService 통신 계층을 제공함 |
| Windows 작업 관리자 | Microsoft | Windows 내장 | 브라우저 및 LabVIEW 프로세스의 프로세스 수준 CPU 및 메모리 관찰 내용을 기록하는 데 사용됨 |
이 JoVE 논문의 텍스트 또는 그림 재사용 허가 요청
허가 요청