M
I have a new release in the Free/Open Source (GPLv3 license) automation software project that I have been working on that may interest some people here. This release is a demonstration version of a web based HMI. I call it a "demonstration" version because it isn't integrated into the main MBServer automation platform yet. This version uses a stand alone server that is intended to support web page development. Integration into MBServer will be in an upcoming release. This should be of interest to anyone interested in web based HMI systems.
What is included in this release is the following:
- A stand-alone web server less than 200 kbytes in size. The server also supports an AJAX protocol to communicate with a web browser to provide continuous live updates.
- A sample client web page.
- A set of Javascript libraries for the web client to provide the client end of the protocol as well as control of the screen elements.
The web client demonstrates push buttons, pilot lights, numeric displays, text displays, dial and column indicators. It also has a pair of tanks with liquid flowing back and forth between them.
There are also event and alarm screens. The tank demo creates events, and the push array creates alarms.
The graphics (pilot lights, tanks, pump, piping, gauges, etc.) are done with SVG. The push buttons are done with XUL. The events and alarm screens are done with HTML. Client scripting is done with Javascript. There's no Flash or Java involved.
The package can be downloaded from Sourceforge at:
http://sourceforge.net/projects/mblogic/
Click on the Download Box, and either pick
"mbhmi_2008-10-26.tar.gz" from the "additional files" list, or go to the "Browse all packages" link and select it from there.
If you go to "Browse all packages" you have a choice of "tar.gz" or "zip" versions. The "tar.gz" version uses Unix new line characters, while the "zip" version uses "MS-DOS" (Windows) newlines. This only makes a difference if you want to view the source code.
Unpack the files into a directory. It will unpack a bunch of Python (".py") files. That's the server. It will also create a subdirectory called "hmipages" which contains the web page and associated files.
To run the server, you need Python 2.5. If you don't have that, it can be downloaded (for free of course) from http://www.python.org To run the server, type:
python hmidevserver.py
Or, if you are using just about any OS except MS Windows, you can make the file directly executable (for Gnome, right click, choose "permissions" and select "Allow executing file as a program) and run it as:
./hmidevserver.py
or just double click on the file.
The web page is compatible with Firefox and compatibles. I've tested it with Firefox 3.0.3 and Epiphany 2.22.2.
The url for the web page will be:
http://localhost:8503/hmipages/hmidemo.xhtml
Make sure you have Javascript enabled.
It *won't* work with Microsoft IE, as that doesn't support SVG graphics (Microsoft's web browser technology is still about 8 years behind the rest of the industry). There's not much point to a web based HMI that's limited to text only, so IE is not a realistic support target.
Documentation is at: http://mblogic.sourceforge.net/MBHMI-Intro.html
When this is integrated into MBServer, the potential applications for this include its use as a stand alone web based HMI that can be interfaced to PLCs or other devices. When the soft logic libraries (currently under development) are integrated, this will be the HMI component for a complete soft logic control system.
If you haven't seen something like this before, this is a *live* web page that updates itself continuously, not static text. It uses a special protocol to update just the parts of the page that need to change, without reloading the entire screen. It's all based on open web standards, and doesn't need a special development or programming software to modify it.
Comments, suggestions, criticisms, etc. are appreciated of course.
What is included in this release is the following:
- A stand-alone web server less than 200 kbytes in size. The server also supports an AJAX protocol to communicate with a web browser to provide continuous live updates.
- A sample client web page.
- A set of Javascript libraries for the web client to provide the client end of the protocol as well as control of the screen elements.
The web client demonstrates push buttons, pilot lights, numeric displays, text displays, dial and column indicators. It also has a pair of tanks with liquid flowing back and forth between them.
There are also event and alarm screens. The tank demo creates events, and the push array creates alarms.
The graphics (pilot lights, tanks, pump, piping, gauges, etc.) are done with SVG. The push buttons are done with XUL. The events and alarm screens are done with HTML. Client scripting is done with Javascript. There's no Flash or Java involved.
The package can be downloaded from Sourceforge at:
http://sourceforge.net/projects/mblogic/
Click on the Download Box, and either pick
"mbhmi_2008-10-26.tar.gz" from the "additional files" list, or go to the "Browse all packages" link and select it from there.
If you go to "Browse all packages" you have a choice of "tar.gz" or "zip" versions. The "tar.gz" version uses Unix new line characters, while the "zip" version uses "MS-DOS" (Windows) newlines. This only makes a difference if you want to view the source code.
Unpack the files into a directory. It will unpack a bunch of Python (".py") files. That's the server. It will also create a subdirectory called "hmipages" which contains the web page and associated files.
To run the server, you need Python 2.5. If you don't have that, it can be downloaded (for free of course) from http://www.python.org To run the server, type:
python hmidevserver.py
Or, if you are using just about any OS except MS Windows, you can make the file directly executable (for Gnome, right click, choose "permissions" and select "Allow executing file as a program) and run it as:
./hmidevserver.py
or just double click on the file.
The web page is compatible with Firefox and compatibles. I've tested it with Firefox 3.0.3 and Epiphany 2.22.2.
The url for the web page will be:
http://localhost:8503/hmipages/hmidemo.xhtml
Make sure you have Javascript enabled.
It *won't* work with Microsoft IE, as that doesn't support SVG graphics (Microsoft's web browser technology is still about 8 years behind the rest of the industry). There's not much point to a web based HMI that's limited to text only, so IE is not a realistic support target.
Documentation is at: http://mblogic.sourceforge.net/MBHMI-Intro.html
When this is integrated into MBServer, the potential applications for this include its use as a stand alone web based HMI that can be interfaced to PLCs or other devices. When the soft logic libraries (currently under development) are integrated, this will be the HMI component for a complete soft logic control system.
If you haven't seen something like this before, this is a *live* web page that updates itself continuously, not static text. It uses a special protocol to update just the parts of the page that need to change, without reloading the entire screen. It's all based on open web standards, and doesn't need a special development or programming software to modify it.
Comments, suggestions, criticisms, etc. are appreciated of course.