MC_Halt

PLCopen motion icon

 Function Block - Decelerates an axis to zero velocity.

Inputs

Input

Data Type

Range

Unit

Default

Description

Execute

BOOL

0, 1

N/A

No default

On the rising edge, request to queue the move.

Axis

AXIS_REF

1 to 256

N/A

No default

Name of a declared instance of the AXIS_REF library function.

Deceleration

LREAL

No range

User unit/sec2

No default

Trapezoidal: Deceleration rate.

S-curve: Unused.

See S-curve and Trapezoidal Acceleration / Deceleration.

Jerk

LREAL

No range

User unit/sec3

No default

Trapezoidal: 0 (zero).

S-curve: Constant jerk.

See S-curve and Trapezoidal Acceleration / Deceleration.

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 detailed 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 the Error output is set to TRUE.

See PLCopen Function Block ErrorIDs.

Remarks

  • See Function Blocks - General Rules about how inputs and outputs work.
  • It is a queued single-axis move.
    • The move is complete when the axis reaches zero velocity.
  • It is typically used with Abort at the BufferMode input to terminate a move.
  • See MC_Stop to execute a stop that cannot be aborted.
  • See Main about how this function is used in the Hole punch project.

Figure 1: MC_Halt

Time Diagram

This example shows the behavior in combination with a MC_MoveVelocity.

  • A rotating axis is ramped down with FB2 MC_Halt.
  • Another motion command overrides the MC_Halt command.
    • MC_Halt allows this, in contrast to MC_Stop.
  • The axis can accelerate again without reaching standstill.

Figure 2: Time Diagrams: First and Second FBs

Figure 3: Time Diagram

FBD Language Example

Not available.

FFLD Language Example

IL Language Example

Not available.

ST Language Example

(* MC_Halt ST example *)
Inst_MC_Halt( HaltReq, Axis1,100.0, 100.0, 0 );
//Inst_MC_Halt is an instance of MC_halt function block
HaltComplete := Inst_MC_Halt.Done; //store Done output into user defined variable

See Also