• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 测试测量 > 技术文章 > 基于VB的电子天平性能测试平台的设计与实现

基于VB的电子天平性能测试平台的设计与实现

录入:edatop.com    点击:

  1 系统硬件配置

  1.1 电子天平

  电子天平是被广泛应用的精确质量计量仪器,采用51系列的单片机作为控制器,具有动态响应快、测量精度高、自动校准、去皮重等功能,内置RS-232通信接口,可与打印机、计算机等外部设备相连。

  1.2 PC机与电子天平的连接

  使用RS-232串行接口连接PC机与电子天平,组成了下位机电子天平和上位机PC机的两级测量控制系统。

  2 测试平台的软件设计

  2.1 软件设计的实现方案

  下位机电子天平使用51系列的单片机为控制器,因此,选用MCS-51汇编语言及其仿真软件,作为编程控制语言,以实现电子天平的测量以及数据向上位机的传送。

  上位机PC机面对测试研究人员,需要良好的界面,方便的操作和人性化的设计。据此选用VisualBasic作为操作平台。为了实现两级系统间的连接,选择了RS-232串口。PC机选用了VB附带的MSComm控件来实现串口与电子天平进行通信。

  2.2 下位机实现的功能

  2.2.1 数据采集及显示

  在外部中断方式下,电子天平采集称重数据经处理后转换成与之相对应的十进制数BCD码和十进制数ASCII码,BCD码发送至电子天平的七位七段码显示器上显示。而ASCII码则通过串口向上位机传送。下位机串行中断流程如图1。

  2.2.2 数据发送

  下位机电子天平串口发送数据采用中断方式,传送数据波特率选用9600Hz, CPU的晶振周期(fosc)为11.0592MHz,串行接口工作于工作方式1,定时器/计数器T1工作于定时器方式2(自动重装载方式),TL1作为计数用,设初值为X。计算公式为:

  波特率=2SMOD×定时器计数器溢出速率/32

  其中溢出速率为溢出周期的倒数,即为:

  fosc/(12×(256-X));则有:

  波特率=2SMOD×fosc/(32×12×(256-X))

  当SMOD=0时,以上数据代入公式,则有:X=FDH

  所以求得TL1=TH1=#FDH

  串口初始化语句如下

  MOV TMOD,#21H; 定时器1方式2

  MOV SCON,#50H;串行口方式1,允许接收

  MOV TH1,#0FDH;波特率时间常数

  MOV TL1,#0FDH;

  为了保证数据传输的正确性,测试平台采用了“包头+数据包”的传输协议,包头为任意选定一个与数据包中的数据不重复的字符。

  2.3 上位机主要功能及其实现方法

  在PC机上运行的电子天平性能测试平台能实现如下几个主要的功能:

  (1)串口数据的实时采样; (2)采样数据的图形显示; (3)数据库在平台中的运用; (4)对数据曲线的模拟数字滤波; (5)对数据生成的响应曲线进行分析和建立数学模型。

  2.3.1 串口数据的实时采样

  PC机串口数据的采样使用了MicrosoftCommuNI2cationsControl(MSComm)控件。

  MSComm控件通过串行端口传输和接收数据,编程方便,它提供了两种处理通信问题的方法:事件驱动(Event2driven)方法和查询法。

  MSComm控件有很多属性,本测试平台所涉及到的重要的属性有:

  (1)CommPor:t设置并返回通讯端口号。(2)Set2tings以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。(3)PortOpen:设置并返回通讯端口的状态。也可以打开和关闭端口。(4)Outpu:t向传输缓冲区写一个字符串。(5)RThreshold属性:MSComm控件设置CommEvent属性为comEvReceive并产生In2pu:t从接收缓冲区返回和删除字符。OnComm之前,设置并返回的要接收的字符数。(6)InputLen属性:设置并返回Input属性从接收缓冲区读取的字符数。了解了MSComm的功能和属性后就能编写实现串口通讯的程序,具体例子代码如下:电子天平输出为RS-232C标准接口,波特率为9600、无校验、8个数据位、一个起始位、1个停止位所有字符均发送10位二进制代码。

  2.3.2 采样数据的图形显示

  数据的图形显示运用MSChart控件来实现,该控件支持真正的三维表示,支持所有主要的图表类型,值和数据点以条形图、折线图、标记图、填充区域图或饼图形式显示。由于MSChart控件不是内建的基本控件成员,在使用前必须先引用MSCHART20.OCX文件,将其加入到工具箱中。

  MSChart控件有很多属性,这里介绍几个在测试平台中使用到的属性,具体如下:

  (1)Column:返回或设置数据网格中当前的数据列。(2)ColumnCoun:t返回或设置与图表关联的当前数据网格中的列数。(3)Data:返回或设置被插入图标数据网格中的当前数据点的数值。(4)Row:返回或设置与图表关联的数据网格中当前列的指定行。(5)RowCoun:t返回或设置与图表关联的数据网格每一列的行数。(6)RowLabelCoun:t返回或设置与图表关联的数据网格行标签的级别数。

  运用上述属性再结合循环语句就能将存于数组中的数据一一在当前图形界面中描绘出来。但由于采集到的数据量较大,不可能长时间的将所有数据显示在当前的界面中,为此引入了一个HscrollBar控件,使数据曲线能在图形界面中左右平移滚动,能方便地在MSChart上观察所有被记录的数据。

  为了将数据曲线细致地显示在屏幕上,需要加入如下几个功能:

  (1)设置Y轴最大值; (2)设置Y轴最小值; (3)设置X轴上显示记录条数; (4)用鼠标单击图形上的记录点,数据点的数值能够立刻自动地显出来。第一至第三条功能由UpDown控件绑定Text控件,通过代码设置相应的属性来实现,第四条运用了MSChart控件的PointSelected事件来完成的。这样使显示功能变得比较完善,在界面上能观测到数据细微的变化。

  2.3.3 数据库在平台中的运用

  测试平台提供了测量数据表格的实时显示和保存功能,便于对数据进行研究分析。由于需要存放的数据量大,并且要组织成易于读取的格式。因此采用VisualBasic 6.0的Active X数据对象ADO(ActiveXDataObjects)方式作数据库管理。

  采用ADO方式时数据库中包含了两个字段:Data和Time。Data字段里记录测量数据,Time字段里记录接收每个数据时所对应的时间(精确到0.01s)。由于是实时记录,所以该时间完全可以认定为数据的采样时间,误差不超过0.01s。时间记录格式为:Hour:Minute:Second.00,方便测试人员了解记录数据的具体时间。因为在VB里time函数的值只能精确到秒,要提高时间的精确度就需引入timer函数,函数的格式为:秒. 00,将timer函数返回值通过算法取其小数部分,再与time函数的返回值合并成一个字符串,存入相对应的数组内构成测量数据表格的实时显示,或等待下一步操作。另外,测试平台中包含了对数据库新建、保存、添加记录、关闭、绑定ADO控件、导入记录等操作。

  2.3.4 对数据曲线的模拟数字滤波

  平台设计了三种不同的滤波方式:递推平均滤波、一阶惯性滤波、限速滤波,而且能将三种滤波进行复合使用,增加了滤波方式的灵活性,以便在测试平台上模拟出电子天平的控制器所需要的滤波算法,形象直观地显示出滤波的效果,以选择最佳的、最合适的滤波方式来完善电子天平的性能,提高其精确度。经过滤波的曲线将与原始曲线显示在同一图上,且该曲线图也拥有前节里所提到的几个图形显示功能。经过滤波的数据也可以用数据库形式进行保存。

  2.3.5 对数据生成的响应曲线进行分析和建立数学模型

  A.曲线的分析

  测试平台提供了对数据响应曲线的分析功能,由于电子天平测量物体质量时,由测量数据组成的响应曲线为阶跃响应曲线,在对阶跃响应曲线分析中,许多高阶系统在一定条件下常近似地用二阶系统来表征,电子天平也可以用二阶系统来表征。系统提供了4个二阶系统阶跃响应指标:上升时间tr、峰值时间tp、超调量Mp、调整时间ts,稳态误差可自由设定,增加了分析的灵活性。

  B.曲线数学模型的建立

  测试平台通过响应曲线建立了电子天平数学模型,只要使用者将检测电子天平用的砝码的质量输入平台对应的输入框里,系统将自动显示被测的电子天平的系统数学模型,有了数学模型,就能根据该模型测量系统加入校正环节,使得天平的性能有较大的提高。

  本测试平台除了以上功能外,还提供了实时数据分段采样记录、数据曲线的预览、串口参数设置、数据库文件的压缩及数据曲线的打印。另外,测试平台的界面具有在XP环境下呈现XP的风格。

  参考文献:

  [1]刘媛,迟健男,周玮.一种基于单片机的智能电子天平系统[J].本溪冶金高等专科学校学报, 2001, 3(1): 19-22.

  [2] Microsoft公司.Microsoft Visual Basic 6.0控件参考手册[Z].北京希望电子出版社, 1999.(许雪军编发)

  作者简介:蔡红(1969—),男,讲师,主要从事计算机技术的应用与开发。

点击浏览:矢量网络分析仪、频谱仪、示波器,使用操作培训教程

上一篇:实验室环境内傅里叶望远镜技术的实现
下一篇:LTB-1皮带秤校准装置的设计和应用

微波射频测量操作培训课程详情>>
射频和天线工程师培训课程详情>>

  网站地图