private void TestEnumOPCItems()
{
OpcServer opcServer = new OpcServer();
CBMonitor.BizLayer.Common.PublicConst pc = new CBMonitor.BizLayer.Common.PublicConst();
string serverName = pc.OPCServer;
//string serverName = "SECOM.MockOPC.1";
//int result1 = opcServer.Connect("SECOM.MockOPC.1");
int result1 = opcServer.Connect(serverName);
if (OPC.HRESULTS.Failed(result1))
{
string msg = "Error " + result1.ToString() + " at connecting to server.";
return;
}
string[] items = null;
opcServer.BrowseOPCItemIDs(OPCDA.OPCBROWSETYPE.OPC_BRANCH,
null, null, OPCDA.OPCACCESSRIGHTS.OPC_READABLE, out items);
opcServer.ChangeBrowsePosition(OPCDA.OPCBROWSEDIRECTION.OPC_BROWSE_DOWN, items[0]);
opcServer.BrowseOPCItemIDs(OPCDA.OPCBROWSETYPE.OPC_LEAF,
null, null, OPCDA.OPCACCESSRIGHTS.OPC_READABLE, out items);
SyncIOGroup ioGroup = new SyncIOGroup(opcServer);
List<int> pids = new List<int>();
for (int i = 1; i < 20; i++)
{
pids.Add(i);
}
foreach (string id in items)
{
string kk = id + "_kk";
string itemId = id;
ItemDef itemData = ioGroup.Item(itemId);
ItemPropertyData[] ipds = null;
opcServer.GetItemProperties(id, pids.ToArray(), out ipds);
OPCItemProperty[] pps = null;
opcServer.QueryAvailableProperties(id, out pps);
OPCItemProperty[] oips = null;
if (itemData == null)
{
ioGroup.Add(itemId);
}
OPCItemState result;
itemData = ioGroup.Item(itemId);
ioGroup.Read(OPCDA.OPCDATASOURCE.OPC_DS_CACHE, itemData, out result);
if (result != null)
{
object value = result.DataValue;
}
}
}
{
OpcServer opcServer = new OpcServer();
CBMonitor.BizLayer.Common.PublicConst pc = new CBMonitor.BizLayer.Common.PublicConst();
string serverName = pc.OPCServer;
//string serverName = "SECOM.MockOPC.1";
//int result1 = opcServer.Connect("SECOM.MockOPC.1");
int result1 = opcServer.Connect(serverName);
if (OPC.HRESULTS.Failed(result1))
{
string msg = "Error " + result1.ToString() + " at connecting to server.";
return;
}
string[] items = null;
opcServer.BrowseOPCItemIDs(OPCDA.OPCBROWSETYPE.OPC_BRANCH,
null, null, OPCDA.OPCACCESSRIGHTS.OPC_READABLE, out items);
opcServer.ChangeBrowsePosition(OPCDA.OPCBROWSEDIRECTION.OPC_BROWSE_DOWN, items[0]);
opcServer.BrowseOPCItemIDs(OPCDA.OPCBROWSETYPE.OPC_LEAF,
null, null, OPCDA.OPCACCESSRIGHTS.OPC_READABLE, out items);
SyncIOGroup ioGroup = new SyncIOGroup(opcServer);
List<int> pids = new List<int>();
for (int i = 1; i < 20; i++)
{
pids.Add(i);
}
foreach (string id in items)
{
string kk = id + "_kk";
string itemId = id;
ItemDef itemData = ioGroup.Item(itemId);
ItemPropertyData[] ipds = null;
opcServer.GetItemProperties(id, pids.ToArray(), out ipds);
OPCItemProperty[] pps = null;
opcServer.QueryAvailableProperties(id, out pps);
OPCItemProperty[] oips = null;
if (itemData == null)
{
ioGroup.Add(itemId);
}
OPCItemState result;
itemData = ioGroup.Item(itemId);
ioGroup.Read(OPCDA.OPCDATASOURCE.OPC_DS_CACHE, itemData, out result);
if (result != null)
{
object value = result.DataValue;
}
}
}