基于Web的網絡儲油罐群遠程監控系統研究
3.2 CAN智能I/O的設計
節點是網絡上信息的接收和發送站,本設計采用由獨立的通信控制芯片與單片機接口構成的智能節點。CAN總線智能節點硬件設計包括:A/D和D/A轉換部分、看門狗硬件電路、CAN總線通信接口,其主要硬件結構如圖2 所示。
油罐的油位、油溫和油泵的進/出口壓力以及油泵的主軸溫度由變送器進行測量,其輸出信號經過多路復用、A/D轉換器送入單片機,輸出控制每個油泵和調節其進口和出口壓力的信息由單片機經D/A轉換器送達執行機構。本設計中采用ATEM公司的單片機AT89S52(具有下載軟件的功能及輔助接口),SJA1000可以完成CAN的物理層和數據鏈路層的所有協議功能,它和高速光電隔離電路6N137以及CAN驅動器PCA82C250構成了與CAN總線相連的通道[4]。
CAN總線智能節點的軟件設計關鍵是CAN總線通信接口程序,其主要功能是將采集進來的數據經過處理,通過定時中斷發送到Web服務器端,同時通過接收中斷接收處理來自服務器端的數據查詢、設置命令和控制命令。
命令碼主要體現在ID標識符上,由于采用的是標準幀格式發送CAN信息幀,因此,ID標識符為11位。其結構如下:ID0~ID5表示大型儲液罐群罐號,如“000000”為“1”號罐;ID6~ID8表示大型儲液罐群的被控量,如“000~100”分別為液位、溫度、重量、進油閥和出油閥;ID9~ID10表示命令字,如“10”為設置命令,“11”為控制命令。
程序主要包括初始化程序、接收處理程序和發送處理程序。其重點和難點是SJA1000的初始化,包括工作方式的設置、接收濾波的設置、接收屏蔽寄存器(AMR)和接收代碼寄存器(ACR)的設置、波特率參數設置和中斷使能寄存器的設置等。
現場控制模塊數據的收發是大量的,也是實時性需要的,但是在遠程機上的控制通常只是常規的監視和調整,不需要太高的實時性,同時也為了網絡的暢通,上位機與遠程機上的同步數據刷新率不必設的太高,一般可以設置為采樣多個數據后一次性發送[5]。

4 系統的中間層設計
中間層是一個多層結構,主要負責數據讀取、數據轉發、數據處理、管理及監控等功能,由CAN總線的網關、數據庫和WEB服務器組成。
4.1 監控單元的設計
監控單元由含CAN適配卡的工控機(上位機)和后臺數據處理程序組成。上位機通過CAN總線智能適配卡PCI-5110與CAN總線進行通信。本程序采用C++Builder編寫,有強大的人機交互功能,方便操作人員使用。
數據庫采用Microsoft SQL Server 7.0, 負責存儲從底層控制系統中采集的數據、向系統發送的控制數據以及對進行各種計算直接產生的中間數據,并對歷史數據進行存儲和歸檔,實現控制程序、罐群基本信息和監控信息等的管理功能。它包括當月數據庫、歷史數據庫、系統參數數據庫和儲罐容積表數據庫。當月數據庫中的數據超過規定的時間后就會自動地轉存到歷史數據庫中。在系統運行過程中,操作員在輸入正確密碼后,可根據需要對各種數據庫進行查詢、刪除、保存或打印等操作。
4.2 Web服務器的建立
WebSnap是C++ Builder 6.0最新的WebApplication開發架構,使用WebSnap不象Web Service那樣需要熟悉套接字Socket,并且在編寫服務器或客戶應用程序前也無須了解應用程序要提供或使用的服務,可進行WEB快速應用開發。WebSnap在開發數據庫應用程序方面有強勁的功能,其ADO數據庫連接控件具有很好地連接各種數據庫的功能。
WebSnap有以下特征:支持CGI(Common Gateway Interface)Web服務器應用程序、支持對客戶請求的多線程處理、提供Web模塊的緩存技術以便更快地對用戶消息進行響應、支持交叉平臺WebSnap把B/S應用的開發代入了一個全新的領域,真正做到了零客戶端配置。
評論