G04 P3000: 3 Seconds for a Bar Puller, Not X3000

Mark Townsend8 min read
Other ManufacturerOther TopicTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

G04 appears to count down correctly on the panel, but the coolant-powered puller can still move before it has enough grip. Start with the dwell format: on the tested control, G04 P3000 produced a three-second delay. Put M8 in the preceding block. Then decide whether a fixed delay is adequate or whether the machine must prove coolant pressure before opening the chuck.

Read the symptom before changing the dwell

Watch the sequence from M8 through the first pull move. The decisive reading is coolant pressure at the puller, not pump noise, coolant flow, or the countdown displayed for G04.

Symptom or reading Likely cause and next check
No dwell after M8 The dwell address or units do not match the control. Test G04 P3000 without opening the chuck.
Three-second countdown, but weak grip The timer works; pressure does not reach the required level. Check leaks, coolant level, restrictions, seals, and pressure at the puller.
Grip is reliable, but the machine waits longer than necessary The fixed dwell exceeds actual pressure-build time. Measure the interval or install pressure confirmation.
Pull length varies or the stock slips Grip force, bar load, liner friction, or feed rate is outside the tested operating window. Stop automatic repetition and perform a load test.
The test works at low rapid override only The grip has not been proved at the programmed pull feed. Keep the production move within the validated speed and load.
Pressure varies between cycles A leak, low coolant level, clog, pump condition, or changing flow path is affecting pressure rise. A longer timer can hide the variation but cannot detect a failed grip.

If the panel completes the three-second dwell, changing P3000 to a larger number is not the first fix for slipping stock. Measure pressure and inspect the hydraulic path first.

Confirm the control interprets P3000 as three seconds

The demonstrated syntax was:

G04 P3000 ;

Here, integer address P represents milliseconds, so P1000 is one second and P3000 is three seconds. This format was selected because it avoids the decimal interpretation associated with X or U dwell addresses.

Fanuc, Yasnac, and Mitsubishi operator manuals include address-range tables near the front of the manual. Use the table for the installed control to verify which dwell addresses it accepts and the units assigned to each address. The machine builder can alter auxiliary functions even when the base control family is familiar.

Do not choose between G04 X3.000 and G04 X3000 by watching whether the block parses. A syntactically accepted block can still command the wrong interval. On controls where X or U interpretation depends on active modes, P3000 is the clearer three-second command. Run the test in a harmless program state and time the displayed dwell before involving the chuck or stock.

Separate M8 from the dwell block

Program coolant start and dwell as separate blocks:

M8 ;
G04 P3000 ;

This sequence removes ambiguity about whether the control starts the auxiliary function before, during, or after evaluating the dwell in a mixed block. It also makes single-block testing direct: one block requests coolant, and the next block holds execution for three seconds.

Avoid both mixed forms until the control and machine-builder manuals explicitly define their execution order:

M8 G04 P3000 ;
G04 P3000 M8 ;

Moving M8 from the beginning to the end of a block is not a dependable timing method. Controls can buffer motion and auxiliary commands differently, and an accepted program does not prove that full pressure existed throughout the dwell.

Check the coolant indicator and pressure together. If the output becomes active at the M8 block and pressure reaches the puller before G04 P3000 expires, continue to the chuck-function check. If pressure is still rising at the end of the dwell, diagnose the coolant circuit before extending the timer.

Measure pressure where the puller uses it

A coolant-powered puller grips only after coolant pressure acts on its internal mechanism. The pump can be running while air, leakage, restrictions, or an unfilled passage delays usable force.

  1. Install a suitable pressure gauge at a point that represents puller inlet pressure.
  2. Command M8 with the spindle and axes in a safe state.
  3. Measure the time from coolant command to the minimum pressure required for a reliable grip. Get that minimum from the puller documentation or the supplier; do not infer it from visible coolant flow.
  4. Repeat the measurement with the coolant system in normal operating condition. Check for cycle-to-cycle variation.
  5. Inspect the toolholder interface and coolant path for leakage. The evaluated setup had approximately 0.001-0.003 in. gaps that discharged some coolant.

A centrifugal coolant pump does not necessarily reach pressure in the same time on every cycle. Coolant level, leaks, a clog, a damaged seal, and the active flow path can change the pressure-rise curve. A fixed three-second dwell works only when the slowest normal pressure rise remains below three seconds with adequate margin.

If pressure never reaches the puller's required threshold, more dwell wastes cycle time and leaves the gripping fault unresolved. Repair the leak or restriction, correct coolant supply conditions, or service the puller.

Prove the bar load before automatic repetition

