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일간 무료, 약정 없음, 등록 필요 없음

한 번 지불하고 영원히 사용하십시오

로봇, 개발자 또는 재배포 된 소프트웨어에 관계없이 영구 라이센스, 구독 필요 없음

  1. ABB SDK 기능: IRC5와 OmniCore를 위한 Robot Web Services

    RAPID 변수와 프로그램

    RAPID 변수와 persistent를 읽고 쓰며, 태스크를 시작하고 정지하고, 프로그램 포인터를 이동하고, 모듈을 로드하고 저장합니다.
    // 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 변수를 읽고 쓸 수 있습니까?

    가능합니다. 변수, persistent, 상수를 읽고 쓸 수 있으며 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.