Fryer MB-11 Bed Mill Retrofit
- adamj12b
- Topic Author
- Offline
- Senior Member
- Posts: 45
- Thank you received: 5
The machine is a 1999 Fryer MB-11 bed mill. Photo Album photos.app.goo.gl/SW9CofNqMfAQUvHL2
The machine came with Anilam 3000m controls, but when the auction guys loading the machine onto my trailer tipped it over onto a picnic table it destroyed the X axis servo.... After standing the machine back up and checking it out, I was able to get more then the cost of retrofitting the machine off the auction price. I planed to retrofit the machine before the end of the year, but now it has to be done to operate. Its not worth finding an Alilam servo when the controls are so limited anyways...I dont want to load floppy disks....
Side note: The machine didn't take any hard hits. It didn't fall, but a slow roll.... Still scary. Table and screws seem fine from what I can measure without controls. This is just a hobby machine anyways.
This will be my first LinuxCNC conversion. After using Mach for years, I have gown sick of the quirks and wanted to try a closed loop system.
Anyways, after a lot of reading on these forums, I have decided on a Mesa 5i25 with 7i77 for analog servo control and a 7i84 for console interface. I have used DMM-Tech servos in the past and had a 1KW servo and drive left over so I decided to purchase 2 more 1KW servos and drives for the machine. These are 1.3NM stronger then the stock 3.5NM 160V servos on the machine. Im hoping to use this to push a bit past the stock 200IPM rapids.
As for the other components (VFD, Contactors, enclosure, switchs and sensors) I will dig though my collection of years worth of salvaging to put together the highest quality retro ive done to date. Should be fun!
The DMM servos arrived from Canada yesterday, 7/13/17 and the Mesa stuff is schedule for tomorrow 7/15/17. Conveniently, I have next week off so hopefully the machine will be running soon!
The mill as it sits in my garage now.
Lastly the specs:
5HP Cat 40 Spindle 2 speed 60-4200RPM
6" Quill travel
10x50 table
30X 20Y 23Z
Console:
I think people will be interested in this, so im going to give it its own paragraph.
I started a router project with a family member a few years ago that was never finished. This console was one of my contributions. I will put it to use on this machine. The console was laid out in Draftsight as a dxf file. I created a layout for all the buttons I wanted to be able to press. With that, I use a 10ish inch ELO touchscreen for everything else. All the buttons were salvaged over the years and the only thing I bought was the MPG. Once the layout was done, I did some offsets to create boarders, then exported everything to DXF and then to Adobe Illustrator to thicken the lines. This was sent to a guy with a vinyl printer/cutter. I got perfect decals back which I placed over the holes I drilled with the Bridgeport. I will use the 7i84 to interface to all the console functions. Somethings like the Vacuum panel might get relabeled as I wont need to run a vacuum pump on a mill. The coolant section will get expanded and im sure some more things will be added to the aux section.
I also think im going to change out the pots for encoders as I think these will be easier to get into LinuxCNC. thoughts?
DXF layout:
Finished Console:
Hope you enjoy and any suggestions anybody can make would be very much appreciated!!
-Adam
Please Log in or Create an account to join the conversation.
- andypugh
- Offline
- Moderator
- Posts: 23560
- Thank you received: 4858
I also think im going to change out the pots for encoders as I think these will be easier to get into LinuxCNC. thoughts?
Encoders "play better" with HAL where values might be altered in more than one place. They are also a little easier to interface.
Have you noticed that the 7i84 can be configured with a couple of MPG counters?
Please Log in or Create an account to join the conversation.
- adamj12b
- Topic Author
- Offline
- Senior Member
- Posts: 45
- Thank you received: 5
Encoders "play better" with HAL where values might be altered in more than one place. They are also a little easier to interface.
Have you noticed that the 7i84 can be configured with a couple of MPG counters?
I have already started checking out pnconf and did find that you can add counters to the 7i84. I believe you can add 2, however if I change out the pots, I will need 3+. Suggestions? I will have an MPG, Feed Override, and Spindle Override plus maybe an auxiliary.
-Adam
Please Log in or Create an account to join the conversation.
- andypugh
- Offline
- Moderator
- Posts: 23560
- Thank you received: 4858
There will also be a set of fast hardware counters on the second connector of the 5i25 that might be usable (some buffering/protection is probably in order though).
Alternatively, for slow-moving counters you can use the software encoder counter. It works reasonably well for hand-controls even in the 1kHz servo thread.
Or, you can throw money at the problem and install a 7i74 smart-serial adaptor and a 7i73 control-panel interface. The 7i73 can handle 4 MPG counters. It can also make panel wiring much simpler, your panel can communicate to the rest of the system with a single CAT5 cable.
Please Log in or Create an account to join the conversation.
- adamj12b
- Topic Author
- Offline
- Senior Member
- Posts: 45
- Thank you received: 5
Software encoder counter would be using the built in parallel port correct?
With the amount of money into this project already, another $168 isnt going to matter much if I do the route of adding the serial adapter and another interface.
Originally, When I was choosing parts, I chose the 7i84 over the 7i73 because I did not want to get into building custom ribbon cables to interface to the card. Knowing me, I would have drawn a PCB to use the 7i73 as a daughter card to break it out.
I am learning as I go, but would it be difficult to use the 7i74 with 2 - 7i84's instead of connecting the one I have now to the 7i77? I would make wiring neater just using cat5 cables.
-Adam
Please Log in or Create an account to join the conversation.
- andypugh
- Offline
- Moderator
- Posts: 23560
- Thank you received: 4858
Not necessarily. It can be connected equally easily to the 7i84 GPIO pins.Software encoder counter would be using the built in parallel port correct?
I discovered M20 series discrete wire connectors, and that makes wiring to a 7i73 (or similar) fairly easy:Originally, When I was choosing parts, I chose the 7i84 over the 7i73 because I did not want to get into building custom ribbon cables to interface to the card. Knowing me, I would have drawn a PCB to use the 7i73 as a daughter card to break it out.
Here is my 7i73 just about to be interred in the lathe apron
uk.rs-online.com/web/p/pcb-connector-housings/6812856/ (but they come in a range of sizesm and can sit side-by-side in the headers)
No, very easy. It doesn't really matter where you plug in the smart-serial cards. In fact if you use the "use_serial_numbers" option to the hostmot2 driver then the pin names stay the same no matter where you plug in the cards.I am learning as I go, but would it be difficult to use the 7i74 with 2 - 7i84's instead of connecting the one I have now to the 7i77? I would make wiring neater just using cat5 cables.
Please Log in or Create an account to join the conversation.
- adamj12b
- Topic Author
- Offline
- Senior Member
- Posts: 45
- Thank you received: 5
I have gotten the machine leveled and started cleaning and inspecting everything.
I found that a number of metering valves for the oiling system are junk or I ordered all new ones and some new lines to replace some squished ones. This stuff is scheduled to arrive 8/3/17. I have not rushed to finish the rest of the stuff as I dont want to be tempted to operated the machine without proper lubrication.
I was able to remove the Y and Z servo mounts and modify them both by simply boring out the center locating hole to the proper diameter of the new servos locating boss. A 4 hole bolt pattern and tapping the holes was all that was needed. The HTD timing pulleys had to be bored out to 19mm and the keyway re broached and those went right on the new motors. Everything for the Y and Z went quick and only took me 2 evenings to do everything.
Y Servo:
Z Servo:
Going through all the stuff I had, I dug out a 30x30x12 control cabinet I got from decommissioning an industrial bar code printer. The large cutout in the top slant had a Allen Bradley PLC display mounted it in, but I will use this hole for an automotive air filter for cabinet filtration. The cabinet also had an E-Stop sticker still on it, so I drilled out the hole to a standard E-Stop button and will have one near the door and another on the console.
I drew up the layout of the servo drives and a number of components in Fusion360, then generated a drill CAM file and used this to manually position the mill using a tape measure for rough movements and the graduated dials for fine.
During all of this, Massachusetts got hit with a heatwave so I moved the control panel to the living room coffee table to work on.
I wanted to mount the Mini-ITX motherboard to the back plate, but was unsure how to stabilize the 5i25 PCI card. What I ended up doing was drilling the back plate for the mini ITX mounting pattern and then designing a stabilizer bracket for the PCI card and a mount for the SSD. It just slipped over one mount of the board and gets held down when the mounting screws for the motherboard are screwed down.
Here is the entire back plate as it sits today.
As for the spindle, I am running an Emerson Commander HSK VFD rated for 7.5HP drive. This will give me a higher current rating so that I can start and stop the spindle faster then the 5HP drive can.
Currently, I have spindle control working, a single axis encoder reading as well as one axis analog output working and axis enable. However, when I try to jog the axis, I end up with a joint 0 following error or I trip a soft limit... Once I get past this issue, I will wire up the other 2 axis and move back to the garage to install the back plate in the cabinet and tune the PID's. The DMM drives are currently set for Torque mode as Ive read this is the easiest to tune.
Next steps is to figure out the follow error and then get the console running with the 7i84. Roughly half the wiring is done on the console already.
Hope you enjoyed!
-Adam
Please Log in or Create an account to join the conversation.
- andypugh
- Offline
- Moderator
- Posts: 23560
- Thank you received: 4858
Try negating the output scale. (or the encoder scale, if the encoder scale counts the wrong way)
Also, make the f-error limits big enough to see. 0.5" or so.
Please Log in or Create an account to join the conversation.
- adamj12b
- Topic Author
- Offline
- Senior Member
- Posts: 45
- Thank you received: 5
I have tried inverting encoder and motor directions with no success (4 separate tests). One thing I noticed, but im sure is related, the is servo is not stiff. I can easily turn it when the system is enabled. When I jog, I get one good jump before the trip.
Here is the parameters for the X axis if you or somebody cares to suggest something, but this is tonight's project.
INI:
#********************
# Axis X
#********************
[AXIS_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 2.0
P = 50.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
ENCODER_SCALE = -2000.0
OUTPUT_SCALE = -10.0
OUTPUT_MIN_LIMIT = -10.0
OUTPUT_MAX_LIMIT = 10.0
MIN_LIMIT = -30.0
MAX_LIMIT = 0.01
HOME_OFFSET = 0.0
HAL:
#*******************
# AXIS X
#*******************
setp pid.x.Pgain [AXIS_0]P
setp pid.x.Igain [AXIS_0]I
setp pid.x.Dgain [AXIS_0]D
setp pid.x.bias [AXIS_0]BIAS
setp pid.x.FF0 [AXIS_0]FF0
setp pid.x.FF1 [AXIS_0]FF1
setp pid.x.FF2 [AXIS_0]FF2
setp pid.x.deadband [AXIS_0]DEADBAND
setp pid.x.maxoutput [AXIS_0]MAX_OUTPUT
setp pid.x.error-previous-target true
setp pid.x.maxerror .0005
net x-index-enable <=> pid.x.index-enable
net x-enable => pid.x.enable
net x-pos-cmd => pid.x.command
net x-vel-cmd => pid.x.command-deriv
net x-pos-fb => pid.x.feedback
net x-output => pid.x.output
# ---PWM Generator signals/setup---
setp hm2_5i25.0.7i77.0.1.analogout0-scalemax [AXIS_0]OUTPUT_SCALE
setp hm2_5i25.0.7i77.0.1.analogout0-minlim [AXIS_0]OUTPUT_MIN_LIMIT
setp hm2_5i25.0.7i77.0.1.analogout0-maxlim [AXIS_0]OUTPUT_MAX_LIMIT
net x-output => hm2_5i25.0.7i77.0.1.analogout0
net x-pos-cmd axis.0.motor-pos-cmd
net x-enable axis.0.amp-enable-out
# enable _all_ sserial pwmgens
net x-enable hm2_5i25.0.7i77.0.1.analogena
# ---Encoder feedback signals/setup---
setp hm2_5i25.0.encoder.03.counter-mode 0
setp hm2_5i25.0.encoder.03.filter 1
setp hm2_5i25.0.encoder.03.index-invert 0
setp hm2_5i25.0.encoder.03.index-mask 0
setp hm2_5i25.0.encoder.03.index-mask-invert 0
setp hm2_5i25.0.encoder.03.scale [AXIS_0]ENCODER_SCALE
net x-pos-fb <= hm2_5i25.0.encoder.03.position
net x-vel-fb <= hm2_5i25.0.encoder.03.velocity
net x-pos-fb => axis.0.motor-pos-fb
net x-index-enable axis.0.index-enable <=> hm2_5i25.0.encoder.03.index-enable
net x-pos-rawcounts <= hm2_5i25.0.encoder.03.rawcounts
# ---setup home / limit switch signals---
net x-home-sw => axis.0.home-sw-in
net x-neg-limit => axis.0.neg-lim-sw-in
net x-pos-limit => axis.0.pos-lim-sw-in
Please Log in or Create an account to join the conversation.
- andypugh
- Offline
- Moderator
- Posts: 23560
- Thank you received: 4858
I guess that was a test of all four permutations?I have tried inverting encoder and motor directions with no success (4 separate tests).
Try no FF1, and 10% of the P first, with a wider min-ferror too. Just to see if it is trying to go in the right direction. (check that the PID.x.error gets smaller rather than bigger)
Please Log in or Create an account to join the conversation.