Greeting

DNC Server

From i -Logic Software for uploading and downloading to CNC machines.

Our unique interface puts everything in one screen - the list of files, an edit window, send, receive, print. Can be configured for any number of machines.

Copyright ©2009 i-Logic Software

For latest information and downloads vis it www.i-logic.com

For general help on communication settings and troubleshooting, see the RS-232 Communications page at I-logic.


Adding and Removing Machines

Machine Configurations
DNC Server can only work with one machine at a time but it has multiple machine configurations, each with its own serial port settings etc.

You can add or delete machines from the Main menu Settings - Machines.

MachineMenu.bmp (88858 Bytes)

Add Machine Name - Add a Machine to dropdown list on the main window. These machines will appear on the dropdown Machine list on the main window so you can switch between them. After the Machine name is added to the list its format settings can be changed with Settings - Configuration.

Delete Machine - Delete a Machine from the dropdown list on the main window. At this point, any machines that are not needed may be deleted.

Up-Down Arrows - You can arrange the order in which the machine formats appear on the dropdown list on the main window. Highlight one of the items in the list and click the up or down arrow.

Edit Name - Highlight one of the item in the list and change the name and press the Rename button.


Communication Settings

Settings:
You can have any number of different machines with custom settings. Choose the machine you want to change in the Machine dropdown box.

Then click on Settings - Communication... on the main menu and the settings window of the current machine will be displayed..

CommMenu.bmp (114614 Bytes)

General Settings:

Serial Format

Check your control documentation for setting these items.
Longer wiring requires lower speeds.

This system relies on the machine control sending a signal to DNC Server when it is ready to receive ("X-ON" or CTS) which most all CNCs would do.

To bypass this and send out a file immediately when pressing the Send button, you would leave this unchecked.

All of these settings are stored in the file DNC.INI under the individual machine.

Files

Default Read Directory - Directory that shows up in the left directory list when you choose a machine from the drop down Machine list. Also used for default Autoserve directory.

Default Save Directory -Directory that shows up in the when you save from the edit window. Also used for default Autoserve directory.

Default File Extension -Enter the default program file extension. For example: .NC
This is used for the default extension in the Open and Save dialog boxes. Filter Files checkbox will filter the file list so only htis kind of extension will be displayed.

Editor Font -Size of the Editor text can be set to small or large and bold.

File List Font -Size of the text in the file list can be set to small or large and bold.

Language Files -You can change the language used by the user interface to your own translated text. See Language . Leave this blank to use the default english.

Machine

Strip Comments When Sending- If this is checked, DNCServer will strip out comments when sending. This is handy for the machines that don't accept comments. Set the beginning and and comment characters to look for. For instance, for Fanuc controls "(" would be the start comment character, and ")" would be the end comment character. If a only a single character is used at the beginning, like "!" to designate a comment, put it in the Start Comment Char and leave the End Comment Char blank, and everything from the start comment char to the end of the line will be stripped out.

Send Extra Characters : You have the option of sending extra characters the control might need at the beginning and end of the file. Special characters can be sent by using the ascii value enclosed in left and right arrows. For example, to send an extra carriage return at the end you would would type in <13> in the box. Your control may need Null characters at the begining or end of the program (like blank leader on a tape). A section of blank tape (feed holes) can be simulated by a series of zero values: <0><0><0><0><0><0><0>. Fanuc controls usually need end of file character: <20>. After file may not work when handshake is set to CTS/RTS because the control has already shut down the control line.

Strip Blank Lines -If this is checked, blank lines will be ignored when both receiving and sending files.

Strip Characters : You have the option of stripping any characters that the control might send. Special characters can be stripped by using the ascii value enclosed in left and right arrows. These characters will be stripped at send and receive. Use left and right arrows around the decimal numeric value of special characters, as in <59>.

Char Delay Keep at 0 unless you have special circumstances where there is no handshaking and you need to slow the pace down to not loose any characters.

Wait for Signal from Machine Before Send: Normally you would want to have this checked. This allows you to first call up the program you want at DNC Server and get it ready to send. DNC Server will wait forever until it receives the start signal from the CNC. Then when you go to the control and press 'Read', DNC Server will receive the start signal and begin sending.

End Receive File On - DNCServer automatically looks for these control codes in the files it receives. It stops receiving the file from the control and closes the file when it receives any of these control codes: #20 (DC4) or #3 (ETX) or #4 (EOT). or when it receives a second "%" character. If your control doesn't send these codes, you can set DNC Server to stop receiving when it receives a certain string of characters. You could enter "M30" in this box and file receiving would end when this was found.

Add After Sending a File - Most of the time you want to send character #20 to the control to tell it that it is finished sending the file. You can send any other characters in the Machine page.


Directories

Directory System:
For those who have their programs stored in multiple directories the Directory Shortcut List is helpful. The drop down list above the file list window is like a list of shortcuts to various directories. You may have a separate directory for each machine. Each default directory is set in the configuration. The idea is that when you pick one of the items in the drop down shortcut list, it will set the file window to that directory. Also, when the directory path is the same as one of the machine default directories, that item in the shortcut list appears and goes to that directory when you change the machine in the Machine dropdown list.

To configure the directories, go to Settings - Machines...

MachineMenu.bmp (88858 Bytes)

directories.bmp (343230 Bytes)

Directory Shortcuts - This is a list of directory paths and descriptions. The Descriptions on this list show up in the Directory Shortcut dropdown list on the main DNC Server window. The Path is the directory that will show in the main file window. Highlight one of the descriptions before you press the Edit, Remove or Up/Down buttons. Title shows up in the directory drop down list on the left side of the main window. Put in the File Path that you want this item to show in the main file window.

When the Default Read Directory in Settings - Communication - Files matches one of the paths in Directory Shortcuts, that directory will be displayed whenever that machine is chosen

For reference, this information is stored in the DNC.INI file in the following manner:

In the DNC.INI file is the [Dirs] section which is a list of directories that show up in the drop down list above the file window.
Items are
in the format of:
Dir1=Name that shows up in
list, directory path

[Dirs]
Dir1=OKUMA,g:\DncData\okuma\
Dir2=OKUMA1,g:\DncData\okuma1\
Dir3=OKUMA 50,g:\DncData\okuma50\
Dir4=INDEX,g:\DncData\index\


Using DNC Server in Standard Mode

To Send a file:
First put the text file into the DNC window. Highlight a file in the file list window. Press the Get button and the file will be sent to the DNC window. You can also drag and drop from the file list to the edit window.

