郑恒志、张正宇、卢兴川、刘福康

(大连海事大学机关工程学院,辽宁大连116026)

摘要:电能质量直接影响电力系统能否安全运行,为了及时可靠地检测电能质量,采用新的Windows Presentation Foundation(WPF)技术设计了电能质量检测系统上层软件。从工控上位机软件的特点入手,实现了上位机与下位机的串行通信,绘制了实时数据波形和波形图,完成了测试数据的清晰显示。该系统人机界面美观,操作方便,数据存储量大,功能完善。

0简介

随着电子电气设备的增加和设备功能的改善,对电能质量的要求也越来越高。电能质量检测是评价电能质量水平和发现电能质量问题的主要手段[1]。

WPF是。基于NET Framework框架的以下操作系统的图形桌面应用程序设计软件[2]:本文使用WPF接口实现技术,用C#语言编写逻辑代码,设计强大的电能质量测试父软件。

1WPF概述

1.1WPF体系结构

WPF使用多层体系结构。在顶层,应用程序与完全由托管的C#程序编写的高级服务集交互。将NET对象转换为Direct3D纹理和三角形的实际工作是在后台由名为milcore.dll的低级非托管组件执行的。Milcore.dll与Direct3D紧密集成,对性能非常敏感,因此使用不受管理的代码实施。WPF中的几乎所有绘图内容都由Direct3D渲染,二维图形和纯文本也转换为Direct3D管线上的三角形,而不是使用GDI或User32渲染图形[3]。

1.2WPF优点

WPF是一种新的编程模型,基本图形技术不再是GDI/GDI,而是使用DirectX作为核心绘图函数。DirectX绘图将尽可能多的工作交给图形处理单元(GPU),WPF单独利用CPU和GPU[4]。GPU的浮点计算能力比CPU高得多,因此可以保证很多计算优先级,并将CPU利用率降至最低。DirectX图形速度比GDI/GDI快,因此可以获得更好的视觉效果。WPF是许多浮点运算图形的好选择。此外,根据系统DPI设置,WPF还提供了根据使用中的显示器放大和缩小显示器的灵活性。

2主机计算机软件的设计与实现

2.1界面设计

系统接口主要由串口参数设置区域、电能质量参数显示区域、实时数据波形区域、信道选择区域和实时数据监控区域五部分组成。图1是父计算机接口。

2.2实施PC软件功能

该上位机软件的主要功能是分析和显示单片机收集的数据,同时绘制波形图,明确显示检测到的电能质量。

2.2.1绘制实时数据波形图

上层计算机软件经常需要显示各种信号的变化,这时往往需要波形也[5]。波形图可以直观地反映信号的变化和趋势,有助于分析检测信号。WPF本身的绘图功能非常强大,但如果需要自己重新实现每个图表,工作量可能会非常大。此时,您需要使用专业的图表生成工具Visifire。

Visifire是WPF、Sliverlight、SharePoint和WindowsPhone平台上可用的Microsoft平台控件,每个平台都可以使用相同的API轻松开发[6],并在平台之间使用。该软件的实时数据波形图和实时波形图是使用Visifire控件处理收集的信号点,然后绘制成曲线。其中,图形符合以下特征:

(1)通过Chart的ScrollingEnabled属性实现图表滚动功能。

(2) ZoomingEnabled和ZoomingMode允许鼠标交叉放大和鼠标滚轮放大或缩小。

(3)Demo是series [0]。其原理是,当DataPoints绑定datapoints值集时,如果根据需要移动集中的第一个点并添加最后一个点,则界面图将发生变化。

(4)如果将Chart的ToolBarEnabled属性值设置为true,则将鼠标指针移动到图表上时,右上角将显示导出和打印图标。

2.2.2显示实时监控数据

数据显示主要包括电能质量参数、实时检测数据、谐波数据显示。其中实时检测数据很多,所以看起来最复杂。此处使用DataGrid控件。DataGrid是WPF中功能最完整的数据显示工具。此工具将数据拆分为包含行和列的网格。每行对应于一个单独的对象,每列对应于该对象的属性。创建DataGrid的关键是定义列。

