OPC Server 添加项目错误 HResult
OPC Server add items error HResult
我正在编写一个从 OPC 服务器读取数据的代码。
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;
}
}
在上面的代码中,当它执行第二个循环并到达行
h[count] = opcGroup.OPCItems.AddItem("GF1001OP190.B" + i, count).ServerHandle;
它给出了错误
Exception from HRESULT: 0x0040007
如果第一个循环 AddItem
成功执行,为什么第二个循环会出现问题?
opcGroup.OPCItems.AddItem("GF1001OP190.B" + i, count).ServerHandle;
它将获取 OPCItems 上的 ServerHandle,但不会获取特定项目上的 ServerHandle。但是您应该在特定项目上获得 ServerHandle,而不是在整个项目上。
尝试
opcGroup.OPCItems.AddItem("GF1001OP190.B" + i, count);
h[count] = opcGroup.OPCItems[count].ServerHandle;
我正在编写一个从 OPC 服务器读取数据的代码。
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;
}
}
在上面的代码中,当它执行第二个循环并到达行
h[count] = opcGroup.OPCItems.AddItem("GF1001OP190.B" + i, count).ServerHandle;
它给出了错误
Exception from HRESULT: 0x0040007
如果第一个循环 AddItem
成功执行,为什么第二个循环会出现问题?
opcGroup.OPCItems.AddItem("GF1001OP190.B" + i, count).ServerHandle;
它将获取 OPCItems 上的 ServerHandle,但不会获取特定项目上的 ServerHandle。但是您应该在特定项目上获得 ServerHandle,而不是在整个项目上。
尝试
opcGroup.OPCItems.AddItem("GF1001OP190.B" + i, count);
h[count] = opcGroup.OPCItems[count].ServerHandle;