To send the file to the machine, first press theSend button. If the communication protocol is set for handshaking, DNC Server will say its waiting for the start signal from the machine control. Then go over to the machine control and press the button for receive.

To interrupt the send, press the Stop button or press Escape.

To Receive a File:
Press the Receive button. Any text in the window will be cleared, and DNC Server will say its waiting for the data. The Receive and Send buttons will de-activate and the Stop button will show.. Anything received will show up in the DNC-text window. Go to the machine control and send out the program.
On machine controls that use XON/XOFF, DNC Server will know when the file ends and will re-enable the buttons. If it doesn't, then press the Stop button. See also End of File Receive

When it is finishes receiving all the text, press the Save button and choose the place and name you want to save to.

Overview

Procedure for Sending and Receiving from DNC Server

Sending to Machine :

1. Set Switch Boxes (if used)
2. At DNC Server – Select Machine from the dropdown list.
3. If you need to go to a different directory, choose it from the left drop down list.
4. Highlight file by clicking once on it.
5. Press the “Get” button to put it in the DNC window.
6. Press the “Send” button and will show “Waiting for Remote Start”
7. At Okuma, load file with CN0: , on Fanuc press Read.

Sending from Machine to Computer:

1. Set Switch Boxes (if used)
2. At DNC Server – Select correct machine from dropdown list
3. Press the “Receive” button – will say “Waiting for Data”
4. At Machine Punch program
5. At DNC Server – program will show up in window.
6. When finished receiving, Press “Save” button. (press Stop button if Save button is not active)
7. Choose Directory and Filename to save to.


Using DNC Server in Auto-Serve Mode

There is an item in the DNC settings dialog that turns DNC Server into an automatic server that will respond to commands from the CNC machine so that you never have to go to the computer get or save files.

On Main Menu click on Communication

CommMenu.bmp (114614 Bytes)

Go to Auto Serve tab

When 'Use Auto Serve DNC' is checked DNC Server goes into a permanent listening mode, waiting for files to be sent to it from the CNC machine. You can tell it is in server mode because the status line has changed to blue color instead of red, and says it's 'Waiting for Server Command'.

It's now waiting for a file to be sent to it just as if the 'Receive' button was pressed. But the files that you punch out from the CNC machine will have embedded commands to tell DNC Server what to do after it receives that file.

Server Command Strings. There are five commands it recognizes. Just put a comment line somewhere in the program that starts with the command string. The command strings are configurable incase your control does not accept the default character strings. Configure these settings in the Server Command Strings box.

GET FILE EXAMPLE:
If you are at the CNC machine and want to load in a part program, make a little one line program that has the '(G*' command and the filename to get:
%
(G* 2A0895 OP90 RV1.NC)
M30
%

