I have a customer who uses LinuxCNC (http://linuxcnc.org/ ) for a range of automation machinery. They run this on a dedicated computer and drive step and direction drives using a driver board.
I am wondering how we can run LinuxCNC on Ctrlx.
LinuxCNC is quite well devloped. It has functionality for up to 9 CNC axes. There are numerous GUI user interfaces already developed for various types of machines - Milling, Lathe, Plasma, Motion platforms etc. The system is coded in Python and the user interfaces are written using the GTK toolkit (I think). I think that LinuxCNC and CtrlX could be a great combination for many customers looking to graduate from stepper systems to fieldbus drive systems.
Connecting the axis position commands should be a matter of writing a LinuxCNC Hardware Application Layer (HAL) to write to the CtrlX Data Layer. This doesn't look to hard. Also it should be possible to use the Indralogic PLC
However, I don't know how we can run the existing GUI interface on Ctrlx. CtrlX does not have a graphics card. The idea being that any GUI could be written as HTML. However, I don't think that the LinuxCNC GUI's are written in HTML or can be easily converted. (If there is a way, please tell me!).
I'm way out of my depth on this, but it looks like we might be able to use an XServer-Client setup. In this case a remote computer with a graphics card becomes a server of graphics resources. The X Client (X11?) would run on the CtrlX and send low level rendering commands to the server and also receive user input like mouse clicks etc. I would like an opinion on whether this is a good approach? Are we likely to support or make examples of anything like this?
Another issue is sharing files between the CtrlX and the machine running the graphics. However there seem to be solutions for doing this (Samba).
Solved! Go to Solution.
Only short view on the HAL code of LinuxCNC: I think the abstraction layer is a little bit to near to hardware.
For datalayer, i think, you need a realtime cyclic position command or a layer upper: path commands. But for this actually only linear movements are existing (G1)
But, when you have more informations or you know the code better: Let me know. I'm interesting at backend side, not GUI.
Latest information /result of investigation: