What's new
What's new

Connecting with Ancient HAAS Machine

White this thread has diverted to IoT's cons and I totally respect everyone's input here, I just wanted to announce the success!! We are now live.
Putting it here so that it might help someone in the future.

The controller has an embedded web server which publishes a simple web page over HTTP1.0 and available at
http://<machine_ip>/m-net

If I try to access this web page it does show a web page with HAAS branding but without any data. To get the data we need to pass what exactly we need, via the query string. This internally queries the memory registers and renders the data such as status, running code block, part count and more information on the web page.

http://<machine_ip>/m-net?mds,9,,8=402,160000000,8=500,160000000

This effectively returns the responses of Q codes. In the output I was able to see the output of Q402 and Q500 commands.
Thank you everyone for your valuable inputs.
 
What was the breakthrough? Did you get a copy of the Haas manual? Or was that in a readme file? I'm kind of wondering how you're supposed to know all the memory addresses of the things you want to query. Or are you just backing into this from the log file?
 
What was the breakthrough? Did you get a copy of the Haas manual? Or was that in a readme file? I'm kind of wondering how you're supposed to know all the memory addresses of the things you want to query. Or are you just backing into this from the log file?
Hi, as I had mentioned in this thread, there was a third party software which was able to read data from this controller. Again, it was a very old software which had to be run in the compatibility mode. When that software was running and capturing the machine data from HAAS, I simply ran wireshark to capture the network traffic (this was one of my very first idea, but was stuck in the red tape). I was then able to exactly extract the query string arguments from the logs captured in Wireshark. Replicated the same in a browser and voila! I saw live data. This was a lifesaver!

I want to further learn about this protocol and what else it can publish over the HTTP page. But alas, yet to come across any documentation.

I had a plan B and plan C ready, if this didn't work. Since the machines are SMB1.0, I did enable that support in Win10 and actually was able to access one of the machine's data folder. Although the IT was not ready to keep SMB1.0 open for valid reasons. Plan C was to make use of the third party software I was mentioning. The software has an ability to dump the ongoing data into an SQL DB. Yes, more points of failures but that way too could have worked out. As of now I have written a script which periodically checks the web page, parses it and converts the data into the expected format. It's working really well as of now.
 
Last edited:
This effectively returns the responses of Q codes. In the output I was able to see the output of Q402 and Q500 commands.
Thank you everyone for your valuable inputs.
what http syntax would you use to read and write machine variables using this m-net method?

Currently I am doing stuff over serial on my machine with the same vintage controller and would love to transfer it over to Ethernet instead.
 
Although the IT was not ready to keep SMB1.0 open for valid reasons. ...
I'm a bit confused...
How are/were they talking to this machine in the first place without it enabled?
Were they using the USB stick only and this is the first time for the machine being attached to the network?
 
It does seem like M-Net may not be something that Haas provided support for, rather it may have been implemented by independent software vendors:

M-Net is a network protocol for communication between machine tools, robots, and shop computers over a Local Area Network (LAN) and the Internet. Commercially developed applications use M-Net to send, receive, compile and report data between devices on the network.

Software vendors can provide more information about their M-Net applications

It does seem, however, that even pre-ngc machines with M-Net capabilities still had the ability to read/write macro variables with the TCP/IP protocol
 
It does seem like M-Net may not be something that Haas provided support for, rather it may have been implemented by independent software vendors:



It does seem, however, that even pre-ngc machines with M-Net capabilities still had the ability to read/write macro variables with the TCP/IP protocol
I've figured out the syntax to read variables:
http://[MACHINE-IP]/m-net?mds,9,,8=[MACRO VAR TO READ],160000001
will return a webpage with the data for that variable.

I cannot figure out how to set data yet tho...
 
@Hebrewhammer8
Yeah it seems like you provide multiple queries as well in a single request from what OP provided...

Where I was going with the TCP/IP haas has quite a bit of documentation for so if you are handy with setting up a server you can create something for setting data as well.

What are you trying to set variables for?
 
