Swivel Plane (CYCLE800)

You have a bore to drill on a face that’s tilted 30° to the table. You could hand-calculate the rotary-axis angles and the shifted origin — or you can tell the control “here is the plane, put the tool normal to it” and let it do the trigonometry. On a Siemens SINUMERIK that command is CYCLE800, the swivel plane cycle: it computes a swivel frame, rotates the coordinate system into the tilted plane, and — because it knows the machine kinematics — moves the rotary axes to actually get the tool there. It is Siemens’ answer to Fanuc’s G68.2 tilted working plane and Heidenhain’s PLANE functions. This page is derived from Siemens’ SINUMERIK 840D sl / 840D / 840Di sl NC Programming manual (A5E47432823B AA, 06/2019), §3.25.1.34.

What CYCLE800 Does

CYCLE800 writes a swivel frame into the frame chain and, unless you tell it not to, positions the machine’s rotary axes so the active machining plane (G17/G18/G19) is rotated to the plane you defined. From that point on, you program the tilted feature in a clean, upright coordinate system — X across the face, Y up the face, Z into it — and the control handles the geometry. What makes it more than a bare frame rotation is the swivel data block (parameter _TC): a commissioned data set that describes the machine’s kinematics (swivel head, rotary table, or mixed), so the cycle can convert your plane into real rotary-axis positions.

It is not a full TCP transformation. When you want the tool tip tracked continuously through simultaneous rotary motion — true 5-axis contouring — you use TRAORI. CYCLE800 is 3+2 work: swivel to a fixed plane, then machine in it. The two connect through the _ST option “track tool tip (TRAORI)” below.

⚠ Retract before you swivel. Plain CYCLE800 does not hold the tool tip still while the rotary axes swing to the new plane — only the _ST “track tool tip (TRAORI)” option does. As the head or table rotates, the tip sweeps through an arc that can cross the part or fixture. That is exactly what _FR is for: set it to retract (1 = Z, 2 = Z then XY, 5 = maximum in the tool direction) so the tool is clear before the swing — or take responsibility for proving the swing path is clear. On a Hirth-toothed (indexed) swivel table the reachable angles are also discrete, so the cycle lands on the nearest grid position, not your exact number.

Swivel data block kinematics (_TC) commissioned CYCLE800 computes swivel frame Rotary axes move tilted plane active program upright in it
CYCLE800 takes the commissioned kinematics (_TC), computes a swivel frame from the plane you defined, and drives the rotary axes so you can program the tilted feature in an upright frame. After SINUMERIK 840D sl NC Programming §3.25.1.34.

The Command — Sixteen Parameters

The programmed call has sixteen transfer parameters:

PositionParameter
CYCLE800(_FR, _TC, _ST, _MODE, _X0, _Y0, _Z0, _A, _B, _C, _X1, _Y1, _Z1, _DIR, _FR_I, _DMODE )
ParamTypeMeaning
_FRINTRetraction mode before swiveling — 0 no retraction, 1 retract machine axis Z, 2 retract Z then XY, 5 maximum retraction in tool direction, incremental retraction in tool direction (see _FR_I).
_TCSTRING[32]Name of the swivel data block (the kinematics). "" selects the sole block if only one exists; "0" deselects the swivel data block and deletes the swivel frames.
_STINTStatus of transformation (digit-coded): new vs. additive, track-tool-tip, approach/align tool — see below.
_MODEINTSwivel mode (bit-coded): how _A/_B/_C are interpreted and the rotation sequence — see below.
_X0, _Y0, _Z0REALReference point before rotation.
_A, _B, _CREAL1st / 2nd / 3rd rotation, interpreted per _MODE.
_X1, _Y1, _Z1REALReference point after rotation.
_DIRINTWhich way the rotary axes travel: -1 position at the smaller rotary-axis value, +1 at the larger, 0 do not swivel (calculate the frame only). Default is -1.
_FR_IREALValue (incremental) of retraction in tool direction.
_DMODEINTDisplay mode — forces G17/G18/G19 for the cycle, and value-vs-arrow beta display.

_TC — The Swivel Data Block (Kinematics)

Everything CYCLE800 knows about your machine — whether the axes are in the head or the table, the pivot lengths, the rotary-axis directions and limits — lives in the swivel data block named by _TC. This block is created during commissioning (by the machine-tool builder), not in the part program; the cycle only references it by name. Pass "" when the machine has a single swivel data set and you want it. Passing "0" is the reset: it deselects the block and deletes the swivel frames the cycle wrote.

_ST — New, Additive, and Track-Tool-Tip

_ST is digit-coded. Its lowest digit chooses how the swivel level relates to what’s already active:

  • New (0) — the swivel level is deleted and recalculated from the current parameters. Each swivel starts from the un-swivelled part.
  • Additive (1) — the new swivel level is added to the already-active swivel level. Stack a second rotation on top of the first.
  • Track tool tip0 do not track, 1 track the tool tip via TRAORI while the rotary axes move (available only if the SWIVEL function was set up that way in commissioning). This is the bridge to true tool-tip-tracked motion.
  • Approach / align tool — a further digit governs approaching or aligning the tool (e.g. align a turning tool or a milling tool when a B-axis kinematic is set up), shown in the swivel screen form.

_MODE — Angle Interpretation and Rotation Sequence

