변수 식별자 URL
- 업데이트 날짜:2025-08-27
- 4분 (읽기 시간)
LabVIEW는 변수 식별자 URL로 각 공유 변수를 식별합니다. 프로그램적으로 공유 변수를 읽고 쓰기 위해, 공유 변수 함수의 공유 변수 참조 번호 입력 입력으로 해당 공유 변수의 변수 식별자 URL을 지정할 수 있습니다.
공유 변수 구조
다음 리스트는 공유 변수 및 변수 식별자 URL과 관련된 LabVIEW 구조 세트를 요약합니다.
- 공유 변수―데이터를 읽고 쓸 수 있는 메모리 공간.
- PSP 변수―NI Publish-Subscribe Protocol(NI-PSP)을 사용하는 네트워크에 공개된 데이터 아이템. 네트워크 공유 변수, 네트워크 공개가 활성화된 I/O 변수, NI-DAQmx I/O 서버를 통해 공개된 DAQ 채널이 PSP 변수의 일반적인 예에 포함됩니다.
- I/O 변수 —I/O 데이터에 대한 단일 포인트 접근을 위해 NI 스캔 엔진을 사용하는 공유 변수.
- 변수 컨테이너―변수의 세트. 가장 일반적인 변수 컨테이너 타입은 프로젝트 라이브러리입니다. 그러나, I/O 모듈, 무선 센서 네트워크 (WSN) 노드, EtherCAT 디바이스과 같은 다른 아이템도 변수 컨테이너로 동작할 수 있습니다. 변수 객체 탐색 대화 상자를 사용하여 현재 네트워크에 배포된 모든 변수 컨테이너를 찾을 수 있습니다.
- 변수 엔진―변수 컨테이너와 변수의 계층구조를 관리하는 런타임 구성 요소.
- 프로젝트 라이브러리 —다른 프로젝트 라이브러리를 포함하여, VI, 타입 정의, 공유 변수, 팔레트 파일, 기타 파일의 집합. 공유 변수를 포함하는 프로젝트 라이브러리는 변수 컨테이너입니다. 그러나 모든 변수 컨테이너가 프로젝트 라이브러리는 아닙니다.
- 타겟 이름―LabVIEW 프로젝트에서 내 컴퓨터 또는 RT 타겟과 같은 타겟 아이템에 할당된 이름.

