새 인스트루먼트 드라이버 프로젝트 생성 마법사를 사용하여 인스트루먼트 드라이버를 생성한 후 이 설명을 따릅니다. LabVIEW 플러그 앤 플레이 인스트루먼트 드라이버 개발에 대한 더 자세한 정보는 National Instruments 웹 사이트를 참조하십시오.

변경 설명

  1. 지원되지 않는 VI 제거
  2. 일반적인 드라이버 VI 변경
  3. 인스트루먼트 특정 VI 변경
  4. 새 인스트루먼트 특정 VI 생성
  5. 예제 VI 생성
  6. VI 트리 VI 업데이트
  7. 팔레트 파일 업데이트
  8. ni.com/idnet의 인스트루먼트 드라이버 네트워크에 완성된 드라이버를 제출하십시오.

지원되지 않는 VI 제거하기

  1. 셀프테스트 또는 리셋과 같은 일반적인 VI를 포함하여 인스트루먼트가 지원하지 않는 모든 인스트루먼트 드라이버 VI를 프로젝트에서 제거합니다. 사용자 인스트루먼트의 개별 능력을 알고 있어야, 지원할 VI를 결정할 수 있습니다. 예를 들어 디지털 멀티미터 템플릿은 여러 포인트 측정을 위한 VI를 포함합니다. 여러 포인트 측정을 지원하지 않는 디지털 멀티미터를 위해 드라이버를 작성하는 경우, 이 VI를 드라이버 프로젝트와 드라이버 디렉토리 모두에서 제거합니다.
  2. 제거한 각 VI에 대해 프로젝트의 다른 인스트루먼트 드라이버 VI로부터의 해당 VI의 subVI 호출도 제거합니다.
  3. 파일을 제거한 후 프로젝트(.lvproj)와 프로젝트 라이브러리(.lvlib)를 저장합니다.

일반적인 드라이버 VI 변경하기

  1. 템플릿에서 드라이버를 생성한 경우, 일반적인 드라이버 VI에는 프런트패널 및/또는 블록다이어그램의 노란색 텍스트 박스 안에 변경 설명이 있습니다. 일반적인 드라이버 VI는 다음과 같습니다: 초기화, 닫기, 셀프테스트, 리셋, 에러 쿼리, 개정 쿼리, 기본 인스트루먼트 설정. VI 문서를 읽고, 각 VI의 변경 설명을 따른 후, 설명을 삭제합니다.
  2. 다음 추가적인 설명을 따르십시오:
    • Initialize VI―프런트패널로 전환하고 VISA 리소스 이름 컨트롤에 기본 주소 정보를 입력합니다. 디바이스를 위한 구문에 대해서는 VISA 리소스 이름 컨트롤 기본 도움말을 참조하십시오. 컨트롤에서 마우스 오른쪽 버튼을 클릭하고 바로 가기 메뉴에서 데이터 처리≫현재값을 기본값으로를 선택합니다. 이 컨트롤의 기본 도움말을 업데이트하여 인스트루먼트에서 지원되는 버스에 대한 정보만 표시하십시오. 시리얼 설정 클러스터의 시리얼 컨트롤을 수정하거나 제거하여 인스트루먼트의 기능과 일치하도록 합니다. 예를 들어, 인스트루먼트가 7 데이터 비트와 1 정지 비트만을 가지고 있는 경우, 데이터 비트정지 비트 컨트롤을 제거하고 블록다이어그램에서 이러한 파라미터를 상수로 설정합니다. 인스트루먼트가 2 보 전송속도만 지원하는 경우, 보 전송속도 컨트롤에서 지원되지 않는 속도를 제거합니다. 시리얼 설정 클러스터의 컨트롤을 인스트루먼트 기본으로 설정하고, 컨트롤에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 수행≫현재값을 기본값으로를 선택합니다. 또한, 시리얼 설정 클러스터를 TCP/IP와 같은 시리얼이 아닌 버스 등의 다른 설정 셋팅에도 사용할 수 있습니다. 필요한 경우, 클러스터 이름과 기본 도움말을 업데이트하여 클러스터 내의 컨트롤을 반영합니다.
    • Close VI―인스트루먼트를 닫기 전에 특정한 상태로 설정해야 하는 경우, 블록다이어그램의 [VISA 닫기] 함수 앞에 필요한 코드를 추가합니다.
    • Self-Test VI―블록다이어그램에서 타임아웃 상수를 인스트루먼트가 셀프테스트를 끝낼 수 있을만큼 큰 값으로 설정합니다. 기본은 20,000 밀리초, 또는 20 초입니다.
    • Error Query VI―여러 SCPI 에러를 분석하도록 디자인되었습니다. 인스트루먼트가 에러 확인을 다른 방법으로 수행하는 경우, 이 기능을 수행하는 다른 방법에 대해 Fluke 45 Multimeter와 같은 다른 인스트루먼트 드라이버를 참조하십시오. Error Query VI는 하위 레벨 API VI를 제외한 모든 드라이버 VI에 SubVI로 포함되어 있습니다. SCPI 호환 인스트루먼트의 경우, 에러 쿼리 명령에 :SYST:ERR?를 사용합니다. 비 SCPI 호환 인스트루먼트의 경우, 에러 쿼리 응답을 분석하여 에러가 발생했는지 알아냅니다. 이 응답에 기초하여, 에러 클러스터의 불리언 상태 원소를 적당한 상태로 설정합니다. 인스트루먼트 에러에 리포트할 에러가 없는 경우 불리언은 거짓, 그 외의 경우에는 참이 됩니다.
    • Revision Query VI[문자열로부터 스캔] 함수를 수정하여 인스트루먼트의 펌웨어 쿼리를 분석합니다.
  3. 파일을 수정한 후 프로젝트(.lvproj)와 프로젝트 라이브러리(.lvlib)를 저장합니다.

