?? d173.bmp.txt
字號(hào):
6)得到OPC服務(wù)器的CLSID。每個(gè)服務(wù)器都有一個(gè)字符串類型的ProgID,通過(guò)它可以
得到一個(gè)全球惟一的CLSID,函數(shù)CLSIDFromProgIDO可完成此轉(zhuǎn)換,如果成功,函數(shù)返回
值等于S_OK。在這里,OPC服務(wù)器是RSView32組態(tài)軟件,可查得它的ProgID為
RSI.RSView320PCTagServer,所以轉(zhuǎn)換程序代碼如下:
CLSID OPCCLSID;
hRet=CLSIDFromProgID(L”RSI.RSView320PCTagServer”,&OPCCLSID);
如果成功,函數(shù)返回值等于S_OK,且將轉(zhuǎn)換結(jié)果用變量OPCCLSID傳遞。
7)連接OPC服務(wù)器。OPC客戶能夠連接到OPC服務(wù)器上,并建立OPC組和OPC數(shù)
據(jù)項(xiàng),這是OPC數(shù)據(jù)訪問(wèn)的基礎(chǔ),如果沒(méi)有這個(gè)機(jī)制,數(shù)據(jù)訪問(wèn)的其他機(jī)能不可能實(shí)現(xiàn)。
連接OPC服務(wù)器。實(shí)現(xiàn)代碼如下:
CoCreateInstance(OPCCLSID,NULL,CLSCIX- LOCAL- SERVER,IID IUnknown,(void **)ppUnknown);
如果連接成功,函數(shù)返回值等于S_OK,同時(shí)得到一個(gè)指向服務(wù)器對(duì)象的IUnknown按
口指針ppUnknown。.
8)創(chuàng)建OPC組。IOPCServer接口的AddGroup0方法可以創(chuàng)建一個(gè)有指定名稱和屬性
的OPC組。在調(diào)用該方法之前,可以使用上一步得到的IUnknown接口指針ppUnknown的
Querylnterface0方法請(qǐng)求IOPCServer接口指針。實(shí)現(xiàn)代碼如下:
fTemp = O.Of;
ITimeBias = 0;
dwActuaIRate = 0;
ppUnknown->QueryInterface(IID_IOPCServer,(void **)&pServer)J/得到 IOPCServer接口指針
pS erver->AddGroup(L " ",TRUE,500,1 23 5,&ITimeBias,&fTemp,O,&hOPC ServerGroup,
&dwActualRate,IID_IOPCItemMgt, (LPUNKNOWN*)& pOPCItemMgt);
AddGroup0函數(shù)中的表示組屬性的幾個(gè)參數(shù)的含義在實(shí)際開發(fā)時(shí)可以不去追究細(xì)節(jié)問(wèn)
題,按上面的設(shè)置即可。這段程序的執(zhí)行結(jié)果是創(chuàng)建了一個(gè)有指定名稱和屬性的組。在返回
參數(shù)中,有一個(gè)指向所需要的進(jìn)程組對(duì)象IOPCItemMgt按口的指針即變量pOPCItemMgt。
9)添加數(shù)據(jù)項(xiàng)。IOPCItemMgt接口的Addltem0方法可以添加具有特殊屬性的指定數(shù)量
的數(shù)據(jù)項(xiàng)。在調(diào)用該方法之前,要用數(shù)據(jù)項(xiàng)的個(gè)數(shù)、類型、名稱、標(biāo)識(shí)及作為OPC服務(wù)器
的RSView32項(xiàng)目名稱等信息對(duì)ItemArray結(jié)構(gòu)數(shù)組進(jìn)行初始化。ItemArray為OPCⅡEMDEF
類型結(jié)構(gòu)數(shù)組(前面已定義),它包含數(shù)據(jù)項(xiàng)的詳細(xì)信息,這些信息在RSView32標(biāo)簽數(shù)據(jù)
庫(kù)中可查得。詳細(xì)代碼如下:
ItemNumber-4;//數(shù)據(jù)項(xiàng)的個(gè)數(shù)
USES_CONVERSIONJ使用T20LE()
for(int i=O;i<ItemNumber;i++)
{
ItemArray[O.dwBlobShe -0;
ItemArray[il.pBlob= NULL;
ItemArray[il.bActive= TRUE;
ItemArray[il.hClient =i; ,,指向數(shù)據(jù)項(xiàng)的handle
173
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -