• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: Matlab
  • 标签: matlab  rigol  

资源简介

[Matlab]普源示波器1000系列读取波形,均为输入命令进示波器,输出得到示波器所显示的波形。可更改chan1为chan2,即1通道改为2通道,或者后方继续顺序结构添加前面一段的复制,仅更改通道。

资源截图

代码片段和文件信息

% ds1000zVisaAddrStr -- DS1000Z VISA Name
% read_wave_length -- read wave data length relate to memory depth
% wave data written to the DS1000Z_Waveform.csv  
function DS1000Z_Waveform(ds1000zVisaAddrStr read_wave_length)
ascTable = zeros(1 256);

function buildAscTable(dev_object)
    % build asc to view value table
    ds1000z = dev_object;
    mYRef = 0;
    mYor = 0;
    mYInc = 0;
    fprintf(DS1000Z ‘:WAVeform:YREFerence?‘);
    [mYRef] = fscanf(ds1000z ‘%f‘ 100);
    fprintf(DS1000Z ‘:WAVeform:YORigin?‘);
    [mYor] = fscanf(ds1000z ‘%f‘ 100);
    fprintf(DS1000Z ‘:WAVeform:YINCrement?‘);
    [mYInc] = fscanf(ds1000z ‘%f‘ 100);
    
    for i = 1:256
        ascTable(i) = ((i - mYRef - mYor) * mYInc);
    end
end

% set read package size must be < 1MBytes
if(read_wave_length > 250000)
    readPackageSize = 250000;
else
    readPackageSize = read_wave_length;
end
DS1000Z = visa(‘ni‘ ds1000zVisaAddrStr);
DS1000Z.InputBufferSize = (readPackageSize + 100);

try
    fopen(DS1000Z);
    total_len = 1;
    startReadPosition = 1;
    endReadPosition = 1;
    % build asc to view value table
    buildAscTable(DS1000Z);
    fprintf(DS1000Z ‘:WAVeform:SOURce %s‘ ‘CHAN1‘);
    fprintf(DS1000Z ‘:WAVeform:MODE %s‘ ‘RAW‘);
    fprintf(DS1000Z ‘:WAVeform:FORMat %s‘ ‘BYTE‘);
    fprintf(DS1000Z ‘:STOP‘);
    while(1)
        % read wave data by package
        % set wave start position
        fprintf(DS1000Z ‘:WAVeform:STARt %d‘ star

评论

共有 条评论