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.