FB_EndlessFeed - General Information

Overview

Type:

Function block

Available as of:

V1.0.3.0

Inherits from:

-

Implements:

-

Versions:

Current version

Task

Moving an axis in continuous operation (rotative system)

Description

The axis is moved at a constant velocity while its position is held within a defined period.

NOTE: The stop behavior of the axis for i_xStart (TRUE -> FALSE) depends on the parameters i_lrDec, i_lrJerk and i_lrStopPosition.

Depending on the time of i_xStart (TRUE -> FALSE) an axis stop can occur in the period or can last for multiple periods.

Interface

Input

Data type

Description

i_xEnable

BOOL

A rising edge FALSE -> TRUE activates the POU, a falling edge TRUE -> FALSE deactivates the POU.

A deactivated POU does not execute any actions.

i_ifDrive

IF_Drive

Input for the axis that shall be controlled.

i_lrVel

LREAL

Velocity (change of position) in units/s.

Value range of i_lrVel to initiate an axis movement: 0.1 ≤ i_lrVel < maximum velocity of the drive (refer to drive parameters MaxVel and UserMaxVel).

A new value for i_lrVel is only accepted if the change in value for i_lrVel is > 0.1.

If the change in value is ≤ 0.1, the new velocity value is ignored and no diagnostic message is triggered.

i_lrVel< 0.1 stops the axis. The axis starts from such a stop when i_lrVel≥ 0.1.

i_lrAcc

LREAL

Acceleration (change of velocity) in units/s2.

Value range: 0 < i_lrAcc ≤ maximum drive acceleration (refer to drive parameters MaxAcc and UserMaxAcc).

i_lrDec

LREAL

Deceleration (change of velocity) in units/s2.

Value range: 0 < i_lrDec ≤ maximum drive acceleration (refer to drive parameter MaxAcc and UserMaxAcc).

i_lrJerk

LREAL

Jerk (change of acceleration/deceleration) in units/s3.

Value range: 0 < i_lrJerk ≤ Gc_lrMaxJerk (refer to GCL) .

i_lrPeriod

LREAL

With a value of <> 0, the position is kept within the period value (0 … i_lrPeriod). If a period value is too high or too low, the position is manipulated by the period value. Only positive values are valid.

i_lrStopPosition

LREAL

Stop position in units. Only positive values are valid.

i_xStart

BOOL

FALSE -> TRUE: Start of endless motion according to set parameters.

Output

Data type

Description

q_xActive

BOOL

TRUE: The POU is active and has to be executed further.

FALSE: The POU is inactive.

q_xReady

BOOL

TRUE: The POU is ready to operate and can accept user commands.

FALSE: The POU is not ready to accept user commands.

q_etDiag

GD.ET_Diag

General library-independent statement on the diagnostic.

A value not equal to ET_Diag.Ok corresponds to an diagnostic message.

q_etDiagExt

ET_DiagExt

POU-specific output on the diagnostic.

q_etDiag = ET_Diag.Ok -> Status message

q_etDiag <> ET_Diag.Ok -> Diagnostic message

q_sMsg

STRING[80]

Event-triggered message which gives more detailed information on the diagnostic state.

q_xMotionInstructionActive

BOOL

TRUE: The axis is processing a motion command. The output is also set if the motion command defines that the axis is at stand still.

q_xInVelocity

BOOL

Velocity i_lrVel reached.

(RefVelocity > i_lrVel * 0.99 AND RefVelocity < i_lrVel* 1.01)

q_lrPosition

LREAL

Position of the axis.

Diagnostic Messages

q_etDiag

q_etDiagExt

Enumeration value

Description

OK

Disabled

9

The POU is disabled.

OK

EndlessPositioning

213

Endless positioning.

OK

Initializing

4

The POU is being initialized.

OK

WaitForStart

5

Waiting for starting command.

OK

WaitForVelUnequalZero

232

Waiting for a value of i_lrVel like : 0.1 ≤ i_lrVel < maximum velocity of the drive (refer to the drive parameters MaxVel and UserMaxVel).

OK

WaitUntilDisabled

8

Waiting until the POU is deactivated.

OK

WaitUntilStopPositionReached

156

Waiting until stop position has been reached.

DriveConditionInvalid

DriveNotReady

10

The drive is not ready for motion commands.

DriveConditionInvalid

SercosNotInPhaseFour

19

The Sercos bus is not in phase 4.

InputParameterInvalid

AccRange

12

Acc is outside the valid range.

InputParameterInvalid

DecRange

13

Dec is outside the valid range.

InputParameterInvalid

DriveInvalid

3

The connected drive is invalid.

InputParameterInvalid

JerkRange

14

Jerk is outside the valid range.

InputParameterInvalid

PeriodRange

201

Period is outside the valid range.

InputParameterInvalid

StopPositionRange

202

StopPosition is outside the valid range.

InputParameterInvalid

VelRange

11

Vel is outside the valid range.

UnexpectedProgramBehavior

UnexpectedFeedback

1

An unintended detected error occurred during execution.

UnexpectedProgramBehavior

UnknownState

2

The POU is in an undefined state.

AccRange

Enumeration name:

AccRange

Enumeration value:

12

Description:

