FB_EndlessFeedIls

 

FB_EndlessFeedIls - General Information

Overview

Type:

Program / function block / function

Available as of:

V1.0.3.0

Inherits from:

-

Implements:

-

Versions:

Current version

Task

Intelligent Line Shaft

Carry out an infinite motion of a master axis when considering the velocity and acceleration limit of the slave axes.

Description

During operation, the data that is transferred at input iq_stIlsData on the motion sequences from up to 10 slave axes is evaluated and velocity or acceleration limits that may have been parameterized are maintained by the intermittent reduction of the surface velocity of the master axis. The function block attempts to compensate the resulting position backlog by increasing the surface speed up until a maximum value that can be set. This means that the set velocity i_lrVel is interpreted as the effective velocity.

NOTE: The function block needs to allocate a big amount of memory in the dynamic memory storage. The size of the dynamic memory storage can be seen and changed in the Application build options view (View -> Properties... -> Application build options). This is NOT the dynamic data storage which can be managed via the DynIECData... properties of the controller.

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

Effective velocity in units/s.

Value range: 0 ... MaxVel

i_lrAcc

LREAL

Acceleration of the surface velocity in units/s2.

Value range: >0 ... MaxAcc

i_lrDec

LREAL

Delay of the surface velocity or stand still in units/s2.

Value range: >0 ... MaxAcc

i_lrJerk

LREAL

Jerk in units/s2.

Is assigned to the variable lrMasterMaxAbsJerk from iq_stIlsData.i_stRunTime.

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 two 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.

The StopPosition must be in the range of 0 … Period.

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_xWarning

BOOL

TRUE: Function block has detected a warning. The outputs q_etDiag, q_etDiagExt and q_sMsg are to be regarded as warnings.

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: Axis in motion.

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.

Input/Output

Data type

Description

iq_stIlsData

ST_IlsData

Information for the motion sequence of the slave axes as well as the parameterized limits and feedback variables. See data type PDL_ST_ILS_Data.

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

Stopping

7

Active motion commands are stopped.

OK

WaitForStart

5

Waiting for starting command.

OK

WaitUntilDisabled

8

Waiting until the POU is deactivated.

DriveConditionInvalid

DriveNotReady

10

The drive is not ready for motion commands.

ExecutionAborted

DynIecDataSizeTooSmall

75

There is not enough dynamic memory reserved.

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

HysteresisRange

205

Hysteresis is outside the valid range.

InputParameterInvalid

MasterMaxAbsAccRange

199

MasterMaxAbsAcc is outside the valid range.

InputParameterInvalid

MasterMaxAbsJerkRange

200

MasterMaxAbsJerk is outside the valid range.

InputParameterInvalid

MasterPeriodInitRange

208

MasterPeriodInit is outside the valid range.

InputParameterInvalid

NegAccRange

212

NegAcc is outside the valid range.

InputParameterInvalid

NegVelRange

210

NegVel is outside the valid range.

InputParameterInvalid

NumberOfMasterPeriodsRange

207

MNumberOfMasterPeriods is outside the valid range.

InputParameterInvalid

NumberOfSlavesRange

198

NumberOfSlaves is outside the valid range.

InputParameterInvalid

PeriodRange

201

Period is outside the valid range.

InputParameterInvalid

PosAccRange

211

PosAcc is outside the valid range.

InputParameterInvalid

PositionGridSizeRange

203

PositionGridSize is outside the valid range.

InputParameterInvalid

PosVelRange

209

PosVel is outside the valid range.

InputParameterInvalid

ProfileIdInvalid

114

The ProfileId is invalid.

InputParameterInvalid

StopPositionRange

202

StopPosition is outside the valid range.

InputParameterInvalid

TimeGridSizeRange

204

TimeGridSize is outside the valid range.

InputParameterInvalid

VelRange

11

Vel is outside the valid range.

InputParameterInvalid

YFactorRange

206

