Contact Us At DNC software program for RS232 CNC file transfer - free 60 day trial
ProDNC DNC Software - Standard Edition

DNC Software Parameter Settings
These parameter settings are shown when you click the "Properties" icon. Click on each of the tab-buttons to get to each of the settings group.

These tab buttons are Com Port, Send, Receive, Startup Folders, Remove, Punch

CNC Name
ProDNC allows you up to 64 different CNC machines. When ProDNC first loads it creates a set of default parameters for each of these machines and gives them the name "Machine1" "Machine2"...."Machine64". You probably want to change these to something more meaningful to you. Just type in the name of the CNC into this box. You can have anything, blanks, even duplicate names. If you don't require all 64 CNC machines and to make it less confusing you can remove any that you don't need from the list...

Example CNC Settings
ProDNC ships with many settings predefined. Simply select from the list. Its important to understand that these are starting points as they may have been changed by the CNC builder or by yourselves.

Com Port

ProDNC supports simultaneous connections of your communication ports from com1 to com128.

Baudrates from 150 to 460800 are supported.

Character Set
This determines the format of the actual data itself, not the way its sent (as in protocol). Most modern CNC machines use ASCII or ISO and so the data that you see, is sent and received by the CNC in exactly the same format that its stored in files on your computer. Some older CNC machines use an EIA format. If you stored the data direct off the CNC and sent it back to the CNC in this format that would be OK, it would work. However you would not be able to view the data and edit it, because it would be totally unreadable. ProDNC therefore translates EIA into ASCII as it receives from the CNC and converts from ASCII to EIA as it sends the data back to the CNC.

ProDNC supports XON/XOFF, RTS/CTS handshaking protocols

Flow-control : Enable DTR
Determines whether to enable the Data Terminal Ready (DTR) line during communications. Typically, the DTR signal is sent by your computer to the CNC to indicate that it is ready to accept incoming transmission. If you check this, the DTR line is set to high (on) when the port is opened, and low (off) when the port is closed. If you dont check it, the DTR always remains low. This feature means that the loops within your cable that "fool" the CNC into thinking that your computer is ready to receive data can be removed and be fully controlled by ProDNC.

Flow-control : Enable RTS
Determines whether to enable the Request To Send (RTS) line. Typically, the RTS signal that requests permission to transmit data is sent from a computer to the CNC. When this option is checked, the RTS line is set to high (on) when the port is opened, and low (off) when the port is closed.

Flow Method
Poll Port : - This option specifies the way that ProDNC invokes and checks the type of handshaking. If you select Poll Port, then ProDNC checks the receive buffer or the state of the hardware pins, just before it sends the file block or file data packet. This method is to be used if you have problems handshaking using the interrupt method since it bypasses the Windows serial driver. This method will send the full block or data packet before checking for the handshaking status, and so in theory is less reliable than the interrupt method below...

Flow Method
: - The interrupt method uses the Windows serial driver. Then if an XOFF is received (or the CTS pin goes low) the serial buffer/com port should respond immediately, even if only part of the block or data packet has been sent, since an interrupt is raised and data cannot (should not) be sent out. Therefore, in theory, the interrupt method is more reliable. If you experience problems, try the Poll Port method.

Run DNC in debug mode
Whilst you are setting up your DNC connections it is useful to be able to see the actual data come in and out. Each DNC profile has its own DNC window. However once its been successfully setup its much better to hide them so that things don't get cluttered on-screen. Hide them by selecting this option.

Send tab

Send Before File
Many CNC machines need you to send a series of control codes before you send a file. These control codes basically tell the CNC control that a file is about to come its way. The only problem with this is that as often as not, these control codes are non-printable characters and so you cant type them at the keyboard. ProDNC gets around this by letting you put in the ASCII equivalent of these codes, ProDNC converts them and sends them before it sends the main body of the file. To send a series of these control-codes you enter the numerical ASCII value separated by commas. For example 0,0,0,0,2,37 would send 4 nulls a STX and a %. If you click the button at the side, you can select a character from a list of all possible characters and how many of these you want to send. If you need to send a lot of the same characters, for example some CNC may need 200 nulls as a header, then the shorthand notation is #200,0 You can send any combination and number off. For example #200,0,2,#100,32,37 would send 200 nulls, an STX, 100 SPACES and a %

Send After File
In much the same way as sending control-codes before a file to tell a CNC that transmission is to start, many CNC also need control-codes after the file to tell the CNC that transmission has ended. You enter the ASCII equivalents exactly as described in the "Send Before File" section above. ProDNC then sends this combination of control-codes after the main body of the file.

