首页专业论文技术应用政策标准解决方案常用资料经验交流教育培训企业技术专家访谈电力期刊
您现在的位置:北极星电力网 > 技术频道 > 专业论文 > 基于实时操作系统的继电保护软件设计

基于实时操作系统的继电保护软件设计

北极星电力网技术频道    作者:鲁 炜1, 靳 希2    2009/5/19 14:15:17   

摘 要:本文介绍了一种嵌入式软件开发平台:嵌入式实时操作系统(RTOS),论述了将实时操作系统引入继电保护软件开发的必要性和可能性。提出了基于RTOS的可编程可配置的保护软件设计方法,它使得编程更为灵活,使得软件开发和维护的工作量大大降低。并且探讨了在继电保护中使用RTOS需要注意的一些问题。
关键字:继电保护,实时操作系统,软件工程,嵌入式系统

  自从1984年国内第一套微机保护投入试运行并通过鉴定以来,微机型继电保护装置的种种优越性为大家所认识, 国内开始了广泛的应用,并取得了相当的成功,现在新投入的继电保护装置几乎无一例外地选用了微机保护。随着微机保护装置的大量使用,开发人员也体会到传统的继电保护软件设计在灵活性方面有所欠缺,不易维护。这就要求我们重新审视微机保护装置的软件设计思路。实时操作系统(Real-Time Operation System, RTOS)已经在航天和通信等嵌入式应用中崭露头角[1],在电力自动化设备中近年来也有一些使用,例如励磁控制设备[6]和调度自动化前置机[3]等。笔者将RTOS的概念引入继电保护软件设计,探讨了RTOS在继电保护中应用的前景及需要考虑的问题。

