通 用 数 据 采 集 系 统
摘要:本文介绍了具有通信功能的数据采集系统,并重点介绍了通信程序设计,给出了部分程序框图。
关键词:数据采集 ; 串行通信 ; 数据处理
数据采集系统过去在DOS操作系统下一般是采用C语言或汇编语言开发制作。随着WINDOWS操作系统的普及应用,数据采集、工业控制等软件的开发也上升到WINDOWS环境下。可视化软件开发平台的出现,为软件开发提供了强大的图形界面功能,使得开发出来的各种应用软件具有良好的人机交互功能。本系统上位机采用VB开发,界面友好,下位机采用汇编语言开发,整个系统编程工作量较小,开发周期短,使用效果良好。http://www.16sheji8.cn/
1. 系统总体结构
系统组成如图1所示,包括PC计算机和单片机数据采集系统两个部分。系统以PC机为控制中心,通过在PC机中设置采集参数,然后以COM端口异步串行通信方式发送命令,单片机接到命令及采集参数后开始采集数据,采集完毕后单片机将根据上位机设定的采集点数向PC机发送现场采集到的数据,PC机经过处理后在显示器上以图形的形式显示。
另外系统可以产生多种常见信号(正弦信号、方波信号和阶跃信号),还扩展了接口,可以配备键盘、LED显示等,可增强系统的功能。
图1 系统总体框图
2. 通讯程序设计
2.1 VB环境下通讯程序的设计
MSComm控件是Microsoft提供的扩展控件,用于支持VB程序对串口的访问,该控件“隐藏”了大部分串口通讯的底层运行过程和许多烦琐处理过程,同时支持查询方法和事件驱动通讯的机制,事件驱动通讯是交互方式处理串口事务一种非常有效的方法,通过设置MSComm控件的属性,利用其方法和事件可以用很少的程序代码就可轻松实现串口的访问和数据通讯。本系统通讯协议为:数据的传输速率9600bps,1位开始位,8位数据位,1位停止位,无奇偶校验位。
.
本系统实现了误码校验功能。当上位机发送1fh、20h、18h,并接收到1fh、20h 、18h时表明无误码现象并继续进行控制;当出现误码现象时须检查初始化设置,重新设置系统或重新启动系统。
由于系统中单片机仅存在一种数据类型,即一个字节(8位)的二进制,所以上位机必须以mscomm控件的inputmode为二进制进行接收和发送,并且因为上位机中ASCII本身存在着不可见的控制字符,如果以ASCII值的方式进行接收则将简易问题搞复杂化了,在实验中发现:以ASCII值方式进行接收单片机发送的数据时,VB以每两个字节作为一个字符接收,例:41h,00h 代表A, 而非41h 代表A。为了保证数据准确发送与接收,在VB程序中只要定义一个byte型的数组,便可将问题轻易的解决。http://www.16sheji8.cn/
Dim a() As Byte
a()=mscomm1.input
同样,若要发送数据可将数据赋给数组,然后将数组内的数据送到发送缓冲区:mscomm1.output=a(),接下来单片机接收数据。可见只要定义一个byte型数组就可达到数据的准确发送与接收。
2.2 单片机通讯程序的设计
下位机程序首先采用查询的方式接收上位机命令,根据命令来选择是进入数据采集子程序还是进入信号发生子程序。进入相应的子程序后,向上位机回送接收到的命令,然后开串行中断等待接收上位机数据,如果传输正确将接收上位机传送的采集参数(采集通道、采样周期、采样点个数等)及信号参数(信号类型、信号发生通道、信号频率和信号幅值等);传输错误将关串行中断,回到主程序开始,准备接收命令。在下位机向上位机传输采集数据时,下位机同样采用中断方式将采集到的数据上传给PC机,上传字节数由PC机在采集参数中提供的采样点数决定。流程图如图2所示。
图2 下位机通讯程序流程图
3. 系统上位机程序设计
上位机程序主要分为四个模块,分别为主窗体、数据采集与分析、波形信号输出、附加功能。各模块功能概括如下:
.1 主窗体模块功能
进行系统初始化设置。包括串行端口选择、功能选择、误码校验以及系统使用提示说明。
3.2 数据采集模块功能
对采集数据进行参数设定,将设定的参数发送给单片机,单片机接收到参数后根据此参数进行数据采集,把采集到的数据上传给计算机,计算机接收到数据后,上位机产生接收中断,对接收到的数据进行控制算法处理并利用VB绘制图形的Pricture1.line(x1,y1)-(x2,y2)方法,同时为了将图形绘制的平滑,逼真、更易于观察,采用了Bizer函数曲线算法,实时地进行图形绘制与分析,并将此次采集的日期、时间和接收到数据存入数据库以备查询分析。图3为上位机数据采集与图形分析界面。
图3 上位机数据采集与图形分析界面http://www.16sheji8.cn/
3.3 波形信号输出模块功能
对输出波形信号进行参数设定,将设定的参数发送给单片机(单片机接收到参数后根据此参数进行相应的信号输出)。波形信号包括:正弦波信号、方波信号和阶跃信号。
3.4 附加功能模块功能
使用VB绘制函数曲线并可对波形信号输出模块中的输出波形进行模拟绘制。