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
orGroupErrorStop
, and, ifExecutionMode
equalsImmediately
, 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
Reference to an axis group
Input
Execute
BOOL
Sets the limits on rising edge.
ExecutionMode
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