UnderAutomation
有问题吗?

[email protected]

联系我们
UnderAutomation
⌘Q

ABB SDK

GitHub stars

Confidential pricing - contact us

快速创建与 ABB 工业机器人通信的 .NET 应用程序,同时支持 IRC5 和 OmniCore。


Contact us

.NET

Plug & Play

只需几分钟即可连接您的机器人。无需安装许可证管理器, 无需 USB 密钥。仅参考图书馆。

没有在机器人上安装的插件

使用机器人控制器作为标准提供的网络协议。
PCSDK ROS

30 天试用

免费试用 30 天, 无承诺, 无需注册

付一次, 永远使用

永久许可, 无需订阅, 无论机器人, 开发人员的数量是多少

ABB Communication Library

机器人控制器上无需安装任何软件
一套 API 同时支持 IRC5 上的 RWS 1.0 和 OmniCore 上的 RWS 2.0
实现 ABB 机器人原生提供的网络协议
同步和异步方法,从 .NET Framework 3.5 到 .NET 9
无需 PC SDK、无需 RobotStudio、无需 ABB 运行时

  1. ABB SDK 功能:面向 IRC5 和 OmniCore 的 Robot Web Services

    RAPID 变量与程序

    读写 RAPID 变量和持久变量,启动和停止任务,移动程序指针,加载和保存模块。
    // Read a RAPID variable
    var counter = robot.Rws.Rapid.GetSymbolValue("RAPID/T_ROB1/MainModule/nCounter");
    Console.WriteLine(counter.Value);
    // Write it back
    robot.Rws.Mastership.Request();
    robot.Rws.Rapid.SetSymbolValue("RAPID/T_ROB1/MainModule/nCounter", "42");
    robot.Rws.Mastership.Release();
    // Start the program
    robot.Rws.Rapid.ResetProgramPointer();
    robot.Rws.Rapid.Start();

    输入 / 输出

    列出、读取和写入数字量、模拟量和组信号。发送脉冲、取反信号,浏览 I/O 设备和网络。
    // Read every signal of the controller
    foreach (var signal in robot.Rws.Io.GetSignals())
    {
    Console.WriteLine($"{signal.Name} = {signal.LogicalValue} ({signal.Type})");
    }
    // Read and write one signal
    var gripper = robot.Rws.Io.GetSignal("Local", "DRV_1", "DO_Gripper");
    robot.Rws.Io.SetSignalValue("Local", "DRV_1", "DO_Gripper", 1);
    // Send 3 pulses of 500 ms
    robot.Rws.Io.PulseSignal("Local", "DRV_1", "DO_Gripper", 1, 3, 500, 500);

    位置与运动学

    读取当前的 robtarget 和 jointtarget,计算正向和逆向运动学,并手动点动机器人。
    // Cartesian position of the tool
    var robTarget = robot.Rws.MotionSystem.GetRobTarget("ROB_1");
    Console.WriteLine($"X={robTarget.X} Y={robTarget.Y} Z={robTarget.Z}");
    // Joint angles
    var jointTarget = robot.Rws.MotionSystem.GetJointTarget("ROB_1");
    Console.WriteLine($"Axis 1 = {jointTarget.RobotAxes.Axis1}");
    // Forward kinematics, without moving the robot
    var toolFrame = new Pose(0, 0, 100, new Quaternion(1, 0, 0, 0));
    var pose = robot.Rws.MotionSystem.GetPoseFromJoints("ROB_1", toolFrame, jointTarget);

    控制器与备份

    读取控制器的标识和选项,设置时钟和网络,创建并恢复完整备份。
    // Who am I talking to
    var identity = robot.Rws.Controller.GetIdentity();
    Console.WriteLine($"{identity.Name} ({identity.Type}, {identity.MacAddress})");
    // RobotWare version and installed options
    var system = robot.Rws.System.GetInfo();
    Console.WriteLine($"RobotWare {system.Version}");
    Console.WriteLine(robot.Rws.Controller.HasOption("Multitasking"));
    // Full controller backup
    robot.Rws.Controller.CreateBackup("/hd0a/MyBackup");
    Console.WriteLine(robot.Rws.Controller.GetBackupState());

    文件系统

    浏览控制器的文件系统,下载和上传文件,创建、复制、重命名和删除文件与目录。
    // Browse a directory of the controller
    DirectoryListing listing = robot.Rws.File.ListDirectory("/hd0a/RobotWare");
    foreach (FileItem file in listing.Files)
    {
    Console.WriteLine($"{file.Name} : {file.Size} bytes");
    }
    // Download a RAPID module and upload it back
    string module = robot.Rws.File.GetFileAsText("/hd0a/MyProgram/MainModule.mod");
    robot.Rws.File.UploadFileFromText("/hd0a/MyProgram/MainModule.mod", module);

    事件日志与状态

    读取事件日志,跟踪运行模式、控制器状态和机器人速度倍率。
    // State of the robot
    Console.WriteLine(robot.Rws.Panel.GetOperationMode());
    Console.WriteLine(robot.Rws.Panel.GetControllerState());
    Console.WriteLine(robot.Rws.Panel.GetSpeedRatio());
    // Last events of every domain
    foreach (var domain in robot.Rws.Elog.GetDomains())
    {
    foreach (var message in robot.Rws.Elog.GetMessages(domain.Number, maxCount: 5))
    {
    Console.WriteLine($"[{message.Timestamp}] {message.Type} : {message.Title}");
    }
    }
  2. IRC5 和 OmniCore,同一套 API

    ABB 机器人提供两个版本的 Robot Web Services。本 SDK 同时支持两者,因此同一份代码既能运行在旧的 IRC5 上,也能运行在新的 OmniCore 上。只需改变一个连接参数。

    ControllerRobotWareRobot Web ServicesConnection parameter
    IRC5RobotWare 6 and earlierRWS 1.0RwsVersion.Irc5_V1_0
    OmniCoreRobotWare 7 and laterRWS 2.0RwsVersion.OmniCore_V2_0
    HTTP or HTTPS is a separate setting on the controller, independent of this table.
    IRC5 or OmniCore: which RWS version
  3. 浏览文档

    浏览文档

    该文档使您可以快速开始使用库开发。 所有受支持的语言都可以使用相同的功能。

  4. 实用文章

    针对开发者最常问的 ABB 机器人问题给出的简短回答。

    Robot Web Services overview

    Robot Web Services (RWS) is the REST interface of ABB robot controllers. One API covers RWS 1.0 on IRC5 and RWS 2.0 on OmniCore.

  5. 常见问题

    需要在 ABB 机器人上安装什么吗?

    不需要。Robot Web Services 是控制器自带的服务,标准系统上就有。只要机器人在网络上可访问,并且用户账户具有相应权限即可。

    该 SDK 同时支持 IRC5 和 OmniCore 吗?

    支持。运行 RobotWare 6 的 IRC5 控制器提供 RWS 1.0,运行 RobotWare 7 的 OmniCore 控制器提供 RWS 2.0。SDK 用一套 API 覆盖两者,您只需在连接参数中指定版本。

    需要 RobotStudio 或 ABB 的 PC SDK 吗?

    不需要。该库为 100% 托管代码,直接与控制器通信。只有当您想用虚拟控制器而不是真实机器人进行测试时,才需要 RobotStudio。

    可以读写 RAPID 变量吗?

    可以。您能读写变量、持久变量和常量,包括 robtarget 和 record 类型,也能搜索已加载程序中的符号。

    支持哪些 .NET 版本?

    从 .NET Framework 3.5 到 .NET 9,另有 .NET Standard 2.0 和 2.1 以及 .NET Core 3.0。除 .NET Framework 3.5 和 4.0 外,其余版本均提供异步方法。

    可以用这个 SDK 让机器人运动吗?

    您可以手动点动机器人、设置目标位置,并启动或停止包含运动的 RAPID 程序。连续的实时运动控制属于 Externally Guided Motion,该功能正在开发中。

  6. 后续计划

    Robot Web Services 现已可用。ABB 控制器的其他原生协议,首先是 Externally Guided Motion(EGM),正在开发中,将加入同一个 SDK。

    Available

    Robot Web Services

    RAPID, I/O, position, controller, file system, event log and mastership, on IRC5 and on OmniCore.

    In development

    Externally Guided Motion (EGM)

    Low latency motion over UDP: position stream, position guidance and path correction, for sensor and vision driven applications.

  7. 下载并测试

    Windows应用程序示例
    Windows应用程序示例

    允许您使用简单的接口测试SDK的所有功能。 该示例用.NET 8中的“自我包含”和“单个文件”编译。该应用程序在不安装的情况下可移植。

    UnderAutomation.Abb.Showcase.Forms.exe
    What this application does
    Github上的示例
    Github上的示例

    使用此SDK的示例的来源可在GitHub上获得

  8. 申请报价并订购

    The ABB SDK is not published yet. Contact us to get a preview build, a guided demo on your own robot, or a quote.

    Contact us about the ABB SDK

轻松将 Universal Robots、Fanuc、Yaskawa、ABB 或 Staubli 机器人集成到您的 .NET、Python、LabVIEW 或 Matlab 应用程序中

UnderAutomation
联系我们Legal

© All rights reserved.