APIs, concepts, guides, and more
MotionController::NetworkSyncGroupStatus

Status of a single EtherCAT sync group. More...

Attributes

uint32_t ActualWkc
 Most recent actual Working Counter. Less than ExpectedWkc while a group node is out of OP.
bool DataValid
 true when the group's cyclic data is trustworthy (WKC matches). The master clears this on a tolerated WKC mismatch and sets it when the WKC matches again.
uint32_t ExpectedWkc
 Expected Working Counter for this group's cyclic datagram.
uint32_t Id
 Sync group id (0 = default group).
uint32_t NodeCount
 Number of nodes assigned to this group.
uint64_t NonOperationalNodeMask
 Bitmask (by node index, up to 64 nodes) of this group's member nodes NOT in OP. Bit i set means node index i is down. 0 when the group is healthy. Use to identify exactly which servo dropped in a multi-node group. Refreshed about once per second while degraded.
uint32_t OperationalNodeCount
 Number of this group's member nodes currently in the OP state. Equals NodeCount when healthy; drops below it while a member node is down. Refreshed about once per second while degraded.
RSINetworkSyncGroupState State
 Current group state – see RSINetworkSyncGroupState for the meaning of each value.
uint32_t ToleratedWkcCount
 Cumulative count of WKC mismatches tolerated for this group since network start. Increments while a WKC-tolerant datagram of this group is mismatching; mismatches that escalate to a fatal network error are not counted.

Description

A sync group is a set of nodes (assigned via RapidCodeNetworkNode::ConfigSet with a non-zero SyncGroup) that get their own cyclic datagram and expected Working Counter (WKC), so their process-data health is evaluated independently of the rest of the network. Group 0 is the mandatory default group: it is never degraded or recovered, and its failures remain fatal to the network. The master updates these fields cyclically. See Sync Groups for the full concept (configuration workflow, monitoring, and recovery).

Note
State and DataValid are authoritative (the master maintains them every cycle from the working counter). The per-node OperationalNodeCount/NonOperationalNodeMask are derived from AL-status snapshots refreshed only about once per second while degraded, so they may lag the live device state by up to ~1 s; for an authoritative per-node AL state read it live with RapidCodeNetworkNode::ServiceChannelRead(0x0130) (AL Status register).
While the group's WKC mismatches (DataValid false), the master stops copying inputs for the ENTIRE group: healthy members keep their last-good values, frozen. See Sync Groups for guidance on choosing group membership.
ToleratedWkcCount is cumulative per network session (it only resets when the network is restarted). To measure a single degradation event, snapshot it before and after and take the delta rather than reading the absolute value.
See also
NetworkSyncGroupStatusGet, NetworkSyncGroupCountGet, NetworkSyncGroupRecover, RapidCodeNetworkNode::Config

Definition at line 2320 of file rsi.h.