王明月,王 松
1.東北特殊鋼集團(tuán)大連特鋼模具鋼分公司,遼寧大連 116105
2.北京科技大學(xué)自動化學(xué)院,北京 100083
OPC是一套在基于Windows操作平臺的工業(yè)應(yīng)用程序之間提供高效的信息集成和交互功能的組件對象模型的接口規(guī)范,該規(guī)范定義了一個開放的接口,在這個接口上,基于PC的軟件組件能交換數(shù)據(jù)。
使用Visual C++開發(fā)OPC客戶機(jī),完成數(shù)據(jù)的運(yùn)算處理,通過接口傳回OPC服務(wù)器WinCC,實(shí)現(xiàn)數(shù)據(jù)采集與處理的無縫連接。鋼板出精軋機(jī)后,經(jīng)輥道傳輸進(jìn)入淬火控冷區(qū),在精軋機(jī)后的HMD檢測到鋼板信號后,會將通訊變量傳送到WinCC上進(jìn)行顯示,當(dāng)檢測溫度值與設(shè)定值差值超過限定值時,由Visual C++根據(jù)OPC接口傳輸來的變量進(jìn)行模型計算,重新設(shè)定集管流量、輥道速度等,然后將計算后的模型傳回WinCC,對淬火控冷過程進(jìn)行設(shè)定控制。
WinCC與VC之間基于OPC接口的通訊程序開發(fā)的實(shí)現(xiàn)過程如下:
1)Visual C++中利用MFC AppWizard生成程序框架,建立基于對話框的應(yīng)用程序項(xiàng)目
執(zhí)行“File”—“New”命令,出現(xiàn)New對話框,選擇“MFC AppWizard[exe]”項(xiàng) ,輸入程序名“OPCClient”,單擊“OK”按鈕 ,選擇“Dialog based”完成創(chuàng)建。
2)添加控件及成員變量
該應(yīng)用程序要求VC客戶端能夠從WinCC服務(wù)器獲取通訊變量數(shù)據(jù),經(jīng)過運(yùn)算后,再將計算結(jié)果返回給WinCC,所以程序界面中要設(shè)置各種控件。根據(jù)項(xiàng)目要求在VC開發(fā)環(huán)境下添加編輯框、按鈕等控件,并為控件關(guān)聯(lián)成員變量。
3)添加其他成員變量
4)包含OPC頭文件
之后,再指定這些文件的存放路徑就可以了,在VC環(huán)境中的“Tools”-“Options”對話框下設(shè)置。
5)COM支持庫
代碼如下:
CoInitialize(NULL); //初始化COM庫
6)得到OPC服務(wù)器的CLSID
代碼如下:
7)連接OPC服務(wù)器
8)創(chuàng)建OPC組和OPC數(shù)據(jù)項(xiàng),該步驟要依據(jù)通訊變量表中變量的個數(shù)來確定數(shù)據(jù)項(xiàng)數(shù)目
代碼如下:
然后就可以編寫讀寫的消息映射函數(shù)了,在此不做詳細(xì)介紹。
9)刪除對象,釋放內(nèi)存
代碼如下:
至此,OPC客戶端Visual C++應(yīng)用程序編寫完成,項(xiàng)目中,根據(jù)現(xiàn)場的實(shí)際情況和服務(wù)器WinCC與客戶端VC之間傳遞的參數(shù)表,定義了傳遞的變量,完成數(shù)據(jù)的通訊,VC中接收到組態(tài)軟件WinCC傳遞過來的參數(shù)后,進(jìn)行模型的運(yùn)算處理,對控制冷卻模型進(jìn)行修正,再將修正后的模型參數(shù)傳遞給WinCC,WinCC通過以太網(wǎng)通信傳遞給下位機(jī)PLC,完成淬火空冷線的控制任務(wù)。
OPC接口實(shí)現(xiàn)了二級過程控制級WinCC組態(tài)軟件與Visual C++客戶端之間的通訊,完成兩者之間的數(shù)據(jù)交換。結(jié)果表明,WinCC與Visual C++之間通訊正常,數(shù)據(jù)交換速度能夠滿足工業(yè)控制要求,從而為二級系統(tǒng)的控制集成功能提供了保障。
[1]胡志坤.Visual C++通信編程工程實(shí)例精解[M].北京:機(jī)械工業(yè)出版社,2007.