Labview控制Agilent 33220A信号发生器_labview的agilent函数发生器-程序员宅基地

技术标签: labview  usb  agilent  嵌入式  

        Agilent其实自带PC端控制信号发送器的软件,在网上可以找到。但需要安装一堆驱动和控件,使用时数据还要转化为特定的格式。于是,自己用labview做了个小软件,可以读取txt格式数据,并通过信号发生器发出。

一、   原理

        Labview支持NI-VISA 通用I/O接口软件 。VISA(虚拟仪器软件架构)是对包含GPIB、VXI、PXI、串口(RS232/485)、以太网、USB和/或IEEE 1394接口的仪器系统进行配置、编程和故障排除的标准。 也就是说,Labview可以利用NI-VISA通过上述接口与设备通信。具体见http://sine.ni.com/nips/cds/view/p/lang/zhs/nid/12145

Agilent 33220A提供了USB和以太网接口,可以与Labview通信。因此,可通过Labview读取数据文件后,加载到信号发生器中。

二、   软件与驱动安装

        参考了文献《labview通过USB控制agilent33220》,下载地址点击打开链接

1、       在Win7 X86 下安装Labview 2011(仅在此系统下安装此版本,其他版本没试)。

2、       Labview提供了Agilent 33xxx 系列的驱动程序,并且驱动是利用VISA开发的,要求开发环境必须有VISA3.0或以上版本。我安装的是VISA5.2,下载地址是:http://www.ni.com/download/ni-visa-5.2/3337/en/

3、       下载Labview驱动程序,下载地址是:http://sine.ni.com/apps/utf8/niid_web_display.download_page?p_id_guid=0470714759413BCCE0440003BA7CCD71

4、       下载后的文件解压后将Agilent 33XXX Series文件夹复制到C:\Program Files\National Instruments\LabVIEW 2011\instr.lib目录下(默认安装路径是这样的)。

5、       将信号发生器连接电脑,打开VISA->Driver Wizard,选择USB,若上述安装没问题,在DeviceList中可以看到信号发生器。点击next,会跳出提示,说本设备是USBTMC设备,不需要驱动,证明设备连接正常。

          关于USBTMC设备与Labview的连接问题,可参考http://digital.ni.com/public.nsf/allkb/635ADD452083FEBB482571700007FCAB

 

        到此,软件与驱动安装完成。

        另外,我在之前用64位Win7 执行过同样的上述过程,一直失败,换成32位后正常,不知道原因。还有网友说需要在MAX->工具->NI-VISA->VISA options->general settings->passports中勾选NiVisa Tulip.dll,才能保证设备正常识别,但我没勾选,也成功了。

三、   具体实现

         1、       参考Agilent 33xxx->Examples中的例程,可以很快上手。但是里面有个库函数有点小BUG。Private文件夹中的库函数scale arbitary waveform是将数据归一化到-1~+1,保证无论什么样的数据,都可以正常加载。但是在归一化时,有段程序用到的减号运算:


        减号运算是将数组最大值与最大值的绝对值相减。这样做的结果是:如果最小值的绝对值比最大值的绝对值小,信号可变换到-1~+1,程序可正常执行;但是反之,则最小值变换后会<-1,导致后面报错。因此,将这里修改,减号运算变为数组的最大值减去最小值。

         2、       还有一个关键的函数Configure Arbitrary Waveform.vi,这是配置波形的参数,配置的参数含义如下:

                     Gain:信号输出增益,相当于在原有信号的基础上乘以一个系数

                     Frequency:采样频率,单位KHz,这个是加载的信号重复的频率,比如设置为1Hz,则信号1s重复1                                              次。注意,频率单位是KHz,不要设置过高,否则数据无法输入到信号发生器。

                     Offset:信号偏置,相当于在原有信号的基础上叠加一个直流量,单位是V

         3、       最终实现的效果是:

                  (1)    可加载txt格式数据,数据要求为1列。由于33220A的存储深度是64K(是以数据点为单位算的),即最多存储65536个数据,因此,当txt中的数据超过65536是将进行截断。对于我经常处理心电信号的话,假设采样率为200Hz,则可向信号发生器一次性传送约327s数据,足够用了。

                  (2)    加载数据后,自动跳出对话框,设置增益、频率和偏置。这里的频率是信号的采样频率,内部根据信号长度自动转化为Configure Arbitrary Waveform.vi需要的频率。自动跳出对话框用的是子vi,子vi通过长度为1的队列与主vi通信,子vi负责写数,主vi负责读数。

          4、       存在的问题

                  (1)无法向信号发生器连续传送数据。连续从txt读取数据没问题,但是每次向信号发生器传送数据的时间不确定,所以无法控制精确控制每次发送的间隔。不知道33220有没有回复的指令。。。反正这个没解决。


           程序下载地址为:http://download.csdn.net/detail/hnxyxiaomeng/9779996


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hnxyxiaomeng/article/details/61938962

智能推荐

OpenAI API参数详解_max_tokens-程序员宅基地

文章浏览阅读2.3w次,点赞8次,收藏58次。OpenAI官网文档:https://platform.openai.com/docs/introductionhttps://platform.openai.com/docs/introduction为提供的提示和参数创建完成https://api.openai.com/v1/completionsPOSTRequest Body使用的模型ID。您可以使用模型API列表查看所有可用的模型,有关它们的描述,请参阅我们的模型概述。生成完成的提示,编码为字符串、字符串数组、token数组或token数组的数组。_max_tokens

Ubuntu20系统添加右键菜单:新建文档_ubuntu右键没有新建文档-程序员宅基地

