VISA是新一代仪器I/O标准,作为通用标准,VISA具有与仪器硬件接口和具体计算机无关的特性,即VISA是面向器件功能,而不是面向接口总线的,控制RS232等仪器时不必考虑接口总线类型。在LabVIEW 中利用VISA节点进行串行通信编程。为了方便用户使用,LabVIEW将这些VISA节点单独组成一个子模块,共包含8个节点,分别实现初始化串口、串口写、串口读、中断以及关闭串口等功能。

一、基本步骤  在LabVIEW 中,进行串口通信的基本步骤分为3步:

第一:串口初始化,利用ⅥSA Configure Serial Port.vi【VISA配置串口】节点设定串口的端口号、波特率、停止位、校验位、数据位。

第二:读写串口,利用VISA Read节点和VISA Write节点对串口进行读写。

第三:关闭串口,停止所有读写操作。

二、主要节点介绍  下面介绍一下VISA串口的主要节点及其功能:

1、串口配置  该节点主要用于串口的初始化,如图1所示。

图1 串口配置节点

VISA资源名称:指PC的串口名,例:COMl,COM2等。 波特率:串口速率,默认为9600bps。  数据比特:一帧信息中的位数,LabVIEW 中允许5~8位数据,默认为8。 奇偶:奇偶校验位,可选为无校验、奇校验或偶校验,默认为无校验。
 停止位:一帧信息中的停止位的位数,可选为1位、1.5位或2位。 流控制:设置传输机制使用的控制类型,可选为None、XON/XOFF软件流控或RTS/CTS硬件流控,默认为None。
  终止符:设置一帧数据的结束符,即当接收串口数据时,当收到终止符时,软件自动结束一帧数据接收。  特别需要注意的是超时(TIMEOUT) 
和结束符号两个参数.TIMEOUT默认的10秒,结束符号默认是使能状态,默认的结束符是0X0A(\n),另外,回车0x0D (\r)
也经常做为做为结束符号
  2、串口写入【从写缓冲区中写数据至visa资源名称指定的串口】
    该节点主要用于写入串口数据,如图2所示。


                                                                 图2 串口写入节点

写入缓冲区:串口发送的内容。  3、串口读取【从visa资源名称指定的串口中读数据至读缓冲区】
 该节点主要用于读取串口中的数据,如图3所示。
 
                                                                   图3 串口读取节点

字节总数:要读取的字节数量。 读取缓冲区:PC
串口收到的数据。  返回数:实际读取的字节数,字节总数应大于或等于返回数,否则会丢数。 4、串口关闭  该节点主要用于关闭已打开的串口,释放串口资源,以便串口被其他程序所调用,
如图4所示。


                                                                      图4 串口关闭节点

三、典型串口程序框图  按照串口编程的3个基本步骤,图5和图6给出了两个典型的
串口读写程序框图。图5为读取的字节数为固定值,图中为4个字节,
如果串口中数据字节数目不
等于4个字节则会出错。图6则是先判断出串口中数据的字节数目,然后将其全部读取出来。相对而言,图6的通用性更好,但是出错的概率也会增大,因为不知道串口发来的数据是否与我们所需要的数据的字节数相等。

  
                                                                             图5 典型串口读写程序框图1


                                                          图6 典型串口读写程序框图2

