一種嵌入式數據採集與設備控制系統的製作方法
2023-06-08 08:46:11 4
專利名稱:一種嵌入式數據採集與設備控制系統的製作方法
技術領域:
本發明涉及數據採集和設備控制領域。
背景技術:
在電信機房及基站、交通、石油、化工、冶金等各種行業中都需要進行環境監控,數據採集和設備控制。在不同行業,甚至相同行業的不同環境下,需要採集的數據種類不同, 如電流、電壓、溫度、溼度、流量、壓力等;需要控制的設備也不同,有連接繼電器的報警燈和揚聲器等簡單設備,也有連接串口的智能空調和UPS等智能設備。目前單一的嵌入式數據採集和設備控制產品已經很難滿足日漸複雜的應用需求,且重複開發又會導致技術復用率低等問題。這就要求數據採集與設備控制系統在穩定工作的前提下,具有靈活的軟硬體配置功能,良好的可擴展性能和方便的遠程升級功能。於2009年2月18日公開,名為基於嵌入式平臺的遠程I/O數據採集系統及方法的中國發明專利200810200985. 7,採用32位ARM微處理器和μ C/0S-II實時作業系統內核,主要用於生產過程中各種模擬量信號的採集,採集的模擬信號經A/D轉換後變成數位訊號,可在本地LCD液晶屏中顯示,也可通過RS-485或乙太網通信方式將數位訊號傳輸到遠程計算機。該發明能夠穩定可靠地完成各種模擬信號的採集和傳輸工作,但是存在如下不足1.基於yC/OS-II的程序採用傳統C語言開發,程序開發、維護難度大,修改困難;2.如果要增加開關量的採集,或者增加智能設備控制功能,需要重新設計硬體和軟體,可擴展性差;3.數據採集只有A/D埠,只能採集模擬信號;4.只有數據採集功能,沒有設備控制功能;5.沒有伺服器模塊,不具備遠程升級功能。Python語言作為一種解釋性語言,具有程序易讀、無需編譯、開發簡單、內置豐富的程序庫、可擴展性好、可跨平臺等特性,使得PC機軟體的開發效率大幅提升。如今嵌入式設備的處理速度提高迅猛,各種硬體資源豐富,已經具備引入Python解析器的條件,以降低嵌入式產品的軟體開發維護成本,提高開發效率。圖2是傳統開發流程與Python開發流程的對比。在傳統開發流程中,需要使用C/ C++語言開發應用程式,原始碼編輯好之後需要編譯才可調試/運行。在嵌入式應用軟體開發中編譯是很複雜的,不同的晶片和硬體環境,不同的嵌入式作業系統,不同的集成開發環境使用的編譯工具鏈都不相同,這就要求二次開發技術人員了解產品的晶片、硬體環境和作業系統,還要學會C/C++語言,並且能使用各種編譯工具鏈來編譯原始碼,如果集成開發環境不是免費的,還要花費一定的成本購買集成開發環境。可以看到,傳統的開發方式技術門檻高,開發難度大,技術復用率低,每進行一次二次開發都可能引入新的不穩定性。如果在嵌入式開發中引入Python技術,二次開發技術人員無需了解產品的晶片、硬體環境和作業系統,也無需學會C/C++語言,無需學會使用任何編譯工具鏈,更不需要花費成本購買集成開發環境,就可以進行快速開發和修改,降低了開發和維護的難度,提高了開發效率,節省了人力成本。
發明內容
為了克服以上不足,本發明提出一種嵌入式數據採集與設備控制系統,如圖1所示為本發明框圖,該系統包含了模擬量埠、數字量埠、1 埠、串口、繼電器埠、乙太網、GPRS/3G網絡、Flash存儲器、看門狗和IXD顯示器,能採集多種類型的信號,具有對繼電器和智能設備進行控制聯動的能力。軟體部分由數據採集模塊、數據處理模塊、設備控制模塊、數據存儲模塊、數據傳輸模塊、數據顯示模塊、看門狗模塊和嵌入式Web Server模塊組成,並且各模塊採用Python語言實現,運行於Python解析器中,開發、維護的難度和成本低,容易擴展。下面介紹軟體部分各模塊的功能數據採集模塊採集連接到模擬量埠、數字量埠、1 埠和串口的各種傳感器和智能設備的實時數據;設備控制模塊對連接到串口和繼電器埠的智能及非智能設備進行控制聯動;數據存儲模塊在斷網時將實時數據保存到本地Flash存儲器;數據傳輸模塊將採集到的實時數據通過乙太網或GPRS/3G網絡傳送到遠程計算機;數據顯示模塊在本地 LCD顯示器顯示實時數據;數據處理模塊對採集的實時數據進行過濾和處理,並根據靈活設置的報警和設備聯動條件,決定報警的產生、設備的聯動、數據的存儲或者遠程傳輸以及本地顯示;嵌入式Web krver模塊進行遠程配置,設置系統參數、報警及設備聯動條件,操作簡單、靈活;看門狗模塊保證系統運行出錯時快速恢復。本系統還有遠程升級功能,可基於模塊升級系統,速度快,穩定性好,可用於各種需要傳感器採集數據並根據實時數據控制設備的場合。數據採集模塊、設備控制模塊、數據傳輸模塊、數據顯示模塊和看門狗模塊需要與硬體或埠進行交互,交互的方式通過Python的C語言擴展庫實現。各模塊要操作硬體或埠時,直接調用對應的Python的C語言擴展庫即可,Python的C語言擴展庫中封裝了對應硬體或埠的底層驅動操作,最終由底層驅動對硬體或埠進行控制。
以下描述一個Led的PythonC語言擴展的實現 1)新建一個ledmodule. c文件,填入以下內容 #include include「 Python, h"
static PyOb ject 氺led—on(PyObject 氺self, PyObject *args)
{
PyObject 氺out ;
//調用底層驅動,打開led
return out ;
}
static PyMethodDef LedMethods [] = {{ 『『 led 『『 , led_on, METH_ VARARGS, 「 on (η) - > turn on led" },{NULL, NULL, O, NULL}};PyMODINIT_FUNCinitled(void){(void)Py_InitModule(" led" , LedMethods);}2)根據特定嵌入式平臺的編譯方式,將ledmodule. c文件編譯成led.pyd文件,並將該文件放在Python的系統路徑中。3)最後,就可以通過如下Pyhton語句調用模塊import ledled. on (1000) #led 點亮 1000ms根據上述方法編寫模擬量埠、數字量埠、1 埠、串口、繼電器埠、GPRS、 3G、IXD顯示器、看門狗的Python C語言擴展(Python內置了乙太網庫),實現各模塊對相應硬體和埠的交互。Python的C語言擴展部分由我們(方案提供者)提供給用戶,如果以後硬體出現其他數據採集的埠,我們以同樣的方式編寫該埠的Python C語言擴展, 並將該擴展文件發給用戶,用戶遠程升級該擴展後即可直接使用。這樣,用戶無需了解底層 1/0操作的具體實現,只要會調用相應的Python庫函數即可,開發簡單,並且Python的C語言擴展以模塊的形式存在,擴展能力強。數據存儲模塊以嵌入式資料庫的形式將實時數據保存到本地Flash存儲器中。 Python內置了對sqlite資料庫的支持,如果要使用其他類型的資料庫,可以通過編寫 Python的C語言擴展來封裝對應資料庫的操作接口來實現。數據處理模塊獲取數據採集模塊採集到的實時數據之後,進行一系列處理,並調用其它模塊完成功能,其處理步驟如下1)異常數據過濾由於電子產品本身的精確度、穩定性及抗幹擾能力有限,數據採集過程有可能出現異常數據,而且不同採集環境下,各種實時數據的允許值範圍也不太相同,通過對各種實時數據設定允許值範圍,對數據採集模塊傳入的各種實時數據進行過濾,濾除允許值之外的異常數據;2)數值轉換通過數據採集模塊獲得的電信號,往往不是所需的實際數據,如通過模擬量埠採集溫度數據時,模擬量埠獲得的是電壓值,但是所需的是溫度值,這就需要設定轉換規則,對允許值範圍內的原始數據進行轉換,轉換成有意義的值;3)嚴重等級判斷根據設定的嚴重等級範圍,對轉換過的有意義的實時數據進行嚴重等級判斷;4)設備聯動觸髮根據設定的設備聯動規則,結合各實時數據當前所處的嚴重等級,判斷是否有設備聯動事件被觸發,如果是則調用設備控制模塊控制相應的設備進行聯動;5)數據傳輸/存儲控制根據當前的聯網狀況,決定調用數據傳輸模塊將實時數據通過乙太網或GPRS/3G網絡傳輸到遠程計算機,或者調用數據存儲模塊將實時數據保存在本地Flash存儲器;6)本地顯示調用數據顯示模塊將採集到的實時數據顯示在本地IXD顯示器上。數據處理模塊在不同的應用環境下需求會有所不同,採用Python語言編寫該模塊,可以保證配置、維護和擴展的靈活性,使其能適應各種場合的需求。嵌入式ffeb krver模塊,包括了實時數據監控頁面、採集參數配置頁面、控制邏輯配置頁面、系統參數配置頁面和遠程升級頁面1)實時數據監控頁面通過AJAX技術動態獲取各實時數據的值以及所處的嚴重等級,並將結果顯示在頁面上;2)採集參數配置頁面對各採集埠的採集使能狀態、採集頻率、允許值範圍、數值轉換規則及嚴重等級範圍的設置;3)控制邏輯配置頁面包括聯動的設置,聯動的條件為各種實時數據所處的嚴重等級範圍的與、或邏輯關係組合,聯動的動作包括繼電器的開閉以及串口的協議包發送,每個聯動動作可以同時觸發多個設備;4)系統參數配置頁面設備IP,服務及傳輸埠號,遠程計算機IP,系統時間的設置;5)遠程升級頁面包括對單個模塊的升級、整個程序的升級、Python擴展庫的升級。
圖1本發明框2傳統開發流程與Python開發流程對比圖3具體實施方案軟體架構4具體實施方案硬體連線5具體實施方案程序流程圖
具體實施例方式如圖3所示,選擇一塊運行WinCE5. 0/6. 0且帶有模擬量埠、數字量埠、1 埠、多個串口(含RS-232/RS-485)、繼電器埠、IXD顯示器埠、看門狗、乙太網口等接口的ARM9工控板,首先將Python解析器及其內置的庫移植到WinCE5. 0/6. 0上,並實現 Python的C語言模擬量埠庫、數字量埠庫、1 埠庫,串口庫、繼電器埠庫、IXD庫、 看門狗庫、GPRS庫、3G庫。這樣就完成了底層平臺的構建。如圖4所示,依次連接好硬體設備 溫度傳感器連接到1 埠 ; 溼度傳感器連接到模擬量埠 ; 煙感傳感器連接到數字量埠 ; 水浸傳感器連接到數字量埠 ; UPS 連接到串口 (RS-232); 智能空調連接到串口(RS-485); GPRS數據機連接到串口(RS-232);
報警燈連接到繼電器埠 ; 揚聲器連接到繼電器埠 ; IXD顯示器連接到IXD顯示器埠 ; hternet 接入乙太網口;遠程計算機通過hternet與工控板相連。如圖5所示,為該嵌入式數據採集與設備控制系統的流程圖,其處理流程為1)系統初始化,Python解析器的啟動及初始化,各埠初始化,網絡連接初始化, 嵌入式ffeb krver啟動,看門狗啟動,並加載各種系統配置參數;2)實時數據採集,數據採集模塊根據設定的採集頻率及使能狀態採集各種實時數據,主要有a) 1 埠的溫度b)模擬量埠的溼度c)數字量埠的煙感和水浸d)串口(連接UPS的RS-232)的市電電壓、電流、頻率、UPS負載和狀態等。3)異常數據過濾,根據允許值範圍過濾數據,例如溫度的允許值為-50 100°C, 如果採集到的對應值超出了這個範圍,就過濾掉該數據,停止對它的進一步處理; 4)數值轉換,對允許值範圍內的原始數據進行轉換,轉換成有意義的值,例如溼度傳感器經過模擬量埠採集到的數據為0 5V的電壓值,它與溼度0 100%相對應,這就需要把電壓值轉換為溼度;5)嚴重等級判斷,對轉換後的數值進行嚴重等級判斷,例如表1溼度嚴重等級示例
權利要求
1.一種嵌入式數據採集與設備控制系統,其特徵在於該系統的軟體部分由數據採集模塊、數據處理模塊、設備控制模塊、數據存儲模塊、數據傳輸模塊、數據顯示模塊、看門狗模塊和嵌入式Web Server模塊組成,並且各模塊採用Python語言實現,運行於Python解析器中。
2.根據權利要求1所述的一種嵌入式數據採集與設備控制系統,其特徵在於所述的數據採集模塊與模擬量埠、數字量埠、1 埠和串口連接;所述的設備控制模塊與繼電器埠和串口連接;所述的數據傳輸模塊與乙太網或GPRS/3G網絡連接;所述的數據顯示模塊與LCD顯示器連接;所述的看門狗模塊與看門狗電路連接;各模塊與硬體或埠的連接方式是各硬體或埠由嵌入式作業系統的底層驅動控制,用Python語言C擴展封裝各底層驅動操作形成Python擴展庫,各模塊通過調用Python擴展庫控制相應的硬體或埠。
3.根據權利要求1所述的一種嵌入式數據採集與設備控制系統,其特徵在於所述的數據存儲模塊以嵌入式資料庫的形式將實時數據保存到本地Flash存儲器中。
4.根據權利要求1所述的一種嵌入式數據採集與設備控制系統,其特徵在於所述的數據處理模塊,其處理步驟如下1)異常數據過濾,根據設定的允許值範圍,對數據採集模塊傳入的各種實時數據進行過濾,濾除允許值之外的異常數據;2)數值轉換,將在允許值範圍內的原始數據通過一定的轉換規則,轉換成具有特定含義的數據;3)嚴重等級判斷,根據設定的嚴重等級範圍,對轉換過的具有特定含義的數據進行嚴重等級判斷;4)設備聯動觸發,根據設定的設備聯動規則,結合各實時數據當前所處的嚴重等級,判斷是否有設備聯動事件被觸發,並根據結果決定是否調用設備控制模塊控制相應的設備進行聯動;5)數據傳輸/存儲控制,根據當前的聯網狀況,決定調用數據傳輸模塊將實時數據通過乙太網或GPRS/3G網絡傳輸到遠程計算機,或者調用數據存儲模塊將實時數據保存在本地Flash存儲器;6)本地顯示,調用數據顯示模塊將採集到的實時數據顯示在本地IXD顯示器上。
5.根據權利要求1所述的一種嵌入式數據採集與設備控制系統,其特徵在於所述的嵌入式ffeb krver模塊包括實時數據監控頁面、採集參數配置頁面、控制邏輯配置頁面、系統參數配置頁面和遠程升級頁面。
6.根據權利要求1或5所述的一種嵌入式數據採集與設備控制系統,其特徵在於所述的嵌入式Web krver模塊的實時數據監控頁面通過AJAX技術動態獲取各實時數據的值以及所處的嚴重等級,並將結果顯示在頁面上。
7.根據權利要求1或5所述的一種嵌入式數據採集與設備控制系統,其特徵在於所述的嵌入式Web krver模塊的採集參數配置頁面包括對各採集埠的採集使能狀態、採集頻率、允許值範圍、數值轉換規則及嚴重等級範圍的設置。
8.根據權利要求1或5所述的一種嵌入式數據採集與設備控制系統,其特徵在於所述的嵌入式Web krver模塊的控制邏輯配置頁面包括聯動的設置,聯動的條件為各種實時數據所處的嚴重等級範圍的與、或邏輯關係組合,聯動的動作包括繼電器的開閉以及串口的協議包發送,每個聯動動作可以同時觸發多個設備。
9.根據權利要求1或5所述的一種嵌入式數據採集與設備控制系統,其特徵在於所述的嵌入式Web krver模塊的系統參數配置頁面包括設備IP,服務及傳輸埠號,遠程計算機IP,系統時間的設置。
10.根據權利要求1或5所述的一種嵌入式數據採集與設備控制系統,其特徵在於 所述的嵌入式Web krver模塊的遠程升級頁面包括單個模塊的升級、整個程序的升級、 Python擴展庫的升級。
全文摘要
本發明公開了一種嵌入式數據採集與設備控制系統。該系統軟體部分由數據採集模塊、數據處理模塊、設備控制模塊、數據存儲模塊、數據傳輸模塊、數據顯示模塊、看門狗模塊和嵌入式Web Server模塊組成。各軟體模塊採用Python語言開發,運行於Python解析器中,程序的開發和維護難度小,修改簡單,可擴展性好。本系統能夠採集數字量、模擬量、I2C以及智能設備等多種信號,具有對繼電器和智能設備進行控制聯動的能力,嵌入式Web Server模塊使得系統的配置簡單、靈活,還可基於模塊對系統進行遠程升級,適用於各種需要採集數據並根據實時數據控制設備的場合。
文檔編號G05B19/418GK102402209SQ20101028258
公開日2012年4月4日 申請日期2010年9月14日 優先權日2010年9月14日
發明者周立功 申請人:廣州致遠電子有限公司