private void RecurBrowse(OPCBrowser oPcBrowser) { //展开分支 oPcBrowser.ShowBranches(); //展开叶子 oPcBrowser.ShowLeafs(true); foreach (object turn in oPcBrowser) { ListBox1.Items.Add(turn.ToString()); } }
/// <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); } }
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); } } } }
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()); } }
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); } }
/// <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); }
/// <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); }
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)))); } } } }
/// <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); } } }
/// <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()); } } }
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); }
/// <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); } } }
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); } }
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); }
/// <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); }
/// <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); }
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; }
/// <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()); } }
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); } }
/// <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()); } }
/// <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()); } }
/// <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()); } }
/// <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); } }
/// <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); }
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); }
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); }
/// <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); }
//获取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); }
/// <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); }
/// <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; }
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; }
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); } }
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); }