基于Web的網(wǎng)絡(luò)儲油罐群遠(yuǎn)程監(jiān)控系統(tǒng)研究
3.2 CAN智能I/O的設(shè)計
節(jié)點是網(wǎng)絡(luò)上信息的接收和發(fā)送站,本設(shè)計采用由獨立的通信控制芯片與單片機(jī)接口構(gòu)成的智能節(jié)點。CAN總線智能節(jié)點硬件設(shè)計包括:A/D和D/A轉(zhuǎn)換部分、看門狗硬件電路、CAN總線通信接口,其主要硬件結(jié)構(gòu)如圖2 所示。
油罐的油位、油溫和油泵的進(jìn)/出口壓力以及油泵的主軸溫度由變送器進(jìn)行測量,其輸出信號經(jīng)過多路復(fù)用、A/D轉(zhuǎn)換器送入單片機(jī),輸出控制每個油泵和調(diào)節(jié)其進(jìn)口和出口壓力的信息由單片機(jī)經(jīng)D/A轉(zhuǎn)換器送達(dá)執(zhí)行機(jī)構(gòu)。本設(shè)計中采用ATEM公司的單片機(jī)AT89S52(具有下載軟件的功能及輔助接口),SJA1000可以完成CAN的物理層和數(shù)據(jù)鏈路層的所有協(xié)議功能,它和高速光電隔離電路6N137以及CAN驅(qū)動器PCA82C250構(gòu)成了與CAN總線相連的通道[4]。
CAN總線智能節(jié)點的軟件設(shè)計關(guān)鍵是CAN總線通信接口程序,其主要功能是將采集進(jìn)來的數(shù)據(jù)經(jīng)過處理,通過定時中斷發(fā)送到Web服務(wù)器端,同時通過接收中斷接收處理來自服務(wù)器端的數(shù)據(jù)查詢、設(shè)置命令和控制命令。
命令碼主要體現(xiàn)在ID標(biāo)識符上,由于采用的是標(biāo)準(zhǔn)幀格式發(fā)送CAN信息幀,因此,ID標(biāo)識符為11位。其結(jié)構(gòu)如下:ID0~I(xiàn)D5表示大型儲液罐群罐號,如“000000”為“1”號罐;ID6~I(xiàn)D8表示大型儲液罐群的被控量,如“000~100”分別為液位、溫度、重量、進(jìn)油閥和出油閥;ID9~I(xiàn)D10表示命令字,如“10”為設(shè)置命令,“11”為控制命令。
程序主要包括初始化程序、接收處理程序和發(fā)送處理程序。其重點和難點是SJA1000的初始化,包括工作方式的設(shè)置、接收濾波的設(shè)置、接收屏蔽寄存器(AMR)和接收代碼寄存器(ACR)的設(shè)置、波特率參數(shù)設(shè)置和中斷使能寄存器的設(shè)置等。
現(xiàn)場控制模塊數(shù)據(jù)的收發(fā)是大量的,也是實時性需要的,但是在遠(yuǎn)程機(jī)上的控制通常只是常規(guī)的監(jiān)視和調(diào)整,不需要太高的實時性,同時也為了網(wǎng)絡(luò)的暢通,上位機(jī)與遠(yuǎn)程機(jī)上的同步數(shù)據(jù)刷新率不必設(shè)的太高,一般可以設(shè)置為采樣多個數(shù)據(jù)后一次性發(fā)送[5]。
本文引用地址:http://2s4d.com/article/152452.htm
4 系統(tǒng)的中間層設(shè)計
中間層是一個多層結(jié)構(gòu),主要負(fù)責(zé)數(shù)據(jù)讀取、數(shù)據(jù)轉(zhuǎn)發(fā)、數(shù)據(jù)處理、管理及監(jiān)控等功能,由CAN總線的網(wǎng)關(guān)、數(shù)據(jù)庫和WEB服務(wù)器組成。
4.1 監(jiān)控單元的設(shè)計
監(jiān)控單元由含CAN適配卡的工控機(jī)(上位機(jī))和后臺數(shù)據(jù)處理程序組成。上位機(jī)通過CAN總線智能適配卡PCI-5110與CAN總線進(jìn)行通信。本程序采用C++Builder編寫,有強(qiáng)大的人機(jī)交互功能,方便操作人員使用。
數(shù)據(jù)庫采用Microsoft SQL Server 7.0, 負(fù)責(zé)存儲從底層控制系統(tǒng)中采集的數(shù)據(jù)、向系統(tǒng)發(fā)送的控制數(shù)據(jù)以及對進(jìn)行各種計算直接產(chǎn)生的中間數(shù)據(jù),并對歷史數(shù)據(jù)進(jìn)行存儲和歸檔,實現(xiàn)控制程序、罐群基本信息和監(jiān)控信息等的管理功能。它包括當(dāng)月數(shù)據(jù)庫、歷史數(shù)據(jù)庫、系統(tǒng)參數(shù)數(shù)據(jù)庫和儲罐容積表數(shù)據(jù)庫。當(dāng)月數(shù)據(jù)庫中的數(shù)據(jù)超過規(guī)定的時間后就會自動地轉(zhuǎn)存到歷史數(shù)據(jù)庫中。在系統(tǒng)運行過程中,操作員在輸入正確密碼后,可根據(jù)需要對各種數(shù)據(jù)庫進(jìn)行查詢、刪除、保存或打印等操作。
4.2 Web服務(wù)器的建立
WebSnap是C++ Builder 6.0最新的WebApplication開發(fā)架構(gòu),使用WebSnap不象Web Service那樣需要熟悉套接字Socket,并且在編寫服務(wù)器或客戶應(yīng)用程序前也無須了解應(yīng)用程序要提供或使用的服務(wù),可進(jìn)行WEB快速應(yīng)用開發(fā)。WebSnap在開發(fā)數(shù)據(jù)庫應(yīng)用程序方面有強(qiáng)勁的功能,其ADO數(shù)據(jù)庫連接控件具有很好地連接各種數(shù)據(jù)庫的功能。
WebSnap有以下特征:支持CGI(Common Gateway Interface)Web服務(wù)器應(yīng)用程序、支持對客戶請求的多線程處理、提供Web模塊的緩存技術(shù)以便更快地對用戶消息進(jìn)行響應(yīng)、支持交叉平臺WebSnap把B/S應(yīng)用的開發(fā)代入了一個全新的領(lǐng)域,真正做到了零客戶端配置。
評論