SMC_GroupSetAncillaryAxisLimits (FB)

FUNCTION_BLOCK SMC_GroupSetAncillaryAxisLimits

This function block configures so called ancillary dynamic axis limits for an axis group, that is ancillary limits for the velocity, acceleration, deceleration, and jerk of each axis.

The ancillary limits allow an easy programming of different operating modes of a robot, for example a manual mode in which the robot may only move slowly for safety reasons.

Initially, all ancillary limits are infinite. The limits are not reset when the axis group is disabled or enabled. If an axis is removed from the group, the ancillary limits for this axis are reset. If the axis is added again, later, then the ancillary limits are infinite.

The effective dynamic limits for a movement are built from the following inputs:

  • G: the global axis limits stored in the axis configuration,

  • M: the factors given at the movement function blocks (inputs VelFactor, AccFactor, …),

  • F: the factors set with SMC_GroupSetAxisLimitFactors,

  • O: the current override factors, and

  • A: the ancillary axis limits.

The effective axis limits L are computed from these inputs as L = O * min(A, M * F * G).

Note

  • This function block may not be called in the states GroupDisabled or GroupErrorStop, and, if ExecutionMode equals Immediately, no MC_GroupStop may be active.

  • No axis limit may be zero or negative. Otherwise, the function block returns an error.

  • MC_GroupStop ignores ancillary limits.

InOut:

Scope

Name

Type

Comment

Inout

AxisGroup

AXIS_GROUP_REF_SM3

Reference to an axis group

Input

Execute

BOOL

Sets the limits on rising edge.

ExecutionMode

MC_EXECUTION_MODE

Describes when the new limits become active.

Limits

ARRAY [0..(SMC_RCNST.MAX_AXES - 1)] OF SMC_DYN_LIMITS

The ancillary dynamic limits

Output

Done

BOOL

The limits have been set successfully.

Busy

BOOL

The FB is not finished.

Error

BOOL

Signals that an error has occurred within the function block.

ErrorID

SMC_ERROR

Error identification