이 문서에서는 NI-VISA, 즉 NI의 Virtual Instrument Software Architecture(VISA) API 구현에 대해 간략히 설명합니다.
NI-VISA는 LabVIEW, LabWindows/CVI 및 Measurement Studio와 같은 NI 어플리케이션 개발 환경에서 이더넷/LXI, GPIB, 시리얼, USB, PXI 및 VXI 계측기를 제어하는 프로그래밍 인터페이스를 제공하는 API입니다. 이 API는 NI-VISA 드라이버를 통해 설치됩니다.
NI-VISA를 권장하는 이유는 다음 세 가지 장점 때문입니다.
1. 인터페이스 독립성
NI-VISA는 인터페이스 종류와 관계없이 계측기와 통신하는 데 대부분 동일한 작업을 사용합니다. 따라서 인터페이스를 교체하기 용이하며 여러 가지 계측기를 사용할 때도 하나의 언어만 배우면 됩니다. 예를 들어, 메시지 기반 계측기에 ASCII 문자열을 쓰는 VISA 명령은 시리얼, GPIB, USB 계측기에서 동일합니다.
2. 플랫폼 이동성
NI-VISA는 VISA 함수 호출을 사용하여 작성된 프로그램을 다른 플랫폼으로 옮길 수 있도록 설계되었습니다. 이를 위해 VISA는 자체 데이터 타입을 정의합니다. VISA는 전용 데이터 타입을 통해 어플리케이션이 다른 플랫폼에서도 동일하게 동작하도록 합니다. 따라서 LabVIEW에서 작성된 VISA 어플리케이션은 LabVIEW를 지원하는 어떤 플랫폼으로도 쉽게 이동 가능합니다. NI-VISA는 여러 Windows OS 버전, MacOS 버전과 Linux 배포판을 포함하여 여러 운영 체제를 지원합니다.
3. 사용 편의성
NI-VISA는 사용법을 매우 쉽게 배울 수 있습니다. VISA는 대부분의 I/O 기능에 대해 버스에 관계없이 사용할 수 있는 함수가 포함된 API를 제공합니다. VISA는 계측기에 가장 일반적으로 사용되는 기능을 매우 간단한 명령 세트로 제공하므로 여러 인터페이스 종류를 위한 세부적인 통신 프로토콜을 학습할 필요가 없습니다.
NI-VISA를 사용하기 전에 개발 프로세스에서 공통적으로 사용되는 몇 가지 용어를 알아봅시다.
VISA 리소스
VISA 리소스는 시스템에 있는 계측기를 가리킵니다. 하나의 호스트에 여러 계측기가 연결되어 있는 경우 각 계측기가 VISA 리소스로 간주됩니다. 리소스는 해당 계측기의 모든 기능을 완전하게 설명하는 단위입니다.
VISA 리소스 타입은 계측기에 따라 다릅니다. 다음과 같은 타입이 있습니다. INSTR, SOCKET, RAW 등.
VISA 리소스 이름(계측기 설명자)
VISA 리소스 이름은 VISA 리소스의 정확한 이름을 가리킵니다. VISA 리소스 이름은 계측기의 인터페이스 종류, 주소 및 VISA 세션 종류를 나타냅니다. VISA 리소스 이름 컨트롤을 사용해 개발 환경의 계측기와 통신할 수 있습니다. 이 정보로 프로그램에서 계측기가 제대로 인식되고 주소가 올바르게 설정되었는지 확인하십시오.
VISA 세션
VISA 세션은 VISA 리소스와의 통신 경로입니다. 세션은 viOpen() 연산으로 열립니다. 계측기에 VISA 메시지를 보내려면 VISA 세션을 생성해야 합니다.
VISA 가명
VISA 가명은 VISA 리소스의 별칭입니다. 가명은 계측기를 쉽게 인식할 수 있는 친숙한 이름으로 정합니다.
일반 VISA 어플리케이션에서는 다음 단계를 수행합니다.
계측기가 시리얼, USB, 이더넷, 또는 VISA를 지원하는 어떤 인터페이스 종류라도 이와 똑같은 형식을 따릅니다. VISA 열기의 입력으로 연결된 VISA 리소스 이름만 바꾸면 됩니다.
LabVIEW 예제
이 LabVIEW 어플리케이션은 GPIB 계측기와의 세션을 생성하고 *IDN?\n을 쓴 뒤 디바이스에서 지정된 바이트 수를 읽습니다. 각 VISA 함수에 대한 설명은 VISA VI와 함수를 참고하십시오.
Visual C++ 예제
Visual Basic 예제
NI-VISA는 Windows와 Mac용 설치 파일을 따로 제공합니다. Linux용 NI-VISA는 NI Linux 디바이스 드라이버에 다른 NI 디바이스 드라이버와 함께 포함되어 있습니다.
운영 체제 호환성에 대한 자세한 정보는 다음을 참조하십시오.
다음 계측기 인터페이스 종류에 따른 계측기 컨트롤 튜토리얼을 참고하여 계측기와 통신하는 법을 단계별로 학습하십시오.
NI는 또한 Instrument Control Forum을 통해 지원을 제공합니다. 사용자는 질문을 게시하고 정보를 공유하여 광범위한 커뮤니티에 참여할 수 있습니다.