Teach pendant programming
Using Skip Conditions
Use a SKIP CONDITION instruction to declare a signal or value test, then attach a Skip motion modifier so a search move cancels early when the condition is met. This is how you build touch-sensing and part-search moves on a FANUC controller, with a branch label handling the case where the condition never triggers.
- Step 1.
Confirm the trigger input works on its own
Before touching the program, verify the digital input, register, or signal that will trigger the skip changes state as expected. Watch it on the I/O screen while you actuate the sensor by hand so you know the controller sees the transition.
Caution: A skip move that relies on a dead or miswired input will run to the full programmed distance before it reacts, so prove the signal first.
- Step 2.
Understand what a skip condition declares
A SKIP CONDITION instruction specifies, in advance, the condition a later skip instruction will use. A skip condition once specified stays valid until the program finishes or the next SKIP CONDITION instruction runs, so declare it before the search move that needs it.
- Step 3.
Insert the SKIP CONDITION instruction
On the program edit screen, choose the instruction menu, select Skip, and pick the SKIP CONDITION line. Place it on a line that always executes before the search move, since a skip instruction cannot run until a skip condition has been executed.
- Step 4.
Choose the variable, operator, and value
Build the condition as variable, operator, value. The variable can be a digital or robot or safety or UOP signal (DI, DO, RI, RO, SI, SO, UI, UO), an analog or group signal (AI, AO, GI, GO), a register R[i], or a system variable, and the operators are >, >=, =, <=, <, and <>.
- Step 5.
Pick the right signal state for a search
For a simple on/off sensor, compare a digital input to ON or OFF, for example SKIP CONDITION DI[1]=ON. To trigger only on a transition, use On+ for the rising edge or Off- for the falling edge, which stay unsatisfied until the signal actually changes state.
- Step 6.
Combine multiple conditions only if needed
You can join up to five conditions on one line with all "and" operators or all "or" operators. Mixing "and" with "or" on the same line is prohibited, and if you switch one operator the controller rewrites the others to match, so keep each skip condition line to a single logic type.
- Step 7.
Attach the Skip modifier to the search move
Cursor onto the search motion line, open the motion modify menu, and add Skip, LBL[i]. The finished line reads like L P[2] 1000mm/sec FINE Skip, LBL[1], which arms that one move with the skip you declared earlier.
- Step 8.
Set a slow, controlled search speed
Teach the search move at a reduced speed so the robot stops close to the true contact point. Slower approach speeds give a more accurate stop position and reduce the impact when the condition is met and motion cancels.
- Step 9.
Add the branch label for a missed condition
Place the LBL[i] you referenced further down the program. If the skip condition is not satisfied by the time the move completes, the controller jumps to that label, so the label is where your "target not found" handling belongs.
- Step 10.
Add logic for a successful skip
The line right after the search move runs when the condition is met and motion cancels. Put your success handling there, such as recording a register flag, backing off, or branching into the next operation.
- Step 11.
Use a high-speed skip when you need the touch position
For touch-sensing where the contact position matters, use the Skip, LBL, PR modifier, taught as Skip, LBL[10], PR[5]=LPOS for Cartesian or =JPOS for joint. When the condition is met the current position is stored in that position register, and if it is missed the branch is taken and no position is stored.
- Step 12.
Account for high-speed skip read error and speed limit
A high-speed skip stops quickly by developing the motor's maximum torque, and the position read accuracy improves as speed drops, with roughly 1.5 mm of error at 100 mm/sec scaling with speed. Each robot model has an automatic speed limit for high-speed skip moves, and taught speeds above it are capped with a warning on the alarm line.
- Step 13.
Test with the target present, then absent
Run the search in test mode at low speed with the part in place and confirm the move cancels and success logic runs. Then run it with the target removed and confirm the robot completes the move and branches to your miss label instead of stalling.
- Step 14.
Optionally dry-test with simulated input skip
The simulated input skip function lets a simulated input be treated as received so you can dry-run logic without the real sensor. Enable it per signal from the I/O digital or robot detail screen using the "Skip when simulated" item, and release everything afterward with UNSIM ALL IO.
Caution: Simulated input skip is for temporary test operation only. Never leave it enabled during production line operation, since wait instructions can time out automatically and motion logic will behave as if signals arrived when they did not.
- Step 15.
What can go wrong: the skip never triggers
If the move always runs to full distance and branches to the label, the skip condition may never have executed, or the signal or state in the condition may be wrong. Confirm the SKIP CONDITION line runs before the move, and recheck the signal number, the operator, and whether you need a level or an edge trigger.
- Step 16.
What can go wrong: the stop position drifts
Inconsistent contact positions usually mean the search speed is too high for the accuracy you need. Lower the taught speed on the search move, and prefer a high-speed skip with position-register capture when you need a repeatable recorded touch point.
- Step 17.
What can go wrong: a hard contact at the end of travel
If the sensor misses and the move runs to its programmed endpoint, the tool can drive into the workpiece or fixture. Keep the search distance short, hold the speed low, and make sure the miss branch stops or retreats the robot rather than continuing blindly.
Caution: Never extend a search move past a solid surface expecting the skip to save it. Correct the cause of a missed trigger and keep clear of the tool path during search testing.
Common questions
- How long does Using Skip Conditions take?
- Using Skip Conditions is rated Intermediate and takes about 25 minutes across 17 steps.
- What tools do I need?
- You will need Teach pendant.
- What should I do before starting?
- Sensor or input used for the skip condition is already configured and tested. A program with the approach move already taught toward the search target.
- What is the first step?
- Confirm the trigger input works on its own. Before touching the program, verify the digital input, register, or signal that will trigger the skip changes state as expected. Watch it on the I/O screen while you actuate the sensor by hand so you know the controller sees the transition.