首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OPC添加项错误HResult

OPC添加项错误HResult
EN

Stack Overflow用户
提问于 2016-03-11 04:28:59
回答 1查看 1.6K关注 0票数 0

我正在编写一个从OPC服务器读取数据的代码。

代码语言:javascript
复制
public void setOPC()
{
            int count = 1;

            try
            {
                opcServer = new OPCServer();
                opcServer.Connect("OPCTechs.SiemensNet30DA", "");
                opcServer.OPCGroups.DefaultGroupIsActive = true;
                opcServer.OPCGroups.DefaultGroupDeadband = 0f;
                opcServer.OPCGroups.DefaultGroupUpdateRate = 10;

                opcGroup = opcServer.OPCGroups.Add("MP");
                opcGroup.IsSubscribed = false;
                opcGroup.OPCItems.DefaultIsActive = false;

                int[] h = new int[844];

                for (int i = 69; i >= 60; i--, count++)
                {
                    h[count] = opcGroup.OPCItems.AddItem("HH1001.B" + i, count).ServerHandle;
                }

                for (int i = 69; i >= 60; i--, count++)
                {
                    h[count] = opcGroup.OPCItems.AddItem("GF1001OP190.B" + i, count).ServerHandle;
                }
}

在上面的代码中,当它执行第二个循环时&到达行

代码语言:javascript
复制
h[count] = opcGroup.OPCItems.AddItem("GF1001OP190.B" + i, count).ServerHandle;

它给出了错误

代码语言:javascript
复制
Exception from HRESULT: 0x0040007

如果它成功地执行了第一个循环AddItem,为什么它会给第二个循环带来问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-11 04:53:17

代码语言:javascript
复制
opcGroup.OPCItems.AddItem("GF1001OP190.B" + i, count).ServerHandle;

它将在OPCItems上获得OPCItems,而不是在特定的项目上。但是,您应该获得特定项目的ServerHandle,而不是整个项目。

试一试

代码语言:javascript
复制
opcGroup.OPCItems.AddItem("GF1001OP190.B" + i, count);
h[count] = opcGroup.OPCItems[count].ServerHandle;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35932243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档