On 12/3/22 19:20, Jon Elson wrote:
Underneath HAL there is NML that links major sections of LinuxCNC together and makes the state of major components available.  NML exports the ENTIRE state of everything to all clients.  This is doable on a single computer system, but causes issues on multiple networked nodes.

Note, HAL does not use NML. This diagram shows the places where NML is used:

http://linuxcnc.org/docs/devel/html/code/code-notes.html#_architecture_overview

NML is used between the GUI(s) and Task, and between Task and IO. The connection between Task and Motion uses an NML-like message-passing system, but not the actual NML code.

That diagram predates HAL. HAL is a fine-grained shared-memory system acting as a kind of backplane connecting IO, Motion, and the "Realtime Hardware Devices" and "Non-Realtime Hardware Devices" in that diagram. HAL does not use message-passing.

One challenge with making LinuxCNC distributed across multiple physical computers is that HAL is shm-based, not message-based. So we'd need a tool to periodically inspect the state of (some?) HAL objects, serialize the information into a message, and send that message to recipient(s) on the network. I believe Machinekit made some progress in this area, but I don't know how far they got and I never saw a PR that I could understand.


--
Sebastian Kuzminsky


_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to