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
axisNamestringAxis name (e.g., “C”).