aaMQTT — A System Platform to MQTT bridge
By: Andy Robinson
Tags: IoT, Cloud, Mqtt

I feel like this latest project is a culmination of many months of poking, prodding, and exploring. Put simply, in about 500 lines of code I have developed a fully functional bridge to allow you to transport data bi-directionally between Wonderware System Platform and any MQTT broker. With this concept System Platform can now take an imposing seat at the table with respect to platforms for hosting, viewing, and logging IOT data from the billions of devices that are coming our way in the coming years. Can System Platform handle 500,000 or 1,000,000 points? The answer is absolutely. We know Historian 2014R2 can handle over 1 million tags. And we also know that there have been multiple projects with over 1 million I/O.

Why is System Platform a superior solution for an IOT environment? In a word, maturity. I can’t help but think that so many of the new platforms are just now feeling there way around concepts like alarming, visualization, historization, etc. To be fair many people are treating IOT like an entirely new space that nobody really know how to tackle. I agree that complex device management and maintenance on low powered remote boards can be tricky. But ingesting large amounts of data onto a highly distributed platform with built in redundancy, scripting, alarming, historization, and visualization? That’s a solved problem. I will be curious to see the solutions other vendors present for things like function augmentation (scripting on the ingested data) and templating. Will they be as mature and well thought out as System Platform’s? For me the templating concept is critical to any IOT platform. Most of us know from years of experience that just bringing in a piece of data and displaying it on a screen isn’t terribly valuable. But if we can bring in that data, create some actions based on the data, create some advanced visualizations, and even composite many pieces of data together; all things we can do with System Platform, now we have a data platform and not just a dumb SCADA.

Is this project complete and production ready? Absolutely not. Instead it’s a demonstration of a core concept showing the relative ease with which we can build a bridge between these two environments. Long term the ideal solution is to write a DA Server so you can communicate with MQTT tags just the same as you communicate with a PLC today. Another option, for those wanting to save a few clams on I/O licensing (sorry sales guys) is to write an object using the Archestra Object Toolkit. I have actually made a lot of progress on this front. I have all of the core functions written and I can push and pull data bi-directionally. The issue I currently have is learning how to create a nice UI for the template. I’ll save my rant for another time about the documentation for the AOT.

In the meantime checkout the project on GitHub and give it a spin. As far as I am concerned this again supports my theory that we need more composers and fewer luthiers. The tech is all in place, we just need to stitch it together to make great solutions. This is my contribution to get things moving. Who is going to help me push this forward?

-andy