電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 2078|回復(fù): 0
收起左側(cè)

嵌入式工程師應(yīng)該學(xué)什么軟件_嵌入式遠(yuǎn)程B/S模式監(jiān)控系統(tǒng)設(shè)計與研究

[復(fù)制鏈接]

2607

主題

2607

帖子

7472

積分

高級會員

Rank: 5Rank: 5

積分
7472
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-7-30 14:48:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
嵌入式工程師應(yīng)該學(xué)什么軟件_嵌入式遠(yuǎn)程B/S模式監(jiān)控系統(tǒng)設(shè)計與研究,   

  

摘要:針對現(xiàn)有遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計方案存在的不足,論文結(jié)合嵌入式 web技術(shù)和 Applet技術(shù)提出了一套通用的遠(yuǎn)程 B/S模式監(jiān)控系統(tǒng)實施方案。首先,論文分析了系統(tǒng)的體系結(jié)構(gòu)和工作流程;然后詳細(xì)介紹了嵌入式 web服務(wù)器層中的協(xié)議轉(zhuǎn)換和參數(shù)信息存儲模塊的具體實現(xiàn)方法;昀后闡述了嵌入式環(huán)境下利用 Java Applet技術(shù)開發(fā)遠(yuǎn)程監(jiān)控網(wǎng)頁的優(yōu)勢,介紹了監(jiān)控網(wǎng)頁的具體實現(xiàn)過程和發(fā)布步驟。

引言

構(gòu)建遠(yuǎn)程監(jiān)控系統(tǒng)能夠有效地解決因監(jiān)控設(shè)備分散而引起的集中管理困難的問題。目前設(shè)計遠(yuǎn)程監(jiān)控系統(tǒng)主要采取以下方案 [1-3]。

(1)將嵌入 TCP/IP協(xié)議的單片微處理器提升為具有采集、存儲、網(wǎng)絡(luò)通信等功能于一體的嵌入式 web服務(wù)器,然后在此基礎(chǔ)上開發(fā)遠(yuǎn)程監(jiān)控系統(tǒng),這種方案具有涉及硬件少、開發(fā)成本低等優(yōu)點,但是開發(fā)過程復(fù)雜,后期功能擴展、升級困難。

(2)采用基于 PC機+網(wǎng)卡+采集卡的模式構(gòu)建遠(yuǎn)程監(jiān)控系統(tǒng),這種方法開發(fā)成本高、在遠(yuǎn)距離、多點監(jiān)控系統(tǒng)中實現(xiàn)困難。

(3)將 PC機作為整個遠(yuǎn)程控制系統(tǒng)中連接數(shù)據(jù)采集網(wǎng)絡(luò)和遠(yuǎn)程監(jiān)控上層網(wǎng)絡(luò)的中間層,由它負(fù)責(zé)設(shè)備狀態(tài)參數(shù)的接收和網(wǎng)絡(luò)轉(zhuǎn)發(fā)。在此基礎(chǔ)上可構(gòu)建 C/S或 B/S兩種模式的遠(yuǎn)程控制系統(tǒng)。這種方案具有開發(fā)工具成熟、開發(fā)周期短等優(yōu)點,但是存在開發(fā)成本高,系統(tǒng)穩(wěn)定性和可靠性差等問題。另外采用 C/S模式,遠(yuǎn)程監(jiān)控端一般通過 socket套接口方式和 PC主控制器通信。這種開發(fā)模式,每個遠(yuǎn)程 PC機需要安裝特定終端監(jiān)控軟件,后期維護工作量較大。

(4)用嵌入式 web服務(wù)器替代第 3種方法中的 PC機,實現(xiàn) B/S模式的遠(yuǎn)程設(shè)備狀態(tài)監(jiān)控。這種方案具有開發(fā)成本低、后期維護升級方便、系統(tǒng)穩(wěn)定性、可靠性高等優(yōu)點,是現(xiàn)有遠(yuǎn)程控制實現(xiàn)方案中較優(yōu)的一種。但目前針對這一方案開展的研究工作存在幾點不足:首先,給出的整體控制方案結(jié)合某一具體應(yīng)用太緊密,沒有從共性點出發(fā)探討嵌入式遠(yuǎn)程 B/S監(jiān)控系統(tǒng)的體系結(jié)構(gòu)以及需解決的核心問題;其次,主要采用 CGI編程實現(xiàn)了參數(shù)信息在瀏覽器端的表格形式顯示,但在復(fù)雜工業(yè)現(xiàn)場監(jiān)控畫面展示、參數(shù)動態(tài)曲線顯示等方面明顯存在不足;昀后,對設(shè)備狀態(tài)參數(shù)的存儲也考慮較少。

