🚧 Under construction — VoTechWorks is being built. A free tech program — complimentary, as our commitment to get America working.
voTechWorksGrade 13 · a vocational technology learning center, by urbanicity
newSchoolWorks.com › VoTechWorks › Manufacturing & Marine › Robotics / Mechatronics › Industrial Robots › Lesson 6
MFG-MECH15-06 · Lesson 6 · 18 clock hours · practice

HandlingTool Programming: Motion Instructions, Registers, and I/O

Objective. Students write and test a FANUC HandlingTool program on the live robot that uses JOINT and LINEAR motion instructions, position and numeric registers, digital I/O commands, and a conditional jump to handle a part-absent condition.

⚠ Pending professional review

This lesson, its worked examples and its practice questions has not yet been verified by a licensed engineer or certified journey-level tradesperson or by a certification or approval body. It is a study draft and may contain errors. Do not use it as instructions for work on a job site or on live equipment. Always follow your instructor, your supervising professional, and current official references and regulations.

VoTechWorks program approval and accreditation are still in progress. Credentials are issued only by the certifying bodies named in each program, after their own exams.

HandlingTool Programming: Motion Instructions, Registers, and I/O

Why This Lesson Matters

A FANUC HandlingTool program is the core language you use to move a robot through a pick-and-place cycle, control tooling such as a gripper, and respond to sensor signals from the production line. Mastering motion instructions, registers, and I/O commands prepares you for the FANUC CERT technician-level performance exam and for real manufacturing cells where a programming error can damage tooling or injure workers.

---

Safety Before You Touch the Pendant

Before entering the robot cell, review these rules every session.

---

Motion Instructions: JOINT and LINEAR

HandlingTool uses two primary motion types.

JOINT motion moves each axis independently toward the target position. The path through space is not a straight line, but JOINT is fast and efficient. Use it for moves where the exact path between two points does not matter — for example, moving from home to an approach point above a part bin.

LINEAR motion drives the TCP (tool center point) along a straight line in Cartesian space. Use it whenever the path matters — lowering straight down onto a part, lifting it straight up, or moving horizontally to a place point to avoid fixtures. LINEAR motion requires the controller to coordinate all axes simultaneously, so it is slightly slower than JOINT for the same distance.

A typical HandlingTool instruction line looks like this:

```

1: J P[1] 100% FINE

2: J P[2] 80% CNT50

3: L P[3] 200mm/sec FINE

4: L P[4] 200mm/sec CNT10

```

---

Position Registers and Numeric Registers

Position registers (PR[n]) store a full Cartesian or joint-angle location. They can be taught from the pendant or entered as offsets, and they can be modified in the program with offset instructions. Use them when you need to compute pick positions mathematically (for example, a pallet pattern).

Numeric registers (R[n]) hold integer or real number values. Common uses include part counters, loop counts, and scaling values. You read and write them with assignment statements:

```

R[1]=R[1]+1

```

This line increments register 1 by 1 each time the controller executes it. Place this line after a successful pick to count completed cycles.

---

Digital I/O Commands

Digital outputs (DO[n]) command external devices such as grippers, clamps, and indicator lights. Digital inputs (DI[n]) read sensor states — part-present switches, conveyor signals, and safety interlocks.

To activate a gripper at the pick point:

```

DO[1]=ON

```

To release it at the place point:

```

DO[1]=OFF

```

Always confirm your I/O wiring diagram before assigning DO and DI numbers. Assigning the wrong output number can energize unintended tooling.

---

Conditional Jump: Handling Part-Absent Faults

A robust program must handle sensor failures gracefully. The IF … JMP LBL instruction checks a condition and redirects program flow if that condition is true.

```

IF DI[1]=OFF, JMP LBL[10]

```

If the part-present sensor (DI[1]) is OFF when the robot reaches the pick point, execution jumps to label 10 instead of continuing the grip sequence. At label 10 you place an alarm routine — typically a PAUSE instruction and a user alarm message — so the operator can investigate before the robot cycles again.

Program flow for this lesson's pick-and-place cycle:

1. J P[1] home — FINE

2. J P[2] approach — CNT50

3. L P[3] pick — FINE

4. Check sensor: IF DI[1]=OFF, JMP LBL[10]

5. DO[1]=ON (close gripper)

6. L P[2] retract — FINE

7. J P[4] place approach — CNT50

8. L P[5] place — FINE

9. DO[1]=OFF (open gripper)

10. R[1]=R[1]+1 (increment counter)

11. J P[1] return home — FINE

12. LBL[10]: PAUSE (alarm routine)

---

Reading the I/O Status Screen

During testing, press MENUS > I/O > Digital on the pendant to watch DI and DO states update in real time. This is the fastest way to verify that a jumper wire is toggling DI[1] as expected and that DO[1] changes state when the gripper instruction executes. Document each state transition in your lab log: record the instruction line number, the I/O signal, the state before and after, and whether the program branched correctly.

---

Connecting to FANUC CERT