End Of Block
The text files that you have stored on your computer have each line ending in a pair of invisible control-codes called carriage-return (CR) and line-feed (LF). You cant see them but they are there and they make the text go onto separate lines. If they were not there or were not separated by this CR/LF combination you may get the text in one long continuous line or maybe double spaced. You may have seen this before if you have tried other comms packages or the HyperTerminal that ships with Windows. CNC machines operate in exactly the same way but there are many more variations of these CR and LF combinations - the thing is that you have to sending the correct format or the CNC will alarm. You therefore decide which end-of-block by selecting from the drop down list.

Data Packet Delay (ms)
Modern computers and our state-of-the-art serial drivers are INCREDIBLY FAST! They can stuff data into the serial port at incredibly high transfer rates, so high that in many cases the receiving CNC just cannot cope, even though the baudrates are set the same. You will experience buffer overrun errors and the CNC will either alarm out or you will get missing data. There are several ways to get around this and one of them is to introduce a delay between each block or data packet as it is transferred.

Char Delay (ms)
It may be that your CNC is so old that a Data Packet Delay is not sufficient and so you have to delay EACH CHARACTER. This is very rare and only applicable to the oldest of CNC machines where transfer is very very slow.

Wait For After Sending
Use a value to wait for after sending a file. If you experience the tail end of your NC program failing to reach the CNC it may be that ProDNC "thinks" that all the data has been sent and closes the port. If this happens increase this time value so that the data is safely written by the buffer and sent to the CNC. This usually happens with Windows NT, XP and 2000

Data Packet Size
ProDNC can send data to your CNC in two different modes. The first is "{Block Send}" and is chose by selecting this value out of the Data Packet Size drop-down. In this mode the file is read and each block is sent with the appropriate end-of-block sequence. Unless you are wanting to transfer at much higher speeds this is always the best option. It can be used for drip-feeding as well as normal transfer of files that will fit in your CNC memory.

The second is to choose a data-packet size (in bytes) which can be useful in curing some drip-feeding problems; you can set this value to ensure that your CNC never alarms out because of a buffer overrun. For example if you experience an alarm on Fanuc machines you can set this value to 9. This is because the Fanuc may only send out an XOFF or make the CTS low if there are 10 free bytes in its memory (absolutely stupid we know). If a comms package therefore sends out a block that is say 30 bytes long, the Fanuc alarms out. ProDNC therefore makes sure that it can never cause buffer overrun by chopping the entire NC file into packets, the size of which you control by this data packet size. It is therefore able to respond to an XOFF before data is written to the buffer and therefore sent to the CNC.

In many cases other CNC controls such as the Haas will drip-feed quite happily by using normal handshaking, simply because it leaves plenty of space in its memory for your data. You would just use the normal {Block Send} mode.

Choosing any other value than {Block Send} will automatically put ProDNC into this mode.

You can also choose to send with the largest packet sizes for extremely fast data transmission. In these case you are sending up to 16K of your file direct to the buffer, this is the fastest method, if your CNC will support this amount of data so quickly. Because the file is sent in large chunks, the display will only show the percentage send likewise. You will see the number of bytes in the buffer in the transfer window. If this value stays at a certain value, you can assume that the CNC has sent out an XOFF or set the CTS low and ProDNC is waiting to send the next packet.

*NOTE* If you are using the data-packet method of sending and your end-of-block is not CR/LF, then ProDNC will regenerate the file with the appropriate end-of-block and then send that - there will be a delay if the file is very large.

Ignore All Spaces In NC File
On many older CNC machines valuable space in its memory is saved by sending files that do not contain any spaces. This does however make reading these files very difficult. This feature allows you to create your files with spaces and then send them out forcing ProDNC to ignore all the spaces in the file.

Wait Before Sending
This is the time that ProDNC waits before it sends the data to your CNC. You can set up ProDNC so that it gives you time to walk over to your CNC and put into INPUT mode.

Wait After Sending
This is the time that ProDNC waits after it sends the data to your CNC. This is useful if your CNC drops the last few blocks or characters because your computer closes the comms port too early.

Wait For XON From CNC Before Sending
Many CNC controls like Fanuc or Heidenhain send out an XON when they are put into input mode. This is useful because you select this option when you send a file to the CNC. If you do this the cable pins go high because the port is open and ProDNC sits there and sends as soon as the CNC is put into INPUT.

CNC Needs To See Remote Device
Many CNC machines require that the remote device (your computer and ProDNC) is connected prior to you sending out a file, or else it will error out. In most cases you can get around this by using the "Wait For XON Before Sending". However for those CNC machines that do not output an XON, this feature makes sure that the com port pins are high and so the CNC sees the remote device. If you check this option then both the RTS and the DTR pins are made to go high when you send the file, and so the check boxes are ticked automatically. When this dialog pops-up its now safe to put your CNC into input mode, because the port is now open at the computer and so the CNC will recognize this a s a remote device - this will happen on Fanuc and Heidenhain for example.