Punch this out to the waiting DNC Server and when it's through receiving the file, it recognizes the '(G*' command and gets the filename from the configured directory for this machine, loads it into the editor window and waits for you to press the 'Read' button on the control. After DNC Server is finished sending you the file, it goes back into listening mode waiting for the next command.

What if DNC Server can't find the file requested because you spelled it wrong or it doesn't exist?
Then it still sends you a file to load into the control but the file consists of a comment telling you it's not found. You would see this at the CNC control:
%
(FILE 2A0895 OP92 RV1.NC NOT FOUND)
M30
%

SAVE FILE EXAMPLE:
%
(S* 2A0895 OP90 RV1.NC)
M30
%
Punch this out to the waiting DNC Server and when it's through receiving the file, it recognizes the '(S*' command which means that the next file it gets should be saved under this filename. DNC Server is listening for the next file so when you punch it, it is automatically saved under that filename. Then it goes back into listening mode waiting for the next command.

An easier way to save the files you punch out would be to use the '(A* ' command within the program. DNC Server is always waiting to receive a file anyway, so if you permanently have a comment in the program with '(A*' and the filename to save to, DNC Server will see it and will be saved automatically to that filename just by punching it out from the machine.

AUTO SAVE EXAMPLE:
%
$P51H388-130.MIN%
N15 G0 G17 G40 G80 G90
(A* 51H388 OP130 RV1.NC)
N20 G15 H1
N25 G0 X-15.565 Y20
( PN 51H388 OP130)
N50 M1
(TOF Z6.9)
(CDL G:\CADCAM\PWA\51H388\51H388-0DEG)
(-- ROUGH MILL AROUND )
(.5 DIA HOG MILL)
(TM .5)
N85 G0 A0
N90 M6
IF[ VTLCN EQ 1 ] NB1
N100 T1 M6
NB1 G15 H1
N105 T2
N110 S550 M3
N115 G15 H1
N120 G0 X-7.7587 Y3.1208
N125 G56 H1 Z0
N725G0 Z0
N730 G0 Z30 M5
N735 G40
N740 X-15.565 Y20
N745 M30
%

Tip for some Fanuc controls: Since many Fanuc controls do not have opening or closing parenthesis on the control, it is not possible to alter comments. This does not limit the ability to use the Get or Save program. Since the Get and Save program is never actually executed by the control, it doesn't have to be in a format that the control would otherwise understand. For example, the Get file setting can be changed to something other than "(G*" For example, the opening parenthesis can be omitted so the Get File string is G* This will still work. Since G* is not a string that could appear in a normal program, this is an acceptable setting. The same theory applies to all other strings except Auto Save. With Auto Save, that must be as a comment, because that will be a part of the program that is actually executed through the control. This comment can be entered into the program at the PC, the same way all other comments would have to be entered.

%
G* 2A0895 OP90 RV1.NC
M30
%

How do you know if it was saved correctly?
DNC Server maintains a running log of the last 6 files that it successfully saved for that machine configuration.
GET LOG EXAMPLE:
Punching this program:
%
(L* )
M30
%
you would receive this program:
%
(SAVE D:\DATA\51H388 OP130 RV1.NC 6/26/01 1:32PM 12445 BYTES)
(SAVE D:\DATA\764915 OP20 RV1.NC 6/26/01 10:10AM 6778 BYTES)
(SAVE D:\DATA\445332 OP30 RV1.NC 6/25/01 1:44PM 34501 BYTES)
(SAVE D:\DATA\353654 OP40 RV1.NC 6/25/01 11:31AM 22340 BYTES)
(SAVE D:\DATA\785665 OP140 RV2.NC 6/24/01 4:12PM 1008 BYTES)
(SAVE D:\DATA\351388 OP10 RV1.NC 6/24/01 8:32AM 13457 BYTES)
M30
%

Now after you save a program you can check to see if it was saved right. The number of bytes it saved should be exactly the same as shown on your Inplot program printout.

If you make a mistake, and DNC Server is out of sync with what you want to do, you can punch out a program from the control that has the Reset command in it, and DNC Server will clear itself and set itself back to "Waiting for Server Command".

Filenames: You can use the full path name in the get and save commands, such as: "D:\DATA\51H388 OP130 RV1.NC". If your control does not have the backslash character, you can use the forward slash, which is the regular block skip character, and it will work the same.

On Communication Settings Page:

Default Save Directory - Directory where files are saved to when the the Auto Save command is received, unless the received filename includes a full file path.

That's fine for one machine control, but if I have more than one machine, then I have to go back to the computer before every upload or download to make sure the configuration and switchboxes are set for the right machine anyway.

Using DNC Server with many machines at once.
Each DNC Server can be set for only one serial port and configuration at a time. All you need to do is have multiple copies of DNC Server running, each one working independently.
Multiple RS-232 Serial ports. On the DNC Server settings for each machine, you can enter a comm port number.

The easy way to add extra serial ports to your computer is through a USB port hub and USB to Serial adapters. All newer PC's have a USB port and older ones can have an add-in card. Through a single USB port you can add hubs with more multiple ports and a serial port adapter in each one- to a theoretical maximum of 254 serial ports.
You would have as many instances of the DNC Server program running as you have machines connected. Just minimize them down on the Windows Program bar and each one shows its machine name so you can easily find it. They don't need to open windows for them to work:

IMG5.BMP (77166 Bytes)

USB Serial adapters

An example below of prices for equipment. Hubs can be cascaded together to increase capacity.

IMG6.BMP (1228854 Bytes)

Procedure for loading and saving with DNC Server:

To receive a file at the control
1. Call up the “get” program in edit mode.
2. The GET program has this format:
File length must be less than 10 lines.
Change the filename in the comment to the filename you want to receive at the control.
Within the program is (G* P123) which is a comment consisting of “(G*”, a space, and the filename. You don’t have to put any extension on the end of the filename because the server will add it automatically.
3. Quit edit and Punch the GET program file to the server. The requested file will be queued up and be waiting for you to load it.
4. Start loading the file with “CN0:” on Okuma or “Read” on Fanuc. Make sure a couple of seconds pass before trying to load so the server has time to queue up the file.

To Send a file from the machine and save on the computer.
1. Call up the “Send” program in edit mode.
2. The Send program has this format:
File Length must be less than 10 lines.
Change the filename in the comment to the filename you want to Send from the control and save on the computer.
Within the program is a line with (S* P123) which is a comment consisting of “(S*”, a space, and the filename. You don’t have to put any extension on the end of the filename because the server will add it automatically.
3. Quit edit and Punch the SEND program file to the server. The server will get ready to receive the next file you send and save it to the given filename.
5. Punch out the file you want to save. Make sure a couple of seconds pass before trying to send it so the server has time to get ready to receive your file.
To get a Log report of recent transactions at your machine. This is useful for checking to see if the files you downloaded to the computer were properly saved.
4. The Log program has this format.
File Length must be less than 10 lines.
Within the program is a line with (L*)
6. Punch the SEND program file to the server. The requested file will be queued up and be waiting for you to load it.
7. Start loading the file with “CN0:” on Okuma or “Read” on Fanuc. Make sure a couple of seconds pass before trying to load so the server has time to queue up the file.
8. The file you receive at the machine will have no filename, and will consist of several lines of comments that shows the last few transactions with filenames, file sizes, and times that took place for this machine.

To Reset Server to Command Mode.
1. The Reset program has this format:
Anywhere in the text is the characters “(X*”
2. If the Server sees these characters anywhere, it will reset back to the listen for command mode without saving any file.


NewTopic1

Using DNC Server with Inplot

Inplot is an optional software for editing and plotting CNC programs. There are several features you can use if you have both. If Inplot (ver 1.5 and higher) and DNC Server (ver 2.8 and higher) are properly installed, you can use the following features .

Load From Inplot

This will load the text that is in the Inplot editor window into the DNC Server window.

Send To Inplot

This will send the text that is in the DNC Server window to the Inplot editor window .

DNC From Inplot

DNC Server can have Inplot send it's output to the serial port. Since Inplot has support for plotting subprograms, using variables, and special functions, you could use all these while sending the program out the serial port. Even modify each line of text with a script before outputting it.

When you press this it will read through the program in the Inplot editor starting at the line the cursor is on, so if you want to start at the beginning of the program make sure you press the Reset button in Inplot to bring the cursor to the top. All the Inplot configuration settings such as syntax checking and subprograms will still be active.

Starting DNC Server from Inplot:

When you are using Inplot you can start up DNCServer right from the Main Menu. Go to File - DNC, and if DNC Server is installed it will start up and automatically load the text that is in the edit window into DNC Server. Then you are ready to send.

Inplot Plug-In Menu:

It is also possible to put DNC Server on the plug-in menu. This will allow you to add parameters to the startup. DNC Server will appear on the Inplot Plug-In menu if you make an entry in the Plug-In Install dialog with the path/filename to DNCServer. A Parameter of 9 will automatically load in the text that is currently in the Inplot editor, ready for you to send it.


General Topics

Printing:
The Print File button below the file list will print the highlighted file in the list. The Print Window button below the DNC window just prints what's in the DNC-edit window.

DNC Window:
The DNC window is an editor so you can make changes in the program if needed. It can save you some time when you can download from the machine, make edits in the window and send it right back.
When the editor has the focus, the Ctrl-F key will bring up a Find dialog and Ctrl-R will bring up a Find-Replace Dialog.

Setup Sheet:
This calls the optional InList program to print a tool list from the selected file. The InList program is available from i-Logic Software.

Select Start:
Normally, when you press the SEND button it starts sending from the begining of the program. When this menu item is checked it will start sending from the line in the editor which the cursor is on. This is useful when using drip feed to the control and you want to start the program at a certain spot.

Utilities on Main Menu:

There are three built in utilities:

  • Renumber the program in the DNC window. The default start number and increment is 10. This can be changed in the DNC.INI file by adding the entries under the [DNCServer] heading with the start and increment numbers you want.:
    RenumberStart=10
    RenumberIncrement= 10
    If you are using comments in the program, you need to enter the comment characters in the Machine page so it will not find N in the comment..
  • Load Inplot Editor - Opens the Inplot program and loads the text into the editor.
  • Direct File - Since how much text the editor window in DNC Server can hold is limited by how much memory you have and which version of Windows you have, real big files might not load in. Instead, you can Send and Recieve files without having to load them into the edit window. A file open dialog box asks for the file name to send or save.

Other executable programs can be added to the utilities menu by adding them to the included DNCUtilities.ini file.

The file is in the format of :
Utility[number] =menu caption,exe filename,[1=needs DNC edit window NC filename as parameter;2=needs selected filename in file list window]

Example file:

[Utilities]
Utility1=Setup Sheet,inlist.exe,1
Utility2=Notepad,notepad.exe,1

Drip Feed:

DNC Server supports drip feeding the program to the machine control in the same way as normal sending, if the control supports it and you have the proper handshaking. On Most controls this is an optional feature, so yours may not support it. On Fanuc, set the mode switch to "Tape" and input parameters to "RS-232".

Loop Feature - When sending a program from the edit window its possible to put a Loop Comment code in the program so a section of the program will be repeatedly sent out to the control. With this you could set DNC Server to drip feed a long program continuously repeating itself so you don't have to go to the computer to send the program each time.

The Loop Comment Code is "(LOOP " and the block number to jump to.

Example:

G90G00X-4.1312Y.6502
N45G00Z.1
G01Z-.3F20.
G41D0G01X-4.3312F2.0
X-4.3914
G03X-4.7657Y.2987I0.J-.375
Y-.2987I4.7657J-.2987
X-4.3914Y-.6502I.3743J.0235
G01X-4.3312
(LOOP 45)
G40X-4.1312
G00Z3.0

In this example, when DNC Server reads the line "(LOOP 45)" it finds block number N45 and jumps to that line and continues sending. This will loop forever between the two lines continuously sending out the lines to the control. If you want to loop only for a certain number of times, use a comma and the number of loops to execute. (LOOP 45,4) will repeat 4 times and then continue with the next line after the loop.

You could use this feature when drip feeding to the machine: the program after finishing could start again at the beginning, and you never have to go to the computer to start it again. Stop to change the part by placing M00 in program.

Nested loops won't work.

Starting Multiple instances of DNC Server at Start-Up

Command Line - Normally, DNC Server up starts with the last used machine configuration. It can be started with a parameter on the command line that will start with a particular machine configuration. Make a shortcut and put the machine name on the end of the command line. (put quotes around it if there are spaces in the name). Put the shortcut in the Windows startup folder. DNC Server will start with that machine configuration loaded.

Example:

You can have multiple shortcuts in the startup folder and start mutiple copies of DNC Server with different machine configurations. Each one needs to be set to a different comm port or they will interfere with each other.
They can be set to start Minimized if you want.

Other Command Line Parameters - On the command line there can be up to three parameters. Any combination of:

  • Machine name as in, "Okuma1"
  • "/M" = start with window minimized.
  • Filename to load enlosed in parentheses: "(C:\Program Files\i-Logic\Inplot\NC\Ku-210.NC)"
  • "9" = will try to load text from Inplot edit window.

Starting the program automatically when the computer is turned on. - Put the Shortcut you made above, (or a copy of the shortcut) in your Startup Folder. The folder should be found in something like:
C:\Documents and Settings\All Users\Start Menu\Programs\Startup
.

Keyboard Shortcut Keys:

File List Window Shortcuts
Shortcut Key | Effect
Shift + F10 | Display context menu for selected item
UpArrow | Move up
DownArrow | Move down
Delete | Send file to Recycle Bin
Enter | Open file or folder
BackSpace | Go to parent folder
F2 | Rename file
F5 | Refresh listing
Text Window Shortcuts
Ctrl + F | Search for text
Ctrl + R | Search and Replace

Tip for DNC administrators:

To prevent editing of files which are loaded into the text window, a setting can be manually added to the DNC.INI file, in the DNCServer section.

[DNCServer]
EditorReadOnly=1
This will set the text window so that any loaded text cannot be changed.

In printing the the file, the left margin can be increased with the setting of:
PrintMargin=10
This offsets the left margin the number of characters.

Folders:

When DNC Server is installed, the default installation is: C:\Program Files\i-Logic\DNCServer.
The configuration files are stored in the common application folder, which on WIndowsXP is:
C:\Documents and Settings\All Users\Documents\i-Logic\DNCServer
and is C:\Users\Public\Documents\i-Logic\DNCServer on Windows Vista.


Filter Script

Using a Filter Script

Sometimes the CNC machine does not download the program in exactly the right format that one would like and its neccessary to make changes before or afterwards. DNC Server has the abilty to perform changes to the text during upload and download. It can change the line that comes through the serial port before it is put in the edit window, and it can change the line before it is sent out through the serial port from the edit window. This allows for any custom format changes to the text that are required by the CNC machine.

This is accomplished through a script that is run for every line of text that is uploaded or downloaded.

In DNC Settings there are tabs for both an Input filter and Output filter script.

For instance:
You are drip feeding a long program and want block numbers in the display of the program in the main window as it is sending, so you know where you are.
But the program is so long that the block numbers go beyond 4 digits, but the machine won't take block numbers beyond 4 digits.

Instead of having to take out all the block numbers from the file beforehand, you could strip them out before the line was sent to the control, and they would still remain in the program.

This filter would remove the N number from every line before it is sent out the serial port. The CNC file is not changed, just the output through the serial port is changed.

Filter File

You can have a seperate filter file for input and output. These file names are saved for each machine configuration, so you can have different ones for each machine. Use the button to browse for files. The file extension for filter files is ".filt".

Activating the script

The checkbox "Use Output Filter" and "Use Input Filter" allows the filtering to be turned on and off. The filters will not be used if these are not checked. .

Testing the Script

A "Test" button is provided to test for syntax errors and to see if it works as expected. If there are errors, a message box will display the line number that the error is on.

If the script is successfull, a message will say, "No Errors Found".

If you go to the CNC file edit window on the main window and put the cursor on a line of text in the edit window, the script will use that line to process with the script, so you can see how the script would work with an actual line of text.

Variables

String variables are distinguished by a "$" on the end.

To get the current line in its current state use the ioline$() function.

Functions

Most of these functions skip anything in the comments. You need to set the comment characters in Settings - General to skip the comments in the CNC program.

Built-in CNC Functions
front(string) Will add a string to the front of the line.
remove(string)
Will remove the address and its value from the line.
rear(string) Will add a string to the back of the line.
addspaces() Seperates all the addresses on the line with spaces.
stripcomment() Removes the comment from the line. Looks for the comment characters that are in listed in the Settings pages.
stripspaces() Removes any spaces in the line.
getvalue(address) Returns the value of this address in the current line. It only returns 0 if the address was found and contains 0. If the address was not found it returns -9999.9999
insertline(string) When downloading, this inserts this string into the edit window before the current line is added. When uploading, the string will be sent before the current line.
lastline() In sending mode, returns true if last line is about to be sent. In receiving mode, returns true when the end of file indicator has been received. It returns -1 if true.
firstline() In sending mode, returns true when the first line is to be sent. In receiving mode, returns true when the first line has been received. It returns -1 if true.
ioline$() Retrieves the current line.
setline(string) Sets the current line. This is what will be received or sent.
changev(address,oldvalue,
newvalue,format) 		Changes the value of an address. If the value of the address equals oldvalue then it will be changed to newvalue. It goes by the numeric value not the string value. So it will recognize X1.00, X1., X01.000 as the same value.
format=0 // normal
format=1=* 'X* //change all oldvalues of that address to newvalueformat
format=2=< //change any number thats less than oldvalue
format=3=> //change any number thats more than oldvalue
format=4= same as 0 but also goes in comments}
format=+100 // outputs no decimal - one place
format=+200 // outputs no decimal - two places
format=+300 // outputs no decimal - three places
format=+400 // outputs no decimal - four places
format=+900 // outputs no decimal - zero places
hasaddress(address)

hasaddress will return position of address in current line in editor. 0 if the address was not found.

stop(string)

Stops outputting the file to the serial port at the current line.
Pressing "Abort" will end sending and receiving. Pressing Ignore will continue.
String is optional for mesage box display.

offset(address,value)
If address exists, it will be increased by value. You can subtract by using minus number.
scale(address,value) If address exists, it will be multiplied by value.
saveprint(filename) Since the print function does not have any window to print to, it saves the output in a buffer that can be saved to a file.
sendxon() | Send the XON character out the serial port.
sendxoff() | Send the XOFF character out the serial port.
Global variables Normally all the variables you make in the script will only last for proccessing one line. If you need to save values over the whole file input or output, you can use the ten global number and string variables. You can set and retreive the values with these functions.
getglobalnum(index) | Retreives a global number variable. index=1 to 10
setglobalnum(index,value) | Sets a global number variable.
getglobal$(index) | Retreives a global string.
setglobal$(index,string) | Sets a global string.
getlineindex$(index) | Returns the text line of the editor at this index
setlineindex$(index,string) | Sets the text line of the editor at this index
linecount() | Returns the number of lines in the editor
gotoline(index) | Current line in editor jumps to this linenumber
currentlinenumber() | Returns the line number of the current line
cancel() | Like pressing the Cancel button.
output(string) | Sends a string of characters out tthe serial port.
sendfile(filename)
Opens a text file and outputs it through the serial port. With this you can insert another prorgam file anywhere within the main file. The script is not performed on lines in the secondary file, only on the file in the edit window.
rotate(angle) | Rotates the current line by the angle before output. Only X,Y plane. Rotates around X0,Y0. Will change X,Y values. Will change I and J values also if present.
wait(millisecods)

This would stop all processing and wait for 2 seconds before the first line is sent..

punchleader(inches) | Output to the serial port empty characters. This is what you would use if you wanted to punch blank leader to a tape punch.
punchmanread(string) | Outputs man readable characters to a tape punch. You would use this if you wanted to put readable text at the beginning of a punched tape.
createfile(filename) | Creates an empty disk file. If it already exists, then it deletes the contents.
openfile(filename) | Opens a disk file for writing. The file must already exist.
writetofile(string) | Writes string to the file that has been opened with openfile(). Does not automatically put a carriage return or line feed on the end.
closefile() | Closes the file that was opened with openfile().
executefile(filename,param)

Runs an executable file. Parameters for the program are optional.

'put the incomming line in a variable
Line$=ioline$()
'look for my command
if mid$(line$,1,4)="(END" then
    executefile("C:\MyProgram.exe","/M")
endif

exceladd(row,col,string) | In a spreadsheet already open in Microsoft Excel, this will put the string in that cell.
excelget$(row,col) | In a spreadsheet already open in Microsoft Excel, this function will return the value in that cell as a string.
Basic Script Language

The scripting language is compatible with standard Basic languages. Its compatible with most books and infomation on the internet about the Basic Programming Language.

Filter Script Basic is 90% compatible with MS GWBasic and QBasic, with some Pascal extension like While, Repeat, Break, Continue, which let you write programs without labes and Goto instructions. Numeric labels are supported for backward compatibilty with old Basic programs

See more on the Language Reference here .

Note: With a large Input script It's possiblethat the extra proccessing may require a slower baud rate to be used to make sure that it is able to keep up with the incoming data - depending on the speed of the computer.

Silent Command

Method for silent DPRNT commands (only for receiving at DNC Server):
Any incoming line that starts with "///" three block skip characters will be able to be interpreted by the Input script, but wont show up in editor. If DNC Server is in AutoServe mode, it can be always listening for commands from the machine.

The machine could send data commands out to DNC Server which could interpret them with a script and execute files.
Example:
At machine: DPRNT[///END]

At DNC Server Input Script:

if mid$(line$,1,6)="///END" then
    executefile("C:\MyProgram.exe","/M")
endif

Example:
At machine: DPRNT[///R[#2]C[#3]X[#4]]

if mid$(Line$,1,3)="///" then
 row=getvalue("R")
 col=getvalue("C")
 x=getvalue("X")
 xvalue$=excelget$(row,col)
 x2=val(xvalue$)+x
 exceladd(row,col+1,str$(x2))
endif


Basic Language

Filter Script Basic is 90% compatible with MS GWBasic and QBasic(TM), with some Pascal extension like While, Repeat, Break, Continue, which let you write programs without labels and Goto instructions. Numeric labels are supported for backward compatibility with old style Basic programs

More Filter Script Info

This Basic Script supports Numbers and Strings.

Built-in Basic Functions

Numeric functions:

ABS(n)
LN(n)
LOG10(n)
LOG2(n)
EXP(n)
RND()
RND(n)
INT(n)
FIX(n)
ROUND(n)
FRAC(n)
SQR(n)
SGN(n)
SIN(n)
COS(n)
TAN(n)
ASIN(n)
ACOS(n)
ATAN(n)
ATAN2(n,m)
SINH(n)
COSH(n)
TANH(n)
ASINH(n)
ACOSH(n)
ATANH(n)
DEGTORAD(n)
RADTODEG(n)
ASC($)
LEN($)
VAL($)

Absolute value
Natural logarithm, base e
Logarithm, base 10
Logarithm, base 2
Exponential
Random number in the range 0..1
Random number in the range 0..n
Integer part of n
Integer part rounded toward zero
Roundation of n
Fractional part of n
Square root
Sign of n, +1 0 -1
Sine of number, radians
Cosine
Tangent
Inverse sine
Inverse cosine
Inverse tangent
Inverse tangent of n/m with right quadrant
Hyperbolic sine
Hyperbolic cosine
Hyperbolic tangent
Inverse hyperbolic sine
Inverse hyperbolic cosine
Inverse hyperbolic tangent
Degrees to radians conversion
Radians to degrees conversion
Ascii code of char
Length of string
String to number conversion

 String functions:

LCASE$($)
UCASE$($)
LTRIM$($)
RTRIM$($)
CHR$(n)
STR$(n)
HEX$(n)
MID$($,n,[n])
LTAB$($)
RTAB$($)
LEFT$($,n)
RIGHT$($,n)
INSTR($,substring)
Lowercase conversion
Uppercase conversion
Left blanks deletion
Right blanks deletion
Ascii to char conversion
Number to string conversion
Number to hexadecimal
Substring extraction
Left insertion of a Tab
Right insertion of a Tab
Left part of a string
Right part of a string
Returns position of substring

 String functions, Multi Rows:

COUNT($)
OPENTEXT$($)
SAVETEXT$($)
COPYTEXT$($)
PASTETEXT$($)
FINDFILE$($,$)
FINDDIR$($,$)
Count rows in a multi-row string
Open a text file into a string
Save the string as a text file
Copy the string to the clipboard
Paste text from clipboard into the string
Get a list of files in the directory (dir,extension)
Get a list of directories

 Miscellaneous functions:

PAUSE(n)
MESSAGE($).
Suspend execution for n seconds
Show a message in a dialog window.

Reserved words

if
end
for
goto
local
print
endfunc
or
mod
not
step
while
input
endwhile
to
cls
else
break
gosub
repeat
continue
and
rem
then
endif
until
return
function

True = -1
False = 0

Built-in CNC Functions

addspaces()
cancel()
changev(address,oldvalue,newvalue,format)
closefile()
createfile(filename)
currentlinenumber()
executefile(filename,param)
exceladd(row,col,string)
excelget$(row,col)
firstline()
front(string)
hasaddress(address)
getvalue(address)
getglobalnum(index)
getglobal$(index)
getlineindex$(index)
gotoline(index)
insertline(string)
ioline$()
lastline()
linecount()
offset(address,value)
openfile(filename)
output(string)
punchleader(inches)
punchmanread(string)
remove(string)
rear(string)
rotate(angle)
stripcomment()
stripspaces()
setline(string)
scale(address,value)
setglobalnum(index,value)
setglobal$(index,string)
saveprint(filname)
sendxon()
sendoff()
setlineindex$(index,string)
stop(string)
sendfile(filename)
wait(milliseconds)
writetofile(string)

Comments:

REM this is a comment
' and this is too
' but shorter

  1# Example: (Pascal-like, recommended style)
for a = 1 to 10
print "Hello"
  if a > 5 then break
next
print "the end"

2# Example: (old Basic style)

10 for a = 1 to 10
20 print "Hello"
30 if a > 5 then goto 50
40 next a
  50  print "the end"

Loop instructions

Basic Script supports three kinds of loop instructions.
For, While and Repeat.
The easiest way to understand a Loop instruction is to look at an example.
The following program prints the numbers 1 to 10, "a" is the control variable:

FOR a = 1 to 10
  PRINT a
NEXT a

The BREAK instruction:
terminates instantly a cycle, so in this case the cycle stops when "a" becomes greater than 5.

FOR a = 1 to 10
PRINT a
  IF a>5  then BREAK
NEXT a

The CONTINUE instruction: acts as a NEXT instruction; the variable "a" is incremented and a new iteration is started immediately.

FOR a = 1 to 10
PRINT a
IF a>5 then CONTINUE
  PRINT "hello"
NEXT a

FOR-NEXT instruction:
The complete syntax for this command is:

FOR <variable> = <expression> to <expression> [step <constant>]
...
...
NEXT [<variable> (ignored)]
examples:
FOR angle = 1+ASIN(0.4) to 1+ASIN(0.75) step 0.1
  PRINT angle
NEXT

FOR y = 1 to 200
  FOR x = 1 to 320
   s = s + x*y
   NEXT
NEXT

REPEAT-UNTIL instruction:
This instruction repeats a series of instructions until the condition is True. The block begins with the REPEAT command and ends with the UNTIL command followed by the condition that is evaluated.
Example:

a = 1
REPEAT
PRINT a
  a = a+1
UNTIL a>10

The Repeat instruction evaluates the condition at the end of the loop, this means that the instructions inside the loop are executed at least once. The Break and Continue instructions can be used in REPEAT-UNTIL cycles just like in the FOR-NEXT cycles.

WHILE-ENDWHILE instruction:
This instruction evaluates a condition at the beginning of the loop. If the condition is false then the cycle stops and execution continues after the Endwhile instruction.
Example:

a = 1
WHILE a <= 10
 PRINT a
 a = a+1
ENDWHILE

Since the While command evaluates the condition at the beginning of the loop, the instructions inside the loop may be also executed never. The Break and Continue instructions can be used in WHILE-ENDWHILE cycles just like in the FOR-NEXT cycles.

Strings
A string variable contains text. This text may be a single row or a multi-line text. The maximum theoretical size of a string variable is 2 Gbyte.
Example:

 a$ = "Hello" + "World" + "!"

The value of the variable "a$" is now "HelloWorld!"
String variables are used with operators to perform string expressions and are used with some functions to Open and Save data from text files.
A single row of a multi-line string con be read using square brackets, example:

if a$ contains:

" This is a
text placed on
three rows "
b$ = a$[2]

Now b$ contains: "text placed on"

Numbers

A numeric variable contains a number. The number is internally represented by a floating point value with double precision (64 bit, 15 significant digits).

Numeric variables are used with operators to perform numeric expressions and are used as counters in loop instructions.

Jump instructions

The following instructions (Goto, Gosub, Return) are supported only for compatibility with Basic.
They cannot be used inside Functions.

Goto instruction:
This instruction jumps at the given label.
Example:

10 if a > 5 then GOTO 30
20 print "a <= 5"
30 print "Script ended"
Gosub - Return instructions:
They were used to make subroutines. Now it's better to define a Function.
Example:
10 x = 3 : y = 6
20 GOSUB 100
30 print "Result:" ; r
40 end
100 r = sqrt(x^2+ y^2)
110 RETURN

Basic functions

A function is defined as set of instructions that computes and returns a value.

The result can be discarded (like C and Delphi) or simply not returned, making it a procedure. Local variables can be defined to support recursive functions.

Syntax:

Function <Name> ( parameters ) [ Local <local variables> ]
  ...
  [Return <result>]
  ...
Endfunc
Examples:
FUNCTION sum(a,b)
  return a+b
ENDFUNC
FUNCTION intpower(a,b) LOCAL t,r
  r=1
  for t = 1 to b
   r = r * a
  next
  return r
ENDFUNC
FUNCTION hello$(a$)
  return "Hello to you " + a$
ENDFUNC

Basic fully supports recursive functions, example:

FUNCTION factorial(n)
  if n <= 1 then return 1
  return n*factorial(n-1)
ENDFUNC

Conditional instructions

The IF-THEN instruction evaluates a logical expression and determines the flow of the program based on the result of that expression.

Examples of logical expressions:

a > 5 and b > 5
a >= 3 or not b <> 5 and b+3 = c
Precedence of operators:

Higher precedence:

< , > , <= , >= , <> , =
NOT
AND
OR

Lower precedence.

Syntax:

IF <logical expression> THEN
...
...
[ELSE]
...
...
ENDIF
Compact Syntax:
IF <logical expression> THEN <instruction> : <instruction> ...

IF instructions can be nested without limits; the ELSE part is optional and is not allowed in the compact syntax.
Examples:

IF a < 0 and a > -10 THEN print "A was a small negative number": a = -a
IF a >= 0 THEN
 print a
 IF a = 12 THEN print "A prefect number !"
 IF a > 1000 THEN
  print "What a big number"
 ENDIF
ELSE
 print "Negative numbers not allowed!"
ENDIF

Identifiers

Identifiers denote variables and functions.
An identifier can be of any length, must begin with a letter and can't contain spaces.

String identifiers denote string variables and string functions.
The last character must be $

examples of valid identifiers:

counter , temp , pix , n , n2
name$ , address2$ , filename$ , a$

PRINT

Since there is no window to print to in Filter Script, the print function prints to buffer that can be saved to a file.
See SavePrint function.

Print [ expression [, expression] [; expression] ]

Description:
Every expression must be separated by a semicolon or comma; if semicolon is used then no spaces are added between the writings. If comma is used then a TAB separator is added between the writings. Numbers are always printed preceded by a space.
Example:

PRINT "Some math" ; 3+5 ; 4*4*4 ; sin(2.5)

INPUT Shows a dialog window where the user can enter data.

Input [ <Question> , ] variable

Description:
Use this function to ask the user for input values.
If the user doesn't click the OK button then zero or an empty string is returned.
Example:

INPUT "How old are you ?", a
INPUT "Your name ?", n$
PRINT n$ ; " is"; a

Operators

Operators are classified as arithmetic operators and string operators.

Precedence:
Operators with higher precedence are performed before operators with low precedence.
Operators with equal precedence are performed from left to right.

Numeric operators
Numeric operators apply in numeric expressions, Basic supports the following operators:

+
-
*
/
^
?>
?<
MOD 		Addition
Subtraction
Multiplication
Division
Power
Maximum
Minimum
Modulo

Higher precedence:

( , )
- (unary)
 ^
 * , / , MOD
 + , - , ?> , ?<

Lower precedence.

Examples:

12 + 15 = 27
12 - 4 = 8
2 ^ 8 = 256
7 * 5 = 35
10 / 4 = 2.5
18 MOD 8 = 2
5 ?> 3 = 5
8 ?< 2 = 2

String operators
String operators apply in string expressions, Basic supports the following operators:

+ Addition
/ Addition with New Line
- Deletion

Precedence:
String operators have the same precedence and are evaluated from left to right.
Examples:

"Hello" + "World" = "HelloWorld"
"Hello" - 2 = "Hel"
"Hello" / "World" =
"Hello
World"


Colors

Colors Page

Use Color Highlight:
It is possible to highlight certain addresses or comments in the editor.

  • Enter a letter in the Address box.
  • Select the text color from the dropdown color box.
  • Optionally, select the Background color of the text.
  • Activate the highlighting with the "Use Color Highlight" checkbox


Sounds

Sounds Page

Play Sounds Files for Events
It is possible to play a short sound file when one of these events occurs.

  • Use the file open button to load a file into the box.
  • Must be a .WAV type sound file
  • Check the "Play Sound Files for Events" checkbox to activate this feature.


Advanced

Advanced Page

Output Method:
"Send by Char" sends one character at a time to the CNC control and checks for handshaking between each character. This is the safest method.

"Send by Line" sends a whole line at a time to the CNC before checking for handshaking. This uses less CPU processor resources. Needed if you want to run other programs while sending a file. This could speed up the sending of programs to the CNC at higher baud rates. Older CNC controls may not be able to handle this.

Use Subprograms - DNC Server can use Fanuc type subprogram calls when it sends a program to the machine. If this is on, when DNC Server is sending the program, and when it hits a line that has "M98P1111" in it, it will:

  1. run normally until it hits a line with "M98P1111". Where P1111 is whatever program number to call.
  2. look through the entire edit window and look for the start of that program. O1111 or :1111
  3. jump to the next line after that program number.
  4. continue sending the lines untill it hits a line with "M99" in it.
  5. jumps back in the editor to the line after the original "M98"
  6. continues sending lines until the next "M98

Maximum sub levels is 5.
The main program and all the subprograms have to be in the editor at once.
Put the main program at the top of the editor. Put "M30" at the end of the main program. DNC Server will stop sending when it hits "M30" or the end of the file.

With this, you could drip feed to a machine a program that had subprograms.

USB Converter:
All USB to Serial converters are not created equal. Some converters may have a problem with loosing whole lines of text. Check this box may help on those problems. Converters using the Prolific chipset should not need this checked. Other brands may be kelped by checking this.


Language

Language Files

The default language built-in to DNC Server is English.

DNC has full Unicode support for user interface and editor. (Serial port communication is still only ASCII characters because that's what the CNC machines use.)

DNC Server has the abilty to load a user configurable language file that changes all the text in the user interface.

On Main Menu - Configuration - Files, there is a dropdown box that lists all the language files in the user data folder.

Example of using a different language from a DNC Server Language File:

A language file for DNC Server consists of a text file with an identifier that represents an item on the interface and the translated string to change it to.

You can see from the included language files how they are arranged and how you can change the text you want displayed.

You can edit these files in a text editor that supports unicode characters, like the Windows NotePad.

On the left of the equal sign is the item identifier. These show the english text that is used in the program. After the equal sign is the text that should be substituted instead. Just change the string after the equal sign to your translation. You cannot add any new item identifiers - these are the only ones used.

You can make your own language file of any language you want. The file must have a ".lang" extension. The text in the file must begin with the line: [Language]. You can just copy one of the existing language files to a new filename and edit it. You must put the file in the User Data Folder(shown in Settings - Advanced) directory for it to show up on the language list in Settings (on the Files page ).

The DNCsimplifiedChinese.lang file starts out like this:

[Language]
T_PRINT_COLUMNS= 打印栏
T_NUMBER_OF_COLUMNS= 栏的数字
T_SHORTCUT= 快捷方式
T_BROWSE= 浏览
T_DESCRIPTION= 描写
T_PATH= 路径
T_SETTINGS= 设置
T_THIS_PRODUCT_EXPIRES_IN= 这种产品过期在
T_RUN= 跑
T_RUNS= 跑

Windows Language Support

If all the text in in the buttons and labels are blanks, then it means your computer does not support for that language installed.

If you have an English language Windows operating system, you may not have Eastern language support installed. In Windows XP you can install eastern language support by going to Control Panel - "Regional and Language Options".

Go to the Languages tab:

Check the "Install files for East Asian languages" checkbox and click Apply. It will go through an installation routine. After it is done, restart computer.


DCOM Programming

DNC Server OLE Interface

With a little programming in your favorite language, it's possible to write your own programs that will command and control DNC Server.

Example program made in Visual Basic 6.0 dnctest.exe

Dim DNCServer As DNCServerx

Private Sub Command1_Click()
'Load File button
CommonDialog1.ShowOpen
DNCServer.LoadFile (CommonDialog1.FileName)
End Sub

Private Sub Command2_Click()
'clear button
DNCServer.Clear
End Sub

Private Sub Command3_Click()
'send button
DNCServer.Send
End Sub

Private Sub Command4_Click()
'receive button
DNCServer.Receive
End Sub

Private Sub Command5_Click()
'renumber button
DNCServer.Renumber
End Sub

Private Sub Form_Load()
'connect to DNC Server
Set DNCServer = CreateObject("dncserver.dncserverx")
End Sub

Download this Visual Basic example.

Need to have DNC Server properly installed on your computer for this to work.

Run the dnctest.exe example. DNC Server will startup if it's not already running.

Press the 'Load File' button and the select a text file from the dialog box. Then you will see that file loaded into DNC Server.

In the same way, the other buttons are connected to other functions in DNC Server.

When loading the example source code Into Visual Basic 6.0 you need to go to the main menu 'Project' - "References". In the dialog box find and check "DNCServer Library"

www.i-logic.com/ftp/dnctest.zip

Same thing for Delphi: www.i-logic.com/ftp/delphiDNCtest.zip

Properties:

  • Filename: Name of file in the edit window.
  • Status: not implemented
  • Line(index) array of strings in the edit window
  • BlockIncrement; for renumber
  • StartBlock; for renumber

These properties are like in the configuration windows:

  • CharDelay : Integer
  • DefaultFileExt : String
  • SendCharAfter : String
  • SendCharBefore : String
  • BaudRate: integer 300; 600; 1200; 2400; 4800; 9600; 19200;
  • EndOfLine: integer 0= CRLF; 1= LFCRCR; 2=LF; 3= CR< /FONT>
  • Format: integer ASCII=1; EIA= 2; ISO= 3;< /FONT>
  • Handshake: integer 0= XON/XOFF; 1= NONE; 3= DTR; 4= CTS;
  • Parity: string 'O'; 'E'; 'N'
  • DataBits: integer 7; 8;
  • CommPort: integer 1-255
  • StopBits: integer 1;2
  • SkipComments: Boolean
  • DefaultReadDirectory: String
  • DefaultSaveDirectory : String
  • GetFileString : String
  • SaveFileString : String
  • ResetString : String
  • AutoSaveString : String

Methods:

  • LoadFile(FileName)
  • SaveFile(Filename); saves edit window to filename
  • Abort: Like pressing the Stop button
  • Clear: Like pressing the Clear button
  • Close: Like pressing the Close button
  • Receive: Like pressing the Receive button
  • Renumber
  • Save: Like pressing the Save button
  • Send: Like pressing the Send button
  • GetNumberofLines: Returns number of lines in the editor
  • SendLine(String): Outputs a line of text to the serial port
  • Note(string); writes in the main status line


Installation

Click the link on the i-Logic web site to download the trial version installation.

Press Run
(or save it to install some other time)

After it downloads, you will get a security warning that checks the publisher of this software. It should say the publisher is i-Logic Software. If it doesn't, something is wrong and don't run it.

Registration

You can run DNC Server for up to 30 times before registering it, but after that it wont run anymore without being registered.

When you purchase DNC Server over the internet, you will receive a Registration Code that will turn your trial version of DNC Server into a permanently registered version.

You can get to the Registration window from the main menu - Help - Register.

Enter the Registration Code that you received. (case sensitive) Press the Continue button.

If it is accepted, the window will change, showing that it is a registered version.

In order for it to be accepted, the directory where the license file will be created needs to writable. This is in the public documents folder.

In WindowsXP this is: c:\Documents and Settings\All Users\Documents\i-Logic\DNCServer\.

In Windows Vista this is: c:\users\Public\Documents\i-Logic\DNCServer\

The registration code is not tied to the one computer, so you can move it over to a different computer using the same registration Code.

Once you have registered the software, you can update to the latest version by downloading the trial version from the web and installing it without uninstalling first. It will still remember the registration.

If the software needs to be re-installed, you can use the same registration number you obtained at purchase.

Uninstalling

If you want to save your current settings for backup or if moving to a different computer, save the dnc.ini file that is in the same public folder.

You can uninstall either by choosing the uninstall link in the start menu under i-Logic, or uninstall by the Control Panel - Add or Remove Programs.