Thanks.
A bit of history, as far as I can work it out.
The US National institute of Science and Tech (NIST) wrote a program for controlling machine tools as a research project. As public funded software had to be made public property, so it was released open source. It was written for Unix or Linux, as there was a realtime patch available to make the kernal predictable. At some point it got named EMC (Enhanced machine controller).
The guy behind MACH3 wrote a semi realtime driver for Windows NT, and used it with EMC's algorithms to create MACH. Ihave little experience with MACH, but appears to be more user friendly to set-up, but much more limited in scope (LinuxCNC can be configured for closed loop 9 axis non-cartesian machines).
EMC got renamed to LinuxCNC due to a trademark conflict.
Not sure what you mean by plug and play?
I took a standard PC. Installed LinuxCNC using a live image which installs Linux, along with a real time patched kernal, LinuxCNC, plus an installation wizard, and a pretty standard set of office and pc apps. Very easy. You can even do it as a live install, meaning you can try it out, without first affecting your current OS setup.
The Mesa cards (5i25/7i77) were bought as the PnP kit for linuxcnc, and were already flashed with the appropriate firmware. I added the 7i84 to interface the relay board. It also plugged and played without needing firmware configuration or flashing.
Most of the work was:
- Wiring in a couple of discrete wires to the 7i77 to LinuxCNC into the Estop chain, machine start and Hyd tool release.
- replacing all the old capacitors in the Indramat as a precaution.
- reterminating the ribbon cables (IO from the Phillips to that relay board) into the 7i84,
- reterminating the Heidenhain EXE (Encoder A/D converters) and the Indramat +/-10V signals into the 7i77,
- troubleshooting one dead and one flakey EXE + a flakey connector on the relay board.
- The biggest part was making a software program to control the gearbox. This gets compiled as a component of LinuxCNC. Luckily a mate who is a professional programmer worked with me to tease out a spec of what it should do, and then wrote it, and a software simulator to test it. That is available to anyone now through the github, so anyone else with a Maho x00E can grab it here...
GitHub - jin-eld/mh400e-linuxcnc: MAHO MH400E component for LinuxCNC
Instructions how to compile it are also there. Any programmer should be able to fork this, and modify it for a similar machine like a Deckel FPxNC.
- Used the LinuxCNC configuration wizard (PNCConf) to create a basic set up of configuration files, with the MESA driver, servo thread rate, mill axes etc.
- Manually edited the (Config files) HAL and INI to implement things like the E-stop, Hyd tool release, gearbox control, matric KB etc.
- Used linuxcncs built-in HALscope like an Osci to tune the PID loops for each axis.
That results in a functional machine. If you wanted you could stop at that point, and just use a normal keyboard, mouse and monitor.
I wanted a machine tool user module, so that was a bit more work:
- design a housing, get laser cut steel, weld, grind, paint.
- Mount a touch screen, and active USB hub, configure it (It was a shitty old screen and PITA to set up).
- Make up button modules to duplicate the onscreen soft keys. Plus 8 other switches. Wired all these up as a matrix, and used an existing LinuxCNC matrix_kb.comp to be able to read out all 19 switch states with only 10 i/o pins on the 7i77.
- I reused most of the wiring out to the user control module. Just needed to pull through a USB and CAT 6 cable.
From where I sit now, this all seems easy. When I started, I had little clue about any of this. Couldn't read a schematic (you need those) etc. The LinuxCNC forum guys were extremely knowledgable, helpful and patient. Helped me to a solution for any issue which popped up.
Hope that helped.
Mark