乐趣区

关于c:经验栈C与是德科技信号发生器Keysight-RF-Signal-GeneratorsN9310A通信操作

1、前言 2、C# 代码 2.1 参考 C# 与泰克示波器 (Tektronix oscilloscope) 通信操作中 C# 代码;2.2 能够用是德科技提供的通信代码;2.3 应用 Ivi.Visa.Interop 类;3、简略指令参考资料

# 1、前言

这次应用的仪器是是德科技 (keysight) 的射频信号发生器,型号为 N9310A,来一张侧面照。

2、C# 代码

2.1 参考 C# 与泰克示波器 (Tektronix oscilloscope) 通信操作中 C# 代码;

2.2 能够用是德科技提供的通信代码;

环境:IO 程序库套件

我的项目 - 援用 - 增加 - 程序集 -Keysight.Visa

 using System;  
 using Ivi.Visa;  
 using Keysight.Visa;  
    
 namespace IdnSample  
 {  
  class IdnSample  
  {static void Main(string\[\] args)  
  {  
  GpibSession session \= new GpibSession ("MyInstr",  
  Ivi.Visa.AccessModes.None,  
  2000);  
    
  try  
  {  
  IMessageBasedFormattedIO io \= session.FormattedIO;  
  io.PrintfAndFlush("\*IDN?");// 发送查问设施指令  
  string\[\] response \= new string\[\] {"","", "",""};  
  io.Scanf("%,s", out response);// 读取信息,以逗号或空格划分字符串  
  Console.WriteLine("Manufacturer: {0}", response\[0\]);  
  Console.WriteLine("Instrument Model: {0}",  
  response\[1\].TrimEnd(new char\[\] {'\\n'}));  
  if (response.Length \> 2)  
  {Console.WriteLine("Firmware Revision: {0}",  
  response\[2\].TrimEnd(new char\[\] {'\\n'}));  
  }  
  if (response.Length \> 3)  
  {Console.WriteLine("Serial Number: {0}",  
  response\[3\].TrimEnd(new char\[\] {'\\n'}));  
  }  
  }  
  catch  
  {Console.WriteLine("\*IDN? query failed");  
  }  
  finally  
  {ession.Dispose();  
  session \= null;  
  }  
  Console.WriteLine("Press any key to end...");  
  Console.ReadKey();}  
  }  
 }

2.3 应用 Ivi.Visa.Interop 类;

 

using System;  
 using Ivi.Visa.Interop;  
 ​  
 namespace HardwareAutomation  
 {  
  public class IviVisaInteropInstrumentsAPIs  
  {FormattedIO488 instrument \= new FormattedIO488();  
  ResourceManager rm \= new ResourceManager();  
 ​  
  public void Set(string usbAddress, int timeOut)  
  {instrument.IO \= (IMessage)rm.Open(usbAddress, AccessMode.NO\_LOCK, 0, "");  
  instrument.IO.TerminationCharacterEnabled \= true;  
  instrument.IO.Timeout \= timeOut;  
  }  
    
  public void Write(string WriteStr)  
  {instrument.WriteString(WriteStr, true);  
  }  
 ​  
 ​  
  public string Read()  
  {  
  try  
  {return instrument.ReadString();  
  }  
  catch (Exception e)  
  {//Console.WriteLine(e);  
  //throw;  
  return "";  
  }  
  }   
  }  
 }

3、简略指令

 

:SYSTem:DATE? // 查问日期,用于确认信号发生器是否连贯失常  
 ​  
 :FREQuency:CW 5 MHz // 设置频率为 5MHz  
 ​  
 :FREQuency:CW? // 查问频率  
 ​  
 :AMPLitude:CW 5 dBm // 设置幅度为 5dbm  
 ​  
 :RFOutput:STATe ON // 关上射频输入  
 ​  
 ​  
 ​  
 :AM:STATe ON // 关上调幅模式  
 ​  
 :AM:DEPTh 5 // 设置调幅深度  
 ​  
 :AM:SOURce EXT // 设置调幅源为内部  
 ​  
 :MOD:STATe ON // 使能设置  
 ​  
 ​  
 ​  
 :FM:STATe ON // 关上调频模式  
 ​  
 :FM:DEViation 5 KHz // 设置调频偏差为 5KHz  
 ​  
 :FM:SOURce EXT // 设置调频源为内部  
 ​  
 :MOD:STATe ON // 使能设置  
 ​  
 ​  
 ​  
 :PULM:STATe ON // 关上脉冲模式  
 ​  
 :PULM:SOURce EXT // 设置脉冲源为内部  
 ​  
 :MOD:STATe ON // 使能设置

参考资料

N9310A User’s Guide

Keysight VISA.NET Help(C:\Program Files\ (x86)\Keysight\IO Libraries Suite\VisaNet.chm)

退出移动版