安防之家讯:摘要 为保证变电站自动化系统监控主站的可靠性,文章提出以其最重要的资源——中央处理器的负载水平作为衡量其可靠性的指标之一,并在对其任务进行详细分析的基础上,估算出变电站正常运行时监控主站的资源平衡水平。最后,针对采用WindowsNT所提供的基于线程的多任务机制实现的监控主站,依据资源平衡的原则对其进行了实验室测试,并对所发现的不足作了改进。
关键词 变电站自动化 监控主站 资源平衡
BALANCEOFSYSTEMRESOURCESOFHOSTFORMONITORINGANDCONTROLLINGINSUBSTATIONAUTOMATION
WangHaiyouHeRenmu
Dept.ofE.E.,NorthChinaElectricPowerUniversity(Beijing)
Beijing,100085China
ABSTRACT Inordertoensurethereliabilityofthehostformonitoringandcontrollinginasubstationautomationsystem,itisproposedthatthecentralprocessor''sprocesstime,i.e.,thehost''smostimportantresource,canbeusedasastandardofmeasuringthehost''sreliability.Thetasksofthehostareanalysedindetailsothattheresourcebalancelevelisestimatedduringthenormaloperationofthesubstation.Finally,thehost,whichappliesthemultithread-basedmechanismprovidedbyWindowsNT,istestedinthelaboratoryaccordingtotheprincipleofresourcebalanceanditsshortagesareimproved.
KEYWORDS Substationautomation Hostformonitoringandcontrolling Resourcebalance
1 引言
在变电站自动化系统中,监控主站充当站内的保护、测量、控制及通信装置与变电站运行人员之间的接口,它能正确及时地转换与传输变电站的运行状态信息以及运行人员的控制命令是整个系统正常运转的前提,地位十分重要。因此,可靠性是监控主站的首要指标。衡量一个系统的可靠性的最常用标准是该系统的平均失效等待时间(meantimetofailure)和平均失效间隔时间(meantimebetweenfailures)等。但这些指标的获取均依赖于目标系统的长时间运行,使用起来不太方便。而且,这些指标也不能全面描述监控主站这类实时性要求很高、资源需求较为密集的应用。
目前,一般采用PC机、基于Windows95或者NT来实现监控主站。这样,PC机及其操作系统的资源占用水平就会对监控主站的可靠性产生很大的影响。因此,可以采用在监控主站正常运行时所占用的系统资源的数量,即监控主站的资源平衡水平,作为衡量监控主站可靠性的一个指标。这里所说的系统资源主要是指监控主站运行所需要的CPU(中央处理器)的时间及占用的内存等。其中,CPU时间是最关键的资源,因此,本文将其作为衡量监控主站资源平衡水平的最重要指标。
确定监控主站的资源平衡水平时,一般要考虑以下三个问题:第一,考虑到包括操作系统在内的整个监控主站的稳定性,监控主站不允许长期满负荷运行。换句话说,监控主站正常运行时,必须保有一定额度的备用资源。根据以往的运行经验,在变电站正常运行时,这个额度不应低于50;变电站发生故障时,不应低于20。第二,监控主站要能对变电站的各种运行状态应付裕如,不仅能够在变电站正常运行时,可靠、实时地完成站内各装置与运行人员之间的信息转换和传输,更重要的是,能够在变电站发生故障时,将故障信息可靠、实时地反映给运行人员以及执行运行人员的控制命令。在变电站正常运行时,站内各装置定时上送遥测、遥信等报文,数量较少,处理过程也比较简单,监控主站的负载不高;但当变电站发生故障时,有可能会引起多个保护与测量装置同时上送报文,这些故障报文的处理过程远较遥测及遥信报文复杂,从而使监控主站的负载比变电站正常运行时增加很多。这种较大的负载差距就要求在变电站正常运行时,所占用的系统资源不能太多,必须保有一定的备用供监控主站应付变电站内的故障。而且,即使在变电站发生故障时,监控主站也不能占用全部CPU资源,需要保有一定的稳定裕度。第三,监控主站还要为操作系统的管理任务留有一定的备用。因为Windows95和NT的日常管理任务,如日志记录等,需要占用一些系统资源,特别是NT,其安全性较高,但管理任务也较多,需要占用的系统资源也多。
以往的变电站自动化系统,其监控主站大多采用问答式规约、通过RS-232串口与站内装置通信。由于串行通信速度较慢,所以监控主站的负载较低,资源平衡对可靠性的影响还不显著。随着用户对自动化系统的性能提出日趋严格的要求,使得变电站的站内通信量日益增大,特别是在变电站发生故障时,有可能会引起多个保护与测量装置同时上送报文,可使通信量达到14 000B/s以上。这样,速度较慢的串行通信就远不能适应这么大的通信需求,就需要采用多任务的并行处理方式来完成数据处理。由于监控主站的多个任务争用系统的资源很容易造成资源的紧张,必须注意监控主站各个任务之间的资源平衡,才能保证系统的可靠性。特别是对于电压等级较高、规模较大的变电站更是如此。
本文首先详细分析变电站自动化系统的监控主站的任务,估算出监控主站在变电站正常运行时的资源平衡水平;随后,针对采用WindowsNT所提供的基于线程的多任务机制所实现的监控主站,根据资源平衡的原则对其进行实验室测试,并对不足之处作出了改进。
2 变电站自动化系统概述
在分布式变电站自动化系统中,采用美国ECHELON公司的LonWorks作为站内通信网,把站内的保护、测量、控制及通信装置与监控主站联接起来。监控主站与装置通过站内通信网交换信息[1]。其结构如图1所示。
图1 变电站自动化系统结构示意图
Fig.1 Skeletondiagramofsubstationautomation
目前,LonWorks通信网以及站内的各种装置已广泛应用于现场,其可靠性已得到证明。这样,监控主站的可靠性就成为首当其冲的问题。
在分布式变电站自动化系统中,监控主站主要完成两项任务:其一是接收并解释站内保护、测量等装置发送的上行报文,并将结果通过友好、直观的人机界面反映给变电站的运行人员;其二是接收并解释运行人员通过人机界面下达的控制命令,随后通过LonWorks将其下传至保护及控制装置。
由于在变电站正常运行时,一次设备的运行状态变化不大,站内的保护及测量等装置定时上送遥测与遥信报文。这些报文的处理过程比较简单,而且丢弃一些报文并不会丢失变电站运行状态的变化,因此,在变电站正常运行时,监控主站的工作负载较小,实时性的要求也相对较低,对资源的需求就比较有限。但是,当变电站发生故障时,有可能会引起多个装置一起上送报文,使得网上的通信量大增,并且大部分故障报文,诸如保护动作报文、保护告警报文、SOE报文,其处理过程比较复杂,而且,这些报文相对于遥测及遥信报文有较高的优先级,必须迅速、准确地将故障信息通知运行人员,这就使得监控主站的工作负载较变电站正常运行时大大加重,对实时性的要求也更高,所以对资源的需求水平大大提高了。
为保证监控主站的实时性,本文采用支持抢先式多任务的WindowsNTWorkstation作为操作系统,利用NT提供的基于线程的多任务机制以并行方式实现接收报文和处理报文,以确保报文不会丢失。因此,可以把监控主站的任务分解为若干个元任务,每个元任务由一个线程来完成。
3 WindowsNT的资源监视机制[2,3]
目前,PC机大多采用Intel公司的Pentium及其以上的处理器。这些处理器均提供了多重运行模式,并给运行于这些模式的应用程序不同级别的特许权访问硬件。WindowsNT采用了其中的两个模式:特许模式(内核模式)和非特许模式(用户模式)。运行在特许模式的应用程序可以直接访问硬件和系统中软件资源。WindowsNT根据可靠性和性能来确定具体的应用程序运行于何种模式。
在WindowsNT中,Win32子系统负责所有的用户输入和输出,在核心(特权)模式运行,对整个系统的性能有重要影响。另外,由于WindowsNT是支持抢先式多任务调度的操作系统,因此当系统中存在有多个任务时,NT会根据任务的优先级以及轮转式时间片分配来调度各个任务,其结果是使所有任务都有机会被执行,不会有任何一个任务长时间独占CPU,而剥夺其他任务的运行机会。
在WindowsNT所提供的管理工具集中,有一个工具名叫“性能监视器”(performancemonitor),是用来监测本地计算机或网络上其它计算机性能的图形工具。在每一台计算机上,可以借助性能监视器查看不同对象,如处理器、内存、高速缓存、线程和进程的活动。这些对象都有一套互相关连的计数器组,提供关于设备用法、队列长度和延迟的信息,以及用于测量吞吐量及内部拥塞的信息。
在变电站自动化系统的监控主站中,主要监视对象为中央处理器的处理器时间,它是以处理器运行非空闲线程所经历时间的百分比来表示的,其值可以被视为用于处理有效工作的时间比。每一个处理器在空闲时将会指定一个空闲线程(systemidleprocess)来消耗未被任何其他线程使用的处理器时间片。
对于采用WindowsNT的多进程或者多线程方式实现的多任务应用程序,由于各个进程或线程之间也需要争用CPU,因此就会使系统的资源状况更趋紧张。对于基于多线程机制实现的监控主站,还需要监视线程(thread)的处理器时间,其值表示该线程使用处理器来运行命令所花费时间的百分比。监视这个对象可以知道在系统中存在多个线程的情况下,各个线程所占用的处理器资源。
4 影响监控主站资源平衡的因素
在变电站自动化系统中,监控主站的工作负载主要包括以下四部分:①上、下行报文的传输;②报文中所包含的数据的格式转换,例如遥测量在报文中以二进制编码表示,送到人机界面时则需要将其转换为实数;③报文处理所涉及的画面刷新,如保护动作报文的处理就需要立即弹出大幅而且醒目的消息框,将消息通知给运行人员,遥信报文的处理也需要改变断路器、隔离开关的图形显示。前者的画面刷新幅度较大,后者则较小;④某些重要信息的打印,诸如保护动作信息、SOE报文、遥信变位等。
对监控主站所做的测试表明,前两个任务占用的资源较少,而后两个任务则要占用较多的CPU时间片。因此,本文进一步对打印服务与画面刷新幅度对系统性能的影响进行了比较测试。测试所用的机器配置为PentiumII266 MHz、64 M内存。测试结果如表1和表2所示。
表1 打印任务对监控主站的CPU负载水平的影响
Tab.1 CPUloadofthehostaffectedbyprinttasks序号无打印任务时的有打印任务时的打 印 CPU负载水平CPU负载水平效 果1070满意23078满意35395满意47396满意58898一般6100100不满意注:1. 测试所采用的打印机为EPSONLQ1600K,打印效果是以监控主站上只有打印任务时的效果为基准,经过比较得出的;
2. 监控主站上只有打印任务时的CPU利用率在三种配置的PC机上进行了测试,其结果均在70左右。这三种配置分别是(1)Pentium133 MHz,48 M内存;(2)Pentium166 MHz,56 M内存;(3)PentiumII266 MHz,64 M内存。表2 画面刷新幅度对监控主站的CPU负载水平的影响
Tab.2 CPUloadofthehostaffectedbydisplayrefreshing报文速度画面刷新幅度(B/s)0481621 0003037537311 17015202456注: 画面刷新幅度以一个显示面积约为2 cm2的椭圆为基准,‘0’表示没有画面刷新,‘4’表示有4个这样的椭圆需要刷新,‘8’和‘16’依此类推。
从表1和表2中的数据可以得出以下结论:
(1)消息打印对系统资源的需求较大,特别是当监控主站收到报文的速度较快时,打印服务将使CPU的负载水平达到稳定裕度的边缘;
(2)画面刷新对资源的需求与刷新幅度有关,需要刷新的画面的面积越大,占用的CPU资源就越多。5 监控主站的资源平衡水平
在变电站发生故障时,一方面,装置上送的报文的数量要比正常运行时多得多,另一方面,故障报文的处理过程也比遥测报文复杂得多,并且还需要用针式打印机将故障信息打印出来。在大部分时间内,变电站都运行于正常状态。因此,需要确定在变电站正常运行时,允许监控主站占用的CPU时间。这要依据下面三个原则:
(1)在变电站发生故障时,监控主站所收到的上行报文的数量是变电站正常运行时的2倍以上,而且,对于故障报文的处理也比遥测、遥信等报文的处理复杂,所以可以估算监控主站在变电站发生故障时的工作负载是其正常运行时的3倍;
(2)监控主站需要将故障信息打印出来;
(3)考虑到操作系统的稳定性以及系统管理的需要,监控主站必须保有一定裕度,而不能长期满负荷运行。
从表1可以看出,在得到比较满意的打印效果,并且保有一定的稳定裕度的情况下,监控主站的CPU负载水平最大不能超过75 。也就是说,在变电站发生故障时,监控主站处理上行报文所占用的CPU资源不能超过75 。因此,在变电站正常运行时,监控主站的CPU负载水平应为25 左右,不能超过30 。
6 基于多线程的监控主站的资源平衡
在通信量不断增长的情况下,为了满足系统实时性的要求,本文采用多个线程实现报文的传送和处理。这就需要同步与序列化多个线程的行为,以免发生访问冲突,从而极大地增加了程序的复杂性,使潜在问题大为增加。所以,本文除了对监控主站进行代码检查、功能测试等常规测试外,还根据资源平衡的原则对其进行了测试,以保证可靠性。
首先,监控主站建立两个线程,分别负责接收报文和处理报文。这两个线程通过共享缓冲区交换数据。为避免对该缓冲区的访问冲突,设置了一把“锁”和与之相对应的“钥匙”。只有取得“钥匙”的线程才能读写缓冲区。两个线程对“钥匙”有平等的访问权,先请求者先得到,后来的只好等待。测试结果表明,监控主站虽然能够满足实时性的要求,不会丢失报文,但是CPU的利用率达到了100,这种结果当然不能令人满意。后来发现问题出在接收报文线程与解释报文线程的通信方式上。测试表明,两个线程通过共享缓冲区来通信非常耗费系统CPU资源,效果不理想。随后,针对该问题,将这两个线程的执行方式由对等改为主从,即接收报文线程收到报文后,再启动解释报文线程,将报文交给它去处理。此时,这两个线程并行执行。后者处理完这一批报文后,从系统退出。测试结果表明,在站内通信网的通信速度为11 170B/s时,这种方式的CPU利用率只有30。但可用内存随着测试时间的延长而逐渐减少,其原因是线程的建立和退出要耗费少量内存资源,无法归还给系统。最后,两个线程改为通过系统公共队列交换数据,将管理队列、避免存取冲突的工作交给操作系统负责。测试结果表明,采用这种方式后,监控主站所占用的CPU资源保持在低水平上,可用内存也保持稳定。
由上可见,控制资源平衡水平在保证监控主站的可靠性上起到了很关键的作用。特别是对于多线程程序,其作用更加明显。
7 结论
对于变电站自动化系统来说,可靠性是最重要的目标。采用监控主站的资源平衡作为其可靠性控制指标,能够确保包括操作系统、人机界面等在内的整个主站系统的可靠性。特别是基于Windows多任务机制实现的监控主站,由于存在任务之间的通信问题,资源平衡对于系统可靠性的保证就显得更加重要。
作者简介:王海猷 男,1973年生,博士研究生,研究方向为变电站自动化。贺仁睦 女,1944年生,博士,教授,博士生导师,主要研究方向为负荷建模及电力系统的分析与控制。
作者单位:华北电力大学(北京)电力工程系,100085北京清河
参考文献
1 杨奇逊.变电站综合自动化技术发展趋势.电力系统自动化,1995;(10)
2 SchildtH.WindowsNTprogramminghandbook.北京:学苑出版社,1994
3 TaylorP著,李增民、王世本等译.WindowsNT4管理员手册.北京:机械工业出版社,1997
安防之家专注于各种家居的安防,监控,防盗,安防监控,安防器材,安防设备的新闻资讯和O2O电商导购服务,敬请登陆安防之家:http://anfang.jc68.com/