-
#include
#include
#pragma
comment
(
lib
,
)
#include
void
main ()
{
ViSession
defaultRM, vi;
char
buf [256] = {0};
/* Open session
to GPIB device at address 22 */
viOpenDefaultRM (&defaultRM);
viOpen (defaultRM,
, VI_NULL,VI_NULL, &vi);
/* Initialize
device(Reset) */
viPrintf
(vi,
);
/* Send an *IDN? string to
the device */
viPrintf (vi,
);
/* Read results */
viScanf (vi,
,
&buf);
//viQueryf(vi,
上两条语句可用此条代替
/* Print results */
printf (
, buf);
//
信号源
---
特定的信号源可能命令不一样,需要参考编程文档
int
freq=999;
viPrintf(vi,
,freq);
viPrintf(vi,
);
viPrintf(vi,
);
//RF ON
viPrintf(vi,
);
//
调制开
//
频谱仪
viPrintf(vi,
);
p>
//
屏幕显示,不显示速度较快
viPrintf(vi,
);
viPrintf(vi,
);
viPrintf(vi,
);
viPrintf(vi,
);
p>
//
扫描时间
viPrintf(vi,
);
p>
//
省电模式
viPrintf(vi,
);
viPrintf(vi,
);
viPrintf(vi,
);
//MARK ON
viPrintf(vi,
);
//RBW
viPrintf(vi,
);
//VBW
//
自动
校准需要单次扫描,连续扫描不准确
viPrintf(vi,
);
//WAI
用于同步,还有
OPC
等也可用于同步
,
仅用于
overlapping
command
,
sequential command
//
无用,不过用
viPrintf(vi,
);
viPrintf(vi,
);
//
读取
m
ark
的值
viQueryf(vi,
,
,buf);
printf(
,buf);
//
功率计
viPrintf(vi,
);
//
外部补偿电平
db!!!!ok
viPrintf(vi,
);
//
参考电平
p>
viPrintf(vi,
);
//
触发电平
p>
dBm
viPrintf(vi, <
/p>
);
//
触发事
件位置
us ns/div us/div ms/div
viPrintf(vi,
);
//
时间单位
(
moren s) 100us
viPrintf(vi,
);
//db/
格
db dBm,dBV,dBmV,dbuV dBuV
//
网分仪
viPrintf(vi,
);
viPrintf(vi,
);
viPrintf(vi,
);
viPrintf(vi,
);
//////
viPrintf(vi,
);
viPrintf(vi,
);
viPrintf(vi,
);
viPrintf(vi,
);
viQueryf(vi,
,
,
buf);
viPrintf(vi,
);
viPrintf(vi,
);
viPrintf(vi,
);
viPrintf(vi,
);
viPrintf(vi,
);
viPrintf(vi,
);
///////////////////////////
///////////////////////////
/* Close session */
viClose(vi);
viClose(defaultRM);
while
(1);
//pause
for see the result.
}
/*
一段
VC
写的
VISA
GPIB
控制代码。
注意事项:
1.
必须先安装
Agilent IO
Library
驱动,本人添加的是默认位置的库;
装了驱动后有很多很好的文档
C:Program
FilesAgilentIO Libraries
2.
安捷伦提供
SICL
和
VISA
两种库,不推荐用
SICL,
因为
VISA
更通用,
NI
也用
V
ISA
,函数名一致,都是
viOpenDefaultRM<
/p>
,
viOpen
,
viPrintf
,
viQueryf
,
viClose
。
是用来控制电子仪器的,主要用在自动化控制,测试上。标准是
SCPI
,可以
google
下。
4.
其实不难,但要多实践,
只是调用
API(
头文件
visa.h
,
库
)
,
AP
I
常用的就是几个,
viOpenD
efaultRM
,
viOpen
,<
/p>
viPrintf
,
viQueryf<
/p>
,
viClose...
还有
viSetAttribute,viScanf
等;
< br>
viSetAttribute(vi,VI_ATTR_TMO_VALUE
,20000);//
超时时间
s
其他的主要是
SCPI
命令,大多是标准化的,查查编程文档即
可。
5.
较新的技术是:
LXI(LAN
Extention Interface),
网口控制,
<
/p>
因为一个方面是
GPIB
接口较贵
(3k-5k)
,设备也只能接十几个
(
p>
通常足够了
);
6.
扫描时需要单次同步,这样才准确;
7
< br>,应该多在
Agilent
和
N
I
官网看看。
8.
好书:《
NI-
VISAProgrammersMan
》,《
Agilent
VISA User's Guide
》
-
-
-
-
-
-
-
-
-
上一篇:系统解剖学名词解释(含大题)
下一篇:svpwm完整程序