WDR_WinderControl (FB)

FUNCTION_BLOCK WDR_WinderControl


Description : This function block coordinates all related function blocks required for operating various web winding modes. It manages supporting modules such as Feedback Converter, Diameter Calculation, and Mechanical Compensation. The block supports both winding, rewinding amd line feeder operations across multiple control modes.

Key Features:

  • WinderMode and WinderControlMode :

  • Below are listed supported mode of combinations for WinderMode and WinderControlMode

  • REWINDER/UNWINDER MODES (Variable Diameter):

  • THREADING_CONTROL - Manual speed control mode for material threading.

  • LINE_SPEED_CONTROL - Line speed control.

  • TENSION_SPEED_TRIM - Line speed control + Tension speed trim

  • TORQUE_SPEED_TRIM - Line speed control + Torque speed trim

  • OPEN_LOOP_TORQUE - Internal PID using set tension vs motor torque feedback, output is speed reference.

  • TENSION_TORQUE_TRIM - Line speed control + Tension torque offset

  • DANCER_SPEED_TRIM - Line speed control + Dancer speed trim

  • LINE FEEDER MODES (Fixed Diameter):

  • THREADING_CONTROL - Manual speed control mode for material threading.

  • LINE_SPEED_CONTROL - Speed control

  • TENSION_SPEED_TRIM - Line speed control + Tension speed trim

  • TORQUE_SPEED_TRIM - Line speed control + Torque speed trim

  • OPEN_LOOP_TORQUE - Torque PID using motor torque feedback, output is speed reference.

Note : In all above mode drive operating mode is speed control.


  • WinderDirection

  • Clockwise - Motor rotates in positive direction

  • Counter clockwise - Motor rotates in negative direction


  • WinderStopParameter

  • Stop by diameter - Winder stops automatically when ActRollDiameter reaches set diameter value

  • Stop by material length - Winder stops automatically when accumulated material length reaches set value

  • Stop by time - Winder stops automatically after elapsed time reaches set duration

  • Continuous - TRUE, Then winder process will continue till manual WinderStop triggered. This configuration can be used with line feeder roller control mode.

  • Immediate stop - Winder stops immediately when WinderStop command is TRUE

  • Continuous - Winder process will continue till manual WinderStop triggered.


  • SpeedRefParameter

  • Configures acceleration and deceleration ramp times for line speed reference.

  • Separate ramp times for threading mode and winding mode.

  • LineStopRampTime provides emergency stop ramp override.

  • MaxLineSpeed limits maximum web speed for safety.

  • Matching parameters enable speed trim when dancer/tension control active.


  • WebTensionRefPara

  • Configures web tension reference and taper profile for winding.

  • MaxWebTension sets upper limit for tension setpoint.

  • TaperMode selects taper calculation method (linear, exponential, etc.).

  • TaperRange defines tension reduction percentage from start to end.

  • TaperStartPoint/EndPoint define diameter range where tapering occurs.


  • WebTensionRefPara

  • Configures acceleration and deceleration ramp times for dancer position reference.


  • TrimPIDParameter

  • Configures PID controller parameters for trim PID control loops.

  • Supports fixed or adaptive PID tuning based on roll diameter.

  • AdaptationEnable: TRUE = PID adapts between Set1 (empty roll) and Set2 (full roll).

  • AdaptationEnable: FALSE = Uses only Set1 parameters (fixed PID).

  • Set1 parameters: PGainSet1, ITimeSet1, DTimeSet1 (empty roll or fixed mode).

  • Set2 parameters: PGainSet2, ITimeSet2, DTimeSet2 (full roll, only when adaptive).

  • Response rates allow asymmetric gain for positive/negative errors.

  • Series PID control mode: PIDOut = P + I + D Term.


  • TrimParameter

  • Configures output trim factors to compensate for diameter changes.

  • Automatic Trim Modeselects trim mode based on active winder control mode.

  • Modes 01-07 provide manual trim selection (User, diameter, Line speed and Roller speed based ratios).

  • Trim factors multiply together when multiple modes enabled.

  • SpeedTrimMin sets minimum trim value, MaxTrim/MinTrim set output limits.

  • Speed correction term used to be given in % from motor speed limit.

  • Trim ratio of diameter and speed ratio are not active for line feeder (Fixed diameter).

  • Automatic Trim Mode Selection Logic:

  • TENSION_SPEED_TRIM_CONTROL, DANCER_SPEED_TRIM_CONTROL, TORQUE_SPEED_TRIM_CONTROL:

  • Line Feeder → Mode 01 (User Trim)

  • Rewinder / Unwinder → Mode 03 (Diameter Ratio Fade)

  • TENSION_TORQUE_TRIM_CONTROL:

  • Line Feeder → Mode 01 (User Trim)

  • Rewinder / Unwinder → Mode 02 (Diameter Ratio Boost)

  • Not applicable for: THREADING_CONTROL, LINE_SPEED_CONTROL, OPEN_LOOP_TORQUE_CONTROL


  • SafetyMonitoringParameter

  • Monitors critical control parameters to prevent winder damage and ensure safe operation.

  • Detects web loss condition for immediate stop trigger. Using external sensor.

  • Initial settling threshold prevents false alarms during startup transients.

  • PID error monitoring triggers stop if control error exceeds threshold for specified delay.

  • Torque monitoring triggers stop if roller torque exceeds maximum or falls below minimum threshold.

  • All threshold monitors include configurable delay to prevent nuisance trips.

  • Safety interlocks: If ANY monitor is active and triggered, winder stop is initiated.

  • Operation sequence

  • Step 1: When Trim PID enabled

  • Winder control Mode is set to TENSION_SPEED_TRIM_CONTROL, TORQUE_SPEED_TRIM_CONTROL,

