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