楊東升鄭煒吳宏
(1.駐上海滬東中華造船(集團)有限公司軍事代表室 上海 200129)
(2.中國船舶重工集團公司第七○一研究所湖北 武漢 430064)
VB與組態軟件集成監控解決方案研究
楊東升1鄭煒2吳宏1
(1.駐上海滬東中華造船(集團)有限公司軍事代表室 上海 200129)
(2.中國船舶重工集團公司第七○一研究所湖北 武漢 430064)
組態軟件;VB;遠程監控;軟件接口
研究了組態軟件與VB的集成方法,提出了VB與組態軟件集成監控方案。該方案克服了組態軟件本身功能性的不足,并結合具體應用,以MCGS為例進行了方案的實施和驗證。
鄭煒(1971.11-),男,漢族,高級工程師,主要從事船舶電氣設計研究工作。
吳宏(1975.12-),男,漢族,工程師,主要從事船舶電氣工作。
隨著控制技術、通訊技術和網絡技術的發展,遠程監控系統在工業過程控制中的應用越來越廣泛。組態軟件由于功能強大、良好的人機界面、模塊化、編程簡便、開發成本低、周期短等優勢,成為工業現場遠程監控方案的首選[1]。
使用組態軟件,能夠快速構造計算機監控系統,而且能夠通過對現場數據的采集處理,實現動畫顯示、報警處理、流程控制、實時曲線、歷史曲線和報表輸出等。然而,組態軟件在實際應用中也存在一些不足,那就是組態軟件為數據采集和控制提供的大量底層設備驅動程序,主要是針對有名廠商的板卡和模塊,對于較小廠商開發的各種智能化儀表及用戶自己設計的板卡,卻沒有現成的驅動程序提供。此外,組態軟件往往不支持對計算機底層設備如串口的直接操作,給用戶的使用帶來了諸多不便[2]。
針對以上問題,本文提出了一種組態軟件與VB混合編程的集成解決方案,由VB實現底層通用設備的部分功能,并通過軟件接口與組態軟件實現數據交換。該方案的技術特點是充分利用了組態軟件圖形功能完備、界面一致性好、易學易用的特點和VB語言簡潔、功能強大、開發效率高等諸多優點,比以往使用專用機開發的工業控制系統更具有通用性,在自動化領域有著更廣泛的應用。
目前,主流組態軟件都致力于提高本身的開放性,大量采用“標準化技術”,如DDE、OPC、ODBC、ActiveX控件、COM/DCOM等,使組態軟件演變成軟件平臺,在軟件功能不能滿足用戶特殊需要時,用戶可以根據自己的需要進行二次開發[3]。
DDE(Dynamic Data Exchange,動態數據交換)是開放的、與語言無關的、基于消息的協議,是在Windows系統下使用共享內存在兩個應用程序之間進行數據交換的方式。采用DDE方式,可以利用計算機上的豐富資源來擴充組態軟件的功能,使計算機上的多種應用程序通過DDE的方式與組態軟件進行數據交換。DDE通訊的雙方根據數據的流向可以分為客戶端和服務器端,服務器程序與客戶端程序之間的數據交換被稱為一個“會話”,其中客戶端程序初始化鏈接和發送請求,而服務器程序通過執行自身的命令和發送數據來響應客戶程序。DDE協議將控制通訊對象劃分為應用程序名(Application)、主題名(Topic)和項目名(Item)。每次DDE會話由應用程序名和主題名唯一確定??蛻舳顺绦蚩梢酝ㄟ^DDE協議與服務器程序的一個或多個項目建立鏈接[4]。
本機DDE地址由三部分構成,其形式為:
應用程序名|主題名!項名
網絡DDE地址同樣由三部分構成,其形式為:
\計算機名NDDE$|DDE共享名.DDE!項名
OPC(OLE for Process Control,過程控制的OLE)是一個新興的通用工業應用軟件標準,大多組態軟件提供了標準的OPC接口,既可作為OPC客戶端,也可以作為OPC服務器,因而,可以方便地與其他具有OPC標準接口的工業應用程序或外部控制設備連接,實現數據交互,完成對現場數據的處理維護和對設備的有效控制。
組態軟件把其核心作為對象封裝起來,把組態軟件的大多數功能作為對象的屬性和方法暴露出來,使其他程序可以通過OLE自動化操作直接操作組態軟件的屬性和方法。
組態軟件支持標準的ODBC(Open Database Connectivity,開放數據庫互連)接口,用戶可以使用標準的ODBC接口將數據登錄到Oracle、Microsoft SQL Server、Microsoft Access、Sybase等數據庫中,方便地進行歷史和實時數據的分析、處理和維護。
在某些組態軟件中可以插入標準的Windows ActiveX控件,用戶也可以根據需要開發自己的ActiveX控件或者選用其他廠商開發的ActiveX控件。這樣,大大豐富了組態軟件的控件工具箱,使系統組態時更加靈活和方便。
多數組態軟件的設備驅動程序的實現方法和原理與標準VB的ActiveDLL完全一致,但組態軟件規定了一套接口規范,遵守這些接口規范,用戶可以開發自己的ActiveDLL用作組態軟件的設備驅動構件。用戶開發組態軟件設備驅動的過程,實際上就是根據設備的特性和含義來完成方法功能的編程過程。
MCGS(Monitor and Control Generated System,通用監控系統)是一套用于快速構造和生成計算機監控系統的組態軟件,它能夠在基于Microsoft的各種32位Windows平臺上運行,通過對現場數據的采集處理,以動畫顯示、報警處理、流程控制和報表輸出等多種方式向用戶提供解決實際工程問題的方案,它充分利用了Windows圖形功能完備、界面一致性好、易學易用的特點,比以往使用專用機開發的工業控制系統更具有通用性,在自動化領域有著更廣泛的應用。
由于語言簡潔、功能強大、開發效率高等諸多優點,VB作為一種通用的Windows環境開發環境,已經被全球數以百萬計的程序員所接受。下面以VB和MCGS為例,對組態軟件二次開發進行研究。
利用DDE技術實現VB與MCGS的數據交換,需要對通訊的雙方進行必要的配置。例如:

