图1 变电站自动化系统结构示意图
Fig.1 Skeleton diagram of substation automation
目前,LonWorks通信网以及站内的各种装置已广泛应用于现场,其可靠性已得到证明。这样,监控主站的可靠性就成为首当其冲的问题。
在分布式变电站自动化系统中,监控主站主要完成两项任务:其一是接收并解释站内保护、测量等装置发送的上行报文,并将结果通过友好、直观的人机界面反映给变电站的运行人员;其二是接收并解释运行人员通过人机界面下达的控制命令,随后通过LonWorks将其下传至保护及控制装置。
由于在变电站正常运行时,一次设备的运行状态变化不大,站内的保护及测量等装置定时上送遥测与遥信报文。这些报文的处理过程比较简单,而且丢弃一些报文并不会丢失变电站运行状态的变化,因此,在变电站正常运行时,监控主站的工作负载较小,实时性的要求也相对较低,对资源的需求就比较有限。但是,当变电站发生故障时,有可能会引起多个装置一起上送报文,使得网上的通信量大增,并且大部分故障报文,诸如保护动作报文、保护告警报文、SOE报文,其处理过程比较复杂,而且,这些报文相对于遥测及遥信报文有较高的优先级,必须迅速、准确地将故障信息通知运行人员,这就使得监控主站的工作负载较变电站正常运行时大大加重,对实时性的要求也更高,所以对资源的需求水平大大提高了。
为保证监控主站的实时性,本文采用支持抢先式多任务的Windows NT Workstation作为操作系统,利用NT提供的基于线程的多任务机制以并行方式实现接收报文和处理报文,以确保报文不会丢失。因此,可以把监控主站的任务分解为若干个元任务,每个元任务由一个线程来完成。
3 Windows NT的资源监视机制[2,3]
目前,PC机大多采用Intel公司的Pentium及其以上的处理器。这些处理器均提供了多重运行模式,并给运行于这些模式的应用程序不同级别的特许权访问硬件。Windows NT采用了其中的两个模式:特许模式(内核模式)和非特许模式(用户模式)。运行在特许模式的应用程序可以直接访问硬件和系统中软件资源。Windows NT根据可靠性和性能来确定具体的应用程序运行于何种模式。
在Windows NT中,Win32子系统负责所有的用户输入和输出,在核心(特权)模式运行,对整个系统的性能有重要影响。另外,由于Windows NT是支持抢先式多任务调度的操作系统,因此当系统中存在有多个任务时,NT会根据任务的优先级以及轮转式时间片分配来调度各个任务,其结果是使所有任务都有机会被执行,不会有任何一个任务长时间独占CPU,而剥夺其他任务的运行机会。
在Windows NT所提供的管理工具集中,有一个工具名叫“性能监视器”(performance monitor),是用来监测本地计算机或网络上其它计算机性能的图形工具。在每一台计算机上,可以借助性能监视器查看不同对象,如处理器、内存、高速缓存、线程和进程的活动。这些对象都有一套互相关连的计数器组,提供关于设备用法、队列长度和延迟的信息,以及用于测量吞吐量及内部拥塞的信息。
在变电站自动化系统的监控主站中,主要监视对象为中央处理器的处理器时间,它是以处理器运行非空闲线程所经历时间的百分比来表示的,其值可以被视为用于处理有效工作的时间比。每一个处理器在空闲时将会指定一个空闲线程(system idle process)来消耗未被任何其他线程使用的处理器时间片。
对于采用Windows NT的多进程或者多线程方式实现的多任务应用程序,由于各个进程或线程之间也需要争用CPU,因此就会使系统的资源状况更趋紧张。对于基于多线程机制实现的监控主站,还需要监视线程(thread)的处理器时间,其值表示该线程使用处理器来运行命令所花费时间的百分比。监视这个对象可以知道在系统中存在多个线程的情况下,各个线程所占用的处理器资源。
4 影响监控主站资源平衡的因素
在变电站自动化系统中,监控主站的工作负载主要包括以下四部分:①上、下行报文的传输;②报文中所包含的数据的格式转换,例如遥测量在报文中以二进制编码表示,送到人机界面时则需要将其转换为实数;③报文处理所涉及的画面刷新,如保护动作报文的处理就需要立即弹出大幅而且醒目的消息框,将消息通知给运行人员,遥信报文的处理也需要改变断路器、隔离开关的图形显示。前者的画面刷新幅度较大,后者则较小;④某些重要信息的打印,诸如保护动作信息、SOE报文、遥信变位等。
对监控主站所做的测试表明,前两个任务占用的资源较少,而后两个任务则要占用较多的CPU时间片。因此,本文进一步对打印服务与画面刷新幅度对系统性能的影响进行了比较测试。测试所用的机器配置为Pentium II 266 MHz、64 M内存。测试结果如表1和表2所示。
表1 打印任务对监控主站的CPU负载水平的影响
Tab.1 CPU load of the host affected by print tasks
序号
无打印任务时的
有打印任务时的
打 印
CPU负载水平
CPU负载水平
效 果
1
0
70 %
满意
2
30 %
78 %
满意
3
53 %
95 %
满意
4
73 %
96 %
满意
5
88 %
98 %
一般
6
100 %
100 %
不满意
注 :1. 测试所采用的打印机为EPSON LQ1600K,打印效果是以监控主站上只有打印任务时的效果为基准,经过比较得出的;
2. 监控主站上只有打印任务时的CPU利用率在三种配置的PC机上进行了测试,其结果均在70%左右。这三种配置分别是(1)Pentium 133 MHz,48 M内存;(2)Pentium 166 MHz,56 M内存;(3)Pentium II 266 MHz,64 M内存。
表2 画面刷新幅度对监控主站的CPU负载水平的影响
Tab.2 CPU load of the host affected by display refreshing
报文速度
画面刷新幅度
(B/s)
0
4
8
16
21 000
30 %
37 %
53 %
73 %
11 170
15 %
20 %
24 %
56 %
注 : 画面刷新幅度以一个显示面积约为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 Schildt H. Windows NT programming handbook. 北京:学苑出版社,1994
3 Taylor P著,李增民、王世本等译. Windows NT 4管理员手册. 北京:机械工业出版社,1997