DANCER_SPEED_TRIM_CONTROL, or CLOSED_LOOP_TORQUE_CONTROL then monitoring will be active.

  • Step 2: Monitor Settling Phase

  • Set ControlSettledThreshold (e.g., 50%)

  • PID Monitoring remains FALSE while |(Setpoint - Actual)| > Threshold

  • System waits for control to stabilize before enabling safety monitoring

  • Step 3: Automatic Activation

  • When error drops below ControlSettledThreshold PID Monitoring = TRUE (one-time latch)

  • Safety monitoring now active

  • Step 4: Latch Behavior

  • Once activated, PID Monitoring stays ON permanently

  • Even if error increases again, monitoring remains active

  • Only resets after power cycle

  • Step 5: Safety Trigger Condition

  • If ANY safety monitoring is active and threshold exceeded then Winder stop triggered

  • Multiple monitors can be active simultaneously

  • Reset this condition if Winder Start change status from TRUE to FALSE.

  • Example Test Case - PID Error Monitoring

  • Input Conditions:
    • PIDErrMonitorEnable = TRUE

    • PIDErrMonitorThreshold = 30.0%

    • TrimPID.ErrorCurrentPerc = 45.0%

    • PIDErMonitorDelay = 5.0 sec

  • Expected Behavior:
    • Error (45.0%) > Threshold (30.0%) -> Start delay timer

    • After 5 seconds -> Winder stop triggered.


  • MotorControlParameter

  • Defines motor ratings: NominalMotorSpeed, NominalMotorTorque, GearRatioEfficiency, TorqueScalingFactor.

  • TorqueScalingFactor converts drive units. Example PLCopen standard (Default CiA402: 10.0).

  • Configures motor acceleration and deceleration for threading and winding modes.

  • Quick stop deceleration provides emergency braking capability.

  • Signal filtering removes noise from motor speed and torque feedback.

  • Low-pass filters reduce measurement noise for responsive feedback control.

  • Hardware limit switches monitor safe operation boundaries (PositiveLimit, NegativeLimit).

  • Speed and torque limits gain to boost the limits.

  • Min roller speed and torque considered. Min torque value used in torque limit of open loop troque control.

  • Stall function applies feedforward torque for smooth startup acceleration.


Note

Motion Wizard Configuraion

  • The axis control type should be CSV (Cyclic Synchronous Velocity) mode.

  • The axis type is finite(rotary).

  • The axis unit is revolution.

  • Gear ratio

  • For OPEN_LOOP_TORQUE_CONTROL and TENSION_TORQUE_TRIM_CONTROL : Set Delay time velocity check := 0 and Position lag supervision := Off

Note

Winder Control Sequence Overview

Startup Sequence:

  • Configure winder mode (REWINDER/UNWINDER/LINE_FEEDER) and control mode

  • Set line speed (m/min) and tension setpoint (N) if applicable

  • Enable DiameterCalculation FB (mandatory)

  • Enable FeedbackConverter and MechanicalCompensation FBs if instantiated

  • Verify drive ready with no errors → Winder ready

  • Set WindingStart := TRUE (rising edge) to begin operation

Stop Conditions:

  • Automatic: Target diameter/length/time reached or Core/Full roll diameter reached

  • Manual: WinderStop := TRUE

