FANUC robots are programmed with the Teach Pendant (TP) language, KAREL, and RoboGuide for offline simulation. Before you wrestle with vendor-specific syntax, master the universal fundamentals — frames, the tool centre point, joint vs linear motion, I/O, pick-and-place, payload, and safety — hands-on in a free browser simulator. These concepts carry straight onto a FANUC teach pendant.
Honest note: this is not a FANUC emulator and it does not run FANUC TP or KAREL. It teaches the transferable robot-programming fundamentals using real URScript on a UR-style arm.
The J1–J6 articulated structure is shared by FANUC, ABB, KUKA and Universal Robots — the kinematics you practice in the browser are the same kinematics a FANUC industrial robot uses.
The FANUC stack
How FANUC robots are actually programmed
FANUC is one of the world’s largest industrial-robot manufacturers, and its programming workflow is built around a few core tools. Knowing what each one does — and what it expects you to already understand — tells you exactly where to start.
The Teach Pendant & TP language
Most FANUC programming happens on the teach pendant. FANUC’s modern pendant is the iPendant — a handheld touchscreen unit you use to jog the arm, record positions, and build programs. Programs are written in TP (Teach Pendant) language: an instruction list of motion moves (J for joint, L for linear), register operations, I/O instructions, and flow logic. This is the bread-and-butter of day-to-day FANUC work.
KAREL for advanced logic
For more complex tasks — data handling, custom routines, tighter integration — FANUC offers KAREL, a structured, Pascal-like programming language. KAREL runs alongside TP programs and is typically used by integrators and advanced programmers when teach-pendant instructions are not enough.
RoboGuide for offline programming
RoboGuide is FANUC’s official PC-based offline-programming and simulation suite. It builds a 3D model of your robot and cell so you can write, test, and optimize TP programs before touching the real machine. It is FANUC-specific and licensed — the standard tool for serious FANUC cell design.
CRX collaborative robots
FANUC’s CRX series are collaborative robots (cobots) designed to work safely near people. They can be programmed with simplified drag-and-drop and hand-guidance workflows in addition to traditional methods — but the same fundamentals of frames, motion, payload, and force-limited safety still apply.
Each robot brand speaks its own language — FANUC uses TP and KAREL, ABB uses RAPID, KUKA uses KRL, Universal Robots uses URScript — but they all express the same underlying motion and I/O concepts. Learn the concepts once and the vendor syntax becomes a translation job.
Reading TP code
Anatomy of a FANUC TP motion instruction
Almost every line of FANUC teach-pendant motion follows the same template. Once you can read it, TP programs stop looking like a wall of codes. A typical instruction is:
J P[1] 100% FINE
Motion type — J joint, L linear, or C circular. This is exactly the joint-vs-linear decision you practise here with movej and movel; FANUC adds a circular move (C) through an intermediate point.
Position — P[1] is a taught point. Reusable positions are stored in position registers (PR[1]), FANUC’s global position variables — the same idea as storing a pose/waypoint in a variable.
Speed — 100% (or 2000mm/sec for linear moves), the same velocity tuning you set per move in URScript.
Termination type — FINE stops exactly on the point; CNT (continuous, e.g. CNT50) rounds the corner for speed — conceptually identical to the blend radius you use to smooth waypoints in the simulator.
FANUC also uses registers (R[1]) for numeric data and counters, and I/O instructions (DO[1]=ON, RO[1]=ON) to drive grippers and signal a PLC — the equivalent of set_digital_out here.
What transfers
The fundamentals that carry onto a FANUC arm
FANUC’s TP language and RoboGuide are vendor-specific, but the concepts beneath them are not. Every six-axis articulated robot — FANUC, ABB, KUKA, Universal Robots — is driven by the same handful of ideas. Our browser simulator teaches each one hands-on using real URScript, so you build the mental model first and learn FANUC’s syntax second.
Frames & coordinate systems
World, base, user, and tool frames decide where the robot thinks it is. FANUC calls them user frames and tool frames; the idea is identical everywhere.
Tool Center Point (TCP)
Define the working point of your gripper or tool so the robot moves the right spot to the right place. Get the TCP wrong and every position is off.
Joint vs linear motion
Joint moves (FANUC J / URScript movej) are fast through joint space; linear moves (FANUC L / movel) keep the tool on a straight Cartesian line. Knowing when to use each is core to every brand.
Waypoints & sequencing
Approach, act, retract: chaining points into a smooth, safe path is the same skill on any controller.
Digital I/O & grippers
Reading inputs and setting outputs to drive a gripper or signal a PLC is universal — only the instruction names change.
Payload, reach & collision safety
Configure payload, respect reach limits, and avoid collisions and over-force contact. On cobots like FANUC’s CRX this becomes force-limited collaborative safety.
World, base, user (UFRAME) and tool (UTOOL) frames decide where the robot thinks it is. FANUC's user frames and tool frames are the same idea you set up in the simulator.Joint moves (FANUC J / movej) sweep fast through joint space; linear moves (FANUC L / movel) keep the tool on a straight Cartesian line. Choosing correctly is core to every brand.
Concept mapping
What you learn here vs what it’s called on FANUC
You program in real URScript in the simulator. Here is how each concept maps to the FANUC world so you can see the bridge clearly. The interface differs; the thinking is the same.
Learned here (URScript / UR-style)
On a FANUC robot
movej — joint move
J motion instruction in TP language
movel — linear move
L motion instruction in TP language
Arc / circular path
C (circular) motion instruction through a via point
Tool center point (set_tcp)
Tool frame (UTOOL) setup
Base / feature frames
User frame (UFRAME) setup
Stored pose / waypoint variable
Position register PR[n] (global position variable)
Counters & numeric variables
Register R[n] and register math instructions
Blend radius (smoothing waypoints)
CNT termination (e.g. CNT50); FINE stops exactly on point
Digital I/O (set_digital_out)
DO / RO output instructions
Payload configuration
PAYLOAD setting on the controller
Protective stop / force limits
DCS safety zones; CRX collaborative force limits
Note: this mapping shows conceptual equivalence to help you transfer skills. The simulator does not generate or run FANUC TP or KAREL code — for that, you would use FANUC’s RoboGuide or a real teach pendant.
Where to start
FANUC-specific tools vs learning the fundamentals first
You can jump straight into FANUC’s ecosystem — but if you have never programmed a robot, the tools assume knowledge you do not have yet, and the licences and setup get in the way of practising. The faster path is to build the fundamentals where they are free and frictionless, then layer FANUC’s syntax on top.
Jumping straight to FANUC tools
RoboGuide is licensed Windows software; a real teach pendant means real (or rented) hardware. Both are powerful, but they assume you already understand frames, TCP, and motion types — so beginners spend their energy fighting the interface instead of learning to think like a robot programmer.
Fundamentals first, in the browser
Open a tab, write real URScript on a UR-style arm, and practise the exact concepts FANUC relies on — for free, with graded tasks. When you reach a FANUC pendant, you are learning new syntax, not a new way of thinking.
FANUC's RoboGuide builds a 3D model of the cell on a PC so you can write and simulate TP programs offline before deploying to the real controller — the same offline-programming workflow concept you meet in any vendor's simulator.
A practical roadmap to FANUC programming
1Build the fundamentals here: frames, TCP, joint vs linear motion, waypoints, I/O, payload, and collision/safety — graded, in the browser.
2Program a full pick-and-place cycle in URScript so the end-to-end workflow (approach, grasp, traverse, place, release) is second nature.
3Read up on FANUC TP language: how J/L instructions, registers, and I/O instructions are entered on the iPendant.
4Install FANUC RoboGuide (or use a real teach pendant) and re-create a simple pick-and-place — now you are only learning FANUC’s interface and syntax.
5Add KAREL and FANUC safety (DCS, CRX collaborative limits) once the basics are fluent.
Cobots & safety
FANUC CRX cobots and collaborative safety
FANUC’s CRX series are collaborative robots built to operate near people without the traditional safety cage. They support easier setup methods — including hand-guidance and a simplified drag-and-drop interface — alongside conventional programming. That lower barrier makes cobots a common entry point into robot programming.
But collaborative does not mean consequence-free. Whatever the brand, cobot safety comes down to force and speed limits, protective stops on unexpected contact, payload that is configured correctly, and a program that avoids collisions in the first place. Our simulator teaches exactly that: tasks are graded not just on placing the part, but on staying within a force limit and avoiding over-force contact — the same discipline a FANUC CRX (or any cobot) demands.
Collaborative safety means force- and speed-limited motion with a protective stop on unexpected contact. Our simulator grades you on staying within a force limit — the same discipline a FANUC CRX cobot enforces.
In the simulator
From first jog to a graded pick-and-place cell
You do not just watch — you write real URScript, run it on a simulated six-axis arm under physics, and get graded against a real goal. Every skill here is a fundamental FANUC programmers rely on too.
Jogging & frames
Move the arm in joint and Cartesian space; understand base vs tool frames and how the TCP is defined.
Joint vs linear moves
movej vs movel — when each is right, and how speed and acceleration change the motion (the FANUC J/L distinction).
Digital I/O & gripper
Read and set digital signals; open and close a gripper to actually pick something up.
Pick-and-place A→B
Approach, grasp, lift, traverse, place, release — the backbone of real robot and cobot work.
Payload & TCP
Configure payload and tool center point and see how they change reach, accuracy, and safe speed.
Collision & force-limited safety
Trigger and avoid protective stops and over-force contact — the heart of collaborative safety.
Approach, grasp, lift, traverse, place, release — the pick-and-place cycle is the backbone of real FANUC cell work, and you build it end-to-end in URScript here.Reading inputs and setting outputs to open and close a gripper or signal a PLC is universal; on FANUC the instructions are DO[ ]/RO[ ], here they are set_digital_out.
The free track gets you fluent in the fundamentals. The full graded path takes you from your first jog to a working pick-and-place cell and a certificate you can show an employer — useful evidence when you are stepping toward a FANUC, ABB or KUKA role.
A clear path: learn the fundamentals free, complete the graded course, and earn a robot-programming certificate that signals you can think like a robot programmer before you touch a FANUC pendant.
Robot arm simulator — practise six-axis arm motion and kinematics in the browser.
Robot simulator — the home of our browser-based robot programming trainer.
Questions
FANUC robot programming FAQ
On real hardware, a FANUC robot is programmed mainly with the Teach Pendant. You jog the arm to positions, record them as points, and build a TP program out of motion instructions (J for joint moves, L for linear moves), I/O instructions, registers, and logic. For more advanced work FANUC also supports KAREL, a higher-level programming language, and RoboGuide for offline programming and simulation on a PC. Before any of that pays off, though, you need the underlying concepts — frames, the tool center point, joint vs linear motion, I/O, and safety — which is exactly what you can practice here in the browser.
FANUC robots are programmed primarily in TP (Teach Pendant) language — the instruction list you build on the pendant with J/L motion instructions, registers, and I/O. FANUC also offers KAREL, a Pascal-like programming language for more complex logic and integration. RoboGuide is FANUC’s PC software for writing and simulating programs offline. Our simulator does not run TP or KAREL; it teaches the same fundamentals (motion types, frames, TCP, I/O, safety) using real URScript so the concepts transfer when you move to a FANUC pendant.
RoboGuide is FANUC’s official offline-programming and simulation software. It runs on a Windows PC, builds a 3D model of your robot and work cell, and lets you write and test TP programs without the physical robot. It is the standard tool integrators use to validate FANUC programs before deployment. It is FANUC-specific and licensed. Our browser simulator is a different thing: a free, install-free way to learn the robot-programming fundamentals that make tools like RoboGuide much easier to pick up.
You can learn the fundamentals of robot programming online for free, and that is most of the battle. FANUC’s own TP language and RoboGuide are FANUC-specific, but the concepts beneath them — frames, the TCP, joint vs linear moves, waypoints, digital I/O and grippers, payload, and collision/safety — are universal. Our simulator teaches those hands-on in the browser, free to start, using real URScript on a UR-style arm. Master them and a FANUC teach pendant becomes a matter of learning FANUC’s specific syntax, not learning to think like a robot programmer from scratch.
The concepts transfer; the syntax does not. FANUC uses TP language on a teach pendant and KAREL for advanced work; Universal Robots uses URScript and PolyScope. The button-for-button workflow is different. But both are six-axis articulated arms, so the mental model is the same: you define frames and a tool center point, choose between joint and linear motion, sequence waypoints, drive grippers and I/O, set payload, and respect safety limits. Once those fundamentals are solid — which is what our UR-style simulator builds — switching to FANUC means learning a new interface, not a new way of thinking.
Registers are FANUC’s variables. A standard register R[n] holds a number — used for counters, math, and flags. A position register PR[n] holds a full robot pose (x, y, z plus orientation) and is global, so PR[1] is the same point in every program. You write motion against taught points P[n] or against position registers, and you manipulate them with register-math instructions. The concept is the same one you use in the simulator when you store a pose or waypoint in a variable and move to it — only the PR[n]/R[n] naming is FANUC-specific.
They are termination types — they tell the robot how to finish a move. FINE means stop exactly on the point before continuing, which is what you want for precise placing. CNT (continuous, e.g. CNT50) means round the corner and carry speed into the next move instead of fully stopping, which makes cycles faster and smoother. It is the same idea as the blend radius you use to smooth waypoints in our simulator: tighter blend ≈ FINE, larger blend ≈ higher CNT.
Three main ones. Joint (J) moves all axes together to a point as fast as possible — efficient but the tool path through space is not a straight line. Linear (L) drives the tool center point along a straight Cartesian line at a set speed. Circular (C) moves the tool along an arc through an intermediate via point. Our simulator teaches joint (movej) and linear (movel) directly, which are the two you reach for most; FANUC’s circular move is the same straight-vs-curved-path thinking applied to an arc.
The vendor-specific part — TP syntax, the iPendant menus, RoboGuide — is a matter of days to weeks once the fundamentals are solid. The fundamentals themselves (frames, TCP, joint vs linear motion, waypoints, I/O, payload, safety) are the part that takes real practice, and they are brand-independent. That is why building them first in a free browser simulator is efficient: you spend your early hours learning to think like a robot programmer instead of fighting a licensed tool, then pick up FANUC’s interface quickly.
No — to be straight with you, this is not a FANUC emulator and it does not run FANUC TP or KAREL code or RoboGuide. It is a browser-based robot-programming trainer that teaches the universal fundamentals of programming a six-axis arm using real URScript. Everything you learn here — frames, TCP, motion types, I/O, pick-and-place, payload, and safety — transfers to FANUC. For FANUC-specific syntax and offline simulation you would use FANUC’s RoboGuide; this is how you build the foundation first.
Build the fundamentals FANUC programming relies on.
Write real robot code in your browser — frames, TCP, motion, I/O, pick-and-place, and safety. No install, no robot, free to start. Then take those skills to a FANUC teach pendant.
The learner can explain a bounded FANUC-oriented sequence and identify the controller, software, tool, payload, mastering and safeguarded-cell assumptions still unverified.
Written for robot programmers and controls learners studying frames, taught points, joint and linear motion, I/O handshakes and recovery before FANUC target work.