引言 随着供电方、用电方和设备制造方对电能质量问题的日益重视及
微处理器处理能力的增强和数字信号处理技术的发展,
电能质量监控系统也逐步发展和壮大。传统的电能质量监控装置多是以非在线方式运行,然而由于电能质量监控数据具有海量数据和数据的共享性等特点,非在线的监控方式已经不能满足现代的电力系统监管需求。非在线的监控模式,正逐步被功能强大的在线监控模式所替代。现阶段的各种网络型电能质量监测系统大多只具有监测的功能,而且系统中采用的大量软件,从现场设备的操作系统软件到服务器的大型数据库软件均采用昂贵的商业软件,因此建造一套网络型电能质量监测系统成本巨大,这严重阻碍了我国电力系统自动化水平的提高。自由软件是指软件的源代码必须是可得到的,允许任何人使用、拷贝、修改、分发 (免费P少许收费) 的软件,相对于商业软件来说,它具有开放、灵活、更新快和成本低P无成本的特点。本文采用自由软件开发了一套低成本、高性能的网络型
电能质量监控系统,系统具有很好的稳定性和扩展性,并且具有极低的成本。
412 现场控制层的软件实现 由于现场控制层所要实现的任务比较复杂,流程控制的程序设计方法很难实现现场控制层所应具有的全部功能,这就必须借助操作系统的帮助。现场控制层所要实现的功能及硬件平台的限制决定了运行在硬件平台上的嵌入式操作系统必须具备以下特征:1) 体积小; 2) 健壮性强; 3) 协议栈完整,网络功能强; 4) 具有硬实时的特征。为了满足以上的要求并且降低成本,系统采用了利用实时应用程序接口
RTAI(The Real2Time Application Interface) 改造后的
uClinux 作为嵌入式操作系统。 A) 对
uClinux 的实时性改造
uClinux 是一个源码开放的操作系统,它是Linux 的一个变种, 是一种优秀的嵌入式Linux 版本。
uClinux 是Micro2Control2Linux 的缩写, 由于
uClinux 主要是针对无MMU(内存管理单元) 的
微处理器开发的,所以它不能使用虚拟内存管理技术,但其保留了Linux 操作系统的主要优点:稳定性、优异的网络性能和文件系统支持。在现阶段,实时系统逐渐成为研究的热点,并且得到了广泛的应用。实时系统分为两类,一类是硬实时(Hard Real2Time) ; 另外一类则是软实时( Soft Real2Time) 。所谓硬实时是指如果系统对某个实时任务的处理未能在某个截止时间开始或者结束的话,最终的结果将是灾难性的,这就意味着即便是处理结果合乎逻辑但是仍然毫无意义;而在软实时系统中,处理任务启动或者结束的截止时间只是一个期望值,并不见得必须满足,即便是处理时间超过了截止时间,结果也是有意义的。Linux 虽然也可采取基于优先级的调度策略,并且也将进程分为实时进程和非实时进程,但是由于Linux 核心态进程的不可抢占性,以及Linux 中对临界区资源保护的策略等,造成了Linux 系统本身很难完成硬实时的任务。在默认状态下(214 版本) ,Linux 系统内部的时间分辨率为10ms ,系统的响应速度随着系统负荷而变化,一般大于200ms ,这难以满足大多数电能质量控制设备的基本要求( 数十毫秒) 。因此, 在利用
uClinux 完成控制任务前,必须对其进行实时性改造。在改造过程中,为了保持Linux 原有的强大功能,同时又能够满足硬实时应用的要求,人们提出了用虚拟机技术改造Linux 内核的思想。具体做法是,运行一个简单的实时调度模块(
RTAI Core) 接管所有的硬件资源,将Linux 内核作为这个模块控制下的一个优先级最低的任务,实时的应用由
RTAI 直接调度运行,非实时任务则由Linux 内核调度运行。实时调度模块(
RTAI Core) 的调度算法是基于优先级的抢占式调度方法,速度快,系统在满足硬实时应用方面有很好的效果。改造后的
RTAIP
uClinux 系统,响应速度可以达到100μs ,并且系统内的时间分辨率降到了微秒级. B) 应用软件的实现应用软件依据所要实现功能的不同可分为实时部分和非实时部分。实时部分运行在
RTAI 内核上,它的主要任务就是接收MCF5282 芯片CAN 控制器产生的中断,对接收到的电网状态量实时地进行分析判断,并且做出控制决策,以此来达到硬实时级别的控制性能。
uClinux 内核主要执行非实时任务, 它负责与远方的数据库服务器进行通信,将电网状态量信息和
RTAI 执行的控制命令通过TCPPIP 网络传输给数据管理中心的数据库服务器,并且负责接收和处理服务器下达的控制命令,以此来更新本地的控制策略。
RTAI 内核和
uClinux 内核通过
RTAI FIFOS(有名管道) 进行通信。应用程序结构如图4所示。