Receive tab

Strip Everything Before Character
When you get your CNC to send a file back to ProDNC, it may also send out a series of control-codes before it sends the main body of the program. In many case you could safely leave these in the file. Then if you need to send the file back to your CNC these control code would be sent back aswell. However, in just as many cases these control-codes will error out the CNC control. For example, on older Fanucs, they send out a sequence of garbage containing &HE: You send this back and the CNC may not like it at all!

You are therefore better off stripping these control codes out of the file totally. All you need to do is enter the ASCII value of the last character in the sequence you want to discard. Everything up to and including this character will be ignored by ProDNC and not saved to disk.

Strip Everything After Character
In much the same way as a CNC may send out control-codes before the main body of the program, it can also send a series of codes after the file. We would recommend that you discard these characters and dont save them to disk.

All you need to do is enter the ASCII value of the first character in the sequence you want to discard. Everything after and including this character will be ignored by ProDNC and not saved to disk.

Discard Characters
As an alternative to the two methods described above, you could choose to discard characters automatically. You have 3 options for this setting

  • All Nulls - This options automatically strips out all null characters from your received file

  • Characters 0 to 31 - This option automatically strips out all non-printables between 0 (null) and 31, excluding CR and LF

  • {None} - The file is left alone

End Of Block
The text files that you have stored on your computer have each line ending in a pair of invisible control-codes called carriage-return (CR) and line-feed (LF). In general Fanucs use either LF/CR/CR or LF, Haas use CR/LF and Fadal use CR

ProDNC can autodetect these end-of-blocks, but if you like you can specify it yourself, should you encounter any difficulty. In general, you would use the same EOB to send as that to receive.

Wait For After Receiving File

This is the time that ProDNC gives the CNC between sending any of its data. If its longer than this ProDNC assumes that transfer has stopped because it has not received any data within this time. The minimum value is 5 seconds. This also gives you time to cancel the file and so the file is not saved away.

Send Before Receiving
Sometimes your CNC needs to see a character, typically an XON, before it will send out the file to ProDNC. Type in the ASCII value of the characters you need to send.

Send After Receiving
Sometimes your CNC needs to see a character, typically an XOFF, before it will send out the file to ProDNC. Type in the ASCII value of the characters you need to send.

Close Port When Received
When ProDNC is receiving a file from your CNC it needs a period of time to see if any more data is being sent from your CNC (some CNC's send data, wait a bit, send a bit more and then at the end wait again) so that it does not accidentally miss bits of the file. However if you specifically enter a character or characters, for example M30, then ProDNC will know that the file has been received and so does not have to wait anymore to time down. This means you don't have to wait until the file is stored.

Refresh Buffer Every (ms)
ProDNC gets the data from your CNC and shows it to your computer screen (and saves it away to disk). You can control the refresh rate at which this happens between 10ms and 200ms. The faster it is refreshed the smoother the scrolling of the data coming in appears. However you may find that on slower PC's you may have to increase the time simply because the computer just cannot keep up. You wont lose any data, it will just appear jerky on screen as it comes in.

Folders tab

Clicking these buttons pops up a window allowing you to set up where you want files to be stored on your computer. Many users have separate send and receive folders so that received files can be "quarantined". They are then reviewed to see if it can become the "master" file. If you are on a network, then ProDNC will fully support UNC filenames.

You can of course have the same folder for send and receive. You just have to be sure that the files you receive back from your CNC are OK.

You can setup a 8 file extensions for both send and receive files. The default extension is "TXT" You can enter any 3 letter extension. Click on the file extensions button. File extensions are useful if you want to store all your NC programs in a single folder, but have to separate them because they are for different customers. You can then specify a different extension for each customer and quickly filter them out from within any file dialog boxes. The alternative of course is to setup a different folder for each customer.

Remove tab

Remove Text Boxes
You can enter specific bits of text that you cannot delete by any other method. For example the &HE: inside many Fanuc CNC programs. You can enter up to 8 different text strings and they will be removed from the saved file.

Punch tab

Punch Man Readables
ProDNC allows you to send man-readable information at the start of your paper tape. If you check this option, then the options shown above will appear.

The rules for punching man-readables are as follows :-

1. You must be using EIA character set

2. You can set an "assume man readable until this character" so that you can actually store the man-readable info in your NC file on disk. Every character before the first block that contains this single character is then treated as man-readable and is punched out prior to the main NC code. If you leave it blank, then no man-readable is punched, the whole file is treated as NC code.

3. You can set the length of tape start leader, between the man-readable and the NC code and the tape trailer