MC_SetKinTra

PLCopen motion icon

 Function Block - Sets the kinematic transform between the Machine Coordinate System and the Axes Coordinate System.

Inputs

Input

Data Type

Range

Unit

Default

Description

Execute

BOOL

FALSE, TRUE

N/A

No default

On the rising edge, request to load the kinematic transform.

AxesGroup

AXES_GROUP_REF

No range

N/A

No default

The axes group that receives the axis trajectory values from the kinematic transform.

KinTransform

MC_KIN_REF

No range

N/A

No default

Kinematic robotic transform defined by the MC_KIN_REF Structure.

Outputs

Output

Data Type

Range

Unit

Description

Done

BOOL

FALSE, TRUE

N/A

If TRUE, the command completed successfully.

Error

BOOL

FALSE, TRUE

N/A

If TRUE, an error has occurred.

ErrorID

INT

Enumerated

N/A

Indicates the error if Error output is TRUE.

See PLCopen Function Block ErrorIDs.

Remarks

  • See Function Blocks - General Rules about how inputs and outputs work.
  • It is useful for robotics, allowing the application to command motion in Cartesian coordinates for the robotic system.
  • After MC_SetKinTra(...) is called, the controller automatically calculates the inverse kinematics for the robot axes, converting the robot path motion into the individual robot joint axis trajectories.
  • Several transform types are available for common robotic systems and are configurable with the MC_KIN_REF Structure.
  • The parameters in the MC_KIN_REF structure define the specific robot geometry.
  • See MC_KIN_REF Structure for a description of the structure.

Figure 1: MC_SetKinTra

FBD Language Example

FFLD Language Example

IL Language Example

Not available.

ST Language Example

// MC_SetKinTra ST Example

// DeltaBotTransform is of type MC_KIN_REF


DeltaBotTransform.TransformType := MC_TRANSFORM_TYPE_DELTA; DeltaBotTransform.KinParameters[MC_DELTA_KIN_PARAM_RADIUS_BASE_LENGTH] := 10.0; DeltaBotTransform.KinParameters[MC_DELTA_KIN_PARAM_RADIUS_END_LENGTH] := 2.0; DeltaBotTransform.KinParameters[MC_DELTA_KIN_PARAM_MOTOR_ARM_LENGTH] := 5.0; DeltaBotTransform.KinParameters[MC_DELTA_KIN_PARAM_END_ARM_LENGTH] := 25.0; Inst_MC_SetKinTra(True, DeltaBotAxesGrp, DeltaBotTransform); // ... Inst_MC_MoveLinAbs(True, DeltaBotAxesGrp, PositionList, DeltaBotVel, DeltaBotAcc, DeltaBotDec, LREAL#0.0, MC_COORDINATE_SYSTEM_MCS, MC_BUFFER_MODE_ABORTING, MC_TRANSITION_MODE_NONE, EmptyTransitionParams);