이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.
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
VendorDriver MATLABDriver IVIClass SupportedModels
__________________ __________________ __________________ __________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
1 "Ag3352x" "Ag3352x" "IVIFgen" {["33509B" "33510B" "33511B" "33512B" "33519B" "33520B" "33521A" "33521B" "33522A" "33522B" "33609A" "33610A" "33611A" "33612A" "33619A" "33620A" "33621A" "33622A" "EDU33211A" "EDU33212A" ]}
2 "AgInfiniiVision" "AgInfiniiVision" "IVIScope" {["C7302" "C7302C" "C7304" "C7304C" "C7312" "C7312C" "C7314" "C7314C" "C7322" "C7322C" "C7324" "C7324C" "C7332" "C7332C" "C7334" "C7334C" "C7352" "C7352C" "C7354" "C7354C" "DSO-X 1102A" "DSO-X 1102G" "DSO-X 2002A" "DSO-X 2004A" "DSO-X 2012A" "DSO-X 2014A" "DSO-X 2022A" "DSO-X 2024A" "DSO-X 3012A" "DSO-X 3012T" "DSO-X 3014A" "DSO-X 3014T" "DSO-X 3022T" "DSO-X 3024A" "DSO-X 3024T" "DSO-X 3032A" "DSO-X 3032T" "DSO-X 3034A" "DSO-X 3034T" "DSO-X 3052A" "DSO-X 3052T" "DSO-X 3054A" "DSO-X 3054T" "DSO-X 3102A" "DSO-X 3102T" "DSO-X 3104A" "DSO-X 3104T" "DSO-X 4022A" "DSO-X 4024A" "DSO-X 4032A" "DSO-X 4034A" "DSO-X 4052A" "DSO-X 4054A" "DSO-X 4104A" "DSO-X 4154A" "DSO-X 6002A" "DSO-X 6004A" "DSOX1202A" "DSOX1202G" "DSOX1204A" "DSOX1204G" "EDU-X 1002A" "EDU-X 1002G" "EDUX1052A" "EDUX1052G" "M9241A" "M9242A" "M9243A" "MSO-X 2002A" "MSO-X 2004A" "MSO-X 2012A" "MSO-X 2014A" "MSO-X 2022A" "MSO-X 2024A" "MSO-X 3012A" "MSO-X 3012T" "MSO-X 3014A" "MSO-X 3014T" "MSO-X 3022T" "MSO-X 3024A" "MSO-X 3024T" "MSO-X 3032A" "MSO-X 3032T" "MSO-X 3034A" "MSO-X 3034T" "MSO-X 3052A" "MSO-X 3052T" "MSO-X 3054A" "MSO-X 3054T" "MSO-X 3102A" "MSO-X 3102T" "MSO-X 3104A" "MSO-X 3104T" "MSO-X 4022A" "MSO-X 4024A" "MSO-X 4032A" "MSO-X 4034A" "MSO-X 4052A" "MSO-X 4054A" "MSO-X 4104A" "MSO-X 4154A" "MSO-X 6002A" "MSO-X 6004A" "P9241A" "P9242A" "P9243A"]}
3 "AgRfSigGen" "AgRfSigGen" "IVIRfSigGen" {["E4428C" "E4438C" "E8241A" "E8244A" "E8247C" "E8251A" "E8254A" "E8257C" "E8257D" "E8257N" "E8267C" "E8267D" "E8663B" "E8663D" "N5166B" "N5171B" "N5172B" "N5173B" "N5181A" "N5181B" "N5182A" "N5182B" "N5182N" "N5183A" "N5183B" "N5183N" ]}
4 "IviACPwr" "IviACPwr" "IVIACPwr" {["" ]}
5 "IviCounter" "IviCounter" "IVICounter" {["" ]}
6 "IviDCPwr" "IviDCPwr" "IVIDCPwr" {["" ]}
7 "IviDigitizer" "IviDigitizer" "IVIDigitizer" {["" ]}
8 "IviDmm" "IviDmm" "IVIDmm" {["" ]}
9 "IviDownconverter" "IviDownconverter" "IVIDownconverter" {["" ]}
10 "IviFgen" "IviFgen" "IVIFgen" {["" ]}
11 "IviPwrMeter" "IviPwrMeter" "IVIPwrMeter" {["" ]}
12 "IviRfSigGen" "IviRfSigGen" "IVIRfSigGen" {["" ]}
13 "IviScope" "IviScope" "IVIScope" {["" ]}
14 "IviSpecAn" "IviSpecAn" "IVISpecAn" {["" ]}
15 "IviSwtch" "IviSwtch" "IVISwtch" {["" ]}
16 "IviUpconverter" "IviUpconverter" "IVIUpconverter" {["" ]}
⋮
컴퓨터에 연결된 IVI-C 계측기를 ividevlist 명령어로, 시간 초과 값 40초로 나열하십시오. 타임아웃 값을 지정하는 것은 선택 사항입니다. 기본 타임아웃 기간인 30초 내에 계측기가 나타나지 않는 경우 더 큰 타임아웃 값을 시도해 볼 수 있습니다.
devlist = ividevlist("Timeout",40)devlist=1×5 table
MATLABDriver ResourceName VendorDriver Model SerialNumber
_________________ ____________________________________________ _________________ ___________ ____________
1 "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