Labview-浅谈Labview中VISA的设计相关推荐

  1. 激活函数设计vhdl_浅谈神经网络中激活函数的设计

    激活函数是神经网络中非线性的来源,因为如果去掉这些函数,那么整个网络就只剩下线性运算,线性运算的复合还是线性运算的,最终的效果只相当于单层的线性模型. 那么,常见的激活函数有哪些呢?或者说,激活函数的 ...

  2. c语言游戏人物结构buff,浅谈游戏中BUFF的设计要点

    from http://www.gameres.com/msg_225241.html 其实这类帖子并没有多少的设计理论,对于策划的提升和帮助也并不大,原因其实在于其适用性太窄,当我要设计XX象棋的时 ...

  3. 浅谈Java中的Set、List、Map的区别

    就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是想对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操 ...

  4. 浅谈数据分析中的“暗物质”

    浅谈数据分析中的"暗物质" 我们分析数据,更重要的是看到数据中所隐藏的暗物质,即数据图中你看不见的数据\逻辑\知识. 开门见山,以下是某新闻媒体WAP\APP\PC三端的分周中和周 ...

  5. 【网摘】 浅谈HTTP中GET与POST的区别

    文章出处:http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html 浅谈HTTP中Get与Post的区别 Http定义了与服务器交互的不 ...

  6. 视频基础知识:浅谈视频会议中H.264编码标准的技术发展

    浅谈视频会议中H.264编码标准的技术发展 浅谈视频会议中H.264编码标准的技术发展 数字视频技术广泛应用于通信.计算机.广播电视等领域,带来了会议电视.可视电话及数字电视.媒体存储等一系列应用,促 ...

  7. python中gil锁和线程锁_浅谈Python中的全局锁(GIL)问题

    CPU-bound(计算密集型) 和I/O bound(I/O密集型) 计算密集型任务(CPU-bound) 的特点是要进行大量的计算,占据着主要的任务,消耗CPU资源,一直处于满负荷状态.比如复杂的 ...

  8. 浅谈C#中的延“.NET研究”迟加载(2)——善用virtual

    之前的文章"浅谈C#中的延迟加载(1)--善用委托"中介绍了三层结构中在Model层对实体类的属性实现延迟加载的方法,该方法利用C#中的委托来实现,最后虽然延迟加载的目的得以实现, ...

  9. 浅谈ipad阅读类应用设计

    自古以来,人们从阅读中了解最新资讯,学习知识,陶冶情操.随着社会和科技的发展,新的阅读设备,阅读方式,丰富的多媒体展示,让阅读这一人类行为更加高效化和多样化.对于平板电脑这个较新的媒介,我们如何能进一 ...

  10. 单一修改高程值lisp_浅谈AutoCAD中修改高程的四种方法

    浅谈 AutoCAD 中修改高程的四种方法 摘 要: 在使用 AutoCAD 进行数字化成图工作中,经常遇到线划的标高不为零,及高程点的值与实地不符,需要对其进行修改等情况,结合实 际工作经验,简单介 ...

最新文章

  1. Planetary.js:帮助你构建超炫的互动球体效果
  2. 顺序表-有序顺序表表示集合-并集(两者比较,小者放入C,未遍历继续放入)
  3. Provider 错误 '80004005' 未指定的错误 的最终解决方法
  4. JavaScript 工作原理(一):引擎,运行时,调用堆栈
  5. boost::geometry::model::multi_point用法的测试程序
  6. 后端需要掌握的技术_何小伟:软件测试需要掌握的技术?
  7. 计算机c盘隐藏了怎么办,win7怎么隐藏c盘 win7c盘被隐藏了怎么解除
  8. 来自.NET FM的感谢信
  9. mysql sphfiks_使用sphinx索引mysql数据
  10. lambda List实现某列去重的解决方案采用扩展方法
  11. java rx_史上最浅显易懂的RxJava入门教程
  12. ASP.NET ZERO 学习 JTable的使用
  13. 一套C#图书管理系统源码 书籍借还登记统计系统源码
  14. matlab 第二版 赵元哲 下载,基于MATLAB的黑盒电路仿真设计及应用
  15. AI根据代码内容可自动起函数名
  16. Titan XP值不值?一文教你如何挑选深度学习GPU
  17. javascript中caller与callee的作用以及用法
  18. NewLife使用心得
  19. fatal:unable to create “D:/“ file existsanother git process seems to be running in this repository
  20. 微软零信任用户访问架构解读

热门文章

  1. ThinkPad L440 FN键设置
  2. Jsp登录后数据采集---奇怪的Apache服务器
  3. 认识一下Global.asa 文件
  4. css学习笔记3--灵活的背景定位
  5. 史上最正确的achemy安装方法
  6. ngx_lua_API 指令详解(一)ngx.timer.at 指令
  7. Android .9.png图片的处理
  8. CListCTrl控件排序(一)
  9. Delphi字符串函数Delete
  10. Rexsee API介绍:Android传感器系列之 - 磁场传感器Magnetic Field源码