LabView串口通信
LabView通过VISA能与GPIB、USB、串口等大多数仪器总线连接。
一般的串口控制步骤是:
- 配置串口;
- 读写串口;
- 关闭串口。
配置串口
具体实例如下所示:
图下方的while循环表明,如果没有选择端口,则不可读取数据。
数据读取处理
- 首先读取数据;
- 显示出数据所描述的波形,得出单频测量模块的频率测量值;
- 用三点法得出测量频率值;
- 多周期计数法计测量脉搏信号;
- 对测量所得数据处理及显示。
1. bytes at port确定字节数
这个组合的功能是,读取VISA串口已有的全部数据。组合的前面,是 VISA 串口字节数,函数路径见上图。bytes at port 利用一个读取缓冲区字节数,读取到字节数,确定了 VISA要 读取的字节数,然后再通过读取 VISA 读出来。简而言之,前面的先侦测下串口缓冲区有多少数据,侦测完后告诉 VISA 读,VISA就全读出来。
2.Build Waveform
读取数据后波形出来是个簇,包含三个分量:Y是波形数据,dt是时间间隔。
构建波形后,通过后面的测量模块可得到脉搏测量频率。
3.延时模块
此部分是为了释放电脑核心,一个循环会占用CPU的一个核心,如果不加掩饰,配置低的电脑容易卡死。
4.交流电路参数测量——三点法
这里采用时域方法——三点法处理。
三点法:建立在三角函数变换基础上的数据拟合方法。
- 假设被测函数是正弦函数,在等间隔采样的前提下(包括非整周期采样)可以利用相邻3个数据样本,导出求解信号频率的线性方程,进而拟合出方程系数,最后求出频率。
- N个样本,最小二乘法拟合可以得到一个较准确的cosθ。
- 函数:Linear Fit Coefficients。
一言以蔽之,取数组里面的3个数,将数1和数3相加,其作为曲线拟合的X,再把数2乘2作为曲线拟合的Y,得出斜率后,再做反余弦,反余弦后乘缩小100(采样频率)的两倍π,最后得出结果。
5.交流电路参数测量——多周期计数法产生方波信号
采用多周期计数法,可以采用阈值法,将脉搏信号转化成方波信号,再进行后续处理。
数组的数量为for循环的次数,而后均值与数组中的数做比较,均值若大于数组中数则输出布尔值T,否则为F,从而后构建成方波信号。
6.交流电路参数测量——多周期计数法判断信号开始结束
多周期计数法还需要判断一个周期的开始和结束,可采用过零法和阈值法,此例采用阈值法。若数组相邻索引值正好构成一个周期内的方波信号,则给选择结构的条件为真,输出索引数据,反之输出0。
7.交流电路参数测量(4)
- 数组索引的数相即为最终采样数据,相邻两个样本的差值即为当前周期的样本数,乘以采样周期,再取倒数,即为一个周期内的样本数。
- 然后取多个周期,再取均值,即作为最后的频率测量值。
m个周期的均值:
- 每分钟脉搏次数 = 脉搏频率 × 60s。
8.结束程序
因为整个程序有两个循环,但只有一个结束按钮,如果直接挂局部变量,会报布尔动作的错误,所以采用此种形式。
关闭串口
关闭串口,即通信结束。
整体展示
- 前面板
- 后面板
此程序整体采用顺序结构,把演示放在帧里还有一个好处是,循环开始时,先延时在开始后面循环里的程序。
END!