tag 标签: LabVIEW

相关帖子
相关博文
  • 热度 1
    2014-3-14 09:58
    944 次阅读|
    0 个评论
      在Pico自带的VI函数库中,只提供了一些集成驱动VI,这些VI一方面功能比较固定,灵活性不高,一方面功能不是很全面,只是包含了部分驱动函数,还有一些高级的驱动函数并没有在VI中体现,所以需要进一步了解如何在Labview中直接调用基本的驱动函数,从而实现更详细的功能控制。   接下来介绍如何在Labview中直接调用pico4000.dll驱动函数,从而实现在Labview中对Pico示波器硬件进行控制。   (1)选择Labview的函数选版互连接口库与可执行函数下的“调用库函数节点”VI。   (2)右键该VI,在快捷菜单中选择“配置...”,进入配置界面。 (3)设置驱动函数库的路径和对应的函数名  在红色框1中,选择pico4000.dll驱动函数的路径  在红色框2中,选择调用函数名,例如ps4000GetTimebase。  在红色框3中,选择standcall(WINAPI)  其他保持不变     (4)设置调用函数的入口参数和返回参数 在设置驱动函数之前,用户需要了解开发文档中函数各个入口参数的定义,下面以ps4000GetTimebase函数为例,讲述设置步骤。 开发文档中ps4000GetTimebase函数的定义如下:  设置返回参数: 修改返回参数名称:PICO_STATUS;修改类型:数值;修改数据类型:有符号32位整型。    修改入口参数: 点击,添加一个新的入口参数,修改名称:handle,修改类型:数值;修改数据类型:有符号16位整型。以此按照开发文档中定义的参数类型进行设置。设置完整后如下图所示。     (5)点击确定,至于驱动调用设置完毕。
  • 热度 3
    2012-3-13 19:12
    1406 次阅读|
    2 个评论
      好了,继续我们的Arduino之旅,Arduino与processing的交互在前面已经实现,所以这次我们要干啥呢?首先,我们得看看Labview,Labview是一个适用于工业控制与实验控制的软件,但是如果纯粹的把它认为是软件就太简单了,从软件的角度来看,软件对硬件的实时的方便的控制给实验或是工业过程提供了很大的方便,其实这一切在我们的生活中也是比较普遍的存在的,首先,在我们的汽车上,当我们在触摸屏上轻轻的按了一下,我们的空调开启了,我们的雨刷开启了,这都是一种软件和硬件的良好的结合,通过这样的方式,我们可以完成对复杂过程的定制和监控,当然还有适当的调整,这就是一个非常好的做法。   而我们在这里,就要实现这样的东西,还记得前面我们的LED小灯吗?我们可以在面包板上通过连上开关来控制小灯的明和灭,但是这样似乎比较呆板和普通,如果我们在自己的软件界面中设置一个虚拟的开关,然后当我们鼠标点击的时候就能看到直接的效果,也能实现一种控制,这样的控制是不是更为的吸引人呢?   确实是的,我们正要做这样的事情,在这之前,必须好好的探究一下蕴藏在其中的原理,那么,原理是啥呢?就是我们曾经用过的COM3通讯端口,原来是我们往着里面写过数据,而通过Arduino来控制processing也就是这样的方式,在这里,就是变换一下,我们把这个数据的方向换一下,也就是让processing往里面写入数据由Arduino接收来控制Arduino上连接的小灯,好了,看起来是不难的,或者说,说到这里你应该已经会编程了。   设定好相关的串口波特率,这里我设置的是9600,也可以有变化下,不过两端必须一致,然后通过processing中的myPort(一个Serial变量)来执行已经固化的write函数,把数据传入,然后在Arduino段读出,也就是通过Read(相同的原理)函数读出,好了,订好相关的交流的协议,这里就是你自己定了,这里有很大的发展空间,所以你可以去发挥啦!当然在processing中中特定的信号的发出是通过鼠标点击来辨别的,那么在这里我们就需要mousepressed这个函数,这方面的函数可以查找一下,在processing本身提供的范例中是有这样的一个的,当鼠标点击后,这个函数的存在使程序负责自动的获取点击的坐标(相对坐标,也就是相对整个程序创造的框图),根据这个位子我们就可以完成很多的判断,然后如果条件为真,那么就可以发出相应的信号,其实很多的自动化的工业过程中软件控制的流程也就是这样,当然,别人可能设计的比较鲁棒,所以这里只能算是一个雏形了。当需要增加的控制信号变得很多的时候,而且这些过程也必然与很多的相似的地方,我们也可以把这样的操作简化为函数化的封装过程,这样就能比较方便的开发了,当然,如果就规范而言,那么JAVA的语言开发中的对象面向的编程的思想完全应该用进去,所以着里面是有很多的可以改进的地方的。   好了,下面贴出代码吧:     Processing端:       import processing.serial.*;   float lefttop1=60; float leftbottom1=10; float length1=30; float width1=30;   float lefttop2=60; float leftbottom2=70; float length2=30; float width2=30;   float top3=200; float bottom3=10; float length3=30; float width3=30;   float top4=200; float bottom4=70; float length4=30; float width4=30;   int LED1flag=0;   Serial myPort;   void setup() {     myPort = new Serial(this,"COM3", 9600);     size(400,200);   fill(75);   text("LED1 on",lefttop1+49,leftbottom1+20);   text("LED1 off",lefttop1+49,leftbottom1+80);   text("LED2 on",top3+49,bottom3+20);   text("LED2 off",top3+49,bottom3+80);      fill(0,200,129);    rect(lefttop1,leftbottom1,length1,width1);    fill(120,29,120);    rect(lefttop2,leftbottom2,length2,width2);    fill(136,120,129);    rect(top3,bottom3,length3,width3);    fill(10,230,10);    rect(top4,bottom4,length4,width4); }   void draw() {      if(LED1flag==1)     {     myPort.write(1);     }     if(LED1flag==2)     {     myPort.write(2);     }      if(LED1flag==0)     {      myPort.write(0);     }     if(LED1flag==3)     {     myPort.write(3);     }     delay(100); }   void mousePressed() {    if(mouseXlefttop1mouseXlefttop1+length1mouseYleftbottom1mouseYleftbottom1+width1)      {        if(LED1flag==0)        LED1flag=1;        else        LED1flag=0;      }  if(mouseXlefttop2mouseXlefttop2+length2mouseYleftbottom2mouseYleftbottom2+width2)     {        if(LED1flag==3)        LED1flag=2;        else        LED1flag=3;      }    if(mouseXtop3mouseXtop3+length3mouseYbottom3mouseYbottom3+width3)        LED1flag=2;     if(mouseXtop4mouseXtop4+length4mouseYbottom4mouseYbottom4+width4)        LED1flag=3;     }       Arduino端:   int duchu=0; void setup() {                  // initialize the digital pin as an output.   // Pin 13 has an LED connected on most Arduino boards:   pinMode(13, OUTPUT);     pinMode(12, OUTPUT);     Serial.begin(9600); }   void loop() {      duchu=Serial.read();   if(duchu==1)     digitalWrite(13,HIGH);   if(duchu==0)     digitalWrite(13,LOW);   if(duchu==2)     digitalWrite(12,HIGH);   if(duchu==3)     digitalWrite(12,LOW);    }   附加一些说明,在这个例子中,我们控制的灯是在12,13号口的,这里可以放上两个LED小灯,而我们就要对这两个灯进行相应的控制,运行processing以后我们可以看到相应的界面上的控制的按钮,也就是LED1 on ,和LED1 off ,还有LED2 on和LED2 off ,好了,这就是完整的构建,当然你可以在这个基础上进行加工和拓展。   这两个按钮的运行方式有一些方式,其实在代码中你可以看出来,我后来把LED1做了改变,使得原来需要两个按钮来控制LED1的事情变成只用一个按钮就能做到,具体的原理就由你来探究喽!   好了,至此,我们的processing和Arduino的双向的通信已经完成,下面还能有啥呢?这个得下次在说喽!
  • 热度 2
    2010-12-31 10:39
    1008 次阅读|
    0 个评论
    仿真车速,但是油箱液位那块不会了。上周买了一本labview的书(《Labview8.2中文版入门与典型实例》),这本书总体还可以,适合我这样的菜鸟,花了一晚上浏览了一遍,呵呵,还真好,现在对LABVIEW终于有了点感觉,不过光看也不行呀,还得自己亲自实践才能行,毕竟书上得来终觉浅,缘知此事要躬行所以俺也得多练才行…… 这个是一位网友问的问题,说是要用两个簇实现汽车的档位,速度等的模型,下面是她给我的要求:   下午俺也正好在练习簇这一节,就帮她试试,谁知俺这脑袋有点笨笨的,搞了一下午,也就搞了这点,真是惭愧,哎,以后还得好好修练才行……不知道在这里能不能遇到这方面的高手,也来帮帮俺,呵呵,俺在这里先谢谢了! 好了,不那么多废话了,还是再好好研究研究吧,不然上班了又得给老板干活了,就没俺的时间了……
  • 热度 1
    2010-12-31 09:04
    1036 次阅读|
    0 个评论
    附件1是一个温度和液位仿真的程序,因为要用到Process Monitor.vi这个子vi,但我这个8.2版本上好像没有这个,只好改了一下,所以有点不太像…… 附件2是一个流水灯。严格的说这不是一个流水灯程序,我只能做到按下按钮,灯顺次点亮,然后就没反就了,因为刚接触这个软件,有很多东西还不会用,不知能否有缘遇到哪位好心的大侠帮俺一把? 好了,先说这么多吧。还是回去自己多研究研究为好。
  • 热度 2
    2010-12-30 14:41
    913 次阅读|
    0 个评论
    呵呵,现在开始学习Labview做毕业设计了…… 这labview其实也挺好玩的,LabVIEW(Laboratory Virtual instrument Engineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。 图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。 利用LabVIEW,可产生独立运行的可执行文件,它是一个真正的32位编译器。像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。好了,不多说了,再好好学习学习。 俺的第一件作品——正弦波发生器
相关资源
  • 所需E币: 0
    时间: 2020-11-18 20:41
    大小: 3.11MB
    上传者: czd886
    基于现场可编程门阵列与Labview的脉冲电源控制系统设计
  • 所需E币: 2
    时间: 2020-11-17 21:11
    大小: 3.42MB
    上传者: xgp416
    遇到LabVIEW应用程序中的性能瓶颈不用愁,这招教你搞定资源大小:3.42MB[摘要]提高LabVIEW应用程序的性能  了解如何识别和解决LabVIEW应用程序中的性能瓶颈。使用内置工具和VI分析器,您可以监视VIs的内存使用情况和执行时间,以确定导致应用程序性能下降的代码部分。
  • 所需E币: 4
    时间: 2020-11-17 20:51
    大小: 699.3KB
    上传者: xgp416
    [摘要]良好的说明信息有助于VI的开发者维护并改进LabVIEW程序。为前面板添加说明信息有助于说明各个前面板控件的用途。为VI添加说明和帮助信息便于说明VI的用途,也便于今后对VI进行修改和维护。  1.前面板控件·控件标签含义明确的标签
  • 所需E币: 4
    时间: 2020-11-17 21:01
    大小: 1.25MB
    上传者: xgp416
    [摘要]为了产生不同频率,不同脉宽的刺激信号,利用RS232串行通信接口将计算机与单片机相连,计算机通过LabVIEW软件平台,对单片机发送指令参数,单片机利用接收到的指令参数产生计算机所指定的脉冲。介绍了该系统中上下位机的具体程序流程,并且完成了对整个系统的检测。通过实验证明
  • 所需E币: 4
    时间: 2020-11-17 21:02
    大小: 830KB
    上传者: xgp416
    LabVIEW中的数字IO使用技巧资源大小:830KB[摘要]一般数据采集卡上都有DI/O功能,用来实现数据采集的触发、控制及计数等功能。DI/O按TTL逻辑电平设计,其逻辑低电平在0到0.7V之间,高电平在3.4到5.0V之间。  数采板上多路(Line)数字I/O组成一组后被称为端口(Port)。一个端口由多少路数字
  • 所需E币: 4
    时间: 2020-11-17 20:01
    大小: 1.09MB
    上传者: xgp416
    [摘要]本文档的主要内容详细介绍的是LABVIEW初级教程之局部变量与全局变量的详细资料说明   LabVIEW是以数据流决定程序框图元素的执行顺序,但在某些程序框图中需要消除数据流的依赖性,这时可以考虑使用变量。LabVIEW中的变量是程序框图中的元
  • 所需E币: 3
    时间: 2020-11-17 20:01
    大小: 652.3KB
    上传者: xgp416
    [摘要]本文档的主要内容详细介绍的是LabVIEW初级教程之属性节点初级课程的详细资料说明。  控件的大部分属性都可以通过属性对话框a行设置,对于未包括的属性则需要通过属性节点来编程操作了。属性节点用于访问对象的属性。在某些应用程序中,可能需要通过编程使前面板对象对特定的输
  • 所需E币: 4
    时间: 2020-11-17 20:02
    大小: 749.43KB
    上传者: xgp416
    [摘要]在测试程序中采集到的数据常常需要保存到磁盘上,以供将来查阅。  1.理解文件/O  文件I/0将数据记录在文件中或者读取文件中的数据。一个典型的文件I/O操作包括以下流程,见图1。  1.创建或打开文件。通过指
  • 所需E币: 3
    时间: 2020-11-17 20:49
    大小: 526.61KB
    上传者: xgp416
    [摘要]在程序设计中,如果需要重复执行一段代码,就需要使用循环结构。接下来我们将介绍在LabVIEW中常常使用的2种循环结构While循环和For循环。  1.While循环  与文本编程语言中的Do循环类似,While循环将执行子程序框图直到满
  • 所需E币: 4
    时间: 2020-11-17 20:50
    大小: 1.36MB
    上传者: xgp416
    [摘要]程序运行过程中,经常会遇到这样的情况:程序进行某些操作时,如删除文件、放弃当前的操作、对用户操作的响应等,需要用户确认或选择后,再进行下一步的操作。使用对话框来要求用户响应是一种简单直观的方式。LabVIEW中有多种方式实现弹出对话框的功能。
  • 所需E币: 1
    时间: 2020-11-17 14:33
    大小: 29.41MB
    上传者: sense1999
    《LabVIEW编程详解》例程包
  • 所需E币: 0
    时间: 2020-11-16 23:33
    大小: 334.86KB
    上传者: stanleylo2001
    如何使用LabVIEW实现电机振动的数据分析平台资源大小:340.35KB[摘要]建立了基于LabVIEW的电机振动数据分析平台.该平台主要由频谱分析模块和时频分析模块两部分构成.通过频谱分析模块实现幅度谱、功率谱分析以及频率峰值计算;而时频分析模块可用来进行时间与频率联合分布强度的分析.将两组交流电机调速系统振动测试数据应用于该分析平台,测试结果表明:所建立的振动数据分析
  • 所需E币: 5
    时间: 2020-11-16 23:34
    大小: 3.44MB
    上传者: stanleylo2001
    LabVIEW初级教程之数据类型转换的详细资料说明 资源大小:945.36KB[摘要]在使用LabVIEW编程过程中,已有的数据类型不能满足我们进一步处理的需要,常常需要对数据类型进行转换。比如不同表示法的数值类型之间转换,或是将数据转换为字符串,以及与时间表示相关的转换等。本课程主要从不同数值表示法、数值与字符串、数值与布尔类型、与时间相关以及变体类型转换五个方面介绍LabV
  • 所需E币: 4
    时间: 2020-11-16 23:35
    大小: 712.38KB
    上传者: stanleylo2001
    LabVIEW数据采集的开发套件使用手册资源大小:712.38KB[摘要]数据采集板采集板功能介绍8路单端/4路差分模拟信号输入信号量程:±10V(量程代码1)、0~10V(信号量程9,默认)分辨率:12位转换速度:单通道100KSps,多通道=100KSps/使用的通道数;2路单端(非同步)模拟信号输出输出范围:
  • 所需E币: 4
    时间: 2020-11-16 23:35
    大小: 354.72KB
    上传者: stanleylo2001
    使用LabVIEW设计声音识别系统的资料概述资源大小:354.72KB[摘要]用LabVIEW软件设计了一种以声卡为信号采集卡的声音识别系统,并对整个系统的识别功能进行了测试,证明了该系统设计的可行性。  传统的声音识别系统复杂,成本较高,而虚拟仪器具有复用性强、系统费用低,可操作性强,易用灵活,使用方便等优点。本文设计一种基于
  • 所需E币: 4
    时间: 2020-11-16 23:36
    大小: 945.36KB
    上传者: stanleylo2001
    LabVIEW初级教程之数据类型转换的详细资料说明 资源大小:945.36KB[摘要]在使用LabVIEW编程过程中,已有的数据类型不能满足我们进一步处理的需要,常常需要对数据类型进行转换。比如不同表示法的数值类型之间转换,或是将数据转换为字符串,以及与时间表示相关的转换等。本课程主要从不同数值表示法、数值与字符串、数值与布尔类型、与时间相关以及变体类型转换五个方面介绍LabV
  • 所需E币: 0
    时间: 2020-11-17 00:11
    大小: 1.17MB
    上传者: xgp416
    LabVIEW创建数据采集和仪器控制应用程序的基本教程详细说明
  • 所需E币: 0
    时间: 2020-11-17 00:12
    大小: 1.51MB
    上传者: xgp416
    如何在LabVIEW下使用OPC详细教程说明
  • 所需E币: 5
    时间: 2020-11-6 22:50
    大小: 340.35KB
    上传者: samewell
    基于LabVIEW的电机振动数据分析平台
  • 所需E币: 0
    时间: 2020-9-22 23:07
    大小: 1.02MB
    上传者: bwj312
    基于LabVIEW的数字无线电收发信系统.pdf
广告