Axis groups are lightweight named collections of axes.
Use them when you want to:
mc_grp_... helper functionsFor new configurations, define the group directly in the axis YAML:
axis:
id: 1
group: realAxes
When axis.group is set:
GRP_<group>_IDExample:
GRP_realAxes_ID
GRP_virtualAxes_ID
This is the normal path for current YAML-based motion setups.
For classic or scripted setups, groups can also be created explicitly:
Cfg.AddAxisGroup(realAxes)
Cfg.AddAxisToGroupByName(1,realAxes,1)
That path is mainly useful in lower-level command-parser or classic startup flows.
The PLC function library contains mc_grp_... helpers for group-level control and status, for example:
mc_grp_get_busy(...)mc_grp_set_enable(...)mc_grp_halt(...)mc_grp_size(...)Use these when your PLC logic should act on a group instead of one axis at a time.
Master/slave synchronization uses two groups:
The master/slave state machine then switches which group is active and which one follows.
See Master/Slave State Machine.
During the normal finalize flow, ecmccfg also exposes summary information about configured groups.
The main summary PVs are:
$(IOC):MCU-Cfg-AXGRP-Cnt$(IOC):MCU-Cfg-AXGRP<ID>-Nam$(IOC):MCU-Cfg-AXGRP<ID>-AxesThese are mainly intended for overview panels, diagnostics, and operator-facing summaries.
For new configurations:
axis.group in YAML.GRP_<group>_ID macro if PLC code needs the numeric group id.mc_grp_... PLC helpers for group-level logic.addMasterSlaveSM.cmd.