Fanuc SDKFanuc 로봇을 자체 소프트웨어에서 제어
Fanuc 산업용 로봇과 통신하는 .NET, Python, LabVIEW 애플리케이션을 빠르게 만들 수 있습니다. 바로 쓸 수 있는 소프트웨어 라이브러리입니다. PC가 네트워크 케이블로 로봇과 통신합니다.
1100 € / $1300부터, 1회 결제
Matlab
1// dotnet add package UnderAutomation.Fanuc2using UnderAutomation.Fanuc;34var robot = new FanucRobot();5robot.Connect("192.168.0.1");67var position = robot.Cgtp.ReadCartesianPosition();8robot.Cgtp.WriteVariable("$RMT_MASTER", 1);9robot.Cgtp.RunProgram("MyProgram");
제공되는 것
Plug & Play
단 몇 분만에 로봇을 연결하세요. 설치할 라이센스 관리자도 없고 USB 키도 없습니다. 라이브러리만 참조하세요.
로봇에 설치할 플러그인이 없습니다
로봇 컨트롤러가 표준으로 제공 한 네트워크 프로토콜 사용.
30일 평가판
30일간 무료, 약정 없음, 등록 필요 없음
한 번 지불하고 영원히 사용하십시오
로봇, 개발자 또는 재배포 된 소프트웨어에 관계없이 영구 라이센스, 구독 필요 없음
고객 성공 사례
고객이 UnderAutomation 솔루션을 산업 프로젝트에 어떻게 통합하는지 알아보세요.


GE: Aerospace & Healthcare Automation
GE Accelerates Industrial Automation with UnderAutomation SDKs for Universal Robots and FANUC.


Lockheed Martin: Flexible Aerospace Automation
Refining precision manufacturing and handling with collaborative robots.


Nissan: Driving Efficiency at Scale
How Nissan Smyrna Leverages Fanuc Connectivity for intelligent vehicle assembly.


