本發明涉及數據采集領域,尤指一種基于雙向http服務的數據采集系統及其采集方法。
背景技術:
數據采集器是遠程數據通訊系統中的關鍵性設備。在遠程數據通訊系統中,安裝在現場的各類傳感器網絡(或儀表網絡),通過現場總線集中并連接到數據采集器,然后數據采集器通過有線或無線方式遠程連接到上位機服務器,從而實現傳感器網絡(或儀表網絡)和上位機服務器之間的數據雙向通訊。隨著國民經濟的深入發展,數據采集器在越來越多的場合得到了廣泛的應用,例如在供電、供氣、供水等市政基礎設施行業,數據采集器可將千家萬戶的電表、燃氣表、水表等儀表數據實時匯總并發送到供電公司、燃氣公司、自來水公司等,從而實現遠程自動抄表。數據采集器與上位機服務器之間的連接,可以通過有線網絡,也可以通過無線網絡。在市面上,數據采集器與上位機服務器之間的連接方式以GPRS方式最為常見,這是因為GPRS無須現場布線且運行成本較低。數據采集器上電以后,啟動GPRS模塊,通過TCP/IP方式連接上位機服務器,從而實現上位機服務器與數據采集器之間的數據通訊。
為響應任意時間點都可能發起的數據通訊請求,數據采集器必須在上位機服務器上面保持實時在線或永遠在線。實時在線的需求導致兩方面的問題:首先,GPRS的信道資源有限度,當同一區域內有較多的GPRS設備需要聯網時,暫時沒有數據通訊的GPRS設備將被踢下線,因此,為保持實時在線,數據采集器不得不每隔一定時間間歇性地往上位機服務器發送心跳數據包,這樣就會導致數據采集器的流量費用增加;其次,數量眾多的數據采集器都實時登錄在上位機服務器上面,對于上位機服務器的端口資源、線程資源等提出了較大的要求,因此往往需要很多臺上位機服務器以集群的方式才能負載數量眾多的數據采集器的實時在線,這樣就直接導致了上位機服務器的建設成本和運營成本的大幅度提高。
為克服上述兩方面問題,也有人提出一種非實時在線的數據采集器或方法。這類數據采集器,只在底層傳感器網絡(或儀表網絡)有數據發送請求時,或者在事先規定的時間,才會主動向上位機服務器發起連接請求并發送數據,數據發送完畢以后立即主動斷線,以此解決GPRS流量費用和降低對上位機服務器的性能要求。但是,這類數據采集器也存在一個較為嚴重的問題:當數據采集器不在線時,因為數據采集器的IP地址往往非靜態且不固定,所以上位機服務器就無法通過IP尋址方式連接數據采集器,上位機服務器就無法主動連接數據采集器從而導致數據無法直接在遠程數據通訊系統內部上傳下達。
技術實現要素:
為解決上述問題,本發明提供一種基于雙向http服務的數據采集器及其采集系統與采集方法,該數據采集器與上位機服務器之間的數據通訊通過雙向http服務完成,無需在上位機服務器上保持實時在線或永遠在線。
為實現上述目的,本發明采用的技術方案是:一種基于雙向http服務的數據采集器,包括MCU芯片、電源模塊、數字量輸入接口、模擬量輸入接口、串行接口、GPRS模塊、現場總線接口,所述MCU芯片、數字量輸入接口、模擬量輸入接口、串行接口、GPRS模塊、現場總線接口均與電源模塊連接,所述電源模塊外接電源,所述數字量輸入接口、模擬量輸入接口均設有采集接口,所述數字量輸入接口、模擬量輸入接口均通過采集接口與MCU芯片的IO口雙向傳輸連接,所述串行接口、GPRS模塊、現場總線接口均與MCU芯片的IO口雙向傳輸連接。
具體地,所述數字量輸入接口最多有四個,但同一時間只能有一個數字量輸入接口處于工作狀態,所述模擬量輸入接口最多有八個,但同一時間只能有一個模擬量輸入接口處于工作狀態。
一種基于雙向http服務的數據采集系統,包括所述數據采集器、上位機服務器、現場總線、傳感器或儀表,所述傳感器或儀表與現場總線連接,所述現場總線通過現場總線接口與數據采集器雙向傳輸連接,所述數據采集器通過GPRS模塊與上位機服務器無線連接。
一種基于雙向http服務的數據采集器的采集方法:
a.所述數據采集器通過現場總線接口與現場傳感器網絡或儀表網絡連接,并且通過GPSR模塊與上位機服務器連接,數據采集器啟動http服務;
b.所述數據采集器向上位機服務器請求http服務,并將數據采集器自身的http服務地址發送給上位機服務器,完成上位機服務器內的注冊和配置;
c.所述數據采集器定期通過上位機服務器http服務POST運行數據;
d. 所述上位機服務器有抄收現場傳感器網絡或儀表網絡數據的需求時,所述上位機服務器Web應用系統向數據采集器發送http指令,數據采集器解析指令,并向上位機服務器返回結果;
e.當所述數據采集器內的GPRS模塊從網絡上掉線重連之后,重復執行步驟b過程。
具體地,所述數據采集器自身的http服務地址包括IP地址/域名、端口、服務名、數據上傳間隔。
具體地,所述數據采集器內的MCU芯片通過現場總線并根據ID號逐個讀取現場傳感器或儀表的數據,然后把數據存儲在MCU芯片內,再將數據裝載在的上位機服務器的http服務請求內,通過GPRS模塊向上位機服務器請求,當該http服務請求發送成功時,表示上位機服務器收到相關數據,當該http服務請求發送失敗時,則MCU芯片繼續重復上述步驟,直到該http服務請求發送成功為止。
本發明的有益效果在于:本發明數據采集器與上位機服務器之間均能主動發起數據連接,從而保證數據通訊系統可響應任意時間發起的數據上傳或下達任務,無需在上位機服務器上保持實時在線或永遠在線。與傳統實時在線的數據采集器相比,本發明數據采集器對上位機服務器的性能資源要求大幅度降低,同時對GPRS流量要求更少,可大幅度降低數據采集器的運行費用。
附圖說明
圖1 是本發明數據采集器的結構示意圖。
圖2 是本發明的遠程數據通訊系統方案示意圖的圖。
圖3 是本發明的正極工作流程示意圖。
附圖標號說明:1. 數據采集器;11.MCU芯片;12.電源模塊;13.數字量輸入接口;14.模擬量輸入接口;15.串行接口;16.GPRS模塊;17.現場總線接口;2. 上位機服務器;3. 現場總線;4.傳感器或儀表。
具體實施方式
請參閱圖1-3所示,本發明關于一種基于雙向http服務的數據采集器1,包括MCU芯片11、電源模塊12、數字量輸入接口13、模擬量輸入接口14、串行接口15、GPRS模塊16、現場總線接口17,所述MCU芯片11、數字量輸入接口13、模擬量輸入接口14、串行接口15、GPRS模塊16、現場總線接口17均與電源模塊12連接,所述電源模塊12外接電源,所述數字量輸入接口13、模擬量輸入接口14均設有采集接口,所述數字量輸入接口13、模擬量輸入接口14均通過采集接口與MCU芯片11的IO口雙向傳輸連接,所述串行接口15、GPRS模塊16、現場總線接口17均與MCU芯片11的IO口雙向傳輸連接。
采用上述方案,與現有技術相比,本發明數據采集器1無需在上位機服務器2上保持實時在線或永遠在線,同時數據采集器1與上位機服務器2之間又均能主動發起數據連接,保證數據通訊系統可響應任意時間發起的數據上傳或下達任務。與傳統實時在線的數據采集器相比,本發明數據采集器1對上位機服務器2的性能資源要求大幅度降低,同時對GPRS流量要求更少,可大幅度降低數據采集器1的運行費用。
具體地,所述數字量輸入接口13最多有四個,但同一時間只能有一個數字量輸入接口13處于工作狀態,所述模擬量輸入接口14最多有八個,但同一時間只能有一個模擬量輸入接口14處于工作狀態。
一種基于雙向http服務的數據采集系統,包括所述數據采集器1、上位機服務器2、現場總線3、傳感器或儀表4,所述傳感器或儀表4與現場總線3連接,所述現場總線3通過現場總線接口17與數據采集器1雙向傳輸連接,所述數據采集器1通過GPRS模塊16與上位機服務器2無線連接。
一種基于雙向http服務的數據采集器的采集方法:
a.所述數據采集器1通過現場總線接口17與現場傳感器或儀表4網絡連接,并且通過GPSR模塊16與上位機服務器2連接,數據采集器1啟動http服務;
b.所述數據采集器1向上位機服務器2請求http服務,并將數據采集器1自身的http服務地址發送給上位機服務器2,完成上位機服務器2內的注冊和配置;
c.所述數據采集器1定期通過上位機服務器2http服務POST運行數據;
d. 所述上位機服務器2有抄收現場傳感器網絡或儀表網絡數據的需求時,所述上位機服務器2Web應用系統向數據采集器1發送http指令,數據采集器1解析指令,并向上位機服務器2返回結果;
e.當所述數據采集器1內的GPRS模塊16從網絡上掉線重連之后,重復執行步驟b過程。
具體地,所述數據采集器1自身的http服務地址包括IP地址/域名、端口、服務名、數據上傳間隔。
具體地,所述數據采集器1內的MCU芯片11通過現場總線3并根據ID號逐個讀取現場傳感器或儀表4的數據,然后把數據存儲在MCU芯片11內,再將數據裝載在的上位機服務器2的http服務請求內,通過GPRS模塊16向上位機服務器2請求,當該http服務請求發送成功時,表示上位機服務器2收到相關數據,當該http服務請求發送失敗時,則MCU芯片11繼續重復上述步驟,直到該http服務請求發送成功為止。
下面通過具體實施例對本發明作進一步的說明。
參閱圖1所示,本具體實施例數據采集器1內部主要包括MCU芯片11、電源模塊12、數字量輸入接口13、模擬量輸入接口14、串行接口15、GPRS模塊16、現場總線接口17,其中MCU芯片11是數據采集器1的核心處理單元和控制單元,現場總線3對外與底層傳感器或儀表4網絡的現場總線3相連接,對內與MCU芯片11的IO口相連接,根據實際應用情況,現場總線接口17與現場總線3能夠遵循M-Bus協議、Moubus協議、Can總線等。
數字量輸入接口13對外可采集底層傳感器或儀表4產生的各類數字量或開關量,然后在通過MCU芯片11的IO口,將各類數字量和開關量輸送到MCU芯片11進行進一步的運算和處理。本發明提出的數據采集器1,其內部的數字量輸入接口13最多可以有四個,但同一時間只能有一個數字量輸入接口13處于工作狀態,四個數字量輸入接口13按照順序依次輪詢式工作。同理,其內部的模擬量輸入接口14對外可采集底層傳感器或儀表4產生的各類模擬量信號,然后在通過MCU芯片11的IO口,將各類模擬量信號輸送到MCU芯片11進行進一步的運算和處理。數據采集器1內部的模擬量輸入接口14最多可以有八個,但同一時間只能有一個模擬量輸入接口14處于工作狀態,八個模擬量輸入接口14按照順序依次輪詢式工作。
GPRS模塊16連接到MCU芯片11的IO口,并通過SPI方式與MCU芯片11進行通訊,將MCU芯片11需要發送的數據以透明傳輸的方式發送到上位機服務器2,同樣也以透明傳輸的方式將上位機服務器2下發的指令發送給MCU芯片11。與此類似,串行接口15對內與MCU芯片11帶串口功能的IO口相連,對外與帶串口功能的設備相連,以實現外部串口設備,如現場調試設備或生產測試設備對數據采集器的調試或測試。
參閱圖2所示的采用本發明的遠程數據通訊系統方案示意圖, 由數量眾多的底層傳感器或儀表4組成的傳感器網絡或儀表網絡,通過現場總線3集中并連接到本發明的數據采集器1內部的數字量輸入接口13或模擬量輸入接口14,然后通過數據采集器1內部的GPRS模塊16以無線方式遠程登陸到上位機服務器2,從而實現底層傳感器或儀表將各類信號或儀表數據通過數據采集器1發送給上位機服務器2,同時也可將各類操作命令和控制命令通過數據采集器1發送給底層傳感器或儀表4。本具體實施例數據采集器1可在需要數據采集和設備控制的工業領域、民用物聯網領域、市政基礎設施領域等應用。
參閱圖3所示,本具體實施例整機的工作流程所對應的軟件程序,都是在MCU芯片11運行的。其中整機的工作流程如下:
1)數據采集器1在現場安裝完畢且打開電源上電之后,其內部各個模塊首先會完成初始化工作,包括控制各個模塊的各類參數和寄存器的初始化。接著,數據采集器1內的GPRS模塊16將啟動,并同時啟動http服務。然后,數據采集器1向上位機服務器2請求http服務,將數據采集器1自身的http服務地址,包含IP地址/域名、端口、服務名和數據上傳間隔發送給上位機服務器2,數據采集器1便完成了在上位機服務器2內的注冊和配置。數據采集器1在上位機服務器2完成注冊和配置以后,數據采集器1即主動斷開與上位機服務器2的連接(這是由http的工作原理和運行方式決定的),釋放服務器端口和線程資源。但與此同時,數據采集器1與internet網絡仍保持連接,即數據采集器1在internet網上的IP保持不變。當GPRS模塊16發生斷線重連的情況之后,由于重新連接上線的GPRS模塊16的IP地址已經發生變化,因此此時數據采集器1將重復上述啟動http服務和配置http地址的步驟。
2)完成上述步驟之后,數據采集器1將運行MCU芯片11內部的時鐘模塊,并以循環的方式繼續運行程序,等預先設定的時間到達以后完成相應的動作。數據采集器1預先會設定兩類時間間隔,即向下讀取底層傳感器或儀表4數據的時間間隔,以及向上位機服務器2發送數據的時間間隔。這兩類時間間隔根據實際需要而定,一般為1小時到24小時之間。
3)當讀取底層傳感器或儀表4數據的時間間隔到達時,MCU芯片11會首先從其內部的存儲模塊讀取第一個傳感器或儀表的ID號,然后根據該傳感器或儀表的通訊協議,向其發送讀取數據的一串命令幀。收到該傳感器或儀表返回的數據以后,MCU芯片11再將數據存儲在該傳感器或儀表ID號所對應的存儲空間內。然后,MCU芯片11將裝載下一個傳感器或儀表的ID號,并重復發送命令和存儲數據的過程,直到將所有傳感器或儀表的數據全部讀完為止,然后MCU芯片11將重新返回到循環等待過程中。
4)當向上位機服務器2發送數據的時間間隔到達時,MCU芯片11會首先將存儲模塊內相應的數據都讀出來,然后將這些數據都裝載在想上位機服務器2的http服務請求之內,然后通過GPRS模塊16向上位機服務器2發送http服務請求,當該請求發送成功時,即意味著上位機服務器2已收到相關數據,此時MCU芯片11會重新返回到循環等待過程中。如果http服務請求發送失敗,則MCU芯片11會重復上述步驟,直到http服務請求發送成功為止。
5)當數據采集器1收到上位機服務器2的http服務請求時,此時數據采集器1將首先解析該http請求,從中提取上位機服務器2想要獲得數據的信息類型,然后從MCU芯片11存儲模塊內將相應數據讀出來,并將這些數據裝載成http服務請求后發送給上位機服務器2。
從整機工作流程可知,與傳統的數據采集設備或模塊相比較,本發明提出的數據采集器1無需永遠地實時登錄在上位機服務器2上面,但同時又通過雙向http服務保證了數據采集器1和上位機服務器2均能主動發起數據連接。因此,使用本發明提出的數據采集器,不僅可響應遠程數據通訊系統任意時間點發起的數據上傳任務或數據下達任務,還可以大幅度降低對上位機服務器2的性能資源要求,同時降低GPRS模塊16的流量和運行費用。
以上實施方式僅僅是對本發明的優選實施方式進行描述,并非對本發明的范圍進行限定,在不脫離本發明設計精神的前提下,本領域普通工程技術人員對本發明的技術方案作出的各種變形和改進,均應落入本發明的權利要求書確定的保護范圍內。