技術頻道

      基于VB和組態王的監控系統軟件設計

      1 引言
        目前,在監控系統軟件的開發中,比較常見的方法主要有兩種。一種是利用面向對象的可視化編程語言如vb、vc來開發,其中包括數據通訊、界面實現、數據處理和數據庫功能等部分內容;另一種是利用組態軟件來完成,利用組態軟件提供的硬件驅動功能直接訪問硬件進行通信,同時利用其圖形化工具實現監控界面。前一種方法的程序設計任務比較重,特別是要實現工業生產中復雜的流程和工藝的逼真顯示要花費大量的時間;后一種方法對硬件的依賴比較大,當組態軟件不支持相關的硬件時就會受到限制。將兩種方法結合起來則是一種很好的選擇。利用vb、vc提供的強大的數據通訊和處理功能實現數據采集、控制及處理,利用組態軟件的圖形化工具來實現界面設計,二者的結合將使監控系統軟件的設計更加簡單和靈活。

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

      圖1 系統結構圖

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

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

      圖2  通訊程序功能結構

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

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

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 无码人妻一区二区三区在线| 国产精品一区二区久久国产| 麻豆精品人妻一区二区三区蜜桃| 国产在线一区二区三区在线| 精品国产一区二区三区久久| 国产乱码一区二区三区爽爽爽| 麻豆文化传媒精品一区二区 | 精品无码成人片一区二区| 久久精品一区二区三区不卡| 日韩精品国产一区| 国产精品99无码一区二区| 精品久久一区二区三区| 亚洲AV日韩精品一区二区三区| 人妻少妇精品一区二区三区| 无码欧精品亚洲日韩一区| 一区二区三区高清视频在线观看| 亚洲综合国产一区二区三区| 日本免费一区尤物| 精品无码人妻一区二区三区不卡 | 一区二区日韩国产精品| 国内精自品线一区91| 亚洲av色香蕉一区二区三区蜜桃| 精品一区二区三区在线成人| 在线观看一区二区精品视频| 91久久精品国产免费一区| 亚洲AV综合色一区二区三区| 亚洲av成人一区二区三区在线播放| 日韩精品一区二区三区大桥未久| 国偷自产av一区二区三区| 手机看片一区二区| 亚洲熟妇av一区二区三区| 丝袜人妻一区二区三区| 国产免费无码一区二区| 亲子乱AV视频一区二区| 国产成人精品一区二区秒拍 | 色视频综合无码一区二区三区| 亚洲色无码一区二区三区| 日韩精品成人一区二区三区| 亚洲日本一区二区| 亚洲日韩AV一区二区三区中文| 丝袜无码一区二区三区|