/// <summary>
        /// 从默认的OPC项读取值
        /// </summary>
        /// <param name="value">待读取的值</param>
        /// <param name="message">返回的错误信息</param>
        public bool ReadItemValue(out string value, out string message)
        {
            value = string.Empty;
            try
            {
                if (DefaultGroupInfo == null)
                {
                    message = "未找到默认组";
                    return(false);
                }

                if (!DefaultGroupInfo.ReadValues(out message))
                {
                    return(false);
                }
                if (DefaultGroupInfo.ItemCount > 0)
                {
                    value = DefaultGroupInfo.ListItemInfo.Last().Value;
                }
                GC.Collect();
            }
            catch (Exception ex)
            {
                message = string.Format("从服务端句柄为{0}、标签ID为{1}的标签读取值失败:{2}", ItemHandleServer, ItemId, ex.Message);
                return(false);
            }
            return(true);
        }
        /// <summary>
        /// 向默认的OPC项写入值
        /// </summary>
        /// <param name="value">待写入的值</param>
        /// <param name="message">返回的错误信息</param>
        public bool WriteItemValue(string value, out string message)
        {
            try
            {
                if (DefaultGroupInfo == null)
                {
                    message = "未找到默认组";
                    return(false);
                }

                if (DefaultGroupInfo.ItemCount > 0)
                {
                    DefaultGroupInfo.ListItemInfo.Last().Value = value;
                }
                if (!DefaultGroupInfo.WriteValues(out message))
                {
                    return(false);
                }
                GC.Collect();
            }
            catch (Exception ex)
            {
                message = string.Format("向服务端句柄为{0}的标签写入值{1}失败:{2}", ItemHandleServer, value, ex.Message);
                return(false);
            }
            return(true);
        }
        /// <summary>
        /// 设置默认的OPC项,假如已添加,则移除后再重新添加(同一时刻默认标签只有一个)
        /// </summary>
        /// <param name="itemId">标签ID</param>
        /// <param name="clientHandle">标签的客户端句柄</param>
        /// <param name="message">返回的错误信息</param>
        /// <returns></returns>
        public bool SetItem(string itemId, int clientHandle, out string message)
        {
            try
            {
                if (DefaultGroupInfo == null)
                {
                    message = "未找到默认组";
                    return(false);
                }

                //初始化OPC项信息并在默认OPC组中添加
                List <OpcItemInfo> list = new List <OpcItemInfo>()
                {
                    new OpcItemInfo(itemId, clientHandle)
                };
                DefaultGroupInfo.SetItems(list, out message);
                if (DefaultGroupInfo.ItemCount > 0)
                {
                    OpcItemInfo item = DefaultGroupInfo.ListItemInfo.Last();
                    //保存默认OPC项的客户端句柄,服务端句柄,标签名称
                    ItemHandleClient = item.ClientHandle;
                    ItemId           = item.ItemId;
                    ItemHandleServer = item.ServerHandle;
                }
            }
            catch (Exception ex)
            {
                ItemHandleClient = 0;
                message          = "移除或添加标签时发生错误:" + ex.Message;
                return(false);
            }
            return(true);
        }