Pressure confirmation proves actuation; it does not prove that the fingers can pull the production bar through the spindle liners. Test grip against the actual combination of bar mass, surface condition, liner friction, pull distance, and acceleration.

The setup was demonstrated with a 1.875 in.-diameter, 3 ft-long bar weighing about 26 lb. It pulled without observed slip at 1% and 5% rapid override. A slick, oily, heavy-wall 2 in. pipe measuring 7 ft and weighing 35 lb also pulled successfully.

The stated maximum load was 64 lb, but that load was not tested. The low-override demonstrations therefore validate those test conditions, not maximum load or high-speed operation. Testing at 1% and 5% also does not validate 25% or 100% rapid.

  1. Use the actual bar diameter, length, material finish, and spindle-liner arrangement planned for production.
  2. Start at a controlled feed with the machine ready to stop.
  3. Mark the bar and verify that commanded pull length equals actual displacement.
  4. Repeat enough cycles to expose intermittent slip and pressure variation.
  5. Increase only to the intended production feed. Do not validate unused rapid settings merely to find the puller's limit.

The planned job uses two 20 ft bars to make just over 130 parts, with parts under 2 in. in diameter and about 3.500 in. long. A single short pull compounds across that quantity. Check actual stock position after representative repeated pulls before permitting unattended operation.

Use pressure confirmation when a missed pull can cause damage

A timer answers only, “Has three seconds elapsed?” A pressure switch answers, “Has gripping pressure arrived?” Use pressure confirmation when a short pull can cause a crash, scrap, or repeated cutting in air.

Connect an adjustable pressure switch to the coolant line feeding the puller. Set it at the minimum pressure required for reliable grip, then wire it to a control input or machine-builder completion circuit. Use the voltage and input arrangement shown in the machine electrical drawings; 24 VDC was cited as a common example, not a universal input specification.

The control logic must wait for the pressure input before continuing. An illustrative auxiliary command was M91:

M8 ;
M91 ;  (illustrative wait-for-finish M-code only)
G01 ... ;

M91 is not a standard assignment for every machine. Find an available machine-specific M-code that waits for a finish signal, or have the machine builder define the handshake. Verify its timeout and alarm behavior from the control documentation. A wait with no timeout can leave the cycle stalled indefinitely after a pump, seal, coolant-level, or switch failure.

Place pressure confirmation before chuck opening and before the pull move. Dropping pressure after confirmation may also matter; if the control can monitor the input during the pull, configure loss of pressure to inhibit or stop the motion through the machine's approved logic.

Run the resolving sequence and verify every transition

Confirm the actual machine assignments for chuck open, chuck close, coolant off, and tailstock operation before using M68, M69, M9, or M25. These M-codes are installation-specific. Likewise, verify what G98 means on the installed control before programming F10; feed mode and feed units must match the intended pull rate.

  1. Face and center the stock, then align the puller in X and Z.
  2. Command coolant with M8.
  3. Use G04 P3000 for the proved three-second fixed delay, or wait for the validated pressure-switch input.
  4. Confirm pressure before commanding the machine-specific chuck-open function.
  5. Feed the bar to the required length at the validated feed rate. Do not substitute an untested rapid rate.
  6. Command the machine-specific chuck-close function and verify its completion signal where available.
  7. Turn coolant off with the verified coolant-off command.
  8. Retract the puller clear of the bar. Confirm clearance before any rapid move, tailstock action, or resumed cutting.
  9. Run one complete cycle in single block, then several cycles under observation before enabling repetition with M99.

Record four verification results: peak puller pressure, time to pressure, commanded versus measured pull length, and bar position after repeated cycles. Reject the automatic cycle if any pull is short, pressure fails to reach the chosen threshold, the chuck state is uncertain, or retraction clearance is not proved.

FAQ

Why does G04 P3000 give a three-second dwell?

On the tested control, the integer P value is in milliseconds: P1000 equals one second and P3000 equals three seconds. Confirm the address range and dwell units in the operator manual for the installed control.

Why does the bar slip even after a three-second G04 dwell?

The timer can expire without adequate puller pressure. Measure pressure at the puller, then check leaks, coolant level, restrictions, seals, bar weight, liner friction, and the programmed pull feed.

Why does the puller need a pressure switch instead of a longer dwell?

A pressure switch releases the sequence when gripping pressure actually arrives and blocks the pull when it does not. Stop if the required pressure, M-code handshake, chuck confirmation, or production-load test cannot be proved; escalate to the machine builder, control manufacturer, or puller manufacturer's official support channel before automatic operation.

Back to blog