APP下载

基于WPF的水槽控制及数据采集系统设计与实现

2018-03-30江春波陈正兵

实验技术与管理 2018年3期
关键词:水位计尾门水槽

周 琦, 江春波, 陈正兵

(1. 清华大学 水沙科学与水利水电工程国家重点实验室, 北京 100084; 2. 长江勘测规划设计研究有限责任公司, 湖北 武汉 430010)

工业化的程序设计大致可分成两类,一类为传统非模块化设计语言,如Basic、C、C++、C#、图形化编程语言LabView等[1-4];另一类为高度模块化的组态软件,如三维力控、MCGS、世纪星等[5-6]。传统非模块化设计语言,自由度高,可根据用户需求完成任何设计内容,但需要设计人员熟练掌握编程语言,同时当设备更新需要修改源程序时带来不便。模块化的组态软件则可以以灵活多变的组态方式为用户提供程序界面及逻辑控制的开发,组态软件具有很强的通用性和封闭扩展性,并支持各种主流通信协议实现实时控制、监控、数据采集的功能,但组态软件设计的程序一般较臃肿,同时这类软件主要应用于工业实时监控中,往往难以满足科研试验中高频数据采集的要求。

在水力模型试验中需要监测水流的水深、流速、流量等数据,众多采集设备和系统应运而生。杨宁等[7]基于LabView应用分布式网络开发了一套应用于风浪流水槽的高频数据采集与分析系统。马凯等[8]将可编程控制器和RS485串口通信总线结合,研发出一套多数字传感器数据采集系统,并成功将其应用于溪洛渡水电站左岸厂房的皮带及连接盘水平倾角监测中。马志敏等[1]使用MFC框架,开发了一套应用于他们自制的水位流速仪中,该系统支持31路信号,以实现河港模型试验中断面流速分布的测量。

本数据采集软件拟基于WPF技术,实现水槽试验中水深和流量的同步监测、保存和处理分析。此外,实现自动化标定水槽下游水深流量关系,可根据实验需要设定来流流量大小,并可生成固定变化幅度的周期性来流,并可对采集的数据进行异常数据剔除,统计计算等功能。

1 WPF技术简介

WPF(windows presentation foundation),基于.Net托管技术,以C#或VB为后台逻辑控制语言,有大量开源组件、控制库,程序设计人员只需找到合适的库文件即可直接调用。2007年微软推出Windows Vista时WPF技术正式进入人们的视野,Vista系统绚丽震撼的效果就是基于WPF技术开发的。相比传统的GDI和GDI+绘图系统,WPF具有得天独厚的优势:WPF以DirectX为引擎,可方便快捷高效地将用户要呈现的内容显示到设备中,同时支持硬件加速、浮点坐标及动画实现等技术[9]。此外,WPF是以数据为驱动的,用户只需在后台逻辑中定义对应的属性变量,即可将其与界面控制关联起来,并实现需要的数据显示、编辑和更新。这样界面设计和逻辑控制则是分离的。WPF程序的UI界面使用XAML标记语言,界面设计既可以在Visual Studio中编写,也可以使用专为WPF界面设计而生的Blend工具绘制,用户可使用Blend方便快捷地设计出美观绚丽的图形、图标、动画等界面元素。WPF技术已在众多领域得到了广泛应用。

2 系统硬件组成

水槽试验系统是水力科研究和教学中常用的试验装置,其控制采集系统见图1。

控制采集系统中变频器2个,一个用于控制水泵(SAJ8000B),另一个用于控制尾门(ABB AC510-01)。超声水位计6个(Global Water WL705-003),量程0~90 cm,分辨率0.2 mm,输出4~20 mA标准电流信号;每个水位计均使用移动支架安装于水槽滑轨上,其中2个水位计设置在水槽上游斜坡段的固定位置,2个设置于水槽下游靠近尾门缓流段,另外2个则安装于中间测试段以测量不同位置水深,进而得到水面沿程分布曲线。电磁流量计(DN200)内径20 cm,量程0~800 m3/h,输出标准4~20 mA电流信号,安装在来流管路中间位置。万能输入信号采集器3个,一个用于采集水位数据,一个用于流量数据,另一个用于采集尾门位移传感器,以确定尾门的开度,使用标准Modbus RTU通信协议(RS485接口)。6通道万能输入测量模块,支持4~20 mA信号,0~10 V电压信号或-5~+5 V电压信号AD精度16位。

位移传感器用于确定尾门开度大小。检测距离为0~350 mm,精度为0.05%,供电为5 V DC,输出信号为0~20 mA。

尾门由电机和交流接触器共同控制。

表1为各数据采集器及变频器的配置信息。

