UnderAutomation
質問ですか?

[email protected]

お問い合わせ
UnderAutomation
⌘Q
Fanuc

Fanuc SDKFanuc ロボットを 自社のソフトウェアから制御

Fanuc 産業用ロボットと通信する .NET、Python、LabVIEW のアプリケーションをすばやく作成できます。 すぐに使えるソフトウェアライブラリです。PC がネットワークケーブル経由でロボットと通信します。

無料で試す価格を見る

1100 € / $1300 から、買い切り

ロボットへのインストール不要
30日間無料トライアル
買い切りライセンス、サブスクリプションなし
.NET / C#
Python
LabVIEW
Matlab
Fanuc robot
Fanuc SDK
1// dotnet add package UnderAutomation.Fanuc
2using UnderAutomation.Fanuc;
3
4var robot = new FanucRobot();
5robot.Connect("192.168.0.1");
6
7var position = robot.Cgtp.ReadCartesianPosition();
8robot.Cgtp.WriteVariable("$RMT_MASTER", 1);
9robot.Cgtp.RunProgram("MyProgram");
概要

得られるもの

Plug & Play

わずか数分でロボットを接続できます。ライセンス マネージャーをインストールしたり、USB キーをインストールしたりする必要はありません。ライブラリのみを参照してください。

ロボットにインストールするプラグインはありません

ロボットコントローラーによって標準として提供されるネットワークプロトコルの使用。

KarelPCDKROS

30日間のトライアル

30日間無料で試してみてください、コミットメントなし、登録は必要ありません

一度支払い、永遠に使用してください

ロボット、開発者、または再配布されたソフトウェアの数に関係なく、永続的なライセンス、サブスクリプションは必要ありません

お客様

お客様の成功事例

当社のお客様が UnderAutomation ソリューションを産業プロジェクトにどのように統合しているかをご覧ください。

GE
Aerospace / Healthcare

GE: Aerospace & Healthcare Automation

GE Accelerates Industrial Automation with UnderAutomation SDKs for Universal Robots and FANUC.

Lockheed Martin
Aerospace / Defense

Lockheed Martin: Flexible Aerospace Automation

Refining precision manufacturing and handling with collaborative robots.

Nissan
Automotive

Nissan: Driving Efficiency at Scale

How Nissan Smyrna Leverages Fanuc Connectivity for intelligent vehicle assembly.

realvirtual.io
Virtual Commissioning / Digital Twins

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 (Web サーバー、HTTP / HTTPS)、古いコントローラーでは Telnet KCL を使用します。コントローラーに追加のオプションは必要ありません。

robot.Connect(parameters);
// Read a variable
CgtpVariableValue var = robot.Cgtp.ReadVariable("$RMT_MASTER");
int rmtMaster = var.IntegerValue;
// Write a variable
robot.Cgtp.WriteVariable("$RMT_MASTER", 1);
// Read a numeric register with comment
NumericRegisterWithComment reg = robot.Cgtp.ReadNumericRegisterWithComment(1);
// Read I/O
int di1 = robot.Cgtp.ReadIo(CgtpIoPortType.DI, 1);
// Write I/O
robot.Cgtp.WriteIo(CgtpIoPortType.DO, 1, 1);
// Read current Cartesian position
CartesianPosition pos = robot.Cgtp.ReadCartesianPosition();
// Run a program
robot.Cgtp.RunProgram("MY_PROGRAM");
}
}
Click to see the full code

高速データの読み取りと書き込み

SNPX (SRTP/Robotifとも呼ばれます) により、ロボットとの迅速かつ構造化されたデータ通信が可能になります。 レジスタの読み取り/書き込み、アラームを監視し、ロボットの状態を確認するために使用されます。

// Connect to the robot
robot.Connect(parameters);
// Read a register
Position posReg1 = robot.Snpx.PositionRegisters.Read(1);
float numReg5 = robot.Snpx.NumericRegisters.Read(5);
string strReg10 = robot.Snpx.StringRegisters.Read(10);
// Write a register
posReg1.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 variable
int 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 variable
robot.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 variable
robot.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 alarms
robot.Snpx.ClearAlarms();
}
Click to see the full code

ファイルとデコード

ファイル転送、読み取り変数、ロボット状態の管理のためにロボットのメモリにFTPを直接アクセスします。すべてデコードされ、構造化されたオブジェクトで使用できます。

// Connect to the robot
robot.Connect(parameters);
IOState ioState = robot.Ftp.GetIOState();
// Read a variable
var 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_MASTER
int remoteMode = robot.Ftp.KnownVariableFiles.GetSystemFile().RmtMaster;
// Read safety status
SafetyStatus 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 controller
robot.Ftp.DirectFileHandling.UploadFileToController(@"C:\Programs\MyPrg.tp", "md:/MyPrg.tp");
// Download a file from the robot
robot.Ftp.DirectFileHandling.DownloadFileFromController("md:/Backup.va", @"C:\Backup\Backup.va");
// Delete a file on the robot
robot.Ftp.DirectFileHandling.DeleteFile("md:/OldProgram.tp");
}
Click to see the full code

逆運動学

