2017-08-21 57 views
2

我想从上面指定的示波器传输波形数据并使用MATLAB命令它。这里是我的代码如下所示:Tektronix TBS 1052B的波形传输

tbs1052b = visa('ni','USB0::0x0699::0x0368::C020742::INSTR'); 
fopen(tbs1052b); 
fprintf(tbs1052b, 'ACQuire?') 
out_1 = fscanf(tbs1052b) 
fprintf(tbs1052b, 'DATa?') 
out_2 = fscanf(tbs1052b) 
fprintf(tbs1052b, 'DATa:WIDth 2') 
fprintf(tbs1052b, 'DATa?') 
out_3 = fscanf(tbs1052b) 
fprintf(tbs1052b, 'DATALOGging?') 
out_4 = fscanf(tbs1052b) 
fprintf(tbs1052b, 'DATALOGging:SOURCE CH1') 
fprintf(tbs1052b, 'DATALOGgING:STATE ON') 
fprintf(tbs1052b, 'DATa:ENCdg ASCIi') 
fprintf(tbs1052b,'DATa:STARt 1') 
fprintf(tbs1052b, 'DATa:STOP 10') 
fprintf(tbs1052b,'CURVe?') 
out_5 = fscanf(tbs1052b) 

第4扫描命令的工作,我得到了他们每个人的答案。 但是,我收到一条警告,说'不成功读:VISA:操作完成前超时过期。 '当我扫描最后一个CURVe时?命令。 我增加了超时到最大值与相同的结果。任何想法可能是错误的?

回答

0

好吧,我想清楚发生了什么事情。我没有指定数据源,这就是为什么Curve不确定从哪里获取数据。所以将下面的行固定的问题:

fprintf(tbs1052b, 'DATa:SOUrce CH1') 

另外一些涉及正确地获取数据多个编辑,这是通过下面的指令描述:

fprintf(tbs1052b, 'ACQuire:STATE ON') 
fprintf(tbs1052b, 'ACQuire:MODe SAMple') 
fprintf(tbs1052b, 'ACQuire:STOPAfter RUNSTop') 
pause(10) 
fprintf(tbs1052b, 'ACQuire:STATE OFF')