图2为平坡水槽示意图,水槽主要包括主体水槽(18 m)、首部稳流箱、流量计、水位计、离心水泵、变频器,水槽首部设置两道稳流栅,槽尾安装有电机驱动的尾门,测试段前部安装长8 m、3%坡度底板,以形成急流流态。

图2 试验水槽立面图

3 数据采集系统功能设计

控制采集系统应满足以下设计要求:设备配置主要包括串口号、波特率、奇偶校验方式、数据位数,通信地址,水位传感器初始化,主界面可实时数据采集显示、数据存储、结果分析整理,采集参数设置,水位槽底设置,水泵开启关闭和尾门控制;界面程序使用WPF标记语言编写,调用Grid、Button、GroupBox、CheckBox、TextBlock、Label、DynamicDataDisplay等控件。为实现数据监控的功能,软件主要包括设置模块、水泵控制模块、尾门控制模块、率定模块、水深处理模块,功能设计见图3。

图3 控制系统功能设计

界面程序为主线程,用于实时设置采集参数、实时数据显示等功能。开启2个后台子线程,分别用于流量和水位数据的采集及处理,并将采集的数据以异步的方式反馈给主界面程序。采用多线程技术使数据显示与采集传输分析分离,可有效避免单线程程序中因高速数据采集导致的界面假死和线程阻塞现象。本软件有2种类型的线程:用户界面线程和后台处理线程。用户界面线程是本软件的主线程,用于参数设置及数据显示,同时可以响应系统设备(如键盘、鼠标等)的输入输出。后台处理线程则用于处理后台任务,独立于界面线程,同时可以将处理结果实时地在界面线程中显示。采用多线程技术可实现同时对多个数据采集器同步采集,并实时快速数据显示以及文件存储。

因数据采集器有6个信号通道,若长时间采集容易造成系统性能降低,因此应为每个数据采集器使用独立线程,以提高数据采集的可靠性,并减少采集的循环等待时间。各数据采集器通过RS485串行总线及串口转USB转换器与PC上位机连接,2个串口可同时工作,数据传输协议遵循Modbus RTU协议,传送数据中包含各通道数据以及CRC校验值。

nModbus动态链接库对各标准的Modbus协议进行了统一封装,用户可直接调用类库中相应的成员函数进行数据的发送和接收,而不必考虑报文帧的具体实现细节,简化了编程过程,提高了编程效率。

图4为本采集系统的程序主界面。图5为数据采集的流程图,采集开始前应设置对应采集器的通信设置,只有正确设置采集器的串口号和波特率才能成功地对数据进行监测。若要采集水位数据,则应先设置槽底值(即当水槽无水状态下超声水位计的基准值),实际水位为槽底值减去实测值,水深大小与超声水位计输出电流信号值成负线性关系。

图4 程序主界面

图5 数据采集流程图

4 数据分析模块设计

