使用LabVIEW编写简单串口采集程序

时间:2024-03-12 22:16:13

1 LabVIEW版本

使用版本为2018版,使用硬件接口需安装VISA驱动

2 需要实现的功能

设计程序,将串口接收的指定帧头帧尾的数据接收,并提取有效数据位,将数据转为电压值实时显示,并可保存为文本文件。

数据帧格式:

使用LabVIEW编写简单串口采集程序

3 界面设计

左边是一个接受开关,以及串口的一些设置,左下方是保存路径选择及保存按钮。中间上方实时显示单次接收的数据,为一维数组,下方是累计接收的数据。为二维数组。界面右侧实时显示数据计算出的电压值。

使用LabVIEW编写简单串口采集程序

4 程序设计

4.1 串口设置

首先设置串口,器件:仪器IO-串口-VISA配置串口,添加串口号、波特率等不多说。

使用LabVIEW编写简单串口采集程序

之后创建一个while循环,把串口关闭放在循环外,其他程序都写在while循环内,循环的条件是串口开关控件ON

注意:在while中需要加入延时,给程序处理时间,否则会乱码。延时时间视情况而定。

使用LabVIEW编写简单串口采集程序使用LabVIEW编写简单串口采集程序

在串口配置后需要添加一个VISA属性节点,具体原因俺也不知道。之后创建一个判断条件,VISA属性节点字节输出不为0,即接收到数据时触发“真”,进行之后的读取与处理。之后是一个串口读取器件。

使用LabVIEW编写简单串口采集程序

4.2 接收实时显示

使用字符串转字节数组,创建显示控件,可显示单次接收到的数据帧。通过创建数据,添加反馈回路可以创建二维数组显示总接受数据帧。

使用LabVIEW编写简单串口采集程序

4.3 有效数据帧判断

有效数据帧的帧头和帧尾都是固定的,使用数组索引对一维数据进行元素查询,我收到的数据帧格式为0x55 0xAA 0xXX 0xXX 0x55 ,故使用多输入与器件对数组的第0,1,4个元素进行判断,若全部相等,则说明接收到完整数据帧。

注意:图中55 AA 55为16进制显示。

使用LabVIEW编写简单串口采集程序

4.4 计算,实时显示电压值

把数据位的高八位乘以256再加上第八位得到AD采样值,使用的是12位AD故除以2的12次方再乘以参考电压3.3V得到测量电压。这一部分跟好懂,不阐述

使用LabVIEW编写简单串口采集程序

4.5 创建,保存文本文件

使用LabVIEW编写简单串口采集程序

5 测试

使用虚拟串口创建一堆串口,设置好串口参数,勾选16进制发送。没毛病。

注意:两个数组显示控件都设置为十六进制显示

使用LabVIEW编写简单串口采集程序使用LabVIEW编写简单串口采集程序 

6 结尾

使用LabVIEW编写简单串口采集程序

运行前需打开开关控件,运行的时候别关开关控件。我是菜鸡,程序有bug正常,源码很简单,第一次发帖大家骂轻点。