Diameter equals line speed multiplied by seconds per revolution, divided by 60 and by pi. One revolution pays out one circumference, so 1000 ft/min at 1.5 s per turn is a 25 ft circumference and a 7.96 ft roll. Scale the 4-20 mA speed signal against its real endpoints, time the period edge to edge, and gate the math on valid speed.
An unwind gives up its diameter from two signals you already have: line speed and a pickup that fires once per revolution. In one revolution the roll pays out exactly one circumference of web, so speed multiplied by the time of that revolution is the circumference, and circumference divided by pi is the diameter. The formula: diameter in feet = line speed in ft/min x seconds per revolution / (60 x pi). Three details decide whether the panel shows a number you trust: the 60 in the denominator, the scaling of the 4-20 mA speed signal, and triggering the period timer on the pulse edge instead of the pulse level.
Why speed and time give you the diameter
The pickup marks complete turns of the spindle. Between two marks, the web that left the roll measures exactly one circumference. Call line speed v in ft/min and the time between marks T in seconds. Travel in T seconds is v x T / 60 in feet, because ft/min times seconds becomes feet only after the 60 comes out. That travel is the circumference, so:
diameter_ft = v x T / (60 x pi)
Multiply by 12 for the panel:
diameter_in = v x T x 12 / (60 x pi)
The 60 is the term that gets dropped. Multiplying ft/min by seconds and calling the result feet leaves a circumference 60 times too large, and the diameter with it. It is the same seconds-to-minutes conversion behind converting a seconds counter to minutes and seconds on an HMI; here it lives in the denominator.
Example: 1000 ft/min and a 1.5 second revolution
Inputs: the line runs a steady 1000 ft/min, read from the analog channel scaled against the documented full-scale point of 20 mA = 1500 ft/min. The pickup fires once per revolution, and the edge-to-edge timer reads 1.5 s.
Rule in words: multiply the speed by the period, divide by 60 to get feet of circumference, divide by pi for diameter in feet, multiply by 12 for inches.
1000 ft/min x 1.5 s = 1500 1500 / 60 = 25 ft of circumference 25 / pi = 7.96 ft 7.96 x 12 = 95.5 in
Decision: at a period this short, the timer base sets your resolution. A 10 ms base puts 150 counts in the 1.5 s, so one count is 1/150 of the period, about 0.7 percent, which is about 0.7 in of diameter on this roll. A 100 ms base leaves 15 counts, nearly 7 percent, over 6 in of diameter. Run the period timer at 10 ms or finer. Then stop the line and tape the roll: if the math and the tape disagree by more than 1 in, the scaling or the trigger is wrong, and you fix that before anyone trusts the display.
Scale the speed channel against its real endpoints
The calibration you have documents one point: 20 mA = 1500 ft/min. The other endpoint lives in the transmitter configuration, so read it there before scaling anything. If the span is the common 4 mA = 0 ft/min, the channel math is:
speed_fpm = (current_mA - 4) x 1500 / 16
At 12 mA: (12 - 4) x 1500 / 16 = 750 ft/min, half scale, which is what a straight line through those two endpoints must produce. Scale the module from its documented raw counts to engineering units, then verify the displayed speed at two known line speeds, one of them near the low end, before any diameter math runs on it.
Time the period on the pulse edge
One pulse per revolution is the signal you would feed to counting a pulse signal with a PLC high speed counter. Here you time it. Start the period on one rising edge and store the elapsed value at the next rising edge, same polarity every turn.
Level-sensitive logic is the trap. A rung that stays true while the sensor sees its mark restarts the timer only when the mark goes away, so the width of the mark lands inside every measured period. The diameter reads high, and the error grows with line speed, because speed multiplies whatever extra time you captured. If the measured period changes when someone touches the sensor bracket, the trigger is level-sensitive; fix the edge before touching the formula.
Watch the input status with the guarding closed. Adjusting a pickup by hand on a running unwind is how hands get hurt.
Gate the math on valid signals
Update the panel only when both inputs are alive. Below the slowest speed the line actually runs, hold the last value and show the field as invalid; a period measured at a crawl is stale before it lands. Lock the calculation out until the first complete revolution after a start. When the pulse disappears while the speed signal is live, freeze the last good diameter and raise a flag: a number that keeps updating on a dead pickup misleads harder than a blank field.
| Reading on the panel | First place to look |
|---|---|
| Diameter about 60 times too large | The / 60 is missing from the math |
| Diameter high, worse at high speed | Level-triggered timer counting the mark width |
| Value frozen while the line runs | Missing pulse: pickup, wiring, input channel |
| Diameter climbs while the roll unwinds | Endpoint scaling, unit mix, trigger polarity |
On a healthy unwind the period only ever shortens, so a climbing diameter is an input problem, most often scaling or triggering.
Feet left and time left from the core
The live diameter calculation runs without the core. Keep the core diameter in a register of its own, in inches, for the estimate of what remains on the roll.
Length still wound on comes from the annulus:
L = pi x (D^2 - d^2) / (4 x t)
D is the measured outside diameter, d the core diameter, t the caliper, all in the same unit; L comes out in that unit. Wraps left are (D - d) / (2 x t), because each wrap adds two calipers to the diameter. Time left is L / v, in minutes when L is feet and v is ft/min. The estimate assumes a tight, uniform wind; loose or crushed material reads long. For the display side of a countdown, showing time remaining from a PLC timer on an HMI is the pattern to copy.
What to build, in order
- Scale the analog channel to ft/min against both documented endpoints and verify it at two speeds.
- Confirm one clean pulse per turn at running speed, from the input status, guarding closed.
- Time the period edge to edge on a timer base of 10 ms or finer.
- Gate on minimum speed, first-revolution lockout, and missing-pulse hold with a flag.
- Compute the diameter in floating point, or in scaled-integer math when your PLC has no floating point.
- Show inches, tape-check the first roll, then leave the logic alone.
Recommendation: time the revolution edge to edge on a 10 ms or finer base, compute the diameter in floating point or scaled integers, update the display only above your minimum running speed, and hold the last good value with a flag whenever the pulse or the speed signal goes invalid. Keep the core diameter out of the live math and use it only for the feet and time left.
Size the digits for where they are read: 30 ft of viewing distance per inch of letter height (FHWA), or 20 ft per inch where people glance while walking, so a number read from 15 ft needs digits at least half an inch tall. Where the floor needs roll status away from the HMI panel, shop-floor signage screens running your own Android app can carry the same number.
Questions
Can I use rpm instead of a period timer?
Yes. With the unwind turning at N rpm, diameter in feet is line speed divided by N, then divided by pi. A 1.5 s revolution is 60 / 1.5 = 40 rpm, so 1000 ft/min gives 1000 / 40 = 25 ft of circumference and 25 / pi = 7.96 ft. It is the same formula with the period already converted to rpm.
What if the pickup gives more than one pulse per revolution?
Multiply the time between adjacent pulses by the number of pulses per revolution to get the full revolution time, then apply the same formula. A four-mark pickup reading 0.375 s between pulses turns once every 1.5 s, the same 7.96 ft roll as the example at 1000 ft/min. Count the marks on the coupling before you trust the multiplier.
How often does the displayed diameter update?
Once per revolution. At 1000 ft/min and a 1.5 s period, that is a fresh value every 1.5 s. As the roll unwinds the period shortens and updates come faster. Write the new value when the edge lands and leave it alone between pulses; the eye reads a held number better than a flickering one.
How do I predict the diameter a known length will wind to?
Reverse the length formula: D is the square root of (d squared plus 4 times L times t divided by pi), with d the core diameter, L the length and t the caliper, all in the same unit. This is the form online roll calculators use for rewind sizing, and it is the annulus formula run backwards.
Planning information, not legal or engineering advice. Rules differ by place: check codes and permits with your local authority and your licensed trades.