圖1 “DDE連接管理”對話框
2.1.1 MCGS作為DDE服務器向VB傳送數據Output CurSet
在MCGS程序中,通過“工具”→“DDE連接管理”,在“DDE連接管理”對話框中,將OutputCurSet設置為DDE輸出。
MCGS程序的服務器名為MCGSRun,主題名為DataCentre,項目名為變量名。
在VB程序中,在窗體中添加DDE鏈接控件,如Label,設置該控件的LinkTopic屬性為MCGSRun|DataCentre,Link Item屬性為OutputCurSet,LinkMode屬性為1,Link Timeout屬性為合適值。
2.1.2 VB作為DDE服務器向MCGS傳送數據SysState
在VB程序中,將應用程序名改為DDETestVB,在窗體中添加TextBox1作為DDE項目,設置窗體的LinkTopic屬性為Form1,LinkMode屬性為1。
在MCGS程序“DDE連接管理”對話框中,將SysState變量設置為DDE輸入,并為其建立服務器節點VB:服務名為DDETestVB,主題名為Form1,然后在“連接項目”輸入框中輸入TextBox1。
VB程序可以通過引用MCGS公開的OPC接口,以對象的形式直接引用MCGS的屬性和方法,下例為VB程序操作MCGS程序變量Data1和Data2的主要語句:
Private DataObj As Object
Set
DataObj=GetObject(,”McgsRun.DataCentre”)
Text1=Format$(DataObj.GetValueFromName(“Data1”))
DataObj.SetValueFromName
“Data2”,Val(Text2)
ODBC是一種分層結構,包括驅動程序管理器和多個數據庫的ODBC驅動程序.驅動程序管理器根據應用程序的指令,調用相應的ODBC驅動程序,把應用程序的SQL語句或函數調用傳送到數據庫管理系統,從而實現對數據庫的訪問和操作.ODBC的最大優點是能以統一的方式處理所有的數據庫.一個完整的ODBC由下列部件組成:
(1)應用程序(Application);
(2)ODBC管理器(Administrator):主要任務是管理安裝的ODBC驅動程序和管理數據源;
(3)驅動程序管理器(Driver Manager):驅動程序管理器包含在ODBC32.DLL中,對用戶是透明的,其任務是管理ODBC驅動程序,是ODBC中最重要的部件;
(4)ODBC API;
(5)ODBC驅動程序:主要是一些DLL,提供ODBC和數據庫之間的接口;
(6)數據源:數據源包含了數據庫位置和數據庫類型等信息,實際上是一種數據連接的抽象。
VB和MCGS可用SQL語句訪問同一ODBC數據庫,從而實現VB與MCGS數據交換。
VB用戶可以創建自己的ActiveX控件和ActiveX DLL,具體方法見參考文獻2。MCGS可以將這些ActiveX控件和ActiveX DLL作為動畫構件和設備驅動程序添加到項目中。其中,MCGS設備驅動程序的開發必須遵循規定的接口規范,具體包括5個和8個方法:屬性DevType(標識設備的類型)、屬性DevChannel(標識設備的通道個數)、屬性DevBaseIO(標識設備所用IO的基地址)、屬性DevIONumber(標識設備所用IO地址的個數)、方法GetDevName(讀取設備構件類型名稱)、方法GetDevHelp(調用設備構件的在線幫助內容)、方法SetDevPage(調用設備的內部屬性頁)、方法(InitNewDev)初試化設備的初始值、方法GetChlType(讀取設備構件各通道的數據類型和注釋)、方法InitDevRun(運行時對設備進行初始化工作)、方法RunDevCommand(執行指定的設備命令)、方法CollectDevDat(定時操作設備,采集或輸出數據)。
上述方法已經在某大功率船用直流可編程電源的監控程序中得到成功應用。該監控系統的結構框圖如圖2所示。
在該項目中,VB程序作為后臺程序運行,通過485接口與設備的DSP控制器進行Modbus協議通訊,通過PCI板卡實現設備數據采集,并通過DDE、OPC和ODBC技術與MCGS程序通訊。MCGS程序作為系統的監控主程序,通過與VB的通訊實現指令的下達,并對VB程序通過Modbus通訊和采集卡獲得的參數、狀態、故障報警等數據進行進一步處理,并以友好的HMI呈現給用戶。圖3為MCGS程序主畫面。

