Saturday 14 January 2017

HMI/SCADA software for xLogic PLCs

ProView

I haven't actually used this yet, but it looks very promising.  Totally open-source, has process editors and multi-trends, and has build packages specific for linux, android, and raspberry pi.

RapidSCADA

This is a .NET/mono-based web interface.  Partly open-source, partly some (very cheap) licensed modules, it's relatively simple to follow their cookbook to get a bare-bones setup working.

In spite of my criticisms, of the options I've tried, it's the best combination of flexibility and easiness.

Criticism:


It's built with .NET, but in theory the service (but not the builder / config tools) should run on linux (and Raspberry Pi!) with the mono libraries.  I'm having some difficulty, but it might just be that my mono is 3.10 instead of 3.28.

The user interface is not very friendly.  I found myself having to repeat the same operation dozens of times, when I really wanted to multi-select and do the operation on all of them simultaneously.

The table creator feature is awesome, but the graphic editor is really basic (and does not come with a symbol library AFAIK).  It's really not a useful HMI without a multi-trend (which you have to pay for).

It's also not really SCADA without the automation plugin (which you have to pay for).

Overview:

The package consists of several distinct modules:
  • Server - basically a database with some data flow functionality.  Has an "admin" gui, which does not run on linux.
  • Comm - basically a collection of drivers, it interfaces between the Server and your devices.  Divided into a service and a gui (which always starts minimized to the tray!).
  • Webservice - provides a user-interface to the server.  Consists of:
    • Table: provides hourly summaries of all of your input points
    • Chart: provides a graph of one point
    • ChartPro: provides a graph of several points (paid)
    • Schema: A graphic that displays differently based on input values.
  • Table / Schema editors: creates interface elements for the web service.

Gotchas:

  • The communicator front end always opens minimized to the tray.
  • Follow the Modbus TCP recipe precisely, without deleting any extraneous points.  Do not change anything until that works. 
  • Change the "chart gap" setting on the web service configuration page to 120s, or at least play with it until there is no gap between your points.

xLogic EasySCADA

XLogic supplies this development environment for free.

I don't recommend it, there's no way to test/debug without compiling and installing.   Also, the registration key needs to be generated again for every client computer, and that gets old really fast.

Overview

The basic intent of the software is to create a Windows HMI application that connects to your PLC network.  It appears to support USB RS485 and Modbus RTU, but I only ever used it to connect directly to my EXM's IP interface.

The only real advantage it has is you don't have to look up the Modbus address of the register you're interested in, you can just use xLogic's (semi-) descriptive name.

Notes

  • You have to install their (bundled) Mysql6 and connector first.    
  • When compiling, the "publisher id" field must be numeric.  
  • Save the publisher ID.  You'll need it again later when you generate a registration key to install your HMI application.

OpenScada

First off, don't be fooled.  The openscada.org project has been dead for a couple of years.  All active development is on oscada.org, and appears to mostly be the work of one incredibly prolific developer.

If I'd persevered, I would've ended up with a SCADA server that would run on a Linux-based Raspberry Pi, with a touchscreen interface AND a web interface.  That's pretty cool.  The software appears incredibly versatile.  It is very modular, and there are modules for pretty much any kind of input or output device I've ever heard of.

Unfortunately, that versatility comes at the price of extreme complexity.  It took me most of two days to get a very basic HMI up showing a single modbus register, and I didn't really feel like I understood what I was doing.  It looked like every single field I wanted to add to the HMI was going to require a half-hour of tedius re-entry of long address strings.

Also unfortunately, the huge reams of very wordy documentation appear to have been written by a garrulous Ukranian, google-translated to Russian, and then to English (possibly by way of German).  I really didn't understand the intent of what I was reading.

AdvancedHMI

At the opposite end of the spectrum from OpenScada, AdvancedHMI makes heavy use of Visual Studio / .net / visual basic, and is very drag-and-drop.  It is almost entirely undocumented, but there's an active user community, and my only question was answered within a couple of hours.

The end result will probably only run on a windows platform, but it's so easy to get working that it's really hard to hate.

Gotchas:

This may  actually be a problem with the xLogic PLCs: register 1024 on xLogic, I had to instruct AdvancedHMI to access 41025.  With some help from the forums, I got this by
  • prepending a 4 -- Modbus addresses starting in the 40,000 range  are the ones which are accessed using modbus command 0x3.
  • adding 1 -- xLogic's register address reference is 0-based, but apparently all modbus addressing is 1-based.

No comments:

Post a Comment