LabVIEW实现接受串口数据并绘制波形的上位机

PC版本:Win10家庭版
LabVIEW:LabVIEW2018

最近学LabVIEW的时候,用LabVIEW搭建了一个可以接受串口数据并显示波形的上位机,在这里分享一下。

搭建步骤如下:

1、连接串口

串口连接到电脑上后,会在设备中显示出来
『设备图』

2、搜索串口

我们需要在LabVIEW的控件中添加VISA资源名称来搜索到串口资源
『VISA』

3、配置串口的参数

调用“VISA配置串口”函数进行配置
LabVIEW实现接受串口数据并绘制波形的上位机_第1张图片

4、读取缓存区字节数

因为只需要接受到串口发送过来的数据即可,这里只介绍数据接受部分。
单片机通过串口发送数据到LabVIEW上后,可以理解为数据储存在一个缓存区中,我们通过属性节点访问中该缓存区中接受到的字节数,当字节数大于0时,意味着我们可以读取缓存区中数据,缓存区中数据一经读取就不会出现在缓存区了。
调用属性节点,选择Bytes at Port
LabVIEW实现接受串口数据并绘制波形的上位机_第2张图片
添加一个布尔输入控件,命名为“开始接受”,当字节数大于零且按下该按钮时,开始接受数据,否则不接受数据,于是需要添加一个条件结构
LabVIEW实现接受串口数据并绘制波形的上位机_第3张图片
我们先讨论条件为真的情况,此时缓存区中有一定数量的字节。我们需要用到读取VISA函数去读取它们,读取字节数可以从Bytes at Port中得到
LabVIEW实现接受串口数据并绘制波形的上位机_第4张图片

5、拼接读取的字符串

如果串口接受到了很长的一个字符串,那么我们使用“读取VISA”时,可能出现仅读取了部分字节的情况,所以我们需要将它们拼接到一起。或者我们想将所有接受到的字符都显示在屏幕上,也需要使用字符串拼接函数将接受到的数据同以往接受的数据连接起来。
在拼接的时候,我们需要使用反馈节点将上次循环中的字符与此次循环接受到的字符串拼接起来。
LabVIEW实现接受串口数据并绘制波形的上位机_第5张图片

6、从字符串中获取整型数据

我们这里期望接受的是从串口传输过来的整形数据,并显示在波形图表上。于是需要在每接受到一个整形数据后,将反馈节点置为空字符串。
我们需要先简单自定义一个整型数据传输的格式,这里我定义的是:每个整型数据,如123,转化为字符串“123”进行传输,且每个字符串以转义字符’\n’结束。
显然每次检测到’\n’,就意味着接受到了一个整型数据。
LabVIEW中提供了一个字符串替换函数,可以将字符串中某个字符替换成其他字符,这里使用该函数用空字符替换’\n’,替换后,函数返回去掉’\n’的字符串(因为用空字符,相当于删除’\n’),并返回替换个数。
LabVIEW实现接受串口数据并绘制波形的上位机_第6张图片
当替换个数大于0时,说明接受到的字符串中含有’\n’,说明接收到了一个整型数据。
当替换个数等于0时,说明接受到的字符串中没有’\n’,说明没有接受到完成的整型数据,继续拼接字符串。
LabVIEW实现接受串口数据并绘制波形的上位机_第7张图片
LabVIEW实现接受串口数据并绘制波形的上位机_第8张图片
当接受到一个整型数据后,使用“十进制数字字符串至数值转化”函数,将“123”这样的字符串转化为整数123,然后输入波形图表,即可显示出整型数据。

7、结果演示

这里采用正点原子的mini板发射串口数据,主要语句如下:
LabVIEW实现接受串口数据并绘制波形的上位机_第9张图片
接受的波形如下:
LabVIEW实现接受串口数据并绘制波形的上位机_第10张图片

你可能感兴趣的:(LabVIEW实现接受串口数据并绘制波形的上位机)