CNC stuffPosted by michael Jul 13, 2014 01:08:25
Back after a long period of silence. I started rebuilding the control system of an Aciera F450 milling machine. Originally the machine was fitted out with a Fanuc CNC controller. After someone pulled some boards for cleaning, the controller went dead. Why would anyone store the firmware in battery backed-up memory and put the battery on the backplane?
Anyway, the decision was made to rebuild the machine with Linuxcnc and Mesa boards.
For the motor drives, Granite Argon drives were obtained. Really great drives, with the ability to find the commutation points by wiggling the motors at startup. That feature comes in very handy as the Aciera has Fanuc motors which do have rather odd commutation signals. On the Web you can find boards that use these signals for initial commutation and switch over to encoder position after one revolution. Quite nice, but that solution would have added another $500 to the project cost. So we decided to let the Argon drives sort it out themselves.
The actual rebuild started with taking out the original Fanuc controller parts. Patiently we traced all the external wiring, plugs and terminals and drew up diagrams of that part in order to facilitate the wiring of the MESA cards later. Then we wired up one of the motor drives and started testing the lot. Disappointment was our reward. The first axis moved rather strange. It turned out that the signals from the encoder were erratic. Closer examination learned that the line driver had gone bad (accidental supply line reversal?). Replacing the line driver chip in the encoder (Fanuc Pulsecoder) cured the problem. The next test with the Argon Granity tool went successfully. We succeeded in tuning the x-axis so there was virtually no overshoot or following error. So far I am very happy with the Argon drives. Configuration of the drives could be documented a bit better though. However, in practice, it turns out to be easy: check the right boxes and the drive 'knows' how to behave. (the z-axis will present a challenge since the motor also has to support the weight of the table and I haven't found a torque offset parameter yet)
Next came tsetting up of the computer and MESA cards and doing some preliminary testing. We will discuss this in the next posting. I'll also will make put in some pictures.
CNC stuffPosted by michael Dec 16, 2007 21:50:20
Finally someone found me some manuals for the YAMAHA robot. A quick scan however did not reveal the presence of a 'Compile' instruction. Since I do not have the programming terminal, which should be part of the system, the only way I could make the thing move was to issue direct commands, which are interpreted and executed. Not the most ideal way to create a sequence... Maybe it is not possible at all to emulate the Programming Terminal through the serial Host Port. At leas I have a good description of the syntax of the commands which are accepted. I have thought of building a dedicated terminal which can be hooked up on the programming port, but then I still need to know the codes for Edit, Compile etc.. I guess it'll take some time before I have a working G-code driven CNC milling robot :-(
As a last resort I can always disassemble the firmware, but of course I am not looking forward to such an exercise!
CNC stuffPosted by michael Aug 17, 2007 02:45:43
I finally got the bastard to move. I started to write a 'Control Interface' in Delphi, with some predefinded commands. I really got tired of having to retype commands in Hyperterminal all the time. the Delphi program takes care of start- and endcodes and has a growing number of commands which I can send by a simple mouseclick. I managed to upload a program file which I created, but it wouldn't run. I have not figured out yet how I can compile a program. Hopefully the User's Manual which one of my collegues promised me to dig up will contain that info. I can't wait till he gets back from his holiday.....
Eventually I'd like to be able to do more with this robot than just make it execute simple oneliners that only contain one command. My goal is to write a g-code interpreter which runs on the controller. Programs are written in a Basic-like dialect, which also has some string functions. Interpreting g-codes shouldn't be too difficult to program.....
CNC stuffPosted by michael Aug 17, 2007 00:30:24
The next thing I wanted to achieve of course was to see something moving. After getting rid of the 'interlock' fault message I got a new one. My new pal lost his mind and only responded with 'Feedback error', which drove me nuts for a while. I tried to disconnect and swap cables, but the message would't go away. In the mean time I had also hooked up a panel with some switches and LED's to the pins that were labeled 'origin', 'start' etc.. Nothing happened, so I pulled the servo board and shoved it back in. I flipped the power switch and went away to get another cup of coffee from the kitchen. On returning I heard a humming sound. The servo's where actually working and when I pressed the origin button the axes started to move!
Now before moving on, I tried some of the commands in the book. Finally I managed to make the controller send some important files to the PC. Having a backup of the configuration files on my PC now gave me enough peace of mind to call it a day (or rather night) and use the (little) remainder of it on catching some sleep.
CNC stuffPosted by michael Aug 16, 2007 06:28:48
Some time ago someone at my work showed me a 3-axis linear YAMAHA robot which was taking up valuable warehouse space, and ready to be scrapped. I couldn't resist the temptation to start a refuge for abandoned robots so I took the poor thing home.
Unfortunately the victim arrived in a poor state. All the cables had been cut off during decommissioning! However, I did get some docs (programming manual and external wiring diagrams only) with the new resident of my refuge. It took me a couple of evenings to reconnect all the cables again (about 120 wires to solder). It also seemed that the controller had been wired for 200 volts, since originally it was part of a machine originating from the land of the rising sun. Looking into the primary power circuitry quickly revealed that the power transformer had several (unmarked) taps. After supplying the unit with 100 volts to be on the safe side, I quickly found out wich tap setting to use.... The next step was to find out how I could communicate with my new lodger. One 25pin D-connector bore the label "host", so I directed my attention there. A comm-cable was quickly wired up and fortunately I got it right the first time. With Hyperterminal running on my PC, it didn't take long to get some response after playing with various baus-rates. The responses indicated that the commands I send where missing a start code (@). Now, simple commands preceded with a '@' produced reactions like 'syntax error', 'interlock broken' etc. In the schematics I found a reference to a signal called Interlock and after grounding the respective connector pin, I could move on to the next challenge!