ABB SDK
.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 运行时
ABB SDK 功能:面向 IRC5 和 OmniCore 的 Robot Web Services
RAPID 变量与程序
读写 RAPID 变量和持久变量,启动和停止任务,移动程序指针,加载和保存模块。// Read a RAPID variablevar counter = robot.Rws.Rapid.GetSymbolValue("RAPID/T_ROB1/MainModule/nCounter");Console.WriteLine(counter.Value);// Write it backrobot.Rws.Mastership.Request();robot.Rws.Rapid.SetSymbolValue("RAPID/T_ROB1/MainModule/nCounter", "42");robot.Rws.Mastership.Release();// Start the programrobot.Rws.Rapid.ResetProgramPointer();robot.Rws.Rapid.Start();输入 / 输出
列出、读取和写入数字量、模拟量和组信号。发送脉冲、取反信号,浏览 I/O 设备和网络。// Read every signal of the controllerforeach (var signal in robot.Rws.Io.GetSignals()){Console.WriteLine($"{signal.Name} = {signal.LogicalValue} ({signal.Type})");}// Read and write one signalvar 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 msrobot.Rws.Io.PulseSignal("Local", "DRV_1", "DO_Gripper", 1, 3, 500, 500);位置与运动学
读取当前的 robtarget 和 jointtarget,计算正向和逆向运动学,并手动点动机器人。// Cartesian position of the toolvar robTarget = robot.Rws.MotionSystem.GetRobTarget("ROB_1");Console.WriteLine($"X={robTarget.X} Y={robTarget.Y} Z={robTarget.Z}");// Joint anglesvar jointTarget = robot.Rws.MotionSystem.GetJointTarget("ROB_1");Console.WriteLine($"Axis 1 = {jointTarget.RobotAxes.Axis1}");// Forward kinematics, without moving the robotvar 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 tovar identity = robot.Rws.Controller.GetIdentity();Console.WriteLine($"{identity.Name} ({identity.Type}, {identity.MacAddress})");// RobotWare version and installed optionsvar system = robot.Rws.System.GetInfo();Console.WriteLine($"RobotWare {system.Version}");Console.WriteLine(robot.Rws.Controller.HasOption("Multitasking"));// Full controller backuprobot.Rws.Controller.CreateBackup("/hd0a/MyBackup");Console.WriteLine(robot.Rws.Controller.GetBackupState());文件系统
浏览控制器的文件系统,下载和上传文件,创建、复制、重命名和删除文件与目录。// Browse a directory of the controllerDirectoryListing 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 backstring module = robot.Rws.File.GetFileAsText("/hd0a/MyProgram/MainModule.mod");robot.Rws.File.UploadFileFromText("/hd0a/MyProgram/MainModule.mod", module);事件日志与状态
读取事件日志,跟踪运行模式、控制器状态和机器人速度倍率。// State of the robotConsole.WriteLine(robot.Rws.Panel.GetOperationMode());Console.WriteLine(robot.Rws.Panel.GetControllerState());Console.WriteLine(robot.Rws.Panel.GetSpeedRatio());// Last events of every domainforeach (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}");}}IRC5 和 OmniCore,同一套 API
ABB 机器人提供两个版本的 Robot Web Services。本 SDK 同时支持两者,因此同一份代码既能运行在旧的 IRC5 上,也能运行在新的 OmniCore 上。只需改变一个连接参数。
HTTP or HTTPS is a separate setting on the controller, independent of this table.Controller RobotWare Robot Web Services Connection parameter IRC5 RobotWare 6 and earlier RWS 1.0 RwsVersion.Irc5_V1_0OmniCore RobotWare 7 and later RWS 2.0 RwsVersion.OmniCore_V2_0浏览文档
实用文章
针对开发者最常问的 ABB 机器人问题给出的简短回答。
常见问题
需要在 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,该功能正在开发中。
后续计划
Robot Web Services 现已可用。ABB 控制器的其他原生协议,首先是 Externally Guided Motion(EGM),正在开发中,将加入同一个 SDK。
AvailableRobot Web Services
RAPID, I/O, position, controller, file system, event log and mastership, on IRC5 and on OmniCore.
In developmentExternally Guided Motion (EGM)
Low latency motion over UDP: position stream, position guidance and path correction, for sensor and vision driven applications.
下载并测试
Windows应用程序示例允许您使用简单的接口测试SDK的所有功能。 该示例用.NET 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