一种模块化SOE装置的设计与实现
2015-12-11裴文龙裘宏波程海栗
裴文龙,裘宏波,程海栗
(重庆川仪自动化股份有限公司,重庆 401121)
0 引言
SOE是英文Sequence Of Event的缩写,SOE装置即事件顺序记录装置,是一种记录多个开关量输入信号状态变化的动作和时间的装置。事件指带有时间戳的开关量输入信号状态变化动作。事件的时间用以标识事件发生的先后顺序。一般SOE的时间分辨率要求不大于1ms[2]。SOE主要用于故障和事故的原因分析,在电力系统应用比较广泛。本文介绍重庆川仪自动化股份有限公司研发的一种SOE装置——PAS-32SOE。
1 总体方案
为兼容PAS100控制系统结构体系,PAS-32SOE采用模块化结构,由集控模块和若干(≤8)个采集模块构成,各模块通过RS485总线连接,如图1所示。
其中,采集模块设计为16通道,用于采集和缓存事件记录;集控模块用于各模块时间同步控制,以及收集各采集模块的事件记录并转发给外部请求设备;集控模块与各采集模块通过RS485总线实现互联。
2 硬件方案
该装置由集控模块、采集模块和RS485总线3部分组成。集控模块硬件结构框图如图2所示。
该模块既要求实现各采集模块事件记录的快速读取和存储,又要实现各模块精确的时间同步,还要实现对外数据通信,所以其MCU选取MC9S12XEQ384。MC9S12XEQ384是飞思卡尔公司的一种16位双核MCU,其运行效率高,外围资源丰富。
相对集控模块,采集模块的处理任务比较少,选用普通的8位MCU即可实现功能。采集模块的硬件结构框图如图3所示。
为了保证各个模块时钟的一致性,集控模块和采集模块采用规格和参数相同的晶体振荡器作为系统运行时钟。上述模块涉及的具体硬件电路都是比较成熟的数字电路,实现起来比较容易,这里就不再赘述。
3 关键技术
SOE装置与一般开关量信号采集部件的主要区别在于时间戳。SOE装置记录事件的时间戳要求具有极高的分辨率,因此采用什么样的滤波技术以确保事件时间戳的高精准度是SOE装置的一项关键技术。模块化的结构提高了SOE装置的可扩展性和灵活性,但是也带来另外一个问题——不同模块时间的不一致性。采用何种时间同步策略和方法实现不同模块时间的高度一致性是模块化SOE装置的一项关键技术。
图1 PAS-32SOE结构图Fig.1 PAS-32SOE chart
图2 集控模块硬件框图Fig.2 Control module hardware diagram
图3 采集模块硬件框图Fig.3 Sample module hardware diagram
图4 事件滤波示意图Fig.4 Event filter schematic diagram
图5 PAS-32SOE结构图Fig.5 PAS-32SOE chart
图6 集控模块同步定时器中断服务函数流程Fig.6 Control module synchronous function timer interrupt service process
图7 集控模块主程序流程Fig.7 Control module is the main program flow
图8 采集模块250us定时器中断服务函数流程Fig.8 Sample module 250us timer interrupt function processes
3.1 信号滤波
开关量信号的滤波主要是SOE装置事件去抖动不同于一般开关量信号,它不仅要求有效地去除信号抖动,还要求准确地记录信号变化的时间。因此采用图4所示滤波方案。
图9 采集模块通信断帧定时器中断服务函数流程Fig.9 Sample module communication broken frame timer interrupt function flow
图10 采集模块主程序流程Fig.10 Sample module main program flow
图11 测试数据截图Fig.11 Test data capture
若信号状态变化持续时间≥td,则认为是有效事件,并以信号变化前沿时间作为事件的时间戳;若信号状态变化持续时间<td,则认为是抖动信号。该滤波方法不仅具有原理简单、实现方便和运算快捷等特点,而且能有效地去除干扰信号,同时也便于准确地确定事件的时间。
3.2 时间同步
采用规格和参数相同的晶体振荡器作为各模块的时钟源能有效提高不同模块的时间一致性。晶体振荡器虽然能提供极高的时钟精度,但是制造误差和温漂影响等因素引起的差异在所难免。运行一定时间后,不同模块的时钟就会表现出不同程度的不一致性。这种不一致性难以消除,可以采用一定的时间同步策略尽量减小,以期达到一个可接受的范围。
PAS-32SOE各模块采用的晶体振荡器误差≤±30PPM,则不同模块的时钟差最大为60PPM,那么不同模块的时钟差达到1ms需要的最小运行时间为16.7s。为了保证不同模块时钟差≤1ms,则需在16.7s内对各模块进行时间同步。集控模块是该SOE装置的必备模块,用作该SOE装置的同步时钟基准。集控模块读取采集模块事件记录采用请求-应答方式,实现各模块时间同步使用广播方式。在通信波特率设计为460800bps时,集控模块读取1个采集模块所需时间≤1.5ms,则完成最多8个采集模块所需时间≤12ms;发送广播命令到各采集模块完成时间校准的时间≤1ms。基于如上分析,定义集控模块的一个同步-扫描周期为16ms,即集控模块每16ms执行一次时间同步任务并依次读取各采集模块事件记录。集控模块各周期任务处理流程如图5所示。
各采集模块接收时间同步命令进行时间校准的时差很小,可以忽略不计。这样,通过同一RS485总线既能实现采集模块数据读取,也实现了各模块的时间同步。
4 软件设计与实现
4.1 集控模块
SOE装置以集控模块为同步时钟基准,集控模块每16ms发送一次广播同步帧用以同步各模块的时钟。集控模块的同步时钟基于2ms定时器实现,该定时器中断设为最高优先级,其中断服务函数处理流程如图6所示。
集控模块的主程序在同步命令发送完毕后开始依次读取下挂采集模块的数据并对控制器命令帧予以应答。集控模块主程序软件处理流程如图7所示。
此外,集控模块还需实现事件记录存储以及与外部设备数据通信等功能。通过数据通信,外部设备可以设置集控模块的绝对时间或读取集控模块存储的事件记录。上述功能的实现相对简单,限于篇幅,这里就不一一介绍。
4.2 采集模块
采集模块配置250us定时器中断为最高优先级,用于该模块内部时钟计数和通道采集滤波时间基准,该中断的服务函数程序处理流程如图8所示。
采集模块以3.5字符时间的定时器中断实现通信数据断帧,该中断的服务函数处理流程如图9所示。
事件记录读取命令的应答处理任务对实时性的要求不高,将该任务放在主程序中处理,流程如图10所示。
5 装置测试
给地址号分别为3和4的模块的第1和5通道接入同一开关量信号,待装置运行一定时间后,改变接入信号状态,通过PC机测试软件读取事件记录。图11为测试过程的一个截图。
测试结果显示该SOE装置不同采集模块的不同通道的事件采集记录时间精度达到1ms,且时间一致性符合设计要求。
6 结论
RS485总线是自动化工业控制领域中最常用的一种总线,由于其具有很好的抗干扰能力和较低的成本,因此在工业控制领域得到广泛应用。该装置的硬件设计原理简单,成本不高,采用模块化的设计思想,基于RS485总线,实现了对时间分辨率和同步性要求很高的顺序事件记录的读取和记录功能。测试结果和应用实践证明,该SOE装置不仅具有实现简单、成本低的优点,并且具有使用方便,可靠性好、通用性高等特点。
[1]周斌,鲁国刚,黄国方,等.关于SOE时标方法的探讨[C].2006.
[2]韩跃进.DCS事件顺序记录性能分析及测试[J].江苏电机工程,2007,26(6).
[3]李晓博,瞿丽莉,叶智,等.SOE系统的设计与开发[J].热力发电,2012,41(9).
[4]韩友喜.SOE系统结构优劣分析与研究[J].电子世界,2013(22).
[5]周斌,鲁国刚,黄国方,等.关于时间顺序记录(SOE)分辨率的探讨[C].2008.
[6]陈世慧,柳德志,贾莉.时间顺序记录(SOE)性能测试装置的研究与开发[J].内蒙古电力技术,2008,26(4).