MC_GearInPos

MC_GearInPos 1:

This function block commands a gear ratio between the position of the slave and master axes from the synchronization point onwards.

Syntax

Definition:

FUNCTION_BLOCK MC_GearInPos
VAR_INPUT
    Master                     : Type_Master1D;
    Slave                      : Reference To AXIS_REF;
    Execute                    : BOOL;
    RatioNumerator             : LREAL;
    RatioDenominator           : UDINT;
    MasterSyncPosition         : LREAL;
    SlaveSyncPosition          : LREAL;
    Velocity                   : LREAL;
    Acceleration               : LREAL;
    Deceleration               : LREAL;
    Jerk                       : LREAL;
    BufferMode                 : EBufferMode;
    ReactionToMasterError      : EReactionToMasterError;
    ReactionToSlaveError       : EReactionToSlaveError;
    AllowedSlaveSyncDirections : ESyncDirection;
END_VAR
VAR_OUTPUT
    InSync                     : BOOL;
    SyncState                  : EGearInPosSyncState;
    Busy                       : BOOL;
    Active                     : BOOL;
    CommandAborted             : BOOL;
    Error                      : BOOL;
    ErrorId                    : UDINT;
    MasterHasError             : BOOL;
END_VAR

MC_GearInPos 2: Inputs

Name

Type

Default

Description

Master

Type_Master1D

 

Reference to the master axis

Slave

Reference To AXIS_REF

 

Reference to the slave axis

Execute

BOOL

 

Trigger the command with rising edge.

RatioNumerator

LREAL

1.0

Gear ratio numerator

RatioDenominator

UDINT

1

Gear ratio denominator

MasterSyncPosition

LREAL

#Invalid

Position of master axis where master and slave axis are synchronized.

SlaveSyncPosition

LREAL

#Invalid

Position of slave axis where master and slave axis are synchronized.

Velocity

LREAL

#Maximum

Maximum velocity during synchronization ([PosUnit]/s, positive)

Acceleration

LREAL

#Default

Maximum acceleration during synchronization ([PosUnit]/s^2, positive)

Deceleration

LREAL

#Default

Maximum deceleration during synchronization ([PosUnit]/s^2, positive)

Jerk

LREAL

#Default

Maximum jerk during synchronization ([PosUnit]/s^3, positive)

BufferMode

EBufferMode

Aborting

Chronological sequence of the command

ReactionToMasterError

EReactionToMasterError

TriggerSlaveError

Reaction if an error occurs in the master while this command is active.

ReactionToSlaveError

EReactionToSlaveError

TriggerMasterError

Reaction if an error occurs in the slave while this command is active.

AllowedSlaveSyncDirections

ESyncDirection

TowardsSlaveSyncPosition

Allowed directions for establishing initial synchronization

MC_GearInPos 3: Outputs

Name

Type

Description

InSync

BOOL

True if SyncState == InSync (slave coupled to the master AND master has passed its master sync position).

SyncState

EGearInPosSyncState

Synchronization state. See EGearInPosSyncState for details.

Busy

BOOL

Function block is not finished and new output values are to be expected.

Active

BOOL

Function block has active control on the axis.

CommandAborted

BOOL

Command is aborted by another command.

Error

BOOL

Error occurred within function block.

ErrorId

UDINT

Error identifier

MasterHasError

BOOL

Master is in error state.

Additional information on ReactionToSlaveError and ReactionToMasterError

As a general rule, if there is an error on the slave axis:

  • Slave axis: The coupling is released, and the response depends on the error type.
  • Master Axis: The master axis reports an error and either follows the MC's stop ramp or continues its current motion without being affected.

If there is an error on the master axis:

  • Master axis: The response depends on the type of error.
  • Slave axis: The slave axis reports an error and follows either the MC's stop ramp or the master axis's setpoints.

Detailed information is provided in the Error behavior chapter.

Version information

  • TwinCAT Standard >= v3.1.4026.23.1
  • TF5500 MC3 Base >= v4.0.6