Acc is outside the valid range.

Issue

Cause

Solution

-

At the input i_lrAcc, an invalid value has been transferred.

The following must hold: 0 < i_lrAcc < drive parameter MaxAcc

For the valid value range for i_lrAcc, see output q_sMsg

DecRange

Enumeration name:

DecRange

Enumeration value:

13

Description:

Dec is outside the valid range.

Issue

Cause

Solution

-

At the input i_lrDec, an invalid value has been transferred.

The following must hold: 0 < i_lrDec < drive parameter MaxAcc

For the valid value range for i_lrDec, see output q_sMsg

Disabled

Enumeration name:

Disabled

Enumeration value:

9

Description:

The POU is disabled.

The function block is disabled and executes no actions whatsoever. i_xEnable and q_xActive are set to FALSE

DriveInvalid

Enumeration name:

DriveInvalid

Enumeration value:

3

Description:

The connected drive is invalid.

Issue

Cause

Solution

-

At the input i_ifDrive, no drive was applied.

At the input i_ifDrive, a valid drive must be transferred.

-

The connected drive does not support all required functionalities.

Establish which functionalities are not supported by the drive by means of output q_sMsg.

Use a drive which supports all required functionalities.

DriveNotReady

Enumeration name:

DriveNotReady

Enumeration value:

10

Description:

The drive is not ready for motion commands.

Issue

Cause

Solution

-

The axis is not in position control.

Verify the state of the axis.

-

The parameter State of the SERCOS bus is not 4.

Set the SERCOS bus parameter PhaseSet to 4.

Verify the SERCOS bus for errors.

EndlessPositioning

Enumeration name:

EndlessPositioning

Enumeration value:

213

Description:

Endless positioning.

The axis is being positioned endlessly.

Initializing

Enumeration name:

Initializing

Enumeration value:

4

Description:

The POU is being initialized.

The function block is being initialized and thus is not yet ready to receive commands at its inputs.

The function block will signalize that it is ready for operation with the signal q_xReady = TRUE.

JerkRange

Enumeration name:

JerkRange

Enumeration value:

14

Description:

Jerk is outside the valid range.

Issue

Cause

Solution

-

At the input i_lrJerk, an invalid value has been applied.

At the input i_lrJerk, a value greater than 0 and smaller than or equal to Gc_lrMaxJerk must be transferred.

PeriodRange

Enumeration name:

PeriodRange

Enumeration value:

201

Description:

Period is outside the valid range.

Issue

Cause

Solution

-

At the input i_lrPeriod, a negative value has been applied.

At the input i_lrPeriod, a value greater than 0 must be transferred.

SercosNotInPhaseFour

Enumeration name:

SercosNotInPhaseFour

Enumeration value:

19

Description:

The Sercos bus is not in phase 4.

Issue

Cause

Solution

-

The parameter State of the SERCOS bus is not 4.

Set the SERCOS bus parameter PhaseSet to 4.

Verify the SERCOS bus for errors.

StopPositionRange

Enumeration name:

StopPositionRange

Enumeration value:

202

Description:

StopPosition is outside the valid range.

Issue

Cause

Solution

-

At the input i_lrStopPosition, a negative value has been transferred.

At the input i_lrStopPosition, a value greater than or equal to 0 must be transferred.

UnexpectedFeedback

Enumeration name:

UnexpectedFeedback

Enumeration value:

1

Description:

An unintended detected error occurred during execution.

Issue

Cause

Solution

-

An error occurred in the internal execution.

Please inform the support team about this error.

UnknownState

Enumeration name:

UnknownState

Enumeration value:

2

Description:

The POU is in an undefined state.

Issue

Cause

Solution

-

An error occurred in the internal execution.

Please inform the support team about this error.

VelRange

Enumeration name:

VelRange

Enumeration value:

11

Description:

Vel is outside the valid range.

Issue

Cause

Solution

-

At the input i_lrVel, an invalid value has been transferred.

For i_lrVel, a value greater than 0 and smaller than the axis parameter MaxVel must be specified.

WaitForStart

Enumeration name:

WaitForStart

Enumeration value:

5

Description:

Waiting for starting command.

The function block has completed its initialization and is waiting for a positive edge at the input i_xStart before continuing the processing.

WaitForVelUnequalZero

Enumeration name:

WaitForVelUnequalZero

Enumeration value:

232

Description:

Waiting for a value of i_lrVel like : 0.1 ≤ i_lrVel < maximum velocity of the drive (refer to the drive parameters MaxVel and UserMaxVel).

A motion has been initiated, the system waits for the axis to start the motion.

WaitUntilDisabled

Enumeration name:

WaitUntilDisabled

Enumeration value:

8

Description:

Waiting until the POU is deactivated.

The function block is disabled. All internal states are reset and connected resources (e.g. axes) are transferred to a safe state. The function block has to be called up continuously until it reports q_xActive = FALSE.

WaitUntilStopPositionReached

Enumeration name:

WaitUntilStopPositionReached

Enumeration value:

156

Description:

Waiting until stop position has been reached.

The axis is moved to its stop position and comes to a halt there.

Methods

Name

Description

RegisterLoggerPoint

Registering the logger points of the POU in the Application Logger