UnderAutomation
有问题吗?

[email protected]

联系我们
UnderAutomation
⌘Q

Fanuc SDK

GitHub stars
1100 (EUR)1300 (USD)

$

1300

为了一生

$

780

大学(40% 折扣)

快速创建与Fanuc工业机器人通信的.NET应用程序。

为您的项目选择正确的许可证
命令要求报价

.NET

Python

LabVIEW

见条款和条件
Plug & Play

只需几分钟即可连接您的机器人。无需安装许可证管理器,无需 USB 密钥。仅参考图书馆。

没有在机器人上安装的插件

使用机器人控制器作为标准提供的网络协议。
Karel ROS

30 天试用

免费试用 30 天,无承诺,无需注册

付一次,永远使用

永久许可,无需订阅,无论机器人,开发人员的数量是多少

客户成功案例

了解我们的客户如何将 UnderAutomation 解决方案集成到他们的工业项目中。

GE
Aerospace / Healthcare

GE: Aerospace & Healthcare Automation

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

功能的预览

远程命令

Telnet KCL(键盘命令行)允许您发送命令以远程控制机器人 - 控制器上不需要其他选项。
// Reset alarms
robot.Telnet.Reset();
// Run a program
robot.Telnet.Run("MyProgram");
robot.Telnet.Pause("MyProgram");
robot.Telnet.Hold("MyProgram");
robot.Telnet.Continue("MyProgram");
robot.Telnet.Abort("MyProgram", force: true);
// Set a variable
robot.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);

高速数据阅读和写作

SNPX(也称为SRTP/Robotif)允许与机器人快速而结构化的数据通信。 它用于读取/编写寄存器,监视警报并检查机器人的状况。
// 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();

文件和解码

将FTP直接访问机器人的内存,以进行文件传输,读取变量和机器人状态的管理,所有这些都以解码为单位并准备在结构化.NET对象中使用。
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");

逆运动学

根据任何 Fanuc 机器人或协作机器人的 DH 参数对其正运动学和逆运动学进行代数计算。
// 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);

Remote Motion Interface

实施 Fanuc RMI 协议,使您可以简单地向机器人发送运动命令,以及读取和写入其输入、输出和寄存器。
// Get the robot status
ControllerStatus s = robot.Rmi.GetStatus();
// Read digital input
DigitalInputValue din2 = robot.Rmi.ReadDIN(2);
// Read the current Cartesian position
CartesianPosition pose = robot.Rmi.ReadCartesianPosition();
// Command joint motion
robot.Rmi.JointMotion(...);

离线工具

无需机器人的功能允许您处理标准文件格式(可变文件,错误列表,机器人状态等)。
// Parse a variable file and extract a hierarchical list of variables
GenericVariableFile vaFile = FanucFileReaders.VariableReader.ReadFile("C:/path/to/variable.va");
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");
FanucFileReaders.IOStateReader.ReadFile("C:/path/to/iostate.dg");
FanucFileReaders.SafetyStatusReader.ReadFile("C:/path/to/safety.dg");
FanucFileReaders.CurrentPositionReader.ReadFile("C:/path/to/curpos.dg");

浏览文档

浏览文档

该文档使您可以快速开始使用库开发。 所有受支持的语言都可以使用相同的功能。

下载和测试

通过Nuget下载
通过Nuget下载

通过Nuget Package Manager轻松地将此SDK添加到您的Visual Studio项目中。

请参阅xxx上
Github上的示例
Github上的示例

使用此SDK的示例的来源可在GitHub上获得

Windows应用程序示例
Windows应用程序示例

允许您使用简单的接口测试SDK的所有功能。 该示例用.NET 8中的“自我包含”和“单个文件”编译。该应用程序在不安装的情况下可移植。

通过下载,您接受使用的一般条件:
见条款和条件
UnderAutomation.Fanuc.Showcase.Forms.exe (139 MB)
LabView库和示例应用
LabView库和示例应用
请参阅xxx上UnderAutomation.Fanuc.lvlib

请求报价和订单

价格

可以免费下载库,可以进行30天的测试。 在此期间之后,您可以要求我们延长试用期,或购买最适合您的许可证:站点(仅二进制二进制)或源代码(源代码)。 购买后,您有一个一年的维护期,使您优先访问支持和更新的可能性。 当您购买使用许可证时,它会链接到机器人品牌,无论您将其重新分配给客户的机器人,开发人员或软件的数量如何,都可以永远使用,而无需重复费用。 如果您是分销商,并希望为您的客户提供我们的产品之一,请与我们联系以讨论特殊条件和价格。

标准站点许可证

1100 (EUR)$1300 (USD)

$

1300

为了一生

$

780

大学(40% 折扣)
适合个人使用或敏捷开发人员构建概念验证或轻量级项目。
包括 1 年维护(获取更新)
与专业许可证的条件相同,但不优先支持、不包括远程协助且维护期仅为 1 年。
没有内部来源; 仅提供混淆的 DLL。
无法通过视频会议提供帮助(仅通过电子邮件)。
立即购买
最受欢迎

专业许可

1700 (EUR)$2000 (USD)

$

2000

$2960
为了一生

$

1200

大学(40% 折扣)
适用于需要优先支持和长期稳定性的关键任务生产环境。
包括 3 年维护(获取更新),在此期限内没有续订订单(零文书工作)
完整和永久的SDK:无需重复订阅,许可证是您的永远您的,并且可以使用机器人品牌的所有编程语言。
仅在指定的邮政地址上持有许可证的组织才能使用。 不管开发机器的数量多少,所有团队开发人员都将共享相同的许可证。
使用SDK开发的任何应用程序都可以将无限数量的客户提供,而不管要连接的机器人数量如何。
该许可证是一种密码,可以在解锁功能的代码中调用。 没有其他软件要安装。 没有USB密钥。
优先支持(平均<24小时)
远程协助(电子邮件和长达 2 小时的视频会议)
没有内部来源; 仅提供混淆的 DLL。
随时升级到源(支付差价)
立即购买

源代码许可

3400 (EUR)$4000 (USD)

$

4000

为了一生

$

2400

大学(40% 折扣)
实现完全的技术主权、深度定制和完全独立。
与专业许可证的条件相同
C 语言库的完整内部代码
Visual Studio 解决方案包含数年开发的数千行代码
您可以在一般使用条款中定义的限制内修改此源代码并在您的应用程序中使用它
立即购买

轻松将 Universal Robots、Fanuc、Yaskawa 或 Staubli 机器人集成到您的 .NET、Python、LabVIEW 或 Matlab 应用程序中

UnderAutomation
联系我们Legal

© All rights reserved.