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