UnderAutomation
    • 홈페이지
  • 제품
    • Universal Robots SDK
    • Fanuc SDK
      • 개요
      • 다운로드
      • 문서
        • Overview
        • Get started with .NET
        • Get started with Python
        • Get started with LabVIEW
        • Licensing
        • Enable TELNET on your robot
        • Overview of TELNET interface
        • Read and decode files
        • SNPX
        • Reading & Writing Registers
        • TP editor with breakpoints
        • Move robot with mouse
    • Yaskawa SDK
    • Staubli SDK
    • 견적 • 주문
    • 라이선스
질문이요?

[email protected]

문의하기
UnderAutomation
  • 홈페이지
  • 제품
      • 개요
      • 다운로드
      • 문서
      • 개요
      • 다운로드
      • 문서
      • 개요
      • 다운로드
      • 문서
      • 개요
      • 다운로드
      • 문서
  • 견적 • 주문
  • 문의하기
⌘Q
This page is only available in English.
Fanuc SDK documentation
Get started with .NET
Documentation home
Get started with Python

Get started with Python

Fanuc Python SDK provides a simple and efficient way to control Fanuc robots using Python. No additional installations are required on the robot controller.

  • TL;DR
  • Features
    • 1. Telnet KCL Remote Control
    • 2. High-Speed Data via SNPX (RobotIF)
    • 3. FTP File and Variable Management
  • Robot Configuration
    • Enable Telnet KCL
    • Enable FTP
    • Enable SNPX
  • Installation
    • 1 Clone or Download
    • 2 Connect to Your Robot
  • Compatibility
  • Contributing

🚀 TL;DR

  • ✔️ No PCDK needed: Connect without Fanuc’s Robot Interface
  • 📖 Read/write system variables
  • 🔄 Register access for numbers, strings, and positions
  • 🎬 Program control (run, pause, abort, etc.)
  • 🔔 Alarm viewing and reset
  • ⚡ I/O control (UI, UO, GI, GO, etc.)
  • 🔍 State & diagnostics monitoring
  • 📂 FTP file & variable access

No additional robot options or installations are required.


📌 Features

🖥️ 1. Telnet KCL Remote Control

Remotely send commands to the robot controller via Telnet KCL.

robot.telnet.reset()
robot.telnet.run("MyProgram")
robot.telnet.pause("MyProgram")
robot.telnet.hold("MyProgram")
robot.telnet.continue_("MyProgram")
robot.telnet.abort("MyProgram", force=True)
robot.telnet.set_variable("my_variable", 42)
robot.telnet.set_variable("$RMT_MASTER", 1)
robot.telnet.set_port("DOUT", 2, 0)
robot.telnet.simulate("DIN", 3, 1)
robot.telnet.unsimulate("DIN", 3)

🚀 2. High-Speed Data via SNPX (RobotIF)

SNPX provides fast, structured data exchange with the robot.

# Read/write position registers
position = robot.snpx.position_registers.read(1)
robot.snpx.position_registers.write(2, {"x": 100, "y": 50, "z": 25})
# Read/write numeric registers
value = robot.snpx.registers.read(1)
robot.snpx.registers.write(2, 123.45)
# Digital signals
ui_1 = robot.snpx.ui.read(1)
robot.snpx.uo.write(3, True)
# Alarms & status
robot.snpx.clear_alarms()
position = robot.snpx.current_position.read_world_position()
user_frame = robot.snpx.current_position.read_user_frame_position(1)

📂 3. FTP File and Variable Management

Transfer files and manage internal robot data via FTP.

# File transfer
robot.ftp.direct_file_handling.upload_file_to_controller("C:/Programs/MyPrg.tp", "md:/MyPrg.tp")
robot.ftp.direct_file_handling.download_file_from_controller("md:/Backup.va", "C:/Backup/Backup.va")
robot.ftp.direct_file_handling.delete_file("md:/OldProgram.tp")
# Variables
variables = robot.ftp.get_all_variables()
for var in variables:
print(f"{var.name} = {var.value}")
# System variables
remote_mode = robot.ftp.known_variable_files.get_system_file().rmt_master
# Safety status
safety = robot.ftp.get_safety_status()
print(f"E-Stop: {safety.external_estop}, TP Enabled: {safety.tp_enable}")
# Position
position = robot.ftp.get_current_position()
print(f"X={position.cartesian.x}, Y={position.cartesian.y}, Z={position.cartesian.z}")

🔧 Robot Configuration

✅ Enable Telnet KCL

  • Go to SETUP > Host Comm
  • Select TELNET → [DETAIL]
  • Set a password and reboot

✅ Enable FTP

  • Go to SETUP > Host Comm > FTP
  • Set username/password
  • Perform a cold start

✅ Enable SNPX

  • For FANUC America (R650 FRA): Enable option R553 “HMI Device SNPX”
  • For FANUC Ltd. (R651 FRL): No additional options required

🛠 Installation

1️⃣ Clone or Download

This SDK is not on PyPI (yet). Clone this repository and install dependencies :

git clone https://github.com/underautomation/Fanuc.py.git
cd Fanuc.py
pip install -e .

2️⃣ Connect to Your Robot

from underautomation.fanuc.fanuc_robot import FanucRobot
from underautomation.fanuc.connection_parameters import ConnectionParameters
robot = FanucRobot()
robot.connect(ConnectionParameters("192.168.0.1"))

🔍 Compatibility

✅ Robot Controllers: R-J3iB, R-30iA, R-30iB
✅ OS: Windows, Linux, macOS
✅ Python: 3.5+


📢 Contributing

We welcome your feedback and contributions!

  • Report issues via GitHub Issues
  • Submit pull requests with enhancements
  • Suggest features and improvements
Get started with .NET
Documentation home
Get started with Python

Universal Robots, Fanuc, Yaskawa 또는 Staubli 로봇을 .NET, Python, LabVIEW 또는 Matlab 애플리케이션에 쉽게 통합

UnderAutomation
문의하기Legal
제품
Universal Robots SDKFanuc SDKYaskawa SDKStaubli SDK
enEnglish
frFrançais
deDeutsch
esEspañol
zh中文
ja日本語
ko한국어

© All rights reserved.