趙乾 李喜鴿
摘 要:設計多路數據采集系統具有將安全信號隔離、顯示信息、制定報警控制、變送等融合于一體的功能優勢,因而常用于4-20mA/0-10V的信號測量系統中,另外,在硬件配置的基礎上,結合軟件的設計與實現,則能夠實現多種傳感器類型如電流輸出傳感器和電壓輸出型觸感器等的接入和實現整體測量、監控功能。
關鍵詞:多路數據采集;智能儀表;軟件設計
1 多路數據采集系統主程序的設計與實現
在軟件實現方面,采用C語言編寫數據采集系統的運行程序,如圖1所示為數據采集主程序的實現流程圖。
通過數據采集主程序和C語言的編程實現了8路A/D采樣功能,在參數設置的基礎上,會進入485口接受狀態,并且進入8路A/D巡檢程序,由上位機控制8路A/D采樣方式,進行A/D轉換和串口收發功能,如果有通訊標志則進入校驗CRC狀態,從而構建了循環采樣流程方式和固定通道采樣兩種方式,加強了數據校驗,提升了數據采集系統的數據采集精度和速度。最后將數據采集和數據轉化的結果通過LED顯示功能,如果校驗出錯,LED也會通過錯誤顯示。
2 軟件系統界面設計和任務劃分
2.1 軟件系統界面設計
智能數據采集器的軟件系統界面設計,在一級界面中進行了電壓、電路和脈沖三個選項的設置,分別按不同的按鈕則能夠分別進入到電壓信號、脈沖信號和電流信號的檢測程序中,之后進入某一個模擬信號的檢測窗口,也就是二級界面中,可以選擇查看監測情況,也可以返回到一級界面,從新選擇要進入的監測程序,如果選擇查看則進入到三級界面,對在一級界面中選擇的某一種信息采集情況進行查看。在查看窗口中可以通過返回選項直接返回到觀察窗口。
2.2 軟件系統任務的劃分
根據硬件設計和系統需要實現的功能將整個系統劃分為8個任務功能模塊。任務結構見表1。
2.3 任務之間的相互關系
對于本文的智能數據采集器系統軟件的編程而言,系統內部的函數和控制語言可以實現協調多個通道之間的任務處理。
數據采集器一開始工作就進入到系統初始化,也就是任務0階段來進行其他人物的創建,當創建任務1和任務2之后,相應的兩個輸入鍵盤和A/D轉化任務會進入ready狀態,則將任務0刪除。
3 數據采集主程序設計與實現
在數據采集的軟件功能方面,主要有三個組成部分,一是系統上位機軟件的通信功能;二是系統監控設備硬件I/O狀態采集處理功能、控制設備、設備接口協議處理等;三是數據采集設備參數配置。
3.1 數據采集主程序
首先我們應該明確采集的要求,系統要求8路數據采集,被采樣的對象包括交流電流值,另外還包括電流的狀態和報警信號,所以對采集系統提出了更高的要求數據采集主程序流程圖如圖2所示:
數據采集主程序主要完成的任務包括:對數據進行采樣并進行隔離提高準確度,再完成對信號的采用,這其中就包含采樣點的選擇和采樣數據的存儲。要實現以上的功能就要首先對硬件也就是A/D轉換器的的初始化,并啟動A/D標志,選擇好通道并判斷狀態,把采樣來的數據進行A/D轉換、預處理并存入寄存器中,方便后續的處理,最后完成通道的切換,儀器高速的巡檢各個通道,讓每個通道在一個周期內單通道電流值為80個,這個可以通過設定計數器來實現,每個通道進行3次數據采集,來提高采集的精度。
3.2 AD7891的時序
數據采集器的CPU從AD7891中對串行數據的讀取方式使一位一位接受進行的,并且將數據進行置低。并且單片機必須在數據讀取和傳輸過程中到保持一致的低電平模式。依據圖3-6可得,與CPU從AD7891讀寫數據都需要先將置低,CPU中的控制寄存器接受芯片中的前六位數據,則不再進行其他數據的接受,并且將接受的6位數據中的前三位即A0、A1和A3配置在A/D采樣通道中。
3.3 數字濾波子程序設計
為了能夠很好的克服偶然因素引起的撥動干擾,所以數字濾波子程序設計中采用中位值平均濾波法,也就是防脈沖干擾平均濾波法。而且對溫度、液位等變化緩慢的被測參數濾波效果比較好。
4 結束語
編寫程序采用C語言進行,實現了8路A/D數據采樣功能和LED顯示和串口通信功能。首先,將A/D轉換器AD7891上位機控制采樣采集到的12位二進制數據進行實際測量值的轉換,并且根據ANSI/IEE標準754-1985將轉換而來的實際測量值進一步轉化文32位浮點數,在設定的存取區內保存下來,由于一共采集8路數據,用于存儲采樣數據的空間需要設置32個字節。