Fanuc SDK
Fanuc 산업용 로봇과 통신하는 .NET, Python, LabVIEW 애플리케이션을 빠르게 만들 수 있습니다.
.NET
Python
LabVIEW
Plug & Play
단 몇 분만에 로봇을 연결하세요. 설치할 라이센스 관리자도 없고 USB 키도 없습니다. 라이브러리만 참조하세요.
로봇에 설치할 플러그인이 없습니다
로봇 컨트롤러가 표준으로 제공 한 네트워크 프로토콜 사용.
Karel ROS
30일 평가판
30일간 무료, 약정 없음, 등록 필요 없음
한 번 지불하고 영원히 사용하십시오
로봇, 개발자 또는 재배포 된 소프트웨어에 관계없이 영구 라이센스, 구독 필요 없음
고객 성공 사례
고객이 UnderAutomation 솔루션을 산업 프로젝트에 어떻게 통합하는지 알아보세요.
Fanuc SDK 기능: Telnet, SNPX, FTP & 키네마틱스
원격 명령
Telnet Kcl (키보드 명령 줄)을 사용하면 명령을 보내서 로봇을 원격으로 제어 할 수 있습니다. 컨트롤러에서 추가 옵션이 필요하지 않습니다.// Connect to the robotrobot.Connect(parameters);// Reset alarmsrobot.Telnet.Reset();// Run a programrobot.Telnet.Run("MyProgram");robot.Telnet.Pause("MyProgram");robot.Telnet.Hold("MyProgram");robot.Telnet.Continue("MyProgram");robot.Telnet.Abort("MyProgram", force: true);// Set a variablerobot.Telnet.SetVariable("$RMT_MASTER", 1);// Set an output port (example: DOUT port 2 = 0)robot.Telnet.SetPort(KCLPorts.DOUT, 2, 0);// Simulate an input port (example: DIN port 3 = 1)robot.Telnet.Simulate(KCLPorts.DIN, 3, 1);robot.Telnet.Unsimulate(KCLPorts.DIN, 3);}Click to see the full code고속 데이터 읽기 및 쓰기
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();}Click to see the full code파일 및 디코딩
파일 전송, 읽기 변수 및 로봇 상태 관리에 대한 로봇 메모리에 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");}Click to see the full code역기구학
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);}}Click to see the full codeMotion 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();}}Click to see the full code오프라인 도구
로봇이없는 기능을 사용하면 표준 파일 형식 (변수 파일, 오류 목록, 로봇 상태 등)을 처리 할 수 있습니다.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);}Click to see the full code문서를 찾아보십시오
가이드 및 실용 기사
SDK는 여러 네이티브 이더넷 프로토콜을 통해 Fanuc 로봇의 주요 기능을 다룹니다. 컨트롤러에 설치된 옵션과 세대에 따라 사용 가능한 프로토콜이 달라집니다. 아래 각 기사에서는 특정 작업을 수행하는 방법을 설명하고 다양한 접근 방식을 비교합니다.
자주 묻는 질문
Fanuc 로봇에 무언가를 설치해야 합니까?
아니요. SDK는 컨트롤러의 이더넷 프로토콜을 사용하며 PC Developer's Kit(PCDK)가 필요하지 않습니다. Telnet, FTP, CGTP는 옵션이 필요 없습니다. SNPX는 FANUC America 컨트롤러에서 R553 옵션이, RMI는 R912 옵션이, Stream Motion은 J519 옵션이 필요합니다.
어떤 Fanuc 컨트롤러를 지원합니까?
R-J3iB, R-30iA, R-30iB, R-30iB Plus, R-50iA 컨트롤러와, 로봇 없이 테스트할 수 있는 ROBOGUIDE를 지원합니다. 사용할 수 있는 프로토콜은 컨트롤러의 세대와 옵션에 따라 다릅니다.
Fanuc SDK의 가격은 얼마입니까?
라이선스는 영구적이며 구독이 없습니다. Standard: 1100 EUR / 1300 USD. Pro: 1700 EUR / 2000 USD. Source: 3400 EUR / 4000 USD. 하나의 라이선스는 한 주소의 한 조직에 적용되며, 개발자, 로봇, 납품하는 애플리케이션의 수에는 제한이 없습니다. 업데이트는 Standard에서 1년, Pro와 Source에서 3년 동안 포함됩니다. 대학은 40% 할인을 받습니다.
구매 전에 SDK를 테스트할 수 있습니까?
예. 처음 사용한 날부터 30일 동안 등록 없이 모든 기능을 사용할 수 있습니다. 평가 기간은 요청 시 연장할 수 있습니다. Windows 데모 애플리케이션으로 코드를 작성하지 않고 로봇에서 SDK를 시험해 볼 수 있습니다.
SDK가 Linux와 macOS에서 동작합니까?
예. 라이브러리는 .NET Standard 2.0 및 2.1용으로 컴파일되어 Windows, Linux, macOS의 x64와 ARM에서 동작합니다. Linux 또는 macOS에서 Python을 사용하려면 .NET 런타임을 설치하고 Python을 시작하기 전에 export PYTHONNET_RUNTIME=coreclr을 실행하십시오.
Python에서 SDK를 사용할 수 있습니까?
예. pip install UnderAutomation.Fanuc 명령으로 패키지와 pythonnet이 설치되며, pythonnet이 .NET 라이브러리를 Python 프로세스에 로드합니다. Python 3.7부터 3.13까지 지원합니다. API는 .NET과 같으며 이름은 Python 방식입니다.
LabVIEW 버전이 있습니까?
예. LabVIEW 라이브러리(.lvlib)와 예제 프로젝트는 GitHub의 Fanuc.vi 저장소에 있습니다. 다른 언어와 같은 .NET 어셈블리를 사용합니다.
소스 코드를 받을 수 있습니까?
예, Source 라이선스로 받을 수 있습니다. 라이브러리의 전체 C# 코드와 Visual Studio 솔루션이 포함됩니다. 사용권 계약(EULA)의 범위 안에서 수정하여 애플리케이션에 사용할 수 있습니다. Standard와 Pro 라이선스는 난독화된 DLL만 제공합니다.
다운로드 및 테스트
Windows 응용 프로그램 예제간단한 인터페이스로 SDK의 모든 기능을 테스트 할 수 있습니다. 이 예제는 .NET 8을 사용하여 "자체 포함 된"및 "단일 파일"으로 편집되어 있습니다. 응용 프로그램은 설치없이 휴대용입니다.
UnderAutomation.Fanuc.Showcase.Forms.exe (139 MB)다운로드하면 일반적인 사용 조건을 수락합니다.
일반 이용약관 보기견적 및 주문을 요청하십시오
물가
라이브러리는 무료로 다운로드 할 수 있으며 30 일 동안 테스트 할 수 있습니다. 이 기간이 지나면 시험 기간을 연장하거나 가장 적합한 라이센스를 구입하도록 요청할 수 있습니다 : 사이트 (가로 된 바이너리 전용) 또는 소스 (소스 코드). 구매 후 1 년의 유지 보수 기간이있어 지원 및 업데이트 가능성에 우선적으로 액세스 할 수 있습니다. 사용할 라이센스를 구매하면 로봇 브랜드와 연결되어 있으며 고객에게 재분배하는 로봇, 개발자 또는 소프트웨어의 수에 관계없이 반복 비용없이 영원히 사용할 수 있습니다. 유통 업체이고 고객에게 당사 제품 중 하나를 제공하려면 특별 조건과 가격에 대해 문의하십시오.
표준 사이트 라이센스
$1300평생 동안$780대학용 (40% 할인)지금 구매산업 환경에 맞게 설계되어 평생 모든 기능에 대한 액세스를 제공합니다.1년 유지 관리 포함(업데이트 액세스)지원이 우선시되지 않고 유지 관리 기간이 1년이라는 점을 제외하면 Pro 라이선스와 조건이 동일합니다.내부 소스가 없습니다. 난독화된 DLL만 제공됩니다.화상회의 지원은 없습니다(이메일을 통해서만 가능).가장 인기있는프로 라이선스
$2000평생 동안$2960$1200대학용 (40% 할인)지금 구매우선적인 지원과 장기적인 유지 관리가 필요한 중요한 생산 환경에 적합합니다.3년 유지 관리 포함(업데이트 액세스), 해당 기간 동안 갱신 주문 없음(서류 작업 없음)완전하고 영구적 인 SDK : 반복 구독이 필요하지 않으며 라이센스는 영원히 귀하의 것이며 로봇 브랜드의 모든 프로그래밍 언어로 작동합니다.명시된 우편 주소에서 라이센스를 보유한 조직에서만 사용할 수 있습니다. 모든 팀 개발자는 개발 기계의 수에 관계없이 동일한 라이센스를 공유합니다.SDK를 사용하여 개발 된 모든 응용 프로그램은 연결 로봇 수에 관계없이 추가 비용없이 무제한 수의 고객에게 전달할 수 있습니다.라이센스는 기능을 잠금 해제하는 코드에서 호출하는 일종의 암호입니다. 설치할 추가 소프트웨어가 없습니다. USB 키가 없습니다.우선 지원(평균 24시간 미만)원격 지원(이메일 및 최대 2시간 화상 회의)내부 소스가 없습니다. 난독화된 DLL만 제공됩니다.언제든지 Source로 업그레이드(차액 지불)소스 코드 라이선스
$4000평생 동안$2400대학용 (40% 할인)지금 구매완전한 기술 주권, 심층적인 맞춤화, 완전한 독립성을 보장합니다.Pro 라이센스와 동일한 조건C#로 라이브러리의 완전한 내부 코드수년에 걸쳐 개발된 수천 줄의 코드가 포함된 Visual Studio 솔루션이 소스 코드를 수정하여 일반 이용 약관에 정의된 제한 내에서 애플리케이션에서 사용할 수 있습니다.전체 소스 코드 접근과 포함된 컨텍스트 파일(AGENTS.md) 덕분에 AI 코딩 에이전트(Claude, Copilot, Cursor, Codex 등)와 최적으로 연동되어 LLM이 SDK 내부 구조를 정확히 파악할 수 있습니다







