Matlab中使用函数命令的函数生成器
我有这个功能,可以通过GPIB连接将命令发送到函数生成器(斯坦福研究系统公司,合成函数生成器,DS345型),以更改其振幅、频率和偏移量。但是,当我取消注释该行时:Matlab中使用函数命令的函数生成器,matlab,function,instruction-set,Matlab,Function,Instruction Set,我有这个功能,可以通过GPIB连接将命令发送到函数生成器(斯坦福研究系统公司,合成函数生成器,DS345型),以更改其振幅、频率和偏移量。但是,当我取消注释该行时: fprintf(obj1, Offs_str) (向函数生成器发送偏移值),仪器输出“语法错误”。这是手册中指定的语法。此外,如果我将振幅命令更改为0.0以外的任何值(即将命令更改为fprintf(obj1,'AMPL1.1VP')),则会产生相同的语法错误 这是一个长期的尝试,但有没有人有使用DS345函数发生器的仪器控制的经验
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
我想在偏移量定义的末尾不需要使用
'VP'
。偏移量只是一个电压,指定Vpp或Vrms实际上没有意义
尝试:
对于振幅,在手册中,似乎在
'AMPL'
和值之间有一个空格。因此,也许您应该尝试一下'AMPL 1.0VP'
没有使用这个确切的工具包,但是可以安全地假设FSMP、MTYP5和FUNC5命令始终有效吗?如果是这样,我认为您可以消除不正确的线路终端等。命令的顺序有什么区别吗?谢谢!从偏移量中删除“VP”并添加一个空格修复了这个问题。好的,这是一个很难解决的问题,所以我真的很高兴它一开始就起作用了!
Offs_str = ['OFFS' num2str(Offs)];