This function block activates coupling of a master axis and a slave axis with a given gear factor between velocity of the master axis and the slave axis.
The slave axis synchronously follows the movement of the master axis (velocity synchronicity).
The inputs RatioNumerator and RatioDenominator let you set a user-specific gear ratio for the movement of the slave axis.
Library name: PLCopen MC part 1
Namespace: PLCO
Input |
Data type |
Description |
---|---|---|
Master |
Axis_Ref |
Reference to the axis for which the function block is to be executed. |
Slave |
Axis_Ref |
Reference to the axis for which the function block is to be executed. |
Execute |
BOOL |
Value range: FALSE, TRUE. Default value: FALSE. A rising edge of the input Execute starts the function block. The function block continues execution and the output Busy is set to TRUE. This function block can be restarted while it is executed. The target values are overwritten by the new values at the point in time the rising edge occurs. |
RatioNumerator |
INT |
Value range: -2147483648...2147483647 Default value: 1 Numerator of gear ratio. NOTE: The value 0 is invalid. |
RatioDenominator |
UINT |
Value range: 1...2147489647 Default value: 1 Denominator of gear ratio. |
Acceleration The value at this input is used to reach the specified target velocity (acceleration or deceleration). |
LREAL |
Value range: Any positive LREAL value Default value: 0 Acceleration in user-defined units. |
Output |
Data type |
Description |
---|---|---|
InGear |
BOOL |
Value range: FALSE, TRUE. Default value: FALSE. oTRUE: When the adjusted gear ratio is reached. |
Busy |
BOOL |
Value range: FALSE, TRUE. Default value: FALSE. oFALSE: Function block is not being executed. oTRUE: Function block is being executed. |
CommandAborted |
BOOL |
Value range: FALSE, TRUE. Default value: FALSE. oFALSE: Execution has not been aborted. oTRUE: Execution has been aborted by another function block. |
Error |
BOOL |
Value range: FALSE, TRUE. Default value: FALSE. oFALSE: Function block is being executed, no error has been detected during execution. oTRUE: An error has been detected in the execution of the function block. |
ErrorID |
ET_Result |
This enumeration provides diagnostics information. |
The input Acceleration needs to be set to a value greater than 0 before the function block is executed.
The gear ratio can be modified during a movement. However, the new values are taken into account only with the next rising edge of the input Execute.
The slave axis uses the values for Acceleration and Jerk only during the first acceleration phase. The slave axis then follows the master axis.
The library does not provide a separate function block MC_GearOut. A running function block can be replaced by any other function block.
ErrorId |
Cause |
Corrective |
---|---|---|
AxisInErrorStop |
Function block cannot be executed because an axis error has been detected and the axis is in operating state ErrorStop. |
Verify that the axis is not in the operating state ErrorStop when attempting to start a new function block. |
AxisInvalid |
No axis is specified for the input Axis or specified axis does not support the required function. For MC_Touchprobe and MC_AbortTrigger: Specified axis does not support capture. |
Connect the axis for which the function block is to be executed to the input Axis. For MC_Touchprobe and MC_AbortTrigger: Use an axis that supports capture. |
AxisIsDisabled |
Function block cannot be executed because the axis is the operating state Disabled. |
Verify that the axis is not in the operating state Disabled when attempting to start a new function block. |
AxisIsStopping |
Function block cannot be executed because an MC_Stop function block is active and the axis is in the operating state Stopping. |
Verify that the axis is not in the operating state Stopping when attempting to start a new function block. |
IfMotionCommandNotSupported |
The connected axis does not support all of the required functions. |
Verify that the connected axis implements the IF_MotionCommand interface of the MotionInterface library. |
InvalidRatioDenominator |
The value at the in input RatioDenominator is zero. |
Use a value other than zero for the denominator. |
InvalidRatioNumerator |
The value at the in input RatioNumerator is zero. |
Use a value other than zero for the numerator. |
MasterInvalid |
The object at the input Master is invalid. |
Provide a valid reference to the axis for which the function block is to be executed (object from Devices tree such as an axis or an encoder). |
NoBusCommunication |
The fieldbus is not in the state Operational (Sercos: phase 4). |
Verify that the fieldbus is in the state Operational (Sercos: phase 4) at the rising edge of the input Execute and during the execution. |
Ok |
Status message |
- |
OutOfMemory |
Insufficient memory for movement command. |
Reduce the memory required by your application. |
UnexpectedReturnValue |
Indeterminable return value from system. |
Contact your Schneider Electric representative. |