Restart Sequence:

  • If error: Reset and re-enable affected FBs

  • If controlled stop: Reset WinderStop := FALSE (if used)

  • Reset WindingStart := FALSE, then set TRUE to resume

Note

Winder Speed and Torque Configuration

1. Gear Ratio Configuration

  • Gear ratio is configured from motion wizard axis scaling parameters

  • GearRatio = Motor rotations / Load rotations

  • Example: Motor turns 5 times for 1 roller rotation → GearRatio = 5.0

2. Nominal Roller Speed Calculation

  • Formula: NominalRollerSpeed = NominalMotorSpeed / GearRatio

  • Motor runs faster than roller, speed is divided by gear ratio

  • Example: Motor 3000 RPM / GearRatio 20 = 150 RPM roller speed

3. Nominal Roller Torque Calculation

  • Formula: NominalRollerTorque = NominalMotorTorque × GearRatio × GearEfficiency

  • Roller has more torque than motor, torque is multiplied by gear ratio

  • Example: Motor 12 Nm × GearRatio 20 × Efficiency 0.95 = 228 Nm roller torque

4. Maximum Systme Web Tension Calculation

  • Formula: MaxSystemWebTensionCapacity = NominalRollerTorque / FullRollRadius

  • Use full roll diameter (maximum diameter) for calculation

  • FullRollRadius = FullRollDiameter / 2

  • Example:

  • Motor Nominal Torque: 12 Nm

  • Gear Ratio: 20:1

  • Gear Efficiency: 95%

  • Full Roll Diameter: 600 mm (0.6 m)

  • Step 1: NominalRollerTorque = 12 × 20 × 0.95 = 228 Nm

  • Step 2: FullRollRadius = 0.6 / 2 = 0.3 m

  • Step 3: MaxWebTension = 228 / 0.3 = 760 N

  • User will set MaxWebTension and this value should be less than MaxSystemWebTensionCapacity.

5. Winding Torque Limit Calculation*

  • User set MotorControlParameter.RollerMaxTorqueLimit value should be less than equal to WinderLink.References.RollerMaxTorqueLimit

  • WinderLink.References.RollerMaxTorqueLimit derived from TensionRefParameter.MaxWebTension and Actual Diameter.

  • For Speed control mode (Threading, Line Speed Control, Tensio/Dancer/Torque Speed Trim) -> Final Torque Limit := MIN (MotorControlParameter.RollerMaxTorqueLimit, WinderLink.References.RollerMaxTorqueLimit)

  • For Torque control mode (Open Loop Torque Control, Tension Torque Trim) -> Final Torque Limit := LIMIT(MotorControlParameter.RollerMinTorqueLimit, CalculateTorqueLimit , MIN (MotorControlParameter.RollerMaxTorqueLimit, WinderLink.References.RollerMaxTorqueLimit)).

Note

Acceleration/ Deceleration Time Scaling

Principle: + Acceleration/deceleration times are configured for maximum reference value and automatically scale proportionally + This maintains constant linear acceleration/deceleration regardless of setpoint changes + Formula: ActualRampTime = ConfiguredRampTime × (SetValue / MaxValue)

Examples:

  • Line Speed Reference: + Ex: MaxLineSpeed = 100 m/min, SetpointRampUpTime = 10 sec → Acceleration = 10 m/min/s + SetLineSpeed = 50 m/min → Actual time = 5 sec → Acceleration = 10 m/min/s

  • Web Tension Reference: + Ex: MaxWebTension = 1000 N, SetpointRampUpTime = 10 sec → Acceleration = 100 N/s + SetWebTension = 500 N → Actual time = 5 sec → Acceleration = 100 N/s

  • Dancer Postion Reference: + Ex: DancerHighTensionPosition = 100 mm, SetpointRampUpTime = 10 sec → Acceleration = 10 mm/s + DancerSetpoint = 60 mm → Actual time = 6 sec → Acceleration = 10 mm/s

Note

Web Length Diameter Mode + Speed Source Requirement

Configuration:

When WDR_DIAMETER_SOURCE.CALC_METHOD_WEB_LENGTH is active:

  • Diameter is calculated from external line speed (ActLineSpeedFromEnc)

  • SetLineSpeed must also read from ActLineSpeedFromEnc

Why?

Using the same line speed source for both diameter calculation and speed setpoint ensures accurate diameter tracking and prevents speed/diameter mismatch errors.

Note

Line feeder mode