realvirtual.io: Fanuc Integration for Virtual Commissioning
How realvirtual.io embedded the UnderAutomation Fanuc SDK to deliver first-class robot integration inside their Unity-based digital twin platform.
Fanuc SDK 기능: CGTP, Telnet, SNPX, FTP & 키네마틱스
각 기능에는 코드 예제가 있습니다. 클릭하면 전체 코드를 볼 수 있습니다.
원격 명령
PC에서 프로그램을 실행, 일시 정지, 중단하고 알람을 리셋하며 변수와 I/O를 쓸 수 있습니다. 최신 컨트롤러에서는 CGTP (웹 서버, HTTP / HTTPS)를, 이전 컨트롤러에서는 Telnet KCL을 사용합니다. 컨트롤러에 추가 옵션이 필요하지 않습니다.
robot.Connect(parameters);// Read a variableCgtpVariableValue var = robot.Cgtp.ReadVariable("$RMT_MASTER");int rmtMaster = var.IntegerValue;// Write a variablerobot.Cgtp.WriteVariable("$RMT_MASTER", 1);// Read a numeric register with commentNumericRegisterWithComment reg = robot.Cgtp.ReadNumericRegisterWithComment(1);// Read I/Oint di1 = robot.Cgtp.ReadIo(CgtpIoPortType.DI, 1);// Write I/Orobot.Cgtp.WriteIo(CgtpIoPortType.DO, 1, 1);// Read current Cartesian positionCartesianPosition pos = robot.Cgtp.ReadCartesianPosition();// Run a programrobot.Cgtp.RunProgram("MY_PROGRAM");}}
고속 데이터 읽기 및 쓰기
SNPX (SRTP/Robotif라고도 함)는 로봇과 신속하고 구조화 된 데이터 통신을 허용합니다. 레지스터를 읽고 쓰고, 알람을 모니터링하고 로봇의 상태를 확인하는 데 사용됩니다.
// Connect to the robotrobot.Connect(parameters);// Read a registerPosition posReg1 = robot.Snpx.PositionRegisters.Read(1);float numReg5 = robot.Snpx.NumericRegisters.Read(5);string strReg10 = robot.Snpx.StringRegisters.Read(10);// Write a registerposReg1.CartesianPosition.X = 100;robot.Snpx.PositionRegisters.Write(1, posReg1);robot.Snpx.NumericRegisters.Write(2, 123.45f);robot.Snpx.StringRegisters.Write(3, "Hello, world!");// Read a variableint rmtMaster = robot.Snpx.IntegerSystemVariables.Read("$RMT_MASTER");string lastAlm = robot.Snpx.StringSystemVariables.Read("$ALM_IF.$LAST_ALM");Position cellFloor = robot.Snpx.PositionSystemVariables.Read("$CELL_FLOOR");// Write a system variablerobot.Snpx.IntegerSystemVariables.Write("$RMT_MASTER", 1);robot.Snpx.StringSystemVariables.Write("$ALM_IF.$LAST_ALM", "No alarms");robot.Snpx.PositionSystemVariables.Write("$CELL_FLOOR", cellFloor);// Write a Karel program variablerobot.Snpx.IntegerSystemVariables.Write("$[KarelProgram]KarelVariable", 1);// Read and Write I/O (SDI,SDO,RDI,RDO,UI,UO,SI,SO,WI,WO,WSI,PMC_K,PMC_R)robot.Snpx.RDO.Write(1, true);ushort ai5 = robot.Snpx.AI.Read(5);// Read and Write analogs (AI,AO,GI,GO,PMC_D)robot.Snpx.AO.Write(2, 5);ushort ao3 = robot.Snpx.AO.Read(3);// Clear alarmsrobot.Snpx.ClearAlarms();}
파일 및 디코딩
파일 전송, 읽기 변수 및 로봇 상태 관리에 대한 로봇 메모리에 FTP를 직접 액세스하십시오.
// Connect to the robotrobot.Connect(parameters);IOState ioState = robot.Ftp.GetIOState();// Read a variablevar variableFiles = robot.Ftp.GetAllVariables();foreach (var variableFile in variableFiles)foreach (var variable in variableFile.Variables)Console.WriteLine($"{variable.Name} = {variable.Value}");// Read system variable $RMT_MASTERint remoteMode = robot.Ftp.KnownVariableFiles.GetSystemFile().RmtMaster;// Read safety statusSafetyStatus safetyStatus = robot.Ftp.GetSafetyStatus();Console.WriteLine($"Emergency Stop: {safetyStatus.ExternalEStop}");Console.WriteLine($"Teach Pendant Enabled: {safetyStatus.TPEnable}");// Get current position for each arm (Joints, World position of each tool, user frame positions)CurrentPosition currentPosition = robot.Ftp.GetCurrentPosition();// Upload a TP program to the controllerrobot.Ftp.DirectFileHandling.UploadFileToController(@"C:\Programs\MyPrg.tp", "md:/MyPrg.tp");// Download a file from the robotrobot.Ftp.DirectFileHandling.DownloadFileFromController("md:/Backup.va", @"C:\Backup\Backup.va");// Delete a file on the robotrobot.Ftp.DirectFileHandling.DeleteFile("md:/OldProgram.tp");}
역기구학
DH 매개변수를 통해 Fanuc 로봇 또는 협동로봇의 직접 및 역운동학을 대수적으로 계산합니다.
FanucRobot robot = new FanucRobot();robot.Connect("192.168.0.1");// Get DH parameters// Example: CRX-10iA/LDhParameters dh = new DhParameters(-540, 150, -160, 0, 710, 0);// From a known arm modeldh = DhParameters.FromArmKinematicModel(ArmKinematicModels.CRX10iA);// From OPW parameters: M10iA/7Ldh = DhParameters.FromOpwParameters(0.15, -0.20, 0.60, 0.86, 0.10);// From an online robot (SYSMOTN file)dh = DhParameters.FromSymotnFile(robot.Ftp.KnownVariableFiles.GetSymotnFile())[0];// Forward kinematicsCartesianPosition pose = KinematicsUtils.ForwardKinematics(position, dh);// Inverse kinematics with multiple solutionsJointsPosition[] positions = KinematicsUtils.InverseKinematics(pose, dh);}}
Motion Interfaces
Fanuc RMI(R912) 및 Stream Motion(J519) 프로토콜을 구현하면 간단히 로봇에 이동 명령을 보낼 수 있을 뿐만 아니라 로봇의 입력, 출력 및 레지스터를 읽고 쓸 수 있습니다.
parameters.Rmi.Enable = true;robot.Connect(parameters);// Initialize the RMI_MOVE program on the controller.// TP must be disabled and the controller must be in AUTO mode.robot.Rmi.Initialize();// Linear motion at 100 mm/s to a Cartesian target (tool 1, frame 0)var instr = new LinearMotionTpInstruction{SpeedType = RmiLinearSpeedType.MmSec,Speed = 100,TermType = RmiTerminationType.Fine,Target = new CartesianPositionWithUserFrame(500, 200, 300, 0, 90, 0, tool: 1, frame: 0)};RmiInstructionResponse r = robot.Rmi.SendTpInstruction(instr);// Wait for the controller to confirm the motion completedr.WaitForCompletion();if (r.Status == RmiInstructionStatus.Error)System.Console.WriteLine("Error: " + r.ErrorText);// Abort when done - always end the session with Abort() or Disconnect()robot.Rmi.Abort();robot.Disconnect();}}
오프라인 도구
로봇이없는 기능을 사용하면 표준 파일 형식 (변수 파일, 오류 목록, 로봇 상태 등)을 처리 할 수 있습니다.
static void Main(){// Parse a variable file and extract a hierarchical list of variablesGenericVariableFile vaFile = FanucFileReaders.VariableReader.ReadFile("C:/path/to/variable.va", Languages.English);foreach (var variable in vaFile.Variables)Console.WriteLine($"{variable.Name} = {variable.Value} [{variable.Type}]");// Edit and regenerate the variable filevaFile.GenerateVa("C:/path/to/variable_modified.va\"");// Parse several types of filesFanucFileReaders.ErrorListReader.ReadFile("C:/path/to/errall.ls", Languages.English);FanucFileReaders.IOStateReader.ReadFile("C:/path/to/iostate.dg", Languages.English);FanucFileReaders.SafetyStatusReader.ReadFile("C:/path/to/safety.dg", Languages.English);FanucFileReaders.CurrentPositionReader.ReadFile("C:/path/to/curpos.dg", Languages.English);}
실제 동작 보기
SDK와 함께 제공되는 데모 애플리케이션의 동영상과 스크린샷입니다.
Windows 응용 프로그램 예제
코드를 작성할 필요가 없습니다. 데모 애플리케이션으로 로봇에서 SDK를 테스트하세요.

Github의 예
이 SDK의 사용 예는 Github에서 사용할 수 있습니다.
파이썬 예제
로봇의 데카르트 위치를 복구하기 위해 파이썬 으로이 SDK의 작동 예.
labview 예제
이 SDK의 대부분의 기능을 테스트 할 수있는 VI의 예.
브라우저에서 사용해 보기
Fanuc SDK로 만든 두 개의 웹 애플리케이션입니다. 테스트하는 데 설치할 것은 없습니다.

기구학 시뮬레이터
Fanuc CRX의 관절이나 툴을 3D로 움직여 보세요. 정기구학과 역기구학이 SDK와 같은 엔진으로 브라우저에서 실행됩니다.

RMI 시퀀스 빌더
블록으로 로봇 시퀀스를 만들고 시뮬레이션 로봇이나 실제 로봇에서 실행한 뒤 시퀀스의 C# 또는 Python 코드를 가져옵니다.
명령 하나로 설치
언어를 선택하세요. 30일 체험은 처음 사용할 때 시작되며, 등록이 필요 없습니다.
.NET
C# 및 VB.NET용 NuGet 패키지. .NET Framework부터 최신 .NET까지 지원합니다.
dotnet add package UnderAutomation.FanucPython
PyPI의 Python 패키지. Windows, Linux, macOS를 지원합니다.
pip install UnderAutomation.FanucLabVIEW
LabVIEW 라이브러리(.lvlib)와 예제 프로젝트. GitHub에서 제공합니다.
git clone https://github.com/underautomation/Fanuc.vi.gitAI 에이전트
AI 코딩 에이전트(Claude Code, Cursor, Copilot 등)용 Skill: 어시스턴트가 SDK의 API를 알게 됩니다.
npx skills add underautomation/skills --skill underautomation-fanuc-csharp문서를 찾아보십시오
문서를 사용하면 라이브러리로 신속하게 개발을 시작할 수 있습니다. 모든 지원되는 언어에서 동일한 기능을 사용할 수 있습니다.
문서를 찾아보십시오
문서를 사용하면 라이브러리로 신속하게 개발을 시작할 수 있습니다. 모든 지원되는 언어에서 동일한 기능을 사용할 수 있습니다.
.NET 시작하기
NuGet.org에서 제공되는 100% 관리형, 종속성 없는 라이브러리를 사용하여 원하는 버전 및 아키텍처(x86, x64, ARM, Linux, Windows, MacOS, .NET Framework, .NET Core, UWP 등)로 C# 또는 VB로 애플리케이션을 코딩할 수 있습니다.
Python 시작하기
이 라이브러리를 사용하여 로봇과 통신하는 Python 프로그램을 빠르게 개발하세요. PyPI에서 사용할 수 있습니다.
LabVIEW 시작하기
로봇과 통신할 수 있도록 LabVIEW VI를 장착하세요.

Matlab 시작하기
Matlab *.m 스크립트가 코봇과 통신할 수 있도록 합니다.
가이드 및 실용 문서
SDK는 여러 네이티브 이더넷 프로토콜을 통해 Fanuc 로봇의 주요 기능을 다룹니다. 컨트롤러에 설치된 옵션과 세대에 따라 사용 가능한 프로토콜이 달라집니다. 아래 각 기사에서는 특정 작업을 수행하는 방법을 설명하고 다양한 접근 방식을 비교합니다.
CGTP overview
CGTP is an HTTP-based protocol providing the richest feature set: program management, variables, registers, I/O, kinematics, batch operations, and file access.
SNPX overview
SNPX (also known as RobotIF or SRTP) is a high-speed protocol for reading and writing registers, variables, I/O signals, alarms, and positions in less than 2 ms.
Telnet overview
Telnet KCL (Keyboard Command Line) sends commands to a Fanuc robot: run programs, reset alarms, read and write variables, control I/O ports.
FTP overview
FTP provides access to internal controller files including variables, programs, diagnostics, safety status, and current position.
RMI overview
RMI (Remote Motion Interface) is a TCP-based protocol for sending motion commands, managing frames, and controlling the robot remotely.
Stream Motion overview
Stream Motion (J519 option) gives the position of the robot at every communication cycle (2 to 8 ms). Requirements, TP program, protocol versions and quick start.
Motion planner overview
Create smooth robot trajectories offline, with velocity, acceleration and jerk limits, using FANUC motion instructions (J, L, C, FINE, CNT, CR).
Forward & Inverse Kinematics
Perform forward and inverse kinematics calculations offline for FANUC industrial robots and CRX cobots using DH parameters.
Offline file parsing
Parse and decode Fanuc variable files (.va), error lists (.ls), I/O state, safety status, and current position files without a robot connection.
Read & write registers
Compare all methods to read and write numeric, position, and string registers on a Fanuc robot: SNPX, FTP, CGTP, and Telnet.
Get current position
Retrieve the current robot position (joint and Cartesian) using SNPX, FTP, CGTP, or Telnet. Compare approaches and choose the best for your use case.
Control inputs & outputs
Set, read, simulate, and unsimulate I/O ports on a Fanuc robot using SNPX, CGTP, or Telnet. Compare port types and methods.
Run a program remotely
Start, pause, abort, and monitor Fanuc programs remotely using Telnet, CGTP, SNPX system variables, or RMI.
Reset alarms remotely
Clear and reset alarms on a Fanuc robot using SNPX, Telnet, or CGTP. Read active alarms and alarm history.
Read & write system variables
Access and modify Fanuc system variables ($RMT_MASTER, $MCR.$GENOVERRIDE, etc.) using Telnet, SNPX, CGTP, or FTP.
Monitor task execution
Supervise running programs, check task states, line numbers, and calling programs using SNPX, FTP, or Telnet.
Move robot remotely
Move a Fanuc robot from an external application using RMI motion commands, Stream Motion real-time streaming, or DPM with SNPX.
Upload, download & backup files
Transfer TP programs, variable files, and backups between your PC and a Fanuc controller using FTP or CGTP.
Read & write I/O comments
Read and write comments (descriptions) for registers and I/O ports using SNPX or CGTP.
Access Karel program variables
Read and write Karel program variables using SNPX ($[Program]Variable syntax), CGTP, or FTP variable files.
Optimize with batch operations
Maximize read/write performance using SNPX batch assignments and CGTP batch variables for high-frequency data exchange.
Move robot with mouse
Control a FANUC robot in real time using Dynamic Path Modification (DPM) and SNPX. Ideal for joystick or 6D mouse teleoperation setups.
TP editor with breakpoints
Prototype your own TP Editor with syntax highlighting and breakpoint debugging using Telnet and FTP features.
물가
라이브러리는 무료로 다운로드 할 수 있으며 30 일 동안 테스트 할 수 있습니다. 이 기간이 지나면 시험 기간을 연장하거나 가장 적합한 라이센스를 구입하도록 요청할 수 있습니다 : 사이트 (가로 된 바이너리 전용) 또는 소스 (소스 코드). 구매 후 1 년의 유지 보수 기간이있어 지원 및 업데이트 가능성에 우선적으로 액세스 할 수 있습니다. 사용할 라이센스를 구매하면 로봇 브랜드와 연결되어 있으며 고객에게 재분배하는 로봇, 개발자 또는 소프트웨어의 수에 관계없이 반복 비용없이 영원히 사용할 수 있습니다. 유통 업체이고 고객에게 당사 제품 중 하나를 제공하려면 특별 조건과 가격에 대해 문의하십시오.
표준 사이트 라이센스
•
프로 라이선스
•
소스 코드 라이선스
•
자주 묻는 질문
GitHub의 라이브러리
각 패키지는 변경 내역과 함께 GitHub에 게시됩니다.