Java程控提高篇 #
操作系统: Windows 7 IDE:无 Visa版本: 17.5 通信方式: LAN
在开发之前请确保已配置visa开发环境,参考 Visa开发环境搭建 。
关于Java程控的配置参考 Java程控基础篇的第一步、第二步、第三步和第四步。
运行本例程序后,下方依次输出:S12幅度迹线的标准差、S12相位迹线的标准差、S21幅度迹线的标准差、S21相位迹线的标准差。下面具体介绍整个实现过程。
第一步:编写主程序 #
在名为java程控的文件夹里新建一个文本文档,并命名为Main2.java,输入以下代码:
public class Main2
{
public static void main(String[] args)
{
Instrument instrument=new Instrument();//实例化
instrument.open();
instrument.writeCmd("*RST\n");// 复位指令
instrument.writeCmd(":SENS:BWID 1KHZ\n");// 设置中频带宽为1KHZ
instrument.writeCmd(":SENS:FREQ:CENT 10000000\n"); // 键入中心频率
//测量S12幅度迹线的标准差
instrument.writeCmd(":DISP:WIND:TRAC1:DEL\n");//删除轨迹1
instrument.writeCmd(":CALCulate1:PARameter:DEF 'CH1',S12\n");//在通道1上创建测量名称为'CH1',测量参数为S12的测量。
instrument.writeCmd(":DISP:WIND:TRAC1:FEED 'CH1'\n");//创建轨迹1并将其与测量名为'CH1'的测量相关联,后在窗口1中显示。
instrument.writeCmd(":CALCulate1:PARameter:SEL 'CH1'\n");//设置名称为'CH1'的测量为通道1的当前选择测量。
instrument.writeCmd(":CALCulate1:FORMat MLOGarithmic\n");//设置通道1当前选择轨迹的显示格式为对数幅度
instrument.writeCmd(":CALCulate1:FUNCtion:STAT:STAT ON\n");//显示通道1轨迹统计。
instrument.writeCmd(":CALCulate1:FUNCtion:TYPE STDEV\n");//设置通道1轨迹统计返回数据的类型为标准偏差。
try{
Thread.sleep(1000);//延时,给分析仪足够的时间进行计算
}
catch(Exception e){
}
instrument.writeCmd(":CALCulate1:FUNCtion:DATA?\n");//返回通道1轨迹统计返回数据的数值
String a = instrument.readResult();//输出得到的结果
System.out.println(a);
//测量S12相位迹线的标准差
instrument.writeCmd(":CALCulate1:PARameter:DEF 'CH2',S12\n");
instrument.writeCmd(":DISP:WIND:TRAC2:FEED 'CH2'\n");
instrument.writeCmd(":CALCulate1:PARameter:SEL 'CH2'\n");
instrument.writeCmd(":CALCulate1:FORMat PHASe\n");
instrument.writeCmd(":CALCulate1:FUNCtion:STAT:STAT ON\n");
instrument.writeCmd(":CALCulate1:FUNCtion:TYPE STDEV\n");
try{
Thread.sleep(1000);//延时,给分析仪足够的时间进行计算
}
catch(Exception e){
}
instrument.writeCmd(":CALCulate1:FUNCtion:DATA?\n");
String b = instrument.readResult();
System.out.println(b);
//测量S21幅度迹线的标准差
instrument.writeCmd(":CALCulate1:PARameter:DEF 'CH3',S21\n");
instrument.writeCmd(":DISP:WIND:TRAC3:FEED 'CH3'\n");
instrument.writeCmd(":CALCulate1:PARameter:SEL 'CH3'\n");
instrument.writeCmd(":CALCulate1:FORMat MLOGarithmic\n");
instrument.writeCmd(":CALCulate1:FUNCtion:STAT:STAT ON\n");
instrument.writeCmd(":CALCulate1:FUNCtion:TYPE STDEV\n");
try{
Thread.sleep(1000);//延时,给分析仪足够的时间进行计算
}
catch(Exception e){
}
instrument.writeCmd(":CALCulate1:FUNCtion:DATA?\n");
String c = instrument.readResult();
System.out.println(c);
//测量S21相位迹线的标准差
instrument.writeCmd(":CALCulate1:PARameter:DEF 'CH4',S21\n");
instrument.writeCmd(":DISP:WIND:TRAC4:FEED 'CH4'\n");
instrument.writeCmd(":CALCulate1:PARameter:SEL 'CH4'\n");
instrument.writeCmd(":CALCulate1:FORMat PHASe\n");
instrument.writeCmd(":CALCulate1:FUNCtion:STAT:STAT ON\n");
instrument.writeCmd(":CALCulate1:FUNCtion:TYPE STDEV\n");
try{
Thread.sleep(1000);//延时,给分析仪足够的时间进行计算
}
catch(Exception e){
}
instrument.writeCmd(":CALCulate1:FUNCtion:DATA?\n");
String d = instrument.readResult();
System.out.println(d);
instrument.close();
}
}
第二步:编译成可执行文件 #
编译过程同[ Java程控基础篇]()的第六步。
如下图所示:
第三步:运行程序 #
在命令窗口中输入:java Main2,并按下回车键。
运行程序后,如下图所示:
输出的内容分别为:测量到的S12幅度迹线的标准差、测量到的S12相位迹线的标准差、测量到的S21幅度迹线的标准差、测量到的S21相位迹线的标准差。
矢量网络分析仪的界面: