APP下载

基于Xenomai及RTnet的PMU数据集中器的实现方案

2013-04-29宋康商巍任振兴

电脑知识与技术 2013年8期

宋康 商巍 任振兴

摘要:PMU(相量测量装置)数据集中器是电力系统实时动态监测系统的重要组成部分,为电力系统的安全稳定运行提供全面的数据信息采集、整理、分析功能,极大提高电力系统的监控水平和稳定运行水平。该文分析了数据集中器的功能特点,阐述了实施基于Xenomai及Rtnet的Linux扩展技术在PMU数据集中器中的研究,提出了基于Xenomai及Rtnet的数据集中器的实现方案。

关键词:PMU;数据集中器;实时操作系统;Xenomai;RTnet

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)08-1975-05

基于同步相量测量及现代通讯技术的广域测量系统(WAMS)实现了对广域电网运行状态的实时动态监测[1-2],该系统的监测内容包括电压及电流相量、功率、机组出力、发电机内电势和功角、系统频率、频率变化以及重要的开关状态,是实现电网全局稳定控制的基础。广域测量系统由调度端的WAMS主站及厂站端的子站系统构成,其中子站系统主要由多台PMU装置和数据集中器构成。数据集中器负责采集多台PMU装置的实时测量数据、离线文件及事件,并按不同主站的要求组织数据通过TCP连接传给相应的主站。由于广域测量系统对子站有较高的性能要求,PMU数据集中器必须具备低延时,高速的数据通讯能力及高效的数据存储,分析能力。

目前各厂家使用的PMU数据集中器,为了达到广域测量实时动态监测系统的实时性要求,一般均采用VxWorks或QNX等强实时操作系统以满足数据采集,通信处理等操作,此类操作系统价格昂贵,代码开发针对性强,通用性弱,开发出的模块独立性强,与其它功能很难结合,不易扩展,且单一的PMU数据集中器功能已经不满足一体化智能变电站多功能模块融合的需求[3]。

传统的Linux操作使用普遍,代码二次开发性好,移植性强,对硬件适应性好,只是在实时性上与强实时操作系统有一定差距,因此本文提出了基于Xenomai及Rtnet的Linux数据集中器实现方案,利用Xenomai的实时任务调度能力及Rtnet的实时数据通讯能力,实现对PMU装置上送数据的高效处理。在完成PMU数据集中器功能的基础上,同时可以开发和延用原有的基于Linux操作系统的功能模块,实现更多功能模块的有效结合。

1 数据集中器的功能特点

数据集中器是广域测量子站系统中的核心组成部分之一,是子站系统与主站系统连接的桥梁,主要功能包括实时的动态相量测量数据的存储及转发、非实时的离线文件(包括动态数据文件、暂态录波文件及事件记录文件)存储,转发及相应的非实时运行管理功能。其软件方面主要的技术指标有:1)逐次、均匀、实时的向主站传送动态数据,传送的动态数据中包含整秒时刻的数据并至少具备每25次/秒、50次/秒、100次/秒的可选速率。2)动态数据转发延时不大于10ms。3)100次/秒的动态数据速率。4)动态数据保存时间不少于14天。5)暂态文件存储个数不少于1000个。6)必要的功能软件与运行管理能力,如定值整定、动态数据分析软件、暂态录波数据分析软件。

从以上性能指标中可以看出,为满足100次/秒实时动态数据的传输速率,PMU装置上送相应数据给数据集中器的速率不低于100次/秒,通常为200次/秒,如何快速的组包、转发实时动态数据是实现数据集中器的关键,同时在不影响实时动态数据传输功能的前提下,数据集中器还应具备上述非实时应用的能力,因此数据集中器应在具备多任务,实时线程调度,实时任务支持的操作系统上实现。

普通Linux内核是面向桌面分时系统设计的,注重的是公平性和交互性,实时处理任务的能力较差,尽管在2.6以后的内核版本中对实时性做了较大的改进,实现了内核抢占、时间复杂度为O(1)的进程调度器并可把系统时钟频率设置为1200HZ,使其实时处理任务的能力大幅度提升,但大多情况下任不能胜任实时应用领域的要求,制约它实时性的,主要有以下几个方面:

1)大量使用自旋锁

自旋锁是目前Linux内核实现内核抢占和SMP(对称多处理)体系结构下保护共享资源的一种同步机制,一个进程若持有了任意一个自旋锁并且进入了此自旋锁保护的临界区,则在此临界区内是禁止抢占的,高优先级进程无法抢占当前进程来获取处理器的使用权,因此当前进程在临界区运行时间的长短决定了高优先级进程抢占的延时大小。

2)中断延时

首先Linux内核中,中断处理例程总是优先运行,除非关闭中断,否则只要有中断发生,内核会立即转去处理中断事件,通常的中断处理例程运行时间极短,但也有些软中断的处理时间不确定,一旦这类中断频繁发生(比如频繁的IO操作和繁重的网络负载),实时任务将很难得以运行。其次,Linux内核在一些内核同步过程中使用了关中断的指令,此时,如果有通过中断驱动的实时任务将得不到响应,增加了实时任务的处理延时。

3)进程调度机制

2.2 RTnet

