Пример #1
3
 private void RecurBrowse(OPCBrowser oPcBrowser)
 {
     //展开分支
     oPcBrowser.ShowBranches();
     //展开叶子
     oPcBrowser.ShowLeafs(true);
     foreach (object turn in oPcBrowser)
     {
         ListBox1.Items.Add(turn.ToString());
     }
 }
Пример #2
0
        /// <summary>
        /// 获取节点的所有值,显示在listview中
        /// </summary>
        private void ShowListView()
        {
            if (!CreateGroup())
            {
                return;
            }
            object value;
            object quality;
            object timestamp;
            //itmHandlerClient = 1234;
            OPCBrowser opcbrowser = ServerConnect.KepServer.CreateBrowser();

            list = RecurBrowse(opcbrowser);
            for (int i = 0; i < list.Count; i++)
            {
                KepItem          = KepItems.AddItem(list[i], itmHandlerClient);
                itmHandlerServer = KepItem.ServerHandle;
                KepItem.Read((short)OPCDataSource.OPCDevice, out value, out quality, out timestamp);
                lv = new ListViewItem(list[i]);
                lv.SubItems.Add(Convert.ToString(value));
                lv.SubItems.Add(quality.ToString());
                lv.SubItems.Add(timestamp.ToString());
                listView1.Items.Add(lv);
            }
        }
Пример #3
0
        private void RecurBrowse(OPCBrowser opcBrowser, string[] filter)
        {
            //展开分支
            opcBrowser.ShowBranches();
            //展开叶子
            opcBrowser.ShowLeafs(true);

            foreach (object turn in opcBrowser)
            {
                foreach (var r in filter)
                {
                    if (turn.ToString().ToUpper().Contains(r.ToUpper()))
                    {
                        OpcData data = new OpcData
                        {
                            OpcName  = turn.ToString(),
                            OpcValue = "null",
                            OpcTime  = DateTime.Now.ToString()
                        };
                        Log.Info($"绑定的数据{data.OpcName}");
                        _bindingData.Add(data);
                    }
                }
            }
        }
Пример #4
0
        public TKepwareServer(string address, string name)
        {
            try
            {
                server.Connect(name, address);
            }
            catch (Exception error)
            {
                Exception err =
                    new Exception(
                        $"无法连接到KEPServer[{name}({address})],[{error.Message}]");
                err.Data.Add("ErrCode", 900103);
                err.Data.Add("ErrText", err.Message);
                throw err;
            }

            this.address = address;
            this.name    = name;

            OPCBrowser browser = server.CreateBrowser();

            browser.ShowBranches();
            browser.ShowLeafs(true);

            foreach (object tag in browser)
            {
                devices.Add(
                    address,
                    name,
                    tag.ToString());
            }
        }
Пример #5
0
        private void buttonConnect_Click(object sender, EventArgs e)
        {
            try
            {
                opcServer.Connect(this.textBoxName.Text, this.textBox_IP.Text);
                //  MyServer.Connect(comboBox_ServerNames.SelectedItem.ToString(), strHostIP);
                //连接本机,后面的IP就不需要了



                if (opcServer.ServerState == (int)OPCServerState.OPCRunning)             //判断是否连接上了
                {
                    opcBrowser      = opcServer.CreateBrowser();
                    labelState.Text = "connected";
                }
                else
                {
                    labelState.Text = "connect fail";
                    throw new Exception("ServerState: " + opcServer.ServerState);
                }

                opcServer.ServerShutDown += ServerShutDown;//服务器断开事件,没有发现他在哪里用的。
            }
            catch (Exception err)
            {
                MessageBox.Show("ConnectServer:" + err.Message);
            }
        }
Пример #6
0
        /// <summary>
        /// 获取对应的分支点
        /// </summary>
        /// <param name="filter">点名字</param>
        public List <OpcData> RecurBrowse(string[] filter)
        {
            OPCBrowser     opcBrowser = _opcSerialInfo.OpcServer.CreateBrowser();
            List <OpcData> datas      = new List <OpcData>();

            //展开分支
            opcBrowser.ShowBranches();
            //展开叶子
            opcBrowser.ShowLeafs(true);

            foreach (object turn in opcBrowser)
            {
                foreach (var r in filter)
                {
                    if (turn.ToString().ToUpper().Contains(r.ToUpper()))
                    {
                        OpcData data = new OpcData
                        {
                            OpcName  = turn.ToString(),
                            OpcValue = "null",
                            OpcTime  = DateTime.Now.ToString()
                        };
                        datas.Add(data);
                    }
                }
            }
            return(datas);
        }
