您好!欢迎光临工博士商城

ABB工业机械臂服务商

产品:51    
联系我们
您当前的位置:首页 » 新闻中心 » 【ABB】C#通过webservice获取ABB机器人信息及如何获取webservice端口
产品分类
新闻中心
【ABB】C#通过webservice获取ABB机器人信息及如何获取webservice端口
发布时间:2020-05-22        浏览次数:1279        返回列表
转载,侵删


0DDE0704-2A42-47a1-BD61-79658FF8A5E9

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
26E67A20-6AF1-47f8-B45F-4F377F4ED0A1

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端口

 

  1. ABB机器人支持WebService,如果不懂的话可以拉到底下部分先看:二次开发之安装pcsdk及加载dll

F80F738F-1F4D-47d5-B447-0C506906B8D8

2.  默认WebService端口为80,但若PC上运行两个仿真或者其他设置,可能导致默认80端口被占,如何获取当前机器人系统的WebService端口呢?

3.  可以借助pcsdk。Pcsdk的安装与使用见。

4.  查看pcsdk手册,可以发现ControllerInfo的属性有WebServicePort端口参数,所以可以通过该参数获取。

E40E9A81-2BEB-43e6-850D-B39251DE062D

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
0DBB6272-CEA9-4b98-AAF8-04C17BE1D486

3)  下载完毕后,双击exe进行安装。

4)  安装完的默认目录为如下:

C:\Program Files (x86)\ABBIndustrial IT\Robotics IT\SDK\PCSDK 6.0

5)  打开visualstudio,新建一个项目(此处举例C#)

6)  在解决方案资源管理器中,右击引用,添加引用

D13FD605-7CBE-450e-A523-FB32D391B844

7)  浏览,找到pcsdk的安装位置,如上所述,添加ABB.RoboticsControllers.PC.dll

8)  添加后,即可方便的在c#里做针对机器人的二次开发


9)  程序内,添加下列引用


了解更多请点击:ABB机器人
 

 





 

联系热线:13032169980(微信同号)   联系人:申宁 联系地址:上海市宝山区富联一路98弄6号

技术和报价服务:星期一至星期六8:00-22:00 ABB工业机械臂服务商