Matlab-使用函数命令函数发生器

Matlab-Using a function to command a function generator

我有这个功能可以通过 GPIB 连接发送命令到函数发生器(斯坦福研究系统,合成函数发生器,型号 DS345)以改变它的振幅、频率和偏移。但是,当我取消注释该行时:

fprintf(obj1, Offs_str)

(将偏置值发送给函数发生器),仪器输出一个'syntax error'。这是手册中指定的语法。此外,如果我将振幅命令更改为 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

我想在偏移量定义的末尾不需要 'VP'。偏移量只是一个电压,指定 Vpp 或 Vrms 没有任何意义。

尝试:

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

对于幅度,在手册中似乎在'AMPL'和该值之间有一个space。所以也许你应该试试 'AMPL 1.0VP'.