云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > S7-200 OPC C++读写PC Access服务器

S7-200 OPC C++读写PC Access服务器

  • 62 次阅读
  • 3 次下载
  • 2025/12/10 18:03:51

{ }

boolCOPCComm::AddItem(DWORD NumItems) {

//DWORD NumItems; //NumItems = 31;

pItems = new OPCITEMDEF[NumItems];

for(i = 0; i

pItems[i].szAccessPath = L\pItems[i].szItemID = g_szItemID[i]; pItems[i].bActive = TRUE; pItems[i].hClient = i + 1; pItems[i].dwBlobSize = 0; pItems[i].pBlob = NULL;

pItems[i].vtRequestedDataType = VT_R4;

// TODO: Add your control notification handler code here OPCITEMDEF* pItems; OPCITEMRESULT* pItResult; HRESULT* pErrors; DWORD i; return false;

//AfxMessageBox(_T(\ return false; } else { }

AfxMessageBox(_T(\return true; if(!FAILED(r1))

r1 = m_IOPCServer->AddGroup(L\

&RevUpRate, IID_IOPCItemMgt, (LPUNKNOWN*)&m_IOPCItemMgt);

dwLCID, &m_GrpSrvHandle,

m_IOPCItemMgt = NULL;

HRESULT r1;

r1 = m_IOPCItemMgt->AddItems(NumItems, pItems, &pItResult, &pErrors);

if(FAILED(r1) &&(r1 != S_FALSE)) { /*

if(pItResult[0].dwAccessRights != (OPC_READABLE + OPC_WRITEABLE)) { }

r1 = m_IOPCItemMgt->QueryInterface(IID_IOPCAsyncIO2,

AfxMessageBox(_T(\delete[] pItems; return true;

for (i = 0; i

if(FAILED(pErrors[i])) { } else { }

m_pItAttr[i].szAccessPath = pItems[i].szAccessPath; m_pItAttr[i].hClient = pItems[i].hClient; m_pItAttr[i].hServer = pItResult[i].hServer;

m_pItAttr[i].dwAccessRights = pItResult[i].dwAccessRights; m_pItAttr[i].bActive = pItems[i].bActive; AfxMessageBox(_T(\delete[] pItems; return true;

}

delete[] pItems; return true;

if(m_IOPCServer != NULL) { }

m_IOPCServer->Release();

AfxMessageBox(_T(\

//exit(1);

m_pItAttr[i].szItemID = g_szItemID[i];

(void**)&m_IOPCAsyncIO2); if (r1 < 0)

{

AfxMessageBox(\没有发现,错误的查询!\ CoTaskMemFree(m_ItemResult); m_IOPCItemMgt->Release(); m_IOPCItemMgt = NULL; m_GrpSrvHandle = NULL; m_IOPCServer->Release(); m_IOPCServer = NULL; CoUninitialize(); return; }*/ }

boolCOPCComm::Write(DWORD NumItems) { /*

m_ItemID[1] = g_szItemID[1]; */

r1 = m_IOPCItemMgt->QueryInterface(IID_IOPCAsyncIO, (void **)&pAsyncIO); for(i = 0; i

phServer[i] = m_pItAttr[i].hServer; //NumItems = 31;

phServer = new OPCHANDLE[NumItems]; IOPCAsyncIO* pAsyncIO; OPCHANDLE* phServer; HRESULT r1, r2; HRESULT* pErrors; BOOL found = FALSE; DWORD i;

m_ItemValues[1].vt = VT_R4;

//要写入的另一Item值

m_ItemValues[1].fltVal = 345.2;

// TODO: Add your control notification handler code here

m_ItemID[0] = g_szItemID[0]; m_ItemValues[0].vt = VT_R4; delete[] pItems; return false;

m_ItemValues[0].fltVal = 258.5; //要写入的一Item值

}

if(FAILED(r1)) { } else { }

pAsyncIO->Release();

//CoTaskMemFree(pItemValue); CoTaskMemFree(pErrors); delete[] phServer; return false;

//using IOPCAsyncIO::Write(..), look at OPC spezifikation r2 = pAsyncIO->Write(0, NumItems, phServer, m_ItemValues,

&m_TransactionID, &pErrors);

AfxMessageBox(_T(\CoTaskMemFree(pErrors); delete[] phServer; return true;

if(FAILED(r2) && (r2 == E_FAIL)) { }

AfxMessageBox(_T(\delete[] phServer; return true;

//exit(1);

float COPCComm::Read(DWORD NumItems) {

//NumItems = 31;

phServer = new OPCHANDLE[NumItems]; IOPCSyncIO* pSyncIO; OPCHANDLE* phServer; HRESULT r1, r2; HRESULT* pErrors; BOOL found = FALSE; DWORD i; CString temp;

// TODO: Add your control notification handler code here

搜索更多关于: S7-200 OPC C++读写PC Access服务器 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

{ } boolCOPCComm::AddItem(DWORD NumItems) { //DWORD NumItems; //NumItems = 31; pItems = new OPCITEMDEF[NumItems]; for(i = 0; i

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com