基于虚拟仪表的理念和方法,参照Fluke示波表波形操作显示的方法完成了软件人机交互界面的设计。所设计的软件符合用户技术规范书的要求,并投入工程应用。
1.引言
隔离开关智能I/O装置是智能变电站的一种一次设备的智能组件,主要用于隔离开关工作状态的监控,并接收间隔层设备下达的命令控制隔离开关分合,监控操作机构储能电机的工作状态,一旦电机运行出现异常,立即切断电机操作电源,防止电机损坏,并记录电机异常时电机工作电压、电流等工作参数的波形数据。电机故障后,还要利用装置记录的电机启动波形和故障波形数据定量分析故障原因,用于改进电机设计或为电机选型提供依据。
根据与协作企业签订的技术规范书[1],课题组在完成装置本体设计的同时,还要完成储能电机故障波形分析软件设计,用于装置记录波形的后台分析显示。
根据教育部推行的大学生创新创业训练计划,本创新训练团队选取上述项目中波形分析软件设计作为研究课题,完成软件需求分析、概要设计、编码调试、应用推广等方面的创新过程训练,并设计与实现了该软件项目的。
2.需求分析
根据本创新训练项目申报表提出的实施方案,本项目主要完成一种操作机构储能电机启动和故障波形分析软件的设计与实现,其启动和故障波形由智能I/O装置实时运行过程中记录,并保存在装置的非易失性存储器中。为了实现对故障波形的分析显示,首先需要实现智能I/O装置的通信协议包,获取其采集和记录的波形数据;根据装置记录的波形信息的特点,需要设计相应的信息对象模型,对采集的数据信息进行管理、存储和访问操作;按照技术规范书的要求,选取傅里叶变换算法计算基波分量的有效值,并选用均方根算法计算交流信号的有效值;设计友好的人机交互界面,实现对所获取波形的显示、平移、放大/缩小等操作,为电机专业工程师分析故障原因提供直观的分析工具。
3.概要设计
根据上述分析,本软件主要由人机交互界面、底层串行通信线程、Modbus协议软件包和数据对象访问操作等四部分组成,各部分的信息交互关系如图1所示。
图1中各组成模块主要的访问操作和数据流向关系如下:操作人员通过用户界面发出通信请求后,相应的界面操作函数立即向通信线程发送指定的请求消息;通信线程收到消息后,调用Modbus协议包中的相应函数组织请求报文,并调用串口通信对象中的发送函数将请求命令发送给智能I/O装置;之后等待接收装置的响应报文,并调用解帧函数提取装置上报的信息,并将提取的数据保存到相应的数据对象之中。
4.软件设计
4.1 数据处理方法
根据用户需求,在界面上显示马达工作的电压、电流的有效值,电压电流的直流分量和基波分量的有效值。智能I/O装置进行交流信号采样时,每周波采样24个点的数据。这里选用每周波24点采样的离散均方根算法和傅里叶变换算法[2]进行交流采样数据的处理,离散均方根算法的计算方法如式(1)、(2)所示:
式中N=24为一周波内采样的点数,k表示第k次采样。
傅里叶变换算法计算电压电流有效值的算法思想如下:假设交流电气信号的离散表示如式(3)所示:
将一周采样的2 4个采样点代入公式(4)和(5),计算得出Xs和Xc,再由Xs和Xc计算基波的有效值。
4.2 数据对象管理
本软件需要管理的波形信息对象包括3个电机启动波形和8个故障波形。每个电机启动波形由750个周波的交流采样信号组成,每个故障波形由故障前30个周波和故障后20个周波,共计50个周波的交流采样信号组成。此外,本软件还需要管理电机运行参数对象。软件实现时,采用C++面向对象的信息模型对所获取的信息进行管理和访问操作,设计了三个类CProcessWaveData、CFaultWaveData和CConfigData分别对上述三种信息对象进行封装管理。为了方便起见,3.1节选用的数据处理方法封装在前两个类中,用于波形信息的分析处理。每个类设计了专门的属性访问方法,用于通信协议包和人机交互界面模块访问信息对象中的数据。
4.3 Modbus通信协议包
智能I/O装置采用Modbus协议[3,4]与便携式主机通信,将录波信息上传给主机。
由于录波信息量大,Modbus协议的基本命令不支持此类详细的传送,为此智能I/O装置扩展了3条命令用于发送录波信息。
其中2条命令分别用于传送启动波形和故障波形的概貌信息,1条命令用于传送交流采样信号的波形信息。
由于Modbus协议报文通信的流程有比较严格的时序要求,为了实现正常的报文通信,本文设计了一个专门的子线程用于实现底层Modbus报文交互。
Modbus协议包主要实现报文发送/接收、组帧/解帧、通信出错检测等功能,其中组帧/解帧部分要与数据对象管理和人机交互两个模块进行信息交互,通过接口函数获取这两个模块的信息参数用于组帧,将解帧获得的数据信息保存到数据对象之中。本文设计的Modbus协议包以主方式工作,即由本软件主动向智能I/O装置发送命令并控制报文通信的过程。为此,软件设计一个OnRunTime运行时函数来实现报文接收,报文发送和报文通信超时的判断。这个运行时函数相当于Modbus协议的主循环函数,定时查询用户下达的通信任务,同时检测异步串口收发报文的情况,完成报文收发和通信流程的控制。
OnRunTime函数工作流程如图2所示。
软件实现时,设计了CSerial和CModbus两个类分别实现串口访问和Modbus通信协议包。由于采用了多线程软件设计方法,在线程间消息传递和信息交互时采用了临界区、信号量等机制实现同步和互斥操作,防止访问冲突。
4.4 人机交互界面
应用软件采用V C + +集成开发环境设计,并选用MFC基于对话框的应用程序框架完成软件的编码实现。人机交互界面设计时,基于虚拟仪表的设计思路,模仿电机工程师熟悉的Fluke数字式示波表界面,进行波形显示操作。
软件操作界面设计的核心是曲线的绘制,曲线选择、放大/缩小、平移操作和信号分析。曲线绘制是在对话框中开辟专门的曲线显示区域,使用VC应用程序框架中WM_PAINT消息处理函数OnPaint来绘制曲线;对于智能I/O装置中保存的最近3条储能电机启动曲线和8条故障录波曲线,采用List控件列表对其管理和输出显示,用户在List控件中选择相应的波形进行显示;界面设计时,模仿Fluke示波表设置一组改变时间间隔和量程按钮,对曲线进行横向和纵向放大/缩小操作,设置左移和右移按钮对曲线进行平移操作。除波形分析显示之外,软件实现了串口配置、储能电机运行现场参数等辅助功能。软件人机交互主界面如图3所示。
5.验证测试
软件开发阶段工作完成之后,对所实现的软件功能进行了验证测试。测试的项目主要包括如下两个方面。
5.1 与智能I/O装置通信功能
通信功能检测方法为:采用软件设计的报文监视对话框监视报文通信流程和报文的内容,观测显示的报文信息与预设的通信流程是否一致,对比智能I/O装置与本软件显示的内容,检查两边显示的内容是否完全一致。测试过程如下:将后台主机与智能I/O装置通信线连接好,配置好通信参数,启动数据召唤,软件自动与装置建立通信连接,并自动召唤装置记录的波形数据。报文信息窗口显示的报文内容如图4所示,通过分析从报文信息窗口捕获的报文帧信息分析软件通信的流程,报文信息的内容,可以判断报文通信过程流畅无中断现象,报文内容正确。两侧设备显示的数据信息内容相同,说明软件与装置的通信功能正确,数据处理结果正确。
5.2 图形的绘制与操作
通过鼠标点击图5右侧中间启动和故障概貌信息列表框中的事件,选择当前分析显示的录波曲线;每个录波曲线记录有三相电压、三相电流和操纵杆角度7条曲线,通过设定曲线显示选项按钮,可以选择当前显示的曲线及曲线的颜色等参数,图5选择显示了第二条启动波形中Ua和Ia两条曲线。通过减小/增大量程操作可以对曲线纵向放大/缩小,通过减小/增大间隔操作可以对曲线横向缩小/放大操作,通过曲线左/右移操作可以平移曲线。每次进行曲线操作之后,都核查所绘制曲线与数据源的一致性,表明图形绘制与操作都符合要求。
6.结论
针对智能变电站隔离开关智能I/O装置项目故障录波信息后台分析的需求,本文对软件需求进行了分析,并提出了概要设计方案,着重阐述了软件的具体设计思想和方法,最后对所设计软件的通信功能和图形绘制操作进行验证测试。测试结果表明,所设计的储能电机故障波形分析软件的符合规范要求。项目设计完成之后,交付用户在工程现场应用。
全部0条评论
快来发表一下你的评论吧 !