I recently acquired a FANUC OM knee mill for my home shop, and something is not right with the x-axis. First, some background.
The machine is from about 1991, and came from a local technical college, at which I was a student. So I know the machine somewhat, but it was never any of the students' favorite. I'm not sure of the model; we all called it "the Johnford," even though it doesn't say "Johnford" anywhere on it. The manual says it came from Machinery Group USA, in Huntington Beach CA, and is their model 375CNC. The most similar model I've seen by searching the internet is a YCM40 Supermax. The machine sat idle for about two years before I purchased it -- it may have been turned on a few times, but was not used much, if at all. The batteries were changed however.
After moving it to my place, the fun began. The first problem I noticed was that the x-axis would get hung up. When jogging in the X- direction, the table would simply stop moving. If you then jogged a little in the X+ direction, it would then allow you to move in the X- direction again, but would get hung up again a few inches later. With use, that problem seems to have gone way.
Next problem was over-travel errors on the x-axis. These seemed to be due to some soft limits (stroke check) that had been set in parameters 700 and 704. Fixed that. Incidentally, I am friends with an instructor from the school (since retired) who recalls that there was a student in the year before this machine was taken out of commission and that this student may have sabotaged some machines in minor ways. That may explain where this error came from.
Next: alarms 401 and 424. What does VRDY stand for anyway? My instructor friend vaguely recalls that they always had to keep the feed override set to 30% on this machine, and doing so does avoid this error, but you're guaranteed to get it if you bump the feed rate above 50%.
Once the machine was working (more or less), it seemed like a good idea to exercise it to get it lubed back up again. I homed the machine (G28 X0Y0Z0), then executed a program that moved each axis repeatedly between the extremes. That is, it moved between roughly X-32.0 and X-1.0 repeatedly, and similarly for the other axes. After running for some time (45 minutes?), it hit the limit switch on the negative x-axis side. I thought maybe it's just working out some kinks, so I ran it again, and the same thing happened. So I reduced the travel in the negative X direction a bit and ran the program again. After a few iterations, it hit the negative X limit switch again. Each time I ran the program, and hit the limit switch I would home it (G28), then jog over manually to hit the other limit switch and note the amount of travel shown on the CRT. I then reduced the amount of travel in the program and ran it again until I got another over-travel alarm. What I found is that the amount of travel from home to the other limit switch went from -32.30 to -31.96, then -31.72, -31.64, -31.49. It seems like the servo/encoder was losing steps (not a stepper motor, I know), but with use it was getting more accurate and NOT losing these steps.
I got out a dial indicator and ran some tests. First, I found that by moving from near the X+ limit switch to the X- limit switch I was losing from 5 to 20 thousandths each time. That is, I put something on the table at the X- end, slowly jogged over near the X+ limit switch, then slowly jogged back to the same place (dial indicator against the object on the table) as determined by the position shown on the CRT. Each time the indicator showed from 0.005 to 0.020 more travel than the time before. While I had the indicator on there, I tried something else. I brought the table to the X+ end, then used MPG and the handwheel set at the highest step rate to move back to the X- end. If I moved back to the X- end at an even steady rate, then the table moved about 0.6 inches LESS than the position on the CRT indicated. If I moved the handwheel in a jerky way -- fast spin for a revolution, stop, another fast spin, stop, etc. -- then the table moved about 3 inches (!!) less than the position on the CRT.
A couple of stats on the machine. The FANUC version is 0469-21, and the x-axis servo says it's Model 0S, type A06B-0313-B002#7000. However, I can't read the actual B002 number on the plate. Someone scratched out whatever was there and used a magic marker to say it's a "2," so the original plate could read B00?, where '?' is anything at all.
I'm thinking that it's a bad encoder, but any advice would be appreciated.