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'
.
我有这个功能可以通过 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'
.