本文針對以上問題,探討了基于嵌入式web和 Java Applet技術(shù)構(gòu)建遠(yuǎn)程 B/S監(jiān)控系統(tǒng)的通用設(shè)計框架,并對實現(xiàn)所涉及到的核心問題進行了介紹。

體系結(jié)構(gòu)及工作流程

嵌入式遠(yuǎn)程 B/S模式監(jiān)控系統(tǒng)劃分為三個層次:現(xiàn)場數(shù)據(jù)采集層、嵌入式 web服務(wù)器層和遠(yuǎn)程參數(shù)監(jiān)控層。現(xiàn)場數(shù)據(jù)采集層是整個遠(yuǎn)程監(jiān)控系統(tǒng)的基礎(chǔ),負(fù)責(zé)采集各種參數(shù)(如溫度、濕度、流量等),并通過不同總線將其傳給嵌入式 web服務(wù)器。遠(yuǎn)程參數(shù)監(jiān)控層即遠(yuǎn)程任意聯(lián)網(wǎng)的 PC機,它處于系統(tǒng)昀上層。嵌入式 web服務(wù)器位于現(xiàn)場數(shù)據(jù)采集層和遠(yuǎn)程參數(shù)監(jiān)控層之間,是整個系統(tǒng)的核心節(jié)點。它一方面和底層的各種采集裝置通信,完成參數(shù)信息的接收、處理、存儲任務(wù);另一方面與遠(yuǎn)程客戶 PC機通信,并按照 TCP/IP協(xié)議格式與客戶端 Applet程序進行數(shù)據(jù)交互 [3]。具體的體系結(jié)構(gòu)如圖 1所示。


  




該系統(tǒng)的工作流程:1)底層采集設(shè)備將各種參數(shù)按照不同的總線標(biāo)準(zhǔn) (如 RS232/485總線)傳輸?shù)角度胧?web服務(wù)器。2)嵌入式 web服務(wù)器的參數(shù)接收模塊以輪詢方式定時接收和解析以不同現(xiàn)場總線傳送上來的參數(shù)信息,并根據(jù)系統(tǒng)需求調(diào)用存儲模塊加以存儲。3)用戶在瀏覽器訪問內(nèi)嵌 Applet的監(jiān)控網(wǎng)頁。4)該 Applet從嵌入式服務(wù)器端下載到客戶瀏覽器端。5)瀏覽器端 Applet向參數(shù)轉(zhuǎn)發(fā)服務(wù)模塊發(fā)送數(shù)據(jù)訪問請求。6)參數(shù)轉(zhuǎn)發(fā)服務(wù)模塊根據(jù)用戶請求將參數(shù)信息反饋給瀏覽器端Applet。7)Applet基于獲取的參數(shù)信息進行動態(tài)監(jiān)控畫面的顯示。

關(guān)鍵技術(shù)

嵌入式 web服務(wù)器是整個遠(yuǎn)程監(jiān)控系統(tǒng)的核心節(jié)點,限于篇幅本文只重點探討嵌入式web服務(wù)器層實現(xiàn)過程中涉及到的一些關(guān)鍵技術(shù)。

3.1 協(xié)議轉(zhuǎn)換

嵌入式 web服務(wù)器在整個遠(yuǎn)程監(jiān)控系統(tǒng)中扮演協(xié)議轉(zhuǎn)換器的角色,它將不同的參數(shù)協(xié)議包格式統(tǒng)一轉(zhuǎn)換成 TCP/IP協(xié)議包格式,為在 WWW平臺上實現(xiàn)所有參數(shù)信息的統(tǒng)一呈現(xiàn)提供了可能。

本系統(tǒng)中協(xié)議轉(zhuǎn)換功能主要通過參數(shù)接收進程和參數(shù)轉(zhuǎn)發(fā)服務(wù)進程共同協(xié)助完成[4]。參數(shù)接收進程主要負(fù)責(zé)和底層采集設(shè)備建立連接。該進程首先讀取系統(tǒng)配置文件,并獲取各采集點的采集周期、傳輸協(xié)議格式等配置信息;然后根據(jù)配置信息創(chuàng)建多個線程分別接收、解析和處理底層各采集裝置上傳的參數(shù)協(xié)議包,昀后將參數(shù)信息寫入共享內(nèi)存區(qū)域即可。參數(shù)信息的存儲則由存取進程具體完成。參數(shù)轉(zhuǎn)發(fā)服務(wù)進程作為以太網(wǎng)通信中的服務(wù)端,主要負(fù)責(zé)與上層監(jiān)控程序 Applet進行數(shù)據(jù)交互。該進程在特定端口*到遠(yuǎn)程監(jiān)控客戶端的訪問請求后,首先創(chuàng)建專門的線程與之建立連接,然后各線程通過訪問共享內(nèi)存區(qū)域或嵌入式數(shù)據(jù)庫獲取用戶所需的參數(shù)信息,并以 TCP/IP協(xié)議格式轉(zhuǎn)發(fā)給對應(yīng)的遠(yuǎn)程客戶端。這兩個進程同步、并行執(zhí)行,有效保證了系統(tǒng)的實時性要求。