When Winder Mode is configured as LINE_FEEDER, the roller’s function depends on its position in the material handling system:

1. Infeeder Configuration:

  • Position: Before the rewinder.

  • Function: Feeds material to the rewinder roll.

  • Example: Entry roller, traction roller feeding material to rewinder.

  • Configuration : Winder Mode : LINE_FEEDER , Winder Control Mode : TENSION_SPEED_TRIM_CONTROL / OPEN_LOOP_TORQUE_CONTROL /LINE_SPEED_CONTROL

2. Outfeeder Configuration:

  • Position: After the unwinder

  • Function: Feeds material out of the unwinderroll.

  • Example : Exit roller, traction roller receiving material from unwinder.

  • Configuration : Winder Mode : LINE_FEEDER , Winder Control Mode : TENSION_SPEED_TRIM_CONTROL / OPEN_LOOP_TORQUE_CONTROL /LINE_SPEED_CONTROL

3. Line Speed Master Configuration:

  • Position: Master control roller

  • Function: Regulates the overall line speed for the entire system

  • Controls: Winding speed, process speed, material flow rate

  • Example : Main drive roller that sets speed reference for all other rollers

  • Configuration : Winder Mode : LINE_FEEDER , Winder Control Mode : LINE_SPEED_CONTROL

Note

Torque Offset - EtherCAT Configuration

PDO Mapping Required: + Manually add object 0x60B2 (Torque Offset) to servo drive PDO mapping + Configure as TxPDO input (PLC → Drive)

Servo Drive Configuration: + Servo parameter torque feed forward option should be enabled. + Example : In EC530 Drive , Select P05.12 TorqueFeedFotwardSourceSelection parameter option 3. Use 0x60B2h.

Calculated Value: + TorqueOffset = Winding torque trim + Friction compensation + Inertia compensation

Note

Diameter hold conditions: Diameter calculation is suspended under the following conditions.

  • Winder not enabled

  • Drive not active

  • Winder stopped (stop condition met)

  • Web loss detected

  • Invalid parameters

  • Function block errors

  • Mode incompatibility (calculation vs control)

  • Threading without unhold

  • Invalid threading state

  • Threading limit reached


InOut:

Scope

Name

Type

Initial

Comment

Input

Enable

BOOL

[TRUE] Enable the winder function block and enables the servo drive power stage.

TensionBuild

BOOL

[R_TRIG} Initiate winding tension intial build on rising edge (FALSE→TRUE).

WindingStart

BOOL

[R_TRIG] Initiate winding start on rising edge (FALSE→TRUE). Does not require maintaining TRUE; pulse only.

WindingStop

BOOL

[R_TRIG] Execute immediate winding stop on rising edge (FALSE→TRUE). Does not require maintaining TRUE; pulse only.

WindingHold

BOOL

[R_TRIG] Hold winding process on rising edge (FALSE→TRUE). Set WindingStart or TensionBuild to R_TRIG to resume.

ThreadingForward

BOOL

[TRUE] Enable web threading in forward direction. Rolling direction from unwinder to rewinder. Note : Threading in WDR_WINDER_MODE.LINE_FEEDER ignore the diameter forward limits.

ThreadingReverse

BOOL

[TRUE] Enable web threading in reverse direction. Rolling direction from rewinder to unwinder. Note : Threading in WDR_WINDER_MODE.LINE_FEEDER ignore the diameter reverse limits.

SetLineSpeed

REAL

[MPM] Line speed setpoint used during threading/winding/unwinding/line feeder. Applicable for all WinderControlMode. Range: Must be > 0 and ≤ SpeedRefParameter.MaxLineSpeed. Values exceeding the MaxLineSpeed will be capped at that limit.

SetWebTension

REAL

[N] Web tension setpoint used during winding/unwinding/line feeder. Applicable WinderControlMode 3 = TENSION_SPEED_TRIM_CONTROL, 5 = TORQUE_SPEED_TRIM_CONTROL, 6 = OPEN_LOOP_TORQUE_CONTROL and 7 = TENSION_TORQUE_TRIM_CONTROL. Range: Must be > 0 and ≤ TensionRefParameter.MaxWebTension. Values exceeding the MaxWebTension will be capped at that limit.

SetDancerPosition

REAL

Dancer position setpoint used during winding/unwinding. Unit is decided by feedback control engineering scaling Example: [mm] for linear or [deg] for rotary encoder. Applicable for WinderControlMode 4 = DANCER_SPEED_TRIM_CONTROL. Range: Must be > 0 and ≤ Dancer maximum positive position. Values exceeding the Dancer maximum positive position will be capped at that limit.

