正常运行时,模板软件的看门狗定时器任务将定时(<1.6秒)清除SP706S的延时计数器,SP706S不会产生复位模板的信号。软件“走死”后,由于该任务不再清WDT计数器,1.6秒之后,SP706S产生复位模板的信号,模板重新启动运行。
模板软件运行过程中,软件的其它任务和异步串行通信收发器也可能局部“走死”,对于这种局部“走死”的情况,最好是局部恢复而不是模板复位。为此,看门狗定时器任务设计时采用了软硬看门狗级联工作的模式,即硬件看门狗监视WDT任务的运行,同时设计多个软件看门狗定时器监视其它任务的运行和异步串口的收发,WDT任务“走死”后复位模板,其它监视对象“走死”后进行局部初始化恢复处理,从而实现软件的可靠性设计。
2 软件设计
模板软件采用μC/OS—II作为操作系统,软件的层次结构如图5所示。模板的应用软件设计主要工作包括目标板底层驱动程序的编写和模板I/O功能的设计编程两部分工作。
目标板底层驱动主要包括1ms开关量定时采集中断和两个异步串口中断的中断服务程序的编写,前者响应中断后读取16路开关量输入信号的状态,后者完成异步串行通信收发器的控制与数据收发。
模板应用软件设计主要包括4个任务模块的编写,分别是看门狗定时器任务、开关量信号采样数据处理、与M板数据通信协议处理、VTlOO超级终端命令处理等。
限于论文的篇幅,本文对模板软件实现的细节不作详细介绍,仅将带有去抖动功能的开关量采集算法提取出来进行介绍。
开关量采集软件部分的主要任务是读取开关量当前的实时状态并记录开关量变位发生的时标。在电力系统自动化领域,带变位时标的开关信息称为事件顺序记录(SOE),主要用于判别开关量之间变位的先后顺序,分析事故发生的原因。软件实现时SOE记录保存在队列之中。
为了保证系统时间的统一性,装置M板的时间由上位主站或GPS授时钟统一对时,M板再给各B板对时,然后M板和B板采用各自的定时器自动守时。B板的时间格式为“秒计数+毫秒计数”,秒计数是相对2000年0时0分O秒的计数值,毫秒计数的范围为0—999,达到1000时自动清零并向秒计数进位。由于装置晶振的守时精度较差,为了保证lms的SOE分辨率,每5分钟应进行一次对时操作。
在开关量采集过程中,由于受到装置运行现场各种干扰源的影响,经常发生读到的开关量状态与监控对象运行状态不一致的情况,造成EMS主站监控系统产生大量的虚假告警信息,事件打印机不停地打印,严重影响了系统的实用化。因此剔除这些虚假的开关量抖动信息也是软件设计的一项重要的工作。
针对工业现场监控对象开关量状态的特性以及干扰抖动的特点,开关量状态大都采用继电器的触点指示,开关量本身从0→1或从l→0的机械变位时间一般都比较长(≥80ms),而干扰抖动的时问非常短(一般<4ms),SOE又是用来判定不同开关量之间变位的先后顺序,因此,采用连续多次采集到的开关量状态来判定BI是否真正变位并不影响开关量采集的实时性和SOE分辨率。事实上,根据以往现场工程的经验,采用连续4次(4ms)采样进行抖动判断即可达到非常不错的效果,可以让EMS/SCADA系统的事件打印机安静下来。根据远动终端检测中心的建议,抖动延时判断的最大时间可以达到100ms。一般情况下,抖动延时判断时间取lO~20ms就可以了。由于B板开关量信号采样数据处理任务采用OS滴答(Tick)周期(10ms)启动执行,为了防止保存BI变位信息的缓冲区发生覆盖(overlap)访问冲突,抖动延时判断的取值应大于10ms,软件确省的取值为15ms。