YFactor is outside the valid range.

UnexpectedProgramBehavior

ProfileAlreadyInUse

116

The profile is already in use.

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: i_lrAcc >1

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: i_lrDec >1

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.

DynIecDataSizeTooSmall

Enumeration name:

DynIecDataSizeTooSmall

Enumeration value:

75

Description:

There is not enough dynamic memory reserved.

Issue

Cause

Solution

-

There was not enough free space in the dynamic memory storage

Expand the dynamic memory storage. The needed space of the function block is given in the message q_sMessage of the exception. The size of the dynamic memory storage can be seen and changed in the Applicaiton build options view (View -> Properties... -> Application build options). This is NOT the dynamic data sorage which is managed via the DynIECData... properties of the controller.

EndlessPositioning

Enumeration name:

EndlessPositioning

Enumeration value:

213

Description:

Endless positioning.

The axis is being positioned endlessly.

HysteresisRange

Enumeration name:

HysteresisRange

Enumeration value:

205

Description:

Hysteresis is outside the valid range.

Issue

Cause

Solution

-

At the input iq_stIlsData.i_stConfig.lrHysteresis, an invalid value has been applied.

At the input iq_stIlsData.i_stConfig.lrHysteresis, a value greater than or equal to 0.001 and smaller than or equal to 50.0 must be transferred.

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.

MasterMaxAbsAccRange

Enumeration name:

MasterMaxAbsAccRange

Enumeration value:

199

Description:

MasterMaxAbsAcc is outside the valid range.

Issue

Cause

Solution

-

At the input iq_stIlsData.i_stRunTime.lrMasterMaxAbsAcc, an invalid value has been transferred.

At the input iq_stIlsData.i_stRunTime.lrMasterMaxAbsAcc, a value greater than or equal to 1.0 must be transferred.

MasterMaxAbsJerkRange

Enumeration name:

MasterMaxAbsJerkRange

Enumeration value:

200

Description:

MasterMaxAbsJerk is outside the valid range.

Issue

Cause

Solution

-

At the input iq_stIlsData.i_stRunTime.lrMasterMaxAbsJerk, an invalid value has been transferred.

At the input iq_stIlsData.i_stRunTime.lrMasterMaxAbsJerk, a value greater than or equal to 1.0 must be transferred.

MasterPeriodInitRange

Enumeration name:

MasterPeriodInitRange

Enumeration value:

208

Description:

MasterPeriodInit is outside the valid range.

Issue

Cause

Solution

-

At the input iq_stIlsData.i_astCamData[ ].diMasterPeriodInit, an invalid value has been applied.

At the input iq_stIlsData.i_astCamData[ ].diMasterPeriodInit, a value greater than 0 must be transferred.

NegAccRange

Enumeration name:

NegAccRange

Enumeration value:

212

Description:

NegAcc is outside the valid range.

Issue

Cause

Solution

-

At the input iq_stIlsData.i_stRunTime.astSlaveLimits[ ].lrNegAcc, an invalid value has been applied.

At the input iq_stIlsData.i_stRunTime.astSlaveLimits[ ].lrNegAcc, a value smaller than or equal to -1.0 must be transferred.

NegVelRange

Enumeration name:

NegVelRange

Enumeration value:

210

Description:

NegVel is outside the valid range.

Issue

Cause

Solution

-

At the input iq_stIlsData.i_stRunTime.astSlaveLimits[ ].lrNegVel, an invalid value has been applied.

At the input iq_stIlsData.i_stRunTime.astSlaveLimits[ ].lrNegVel, a value smaller than or equal to -1.0 must be transferred.

NumberOfMasterPeriodsRange

Enumeration name:

NumberOfMasterPeriodsRange

Enumeration value:

207

Description:

MNumberOfMasterPeriods is outside the valid range.

Issue

Cause

Solution

-

At the input iq_stIlsData.i_astCamData[ ].diNumberOfMasterPeriods, an invalid value has been applied.

