日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

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

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

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

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

            4.3 連接opc服務(wù)器

             客戶能夠連接到服務(wù)器上,并建立組和OPC項(xiàng),這是OPC訪問(wèn)的基礎(chǔ),如果沒(méi)有這個(gè)機(jī)制,訪問(wèn)的其它機(jī)能不可能[4]。連接 OPC服務(wù)器,OPC客戶需要事先指定計(jì)算機(jī)名(如果OPC服務(wù)器和OPC客戶不在同一臺(tái)計(jì)算機(jī)上)和OPC數(shù)據(jù)訪問(wèn)服務(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客戶不在同一臺(tái)計(jì)算機(jī)上

            {

            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客戶在同一臺(tái)計(jì)算機(jī)上

            {

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

            (void **)ppUnknown);

            }

            }

            4.4 創(chuàng)建OPC組

            IOPCServer接口的AddGroup()方法可以創(chuàng)建一個(gè)有指定名稱和屬性的OPC組。在調(diào)用該方法之前,可以使用上一步得到的Iunknown接口指針,通過(guò)QueryInterface()方法請(qǐng)求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ù)項(xiàng)

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

            pOPCItemMgt->AddItems(ItemNumber,ItemArray,

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

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



          評(píng)論


          相關(guān)推薦

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

          關(guān)閉