Support Links

Technical Bulletins

Customer Downloads

Code Generators

SmartCAM Email Forum

Patches and Utilities

Misc Resources

The Learning SmartCAM Tutorial

SmartCAM V11 Exploring Guides

Contacts


Maintenance Customer
Premium Content

SmartCAMcnc Technical Support

Topic: How to use DEBUG To Trouble-Shoot Serial Communications

Technote 106 Date: 11/95 Product: SmartCAM Communicate  Version: Up to v8.2

This Technote shows an example of how to use the DEBUG utility to find out what you are getting for End-of-Block characters in Communicate:
 

1. Here is a sample code file:

C:\SM8>type codefile
N9000
N1 G17
N2 G54
N3 T1 M06
N4 S374 M03
N5 G00 X0.0 Y5.0
 

2. Here is a Debug script named "run" that will show the first portion of the code file. You can create this script in Edit Plus. Be sure to have one blank line after the 'q'

d
q
 
 

3. Here is the command line to run the Debug script. This will scan the initial portion of your code file, then echo the results to your screen:

C:\SM8>debug codefile < run

(the output appears as follows)
 

-d
14AF:0100 4E 39 30 30 30 0D 0A 4E-31 20 47 31 37 0D 0A 4E N9000..N1 G17..N
14AF:0110 32 20 47 35 34 0D 0A 4E-33 20 54 31 20 4D 30 36 2 G54..N3 T1 M06
14AF:0120 0D 0A 4E 34 20 53 33 37-34 20 4D 30 33 0D 0A 4E ..N4 S374 M03..N
14AF:0130 35 20 47 30 30 20 58 30-2E 30 20 59 35 2E 30 0D 5 G00 X0.0 Y5.0.
14AF:0140 0A B0 DD E9 28 FE 80 3E-87 26 00 74 3F 80 3E 8F ....(..>.&.t?.>.
14AF:0150 20 00 75 38 83 3E 8B 20-5C 74 31 80 3E 80 26 00 .u8.>. \t1.>.&.
14AF:0160 75 2A 80 3E 09 26 00 75-23 FF 36 8B 20 E8 B4 FC u*.>.&.u#.6. ...
14AF:0170 0B C0 75 03 E9 F7 FD 83-3E 8B 20 28 75 0E FF 36 ..u.....>. (u..6
-q

    The above information is divided into three groupings:
    • Memory addresses (left grouping in the form segment:offset) (IGNORE THIS)
    • HEX values (middle grouping - 16 columns of two-digit HEX numbers)
    • ASCII characters (right grouping - 16 columns of the ASCII characters or markers)
  • Each two-digit HEX value corresponds to each single-digit ASCII value)
  • In the ASCII grouping, Debug shows periods for control characters (anything

  • from "00" to "31" hex). It also shows a period for periods, which are "2E" in
    hex.
  • The ASCII right-most grouping is a "stream", so NC code blocks may wrap among

  • multiple lines. You want to scan for two periods that are between each NC code
    block. Normally these two periods are "OD" and "OA".
  • "0D" in HEX is a CARRIAGE RETURN (^M). "0A" in HEX is a LINE FEED (^J).
  • For DOS/Windows you need "0D 0A" as End of Block so text editors can properly

  • read in the file and separate the lines.
  • If you have something different here (for example "0D 0A 0A", "0A 0D", just

  • "0D", just "0A", or something else) then put whatever you see here in
    Communicate's End-of-Block field.

    To do this, select Edit Settings command button, then select Comm command
    button, then edit the End of Block input field (e.g., Change ^M^J to whatever
    you are getting).

  • Use the Carat character '^' followed by a letter (for help, look in

  • Communicate: Accessories - ASCII Table...).
  • Again, "0D 0A" are ^M^J. Note that in Debug the HEX values are separated by

  • spaces, don't include spaces in Communicate.
  • Alternatively in Communicate you can use the "\NNN" decimal format for control

  • characters. For example NUL is "\000", CR is "\013", and LF is "\010".
  • This technote uses a very small sample code file, so the 'd' command shows more

  • information than is actually contained in the codefile. Don't worry, the extra
    information is just left-over stuff in memory.

    There is a way to check the length of a file if needed, but usually the problem
    with control characters occurs in the first few lines anyway, so this method
    ought to work.

  • If you see additional Control Characters within your NC code file, these may

  • need to be filtered out during receive transmissions. To do this, use the
    Translation Table in Communicate. Enter the value of the Control Character in
    the FROM Field. Leave the TO Field blank (no spaces or anything). Next time
    you receive the file, this character should be gone.
  • You may of course use a different HEX file viewer/editor. Refer to the

  • instructions included with that utility for usage.