它使用从DataGridColumn继承的DataGridColumn类动态生成列。对于大多数数据类型,此列是标准选择。定义列时,几乎总是设置三个详细信息:显示在列顶部的标题文本、列宽和数据绑定导入。

列标题可以通过设置Da属性来完成,但不需要限制为纯文本。列的标题是内容控件可以为Header属性提供所有内容,包括带有图像或元素组合的布局面板。

可以通过设置列宽

Da属性和Da来实现。二者唯一的区别是前者属性应用于单个列,而后者为整个表中所有的列设置默认宽度,而且当设置前者时会覆盖后者。

最重要的细节是为列提供恰当的信息绑定表达式,通过设置Da属性提供该绑定表达式。如果把Binding比作数据的桥梁,那么它的两端分别是Binding的源和目标。

3串口通信

电能质量检测系统由以单片机为核心的采集板卡完成数据的采集,由上位机软件通过特定的算法完成对各个复杂参数的处理并显示,所以需要两者之间实现通信,这里使用异步串行通信。采用WPF开发串口通信程序主要有3种方法:第一种方法是通过MSComm控件;第二种方法是采用微软在.NET中推出的一个串口控件SerialPort;第三种方法是用API函数[7]。为方便起见,使用了SerialPort控件。

3.1SerialPort控件使用流程

在使用SerialPort控件实现串口通信时,首先应该根据设计要求构建出程序设计的框架,接着设置通信对象、通信端口、波特率、数据位、停止位,再根据需求编写相应的实现程序完成数据的接收和发送,接着完成数据解析和处理,最后关闭通信端口[8],通信过程如图2所示。

3.2串口配置

通过[PortName]属性获取或设置通信端口,包括但不限于所有可用的COM端口,该属性返回类型为String,PortName正常返回值为COM1、COM2……。SerialPort控件分别用[BaudRate]、[Parity]、[DataBits]、[StopBits]属性设置通信格式中的波特率、数据位、停止位和校验位[9]。

3.3串口读取数据

当初始化工作结束,打开串口时,SerialPort会创建一个监听线程ListenThread,在这个线程中,等待注册的串口中断,当收到中断后,会调用DataReceived事件[10],根据已设定的通信协议,运用Read方法读取数据并完成数据的解析。调用完成后,继续进入循环等待,直到串口被关闭退出线程。

3.4关闭串口

通信结束后,通过调用Close方法关闭串口。

4结论

经过验证,本文设计的上位机软件与下位机实现了很好的配合,能够充分完成电能质量各个参数的实时检测与显示。同时将全新的WPF技术应用到上位机软件的开发中,使软件开发简单化、界面美观化、功能强大化。

参考文献

[1] 叶敦范,刘鑫,李亚敏,等.一种电源智能测试仪的设计与实现[J].电子技术应用,2014,40(5):9396.

[2] Su Haikang, Sheng Jin. Application of video anaglyph maker for 3-D flow simulation[J]. Journal of Hydrodynamics,2010,22(2):289294.

[3] MACDONALD M. WPF编程宝典[M].王德才,译.北京:清华大学出版社,2011.

[4] 李成刚,冯静,凌琳. 基于WPF的交互式绘图系统的开发[J].微型机与应用,2011,30(6):50.

[5] 刘亚雷,于艳美,孟春宁,等.一种便携式水下图像实时采集系统软件设计[J].微型机与应用,2015, 34 (19):2023.

[6] MAGDA Y. Serial port controls ADC[J]. Test & Measurement World,2008,28(9):22.

[7] 李江全,邓红涛,刘巧,等. Visual C#.NET串口通信及测控应用典型实例[M].北京:电子工业出版社,2012.

[8] 王文泉. 基于SerialPort的串口通信系统实现[J]. 科技广场,2011(5):2123.

[9] 李丽萍,魏权利.NET中SerialPort类在短信收发软件中的应用[J]. 微型机与应用,2012,31(21):1113.

[10] Zhang Tao. Research and application of serial communication modules based on VB[J]. Energy Procedia,2013,180:10291033.