MC_SetKinTra

PLCopen motion icon

 Function BlockClosed A function block groups an algorithm and a set of private data. It has inputs and outputs. - Sets the kinematic transform between the Machine Coordinate System and the Axes Coordinate System.

Inputs

Input

Data Type

Range

Unit

Default

Description

Execute

BOOL

0, 1

N/A

No default

On the rising edgeClosed A rising edge is the transition of a digital signal from low to high. It is also called positive 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

 

 

If TRUE, the command completed successfully.

Error

BOOL

 

 

If TRUE, an error has occurred.

ErrorID

INT

 

 

Indicates the error if Error output is TRUE.

See the table in PLCopen Function Block ErrorIDs.

Remarks

  • See Function Blocks - General Rules for more information 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 6-128: 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);