Exemplo n.º 1
0
        /// <summary>
        /// 读取实时数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnReadDataItem_Click(object sender, RoutedEventArgs e)
        {
            string message = null;

            if (!opcClienthelper.IsConnected)
            {
                message = DateTime.Now.ToString(dateString) + "请先连接服务器" + System.Environment.NewLine;
                asyncUpMessage(message);
                return;
            }
            OpcDataItem opcDataItem;

            if (Equals(null, opcClienthelper.OpcDataItems) || opcClienthelper.OpcDataItems.Count < 1)
            {
                message = DateTime.Now.ToString(dateString) + "没有数据点" + System.Environment.NewLine;
            }
            else
            {
                //正常读取
                opcDataItem      = opcClienthelper.OpcDataItems.FirstOrDefault().Clone() as OpcDataItem;
                opcDataItem.Name = opcDataItem.Name;
                opcDataItem      = opcClienthelper.Read(opcDataItem);
                message          = DateTime.Now.ToString("HH:mm:ss ffff ") + "读完成 " + (opcDataItem == null ? " " : opcDataItem.ToString()) + System.Environment.NewLine;
            }
            asyncUpMessage(message);
            if (!Equals(null, opcClienthelper.OpcDataItems) && opcClienthelper.OpcDataItems.Count > 0)
            {
                //无效读取
                var opcDataItem2 = opcClienthelper.OpcDataItems.LastOrDefault().Clone() as OpcDataItem;
                opcDataItem2.Name = opcDataItem2.Name + "xxx";
                opcDataItem2      = opcClienthelper.Read(opcDataItem2);
                message           = DateTime.Now.ToString(dateString) + "读完成 " + (opcDataItem2 == null ? " " : opcDataItem2.ToString()) + System.Environment.NewLine;
                asyncUpMessage(message);
            }
        }