2017-04-06 3 views
0

저는 Basic .NET 프로젝트에 대해서는 상당히 새로운 것이지만 현재 GPIB, USB 등과 같은 다양한 미디어에서 SCPI를 사용하여 통신하는 T & M 기기와 함께 사용할 테스트 시스템을 만들고자 시도 중입니다. Keysight IO 라이브러리 설치되었으며 VISA.NET 도움말 문서를 읽었습니다.어떤 IVI 참조를 사용해야합니까?

내 프로그램이 VISA 벤더 중립적 인 (가능한 한) 것이므로 Ivi.Visa 인터페이스를 통해서만 구현을 사용하기로 결정했습니다. 나는 다음과 같은 사이비 코드와 같은 악기 무언가와의 통신을 코딩의 생각 : 난 그냥 내가 이전에 내가 다른 문서에서 본 그 COM의 예를 생각하면서 주로 나이가 사용 언급 것을 그러나 언급

//Access implementation only via IVI interfaces to keep things vendor neutral 
using Ivi.Visa; 
// Get a session from the manager 
var Session = (IGpibSession)GlobalResourceManager.Open(Alias, AccessMode, Timeout); 
// Use the formatted IO interface of the session 
var io = Session.FormattedIO; 

// Some communication operations 
// UserCommand is some faux type object 
io.PrintfAndFlush("%s", UserCommand.ToString); 
if (UserCommand.Query) 
    io.Scanf("%s", out UserCommand.Result); 

// Doesn't seem to be any Close method on resource manager, session or interface? 
Session.DiscardEvents(EventType.AllEnabled); 
Session.Dispose(); 

, COM의 예입니다 여전히 참조됩니다 (예 : Sending SCPI/GPIB commands over USB from C#).

Visual Studio Reference Manager에서 더 자세히 살펴보면 VISA COM 유형 라이브러리뿐 아니라 악기 별 IVI 어셈블리 (예 : IVI Scope Assembly) 및 유사한 COM 유형 라이브러리 (예 : IviScope 3.0 Type Library).

나는 이것들이 무엇을 위해 무엇을 사용하고 사용하지 않을 것인지에 대해 다소 당황 스럽다!

모두 무엇입니까? 내말은, 그들 사이의 차이점은 무엇입니까? 왜 다른 것을 사용합니까? (차이점이나 일반적인 유스 케이스를 어딘가에서 간결하게 설명하는 출처가 있을지도 모른다.)

+0

왜 아래 표와 가까운 표가 있습니까? – Toby

답변

3

다음은 배경 정보입니다. 결국, 나는 당신에게 당신의 질문에 직접적으로 응답하는 최신 정보를 줄 수 있다고 생각하지 않습니다.

당신은 다른 수준에서 계측기와 통신 할 수 있습니다

  1. 낮은 수준의 I/O
  2. VISA
  3. 공급 업체에서 제공하는 IVI 드라이버
  4. 클래스 IVI 드라이버

각기 다른 레벨은 하위 레벨의 구성 요소의 존재 여부에 따라 달라질 수 있으며 특정 레벨의 하위 레벨에 액세스 할 수 있습니다. 풍모.

하위 수준 I/O 드라이버는 운영 체제 또는 I/O 하드웨어 제조업체에서 제공합니다. USBTMC 및 GPIB가 그 예입니다.

VISA는 I/O 드라이버를 추상화하여 일반 코드가 특정 설치의 I/O 하드웨어와 독립적이되도록합니다. I/O 리소스 기능을 감지 할 수 있으므로 필요한 경우 RS-232 라인 종단 감지 또는 일부 저수준 GPIB 기능과 같은 특수 작업을 수행하는 분기를 가질 수 있습니다. 전송하는 데이터는 SCPI와 같이 계측기의 명령 언어와 일치해야합니다.

IVI 드라이버는 계측기 도메인 특정 기능을 제공하는 라이브러리입니다. 드라이버는 명령 언어를 통해 계측기와 상호 작용하므로 코드를 작성할 필요가 없습니다. 라이브러리에서 다루지 않는 기능에 대해 악기의 명령 언어를 사용하여 읽고 쓸 수 있도록 패스 스루 기능을 제공 할 수 있습니다. IVI 드라이버는 VISA를 사용하여 통신 할 수 있으며 일반적으로 특정 VISA 공급 업체가 필요할 수 있습니다.

IVI 클래스 드라이버는 DMM 및 신호 생성기와 같은 계측기의 한 클래스에 공통 도메인 특정 기능을 제공하는 라이브러리입니다. 이를 통해 프로그램 코드를 계측기 공급 업체와 독립적으로 사용할 수 있습니다. 클래스 드라이버는 클래스 호환, 벤더가 제공 한 IVI 드라이버를 설치해야합니다.

이제 VISA 구현은 Visual Basic (및 대부분의 다른 .NET 언어)에서 사용할 수있는 COM 또는 공유 라이브러리 (함수 내보내기)입니다. Agilent와 NI, Agilent는 COM 인터페이스를 제공하고 NI는 공유 라이브러리 인터페이스를 제공했습니다.

+0

감사합니다. Tom, 많은 도움이되었습니다. – Toby

관련 문제