MC_MoveAbsolute

PLCopen motion icon

 Function BlockClosed A function block groups an algorithm and a set of private data. It has inputs and outputs. - Performs a single-axis move to a specified endpoint position.

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 queue the move.

Axis

AXIS_REF

1, 256

N/A

No default

Name of a declared instance of the AXIS_REF library function.

Position

LREAL

See Description.

User units

No default

Endpoint position.

  • If Rollover Position is nonzero, this value must be in the range 0 <= Position < Rollover Position.
  • When not in Rollover mode, the input accepts a 64-bit floating point value.
  • When converted to feedback units, the range is [-251, 251-1].

Velocity

LREAL

No range

User unit/sec

No default

Velocity setpointClosed Setpoint is the target value that an automatic control system, for example PID controller, will aim to reach.

Acceleration

LREAL

No range

User unit/sec2

No default

Trapezoidal: Acceleration rate.

S-curve: Maximum acceleration.

Deceleration

LREAL

No range

User unit/sec2

No default

Trapezoidal: Deceleration rate.

S-curve: Unused.

See S-curve and Trapezoidal Acceleration / Deceleration for more information.

Jerk

LREAL

No range

User unit/sec3

No default

Trapezoidal: 0 (zero).

S-curve: Constant jerkClosed In physics, jerk is the rate of change of acceleration; more precisely, the derivative of acceleration with respect to time.

Direction

SINT

0, 4

N/A

No default

When Rollover Position is zero, a value of 0 must be specified.

When Rollover Position is nonzero, a value of 1, 2, 3, or 4 must be specified.

Value

Description

0

No direction specification.

1

Positive direction.

The axis travels in the positive direction to the endpoint.

2

Shortest distance.

The axis travels in the direction that provides the shortest distance to the endpoint.

3

Negative direction.

The axis travels in the negative direction to the endpoint.

4

Last direction.

The axis travels to the endpoint in the same direction as its previous move.

If the Position input is the same as the axis's current position, then:

  • If Direction = 2 (shortest distance):
    • The axis does not move.
    • The Done output goes high indicating that the move has been completed.
  • If Direction = 1, 3, or 4:
    • The axis travels in the specified direction, through one rollover cycle.
    • The axis arrives back at the same position.

BufferMode

SINT

0, 5

N/A

No default

  • 0 = Abort.
  • 1 = Buffer.
  • 2 = Blend to active.
  • 3 = Blend to next.
  • 4 = Blend to low velocity.
  • 5 = Blend to high velocity.
  • See Buffer Modes for more information.

Outputs

Output

Data Type

Range

Unit

Description

Done

BOOL

No range

N/A

Indicates the move completed successfully.
The Command Position has reached the endpoint.

Busy

BOOL

No range

N/A

High from the moment the Execute input goes high until the time the move is ended.

Active

BOOL

No range

N/A

Indicates this move is the Active move.

CommandAborted

BOOL

No range

N/A

Indicates the move was aborted.

Error

BOOL

No range

N/A

Indicates either:

  • An invalid input was specified.
  • The move was terminated due to an error.

ErrorID

INT

No range

N/A

Indicates the error if Error output is TRUE.

See PLCopen Function Block ErrorIDs for more information.

Remarks

See Main for more information about how this function is used in the Hole punch project.

MC_MoveAbsolute

Figure 6-225: MC_MoveAbsolute

Time Diagram

These images show two examples of the combination of two absolute move Function Blocks (FBs):

  • The left part of the diagram illustrates when the second FB is called after the first one. 
    • If the first reaches the commanded position of 6000, and the velocity is 0 (zero), the output Done causes the second FB to move to the position 10000.
  • The right part of the diagram illustrates when the second move FB starts the execution while the first FB is still executing. 
    • The first motion is interrupted and aborted by the Test signal during the constant velocity of the first FB.
    • The second FB moves directly to the position 10000 although the position of 6000 is not yet reached.

Figure 6-226: Time Diagrams: First and Second FBs

MC_MoveAbsolute: Timing Diagram

Figure 6-227: Time Diagram

FBD Language Example

Not available.

FFLD Language Example

MC_MoveAbsolute: LD example

IL Language Example

Not available.

ST Language Example

            (* MC_MoveAbsolute S
T example *)
Inst_MC_MoveAbsolute( MovAbsReq, Axis1, 1234.567, 100.0, 100.0, 100.0, 0, 0, 0 );  //instance of MC_MoveAbsolute
MovAbsDone := Inst_MC_MoveAbsolute.Done;  //store done output into user defined variable
MovAbsBusy := Inst_MC_MoveAbsolute.Busy;
MovAbsActive := Inst_MC_MoveAbsolute.Active;
MovAbsAborted := Inst_MC_MoveAbsolute.CommandAborted;
MovAbsError := Inst_MC_MoveAbsolute.Error;
MovAbsErrID := Inst_MC_MoveAbsolute.ErrorID;

See Also