LabVIEW는 변수 식별자 URL로 각 공유 변수를 식별합니다. 프로그램적으로 공유 변수를 읽고 쓰기 위해, 공유 변수 함수의 공유 변수 참조 번호 입력 입력으로 해당 공유 변수의 변수 식별자 URL을 지정할 수 있습니다.

노트 또한, 프로그램적으로 공유 변수를 검색하여 비교적 적은 LabVIEW 코드로 여러 공유 변수를 읽고 쓸 수 있습니다.

공유 변수 구조

다음 리스트는 공유 변수 및 변수 식별자 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 결정을 시도합니다.

  1. I/O 변수 엔진
  2. PSP 변수 엔진

이같은 경우, 일치하는 URL이 여러 엔진에 있으면, LabVIEW는 가장 처음 발견한 일치하는 URL을 사용합니다.

변수 식별 URL의 [호스트 이름] 구성 요소는 옵션입니다. 호스트 이름을 DNS 이름, 타겟 이름 또는 IP 주소로 식별할 수 있습니다. 그러나 변수 식별자 URL에서 호스트 이름을 지정하지 않으면, LabVIEW는 호스트가 VI를 실행하는 컴퓨터와 같은 컴퓨터에 있다고 가정합니다. 또한 localhost 문자열을 사용하여 VI를 실행하는 컴퓨터를 지정할 수 있습니다. 이름이 충돌하지 않게 하려면, 가능하한 유일한 이름을 사용하십시오.

호스트 이름을 지정할 필요가 없으면, 다음의 URL 구문을 사용할 수 있습니다:

/[컨테이너 이름]/[변수 이름]

지정한 호스트 이름이 한가지 이상((예를 들어, 프로젝트 이름과 DNS 이름)으로 해석되는 경우, LabVIEW는 다음과 같은 우선 순위로 지정된 호스트 이름의 유효한 해석을 검색합니다.

  1. 타겟 이름 (LabVIEW 프로젝트에서 지정된 이름)
  2. DNS 이름
  3. IP 주소

컨테이너에 있는 각 공유 변수의 이름은 고유해야 합니다. 그러나 변수 ID에 컨테이너 이름이 포함되어 있으므로, 다른 컨테이너의 변수는 같은 이름을 공유하면서, 유일한 변수 ID를 유지할 수 있습니다.