3.2 環(huán)境參數(shù)信息的兩級存儲

嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)的參數(shù)存儲可采用以下幾種方案[5,6]:1)沿用傳統(tǒng)監(jiān)控系統(tǒng)存儲方案,增設(shè)一個工業(yè)級數(shù)據(jù)庫服務(wù)器來專門負(fù)責(zé)參數(shù)信息的存儲和管理。該方法雖然可以采用大型關(guān)系型數(shù)據(jù)庫方便地實現(xiàn)數(shù)據(jù)的海量存儲,但由于數(shù)據(jù)庫采用引擎驅(qū)動,嵌入式 web服務(wù)器和遠(yuǎn)端數(shù)據(jù)庫服務(wù)器之間頻繁的數(shù)據(jù)交互會影響系統(tǒng)的實時響應(yīng)能力;另外,如果信息采集點較多、采集周期短,緩慢而頻繁的遠(yuǎn)程數(shù)據(jù)庫讀寫操作也會使實時數(shù)據(jù)因為寫失敗而丟失,影響系統(tǒng)的正常運行。2)以文件系統(tǒng)形式存儲參數(shù)信息,這種方式存儲效率低、安全性不高。3)采用嵌入式數(shù)據(jù)庫對數(shù)據(jù)進行存儲和管理。嵌入式數(shù)據(jù)庫體積小,能在資源受限的嵌入式環(huán)境使用;另外它是程序驅(qū)動式,用戶請求和數(shù)據(jù)服務(wù)在同一個進程內(nèi)進行,避免了進程間通信造成的額外消耗。但是當(dāng)數(shù)據(jù)采集層的采集頻率高時,嵌入式數(shù)據(jù)庫中的數(shù)據(jù)會急劇膨脹,如果不對數(shù)據(jù)做轉(zhuǎn)存處理,數(shù)據(jù)庫的存取性能將逐漸下降。

結(jié)合第1、3種方法,本文提出了參數(shù)信息兩級存儲方案。一級存儲實施策略:接收進程將采集裝置傳送的協(xié)議數(shù)據(jù)解析后首先存放到共享內(nèi)存區(qū),然后在特定條件下(如共享內(nèi)存區(qū)存儲容量達(dá)到閥值,存儲周期到等)啟動存儲進程,并由其將內(nèi)存區(qū)中的數(shù)據(jù)批量存儲到嵌入式 web服務(wù)器的內(nèi)部數(shù)據(jù)庫。一級存儲實施前,應(yīng)該根據(jù)采集點數(shù)、采集周期、采集數(shù)據(jù)類型等信息大致估算常用信息的存儲容量,并在此基礎(chǔ)上適當(dāng)擴展嵌入式系統(tǒng)存儲器,移植合適的嵌入式數(shù)據(jù)庫。另外,可考慮將參數(shù)信息按照采集地點或采集時間分別存儲在數(shù)據(jù)庫不同的參數(shù)信息表中,這樣可以減少因讀寫沖突引起的存取延遲,保證系統(tǒng)的實時響應(yīng)能力。二級歸檔存儲實施策略:首先在歸檔條件符合的情況下,將需要歸檔的信息從嵌入式數(shù)據(jù)庫中導(dǎo)出到預(yù)定義的緩存區(qū)內(nèi);然后啟動歸檔進程并通過 FTP將數(shù)據(jù)上傳給遠(yuǎn)程數(shù)據(jù)庫服務(wù)器。歸檔存儲的存儲模式有手動歸檔、定時歸檔、條件歸檔等。

3.3 動態(tài)監(jiān)控網(wǎng)頁開發(fā)技術(shù)

CGI技術(shù)是目前嵌入式環(huán)境下開發(fā)動態(tài) web的主要技術(shù)之一,通過 CGI編程能方便地實現(xiàn)瀏覽器與嵌入式 web服務(wù)器之間的動態(tài)數(shù)據(jù)交互。但是,它在數(shù)據(jù)的圖形化展示方面的能力不強,開發(fā)較為復(fù)雜的監(jiān)控頁面難度較大。

