ISTS provides software for the automation industry as well as consulting services
This is the first of a series of short articles to share with people some idea a came across while developing software for the automation industry.
One of the Customer I've been working for lately has an interesting problem:
It need to monitor constantly many facilities that are not look after by in-site personals.
In these year the technology has help Us a lot in dealing with this kind of problem thanks to Internet. There are many solution:
VPN into the server that is hosting the HMI
Teamviewer and alike
Each of them has it's drawback. VPN and Web server needs a fixed IP or some kind of dynamic DNS. More over all of them require a fair bandwidth and a computer or tablet with a decent screen. Some of them (VPN and web server) required a setup that may not be trivial server-side. I was using this technology with this Customer but I felt that something was missing. What if I could have all this information on my mobile phone without warring to much about the server infrastructure?
Looking for the solution a stumbled upon the Jabber protocol (now Xmpp)! Xmpp is a textual protocol that send xml over the wire. The protocol is relatively easy to understand. I don't want to go into to much details here, but basically this is how it work:
each client register itself using a server and become “Available”
the client get a list of Roasters (basically a list of “friends” that were accepted as friend at some point in time) from the server
the client can start sending e receiving messages to and from the roasters
Xmpp support a list of other features like IQ (Information Query) messages to request to other roaster which capability they have a many more, but the main feature I use here is the ability to send messages.
The main advantage of using Xmpp is that the server infrastructure is already built as there are many free services over the internet that provide it.
The architecture of my system is as follow:
on the HMI PC a Xmpp aware process developed in C# connect via OPC to the existing HMI developed with Cimplicity Plant Edition GE SCADA (TODO: link). This process get notification from the Xmpp server whenever a new client is interested in having new data. The client is developed in java on Android and what it does is simply registering itself to the Xmpp server and then waiting for new data. As soon as new data are available it simply display them on the mobile phone.
To my opinion that two main advantage of this architecture are:
1) limited bandwidth required (s the service is available even on a Edge phone connection)
2) data can be presented on Android in a native way in order to make the best use of the reduced screen on the phone
This allow my Customer to monitor just with a phone many facilities where processes are critical and can not be interrupted even for 10 minute! If You need more information (library used and technical details) please feel free to contact my via email.