At the input iq_stIlsData.i_astCamData[ ].diNumberOfMasterPeriods, a value greater than 1 must be transferred.

NumberOfSlavesRange

Enumeration name:

NumberOfSlavesRange

Enumeration value:

198

Description:

NumberOfSlaves is outside the valid range.

Issue

Cause

Solution

-

At the input iq_stIlsData.i_stConfig.diNumberOfSlaves, an invalid value has been applied.

At the input iq_stIlsData.i_stConfig.diNumberOfSlaves, a value greater than or equal to 0 and smaller than or equal to Gc_diMaxNumberOfSlaves 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, an invalid value has been applied.

At the input i_lrPeriod, a value greater than or equal to 1.0 must be transferred.

PosAccRange

Enumeration name:

PosAccRange

Enumeration value:

211

Description:

PosAcc is outside the valid range.

Issue

Cause

Solution

-

At the input iq_stIlsData.i_stRunTime.astSlaveLimits[ ].lrPosAcc, an invalid value has been applied.

At the input iq_stIlsData.i_stRunTime.astSlaveLimits[ ].lrPosAcc, a value greater than or equal to 1.0 must be transferred.

PositionGridSizeRange

Enumeration name:

PositionGridSizeRange

Enumeration value:

203

Description:

PositionGridSize is outside the valid range.

Issue

Cause

Solution

-

At the input iq_stIlsData.i_stConfig.diPositionGridSize, an invalid value has been applied.

At the input iq_stIlsData.i_stConfig.diPositionGridSize, a value greater than or equal to 1 and smaller than or equal to Gc_diMaxGridSize must be transferred.

PosVelRange

Enumeration name:

PosVelRange

Enumeration value:

209

Description:

PosVel is outside the valid range.

Issue

Cause

Solution

-

At the input iq_stIlsData.i_stRunTime.astSlaveLimits[ ].lrPosVel, an invalid value has been applied.

At the input iq_stIlsData.i_stRunTime.astSlaveLimits[ ].lrPosVel, a value greater than or equal to 1 must be transferred.

ProfileAlreadyInUse

Enumeration name:

ProfileAlreadyInUse

Enumeration value:

116

Description:

The profile is already in use.

Issue

Cause

Solution

-

The motion profile is already in use.

Verify the motion data.

ProfileIdInvalid

Enumeration name:

ProfileIdInvalid

Enumeration value:

114

Description:

The ProfileId is invalid.

Issue

Cause

Solution

-

The profile does not exist.

Verify the values at the inputs iq_stMultiCamData.astCamPoint[ ].diProfileId.

Stopping

Enumeration name:

Stopping

Enumeration value:

7

Description:

Active motion commands are stopped.

The axis is stopped.

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.

-

At the input i_lrStopPosition, a value outside of the period has been transferred.

At the input i_lrStopPosition, a value smaller than or equal to the value at the input i_lrPeriod must be transferred.

TimeGridSizeRange

Enumeration name:

TimeGridSizeRange

Enumeration value:

204

Description:

TimeGridSize is outside the valid range.

Issue

Cause

Solution

-

At the input iq_stIlsData.i_stConfig.diTimeGridSize, an invalid value has been applied.

At the input iq_stIlsData.i_stConfig.diTimeGridSize, a value greater than 0 and smaller than 100 must be applied.

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 applied.

For i_lrVel, enter a value between 0 and the axis parameter MaxVel.

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.

WaitUntilDisabled

Enumeration name:

WaitUntilDisabled

Enumeration value:

8

Description:

Waiting until the POU is deactivated.

YFactorRange

Enumeration name:

YFactorRange

Enumeration value:

206

Description:

YFactor is outside the valid range.

Issue

Cause

Solution

-

At the input iq_stIlsData.i_astCamData[ ].lrYFactor, a number < 1 has been transferred.

The YFactor must be at least 1.