Reputation: 21
I am interested in creating a software that runs on an industrial PC, connects to certain CNC models of machine tools, reads data, and sends it to a remote cloud platform. As requirements, data has to be sent formatted in the XML schema of MTConnect. Additionally, the data transmission has to be done using the MQTT protocol.
In order to develop this system, I am thinking of using Apache Nifi. The idea would be to develop custom nifi processors to connect to the specific CNC models using the corresponding API and use another nifi processor to apply an MTConnect semantic layer in the next step. Finally, there would be an MQTT processor to send data remotely.
The reason for using Apache NiFi is that it would allow us a graphical configuration of the system, and would facilitate also its extensibility.
Is there any nifi processor that can apply this MTConnect layer to the data? Is this idea correct, or would I have to do this whole process in another way? I would appreciate any suggestions regarding this.
Upvotes: 2
Views: 321
Reputation: 21
Robtek, Depending on the CNC Model API you may or may not need to write a custom processor to interact with the CNC tools. I know some CNC servers use a RESTful API -- [1] for example. In that case you could use the InvokeHTTP processor. You can read more about the InvokeHTTP processor at [2]. With that you should be able to publish to MQTT using the PublishMQTT processor [3].
This is a very reasonable way to access the data and publish it to an MQTT topic.
Of note is that MiNiFi C++ is building MQTT functionality as well. A pull request [4] is forthcoming to introduce MQTT capabilities so that you can
[1] https://github.com/techninja/cncserver
[4] https://issues.apache.org/jira/browse/MINIFICPP-342
Upvotes: 2