当前位置:首页 > 测试测量 > 测试测量
[导读]第一部分使用LabVIEW系统VI 一、串口VI介绍 LabVIEW的串口通讯VI位于Instrument I/O Platte的Serial中,包括:VI名称VI功能VISA Configure Serial Port初始化VISA resource name指定的串口通讯参数VISA Write将输出

第一部分使用LabVIEW系统VI


一、串口VI介绍
LabVIEW的串口通讯VI位于Instrument I/O Platte的Serial中,包括:

VI名称VI功能VISA Configure Serial Port初始化VISA resource name指定的串口通讯参数VISA Write将输出缓冲区中的数据发送到VISA resource name指定的串口VISA Read将VISA resource name指定的串口接收缓冲区中的数据读取指定字节数的数据到计算机内存中VISA Serial Break向VISA resource name指定的串口发送一个暂停信号VISA Bytes at Serial Port查询VISA resource name指定的串口接收缓冲区中的数据字节数VISA Close结束与VISA resource name指定的串口资源之间的会话VISA Set I/O Buffer Size设置VISA resource name指定的串口的输入输出缓冲区大小VISA Flush I/O Buffer清空VISA resource name指定的串口的输入输出缓冲区

二、使用说明
在LabVIEW环境中使用串口与在其它开发环境中开发过程类似,基本的流程框图如下。

图1、串口操作数据流图

首先需要调用VISA Configure Serial Port完成串口参数的设置,包括串口资源分配、波特率、数据位、停止位、校验位和流控等等。

图2、初始化串口

如果初始化没有问题,就可以使用这个串口进行数据收发。发送数据使用VISA Write,接收数据使用VISA Read。在接收数据之前需要使用VISA Bytes at Serial Port查询当前串口接收缓冲区中的数据字节数,如果VISA Read要读取的字节数大于缓冲区中的数据字节数,VISA Read操作将一直等待,直至Timeout或者缓冲区中的数据字节数达到要求的字节数。当然也可以分批读取接收缓冲区或者只从中读取一定字节的数据。

图3、从串口发送数据 图4、从串口接收数据

在某些特殊情况下,需要设置串口接收/发送缓冲区的大小,此时可以使用VISA Set I/O Buffer Size;而使用VISA Flush I/O Buffer则可以清空接收与发送缓冲区。在串口使用结束后,使用VISA Close结束与VISA resource name指定的串口之间的会话。

图5、设置缓冲区大小图6、 清空缓冲区图7、结束会话/线程

具体的例子可以参考:examplesinstrsmplserl.llb。

第二部分使用MSCOMM控件
在LabVIEW中使用MSCOMM控件,与在VC、VB中使用一样。同样可以使用中断方式进行接收。

图8、使用控件的串口收发程序

图9、程序数据流图

首先通过LabVIEW的工具菜单“Tools >> Advanced >> Import ActiveX Controls”将Microsoft的串口控件-“Microsoft Communications Control,version 6.0”添加到LabVIEW环境中,存放在缺省路径即可,这样在User Controls Palette里面可以找到这个控件。

图10、添加ActiveX控件菜单

图11、选择添加用户控件

图12、用户控件
将串口控件放置在Front Panel上,在框图程序中用控件属性对其进行编程,实现所需要的功能。
注意:一个串口资源要有一个MSCOMM控件与之相对应。[page]

第三部分 注意事项
一、串口通讯的波特率设置要精确,比如要求9600的波特率,则晶振应选择11.0593MHz或其倍数。

二、由于通常情况下LabVIEW串口VI接收或发送的都是字符串(Normal),所以如果需要发送或接收十六进制数值(Hex),请在发送或接收之前进行必要的转换。

2.1、数值型数据的处理方法:

