使用GPIB总线接收数据

使用GPIB总线接收数据-成功!

首先介绍一下实验室的工作环境:一台装有GPIB接口卡(ADLINK的LPCI-3488A点击资料连接)的电脑,一台ILXLightware FPM-8210 光功率计,一台EXPO PM-1600 光功率计,以及一台光谱仪。

编程过程总结:

  1. 首先安装GPIB接口卡的驱动(可在上面超链接中找到Drivers),安装以后可在安装目录下找到utility/GPIB Utility.exe,用于检测GPIB仪器是否连接到电脑,这里要注意的是仪器一定要设置GPIB地址,否者电脑将不会显示与仪器连接。通常仪器都会有设置GPIB地址的方式,具体情况请参照仪器的手册。
  2. 仪器连接到电脑成功后就可以实现使用GPIB总线就收数据了。将驱动下的你所采用编程软件所需要的头文件复制到你的工程中,我采用的是VS编译环境,所以将vc下的头文件拷贝到工程中,具体如何使用请参考动态库的一些资料,相关的接口函数可点击这里查看。
  3. 通常电脑只会有一块GPIB接口卡,但会有多个GPIB的仪器,我这里就是。在接收数据时最重要的是仪器的GPIB地址不能重复,否者无法正常通信。我就在这里出了错误。其次不同仪器接收数据的命令不同,具体参考仪器的用户手册。
  4. 接收数据的流程(思路这是个大体的步骤)
for(int i=0; i//MaxGPIBInterfaceCardNumber电脑上最多允许GPIB接口卡的数量
    {
        sprintf(buf, "GPIB%d", i);
        ud[i]=ibfind(buf);//找GPIBX接口卡
        if(ud[i] >= 0)//大于等于0表示找到接口卡
        {
            nCard++;//接口卡个数
            m_ud[i]=ibdev(ud[i], 1, 0, T1s, 1, 0);//打开设配,其中第二个参数为仪器GPIB地址,不同仪器需要不同
        }
    }       
}

ibwrt(m_ud[i], "*IDN?", 5L);//向仪器写入查询命令
ibrd(m_ud[i], ReadBuffer, 255);//接收仪器类型的数据存入ReadBuffer
ibwrt(m_ud[i], "你所需要的数据的命令", 5L);//向仪器写入命令
ibrd(m_ud[i], ReadBuffer, 255);//接收数据,存入
//接下来解析数据。。。

你可能感兴趣的:(杂记)