圖3 MCGS監控主畫面
本文提出了一種組態軟件與Windows高級編程語言混合編程的集成解決方案,充分利用了組態軟件和高級語言各自的優點,通過DDE、OPC、ODBC和ActiveX自動化等軟件接口規范,可以方便地實現組態軟件與高級語言的集成。該方案突破了單純應用工控組態軟件的不足,極大地擴展了其應用范圍,為快速靈活的構建監控系統提供了解決方案,該方案和關鍵技術已經在項目中得到成功應用,其有效性和開發效率得到充分驗證。
[1]Yong Xiao,Tie-jun Liu.Development of a new power quality monitoring terminal based on configuration[J].Electricity Distribution,2008.CICED 2008.International Conference.
[2]劉燕,夏建全等.基于VB實現的組態王與單片機間通信[J].自動化與儀器儀表,2006(5).
[3]A SKravchenko,Yu V Vilkov.A power supply for simulting lightning current pulses[J].Instruments and Experimental Techniques,2006,49(4).
[4]施建強.InTouch、VB和Matlab之間的DDE接口方法[J].南京工程學院學報(自然科學版),2003,(3).
[5][美]Bob Reselman,Richard Peasley.何鍵輝,董方鵬,馮毅.實用Visual Basic 6教程[M].北京:清華大學出版社,2001.03.
[6]曹輝等.組態軟件技術及其應用[M].北京:電子工業出版社,2009.01.
Research on monitoring&control scheme based on VB and the configuration software
Yang Dong sheng Zheng Wei Wu Hong
configuration software;VB;Remote Monitoring&Control;software interface
This paper researches on the integration means of the configuration software and VB,and puts forward to an industrial Remote Monitoring&Control System scheme.This novel scheme gets over the disadvantages of the configuration software and is validated in practice with the case of MCGS.
TP311.52
A
1001-9855(2011)01-0061-04
2010-08-31
楊東升(1979.09-),男,漢族,工程師,主要從事船舶電氣設計研究工作。