2015-02-23 90 views
2

我有這個函數可以通過GPIB連接向函數發生器(斯坦福大學研究系統,合成函數發生器,型號DS345)發送一個命令來改變它的幅度,頻率和偏移量。然而,當我取消註釋行:Matlab-使用函數來命令函數發生器

fprintf(obj1, Offs_str) 

(發送所述偏移值與函數發生器),該儀器輸出「語法錯誤」。這是手冊中指定的語法。此外,如果我將幅度命令更改爲除0.0以外的任何值(即將命令更改爲fprintf(obj1, 'AMPL1.1VP')),則會產生相同的語法錯誤。)

這是一個長鏡頭,但沒有人有使用DS345函數發生器進行儀器控制的經驗?或者,也許有一些問題與儀器控制語法?

function [] = FG_on(Offs) 

    %Convert Offset input to string 
    Offs_str = strcat('OFFS',num2str(Offs),'VP'); 

    %create GPIB handle 
    obj1 = instrfind('Type', 'gpib', 'BoardIndex', 1, 'PrimaryAddress',... 
    19, 'Tag', ''); 

    %Open connection 
    fopen(obj1);  

    %Sampling Frequency 
    fprintf(obj1, 'FSMP1000'); 
    %Amplitude 
    fprintf(obj1, 'AMPL0.0VP'); 
    %Offset 
    %fprintf(obj1, Offs_str); 
    %Modulation Type 
    fprintf(obj1, 'MTYP5'); 
    %Function Type 
    fprintf(obj1, 'FUNC5'); 
end 
+0

還沒有使用過這個確切的工具包,但假設FSMP,MTYP5和FUNC5命令總是可以工作嗎?如果是這樣,我認爲你可以消除不正確的線路終端等。命令的順序是否有所作爲? – 2015-02-23 15:47:29

回答

0

我想沒有必要爲'VP'在偏移定義的末尾。偏移只是一個電壓,指定Vpp的或Vrms的沒有按」 t真的有道理

Try:

Offs_str = ['OFFS' num2str(Offs)]; 

對於振幅,在手冊中似乎有一個'AMPL'和值之間的空格。所以也許你應該試試'AMPL 1.0VP'

+0

謝謝!從偏移量中刪除'VP'並添加一個空間解決了問題。 – User1010011 2015-02-23 21:59:29

+0

好吧,那是在黑暗中的一個長鏡頭,所以我真的很高興它在第一個地方工作! – Ratbert 2015-02-24 07:06:55