HMI/Reporter for Energy Management Project


Thread Starter

Chee KC


I am trying to develop a HMI/Config-GUI for an Energy Management System working with some electric power meters and rtu I/O for some factory client. Both sets of devices support Modbus. There are 2 parts to the job;

1. Configuration of devices by Modbus write

2. Reading & analysis of measured values by Modbus read

The Configuration is for the plant engineer to set device parameters. This is done at the implementation stage of the project and changes not very frequent but required once in a while. It should have a user access right controlled area of the HMI. A trace log is captured for all change activities.

The Reading & Analysis is for the operation staff to retrieve energy consumption report. This require frequent access and also need things like search, pre-defined filter to group devices into department, exporting the result set to a txt file etc. Again user login access control is required.

In the device network, a Modbus Master device will poll the Slaves to retrieve all measured parameters, the Master storage is quite large at 100MB size and has an Ethernet interface to a MySQL server running on a PC. The network has about 50 to 100 Modbus-RTU devices served by 4 to 5 Modbus-Master. Each measuring device may have 15 to 20 parameters tag. Each PLC may have 4 to 8 Analogue Input measurement. For Modbus write, the Master device has Modbus-over-Ethernet to the HMI PC where the command is issued from.

The Reading & Analysis module will synch to a MySQL server to download (FTP) the measured parameters in a set time interval or during its initial startup (sometimes the host PC may be turned off and need to auto recover).

The Reading & Analysis module will need to have flexible report customization menu. We also need to do some post data analysis using FFT on measured waveform profile for equipment fault preventive monitoring.

So my question is, what is the best platform & tool to do all these? Our development criterion is as follow;

1. Reasonably low cost

2. Runtime package for client project deployment

3. Minimal programming effort

4. LabView looks nice with its drag and drop building blocks but hear that its support for 3rd party Modbus device is bad and MySQL query is very slow

Take our

> 1. Reasonably low cost

is free and open source

> 2. Runtime package for client project deployment

clients only need the pvbrowser client the complex stuff is run on the ser(s)

> 3. Minimal programming effort

the complexity of creating masks is comarable to writing web pages with PHP you do it in C/C++ which gives you full flexibility

> 4. LabView looks nice with its drag and drop building blocks but hear that its support for 3rd party Modbus device is bad and MySQL query is very slow <

LabView and MySQL can be integrated into a solution with pvbrowser

pvbrowser uses the Qt database classes for DB access. Thus you can use nearly any SQL database on the market.

You may create input files for LabView from your pvserver. The data might come from MySQL or directly from Modbus.
How much of this system actually already exists, and how much are you trying to specify? Is this a one-off job, or is it intended to be a generic product? Is this all on one site, or is it spread over several? How fast do you have to take readings (e.g. how long between complete cycles)?

If this is a one-off job, I would say that it sounds a lot like a web application. I have some ideas and suggestions along those lines, but I'm not sure what your application is like (see the above questions). I also don't know if you have any web programming experience, although it isn't hard if you wanted learn. To directly address your questions:

* 1. Reasonably low cost

For what I have in mind, the cost of the software is zero.

* 2. Runtime package for client project deployment

I'm not sure what you mean. Also, is this a one off job that you are installing yourself, or is the client expected to install everything without you getting involved?

* 3. Minimal programming effort

I think the user interface and reports will be the bulk of the work. That may be more work than you might think, unless you can buy a completely off the shelf system that gives you reports that don't need customisation.

* 4. LabView looks nice with its drag and drop building blocks but hear that its support for 3rd party Modbus device is bad and MySQL query is very slow

I don't think LabView is a practical solution for this. It's not really what Labview was designed to do. It would also give you no practical way to distribute the reports.
I've worked on a similar project that required integration of multiple meters with Wifi and Ethernet as communication to be integrated with a complete HMI package and they did a wonderful job. Please check the link and see if it really helps.
I have twice thrown in PLCs to conveniently execute very similar projects - nice standard platform, at the premium of price of course! Greatly simplifies development though.

Wassim Daoud

Hello Chee KC:

Have you considered using OPC for this? You can use OPC Server for Modbus for all your Modbus devices. The OPC Server delivers data in real-time to the MySQL and your HMI.
Try it:
OPC Server for Modbus:
ODBC Client for OPC:

All you need to do is,
1).configure the modbus devices in the OPC servers
2).connect the OPC client of your HMI to it.
3).connect the ODBC Client for OPC to the OPC Server.

If you are new to OPC, here are some tutorial that will bring you up to speed:

Hopefully this helps

Wassim Daoud
Global Solutions Architect