본문 바로가기
Engineering

[LabVIEW] Web Service 활용하기

by 투썬 아빠 2012. 12. 7.



일전에 Web Publish(웹 출판)에 대해서 이야기 했었습니다.

Web Publish을 이용하면 원격지에서 VI를 동작시키고 모니터링 할 수 있었습니다. 하지만 모니터링 하는 Host에도 LabVIEW가 설치되어 있어야 하는 단점이 있었습니다.

모바일 시장이 확대됨에 따라 PC, 노트북, 태블릿, 스마트폰에서 데이터를 모니터링하거나 시스템을 제어하고자 하는 needs가 늘어나고 있습니다. NI에서는 Data Dashboard(이하 Dashboard)라는 App을 제공하고 있고 현재 Dashboard 2.0(2012.12기준 iPad만 지원, v1.0는 아이폰, 안드로이드 기반의 스마트폰 및 태블릿에 지원 됨) 까지 출시되어 있습니다. Dashboard 2.0을 이용하면 모니터링(인디케이터 사용) 뿐만 아니라 제어(컨트롤 사용)까지 가능하게 되었습니다.

Dashboard 2.0이 제어 및 모니터링은 물론이고 화면 구성까지 변경 가능한 강력한 기능을 제공하고 있지만, 몇몇 사용자들은 직접 App을 만들거나 웹페이지로 구성하여 모니터링 혹은 제어를 하고자 할 것입니다. 이 때 활용할 수 있는 것이 바로 Web Service 기능입니다. 많은 분들이 Web Service와 Web Publish의 차이를 궁금해 하시는데 간단히 구분하자면, Web Service는 가공 가능한 데이터 형태로 제공이되고, Web Publish는 제작된 프런트 패널을 그대로 사용하는 것으로 보시면 됩니다. 가공 가능한 테이터란 어떤 것인지는 이 문서 끝에서 확인할 수 있을 것입니다.

 

지금부터 Web Service를 사용하는 법에 대해 알아보도록 하겠습니다.

불리언 컨트롤과 숫자형 인디케이터로 구성된 예제를 만들어 보도록 하겠습니다. 불리언이 참일 경우 양의 난수가 발생되고, 거짓일 경우 음의 난수가 발생되도록 할 것입니다.

 

1. 파일 구성

Web Service를 사용하기 위해서는 최소 2개의 VI가 있어야 합니다.

1) 실제 구동되는 VI (While 루프로 구성된 VI)

2) 웹 배포를 위한 VI (컨트롤 및 인디케이터로 값을 송수신 하는 VI)

편의상 위의 VI를 각각 supporting vi와 web method vi로 부르겠습니다.

 

2. 웹 서비스 이용

도구 >> 옵션 >> 웹 서버 >> 웹 어플리케이션 서버 설정으로 가서 포트 설정을 하고 아래와 같이 웹 서버를 활성화 합니다. (혹은 웹브라우져에서 http://localhost:3580으로 접속하면 됩니다.)

<그림 1 웹 서버 활성화>

 

 

3. 프로젝트 생성

1. 파일구성에서 이야기 한 supporting vi, web method vi 그리고 두 vi간에 데이터를 송수신할 수 있는 공유변수로 구성된 프로젝트를 생성합니다.

<그림 2 Project 구성>

 

4. VI 구성

1) Web method VI

<그림 3 Web method.vi>

 

그림 4에서 확인할 수 있듯이 Web method VI는 공유변수와 컨트롤 및 인디케이터로 구성되어 있습니다. 이 VI에서 컨트롤 되는 것은 아래에서 설명할 Supporting VI와 공유변수로 연결되어 있습니다. 이 VI에서 중요한 것은 커넥터 핀입니다. 반드시 컨트롤과 인디케이터에 대해 커넥터 핀을 연결하십시오.

 

2) Supporting VI

<그림 4 Supporting.vi>

 

Supporting VI는 Web Method VI의 불리언 값을 공유변수로 받아서 이 값이 참일 경우 양의 난수를, 거짓일 경우 음의 난수를 공유변수로 보내줍니다. 연결된 공유 변수는 Web method VI에서 확인이 가능합니다.

 

5. 빌드 스펙 생성

1) 프로젝트 탐색기 >> 빌드 스펙 >> 새로 만들기 >> 웹 서비스(RESTful)를 클릭

<그림 5 웹 서비스 빌드스펙 생성>

2) 빌드 스펙 정보 입력

    - 빌드 스펙 이름, 서비스 이름, 빌드 스펙이 저장되는 경로를 설정합니다.

    - 서비스 이름에 따라 추후에 접근할 URL의 주소가 정해지기 때문에 서비스 이름을 정하는데 충분한 고려를 해야합니다.

    - 가급적 서비스 이름은 띄어쓰기를 하지 마십시오.(띄어쓰기를 할 경우 해당 공백은 URL 상에서 ' _ '로 대체됩니다.

<그림 6 빌드스펙 정보 입력>

 

3) 소스 파일 설정

