Engineering · Manufacturing
Spring Coiler Programming, Timing and Motion Sequencing
How to structure a CNC spring program around feed, pitch, diameter, cutoff, torsion and auxiliary commands, with practical timing methods for preventing servo overlap at production speed.
Source fidelity and use of values
This handbook page is derived from an anonymised machine-specific operating and setup manual. Numerical settings are retained only where they carry practical technical meaning. They are marked as source examples and are not universal specifications. Machine builders, tooling geometry, wire condition and site safety procedures can require different values.
1. Read the program as a sequence of physical states
The source program is displayed as a table of numbered steps with columns for feed, pitch, diameter, cutoff, torsion, latch/auxiliary actions and option commands. The important lesson is not the exact controller syntax. Each row represents a desired machine state or movement, and each transition must make mechanical sense before the next transition begins.
A robust program can therefore be reviewed without knowing every code: ask what the wire is doing, where the spring is supported, which tool is moving, which clearance is required and what has to finish before the next movement starts.
2. Typical program phases
3. Incremental versus absolute thinking
The sample program marks an incremental mode at the beginning. In an incremental program, values are interpreted relative to the current state rather than as global machine coordinates. This makes physical zero integrity especially important. If an axis zero shifts, the same series of relative moves no longer reaches the same real tool positions.
Even where a controller mixes absolute and incremental commands, the setup record should identify which program values depend on the mechanical zero. The source repeatedly connects changed zero positions with hook and cutoff problems, showing that program correctness is inseparable from reference integrity.
4. Feed values define more than spring length
Wire feed creates the spring body, but it also controls hook geometry. Early in the cycle, a short feed creates the two hook coils. Another feed while the pitch tool has displaced the loop creates the hook leg. Further feed rotates that leg to the bending position. Later repeated feed creates the spring body and drives the product toward the length sensor.
This means a feed-value edit can change one of several different physical outcomes depending on where it occurs. Program comments should therefore describe the intention of each feed move — for example, “hook loop”, “leg length”, “rotate to start”, “body length” — rather than leaving a table of unexplained numbers.
5. Deliberate blank rows as timing devices
One of the most practical observations in the source is that empty program lines are used between certain tool moves to slow the hook-forming sequence. At high run speed, program execution can advance faster than a servo axis physically moves. The next command can then begin while the previous tool is still travelling.
This is a classic asynchronous motion problem. The controller may accept a target immediately, but the mechanical axis still needs acceleration, travel and settling time. If the program does not explicitly wait for position completion, timing margin must be created another way.
Source-specific timing workaround
A later note in the manual recommends inserting a substantial block of blank program rows — at least 12 in one particular hook-forming transition — to prevent premature movement at production speed. Treat this as a controller-specific workaround, not a universal number.
6. Use wait commands for setup visibility
The source also uses wait commands to stop the sequence at selected positions. This lets the operator inspect clearance, confirm the wire is in the groove and verify the hook-forming arbor is clear before continuing. During development, these stops act like manual breakpoints in a software debugger.
Once the geometry is proven, the waits can be reduced or changed, but only after dynamic stability has been confirmed. Removing all pauses because the spring looks correct at slow speed can expose timing defects when run speed is increased.
7. Auxiliary commands and dwell
The source program contains commands for the hook-forming arbor and part ejector as well as a timed wait after ejection. The final stages of the sample cycle open the ejector and wait approximately 250 milliseconds before proceeding. Source example: this 250 ms dwell is specific to the source machine’s ramp and spring behaviour. Its purpose is to let the finished spring clear the tooling before the next cycle begins.
Ejection dwell should be set by observed discharge reliability, not simply reduced to chase cycle time. A spring that remains in the ramp can interfere with the next part and create a much longer stoppage than the saved milliseconds.
8. Programmed pickup after hook forming
After the hook is formed, the wire can point forward on the main arbor. If the coiling point returns directly to its normal zero, the groove may miss the wire. The source solves this by moving the coiling point to an intermediate pickup value before commanding the full pretension position. Source example: where a pretension setting was around 0.77 mm, an intermediate return around 0.4 mm was used to re-engage the wire.
The lesson is to program transitions, not just endpoints. A safe intermediate state can be necessary even if both the start and final positions are individually correct.
9. Cutoff command placement
The cutoff command appears after body length is completed and the coiling point is in a position that supports the spring for cutting. If the coiling-point zero has shifted too far forward, the cutter can push the spring off the arbor and fail to cut. This again shows why a program review must consider the physical state of all axes at the instant a command is issued.
10. Ejector state management
The source starts with the ejector closed, opens it after cutting and includes a delay. In manual recovery, the ejector can also be switched to a manual eject position to clear a remaining spring, but it is returned to automatic mode before production resumes. This distinction should be reflected in the program and operator checklist so a manually overridden ejector does not remain in the wrong state.
11. High-speed validation protocol
- Prove the sequence at low speed. Check all tool clearances and wire engagement.
- Use waits or breakpoints. Inspect the machine at the most constrained hook-forming states.
- Run several cycles at moderate speed. Watch for hook rotation, groove escape and incomplete tool moves.
- Increase speed in steps. Do not jump directly from setup speed to the intended maximum.
- Compare geometry at each step. A speed-dependent defect indicates timing or dynamic wire control, not a static coordinate alone.
- Add timing margin where necessary. Use supported wait logic or controller-appropriate spacing rather than over-driving the tool coordinate.
- Record the validated production speed. The stable speed is part of the process setup.
12. Program comments are manufacturing knowledge
The sample program is valuable because it contains comments such as “leg length”, “rotate leg to start”, “changing pretension”, “length command”, “cut spring”, “arbor retract” and “ejector open”. These comments preserve the intent behind each movement. Without them, future operators may alter a value without understanding which physical feature it controls.
A good KEVOS-style setup record should therefore pair controller values with plain-language intent, acceptance checks and known interactions. For example, a torsion value may be documented as “aligns hook leg into coiling-point groove at bend” rather than simply “torsion -0.3”.
13. Program-change discipline
- Save or record the last proven program before editing.
- Confirm the mechanical zeros and current tooling match the program family.
- Change one coordinate or timing feature at a time where practical.
- Use comments to state the physical purpose of the edited line.
- Validate at low speed before production speed.
- After a successful change, record the reason, old value, new value and observed effect.
- Do not use timing changes to hide tool interference or damaged tooling.
14. Failure mode: correct at slow speed, wrong at high speed
The manual repeatedly records this pattern. A hook can be perfect during setup, then deform as production speed rises. In one case the spring body began forming before the coiling point had returned from the hook-forming move. In another, the wire slipped out of the coiling-point groove during the bend. These examples are a reminder that CNC spring programs are dynamic systems. Position values describe where a tool should go; they do not by themselves guarantee that the tool gets there before the next event.