노트 (Real-Time Module) RT 타겟 프로퍼티 대화 상자의 일반 프로퍼티 페이지에서 이름 필드를 사용하여 RT 타겟 이름을 지정할 수 있습니다.
변수 식별자 URL 구문
변수 식별자의 URL 구문은 다음과 같습니다:
[변수 엔진]://[호스트 이름]/[컨테이너 이름]/[변수 이름]
모든 변수 식별자 URL의 컨데이너 이름 및 변수 이름 구성요소를 지정해야 합니다. 그러나 클래스가 포함하는 경우, 변수 엔진을 생략할 수 있습니다. 또한 VI가 실행되는 컴퓨터와 같은 컴퓨터에서 변수가 호스트되는 경우에도 호스트 이름을 생략할 수 있습니다.
예를 들어, 다음의 LabVIEW 프로젝트는 네트워크 공유 변수(Network Variables.lvlib 컨테이너 아래에 리스트됨) 및 I/O 변수(I/O Module1 컨테이너 아래에 리스트됨)를 포함합니다.
다음 테이블에서는 이 프로젝트의 여러 변수에 대한 전체 변수 식별자 URL을 보여줍니다.
| 변수 이름 | 변수 타입 | 변수 식별자 URL |
|---|---|---|
| Network Variable1 | 네트워크 공유 변수 | ni.var.psp://My Computer/Network Variables/Network Variable1 |
| AI0 | I/O 변수 | ni.var.io://RT CompactRIO Target/I%2FO Module1/AI0 |
| Network Variable3 | 네트워크 공유 변수 | ni.var.psp://RT CompactRIO Target/RT Network Variables/Network Variable3 |
변수 식별자 URL은 대소문자를 구분하지 않습니다. 그러나 분석 에러가 발생하지 않게 하려면 예약된 문자를 해당하는 이스케이프 코드로 대체해야 합니다. 예를 들어, ⁄ 문자를 이스케이프 코드 %2F로 대체해야 합니다.
URL의 변수 엔진 구성 요소는 읽거나 쓰려는 변수 타입에 따라 달라집니다. 다음 테이블에서는 공유 변수 함수가 지원하는 각 공유 변수 타입에 대한 변수 엔진 URL을 보여줍니다.
| 타입 | 변수 엔진 URL |
|---|---|
| 네트워크 공유 변수, I/O 변수 또는 I/O 가명 (원격 접근) | ni.var.psp |
| I/O 변수 또는 I/O 가명 (로컬 접근) | ni.var.io |
PSP 변수 엔진이나 I/O 변수 엔진을 사용하여 네트워크에 공개된 I/O 변수 또는 I/O 가명에 접근할 수 있습니다. 네트워크에 공개된 I/O 변수 또는 I/O 가명에 로컬로 읽거나 쓰려면 I/O 변수 엔진(ni.var.io)을 사용합니다. 네트워크에 공개된 I/O 변수 또는 I/O 가명에 원격으로 읽거나 쓰려면 PSP 변수 엔진(ni.var.psp)을 사용합니다.
URL의 변수 엔진 구성 요소는 포함되어 있으므로, 다음 클래스 중 하나를 사용할 때 옵션이 됩니다:
- PSP 변수 엔진
- I/O 변수 엔진
- PSP 변수 컨테이너
- I/O 변수 컨테이너
- PSP 변수
- I/O 변수
이 경우, URL의 변수 엔진 구성 요소을 생략하고 다음 URL 구문을 사용할 수 있습니다:
//[호스트 이름]/[컨테이너 이름]/[변수 이름]
변수 엔진을 포함하지 않는 일반적인 클래스를 사용하고 변수 엔진을 지정하지 않은 경우, LabVIEW는 다음과 같은 우선 순위로 변수 엔진을 검색하여 변수 식별자 URL 결정을 시도합니다.
- I/O 변수 엔진
- PSP 변수 엔진
이같은 경우, 일치하는 URL이 여러 엔진에 있으면, LabVIEW는 가장 처음 발견한 일치하는 URL을 사용합니다.
변수 식별 URL의 [호스트 이름] 구성 요소는 옵션입니다. 호스트 이름을 DNS 이름, 타겟 이름 또는 IP 주소로 식별할 수 있습니다. 그러나 변수 식별자 URL에서 호스트 이름을 지정하지 않으면, LabVIEW는 호스트가 VI를 실행하는 컴퓨터와 같은 컴퓨터에 있다고 가정합니다. 또한 localhost 문자열을 사용하여 VI를 실행하는 컴퓨터를 지정할 수 있습니다. 이름이 충돌하지 않게 하려면, 가능하한 유일한 이름을 사용하십시오.
호스트 이름을 지정할 필요가 없으면, 다음의 URL 구문을 사용할 수 있습니다:
/[컨테이너 이름]/[변수 이름]
지정한 호스트 이름이 한가지 이상((예를 들어, 프로젝트 이름과 DNS 이름)으로 해석되는 경우, LabVIEW는 다음과 같은 우선 순위로 지정된 호스트 이름의 유효한 해석을 검색합니다.
- 타겟 이름 (LabVIEW 프로젝트에서 지정된 이름)
- DNS 이름
- IP 주소
컨테이너에 있는 각 공유 변수의 이름은 고유해야 합니다. 그러나 변수 ID에 컨테이너 이름이 포함되어 있으므로, 다른 컨테이너의 변수는 같은 이름을 공유하면서, 유일한 변수 ID를 유지할 수 있습니다.