专利名称:对开关输入信号跳变时序进行记录的方法
技术领域:
本发明属于工也控制领域,特别是涉及对开关输入信号跳变时序的记录领域。
背景技术:
SOE (Sequence Of Event)事件顺序记录,记录故障发生的时间和事件的类型,比如某开关某时某分某秒某毫秒发生什么类型的故障,是故障和系统异常分析的主要依据。开关输入信号主要应用在工业控制领域中,无论是在压力还是电量的控制方面都有广泛的应用。开关输入信号只有“开”和“关”两种状态,没有信号大小、方向之分,如果 开关量在信号输入时发生跳变,将会对整个受控设备产生很大影响,严重的会将致使整个控制系统瘫痪,造成人身伤亡,对工业流程造成很大的损失。开关输入信号的跳变时间很短、多路并发,是发生在一瞬间的事件,跳变时序不易记录,本发明通过SOE算法高速对数据进行采样,并对采样数据记录、存储历史状态,存储时间大于噪声滤波宽度,从历史记录中查找有效的跳变信号,滤除噪声等无效的跳变沿,精确开关输入信号的跳变时序并记录。
发明内容
本发明针对现有技术中存在的开关输入信号跳变事件短,多路并发,硬件滤波成本高、准确性差,不易记录跳变时序的问题,本发明通过设计一种对开关输入信号跳变时序进行记录的方法,通过高频率采样得到开关输入信号的跳变信息,解决了开关输入信号跳变时间短、不易测试和记录的问题,而且得到的数据精度较高。实现上述发明目的的本发明的技术方案为,一种对开关输入信号跳变时序进行记录的方法,其具体步骤如下
(1)采样开关输入信号值DINewSts,即采样值;
(2)将采样值DINewSts与SOE状态值DISOESts进行异或比较运算,DUUMP = DINewSts ADISOESts^当DIJUMP值为I时,发生跳变,执行步骤(3);否则继续采样;这里的DIJUMP是跳变记录值;
(3)将跳变记录DIJUMP存入跳变缓冲区DIChangeRecord,依据DDUMPk &DUUMPk] &DIIUMPt2 &--■&DUUMPi &DnUMPtl = 0作与运算的结果判断该跳变记录是否为稳定跳变,这里DljUMPfDIjUMPH是从k时刻向前至i_l时刻的跳变记录值,如果为稳定跳变,通过该公式查找到首次稳定跳变时刻i,并进入步骤(4)S0E事件处理流程;否则对下一个跳变记录利用该公式进行判断;
(4)用当前所在的稳定跳变时刻k与首次稳定跳变时刻i作减法运算T=k-i,得到一个稳定时间T ;
(5)比较所得的稳定时间T与滤波周期TMETICK的大小,若T不小于滤波周期TMETICK,则进入步骤(6)查找首次抖动跳变时刻jsta ;若T小于滤波周期TMETICK,则判断下一个稳定时刻重复步骤(4)和步骤(5);(6)从上一个滤波周期的j时刻开始,这里j=i_TMETICK,至时刻i之间的每个跳变记录作加&DUDlvIPj > 0运算,加 值为所有稳定跳变记录作与运算,即DnUMPlt ADUUMPk4 &DUDMPk.2=声—3£2^所得的结果,如果运算结果成立,则判定该j时刻为首次抖动跳变发生的时刻;如果运算不成立,判断j的下一个时刻的跳变记录,直至时刻i,若直至跳变时刻i均未发生抖动跳变,则将时刻i视为首次跳变发生的时刻,将i时刻的记录作为首次跳变记录并进入步骤(8);
(7)若在j时刻或j与i的中间某时刻找到首次抖动跳变记录,则不用继续查找,进入步骤(8);
(8)查找到第一次跳变记录后,通过公式DISOESts= DISOESts ~ DIJump更新稳定跳变后的开关信号状态值,并将查找到的时刻存入SOE缓存中,并将所有跳变记录清除,退出程序。
进一步的,通过所述步骤(6)查找首次抖动跳变记录时,查找完抖动阶段所有时刻仍未查找到首次跳变记录,通过公式^(~DIJUMPj)即判断值与DIJump的逆值作与运算所得的值是否为零,若值为零,说明抖动阶段无跳变,稳定跳变的首次跳变记录即为首次跳变不为零,则进入步骤(6)继续查找。本发明查找完抖动阶段所有时刻后的进一步判断,使整个查找程序更为完整,更为严谨。优选的,所述采样周期为200辦。优选的,所述滤波周期为5ms。采样周期小于滤波周期,保证采样得到的数据的精确度,使得采样得到的数据与实际发生的事件误差最小,保证所记录的跳变时序的准确性。开关输入信号的跳变是瞬间发生的事件,开关输入信号的跳变时序很难精确的得到并记录,本发明利用SOE算法采用高分辨率的采样周期采样,能精确得到并准确的记录开关输入信号的跳变时序,解决了开关输入信号跳变发生时间短、时序不易测试的问题,同时可针对多路开关输入信号同时进行采样记录,而且本发明方法采用纯软件,减少了硬件滤波的成本。
图I为本发明对开关输入信号跳变时序进行记录的方法流程 图2为本发明对开关输入信号跳变时序进行记录的方法判断稳定跳变及查找首次稳定跳变的实施例;
图3本发明对开关输入信号跳变时序进行记录的方法查找首次跳变记录的实施例;
图4本发明对开关输入信号跳变时序进行记录的方法开关输入信号多条通道跳变实施例;
图5本发明对开关输入信号跳变时序进行记录的方法开关输入信号清除跳变记录后的状态实施例。
具体实施例方式为便于对本发明技术方案的理解,下面结合附图来详细描述本发明的记录过程。
本发明是一种对开关输入信号跳变时序进行记录的方法,如图I所示,其具体步骤如下
(1)以200蜱的采样周期读取最新的开关输入信号值即DI值DINewSts,DINewSts即采样值;
(2)将采样值DINewSts与SOE状态值DISOESts进行异或比较运算,DUUMP = DINewSts ADISOESts^判断本次跳变结果,当DIJUMP值为I时,发生跳变,执行步骤(3);否则继续采样;这里的DIJUMP是跳变记录值;
(3)将跳变记录DIJUMP存入跳变缓冲区DIChangeRecord,依据DUUMPk &DmJMPh4 &DnilMP^2 DIJTJMPi &DITUMPtl 二 0作与运算的结果判断该跳变记录是否为稳定跳变,这里DIJUMPk…DIJUMPh是从k时刻向前至i_l时刻 的跳变记录值,程序中将所有稳定时刻跳变记录作与运算的值记录为DIChangeStsOld,DIChangeStsOld与前一时刻的运算值记为DIChangeSts ,如果为稳定跳变,通过该公式查找到首次稳定跳变时刻i,并进入步骤(4) SOE事件处理流程;否则对下一个跳变记录利用该公式进行判断;
(4)用当前所在的稳定跳变时刻k与首次稳定跳变时刻i作减法运算T=k-i,得到一个稳定时间T ;
(4)比较所得的稳定时间T与滤波周期TMETICK的大小,滤波周期TMETICK为5ms,为稳定时限3. 8ms和程序运行时间的总和,若T不小于滤波周期TMETICK,则进入步骤(6)查找首次抖动跳变时刻jsta ;若T小于滤波周期TIMETICK,则判断下一个稳定时刻重复步骤
(4)和步骤(5);
(6)从上一个滤波周期的j时刻开始,这里j=i_TMETICK,至时刻i之间的每个当前时刻跳变记录DIJUMP与DIChangeStsOld作与运算,如果运算结果成立大于零,则判定该j时刻为首次抖动跳变发生的时刻;如果运算等于零,判断j的下一个时刻的跳变记录,直至时刻i,若直至跳变时刻i均未发生抖动跳变,则将时刻i视为首次跳变发生的时刻,将i时刻的记录作为首次跳变记录并进入步骤(8);
(7)若在j时刻或j与i的中间某时刻找到首次抖动跳变记录,则不用继续查找,进入步骤(8);
(8)查找到第一次跳变记录后,通过公式DISOESts= DISOESts ~ DIJump更新稳定跳变后的开关信号状态值,并将查找到的时刻存入SOE缓存中,并将所有跳变记录清除,退出程序。通过所述步骤(6)查找首次抖动跳变记录时,查找完抖动阶段所有时刻仍未查找到首次跳变记录,通过公式DIChangeStsOld = DIChangeStsOld & CDIJump)即判断DIChangeStsOld值与当前时刻的DIJump的逆值作与运算所得的DIChangeStsOld值是否为零,若值为零,说明已查找了全部的抖动阶段时刻,当前时刻为稳定跳变的首次跳变,稳定跳变的首次跳变记录即为首次跳变;SDIChangeStS01d值不为零,则进入步骤(6)继续查找。如图I中所示,在查找稳定跳变首次跳变时刻i时,程序查找到i-时刻,即向前一个时刻进行判断查找,所以在步骤(6)中查找抖动阶段首次跳变时刻jsta时,通过运算i!=j++判断完全部抖动阶段后,将i += 2时刻作为稳定跳变首次跳变时刻。
开关输入信号可有8条,16条,32条,上述实施结构针对一条开关信号输入通道阐述,查找多条输入通道跳变记录时原理同一条通道。如图2所示为本发明对开关输入信号跳变时序进行记录的方法判断稳定跳变及查找首次稳定跳变的实施例,针对16通道的开关输入信号,从0到15通道,通道9在i+1时刻发生跳变,且保持开关输入信号值跳变;利用公式DITDMP1. S-DITUMPk4 &DITUldPk.2&DEniMPi4 = 0,计算得出 i+1 至 i+18
时刻的稳定时限小于稳定时限,认为该跳变没有稳定,仅对跳变事件进行记录,但不予处理;i+19时刻,认为跳变达到稳定。如图3所示为本发明对开关输入信号跳变时序进行记录的方法查找首次跳变记录的实施例,通道9发生0到I的跳变,在记录38时刻测得跳变稳定(K=38),利用跳变稳定判断可得到首次稳定跳变记录为记录20 (i=20);从记录0开始查找在抖动阶段的首次发生记录。在该图中,从记录0开始至记录3曾发生跳变振荡,因此,通道9的首次跳变发生记录为记录O。如图4所示为本发明对开关输入信号跳变时序进行记录的方法开关输入信号多条通道跳变实施例,其测试记录方法与一条通道的方法相同。图5本发明对开关输入信号跳变时序进行记录的方法开关输入信号清除跳变记录后的状态实施例,查找到开关输入信号的首次跳变时刻并记录后,清除所有跳变记录,开始下一周期的采样记录。本发明设计的对开关输入信号跳变时序进行记录的方法,针对开关输入信号跳变瞬间发生,时间难以记录的问题,利用高分辨率采样的方法通过SOE记录,能精确的查找并记录开关输入信号的跳变时序,几乎零误差,得到的数据精确度很高,为开关器件的使用前设置提供的数据依据;还可同时对多通道进行采样记录,如果多路同时发生跳变,并且第一次跳变一致时,仅需要保存一条记录,可减少在通讯过程中的多余数据通信开销;而且由于本发明中方法采用纯软件,减少了硬件滤波的成本。
以上所述,为发明的较典型的实施案例,并非对发明作任何限制,凡是根据本发明技术实质对以上实施例作出的任何改进技术方案均仍属于本发明技术方案的保护范围内。
权利要求
1.ー种对开关输入信号跳变时序进行记录的方法,其特征在于其具体步骤如下 (I)采样开关输入信号值DINewSts,即采样值;(2)将采样值DINewSts与SOE状态值DISOESts进行异或比较运算,MMP = DIMewSts ADISOESts-当dijump值为i时,发生跳变,执行步骤(3);否则继续采样;这里的DIJUMP是跳变记录值; (3)将跳变记录DIJUMP存入跳变缓冲区DIChangeRecord,依据DU0MP,. & IMMPw & MJMPm & …IDUUMP1 & DIIIJMPi4 = 0 作与运算的结果判断该跳变记录是否为稳定跳变,这里DIJUMPf DIJUMPh是从k时刻向前至i_l时刻的跳变记录值,如果为稳定跳变,通过该公式查找到首次稳定跳变时刻i,并进入步骤(4)S0E事件处理流程;否则对下ー个跳变记录利用该公式进行判断; (4)用当前所在的稳定跳变时刻k与首次稳定跳变时刻i作減法运算T=k-i,得到ー个稳定时间T ; (5)比较所得的稳定时间T与滤波周期TMETICK的大小,若T不小于滤波周期TMETICK,则进入步骤(6)查找首次抖动跳变时刻jsta ;若T小于滤波周期TMETICK,则判断下一个稳定时刻重复步骤(4)和步骤(5); (6)从上ー个滤波周期的j时刻开始,这里j=i_TMETICK,至时刻i之间的每个跳变记录IlIUMPj与作& DMMPi > 0运算值为所有稳定跳变记录作与运算,即DniMPk IDITlHPtl &DIIllffl4 &-IDniIMPl = 勝d所得的结果,如果运算结果成立,则判定该j时刻为首次抖动跳变发生的时刻;如果运算不成立,判断j的下一个时刻的跳变记录,直至时刻i,若直至跳变时刻i均未发生抖动跳变,则将时刻i视为首次跳变发生的时刻,将i时刻的记录作为首次跳变记录并进入步骤(8); (7)若在j时刻或j与i的中间某时刻找到首次抖动跳变记录,则不用继续查找,进入步骤(8); (8)查找到第一次跳变记录后,通过公式DISOESts= DISOESts ~ DIJump更新稳定跳变后的开关信号状态值,并将查找到的时刻存入SOE缓存中,并将所有跳变记录清除,退出程序。
2.如权利要求I所述的对开关输入信号跳变时序进行记录的方法,其特征在于,通过所述步骤(6)查找首次抖动跳变记录吋,查找完抖动阶段所有时刻仍未查找到首次跳变记录,通过公式= (- MTOMPpg卩判断jump臟廉与Dijump的逆值作与运算所得的^^mPmKi值是否为零,若值为零,说明抖动阶段无跳变,稳定跳变的首次跳变记录即为首次跳变值不为零,则进入步骤(6)继续查找。
3.如权利要求I所述的对开关输入信号跳变时序进行记录的方法,其特征在于,所述采样周期为200/S。
4.如权利要求I所述的对开关输入信号跳变时序进行记录的方法,其特征在于,所述滤波周期为5ms。
全文摘要
本发明公开了一种对开关输入信号跳变时序进行记录的方法,具体步骤如下(1)采样开关输入信号值;(2)将采样值与SOE状态值进行比较运算,判断是否发生跳变;(3)判断是否为稳定跳变;(4)查找出该稳定跳变的首次跳变记录并记录;(5)计算稳定时间,并比较稳定时间与滤波周期的大小;(6)查找首次跳变;(7)查找到首次跳变记录后记录跳变时刻;(8)处理所有跳变状态,退出程序。本发明通过设计一种对开关输入信号跳变时序进行记录的方法采用高分辨率的采样周期,解决了开关输入信号跳变时间短、硬件滤波成本高,可靠性差、不易测试的问题,特别是可对多路开关输入信号同时进行采样记录时,有效提高了检测速度。
文档编号G11C27/02GK102664042SQ20121011606
公开日2012年9月12日 申请日期2012年4月19日 优先权日2012年4月19日
发明者樊红斌 申请人:北京新航智科技有限公司