Пример #7
0
 /// <summary>
 /// 此方法连接OPCServer上的一个Program.
 /// </summary>
 /// <param name="host"></param>
 /// <param name="prog"></param>
 /// <returns></returns>
 public bool Connect(string host, string prog)
 {
     try
     {
         if (kepServer.ServerState == (int)OPCServerState.OPCRunning)
         {
             if (this.kepServer != null)
             {
                 this.kepServer.Disconnect();
                 //this.connected = false;
             }
         }
         this.tvwGroupList.Nodes.Clear();
         this.groupMap.Clear();
         this.itemMap.Clear();
         this.kepServer.Connect(prog, host);
         this.tsslblServerState.Text = "OPC服务[" + prog + "]已连接";
         TreeNode node = this.tvwGroupList.Nodes.Add(prog);
         node.Tag        = this.kepServer;
         this.opcBrowser = this.kepServer.CreateBrowser();
         LoadDataToTree(node, "");
         this.SetItemsClientHandle();
         //this.LoadConfig(prog);
         this.tsslblItemCount.Text  = "Item Count " + this.itemMap.Count.ToString();
         this.tsslblGroupCount.Text = "Group Count " + this.groupMap.Count.ToString();
         //this.connected = true;
     }
     catch (Exception ex)
     {
         LogHelper.Error(ex);
     }
     return(true);
 }
Пример #8
0
        static void Browser()
        {
            OPCBrowser        browser = _opcServer.CreateBrowser();
            OPCNamespaceTypes type    = (OPCNamespaceTypes)(browser.Organization);

            PrintInfo("browser Type", type.ToString());

            browser.ShowBranches();

            for (int i = 1; i <= browser.Count; i++)
            {
                Console.WriteLine(browser.Item(i));

                browser.MoveDown(browser.Item(i));
                browser.ShowBranches();

                for (int j = 1; j <= browser.Count; j++)
                {
                    Console.WriteLine(string.Format("   {0}", browser.Item(j)));


                    browser.MoveDown(browser.Item(j));
                    browser.ShowLeafs();

                    for (int k = 1; k <= browser.Count; k++)
                    {
                        Console.WriteLine(string.Format("      {0}   ItemID = {1}", browser.Item(k), browser.GetItemID(browser.Item(k))));
                    }
                }
            }
        }
Пример #9
0
        /// <summary>
        /// Рекурсивно обходит содержимое OPC-сервера.
        /// </summary>
        /// <param name="aBrowser">Браузер OPC-сервера.</param>
        /// <param name="aPrefix">Префикс для построения дерева.</param>
        private static void ShowOpcTagsRecurcive(OPCBrowser aBrowser, string aPrefix = "")
        {
            var isError = false;
            try {
                aBrowser.ShowBranches();
            }
            catch (Exception ex) {
                Console.WriteLine("Ошибка при отображении ветки.");
                isError = true;
            }

            if (!isError) {
                foreach (var item in aBrowser) {
                    Console.WriteLine(aPrefix + "Ветвь: " + item);
                    aBrowser.MoveDown(item.ToString());
                    ShowOpcTagsRecurcive(aBrowser, aPrefix + "-");
                    aBrowser.MoveUp();
                }
            }

            isError = false;
            try {
                aBrowser.ShowLeafs();
            }
            catch (Exception ex) {
                Console.WriteLine("Ошибка при отображении листа.");
                isError = true;
            }

            if (!isError) {
                foreach (var item in aBrowser) {
                    Console.WriteLine(aPrefix + "Лист:" + item);
                }
            }
        }
Пример #10
0
        /// <summary>
        /// 列出OPC服务器中所有组
        /// </summary>
        /// <param name="oPCBrowser"></param>
        private void RecurBrowseGroups(OPCBrowser oPCBrowser)
        {
            //string branch;
            //oPCBrowser.ShowBranches();
            //oPCBrowser.ShowLeafs(true);
            //foreach (object turn in oPCBrowser)
            // {                  Console.WriteLine("服务端浏览——————:" + turn.ToString());             }
            // Console.WriteLine("请需要浏览的分支:");
            // branch = Console.ReadLine();
            // oPCBrowser.MoveDown("Channel_0_User_Defined");
            // oPCBrowser.ShowBranches();
            // oPCBrowser.ShowLeafs(true);
            // foreach (object turn in oPCBrowser)
            // {
            //     Console.WriteLine("服务端:" + turn.ToString());
            // }

            //展开分支
            oPCBrowser.ShowBranches();
            foreach (object turn in oPCBrowser)
            {
                if (!turn.ToString().Substring(0, 1).Equals("_"))
                {
                    listBoxGroups.Items.Add(turn.ToString());
                }
            }
        }
