Axis control group

This chapter describes the AxisControlGroup interface. It represents a group of axes that are operated together ‘as one’. The axes in the group transition state together, can move together, etc. An error in one axis stops all.

Usage

Usage pattern of the AxisControlGroup interface is as follows:

  1. An axis control group is created by either:

    1. Creating an axis control group by using the CreateAxisControlGroup method on the Controller interface.

    2. Defining the axis control group in configuration XML as described in AxisControlGroup.

  2. Enabling operation by queuing commands Shutdown, SwitchOn, EnableOperation, just like a single axis control (and any necessary signal writes or other initialization on the individual axis controls)

  3. Queuing any of the (group) move commands (AbsMove, Jog, RelMove) to perform the desired moves.

  4. Waiting for end of move.

  5. Repeat step Item 3 and Item 4 as many times as desired

A axis control group is destroyed by calling Dispose (for C#) or Destroy (for C++).

When creating an axis control group, the following conditions must hold:

  • The queues of the axis controls are idle or halted. Halted queues will be cleared during creation of the axis control group.

  • One of the following conditions hold:

    • All axis controls are in the same state: state of the group is equal to this state.

    • All axis controls are either in Fault state or in SwitchOnDisabled state: group state is Fault.

    • Otherwise: creation fails.

When an axis control group is destroyed, its command queue is cleared, all its executing and queued commands are cancelled. Subsequently all commands reserved at its command queue are released.

Commands

When multiple axis controls have been grouped together in one axis control group, they are operated using command groups queued in the command queue of the group. Queueing commands on an individual axis control will throw a ResourceBusyException.

Events

An axis control group is also an event source, i.e. the object implementing AxisControlGroup also implements the EventSource interface. By default all axis control groups implement the following events:

MemberErrorResponse

A error response request is issued in one or more of the (unpaused) axis controls in this group.

MemberDisableVoltageResponse

A disable voltage request is issued in one or more of the (unpaused) axis controls in this group.

Event responses

The event response mechanism of the axis control group is similar to an individual Axis control, with the exceptions/additions as described in this section:

  • Each individual axis control executes its individual automated response directly without interference of the axis control group.

  • The automated event requests from the response handler in each axis control in an axis control group trigger the corresponding response event in that axis control group.

  • The automated event responses in an axis control group on each corresponding response event are mandatory to keep all axis control states synchronized. (i.e. a disable operation response on one axis control, triggers a disable operation on all axis control within that same group).

  • The axis group’s internal event source is the only event source that requests responses from an axis group; no axis controls, sensors, actuators etc. are taken into account.

  • The event response masks in the axis control group can be used to add additional responses to the axis control group if desired (e.g. configure a quickstop response to the axis control group to achieve a quickstop on all axis controls in that axis control group when an error, shutdown or disable operation response is executed by one of the individual axis).

  • The automated response handler executes the requested transition on the axis control group state machine which in turn synchronizes each individual axis control in that group.

See also

AxisControlGroup

XML configuration example of the axis control group interface.