Sinumerik Measuring Cycles

SINUMERIK 828D and 840D sl controls ship with a full suite of built-in measuring cycles — no Renishaw macro package required. Cycles are named CYCLExxx, are normally filled out through parameter screens in SINUMERIK Operate (the control generates the call for you), and write their results to the GUD result arrays _OVR[ ] and _OVI[ ]. Measured differences can automatically correct a work offset or a tool offset.

How Siemens Probing Differs from G65 Macros

On a Fanuc/Haas machine you call vendor macros (G65 P9810…) with letter arguments. On a Sinumerik, measuring cycles are part of the control software: in the program editor you press Meas. workpiece or Meas. tool, pick the measuring variant from softkeys, and fill in an input screen. Operate writes a retranslatable CYCLExxx(…) call into the program with long positional parameter lists (S_MVAR, S_KNUM, S_FA, …). You rarely type these by hand — but you do need to read them, and you need to know which cycle does what.

Two probe families, two cycle families:

ProbeWhat it measuresCycles (milling)Cycles (turning)
Workpiece touch probe (in spindle/turret)Workpiece features → work offset or tool offsetCYCLE976/977/978/979/961/997/998/995/996CYCLE973/974/994
Tool probe (fixed on table/turret area)Tool length and radius → tool offset dataCYCLE971CYCLE982

Workpiece probe tool types: 710 3D multi probe, 712 mono probe, 713 L probe (side boom, allows towing measurement in +Z), 714 star probe, 580 lathe workpiece probe. Calibration tool is type 725. Rules to remember before any cycle call: cancel cutter comp (G40), call no deeper than the 5th program level, and the probe must be the active tool. Measuring cycles are skipped during dry run ($P_DRYRUN) and program test.

Calibration Cycles

Calibrate under the same conditions you will measure in (same plane, same measuring feedrate). Calibration determines the probe trigger points, skew, and effective ball radius and stores them in a calibration data set (1–40, selected via S_PRNUM) that measuring cycles reference later.

CycleVariantCalibrates
Workpiece probe — milling
CYCLE976Length at edgeProbe length in tool axis on a known surface
CYCLE976Radius in ringTrigger values, probe skew, and ball radius in a calibration ring (8 touches, known or unknown center)
CYCLE976Radius at edgeTrigger point in one axis/direction on a reference surface
CYCLE976Between 2 edgesTrigger points + ball radius between two parallel reference surfaces
CYCLE976On ball (sphere)Calibration at any position in space — for swivel/transformation work
Workpiece probe — turning
CYCLE973Length / radius on surface / in grooveLathe probe (SL 5–8) on a known surface or in a reference groove
Tool probe
CYCLE971Calibrate probe (milling)Distances machine/workpiece zero → tool probe trigger points, using calibration tool type 725
CYCLE982Calibrate probe (turning)Lathe tool probe trigger points, using calibration tool type 585/725 or a turning tool

Key screen parameters for CYCLE976: calibration data set (1–40), F calibration/measuring feedrate, measuring direction, Z0 (or ring diameter) reference, DFA measurement path, TSA safe area. First-time gotcha from the manual: on a brand-new probe the data set is still 0, so program TSA larger than the probe ball radius or you will get the “Safe area exceeded” alarm.

PROC CYCLE976(INT S_MVAR, INT S_PRNUM, REAL S_SETV, REAL S_SETV0,
INT S_MA, INT S_MD, REAL S_FA, REAL S_TSA, REAL S_VMS,
REAL S_STA1, INT S_NMSP, INT S_SETV1, INT _DMODE, INT _AMODE)

Workpiece Measuring Cycles — Master Table

Find the feature you need to touch; the cycle follows. All of these can correct a work offset, correct a tool, or just measure (correction target is chosen on the screen).

