Renishaw Inspection Plus is a suite of probing macros installed on Fanuc CNC controls. Cycles are called via G65 P98xx and handle protected positioning, measurement, calibration, and tool offset updates. Results are stored in common variables #135–#149; calibration data lives in #500–#541.
Cycle Quick Reference
Cycle
Name
Format
Calibration
O9801
Probe Length Calibration
G65 P9801 Zz Tt
O9802
Stylus X/Y Offset Calibration
G65 P9802 Dd [Zz]
O9803
Stylus Ball Radius Calibration
G65 P9803 Dd [Zz Ss]
O9804
Vector Ball Radius Calibration
G65 P9804 Dd [Zz Ss]
Positioning
O9810
Protected Positioning
G65 P9810 Xx Yy Zz [Ff Mm]
Standard Measuring
O9811
Single Surface (X, Y, or Z)
G65 P9811 Xx|Yy|Zz [opts]
O9812
Web / Pocket
G65 P9812 Xx|Yy [Zz] [opts]
O9814
Bore / Boss
G65 P9814 Dd [Zz] [opts]
O9815
Internal Corner
G65 P9815 Xx Yy [opts]
O9816
External Corner
G65 P9816 Xx Yy [opts]
Vector Measuring (requires O9804)
O9821
Angle Single Surface
G65 P9821 Aa Dd [opts]
O9822
Angle Web / Pocket
G65 P9822 Aa Dd [Zz] [opts]
O9823
3-Point Bore / Boss
G65 P9823 Aa Bb Cc Dd [Zz] [opts]
Additional Cycles
O9817
4th Axis X Measurement
G65 P9817 Xx Zz [opts]
O9818
4th Axis Y Measurement
G65 P9818 Yy Zz [opts]
O9819
Bore/Boss on PCD
G65 P9819 Cc Dd Zz|Kk [opts]
O9820
Stock Allowance
G65 P9820 Xx|Yy|Zz Ii Jj Kk [opts]
O9834
Feature-to-Feature
G65 P9834 [Xx Yy Zz Aa Dd] [opts]
O9835
SPC Tool Offset Update
G65 P9835 Tt Mm [opts]
O9843
XY Plane Angle Measure
G65 P9843 Xx|Yy Dd [opts]
Common Optional Inputs
Most measuring cycles accept these optional letter-address inputs:
Input
Description
Notes
H h
Tolerance on feature dimension
Exceeding triggers #3006 alarm
M m
True position tolerance (cylindrical zone)
Evaluated as radial error
Q q
Overtravel distance
Default: 4 mm (Z), 10 mm (X/Y)
S s
Work offset number to update
S1–S6 = G54–G59; S7–S48 = extended
T t
Tool offset number to update
Adjusts wear offset register
W w
Print data (DPRNT)
W1. = feature #; W2. = component #
E e
Experience value
Spare tool offset # storing adjustment
F f
Percent feedback
0–1 fraction for tool offset update
U u
Upper tolerance limit
No offset update if exceeded
V v
Null band
Dead zone—no offset if error within this range
R r
Radial clearance (external features)
Default 5 mm. R-r = force internal
Cycle Input Arguments
O9810 — Protected Positioning
Monitors probe trigger signal during positioning moves. If the probe trips (collision), machine stops immediately with #3000 = 86(PATH OBSTRUCTED).
Input
Req?
Description
X x
Yes
Target X position
Y y
Yes
Target Y position
Z z
Yes
Target Z position
F f
Modal
Feedrate for all protected moves (stays set until changed)
M m
Opt
M1. = flag mode: sets #148 = 7 on trigger instead of alarm
O9811 — Single Surface Measurement
Measures one surface in X, Y, or Z. Only one axis per call.
Input
Req?
Description
X x / Y y / Z z
One required
Nominal surface position
Plus common optional inputs: H, M, Q, S, T, W, E, F, U, V
O9812 — Web / Pocket Measurement
Measures a web (external) or pocket (internal) in X or Y. Omit Z for pocket; include Z for web.
Input
Req?
Description
X x / Y y
One required
Nominal feature size in X or Y
Z z
Opt
Absolute Z for web (external). Omit = pocket.
R r
Opt
Radial clearance for external. R-r = force internal.
Plus common optional inputs: H, M, Q, S, T, W, E, F, U, V
O9814 — Bore / Boss Measurement
Four-touch measurement (X+, X−, Y+, Y−). Omit Z for bore; include Z for boss.
Input
Req?
Description
D d
Yes
Nominal diameter of feature
Z z
Opt
Absolute Z for boss (external). Omit = bore.
R r
Opt
Radial clearance for boss. R-r = force internal.
Plus common optional inputs: H, M, Q, S, T, W, E, F, U, V
What a bore measurement touches: O9814 probes X+, X−, Y+, Y− from the bore center — the touch positions give the center (#135, #136), their spread gives the size (#138).
Calibration Cycles
Cycle
Required Inputs
Purpose
O9801
Z z (ref surface), T t (tool offset #)
Calibrate probe length
O9802
D d (bore diameter), opt Z z for external
Calibrate X/Y stylus offsets → #502, #503
O9803
D d (gauge diameter), opt Z z, S s
Standard ball radius → #500, #501
O9804
D d (gauge diameter), opt Z z, S s
Vector ball radius → #500–#501 + #510–#517
Calibration order: O9801 (length) → O9802 (X/Y offsets) → O9803 or O9804 (ball radius). Use O9804 if you will use vector cycles (O9821/O9822/O9823).
Calibration Variables
Stored in persistent common variables #500–#541. These survive power-off.
Renishaw macros use G31 (skip signal) internally. When the probe contacts the workpiece, the position is captured in system variables:
Variable
Description
#5061
Skip signal X position (machine coords at probe contact)
#5062
Skip signal Y position
#5063
Skip signal Z position
Standard two-touch measuring: fast approach → back-off → slow gauge move at 100 mm/min. Measuring uncertainty ≈ 0.002 mm at 4 ms PLC scan time.
Error & Alarm Handling
#148 — Out-of-Tolerance Flag
Value
Meaning
Offset Update?
0
No error
—
1
OUT OF TOL / OUT OF POS / ANGLE OUT OF TOL
Yes (after cycle start)
2
OUT OF POS
Yes (after cycle start)
3
UPPER TOL EXCEEDED
No
4
ANGLE OUT OF TOL
Yes (after cycle start)
5
DIA OFFSET TOO LARGE
Yes (after cycle start)
6
EXCESS STOCK
No
7
Probe triggered (O9810 flag mode)
—
#3000 Reset Alarms (Program Stop)
Alarm #
Message
Cause
86
PATH OBSTRUCTED
Probe triggered during O9810 move
88
NO FEED RATE
O9810 called without F input
89
NO TOOL LENGTH ACTIVE
G43/G44 not active before probe cycle
91
FORMAT ERROR / INPUT MISSING
Required input not supplied or conflicting inputs
92
PROBE OPEN
Probe already triggered before move (stylus in contact)
93
PROBE FAIL
Probe did not trigger during move (surface not found)
#3006 Cycle-Start-to-Continue Alarms
These pause execution; press cycle start to continue:
Message
Condition
OUT OF TOL
Feature size outside H tolerance
OUT OF POS
Position outside M true position tolerance
ANGLE OUT OF TOL
Angle outside B tolerance
UPPER TOL EXCEEDED
Exceeds U upper tolerance (no offset update)
EXCESS STOCK
Stock exceeds U limit (no offset update)
Output Variables by Cycle
All measuring cycles write results to #135–#149. Variables #148 (out-of-tolerance flag) and #149 (probe error flag) are set by every cycle.
O9811 — Single Surface
Var
Output
#135
X position
#136
Y position
#137
Z position
#140
X error
#141
Y error
#142
Z error
#145
True position error
#146
Metal condition
#147
Direction indicator
O9812 — Web / Pocket
Var
Output
#135
X position
#136
Y position
#138
Size
#140
X error
#141
Y error
#143
Size error
#145
True position error
#146
Metal condition
O9814 — Bore / Boss
Var
Output
#135
X position
#136
Y position
#138
Size (diameter)
#140
X error
#141
Y error
#143
Size error
#145
True position error
#146
Metal condition
O9815 — Internal Corner
Var
Output
#135
X position
#136
Y position
#138
Size
#139
X surface angle
#140
X error
#141
Y error
#142
Y surface angle
#143
Y angle error
#144
X angle error
#145
True position error
O9816 — External Corner
Var
Output
#135
X position
#136
Y position
#139
X surface angle
#140
X error
#141
Y error
#142
Y surface angle
#143
Y angle error
#144
X angle error
#145
True position error
O9817/O9818 — 4th Axis
Var
Output
#135
X position (O9817)
#136
Y position (O9818)
#139
4th axis angle
#143
Height error (Z1−Z2)
#144
Angle correction
O9819 — PCD Bore/Boss
Var
Output
#135
X position
#136
Y position
#137
PCD
#138
Size (diameter)
#139
Angle
#140
X error
#141
Y error
#142
PCD error
#143
Size error
#145
True position error
#146
Metal condition
#147
Hole number
O9820 — Stock Allowance
Var
Output
#144
Maximum value (metal)
#145
Minimum value (metal)
#146
Variation (stock allowance)
O9821 — Angle Single Surface
Var
Output
#135
X position
#136
Y position
#140
X error
#141
Y error
#143
Size error
#145
True position error
#146
Metal condition
O9822 — Angle Web / Pocket
Var
Output
#135
X position
#136
Y position
#138
Size
#140
X error
#141
Y error
#143
Size error
#145
True position error
#146
Metal condition
#147
Direction indicator
O9823 — 3-Point Bore / Boss
Var
Output
#135
X position
#136
Y position
#138
Size (diameter)
#140
X error
#141
Y error
#143
Size error
#145
True position error
#146
Metal condition
O9834 — Feature to Feature
Var
Output
#135
X incremental distance
#136
Y incremental distance
#137
Z incremental distance
#138
Minimum distance
#139
Angle
#140
X error
#141
Y error
#142
Z error
#143
Min distance error
#144
Angle error
#145
True position error
#146
Metal condition
O9843 — XY Angle Measure
Var
Output
#139
Measured angle
#143
Height error
#144
Angle error
Worked Example: Measure a Bore and Act on the Result
This program probes a 25 mm bore with O9814, copies the outputs into user common variables before the next cycle overwrites #135–#149, and stops the machine with a #3000 alarm if the diameter is out of tolerance. The manual branch shown here is the DIY alternative to passing an H tolerance input, which would raise the #3006 OUT OF TOL alarm for you.
O0100 (MEASURE 25MM BORE AND ACT ON RESULT)
(ASSUMES PROBE IS CALIBRATED - O9801, O9802, O9803 COMPLETE)
T20 M6 (LOAD THE SPINDLE PROBE)
G54 G90 G0 X0 Y0 (RAPID OVER NOMINAL BORE CENTER)
G43 H20 Z100. (TOOL LENGTH ACTIVE - ALARM 89 IF OMITTED)
(PROTECTED POSITIONING - A PROBE TRIP RAISES 86 PATH OBSTRUCTED)
G65 P9810 X0 Y0 Z10. F3000. (PROTECTED MOVE TO CLEARANCE - F IS MODAL, ALARM 88 IF NEVER SET)
G65 P9810 X0 Y0 Z-8. (PROTECTED PLUNGE TO MEASURING DEPTH INSIDE THE BORE)
(FOUR-TOUCH BORE MEASUREMENT - NO Z WORD, SO THE FEATURE IS A BORE)
G65 P9814 D25. (MEASURE 25.0 MM NOMINAL BORE)
(COPY OUTPUTS BEFORE THE NEXT CYCLE OVERWRITES #135-#149)
#101 = #138 (MEASURED DIAMETER)
#102 = #135 (MEASURED CENTER X)
#103 = #136 (MEASURED CENTER Y)
#104 = #143 (SIZE ERROR = MEASURED - NOMINAL)
(TOLERANCE BRANCH - ACCEPT +/- 0.05 MM ON DIAMETER)
IF [ABS[#104] LE 0.05] GOTO 100 (IN TOLERANCE - CARRY ON)
#3000 = 100 (BORE DIA OUT OF TOL) (HARD STOP - OPERATOR MUST INVESTIGATE)
N100 (MEASUREMENT ACCEPTED)
G65 P9810 X0 Y0 Z100. (PROTECTED RETRACT TO CLEARANCE)
M30
To also correct a work offset from the same measurement, add S to the O9814 call (e.g. S1 updates G54 with the measured center error) — and check #148 afterwards if you run with alarms suppressed.
References
Renishaw, Inspection Plus Programming Manual, Renishaw plc.