摘 要: 为了满足多用户同时进行空气压缩机性能实验的要求,设计了基于数据采集单元和计算机网络的实验测试系统。数据采集单元由16位微控制器MC9S12XET256和以太网控制器组成,测量空气压缩机的压力和转速,接收来自网络的命令并上传数据。计算机网络采用客户机/服务器的结构,客户机通过服务器分时共享硬件资源。服务器负责转发数据和客户机的采集命令,接收和保存客户机的实验结果;客户机负责数据的处理,绘制示功图并上传实验结果。实际应用结果表明,该系统可以满足多达253个用户共同实验,实验教学的质量和时效性大为提高。
关键词: 空气压缩机;实验测试系统;以太网;多线程通信
活塞式空气压缩机作为一种通用设备,广泛用于工业和民用等领域,其性能一般是通过实验测量示功图来评判。示功图是指压缩机一个工作循环中活塞处于不同位置时,气缸内气体压力变化的曲线。根据示功图可以计算压缩机的平均指示压力、指示功率、气缸内的实际压比等,进而确定最节能的设计工况点[1-2]。目前实验室所用空气压缩机实验台由交流电机驱动的空气压缩机、计算机、打印机、求积仪等组成,实验时,先根据采集软件的提示测量环境大气压力,然后启动空气压缩机,在计算机上操作软件,采集压力数据,打印示功图,用求积仪测定示功图上不同部分的面积,在图上量出对应线段的长度,计算各性能参数。实验过程耗时长、过程繁琐、效率低,且不能保证每个实验参与者独立自主完成实验。
利用以太网作为通信网络,配合基于网络接口的数据采集系统和C/S模式运行的后台(服务端和客户端)管理软件,用户可以快速灵活地控制和访问采集设备[3-4]。为此,通过对空气压缩机试验台进行升级改造,设计了基于以太网的实验测试系统,使得一套实验设备可以与多台计算机联网,允许多个用户同时独立进行实验,只需在客户机上操作客户端软件,即可进行实验数据的分析和计算,从而提高实验教学效果。
1 实验测试系统基本结构
实验测试系统由数据采集单元和运行后台管理软件的计算机网络系统组成,如图1所示。数据采集单元通过单片机的输入捕捉模块测量空气压缩机的旋转周期并计算转速,利用周期中断定时器定时触发气缸压力信号采样,按照采样周期计算采样的转角间隔,并将采集到的数据通过以太网传输到安装服务端软件的计算机(服务器)上。服务器负责转发数据采集命令、采集数据和接收客户机上传的实验结果。客户机作为人机交互设备,负责数据采集命令的发布、数据的处理和分析、绘制示功图以及上传实验结果。
2 数据采集单元硬件设计
2.1 主控制器模块
数据采集单元的核心采用Freesacle的MC9S12XET256单片机,该芯片集成有12位分辨率的高速A/D转换模块、增强型定时器(ECT)模块和大容量的RAM。采用片上A/D模块和ECT的输入捕捉模块可使系统硬件结构紧凑,提高可靠性。以太网通信采用RTL8019AS以太网控制器,全双工峰值通信速率可达10 Mbit/s。
2.2 压力信号测量电路
压缩机气缸压力测量电路如图2所示。来自压力变送器的信号通过一阶低通滤波器进行滤波,并经过一个电压跟随器和限幅电路后,由单片机的A/D模块转换为数字信号。电压跟随器用于缓冲、隔离,提高带载能力和阻抗匹配。限幅电路的作用是将信号的幅值限制在0~5 V,保护A/D转换模块。
2.3 压缩机转速测量电路
压缩机的飞轮边缘上安装有一个磁钢,磁电转速传感器固定在压缩机的机身上,每转产生一个转速脉冲。传感器的输出信号通过整形电路变换成0~5 V方波,由单片机的输入捕捉模块测量转速。信号调理电路如图3所示。
3 数据采集单元软件设计
数据采集采用定时方式,根据压缩机的最高转速和角度分辨率(0.25° CA)要求,确定采样周期为30 μs。利用单片机内的周期中断定时器使其每隔30 μs产生一次中断,在定时器中断服务程序中触发一次A/D转换,相邻两个采样点对应的角度α为:
α=6·n·T(1)
其中,n为转速(r/min),T为采样周期(s)。
数据采集流程如图4所示。当数据采集单元收到来自服务器的采集命令时,使能单片机的输入捕捉模块,并将记录转速脉冲的变量n赋值为0。当捕捉到压缩机转速脉冲信号后,将变量n赋值为1,同时记录该脉冲的时刻,并使能定时器,定时器周期性触发A/D采集。当输入捕捉模块捕捉到下一个转速脉冲信号,表明压缩机曲轴已经转过一圈,一个循环的数据采集已经完成,于是,结束采集任务并记录第二个转速脉冲发生的时刻,把测量数据临时保存在单片机的RAM中,并触发数据传送任务,将数据传送到服务器。
4 后台管理软件
后台管理软件是一个基于UDP协议,以C/S模式运行的网络应用程序,分为服务端软件和客户端软件,采用面向对象可视化的编程环境Visual Basic.NET 2010开发。
4.1 服务端软件
服务端软件启动后,将调用My.Settings访问用户和应用程序级设置[5],初始化配置参数。当用户启动通信后,服务端软件将创建6个Socket的UDP对象,其中3个UDP对象用于发送命令和数据;另外3个UDP对象用于创建监听不同端口的线程,分别监听8000、8001、8002端口,分别对应前台数据接收端口、客户机采集命令接收端口和客户机实验结果接收端口。建立UDP对象和线程,服务器将等待客户端发送采集命令。当UDP的监听线程监听的端口出现数据时,UDP线程通过自定义类的事件代理,触发接收数据和协议解析事件[6]。当服务端发送命令和数据时,会把目的IP地址和数据写入到其中一个UDP对象中,并创建一个临时线程,把数据发送到指定的IP地址上。数据发送完成后撤销临时线程,释放硬件资源。
当服务器的8001端口出现数据,服务端将记录客户机发送数据的源IP地址,并把收到的数据转发到数据采集单元中,启动数据采集。当服务器收到数据后,立即把数据组包转发到提出请求的IP地址客户机上,从而减少数据采集单元的通信负担。数据采集单元只响应服务器的命令请求和发送数据,所有命令和数据均由服务器转发。
如图5所示,当服务器收到多个客户机发出数据采集请求时,服务端把多台客户机的IP地址和请求命令保存到地址数组中,并使请求地址指针Pt1指向最新写入的地址,检查采集标志CFlag是否为0,若为0,则启动地址比较定时器ADT1。ADT1事件中将比较请求地址指针Pt1和应答地址指针Pt2是否一致,当Pt2<Pt1时,说明服务端有未应答的请求,将提取Pt2指向的IP地址和采集命令,然后将Pt2指向下一个地址,关闭定时器ADT1并把CFlag置为1,把采集命令发送到采集单元,等待接收数据。当采集到的数据接收并组包完成后,把数据发送到提取的IP地址的客户机,并打开定时器ADT1,从而完成一个客户机的请求响应。服务端将继续等待一个定时器ADT1事件,当Pt2=Pt1时,软件把CFlag置为0,关闭定时器ADT1。
服务器的8002端口收到数据时,说明有客户机在上传实验结果,服务端收到数据协议包后,提取用户信息、实验报告和分包个数,然后等待接收分包的数据,直到接收的分包数据个数与数据协议包中的个数相等时,再根据数据包的编号进行组包处理,还原示功图数据并保存至服务器。
4.2 客户端软件
客户端软件安装在客户机上,是压缩机性能实验人机交互的关键部分。客户端发送采集命令后,将会收到服务端返回的数据,客户端软件负责对数据进行处理和绘制示功图,提交实验结果[7]。
4.2.1 数字滤波处理
数据采集模块采集到的数据可能包含一些干扰,为此采用滑动平均数字滤波对数据处理,如式(2)所示。该算法较为简单,对于抑制随机噪声并保留陡峭边沿非常有效。
其中,Pi和Vi分别是第i个采样点对应的气缸压力和工作容积。
客户端软件对压力数据滤波和计算处理后,绘制的P-α和P-V示功图如图6所示。
4.2.3 实验结果的生成和上传
客户端完成数据采集后,用户根据软件绘出的示功图分析容积效率和多变指数因数。客户端软件随后自动生成一个数据协议包和若干个分包数据。数据协议包包含用户信息、实验报告内容和示功图数据分包的个数。每个分包数据包大小为30 KB,根据示功图截图的数据生成,其编号用于服务端组包。客户端发送数据时,先发送数据协议包,再发送分包数据。服务端软件收到数据协议包和分包数据后,进行组包处理。
通过对空气压缩机试验台进行升级改造,利用MC9S12XET256单片机设计了数据采集单元,采用Visual Basic.NET开发了基于以太网的后台(服务端和客户端)管理软件。该管理软件具有以下优点:
(1)利用MC9S12XET256的输入捕捉模块测量转速,采用单片机内置的周期中断定时器和A/D模块采集压力数据,采样转角间隔可达0.25° CA。
(2)利用多线程和UDP协议,实现数据采集、实验结果的发送和接收。客户端利用滑动平均滤波对采集数据进行处理,绘出P-α和P-V示功图。
(3)大批量、多人次的使用表明,该系统完全满足多达253个用户同时实验,操作方便,提高了实验效率;实验结果保存在服务器中,便于管理;每个用户独立完成实验,提高了实验教学效果。
参考文献
[1] Xie Mujun,Liu Jian.Design and simulation of air compres-sor performance controller[C].International Conference on Computer, Mechatronics, Control and Electronic Engineering(CMCE),Changchun,China,2010,3:504-506.
[2] 杨红,胡家顺,修吉平.基于PC的压缩机示功图测试、分析系统[J].压缩机技术,2003(3):14-16.
[3] AHMED I,Wong Hong,SAPILA V.Internet-based remote control using a microcontroller and an embedded Ethemet[C].Proceedings of the 2004 American Control Conference,Boston,2004,2:1329-1344.
[4] 朱安邦,黄君良.基于网络的多台空气压缩机远程监控系统[J].东华大学学报(自然科学版),2005,31(2):41-46.
[5] 薛梅,巩艳华,李洪国,等.Visual Basic.NET程序设计基础[M].北京:高等教育出版社,2013.
[6] 马玉春,刘杰民,王鑫.Visual Basic .NET案例教程[M].北京:机械工业出版社,2009.
[7] 杜树旺,方志民,王文明,等.基于PC的改进型活塞式压缩机性能检测系统[J].浙江工业大学学报,2005,33(4):421-424.
[8] 杨伟新,张晓森.基于DSP的空气压缩机示功图测试系统设计[J].工业仪表与自动化装置,2011(4):38-40.