CycleSoftkey variantsPurpose
Milling
CYCLE978Set edgePosition of one paraxial edge/surface, 1-point measurement in ±X/Y/Z
CYCLE998Align edge / Align planeAngle of an edge (2 points) or a 3D plane (3 points) → rotation in the WO or rotary-axis offset
CYCLE977Groove, rib, rectangular pocket, 1 hole, rectangular spigot, circular spigotWidth/diameter and center point of symmetric features (paraxial; inclined groove/rib via angle input; protection zone supported)
CYCLE979Inner / outer circle segmentDiameter and center of a partial arc when a full bore/boss sweep is impossible
CYCLE961Right-angled corner / any cornerCorner position (inside or outside) → usable as workpiece zero in a WO
CYCLE997Sphere / 3 spheresSphere center (and optionally diameter); 3-sphere version also returns the plane’s angular position → rotation in WO
CYCLE995Angular deviation spindleSpindle squareness to the table, measured on a calibration ball (combines CYCLE997 + CYCLE979 methods)
CYCLE996Measure kinematicsDetermines rotary-axis vectors for 5-axis kinematic transformation (TRAORI / TCARR) from 3 sphere positions per rotary axis; option required
Turning
CYCLE974Front edge, inside/outside diameter1-point measurement of workpiece zero in the measuring axis, or tool offset; diameter programming (DIAMON) applies in X
CYCLE994Inside / outside diameter2-point diameter measurement — both sides probed automatically

Worked example — probing program with logging

Straight from the manual: activate logging, then measure a sphere (CYCLE997), an edge with tool offset (CYCLE978), and align an edge (CYCLE998). Note CYCLE150 is called first and stays modal.

N10 G54
N20 T710 D1 M6                            ; Probe call
...                                       ; Positioning, etc.
N50 CYCLE150(10,1001,"MESSPROT.TXT")      ; Activate logging
N60 CYCLE997(109,1,1,10,1,5,0,45,0,0,0,5,5,5,10,10,10,0,1,,0,)   ; 1st measurement
...                                       ; Positioning, etc.
N90 CYCLE978(200,,4000001,1,77,2,8,1,1,1,"END_MILL_D8",,0,1.01,0.1,0.1,0.34,1,10001,,1,0)  ; 2nd measurement
...                                       ; Positioning, etc.
N120 CYCLE998(100105,10004,0,1,1,1,,1,5,201,1,10,,,,,1,,1,)      ; 3rd measurement
N140 M30

And a single-hole measurement (CYCLE977) correcting a work offset:

T="3D_PROBE_FR" D1 M6
G0 X0 Y0 Z5
N70 CYCLE977(201,,4000001,1,24,,,2,8,0,1,1,,,1," ",,0,1.01,1.01,-1.01,0.34,1,0,,1,1)
M30

The generated log for that call reports setpoint vs. measured X, Y, and diameter and the WO correction applied (“Correction into: Work offset, coarse”). Do not hand-edit these parameter strings — open the call in the editor and Operate retranslates it back into the input screen.

Tool Measuring Cycles

CYCLE971 (milling): measures tool length and/or radius of milling tools and drills against a table tool probe, machine-related or workpiece-related. Measuring with a stationary or rotating spindle is supported (rotating uses up to 3 feedrate/speed steps S_F1/S_S1…S_F3/S_S3), and with a rotating spindle you can individually check teeth for broken inserts. First measurement of a tool writes the geometry component and clears wear; post-measurement puts the difference into wear (SD54762 bit 9 controls the strategy). The corrected difference must fall inside TZL (lower) and TSA/DIF (upper) or the value is rejected with a message.

PROC CYCLE971(INT S_MVAR, INT S_KNUM, INT S_PRNUM, INT S_MA, INT S_MD,
REAL S_ID, REAL S_FA, REAL S_TSA, REAL S_VMS, REAL S_TZL,
REAL S_TDIF, INT S_NMSP, REAL S_F1, REAL S_S1, REAL S_F2,
REAL S_S2, REAL S_F3, REAL S_S3, INT S_EVNUM, INT S_MCBIT,
INT _DMODE, INT _AMODE)

CYCLE982 (turning): calibrates the lathe tool probe and measures turning tools (length L1/L2 for cutting edge positions 1–8), milling tools (length, radius, or both), and drills on a lathe. Same TZL/TSA/DIF tolerance gate. Orientable toolholders are supported; an unsupported variant raises alarm 61037.