1.实时操作系统(RTOS
1.1 RTOS
概述

  操作系统是计算机系统中的一个系统软件 ,它是一些程序模块的集合。这些程序模块用于管理和控制计算机系统中的硬件及软件资源 ,合理地组织计算机工作流程 ,以便有效地利用这些资源为用户提供一个功能强、使用方便的工作环境 ,从而在计算机和用户之间起到接口的作用。操作系统是对硬件层的第一次扩充,可以为程序员提供有效的服务。
  RTOS是指能在限定时间内完成规定的任务、在限定时间内能对外部事件作出响应,并可以有效管理系统任务及资源的系统软件。RTOS是一段嵌入在目标代码中的软件, 用户的其它应用程序都建立在 RTOS之上。RTOS使各个任务“准同时”地运行。RTOS还包含一个可靠性很高的实时内核 ,将中断、I/ O、定时器等资源都包装起来 ,留给用户一个标准的应用编程接口(Application Programming InterfaceAPI,并根据各个任务的优先级 ,合理地在不同任务之间分配CPU时间。
  RTOS强调实时性、可靠性和灵活性, 与实时应用软件相结合成为有机的整体 ,起核心作用 ,用于管理和协调各项工作, 为应用软件提供良好的运行环境和开发环境。
1.2
使用RTOS的单片机程序与传统单片机程序的区别
  传统的单片机程序是线性程序,这种程序机制具有简单直观,易于控制的优点。但由于程序只能按单一的线索顺序运行,缺乏灵活性,难以运用在复杂系统中。例如一个典型的单片机监控系统通常包括输入/输出控制、数据处理、显示以及键盘管理等功能模块。在传统的单任务机制下,程序采用循环方式。其流程图如图1所示:

  由图1流程可知.在传统单片机程序机制下.各功能模块按固定顺序构成一个整体,作为一个任务得到执行。而在实际应用中,各个模块要求的执行频率往往不一致.如输入采样频率可能要求很高,而单位时间内键盘扫描的次数则相对较少。系统复杂的定时要求在单任务机制下难以满足;另外在这种结构下程序一旦建立,各模块的执行顺序即已固定,对于需在运行时动态改变执行结构的系统.程序需用许多条件判断和分支转移语句进行控制,增加了程序的复杂性。程序可读性和可维护性很差,调试不便;对已有程序进行扩充,也需先了解整个程序结构,增加了难度。
  RTOS采用了先进的多任务机制,这是现代操作系统才具有的突出优点。在这种机制下,CPU的运行时间被划分为许多小的时间片,由某种调度算法按不同优先级别分配给不同的应用程序;多个应用程序分别在自己的时间片内访问CPU.从而造成微观上轮流运行,宏观上并发运行的多任务效果。可以把输入、输出控数据处理,显示以及键盘管理视为若干相对独立的模块,由RTOS进行管理,从而形成一种崭新的程序结构。其示意图如图2所示。

  在这种结构下,各功能模块由系统调度程序启动执行完毕后返回系统调度程序,彼此处于同等地位.其执行顺序也比较灵活,且可在程序运行过程中动态地改变执行结构;各子任务的执行频率要求表现为它们的优先级.优先级越高的子任务单位时间内执行次数越多.从而其执行频率越高。各子任务在自己的时间片内运行,通过合理设计时间片大小和各任务的优先级.可以满足系统内各种复杂的定时要求。
  在RTOS结构下程序的调试与维护变得容易。程序以分立模块形式存在,各模块间功能独立,相互影响小.可以方便地单独调试,寻找问题所在。对程序的扩充更为方便.不用更改原有结构,只需增加要扩充的部分即可。

2 在继电保护软件设计中引入RTOS概念的必要性
2.1
微机保护软件维护要求的需要

  微机保护的各种功能都是由相应的软件来实现的,如果需要增加新的功能,就需要修改相应的软件。在各个电力运行部门,各个地区对于继电保护的要求不尽相同,继电保护程序修改是不可避免的。例如,各电力运行部门在低压保护领域中形成的运行习惯差异比较大,华东地区在低压馈线上使用前加速功能, 北京供电局在某些线路上使用多次重合闸, 各地对低频减载闭锁条件的要求各不相同等。为了适应现场的各种要求,就需要进行程序的修改,诸如此类的修改要求非常多。
  电力设备供应商为了满足用户的需求,需要有专门的维护人员。由于汇编语言的缺点以及原先的保护软件设计思想的缺陷,造成长期需要专门的开发人员进行软件维护。这就带来以下的几个问题:
  ①由开发人员进行程序维护,致使开发人员的时间被大量占用,无法进行新的开发。②由于各种要求比较多,造成需要维护的各种程序版本很多。③当用户关于修改或修正的合理要求不能及时处理时,用户的满意度就会下降。④工程的时间通常比较紧张,所修改的软件不可能经过详细测试,这样就在维护过程中引入了潜在的错误,有可能导致投入到现场中的软件是有缺陷的软件。
  这些缺陷常常是到了现场,在某种事先没有预想到的运行方式下才会显露。这会使得电网遭到巨大的损失,而电力设备供应商的无形资产损失更是难以估计。在这个方面是有前车之鉴的,在每年的220500kv继电保护和安全自动装置的运行事故分析中可以看到,由于软件问题而造成的故障是占有相当比例的。
  继电保护装置的功能将会有进一步的扩展,很多的不同的保护功能将会融合在一套保护装置中;而继电保护设备的通信功能将进一步加强,传送的数据将更加的丰富。可以想象,以后的继电保护的程序将更复杂,而进行软件修改时需要考虑的问题将会更多。
  根据软件工程理论[9], 与软件维护有关的多数问题都归因于软件计划及软件开发方面的缺陷。微机保护软件维护出现困难就是因为传统软件设计方法的缺陷,为了容易地去了解、维护、修改微机保护的软件,就必须要有先进的操作系统。
2.2
实时软件的需要
   微机保护的软件是一个要求很高的实时软件。实时程序设计从概念上说与一般的程序设计(数值计算、数据处理)具有根本的不同之处。实时程序执行的正确性不仅与程序逻辑计算结果有关,而且与程序被执行的先后次序和时间限制的关系也十分密切。因此,实时程序设计将会比一般的程序设计更加复杂和困难。在实际的计算机应用系统中,人们通常把时间限制的要求强加于物理硬件设备上,忽视了对软件问题的深入研究。
  目前,微机保护产品大多采用以汇编语言为主的前后台系统设计,即主循环加中断的软件结构,这种软件设计方法虽然代码精炼,可以保证关键任务的及时执行,但是难以保证所有任务对实时性的要求,而且中断也导致各个任务循环的时间不能确定。
  对于继电保护系统来说,“不死机”是最起码的要求。除了在硬件上提高电磁兼容性外,在软件上也要采取措施。传统的线性程序在遇到强干扰时,程序在任何一处断线都会引起死机,只能依靠硬件看门狗复位,重新启动系统。如果是采用RTOS管理的系统,这种干扰只是引起若干进程中的一个被破坏,可以用另外的进程对其进行修复。RTOS不仅可以将应用程序分解成若干独立的任务,而且可以另外启动一个监控进程,监视各进程序运行状况,遇到异常情况时采取一些措施, 可以自动将有问题的进程终止掉,再调用另一个进程将任务修复,从而大大提高了系统的可靠性。

3. 在继电保护软件设计引入RTOS概念的可行性
  RTOS代码本身需要占用一定的程序空间,运行中也需要占用一定的CPU和存储资源,这就限制了RTOS在处理速度慢,存储容量小的MCU上的应用。但是随着集成电路技术的快速发展,微机保护系统得到了更加廉价快速的CPU与更大容量的RAM, 从而拥有更加强大的硬件平台,可以运用更好的算法实现更多的功能。我们在编写保护程序时, 可以考虑如何使程序灵活地适用于多种情况,如何在不改动程序的情况下使装置能够适应新的情况。现在硬件的发展已经为我们提供了一个足够强大的平台, 使我们将RTOS引入保护软件设计成为可能。
  例如:在1999年南瑞继保电气公司推出的LFP-915等保护设备中已经使用了MotorolaMC6833232位单片机,人们往往只注意到32MCU8位、16MCU快这一特点,而忽略了另一重要特征:32CPU本来是为运行多用户、多任务的操作系统(如UNIX)而设计的,因此特别适于运行多任务实时操作系统。
  在微机保护中, MCU\DSP的处理能力、存储器和I/ O带宽这些资源是有限的 ,而且存在多个 MCU\DSP同时工作的问题。在程序设计过程中 ,如果处理不当 ,就可能导致任务得不到及时的响应 ,处理时间过长。此外 ,各种资源如果调度不当就会发生死锁 ,从而使系统失效。为了保证微机保护系统的正常运行 ,可以采用RTOS合理地管理和分配CPU进程和内存这些关键资源。RTOS根据任务的要求进行资源管理、任务调度、异常处理等工作。从而提高了系统运行的稳定性和可靠性。
  在实时性方面,由于RTOS将前后台系统分割为各个优先级不同的任务,RTOS根据每个任务的优先级 ,动态地切换各个任务 ,总是运行优先级最高的任务,这样就保证系统对实时性的要求。每个任务可以有自己的定时与延时,可以满足继电保护中的各种时间的要求,例如出口时间的整定和程序执行时间的限制。RTOS的优先级管理、多任务调度、事件触发机制正是提高实时性的最有力的保证。
  继电保护的设计、开发, 实际上也是一个大型软件工程的设计、开发。RTOS体现了一种新的系统设计思想, 具有一个开放的软件框架。在保护系统的开发过程中 ,由于系统比较复杂, 工作量很大, 需要有很多设计人员同时进行系统的软件开发;如果采用RTOS就可以将一个复杂的应用程序可以分解成多个任务,每个任务模块的调试、修改几乎不影响其它模块。设计人员进行协同工作时 ,只需要定义好重要的数据结构、变量、常数和函数功能 ,依照系统的要求进行设计开发。设计人员编写程序时 ,可以分别编写各个任务 ,不必同时将所有任务运行的各种可能情况记住 ,大大减小程序编写的工作量 ,而且减小了程序的出错可能性 ,提高了软件的可靠性。这样既缩短了开发时间 ,加速了研制速度 ,又降低了最终产品对某个设计者的依赖性,避免由于一两个人的原因而使得工程进度无法完成。

4. 在继保软件设计中引入RTOS的需要考虑的问题
4.1 RTOS
对硬件资源的需求

  传统单片机系统的设计中,对存储器的容量的需求仅仅取决于应用程序代码。使用RTOS的情况则不一样。实时多任务系统比前后台系统需要更多的代码空间(ROM)和数据空间(RAM)。代码空间取决于内核的大小,而RAM的用量取决于系统中的任务数。最小内核可以只提供任务调度、任务切换、信号量处理、延时超时服务,大约需要1K3K的代码空间。
   每个任务都是独立运行的,必须给每个任务提供单独的栈空间(RAM)。RTOS内核有一个特点:每个任务所需的栈空间大小可以分别定义。设计人员决定分配给各个任务多少栈空间时,应该使之接近实际的需求量。栈空间的大小不仅仅要计算任务本身的需求(局部变量,函数调用等等),还需要计算最多中断嵌套层数(保存寄存器、中断服务程序中的局部变量等)。内核需要额外的栈空间以保存内部变量、数据结构、队列等。如果内核不支持单独的中断用栈,总的RAM需求的表达式为:
   RAM总需求=应用程序RAM需求+(任务栈需求+最大中断嵌套栈需求)×任务数
  如果内核支持中断用栈分离,则总的RAM需求量的表达式为:
   RAM总需求=应用程序RAM需求+内核数据区RAM需求+各任务栈需求的总和 +最多中断嵌套之栈需求
  除非有特别大的RAM空间可以使用,对栈的分配与使用要特别的小心。
4.2
RTOS进行修改
  
因为RTOS是为嵌入式应用编写的通用软件,它不得不兼顾到不同CPU的共性,并且要考虑不同的应用场合。而对于具体的继电保护应用,我们可以对内核进行精简和修改,提高运行的效率。例如uC/OS-II内核的可调度任务数为64个,但是对目前的微机保护来说,并不需要用到这么多任务,可以将它压缩为8个,使得任务控制表、就绪表、信号量、邮箱、队列等结构占用的资源大为减少。
  还可以删除源码中不需要的变量和函数,并删除函数中不需要的语句。将内存管理、任务统计、堆栈检验等功能删除,一些函数中实际运行时不起作用的检验语句也被删除。去掉任务的休眠态,可以减少操作系统运行中任务的创建和删除。


5.结论
   RTOS是计算机科学发展的精美成果,已经在通信、航天等嵌入式系统中有成功的应用,在电力系统的应用才刚刚开始。目前的继电保护软件不易维护,灵活性较差,没有充分发挥CPU芯片的能力,不适应继电保护发展的需要。采用RTOS的继电保护软件具有可靠性高、灵活性好和易于维护的优点。



参考资料


[1]
 JEAN J.LABROSSE著,邵贝贝译. uC/OS-II—源码公开的实时嵌入式操作系统[M].北京:中国电力出版社,2001.
[2]
 李轶群,吴国炀等,基于模块的可编程保护软件设计新概念[J].电力系统自动化,2002,268):66-69.
[3]
 王克星,宋政湘,耿英三,配电网数字式综合电流保护软件系统[J].电力系统自动化,2003,27(7):82-85.
[4]
 谈淑伟,刘国定 . SD-6000EMS的前置机系统[J].电力系统自动化,1998,22(3):41-44.
[5]
 赵天洪. 基于现场总线的就地控制装置SJ-600LCU[J].电力系统自动化,2000.24(7):61-62.
[6]
 曾海波,黎雄. 实时多任务内核在电力系统励磁调节器中的应用[J].电力自动化设备 2002.22(8):35-38.
[7]
 施东明. 实时操作系统在软件无线电中的应用[J].现代电子技术,2001.(2):32-34.
[8]
 李海波,肖伯乐. PC-RTOS实时操作系统用火电厂计算机监控系统[J].计算机工程1992,18(3): 67-70.
[9]
 李海藩. 软件工程导论[M].北京:清华大学出版社,1993.

来源:继电器
友情链接
北极星工程招聘网北极星电气招聘网北极星火电招聘网北极星风电招聘网北极星水电招聘网北极星环保招聘网北极星光伏招聘网北极星节能招聘网招标信息分类电子资料百年建筑网PLC编程培训

广告直拨:   媒体合作/投稿:陈女士 13693626116

关于北极星 | 广告服务 | 会员服务 | 媒体报道 | 营销方案 | 成功案例 | 招聘服务 | 加入我们 | 网站地图 | 联系我们 | 排行

京ICP证080169号京ICP备09003304号-2京公网安备11010502034458号电子公告服务专项备案

网络文化经营许可证 [2019] 5229-579号广播电视节目制作经营许可证 (京) 字第13229号出版物经营许可证新出发京批字第直200384号人力资源服务许可证1101052014340号

Copyright © 2022 Bjx.com.cn All Rights Reserved. 北京火山动力网络技术有限公司 版权所有