Converting from ESS+Mach4 to LinuxCNC

More
14 Oct 2016 21:54 #81656 by jackm
This is my first post on this forum since I am new to CNC machining and I was looking for some help on a project that I am doing for one of my professors. I am a 4th year mechanical engineering student and a Computer Science minor at UVa. We have a ShopBot CNC router that my professor ripped the brain out of and replaced with a Mach9 Ethernet SmoothStepper and a PC running Windows 7 and Mach4. The machine will often freeze about 20-30 minutes into a cutting operation requiring re-starting the software and re-setting the origin. Also, when manually jogging the bit around to various coordinates the CNC machine will occasionally become unresponsive to the commands given to it by Mach 4. MY professor has determined that Windows is the problem and has tasked me with coming up with a Linux alternative to the control system. The simplest conversion to LinuxCNC, I think, would be to use some sort of parallel interface to control the stepper motor drivers from the PC running LinuxCNC.

The complicated part is that he does not like the idea of the real time control of the stepper motor drivers coming from a PC. In his opinion, that sort of real-time operation should be done on a dedicated piece of hardware (like the ESS) that is not encumbered by having to run a desktop operating system. It seems to me that there are 3 possible solutions to this problem:

1) Bypass the real-time control functionality of LinuxCNC and find a way for it to communicate with the existing ESS board, either by writing my own driver or some other driver developed by someone else.

2) Some other control board which mimics the functionality of the ESS but still will run the real-time control (instead of letting LinuxCNC do it).

3) Coming up with a persuasive, detailed argument about how running the real time control from a PC will be equally reliable.

My professor has made it clear that he would be willing to spend up to like $5-10K on hardware (although I can't imagine that would be necessary) to make this thing work extremely reliably. I'm open to any ideas y'all come up with but I don't want to do anything sketchy. We're looking for industrial-grade reliability with whatever setup we build. Any help would be greatly appreciated!

Please Log in or Create an account to join the conversation.

More
14 Oct 2016 22:46 #81658 by PCW
LinuxCNC's architecture is based on a real time host and a non-buffered motion interface
This has the advantage that you have a flexible, powerful, and extensible high
level interface to hardware running on a high performance real time host (a PC or high end ARM CPU )

Changing this to work with a buffered system (that works like Mach4 and the ESS) will be
a fair size project and compromises many of LinuxCNCs strengths

In my experience LinuxCNC is very reliable even though it is running real time tasks (Meaning > 1 year uptimes without issues)

I would suggest you try LinuxCNC before deciding that you need a different basic architecture

Please Log in or Create an account to join the conversation.

More
14 Oct 2016 23:14 #81659 by andypugh

The complicated part is that he does not like the idea of the real time control of the stepper motor drivers coming from a PC. In his opinion, that sort of real-time operation should be done on a dedicated piece of hardware (like the ESS) that is not encumbered by having to run a desktop operating system.


I can see where the current experience might push someone to that viewpoint, but it seems to be ignoring the capabilities of a real-time patched OS.

There is a bibliography of academic papers about the LinuxCNC approach on the LinuxCNC Wikipedia page
en.wikipedia.org/wiki/LinuxCNC

it is actually advantageous to run the control loop in a general purpose PC, you can see what is going on. LinuxCNC has an oscilloscope (Halscope) and various other tools that let you see exactly what is going on in the real-time threads. This level of introspection is extremely useful.

However, there is something to be said for doing the lowest-level step generation in dedicated hardware and LinuxCNC offers support for a number of options there.

It might be instructive to, initially, reconfigure the machine to straight parallel-port control with LinuxCNC. This would be a zero-cost option. But make sure you do a long-term latency test first. it is possible that the problems that are stopping Mach4 working properly might be related to the PC hardware. Mach3 and Mach4 do work, well, for many thousands of people. It if was as an unusable solution as you are seeing it wouldn't have any users.

As a straight replacement for the ESS you could look at the Mesa 7i76e. If you start to consider PCI and EPP connection options the range of hardware expands a lot.

Perhaps show your prof this video , you don't run a machine like this on a flaky controller.
The following user(s) said Thank You: jackm

Please Log in or Create an account to join the conversation.

More
30 Oct 2016 23:09 - 30 Oct 2016 23:11 #82263 by jmelson
One option is the Pico Systems Universal Stepper Controller. It can control up to 4 axes, and can accommodate encoders on the motors, if you have them. Unused encoder inputs can be used to implement a jog wheel (manual pulse generator) or spindle encoder. (I can't live without my jog dial anymore!)

This is controlled through the parallel port, the PC reads position (encoder or step counts) and sends velocity commands to the Controller board. There are also positions for up to 8 solid state relays and 16 digital inputs.

Cost is only $250, and should be all you need to do the retrofit. (If your computer doesn't have a parallel port, then one can be added to any PCI or PCIe slot.)

If you are trying to do this on a laptop, that may be the cause of the problems. Thermal and battery management on laptops can interfere with response-sensitive apps.

See pico-systems.com/osc2.5/catalog/product_...ath=4&products_id=30
for info on this board.

Jon
Last edit: 30 Oct 2016 23:11 by jmelson. Reason: added link

Please Log in or Create an account to join the conversation.

Moderators: piasdom
Time to create page: 0.078 seconds
Powered by Kunena Forum