Getting a program out of the machine and back to the PC
Every guide about DNC talks about sending. The transfer that actually saves a shop is the one going the other way — pulling back what the operator changed at the machine, before the only copy of it disappears.
Why this direction matters more than people think
The program that finally cut a good part is rarely the one that left the CAM seat. Feeds got trimmed, a lead-in got changed, someone added a dwell. Those edits happen at the control, and if nothing ever brings them back, your library holds the version that didn't quite work while the version that did sits in battery-backed memory on a twenty-year-old machine.
- The operator improved the program and nobody wrote it down.
- A repeat job comes back and the machine has the good version, not the server.
- You're replacing a control, or the low-battery alarm has appeared and memory is about to go.
- You want to know what is actually stored on a machine you inherited.
- You're moving to DNC and need to bring the existing library across.
The one rule: the receiver listens first
A Fanuc control punching a program does not negotiate, wait, or retry. It sends. If the PC isn't already listening, the first characters are gone and what arrives is a truncated file that looks almost right — which is worse than nothing, because it may not be obvious.
So the order is always: set the PC to receive, confirm it's waiting, then start the output at the machine.
At the machine
- Put the control in EDIT mode. Output is normally blocked in AUTO or MEM.
- Open the program directory / program screen.
- Select the program number you want, or the all-programs option if you're backing the machine up.
- Find OUTPUT on newer controls, or PUNCH on older ones — it's often a soft key under an OPRT or (OPRT) menu, and may need pressing twice to confirm.
- Watch for the output/transfer indicator. If it finishes instantly, nothing was sent.
Exact key names and menu depth vary by series and by machine builder. The sequence doesn't: EDIT mode, pick the program, output it.
Settings still have to match
Receiving uses the same serial settings as sending — baud rate, data bits, parity, stop bits, and the I/O channel. If you have never got a transfer working in either direction, start here rather than at the machine: the Fanuc RS-232 settings reference has the parameters, the baud-rate codes, and what alarms 085, 086 and 087 mean.
Receiving is also the best way to test a new setup, precisely because nothing in the control is at risk. Prove the link by pulling a program out before you ever push one in.
When it goes wrong
- Nothing arrives, no alarm at the machine — the PC wasn't listening, or the I/O channel parameter points at a different port than the one you're plugged into.
- The file arrives but starts mid-program — the receiver was started too late. Try again, listening first.
- Readable code, wrong characters here and there — baud rate or parity mismatch. Drop a step in baud and retry.
- The file ends early on a long program — flow control. The PC stopped accepting and the control kept sending.
- You get a file of gibberish that's the right length — EIA/ISO code mismatch. The data made it; the alphabet didn't.
While you have the cable connected, back up the rest
This is the part shops skip and later regret. Programs are the easy half — they can be re-posted from CAM if they're lost. The rest of what lives in that battery-backed memory cannot be:
- Parameters — the machine's entire personality. Axis setup, servo tuning, I/O configuration.
- Pitch error compensation — measured for that specific machine, on the day it was commissioned.
- Macro variables (common variables) — often carrying probing results, work offsets, and shop-written cycle settings.
- Tool offsets and work offsets.
- PMC parameters / ladder data, where the builder's own logic lives.
Each is output from its own screen, using the same connection. A low-battery alarm is not a warning that you have weeks — on a machine that gets switched off at the weekend, it can be days. Back up before you replace the battery, not after.
Doing it without standing at the machine
ElectronIx DNC receives as readily as it sends: pick the machine, start a receive, and the program lands in that machine's folder in the library with a name and a timestamp rather than as O1234.txtin someone's Downloads folder. On machines with Ethernet, the control can push straight to the FTP server with no one at the PC at all.
Related: program transfer over Ethernet, what DNC actually means, and choosing a serial-to-Ethernet converter.
Questions
How do I copy a program from a Fanuc machine to my computer?
Put the PC in receive mode first, then output the program from the control — on most Fanuc controls that's EDIT mode, the program screen, and OUTPUT (or PUNCH on older controls). The receiving end has to be listening before the machine starts sending, because the control does not wait or retry.
Why does the transfer only work in one direction?
Sending but not receiving is almost always cable pinout — one of TX/RX isn't landing where the control expects it. A wrong baud rate or parity breaks both directions, so a one-way link points at wiring rather than settings.
Can I receive all programs at once?
On most Fanuc controls, yes — outputting program number O-9999 (or ALL, depending on the series) sends the whole memory as one stream. It arrives as a single file that you then split. It's the fastest way to back up a machine, and the way most shops discover what's actually still in there.
The operator edited the program at the machine. How do I get that change back?
Receive it and overwrite the copy in your library. This is exactly the case that makes shops adopt DNC: without a route back to the PC, the only correct version of the program lives in the machine, and it dies with the control's battery.
Should I back up anything besides programs?
Yes, and most shops don't until it's too late. Parameters, pitch error compensation, macro variables, tool offsets and PMC data all live in the same battery-backed memory as the programs. Programs can be re-posted from CAM; a machine's parameters cannot.