摘要:本文介紹了一種基于組態(tài)王和VB6.0的液位控制仿真實驗平臺的設計過程,。本方案利用組態(tài)王良好的人機界面,、數(shù)據(jù)采集功能,并結(jié)合VB環(huán)境編程的便利性,,采用可靠的OPC接口建立組態(tài)王和VB之間的數(shù)據(jù)通訊,。利用組態(tài)王開發(fā)服務器端畫面,在VB客戶端環(huán)境中編寫控制算法,,最終實現(xiàn)對水箱液位的精確控制,。實驗結(jié)果表明,此方法使用簡單可靠,,可廣泛應用于教學及實驗平臺搭建工作。
關(guān)鍵詞:仿真實驗,;組態(tài)王,;VB6.0;OPC接口
0 引言
以PLC,、組態(tài)軟件為單元,,可以組成從簡單到復雜的各種工業(yè)控制系統(tǒng)[1]。PLC可以實現(xiàn)復雜的邏輯編程及簡單的算法編程,,但是對于先進控制算法,,如模糊控制算法等涉及到矩陣運算[2],由于算法本身的復雜性,,單純依靠PLC編程功能已經(jīng)不能滿足要求,;組態(tài)軟件編程語言雖然簡單,但大多數(shù)是腳本語言,,在處理算法方面仍然存在諸多不便,。因此,提出將算法寫入VB(Visual Basic)程序的思路,借助VB的快速運算功能及豐富的函數(shù)庫,,可以方便的實現(xiàn)算法編寫,,求解輸出值通過可靠的OPC接口反饋給組態(tài)軟件[3],最終實現(xiàn)對控制對象的控制,。
本文正是基于上述思路,,設計開發(fā)了基于組態(tài)王和VB的液位控制仿真實驗平臺。該平臺簡單可靠,,本文在VB環(huán)境中編寫了傳統(tǒng)的PID控制算法,,實現(xiàn)了對雙容水箱液位的仿真控制。此外,,在此平臺上可以繼續(xù)開發(fā)其他高級算法,,避免了聯(lián)機編程測試的繁瑣性。
1. 組態(tài)王與VB的OPC通信
1.1 OPC通訊原理
現(xiàn)在常用的組態(tài)王和VB通信的接口有DDE和OPC,,但在實際使用過程中,,廣大用戶發(fā)現(xiàn)采用DDE在設備和控制系統(tǒng)之間傳遞實時信息并非理想的辦法,因為它在傳輸性能和可靠性等方面都存在許多限制,,另外DDE不適用于大量數(shù)據(jù)的高速數(shù)據(jù)采集,,并且DDE從來沒有為不同計算機之間的數(shù)據(jù)交換提供可靠的機制;OPC的產(chǎn)生有效的解決了此類問題[4],。
OPC是用于工業(yè)設備服務器的一種標準化接口,。OPCServer可以讓設備與各種支持0PC 的組態(tài)軟件之間進行簡明的、標準化的數(shù)據(jù)交換,。在過去,,為了存取現(xiàn)場設備的數(shù)據(jù)信息,每一個應用軟件開發(fā)商都需要編寫專用的接口函數(shù),。由于現(xiàn)場設備的種類繁多,,且產(chǎn)品的不斷升級,往往給用戶和軟件開發(fā)商帶來了巨大的工作負擔,。通常這樣也不能滿足工作的實際需要,,系統(tǒng)集成商和開發(fā)商需要一種具有高效性、可靠性,、開放性,、可互操作性的即插即用的設備驅(qū)動程序。OPC 以OLE/COM/DCOM機制作為應用程序級的通信標準,,采用客戶/服務器模式,,把開發(fā)訪問接口的任務放在硬件生產(chǎn)廠家或第三方廠家,以OPC服務器的形式提供給用戶,,解決了軟,、硬件廠商的矛盾,,完成了系統(tǒng)的集成,提高了系統(tǒng)的開放性和可互操作性,。OPC技術(shù)的實現(xiàn)包括兩個組成部分,,OPC服務器部分及 OPC客戶應用部分,其中OPCServer基本結(jié)構(gòu)如圖1所示,。且在傳輸速率和可靠性方面,,優(yōu)于DDE接口,因此本文采用OPC接口完成VB與組態(tài)王數(shù)據(jù)通訊,。
圖 1 OPC Server基本結(jié)構(gòu)圖
1.2 OPC程序設計
為了方便用戶使用組態(tài)王OPC Server功能,,對組態(tài)王的實時數(shù)據(jù)進行訪問,北京亞控為組態(tài)王OPC用戶提供了kingvewcliend.dll動態(tài)鏈接庫,,其內(nèi)部包含 StartCliend,、ReadTag、WriteTag等豐富庫函數(shù),。本方案在VB環(huán)境下,,通過此動態(tài)鏈接庫完成和組態(tài)王數(shù)據(jù)詞典的動態(tài)數(shù)據(jù)交換,最終將下位機采集的數(shù)據(jù)通過OPC接口實時傳輸?shù)浇M態(tài)王,。
具體實現(xiàn)過程是,,用StartCliend函數(shù)實現(xiàn)VB工程及組態(tài)王工程的連接,用戶調(diào)用AddTag函數(shù)將要采集的項目添加到采集的列表中(如圖2所示),,用戶必須進行此操作,,否則不能進行項目的采集。當用戶調(diào)用此函數(shù)后,,函數(shù)將返回項目在采集列表中的位置(TagID)和項目的數(shù)據(jù)類型(TagDataType),,用戶將根據(jù)返回的信息進行采集。用戶添加完成采集項目列表后,,可以通過調(diào)用Readtag和WriteTag函數(shù)來對項目進行讀寫,。
圖 2 部分項目列表
向組態(tài)王寫數(shù)據(jù)
For i = 1 To TagNo-5 Step 1
If i = 1 Then
Data = YeWei_Xia
End If
………………………………
xuhao = Val(i)
Select Case Typ(xuhao - 1)
Case 11
bVal = Val(Data)
Case 3
lVal = Val(Data)
Case 4
fVal = Val(Data)
Case 8
sVal = Data
Case Else
MsgBox "無效的數(shù)據(jù)類型,不能寫數(shù)據(jù),。", 64, "錯誤"
Exit Sub
End Select
ret = WriteTag(i, bVal, lVal, fVal, sVal)
Next i
1.3 PID程序設計
在VB環(huán)境中編寫液位的控制程序,為了確保整個系統(tǒng)的控制精度,,我們在這采用串級控制,,將下水箱液位作為主控對象,上水箱液位作為副控對象,。采用PID控制算法(運算規(guī)律如式1),,外環(huán)采用PID調(diào)節(jié)器,內(nèi)環(huán)采用PI調(diào)節(jié)器,。
2,、組態(tài)畫面的設計
北京亞控公司的組態(tài)王有良好的圖形界面,,豐富的驅(qū)動程序和網(wǎng)絡功能,編程風格簡單,、純中文界面,,且與其他應用程序交換方便。本系統(tǒng)正是利用組態(tài)王強大的組態(tài)功能建立了雙容水箱的服務器端畫面,,包括主畫面,、PID控制畫面、歷史趨勢畫面,、報警畫面及報表畫面等,。通過OPC協(xié)議建立組態(tài)王數(shù)據(jù)詞典變量與VB客戶端的連接,實現(xiàn)VB變量的實時監(jiān)測,。其中主畫面如圖3所示,。
圖3 組態(tài)王主畫面
3、系統(tǒng)測試及結(jié)果分析
在組態(tài)王環(huán)境編輯好組態(tài)畫面后,,通過OPC協(xié)議建立與VB客戶端連接,。在VB客戶端制作操作界面如圖4所示。編譯執(zhí)行液位控制程序,,并且通過點擊“連接服務器”按鈕建立OPC連接,,并點擊“添加項目”按鈕建立組態(tài)王數(shù)據(jù)字典與VB變量連接,最終可實現(xiàn)對VB客戶端液位及其他變量的實時監(jiān)測,。圖5為組態(tài)王服務器端監(jiān)測到的下水箱液位曲線,,通過曲線可以看出,該平臺數(shù)據(jù)通信實時性好,,準確率高,。
- 4. 結(jié)論
在組態(tài)王環(huán)境編輯好組態(tài)畫面后,通過OPC協(xié)議建立與VB客戶端連接,。在VB客戶端制作操作界面如圖4所示,。編譯執(zhí)行液位控制程序,并且通過點擊“連接服務器”按鈕建立OPC連接,,并點擊“添加項目”按鈕建立組態(tài)王數(shù)據(jù)字典與VB變量連接,,最終可實現(xiàn)對VB客戶端液位及其他變量的實時監(jiān)測。圖5為組態(tài)王服務器端監(jiān)測到的下水箱液位曲線,,通過曲線可以看出,,該平臺數(shù)據(jù)通信實時性好,準確率高,。
4,、 結(jié)論
本文設計了一個基于OPC接口搭建的液位控制仿真實驗平臺。采用組態(tài)王建立服務器端畫面,,在VB客戶端編寫液位PID控制算法,,兩者通過OPC接口建立連接,。實驗結(jié)果表明,該實驗平臺數(shù)據(jù)通信實時性好,,可廣泛應用于教學場合,。除此之外,此種方法也可以有效彌補PLC無法實現(xiàn)復雜算法編程的缺陷,,使PLC控制方法更加靈活,,具有一定的實用價值。
參考文獻:
[1] 邵新華,,金元郁,,呂學芳.基于組態(tài)軟件與VB的實時監(jiān)控系統(tǒng)[J].控制工程.2003,10(5):439-440,459
[2] 李偉獎,馬邕文.MCGS結(jié)合VB語言實現(xiàn)造紙廢水處理智能控制.工業(yè)控制計算機.2009,22(3):22-23
[3] 于海生,潘松峰,,丁軍航,,等.計算機控制技術(shù)[M].北京:機械工業(yè)出版社. 2007.
[4] 段開創(chuàng)等. DDE、OPC對組態(tài)王功能的擴展[J].工業(yè)控制計算機.2008,,21(12):11-12
[5] 馬龍博,,鄭建英.基于組態(tài)王和VB的智能儀表實時監(jiān)控系統(tǒng)[J] .自動化儀表.2008,29(8):32-34