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
GroupDisabledorGroupErrorStop, and, ifExecutionModeequalsImmediately, 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
AxisGroupReference to an axis group
Input
ExecuteBOOLSets the limits on rising edge.
ExecutionModeDescribes when the new limits become active.
LimitsARRAY [0..(SMRB.MAX_TOTAL_AXES - 1)] OF SMC_DYN_LIMITS
The ancillary dynamic limits. The first n entries are the limits for the axes of the group’s kinematics. All subsequent entries are for the group’s additional axes.
Output
DoneBOOLThe limits have been set successfully.
BusyBOOLThe FB is not finished.
ErrorBOOLSignals that an error has occurred within the function block.
ErrorIDSMC_ERRORError identification