Design: Exact-Stop and Continuous-Path Modes (Groups 10/11/12)
Task: T-044 (architecture/design)
Goal
Define Siemens-compatible architecture for transition control modes:
- Group 10: exact-stop vs continuous-path (
G60,G64..G645) - Group 11: non-modal exact-stop (
G9) - Group 12: exact-stop block-change criteria (
G601/G602/G603) G641coupling withADIS/ADISPOS
This design maps PRD Section 5.10.
Scope
- modal/non-modal state model and precedence rules
- criterion applicability rules for Group 12 under exact-stop
- representation and semantics of
ADIS/ADISPOSwithG641 - interaction points with feed and motion execution layers
- output schema expectations for transition mode metadata
Out of scope:
- servo control-law internals and real controller lookahead implementation
- machine-vendor trajectory kernel details
Pipeline Boundaries
flowchart LR A[G60/G64..G645/G9/G601..G603/ADIS/ADISPOS] --> B[Parser + Semantic] B --> C[Modal Engine] C --> D[AIL Lowering] D --> E[AilExecutor] P[MachineProfile + TransitionPolicy] --> C P --> E
- Parser/semantic:
- parses mode words and validates value forms
- Modal engine:
- resolves active Group 10 mode, Group 11 block-scope flag, Group 12 criterion
- validates cross-group applicability
- AIL/executor:
- carries transition-state metadata and applies runtime behavior boundaries
Group State Model
Group 10 (modal):
G60exact-stop modeG64,G641,G642,G643,G644,G645continuous-path family
Group 11 (non-modal):
G9exact-stop for current block only
Group 12 (modal criterion):
G601exact-stop fineG602exact-stop coarseG603IPO end
Auxiliary parameters:
ADIS=<value>(path transitions, usually G1/G2/G3 path moves withG641)ADISPOS=<value>(positioning/rapid transitions,G0withG641)
stateDiagram-v2 [*] --> CP_G64 CP_G64 --> ES_G60: G60 ES_G60 --> CP_G64: G64 CP_G64 --> CP_G641: G641 CP_G641 --> CP_G642: G642 CP_G642 --> CP_G643: G643 CP_G643 --> CP_G644: G644 CP_G644 --> CP_G645: G645 CP_G645 --> ES_G60: G60
Precedence and Applicability Rules
- Group 11 (
G9) is block-local and has highest effect for that block. - Otherwise Group 10 modal state defines transition behavior.
- Group 12 criterion is meaningful only when effective exact-stop is active
(
G60modal orG9current block). - Under continuous-path effective mode, Group 12 is retained as modal state but not applied for block-change timing decisions.
Applicability matrix:
G60+ (G601|G602|G603) => criterion appliedG9+ (G601|G602|G603) => criterion applied in current blockG64..G645+ (G601|G602|G603) => criterion inactive (stored, not used)
G641 + ADIS/ADISPOS Coupling
Rules:
ADISandADISPOSare only behavior-relevant when effective Group 10 mode isG641.- if omitted, default value is
0(profile default may override) ADIStargets path transitions;ADISPOStargets positioning (G0) moves
Validation:
- negative values are invalid
- parser reports clear diagnostics for malformed assignments
flowchart TD G[G641 active?] -->|no| I[ignore ADIS/ADISPOS behavior; retain values] G -->|yes| A[apply ADIS to path transitions] G -->|yes| B[apply ADISPOS to rapid transitions]
Runtime Boundary and Output Semantics
AIL transition instruction concept:
{
"kind": "transition_mode",
"group10_mode": "g641",
"group11_block_exact_stop": false,
"group12_criterion": "g602",
"adis": 0.5,
"adispos": 0.0,
"source": {"line": 30}
}
Runtime effective-state concept per executed block:
{
"effective_transition_mode": "exact_stop",
"effective_source": "group11_g9",
"effective_criterion": "g601",
"smoothing_mode": "none"
}
Notes:
- packet/motion outputs should carry effective transition metadata as needed by downstream planner, without embedding full servo behavior.
Interaction Points
- Feed model (Group 15):
- effective transition mode may reduce/shape path velocity at boundaries
- Rapid traverse model (
T-045):- Group 10 state can constrain effective rapid interpolation behavior
- Compensation/transform states:
- can affect whether smoothing/transition elements are allowed
Machine Profile / Policy Hooks
Suggested profile fields:
default_group10_mode(e.g.,g64)default_group12_criterion(e.g.,g602)adis_default,adispos_defaultsupports_g644_with_transform(bool; false -> policy fallback tog642)
Policy interface sketch:
struct TransitionPolicy {
virtual EffectiveTransition resolve(const ModalState& modal,
const BlockContext& block,
const RuntimeContext& ctx,
const MachineProfile& profile) const = 0;
};
Implementation Slices (follow-up)
- Modal registry/state completion
- ensure Groups 10/11/12 are fully represented with scope semantics
- Parser/semantic validation
- robust parsing and validation for
ADIS/ADISPOS - criterion applicability diagnostics/policy notes
- AIL/runtime effective state
- emit and consume transition metadata for each block
- implement Group 11 block-scope override behavior
- Integration coupling
- connect transition state to rapid/feed behaviors via policy boundaries
Test Matrix (implementation PRs)
- parser tests:
- syntax/validation for Group 10/11/12 and
ADIS/ADISPOS
- syntax/validation for Group 10/11/12 and
- modal-engine tests:
- block-local
G9override behavior - Group 12 applicability under exact-stop only
- block-local
- AIL/executor tests:
- effective mode resolution per block
- criterion and smoothing metadata stability
- docs/spec sync:
- update SPEC/program reference as each slice lands
Traceability
- PRD: Section 5.10 (exact-stop and continuous-path modes)
- Backlog:
T-044 - Coupled tasks:
T-045(rapid traverse),T-041(feed model)