您的当前位置:首页正文

FSU编程有用资料

2023-12-03 来源:爱go旅游网
数据转输格式 \"FORM REAL,32\" \"FORM ASC\" \"FORM UINT,8\"

数据格式为点,出厂设置为点,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:MARK:Y? 开比较值 CALC:DELT ON

CALC:DELT:MODE ABS|REL CALC:DELT:X CALC:DELT:X:REL? CALC:DELT:Y? 关闭所有屏标 CALC:MARK:AOFF

///////////////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秒。

因篇幅问题不能全部显示,请点此查看更多更全内容