WinderMode

WDR_WINDER_MODE

Selects the mode: 0 = REWINDER, 1 = UNWINDER and 2 = LINE_FEEDER

WinderControlMode

WDR_WINDER_CONTROL_MODE

Selects the control mode: 0 = NONE, 1 = THREADING_CONTROL, 2 = LINE_SPEED_CONTROL, 3 = TENSION_SPEED_TRIM_CONTROL, 4 = DANCER_SPEED_TRIM_CONTROL, 5 = TORQUE_SPEED_TRIM_CONTROL, 6 = OPEN_LOOP_TORQUE_CONTROL and 7 = TENSION_TORQUE_TRIM_CONTROL.

WinderDirection

WDR_WINDING_DIRECTION

Sets the motor rotation direction for OVER-WINDING and UNDER-WINDING that is 0 = CLOCKWISE, 1 = COUNTER_CLOCKWISE.

WinderStopParameter

WDR_WinderStopParameter

Winder stop conditions are defined by : Material Length, Diameter, and Elapsed Time. Minimum one of these parameters can be active at any given time.

SpeedRefParameter

WDR_LineSpeedRefParameter

Line speed reference parameters.

TensionRefParameter

WDR_LineTensionRefParameter

Web tension reference parameters.

TrimPIDParameter

WDR_TrimPIDParameter

Trim PID parameters for active winder control mode.

TrimParameter

WDR_TrimParameter

Speed and tension trimming methods.

Safety

WDR_WinderSafety

Winder safety parameters.

MotorControlParameter

WDR_MotorControParameter

Motor control parameter for winder.

ErrorReset

BOOL

[R_TRIG] Rising edge triggers error acknowledgment , Prerequisite is underlying error cause must be corrected.

Output

Busy

BOOL

[TRUE] Indicates the function block is currently running.

Error

BOOL

[TRUE] Indicates an error occurred in the function block. The error flag resets after the error condition is resolved and when the Enable input transitions from TRUE to FALSE.

ErrorID

AC500_MotionControl.ERROR_ID

Motion-specific error code.

AppErrorID

WDR_APP_ERROR_ID

Application-specific error code.

DriveActive

BOOL

[TRUE] Indicates drive is active.

MandatoryFBReady

BOOL

Check if all required function blocks are ready. DiameterCalculation must be enabled, FeedbackConverter and MechanicalCompensation (if instantiated, must be enabled).

TensionReached

BOOL

[TRUE] When TensionBuild := TRUE and Set Tension/Dancer position reached for initial tension build process.

WindingStarted

BOOL

[TRUE] Winding process is active. When Enable, Mandatory FB Ready, DriveActive and WindingStart (rising edge).

WindingStopped

BOOL

[TRUE] Winding process is stopped. WinderStopped will be FALSE when (NOT WindingStart AND NOT WindingStop AND NOT TensionBuild NOT WindingHold) OR NOT Enable.

WindingHeld

BOOL

[TRUE] Winding process is held. WindingHeld will be FALSE when Rising Edge of (WindingStart OR WindingStop OR TensionBuild OR Threading FWD?REV if threading mode active) OR NOT Enable.

ThreadingForwLimit

BOOL

[TRUE] When blocking forward threading.

ThreadingReveLimit

BOOL

[TRUE] When blocking reverse threading.

WindingSetVelocity

LREAL

[RPM] Set roller motor speed.

TorqueOffset

INT

[%] Total torque offset (winding torque trim + stall torque +friction + inertia compensation). Example ABB E530 : Mapped to drive PDO 0x60B2. Note: Value are scaled to MotorControlParameter.TorqueScalingFactor

PositiveTorqueLimit

UINT

[%] Positive torque limit. Example ABB E530 : Map to drive PDO 0x60E0. Note: Value are scaled to MotorControlParameter.TorqueScalingFactor.

NegativeTorqueLimit

UINT

[%] Negative torque limit. Example ABB E530 : Map to drive PDO 0x60E1. Note: Value are scaled to MotorControlParameter.TorqueScalingFactor.

ActRollerSpeed

LREAL

[RPM] Actual roller motor speed.

ActRollerTorque

LREAL

[%] Actual roller motor torque.

StatusMessage

WSTRING

“None”

Indicates winder active status message.

Inout

WinderLink

WDR_WinderLink

Structured data to share common variables between mandatory function blocks.

Axis

Axis_Ref

Axis reference for motion control block.