Table of Contents

Interface IRotaryHalfTurnTieConfig

Namespace
Hi.NcParsers.Dependencys
Assembly
HiMech.dll

How a controller turns a modular rotary axis when an absolute shortest-path target lies exactly opposite its current position: both ways round are a half turn, and the ±180° window of McAbcCyclicPathSyntax cannot pick one by itself (without a rule, the last bit of the target or the anchor decided). Read per axis by that tail pass through OfType<IRotaryHalfTurnTieConfig>().FirstOrDefault() for every value the word itself does not decide — a DC() word carries its own documented positive preference and never asks (a CDC() word is taken the same way by analogy; the manuals state only its shortest path), and a SINUMERIK plain word under MD30455 bit 2 = 0, or an AC() / CAC() word whatever the bit, is decided, half turn included, by the displayed difference of IRotaryAbsoluteWordConfig before the band is reached. A dependency list without an implementation takes the engine default, the negative half turn (anchor − 180°) — the Fanuc manuals describe the shortest path without resolving the tie (B-64304EN-2/01 §5.4 p.95 “Rotating in the direction in which an angular displacement becomes shortest”; parameter No.1008 RABx=0 “In which the distance to the target is shorter”, B-64310EN/02 p.38), so the Fanuc table does not implement this interface.

SiemensMachineDataTable answers ProgrammedSide for a plain, AC() or CAC() word — "When programming AC exclusively or with G90, the traversing direction depends on the rotary-axis actual position. If the target position is greater than the actual position, the axis traverses in the positive direction, otherwise it traverses in the negative direction." (SINUMERIK 840D sl / 828D Function Manual Extended Functions 09/2011, 6FC5397-1BP40-2BA0, R2 Rotary axes §13.3.2 p.857), the rule that decides such a word's whole path through IRotaryAbsoluteWordConfig, so the band itself never sees such a word with bit 2 clear, nor an AC() / CAC() word at all — and Positive for an axis whose MD30455 ($MA_MISC_FUNCTION_MASK) has bit 2 set, which makes a plain G90 word position as DC ("Bit 2 = 1: with G90, modulo axis positioned as standard using DC (shortest path)", same page). The DC() preference itself: "If the path to be traversed is the same in both directions (180°), the positive direction of rotation receives preference." (§13.3.2 p.858 for a modulo axis, §13.3.3 p.863 for one without modulo conversion; example ④ of §13.3.2, Figure 13-6: POS[C] = DC(60) from 240° "preference is given to the positive direction of rotation") — applied by the tail pass to the word.

HeidenhainParameterTable answers ProgrammedSide: "If both equivalent positions are equidistant (i.e., 180° away), the control selects the direction of motion according to the programmed value." with the example "the axis is at 180°. If you program L C+0, the C axis will move to 0. The same is true when programming L C-360, etc. However, if you program L C+360 (or L C+720, etc.), then the C axis will move to 360°" (TNC 640 User's Manual for Setup, Testing and Running NC Programs 01/2021, 1261174-22, p.455 "Software limit switch with modulo axes"; TNC7 User's Manual for Programming and Testing 09/2024, 1358773-23, p.549: "If both equivalent target positions are 180° away, the control selects the direction of motion according to the programmed algebraic sign"). The M126 sections name no default of their own: "If the traverse paths in both directions are identical, you can pre-position the rotary axis and thus also influence the direction of rotation. Within the PLANE functions, you can also select a tilting solution." (TNC 640 ISO 10/2023, 892909-2C, p.440; TNC7 1358773-23, p.575) — so an angle no word programmed (a PLANE solve) takes the engine default on this controller. The rule itself is stated in the software-limit-switch notes for modulo axes, the one place these manuals resolve the tie; the engine applies it to every programmed half-turn tie on this controller, limit switches or not.

public interface IRotaryHalfTurnTieConfig : INcDependency, IMakeXmlSource
Inherited Members
Extension Methods

Methods

HalfTurnTie(string)

The controller's rule for a half-turn tie on the axis.

RotaryHalfTurnTie HalfTurnTie(string axisName)

Parameters

axisName string

Axis name (e.g., “C”).

Returns

RotaryHalfTurnTie