浅涉OPC Client

这个……从哪里说起呢……
突然要写一个OPC Client,于是,就开始写了-v-

开发工具:
我用VC6比较熟,那就用这个了。
OPC Client可以用两种接口Curstom interface和automation interface,既然用的是VC就可以直接用Curstom interface。

OPC动态连接库:
opc_aeps.dll
opccomn_ps.dll
opchda_ps.dll
opcproxy.dll
aprxdist.exe
opcenum.exe
全部先装上。

资料:
这个是一定要的了:OPC DA 2.05a Specification.pdf,连官方文档都没有,怎么混得下去。
顺便:www.opcfoundation.org,这个是OPC官方网站。
http://www.gongkong.com/tech/default.asp,中国工控网的OPC区也有不少资料。

需要完成的功能:
1. 连接,远程连接。
2. 建组,删组,建项,删项。
3. 遍历服务器点。
4. 读,写,自动刷新点。

那么,就开始写了:
1. 先Get服务的CLSID,没有这个就连不上接口了。
2. 通过CoCreateInstanceEx得到接口,需要用到的OPC接口有这么几个:
IOPCServer(Server管理),
IOPCItemMgt(Item管理),
IOPCBrowseServerAddressSpace(浏览服务器点),
IOPCAsyncIO2(异步读写),
IOPCSyncIO(同步读写),
IOPCDataCallback(数据Callback)
3. 成功得到IOPCServer就说明连接成功了。
4. m_pIServer->AddGroup(),增加组,并得到IOPCItemMgt接口。
5. m_pItemMgt->AddItems(),增加项。
6. 可以用IOPCBrowseServerAddressSpace接口来得到项路径。
服务器上项的存放是以树的形式。
m_pIBrowse->ChangeBrowsePosition():到指定的位置。
m_pIBrowse->BrowseOPCItemIDs():得到某一层的所有节点。
7. 同步异步方式的读写。
pIAsync2->Read(), pIAsync2->Write(), pISync->Read(), pISync->Write()
8. 通过IOPCDataCallback::OnDataChange()来进行数据的自动刷新。

以上,完成了。
这里只是对步骤和要用到的接口做个简单的介绍。
查找和阅读资料用了2天,写程序用了3天,做了一些简单的封装,现在凑活可以用了。
希望对急着几天要K一个OPC Client的朋友能有所帮助。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值