인스트루먼트 특정 VI 변경하기

다음 단계를 따라 드라이버의 각 남은 VI를 검색합니다.

  1. VI를 열고 VI로 정의된 작업을 수행하는데 필요한 컨트롤과 인디케이터를 추가, 수정, 제거하여 프런트패널을 편집합니다.
  2. 인스트루먼트의 기본값에 맞도록 컨트롤의 기본값을 업데이트합니다. 각 컨트롤에 값을 설정한 후 컨트롤에서 마우스 오른쪽 버튼을 클릭하고 바로 가기 메뉴에서 데이터 처리≫현재값을 기본값으로를 선택합니다.
  3. 컨트롤과 인디케이터 라벨 및 설명을 업데이트하여 모든 변경 사항을 반영합니다.
  4. 필요한 경우 VI 아이콘을 편집합니다.
  5. 컨트롤 및 인디케이터를 제거하거나 추가한 경우, 커넥터 팬을 편집하여 맞춥니다.
  6. 명령 문자열과 분석된 응답을 업데이트하여 블록다이어그램을 편집하고 인스트루먼트 기능에 맞춥니다.
  7. 필요한 경우 VI 문서를 편집합니다. Initialize VI에 대한 문서의 예는 다음과 같습니다: 이 인스트루먼트 드라이버는 시리얼 통신을 지원합니다. 시리얼 통신을 사용할 때 문제가 발생하는 경우, 19,200 이하의 보 전송속도와 하드웨어 핸드쉐이킹 사용을 시도해 보십시오.
  8. 템플릿에서 드라이버를 생성한 경우, 각 VI에는 프런트패널 및/또는 블록다이어그램의 노란색 텍스트 박스 안에 변경 설명이 있습니다. VI 문서를 읽고, VI의 변경 설명을 따른 후, 설명을 삭제합니다.
  9. VI를 저장하고 테스트합니다.
  10. 파일을 수정한 후 프로젝트(.lvproj)와 프로젝트 라이브러리(.lvlib)를 저장합니다.

새 인스트루먼트 특정 VI 생성하기

  1. 인스트루먼트 드라이버 VI 마법사를 사용하여 인스트루먼트가 지원하는 추가적인 VI를 생성합니다. 디지털 멀티미터 템플릿과 같은 클래스 템플릿에서 드라이버를 생성하는 경우, 인스트루먼트는 클래스 템플릿에서 다루지 않는 추가적인 기능을 지원할 수도 있습니다. 기존 VI와 구조를 참조하여 각 지원되는 기능에 대한 추가적인 VI를 생성해야 합니다. 예를 들어, 오실로스코프는 일반적으로 많은 타입의 트리거를 가지고 있으나 오실로스코프 템플릿은 에지 트리거링에 대한 지원만 포함하고 있습니다. 인스트루먼트가 추가적인 타입의 트리거를 지원하는 경우, 추가적인 인스트루먼트 드라이버 VI로 이 기능을 추가하십시오.
  2. 다형성 VI를 사용하여 연관된 인스트루먼트 드라이버 VI를 그룹화합니다. 예를 들어, 여러 트리거 설정 VI는 하나의 다형성 VI로 제시될 수 있습니다.
  3. 파일을 수정한 후 프로젝트(.lvproj)와 프로젝트 라이브러리(.lvlib)를 저장합니다.

