Fanuc SDK
1100 (EUR) • 1300 (USD)
1100
€
Pour toujours660
€
pour les universités (40% de réduction)Créez rapidement des applications .NET qui communiquent avec votre robot industriel Fanuc.
.NET
Python
LabVIEW
Plug & Play
Connectez votre robot en quelques minutes seulement. Pas de gestionnaire de license à installer, pas de clé USB. Référencez seulement la bibliothèque.
Pas de plugins à installer sur le robot
Utilisation des protocoles réseau fournis en standard par le contrôleur de robot.
Karel ROS
Essai de 30 jours
Essayez-le gratuitement pendant 30 jours, aucun engagement, aucun enregistrement requis
Payer une fois, utiliser pour toujours
Licence perpétuelle, aucun abonnement requis, quel que soit le nombre de robots, de développeurs ou de logiciels redistribués
Réussites Client
Découvrez comment nos clients intègrent les solutions de UnderAutomation dans leurs projets industriels.
Fonctionnalités du SDK Fanuc : Telnet, SNPX, FTP et cinématique
Commandes distantes
Telnet KCL (Keyboard Command Line) permet d'envoyer des commandes pour contrôler le robot à distance - aucune option supplémentaire n'est nécessaire sur le contrôleur.// 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);Lecture et écriture de données à grande vitesse
SNPX (également connu sous le nom de SRTP/RobotIF) permet une communication de données rapide et structurée avec le robot. Il est utilisé pour lire/écrire les registres, surveiller les alarmes et vérifier l'état du robot.// 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();Fichier et décodage
Accès direct FTP à la mémoire du robot pour le transfert de fichiers, la lecture de variables et la gestion de l'état du robot, le tout dans des structures décodées et prêtes à être utilisées au sein d'objets structurés .NET.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");Cinématique inverse
Calcule algébrique de la cinématique directe et inverse de n'importe quel robot ou cobot Fanuc à partir de ses paramètres DH.// 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);Motion Interfaces
Implémentation des protocoles Fanuc RMI (R912) et Stream Motion (J519) qui permet d'envoyer simplement des commandes de mouvements au robot, ainsi que de lire et écrire ses entrées, sorties et registres.// 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();Outils hors ligne
Les fonctionnalités sans nécessité de robot permettent de manipuler les formats de fichiers standard (fichier variable, liste d'erreur, statut du robot, etc.).// 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);Parcourir la documentation
Guides et articles pratiques
Le SDK couvre les principales fonctionnalités des robots Fanuc à travers plusieurs protocoles Ethernet natifs. Selon les options installées sur votre contrôleur et sa génération, certains protocoles peuvent être disponibles ou non. Chaque article ci-dessous explique comment réaliser une tâche précise et compare les différentes approches.
Télécharger et tester
Exemple d'application WindowsPermet de tester toutes les fonctionnalités du SDK avec une interface simple. L'exemple est compilé en "Self Contained" et "Single File" avec .NET 8. L'application est portable sans installation.
UnderAutomation.Fanuc.Showcase.Forms.exe (139 MB)En téléchargeant, vous acceptez les conditions générales d'utilisation :
Voir les conditions générales d'utilisationDemander un devis et commander
Tarifs
Les bibliothèques sont téléchargeables gratuitement et peuvent être testées pendant 30 jours. Passé ce délai, vous pouvez nous demander de prolonger la période d'essai, ou acheter la licence qui vous convient le mieux : site (binaires obscurcis uniquement) ou source (code source). Après l'achat, vous disposez d'une période de maintenance d'un an, vous donnant un accès prioritaire au support et la possibilité de mettre à jour. Lorsque vous achetez une licence d'utilisation, elle est liée à une marque de robot, vous pouvez l'utiliser pour toujours, sans redevance récurrente, quel que soit le nombre de robot, de développeur ou de logiciel que vous redistribuez à vos clients. Si vous êtes un distributeur et souhaitez proposer à vos clients un de nos produits, merci de nous contacter pour discuter des conditions et tarifs spéciaux.
Licence Site Standard
1100€ (EUR) • $1300 (USD)
1100
€
Pour toujours660
€
pour les universités (40% de réduction)Acheter maintenantConçu pour les environnements industriels, offrant un accès complet aux fonctionnalités à vie.1 an de maintenance incluse (accès aux mises à jour)Mêmes conditions que la Licence Pro, sauf que le support n'est pas prioritaire et la maintenance est de 1 an.Il n'y a pas de sources internes ; seule la DLL masquée est fournie.Pas d'assistance par visioconférence (uniquement par email).Le plus populaireLicence Pro
1700€ (EUR) • $2000 (USD)
1700
€
Pour toujours2500€
1020
€
pour les universités (40% de réduction)Acheter maintenantPour les environnements de production critiques nécessitant un support prioritaire et une maintenance à plus long terme.3 ans de maintenance incluse (accès aux mises à jour) sans commande de renouvellement pendant cette durée (zéro paperasse)SDK complet et permanent : aucun abonnement récurrent n'est requis, la license est à vous pour toujours et fonctionne dans tous les langages de programmation pour une marque de robot.Peut être utilisé uniquement par l'organisation détentrice de la licence, à l'adresse postale indiquée. Tous les développeurs de l'équipe partageront la même licence, quel que soit le nombre de machine de développement.Toute application développée à l'aide du SDK peut être livrée à un nombre illimité de vos clients sans frais supplémentaires, quel que soit le nombre de robots à connecter.La license est une sorte de mot de passe à appeler dans le code qui débloque les fonctionnalités. Pas de logiciel supplémentaire à installer. Pas de clé USB.Support prioritaire (<24h en moyenne)Assistance à distance (email et jusqu'à 2h de visioconférence)Il n'y a pas de sources internes ; seule la DLL masquée est fournie.Passez à Source à tout moment (payez la différence)Licence Source
3400€ (EUR) • $4000 (USD)
3400
€
Pour toujours2040
€
pour les universités (40% de réduction)Acheter maintenantPour une totale souveraineté technique, une personnalisation poussée et une indépendance totale.Mêmes conditions que la licence proCode interne complet de la bibliothèque en C#Solution Visual Studio comprenant des milliers de lignes de code développées sur plusieurs annéesVous pouvez modifier ce code source et l'utiliser dans votre application, dans les limites définies dans les conditions générales d'utilisation.Compatible avec les agents IA de codage (Claude, Copilot, Cursor, Codex...) grâce à l'accès au code source complet et aux fichiers de contexte inclus (AGENTS.md) qui donnent au LLM une connaissance précise des internals du SDK







