
回答第二个问题
viQueryf(GPIB地址,要写的命令,读出来的值的格式,读出来的值放的地方)
如要读电源的电压电流值:
status = viQueryfa(m_vi[i],"MEAS:VOLT\n","%lf",&MasVoltage);
status = viQueryfa(m_vi[i],"MEAS:CURR\n","%lf",&MeasCurrent);
m_vi[i] 表示仪器的地址,是ViSession型 是VISA自带的参数类型,第二个参数是读电压的命令,可以在NI工具里直接下给仪器的命令,第三个参数是读出来的值的格式,第四个是读出来的值的存放的地方,变量一般定义成double型。
是一种工程控制用的协议。最初由HP公司提出,目前成为一种国际标准,遵守的协议为IEEE488。一般被用来使用任何编程语言如VB、Vc、C++实现电脑对仪器的控制。当然也有某些仪器制造商自己开发的语言支持GPIB。如keithley公司使用的testpoint,NI公司的labview等。实现这种控制首先要被控仪器支持GPIB,其次,工控机安装IEEE488卡,并通过gpib线连接两个设备。
GPIB比串口控制提高了传输速率和同时支持的设备总数。但是目前已经被传输速率更快支持设备总数更多的lan接口替代。
电脑
GPIB卡和GPIB连接线
NI visa 驱动安装包
VS2010编译器
方法/步骤
1:到官方下载驱动NI vsia 驱动安装包
2:安装驱动,注意,默认并不安装Visa 库,但是我们开发程序需要用到它,请选择安装Visa,其他选择下一步,直至安装完成。安装结束后可以在安装目录下找到开发所用到的头文件和库文件。(注:安装结束后需要重启电脑)。
3:仪器连接
Visa支持Ethernet, GPIB, GPIB-VXI, VXI, PXI, or 串口连接 程控仪器66311可用的控制端口有GPIB和串口两种,为了可靠性连接及传输的高速度,通常选用GPIB连接。另外,GPIB卡有PCI内置(较便宜),还有USB外置型(较贵),按照电脑--> GPIB卡-->GPIB线-->仪器连接。 并参照66311B手册,设定GPIB地址为5 (出厂默认设置为5) 。
4:开发环境建立。笔者使用VC2010 (即VC10) 开发, 有2种方法加入header 和lib文件:
a在工程文件属性中加入include目录和程式库目录,如图
b直接在源文件中使用#include包含头文件路径(可用相对路径或绝对路径),使用#pragma命令定义库文件路径,(推荐使用第二种方法)。如
#include "//Nivisalib/include/visah"
#pragma comment (lib, "//Nivisalib/lib/msc/visa32lib")
5:开发验证。
建立基于控制台的win32 程序,加入cpp文件,键入如下代码,按F7编译。
6:代码解读。以上代码示范了如何使用visa API连接并控制仪器读写。
line 1~3 包含必须的头文件和库文件
line 8~11 定义变量,ViStatus用来检查仪器初始化及读写状态
ViSession用来定义Visa库资源句柄
ViUint32用来定义读写字符长度
ViBuf 用来定义读取仪器缓冲区
Line 14 使用viOpenDefaultRM初始化Visa 库,如果电脑上没有正确安装Visa 库,该调用会失败,在此,需要加入出错处理,检测ViStatus 可以判断是否调用成功
Line 22 使用viOpen打开指定仪器,该实例打开GPIB地址为5的设备
Line 28viSetAttribute设定连接仪器属性,实例中设定VI_ATTR_TMO_VALUE=5000ms, 如果读写仪器在给定的5秒时间没有回应,调用失败
Line 30viWrite向仪器发送指令,实例中"IDN"是查询仪器厂家型号指令,通常要加入一个换行符,变为"IDN\n"
Line 31viRead读取仪器回应结果,将结果存储到buffer 中
Line 32,33, 将仪器回应结果显示出来
line 36 释放仪器连接
line 37 关闭仪器句柄
(注意:示例使用VC2010,默认使用unicode编码,所以在viWrite, viRead函数中加入了强制类型转换,否则无法编译通过)。
7:因为调用较频繁,所以经常把所需要的功能,如打开,读写仪器,上电,断电,读取电流值,归到特定的模块中,示例代码如下。
8:以上使用到DC source 66311 常用的仪器控制指令: OUTP ON (上电),OUTP OFF(断电), VOLTAGE 40 (设置电压40V),
CURR 30 (设置电流值30A), MEAS CURR DC (读取直流电流值), IDN (查询设备型号), 另外,对仪器复位也是常用的指令,指令为CLS;RST;。
您好,我就为大家解答关于GPIB接口总线共有哪几条信号线它们各自的作用是什么相信很多小伙伴还不知道,现在让我们一起来看看吧!1、不太
您好,我就为大家解答关于GPIB接口总线共有哪几条信号线它们各自的作用是什么相信很多小伙伴还不知道,现在让我们一起来看看吧!
1、不太清楚。
2、以下是我词条中找到的,估计不能很好解决你的问题。
3、聊胜于无吧!GPIB(General-Purpose Interface Bus)-通用接口总线 大多数打印机就是通过GPIB线以及GPIB接口于电脑相连。
4、 GPIB 简介 1965年 惠普公司设计HP-IB 1975年 HP-IB变成IEEE-488标准 1987年 IEEE4882被采纳, IEEE 488-1978变成IEEE4881-1987 1990年 SCPI规范被引入IEEE 488仪器 1992年 修订IEEE 4882 1993年 NI公司提出HS488 1965年, 惠普公司(Hewlett-Packard)设计了惠普接口总线(HP-IB, 用于连接惠普的计算机和可编程仪器由于其高转换速率(通常可达1Mbytes/s), 这种接口总线得到普遍认可, 并被接收为IEEE标准488-1975和ANSI/IEEE标准4881-1987 后来, GPIB比HP-IB的名称用得更广泛 ANSI /IEEE 4882 -1987加强了原来的标准, 精确定义了控制器和仪器的通讯方式 可编程仪器的标准命令(Standard Commands for Programmable Instruments, SCPI)采纳了IEEE4882定义的命令结构,创建了一整套编程命令 多仪器的星型组合和线型组合 我们使用一台计算机,通过GPIB控制卡可以实现和一台或多台仪器的听、讲、控功能,并组成仪器系统,使我们的测试和测量工作变得快捷, 简便, 精确和高效。
5、通过GPIB电缆的连接,可以方便地实现星型组合、线型组合或者二者的组合。
6、是一种工程控制用的协议。
7、最初由HP公司提出,目前成为一种国际标准,遵守的协议为IEEE488。
8、一般被用来使用任何编程语言如VB、Vc、C++实现电脑对仪器的控制。
9、当然也有某些仪器制造商自己开发的语言支持GPIB。
10、如keithley公司使用的testpoint,NI公司的labview等。
11、实现这种控制首先要被控仪器支持GPIB,其次,工控机安装IEEE488卡,并通过gpib线连接两个设备。
12、 GPIB比串口控制提高了传输速率和同时支持的设备总数。
13、但是目前已经被传输速率更快支持设备总数更多的lan接口替代。
以上就是关于OSA86142B的GPIB通信,读取Mark点波长和功率的命令是什么viQueryf()中的参数格式是什么样的全部的内容,包括:OSA86142B的GPIB通信,读取Mark点波长和功率的命令是什么viQueryf()中的参数格式是什么样的、GPIB是什么谁帮我详细说明一下、如何对可编程电源实现精确的时间控制等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)