C\#NI-VISA 를 통 해 Tektronix TBS 2000 B 시리즈 오실로그래프 를 조작 하 는 실현 절차
본 고 는 C\#언어 접근 제어 Tektronix TBS 2000 B 시리즈 오실로그래프 를 사용한다.인터페이스 프로 토 콜 은 NI-VISA 를 사용 합 니 다.
최근 프로젝트 는 오실로그래프 와 통신 해 야 하 며 오실로그래프 를 간단하게 제어 하고 파형 데 이 터 를 가 져 와 야 한다.한 동안 의 연 구 를 통 해 관련 조작 을 대체적으로 알 게 되 었 습 니 다.관련 자료 가 많 지 않 은 것 을 발 견 했 기 때문에 제 가 알 고 있 는 관련 지식 을 여러분 과 공유 하 겠 습 니 다.글 끝 에 본 논문 과 관련 된 문서,코드,설치 프로그램의 다운로드 주 소 를 제공 할 것 이다.
정상 적 인 상황 에서 우리 가 한 장치 와 통신 을 해 야 한다 면 먼저 PC 가 어떤 방식 으로 장치 와 연결 되 는 지,통신 프로 토 콜 이 무엇 인지 알 아야 한다.작업 이 많은 장치 와 연결 되 어야 하기 때문에 자주 사용 하 는 연결 방식 은 주로 네트워크 연결,직렬 연결,USB 인터페이스 연결 등 이 있다.통신 프로 토 콜 은 모두 사용자 정의 프로 토 콜 텍스트 입 니 다. 이 프로젝트 는 먼저 오실로그래프 의 통신 협 의 를 알 아야 다음 개발 이 가능 하 다 고 생각 했 습 니 다.공식 사이트 에서 프로 그래 밍 자 료 를 다운로드 한 결과 이 장 치 는 VISA 를 통 해 연결 할 수 있 는 것 으로 밝 혀 졌 습 니 다.그것 은 무엇 입 니까?VISA 는 National Instruments 회사 가 이 끌 고 일부 설비 제조 업 체 와 공동으로 지정 한 유 니 버 설 설비 연결 기준 이다.설비 가 어떤 방식 으로 연결 되 든 VISA 규범 에 부합 하면 이 표준 협 의 를 통 해 연결 할 수 있다.NI-VISA 는 NI 회사 가 실현 한 협의 이다.이 협의 인 터 페 이 스 를 통 해 우 리 는 설비 와 직접 통신 할 필요 가 없다.NI-VISA 가 제공 하 는 인 터 페 이 스 를 통 해서 만 장치 에 접근 할 수 있 으 며,자주 사용 하 는 인 터 페 이 스 는 매우 간단 하 다.주로 OPEN,WRITE,READ 등 몇 가지 명령 이다.규범 에 맞 는 장 치 는 SCPI 명령 집합 문 서 를 공개 하고 이 문 서 를 자세히 읽 으 면 장치 의 통 제 를 실현 할 수 있다.전체 프로젝트 과정 에서 저 는 몇 개의 공식 사이트 에서 다운로드 한 문 서 를 통 해 프로젝트 개발 을 완 성 했 습 니 다.거의 장애 가 없 었 습 니 다.여기 서 우리 의 제조 업 이 선진 국 에 비해 큰 차이 가 있다 는 것 을 감개 할 수 밖 에 없습니다.우 리 는 이런 표준 적 인 것 이 부족 하고 모든 일 을 밑바닥 에서 시작 해 야 하 며 과학적 이지 않 습 니 다.만약 그 거두 들 이 이 방면 의 일 을 하려 고 한다 면 정말 좋 을 것 이다.장 을 보 거나 생선 을 파 는 앱 을 하 는 것 보다 훨씬 의미 가 있다.
연결
오실로그래프 는 네트워크 인터페이스 와 PC 를 통 해 연결된다.
오실로그래프 IP 와 PC 를 같은 네트워크 에 설정 합 니 다.예 를 들 어 192.168.11.11.설정 할 때 IP 에 0 이 없 도록 주의 한 다음 에 PC 에서 먼저 ping 을 해서 ping 이 통 하 는 지 확인 합 니 다.
ping 이 통 하면 브 라 우 저 에 입력 하 십시오.http://192.168.11.11오실로그래프 홈 페이지 를 열 수 있 는 지 확인 하고 SCPI 명령 이 실 행 될 수 있 는 지 확인 하 세 요.
3.설치 구동
NI-VISA Runtime 설치 프로그램 을 실행 하고 실행 시 기본 패키지 와.NET 지원 패 키 지 를 선택 하 십시오.
.NET 지원 패 키 지 는.NET 4.0-4.5.1 Runtime Support(IVI),.NET XX Runtime Support(NS),NS 패 키 지 는 기 존 버 전이 다.
설치 완료 후 두 개의 가방 형성:Ivi.Visa 와 NationalInstruments.Visa
그 중에서 Ivi.Visa 는 두 가지 버 전이 있 습 니 다.
32 비트 위치:C:\\Program Files(x86)\IVI Foundation\\VISA\\Microsoft.NET\Framework 32\\v 2.0.50727\\VISA.NET Shared Components 5.8.0
64 비트 위치:C:\\Program Files\IVI Foundation\VISA\Microsoft.NET\Framework 64\\v 2.0.50727\VISA.NET Shared Components 5.8.0
National Instruments.Visa 위치:C:\\Windows\Microsoft.NET\\assembly\GACMSIL\NationalInstruments.Visa\v4.0_17.0.0.0__2eaa5af0834e221d
인용
새 VS 프로젝트 는 위 주소 에 Ivi.Visa 와 NationalInstruments.Visa 두 개의 인용 을 추가 합 니 다.Ivi.Visa 의 라 이브 러 리 는 필요 에 따라 32 비트 또는 64 비트 를 선택 할 수 있 습 니 다.
프로그램 이 실 행 될 때 대상 기기 가 설치 되 어 실 행 될 때 인용 한 라 이브 러 리 는 프로젝트 폴 더 로 복사 할 필요 가 없습니다.
코드
https://github.com/cnxy/VISAInstrument
연결 코드:
string IP = this.txtIP.Text.Trim();
string IpRegex = @"^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$";
if (!Regex.IsMatch(IP, IpRegex))
{
MessageBox.Show("IP !");
return;
}
if (!PortUltility.OpenIPAddress(IP, out string fullAddress))
{
MessageBox.Show(" !");
return;
}
try
{
_portOperatorBase = new LANPortOperator(fullAddress);
}
catch (Exception ex)
{
MessageBox.Show($" :{ex.Message}");
return;
}
try
{
_portOperatorBase.Timeout = 2000;
_portOperatorBase.Open();
}
catch (Exception ex)
{
MessageBox.Show($" :{ex.Message}");
return;
}
EnabledControls(true);
MessageBox.Show(" !");
쓰기 명령 은 모두 두 가지 가 있 습 니 다.하 나 는 데 이 터 를 되 돌려 주지 않 아 도 되 고 하 나 는 데 이 터 를 되 돌려 야 하 는 명령 을 내 린 후에 야 읽 기 명령 을 내 릴 수 있 습 니 다.그렇지 않 으 면 읽 기 에 실패 할 것 입 니 다.읽 기와 쓰기 명령 은 다음 과 같다.
private void btnWrite_Click(object sender, EventArgs e)
{
string CmdStr = this.txtCommand.Text.Trim();
try
{
_portOperatorBase.WriteLine(CmdStr);
ShowLog($"[Write][{CmdStr}][Success]");
}
catch
{
ShowLog($"[Write][{CmdStr}][ERROR]");
}
}
private void btnReadString_Click(object sender, EventArgs e)
{
try
{
var result = _portOperatorBase.Read();
ShowLog($"[Read][{result}][{result.Length}]");
}
catch (IOTimeoutException)
{
ShowLog($"[Read][ERROR:Timeout]");
}
catch (Exception ex)
{
ShowLog($"[Read][Exception:{ex.Message}]");
}
}
핵심 코드 가 이렇게 많 으 니 나머지 는 필요 에 따라 SCPI 지령 표를 조회 하면 된다.부록,관련 SCPI 명령
다음 명령 은 Tektronix TBS 2000 B 시리즈 오실로그래프 에 만 적용 된다.
( )
1.
WRITE:*IDN?
READ:
( )
1.
RECAll:SETUp FACtory
2.
Select:CH<x> ON/OFF
3.
HORizontal:POSition?
HORizontal:POSition 10
HORizontal:SCAle?
400
HORizontal:SCAle 0.2
4.
CH1:POSition?
CH1:POSition 1
CH1:SCAle?
CH1:SCAle 2.5
5.
TRIGger:A:MODe?
NORMAL
TRIGger:A:TYPe?
EDGE
TRIGger:A:EDGE:SOUrce CH1
:
TRIGger:A:EDGE:COUPling g {DC|HFRej|LFRej|NOISErej}
TRIGger:A:EDGE:SLOpe {RISe|FALL}
( )
TRIGger:A:LEVel?
2.0800
TRIGger:A:LEVel 3.5
( )
TRIGger:A:LEVel:CH1?
2.0800
TRIGger:A:LEVel :CH1 3.5
( )
1. /
ACQuire:STOPAfter SEQuence
ACQuire:STOPAfter RUNSTOP
:ACQuire:STOPAfter?
2. /
ACQuire:STATE?
0:Run Single
1:Stop
:ACQuire:STATE ON/OFF
3.
TRIGger:STATE?
READY:
SAVE:
( )
1. ( )
DATA:SOURCE CH1
2. /
HORizontal:RECOrdlength?
2000
3. ( , )
WFMOutpre:RECOrdlength?
2000
4.
DATa:STARt 1 1
DATa:STOP 2000
DATa:WIDth? ( ) 1, 2 , 0
5.
CURVe?
Read(Bytes): 【LENGTH= N+(STOP-STARt+1)+1】
: (N )+ (STOP-STARt+1 )+ (1 )。
:#(1 )+ (1 )+ (1~9 )
:
, , , -128~127
관련 문서,코드 다운로드:https://gitee.com/seabluescn/tksamples.git이상 은 C\#NI-VISA 를 통 해 Tektronix TBS 2000 B 시리즈 오실로그래프 를 조작 하 는 실현 절차 에 대한 상세 한 내용 입 니 다.c\#Tektronix TBS 2000 B 시리즈 오실로그래프 를 조작 하 는 자 료 는 저희 의 다른 관련 글 을 주목 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.