ファナックのロボットまたは協働ロボットの DH パラメータからの直接運動学および逆運動学の代数計算。

FanucRobot robot = new FanucRobot();
robot.Connect("192.168.0.1");
// Get DH parameters
// Example: CRX-10iA/L
DhParameters dh = new DhParameters(-540, 150, -160, 0, 710, 0);
// From a known arm model
dh = DhParameters.FromArmKinematicModel(ArmKinematicModels.CRX10iA);
// From OPW parameters: M10iA/7L
dh = 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 kinematics
CartesianPosition pose = KinematicsUtils.ForwardKinematics(position, dh);
// Inverse kinematics with multiple solutions
JointsPosition[] positions = KinematicsUtils.InverseKinematics(pose, dh);
}
}
Click to see the full code

Motion Interfaces

ファナック 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 completed
r.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 variables
GenericVariableFile 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 file
vaFile.GenerateVa("C:/path/to/variable_modified.va\"");
// Parse several types of files
FanucFileReaders.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 に付属するデモアプリケーションの動画とスクリーンショットです。

Windowsアプリケーションの例

コードは不要です。デモアプリケーションで、お使いのロボットで SDK を試せます。

ダウンロード (139 MB)ダウンロードすることにより、一般的な使用条件を受け入れます。 利用規約を見る

Githubの例

このSDKの使用例のソースは、githubで入手できます

Pythonの例

ロボットのデカルト位置を回復するためのPythonを使用したこのSDKの操作の例。

LabViewの例

このSDKの機能のほとんどをテストできるVIの例。

ブラウザーで試す

Fanuc SDK で作った 2 つの Web アプリです。試すのにインストールは不要です。

fanuc-kinematics.underautomation.com
キネマティクス シミュレーター
LIVE
オンラインで試す

キネマティクス シミュレーター

Fanuc CRX の関節やツールを 3D で動かします。順運動学と逆運動学はブラウザー内で、SDK と同じエンジンで実行されます。

WebAssembly3DIK / FK
オンラインで試すソースコード
fanuc-rmi-demo.underautomation.com
RMI シーケンス ビルダー
LIVE
オンラインで試す

RMI シーケンス ビルダー

ブロックでロボットのシーケンスを作り、シミュレートされたロボットまたは実機で実行し、シーケンスの C# または Python コードを取得できます。

RMIC#Python
インストール

コマンド 1 つでインストール

言語を選んでください。30 日間のトライアルは最初の使用時に始まります。登録は不要です。

.NET

C# と VB.NET 用の NuGet パッケージ。.NET Framework から最新の .NET まで対応。

dotnet add package UnderAutomation.Fanuc
NuGetを参照してくださいGitHubを参照してくださいガイドを開く

Python

PyPI の Python パッケージ。Windows、Linux、macOS に対応。

pip install UnderAutomation.Fanuc

LabVIEW

LabVIEW ライブラリ (.lvlib) とサンプルプロジェクト。GitHub で公開。

git clone https://github.com/underautomation/Fanuc.vi.git

AI エージェント

AI コーディングエージェント(Claude Code、Cursor、Copilot など)用の Skill。アシスタントが SDK の API を理解します。

npx skills add underautomation/skills --skill underautomation-fanuc-csharp
ドキュメント

ドキュメントを閲覧します

このドキュメントを使用すると、ライブラリですぐに開発を開始できます。 同じ機能は、すべてのサポートされている言語で利用できます。

ドキュメントを閲覧します

このドキュメントを使用すると、ライブラリですぐに開発を開始できます。 同じ機能は、すべてのサポートされている言語で利用できます。

.NETを始めよう

100%マネージドライブラリで、依存関係がなく、NuGet.orgでご希望のバージョンとアーキテクチャ (x86, x64, ARM, Linux, Windows, MacOS, .NET Framework, .NET Core, UWP, ...) で利用可能なC#またはVBでアプリケーションをコーディングできます。

Pythonを始めよう

このライブラリを使って、ロボットと通信するプログラムをPythonで素早く開発することができます。PyPIで公開されています。

LabVIEWを使いこなす

LabVIEW VIにロボットとの通信機能を持たせてください。

Matlabを始めよう

Matlab スクリプトがロボットを動かすようにします。

ガイドとハウツー記事

SDKは、複数のネイティブEthernetプロトコルを通じて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年のメンテナンス期間があり、サポートへの優先アクセスと更新の可能性が得られます。 使用するライセンスを購入する場合、ロボットブランドにリンクされているため、顧客に再配布するロボット、開発者、またはソフトウェアの数に関係なく、繰り返し料金を払うことなく永久に使用できます。 あなたがディストリビューターであり、お客様に当社の製品のいずれかを提供したい場合は、特別な条件と価格について話し合うためにお問い合わせください。

標準サイトライセンス

•

$1300一生
$780大学向け (40% 割引)
産業環境向けに設計されており、生涯にわたる全機能へのアクセスを提供します。
1 年間のメンテナンスが含まれています (アップデートへのアクセス)
サポートが優先されず、メンテナンスが 1 年間であることを除いて、Pro ライセンスと同じ条件です。
内部情報源はありません。 難読化された DLL のみが提供されます。
ビデオ会議によるサポートはありません (電子メールのみ)。
プロジェクトに適したライセンスを選択してください
今すぐ購入
最も人気のある

