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