Where the Results Go

Every cycle writes to the channel-specific GUD arrays _OVR[ ] (REAL: setpoints, actual values, differences, offsets) and _OVI[ ] (INTEGER: numbers/status). View them under Parameter → Channel GUD → User variable (select SGUD if multiple GUD blocks exist). Index meanings are per-variant — e.g. for CYCLE997 (sphere): _OVR[0..3] setpoints, _OVR[4..7] actuals (diameter + center XYZ), _OVR[8..11] differences. Common across variants:

VariableMeaning
_OVR[8] / _OVR[12]Upper / lower tolerance limit (diameter, axis, or width) — tool-offset variants
_OVR[20]Offset value applied
_OVR[27] / _OVR[28]Work offset range (TZL) / safe area (TSA)
_OVR[29]_OVR[31]Dimensional difference / empirical value / mean value
_OVI[2]Measuring cycle number
_OVI[5]Probe (calibration data set) number
_OVI[8] / _OVI[13]Tool number / DL number (tool-offset variants)
_OVI[9]Alarm number raised by the cycle (0 = none)

Correction targets selected on the input screen (coded into S_KNUM/S_KNUM1): measure only; a settable work offset (active WO, G54…G57, G505, G506, …) as coarse or fine; basic reference or channel-specific basis frame; or a tool offset by tool name TR and edge D — into geometry or wear, length L1–L3 or radius, optionally inverted. Empirical values and mean-value averaging (data sets 1–20, weighting factor FW) can smooth corrections over a series of parts.

Common screen parameters you will see on nearly every cycle:

ScreenTransfer paramMeaning
S_MVARMeasuring variant selector (encodes the softkey choices)
S_KNUMCorrection target (WO / frame number, coarse/fine)
Calibration data setS_PRNUMProbe data set 1–40
X0/Y0/Z0, ∅S_SETV…Setpoints (position, diameter, width)
DFAS_FAMeasurement path either side of the expected surface
TSAS_TSASafe area for the result — beyond this the cycle alarms
TZLS_TZLZero-offset/dead band for tool correction
DIF/TDIFS_TDIFDimensional-difference monitoring for tool correction
TUL / TLLS_TUL/S_TLLWorkpiece upper/lower tolerance limits
MeasurementsS_NMSPNumber of measurements at the same location (1–9)
Data setsS_EVNUMEmpirical / mean value data set selection

Logging: CYCLE150(mode, log_selection, "path") at the top of the program controls the result screen and writes standard logs (text or semicolon-separated tabular format for spreadsheets) with setpoint/measured/difference per feature. CYCLE160 appends user-defined lines from the S_LOGTXT[ ]/S_USERTXT[ ] string arrays. CYCLE150(30,…) re-logs the last measurement from the still-loaded _OVR values without re-probing.

Common Measuring-Cycle Alarms (61xxx)

Measuring cycles raise alarms in the 61xxx range; the number also lands in _OVI[9]. Ones called out in the programming manual:

AlarmMeaning
61037Incorrect measuring version (variant not possible, e.g. rear-side edge on a non-orientable holder)
6130361306Measurement-result alarms — the “for alarm” result-screen mode displays the screen only for these (includes safe area TSA exceeded)
61309Check tool type of the workpiece probe
61343Tool does not exist (bad tool name for tool offset target)
61344Several tools are active (tool-group correction ambiguous)
61403Correction of the work offset not executed
61404Tool correction not executed (e.g. tool is locked)
61430Rotary-axis angular segment limit violated (CYCLE996/997, S_TNVL below minimum)

The complete 61xxx list with remedies is in the SINUMERIK Diagnostics Manual, not the measuring-cycles manual.

References

  • Siemens, SINUMERIK 840D sl / 828D Measuring Cycles Programming Manual, 08/2018, 6FC5398-4BP40-6BA2.

Have a question or want to contribute?

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

Get in Touch