利用OPC實(shí)現(xiàn)VC應(yīng)用程序與PLC的數(shù)據(jù)交換
4.6 數(shù)據(jù)交換
成功地增加完所需要的數(shù)據(jù)項(xiàng)后,OPC客戶(VC應(yīng)用程序)和OPC服務(wù)器(RSView32)就可以進(jìn)行數(shù)據(jù)交換了。在數(shù)據(jù)量不大的情況下,可以使用 IOPCSyncIO同步接口的Write()和Read()兩個(gè)方法進(jìn)行數(shù)據(jù)的讀寫(xiě)操作,從而實(shí)現(xiàn)OPC客戶(VC應(yīng)用程序)和OPC服務(wù)器 (RSView32)之間的數(shù)據(jù)交換。代碼如下:
ppUnknown->QueryInterface(IID_IOPCSyncIO,(void **)pOPCSync);
//得到IOPCSyncIO接口指針
pOPCSync->Read(OPC_DS_CACHE,ReadNumber,hServerRead,pItemValue,pErrors);
//讀ReadNumber個(gè)數(shù)據(jù)
pOPCSync->Write(WriteNumber,hServerWrite,WriteValue,pErrors);
//寫(xiě)WriteNumber個(gè)數(shù)據(jù)
4.7 釋放接口指針
在VC應(yīng)用程序停止運(yùn)行之前必須使用Release()方法刪除已創(chuàng)建的OPC對(duì)象并釋放內(nèi)存。
5 結(jié)束語(yǔ)
OPC技術(shù)規(guī)范把硬件供應(yīng)商和應(yīng)用軟件開(kāi)發(fā)者分離開(kāi)來(lái),使得雙方的工作效率都有了很大提高。軟件開(kāi)發(fā)商無(wú)需了解硬件的實(shí)質(zhì)和操作過(guò)程,就能訪問(wèn)OPC數(shù)據(jù)服務(wù)器中的數(shù)據(jù),尤其是開(kāi)發(fā)商在已使用了組態(tài)軟件進(jìn)行實(shí)時(shí)監(jiān)控的過(guò)程控制系統(tǒng)基礎(chǔ)上,用C++等高級(jí)語(yǔ)言開(kāi)發(fā)系統(tǒng)時(shí),大大簡(jiǎn)化了過(guò)去從設(shè)備傳輸數(shù)據(jù)的復(fù)雜過(guò)程。在某鋁廠的自動(dòng)配料系統(tǒng)開(kāi)發(fā)中,應(yīng)用OPC技術(shù)方便地實(shí)現(xiàn)了VC應(yīng)用程序和RSView32的數(shù)據(jù)交換,間接地實(shí)現(xiàn)了VC應(yīng)用程序與PLC的通信,獲得了很好的結(jié)果。
評(píng)論