色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應用 > 利用OPC實現(xiàn)VC應用程序與PLC的數(shù)據(jù)交換

          利用OPC實現(xiàn)VC應用程序與PLC的數(shù)據(jù)交換

          作者: 時間:2011-09-11 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://cafeforensic.com/article/155781.htm

            4.3 連接opc服務(wù)器

             客戶能夠連接到服務(wù)器上,并建立組和OPC項,這是OPC訪問的基礎(chǔ),如果沒有這個機制,訪問的其它機能不可能[4]。連接 OPC服務(wù)器,OPC客戶需要事先指定計算機名(如果OPC服務(wù)器和OPC客戶不在同一臺計算機上)和OPC數(shù)據(jù)訪問服務(wù)器名 (RSI.RSView32OPCTagServer)。代碼如下:

            ConnectToServer(/*in */LPOLESTR ProgID,/*in*/ BOOL IsRemote,/*out */ IUnknown **ppUnknown)

            {

            CLSID OPCCLSID;

            HRESULT hRet=CLSIDFromProgID(ProgID,OPCCLSID);

            //將字符串ProgID轉(zhuǎn)換為唯一OPCCLSID

            if(IsRemote)

            //opc服務(wù)器和opc客戶不在同一臺計算機上

            {

            COSERVERINFO ServerInfo;

            memset(ServerInfo,0,sizeof(ServerInfo));

            ServerInfo.pwszName=T2OLE(ServerComouter);

            MULTI_QI qi[1];

            memset(qi, 0, sizeof(qi));

            qi[0].pIID=IID_IUnknown;

            HRESULT hRet=CoCreateInstanceEx(OPCCLSID,NULL,CLSCTX_REMOTE_SERVER,

            ServerInfo,1,qi);

            *ppUnknown=qi[0].pItf;

            }

            else

            //opc服務(wù)器和opc客戶在同一臺計算機上

            {

            hRet=CoCreateInstance(OPCCLSID,NULL,CLSCTX_LOCAL_SERVER,IID_IUnknown,

            (void **)ppUnknown);

            }

            }

            4.4 創(chuàng)建OPC組

            IOPCServer接口的AddGroup()方法可以創(chuàng)建一個有指定名稱和屬性的OPC組。在調(diào)用該方法之前,可以使用上一步得到的Iunknown接口指針,通過QueryInterface()方法請求IOPCServer接口指針。代碼如下:

            ppUnknown->QueryInterface(IID_IOPCServer,(void **)pServer);

            //得到IOPCServer接口指針

            pServer->AddGroup(L,TRUE,500,1235,lTimeBias,fTemp,0,hOPCServerGroup, dwActualRate,IID_IOPCItemMgt, pOPCItemMgt);

            4.5 添加數(shù)據(jù)項

            IOPCItemMgt接口的AddItem()方法可以添加具有特殊屬性的指定數(shù)量的數(shù)據(jù)項。

            pOPCItemMgt->AddItems(ItemNumber,ItemArray,

            (OPCITEMRESULT**)pItemResult,(HRESULT **)pErrors);

            ItemArray 為OPCITEMDEF類型結(jié)構(gòu)數(shù)組,它包含數(shù)據(jù)項的詳細信息,客戶需要知道要進行的數(shù)據(jù)在RSView32標簽數(shù)據(jù)庫中的名稱、數(shù)據(jù)類型及作為 OPC服務(wù)器的RSView32項目名稱。添加數(shù)據(jù)項之前,要用這些數(shù)據(jù)項信息對ItemArray結(jié)構(gòu)數(shù)組進行初始化。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