使用PCSDK连接ABB的机械臂

项目中需要用到上位机直接操控机械臂。虽然可以通过PLC操控机械臂,但是涉及到位置校准,还是必须自己去操控机械臂。

ABB只提供了.NET版本的SDK用于与机械臂的通信。

为了测试我们还需要安装RobotStudio,这个软件是进行机械臂开发的软件,并且可以创建虚拟机械臂,我们在测试中只需要调通虚拟机械臂就足够了。

那么这里涉及到两个部分,PCSDK和RobotStudio。

1、RobotStudio安装

下载地址:https://new.abb.com/products/robotics/robotstudio/downloads

此官方地址只能下载到最新版的,最新版的破解不了,只能试用30天。

下载以前的版本到这里:http://www.robotpartner.cn/

下载个6.08就可以了,破解方法网上很多,这里就不说了。

2、PCSDK安装

下载地址:http://developercenter.robotstudio.com/downloads_pc

下载个6.07或者6.08安装就可以了。以我自己为例,我下载的是6.07,因为版本越高,需要的.NET 版本越高,而需要的vs版本相应的越高,我之前只有vs2015版,最高配到.NET4.6.1,再高的SDK就要装更高版本的vs了。

3、创建WinForm项目

①新建一个WinForm项目,然后将需要的dll添加引用进去。

程序集 ABB.Robotics.Controllers.PC
    C:\Program Files (x86)\ABB Industrial IT\Robotics IT\SDK\PCSDK 6.07\ABB.Robotics.Controllers.PC.dll

程序集 RobotStudio.Services.RobApi
    C:\Program Files (x86)\ABB Industrial IT\Robotics IT\SDK\PCSDK 6.07\RobotStudio.Services.RobApi.dll

程序集 RobotStudio.Services.RobApi.Desktop
    C:\Program Files (x86)\ABB Industrial IT\Robotics IT\SDK\PCSDK 6.07\RobotStudio.Services.RobApi.Desktop.dll

调用手册:http://developercenter.robotstudio.com/pcsdk/api_reference

②初始化时扫描网络

            this.scanner = new NetworkScanner();
            this.scanner.Scan();
            ControllerInfoCollection controllers = scanner.Controllers; ListViewItem item = null;
            foreach (ControllerInfo controllerInfo in controllers)
            {
                item = new ListViewItem(controllerInfo.IPAddress.ToString());
                item.SubItems.Add(controllerInfo.Id);
                item.SubItems.Add(controllerInfo.Availability.ToString());
                item.SubItems.Add(controllerInfo.IsVirtual.ToString());
                item.SubItems.Add(controllerInfo.SystemName);
                item.SubItems.Add(controllerInfo.Version.ToString());
                item.SubItems.Add(controllerInfo.ControllerName);
                this.listView_robot.Items.Add(item);
                item.Tag = controllerInfo;
            }


            this.networkwatcher = new NetworkWatcher(scanner.Controllers);
            this.networkwatcher.Found += new EventHandler(HandleFoundEvent);
            this.networkwatcher.Lost += new EventHandler(HandleLostEvent);
            this.networkwatcher.EnableRaisingEvents = true;

③添加发现和丢失机械臂的回调

       private void HandleLostEvent(object sender, NetworkWatcherEventArgs e)
        {
            //throw new NotImplementedException();
            this.Invoke(new EventHandler(RemoveControllerFromListView), new Object[] { this, e });
        }

        private void HandleFoundEvent(object sender, NetworkWatcherEventArgs e)
        {
            this.Invoke(new EventHandler(AddControllerToListView), new Object[] { this, e });
        }

        // 在这里添加到列表
        private void AddControllerToListView(object sender, NetworkWatcherEventArgs e)
        {
            ControllerInfo controllerInfo = e.Controller;
            ListViewItem item = new ListViewItem(controllerInfo.IPAddress.ToString());
            item.SubItems.Add(controllerInfo.Id);
            item.SubItems.Add(controllerInfo.Availability.ToString());
            item.SubItems.Add(controllerInfo.IsVirtual.ToString());
            item.SubItems.Add(controllerInfo.SystemName);
            item.SubItems.Add(controllerInfo.Version.ToString());
            item.SubItems.Add(controllerInfo.ControllerName);
            this.listView_robot.Items.Add(item);
            item.Tag = controllerInfo;
        }

        private void RemoveControllerFromListView(object sender, NetworkWatcherEventArgs e)
        {
            ControllerInfo controllerInfo = e.Controller;

            foreach (ListViewItem item in listView_robot.Items)
            {
                // 下标1的位置时id
                if (item.SubItems[1].Name == controllerInfo.Id)
                    this.listView_robot.Items.Remove(item);
            }
        }

使用PCSDK连接ABB的机械臂_第1张图片

④在RobotStudio中添加虚拟机械臂

使用PCSDK连接ABB的机械臂_第2张图片

 

你可能感兴趣的:(使用PCSDK连接ABB的机械臂)