The FANUC CERT technician-level exams (FCR-T1, FCR-T2) include both a written test and a hands-on performance test covering exactly these skills: program creation, position teaching, motion-type selection, register use, and I/O programming. Accurate, repeatable motion and correct conditional logic are the benchmarks evaluators check.

Key terms10

JOINT motion (J)A FANUC motion type that moves each robot axis independently toward a target position; the TCP path is not a straight line, but motion is fast and efficient. Used for moves where the exact path does not matter.
LINEAR motion (L)A FANUC motion type that drives the TCP in a straight Cartesian line to the target position. Required when the path must be controlled, such as approaching or departing a pick point.
FINE terminationA motion termination type in HandlingTool that causes the robot to decelerate fully and stop exactly at the taught point before executing the next instruction. Required at pick and place positions for positional accuracy.
CNT (Continuous) terminationA motion termination type that blends the robot smoothly through a via point without a full stop. The value (0–100) controls how closely the robot follows the taught point; CNT100 produces the smoothest blend.
Numeric register (R[n])A FANUC controller variable that stores an integer or real number. Commonly used as a part counter, loop counter, or arithmetic value that the program can read and modify during execution.
Digital output (DO[n])A controller signal line that commands an external device such as a gripper, clamp, or indicator light by switching a physical output ON or OFF.
Digital input (DI[n])A controller signal line that reads the state of an external sensor or switch — for example, a part-present sensor — so the program can make decisions based on real-world conditions.
IF … JMP LBLA HandlingTool conditional branch instruction that evaluates a logical condition (such as DI[1]=OFF) and redirects program execution to a named label if the condition is true, allowing fault handling or alternate logic paths.
TCP (Tool Center Point)The defined reference point at the end of the robot's tooling — typically the center of a gripper jaw or the tip of a weld gun — that the controller uses to calculate and control the robot's position in space.
Position register (PR[n])A FANUC controller variable that stores a complete robot position as Cartesian coordinates or joint angles. Unlike taught positions (P[n]), position registers can be modified mathematically during program execution, enabling offset-based pallet patterns.
In class: Motion-instruction coding drill on the teach pendant: students create a new program, teach five positions (home, approach, pick, retract, place), enter JOINT motion to home and approach, LINEAR motion to pick and place at appropriate speed and termination type (CNT vs. FINE), and run the program observing motion quality. · Register and I/O programming: students add R[1] as a part-counter that increments each cycle, a DO[1] grip signal that activates at the pick point, and a DI[1] part-present sensor check with an IF DI[1]=OFF, JMP LBL[10] statement routing to an alarm routine if the sensor is not triggered. · Program testing with simulated faults: instructor uses a jumper wire to toggle the DI[1] sensor input, and students observe whether the conditional jump executes correctly, trace program flow on the pendant screen, and document I/O state transitions in their lab log.
Materials: FANUC robot cell, teach pendant, jumper wires for I/O simulation, FANUC HandlingTool programming manual, I/O wiring diagram for the cell, lab log, program-checklist rubric
Check: Instructor evaluates program using a rubric: all five positions reachable without joint-limit alarms, motion types correctly assigned, register increments correctly, DI conditional jump executes correctly during fault simulation, program completes a full cycle without errors. Pass = rubric score ≥ 80%.

Practice check8

Answer each question, then check it. Nothing is recorded; this is your own practice.

FANUC CERT — HandlingTool Operation & Programming
1. A robot must lower straight down onto a part sitting in a closely toleranced nest. Which motion type should you use for that move?
FANUC CERT — HandlingTool Operation & Programming
2. You want the robot to blend smoothly through an intermediate via point without stopping. Which termination type should you assign to that motion instruction?
FANUC CERT — HandlingTool Operation & Programming
3. A student writes the line: R[1]=R[1]+1. Where in the pick-and-place program should this line be placed to count only successful cycles?
FANUC CERT — HandlingTool Operation & Programming
4. The instruction IF DI[1]=OFF, JMP LBL[10] is placed after the robot arrives at the pick position. What happens when DI[1] is ON (part present)?
FANUC CERT — HandlingTool Operation & Programming
5. During live testing a student needs to verify that DO[1] switches ON when the gripper instruction executes. Which pendant screen provides real-time DO state information?
FANUC CERT — Robot Safety / ANSI/RIA R15.06
6. A student is jogging the robot inside the cell to teach a new position. According to ANSI/RIA R15.06 guidelines, what is the maximum jog speed allowed while personnel are inside the robot's work envelope?
Safety — Lockout/Tagout
7. Before reaching into the robot cell to adjust a fixture, a student should follow which OSHA standard to control hazardous energy?
FANUC CERT — HandlingTool Operation & Programming
8. A student programs the pick motion as: L P[3] 500mm/sec CNT100. The robot overshoots the pick point and does not reliably grip the part. Which change will most likely fix the problem?
Record this lesson on my transcript. Sign in with your key and enrollment email to record lessons (enroll free if you have no key). This page stays open to read and practise.