MCFB_StepAbsSwitch

PLCopen motion icon

 Function BlockClosed A function block groups an algorithm and a set of private data. It has inputs and outputs. - HomingClosed The Homing procedure allows, based on a position measurement, to set a position offset to the motor in order to ensure it is physically at the home position to a home switch.

Inputs

Input

Data Type

Range

Unit

Default

Description

Execute

BOOL

0, 1

N/A

No default

Request the homing step procedure at the rising edgeClosed A rising edge is the transition of a digital signal from low to high. It is also called positive edge.

Outputs are reset when execute input is FALSE.

AxisID

AXIS_REF

1, 256

N/A

No default

Name of a declared instance of the AXIS_REF library function.

See AXIS_REF Structure for more information.

Direction

DINT

0, 3

N/A

No default

Defines the axis homing direction.

  • 0 (zero) = Clockwise rotation.
  • 1 = Counterclockwise rotation.
  • 2 = Clockwise if AbsoluteSwitch starts Off and negative if switch starts On.
  • 3 = Counter-clockwise if AbsoluteSwitch starts On and positive if switch starts Off.

SwitchMode

DINT

0, 3

N/A

No default

Switch state to complete homing.

  • 0 (zero) = Switch is on.
  • 1 = Switch is off.
  • 2 = Rising edge of switch.
  • 3 = Falling edge of switch.

Velocity

LREAL

No range

User unit/sec

No default

Commanded velocity for the homing move.

Acceleration

LREAL

No range

User unit/sec2

No default

Commanded acceleration for the homing move.

Deceleration

LREAL

No range

User unit/sec2

No default

Commanded deceleration for the homing move.

JerkClosed In physics, jerk is the rate of change of acceleration; more precisely, the derivative of acceleration with respect to time

LREAL

No range

User unit/sec3

No default

Commanded jerkClosed In physics, jerk is the rate of change of acceleration; more precisely, the derivative of acceleration with respect to time for the homing move.

If 0 (zero), trapezoidal acc/dec is used.

TorqueLimit

LREAL

No range

User units

No default

Maximum torqueClosed Torque is the tendency of a force to rotate an object about an axis. Just as a force is a push or a pull, a torque can be thought of as a twist applied for the homing move.

  • Entered in thousandths of maximum torque.
  • Example: 250 is 250/1000, or 25%.

TimeLimit

TIME

No range

Sec

No default

Maximum time for homing move to complete.

  • If exceeded, the homing procedure errors out.
  • 0 (zero) = no time limit.

DistanceLimit

LREAL

No range

User units

No default

Maximum distance for homing move to complete.

  • If exceeded, the homing procedure errors out.
  • 0 (zero) = no distance limit.

AbsoluteSwitch

BOOL

0, 1

N/A

No default

The absolute switch input I/O point.

PosLimitSwitch

BOOL

0, 1

N/A

No default

The positive direction limit switch input I/O point.

NegLimitSwitch

BOOL

0, 1

N/A

No default

The negative direction limit switch input I/O point.

SwitchMode

SINT

0, 5

N/A

No default

Switch state to complete homing.

  • 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

 

N/A

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

Busy

BOOL

 

N/A

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

Active

BOOL

 

N/A

Indicates this move is the Active move.

CommandAborted

BOOL

 

N/A

Indicates the move was aborted.

Error

BOOL

 

N/A

Indicates either:

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

ErrorID

INT

 

N/A

Indicates the error if the Error output is set to TRUE.

Error identifier:

ErrorID

Description

1

TimeLimit exceeded.

2

DistanceLimit exceeded.

3

TorqueLimit exceeded.

4

Axis error stop state.

5

Axis not enabled.

6

Invalid inputs for Velocity-Acceleration-Deceleration.

Remarks

  • Performs a homing function by searching for an absolute positioned external physical switch.
  • An Absolute Switch has two Off (or On) areas.

This image shows the function or function block I/O.

MCFB StepAbsSwitch

Figure 6-99: MCFB_StepAbsSwitch

Usage

This physical layout has the risk that homing is started in the wrong direction (escaping the switch).

To support such case, it implements a special behavior when Limit Switches are found (or the AbsSwitch itself is On at Execute).

An overlapping switch configuration is also possible.

This has same the behavior as working on the limit switches:

If the input Direction is set to a fixed direction (MC_Positive or MC_Negative), then the initial switch state is ignored.

Used for example in rotary axis where only one sense of rotation is allowed:

FBD Language Example

UDFB StepAbsSwitch: FBD example

FFLD Language Example

UDFB StepAbsSwitch: LD example

IL Language Example

Not available.

ST Language Example

NegativeDirection :=1;
RisingEdge :=2;
Velocity :=10000.0;
TorqueLimit :=50.0;
TimeLimit :=T#10s;
DistanceLimit :=10000.0;

Inst_MCFB_StepAbsSwitch( True, Axis1, NegativeDirection, RisingEdge, Velocity, 1000, 1000, 0, TorqueLimit, TimeLimit, DistanceLimit, AbsoluteSwitch, PosLimitSwitch, NegLimitSwitch, 0 );

HomeComplete :=Inst_MCFB_StepAbsSwitch.Done;
HomeBusy :=Inst_MCFB_StepAbsSwitch.Busy;
HomeActive :=Inst_MCFB_StepAbsSwitch.Active;
HomeAborted :=Inst_MCFB_StepAbsSwitch.CommandAborted;
HomeError :=Inst_MCFB_StepAbsSwitch.Error;
HomeErrorID :=Inst_MCFB_StepAbsSwitch.ErrorID;
(* AbsoluteSwitch, PosLimitSwitch, NegLimitSwitch are declared I/O points *)

See Also