文章浏览阅读2.2k次,点赞2次,收藏11次。Ubuntu20系统右键菜单没有新建文档,十分不便。添加一个右键-新建文档命令方法如下。1、打开终端命令窗口打开终端,输入命令:sudo gedit # 创建一个空白文档创建一个空白文档。2、保存空白文档到模板目录下在空白文档上点击保存按钮,保存到主目录的模板文件夹下。文件名称可自定义,将会出现在右击新建菜单命令中。保存后,右击菜单中出现了新建-文本文档名称了。如图:..._ubuntu右键没有新建文档

WebStorm Pro2019(WS2019)软件安装包下载及安装教程-程序员宅基地

文章浏览阅读330次,点赞10次,收藏7次。5.勾选64-bit launcher、Add launchers dir to the PATH和Add "Open Folder as Project",点击“Next”1.选中下载好的安装包,鼠标右键解压到“WebStorm 2019.3.3”文件夹。12.选择Evaluate for free,点击“Evaluate”10.选择Do not import settings,点击“OK”16.点击“为WebStorm安装jetbrains-agent”4.选择软件安装路径,点击“Next”

fast FW150US USB无线网卡Linux驱动安装_fw150us 驱动 linux-程序员宅基地

文章浏览阅读5.9k次。由于笔记本没有自带无线网卡,所以买了一块fast FW150US USB无线网卡。该网卡只自带了window下的驱动,经过一番折腾,终于安装好了Linux下的驱动,在此记录以便以后遇到同样问题能够快速解决。首先查看网卡型号,如下:[plain] view plaincopyprint?root@yongmi-hn:~# l_fw150us 驱动 linux

堆排序-程序员宅基地

文章浏览阅读10w+次,点赞394次,收藏1.1k次。1、首先了解堆是什么堆是一种数据结构,一种叫做完全二叉树的数据结构。2、堆的性质这里我们用到两种堆,其实也算是一种。大顶堆:每个节点的值都大于或者等于它的左右子节点的值。小顶堆:每个节点的值都小于或者等于它的左右子节点的值。如上所示,就是两种堆。如果我们把这种逻辑结构映射到数组中,就是下边这样9 5 8 2 3 4 7 ..._堆排序

压缩numpy数组保存_np保存数组-程序员宅基地

文章浏览阅读235次。原始数组采用npy保存,文件为5409kb。使用npz保存,仅为19kb。_np保存数组

随便推点

数据结构c语言版胡学刚答案,哈夫曼树的建立与实现(最终版)最新版-程序员宅基地

文章浏览阅读391次。《哈夫曼树的建立与实现.doc》由会员分享,可免费在线阅读全文,更多与《哈夫曼树的建立与实现(最终版)》相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索。1、字母的总数str[j]=i+;送对应的字母到数组中cnt[j]=tem[i];存入对应字母的权值}returnj;j是输入字母总数}voidChuffmanTree(HuffmanTreeHT,HuffmanCodeH..._胡学钢数据结构课后答案

【微服务架构】springcloud微服务架构搭建_spring cloud部署架构-程序员宅基地

文章浏览阅读1.7w次。要会用,首先要了解。图懒得画,借鉴网上大牛的图吧,springcloud组件架构如图:微服务架构的应用场景:1、系统拆分,多个子系统2、每个子系统可部署多个应用,应用之间负载均衡实现3、需要一个服务注册中心,所有的服务都在注册中心注册,负载均衡也是通过在注册中心注册的服务来使用一定策略来实现。4、所有的客户端都通过同一个网关地址访问后台的服务,通过路由配置,网关来判_spring cloud部署架构

用Python实现Twilio模块的短信发送_the number is unverified. trial accounts cannot se-程序员宅基地

文章浏览阅读744次。安装Twilio;我在anaconda中使用"conda install twilio"安装失败,但是使用pip可以.并且能够在conda中查到Twilio包;pip install twilio注册Twilio:- 在官网(https://www.twilio.com)点击中间的红色按钮:get free API key进行注册.我使用126.com的邮箱能够成功注册.- 在..._the number is unverified. trial accounts cannot send messages to unverified

PyTorch基础练习-task1_pytorch基础选择题-程序员宅基地

文章浏览阅读1.1k次。PyTorch基础练习-task1一、什么是Pytorch?二、为什么选择Pytorch?三、Python环境配置四、PyTorch安装五、PyTorch基础概念5.1、张量 Tensors一、什么是Pytorch?PyTorch是一个开源深度学习框架,是基于python的一个科学计算包。二、为什么选择Pytorch?2.1、支持python;2.2、动态神经网络;2.3、支持GPU性..._pytorch基础选择题

#小白接口# 使用云函数,人人都能编写和发布自己的API接口_云函数post请求如何写-程序员宅基地

文章浏览阅读2k次,点赞2次,收藏7次。你只需编写简单的云函数,就可以实现自己的业务逻辑,发布后就可以生成自己的接口给客户端调用。果创云支持对云函数进行在线接口编程,进入开放平台我的接口 - 在线接口编程,设计一个新接口,设计和配置好接口参数、接口名称、接口返回后,再把云函数源代码填上,提交审核通过并发布后即可使用。云函数编写入口:在线接口编程。云函数优势云函数具有以下特点和优势:1、无需管理服务器即可运行移动后端代码 2、可在线接口编程,自动生成云接口和接口文档 3、代码简单,功能强大,一行代码就可以实现数据库、短信发送_云函数post请求如何写

八大排序算法的Java实现-程序员宅基地

文章浏览阅读69次。一、插入排序1. 直接插入排序2. 希尔排序

推荐文章

热门文章

相关标签