다음은 클래스 템플릿에서 생성한 드라이버에 특정한 변경 사항입니다.

  • 디지털 멀티미터―설정 및 데이터 팔레트의 하위 레벨 VI는 DMM의 더 많은 컨트롤을 허용합니다. 이 VI는 읽기(단일 포인트)와 읽기(여러 포인트) 템플릿 VI와 함께 사용되도록 디자인되지 않았습니다. 이런 VI는 이미 이 기능의 일부를 가지고 있기 때문입니다. 이 같은 하위 레벨 VI 사용에 대한 예제는 Read Triggered Multiple VI를 참조하십시오.
  • 오실로스코프―프라이빗 Default Instrument Setup.vi는 오실로스코프를 단일 수집 모드로 설정해야 합니다. 이 명령은 :ACQ:STOPA SEQ;과 비슷할 수도 있습니다.
  • 함수 생성기―인스트루먼트가 임의의 웨이브폼을 지원하는 경우, 별도의 VI를 생성하여 임의의 웨이브폼 지원을 구현해야 합니다. 임의의 웨이브폼 지원을 Configure Standard Waveform.vi에 추가하지 마십시오.

인스트루먼트가 자동으로 하나의 모드를 비활성화하고 다른 모드를 활성화하는 경우, 내부적으로 변조 상태와 스윕 VI를 활성화할 수 있습니다. 이렇게 하려면, 활성화 <x> 모드 컨트롤을 제거하고 블록다이어그램에서 거짓 케이스를 삭제합니다.

예제 VI 생성하기

  1. 인스트루먼트 드라이버 사용법을 설명하는 둘 또는 그 이상의 예제 VI를 생성합니다. 예제는 사용자가 인스트루먼트 작업을 수행하기 위해 필요한 권장 호출 시퀀스를 이해하는데 도움이 되어야 합니다. 인스트루먼트의 각 일반적 용도에 맞는 예제를 포함시켜 다양한 사용자들에게 도움을 줍니다.
  2. 프로젝트 라이브러리가 아닌 인스트루먼트 드라이버 프로젝트에 예제 VI를 포함합니다.
  3. 도구≫NI 예제 탐색기를 위해 예제 VI 준비를 선택하여 예제 데이터 파일(.bin3)을 인스트루먼트 드라이버 프로젝트의 예제 디렉토리에 추가합니다.
노트 LabVIEW는 다음 접두어를 예약하므로 .bin3 파일의 이름에 다음 접두어를 사용할 수 없습니다: ms, test, lv, daq, cvi, tree, fr, de, ja, vi, im, dsc, rt, _, ko, zh, it, es.

VI 트리 VI 업데이트하기

  1. VI 트리 VI를 열고 블록다이어그램을 업데이트하여 인스트루먼트 드라이버의 변경 사항을 반영합니다. VI 트리는 어플리케이션의 subVI가 아닙니다. 이는 드라이버 VI의 계층구조의 간략한 개요를 볼 수 있도록 만들어졌습니다.
  2. 셀프테스트 또는 리셋과 같은 일반적인 VI를 포함하여 인스트루먼트가 지원하지 않는 모든 VI를 제거합니다.
  3. 드라이버에 추가한 모든 퍼블릭 VI를 추가합니다.
  4. VI를 저장하고 닫습니다.

팔레트 파일 업데이트하기

  1. 모든 VI가 완성된 후 함수 팔레트 파일(.mnu)을 업데이트하여 변경 사항을 인스트루먼트 드라이버에 반영합니다. 모든 퍼블릭 인스트루먼트 드라이버 VI는 팔레트 파일에서 접근할 수 있어야 합니다. 팔레트 파일에 예제 VI를 포함시키지 마십시오.
  2. 드라이버에서 제거한 모든 VI의 링크를 제거합니다.
  3. 필요한 경우 서브팔레트에 대한 팔레트 파일을 추가하여 새 VI에 대한 팔레트의 유용성을 높입니다. 팔레트 파일은 VI 트리 및 프로젝트 폴더 계층구조의 레이아웃과 일치해야 합니다.

인스트루먼트 드라이버 네트워크에 인스트루먼트 드라이버 제출하기

자사의 인스트루먼트 드라이버에 보다 쉽게 접근할 수 있도록 하려는 인스트루먼트 제조업체나 드라이버 개발 노력을 다른 사용자들과 공유하려는 개인 사용자의 경우, 드라이버를 인스트루먼트 드라이버 네트워크 ni.com/idnet에 제출하는 것을 고려하십시오.