2017-08-21 90 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')