_MODE is bit-coded. The top two bits (bit 7 6) select how the angles are meant:

Bits 7 6InterpretationUses
0 0Swivel angle axis-by-axis_A, _B, _C
0 1Solid angle_A, _B
1 0Projection angle_A, _B, _C
1 1Direct rotary-axis swivel_A, _B

The lower bits (5…0) set the rotation sequence for the axis-by-axis mode — a pair of bits per rotation naming X, Y, or Z: 01 = about X, 10 = about Y, 11 = about Z. The manual’s worked example: axis-by-axis rotation with sequence ZYX is binary 00011011, decimal 27. Only individual rotations about the XYZ geometry axes are allowed — a sequence like ZXZ that repeats an axis is not permitted in one CYCLE800 call. (The XYZ identifiers are the geometry axes of the NC channel.)

Reference Points and _DIR

The before point _X0/_Y0/_Z0 and the after point _X1/_Y1/_Z1 let you rotate about a chosen point and then translate the origin to where you want zero on the tilted face — rotate around the pivot, then land the datum on the corner of the feature. _DIR resolves the ambiguity every swivel machine has: two rotary-axis solutions usually reach the same plane. -1 takes the smaller axis value, +1 the larger, and 0 computes the swivel frame without moving the axes at all (useful when you want the frame but will move the rotaries yourself, or in JOG).

This isn’t cosmetic. The two solutions are physically different rotary positions, and one of them can drive an axis past its software limit ($TC_CARR30–33, the min/max of each rotary axis in the swivel data set) or outside its traverse range — it reaches the plane in theory but not on this machine. So when a swivel alarms out on an axis limit, flipping _DIR to the other solution is the first thing to try. (Whether “smaller/larger” is counted against rotary axis 1 or rotary axis 2 is itself a SWIVEL commissioning choice, shown in the swivel screen form.) On a Hirth-toothed table the choice is further pinned to the discrete grid positions.

Resetting the Swivel Plane

To clear a swivel, call the cycle with an empty argument list:

BlockEffect
N10 CYCLE800()Resets the swivelled plane (deletes the swivel frame).
N20 TRAFOOFResets TRAORI / TRANSMIT / TRACYL … (any active transformation).

Siemens recommends both at the top of every program that uses tool orientation or coordinate transformation, so a leftover swivel frame or transformation from the previous job can’t corrupt the setup. Passing _TC = "0" in a full call likewise deselects the swivel data block and deletes the swivel frames.

CYCLE800 vs. TRAORI vs. Frames

FeatureWhat it isReach for it when…
CYCLE800Swivel to a fixed tilted plane (3+2), writing a swivel frame and moving rotaries.You machine a feature on an angled face and want an upright frame in it.
TRAORIContinuous tool-tip / orientation transformation for simultaneous 5-axis.The tool orientation changes during the cut and the tip must stay on path.
Frames & CYCLE998Measured translations/rotations written into settable or base frames.You’re correcting a mis-set part, not deliberately tilting into a plane.

Machine Data & Options That Affect This

CYCLE800 depends on machine-tool-builder configuration you don’t normally touch. The exact machine-data numbers for parameterizing the swivel transformation and kinematics live in the swivel data block and in Siemens’ commissioning documentation (Function Manual, Special Functions; 3- to 5-Axis Transformations F2) rather than in the NC Programming manual — so the items below are described by function; the transformation itself must be commissioned by the machine-tool builder.

ItemWhat it controls
Swivel data block (referenced by _TC)The commissioned kinematics description — axis type (head / table / mixed), pivot geometry, rotary-axis directions and limits. Created in commissioning; the part program only names it.
SWIVEL function set-upWhether “track tool tip (TRAORI)”, solid/projection/direct angle modes, and direction reference to rotary axis 1 or 2 are available at all — each is enabled during commissioning of SWIVEL.
SD 55221 $SCS_SWIVEL_FUNCTION_MASK, Bit 0Setting data that can gray out the swivel selection “No” in the screen form.
Orientation-transformation machine data ($MC_TRAFO_TYPE_…, kinematics MD)Underlie the track-tool-tip (TRAORI) coupling. Set by the MTB — see the TRAORI page and Function Manual F2 for numbers.

The swivel data block and SWIVEL commissioning are described in the SINUMERIK 840D sl/840D/840Di sl Cycles manual and Function Manual F2; exact machine-data numbers are commissioning data set by the machine-tool builder.

See also — the same idea on other controls: Fanuc programs a tilted plane with G68.2 tilted working plane (and G53.1 to orient the tool); Heidenhain uses the PLANE functions (PLANE SPATIAL / PROJECTED / EULER, with MOVE or TURN). For the neighbouring Siemens features: 5-axis transformation (TRAORI) and workpiece alignment (CYCLE998 & frames). New to tilted-plane machining across brands? Start with the cross-control primer on TWP and TCPM.

Sources: SINUMERIK 840D sl / 840D / 840Di sl NC Programming Programming Manual, A5E47432823B AA (06/2019) — §3.25.1.34 CYCLE800 – swivel plane / swivel tool / align tool, and §2.3.3 program header (reset with CYCLE800() / TRAFOOF). Swivel data block and SWIVEL commissioning: SINUMERIK 840D sl Cycles manual and Function Manual, Special Functions (F2).

Have a question or want to contribute?

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

Get in Touch