Haas Renishaw Inspection Plus

Renishaw Inspection Plus adapted for Haas NGC controls. Cycles are called via G65 P98xx with the same cycle numbers as Fanuc, but variable numbering is completely different: outputs live in #185#199 and calibration data in #556#597. Haas uses G103 P1 for look-ahead suppression (embedded in settings macro O9724).

Haas vs. Fanuc — Key Differences

PurposeHaasFanuc
Output variables#185#199#135#149
Feature-to-feature storage (P1)#180#184#130#134
Skip positions#174#176#5061#5063
Calibration base#556 (556+n)#500 (500+n)
Look-ahead controlG103 P1Varies by version
Work offset S-codeS1–S6 = G54–G59; S154.01–S154.99S1–S6 = G54–G59; S7–S48 extended
Settings macro #1703 (radius+alarms), 19 (dia+alarms), 7 (radius+flag), 23 (dia+flag)Similar but Fanuc-specific values

Haas NGC Macro Variable Layout

RangeUse
#0#33Volatile, general use (arguments + local)
#100#119Reserved for Haas
#120#139Available for user
#140#155Purchased devices (probe, bar feeder, pallet changer)
#156#199Probe use (output variables)
#500#519Reserved for Haas
#520#539Available for user (persistent)
#540#555Purchased devices (persistent)
#556#599Probe use (calibration data, persistent)

Cycle Quick Reference

CycleNameFormat
Calibration
O9801Probe Length CalibrationG65 P9801 Zz Tt
O9802Stylus X/Y Offset CalibrationG65 P9802 Dd [Zz]
O9803Stylus Ball Radius CalibrationG65 P9803 Dd [Zz Ss]
O9804Vector Ball Radius CalibrationG65 P9804 Dd [Zz Ss]
Positioning
O9810Protected PositioningG65 P9810 Xx Yy Zz [Ff Mm]
Standard Measuring
O9811Single Surface (X, Y, or Z)G65 P9811 Xx|Yy|Zz [opts]
O9812Web / PocketG65 P9812 Xx|Yy [Zz] [opts]
O9814Bore / BossG65 P9814 Dd [Zz] [opts]
O9815Internal CornerG65 P9815 Xx Yy [opts]
O9816External CornerG65 P9816 Xx Yy [opts]
Vector Measuring (requires O9804)
O9821Angle Single SurfaceG65 P9821 Aa Dd [opts]
O9822Angle Web / PocketG65 P9822 Aa Dd [Zz] [opts]
O98233-Point Bore / BossG65 P9823 Aa Bb Cc Dd [Zz] [opts]
Additional Cycles
O98174th Axis X MeasurementG65 P9817 Xx Zz [opts]
O98184th Axis Y MeasurementG65 P9818 Yy Zz [opts]
O9819Bore/Boss on PCDG65 P9819 Cc Dd Zz|Kk [opts]
O9820Stock AllowanceG65 P9820 Xx|Yy|Zz Ii Jj Kk [opts]
O9832Turn Probe OnG65 P9832 (no inputs)
O9833Turn Probe OffG65 P9833 (no inputs)
O9834Feature-to-FeatureG65 P9834 [Xx Yy Zz Aa Dd] [opts]
O9835SPC Tool Offset UpdateG65 P9835 Tt Mm [opts]
O9843XY Plane Angle MeasureG65 P9843 Xx|Yy Dd [opts]

Common Optional Inputs

Most measuring cycles accept these optional letter-address inputs:

InputDescriptionNotes
H hTolerance on feature dimensionExceeding triggers #3006 alarm
M mTrue position tolerance (cylindrical zone)Evaluated as radial error
Q qOvertravel distanceDefault: 4 mm (Z), 10 mm (X/Y)
S sWork offset number to updateS1–S6 = G54–G59; S154.01–S154.99
T tTool offset number to updateType C: E1–E100 length, E401–E500 radius
W wPrint data (DPRNT)W1. = feature #; W2. = component #
E eExperience valueSpare tool offset # storing adjustment
F fPercent feedback0–1 fraction for tool offset update
U uUpper tolerance limitNo offset update if exceeded
V vNull bandDead zone—no offset if error within this range
R rRadial clearance (external features)Default 5 mm. R-r = force internal

