專利名稱:對開關輸入信號跳變時序進行記錄的方法
技術領域:
本發明屬于工也控制領域,特別是涉及對開關輸入信號跳變時序的記錄領域。
背景技術:
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日
發明者樊紅斌 申請人:北京新航智科技有限公司