因超声水位计发射的超声波在传播过程中容易受到背景噪音(如水槽振动,水流气泡、水面变化等)的影响,致使数据出现异常值,在数据后处理中应剔除异常值。图6为水泵启动时未经处理的水位的实时数据曲线(图中WL1、WL2、WL5、WL6分别表示1#水位计、2#水位计、5#水位计、6#水位计),从图中可看到在不同时刻各水位计均有异常值出现。异常数据检测和剔除算法主要有域值法、拉依达法、肖维勒法、一阶差分法、数据跳跃法等[10-14]。本数据处理模块针对水位数据特点采用修改的拉依达算法进行异常数据的检测和剔除。拉依达检测法基本原理:若数据样本测量值与平均值之差大于标准差的3倍,则该数据点判定为异常值。导入水深数据后,对数据系列进行中值过滤(过滤区间取64个数据点),再计算过滤后的标准差s,然后逐点对原始数据和对应中值点进行对比,若原始值与中值过滤值的偏差大于3倍标准差,则判定该点为异常点,并用中值过滤后的值替换原始值,即完成异常值的检测和替换。算法流程见图7。

图6 水泵启动水位过程线(原始值)

图7 异常数据值检测算法

图8为水泵启动时异常值剔除后的水位过程线,数据曲线的毛刺现象(数据异常值)基本消失。1#、2#水位计布置在斜坡急流段,水深较小,5#、6#水位计布置在下游平坡靠近尾门缓流段,水深较大。

图8 水泵启动水位过程线(异常数据剔除后)

5 测试结果与分析

5.1 水深流量率定结果

图 9和图 10分别为使用本数据采集系统自动率定的流量-频率关系,以及对应的流量-水深关系。在进行水力数据分析时,为便于参数的无量纲化,常将水深作为控制变量进行分析,而水深-流量关系可用于水深和流量之间的相互转换,对同一试验水槽和同一尾门开度,流量-频率和流量-水深关系是固定不变的。

通过拟合频率和流量数据可得出:

y=-0.675 2x2+52.699x-714.99

式中:x为频率,Hz;y为流量,m3/h。

图9 变频器频率与来流流量关系

图10 水深与流量关系

由图10可看出,平坡缓流段的5#、6#水位计水深与流量关系基本一致,呈二次关系;而急流斜坡段的1#(变坡点上游5 m处)和2#水位计(变坡点上游2 m处),水深与流量呈线性关系,但两水位计的关系有所差别。

5.2 周期来流

在水力试验中,有时需要上游来流按一定幅度变化的周期性流动。由率定的变频器频率和流量关系可知,若要生成周期性的来流量,只需通过频率-流量关系计算出频率过程变化曲线,再将频率值实时地设定变频器的频率即可。图 11为平均流量为85 m3/h、变化幅度为±25 m3/h、周期为90 s时的周期性流量和对应频率过程线。图 12为相应的各水位计水深过程线,由图可看出,水深也呈周期性变化,且变化周期基本与来流流量周期一致,只是相位有所差别。

图11 周期来流流量实时曲线

图12 周期性来流水位实时曲线

6 结语

将自动化技术应用于水力试验水槽控制及数据采集系统中,以WPF界面开发语言结合多线程技术,设计PC上位机流量控制及数据采集和显示软件,实现水位流量的同步采集,对水位数据应用修改的拉依达算法进行异常数据剔除,水位数据处理结果合理。通过本采集系统,对水槽频率-流量关系进行率定,并得到对应的水深-流量关系。此外,应用所得变频器频率和来流流量关系式成功实现来流流量的周期性控制。整个开发过程简单,整套系统可移植于类似的试验水槽中。

References)

[1] 马志敏, 苏姗, 胡文斌. 多路水深流速自动采集系统设计与应用[J]. 长江科学院院报, 2014,31(5):97-101.

[2] 王雪梅. VC 环境下高速实时数据采集的实现[J]. 信息技术, 2006,30(5):147-149.

[3] 闫纪红, 杨伟成. 基于 PXI 和 LabVIEW 的双板卡远程数据采集系统设计[J]. 实验技术与管理, 2013,30(7):80-82.

[4] 李巧真, 李刚, 徐天室. 传感器实验装置计算机控制系统[J]. 实验技术与管理, 2011,28(6):57-60.

[5] 王晗, 王辉, 徐秀贤. 基于工业组态软件的污水处理工程监控系统的设计[J]. 自动化应用, 2015(2):47-48.

[6] 袁小平, 娄承芝, 田浩, 等. 新能源利用综合演示实验平台研制[J]. 实验技术与管理, 2017,34(1):98-103.

[7] 杨宁, 朱晓阳, 齐连明, 等. 风浪流水槽分布式数据采集与分析系统设计[J]. 电子测量技术, 2013(5):105-110.

[8] 马凯, 杨峰. 高速多通道数据采集系统的设计[J]. 中国测试, 2013,39(6):85-88.

[9] 王德权, 邓云霓. WPF 在发动机生产线监控系统中的应用[J]. 组合机床与自动化加工技术, 2013(4):83-85.

[10] 黄谟涛, 翟国君. 海洋测量异常数据的检测[J]. 测绘学报, 1999,28(3):269-277.

[11] 童丽, 周海银. 异常数据剔除的一种改进计算方法[J]. 中国空间科学技术, 2001,21(4):11-16.

[12] 邵婷婷, 张水利, 张永波. 两种剔除异常数据的方法比较[J]. 现代电子技术, 2008,31(24):148-150.

[13] 毛亚纯, 王恩德, 修春华. 剔除变形监测粗差数据的新方法:数据跳跃法[J]. 东北大学学报(自然科学版), 2011,32(7):1020-1023.

[14] 赵键, 张慧莉. 大坝自动监测数据异常值识别的改进数据跳跃法[J]. 中国农村水利水电, 2014(2):85-87.

猜你喜欢

水位计尾门水槽
2021款丰田威兰达车电动尾门系统的组成及工作原理解析
联合仿真在某车型LGF/PP尾门模态仿真上的应用
可升降折叠的饮水机水槽
某多级船闸闸室水位计可靠性分析与对策
磁翻板水位计改进与应用
2017款奔驰GLE320电动尾门无法升降
三峡船闸闸室水位检测工艺的优化与应用
为什么水槽管要做成弯曲状
要挑好水槽,就看这里了!
厨房水槽设计