Group State Diagram
Interpolation / Group State Diagram
The state-diagram of the group describes the commanded state of the group of axes. It is on top of the state diagram per axis (as defined in Parts One and Two). While axes are in a group state, the single axis state diagram is also active per axis. Therefore, interdependencies between the two state diagrams exists.
GroupDisabled is the initial state at power up where a group can be created. Issuing MC_GroupEnable leaves this state. The next state is GroupStandby. In this state the group is enabled and no function block has control of any of the axes in the group. In this state the group can additionally be altered and homed if needed (State GroupHoming). In the GroupHoming state, a homing sequence can be defined for a group of axis. This can be applicable due to the mechanical constraints of multiple motors (for example in an mechanical construct looking like the letter “I“ with 2 motors mechanically coupled via one band or belt moving over the form of the letter I, need to be homed differently). If a function block has control of any of the axes of the group, the state changes to GroupMoving. GroupStopping is a special state that deals with the MC_GroupStop command, which automatically transfers to the state GroupStandby as soon as MC_GroupStop.Done is TRUE and MC_GroupStop.Execute is FALSE . If an error arises (in one of the grouped axes) the state changes to GroupErrorStop, which can only be exited by executing MC_ResetGroup.
Explanations:
- Group motion commands will always lead to a SynchronizedMotion state in the single axis state diagram. In case of a GroupStandby all axes of the group are also in single axis state StandStill.
- A GroupErrorStop will not lead to ErrorStops of the grouped axes as the error may only affect the group. In case of a single axis ErrorStop the Group will also change to GroupErrorStop as the single error effects the group.
The state diagram reflects the state of the group and the issued FBs..
Notes
Continuous lines are commanded transitions; dotted lines are automatic transitions.
Note 1: Applicable for all non-administrative (moving) function blocks.
Note 2: In the states GroupErrorStop or GroupStopping, all Function Blocks can be called, although they will not be executed, except MC_GroupReset for GroupErrorStop and any occurring Error– they will generate the transition to GroupStandby or GroupErrorStop respectively.
Note 3: MC_GroupStop.DONE AND NOT MC_GroupStop.EXECUTE
Note 4: Transition is applicable if last axis is removed from the group
Note 5: Transition is applicable while group is not empty.
Note 6: MC_GroupDisable can be issued in all states and will change the state to GroupDisabled.
Relationship of Single Axis and Grouped Axes State Diagrams
When a number of axes are grouped, and a single axis command, like MC_MoveAbsolute, is issued to an axis in this group, this is not allowed. Issuing a single axis command is not accepted and not performed: it signals this by setting the error output of the executed single axis function block. There is no change to the group, and as such continues its movements.
General rules for the interaction between a single axis towards its groups:
• If at least one axis in the group is moved by a command then the group is in the state GroupMoving.
• If all axes are in StandStill, the group can be in the state GroupStandby, GroupDisabled or GroupErrorStop.
• If one axis in a group is in ErrorStop, the whole group is in GroupErrorStop.
• If a single axis MC_Stop is issued the group is in state GroupMoving.
• It is allowed to disable the bus power of a single axis of the axis group without influencing the axes group state. This can be useful to save energy or to apply a mechanical brake for a single axis not involved in the on-going motion.
General rules for the interaction between a group and the single axis in it:
• If the group is commanded by a group moving command, all the single axes in the group are in the state SynchronizedMotion.
• If the group is in the state GroupStandby, the states of the single axes do not have to be all in StandStill.
• If the group is in the state GroupErrorStop the state of the single axis is not affected.
Overview of the influence of group motion commands on a single axis state:
| Command | GroupState | Axis State |
|---|---|---|
| MC_MoveLinearXxx MC_MoveCircularXxx MC_MoveDirectXxx MC_MovePath MC_GroupHalt MC_TrackConveyorBelt MC_TrackRotaryTable | GroupMoving | SynchronizedMotion |
| MC_GroupStop | GroupStopping / GroupStandby | SynchronizedMotion / StandStill |
| MC_GroupReset | GroupErrorStop / GroupStandby | Not relevant for Axis |
Explanation: A stopping group leaves the single axis in synchronized motion as none of the single axis performs a single axis stop.