- Posts: 8
- Thank you received: 0
AXYZ 4008 ATC CNC router control retrofit
I’ve begun the process of retrofitting my router to Linuxcnc.
The way I’m doing the wiring is to patch into the OEM connectors so I can leave the existing control in place and functional until the Linuxcnc system is functional. Minimum downtime is essential as I use this machine for my business.
The OEM control system works ok but is definitely the limiting factor as the hardware is quite good.
The OEM control work flow goes like this, DXF- proprietary software “Toolpath”- file transfer to machine RAM. The downside of this is the Toolpath software is awful, very time consuming and basic machining strategies.
The other option is to use the no longer supported AXYZ DNC program and drip-feed the machine.
This works well as I can use g-code from CAM and the workflow is quick, the downside is curves and 3d work exceeds the look ahead of the DNC and causes stuttering and decreased cut quality.
Years ago I used Mach 3 on a small mill and was never happy with the stability of that system (a couple of random runaways can really sour your opinion of a motion control system).
I’m looking forward to learning Linuxcnc as I plan on using it for more applications in my business.
Hardware:
• HSD ES919A 10HP spindle
• Control Techniques Commander SE vfd ( theservicegroup.us/wp-content/uploads/20...r-SE-Users-Guide.pdf )
• Teknic servo motors M-3482-FT-1 on X and Y axis ( www.teknic.com/files/downloads/M-3482-FT.pdf )
• Teknic servo drives (step-dir) SST-1500-UCX for X and Y ( www.teknic.com/files/downloads/Teknic_SS...em_Manual_Rev3.8.pdf )
• Pacific Scientific 6410 Stepper Drives on Z and ATC carousel ( www.ahs-antriebstechnik.de/pdf-dateien-e...%20Drives/ma6410.pdf )
• Stepper motors on Z and ATC carousel
• Proximity sensors shared for home/limits (5 total)
• Pneumatic actuated drawbar on spindle
• Pneumatic actuated ATC door and dust shoe sharing the same pneumatic circuit
• Pneumatic actuated drill
• Low air pressure sensor
• Fixed tool touch off plate next to ATC for recording tool length offsets
• Moveable tool touch off plate for setting spoil board top surface
• HP dc7600 PC
• MESA 5i25-7i76
Here come loads of questions about how to get this thing running
Tyler
Attachment not found
Attachment not found
Attachment not found
Attachment not found
Attachment not found
Attachment not found
Attachment not found
Attachment not found
Please Log in to join the conversation.
• 5i25 installed and talking to the 7i76.
• 7i76 mounted to control cabinet.
• Ribbon cable running from OEM connectors to 7i76.
• X, X1, Y, Z, A, wired to 7i76.
• Field power to 7i76.
Issues currently:
• (update: Fixed, was missing a jumper on stepper driver.)[strike] Motion on z axis when testing in PNCCONF but when switching from forward to reverse the axis only goes one way. [/strike]
• No motion on X, X1, or Y. The OEM control only uses three pins (I think) to control the drives. Pins 18 and 9 go to the control board, pins 8,17,5 go to the power board.
How should this be wired to the 7i76?
This is from the drives manual
“DIRECTION POLARITY WIRING. With a standard motor cable the Direction line will have the following effect: With Direction at a high level, the motor will rotate clockwise (when viewing the shaft while facing the drive end of the motor) for each pulse of the Step line, and the internal position register (which is displayed by SSt-QuickSet's™ Status window) will decrement for each step pulse. When the Direction line is at a low level the motor will rotate counter-clockwise and the SSt servo drive’s internal position register will increment for each pulse of the Step line.”
Attachment not found
Thanks for the help.
Tyler
Attachment not found
Attachment not found
Attachment not found
Attachment not found
Attachment not found
Please Log in to join the conversation.
X, X1, Y, are moving. Pin 8 needs to be grounded to enable the drive. I metered the drives behavior on OEM control to determine this. Using a clip lead to ground pin 8 on the servo drive I can now jog in PNCCONF.
Question:
Is pin 8 something that I will connect to a gpio pin later on in HAL as a drive enable function? I need to be able to disable the drives to square the gantry and then re-enable. I'm not sure what the proper way to do this is.
Question:
In PNCCONF I don't get the option to configure the 5th stepgen used to drive the ATC. Is this correct?
Now to figure out homing switches, pneumatic functions, drawbar, ATC and on and on.
That's it for tonight.
Tyler
Please Log in to join the conversation.
Yes. I think that the 5i25/7i76 IO is high-impedence when unpowered so it will work properly (and safely). If the power-off behaviour isn't right then you might need a mechanical relay, crude though that sounds.tsmutz5 wrote: Is pin 8 something that I will connect to a gpio pin later on in HAL as a drive enable function?
In theory LinuxCNC knows how to auto-square the gantry (though you would need independent limit switches). It takes a bit of configuration. There was some discussion about building it in to the standard homing code, but once you try to handle every single possibility (homing to switches, homing to encoder index, homing to encoder indexes that don't actually line up with each other...) it becomes quite a task. It is supposedly easier with a development branch of LinuxCNC called joints_axes_4 which has a kinematic module called gentrivkins.I need to be able to disable the drives to square the gantry and then re-enable. I'm not sure what the proper way to do this is.
There is a sample configuration in the standard installation which uses "gantrykins" which has some problems and irritations. You might want to experiment with this simulated gantry configuration (without hardware) to see if it looks like it would work for you.
There are so many options for ATC that I can't ever see the wizards being able to configure them all. How does yours work, and what does it need?In PNCCONF I don't get the option to configure the 5th stepgen used to drive the ATC. Is this correct?
If it has a 4th servo then you might want to temporarily configure an A axis for the ATC carousel. It looks like your tool-change will be easiest to control with a G-code subroutine and configuring that as an A (or B or C) axis will make moving it from G-code easier. You can configure LinuxCNC to call a G-code subroutine when it sees an "M6" in the input file. There are (several) other ways to do it too, but as you need coordinated moves in Y and Z to change a tool the G-code approach looks simplest. G-code can operate pneumatics and read switches using the digital IO commands (M62 and friends)
Please Log in to join the conversation.
I have done a similar job on an Industiral router same size.
Pncconf is a good base to start.
My advice will be to look and understand very well the homing sequence of your actual machine befor dismantling the controller.
The second mistake i done was to not mesure or register the acceleration of the 3 axis driving by the old controller.
You could use your smartphone to get it.
During the first move always keep a physical Estop button under your hand........
Be shure your Z axis servo is not breaking when machine is stop.
( i have nearly burn my drive by forgetting to conect the break to machine the On relay )
If you have a vacuum pump you probably have a Vacuum switch to stop the machine in case of pump failure
On this kind of machine the Estop chain is something to think seriously and it is not luxury to by a safty-relay like a Pilz.
During my first milling test i have discoverd the subtilty of G61 G61.1 and G64p0.1
If you let it by default to g64 during poketing operation at 10m/mn feed you will have some surpise......
The controller will take the shortest way between 3 point !
Also if you drill, the controller will start mooving in X or Y before the tool is out of the hole !
In my case when a cut very simple cabinet parts i use to set my post processor to start the gcode with g61.1
And when i do some 2.5d art workt i set it to a tolerance of 0.1mm with g64p0.1
After one year of use i am very happy with LinuxCnc,
For many reason i am thinking to moove to Gmoccapy.
My only regret is about the mystery of the ATC ! And the mapping fonction of M6
Some time i look over mach3 with Cslab product csmio with the servo closed loop autotuning fonction, and the already built rack toolchange macro, and for shure the computer ardware facility like hdmi video card, usb wifi dongle, ipad remot control, rj45 conection between computer and motion controller and touch screen compatibility but i am a bit worried to let mach3 mooving my 5000kg machine or distroy the hsd es919 spindle!
So if you have time and patience to tune as you like the whole system, you have made a very good choice.
And if you have some info about the ATC i will be very happy to learn and get my Atc working.....
Good evening.
Mael
Please Log in to join the conversation.
The drive enable function makes sense.
For squaring the gantry the OEM procedure is as follows:
• Disable servo drives.
• Pull X-axis (gantry) to negative hard stop. The stop is fixed on one side and adjustable on the other side.
• Re-enable servo drives.
• Jog off limit and re-home.
The machine only has one proximity switch for homing/limit on the X-axis. The signal for the X and Y proximity switches goes over the same conductor in the E-chain to the OEM control. So for Linuxcnc I think I’ll need the homing procedure to home Z then Y then X. This is done in the .ini with HOME_SEQUENCE correct?
Here are a few pictures of my ATC.
Attachment not found
It’s a stepper driven carousel type tool changer that is mounted to the X-axis gantry with a proximity sensor 180 deg from the current tool selected with studs for ATC home and at every tool location. The ATC detects the home stud by the distance from one pulse to the next is closer together than all others (around 1250 steps between tool studs). Once homed the ATC goes to the required number of steps to tool “?” hits the sensor, and then backs off till the sensor goes off then the tool change routine continues.
The OEM routine goes like this for empty spindle first tool change:
• M6 T? starts the process.
• Check air supply pressure sensor, if low abort.
• Check spindle “zero speed” if zero proceed.
• Air solenoid triggered to open ATC door and dust foot.
• Z retract to home position.
• Home ATC.
• ATC to “T?”.
• Y rapid to 67.6” .
• Spindle pullstud open and purge air.
• Z down to tool pickup height.
• Spindle pullstud closed.
• Y to 64.0”.
• Z retract to home.
• Rapid back to coordinate the M6 was called at.
• Air solenoid released to close ATC door and dust foot.
The OEM routine goes like this for mid-program loaded spindle tool change:
• M6 T? starts the process.
• Check air supply pressure sensor, if low abort.
• Check spindle “zero speed” if zero proceed.
• Air solenoid triggered to open ATC door and dust foot.
• Z retract to home position.
• ATC advance till sensor trips for tool currently in spindle then back off of sensor.
• Y rapid to 64.0” .
• Z down to tool pickup height.
• Y to 67.6
• Spindle pullstud open and purge air.
• Z retract
• ATC to T?
• Z down to tool pickup height
• Spindle pullstud closed.
• Y to 64.0”.
• Z retract to home.
• Rapid back to coordinate the M6 was called at.
• Air solenoid released to close ATC door and dust foot.
I’m not sure about how to handle the homing/latching system.
The reasoning for the latching procedure for every tool is as the Y-axis slides the tool out of the holder the stepper could be pushed out of position by a burr or wood chip.
Does this seem like something that is doable with G-code?
I still have to figure out the spindle control.
I attached the OEM control board diagram and highlighted the “inverter 1” section.
Attachment not found
On OEM control the control mode is referred to as “tach” which has a zero speed indicator coming from the spindle to the inverter so that the tool change doesn’t start with a tool still spinning down.
I’m not sure how to bring this all together on the 7i76 and Linuxcnc.
Thanks so much for the help.
Tyler
Please Log in to join the conversation.
Thanks for the advice!
That’s some heavy looking iron you’ve got there! What kind of machine is it?
My plan is to keep the existing control system in place as it is functional but not great at 3d work. The wiring I’ve done so far plugs into the OEM connectors so I just un-plug the cables from the OEM controller board and plug my cables into them when I want to develop my Linuxcnc settings. During the day I am still using the OEM controller.
I’ve got pretty decent documentation for accel, decal, max linear, max angular, centripetal accel, steps per unit, etc. But my weakness is Linux!
Good advice on E-stop importance. I’ve operated and maintained some 30+ axis automated systems with close human interaction and man oh man is safety important. A runaway axis (something I’ve experienced with MACH on smaller machines) is a very scary thing. My hardware E-stop Chain is working (disconnects the drives and stops the spindle as fast as possible. I’ve still got to get Linuxcnc disconnecting the relays powering the drives/spindle.
Gmoccapy looks like a great GUI! I’ll have to look into it more once I get up and running. Thanks for bringing it to my attention.
The Cslab products look nice, and presents an “easier” path, kind of like “going to the darkside”
What I really like about Linuxcnc is how adaptable it is, but that edge cuts both ways as my programming knowledge is not developed enough yet to make it sing.
When I get my ATC working well I'll definitely let you know how I did it.
Talk soon.
Tyler
Please Log in to join the conversation.
tsmutz5 wrote: The machine only has one proximity switch for homing/limit on the X-axis. The signal for the X and Y proximity switches goes over the same conductor in the E-chain to the OEM control. So for Linuxcnc I think I’ll need the homing procedure to home Z then Y then X. This is done in the .ini with HOME_SEQUENCE correct?
Yes. You can basically use the original procedure and simply run two stepgens from the same axis position commands. You might want to add auto-squaring later, but lets leave that for now.
I think that you can do this using the normal homing routines and HAL logic. If you choose a homing direction such that the sensor sees the tool pin first then a oneshot in HAL set to run for about 75% of the time between studs during the homing procedure triggered from the falling edge of the sensor, then combined with an and2 component so that the homing signal is actually "Stud now AND stud recently passed" becomes the home signal.. The ATC detects the home stud by the distance from one pulse to the next is closer together than all others (around 1250 steps between tool studs). Once homed the ATC goes to the required number of steps to tool “?” hits the sensor, and then backs off till the sensor goes off then the tool change routine continues.
www.linuxcnc.org/docs/html/man/man9/oneshot.9.html
www.linuxcnc.org/docs/html/man/man9/and2.9.html
So your first job is probably to sort out homing for the axes and toolholder. I think in this case, as you need axis movements to perform a tool change, it makes sense to do tool-change with a G-code routine.
The tool carousel can be any unused axis, but a rotary one (possibly C if you plan to use A and/or B later) might be easier.
It is also possible to consider using an non-axis stepgen for the toolholder. The stepgen doesn't care where the position commands come from.
I’m not sure about how to handle the homing/latching system.
The reasoning for the latching procedure for every tool is as the Y-axis slides the tool out of the holder the stepper could be pushed out of position by a burr or wood chip.
Assuming that the C-axis is the toolchanger, and the stepgen scale is set so that one-tool = one-unit I think my simplistic approach would be:
G0 C #<tool>
M66 P0 L0 (check that there is a stud at the sensor)
O100 IF [#5399 EQ 0] (no stud)
M64 P0 (trigger a HAL pin to re-home the C-axis, halui.joint.5.home)
M66 P1 L1 Q20 (wait for halui.joint.5.is-homed)
O200 IF [#5399 EQ -1] (homing timed out)
(message, PANIC)
O200 ENDIF
O100 ENDIF
{Rest of sequence}
There is quite a lot to configure, but it should be OK in bite-size chunks.
Please Log in to join the conversation.
Please Log in to join the conversation.
it is not a carousel but it could be done whit a C axis in place of the Yaxis move
THat could not be easily translate to Linuxcnc but the frame and the message are good
the soft-limit override and the cone cleaning option are interesting.
Please Log in to join the conversation.
