数据格式为点,出厂设置为点,RST不影响 FORM:DEXP:DSEP POIN
FORM:DEXP:DSEP COMM 设为逗号
手动触发一次扫描,在单扫模式下,可触发进行一次重新扫描。不需等待结束 :INITiate[:IMMediate]
返回仪器的轨迹数据的数据格式 :FORMat[:TRACe][:DATA]
ASCii|INTeger,32|REAL,32|REAL,64 :FORMat[:TRACe][:DATA]? 动态查询扫描值 TRAC1:IMM:LEV?
命令格式:命令行通常以冒号“:”开始;关键字之间用冒号“:”分隔,关键字后面跟随可选的参数设置;命令行后面添加问号“?” ,表示对此功能进行查询;命令和参数以“空格”分开。 大括号 { } :大括号中的参数是可选项,可以不设置,也可以设置一次或多次。
竖线 | :竖线用于分隔多个参数选项,发送命令时必须选择其中一个参数。
方括号 [ ] :方括号中的内容(命令关键字)是可选项,不管是否省略均被执行。 三角括号 < > :三角括号中的参数必须用一个有效值来替换。
#B表示这个数字是一个二进制数值。 #H表示这个数字是一个十六进制数值。 #Q表示这个数字是一个八进制数值。
chr(10) 换行 chr(9) tab空格 chr(10) 换行 chr(13) 回车 Chr(13)&chr(10) 回车换行 chr(32) 空格符 chr(34) 双引号 chr(39) 单引号
读操作
Dim strRes As String * 100 status = viVQueryf(vi, \":CALC:MARK1:Y?\" + Chr$(10), _\"%t\MsgBox (strRes)
Public Function InstrRead(rsrcName As String) As String
Dim status As Long Dim dfltRM As Long Dim sesn As Long
Dim strTemp0 As String * 256 ‘/定义256个字节的字符串
Dim strTemp1 As String
Dim rSize As Long ‘/实际读出字节数
status = viOpenDefaultRM(dfltRM) If (status < VI_SUCCESS) Then
MsgBox \" Failed to open the instrument! \"
Exit Function End If
status = viOpen(dfltRM, rsrcName, 0, 0, sesn)
If (status < VI_SUCCESS) Then
MsgBox \" Failed to open the instrument! \"
Exit Function End If
stasus = viRead(sesn, strTemp0, 256, rSize) If (status < VI_SUCCESS) Then
MsgBox \" Failed to read from the instrument! \"
Exit Function End If
status = viClose(sesn) status = viClose(dfltRM)
strTemp1 = Left(strTemp0, rSize) ‘/从左边读出实际个字节数
InstrRead = strTemp1 ‘/将读出的数转移 End Function
写操作
Public Sub InstrWrite(rsrcName As String, strCmd As String)
Dim status As Long Dim dfltRM As Long Dim sesn As Long Dim rSize As Long
status = viOpenDefaultRM(dfltRM) If (status < VI_SUCCESS) Then
MsgBox \" No VISA resource was opened!\"
Exit Sub End If status = viOpen(dfltRM, rsrcName,0,0, sesn) If (status < VI_SUCCESS) Then
MsgBox \"Failed to open the instrument!\"
Exit Sub End If
‘/Len(strCmd)字长度 rSize实际传输字节数 status = viWrite(sesn, strCmd, Len(strCmd), rSize)
If (status < VI_SUCCESS) Then
MsgBox \" Faild to write to the instrument!\" Exit Sub End If
status = viClose(sesn) status = viClose(dfltRM) End Sub
‘/读调用,txtinsaddr.text 地址
strTemp = InstrRead(TxtInsAddr.Text)
‘/写调用,txtinsaddr.text 地址,TxtCommand.Text写入字符
InstrWrite(TxtInsAddr.Text, TxtCommand.Text)
///////////FREQ////////////////// 设置频率
FREQ:CENT 100MHz
///////////SPAN////////////////// 设置带宽
FREQ:SPAN 2GHz
///////////AMPT//////////////////
设置顶部xDBM
DISP:WIND:TRAC:Y:RLEV -60dBm 自态范围100dB
DISP:WIND:TRAC:Y:SPAC LOG DISP:WIND:TRAC:Y 100DB 手动设置每格
DISP:WIND:TRAC:Y:SPAC LOG DISP:WIND:TRAC:Y 120DB
///////////BW//////////////////// RBW
BAND:AUTO OFF; BAND 1MHz VBW
BAND:VID:AUTO OFF; BAND:VID 10 kHz RBW自动
BAND:AUTO ON VBW自动
BAND:VID:AUTO ON
///////////SWEEP///////////////// 自动扫描 INIT:CONT ON 手动扫描一次 INIT:CONT OFF 设置扫描时间 SWE:TIME 10s 自适应扫描
SWE:TIME:AUTO ON 扫描点数 SWE:POIN 501
/////////////TRACE/////////////// 保存数据 FORM ASC;
MMEM:STOR:TRAC 1,'TRACE.DAT' /////////////MKR////////// 开MAKCALC:MARK ON CALC:MARK:X CALC:DELT:MODE ABS|REL CALC:DELT:X ///////////////MKR-----/////////// 找最大值 CALC:MARK:MAX CALC:DELT:MAX CALC:MARK1:MAX CALC:DELT1:MAX 下一个最大值 CALC:MARK:MAX:NEXT CALC:DELT:MAX:NEXT 最小值 CALC:MARK:MIN CALC:DELT:MIN 下一个最小值 CALC:MARK:MIN:NEXT CALC:DELT:MIN:NEXT 自动找最大值,自动找最小值 CALC:MARK:MAX:AUTO ON | OFF CALC:MARK:MIN:AUTO ON | OFF //////////////MKR FCTN///////// 开3DB CALC:MARK1:FUNC:NDBD:STAT ON /////////////HCOPY//////////// 保存图片 HCOP:ITEM:ALL HCOP:IMM ////////////////////////////// 读取数据 \"TRAC TRACE1,\"+A$ (A$:当前数据格式) \"TRAC? TRACE1\" 数据类型 短整数 - %hd 双精度浮点数 - %le 空格终止 - %s END终止符 - %t 字符串 %d,按整型数据的实际长度输出。 %md,m为指定的输出字段的宽度。 %ld,输出长整形数据。 o格式符,以八进制整形式输出整数。 x格式符,以十六进制数形式输出整数。 u格式符,用来输出unsigned型数据,即无符号数,以十进制形式输出。 c格式符,用来输出一个字符。 s格式符,用来输出一个字符串。 f格式符,用来输出实数(包括单双精度),以小数形式输出。 e格式符,以指数形式输出实数。 g格式符,用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出是占宽度较小的一种),且不输出无意义的零。 %[scanfset]: %% 打印一个百分号 %i/%d int %f/%lf float/double %hd/%ld short int/long int %p address %g float/double去尾零 %e/%E 科学计数法 %% % viSetAttribute (instrHandle, VI_ATTR_TMO_VALUE, (temp/100)),因为传输文件需要时间,特别对于大型文件所需时间会相当较长,所以有必要设置控制接口的 Timeout时间。 VISA中采用上面的语句设置Timeout时间, VI_ATTR_TMO_VALUE为在VISA.H中定义好的整型常数,代表将设置的参数是 Timeout 而非其他参数。(temp/100)为粗略设置的传输不能超过的最长时间,单位是 mS. viReadToFile (instrHandle, \"D:\\\\TEMP.TXTemp, &retCount),将仪表缓存中剩下的内容写入控制端计算机某一文件中,\"D:\\\\TEMP.TXT\" 为文件的路径和名字,temp从缓存中读出多少个字节写入TEMP.TXT中。 viSetAttribute (instrHandle, VI_ATTR_TMO_VALUE, 2000); 恢复Ttimeout时间到默 认值,2秒。 因篇幅问题不能全部显示,请点此查看更多更全内容