Пример #11
0
        public List <string> ConnRemoteAndGetRecurBrowse(
            string remoteServerIP,
            string remoteServerName)
        {
            List <string> rlt = new List <string>();

            string connRlt = ConnectRemoteServer(remoteServerIP, remoteServerName);

            if (connRlt != "")
            {
                return(rlt);
            }

            OPCBrowser browser = server.CreateBrowser();

            // 展开分支
            browser.ShowBranches();
            // 展开叶子
            browser.ShowLeafs(true);
            foreach (object turn in browser)
            {
                string strTurn = turn.ToString();
                if (!(strTurn.Contains("._Statistics._") ||
                      strTurn.Contains("_System._") ||
                      strTurn.Contains("_DataLogger._")))
                {
                    rlt.Add(strTurn);
                }
            }

            return(rlt);
        }
Пример #12
0
        /// <summary>
        /// 触发连接方法
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        ///
        private void GetToConnect()
        {
            //ServerConnect sc1 = new ServerConnect();
            if (sc1.ShowDialog() == DialogResult.OK)
            {
                //将服务器名设为root
                string   root      = sc1.listBox1.SelectedItem.ToString();
                TreeNode CountNode = new TreeNode(root);
                treeView1.Nodes.Add(CountNode);


                try
                {
                    // ShowListView();
                    //枚举服务器下所有tag点,并以树形显示
                    OPCBrowser browser = ServerConnect.KepServer.CreateBrowser();
                    LoadDataToTree(browser, treeView1.Nodes[0].Nodes);
                    list = RecurBrowse(browser);
                    changeToolStrip();
                }
                catch (Exception err)
                {
                    MessageBox.Show("初始化出错:" + err.Message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }
Пример #13
0
        private void buttonConnectOpc_Click(object sender, EventArgs e)
        {
            if (comboBoxOpcIP.Text == "" || comboBoxOpcServerName.Text == "")
            {
                MessageBox.Show("请输入正确的IP和服务名称    示例: 192.168.102.13   OPC.DeltaV.1");
            }
            opcIP         = comboBoxOpcIP.Text;
            opcServerName = comboBoxOpcServerName.Text;


            try
            {
                opcServer.Connect(opcServerName, opcIP);
                //  MyServer.Connect(comboBox_ServerNames.SelectedItem.ToString(), strHostIP);
                //连接本机,后面的IP就不需要了

                if (opcServer.ServerState == (int)OPCServerState.OPCRunning)         //判断是否连接上了
                {
                    opcBrowser      = opcServer.CreateBrowser();
                    labelState.Text = "connected";
                }
                else
                {
                    labelState.Text = "connect fail";
                    throw new Exception("ServerState: " + opcServer.ServerState);
                }

                opcServer.ServerShutDown += ServerShutDown;//服务器断开事件,没有发现他在哪里用的。
            }
            catch (Exception err)
            {
                MessageBox.Show("ConnectServer:" + err.Message);
            }
        }
Пример #14
0
        private bool LoadDataToTree(OPCBrowser oPCBrowser, TreeNodeCollection treeNodeCollection, string root)
        {
            oPCBrowser.Organization.ToString();

            oPCBrowser.ShowBranches();

            bool isLeaf = true;

            foreach (object turn in opcBrowser)
            {
                TreeNode node = null;
                node = treeNodeCollection.Add(turn.ToString());
                opcBrowser.MoveDown(turn.ToString());
                if (LoadDataToTree(oPCBrowser, node.Nodes, root + "\\" + turn.ToString()))
                {
                    //if (turn.ToString().Equals("PV"))
                    //{


                    //textBoxResult.Text +=root+"\\"+turn.ToString() + "\r\n";
                    File.AppendAllText(path, root + "\\" + turn.ToString() + "\r\n", Encoding.UTF8);

                    // }
                }
                oPCBrowser.MoveUp();
                isLeaf = false;
            }
            return(isLeaf);
        }
Пример #15
0
        /// <summary>
        /// 列出OPC服务器中所有节点
        /// </summary>
        /// <param name="oPCBrowser"></param>
        private void RecurBrowse(OPCBrowser oPCBrowser)
        {
            ItemTreeNode.Nodes.Clear();
            //建树
            oPCBrowser.MoveToRoot();
            TreeNode root = ItemTreeNode.Nodes.Add("Root");

            BuildBranchTree(ref root, oPCBrowser);
        }
Пример #16
0
        /// <summary>
        /// 展开OPC服务器的节点
        /// </summary>
        /// <param name="opcServer">OPC服务器</param>
        /// <returns>返回展开后的节点数据</returns>

        public OPCBrowser RecurBrowse(OPCServer opcServer)
        {
            OPCBrowser opcBrowser = opcServer.CreateBrowser();

            //展开分支
            opcBrowser.ShowBranches();
            //展开叶子
            opcBrowser.ShowLeafs(true);
            return(opcBrowser);
        }
Пример #17
0
        public Leaf(Branch Parent, string Name, int ClientHandle, OPCBrowser Browser)
        {
            this._Parent       = Parent;
            this._Name         = Name;
            this._ClientHandle = ClientHandle;

            this._Parent.addLeaf(this);

            this._OPCItem          = this._Parent.OPCGroup.OPCItems.AddItem(Browser.GetItemID(this._Name), this._ClientHandle);
            this._OPCItem.IsActive = true;
        }
Пример #18
0
 /// <summary>
 /// OPC分支展开
 /// </summary>
 /// <param name="oPCBrowser"></param>
 public void RecurBrowse(OPCBrowser oPCBrowser)
 {
     //展开分支
     oPCBrowser.ShowBranches();
     //展开叶子
     oPCBrowser.ShowLeafs(true);
     foreach (object turn in oPCBrowser)
     {
         Console.WriteLine(turn.ToString());
     }
 }
Пример #19
0
        private void LoadDataToTreeFlat(OPCBrowser oPCBrowser, TreeNodeCollection treeNodeCollection, string root)
        {
            oPCBrowser.Organization.ToString();

            oPCBrowser.ShowBranches();
            opcBrowser.ShowLeafs(true);
            foreach (object turn in opcBrowser)
            {
                File.AppendAllText(path, root + "\\" + turn.ToString() + "\r\n", Encoding.UTF8);
            }
        }
Пример #20
0
 /// <summary>
 /// 列出OPC服务器中所有节点
 /// </summary>
 /// <param name="oPCBrowser"></param>
 private void RecurBrowse(OPCBrowser oPCBrowser)
 {
     //展开分支
     oPCBrowser.ShowBranches();
     //展开叶子
     oPCBrowser.ShowLeafs(true);
     foreach (object turn in oPCBrowser)
     {
         listBox1.Items.Add(turn.ToString());
     }
 }
Пример #21
0
        /// <summary>
        /// 列出opc服务器中所有节点
        /// </summary>
        /// <param name="TransactionID"></param>
        /// <param name="NumItems"></param>
        /// <param name="ClientHandles"></param>
        /// <param name="Errors"></param>
        private void RecurBrowse(OPCBrowser oPCBrowser)
        {
            //写入接到treeview

            LoadDataToTree(oPCBrowser, treeView1.Nodes[0].Nodes);
            oPCBrowser.ShowBranches();
            oPCBrowser.ShowLeafs(true);
            foreach (object turn in oPCBrowser)
            {
                listBox1.Items.Add(turn.ToString());
            }
        }
Пример #22
0
 /// <summary>
 /// 列出OPC服务器中所有节点
 /// </summary>
 /// <param name="oPCBrowser"></param>
 private void RecurBrowse(OPCBrowser oPCBrowser)
 {
     //展开分支
     oPCBrowser.ShowBranches();
     //展开叶子
     oPCBrowser.ShowLeafs(true);
     foreach (object turn in oPCBrowser)
     {
         //OPCItemDic2.Add(turn.ToString(), );
         OPCItemNames.Add(turn.ToString());
     }
 }
Пример #23
0
 /// <summary>
 /// 连接OPCServer服务
 /// 1、初始化daOpcItems集合
 /// 2、创建浏览器对象
 /// 3、OPCServer信息获取
 /// </summary>
 /// <param name="ServerName"></param>
 /// <returns></returns>
 public async Task <bool> Connect()
 {
     try
     {
         if (Address.DaAddress.ServerName == "" || Address.DaAddress.ServerName is null)
         {
             return(false);
         }
         //尝试连接OPC服务
         lock (syncLock)
         {
             if (opc_connected)
             {
                 throw new Exception("opc已经连接,请误重复连接");
             }
             KepServer.Connect(Address.DaAddress.ServerName, Address.DaAddress.Ip);
             if (KepServer.ServerState == (int)OPCServerState.OPCRunning)
             {
                 oPCBrowser           = KepServer.CreateBrowser();
                 this.ServerStateDesc = "已连接到-" + KepServer.ServerName + "   ";
                 this.ServerName      = KepServer.ServerName;
                 this.ServerStartTime = KepServer.StartTime.ToString() + "   ";
                 this.ServerVersion   = KepServer.MajorVersion.ToString() + "." + KepServer.MinorVersion.ToString() + "." + KepServer.BuildNumber.ToString() + "   ";
                 opc_connected        = true;
                 ConnectCompleteHandle?.Invoke(this);
                 return(true);
             }
             else
             {
                 opc_connected = false;
                 //这里你可以根据返回的状态来自定义显示信息,请查看自动化接口API文档
                 this.ServerStateDesc = "状态:连接失败";
                 this.ServerStartTime = DateTime.Now.ToString();
                 this.ServerVersion   = "0.0.0";
                 ServerName           = "Error";
                 return(false);
             }
         }
     }
     catch (Exception ex)
     {
         //保存连接状态
         opc_connected = false;
         //这里你可以根据返回的状态来自定义显示信息,请查看自动化接口API文档
         var test = "状态:" + KepServer.ServerState.ToString() + "   ";
         this.ServerStateDesc = string.Format("无法连接-连接状态{0}", KepServer.ServerState.ToString());
         this.ServerStartTime = DateTime.Now.ToString();
         this.ServerVersion   = "0.0.0";
         ServerName           = "Error";
         return(false);
     }
 }
Пример #24
0
 /// <summary>
 /// 获取listview中相应的值
 /// </summary>
 /// <param name="opcbrowser"></param>
 public List <string> RecurBrowse(OPCBrowser opcbrowser)
 {
     //  OPCBrowser opcbrowser = ServerConnect.KepServer.CreateBrowser();
     opcbrowser.ShowBranches();
     opcbrowser.ShowLeafs(true);
     list = new List <string>();
     foreach (object turn in opcbrowser)
     {
         list.Add(turn.ToString());
         //lv = new ListViewItem(turn.ToString());
         //listView1.Items.Add(lv);
     }
     return(list);
 }
Пример #25
0
 public bool Connect()
 {
     Server = new OPCServer();
     Server.Connect(Prog, Node);
     Browser      = Server.CreateBrowser();
     OPCGroupsIns = Server.OPCGroups;
     //默认属性这里先填写,以后可能会改写到配置文件中。
     //OPCGroupsIns.DefaultGroupDeadband = 0;                  //组默认死区
     //OPCGroupsIns.DefaultGroupIsActive = true;                 //组默认激活状态
     //OPCGroupsIns.DefaultGroupLocaleID = 0;                    //组默认区域ID*/
     //OPCGroupsIns.DefaultGroupTimeBias = 0;                    //组默认时间基*/
     //OPCGroupsIns.DefaultGroupUpdateRate = 10;              //组默认更新频率  ms
     return(true);
 }
Пример #26
0
        public List <string> RecurBrowse(OPCBrowser opcBrowser)
        {
            List <string> opcNodeNameList = new List <string>();

            //展开分支
            opcBrowser.ShowBranches();
            //展开叶子
            opcBrowser.ShowLeafs(true);
            foreach (object item in opcBrowser)
            {
                opcNodeNameList.Add(item.ToString());
            }
            return(opcNodeNameList);
        }
Пример #27
0
        /// <summary>
        /// 列出OPC服务器中所有节点
        /// </summary>
        /// <param name="oPCBrowser"></param>
        public OPCBrowser RecurBrowse()
        {
            OPCBrowser oPCBrowser = KepServer.CreateBrowser();

            //展开分支
            oPCBrowser.ShowBranches();


            //展开叶子
            oPCBrowser.ShowLeafs(true);
            // foreach (object turn in oPCBrowser)
            // {
            //  lsbGroups.Items.Add(turn.ToString());
            // }
            return(oPCBrowser);
        }
Пример #28
0
        //获取PLC对象中所有的Item
        public string ItemList()
        {
            browser = myOpcServer.CreateBrowser();
            browser.ShowBranches();
            browser.ShowLeafs(true);
            string i = "";

            foreach (var item in browser)
            {
                if (item.ToString().Contains(str))
                {
                    i += item.ToString() + "|";
                }
            }
            return(i);
        }
Пример #29
0
        /// <summary>
        /// 展开OPC服务器的节点
        /// </summary>
        /// <param name="opcServer">OPC服务器</param>
        /// <returns>返回展开后的节点数据</returns>
        public List <string> RecurBrowse()
        {
            OPCBrowser opcBrowser = opcServer.CreateBrowser();

            //展开分支
            opcBrowser.ShowBranches();
            //展开叶子
            opcBrowser.ShowLeafs(true);
            List <string> browserNames = new List <string>();

            for (int i = 1; i <= opcBrowser.Count; i++)
            {
                browserNames.Add(opcBrowser.Item(i));
            }
            return(browserNames);
        }
Пример #30
0
        /// <summary>
        /// 断开连接
        /// </summary>
        private static void disconn()
        {
            if (connected == true)
            {
                OPC_server.Disconnect();
                connected = false;
            }
            OPC_item   = null;
            opc_group  = null;
            opcb       = null;
            OPC_server = null;

            groupadd     = false;
            allservers   = null;
            allitemvalue = null;
            allitem      = null;
        }
Пример #31
0
 private void btnGetGrps_Click(object sender, EventArgs e)
 {
     //实例化Tag浏览器
     myOPCBrowser = myServer.CreateBrowser();
     //展开分组
     myOPCBrowser.ShowBranches();
     //展开标签
     myOPCBrowser.ShowLeafs(true);
     //将所有分支和叶子节点显示到ListBox
     lstItems.Items.Clear();
     foreach (object turn in myOPCBrowser)
     {
         lstItems.Items.Add(turn.ToString());
     }
     //开启定位标签按钮
     btnSetItem.Enabled = true;
 }
Пример #32
0
            public void GetItemsNames(string RemoteServerName, string RemoteServerIp, string pass, string pattern, string patternRe)
            {
                try
                {
                    _kepServer.Connect(RemoteServerName, RemoteServerIp);
                    OPCBrowser browser = _kepServer.CreateBrowser();
                    //browser.Filter = "[\u4e00-\u9fa5]+.PLC.[\u4e00-\u9fa5]+[A|B|C]";
                    browser.ShowBranches();
                    browser.ShowLeafs(true);

                    dicItems.Clear();

                    //string pattern = @"[\u4e00-\u9fa5]+\d+\-" + pass + @".PLC.[\u4e00-\u9fa5]+[A-Z]+\d+";//匹配 设备001.PLC.配置参数A1

                    //string patternRe = @".PLC.[\u4e00-\u9fa5]+[A-Z]+\d+";

                    //string pattern = "[A-Z|a-z]+.PLC." + @"[AI|BI]+\d";
                    //string patternRe = @".PLC.[AI|BI]+\d";

                    foreach (object item in browser)
                    {
                        if (Regex.IsMatch(item.ToString(), pattern, RegexOptions.IgnoreCase))
                        {
                            ItemsNames.Add(item.ToString());
                            Regex          rgx   = new Regex(patternRe);//获取GroupName(组名)
                            string         key   = rgx.Replace(item.ToString(), " ");
                            IList <string> items = new List <string>
                            {
                                item.ToString()
                            };
                            if (!dicItems.ContainsKey(key))
                            {
                                dicItems.Add(key, items);
                            }
                            else
                            {
                                dicItems[key].Add(item.ToString());
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    LogHelper.WriteLog(typeof(OpcClient), ex.Message);
                }
            }
Пример #33
0
        public void Conectar()
        {
            this._OPCServer.Connect(_serverName);
            this._OPCServer.ServerShutDown += _OPCServer_ServerShutDown;

            this._OPCBranch = new Branch(Name: _serverName);
            this._OPCBranch.DataChanged += _OPCBranch_DataChanged;

            this._OPCBrowser = this._OPCServer.CreateBrowser();

            this._Connected = true;

            if (Connected != null)
                Connected(this, null);
        }
Пример #34
0
        public Leaf(Branch Parent, string Name, int ClientHandle, OPCBrowser Browser)
        {
            this._Parent            = Parent;
            this._Name              = Name;
            this._ClientHandle      = ClientHandle;

            this._Parent.addLeaf(this);

            this._OPCItem           = this._Parent.OPCGroup.OPCItems.AddItem(Browser.GetItemID(this._Name), this._ClientHandle);
            this._OPCItem.IsActive  = true;
        }