来源:我爱方案网
时间:2014-01-15
数据采集,是指从传感器和其它待测设备等模拟和数字被测单元中自动采集信息的过程。相应能够完成数据采集的系统被称为数据采集系统。
数据采集系统的任务,就是采集传感器输出的模拟信号转换成计算机能识别的信号,并送入计算机,然后将计算得到的数据进行显示或打印,以便实现对某些物理量的监测,其中一些数据还将被生产过程中的计算机控制系统用来控制某些物理量。
【注】一般认为上位机为主机,下位机为从机,上位机领导下位机按照上位机机的意愿工作为上位机服务;同时下位机也可以主动向上位机发出请求,上位机响应下位机并配合完成某个请求。
一、Arduino下位机部分
数据采集系统中的Arduino下位机部分采用Arduino Leonardo实验板,如图1所示。
图1 Arduino Leonardo控制板
Arduino下位机部分需要完成两个功能:数据采集和数据传输,Arduino Leonardo控制板通过串口接受上位机命令,完成相应的数据采集,并将数据回传至上位机。
数据采集分为模拟量采集和数字量采集,设置采集路数各为2路,分别采用Arduino UNO上具有模拟量输入的管脚A0、A1和具有数字量输入的管脚2、3来实现。模拟量采用接至GND、3.3V和5V来实现不同电压值,数字量采用接至5V和GND实现高电平与低电平( 如果有电位器,可以用来测量分压值。由于手头没有电位器,我这里只是简单的实现 )。
部分代码
完整代码在文章末尾处有下载。
二、LabVIEW上位机部分
串口读写的程序框图如图2所示。首先,对选择的通道的串口进行配置,然后串口写入所需要测量的通道号,等待100ms,从串口中读取Arduino下位机返回数据,后对数据进行适当的转换并显示出来。
图2 LabVIEW串口通讯小部分
LabVIEW上位机前面板设计如图3所示。
图3 LabVIEW上位机前面板
LabVIEW上位机程序框图如图4和图5所示,由于有2路模拟量和2路数字量,此处仅给出一路模拟量和一路数字量的程序框图。不同通道的模拟量或数字量的发送数据帧中,通道号不同;数字量与模拟量采集的发送数据帧中,命令号不同。发送数据帧中,具体的命令号和通道可以自己定义,不过需要上下位机的对应起来。
图4 模拟量采集程序框图
图5 数字量采集程序框图
三、实验与演示
通过将模拟量输入A0依次接入GND、3.3V和5V,然后点击“测量”按钮,观察面板上的仪表盘和数显框中数值的变化。 通过将数字量输入2依次接入GND和5V,然后点击“测量”按钮,观察面板上的LED灯的变化,LED亮代表高电平、LED灭代表低电平。
四、总结
在传感器等领域经常需要用到数据采集的功能,此应用实现了命令发送与数据回传功能,可以在此基础上扩展功能,对相关传感器的数据采集有一定的参考价值。
程序下载: //www.52solution.com/industrial-dl/7014