Dynamically Adjust Rotary-to-Linear Transformation for Cable Spooling

I’m controlling a stage that moves up and down using a cable wound on a spool, driven by an ACOPOS servo drive. Currently, I’m using a rotary-to-linear transformation based on the spool’s diameter to calculate linear motion from rotary input.

However, once the cable starts to double wind, the effective diameter of the spool changes, and the original transformation becomes inaccurate. I’d like to update this transformation dynamically during runtime to account for the changing spool diameter.

Is there a function block or method available to adjust the rotary-to-linear conversion on the fly as the spool diameter increases?

Thanks in advance!

Hi,

You can change the scaling at runtime, but you would always have to switch off the axis first. This is probably not what you really want.

It sounds more like a typical winder application. In this case, the axis is usually scaled in ‘rotations’. This means that you are then independent of the respective diameter of the coil.

However, you will then need a diameter calculator or diameter estimator, e.g. MTWinderDiameterEstimator.

1 Like