技術(shù)頻道

      基于VB和組態(tài)王的監(jiān)控系統(tǒng)軟件設(shè)計

      1 引言
        目前,在監(jiān)控系統(tǒng)軟件的開發(fā)中,比較常見的方法主要有兩種。一種是利用面向?qū)ο蟮目梢暬幊陶Z言如vb、vc來開發(fā),其中包括數(shù)據(jù)通訊、界面實現(xiàn)、數(shù)據(jù)處理和數(shù)據(jù)庫功能等部分內(nèi)容;另一種是利用組態(tài)軟件來完成,利用組態(tài)軟件提供的硬件驅(qū)動功能直接訪問硬件進行通信,同時利用其圖形化工具實現(xiàn)監(jiān)控界面。前一種方法的程序設(shè)計任務(wù)比較重,特別是要實現(xiàn)工業(yè)生產(chǎn)中復(fù)雜的流程和工藝的逼真顯示要花費大量的時間;后一種方法對硬件的依賴比較大,當組態(tài)軟件不支持相關(guān)的硬件時就會受到限制。將兩種方法結(jié)合起來則是一種很好的選擇。利用vb、vc提供的強大的數(shù)據(jù)通訊和處理功能實現(xiàn)數(shù)據(jù)采集、控制及處理,利用組態(tài)軟件的圖形化工具來實現(xiàn)界面設(shè)計,二者的結(jié)合將使監(jiān)控系統(tǒng)軟件的設(shè)計更加簡單和靈活。

      2 系統(tǒng)概述
        在某油田生產(chǎn)監(jiān)控系統(tǒng)設(shè)計中,筆者采用vb和組態(tài)王的結(jié)合設(shè)計了整個系統(tǒng)的監(jiān)控軟件。在該系統(tǒng)中有多種測控點,其中一部分需要控制(如壓力),利用plc的模擬量輸入輸出模塊來完成;另一部分只需測量,如現(xiàn)場的液位、流量等,采用光纖液位計、智能流量計等儀表測量,這些儀表具有模擬和數(shù)字通信能力,但不能和組態(tài)王直接通信。因此,采用vb編寫通訊程序與plc和儀表通信,對數(shù)據(jù)進行分析處理,利用vb和組態(tài)王之間的動態(tài)數(shù)據(jù)交換(dde)實現(xiàn)數(shù)據(jù)共享,并在組態(tài)王中設(shè)計相應(yīng)的監(jiān)控界面。
        整個系統(tǒng)采用多級分布式結(jié)構(gòu),分為2個分控站和1個主控站并要求實現(xiàn)遠程監(jiān)控功能,系統(tǒng)結(jié)構(gòu)如圖1所示。由底層plc控制系統(tǒng)、分控室過程監(jiān)控系統(tǒng)和主控室管理系統(tǒng)以及網(wǎng)絡(luò)化遠程監(jiān)控系統(tǒng)構(gòu)成。
        其中,plc控制系統(tǒng)主要完成現(xiàn)場需要控制設(shè)備的控制,plc主要包括模擬量輸入模塊和模擬量輸出模塊及pid控制模塊。
        分控室過程監(jiān)控系統(tǒng)作用是與底層的plc和儀表通訊,獲取生產(chǎn)過程的數(shù)據(jù),顯示工藝流程,歷史曲線圖,實時曲線圖,報警畫面,生成數(shù)據(jù)庫等。

      圖1 系統(tǒng)結(jié)構(gòu)圖

        主控室與分控室工業(yè)控制機通訊,獲取生產(chǎn)工藝參數(shù)報表,報警記錄等資料信息,為管理人員了解總體生產(chǎn)狀況,調(diào)整生產(chǎn)計劃提供幫助。
        分控室和主控室系統(tǒng)以ethernet相連,共享數(shù)據(jù)和信息。分控室計算機的信息通過網(wǎng)絡(luò)送到主機,由主控室完成數(shù)據(jù)處理的任務(wù),自動生成各種報表,并在指定的時間打印輸出。主控室可以根據(jù)操作人員的選擇切換同步監(jiān)視各個分控室系統(tǒng)的運行情況。主控室計算機還完成網(wǎng)絡(luò)服務(wù)器的功能,將這些生產(chǎn)參數(shù)上網(wǎng)傳輸,與局域網(wǎng)和internet相連,實現(xiàn)網(wǎng)絡(luò)化遠程監(jiān)控。
        主監(jiān)控室和遠程監(jiān)控局域網(wǎng)之間選擇快速以太網(wǎng);分控室和主控室之間由于通信距離較遠和有干擾源存在,選擇rs485串行通信標準。分控室和plc儀表及之間則選擇簡單可靠的rs232串行通信標準。

      3 數(shù)據(jù)采集與通訊程序
        數(shù)據(jù)采集與通訊程序作為與儀表和plc以及與上位機監(jiān)控軟件的接口,在系統(tǒng)軟件中占據(jù)了重要的地位,其功能結(jié)構(gòu)如圖2所示。數(shù)據(jù)采集與通訊程序在分控室監(jiān)控計算機上主要包括與智能儀表、plc的通訊和與主控室的通訊三部分,均用vb編寫,采用vb6.0提供的mscomm通信控件。mscomm控件通過定時查詢來控制串行端口,每隔一段時間讀取或發(fā)送一次數(shù)據(jù),包括定時讀取智能儀表、plc數(shù)據(jù)和定時向主控室計算機傳送數(shù)據(jù)。對plc控制參數(shù)的寫入,則采用事件驅(qū)動方式來處理,在程序中設(shè)置相關(guān)的標志位,需要寫入時由相應(yīng)事件引起標志位改變,再調(diào)用相應(yīng)的處理和寫入子程序。需要進行圖形化顯示的數(shù)據(jù)則在vb中定義為dde變量,并作為組態(tài)王中相應(yīng)數(shù)據(jù)變量的dde數(shù)據(jù)服務(wù)器。采集和通訊程序生成可執(zhí)行程序,監(jiān)控系統(tǒng)軟件啟動時自動后臺運行。主控室計算機接收分控室定時傳來的數(shù)據(jù),存儲到數(shù)據(jù)庫中,作為遠程監(jiān)控頁面訪問的數(shù)據(jù)源,利用flash、asp等生成動態(tài)網(wǎng)頁并向局域網(wǎng)和internet發(fā)布實現(xiàn)遠程監(jiān)控。

      圖2  通訊程序功能結(jié)構(gòu)

      4 組態(tài)王與vb的dde實現(xiàn)
        基于windows消息機制的dde(dynamic data exchange)是windows實現(xiàn)其應(yīng)用程序彼此之間通信的一種手段,通過在運行的應(yīng)用程序之間建立客戶/服務(wù)器(client/ server)關(guān)系實現(xiàn)在彼此之間交換數(shù)據(jù)或指令。dde可以作為連接監(jiān)控系統(tǒng)現(xiàn)場信號與監(jiān)控軟件的橋梁,允許在兩個windows應(yīng)用程序間通過相互傳遞dde消息進行會話,從而完成數(shù)據(jù)的請求、應(yīng)答和傳輸。這樣,若需實現(xiàn)監(jiān)控數(shù)據(jù)與監(jiān)控界面相集成,可事先編寫好具有通用功能的dde服務(wù)軟件,為用戶規(guī)定好應(yīng)用程序名(server)、標題名(topic)和項目名(item),讓用戶自己按提供的規(guī)范去完成監(jiān)視畫面的組態(tài)功能。
        dde提供對不同程序在運行期間實現(xiàn)對數(shù)據(jù)的動態(tài)交換,它是建立在windows內(nèi)部消息系統(tǒng)和共享全局內(nèi)存基礎(chǔ)上的一種協(xié)議,用來協(xié)調(diào)windows應(yīng)用程序之間的數(shù)據(jù)交換和命令調(diào)用。dde協(xié)議使用三級命名:服務(wù)(service)、主題(topic)和數(shù)據(jù)項(item)來標識dde所傳遞的數(shù)據(jù)單元。服務(wù)使應(yīng)用程序具有了提供給其他程序的數(shù)據(jù)交換能力,一般服務(wù)就是應(yīng)用程序的文件名;主題是對服務(wù)器有意義的信息單元,許多服務(wù)器都有默認的主題。每次dde客戶與服務(wù)程序之間的對話都是先由客戶啟動的,所以在每次客戶啟動之前,dde服務(wù)器必須先投入運行。dde支持 3種數(shù)據(jù)交換模式:冷鏈結(jié),客戶(client)應(yīng)用程序請求來自服務(wù)器(server)的數(shù)據(jù);溫鏈結(jié),客戶應(yīng)用程序請求來自服務(wù)器的一個通知,以便知道某些特定的數(shù)據(jù)項在何時發(fā)生了變化;熱鏈結(jié),當特定數(shù)據(jù)項發(fā)生變化時,服務(wù)器向用戶同時發(fā)送通知和數(shù)據(jù)本身。dde協(xié)議在vb和組態(tài)王中都進行了很好的封裝,可以很容易的實現(xiàn)數(shù)據(jù)的動態(tài)交換。
        為了建立dde連接,需要在組態(tài)王的數(shù)據(jù)詞典里建立dde變量,并登記3個標識名。組態(tài)王運行系統(tǒng)的程序名是“view”,主題規(guī)定為“tagname”,項目是在定義dde變量時的項目名稱。變量名是組態(tài)王使用的,“連接對象名”用來定義服務(wù)器程序的信息。組態(tài)王作為客戶向vb請求數(shù)據(jù)時需要在定義變量時說明服務(wù)器程序的3個標識名。應(yīng)用程序名為vb中可執(zhí)行程序的名字,話題為vb中可執(zhí)行程序窗體的linktopic屬性值,項目名設(shè)為窗體中控件的名字。
        在vb中dde連接是通過控件的屬性和方法來實現(xiàn)的。需要設(shè)置linktopic、linkitem和linkmode3個屬性。當vb軟件擔(dān)任客戶時: linktopic屬性指的是服務(wù)器軟件的名稱以及在它下面所建立的文件名稱; linkitem屬性指的是服務(wù)器軟件的linkmode屬性下指定要傳給vb控制的那些項目。
        linkmode屬性有三種設(shè)定:“0”為none,無dde功能;“1”為hot,當服務(wù)器數(shù)據(jù)變動時客戶數(shù)據(jù)會隨時更新;“2”為cold,客戶數(shù)據(jù)只有在請求dde時才更新。當vb擔(dān)任服務(wù)器時,只需設(shè)置linktopic和linkitem屬性。linktopic屬性指的是要對客戶請求做出反應(yīng)的窗體,而窗體中的控件就是客戶所請求對象的項目。
        linkmode屬性有兩種:“0”為none;“1”為server。當設(shè)為“1”時,窗體上的控件就可以供應(yīng)數(shù)據(jù)給已建立dde管道的客戶軟件;設(shè)為“0”時,則無dde連接。
        分控站監(jiān)控程序與數(shù)據(jù)采集程序之間存在大量的數(shù)據(jù)交換,由在后臺運行的數(shù)據(jù)采集程序和組態(tài)王之間的dde連接來實現(xiàn)。其中數(shù)據(jù)采集程序作為dde服務(wù)器,組態(tài)王作為客戶向其請求數(shù)據(jù)。組態(tài)王與數(shù)據(jù)采集程序的dde連接在組態(tài)王啟動時自動完成。

      5 結(jié)束語
        通過dde連接實現(xiàn)了數(shù)據(jù)采集程序與監(jiān)控軟件之間的信息集成和共享。利用組態(tài)王提供的豐富的圖形和組態(tài)工具,可以實現(xiàn)工藝流程圖的實時數(shù)據(jù)刷新、各種曲線和報警等的顯示。這種方法可以充分發(fā)揮vb和組態(tài)王各自的優(yōu)勢,利用vb的數(shù)據(jù)通訊、處理能力和組態(tài)王的圖形化工具,使監(jiān)控系統(tǒng)軟件的開發(fā)更加簡單和靈活。

      文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。

      主站蜘蛛池模板: 国模视频一区二区| 国产精品久久久久一区二区| 少妇精品久久久一区二区三区| 日本一区二区三区精品中文字幕| 国产精品小黄鸭一区二区三区| 中文字幕一区二区三区视频在线| 变态调教一区二区三区| 国产亚洲一区二区精品| 日韩一区二区在线播放| 日本一区午夜爱爱| 久久一区不卡中文字幕| 无码人妻精品一区二区三区9厂| 国产精品久久亚洲一区二区| 中文人妻av高清一区二区| 蜜桃无码一区二区三区| 国产精品va一区二区三区| 国产在线精品一区二区不卡麻豆 | 亚洲熟妇无码一区二区三区导航 | 中文字幕一区二区三区免费视频| 色窝窝无码一区二区三区成人网站| 色噜噜狠狠一区二区| 亚洲国产av一区二区三区| 99精品一区二区免费视频 | 波多野结衣中文字幕一区二区三区 | 日韩有码一区二区| 无码人妻一区二区三区在线视频 | 精品无码国产一区二区三区AV| 国产成人久久一区二区不卡三区| 国产伦一区二区三区免费| 国产一区视频在线| 色欲AV无码一区二区三区| 91在线一区二区| www一区二区www免费| 中文精品一区二区三区四区 | 国产一区二区三区在线看| 在线视频一区二区日韩国产| 日韩精品一区二区三区色欲AV| 国产在线一区视频| 国产乱码精品一区二区三区四川人| 精品一区二区三区在线观看l | 亚洲一区中文字幕|