Beispiel #1
0
        /// <summary>
        /// 设置父节点监控值,同时遍历设置子节点的值(暂时不用)
        /// </summary>
        /// <param name="tags"></param>
        /// <param name="parentNode"></param>
        private void SetParentMonitorNodes(List <string> tags, Dev_Monitor parentNode)
        {
            //根据测点列表,返回一个字典(键:测点名称TagName   值: opc对接获取的值)
            Dictionary <string, string> tagToValueDic = new Dictionary <string, string>();
            string opcServerIp = AppContext.OPCServerIP;

            opc = new OPCReadAuto(opcServerIp);
            foreach (var item in tags)
            {
                if (!tagToValueDic.ContainsKey(item))
                {
                    string tagNameValue = opc.getOPC(item);
                    if (tagNameValue.Equals("BAD"))
                    {
                        tagToValueDic.Add(item, "*");
                    }
                    else
                    {
                        tagToValueDic.Add(item, tagNameValue);
                    }
                }
            }



            opc.DisConnected(); //断开opc
            SetMonitorNodeValue(parentNode, tagToValueDic);
        }
        public string getOPC(string tagName)
        {
            try
            {
                string      aa  = "";
                OPCReadAuto opc = new OPCReadAuto("10.146.33.4"); if (opc.IsConnected == true)
                {
                    aa = opc.GetOpcValueOne(tagName);
                }

                string result = aa.ToString();
                if (result == null || result == "")
                {
                    result = "0";
                }
                return(aa.ToString());
            }
            catch (Exception ex)
            {
                Log.Error("getOPC:" + ex.ToString());
                return(null);
            }
        }