@Hebrewhammer8 I have set up a basic TCP/IP server that I can send you... I made it in Spring, which just requires that your "server" be on a machine with Java and is on the same network as your machine. It takes the machine IP Address and Port for which to communicate on, and uses http protocol but instead has a format like :


This can be set up to run on a local server within your network, and you simply access it from any other machine on the network. The only thing is, I currently have the Ip address and port hard coded...

If you have specifics on something you are trying to create I may be able to help, but at the moment I'm currently working on a simple tool management application... for machines with probes, and tools that are not in static holders, I want to be able to send the approximate tool length/diameter, the probe type, and a pre-generated program to switch tools, have it loaded up and probed. For machines without, it won't populate length values, and the program would simply rotate through all tools to allow the tool to be loaded and manually set...

For shops with static holders, I'd just send the tool data from a database...
 
It does seem like M-Net may not be something that Haas provided support for, rather it may have been implemented by independent software vendors:
It does seem, however, that even pre-ngc machines with M-Net capabilities still had the ability to read/write macro variables with the TCP/IP protocol

Trying to find all kind of resources on this and almost all of them associate MNET with HAAS branding only. A veteran in this field (>40 yrs experience) also told us that MNET was definitely offered by HAAS at certain point, and has been wiped out from almost all available documentation.

Specific Google Search showing a number of resources linking HAAS with MNET:

There are some interesting links in the Google Search

HAAS' own website mentioning MNET as a part of their communications firmware:
 
@Hebrewhammer8 I have set up a basic TCP/IP server that I can send you... I made it in Spring, which just requires that your "server" be on a machine with Java and is on the same network as your machine. It takes the machine IP Address and Port for which
I have all of that jazz figured out, I just need the http request syntax to set variables on the control.

Probably have to call haas and have a converstation where they say what I'm doing can't be done and I go, I am doing it and they go wait what and on and on untill I talk to the right person who happens to find the right manual. Easy.
 
Trying to find all kind of resources on this and almost all of them associate MNET with HAAS branding only. A veteran in this field (>40 yrs experience) also told us that MNET was definitely offered by HAAS at certain point, and has been wiped out from almost all available documentation.

Specific Google Search showing a number of resources linking HAAS with MNET:


For those wondering...

On this Haas Lathe manual from 2011, I pulled the description I referenced earlier...
Lathe Manual

M-Net is a network protocol for communication between machine tools, robots, and shop computers over a Local Area Network (LAN) and the Internet. Commercially developed applications use M-Net to send, receive, compile and report data between devices on the network.

Software vendors can provide more information about their M-Net applications


In this link, M-Net is also described as a protocol for something outside of Haas machining, which does exactly what M-Net does on a Haas. It is described as an "Ethernet Serial Server", much like the M-Net server from Haas, also like the Data Collection server on machines that have the ability to communicate over TCP... The control has it's own server which allows for bidirectional communication.

QEL Safety M-Net

I also found some older references as early as 1993, however everything from that era has the suffix -Net in the name so... there's realistically only 26 protocols before letters get reused assuming they are all being original :typing:


I want to say that I can be entirely wrong on everything regarding M-Net, but it does seem to be that there might not be a lot of documentation for this since maybe it wasn't well adopted... The protocols/standards that are well documented are usually the ones that are most widely adopted... one example being HTTP / MTConnect standard... Even on a NGC Haas, they have both the MT-Connect which they use the HTTP protocol to deliver, as well as the older "MDC" format which uses TCP/IP communication... Both allow for bidirectional communication but HTTP/HTTPS is more commonly used today than TCP/IP for a number of reasons.

All this to say... @EisenJensen is still correct. Haas would most likely have had their own implementation of this M-Net protocol, just like they do for their current MTConnect as well as MDC... Both MDC and M-Net use the same Q-Commands, but M-Net seems to have a more robust protocol.


I wouldn't be surprised to find out Haas made a move to remove all this documentation because they are in the process of revamping this to have a SAAS feature that customers pay monthly for... It seems like Fanuc has something like this already, where you pay for proprietary software and there is no readily available documentation to allow for homebrew stuff.
 








 
Back
Top