Java是具有穩(wěn)定、安全、跨平臺、可移植等諸多優(yōu)點的面向?qū)ο蟪绦蛟O(shè)計語言。Java程序分為兩類即Java Application和Java Applet,其中應(yīng)用在www上的Java Applet程序為非獨立運行程序,要嵌入在web頁面并由客戶端Web瀏覽器內(nèi)部的Java虛擬機解釋執(zhí)行 [7]。嵌入式開發(fā)環(huán)境下,建議使用Applet技術(shù)開發(fā)上層動態(tài)監(jiān)控頁面,該方法具有如下優(yōu)點:

1) Java提供的Swing(用戶界面組件)、多線程、事件處理機制等技術(shù),能幫助開發(fā)人員方便、快捷地設(shè)計出具有交互性強、界面友好等特點的動態(tài)web頁面。

2)Java Applet只和web服務(wù)器進行數(shù)據(jù)交互,數(shù)據(jù)的圖形化展示則是在客戶端完成。與CGI在服務(wù)器端生成圖形文件,然后將圖形文件傳至客戶端瀏覽器這種方式相比,采用Java Applet可減輕服務(wù)器負(fù)擔(dān),減少網(wǎng)絡(luò)流量。

3)Java語言具有平臺獨立性,而這一特性是實現(xiàn)跨平臺數(shù)據(jù)網(wǎng)絡(luò)發(fā)布所必須的。 Java Applet監(jiān)控程序主要完成兩個任務(wù):1)與參數(shù)轉(zhuǎn)發(fā)服務(wù)進程進行動態(tài)數(shù)據(jù)交互;

2)利用Swing(用戶界面組件)、事件處理機制等技術(shù)進行動態(tài)數(shù)據(jù)的圖形化呈現(xiàn)。一般來說這兩個任務(wù)需要并行執(zhí)行,因此在實現(xiàn)過程中會采用Java線程技術(shù)將它們分別作為Applet線程同步執(zhí)行,并利用Java提供的內(nèi)建機制解決兩個線程共同訪問共享資源時出現(xiàn)的相互沖突問題。另外為了防止控制界面動態(tài)刷新時出現(xiàn)閃爍現(xiàn)象,動態(tài)數(shù)據(jù)的圖形化顯示可采用“雙緩沖”技術(shù),即先在內(nèi)存中把待顯示的圖形繪制好,然后,一次性地將內(nèi)存中的圖形覆蓋到屏幕顯示區(qū)。由于內(nèi)存訪問的速度非?,人眼基本感覺不到,從而可克服屏幕閃爍現(xiàn)象[7]。

在嵌入式環(huán)境下,發(fā)布內(nèi)嵌 Applet的動態(tài)監(jiān)控網(wǎng)頁可采取以下步驟:1)根據(jù)監(jiān)控需求在宿主機上開發(fā) Java Applet動態(tài)監(jiān)控程序;2)設(shè)計 HTML監(jiān)控頁面并通過<Applet></Applet>標(biāo)簽對將 Applet程序嵌入其中;3)將 HTML網(wǎng)頁和Applet編譯后生成的字節(jié)碼文件一起下載到目標(biāo)機(即本系統(tǒng)的嵌入式 web服務(wù)器)的虛擬目錄下;4)當(dāng)用戶通過瀏覽器訪問該監(jiān)控網(wǎng)頁時,內(nèi)嵌在該網(wǎng)頁的 Java Applet字節(jié)碼文件就會從嵌入式 web服務(wù)端下載到客戶端并由瀏覽器端的 Java虛擬機解釋執(zhí)行。

4 結(jié)束語

本文探討的遠(yuǎn)程監(jiān)控系統(tǒng)以嵌入式 web服務(wù)器作為核心節(jié)點,將現(xiàn)場數(shù)據(jù)采集層上傳的多種總線協(xié)議數(shù)據(jù)格式轉(zhuǎn)換成 TCP/IP格式并在Internet上進行了統(tǒng)一呈現(xiàn),實現(xiàn)了參數(shù)采集底層網(wǎng)絡(luò)與上層監(jiān)控網(wǎng)絡(luò)的無縫鏈接。

創(chuàng)新點:1)給出了一套通用、可行的遠(yuǎn)程 B/S模式監(jiān)控系統(tǒng)實施方案,對相關(guān)工程技術(shù)人員結(jié)合自己實際的工程需求,開發(fā)特定領(lǐng)域的遠(yuǎn)程監(jiān)控系統(tǒng)具有一定的指導(dǎo)和借鑒意義。

2)提出了在嵌入式環(huán)境下采用 Applet技術(shù)開發(fā)上層動態(tài)監(jiān)控頁面的新思路,較好地解決了監(jiān)控系統(tǒng)參數(shù)數(shù)據(jù)在瀏覽器端的實時刷新和動態(tài)圖形描繪問題。



lele
回復(fù)

使用道具 舉報

發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表