Cycle Input Arguments

O9810 — Protected Positioning

Monitors probe trigger during all positioning moves. Collision triggers #3000 = 86(PATH OBSTRUCTED). Feedrate F is modal—once set, it persists across subsequent O9810 calls.

InputReq?Description
X xYesTarget X position
Y yYesTarget Y position
Z zYesTarget Z position
F fModalFeedrate for all protected moves
M mOptM1. = flag mode: sets #198 = 7 on trigger instead of alarm

O9811 — Single Surface Measurement

InputReq?Description
X x / Y y / Z zOne requiredNominal surface position (one axis per call)
Plus common optional inputs: H, M, Q, S, T, W, E, F, U, V

O9812 — Web / Pocket Measurement

InputReq?Description
X x / Y yOne requiredNominal feature size in X or Y
Z zOptAbsolute Z for web (external). Omit = pocket.
R rOptRadial 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.

InputReq?Description
D dYesNominal diameter of feature
Z zOptAbsolute Z for boss (external). Omit = bore.
R rOptRadial clearance for boss. R-r = force internal.
Plus common optional inputs: H, M, Q, S, T, W, E, F, U, V

Calibration Cycles

CycleRequired InputsPurpose
O9801Z z (ref surface), T t (tool offset #)Calibrate probe length
O9802D d (bore diameter), opt Z z for externalCalibrate X/Y stylus offsets → #558, #559
O9803D d (gauge diameter), opt Z z, S sStandard ball radius → #556, #557
O9804D d (gauge diameter), opt Z z, S sVector ball radius → #556#557 + #566#573

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 #556#597 (base 556). These survive power-off.

VariableNameDescription
#556XRADX calibration ball radius
#557YRADY calibration ball radius
#558XOFFX-axis stylus offset
#559YOFFY-axis stylus offset
#562BMCFBack-off distance (basic move control factor)
#565Active vector radius (for O9821/O9822/O9823)
#566#573VRADVector calibration radii at 30° intervals
#574#577K1Multi-stylus K1 store (XRAD, YRAD, XOFF, YOFF)
#578#581K2Multi-stylus K2 store
#582#589K11Vector multi-stylus K11 store
#590#597K12Vector multi-stylus K12 store

Skip Signal & Internal Variables

On Haas, skip positions are stored by the basic move macro O9726 into common variables (not system variables like Fanuc):

VariableDescription
#174Stored X skip position (from O9726)
#175Stored Y skip position
#176Stored Z skip position
#177X average skip position (from O9721 X diameter move)
#178Y average skip position (from O9722 Y diameter move)
#173Position zone (default 0.05 mm). Prevents false reads at accel/decel.

Standard two-touch: gauge feedrate = 100 mm/min (3.94 in/min), measuring uncertainty ≈ 0.002 mm. One-touch option: default 500 mm/min, uncertainty proportional to feedrate.

Error & Alarm Handling

#198 — Out-of-Tolerance Flag

ValueMeaningOffset Update?
0No error / no probe trigger (O9810 flag mode)
1OUT OF TOL / OUT OF POS / ANGLE OUT OF TOLYes (after cycle start)
2OUT OF POSYes (after cycle start)
3UPPER TOL EXCEEDEDNo
4ANGLE OUT OF TOLYes (after cycle start)
5DIA OFFSET TOO LARGEYes (after cycle start)
6EXCESS STOCKNo
7Probe triggered (O9810 flag mode)

Flag-only mode: set #170 to 7 (radius) or 23 (diameter) to suppress alarms and only set #198. Intended for FMS/unmanned operation—your program must check #198 after each cycle.

#3000 Reset Alarms (Program Stop)

Alarm #MessageCause
86PATH OBSTRUCTEDProbe triggered during O9810 move
88NO FEED RATEO9810 called without F input
89NO TOOL LENGTH ACTIVEG43/G44 not active before probe cycle
91FORMAT ERROR / INPUT MISSINGRequired input not supplied or conflicting inputs
92PROBE OPENProbe already triggered before move
93PROBE FAILProbe did not trigger during move
101PROBE START UP FAILUREO9832 failed to activate probe after 4 attempts

#3006 Cycle-Start-to-Continue Alarms

MessageCondition
OUT OF TOLFeature size outside H tolerance
OUT OF POSPosition outside M true position tolerance
ANGLE OUT OF TOLAngle outside B tolerance
UPPER TOL EXCEEDEDExceeds U upper tolerance (no offset update)
EXCESS STOCKStock exceeds U limit (no offset update)
DIA OFFSET TOO LARGEDiameter offset correction too large
PROBE SWITCH OFF FAILUREO9833 could not deactivate probe

Output Variables by Cycle

All measuring cycles write results to #185#199. Variables #198 (out-of-tolerance flag) and #199 (probe error flag) are set by every cycle.

O9811 — Single Surface

VarOutput
#185X position
#186Y position
#187Z position
#190X error
#191Y error
#192Z error
#195True position error
#196Metal condition
#197Direction indicator

O9812 — Web / Pocket

VarOutput
#185X position
#186Y position
#188Size
#190X error
#191Y error
#193Size error
#195True position error
#196Metal condition

O9814 — Bore / Boss

VarOutput
#185X position
#186Y position
#188Size (diameter)
#190X error
#191Y error
#193Size error
#195True position error
#196Metal condition

O9815 — Internal Corner

VarOutput
#185X position
#186Y position
#188Size
#189X surface angle
#190X error
#191Y error
#192Y surface angle
#193Y angle error
#194X angle error
#195True position error

O9816 — External Corner

VarOutput
#185X position
#186Y position
#189X surface angle
#190X error
#191Y error
#192Y surface angle
#193Y angle error
#194X angle error
#195True position error

O9817/O9818 — 4th Axis

VarOutput
#1894th axis measured position
#193Height error (Z1−Z2)
#194Angle correction

O9819 — PCD Bore/Boss

VarOutput
#185X position
#186Y position
#187PCD
#188Size (diameter)
#189Angle
#190X error
#191Y error
#192PCD error
#193Size error
#195True position error
#196Metal condition
#197Hole number

O9820 — Stock Allowance

VarOutput
#194Maximum value (metal)
#195Minimum value (metal)
#196Variation (stock allowance)

O9821 — Angle Single Surface

VarOutput
#185X position
#186Y position
#190X error
#191Y error
#193Size error
#195True position error
#196Metal condition

O9822 — Angle Web / Pocket

VarOutput
#185X position
#186Y position
#188Size
#190X error
#191Y error
#193Size error
#195True position error
#196Metal condition
#197Direction indicator

O9823 — 3-Point Bore / Boss

VarOutput
#185X position
#186Y position
#188Size (diameter)
#190X error
#191Y error
#193Size error
#195True position error
#196Metal condition

O9834 — Feature to Feature

VarOutput
#185X incremental distance
#186Y incremental distance
#187Z incremental distance
#188Minimum distance
#189Angle
#190X error
#191Y error
#192Z error
#193Min distance error
#194Angle error
#195True position error
#196Metal condition

O9843 — XY Angle Measure

VarOutput
#189Measured angle
#193Height error
#194Angle error

References

  • Renishaw, Inspection Plus Programming Manual, Renishaw plc.
  • Haas, Operator’s Manual / NGC Programming Guide, Haas Automation, Inc.

Have a question or want to contribute?

Contact us with corrections, additions, or topics you'd like covered.

Get in Touch