新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Web的網(wǎng)絡(luò)儲(chǔ)油罐群遠(yuǎn)程監(jiān)控系統(tǒng)研究

基于Web的網(wǎng)絡(luò)儲(chǔ)油罐群遠(yuǎn)程監(jiān)控系統(tǒng)研究

作者: 時(shí)間:2009-06-18 來源:網(wǎng)絡(luò) 收藏

4.3 中間層軟件設(shè)計(jì)
中間層的主要功能是:對(duì)來自的數(shù)據(jù)信息進(jìn)行讀取、分解(解析)、運(yùn)算處理(包括對(duì)數(shù)據(jù)庫(kù)存儲(chǔ)),并且響應(yīng)來自上層的客戶請(qǐng)求,對(duì)該請(qǐng)求分析處理后轉(zhuǎn)發(fā)相應(yīng)的信息給,以達(dá)到對(duì)的監(jiān)視和控制。其系統(tǒng)軟件應(yīng)用結(jié)構(gòu)如圖3所示。

本文引用地址:http://2s4d.com/article/152452.htm

CAN適配卡的控制程序模塊將來自CAN適配卡的數(shù)據(jù)進(jìn)行解析、存儲(chǔ)到數(shù)據(jù)庫(kù),以及把來自服務(wù)器應(yīng)用程序傳遞來的信息進(jìn)行處理并向CAN適配卡發(fā)送相應(yīng)數(shù)據(jù);服務(wù)器應(yīng)用程序模塊:負(fù)責(zé)系統(tǒng)的全局調(diào)度,接收客戶端請(qǐng)求并響應(yīng),它擔(dān)當(dāng)著對(duì)客戶控制命令的下傳和對(duì)上傳數(shù)據(jù)信息的處理;而Windows消息處理模塊則建立了服務(wù)器應(yīng)用程序和CAN適配卡的控制程序的一種溝通機(jī)制。
其中,Web服務(wù)器應(yīng)用程序編程使整個(gè)系統(tǒng)軟件設(shè)計(jì)的關(guān)鍵部分。在中,可以創(chuàng)建五種標(biāo)準(zhǔn)類型的Web服務(wù)器應(yīng)用程序,它們是ISAPI和NASPI類型、獨(dú)立于操作系統(tǒng)的CGI類型、獨(dú)立于操作系統(tǒng)的WinCGI類型、Apache類型和Web服務(wù)器應(yīng)用程序調(diào)試器類型。為了方便調(diào)試服務(wù)器應(yīng)用程序起見,我們采用了Web服務(wù)器應(yīng)用程序調(diào)試器類型。它可以利用本地機(jī)虛擬的Web服務(wù)器所開發(fā)的應(yīng)用程序結(jié)合到一起運(yùn)行并通過C++ Builder強(qiáng)大的調(diào)試功能,方便地發(fā)現(xiàn)程序中存在的邏輯錯(cuò)誤。
由于具備了嵌入腳本的能力,因此我們采用Dreamweaver來制作HTML頁面文件并將其作為模板集成到C++ Builder的Web服務(wù)器應(yīng)用程序中,構(gòu)成一個(gè)完美的服務(wù)器網(wǎng)站。應(yīng)用程序與數(shù)據(jù)庫(kù)的連接主要通過ADO組件技術(shù)和SQL。在WebSnap應(yīng)用程序的主窗體上嵌入ADOConnection組件,使WebSnap應(yīng)用程序與數(shù)據(jù)庫(kù)總保持邏輯連接[6]。
5 數(shù)據(jù)交互路徑
系統(tǒng)中的數(shù)據(jù)流向大體可分為上行數(shù)據(jù)和下行數(shù)據(jù)。上行數(shù)據(jù)就是從現(xiàn)場(chǎng)采集的數(shù)據(jù)上傳給服務(wù)器,下行數(shù)據(jù)就是服務(wù)器接收來自客戶瀏覽器的命令請(qǐng)求下傳到相應(yīng)的現(xiàn)場(chǎng)設(shè)備。
5.1 下行數(shù)據(jù)
當(dāng)客戶通過身份(用戶名和口令)驗(yàn)證進(jìn)入控制主頁時(shí),選擇任務(wù),如“關(guān)閉1號(hào)儲(chǔ)液罐進(jìn)油閥”,點(diǎn)擊提交按鈕,這樣服務(wù)器便接收來自客戶瀏覽器的控制命令請(qǐng)求??蛻魹g覽器把地址欄中的URL(http://192.168.1.238:1024/chuyeguan.LhjSnap/Command)內(nèi)容傳給了Web服務(wù)器,將URL 第二部分服務(wù)器名(192.168.1.238:1024)解碼與Web服務(wù)器相連,Web服務(wù)器應(yīng)用程序通過WebDispatcher將URL 第四部分路徑名(Command)解析,從它的動(dòng)作項(xiàng)列表中選取【PathInfo】屬性值與Command相同的動(dòng)作項(xiàng)。該動(dòng)作項(xiàng)觸發(fā)其對(duì)應(yīng)的頁面制作器PageCommand。如果沒有找到匹配的動(dòng)作項(xiàng),WebDispatcher將調(diào)用默認(rèn)的動(dòng)作項(xiàng)。PageCommand的屬性【HTMLFile】標(biāo)記著對(duì)應(yīng)的HTML文件地址,其事件屬性【OnHTMLTag】標(biāo)記著PageCommandHTMLTag。當(dāng)關(guān)閉1號(hào)儲(chǔ)液罐進(jìn)油閥事件被觸發(fā)時(shí),頁面制作器PageCommand開始構(gòu)造HTML頁面,當(dāng)發(fā)現(xiàn)透明書簽〈#IsIn進(jìn)油閥〉(HTML文件代碼中)時(shí),用相應(yīng)的解析函數(shù)PageCommandHTMLTag中的替換文本替代。與此同時(shí),我們?cè)诮馕龊瘮?shù)PageCommandHTMLTag中自定義Windows消息(關(guān)閉1號(hào)進(jìn)油閥)并且發(fā)送它,當(dāng)CAN適配卡的控制程序截獲這個(gè)消息時(shí),把關(guān)閉1號(hào)進(jìn)油閥編制成命令碼“1101100000”封裝成CAN信息幀數(shù)組的結(jié)構(gòu)成員ID發(fā)送到CAN適配卡。經(jīng)CAN適配卡(轉(zhuǎn)換成CAN協(xié)議能識(shí)別的數(shù)據(jù)格式)傳到CAN總線時(shí),經(jīng)驗(yàn)收碼和屏蔽碼辨別,被CAN總線智能節(jié)點(diǎn)1接收,表明要控制的對(duì)象是1號(hào)大型儲(chǔ)液罐。與此同時(shí),CAN控制器產(chǎn)生接收中斷,單片機(jī)把ID分解后知道被控量是進(jìn)油閥,然后運(yùn)行關(guān)閉進(jìn)油閥子程序滿足該控制要求,經(jīng)執(zhí)行器執(zhí)行關(guān)閉進(jìn)油閥命令。至此,客戶瀏覽器把控制命令下傳給了1號(hào)大型儲(chǔ)液罐進(jìn)油閥。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