一種網(wǎng)絡(luò)儲油罐群遠(yuǎn)程監(jiān)控系統(tǒng)研究
在我國石油、化工、軍事、能源等領(lǐng)域現(xiàn)有各類型儲油罐數(shù)萬個,而且隨著經(jīng)濟的不斷發(fā)展,其數(shù)量也呈持續(xù)上升趨勢。其中,大部分油罐均為人工手動計量,效率低,誤差大,制約了儲油罐群自動化管理水平的提高。管理自動化:由人與計算機技術(shù)設(shè)備和管理控制對象組成的人機系統(tǒng),核心是管理信息系統(tǒng)。管理自動化采用多臺計算機和智能終端構(gòu)成計算機局部網(wǎng)絡(luò),運用系統(tǒng)工程的方法,實現(xiàn)最優(yōu)控制與最優(yōu)管理的目標(biāo)。大量信息的快速處理和重復(fù)性的腦力勞動由計算機來完成,處理結(jié)果的分析、判斷、決策等由人來完成,形成人、機結(jié)合的科學(xué)管理系統(tǒng)。工廠或事業(yè)單位的人、財、物、生產(chǎn)、辦公等業(yè)務(wù)管理自動化,是以信息處理為核心的綜合性技術(shù),涉及電子計算機、通信系統(tǒng)與控制等學(xué)科。一般采用由多臺具有高速處理大量信息能力的計算機和各種終端組成的局部網(wǎng)絡(luò)。現(xiàn)代已在管理信息系統(tǒng)的基礎(chǔ)上研制出決策支持系統(tǒng)(DSS),為高層管理人員決策提供備選的方案。 對社會的影響 自動化是新的技術(shù)革命的一個重要方面。自動化技術(shù)的研究、應(yīng)用和推廣,對人類的生產(chǎn)、生活等方式將產(chǎn)生深遠(yuǎn)影響。生產(chǎn)過程自動化和辦公室自動化可極大地提高社會生產(chǎn)率和工作效率,節(jié)約能源和原材料消耗,保證產(chǎn)品質(zhì)量,改善勞動條件,改進(jìn)生產(chǎn)工藝和管理體制,加速社會的產(chǎn)業(yè)結(jié)構(gòu)的變革和社會信息化的進(jìn)程。
2.系統(tǒng)的功能與體系結(jié)構(gòu)
2.1 系統(tǒng)功能
系統(tǒng)需要能對各儲罐進(jìn)行實時測量和控制。
對每一個油罐需采集的參數(shù)有:油品的界面(液位)、溫度(罐內(nèi)油品在任何界面時的上、中、下三點溫度值)、油泵的進(jìn)口和出口壓力和油泵的主軸溫度;
對每一個油罐需控制和調(diào)節(jié)的參數(shù)有:油泵的進(jìn)口壓力、油泵的出口壓力。
能通過上位機(IPC)進(jìn)行集中的監(jiān)控管理。
能通過Internet進(jìn)行遠(yuǎn)程監(jiān)控管理。
2.2 系統(tǒng)的體系結(jié)構(gòu)
系統(tǒng)的底層采用CAN總線網(wǎng)絡(luò)完成現(xiàn)場的測控任務(wù)。CAN是控制器局域網(wǎng)絡(luò)(Controller Area Network, CAN)的簡稱,是由研發(fā)和生產(chǎn)汽車電子產(chǎn)品著稱的德國BOSCH公司開發(fā)了的,并最終成為國際標(biāo)準(zhǔn)(ISO118?8)。是國際上應(yīng)用最廣泛的現(xiàn)場總線之一。 在北美和西歐,CAN總線協(xié)議已經(jīng)成為汽車計算機控制系統(tǒng)和嵌入式工業(yè)控制局域網(wǎng)的標(biāo)準(zhǔn)總線,并且擁有以CAN為底層協(xié)議專為大型貨車和重工機械車輛設(shè)計的J1939協(xié)議。近年來,其所具有的高可靠性和良好的錯誤檢測能力受到重視,被廣泛應(yīng)用于汽車計算機控制系統(tǒng)和環(huán)境溫度惡劣、電磁輻射強和振動大的工業(yè)環(huán)境。
監(jiān)控機根據(jù)后臺數(shù)據(jù)處理程序負(fù)責(zé)對整個CAN總線進(jìn)行監(jiān)視管理;
數(shù)據(jù)庫負(fù)責(zé)存儲從底層控制系統(tǒng)中采集的數(shù)據(jù)、并向系統(tǒng)發(fā)送的控制數(shù)據(jù)以及對進(jìn)行各種計算直接產(chǎn)生的中間數(shù)據(jù),并對歷史數(shù)據(jù)進(jìn)行存儲和歸檔。
Web服務(wù)器是一個基于Internet的超文本分布信息系統(tǒng)。對于客戶/服務(wù)器體系結(jié)構(gòu)的遠(yuǎn)程測控系統(tǒng),遠(yuǎn)程客戶需要通過Internet/Intranet訪問服務(wù)器端。如今,主要有兩種訪問模式,即B/S和C/S模式。本文中系統(tǒng)的頂層采用基于瀏覽器的客戶端/服務(wù)器B/S(Browser/Server)通信方式?;赪eb的CAN網(wǎng)絡(luò)儲油罐群遠(yuǎn)程監(jiān)控系體系結(jié)構(gòu)如圖1所示。
3 系統(tǒng)底層網(wǎng)絡(luò)的設(shè)計
3.1 基于CAN現(xiàn)場總線的底層網(wǎng)絡(luò)方案
目前對于油罐參數(shù)的采集與傳送主要通過RS-485 網(wǎng)絡(luò)來完成,其檢錯、糾錯、錯誤定位能力弱,無總線脫離功能。而CAN(Controller Area Network)是一種應(yīng)用廣泛的現(xiàn)場總線,它以ISO/OSI模型為基礎(chǔ)的,具有完整的軟件支持系統(tǒng),能夠解決總線控制、沖突檢測、鏈路維護(hù)等問題,允許多主存在。適合于熱插拔,高速、檢錯和糾錯能力、良好的EMC特性。CAN控制器工作于多主方式,網(wǎng)絡(luò)中的各節(jié)點都可根據(jù)總線訪問優(yōu)先權(quán)(取決于報文標(biāo)識符)采用無損結(jié)構(gòu)的逐位仲裁的方式競爭向總線發(fā)送數(shù)據(jù),且CAN協(xié)議廢除了站地址編碼,而代之以對通信數(shù)據(jù)進(jìn)行編碼,這可使不同的節(jié)點同時接收到相同的數(shù)據(jù),這些特點使得CAN總線構(gòu)成的網(wǎng)絡(luò)各節(jié)點之間的數(shù)據(jù)通信實時性強,并且容易構(gòu)成冗余結(jié)構(gòu),提高系統(tǒng)的可靠性和系統(tǒng)的靈活性。而利用RS-485只能構(gòu)成主從式結(jié)構(gòu)系統(tǒng),通信方式也只能以主站輪詢的方式進(jìn)行,系統(tǒng)的實時性、可靠性較差;
對一個大型儲液罐群來說,要構(gòu)成基于現(xiàn)場總線的控制系統(tǒng),其檢測過程變量的變送器和相關(guān)的執(zhí)行器必須是具有現(xiàn)場總線接口的儀表,其費用很高。本文采用設(shè)計現(xiàn)場總線智能I/O的方法,將該智能I/O作為現(xiàn)場總線上的智能接點,將常規(guī)變送器和執(zhí)行器連入現(xiàn)場總線,具有很高的性價比。
3.2 CAN智能I/O的設(shè)計
節(jié)點是網(wǎng)絡(luò)上信息的接收和發(fā)送站,本設(shè)計采用由獨立的通信控制芯片與單片機接口構(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)換器送入單片機,輸出控制每個油泵和調(diào)節(jié)其進(jìn)口和出口壓力的信息由單片機經(jīng)D/A轉(zhuǎn)換器送達(dá)執(zhí)行機構(gòu)。
CAN總線智能節(jié)點的軟件設(shè)計關(guān)鍵是CAN總線通信接口程序,其主要功能是將采集進(jìn)來的數(shù)據(jù)經(jīng)過處理,通過定時中斷發(fā)送到Web服務(wù)器端,同時通過接收中斷接收處理來自服務(wù)器端的數(shù)據(jù)查詢、設(shè)置命令和控制命令。CAN 的高性能和可靠性已被認(rèn)同,并被廣泛地應(yīng)用于工業(yè)自動化、船舶、醫(yī)療設(shè)備、工業(yè)設(shè)備等方面。現(xiàn)場總線是當(dāng)今自動化領(lǐng)域技術(shù)發(fā)展的熱點之一,被譽為自動化領(lǐng)域的計算機局域網(wǎng)。它的出現(xiàn)為分布式控制系統(tǒng)實現(xiàn)各節(jié)點之間實時、可靠的數(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表示大型儲液罐群的被控量;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)程機上的控制通常只是常規(guī)的監(jiān)視和調(diào)整,不需要太高的實時性,同時也為了網(wǎng)絡(luò)的暢通,上位機與遠(yuǎn)程機上的同步數(shù)據(jù)刷新率不必設(shè)的太高,一般可以設(shè)置為采樣多個數(shù)據(jù)后一次性發(fā)送。
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適配卡的工控機(上位機)和后臺數(shù)據(jù)處理程序組成。上位機通過CAN總線智能適配卡PCI-5110與CAN總線進(jìn)行通信。本程序采用C++Builder編寫,有強大的人機交互功能,方便操作人員使用。
數(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ù)庫中。
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)用程序方面有強勁的功能,其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)域,真正做到了零客戶端配置。
4.3 中間層軟件設(shè)計
中間層的主要功能是:對來自底層的數(shù)據(jù)信息進(jìn)行讀取、分解(解析)、運算處理(包括對數(shù)據(jù)庫存儲),并且響應(yīng)來自上層的客戶請求,對該請求分析處理后轉(zhuǎn)發(fā)相應(yīng)的信息給底層,以達(dá)到對底層的監(jiān)視和控制。其系統(tǒng)軟件應(yīng)用結(jié)構(gòu)如圖3所示。
CAN適配卡的控制程序模塊將來自CAN適配卡的數(shù)據(jù)進(jìn)行解析、存儲到數(shù)據(jù)庫,以及把來自Web服務(wù)器應(yīng)用程序傳遞來的信息進(jìn)行處理并向CAN適配卡發(fā)送相應(yīng)數(shù)據(jù);Web服務(wù)器應(yīng)用程序模塊:負(fù)責(zé)系統(tǒng)的全局調(diào)度,接收客戶端請求并響應(yīng),它擔(dān)當(dāng)著對客戶控制命令的下傳和對上傳數(shù)據(jù)信息的處理;而Windows消息處理模塊則建立了Web服務(wù)器應(yīng)用程序和基于CAN適配卡的控制程序的一種溝通機制。
其中,Web服務(wù)器應(yīng)用程序編程使整個系統(tǒng)軟件設(shè)計的關(guān)鍵部分。在WebSnap中,可以創(chuàng)建五種標(biāo)準(zhǔn)類型的Web服務(wù)器應(yīng)用程序,它們是ISAPI和NASPI類型、獨立于操作系統(tǒng)的CGI類型、獨立于操作系統(tǒng)的WinCGI類型、Apache類型和Web服務(wù)器應(yīng)用程序調(diào)試器類型。為了方便調(diào)試服務(wù)器應(yīng)用程序起見,我們采用了Web服務(wù)器應(yīng)用程序調(diào)試器類型。
由于WebSnap具備了嵌入腳本的能力,因此我們采用Dreamweaver來制作HTML頁面文件并將其作為模板集成到C++ Builder的Web服務(wù)器應(yīng)用程序中,構(gòu)成一個完美的服務(wù)器網(wǎng)站。WebSnap應(yīng)用程序與數(shù)據(jù)庫的連接主要通過ADO組件技術(shù)和SQL。在WebSnap應(yīng)用程序的主窗體上嵌入ADOConnection組件,使WebSnap應(yīng)用程序與數(shù)據(jù)庫總保持邏輯連接[6]。
5 數(shù)據(jù)交互路徑
系統(tǒng)中的數(shù)據(jù)流向大體可分為上行數(shù)據(jù)和下行數(shù)據(jù)。上行數(shù)據(jù)就是從現(xiàn)場采集的數(shù)據(jù)上傳給服務(wù)器,下行數(shù)據(jù)就是服務(wù)器接收來自客戶瀏覽器的命令請求下傳到相應(yīng)的現(xiàn)場設(shè)備。
5.1 下行數(shù)據(jù)
當(dāng)遠(yuǎn)程客戶通過身份(用戶名和口令)驗證進(jìn)入控制主頁時,選擇任務(wù),如“關(guān)閉1號儲液罐進(jìn)油閥”,點擊提交按鈕,這樣服務(wù)器便接收來自客戶瀏覽器的控制命令請求??蛻魹g覽器把地址欄中的URL內(nèi)容傳給了Web服務(wù)器,將URL 第二部分服務(wù)器名(192.168.1.238:1024)解碼與Web服務(wù)器相連,Web服務(wù)器應(yīng)用程序通過WebDispatcher將URL 第四部分路徑名(Command)解析,從它的動作項列表中選取【PathInfo】屬性值與Command相同的動作項。該動作項觸發(fā)其對應(yīng)的頁面制作器PageCommand。如果沒有找到匹配的動作項,WebDispatcher將調(diào)用默認(rèn)的動作項。PageCommand的屬性【HTMLFile】標(biāo)記著對應(yīng)的HTML文件地址,其事件屬性【OnHTMLTag】標(biāo)記著PageCommandHTMLTag。當(dāng)關(guān)閉1號儲液罐進(jìn)油閥事件被觸發(fā)時,頁面制作器PageCommand開始構(gòu)造HTML頁面,當(dāng)發(fā)現(xiàn)透明書簽〈#IsIn進(jìn)油閥〉(HTML文件代碼中)時,用相應(yīng)的解析函數(shù)PageCommandHTMLTag中的替換文本替代。與此同時,我們在解析函數(shù)PageCommandHTMLTag中自定義Windows消息(關(guān)閉1號進(jìn)油閥)并且發(fā)送它,當(dāng)基于CAN適配卡的控制程序截獲這個消息時,把關(guān)閉1號進(jìn)油閥編制成命令碼“1101100000”封裝成CAN信息幀數(shù)組的結(jié)構(gòu)成員ID發(fā)送到CAN適配卡。經(jīng)CAN適配卡(轉(zhuǎn)換成CAN協(xié)議能識別的數(shù)據(jù)格式)傳到CAN總線時,經(jīng)驗收碼和屏蔽碼辨別,被CAN總線智能節(jié)點1接收,表明要控制的對象是1號大型儲液罐。
遠(yuǎn)程測控系統(tǒng)的命令窗口如圖4所示。
5.2 上行數(shù)據(jù)
上行數(shù)據(jù)與下行數(shù)據(jù)流程的原理基本相同。從現(xiàn)場儲液罐群被控量中采集來的數(shù)據(jù),經(jīng)各個CAN總線智能節(jié)點處理后定時發(fā)到CAN總線上,經(jīng)CAN適配卡進(jìn)入PC機,基于CAN適配卡的控制程序模塊把CAN信息幀數(shù)組(VCI_CAN_OBJ結(jié)構(gòu)體類型)中的成員ID標(biāo)識符提取出來分解,分別把分解得到的罐號和其它被控量存到數(shù)據(jù)庫中。
6 結(jié)束語
當(dāng)前是一個構(gòu)筑在網(wǎng)絡(luò)基礎(chǔ)之上的信息化時代。本文作者創(chuàng)新點在于將Web技術(shù)與現(xiàn)場總線技術(shù)的結(jié)合,通過現(xiàn)場總線技術(shù)將現(xiàn)場設(shè)備接入網(wǎng)絡(luò),實現(xiàn)控制網(wǎng)絡(luò)與互聯(lián)網(wǎng)的完全融合,實現(xiàn)儲油罐群的遠(yuǎn)程網(wǎng)絡(luò)控制與管理,具有一定的先進(jìn)性與優(yōu)越性。
QICK