이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.
IVI-C 드라이버를 사용하여 Keysight DSO-X 1204A 오실로스코프에서 파형 데이터 읽기
이 예제는 AgInfiniiVision IVI-C 드라이버를 초기화하고, 드라이버에서 몇 가지 속성을 읽으며, Keysight® Technologies DSO-X 1204A 오실로스코프를 사용하여 파형 데이터를 수집한 후 결과를 MATLAB®으로 출력하는 방법을 보여줍니다.
요구 사항
이 예제를 실행하려면 컴퓨터에 다음이 설치되어 있어야 합니다.
Keysight IO 라이브러리 버전 2021 이상
Keysight 인피니비전 1000, 1200, 2000, 3000, 4000, 6000, C7300, M924x 및 P924x X-시리즈 오실로스코프 IVI 드라이버 버전 2.8.2.0
이 예제를 살펴보려면 다음 영상을 재생하십시오.
설치된 IVI-C 드라이버 및 연결된 계측기 보기
컴퓨터에 설치된 IVI-C 드라이버 및 관련 MATLAB 드라이버 목록을 ividriverlist를 사용하여 확인하십시오.
list = ividriverlist
list=17×4 table
"Ag3352x" "Ag3352x" "IVIFgen" 1×20 string
"AgInfiniiVision" "AgInfiniiVision" "IVIScope" 1×106 string
"AgRfSigGen" "AgRfSigGen" "IVIRfSigGen" 1×26 string
"IviACPwr" "IviACPwr" "IVIACPwr" ""
"IviCounter" "IviCounter" "IVICounter" ""
"IviDCPwr" "IviDCPwr" "IVIDCPwr" ""
"IviDigitizer" "IviDigitizer" "IVIDigitizer" ""
"IviDmm" "IviDmm" "IVIDmm" ""
"IviDownconverter" "IviDownconverter" "IVIDownconverter" ""
"IviFgen" "IviFgen" "IVIFgen" ""
"IviPwrMeter" "IviPwrMeter" "IVIPwrMeter" ""
"IviRfSigGen" "IviRfSigGen" "IVIRfSigGen" ""
"IviScope" "IviScope" "IVIScope" ""
"IviSpecAn" "IviSpecAn" "IVISpecAn" ""
⋮
컴퓨터에 연결된 IVI-C 계측기를 ividevlist 명령어로, 시간 초과 값 40초로 나열하십시오. 타임아웃 값을 지정하는 것은 선택 사항입니다. 기본 타임아웃 기간인 30초 내에 계측기가 나타나지 않는 경우 더 큰 타임아웃 값을 시도해 볼 수 있습니다.
devlist = ividevlist("Timeout",40)devlist=1×5 table
"AgInfiniiVision" "USB0::0x2A8D::0x0386::CN59216227::0::INSTR" "AgInfiniiVision" "DSOX1204A" "CN59216227"
이 예제에서는 AgInfiniiVision MATLAB 드라이버를 사용합니다.
계측기 연결
계측기의 MATLAB 드라이버 이름과 리소스 이름을 지정하고 ividev를 사용하여 DSO-X 1204A 오실로스코프에 연결합니다.
dev = ividev("AgInfiniiVision","USB0::0x2A8D::0x0386::CN59216227::0::INSTR")
dev =
AgInfiniiVision with properties:
Model: "DSOX1204A"
Manufacturer: "KEYSIGHT TECHNOLOGIES"
SerialNumber: "CN59216227"
ResourceName: "USB0::0x2A8D::0x0386::CN59216227::0::INSTR"
VendorDriver: "AgInfiniiVision"
Simulate: 0
ChannelIDs: ["Channel1", "Channel2", "Channel3", "Channel4"]
DigitalChannelIDs: []
MathFunctionIDs: ["Math1", "Math2"]
MeasurementIDs: ["Channel1", "Channel2", "Channel3", "Channel4", "FUNC", ... ]
SerialBusIDs: []
WaveGenIDs: "WaveGen1"
InherentIVIAttributes: [1x1 InherentIVIAttributes]
Acquisition: [1x1 Acquisition]
Channel: [1x4 Channel]
InstrumentSpecific: [1x1 InstrumentSpecific]
Trigger: [1x1 Trigger]
WaveformMeasurement: [1x1 WaveformMeasurement]
Show all functions
일반 계측기 속성 가져오기
드라이버 및 그 속성에 대한 정보를 쿼리합니다. 객체 표시 출력에서 속성 링크를 클릭하면 해당 객체의 속성과 하위 속성을 탐색할 수 있습니다.
dev.InherentIVIAttributes
ans =
InherentIVIAttributes with properties:
AdvancedSessionInformation: [1x1 AdvancedSessionInformation]
DriverCapabilities: [1x1 DriverCapabilities]
DriverIdentification: [1x1 DriverIdentification]
InstrumentIdentification: [1x1 InstrumentIdentification]
UserOptions: [1x1 UserOptions]
dev.InherentIVIAttributes.DriverIdentification
ans =
DriverIdentification with properties:
SpecificDriverClassSpecMajorVersion: 4
SpecificDriverClassSpecMinorVersion: 1
SpecificDriverDescription: "IVI driver for the Keysight 1000X, 1200X, 2000X, 3000X, 4000X, 6000X, C7300, M924x and P924x Oscilloscope families. [Compiled for 64-bit.]"
SpecificDriverPrefix: "AgInfiniiVision"
SpecificDriverRevision: "2.8.2.0"
SpecificDriverVendor: "Keysight Technologies"
오실로스코프에서 파형 읽기
계측기를 알려진 상태로 초기화하고 측정 파라미터를 자동으로 구성합니다.
reset(dev) autoSetup(dev)
실제 기록 길이를 가져옵니다. 이는 오실로스코프가 수집하는 포인트 수입니다.
recordLength = actualRecordLength(dev)
recordLength = 62500
오실로스코프에서 채널 1을 활성화하십시오.
dev.Channel("Channel1").ChannelEnabled = true;채널 1의 속성을 살펴보세요.
dev.Channel("Channel1")ans =
Channel with properties:
RepCapID: "Channel1"
ChannelEnabled: 1
InputImpedance: 1e+06 (Ohms)
MaximumInputFrequency: 7e+07 (Hz)
ProbeAttenuation: 10
ProbeSenseValue: 10
VerticalCoupling: 1
VerticalOffset: 12.6 (Volts)
VerticalRange: 40 (Volts)
채널 프로브 감쇠를 1로 설정하십시오.
dev.Channel("Channel1").ProbeAttenuation = 1;스윕 시간 지속 시간을 밀리초 단위로 지정하십시오.
maxTimeMilliseconds = 1e3;
오실로스코프에서 파형을 읽습니다.
[waveformArray,actualPoints] = readWaveform(dev,"Channel1",recordLength,maxTimeMilliseconds);데이터를 시각화하고 오류를 표시합니다
파형 배열의 숫자 요소를 가져와서 readWaveform 함수가 반환한 실제 포인트 수와 일치하는지 확인하십시오.
n = numel(waveformArray);
샘플 간 시간을 계산하고 시간 벡터를 생성합니다.
dt = dev.Acquisition.HorizontalTimePerRecord/dev.Acquisition.HorizontalRecordLength; t = (0:n-1) * dt;
파형을 표시하십시오.
plot(t,waveformArray); grid on; xlabel('Time (s)'); ylabel('Volts (V)');

오류가 있는 경우 드라이버를 쿼리하여 오류를 검색하고 표시하십시오.
errorNum = 1; while (errorNum ~= 0) [errorNum,errorMsg] = error_query(dev); fprintf('ErrorQuery: %d, %s\n',errorNum,errorMsg); end
ErrorQuery: 0, No error
정리
작업 공간에서 ividev 객체를 분리하고 제거하십시오.
clear dev참고 항목
ividriverlist | ividevlist | ividev