ACE网络库及IOCP通讯模式在电力系统机房监控中应用[论文] 下载本文

内容发布更新时间 : 2024/5/24 12:43:57星期一 下面是文章的全部内容请认真阅读。

ACE网络库及IOCP通讯模式在电力系统机房监控中的应用

摘 要:近年来电力系统的机房动力环境监控系统的应用范围不断扩展,系统规模迅速扩大,接入站点大量增加,对监控主站的软件硬件提出了更高的要求。介绍在监控主站升级改造中,运用的新一代网络通讯解决方案与策略,探讨ace网络库及iocp通讯模式在通讯软件中的应用。

关键词:ace网络库 iocp模式 动环监控系统

中图分类号:tm76 文献标识码:a 文章编号:1007-3973(2013)006-081-02

在电力系统大运行体系实施中,建设变电站及通信机房监控系统,在传统“四遥”的基础上,安装包含交直流电源子系统、遥视图像子系统、安防周界子系统、环境子系统、照明子系统等综合辅助监控系统,全面提升对变电站机房的“感知”, 减轻运行维护人员负担,提高电网运行可靠性成为一种必须。

在机房环境系统建设的初期,接入对象主要是电力局大楼的机房、500kv220kv高电压等级变电站机房。接入的站点数量较少,一般在10个以下,通讯对象也只有几十个。近几年,随着电力系统自动化程度不断提高,大量110kv及以下的变电站,都实现了无人值班,在变电站机房的自动化设备大量增加的同时,操作维护人员大量减少。另外,大量的社区或乡镇供电所实现网络接入,联网收费。大量的110kv及以下的变电站、社区或乡镇供电所都需要接入集中的机房监控系统,接入的站点数量和通讯对象几何倍数增加,

很多地区供电局的机房监控系统接入站点需求量达到200个以上,通讯对象超过1000个。

通讯对象的几何倍数增加对动环监控系统的通讯服务器提出了极高的要求。是对现有服务器系统进行软件升级,还是投入巨资升级硬件、增加服务器数量?成为各电力局安排建设资金面临的重要问题。

机房监控系统的通信服务器的主要工作就是进行网络通讯。目前常用的网络通讯编程模型有以下几种:

(1)blocking i/o阻塞模式:与通讯对象网络连接时,在连接过程中一直等待,效率极低。只要有多个通讯对象就不能有效的工作了。

(2)nonblocking i/o非阻塞模式:与通讯对象网络连接时,在启动连接后,就可以进行其它工作,效率较高。但每个网络连接工作中仍需一到两个线程,因此连接数达到几十上百后,大量线程经常切换,效率大幅下降。

(3)select模式(i/o multiplexing):一个线程可以管理64个网络连接。此模式在达到1000个以上的网络连接后,也会由于线程太多,效率大幅下降。

(4)signal driven i/o (sigio):只有unix系统支持。我们暂不考虑。

(5)asynchronous i/o模式(iocp模式是其中一种):一个线程可以管理成千上万个网络连接。在多连接,大数据量下,可获得

理想的cpu响应。此模式适应于网络服务器这类需要处理大量连接的应用。

图1是以上五种模型的比较。 图1 五种模型的比较

从图1可以看出,越往后,阻塞越少,理论上效率也是最优。 从机房环境系统的长远发展看,我们选取asynchronous i/o(iocp)模式进行网络通讯编程。为提高系统建设进度,少走弯路,我们采取借鉴前人成功经验的方式,下载国内外程序员的开源代码库加以修改。

ace自适配通信环境(adaptive communication environment)是一种面向对象(oo)的工具包,它实现了通信软件的大量基本的设计模式。ace的目标用户是在unix和win32平台上开发 高性能通信服务和应用的开发者。ace简化了使用进程间通信、事件多路分离、显式动态链接和并发的oo网络应用和服务的开发。 ace是目前最具代表的开源网络通讯类软件库,授权是免费的,可以自由使用,它正在被用于大量商业项目中(包括国际知名的大公司:诺基亚、摩托罗拉等),以及许多学院和工业研究项目。ace已被移植到多种操作系统平台上,包括win32和大多数的unix/posix实现。此外,同时有c++和java版本的ace可用。 ace库版本很多,更新升级比较快。我们根据机房环境监控系统的需要,选用的是基于vc2005的windows平台版本,版本号为5.8.2,这个版本的库支持vc2005(vc8)、wince(vc2005)、vc2008