Real-time HMI Application

Posted: 11 months ago
Requirements :
1. Real-time web based HMI solution compatible with major browsers.
2. Receiving data stream from multiple types of devices, e.g. PLC, RTU, Customer Micro-controller, MODBUS RTU/TCP, into a real-time server.
3. Data visualization using dynamic vector graphics.
4. Keeping logged data for at least one year.
5. Multiple protocol support, e.g. HTTP, MQTT, TCP/IP, MODBUS TCP, WebSocket etc.

Solution :
1. Communication with the devices over TCP/IP & WebSocket with SSL/TLS.
2. Receiving event based data from the devices and processing them asynchronously.
3. Use of distributed database to store large data (almost 200GB / per year).
4. Using different Database to dump data older than one month.
5. Use of Python/NodeJS async architecture to fasten the query and performance.
6. Use of Jasper Reports to generate the reports and Chart JS to generate the charts / graphs.
7. Use of WebSocket to make the Graphics browser enabled.
8. Use of Redis Server for caching live data.