如果这些数据是静态的,也就说在程序设计阶段要传输的数据就已经确定了,在这种情况下,首先设置VISA Write的write buffer的显示属性为Hex Display,然后直接输入要发送的16进制字符串就可以了。串口设备的控制命令通常是由一个或多个16进制字符组成的,当我们需要对其进行控制时经常会采用这种方法发送控制命令。数据是动态的;即要传输的数值型数据是动态产生和变化的,在发送之前首先要将其转换成对应的16进制字符串,才能赋给VISA Write发送。将这些数据构成一个数组,用Byte Array To String进行转换,转换的结果就是对应数组数值的字符串,可以提交VISA Write发送。或者使用Type Cast也可以实现同样的功能。


图13、串口数据转换界面

图14、 串口数据转换数据流图

图15、操作界面

图16、单片机C程序

2.2、字符串型数据的处理方法:
我们在处理过程当中,传输的数据可能具有一定格式或协议,比如一个完整的数据帧包括起始段、数据段、校验段等等,而每一段往往又有几个部分组成,这几个部分的类型和长度可能又不尽相同,可能是数值型的,可能是字符型的,也可能是布尔型的,单字节或者是多字节。此时我们往往都采用统一的字符形式来处理这些数据,因此有时候我们说,字符是LabVIEW里最方便的数据类型。

经过打包的字符数据要经过串口发送需要进行必要的转换,否则传输将出错。比如我们打包过后需要发送的的字符串为:34 12 56 78 94(空格为了区分),如果直接将其赋给VISA Write发送,串口上的数据将是:33 34 31 32 35 36 37 38 39 34。正确的转换程序如下。

图17、字符型数据处理

数据接收:
从计算机串口接收到的数据是16进制的ASCII码,要转换成对应的数值型数据,可以使用String To Byte Array或者Type Cast。

三、LabVIEW串口VI不能使用中断方式传输。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

NI提供的软件包经济省时,不仅帮助开发人员节省时间,还为创客提供了新的机遇

关键字: LabVIEW 自动化测试系统

学好电子技术基础知识,如电路基础、模拟电路、数字电路和微机原理。这几门课程都是弱电类专业的必修课程,学会这些后能保证你看懂单片机电路、知道电路的设计思路和工作原理;

关键字: 单片机 编程 电路设计

单片机编程需要使用专门的软件工具,这些工具能够帮助程序员编写、调试和烧录程序到单片机中。以下是一些常用的单片机编程软件:

关键字: 单片机 编程 软件工具

串行通信需要传输的数据通过调制器(Modulator)将数据转换为模拟信号,经过信号调制(Modulation)后在传输线上传输,接收端通过解调器(Demodulator)将信号解码还原成原始数据。

关键字: 串口 串行通信 并行通信

强大的图形化编程工具使整个测试和测量过程的各个方面实现可视化

关键字: LabVIEW 图形化编程工具

Java语言和C语言是两种不同的编程语言,它们在语法、特性和应用领域上有许多差别。下面将详细介绍Java语言和C语言之间的差异以及它们各自的技术特点。

关键字: Java语言 C语言 编程

嵌入式系统是现代生活中无处不在的一部分。它们包括了我们的家电、汽车、智能手机、医疗设备等等。这些系统的工作必须高效、可靠,因为它们往往控制着生活中的关键方面。而C语言作为一种广泛用于嵌入式系统开发的编程语言,其质量和稳定...

关键字: 嵌入式系统 C语言 编程

在嵌入式系统开发领域中,C语言是使用最广泛的编程语言之一。它具有高效、灵活和可移植的特点,成为嵌入式系统设计师的首选语言。本文将介绍C语言编程的基本概念、特点以及在嵌入式系统开发中的应用。

关键字: 嵌入式系统 C语言 编程

在编程和计算中,运算符优先级是解释和计算表达式的一个关键因素。本文旨在阐述运算符优先级的概念、规则及其在表达式中的应用,以帮助读者更好地理解和运用运算符优先级。

关键字: 表达式 运算符 编程

泰克科技组合软件总经理Rick Khulman:“激发孩子们——尤其是女孩们对STEM的兴趣,对我本人乃至广大工程界都至关重要。”

关键字: 编程 机器人 示波器
关闭
关闭