1

ofs opc サーバーに接続する opc クライアントを作成しようとしています。

クライアントのコードは次のとおりです。

このコードは、サーバーにグループを正常に作成しますが、アイテムの作成に失敗し、エラーは発生しません。

    hr = CoCreateInstance(clsid, NULL, CLSCTX_ALL, IID_IUnknown, (LPVOID*)&pUnkn);

    if(SUCCEEDED(hr))
    {
        hr = pUnkn->QueryInterface(IID_IOPCServer, (LPVOID*)&m_pOpcServer);
        hr = pUnkn->QueryInterface(IID_IOPCBrowseServerAddressSpace,       (LPVOID*)&m_pOpcBrowse);   
        hr = m_pOpcServer->QueryInterface(IID_IConnectionPointContainer, (void**)&pCPC);

        OPCHANDLE hClientGroup = 0;
        DWORD dwUpdateRate = 0;
        hr = m_pOpcServer->AddGroup(L"Group1", true, dwUpdateRate, hClientGroup, 0,0, 0, &hClientGroup, &dwUpdateRate, IID_IOPCGroupStateMgt, (IUnknown**)&pInterface);


        OPCITEMDEF idef[1] = {{ /*szAccessPath*/ L"",
                                /*szItemID*/ ITEM_ID,
                                /*bActive*/ FALSE,
                                /*hClient*/ 1,
                                /*dwBlobSize*/ 0,
                                /*pBlob*/ NULL,
                                /*vtRequestedDataType*/ VT,
                                /*wReserved*/0
                             }};

        hr=0;
        hr = pInterface->QueryInterface(IID_IOPCItemMgt,  reinterpret_cast<LPVOID*>(&ptrItMgm));
        if(SUCCEEDED(hr))
        {
            hr = ptrItMgm->AddItems(1, idef, &pResults, &pErrors);
        }

'''

4

2 に答える 2

2

Schnider OPC Factory サーバーのエイリアス情報を含むシンボル テーブル ファイルを構成しましたか? サーバーで構成されていないアイテムを追加しようとすると、エラーが発生します (それらをチェックしている場合)。エラーをチェックしていなければ、何も起こりません。エイリアスの定義が、追加しようとしている項目と一致していることを確認してください。

于 2013-09-20T13:46:59.783 に答える