一、环境说明
开发环境:vs2022、.NET Framework 4.6.1、ABB离线接口库
开发语言:C#
二、框架搭建
1.新建C#项目
2.解决方案—>引用—>添加ABB.Robotics.Controllers.PC.dll官方接口库
3.将与debug或release相关的动态库dll文件分别放置于对应目录下
4.在引用接口库的程序中引入文件
using ABB.Robotics.Controllers.Discovery;
using ABB.Robotics.Controllers;
using ABB.Robotics.Controllers.RapidDomain;
三、测试例程
1.ABB机器人离线控制初始化
private NetworkScanner scanner = null;
private Controller controller = null;
private ABB.Robotics.Controllers.RapidDomain.Task[] tasks = null;
private NetworkWatcher networkWatcher = null;
private ControllerInfo info;
// 扫描机器人控制器,并返回信息
public void Api_Scan(string SystemName)
{
if (scanner == null)
{
scanner = new NetworkScanner();
}
// 对网络进行扫描
scanner.Scan();
// 获取机器人控制器信息并返回至controls
ControllerInfoCollection controls = scanner.Controllers;
// 遍历controls中每一个机器人的控制器信息
foreach (ControllerInfo info in controls)
{
// 提取info中的其他信息
//item.SubItems.Add(info.IPAddress.ToString());
//item.SubItems.Add(info.Version.ToString());
//item.SubItems.Add(info.IsVirtual.ToString());
//item.SubItems.Add(info.ControllerName.ToString());
//Console.WriteLine(info.SystemName + info.ControllerName);
}
//if (info.Availability == Availability.Available)
//{
// 已有判断
if (controller != null)
{
// 若已连接控制器,登出并释放
controller.Logoff();
controller.Dispose();
controller = null;
}
// 获取控制器
Console.WriteLine(controls[0].SystemName);
if (SystemName == controls[0].SystemName)
{
ControllerInfo rob_info = (ControllerInfo)controls[0];
controller = ControllerFactory.CreateFrom(rob_info);
// 默认用户名登录控制器
controller.Logon(UserInfo.DefaultUser);
Console.WriteLine("机器人控制器连接成功");
}
else
{
Console.WriteLine("机器人控制器连接失败");
}
}