基于ARM的開關量信號采集模板的設計
LPC2138的內部本身集成有看門狗電路,但是根據(jù)作者多年從事電力系統(tǒng)自動化產品的設計經驗,由于CPU內部WDT需要軟件編程啟動,在極端情況下,系統(tǒng)死機后該WDT不能對系統(tǒng)進行恢復。為此,在進行本模板設計時,沒有使用LPC2138內部的WDT,而是采用SP706S芯片專門擴展了一個看門狗,用于系統(tǒng)“走死”后的自動恢復。SP706S是一款專門的看門狗復位電路,其定時器延時的時間為1.6秒。電路設計方法是將SP706S的復位輸出引腳與LPC2138復位電路的人工復位引腳相連。由于LPC2138軟件下載的時間要大于1.6秒,硬件設計時設置了一個跳線器用于看門狗的使能/禁止,軟件下載時將跳線帽拔下,模板正常運行時將跳線帽插上。B板的看門狗復位電路如圖4所示。
正常運行時,模板軟件的看門狗定時器任務將定時(1.6秒)清除SP706S的延時計數(shù)器,SP706S不會產生復位模板的信號。軟件“走死”后,由于該任務不再清WDT計數(shù)器,1.6秒之后,SP706S產生復位模板的信號,模板重新啟動運行。
模板軟件運行過程中,軟件的其它任務和異步串行通信收發(fā)器也可能局部“走死”,對于這種局部“走死”的情況,最好是局部恢復而不是模板復位。為此,看門狗定時器任務設計時采用了軟硬看門狗級聯(lián)工作的模式,即硬件看門狗監(jiān)視WDT任務的運行,同時設計多個軟件看門狗定時器監(jiān)視其它任務的運行和異步串口的收發(fā),WDT任務“走死”后復位模板,其它監(jiān)視對象“走死”后進行局部初始化恢復處理,從而實現(xiàn)軟件的可靠性設計。
2 軟件設計
模板軟件采用μC/OS—II作為操作系統(tǒng),軟件的層次結構如圖5所示。模板的應用軟件設計主要工作包括目標板底層驅動程序的編寫和模板I/O功能的設計編程兩部分工作。
目標板底層驅動主要包括1ms開關量定時采集中斷和兩個異步串口中斷的中斷服務程序的編寫,前者響應中斷后讀取16路開關量輸入信號的狀態(tài),后者完成異步串行通信收發(fā)器的控制與數(shù)據(jù)收發(fā)。
模板應用軟件設計主要包括4個任務模塊的編寫,分別是看門狗定時器任務、開關量信號采樣數(shù)據(jù)處理、與M板數(shù)據(jù)通信協(xié)議處理、VTlOO超級終端命令處理等。
限于論文的篇幅,本文對模板軟件實現(xiàn)的細節(jié)不作詳細介紹,僅將帶有去抖動功能的開關量采集算法提取出來進行介紹。
開關量采集軟件部分的主要任務是讀取開關量當前的實時狀態(tài)并記錄開關量變位發(fā)生的時標。在電力系統(tǒng)自動化領域,帶變位時標的開關信息稱為事件順序記錄(SOE),主要用于判別開關量之間變位的先后順序,分析事故發(fā)生的原因。軟件實現(xiàn)時SOE記錄保存在隊列之中。
為了保證系統(tǒng)時間的統(tǒng)一性,裝置M板的時間由上位主站或GPS授時鐘統(tǒng)一對時,M板再給各B板對時,然后M板和B板采用各自的定時器自動守時。B板的時間格式為“秒計數(shù)+毫秒計數(shù)”,秒計數(shù)是相對2000年0時0分O秒的計數(shù)值,毫秒計數(shù)的范圍為0—999,達到1000時自動清零并向秒計數(shù)進位。由于裝置晶振的守時精度較差,為了保證lms的SOE分辨率,每5分鐘應進行一次對時操作。
在開關量采集過程中,由于受到裝置運行現(xiàn)場各種干擾源的影響,經常發(fā)生讀到的開關量狀態(tài)與監(jiān)控對象運行狀態(tài)不一致的情況,造成EMS主站監(jiān)控系統(tǒng)產生大量的虛假告警信息,事件打印機不停地打印,嚴重影響了系統(tǒng)的實用化。因此剔除這些虛假的開關量抖動信息也是軟件設計的一項重要的工作。
針對工業(yè)現(xiàn)場監(jiān)控對象開關量狀態(tài)的特性以及干擾抖動的特點,開關量狀態(tài)大都采用繼電器的觸點指示,開關量本身從0→1或從l→0的機械變位時間一般都比較長(≥80ms),而干擾抖動的時問非常短(一般4ms),SOE又是用來判定不同開關量之間變位的先后順序,因此,采用連續(xù)多次采集到的開關量狀態(tài)來判定BI是否真正變位并不影響開關量采集的實時性和SOE分辨率。事實上,根據(jù)以往現(xiàn)場工程的經驗,采用連續(xù)4次(4ms)采樣進行抖動判斷即可達到非常不錯的效果,可以讓EMS/SCADA系統(tǒng)的事件打印機安靜下來。根據(jù)遠動終端檢測中心的建議,抖動延時判斷的最大時間可以達到100ms。一般情況下,抖動延時判斷時間取lO~20ms就可以了。由于B板開關量信號采樣數(shù)據(jù)處理任務采用OS滴答(Tick)周期(10ms)啟動執(zhí)行,為了防止保存BI變位信息的緩沖區(qū)發(fā)生覆蓋(overlap)訪問沖突,抖動延時判斷的取值應大于10ms,軟件確省的取值為15ms。
評論