虽然Xenomai有工业级RTOS的实时性能,但Xenomai只是Linux内核的一个实时扩展,很多标准Linux已实现的系统调用(系统API,如标准系统I/O)Xenomai都没有实现,当一个运行在Xenomai用户空间的进程需要这些系统服务的时候,它可以去调用Linux内核的系统调用接口,此时,Xenomai内核会把该进程以Linux实时进程的形式插入到标准Linux内核的进程调度队列,这样一来,该进程的运行空间就从主域进入了从域,并可能被标准Linux内核中的中断服务例程抢占,为此,Xenoami引入中断屏蔽机制,当标准Linux内核中有实时进程运行时,其中断处理例程都会被延迟,尽量避免被中断,但又会引起优先级反转的问题,而且也不能避免该进程被标准Linux高优先级实时进程或其他Xenomai进程抢占。

解决方法是在Xenomai内核中实现相关系统调用及相应的实时设备驱动。从PMU数据集中器的功能需求中可以看出,系统的网络实时性在系统性能中起决定性作用,而Xenomai内核并没有实现网络套接字(socket)的系统调用,RTnet可以作为这一问题的解决方案。

3 系统设计

3.1 设计原则

数据集中器的核心功能是实时采集传输PMU装置的实时动态相量数据,而其他功能实时性要求低。因此,将与实时的相量数据处理相关任务设计在Xenomai内核上实现,与PMU之间通讯使用Rtnet软件框架,与主站通讯使用标准socket,而与非实时的运行管理相关的任务则运行在标准的Linux内核上,实时任务与非实时任务通过消息管道通信。

3.2 软件结构

处理相量数据的实时任务主要分为三大模块:PMU装置通讯模块、数据采集处理模块、主站通讯模块。整个系统采用成多任务多优先级的设计,每一个主站或PMU装置都有独立的相量处理线程和命令处理线程与之对应,但为了减少通讯带宽和系统负担,同一时刻只允许一个主站和PMU装置与数据集中器进行离线文件传输,相量数据合并和动态数据存储也用单独线程实现。人机界面为非实时任务,主要功能包含配置存储、相量显示、动态数据分析及暂态数据分析。具体结构如图4。

3.3 数据处理

3.3.1 相量数据转发

PMU通讯模块内相量采集线程具有实时任务最高优先级,它负责采集PMU装置的相量数据,并通知相量数据合并线程把相关数据填入数据缓冲区,待同一时刻所有PMU装置的数据收集完毕后,相量数据合并线程通知主站数据管理线程,若此刻有正常的主站数据管道通讯连接并且已开始主站数据发送,则相应的相量转发线程从数据缓冲区内取数据,并按主站要求组织数据发送。

此外,动态数据存储线程也定时向合并数据缓存中取向量数据,并按要求存在系统硬盘内。

3.3.2命令处理[1]

系统内命令内容都按照《电力系统实时动态监测系统传输规约》的相关标准,处理主站命令及向发送PMU装置命令,其中,核心模块是系统配置管理线程,它负责合并各PMU装置的配置文件(协议中CFG1文件)向主站发送CFG1文件,及接收存储主站下发的CFG2文件。

3.3.3离线文件处理及磁盘空间管理

离线文件包括暂态数据文件,动态数据文件及PMU装置事件,处理它们的实时性要求不高,因此系统内相关进程的优先级较低。在离线文件处理中,主要技术难点是数据检索及删除,当离线数据达到设计容量上限时需要删除过期数据,主站检索数据时应快速响应,设计实现时可以自行维护一份动态的离线文件列表,对表内数据按时间排序及检索。同样可以采用相关数据库,SQLite是一款小型嵌入式数据库,资源开销小,支持常用数据类型和多线程访问,符合此类高效实时系统的要求。

3.3.5进程间通信

在本软件架构中,存在人机界面与实时数据处理任务之间数据交互的问题。

4 性能测试

4.1 测试环境

4.2 结果分析

5 结论

本文在分析Xenomai与RTnet在Linux中应用的基础上,提出了一种PMU数据集中器的实现方案。随着电力系统对安全稳定性的要求不断提高,以PMU及其数据集中器为基础的WAMS系统将发挥更重要的作用,如何提高数据集中器的性能必是系统关键环节之一。同时智能变电站功能集成的需求,也使得PMU数据集中器在系统上进行新的探索与改进成为必然。经相关测试,该方案拥有较好的系统实时性和处理能力,功能及性能上都满足了电力系统实时动态监测系统相关规范的要求,与其它通信模块可以很好的共存,为实现PMU数据集中器软件功能集成提供了有效的手段与工具。

参考文献:

[1] 中国国家标准化管理委员会,GB/T 26865.2-2011,电力系统实时动态监测系统第2部分数据传输协议[S],2011.

[2] 华北电网有限公司.华北电网电力系统实时动态监测系统(WAMS)系列规范[Z].北京:中国电力出版社,2009

[3] 李善平.Linux与嵌人式操作系统[M].北京:清华大学出版社,2001.

[4] 张伟,金运清.使用RTnet提高Linux网络实时性能[J].武汉理工大学学报:信息与管理工程版,2007(10).

[5] 李江红,刘炳锋.VxWorks和RTLinux的性能测试分析[J].计算机测量与控制,2008(16).

[6] 王荣,游有鹏,张少坤.基于Xenomai的实时Linux分析与研究[J].单片机与嵌入式系统应用,2009(2).

[7] Gerum P. Xenomai-Implementing a RTOS emulati-on framework on GNU/Linux,2004(4):2-5.

[8] Franke M. A Quantitative Comparison of Realtime Linux Solutions[M].Chemnitz university of technology.2007.