林翀,陈昊
(杭州华电下沙热电有限公司,杭州 310018)
基于VB.NET的电气一次模拟屏软件设计
林翀,陈昊
(杭州华电下沙热电有限公司,杭州 310018)
因安全评价要求,电厂需要具备电气一次模拟屏供运行人员模拟操作。目前电厂的电气一次模拟屏主要以马赛克拼接板面为主,体积庞大,价格高昂,不利于日后的维护。基于Visual Basic.NET自行开发了电气一次模拟屏软件,阐述了开发的全过程,并提出了日后升级的方向。
Visual Basic.NET;动态链接库;可扩展标记语言;模拟屏
电气误操作是威胁电厂及电网安全运行的频发性事故[1],可能造成设备停电、损坏,严重时可能造成人身伤亡事故。防止电气误操作是电气安全操作永恒的课题,在实际操作前进行模拟操作是防止电气误操作的有力措施之一。
目前市场上的电气一次模拟屏[2]主要有普通马赛克模拟屏、发光带模拟屏及防误操作模拟屏等,这些模拟屏由马赛克拼接板面、双色发光二极管(LED)灯光及防误报警设备组成,体积庞大,造价高昂。杭州华电下沙热电有限公司为燃气轮机紧凑型电厂,集控室较小,体积庞大的模拟屏不易安置,且价格过高,笔者基于Visual Basic.NET(以下简称VB.NET)软件自主开发了电气一次模拟图(以下简称模拟图),可在电脑上直接操作。该模拟图不仅可以显示电气设备当前的运行状态,方便操作者把握全局,还可以让操作者模拟操作,了解操作全过程,防止因不熟悉操作对象而发生电气误操作。
模拟屏软件结构如图1所示,主要由4部分组成:断路器等公共控件,数据统计功能,保存、读取等功能,主画面绘制。整个系统以公共控件为核心,通过主画面调用公共控件,再经由保存、读取、数据统计等辅助功能形成一个完整的整体。
图1 模拟屏总体结构
2.1 VB.NET
本软件采用VB.NET 2010编程语言编写完成,目前VB.NET编程语言软件的较新版本为Visual Basic 2010,是Visual Studio 2010环境支持的几种语言之一。
选用VB.NET的优势主要有以下3点[3]:(1)具有优秀的Windows界面功能;(2)VB.NET可自行开发控件库,且控件使用方便,可以提高开发界面的使用效率,开发的界面美观大方;(3)VB.NET在图形处理方面具有较强的功能,可以灵活运用图形、动画。
2.2 动态链接库(DLL)
DLL可允许多个程序同时使用代码和数据,其他程序都可以使用DLL所包含的功能,这有助于避免代码重用,促进内存的有效使用。通过使用DLL,程序可以实现模块化,使系统由相对独立的组件组成,本文就是由各公共控件生成DLL文件,再将该DLL文件导入到模拟图主程序中,直接调用DLL,方便软件的编程。
2.3 可扩展标记语言(XML)
XML是一种用于应用程序间交换数据的语言。本文使用XML作为软件的储存单元,与Access,SQL Server等数据库相比,可以减轻应用程序的负担,不需要建立和维护数据库,可以方便地储存和读取文件[4]。
3.1 公共控件DLL的设计
模拟屏有诸多开关,经过统计及整理后,可将所有开关分成3类:断路器,隔离开关,接地闸刀。开关又分为4种状态:运行,热备用,冷备用,检修。针对这一特点,简化设计思路,将相同类型的开关设计成公共控件,在绘制模拟图时,即可直接调用。
以断路器为例,断路器编程主要代码如下。
Public Sub Chage_State() ′4个状态下,断路器图标用不同的颜色加以区分
断路器插件完成后对程序进行测试。通过对断路器属性进行设置,可以选择隐藏或显示连接处线条,还可以调整链接线条的颜色,如图2所示。
图2 断路器控件测试画面
断路器状态选择界面,如图3所示。通过选择画面,可以选择开关的状态。
图3 开关状态选择
相关选择主要程序如下。
当断路器公共控件完成后,即可调试,封装成DLL文件,并可在bin-debug文件中找到Switch_ 4T_a2.dll文件。
3.2 模拟图绘制
断路器DLL制作完成后,将DLL导入到主程序的.NET Framework中。导入完成后,该DLL文件在工具栏-对画框选项中显示。绘图时,直接拖到主画面中即可,且无需再对其进行编程,可直接使用。
隔离开关、接地闸刀DLL控件的制作及导入过程与断路器相似,在此不再作介绍。
按照电气一次接线图对模屏图进行排版和绘制,绘制完成后如图4所示。
图4 绘制完成后的模拟图
3.3 辅助功能实现
模拟图绘制完成后再对其相应的模块进行编程,从而实现模拟图完整的功能。
3.3.1 保存状态功能的实现
本软件以XML文件的格式进行保存及读取,保存的相关程序如下。
当各开关按正常运行方式选择运行状态后,保存当时的运行状态,保存画面如图5所示。
图5 保存当前开关状态界面
3.3.2 读取状态功能的实现
读取功能只需读取保存时的状态即可,相关主程序如下。
实际的图形如图6所示,可以选择读取之前保存的文件,主画面上的各开关状态以保存时的状态显示,方便运行人员调取各种运行状态下的模拟操作。
图6 读取之前保存的各开关状态画面
3.3.3 各开关状态数据统计
这部分主要功能是在软件运行期间,对3类开关4种状态的数量进行实时显示,特别是接地开关的数量,直观地反映给模拟操作前的运行人员,可以有效防止带接地线合闸的误操作。开关数据统计模块主要是根据计时模块来实现,每隔一段时间,扫描模拟屏上所有开关状态,然后根据不同状态下的开关进行统计,并显示在主画面上,如图7所示。
图7 数据统计模块
时间模块的主程序如下。
制作完成后模拟屏软件已基本满足运行人员的需求,方便其模拟操作。该模拟图还有二次开发的空间,升级方向主要有以下2点。
(1)VB.NET包含有通信模块。开发相应的通信模块,使之与公司的厂级监控信息系统(SIS)相连,则模拟屏软件就可以实时读取公司当前的电气运行状态及参数,并直接反映至主画面上。
(2)设计模拟屏软件的“五防”功能[5]。参考数据统计模块程序,增加计时程序,每隔一段时间自动扫描全部开关的状态。如发现操作后的开关状态不符合设定的逻辑程序,则会自动弹出对话框,显示当前操作不符合“五防”要求,点击确认后恢复开关操作之前的状态。
自主开发的模拟屏软件,有利于运行人员模拟操作,自主学习,同时软件编程开发完全不受厂家限制,便于后期维护及二次开发。该软件已在某电厂连续运行一年多,性能稳定,有效保障了电气操作的正确性,减少了误操作事故的发生,提高了电气运行及管理的水平。
[1]袁大陆,杜彦明.电力系统的防误操作情况及防误操作装置的应用[J].高压电器,2002,38(5):8-11.
[2]中国华电集团公司.发电企业安全现状综合评价标准火电篇[M].北京:中国电力出版社,2011.
[3]郑阿奇.Visual Basic.NET实用教程:基于Visual Studio 2010[M].北京:电子工业出版社,2013.
[4]THEARON W,NEWSOME B.吴伟敏,李周芳,译.Beginning Visual Basic 2010[M].北京:清华大学出版社,2011.
[5]薛玉喜.电气“五防”的选型与设计思想[J].华电技术,2008,30(10):22-26.
(本文责编:刘炳锋)
TP 311.52
B
1674-1951(2016)10-0009-04
林翀(1989—),男,浙江杭州人,助理工程师,从事发电机电气运行管理工作(E-mail:linchong@chd.com.cn)。
2016-07-18;
2016-08-24
陈昊(1980—),男,浙江杭州人,助理工程师,从事发电厂热控管理工作。