LabVIEW串口通信

  • Instrument I/O

  利用LabVIEW内置的驱动程序库和具有工业标准的设备驱动软件,可对 GPIB(通用接口总线)、Ethernet(以太网)接口、RS-232(标准串行接口总线)/RS-485 等 I/O 仪器设备进行控制。在LabVIEW的仪器I/O子模板上提供了多种图标可对各种I/O仪器设备进行驱动。

  在LabVIEW功能模板的Instrument I/O→Serial中包含进行串行通信操作的多个功能模块,如下图所示,分别可实现串口缓存检测、串口写、串口读、中断、串口设置、关闭串口驱动等功能。

  利用计算机的RS-232串行口,实现双机通信的硬件连接线路如下图所示,图中采用的是最简单的三线制连接方式。TxD 为发送数据端,RxD 为接收数据端,GND 为接地端。

  • VISA 

  VISA是Virtual Instrument Software Architecture的简称,是由组成 VXI plug & play 系统联盟的 35 家最大的仪器仪表公司所统一制定的 I/O 接口软件标准及其相关规范的总称。一般称这个 I/O 函数库为 VISA 库(用于仪器编程的标准 I/O 函数库)。VISA 函数库是计算机与仪器之间的标准软件通信接口,用以实现对仪器的程控。VISA对于测试软件开发者来说是一个可调用的操作函数集,本身并不提供仪器编程能力,它只是一个高层 API,通过调用低层的驱动程序来控制仪器。NI-VISA 的层次结构如下图所示:

  VISA是整个仪器行业用于仪器驱动程序的标准 API ,用户可以用一个 API 控制包括 VXI、GPIB、RS-232 串口、USB(通用串行通信总线)串口等不同类型的仪器(根据所使用的仪器类型调用相应的驱动程序)。使用 VISA 有许多优点,它方便用户在不同的平台对不同类型的仪器进行开发移植及升级测控系统。

  1. 大多数的VISA功能模块使用了VISA resource name控制参数,该参数标识了与之通信的设备名称以及进行I/O操作必须的配置信息。MAX可用于配置VISA资源名称。

  2. 使VISA资源名称指定的串口按特定设置初始化。具体信息可参考LabVIEW的帮助文档

  3. VISA Write 模块把write buffer中的字符串(命令或数据)写入VISA Resource Name端参数指定的设备。return count返回实际传送的字节数。error in 和 error out 字串包含出错状况。

  4. VISA Read函数读取由 VISA Resource Name指定设备中的数据。byte count 指明读入 read buffer 中的字节数。

  5. VISA Bytes at Serial Port返回指定串口的输入缓冲区的字节数。

  6. 打开与 VISA 资源的会话连接也会占用计算机的系统资源,因此当VISA 程序结束时,必须关闭所有打开的会话通道。LabVIEW 为此提供了VISA Close函数。该函数关闭由 VISA Resource Name 端参数指定的设备的通信过程,释放 VISA Session占用的计算机系统资源。

  •  一个简单的串口通信程序

  在定时模块中找到等待(ms)子模块,放置在while循环中进行延时。等待指定长度的毫秒数,并返回毫秒计时器的值。计时器的精度由系统确定,依据使用平台的不同,精度有可能低于1毫秒。

  添加布尔类型的确定按钮和停止按钮,更改属性为“保持转换直到释放”,即按下去的时候会变true,释放会变false

  添加4个数值常量:编程(Programming)→数值(Numeric)→ 数值常量(数值常量(Numeric Constant),值分别为9600(波特率:波特率定义为每秒钟传送二进制数码的位数,以位/秒(bit/s)为单位,亦称“波特”。)、8(数据位)、0(校验位,无)、10(对应停止位1)。

  添加一个比较函数,将输入缓冲区的字节数与0比较,只有当串口接收缓冲区的数据个数不等于 0 时,才将数据读入到接收区。

  注意在条件结构(case structure)的false条件下也要接好到VISA Close模块的线,否则会出错。

  将全部模块连接好之后,点击运行按钮。如果运行程序发现弹出如下错误,说明没有安装VISA驱动,可以在这里下载合适的VISA驱动程序。

  装完后可以打开NI MAX,在软件这个模块下可以查看目前已经安装的一些软件,可以看到NI-VISA已经装好。NI MAX即NI的配置管理软件(Measurement & Automation Explorer),主要用来配置管理本机和远程系统上的各种软硬件资源。它可以执行系统诊断,添加新的通道、接口和虚拟通道,还可以查看连接在系统上的设备和仪器。

  再次运行还是弹出了错误,如下图所示。网上查找了相关原因和解决方法,很可能是由于串口被占用导致。按照网上的方法通过删除注册表中的一个数值项来清除串口配置:在“运行”对话框中输入“regedit”进入注册表;然后进入HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter这时我们可以找到该数值项:ComDB,它的值代表目前使用中的串口端号。比如1d,它的二进制:0001 1101,则从右往左数代表第1,3,4,5端口被占用。这样我们只需要把ComDB这个数据项删除,关闭注册表(不用重启电脑)即可。然后在设备管理器中通过串口“属性”中的“高级”来重新配置端口的编号。

  将USB转串口线的RXD和TXD接到一起进行单机测试,如下图所示,在发送区写入字符串"hello,world!"之后点击发送字符按钮发送,接收区会显示发送的字符串。

参考:

LabVIEW 串口仪器控制——VISA 驱动下载安装

NI配置管理软件MAX的一些功能使用介绍

LabVIEW关于定时的研究

labview新手入门

时间: 2024-08-27 15:32:04

LabVIEW串口通信的相关文章

LabVIEW串口通信的一个例子-串口"示波器"

1.程序界面:<ignore_js_op> 功能介绍:左边上方串口接收区,下方为串口字符发送区.右方为一个波形图表,在程序内部每次将串口发送过来的数据,以f%格式化,显示在波形图表上.按钮介绍:从左至右依次,发送按钮:清除计数按钮:打开/关闭串口按钮:清除接收区数据:清除波形图表:保存波形:退出程序. 2.主程序框图: 主程序框图介绍:主程序框图主要由3个状态组成:程序的初始化,程序事件的响应,程序的退出. 状态Init:程序初始化,主要把OpenCom等按钮,串口状态,串口接收字符串,波形图

LabVIEW上位机与串口通信

渊源 大一的时候,学校开了门公共选修课,叫LabVIEW编程,当时的我当然还不知道LabVIEW是啥东东,但还是选了.上课的老师是机械学院的一个副教授,他给我们展示了好几个用LabVIEW做的项目,譬如油箱监控上位机等,已经不太记得了.后来随着学习单片机.ARM等的串口操作,有时候一个漂亮的上位机(尤其是能显示波形的上位机)在项目中给用户展示非常的有用.过了这么多年,虽然曾经也用LabVIEW写过简单的温度监控上位机,但这次再拿起LabVIEW又好像从头开始一样,语法几已忘记殆尽! 定义通信格式

labview与单片机串口通信

VISA是虚拟仪器软件体系结构的缩写(即Virtual Instruments Software Architecture),实质上是一个I/O口软件库及其规范的总称. VISA是应用于仪器编程的标准I/0应用程序接口,是工业界通用的仪器驱动器标准API(应用程序接口),采用面向对象编程,具有很好的兼容性.扩展性和独立性.用户可用一个API控制包括VXI.GPIB及串口仪器在内的不同种类的仪器.它还支持多平台工作.多接口控制,是一个多类型的函数库. 在LabVIEW中编写的VISA接口程序,当外

小草手把手教你LabVIEW串口仪器控制—安装使用仪器现有驱动

声明:很多仪器是没有驱动的.所以,具体问题具体分析. 另外声明:所谓的驱动,也就是封装好的底层的串口通信程序,也是程序而已,只不过别人帮你做成了子 VI,让自己容易用. 所以:不要弄混淆了概念. 国外的很多仪器,都是有现成的 LV 程序驱动的,这个时候,我们到网上搜搜就行了.如果你要做仪器驱动,你最好先到网上搜搜,看有木有现成的.有现成的,开发速度就好多啦.如果手边的仪器搜不到现成的驱动,那就只能自己写了. 下面讲解怎么安装现成的驱动.①,网站下载篇,前面这个帖子讲了.http://bbs.el

小草手把手教你 LabVIEW 串口仪器控制——初识VISA串口

有些人,学习一样东西时候,喜欢现成的例子.很多人学习一门技术,都喜欢现成的例子开始,比如学单片机的啊,最开始都是修改的例子吧,学语言的也是.最开始都是模仿. 这个年头看书上的理论知识太浪费时间了.所以啊,很少人买个手机还去看手机说明书,或者买个电脑,看电脑说明书一样. 事实上,学习 LabVIEW 的人有福了.因为例子很多,而且到处都是,应接不暇,还是免费的-- 我的观点是:LabVIEW 自带的范例写的很好.大家看看范例,就很方便大家学习和理解了.不要去找很多相关的资料,又不是写论文需要达到多

[VISA]实现PC与外设串口通信功能

简述 串口通信是使用非常广泛的通信协议之一,一般都是指的RS232,一般PC都会支持串口的,对于速度要求不是特别高的,用串口来通信相对比较简单,而且成本也很低. 关于RS232 RS232常见的9针串口接口,其电平其实是-15V和15V的,-15V貌似表示数据1,而15V表示数据0.而一般单片机的UART接口是使用的TTL电平,0表示低电平,1表示高电平.因此单片机的UART和PC的RS232之间需要有一个转换,有许多成熟的IC可以使用.RS232的通信协议也相对简单. 关于VISA LabVI

51单片机之串口通信(三)

51单片机之串口通信(三) 已有 47 次阅读2015-12-29 00:21 |个人分类:51单片机| 单片机, 通信 用串口实现发送和接收同时可操作: 电脑显示结果如图: 源程序: /*项目名称:串口发送接收实验项目内容:串口发送接收同时进行,计算机发送数据给单片机控制P0口,从而控制LED灯的亮灭,单片机发送数据到计算机,计算机显示出来时间:2015年12月23日项目负责人:YUAN*/#include <reg52.h>typedef unsigned char uChar8;type

(转载)用vs2010开发基于VC++的MFC 串口通信一*****两台电脑同一个串口号之间的通信

此文章以visual C++数据採集与串口通信測控应用实战为參考教程 此文章适合VC++串口通信入门 一.页面布局及加入控件 1, 安装好vs2010如图 2, 新建一个基于VC++的MFC项目comm 注意:点击ok,然后next,这时候要将application type改成dialog base.接着next到最后一个对话框是将generated dasses改成CcommDlg,然后finish 4, 将新生成的项目的对话框默认dialog edit删去,如图 5,在对话框中加入两个st

嵌入式Linux裸机开发(七)——UART串口通信

嵌入式Linux裸机开发(七)--UART串口通信 一.UART串口通信简介 通用异步收发器简称UART,即UNIVERSAL ASYNCHRONOUS RECEIVER AND TRANSMITTER, 它用来传输串行数据.发送数据时, CPU 将并行数据写入UART,UAR按照一定的格式在一根电线上串 行发出:接收数据时, UART检测另一根电线的信号,将串行收集在缓冲区中, CPU 即可读取 UART 获得这些数据. 在 S5PV210中, UART提供了 4 对独立的异步串口I/O端口,