新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM的開關量信號采集模板的設計

        基于ARM的開關量信號采集模板的設計

        作者: 時間:2011-06-25 來源:網絡 收藏

        為了準確記錄開關量變位的時間,通常情況下采用定時中斷來掃描讀取BI狀態,B板的掃描周期為lms,并采用該中斷進行SOE時鐘的守時,掃描周期為1ms時SOE分辨率可達到2ms。沒有去抖動功能常的開關量采集流程為:SOE時鐘增長1ms;讀取BI的狀態;判斷開關量是否變位,如果有變位,則記錄變位信息,包括BI的點序號、狀態、變位時間和變位標記等。為了判別開關量是否發生抖動,軟件在變位信息結構體中增加了一個抖動計數器成員變量,如果開關量有變位,先不記錄變位信息,而是將抖動計數器加1,判斷是否達到抖動延時檢測時間,如果達到,則確認開關量發生了變位;如果開關量沒有變位,則將抖動計數器清零。這樣如果一個開關量在抖動延時判別時間之內發生變位又恢復至原先的狀態,軟件將不記錄其發生的變位信息,從而達到取抖動的目的。B板帶有去抖動功能的1ms開關量定時掃描中斷服務程序的算法如圖6所示。

        比較帶抖動功能和不帶抖動功能的開關量采集算法,增加去抖動功能時,只增加了一個抖動計數器變量,在記錄開關量變位信息之前,對該變位信息進行延時確認,增加的CPU程序執行代價非常小,沒有影響中斷服務程序的正常運行。因此,該算法速度快,效果也十分理想。該算法的缺陷在于如果開關實際變位的過程中發生了抖動,將無法記錄到準確的開關變位的開始時間。如果要達到這一目的,需要連續記錄開關量變位的軌跡,然后再進行開關量變位開始時間的確定。不過這種算法的CPU開銷比較大,B板的軟件設計沒有采用這種算法。考慮到干擾信號的偶然性,又有硬件濾波電路的配合,圖6所示的算法是一種行之有效的好方法。
        采樣數據處理任務主要完成將BI定時中斷采集服務程序采集到的開關量變位信息轉換成SOE記錄,并添加到SOE隊列之中,處理算法如圖7所示。該算法主要實現了兩項功能:SOE隊列元素的時間修正和SOE隊列操作。由于BI中斷程序記錄的BI變位時間是去抖動判別確認時的時間,因此生成SOE記錄時要將該時間修正到BI開始變位的時間。SOE隊列操作就是將SOE元素添加到SOE隊列之中,在添加SOE元素時,如果隊列已滿,需要將最早的SOE元素刪除,再將新生成的SOE元素添加到隊列之中。正常情況下,M板每O.5秒與B通信一次,召喚B板采集生成的開關最信息,根據現場經驗,即便開關量變位發生雪崩效應,16路BI在0.5秒之內也不會產生64個SOE記錄,軟件實現時設置的SOE隊列的長度為64。當然,如果發生M板與B板的通信長期中斷,SOE隊列會有溢出發生,這種情況一般都是裝置故障,需要檢修予以排除。此外,BI變位信息和ISOE隊列的訪問操作與其它任務和中服務程序有互斥要求,需要使用臨界區加以保護。

        3 結論
        裝置定型開發完成之后,在國電北侖電廠三期、中山嘉明電廠二期UPS電源監控和戶縣惠安化工廠19口水井的馬達自動控制中投入使用,運行結果表明,B板采集的準確性、事件順序記錄分辨率與實時性等性能指標符合相關標準的要求,運行穩定可靠,達到了預期的設計目的。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 乐清市| 安丘市| 兴山县| 英超| 昭苏县| 广东省| 太康县| 泾源县| 南康市| 铜梁县| 长岭县| 福州市| 安丘市| 宝丰县| 玉门市| 白银市| 清徐县| 辛集市| 鞍山市| 额敏县| 武胜县| 普定县| 禹城市| 东丰县| 治多县| 揭东县| 丹阳市| 嫩江县| 太仆寺旗| 阳曲县| 宁强县| 乌兰浩特市| 隆化县| 遂川县| 昌吉市| 昌图县| 婺源县| 天门市| 韩城市| 广河县| 邯郸市|