1、如果没有添加成功,如你所说一般是出在标签地址不一样。
2、如果没有添加成功,是读取不到的。OPC是通过句柄进行传递通讯的。
建议你用第三方的OPC Client读取看看。
如果有兴趣到下面的贴下载里面的软件看看,内含OPC Client和OPC Server
我不知道你的VB客户端采用那种方式来编写OPC Client的:
1、采用OPCDAAuto.dll
2、采用第三方的dll
3、自己直接实现Data Access Custom Interface
在Data Access Custom Interface Standard 文档中
4.5.6.1 IOPCAsyncIO2::Read
HRESULT Read(
[in] DWORD dwCount,
[in, size_is(dwCount)] OPCHANDLE * phServer,
[in] DWORD dwTransactionID,
[out] DWORD *pdwCancelID,
[out, size_is(,dwCount)] HRESULT ** ppErrors
);
中
ppErrors 数组会反映哪项错误。
你目前出现两个问题:
1、数据项只能成功增加45个,另外5个错误是谁呢?
2、当有仪表出现通讯错误时,数据不刷新
首先先锁定一下错误在什么地方:
问题1:其实你可以把50数据项拆分为10个一组,看看是否能够都正常,或采用第三方OPC Client工具看看,是否是一样的现象。
问题2:同样,采用第三方OPC Client工具看看,是否是一样的现象。 如果当仪表出现通讯错误时,第三方OPC Client工具数据刷新有问题,则说明是DA Server的问题,直接告诉业主就是了,让业主自己解决,或你提供一个解决方案,对于采用异步调用,这种可能性要多一些。