//以下代码为不对数据项进行分组
//DataChange的参数
int itemNum = dt.Rows.Count;
// int itemNum = 2000;
string[] itemIds = new string[itemNum + 1];
int[] clientHandles = new int[itemNum + 1];
itemIds[0] = "0";
clientHandles[0] = 0;
Array servrHandles, error;
int cancelId;
//AsyncRead的参数
OPCGroup opcGroup = opcEvents.CreateGroup("opcgroup");
int[] serverHandles = new int[itemNum + 1];
serverHandles[0] = 0;
for (int i = 0; i < itemNum; i++)
{
if (dt.Rows[i][0].ToString() == "" || dt.Rows[i][1].ToString() == "")
{
continue;
}
//DataChange的参数
string item = dt.Rows[i][0].ToString();
int clientId = int.Parse(dt.Rows[i][1].ToString());
itemIds[i + 1] = item;
clientHandles[i + 1] = clientId;
//AsyncRead的参数
//OPCItem opcItem = opcGroup.OPCItems.AddItem(item, 1234+i); //测试通过
//int serverHandler = opcItem.ServerHandle;
//serverHandles[i + 1] = serverHandler;
}
Array itemIdsAry = itemIds.ToArray();
Array clientHandlesAry = clientHandles.ToArray();
//通过DataChange获取数据
opcGroup.OPCItems.AddItems(itemNum, ref itemIdsAry, ref clientHandlesAry, out servrHandles, out error); */
//通过异步读取数据
//int transID = 1231;
//Array serverHandlesAry = serverHandles.ToArray();
//opcGroup.AsyncRead(itemNum, ref serverHandlesAry, out error, transID, out cancelId);