When first starting developing with MTConnect all of the pieces can be very overwhelming. I thought it might be helpful to break down the pieces and the connection between them. Even though the MTConnect Adapter for FANUC and the MTConnect agent are complete from the GitHub repository, when developing client applications or setting up the pieces an overview is helpful.
Click the picture for a larger view
Setting up MTConnect starts at the FANUC control. The control must have an Ethernet connection and the optional FOCAS function. Most modern controls have FOCAS available from the factory via an embedded Ethernet port on the main board of the CNC control. Check this blog post here to setup the FOCAS connection.
The adapter and agent are best run on a server based on either Linux or Microsoft Windows. Additionally, running the adapter on a low cost Linux platform located directly in the CNC can help reduce server and network load.
The FANUC control only speaks FOCAS, a very robust and powerful API that personal computers use to read and write information on the CNC. The MTConnect adapter does all the heavy lifting and converts FOCAS to an MTConnect data stream. The adapter streams data to the agent via http protocol which is human readable from Internet Explorer. Here is the sample output from the FANUC adapter: http://adapter.ip.address:7878/
2014-07-08T20:45:54.373983Z|system|NORMAL|||| 2014-07-08T20:45:54.373983Z|Xtravel|NORMAL|||| 2014-07-08T20:45:54.373983Z|Xoverheat|NORMAL|||| 2014-07-08T20:45:54.373983Z|Xservo|NORMAL|||| 2014-07-08T20:45:54.373983Z|Ytravel|NORMAL||||
As all of the pieces of MTConnect are based on some type of TCP communication, the devices find each other by knowing the IP Address and port number of the previous device. The client knows the IP address of the agent, the agent knows the adapter, and the adapter knows the FANUC CNC.
Ultimately the client will consume XML requested from the agent. The structure of the XML is determined by the schema specified for each machine. The agent takes adapter data and matches the schema name‘s with adapter stream labels. It records the stream into a buffer. It is that buffer of data that is served when the client requests the XML.