新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于OPC接口搭建仿真實(shí)驗(yàn)平臺(tái)

基于OPC接口搭建仿真實(shí)驗(yàn)平臺(tái)

作者: 時(shí)間:2011-09-03 來(lái)源:網(wǎng)絡(luò) 收藏

  OPC是一個(gè)工業(yè)標(biāo)準(zhǔn),管理這個(gè)標(biāo)準(zhǔn)國(guó)際組織是OPC基金會(huì),OPC基金會(huì)現(xiàn)有會(huì)員已超過(guò)220家。遍布全球,包括世界上所有主要的自動(dòng)化控制系統(tǒng)、儀器儀表及過(guò)程控制系統(tǒng)的公司。 基于微軟的OLE、COM和DCOM技術(shù)。OPC包括一整套接口、屬性和方法的標(biāo)準(zhǔn)集,用于過(guò)程控制和制造業(yè)自動(dòng)化系統(tǒng)。

  以PLC、組態(tài)軟件為單元,可以組成從簡(jiǎn)單到復(fù)雜的各種工業(yè)控制系統(tǒng)。PLC可以實(shí)現(xiàn)復(fù)雜的邏輯編程及簡(jiǎn)單的算法編程,但是對(duì)于先進(jìn)控制算法,如模糊控制算法等涉及到矩陣運(yùn)算,由于算法本身的復(fù)雜性,單純依靠PLC編程功能已經(jīng)不能滿(mǎn)足要求;組態(tài)軟件編程語(yǔ)言雖然簡(jiǎn)單,但大多數(shù)是腳本語(yǔ)言,在處理算法方面仍然存在諸多不便。因此,提出將算法寫(xiě)入VB程序的思路,借助VB的快速運(yùn)算功能及豐富的函數(shù)庫(kù),可以方便的實(shí)現(xiàn)算法編寫(xiě),求解輸出值通過(guò)可靠的反饋給組態(tài)軟件,最終實(shí)現(xiàn)對(duì)控制對(duì)象的控制。

  1. 組態(tài)王與VB的OPC通信

  1.1 OPC通訊原理

  現(xiàn)在常用的組態(tài)王和VB通信的接口有DDE和OPC,但在實(shí)際使用過(guò)程中,廣大用戶(hù)發(fā)現(xiàn)采用DDE在設(shè)備和控制系統(tǒng)之間傳遞實(shí)時(shí)信息并非理想的辦法,因?yàn)樗趥鬏斝阅芎涂煽啃缘确矫娑即嬖谠S多限制,另外DDE不適用于大量數(shù)據(jù)的高速數(shù)據(jù)采集,并且DDE從來(lái)沒(méi)有為不同計(jì)算機(jī)之間的數(shù)據(jù)交換提供可靠的機(jī)制;OPC的產(chǎn)生有效的解決了此類(lèi)問(wèn)題。

  OPC是用于工業(yè)設(shè)備服務(wù)器的一種標(biāo)準(zhǔn)化接口。OPCServer可以讓設(shè)備與各種支持0PC 的組態(tài)軟件之間進(jìn)行簡(jiǎn)明的、標(biāo)準(zhǔn)化的數(shù)據(jù)交換。在過(guò)去,為了存取現(xiàn)場(chǎng)設(shè)備的數(shù)據(jù)信息,每一個(gè)應(yīng)用軟件開(kāi)發(fā)商都需要編寫(xiě)專(zhuān)用的接口函數(shù)。由于現(xiàn)場(chǎng)設(shè)備的種類(lèi)繁多,且產(chǎn)品的不斷升級(jí),往往給用戶(hù)和軟件開(kāi)發(fā)商帶來(lái)了巨大的工作負(fù)擔(dān)。通常這樣也不能滿(mǎn)足工作的實(shí)際需要,系統(tǒng)集成商和開(kāi)發(fā)商需要一種具有高效性、可靠性、開(kāi)放性、可互操作性的即插即用的設(shè)備驅(qū)動(dòng)程序。OPC 以O(shè)LE/COM/DCOM機(jī)制作為應(yīng)用程序級(jí)的通信標(biāo)準(zhǔn),采用客戶(hù)/服務(wù)器模式,把開(kāi)發(fā)訪問(wèn)接口的任務(wù)放在硬件生產(chǎn)廠家或第三方廠家,以O(shè)PC服務(wù)器的形式提供給用戶(hù),解決了軟、硬件廠商的矛盾,完成了系統(tǒng)的集成,提高了系統(tǒng)的開(kāi)放性和可互操作性。OPC技術(shù)的實(shí)現(xiàn)包括兩個(gè)組成部分,OPC服務(wù)器部分及 OPC客戶(hù)應(yīng)用部分,其中OPCServer基本結(jié)構(gòu)如圖1所示。且在傳輸速率和可靠性方面,優(yōu)于DDE接口,因此本文采用完成VB與組態(tài)王數(shù)據(jù)通訊。

  圖 1 OPC Server基本結(jié)構(gòu)圖

  1.2 OPC程序設(shè)計(jì)

  為了方便用戶(hù)使用組態(tài)王OPC Server功能,對(duì)組態(tài)王的實(shí)時(shí)數(shù)據(jù)進(jìn)行訪問(wèn),北京亞控為組態(tài)王OPC用戶(hù)提供了kingvewcliend.dll動(dòng)態(tài)鏈接庫(kù),其內(nèi)部包含 STartCliend、ReadTag、WriteTag等豐富庫(kù)函數(shù)。本方案在VB環(huán)境下,通過(guò)此動(dòng)態(tài)鏈接庫(kù)完成和組態(tài)王數(shù)據(jù)詞典的動(dòng)態(tài)數(shù)據(jù)交換,最終將下位機(jī)采集的數(shù)據(jù)通過(guò)實(shí)時(shí)傳輸?shù)浇M態(tài)王。

  具體實(shí)現(xiàn)過(guò)程是,用StartCliend函數(shù)實(shí)現(xiàn)VB工程及組態(tài)王工程的連接,用戶(hù)調(diào)用AddTag函數(shù)將要采集的項(xiàng)目添加到采集的列表中,用戶(hù)必須進(jìn)行此操作,否則不能進(jìn)行項(xiàng)目的采集。當(dāng)用戶(hù)調(diào)用此函數(shù)后,函數(shù)將返回項(xiàng)目在采集列表中的位置和項(xiàng)目的數(shù)據(jù)類(lèi)型,用戶(hù)將根據(jù)返回的信息進(jìn)行采集。用戶(hù)添加完成采集項(xiàng)目列表后,可以通過(guò)調(diào)用Readtag和WriteTag函數(shù)來(lái)對(duì)項(xiàng)目進(jìn)行讀寫(xiě)。

  圖 2 部分項(xiàng)目列表

  向組態(tài)王寫(xiě)數(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 “無(wú)效的數(shù)據(jù)類(lèi)型,不能寫(xiě)數(shù)據(jù)?!?, 64, “錯(cuò)誤”

  Exit Sub

  End Select

  ret = WriteTag(i, bVal, lVal, fVal, sVal)

  Next i

  1.3 PID程序設(shè)計(jì)

  在VB環(huán)境中編寫(xiě)液位的控制程序,為了確保整個(gè)系統(tǒng)的控制精度,我們?cè)谶@采用串級(jí)控制,將下水箱液位作為主控對(duì)象,上水箱液位作為副控對(duì)象。采用PID控制算法,外環(huán)采用PID調(diào)節(jié)器,內(nèi)環(huán)采用PI調(diào)節(jié)器。

  2、組態(tài)畫(huà)面的設(shè)計(jì)

  北京亞控公司的組態(tài)王有良好的圖形界面,豐富的驅(qū)動(dòng)程序和網(wǎng)絡(luò)功能,編程風(fēng)格簡(jiǎn)單、純中文界面,且與其他應(yīng)用程序交換方便。本系統(tǒng)正是利用組態(tài)王強(qiáng)大的組態(tài)功能建立了雙容水箱的服務(wù)器端畫(huà)面,包括主畫(huà)面、PID控制畫(huà)面、歷史趨勢(shì)畫(huà)面、報(bào)警畫(huà)面及報(bào)表畫(huà)面等。通過(guò)OPC協(xié)議建立組態(tài)王數(shù)據(jù)詞典變量與VB客戶(hù)端的連接,實(shí)現(xiàn)VB變量的實(shí)時(shí)監(jiān)測(cè)。其中主畫(huà)面如圖3所示。

  圖3 組態(tài)王主畫(huà)面

  3、系統(tǒng)測(cè)試及結(jié)果分析

  在組態(tài)王環(huán)境編輯好組態(tài)畫(huà)面后,通過(guò)OPC協(xié)議建立與VB客戶(hù)端連接。在VB客戶(hù)端制作操作界面如圖4所示。編譯執(zhí)行液位控制程序,并且通過(guò)點(diǎn)擊“連接服務(wù)器”按鈕建立OPC連接,并點(diǎn)擊“添加項(xiàng)目”按鈕建立組態(tài)王數(shù)據(jù)字典與VB變量連接,最終可實(shí)現(xiàn)對(duì)VB客戶(hù)端液位及其他變量的實(shí)時(shí)監(jiān)測(cè)。圖5為組態(tài)王服務(wù)器端監(jiān)測(cè)到的下水箱液位曲線,通過(guò)曲線可以看出,該平臺(tái)數(shù)據(jù)通信實(shí)時(shí)性好,準(zhǔn)確率高。

  4. 結(jié)論

  在組態(tài)王環(huán)境編輯好組態(tài)畫(huà)面后,通過(guò)OPC協(xié)議建立與VB客戶(hù)端連接。在VB客戶(hù)端制作操作界面如圖4所示。編譯執(zhí)行液位控制程序,并且通過(guò)點(diǎn)擊“連接服務(wù)器”按鈕建立OPC連接,并點(diǎn)擊“添加項(xiàng)目”按鈕建立組態(tài)王數(shù)據(jù)字典與VB變量連接,最終可實(shí)現(xiàn)對(duì)VB客戶(hù)端液位及其他變量的實(shí)時(shí)監(jiān)測(cè)。圖5為組態(tài)王服務(wù)器端監(jiān)測(cè)到的下水箱液位曲線,通過(guò)曲線可以看出,該平臺(tái)數(shù)據(jù)通信實(shí)時(shí)性好,準(zhǔn)確率高。

  本文設(shè)計(jì)了一個(gè)基于OPC接口搭建的液位控制。采用組態(tài)王建立服務(wù)器端畫(huà)面,在VB客戶(hù)端編寫(xiě)液位PID控制算法,兩者通過(guò)OPC接口建立連接。實(shí)驗(yàn)結(jié)果表明,該實(shí)驗(yàn)平臺(tái)數(shù)據(jù)通信實(shí)時(shí)性好,可廣泛應(yīng)用于教學(xué)場(chǎng)合。除此之外,此種方法也可以有效彌補(bǔ)PLC無(wú)法實(shí)現(xiàn)復(fù)雜算法編程的缺陷,使PLC控制方法更加靈活,具有一定的實(shí)用價(jià)值。

pid控制相關(guān)文章:pid控制原理


pid控制器相關(guān)文章:pid控制器原理




評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