C#通过webservice获取ABB机器人信息及如何获取
|
1. webservice为ABB机器人提供的基于web的接口 2. 可以通过编写html等语言,直接访问对应链接获取信息,例如以上效果可以在浏览器直接输入127.0.01/rw/system得到结果。 3. 此处举例在C#创建客户端,获取上述结果。 4. webservice返回的结果通常为XML格式,部分返回结果支持json格式(具体参考手册)。 5. 在c#中创建button及相关textbox控件 6. 为加入相关json等引用,点击工具中的NuGet程序包管理器-程序包管理器控制台,并在控制台安装以下内容: PM>Install-Package Microsoft.AspNet.WebApi.Client -Version 5.1.2 PM> Install-Package System.Json -Version 4.0.20126.16343
7. c#代码中添加如下引用 using System.Net; using System.Net.Http; using System.Json; 8. 在相关button中添加代码如下:
string url = "http://127.0.0.1/rw/system?json=1"; string username = "Default User"; string password = "robotics";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "GET"; request.Credentials = new NetworkCredential(username, password); request.CookieContainer = _cookies; request.PreAuthenticate = true; request.Proxy = null; request.Timeout = 60; request.ServicePoint.Expect100Continue = false; WebResponse response = request.GetResponse(); if (response != null) { using (StreamReader reader = new StreamReader(response.GetResponseStream())) { string result = reader.ReadToEnd(); dynamic obj = Newtonsoft.Json.JsonConvert.DeserializeObject(result); 显示控制器名字,版本号等 var service = obj._embedded._state[0]; // the first item in the json state response is the system name, robotware version and robotware version name textBox7.Text = "service=" + service._title + "\r\n"; textBox7.Text = textBox7.Text + "name=" + service.name + "\r\n"; textBox7.Text = textBox7.Text + "version=" + service.rwversion + "\r\n"; textBox7.Text = textBox7.Text + "versionname= " + service.rwversionname + "\r\n"; // 显示机器人选项 foreach (var option in obj._embedded._state[1].options) // the second state item is an array of installed options { textBox7.Text = textBox7.Text + "★option=" + option.option + "\r\n"; } } } 通过PCSDK获取ABB机器人WebService端口
2. 默认WebService端口为80,但若PC上运行两个仿真或者其他设置,可能导致默认80端口被占,如何获取当前机器人系统的WebService端口呢? 3. 可以借助pcsdk。Pcsdk的安装与使用见。 4. 查看pcsdk手册,可以发现ControllerInfo的属性有WebServicePort端口参数,所以可以通过该参数获取。
5. 可以创建代码如下: if(scanner==null) { scanner= newNetworkScanner(); } scanner.Scan(); this.listView1.Items.Clear(); ControllerInfoCollection controls = scanner.Controllers; foreach(ControllerInfoinfo incontrols) { ListViewItem item = new ListViewItem(info.SystemName); item.SubItems.Add(info.IPAddress.ToString()); item.SubItems.Add(info.Version.ToString()); item.SubItems.Add(info.WebServicesPort.ToString()); !显示WebService端口号 item.SubItems.Add(info.ControllerName); item.Tag= info; this.listView1.Items.Add(item); }
二次开发之安装pcsdk及加载dll
1) ABB机器人支持多种二次开发,本文举例pcsdk 2) 可以从以下网站下载最新pcsdk
3) 下载完毕后,双击exe进行安装。 4) 安装完的默认目录为如下: C:\Program Files (x86)\ABBIndustrial IT\Robotics IT\SDK\PCSDK 6.0 5) 打开visualstudio,新建一个项目(此处举例C#) 6) 在解决方案资源管理器中,右击引用,添加引用
7) 浏览,找到pcsdk的安装位置,如上所述,添加ABB.RoboticsControllers.PC.dll 8) 添加后,即可方便的在c#里做针对机器人的二次开发
9) 程序内,添加下列引用 10)
|
时间:2020-05-24 17:39 来源: 转发量:次
声明:本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。