现在好像没办法开两个专栏,我只能发在这个专栏里面了,感觉不伦不类,目前只能这样了。
在所谓的四大家族里面,我感觉ABB机器人是最开放的无论是软件层面还是应用接口,今天我就向大家介绍一下我感觉ABB机器人比较厉害的一个功能PCSDK。
可能我的个人感觉有误差,但是依然感觉PCSDK很强大的功能,我曾在以前项目中无数次推荐这个功能,可以让我们的产品开发周期缩短,功能丰富方便产品迭代。可是这功能依然没有收到重视,甚至都不愿使用。
乘着这个机会,我可大家一起学习一下ABB的PCSDK和大家共同进步。
首先是PCSDK的功能大致介绍也是我这一次文章的主旨。
PCSDK简介
PCSDK可以基于IRC5控制器客户用来开发客户的一些定制化的PC的应用。当然也可以和RotbotStudio SDK一起使用配合IRC5控制器开发一些应用,把你的功能直接集成RobotStudio上,依托于RobotStudio强大的功能来实现快速开发和更友好的人际交界面。
PCSDK可以连接一个或者多个IRC5控制器,当然包括仿真的控制器,这个对前期开发有很大的帮助,开发者无需在吵闹的设备旁边仍受这噪音进行开发。
PCSDK 依托于选项PC Interface。
下面的说辞可能需要一定的软件基础或者对软件编程有一点了解的人进行观看,我会尽量说的简单易懂。
PCSDK 依托于微软的系统,这个可能和工业产品有关。该功能依托于微软的.NET Abbsemblies. 我们的好多电脑短的应用都是基于Microsoft的.net开发的。
下面一个是系统需求:64位的Win7 或者Win10.
开发软件 :Microsoft的VisualStudio 2015以上开发,现在最新的是VisualStudio2019,我用了一下挺好用的,我后期可能采用2019 和大家一起学习开发。
ABB最新的PCSDK版本是6.08.X
我先大体说一下,他的主要功能,PCSDK能替代RobotSdudio的大部分功能。
- 比如读取Robot的数据变量
- 修改数据变量
- 读取机器人状态信息,包括位置速度Current Tool,Wobj
- 配置机器人参数
- 读取日志等等这些功能。
- 唯一的缺点,速度不是实时,会有一定的延迟,但是对于工业应足够了,大部分用户只会在程序开始的时候进行数据修改和配置,启动后就很少频繁修机器人数据了。
其实我们的RobotSdudio好多可能就是基于PCSDK实现的,所以我们完全可以不用安装直接找到PCSDK的安装位置:
我的电脑是在下面的位置:
或者直接在电脑里面搜索:ABB.Robotics.Controllers.PC.dll也会找到他。如果找不到我会在留言区放出官方的下载地址。
下面是环境的搭建
首先在VisualStudio中新建一个项目或者控制台
1.语言选择C#
2.平台选择:Windows
3.项目类型选用控制台:
4.然后是二选一:选择.NET FrameWork 不要选择第一PCSDK目前不支持.NET Core虽然是趋势,但是ABB机器人目前还不支持,以后会不会支持就不知道了。我其实希望支持.NET Core 这样就可以跨平台,你甚至可以用微软的Xbox来编写ABB机器人程序,想想用Xbox的定制遥感控制机器人是不是很Cool…
5.然后我们就会看到下面的一个页面:(中间省略了项目命名什么的,大家可以自己操作)
6.下面右击应用点击添加引用:
ABB.Robotics.Controllers.PC.dll
RobotStudio.Services.RobApi.Desktop.dll
RobotStudio.Services.RobApi.dll
选择浏览找到你的那个的路径,建议你放在你自己的项目的目录下面
下面你需要在RobotStudio新建一个带PCSDK的虚拟仿真站了,这个我就不用做截图教程了,如果这个都不知道,我上面的一通口水说辞也是白瞎了:P
最后一步:
下面是代码部分,有详细的注释
using ABB.Robotics.Controllers;using ABB.Robotics.Controllers.Discovery;
using System;namespace _000.PCSDKEnvironment
{class Program{static void Main(string[] args){//新建用于扫描网段内机器人的 Scanner变量NetworkScanner scanner = new NetworkScanner();//进行扫描操作 并获得机器人的列表ControllerInfo[] controllers = scanner.GetControllers(NetworkScannerSearchCriterias.Virtual);//判断扫描的List的长度,从而确认扫描到的机器人数量if (controllers.Length > 0){Console.WriteLine($"已经扫描到机器人数量:{ controllers.Length}");foreach (var control in controllers){//显示扫描到的机器人系统名称Console.WriteLine($"机器人系统名称:{control.SystemName}");Console.WriteLine($"机器人系统版本:{control.Version}");Console.WriteLine($"机器人IP地址 :{control.IPAddress}");Console.WriteLine($"是否是仿真机器人 :{control.IsVirtual}");}}Console.ReadLine();}}
}
下面是代码测试的结果:
下面是代码和SDK安装包的分享地址:
链接: https://pan.baidu.com/s/1q_wOX9QiVk43VGpmYw43GQ
提取码: kg7p
希望能帮到大家。我去外面谁家做饭真香,我饿了。。。。。
花心灰太狼
-2019.4.14