プロライセンス

•

$2000
$2960
一生
$1200大学向け (40% 割引)
優先サポートと長期メンテナンスが必要な重要な実稼働環境向け。
3 年間のメンテナンスが含まれており (アップデートへのアクセス)、この期間中の更新注文はありません (事務手続きは不要)
完全かつ永続的なSDK: 定期的なサブスクリプションは必要ありません。ライセンスは永遠にあなたのものであり、ロボットブランドのすべてのプログラミング言語で機能します。
指示された郵便住所で、ライセンスを保持している組織がのみ使用できます。 すべてのチーム開発者は、開発マシンの数に関係なく、同じライセンスを共有します。
SDKを使用して開発されたアプリケーションは、接続するロボットの数に関係なく、追加費用なしで顧客の無制限の数に配信できます。
ライセンスは、機能のロックを解除するコードを呼び出すためのパスワードの一種です。 インストールする追加のソフトウェアはありません。 USBキーはありません。
優先サポート (平均 24 時間未満)
リモート アシスタンス (電子メールおよび最大 2 時間のビデオ会議)
内部情報源はありません。 難読化された DLL のみが提供されます。
いつでもソースにアップグレード (差額を支払う)
今すぐ購入

ソースコードライセンス

•

$4000一生
$2400大学向け (40% 割引)
完全な技術主権、詳細なカスタマイズ、完全な独立性を実現します。
プロライセンスと同じ条件
C# によるライブラリの完全な内部コード
数年かけて開発された数千行のコードを含む Visual Studio ソリューション
一般利用規約で定義されている制限内で、このソース コードを変更してアプリケーションで使用できます。
完全なソースコードアクセスと付属のコンテキストファイル(AGENTS.md)により、AIコーディングエージェント(Claude、Copilot、Cursor、Codex等)との連携が最適化され、LLMがSDK内部構造を正確に把握できます
今すぐ購入
FAQ

よくある質問

いいえ。SDK はコントローラの Ethernet プロトコルを使い、PC Developer's Kit (PCDK) は不要です。Telnet、FTP、CGTP はオプション不要です。SNPX は FANUC America のコントローラではオプション R553 が、RMI はオプション R912 が、Stream Motion はオプション J519 が必要です。

R-J3iB、R-30iA、R-30iB、R-30iB Plus、R-50iA コントローラ、およびロボットなしでテストするための ROBOGUIDE に対応しています。使えるプロトコルはコントローラの世代とオプションによって異なります。

ライセンスは永久で、サブスクリプションはありません。Standard:1100 EUR / 1300 USD。Pro:1700 EUR / 2000 USD。Source:3400 EUR / 4000 USD。1 つのライセンスで 1 つの組織の 1 つの所在地をカバーし、開発者、ロボット、納入するアプリケーションの数に制限はありません。アップデートは Standard で 1 年間、Pro と Source で 3 年間含まれます。大学には 40% の割引があります。

はい。初回使用から 30 日間、登録なしですべての機能を使えます。試用期間はご要望に応じて延長できます。Windows 用デモアプリケーションで、コードを書かずにお使いのロボットで SDK を試せます。

はい。ライブラリは .NET Standard 2.0 と 2.1 向けにコンパイルされており、Windows、Linux、macOS の x64 と ARM で動作します。Linux または macOS で Python を使う場合は、.NET ランタイムをインストールし、Python を起動する前に export PYTHONNET_RUNTIME=coreclr を実行してください。

はい。pip install UnderAutomation.Fanuc でパッケージと pythonnet がインストールされ、pythonnet が .NET ライブラリを Python プロセスに読み込みます。対応バージョンは Python 3.7 から 3.13 です。API は .NET と同じで、名前は Python の命名規則に従います。

はい。LabVIEW ライブラリ (.lvlib) とサンプルプロジェクトは GitHub の Fanuc.vi リポジトリにあります。ほかの言語と同じ .NET アセンブリを使います。

はい、Source ライセンスで入手できます。ライブラリの C# コード全体と Visual Studio ソリューションが含まれます。使用許諾契約 (EULA) の範囲内で、変更してお客様のアプリケーションで使用できます。Standard と Pro ライセンスでは難読化された DLL のみが提供されます。
GitHub

GitHub のライブラリ

各パッケージは変更履歴とともに GitHub で公開されています。

最新リリース

Fanuc.NET

最新リリース

underautomation / Fanuc.NET

Public

Fanuc SDK の .NET ライブラリ。

C#GitHub で見る

underautomation / Fanuc.py

Public

Fanuc SDK の Python パッケージ。

PythonGitHub で見る

underautomation / Fanuc.vi

Public

Fanuc SDK の LabVIEW ライブラリ。サンプル VI 付き。

LabVIEWGitHub で見る

今すぐ始めましょう!

今日から 30 日間のトライアルを始めるか、見積もりを依頼してください。

無料で試す注文見積もりを依頼するお問い合わせ