微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 基于虚拟仪器的浊度测试系统的设计方案

基于虚拟仪器的浊度测试系统的设计方案

时间:11-09 来源:互联网 点击:

缓存、中断等功能。

  C8051F020单片机的程序采用汇编语言写成。利用汇编语言直接对相关硬件进行操作,具有开销小、效率高的特点。在编写单片机程序时应当注意的是必须保证PC机与单片机串口通信时的波特率一致。如果两者不同的话,就无法进行数据的传输而导致通信失败。所以,在单片机程序中初始化时应当根据单片机晶振和串口通信方式对寄存器进行设置。

  2软件开发

  该系统由C8051F单片机、ADC0809A/D转换器组成的小系统作为前端数据采集系统,并通过RS232串行总线将采集到的数据传送到PC机,用Lab-VIEW进行数据的接受与处理。其结构组成如图4所示。

  2.1菜单设计

  在整个程序设计中,首先完成了各子功能(子VI)的程序,将其做成单个模块,每个单个模块是由更小的模块组成,每一级的模块均刻以图标形式放置在程序流程图中,这样增加了程序的可维护性和可读性,使流程图更加清晰明了,同时避免了大量重复编程工作。系统的主界面设计中,利用LabVIEW中提供的EDITMENU菜单,先将要实现的功能作为菜单选项的内容,以便在运行时调用,然后在框图中对各项菜单的调用通过CASE循环进行选择,使各项菜单对应于各项子VI,在各子VI中visetup的executionoptions中选定showfrontpanelwhencalled选项,这样在运行中,当选择了菜单中的某些内容时,该子VI就被选中调用。图5为菜单后面板程序设计流程图。菜单中包括文件操作(读取、存储、打印)通道显示和信号分析以及帮助,程序分别调用相应功能的子VI程序,完成相应操作。下面简要介绍本采集程序中采用的几个典型模块。

  2.2数据采集模块设计

  本设计采用VISA编写仪器控制程序,程序在运行时VISA就会根据实际接口类型自动调用相应的接口驱动程序例程,完成通信操作。串口通信模块包括串口初始化模块、串口写模块、串口读模块,通过这些模块就可以实现对单片机的控制。图5为串口设置后面板程序框图。如图5所示,主程序运行后,设置串口波特率为9600,通道选着串口1,采用默认通信协议(1位起始位、8位数据位、1位停止位),串口缓存大小设置为16368B。

  2.3保存模块设计

  本设计采用Access数据库对采集的数据进行分析及对历史数据查询回放,其特点表现在:关系数据库的SQL语言是非过程性语言,对数据的查询或操作简单;利用数据库管理数据,数据的独立性好;Access数据库使用方便,操作简单,能够满足数据库管理的需要。利用LV的ActiveX功能,调用MicrosoftADO控件,既可以利用SQL语言又可以利用ADO提供的各种方法和属性,方便灵活地实现对Access数据库访问。在LV功能模块中含有ActiveX子模板,子模板中包含用作与ActiveX服务器相连接的自动化节点函数,实现对数据库的操纵。ADO主要有三个主体对象,分别为Connection,Command和RecordSet对象。访问数据库步骤为:连接到数据源一指定访问数据源的命令一执行命令。本设计建立两个数据源分别用来存放历史数据、报警数据及相对应的时间。

  3软件实现功能

  利用LabVIEW这种图形化的编程语言和编程环境,实现了对浊度数据的显示、标定和报警等功能。浊度实时数据趋势图、历史数据趋势图、历史数据查询和报警历史记录分别如图6所示。

  实时曲线是通过调用LV软件中Chart子模板来实现的。它将数据在坐标系中实时、逐点(或一次多个点)地显示出来,可以反映被测物理量的变化趋势,与传统的模拟示波器、波形记录仪的显示方式相仿。在实时曲线界面中,有单片机采集数据及向LV发送数据的控制按钮,可以方便地实现对下位机数据的采集控制。另外,该模版具有上限、下限报警监视、报警限设定功能,当数据发生报警后,实时值字体显示颜色立即发生改变,可以方便用户对数据进行监视。

  历史曲线是通过调用LV软件中Graph子模板来实现的。用户可以调整XScale及YScale显示方式,如显示时间刻度、数据显示格式、显示刻度是否自动缩放、曲线颜色等。通过游标(如图6(b),Cursor),可以读取波形上某一点的确切坐标值。历史曲线界面还具有历史曲线查询及历史趋势刷新功能。点击“历史曲线查询按钮”,可以弹出“历史趋势查询”子VI模板,用户根据需要设定查询时间,便可得到需要的数据以便分析。点击“历史趋势刷新”按钮可以直接显示当前历史趋势。

  历史报警表调用LV中Table控件进行显示。表中有报警序号、报警名称、报警值、报警进入时间以及状态显示项目。该表记录了高限、低限时报警值及恢复正常值的时间及报警值,通过滚动条用户可以方便查询报警历史数据。

  4结语

本文使用了C8051F单片机进行前端的数据采集,通过RS232串口实现与LabVIEW的强大

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top