Web Service에 사용할 VI를 정합니다. 준비한 Supporting vi와 Web method vi를 모두 아래 그림과 같이 '서비스 VI(복수)' 항목으로 이동합니다.

 

<그림 7 소스 파일 설정>

 

이 때 주의해야 할 점 사항이 있습니다.

각 VI를 서비스 VI 항목으로 이동시킬 때 혹은 VI 설정을 눌렀을 때 RESTful VI 설청 대화상자가 나타납니다.

<그림 8 Supporting VI와 Web method VI의 설정>

 

그림 8과 같이 Supporting VI는 보조 VI로 설정해야 하고 Web method VI는 RESTful 웹 메소드 VI로 설정해야 합니다. 즉, 하나의 웹 서비스 당 하나의 RESTful VI가 존재해야합니다.

 

4) URL 맵핑

<그림 9 URL 맵핑>

 

이제 남은 것은 Web Service에 접근할 URL을 지정하는 것입니다. 위의 과정을 올바르게 거쳤다면 그림 9와 같이 URL이 RESTful VI의 이름과 사용된 컨트롤로 구성되어 있음을 확인할 수 있습니다. 본 문서에서는 Web method.vi입니다. 때문에 Web_method의 이름을 가집니다. 그리고, 사용된 컨트롤은 Bool Control 하나 뿐이므로 Bool_Control로 맵핑되어 있습니다.

맵핑 된 URL을 다시 한번 보면 '/(RESTful VI 명)/:(컨트롤 명)'으로 되어 있는 것을 볼 수 있습니다. 컨트롤 명 앞에 ':'이 있는 것을 유념하시기 바랍니다. ':'의 의미가 컨트롤 값을 입력 받는것입니다.

/'vi 명'/:'컨트롤1'/:'컨트롤2'/:'컨트롤3'

인디케이터 정보는 URL에서 나타나지 않습니다.

모든 설정이 완료 되었으면 빌드를 하시면 됩니다.

프로젝트 탐색기를 이용하여 빌드 및 배포까지 진행되면 해당 내용은 C:\ProgramData\National Instruments\WebServices\aws에 저장됩니다.

WebService가 배포된 Host 혹은 Target은 서버가 되고 위의 폴더에 저장된 내용을 바탕으로 배포된 기능이 동작하게 됩니다. 이 때 개발 시 사용된 VI는 동작되지 않습니다.

 

6. Web Browser에서 접근하기

빌드 스펙에 입력한 정보를 바탕으로 접속할 수 있는 URL이 생성됩니다.

Web Service 명WebTest, RESTful VIWeb_method 였습니다. 따라서 접속 URL은 http://Host IP:Port/WebTest/Web_method 입니다.

Explorer를 이용하여 해당 페이지에 접속해보겠습니다.

<그림 10 Web Service Page>

 

현재 Bool_Control 입력이 별도로 없습니다. 때문에 기본적으로 거짓상태이며, Random_Value 값은 음의 값을 나타내고 있습니다.

URL 맵핑에 따라 기본 URL 위에 불리언 값을 입력 할 수 있습니다. http://Host IP:Port/WebTest/Web_method/1/로 접속해보도록 하겠습니다.

<그림 11 Web Service Page_컨트롤 값 적용>

Random_Value 값이 양의 값을 가지는 것을 확인할 수 있습니다.

 

이처럼 배포된 Web Service는 URL을 이용하여 컨트롤 할 수 있고 XML 형식으로 출력되는 데이터를 확인할 수 있습니다. 이것을 바탕으로 Web UI Builder, Dashboard 등에서 컨트롤 및 모니터링 할 수 있으며 사용자가 직접 웹페이지를 생성하거나 App을 제작할 수도 있습니다.

 

7. Real-Time Target에 Web Service 구축하기

Real-Time Target에서도 PC와 동일한 방법으로 Web Service 환경을 구축할 수 있습니다. 즉, 독립적으로 동작하는 RT 타겟을 컨트롤 및 모니터링 할 수 있는 것입니다. 이 때 우선적으로 필요한 것은 타겟이 Web Service 기능을 사용할 수 있도록 소프트웨어를 설치해주는 것입니다. MAX에서 타겟으로 소프트웨어를 설치할 수 있으며 아래 그림과 같이 NI Application Web Server 항목을 체크하시면 됩니다. NI Application Web Server만 체크하면 의존성 때문에 나머지 항목도 함께 체크가 됩니다.

<그림 3 Web Service 활성화를 위한 소프트웨어 설치>

 

이와 같이 소프트웨어 설치가 완료되면 '2. 웹서비스 이용' 부터 동일하게 차례대로 진행하면 됩니다.


댓글