您的位置 首页 电子

LabVIEW串口的编程-运用LabVIEW体系VI

第一部分使用LabVIEW系统VI一、串口VI介绍LabVIEW的串口通讯VI位于InstrumentIOPlatte的Serial中,包括:VI名称VI功能VISAConfigure

榜首部分运用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、数值型数据的处理办法:

  1. 假如这些数据是静态的,也就说在程序设计阶段要传输的数据就现已确认了,在这种情况下,首要设置VISA Write的write buffer的显现特点为Hex Display,然后直接输入要发送的16进制字符串就能够了。串口设备的操控指令通常是由一个或多个16进制字符组成的,当咱们需求对其进行操控时经常会选用这种办法发送操控指令。
  2. 数据是动态的;即要传输的数值型数据是动态发生和改变的,在发送之前首要要将其转化成对应的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不能运用中止办法传输。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/dianzi/211155.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部