프로그래밍/랩뷰 기술자료

랩뷰 공유 라이브러리(Dll-Dynamic Link Library) 호출하기

에이티에스 2023. 6. 8. 01:14
728x90

DLL(Dynamic Linking Library) 파일 형태로 제공하는 API를 LabVIEW에서 호출하는 여러가지 방법들에 대해서 살펴보겠습니다.

이를 설명하기 위하여 Axsun사의 Laser를 USB 통신으로 전원 On/Off 해주는 프로그램 및 "user32.dll"을 이용하여 모니터 전원을 On/Off 해주는 프로그램을 구현해 보겠습니다.

 

Axsun사에서는 자사의 Laser를 원격으로 제어할 수 있도록 "AxsunOCTControl.dll"을 제공합니다. 관련 DLL을 LabVIEW에서 호출할 때 프론트 패널 상에서 호출하는 방법을 살펴보겠습니다.

아래 그림에서와 같이 ".NET & Activex >> .NET 컨테이너"를 클릭합니다.

 

생성된 .NET 컨테이너 위에서 마우스 오른쪽을 클릭해서 ".NET 컨트롤 삽입"을 선택합니다.

 

 

탐색 버튼을 클릭해서 "AxsunOCTControl.dll" 파일을 선택합니다.

 

 

위와 같이 블록 다이어그램 상에 ".NET 컨테이너"가 생성됩니다. 이를 통해 "인보크 노드"를 사용하여 원하는 메소드들을 선택하여 사용할 수 있습니다.

 

아래는 인보크 노드에서 사용할 수 있는 메소드들 중 일부를 보여주고 있습니다.

 

이와 같은 방법으로 Laser를 On/Off 해주는 프로그램을 아래와 같이 구현해 보았습니다.

 

다음은 블록 다이어그램에서 DLL을 호출하는 방법에 대해서 살펴보겠습니다.

"연결>>.NET>>컨스트럭터 노드"를 선택한 후 탐색 버튼을 클릭해서 DLL 파일을 선택합니다.

 

 

 

여기에 "인보크 토드"를 사용하여 원하는 API를 사용할 수 있습니다.

 

 

아래는 Axsun사의 Laser를 On/Off해주는 프로그램에 대한 프로젝트 파일 구조를 나타내고 있습니다.

 

 

 

다음으로는 "라이브러리 함수 호출 노드"를 이용하는 방법에 대해서 살펴보겠습니다. 블록 다이어그램에서 "연결>>라이브러리 & 실행 파일>>라이브러리 함수 호출 노드"를 선택합니다.

여기에서는 "user32.dll"을 이용하여 모니터 전원을 On/Off해주는 프로그램을 구현해 보겠습니다. 블록 다이어그램에서 "라이브러리 함수 호출 노드"를 선택한 후 마우스로 더블 클릭한 후 호출하고자 하는 함수를 선택합니다.

 

아래와 같이 LabVIEW상에서 프로그램을 구현해줍니다.

 

위의 프로그램을 실행하면 모니터 전원이 꺼지고 10초 또는 마우스를 움직이면 모니터 전원이 다시 켜집니다.

일반적으로 계측 장비 업체에서는 계측장비를 원격으로 제어하기 위한 프로그램을 제공합니다. 대부분의 계측 장비 업체에서는 LabVIEW Device Driver를 제공하며 LabVIEW 코드 형태로 제공되기도 하고, Axsun사처럼 LabVIEW에서 사용할 수 있는 DLL 파일 형태로도 제공합니다.

 

따라서 DLL 파일로 제공되는 경우 LabVIEW에서 호출하는 방법을 알아둘 필요가 있습니다. 뿐만 아니라 알고리즘을 DLL 형태로 구현한 후 LabVIEW에서 불러다 사용할 수도 있습니다. 즉, LabVIEW로 구현하는 것보다 텍스트 기반 언어로 구현하는 게 더 유리한 경우가 있는데, 이런 경우에는 텍스트 기반 언어로 DLL 파일을 생성한 후 LabVIEW에서 불러다 쓸 수 있게 하면 효율적입니다.

 

 

[myLV.net 집필진 강좌] 공유 라이브러리 호출하기 - NI Community

728x90
반응형
그리드형