CNC Decimal-Point Quirk
CNC controllers may occasionally ignore instructions when the numbers do not include a decimal point. March 28, 2008
Question
I have a Digital Tool CNC, and I use Bobcad and Wincnc controller. Everything works fine, but it does one thing that I can't quite figure out. If I want to move the gantry ahead in the Y axis, just to get it out of the way to measure something, it will not move if I tell it to go 12". I can put in any other number, just not 12. I can do 12.25, but if it is G1Y 12, it says it has made the move but it doesn't move at all. No error message, nothing. Can anyone explain that?
Forum Responses
(CNC Forum)
From contributor M:
Some controllers are sensitive to decimal placement. Are you entering 12 or 12.? 12. or 12.0 should be fine, if that is the problem.
From contributor R:
I am not fluent in WINCNC, so please help me to understand. It appears you are trying to execute a single axis move (in Y axis) using an MDI (manual data input) function? Or are you trying to insert this line into an active program, pausing it for you to verify dimensions?
Have you tried the following:
Execute the move via G00/G0 instead of G01/G1?
Execute the move as an incremental as opposed to an absolute move? (Typically G90 is absolute; G91 is incremental.)
Have you verified that none of the machine coordinate systems are actually at 12 inches? This could be the machine coordinates or the work coordinates.
Not knowing WINCNC, I am relating it to industry standard Fanuc/EIA style control. Typically manufacturers mimic Fanuc. I believe you have a modal issue here. Perhaps your BobCam post is parking your machine at Y12 either in the machine coordinate system or the work offset coordinate system? Or there could be a modal conflict, where you will have to turn off a "like" G command in order for the control to recognize subsequent commands. Or your machine just refuses to move one foot! :)
From contributor R:
Contributor M is correct! I have actually encountered that also - good catch!
From the original questioner:
I just tried several things to see what works and what doesn't. I am just doing a manual move, no program involved. If I input G01 Y12 no decimal, it doesn't move. If I input G01 Y13 with no decimal, it does move. If I input G01 Y12.0, it moves. If I input G01 Y-12 with no decimal, it moves. If I use G00, it always moves. It seems like the only thing that it balks at is G01 Y12 with no decimal. Lucky for me, there are lots of other numbers to pick from. I don't have to use 12. It just seemed odd that I picked 12 at random to move the gantry and it didn't move. I thought there was something wrong. My operator said that he had the same thing happen. Sometimes it just won't move when number 12 is used.
From the original questioner:
Just checked a few more things, which may be relevant. I do my coding in incremental, and in Wincnc there is a G90 and a G91 button which were both engaged. If that was the problem, why would it only pick 12 and not any other number?
From contributor R:
Perhaps there is a corruption within the control parameters themselves or the PLC of the control? At this point it does not seem insurmountable, just a nuisance. I would keep watch on programmed dimensions, especially if they are close to 12" in Y!
From contributor T:
I think that you will find, even though your control may want to see a specific decimal output like "12.00", it will sometimes work and sometimes not work without the proper decimal values. I don't believe that the number "12" has anything to do with it.
From contributor B:
What version of WinCNC are you using? WinCNC was brought in at the tail end of the DT machines production. Most Digital Tool routers ran on the earlier DOS version of CNC Controller. The early versions of WinCNC were pretty buggy. You could easily have one of those. You obviously shouldn't be in both G90 and G91 mode simultaneously. If you haven't done a complete reboot and retried after fixing that, you should.
I've used CNC Controller from pretty early on, and whereas I'm not on the most current version of WinCNC, mine is only a couple years old. My first CNC was a DT902. My guess is it's a bug in WinCNC. I wouldn't worry about it. By the way, you don't have to type anything but "y12" to accomplish the move. Try that.
From the original questioner:
I have version 2 of Wincnc. I think I have only been using it for a couple years. Before that it was the dreaded Indexer LPT. I tried writing a small program to have it cut exactly 12" and it worked fine. It must just be in a rapid movement I guess. I am not going to worry about it unless it blossoms into something more. Considering the number of programs we run, I think this is very minor. Life goes on, and so shall we. Thanks to you all for the input. The good news is I found out my operator knew nothing about G90 and G91, which kind of comes in handy around a CNC. We had a little school session as I blame myself, since I was the one who showed him how to run the machine.
Contributor B, I tried just Y12 and it worked - imagine that. Thanks for that, now I don't have to worry at all about the G01 Y12.
From contributor B:
A G0 command is telling the machine to travel to the destination at "transit" speed, whereas G1, G2 and G3 are directing a movement at cutting speed. You have to set your default G0 speed in the wincnc.ini file. If you are getting the G0 y12 glitch only with G0, then you could try changing the G0 feed rate in wincnc.ini. It would be interesting to see if that had an effect. That same line, for each axis in the wincnc.ini file, also has the default G1, G2 and G3 cut feed rate.
From contributor B:
Oh, I meant to add that "y12" by itself is the same as "G1 y12". That's why I thought it might work.