時間:2007-01-16 11:12:00來源:jiangf
圖1 分布式異構系統3級測控網絡結構圖[/ALIGN]
3、基于VC++多線程的設備集中監控與數據管理
3.1 硬件設計
在硬件設計上,由一臺PC工控機作為上位機,用來接收并存儲現場的監測數據,本地現場硬件包括已有監控計算機(通過編寫軟件來提取已有監控系統的數據)、可編程的PC-Based數據采集控制器(通過編程來采集現場設備的監測數據)和不可編程的I/O節點(直接進行數據采集),遠程現場硬件主要是監控計算機(通過編寫軟件來提取已有監控系統的數據)。
在傳輸線路上,根據企業現場實際,各子系統線路距離一般不會超過1200m,但位置分散,各子系統通信硬件各異,信號相互干擾會比較嚴重,鑒于這種情況,對各種通信方式(RS-232、RS-422、RS-485、光纖)的特點進行了比較和分析,RS-232傳輸方式數據傳輸速率較慢(一般只能達到20kb/s),傳輸距離短(一般裝置間電纜長度為15 m之內),且接口處信號容易互相干擾;RS-422總線傳輸方式盡管傳輸距離較遠,但節點太少;光纖傳輸通信距離遠、性能穩定,但成本過高;RS-485傳輸方式不僅具有傳輸距離遠、多節點(32個)的特點,而且傳輸線成本低。因此為了提高通信穩定性、減小工程成本,采用RS-485總線傳輸方式。
在RS-485總線傳輸接口上,上位工控機需采用RS-232/RS-485轉換板,將PC串口RS-232信號轉換成RS-485信號,而下位機的情況較為復雜,對于以計算機為下位的子系統,也需要安裝RS-232/RS-485轉換板,對于以PC-BASE控制器和遠程I/O節點為下位的子系統,其硬件系統支持RS-485通信,不需要安裝其他硬件設備就可以實現通信。
3.2 軟件設計
系統在VC++6.0環境下,使用多線程技術開發監控軟件來實現設備系統的集中監控與數據管理,其系統功能模塊如圖2所示。
[ALIGN=CENTER]
圖2 VC++監控軟件功能結構模塊圖[/ALIGN]
集中監控主機向各子站數據采集控制器和子系統主機發送查詢數據指令,并由數據打包模塊將指令整理成數據查詢報文,通過通訊模塊傳給數據發送模塊與下位設備通訊;有查詢報文返回時,再通過通訊模塊、數據解包模塊將數據還原,然后通過數據存儲管理模塊對數據進行處理和存儲,其中內存中的實時數據傳給實時監控模塊,硬盤中的數據供數據統計分析模塊訪問。
軟件前臺功能設計上,實時監控模塊主要包括動態流程圖顯示、動態曲線顯示、實時報警顯示、各線路通信狀態顯示等;數據統計分析模塊主要包括總體運行分析、數據檢索編輯、歷史曲線查詢、歷史數據統計、輸出報表及打印等功能,此外,前臺功能還包括各工作線路模塊、通訊信息輸出模塊。系統具有常規SCADA軟件的所有功能,實現了全面監測設備和處理信息的任務。
多線程串行通訊技術見關鍵技術部分。
3.3 串行通信驅動程序的設計
在通信功能的實現上,可以直接使用微軟的易于實現串口的通信ACtivex控件MSCOMM,但是根據串行通信多類型、設備多的特點,本系統采用了WIN32 API函數來編寫串口通信類的方法,方便、靈活地實現了串口通信功能。
Win32 API是一個復雜函數、消息的集合,它把對串口和其它通信設備的支持與基本輸入輸出驅動程序集成為一體,系統只需要通過設備控制模塊DCB的數據結構對串行口和串行通信驅動程序進行配置。
串口通信編程實現的基本步驟:打開與外設相連的串口,根據通信協議對通信控制模塊(DCB結構)進行配置;然后初始化串口的接收和發送緩沖區大小;進行讀寫操作;通過校驗,對正確接收的數據進行處理;最后在串行通信結束后,關閉串口。
3.4 數據的提取與傳輸
對于需要直接從現場采集運行數據的子系統,一般采用遠程I/O節點和基于PC-Based可編程數據采集控制器進行數據采集,并將數據整理成數據幀后發送到485總線上,由上位機對數據進行處理和整合。
對于已有監控系統的子系統,由于其監控軟件大多是組態軟件開發的,因此系統采用VC++6.0開發數據傳輸軟件的方式,一般互操作性強的子系統,采用DDE方式可讀取實時數據的方法,而針對于軟件封閉、互操作性較差的子系統,則采用直接從其數據庫或數據文件中讀取最新數據的方法,下位軟件周期性地監視封閉系統數據庫或數據文件的屬性,如果屬性發生了變化,說明有新的數據寫入,提取其最新數據記錄,并將數據記錄整理成數據幀,存入相應的動態數組中,等待收到上位的查詢指令后發送。并將數據通過RS485總線,傳送到上位計算機。
3.5 數據的存儲管理
根據系統多設備、實時更新、數據量大的特點,為了方便對數據的操作,更好地管理和保存數據,整個數據庫系統設有實時數據庫和歷史數據庫。實時數據庫必須滿足實時更新、實時處理的特性,并要利于WEB服務器進行實時動態數據交換,因此實時數據庫采用內存數據庫和硬盤上的SQL Server2000數據庫相結合的方式;歷史數據庫用來保存存放實時數據庫中到期的需要永久保存的數值量數據,歷史數據庫存儲量大,保存時間長,采用SQL Server2000數據庫。實時數據庫和歷史數據庫的配合使用,實現了數據的優化管理。
數據的存儲管理主要包括:數據的正確性處理、數據的統計、存儲、壓縮、備份與定時清除。其中數據的統計主要是對流量型數據進行的統計,數據的壓縮主要是對實時數據在寫入歷史數據庫之前的壓縮,對于瞬時流量型數據,可以設定不同流量數據的壓縮參數(壓縮偏差、最小壓縮、最大壓縮3個條件參數),僅保留超過壓縮偏差的數據;其他的實時數據不變化的數據不保存,變化的數據按照設定的數據時間間隔進行簡單壓縮。
采用ADO技術實現對數據的操作管理,它能以極高的性能訪問數據源,與微軟的數據庫管理系統SQL Server2000緊密結合。系統封裝了3類以ADO方式操作數據庫的函數:①創建與數據源聯接的函數、提取記錄集的函數,關閉記錄集和連接的函數等;②記錄操作函數(如增加記錄函數,修改記錄函數,刪除記錄函數等);③數據管理函數,包括數據的存儲、壓縮和統計等。
4、基于WEB的遠程實時監測與數據分析
雖然現場總線對實現面向設備的自動化系統起了巨大的推動作用,但是由于現場總線開放性是有條件的、不徹底的,隨著生產規模的擴大和企業信息化的要求,其開放性也越來越不能滿足要求。在遇到這一阻礙時,Internet、Intranet、Ether-net這些基于TCP/IP協議的網絡發展迅速,與現場總線相比,它們具有技術成熟、網絡產品低廉、開發工具豐富等明顯的優勢,使得測控網絡技術在遠程監控方面有了很大的突破。從現有的體系結構上來看,目前在工業自動化體系中較為常見且具有很大發展潛力的是B/S結構。
B/S結構,即Browser/Server(瀏覽器/服務器)結構,是隨著Internet技術的興起,對C/S結構一種變化或者改進的結構,在傳統的C/S(Client/Server)結構中間加上一層,把原來客戶機所負責的功能交給中間層來實現,這個中間層即為WEB服務層。即形成了3層結構:表示層(用戶界面),功能層(WEB服務器)和數據層(數據庫服務器)。與C/S結構相比,B/S結構具有以下優點:①用戶端只需安裝單一的瀏覽器軟件(如IE),界面統一,使用簡單;②由于客戶端無需安裝專用軟件,系統升級時只需更新WEB服務器端的軟件,使系統易于維護;③B/S結構采用標準的TCP/IP協議、HTTP協議,有良好的廣域網支持,擴展性好,易于實現多用戶監控,信息共享程度高。
系統遠程監測采用B/S結構,如圖3所示。
[ALIGN=CENTER]
圖3 遠程實時監測結構圖[/ALIGN]
其中WEB服務器采用Microsoft Windows Server2000、IIS5.0和Internet Explorer系統平臺,以ASP技術來發布系統信息。ASP(Active Server Pages,活動服務器頁面)是Microsoft公司推出的一種服務器端腳本語言執行環境,ASP技術能夠把HTML WEB頁面、腳本語言、ActiveX組件等有機地結合起來,形成一個能夠在服務器上運行的應用程序,并把按用戶要求專門制作的標準HTML頁面送給客戶端瀏覽器。
集中監控軟件將實時采集的現場數據在內存中進行處理后,通過VC的ADO數據庫訪問技術保存到SQL Server2000中的實時數據庫(臨時數據庫Tempdb)和歷史數據庫(硬盤數據庫)中。遠程計算機通過WEB瀏覽器向WEB服務器發出請求,WEB服務器處理后調用相應的ASP文件到數據庫上進行查詢,查詢結果送回WEB服務器后,以HTML頁面的形式返回到瀏覽器。
基于B/S結構,運用ASP技術,系統實現了流程圖動態顯示、數據曲線與統計圖實時顯示、數據表格實時顯示等遠程實時監測與數據分析功能。
5、關鍵技術
5.1 基于VC++多線程的串行通信技術
中央監控軟件采用基于多線程的串行通信技術來實現對下位的查詢和對數據的接收。上位軟件采用多線程的“輪詢”+“消息驅動”方式,在主線程中完成打開串口、配置串口、初始化串口并創建輔助通信線程,由輔助通信線程輪流向下位不同設備系統發送查詢數據指令,并實時監視串口通信狀態,等待下位的回復,一旦查詢到數據已經發送到串行口上,輔助線程自動接收數據,并向主線程發送數據接收到的消息,主線程取走數據并進行處理。若上位通訊線程在設定時間內一直未收到下位某子系統對查詢指令的回復,則發送查詢下一子系統數據的指令,這樣通過輪詢的方式,所有子系統的數據都被傳送到上位。根據現場實際,系統設有相應數量的通信線程,監視對應通信線路的串口狀態,同時系統定義了發送、發送完成、接收、接收完成4個消息,以完成原定的消息處理功能。另外,考慮到與同構系統相比,異構系統存在多子系統并存且通信線路較長的特點,所以數據在傳輸上難免受到外界環境的干擾,為了克服因客觀原因帶來的通信不穩定,在程序設計上采用重要數據多次發送的方法。圖4為RS-485總線通訊方式中上位軟件通信線程流程。
[ALIGN=CENTER]
圖4 上位軟件通信線程流程圖[/ALIGN]
針對串行通信的特點,采用事件(Event)對象來同步串行通信中各線程對通信端口和內存數據的訪問,避免引起多線程間的沖突和死鎖。具體通過WaitForSingeObject(),SetEvent()和Reset-Event()3個函數來協調重疊I/O的操作。
5.2 多種通信協議與配置文件的有效配合
基于VC++的集中監控與數據管理軟件相當于整個網絡體系結構的心臟,它處理數據的速度、合理的編程構架決定著整個系統的性能。
根據現場多設備、多系統并存的實際情況,在數據傳輸上采用了多種數據幀格式,即不同系統設備有不同的數據幀格式,既有原硬件定義幀格式(下位為遠程I/O節點的子系統)又有多種自定義幀格式。在數據的校驗方法上,采用校驗和(CheckSum)方式來校驗接收數據正誤,方法是將所有傳送字符的ASCII碼累加后除以255得到的。
針對系統多設備、多系統的特點,既有直接從現場采集的數據,也有從原有異構系統數據文件中讀取的數據;既有模擬量,也有數字量和開關量。這樣程序在運行過程中,需要不斷修改子系統通信參數,采用修改源程序代碼,費時又費力。為了增強程序的靈活性和可擴展性,避免以往組態軟件的設計缺陷,系統采用了配置文件與多種數據幀格式相結合的方式,以讀取配置文件的方法初始化涉及到每個設備的功能模塊。在程序運行前,通過修改配置文件中的信息,靈活地預置了不同設備的通信參數,而無需修改復雜的原程序。系統的配置文件分為兩種:通信線路信息文件和數據結構信息。前者包含每條通信線路的端口號、波特率、子系統個數等;后者包括信號個數、信號名稱、校驗方式等數據幀格式信息。多種數據幀格式和配置文件預置的有效配合,大大提高了系統的靈活性和可擴展性。
5.3 數據庫實現技術
數據庫服務器上應安裝比較通用且功能強大的數據庫系統,既方便于WEB服務器進行數據交換,又要能快速存儲集中監控層數據。在數據庫服務器上建有兩種類型的數據庫:實時數據庫和歷史數據庫。前者用來存儲實時數據,以供WEB服務器進行動態顯示,要求有較高的存取速度。后者用來存儲每一時段的歷史數據,以供用戶查詢,繪制歷史曲線,要求有較大的數據容量。
嚴格來說,實時數據庫應采用專用的工業實時數據庫系統來實現,但是對于測控系統而言,其實時性要求不是太高,一些商用數據庫系統如SQL Server 2000等已能滿足其要求。考慮到集中監控層數據采集與存儲速度為ms級,而遠程訪問刷新的速度為10s,因此實時數據庫采用了內存數據庫與SQL Server2000數據庫相結合的方式。
內存實時數據庫通過在內存中開辟線性數據結構的順序表來實現,實現了隨機存儲,存儲速度快,對于存儲空間估計,可通過程序提供的動態數組來解決。SQL Server2000實時數據庫采用臨時數據庫Tempdb,由于Tempdb中數據不會象其他的數據庫在硬盤中保存,因而在Tempdb中的表上進行的操作比其他數據庫要快得多,專為WEB瀏覽器實時監測頁面提供動態訪問數據。
5.4 WEB畫面的動態顯示技術
在遠程實現動態監測,最好能在瀏覽器上實現一個類似DCS系統的基于流程圖動態顯示的人機界面,但由ASP所產生的動態網頁在客戶端只能顯示表格數據,很難產生組態畫面、統計圖形、曲線等動能,為了更為直觀的顯示監測畫面,在WEB頁面中嵌入了JPG圖片和Active X控件。
為了實現動態監測,畫面要求實時刷新,系統刷新時間為10s。由于頁面中包含了圖片、Active X控件,有些流程圖體積較大,無法通過WEB達到要求,并且畫面在刷新時,由于瀏覽器重新載入頁面資源,還會出現頁面閃爍的現象。解決這些問題的唯一方法就是只刷新顯示的數據而不刷新流程圖,即將動態顯示頁面分為流程圖頁面和刷新數據頁面,用分為兩幀的頁面來集成這兩個頁面。刷新數據頁面每隔10s自動刷新,以從服務器端取得最新的數據,然后觸發頁面中的javascript函數,自動將最新數據顯示在流程圖頁面上,從而實現了流程圖的動態平滑顯示。
6、結束語
上述分布式異構系統3級測控網絡的設計與實現方法,已在北京西站3級網絡監測與數據管理系統中成功應用,具有可靠性強、低成本、易于使用、靈活性和可擴展性強的特點。具體體現為:①體系結構先進,方便擴展和與以太網、Internet的網絡連接;②功能強大,可開辟多路后臺線程,實時監控多種設備系統;③系統具有常規SCA-DA軟件所有功能,實現了全面監測設備和處理信息的任務;④系統開放性好,支持TCP/IP協議、RS-485協議,支持標準的管理數據庫接口;⑤系統功能靈活,模塊化的結構使得用戶可以方便地擴充系統功能,更改線路結構,從而很容易地對系統進行放縮。
標簽:
上一篇:遠程監控技術的發展現狀和趨勢
傳動網版權與免責聲明:凡本網注明[來源:傳動網]的所有文字、圖片、音視和視頻文件,版權均為傳動網(www.cdcst56.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
產品新聞
更多>2025-12-10
2025-11-20
2025-11-10
2025-11-10
2025-11-07
2025-10-31