EDIT: Here's the important stuff first:
I have a CNC machine that communicates over ethernet. I have found documentation on the communication protocols and I can "reverse engineer" them. I don't want to use a mesa or any other card if it can be avoided.
I've attached thorough documentation, and here's a brief description:
Captured and preprocessed data were analysed to determine a hexadecimal repre-
sentation of commands sent from the front-end PC to the back-end PC responsible for
different tasks. Additionally, reply and auxiliary patterns were identified and suggested.
After establishing a connection, the back-end PC sends a command, which indicates that it
is ready to receive initialisation settings files. The front-end PC replies with eight files, each
prefixed with an 8-bit command, except the last one. The back-end PC replies with a series
of commands and files and finally indicates the end of the initialisation process. Most other
tasks are accomplished in a much simpler form, usually a request followed by a reply in
one or two packets ranging from 8 to 40 bits each. Furthermore, during the connection,
the two PCs broadcast auxiliary packets. These auxiliary packets can be seen as repeated
patterns in the communication stream. Depending on the state of the machine, this pattern
can represent the current mode of the lathe, a timer, or a ping indicator.
Here's also a link you can read the academic journal article at:
Machines | Free Full-Text | Digitising a Machine Tool for Smart Factories (mdpi.com)
The DNC documentation is available here:
www.emco-world.com\fileadmin\pim\Description_of_the_DNC_interface__Binary_mode__01.pdf
www.emco-world.com\fileadmin\pim\Description_of_the_DNC_interface__ASCII_mode__01.pdf
According to the research paper, these machines use a fully featured back end PC running a realtime flavor of linux. I presume it may even be possible to install linuxcnc on the back end PC and eliminate the need for a 2nd pc. How difficult do you think that that might be as well?
The same (or a very similar PC) is also used in a lathe that has a front end PC, but you can actually install a different OS on the backend pc, and that's all that you need.
www.emco-world.com\fileadmin\user_upload\_Group\Manuals\Digitalanzeige\Installation_von_Digitalanzeige_an_Maschinen_C40_FB450_FB600_EM14D_17D_20D.pdf
Original:
I have a CNC machine that communicates over ethernet. I have found documentation on the communication protocols and I can "reverse engineer" them. I don't want to use a mesa or any other card if it can be avoided.
Before I bother with that though, about how much of a difficulty is it to kindof modify linuxcnc or hal to communicate over ethernet with custom commands?
Also, so the machine sends an acknowledgement message every time it recieves and executes a packet. The original controller waits for this signal before sending another packet. The machine also responds with positional data (periodically) and some other information. So there's going to be a little more to it than simply controlling the machine, as I'd also want to utilize the communication from the machine to linuxcnc.
I found someone who has made their own server to communicate with these machines, so I know it's possible. I have some programming experience with python and Arduinos, have setup linuxcnc before (using the wizard). Not sure on the best course of action