Java程控提高篇

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编译可执行文件图

第三步:运行程序 #

在命令窗口中输入:java Main2,并按下回车键。

运行程序后,如下图所示:

图-运行程序图

输出的内容分别为:测量到的S12幅度迹线的标准差、测量到的S12相位迹线的标准差、测量到的S21幅度迹线的标准差、测量到的S21相位迹线的标准差。

矢量网络分析仪的界面:

图-矢量网络分析仪图